@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.cjs.js
CHANGED
|
@@ -20,7 +20,10 @@ var mitt__default = /*#__PURE__*/_interopDefaultLegacy(mitt);
|
|
|
20
20
|
var AsyncStorage__default = /*#__PURE__*/_interopDefaultLegacy(AsyncStorage);
|
|
21
21
|
|
|
22
22
|
var _a$1;
|
|
23
|
-
|
|
23
|
+
/* eslint-disable no-undef */
|
|
24
|
+
const theGlobal =
|
|
25
|
+
// eslint-disable-next-line no-nested-ternary
|
|
26
|
+
typeof globalThis === 'object' ? globalThis : typeof global === 'object' ? global : window;
|
|
24
27
|
const { process: safeProcess = {} } = theGlobal;
|
|
25
28
|
const isProduction = ((_a$1 = safeProcess.env) === null || _a$1 === void 0 ? void 0 : _a$1.NODE_ENV) === 'production';
|
|
26
29
|
|
|
@@ -35,7 +38,7 @@ const VERSION$1 = (_b = (_a = safeProcess.env) === null || _a === void 0 ? void
|
|
|
35
38
|
*
|
|
36
39
|
* @hidden
|
|
37
40
|
*/
|
|
38
|
-
const isSkipLimit = (json) =>
|
|
41
|
+
const isSkipLimit = (json) => ['skip', 'limit'].some(prop => prop in json);
|
|
39
42
|
/**
|
|
40
43
|
* Type guard to find if the a given decoded backend token uses "after/before" pagination style
|
|
41
44
|
*
|
|
@@ -44,7 +47,7 @@ const isSkipLimit = (json) => (['skip', 'limit'].some(prop => prop in json));
|
|
|
44
47
|
*
|
|
45
48
|
* @hidden
|
|
46
49
|
*/
|
|
47
|
-
const isAfterBefore = (json) =>
|
|
50
|
+
const isAfterBefore = (json) => ['after', 'before', 'first', 'last', 'limit'].some(prop => prop in json);
|
|
48
51
|
/**
|
|
49
52
|
* Type guard to find if the a given decoded backend token uses v4 or newer "after/before" pagination style
|
|
50
53
|
*
|
|
@@ -53,7 +56,7 @@ const isAfterBefore = (json) => (['after', 'before', 'first', 'last', 'limit'].s
|
|
|
53
56
|
*
|
|
54
57
|
* @hidden
|
|
55
58
|
*/
|
|
56
|
-
const isAfterBeforeRaw = (json) =>
|
|
59
|
+
const isAfterBeforeRaw = (json) => 'limit' in json;
|
|
57
60
|
/**
|
|
58
61
|
* Type guard to find if the a given object is wrapped around Amity.Paged<>
|
|
59
62
|
*
|
|
@@ -63,9 +66,9 @@ const isAfterBeforeRaw = (json) => ('limit' in json);
|
|
|
63
66
|
* @hidden
|
|
64
67
|
*/
|
|
65
68
|
const isPaged = (payload) => {
|
|
66
|
-
return ((payload === null || payload === void 0 ? void 0 : payload.hasOwnProperty('data'))
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
return ((payload === null || payload === void 0 ? void 0 : payload.hasOwnProperty('data')) &&
|
|
70
|
+
(payload === null || payload === void 0 ? void 0 : payload.hasOwnProperty('nextPage')) &&
|
|
71
|
+
(payload === null || payload === void 0 ? void 0 : payload.hasOwnProperty('prevPage')));
|
|
69
72
|
};
|
|
70
73
|
/**
|
|
71
74
|
* Converts a paging object into a b64 string token
|
|
@@ -95,19 +98,19 @@ const toToken = (paging, style) => {
|
|
|
95
98
|
"before" or "after" value. if that would change,
|
|
96
99
|
we'd need to move toward a more simple: `!paging.before`
|
|
97
100
|
*/
|
|
98
|
-
if (!isNaN(paging === null || paging === void 0 ? void 0 : paging.before)) {
|
|
101
|
+
if (!Number.isNaN(paging === null || paging === void 0 ? void 0 : paging.before)) {
|
|
99
102
|
payload = {
|
|
100
103
|
before: paging.before,
|
|
101
104
|
last: paging.limit,
|
|
102
105
|
};
|
|
103
106
|
}
|
|
104
|
-
else if (!isNaN(paging === null || paging === void 0 ? void 0 : paging.after)) {
|
|
107
|
+
else if (!Number.isNaN(paging === null || paging === void 0 ? void 0 : paging.after)) {
|
|
105
108
|
payload = {
|
|
106
109
|
after: paging.after,
|
|
107
110
|
first: paging.limit,
|
|
108
111
|
};
|
|
109
112
|
}
|
|
110
|
-
else if (!isNaN(paging === null || paging === void 0 ? void 0 : paging.limit)) {
|
|
113
|
+
else if (!Number.isNaN(paging === null || paging === void 0 ? void 0 : paging.limit)) {
|
|
111
114
|
payload = {
|
|
112
115
|
last: paging.limit,
|
|
113
116
|
};
|
|
@@ -141,14 +144,14 @@ const toPage = (token) => {
|
|
|
141
144
|
limit: json.limit,
|
|
142
145
|
};
|
|
143
146
|
}
|
|
144
|
-
|
|
147
|
+
if (isAfterBefore(json)) {
|
|
145
148
|
if ('before' in json) {
|
|
146
149
|
return {
|
|
147
150
|
before: json.before,
|
|
148
151
|
limit: json.last,
|
|
149
152
|
};
|
|
150
153
|
}
|
|
151
|
-
|
|
154
|
+
if ('after' in json) {
|
|
152
155
|
return {
|
|
153
156
|
after: json.after,
|
|
154
157
|
limit: json.first,
|
|
@@ -176,6 +179,7 @@ const toPageRaw = (token) => {
|
|
|
176
179
|
return undefined;
|
|
177
180
|
};
|
|
178
181
|
|
|
182
|
+
/* eslint-disable no-use-before-define */
|
|
179
183
|
/**
|
|
180
184
|
* Type guard to check and cast that a given async function is has the ".locally" property
|
|
181
185
|
*
|
|
@@ -184,7 +188,7 @@ const toPageRaw = (token) => {
|
|
|
184
188
|
*
|
|
185
189
|
* @hidden
|
|
186
190
|
*/
|
|
187
|
-
const isFetcher = (func) =>
|
|
191
|
+
const isFetcher = (func) => 'locally' in func;
|
|
188
192
|
/**
|
|
189
193
|
* Type guard to check and cast that a given async function is has the ".optimistically" property
|
|
190
194
|
*
|
|
@@ -193,7 +197,7 @@ const isFetcher = (func) => ('locally' in func);
|
|
|
193
197
|
*
|
|
194
198
|
* @hidden
|
|
195
199
|
*/
|
|
196
|
-
const isMutator = (func) =>
|
|
200
|
+
const isMutator = (func) => 'optimistically' in func;
|
|
197
201
|
/**
|
|
198
202
|
* Type guard to check and cast that a given async function is has
|
|
199
203
|
* the ".locally" or ".optimistically" property
|
|
@@ -212,7 +216,7 @@ const isOffline = (func) => isFetcher(func) || isMutator(func);
|
|
|
212
216
|
*
|
|
213
217
|
* @hidden
|
|
214
218
|
*/
|
|
215
|
-
const isCachable = (model) =>
|
|
219
|
+
const isCachable = (model) => model === null || model === void 0 ? void 0 : model.hasOwnProperty('cachedAt');
|
|
216
220
|
/**
|
|
217
221
|
* Checks if a model is considered local (cachedAt === -1)
|
|
218
222
|
*
|
|
@@ -270,7 +274,7 @@ const createQuery = (func, ...args) => ({ func, args });
|
|
|
270
274
|
const queryOptions = (policy, lifeSpan = 2 * 60 * 1000) => {
|
|
271
275
|
if (policy === 'cache_only')
|
|
272
276
|
return { lifeSpan: Infinity };
|
|
273
|
-
|
|
277
|
+
if (policy === 'server_only')
|
|
274
278
|
return { lifeSpan: 0 };
|
|
275
279
|
return { lifeSpan };
|
|
276
280
|
};
|
|
@@ -296,9 +300,7 @@ const runQuery = ({ func, args }, callback, options = queryOptions('cache_then_s
|
|
|
296
300
|
// offline first
|
|
297
301
|
if (isOffline(func) && options.lifeSpan !== 0) {
|
|
298
302
|
try {
|
|
299
|
-
local = isMutator(func)
|
|
300
|
-
? func.optimistically(...args)
|
|
301
|
-
: func.locally(...args);
|
|
303
|
+
local = isMutator(func) ? func.optimistically(...args) : func.locally(...args);
|
|
302
304
|
}
|
|
303
305
|
catch (error) {
|
|
304
306
|
callback === null || callback === void 0 ? void 0 : callback(createSnapshot(undefined, {
|
|
@@ -310,7 +312,7 @@ const runQuery = ({ func, args }, callback, options = queryOptions('cache_then_s
|
|
|
310
312
|
const shouldAbort = isCachable(local) && isFresh(local, options.lifeSpan);
|
|
311
313
|
callback === null || callback === void 0 ? void 0 : callback(createSnapshot(local, {
|
|
312
314
|
origin: 'local',
|
|
313
|
-
loading: !(isFetcher(func) && shouldAbort)
|
|
315
|
+
loading: !(isFetcher(func) && shouldAbort),
|
|
314
316
|
}));
|
|
315
317
|
if (shouldAbort)
|
|
316
318
|
return;
|
|
@@ -318,13 +320,13 @@ const runQuery = ({ func, args }, callback, options = queryOptions('cache_then_s
|
|
|
318
320
|
else {
|
|
319
321
|
callback === null || callback === void 0 ? void 0 : callback(createSnapshot(undefined, {
|
|
320
322
|
origin: 'local',
|
|
321
|
-
loading: true
|
|
323
|
+
loading: true,
|
|
322
324
|
}));
|
|
323
325
|
}
|
|
324
326
|
func(...args)
|
|
325
327
|
.then(fresh => {
|
|
326
328
|
// @ts-ignore i know.
|
|
327
|
-
//
|
|
329
|
+
// isLocal(local) && syncInCache(local, fresh)
|
|
328
330
|
callback === null || callback === void 0 ? void 0 : callback(createSnapshot(fresh, {
|
|
329
331
|
origin: 'server',
|
|
330
332
|
loading: false,
|
|
@@ -338,6 +340,7 @@ const runQuery = ({ func, args }, callback, options = queryOptions('cache_then_s
|
|
|
338
340
|
}));
|
|
339
341
|
});
|
|
340
342
|
};
|
|
343
|
+
// eslint-disable-next-line no-redeclare
|
|
341
344
|
function createSnapshot(data, options) {
|
|
342
345
|
if (isPaged(data) || isCachable(data))
|
|
343
346
|
return Object.assign(Object.assign({}, options), data);
|
|
@@ -391,6 +394,7 @@ const sortByLastCreated = ({ createdAt: a }, { createdAt: b }) => new Date(b).va
|
|
|
391
394
|
*/
|
|
392
395
|
const sortByLastActivity = ({ lastActivity: a }, { lastActivity: b }) => new Date(b).valueOf() - new Date(a).valueOf();
|
|
393
396
|
|
|
397
|
+
/* eslint-disable max-classes-per-file */
|
|
394
398
|
/**
|
|
395
399
|
* Generic ASC error
|
|
396
400
|
* @category Errors
|
|
@@ -420,6 +424,7 @@ class ASCApiError extends ASCError {
|
|
|
420
424
|
* @param code A normalized error code
|
|
421
425
|
* @param level A normalized failure level descriptor
|
|
422
426
|
*/
|
|
427
|
+
// eslint-disable-next-line no-useless-constructor
|
|
423
428
|
constructor(message, code, level) {
|
|
424
429
|
super(message, code, level);
|
|
425
430
|
}
|
|
@@ -446,7 +451,9 @@ class ASCConnectionError extends ASCError {
|
|
|
446
451
|
* @param message A custom error message
|
|
447
452
|
*/
|
|
448
453
|
constructor(event, message = 'SDK client is having connection issues') {
|
|
449
|
-
super(`${message} (${event})`, event === 'disconnected'
|
|
454
|
+
super(`${message} (${event})`, event === 'disconnected'
|
|
455
|
+
? 800211 /* DISCONNECTED */
|
|
456
|
+
: 800210 /* CONNECTION_ERROR */, "error" /* ERROR */);
|
|
450
457
|
this.event = event;
|
|
451
458
|
}
|
|
452
459
|
}
|
|
@@ -486,12 +493,12 @@ const setActiveClient = (client) => {
|
|
|
486
493
|
* @hidden
|
|
487
494
|
*/
|
|
488
495
|
const createLogger = (session) => {
|
|
489
|
-
const active =
|
|
490
|
-
&& !isProduction);
|
|
496
|
+
const active = `${session === null || session === void 0 ? void 0 : session.trim()}`.length > 0 && !isProduction;
|
|
491
497
|
const logger = debug__default['default'](session);
|
|
492
498
|
const print = (topic, ...args) => {
|
|
493
499
|
active && logger(topic, args);
|
|
494
500
|
};
|
|
501
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
495
502
|
print.__instance__ = logger;
|
|
496
503
|
return print;
|
|
497
504
|
};
|
|
@@ -524,7 +531,7 @@ const unwrapPayload = (response) => {
|
|
|
524
531
|
if (response.status === 'success') {
|
|
525
532
|
return response.data;
|
|
526
533
|
}
|
|
527
|
-
|
|
534
|
+
if (response.status === 'fail') {
|
|
528
535
|
throw new ASCUnknownError(response.code);
|
|
529
536
|
}
|
|
530
537
|
else if (response.status === 'error') {
|
|
@@ -546,9 +553,10 @@ const stringify = (params, prefix) => {
|
|
|
546
553
|
if (Array.isArray(value)) {
|
|
547
554
|
return value.map(item => `${key}[]=${item}`).join('&');
|
|
548
555
|
}
|
|
549
|
-
|
|
556
|
+
if (typeof value !== 'object') {
|
|
550
557
|
return `${key}=${value}`;
|
|
551
558
|
}
|
|
559
|
+
// @ts-ignore
|
|
552
560
|
return stringify(value, prefix !== null && prefix !== void 0 ? prefix : name);
|
|
553
561
|
})
|
|
554
562
|
.join('&');
|
|
@@ -575,9 +583,10 @@ const createHttpTransport = (endpoint) => {
|
|
|
575
583
|
httpsAgent: new HttpAgent.HttpsAgent(options),
|
|
576
584
|
paramsSerializer: stringify,
|
|
577
585
|
});
|
|
578
|
-
instance.interceptors.response.use(
|
|
586
|
+
instance.interceptors.response.use(response => response, error => {
|
|
579
587
|
var _a;
|
|
580
588
|
const { response } = error;
|
|
589
|
+
// eslint-disable-next-line no-console
|
|
581
590
|
console.error((_a = response === null || response === void 0 ? void 0 : response.data) !== null && _a !== void 0 ? _a : error);
|
|
582
591
|
if (response)
|
|
583
592
|
unwrapPayload(response.data);
|
|
@@ -14595,6 +14604,7 @@ function extend() {
|
|
|
14595
14604
|
|
|
14596
14605
|
var mqtt = mqtt$1.exports;
|
|
14597
14606
|
|
|
14607
|
+
/* eslint-disable no-console */
|
|
14598
14608
|
const QOS_FAILURE_CODE = 128;
|
|
14599
14609
|
const RETRY_BASE_TIMEOUT = 1000;
|
|
14600
14610
|
const RETRY_COUNT_MAX = 10;
|
|
@@ -14609,7 +14619,7 @@ function getMqttOptions(params) {
|
|
|
14609
14619
|
topic: 'WillMsg',
|
|
14610
14620
|
payload: 'Connection Closed abnormally..!',
|
|
14611
14621
|
qos: 0,
|
|
14612
|
-
retain: false
|
|
14622
|
+
retain: false,
|
|
14613
14623
|
} }, params);
|
|
14614
14624
|
}
|
|
14615
14625
|
/**
|
|
@@ -14625,6 +14635,12 @@ const createMqttTransport = (endpoint) => {
|
|
|
14625
14635
|
let mqttClient;
|
|
14626
14636
|
let retryCount = 0;
|
|
14627
14637
|
let allowReconnection = true;
|
|
14638
|
+
const reconnect = () => {
|
|
14639
|
+
setTimeout(() => {
|
|
14640
|
+
retryCount += 1;
|
|
14641
|
+
mqttClient.reconnect();
|
|
14642
|
+
}, RETRY_BASE_TIMEOUT * 2 ** (retryCount > RETRY_COUNT_MAX ? RETRY_COUNT_MAX : retryCount));
|
|
14643
|
+
};
|
|
14628
14644
|
async function connect(params) {
|
|
14629
14645
|
if (mqttClient) {
|
|
14630
14646
|
mqttClient.removeAllListeners();
|
|
@@ -14636,6 +14652,7 @@ const createMqttTransport = (endpoint) => {
|
|
|
14636
14652
|
allowReconnection = true;
|
|
14637
14653
|
});
|
|
14638
14654
|
mqttClient.on('error', (error) => {
|
|
14655
|
+
// eslint-disable-next-line default-case
|
|
14639
14656
|
switch (error.code) {
|
|
14640
14657
|
case 2 /* IDENTIFIER_REJECTED */:
|
|
14641
14658
|
case 4 /* BAD_USERNAME_OR_PASSWORD */:
|
|
@@ -14650,12 +14667,6 @@ const createMqttTransport = (endpoint) => {
|
|
|
14650
14667
|
});
|
|
14651
14668
|
return new Promise(resolve => mqttClient.once('connect', () => resolve()));
|
|
14652
14669
|
}
|
|
14653
|
-
const reconnect = () => {
|
|
14654
|
-
setTimeout(() => {
|
|
14655
|
-
retryCount = retryCount + 1;
|
|
14656
|
-
mqttClient.reconnect();
|
|
14657
|
-
}, RETRY_BASE_TIMEOUT * Math.pow(2, retryCount > RETRY_COUNT_MAX ? RETRY_COUNT_MAX : retryCount));
|
|
14658
|
-
};
|
|
14659
14670
|
return {
|
|
14660
14671
|
connect,
|
|
14661
14672
|
async disconnect() {
|
|
@@ -14689,8 +14700,8 @@ const createMqttTransport = (endpoint) => {
|
|
|
14689
14700
|
if (error || granted[0].qos === QOS_FAILURE_CODE) {
|
|
14690
14701
|
const ascError = error
|
|
14691
14702
|
? new ASCError(error.message, 800000 /* UNKNOWN_ERROR */, "error" /* ERROR */)
|
|
14692
|
-
// TODO throw the actual error, once BE can tell us the actual error code
|
|
14693
|
-
|
|
14703
|
+
: // TODO throw the actual error, once BE can tell us the actual error code
|
|
14704
|
+
new ASCUnknownError(800000 /* UNKNOWN_ERROR */, "error" /* ERROR */);
|
|
14694
14705
|
console.error(`Failed to subscribe to topic ${topic}`, ascError);
|
|
14695
14706
|
callback === null || callback === void 0 ? void 0 : callback(ascError);
|
|
14696
14707
|
}
|
|
@@ -14709,10 +14720,11 @@ const createMqttTransport = (endpoint) => {
|
|
|
14709
14720
|
},
|
|
14710
14721
|
unsubscribe(topic) {
|
|
14711
14722
|
mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.unsubscribe(topic);
|
|
14712
|
-
}
|
|
14723
|
+
},
|
|
14713
14724
|
};
|
|
14714
14725
|
};
|
|
14715
14726
|
|
|
14727
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
14716
14728
|
let tasks = [];
|
|
14717
14729
|
let timer;
|
|
14718
14730
|
/**
|
|
@@ -14729,6 +14741,7 @@ const scheduleTask = (task) => {
|
|
|
14729
14741
|
}, 0);
|
|
14730
14742
|
};
|
|
14731
14743
|
|
|
14744
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
14732
14745
|
// need to sync up the list
|
|
14733
14746
|
const WS_EVENTS = [
|
|
14734
14747
|
'disconnected',
|
|
@@ -14755,7 +14768,7 @@ const MQTT_EVENTS = [
|
|
|
14755
14768
|
'error',
|
|
14756
14769
|
'close',
|
|
14757
14770
|
'end',
|
|
14758
|
-
'reconnect'
|
|
14771
|
+
'reconnect',
|
|
14759
14772
|
];
|
|
14760
14773
|
/** @hidden */
|
|
14761
14774
|
const createEventEmitter = () => {
|
|
@@ -14819,7 +14832,9 @@ const createEventSubscriber = (client, namespace, event, fn) => {
|
|
|
14819
14832
|
*/
|
|
14820
14833
|
const fireEvent = (event, payload) => {
|
|
14821
14834
|
const { emitter } = getActiveClient();
|
|
14822
|
-
scheduleTask(() => {
|
|
14835
|
+
scheduleTask(() => {
|
|
14836
|
+
emitter.emit(event, payload);
|
|
14837
|
+
});
|
|
14823
14838
|
};
|
|
14824
14839
|
|
|
14825
14840
|
/**
|
|
@@ -14836,7 +14851,7 @@ const fireEvent = (event, payload) => {
|
|
|
14836
14851
|
* @returns A {@link Amity.Client} instance
|
|
14837
14852
|
*
|
|
14838
14853
|
* @category Client API
|
|
14839
|
-
|
|
14854
|
+
* */
|
|
14840
14855
|
const createClient = (apiKey, apiRegion = API_REGIONS.SG, debugSession = 'amity') => {
|
|
14841
14856
|
const log = createLogger(debugSession);
|
|
14842
14857
|
log('client/api/createClient', {
|
|
@@ -14964,8 +14979,8 @@ const getToken = async (params) => {
|
|
|
14964
14979
|
client.log('client/api/getToken', params);
|
|
14965
14980
|
const deviceInfo = await getDeviceInfo();
|
|
14966
14981
|
const { data } = await client.http.post('/v1/device', Object.assign(Object.assign({}, params), { deviceInfo }), {
|
|
14967
|
-
|
|
14968
|
-
headers: { 'X-API-Key': client.apiKey }
|
|
14982
|
+
// @ts-ignore
|
|
14983
|
+
headers: { 'X-API-Key': client.apiKey },
|
|
14969
14984
|
});
|
|
14970
14985
|
return data;
|
|
14971
14986
|
};
|
|
@@ -14994,12 +15009,12 @@ const EVENTS = [
|
|
|
14994
15009
|
*/
|
|
14995
15010
|
const onConnectionError = (callback) => {
|
|
14996
15011
|
const client = getActiveClient();
|
|
14997
|
-
const subscribers = EVENTS.map(event =>
|
|
15012
|
+
const subscribers = EVENTS.map(event => createEventSubscriber(client, `client/onConnectionError(${event})`, event, response => {
|
|
14998
15013
|
const error = (response === null || response === void 0 ? void 0 : response.code)
|
|
14999
15014
|
? new ASCError(response.message, response.code, "fatal" /* FATAL */)
|
|
15000
15015
|
: new ASCConnectionError(event);
|
|
15001
15016
|
callback(error);
|
|
15002
|
-
}))
|
|
15017
|
+
}));
|
|
15003
15018
|
return () => {
|
|
15004
15019
|
subscribers.forEach(fn => fn());
|
|
15005
15020
|
};
|
|
@@ -15047,6 +15062,7 @@ const onClientBanned = (callback) => {
|
|
|
15047
15062
|
});
|
|
15048
15063
|
};
|
|
15049
15064
|
|
|
15065
|
+
/* eslint-disable no-param-reassign */
|
|
15050
15066
|
/**
|
|
15051
15067
|
* ```js
|
|
15052
15068
|
* import { connectClient } from '@amityco/ts-sdk/client/api'
|
|
@@ -15077,7 +15093,7 @@ const connectClient = async (params) => {
|
|
|
15077
15093
|
// ignored since we enforce default values just before.
|
|
15078
15094
|
const { accessToken, users } = await getToken(params);
|
|
15079
15095
|
// manually setup the token for http transport
|
|
15080
|
-
client.http.defaults.headers.common
|
|
15096
|
+
client.http.defaults.headers.common.Authorization = `Bearer ${accessToken}`;
|
|
15081
15097
|
// manually setup the token for ws transport
|
|
15082
15098
|
client.ws.io.opts.query = { token: accessToken };
|
|
15083
15099
|
// FIXME: events are duplicated if connectClient is called few times without disconnectClient
|
|
@@ -15115,9 +15131,9 @@ const isConnected = () => {
|
|
|
15115
15131
|
var _a, _b;
|
|
15116
15132
|
const client = getActiveClient();
|
|
15117
15133
|
client.log('client/api/isConnected', client);
|
|
15118
|
-
return !!(client.userId
|
|
15119
|
-
|
|
15120
|
-
|
|
15134
|
+
return !!(client.userId &&
|
|
15135
|
+
((_b = (_a = client.http.defaults.headers.common) === null || _a === void 0 ? void 0 : _a.Authorization) === null || _b === void 0 ? void 0 : _b.length) &&
|
|
15136
|
+
client.ws.connected);
|
|
15121
15137
|
};
|
|
15122
15138
|
|
|
15123
15139
|
exports.SubscriptionLevels = void 0;
|
|
@@ -15128,7 +15144,7 @@ exports.SubscriptionLevels = void 0;
|
|
|
15128
15144
|
SubscriptionLevels["POST_AND_COMMENT"] = "post_and_comment";
|
|
15129
15145
|
SubscriptionLevels["USER"] = "user";
|
|
15130
15146
|
})(exports.SubscriptionLevels || (exports.SubscriptionLevels = {}));
|
|
15131
|
-
const getCommunityUserTopic = (
|
|
15147
|
+
const getCommunityUserTopic = (path, level) => {
|
|
15132
15148
|
switch (level) {
|
|
15133
15149
|
case 'post':
|
|
15134
15150
|
return `${path}/post/+`;
|
|
@@ -15140,8 +15156,8 @@ const getCommunityUserTopic = ({ path }, level) => {
|
|
|
15140
15156
|
return path;
|
|
15141
15157
|
}
|
|
15142
15158
|
};
|
|
15143
|
-
const getCommunityTopic = ({ path }, level = exports.SubscriptionLevels.COMMUNITY) => getCommunityUserTopic(
|
|
15144
|
-
const getUserTopic = ({ path }, level = exports.SubscriptionLevels.USER) => getCommunityUserTopic(
|
|
15159
|
+
const getCommunityTopic = ({ path }, level = exports.SubscriptionLevels.COMMUNITY) => getCommunityUserTopic(path, level);
|
|
15160
|
+
const getUserTopic = ({ path }, level = exports.SubscriptionLevels.USER) => getCommunityUserTopic(level === exports.SubscriptionLevels.USER ? path : path.replace(/^(\w*)/, '$1/social'), level);
|
|
15145
15161
|
const getPostTopic = ({ path }, level = exports.SubscriptionLevels.POST) => {
|
|
15146
15162
|
switch (level) {
|
|
15147
15163
|
case 'comment':
|
|
@@ -15253,12 +15269,15 @@ const restoreCache = async (storageKey = 'amitySdk') => {
|
|
|
15253
15269
|
try {
|
|
15254
15270
|
cache = JSON.parse(serializedData);
|
|
15255
15271
|
}
|
|
15256
|
-
catch (err) {
|
|
15272
|
+
catch (err) {
|
|
15273
|
+
//
|
|
15274
|
+
}
|
|
15257
15275
|
// current cache should override. in case there's something fresher.
|
|
15258
15276
|
client.cache.data = Object.assign(Object.assign({}, cache), client.cache.data);
|
|
15259
15277
|
return true;
|
|
15260
15278
|
};
|
|
15261
15279
|
|
|
15280
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
15262
15281
|
/**
|
|
15263
15282
|
* ```js
|
|
15264
15283
|
* import { backupCache } from '@amityco/ts-sdk'
|
|
@@ -15288,8 +15307,7 @@ const backupCache = async (storageKey = 'amitySdk', persistIf = (entry) => entry
|
|
|
15288
15307
|
log('cache/api/backupCache', { storageKey });
|
|
15289
15308
|
// prepare a subset of the cache where only
|
|
15290
15309
|
// objects to backup are there
|
|
15291
|
-
const offlineEntries = Object.fromEntries(Object.entries(cache.data)
|
|
15292
|
-
.filter(([_, entry]) => persistIf(entry)));
|
|
15310
|
+
const offlineEntries = Object.fromEntries(Object.entries(cache.data).filter(([_, entry]) => persistIf(entry)));
|
|
15293
15311
|
// nothing to backup, abort
|
|
15294
15312
|
if (!Object.keys(offlineEntries).length)
|
|
15295
15313
|
return false;
|
|
@@ -15335,9 +15353,9 @@ const wipeCache = async (storageKey = 'amitySdk') => {
|
|
|
15335
15353
|
* @category Cache
|
|
15336
15354
|
* @hidden
|
|
15337
15355
|
*/
|
|
15338
|
-
const normalize = (source) =>
|
|
15356
|
+
const normalize = (source) => Object.keys(source)
|
|
15339
15357
|
.sort()
|
|
15340
|
-
.reduce((acc, key) => (Object.assign(Object.assign({}, acc), { [key]: source[key] })), {})
|
|
15358
|
+
.reduce((acc, key) => (Object.assign(Object.assign({}, acc), { [key]: source[key] })), {});
|
|
15341
15359
|
/**
|
|
15342
15360
|
* Encodes a given {@link Amity.CacheKey} to a plain string
|
|
15343
15361
|
*
|
|
@@ -15347,7 +15365,7 @@ const normalize = (source) => (Object.keys(source)
|
|
|
15347
15365
|
* @category Cache
|
|
15348
15366
|
* @hidden
|
|
15349
15367
|
*/
|
|
15350
|
-
const encodeKey = (key) =>
|
|
15368
|
+
const encodeKey = (key) => JSON.stringify(key, (_, val) => (typeof val === 'object' ? normalize(val) : val));
|
|
15351
15369
|
/**
|
|
15352
15370
|
* Decodes a string back into a {@link Amity.CacheKey}
|
|
15353
15371
|
|
|
@@ -15372,14 +15390,14 @@ const partialMatch = (predicate, candidate) => {
|
|
|
15372
15390
|
if (predicate === candidate)
|
|
15373
15391
|
return true;
|
|
15374
15392
|
// if one or the other is nullish, there can't be equality
|
|
15375
|
-
|
|
15393
|
+
if (!predicate || !candidate)
|
|
15376
15394
|
return false;
|
|
15377
15395
|
// we only perform recursive check on objects
|
|
15378
|
-
|
|
15396
|
+
if (typeof predicate !== 'object') {
|
|
15379
15397
|
return false;
|
|
15380
15398
|
}
|
|
15381
15399
|
// recursively call for partial match based on the predicate
|
|
15382
|
-
return Object.keys(predicate).every(
|
|
15400
|
+
return Object.keys(predicate).every(key => partialMatch(predicate[key], candidate[key]));
|
|
15383
15401
|
};
|
|
15384
15402
|
|
|
15385
15403
|
/**
|
|
@@ -15402,8 +15420,7 @@ const queryCache = (key) => {
|
|
|
15402
15420
|
if (!cache)
|
|
15403
15421
|
return;
|
|
15404
15422
|
log('cache/api/queryCache', { key });
|
|
15405
|
-
return Object
|
|
15406
|
-
.keys(cache.data)
|
|
15423
|
+
return Object.keys(cache.data)
|
|
15407
15424
|
.filter(stringKey => {
|
|
15408
15425
|
const decodedKey = decodeKey(stringKey);
|
|
15409
15426
|
return partialMatch(key, decodedKey);
|
|
@@ -15432,9 +15449,7 @@ const pullFromCache = (key) => {
|
|
|
15432
15449
|
return;
|
|
15433
15450
|
log('cache/api/pullFromCache', key);
|
|
15434
15451
|
const str = encodeKey(key);
|
|
15435
|
-
return
|
|
15436
|
-
? cache.data[str]
|
|
15437
|
-
: undefined;
|
|
15452
|
+
return cache.data[str] ? cache.data[str] : undefined;
|
|
15438
15453
|
};
|
|
15439
15454
|
|
|
15440
15455
|
/**
|
|
@@ -15460,8 +15475,10 @@ const pushToCache = (key, data, options = { cachedAt: Date.now() }) => {
|
|
|
15460
15475
|
// if consumer did not pass offline but a offline policy is
|
|
15461
15476
|
// defined, use the fn to determine if the object needs to
|
|
15462
15477
|
// be saved in persistent storage or not.
|
|
15463
|
-
if (!(options === null || options === void 0 ? void 0 : options.hasOwnProperty('offline')) && cache.persistIf)
|
|
15478
|
+
if (!(options === null || options === void 0 ? void 0 : options.hasOwnProperty('offline')) && cache.persistIf) {
|
|
15479
|
+
// eslint-disable-next-line no-param-reassign
|
|
15464
15480
|
options.offline = cache.persistIf(key, data);
|
|
15481
|
+
}
|
|
15465
15482
|
const encodedKey = encodeKey(key);
|
|
15466
15483
|
cache.data[encodedKey] = Object.assign({ key, data }, options);
|
|
15467
15484
|
return true;
|
|
@@ -15493,9 +15510,7 @@ const mergeInCache = (key, mutation, options) => {
|
|
|
15493
15510
|
const oldVal = pullFromCache(key);
|
|
15494
15511
|
if (!oldVal)
|
|
15495
15512
|
return false;
|
|
15496
|
-
const newVal = typeof mutation === 'function'
|
|
15497
|
-
? mutation(oldVal.data)
|
|
15498
|
-
: Object.assign(Object.assign({}, oldVal.data), mutation);
|
|
15513
|
+
const newVal = typeof mutation === 'function' ? mutation(oldVal.data) : Object.assign(Object.assign({}, oldVal.data), mutation);
|
|
15499
15514
|
pushToCache(key, newVal, options);
|
|
15500
15515
|
return true;
|
|
15501
15516
|
};
|
|
@@ -15523,9 +15538,7 @@ const upsertInCache = (key, data, options = { cachedAt: Date.now() }) => {
|
|
|
15523
15538
|
return false;
|
|
15524
15539
|
log('cache/api/upsertInCache', { key, data, options });
|
|
15525
15540
|
const cached = pullFromCache(key);
|
|
15526
|
-
return cached
|
|
15527
|
-
? mergeInCache(key, data, options)
|
|
15528
|
-
: pushToCache(key, data, options);
|
|
15541
|
+
return cached ? mergeInCache(key, data, options) : pushToCache(key, data, options);
|
|
15529
15542
|
};
|
|
15530
15543
|
|
|
15531
15544
|
/**
|
|
@@ -15549,7 +15562,7 @@ const dropFromCache = (key, exact = false) => {
|
|
|
15549
15562
|
return false;
|
|
15550
15563
|
log('cache/api/dropFromCache', { key, exact });
|
|
15551
15564
|
if (!exact) {
|
|
15552
|
-
return
|
|
15565
|
+
return Object.keys(cache.data)
|
|
15553
15566
|
.map(stringKey => decodeKey(stringKey))
|
|
15554
15567
|
.filter(candidate => partialMatch(key, candidate))
|
|
15555
15568
|
.map(filteredKey => dropFromCache(filteredKey, true))
|
|
@@ -15572,9 +15585,11 @@ const idResolvers = {
|
|
|
15572
15585
|
channelUsers: ({ channelId, userId }) => `${channelId}#${userId}`,
|
|
15573
15586
|
message: ({ messageId }) => messageId,
|
|
15574
15587
|
community: ({ communityId }) => communityId,
|
|
15588
|
+
category: ({ categoryId }) => categoryId,
|
|
15575
15589
|
communityUsers: ({ communityId, userId }) => `${communityId}#${userId}`,
|
|
15576
15590
|
post: ({ postId }) => postId,
|
|
15577
15591
|
comment: ({ commentId }) => commentId,
|
|
15592
|
+
poll: ({ pollId }) => pollId,
|
|
15578
15593
|
stream: ({ streamId }) => streamId,
|
|
15579
15594
|
follow: ({ from, to }) => `${from}#${to}`,
|
|
15580
15595
|
followCount: ({ userId }) => userId,
|
|
@@ -15585,7 +15600,7 @@ const idResolvers = {
|
|
|
15585
15600
|
* @param name the domain name for the resolve
|
|
15586
15601
|
* @returns an idResolver function for the given domain name
|
|
15587
15602
|
*/
|
|
15588
|
-
const getResolver = (name) =>
|
|
15603
|
+
const getResolver = (name) => idResolvers[name];
|
|
15589
15604
|
|
|
15590
15605
|
/**
|
|
15591
15606
|
* A map of v3 response keys to a store name.
|
|
@@ -15599,13 +15614,15 @@ const PAYLOAD2MODEL = {
|
|
|
15599
15614
|
channelUsers: 'channelUsers',
|
|
15600
15615
|
messages: 'message',
|
|
15601
15616
|
communities: 'community',
|
|
15617
|
+
categories: 'category',
|
|
15602
15618
|
communityUsers: 'communityUsers',
|
|
15603
15619
|
posts: 'post',
|
|
15604
15620
|
postChildren: 'post',
|
|
15605
15621
|
comments: 'comment',
|
|
15622
|
+
polls: 'poll',
|
|
15606
15623
|
videoStreamings: 'stream',
|
|
15607
15624
|
follows: 'follow',
|
|
15608
|
-
followCounts: 'followCount'
|
|
15625
|
+
followCounts: 'followCount',
|
|
15609
15626
|
};
|
|
15610
15627
|
|
|
15611
15628
|
/**
|
|
@@ -15618,8 +15635,7 @@ const PAYLOAD2MODEL = {
|
|
|
15618
15635
|
* @hidden
|
|
15619
15636
|
*/
|
|
15620
15637
|
const ingestInCache = (payload = {}, options) => {
|
|
15621
|
-
Object.entries(payload)
|
|
15622
|
-
.forEach(([key, models]) => {
|
|
15638
|
+
Object.entries(payload).forEach(([key, models]) => {
|
|
15623
15639
|
const type = PAYLOAD2MODEL[key];
|
|
15624
15640
|
if (!type)
|
|
15625
15641
|
return;
|
|
@@ -15699,13 +15715,15 @@ const getUsers = async (userIds) => {
|
|
|
15699
15715
|
client.log('user/getUsers', userIds);
|
|
15700
15716
|
const encodedUserIds = userIds.map(userId => encodeURIComponent(userId));
|
|
15701
15717
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
15702
|
-
const { data } = await client.http.get(`/api/v3/users/list`, {
|
|
15718
|
+
const { data } = await client.http.get(`/api/v3/users/list`, {
|
|
15719
|
+
params: { userIds: encodedUserIds },
|
|
15720
|
+
});
|
|
15703
15721
|
const cachedAt = client.cache && Date.now();
|
|
15704
15722
|
if (client.cache)
|
|
15705
15723
|
ingestInCache(data, { cachedAt });
|
|
15706
15724
|
return {
|
|
15707
15725
|
data: data.users,
|
|
15708
|
-
cachedAt
|
|
15726
|
+
cachedAt,
|
|
15709
15727
|
};
|
|
15710
15728
|
};
|
|
15711
15729
|
/**
|
|
@@ -15731,7 +15749,7 @@ getUsers.locally = (userIds) => {
|
|
|
15731
15749
|
.map(userId => pullFromCache(['user', 'get', userId]))
|
|
15732
15750
|
.filter(Boolean);
|
|
15733
15751
|
const users = cached.map(({ data }) => data);
|
|
15734
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
15752
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
15735
15753
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < userIds.length)
|
|
15736
15754
|
return;
|
|
15737
15755
|
return {
|
|
@@ -15785,14 +15803,14 @@ function __rest(s, e) {
|
|
|
15785
15803
|
const queryUsers = async (query = {}) => {
|
|
15786
15804
|
const client = getActiveClient();
|
|
15787
15805
|
client.log('user/queryUsers', query);
|
|
15788
|
-
const { page, displayName, filter = 'all', sortBy = 'displayName' } = query, params = __rest(query
|
|
15789
|
-
// API-FIX: parameters should be querystring.
|
|
15790
|
-
, ["page", "displayName", "filter", "sortBy"]);
|
|
15806
|
+
const { page, displayName, filter = 'all', sortBy = 'displayName' } = query, params = __rest(query, ["page", "displayName", "filter", "sortBy"]);
|
|
15791
15807
|
// API-FIX: parameters should be querystring.
|
|
15792
|
-
const { data } = await client.http.get(`/api/v3/users`, {
|
|
15808
|
+
const { data } = await client.http.get(`/api/v3/users`, {
|
|
15809
|
+
params: Object.assign(Object.assign({}, params), { keyword: displayName, filter,
|
|
15793
15810
|
sortBy, options: {
|
|
15794
15811
|
token: toToken(page, 'skiplimit'),
|
|
15795
|
-
} })
|
|
15812
|
+
} }),
|
|
15813
|
+
});
|
|
15796
15814
|
// unpacking
|
|
15797
15815
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
15798
15816
|
const { users } = payload;
|
|
@@ -15998,7 +16016,7 @@ const observeUser = (userId, callback) => {
|
|
|
15998
16016
|
*
|
|
15999
16017
|
* Fetches a {@link Amity.File} object
|
|
16000
16018
|
*
|
|
16001
|
-
* @param
|
|
16019
|
+
* @param fileId the ID of the {@link Amity.File} to fetch
|
|
16002
16020
|
* @returns the associated {@link Amity.File} object
|
|
16003
16021
|
*
|
|
16004
16022
|
* @category File API
|
|
@@ -16054,6 +16072,7 @@ getFile.locally = (fileId) => {
|
|
|
16054
16072
|
* Creates an {@link Amity.File}
|
|
16055
16073
|
*
|
|
16056
16074
|
* @param formData The data necessary to create a new {@link Amity.File}
|
|
16075
|
+
* @param onProgress The callback to track the upload progress
|
|
16057
16076
|
* @returns The newly created {@link Amity.File}
|
|
16058
16077
|
*
|
|
16059
16078
|
* @category File API
|
|
@@ -16062,15 +16081,16 @@ getFile.locally = (fileId) => {
|
|
|
16062
16081
|
const createFile = async (formData, onProgress) => {
|
|
16063
16082
|
const client = getActiveClient();
|
|
16064
16083
|
client.log('file/createFile', formData);
|
|
16065
|
-
if (!formData.getAll('
|
|
16066
|
-
throw new Error('The formData object must have a `
|
|
16084
|
+
if (!formData.getAll('files').length)
|
|
16085
|
+
throw new Error('The formData object must have a `files` key.');
|
|
16067
16086
|
const headers = 'getHeaders' in formData
|
|
16068
16087
|
? formData.getHeaders()
|
|
16069
16088
|
: { 'content-type': 'multipart/form-data' };
|
|
16070
|
-
const { data } = await client.http.post('/api/
|
|
16071
|
-
headers,
|
|
16089
|
+
const { data } = await client.http.post('/api/v4/files', formData, {
|
|
16090
|
+
headers,
|
|
16091
|
+
onUploadProgress({ loaded, total }) {
|
|
16072
16092
|
onProgress && onProgress(Math.round((loaded * 100) / total));
|
|
16073
|
-
}
|
|
16093
|
+
},
|
|
16074
16094
|
});
|
|
16075
16095
|
// API-FIX: payload should be serialized properly
|
|
16076
16096
|
// const { files } = data
|
|
@@ -16078,7 +16098,7 @@ const createFile = async (formData, onProgress) => {
|
|
|
16078
16098
|
if (client.cache)
|
|
16079
16099
|
ingestInCache({ files: data }, { cachedAt });
|
|
16080
16100
|
return {
|
|
16081
|
-
data
|
|
16101
|
+
data,
|
|
16082
16102
|
cachedAt,
|
|
16083
16103
|
};
|
|
16084
16104
|
};
|
|
@@ -16118,6 +16138,88 @@ const fileUrlWithSize = (fileUrl, size) => {
|
|
|
16118
16138
|
return `${fileUrl}?size=${size}`;
|
|
16119
16139
|
};
|
|
16120
16140
|
|
|
16141
|
+
/**
|
|
16142
|
+
* ```js
|
|
16143
|
+
* import { createVideo } from '@amityco/ts-sdk'
|
|
16144
|
+
* const created = await createVideo(formData)
|
|
16145
|
+
* ```
|
|
16146
|
+
*
|
|
16147
|
+
* Creates an {@link Amity.File<'video'>}
|
|
16148
|
+
*
|
|
16149
|
+
* @param formData The data necessary to create a new {@link Amity.File<'video'>}
|
|
16150
|
+
* @param onProgress The callback to track the upload progress
|
|
16151
|
+
* @returns The newly created {@link Amity.File<'video'>}
|
|
16152
|
+
*
|
|
16153
|
+
* @category File API
|
|
16154
|
+
* @async
|
|
16155
|
+
*/
|
|
16156
|
+
const createVideo = async (formData, onProgress) => {
|
|
16157
|
+
const client = getActiveClient();
|
|
16158
|
+
client.log('file/createVideo', formData);
|
|
16159
|
+
if (!formData.getAll('files').length)
|
|
16160
|
+
throw new Error('The formData object must have a `files` key.');
|
|
16161
|
+
const headers = 'getHeaders' in formData
|
|
16162
|
+
? formData.getHeaders()
|
|
16163
|
+
: { 'content-type': 'multipart/form-data' };
|
|
16164
|
+
const { data } = await client.http.post('/api/v4/videos', formData, {
|
|
16165
|
+
headers,
|
|
16166
|
+
onUploadProgress({ loaded, total }) {
|
|
16167
|
+
onProgress && onProgress(Math.round((loaded * 100) / total));
|
|
16168
|
+
},
|
|
16169
|
+
});
|
|
16170
|
+
// API-FIX: payload should be serialized properly
|
|
16171
|
+
// const { files } = data
|
|
16172
|
+
const cachedAt = client.cache && Date.now();
|
|
16173
|
+
if (client.cache)
|
|
16174
|
+
ingestInCache({ files: data }, { cachedAt });
|
|
16175
|
+
return {
|
|
16176
|
+
data,
|
|
16177
|
+
cachedAt,
|
|
16178
|
+
};
|
|
16179
|
+
};
|
|
16180
|
+
// TODO: consider doing local creation with URL.createObjectURL()
|
|
16181
|
+
|
|
16182
|
+
/**
|
|
16183
|
+
* ```js
|
|
16184
|
+
* import { createImage } from '@amityco/ts-sdk'
|
|
16185
|
+
* const created = await createImage(formData)
|
|
16186
|
+
* ```
|
|
16187
|
+
*
|
|
16188
|
+
* Creates an {@link Amity.File<'image'>}
|
|
16189
|
+
*
|
|
16190
|
+
* @param formData The data necessary to create a new {@link Amity.File<'image'>}
|
|
16191
|
+
* @param onProgress The callback to track the upload progress
|
|
16192
|
+
* @returns The newly created {@link Amity.File<'image'>}
|
|
16193
|
+
*
|
|
16194
|
+
* @category File API
|
|
16195
|
+
* @async
|
|
16196
|
+
*/
|
|
16197
|
+
const createImage = async (formData, onProgress) => {
|
|
16198
|
+
const client = getActiveClient();
|
|
16199
|
+
client.log('file/createImage', formData);
|
|
16200
|
+
if (!formData.getAll('files').length)
|
|
16201
|
+
throw new Error('The formData object must have a `files` key.');
|
|
16202
|
+
const headers = 'getHeaders' in formData
|
|
16203
|
+
? formData.getHeaders()
|
|
16204
|
+
: { 'content-type': 'multipart/form-data' };
|
|
16205
|
+
const { data } = await client.http.post('/api/v4/images', formData, {
|
|
16206
|
+
headers,
|
|
16207
|
+
onUploadProgress({ loaded, total }) {
|
|
16208
|
+
onProgress && onProgress(Math.round((loaded * 100) / total));
|
|
16209
|
+
},
|
|
16210
|
+
});
|
|
16211
|
+
// API-FIX: payload should be serialized properly
|
|
16212
|
+
// const { files } = data
|
|
16213
|
+
const cachedAt = client.cache && Date.now();
|
|
16214
|
+
if (client.cache)
|
|
16215
|
+
ingestInCache({ files: data }, { cachedAt });
|
|
16216
|
+
return {
|
|
16217
|
+
data,
|
|
16218
|
+
cachedAt,
|
|
16219
|
+
};
|
|
16220
|
+
};
|
|
16221
|
+
// TODO: consider doing local creation with URL.createObjectURL()
|
|
16222
|
+
|
|
16121
16223
|
/**
|
|
16122
16224
|
* ```js
|
|
16123
16225
|
* import { observeFile } from '@amityco/ts-sdk'
|
|
@@ -16349,13 +16451,15 @@ const getMessages = async (messageIds) => {
|
|
|
16349
16451
|
const client = getActiveClient();
|
|
16350
16452
|
client.log('message/getMessages', messageIds);
|
|
16351
16453
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
16352
|
-
const { data } = await client.http.get(`/api/v3/messages/list`, {
|
|
16454
|
+
const { data } = await client.http.get(`/api/v3/messages/list`, {
|
|
16455
|
+
params: { messageIds },
|
|
16456
|
+
});
|
|
16353
16457
|
const cachedAt = client.cache && Date.now();
|
|
16354
16458
|
if (client.cache)
|
|
16355
16459
|
ingestInCache(data, { cachedAt });
|
|
16356
16460
|
return {
|
|
16357
16461
|
data: data.messages,
|
|
16358
|
-
cachedAt
|
|
16462
|
+
cachedAt,
|
|
16359
16463
|
};
|
|
16360
16464
|
};
|
|
16361
16465
|
/**
|
|
@@ -16381,7 +16485,7 @@ getMessages.locally = (messageIds) => {
|
|
|
16381
16485
|
.map(messageId => pullFromCache(['message', 'get', messageId]))
|
|
16382
16486
|
.filter(Boolean);
|
|
16383
16487
|
const messages = cached.map(({ data }) => data);
|
|
16384
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
16488
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
16385
16489
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < messageIds.length)
|
|
16386
16490
|
return;
|
|
16387
16491
|
return {
|
|
@@ -16407,19 +16511,16 @@ getMessages.locally = (messageIds) => {
|
|
|
16407
16511
|
const queryMessages = async (query) => {
|
|
16408
16512
|
const client = getActiveClient();
|
|
16409
16513
|
client.log('message/queryMessages', query);
|
|
16410
|
-
const { page = { limit: 10 } } = query, params = __rest(query
|
|
16411
|
-
// API-FIX: parameters should be querystring. (1)
|
|
16412
|
-
// API-FIX: backend should answer Amity.Response (2)
|
|
16413
|
-
// API-FIX: pagination should not be indexed on channelSegment (3)
|
|
16414
|
-
// const { data } = await client.http.get<Amity.Response<Amity.Paged<Amity.MessagePayload>>>(
|
|
16415
|
-
, ["page"]);
|
|
16514
|
+
const { page = { limit: 10 } } = query, params = __rest(query, ["page"]);
|
|
16416
16515
|
// API-FIX: parameters should be querystring. (1)
|
|
16417
16516
|
// API-FIX: backend should answer Amity.Response (2)
|
|
16418
16517
|
// API-FIX: pagination should not be indexed on channelSegment (3)
|
|
16419
16518
|
// const { data } = await client.http.get<Amity.Response<Amity.Paged<Amity.MessagePayload>>>(
|
|
16420
|
-
const { data } = await client.http.get(`/api/v3/messages`, {
|
|
16519
|
+
const { data } = await client.http.get(`/api/v3/messages`, {
|
|
16520
|
+
params: Object.assign(Object.assign({}, params), { options: {
|
|
16421
16521
|
token: toToken(page, 'afterbefore'),
|
|
16422
|
-
} }),
|
|
16522
|
+
} }),
|
|
16523
|
+
});
|
|
16423
16524
|
// API-FIX: backend should answer Amity.Response (2)
|
|
16424
16525
|
// const { paging, messages } = unwrapPayload(data)
|
|
16425
16526
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
@@ -16427,7 +16528,11 @@ const queryMessages = async (query) => {
|
|
|
16427
16528
|
const cachedAt = client.cache && Date.now();
|
|
16428
16529
|
if (client.cache) {
|
|
16429
16530
|
ingestInCache(payload, { cachedAt });
|
|
16430
|
-
const cacheKey = [
|
|
16531
|
+
const cacheKey = [
|
|
16532
|
+
'message',
|
|
16533
|
+
'query',
|
|
16534
|
+
Object.assign(Object.assign({}, params), { options: Object.assign({}, page) }),
|
|
16535
|
+
];
|
|
16431
16536
|
pushToCache(cacheKey, { messages: messages.map(getResolver('message')), paging });
|
|
16432
16537
|
}
|
|
16433
16538
|
const nextPage = toPage(paging.next);
|
|
@@ -16529,7 +16634,7 @@ createMessage.optimistically = (bundle) => {
|
|
|
16529
16634
|
fireEvent('v3.message.didCreate', { messages: [message] });
|
|
16530
16635
|
return {
|
|
16531
16636
|
data: message,
|
|
16532
|
-
cachedAt: -1
|
|
16637
|
+
cachedAt: -1,
|
|
16533
16638
|
};
|
|
16534
16639
|
};
|
|
16535
16640
|
|
|
@@ -16593,7 +16698,7 @@ updateMessage.optimistically = (messageId, patch) => {
|
|
|
16593
16698
|
fireEvent('v3.message.didUpdate', { messages: [updated] });
|
|
16594
16699
|
return {
|
|
16595
16700
|
data: updated,
|
|
16596
|
-
cachedAt
|
|
16701
|
+
cachedAt,
|
|
16597
16702
|
};
|
|
16598
16703
|
};
|
|
16599
16704
|
|
|
@@ -16645,7 +16750,7 @@ deleteMessage.optimistically = (messageId) => {
|
|
|
16645
16750
|
fireEvent('v3.message.didDelete', { messages: [deleted] });
|
|
16646
16751
|
return {
|
|
16647
16752
|
data: deleted,
|
|
16648
|
-
cachedAt
|
|
16753
|
+
cachedAt,
|
|
16649
16754
|
};
|
|
16650
16755
|
};
|
|
16651
16756
|
|
|
@@ -16666,17 +16771,15 @@ deleteMessage.optimistically = (messageId) => {
|
|
|
16666
16771
|
const queryPosts = async (query) => {
|
|
16667
16772
|
const client = getActiveClient();
|
|
16668
16773
|
client.log('post/queryPosts', query);
|
|
16669
|
-
const { page = { limit: 10 } } = query, params = __rest(query
|
|
16670
|
-
// API-FIX: parameters should be querystring. (1)
|
|
16671
|
-
// API-FIX: backend should answer Amity.Response (2)
|
|
16672
|
-
// const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.PostPayload>>>(
|
|
16673
|
-
, ["page"]);
|
|
16774
|
+
const { page = { limit: 10 } } = query, params = __rest(query, ["page"]);
|
|
16674
16775
|
// API-FIX: parameters should be querystring. (1)
|
|
16675
16776
|
// API-FIX: backend should answer Amity.Response (2)
|
|
16676
16777
|
// const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.PostPayload>>>(
|
|
16677
|
-
const { data } = await client.http.get(`/api/v4/posts`, {
|
|
16778
|
+
const { data } = await client.http.get(`/api/v4/posts`, {
|
|
16779
|
+
params: Object.assign(Object.assign({}, params), { options: {
|
|
16678
16780
|
token: toToken(page, 'afterbeforeraw'),
|
|
16679
|
-
} }),
|
|
16781
|
+
} }),
|
|
16782
|
+
});
|
|
16680
16783
|
// API-FIX: backend should answer Amity.Response (2)
|
|
16681
16784
|
// const { paging, posts } = unwrapPayload(data)
|
|
16682
16785
|
// unpacking
|
|
@@ -16746,13 +16849,15 @@ const getPosts = async (postIds) => {
|
|
|
16746
16849
|
client.log('post/getPosts', postIds);
|
|
16747
16850
|
const encodedPostIds = postIds.map(postId => encodeURIComponent(postId));
|
|
16748
16851
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
16749
|
-
const { data } = await client.http.get(`/api/v3/posts/list`, {
|
|
16852
|
+
const { data } = await client.http.get(`/api/v3/posts/list`, {
|
|
16853
|
+
params: { postIds: encodedPostIds },
|
|
16854
|
+
});
|
|
16750
16855
|
const cachedAt = client.cache && Date.now();
|
|
16751
16856
|
if (client.cache)
|
|
16752
16857
|
ingestInCache(data, { cachedAt });
|
|
16753
16858
|
return {
|
|
16754
16859
|
data: data.posts,
|
|
16755
|
-
cachedAt
|
|
16860
|
+
cachedAt,
|
|
16756
16861
|
};
|
|
16757
16862
|
};
|
|
16758
16863
|
/**
|
|
@@ -16778,7 +16883,7 @@ getPosts.locally = (postIds) => {
|
|
|
16778
16883
|
.map(postId => pullFromCache(['post', 'get', postId]))
|
|
16779
16884
|
.filter(Boolean);
|
|
16780
16885
|
const posts = cached.map(({ data }) => data);
|
|
16781
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
16886
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
16782
16887
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < postIds.length)
|
|
16783
16888
|
return;
|
|
16784
16889
|
return {
|
|
@@ -16829,7 +16934,7 @@ const getPost = async (postId) => {
|
|
|
16829
16934
|
/**
|
|
16830
16935
|
* ```js
|
|
16831
16936
|
* import { getPost } from '@amityco/ts-sdk'
|
|
16832
|
-
* const { data
|
|
16937
|
+
* const { data: post } = getPost.locally('foobar')
|
|
16833
16938
|
* ```
|
|
16834
16939
|
*
|
|
16835
16940
|
* Fetches a {@link Amity.Post} object from cache
|
|
@@ -16875,8 +16980,10 @@ const createPost = async (bundle) => {
|
|
|
16875
16980
|
const client = getActiveClient();
|
|
16876
16981
|
client.log('post/createPost', bundle);
|
|
16877
16982
|
// API-FIX: backend rejects that we pass the dataType manually T_T
|
|
16878
|
-
if (!bundle.dataType || ['text', 'image', 'file', 'video'].includes(bundle.dataType))
|
|
16983
|
+
if (!bundle.dataType || ['text', 'image', 'file', 'video'].includes(bundle.dataType)) {
|
|
16984
|
+
// eslint-disable-next-line no-param-reassign
|
|
16879
16985
|
delete bundle.dataType;
|
|
16986
|
+
}
|
|
16880
16987
|
const { data } = await client.http.post('/api/v4/posts', bundle);
|
|
16881
16988
|
const cachedAt = client.cache && Date.now();
|
|
16882
16989
|
if (client.cache)
|
|
@@ -16944,15 +17051,21 @@ const queryCommunities = async (query) => {
|
|
|
16944
17051
|
// API-FIX: parameters should be querystring.
|
|
16945
17052
|
// API-FIX: backend doesnt answer Amity.Response
|
|
16946
17053
|
// const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<CommunityPayload>>>(
|
|
16947
|
-
const { data } = await client.http.get(`/api/v3/communities`, {
|
|
16948
|
-
|
|
16949
|
-
|
|
17054
|
+
const { data } = await client.http.get(`/api/v3/communities`, {
|
|
17055
|
+
params: Object.assign(Object.assign({}, params), { keyword: displayName, filter: membership, options: {
|
|
17056
|
+
token: toToken(page, 'skiplimit'),
|
|
17057
|
+
} }),
|
|
17058
|
+
});
|
|
16950
17059
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
16951
17060
|
const { communities } = payload;
|
|
16952
17061
|
const cachedAt = client.cache && Date.now();
|
|
16953
17062
|
if (client.cache) {
|
|
16954
17063
|
ingestInCache(payload, { cachedAt });
|
|
16955
|
-
const cacheKey = [
|
|
17064
|
+
const cacheKey = [
|
|
17065
|
+
'community',
|
|
17066
|
+
'query',
|
|
17067
|
+
Object.assign(Object.assign({}, params), { options: Object.assign({}, page) }),
|
|
17068
|
+
];
|
|
16956
17069
|
pushToCache(cacheKey, { communities: communities.map(getResolver('community')), paging });
|
|
16957
17070
|
}
|
|
16958
17071
|
const nextPage = toPage(paging.next);
|
|
@@ -16996,13 +17109,15 @@ const getCommunities = async (communityIds) => {
|
|
|
16996
17109
|
const client = getActiveClient();
|
|
16997
17110
|
client.log('community/getCommunities', communityIds);
|
|
16998
17111
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
16999
|
-
const { data } = await client.http.get(`/api/v3/communities/list`, {
|
|
17112
|
+
const { data } = await client.http.get(`/api/v3/communities/list`, {
|
|
17113
|
+
params: { communityIds },
|
|
17114
|
+
});
|
|
17000
17115
|
const cachedAt = client.cache && Date.now();
|
|
17001
17116
|
if (client.cache)
|
|
17002
17117
|
ingestInCache(data, { cachedAt });
|
|
17003
17118
|
return {
|
|
17004
17119
|
data: data.communities,
|
|
17005
|
-
cachedAt
|
|
17120
|
+
cachedAt,
|
|
17006
17121
|
};
|
|
17007
17122
|
};
|
|
17008
17123
|
/**
|
|
@@ -17028,7 +17143,7 @@ getCommunities.locally = (communityIds) => {
|
|
|
17028
17143
|
.map(communityId => pullFromCache(['community', 'get', communityId]))
|
|
17029
17144
|
.filter(Boolean);
|
|
17030
17145
|
const communities = cached.map(({ data }) => data);
|
|
17031
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
17146
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
17032
17147
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < communityIds.length)
|
|
17033
17148
|
return;
|
|
17034
17149
|
return {
|
|
@@ -17198,8 +17313,7 @@ const joinCommunity = async (communityId) => {
|
|
|
17198
17313
|
ingestInCache(data, { cachedAt });
|
|
17199
17314
|
fireEvent('community.joined', data);
|
|
17200
17315
|
const { communityUsers } = data;
|
|
17201
|
-
return !!communityUsers.find(communityUser =>
|
|
17202
|
-
&& communityUser.communityMembership === 'member'));
|
|
17316
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId && communityUser.communityMembership === 'member');
|
|
17203
17317
|
};
|
|
17204
17318
|
|
|
17205
17319
|
/**
|
|
@@ -17225,8 +17339,7 @@ const leaveCommunity = async (communityId) => {
|
|
|
17225
17339
|
ingestInCache(data, { cachedAt });
|
|
17226
17340
|
fireEvent('community.left', data);
|
|
17227
17341
|
const { communityUsers } = data;
|
|
17228
|
-
return !!communityUsers.find(communityUser =>
|
|
17229
|
-
&& communityUser.communityMembership !== 'member'));
|
|
17342
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId && communityUser.communityMembership !== 'member');
|
|
17230
17343
|
};
|
|
17231
17344
|
|
|
17232
17345
|
/**
|
|
@@ -17242,7 +17355,7 @@ const leaveCommunity = async (communityId) => {
|
|
|
17242
17355
|
*
|
|
17243
17356
|
* @category Community API
|
|
17244
17357
|
* @async
|
|
17245
|
-
|
|
17358
|
+
* */
|
|
17246
17359
|
const queryCommunityMembers = async (query) => {
|
|
17247
17360
|
const client = getActiveClient();
|
|
17248
17361
|
client.log('community/queryCommunityMembers', query);
|
|
@@ -17304,8 +17417,7 @@ const addCommunityMembers = async (communityId, userIds) => {
|
|
|
17304
17417
|
ingestInCache(data);
|
|
17305
17418
|
fireEvent('community.userAdded', data);
|
|
17306
17419
|
const { communityUsers } = data;
|
|
17307
|
-
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17308
|
-
communityUser.communityMembership === 'member');
|
|
17420
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId && communityUser.communityMembership === 'member');
|
|
17309
17421
|
};
|
|
17310
17422
|
|
|
17311
17423
|
/**
|
|
@@ -17331,60 +17443,61 @@ const removeCommunityMembers = async (communityId, userIds) => {
|
|
|
17331
17443
|
ingestInCache(data);
|
|
17332
17444
|
fireEvent('community.userRemoved', data);
|
|
17333
17445
|
const { communityUsers } = data;
|
|
17334
|
-
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17335
|
-
communityUser.communityMembership !== 'member');
|
|
17446
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId && communityUser.communityMembership !== 'member');
|
|
17336
17447
|
};
|
|
17337
17448
|
|
|
17338
17449
|
/**
|
|
17339
17450
|
* ```js
|
|
17340
|
-
* import {
|
|
17341
|
-
* const updated = await
|
|
17451
|
+
* import { addCommunityMembersRoles } from '@amityco/ts-sdk'
|
|
17452
|
+
* const updated = await addCommunityMembersRoles(communityId, ['foo'], ['bar'])
|
|
17342
17453
|
* ```
|
|
17343
17454
|
*
|
|
17344
|
-
* Adds
|
|
17455
|
+
* Adds a list of {@link Amity.Role} to a list of {@link Amity.User} on a {@link Amity.Community}
|
|
17345
17456
|
*
|
|
17346
17457
|
* @param communityId The ID of the {@link Amity.Community} to perform
|
|
17347
|
-
* @param
|
|
17458
|
+
* @param roleIds Array of IDs of the {@link Amity.Role} to apply
|
|
17348
17459
|
* @param userId Array of IDs of the {@link Amity.User} to perform
|
|
17349
17460
|
* @returns A success boolean if the {@link Amity.Role} were added to list of {@link Amity.User} in the {@link Amity.Community}
|
|
17350
17461
|
*
|
|
17351
17462
|
* @category Community API
|
|
17352
17463
|
* @async
|
|
17353
17464
|
*/
|
|
17354
|
-
const
|
|
17465
|
+
const addCommunityMembersRoles = async (communityId, roleIds, userIds) => {
|
|
17355
17466
|
const client = getActiveClient();
|
|
17356
|
-
client.log('community/
|
|
17357
|
-
const { data } = await client.http.post(`/api/
|
|
17467
|
+
client.log('community/addCommunityMembersRoles', communityId, roleIds, userIds);
|
|
17468
|
+
const { data } = await client.http.post(`/api/v4/communities/${communityId}/users/roles`, { communityId, roles: roleIds, userIds });
|
|
17358
17469
|
if (client.cache)
|
|
17359
17470
|
ingestInCache(data);
|
|
17360
17471
|
const { communityUsers } = data;
|
|
17361
|
-
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17472
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17473
|
+
roleIds.some(role => communityUser.roles.includes(role)));
|
|
17362
17474
|
};
|
|
17363
17475
|
|
|
17364
17476
|
/**
|
|
17365
17477
|
* ```js
|
|
17366
|
-
* import {
|
|
17367
|
-
* const updated = await
|
|
17478
|
+
* import { removeCommunityMembersRoles } from '@amityco/ts-sdk'
|
|
17479
|
+
* const updated = await removeCommunityMembersRoles(communityId, ['foo'], ['bar'])
|
|
17368
17480
|
* ```
|
|
17369
17481
|
*
|
|
17370
|
-
* Removes
|
|
17482
|
+
* Removes a list of {@link Amity.Role} from a list of {@link Amity.User} on a {@link Amity.Community}
|
|
17371
17483
|
*
|
|
17372
17484
|
* @param communityId The ID of the {@link Amity.Community} to perform
|
|
17373
|
-
* @param
|
|
17485
|
+
* @param roleIds Array of IDs of the {@link Amity.Role} to apply
|
|
17374
17486
|
* @param userId Array of IDs of the {@link Amity.User} to perform
|
|
17375
17487
|
* @returns A success boolean if the {@link Amity.Role} were removed from list of {@link Amity.User} in the {@link Amity.Community}
|
|
17376
17488
|
*
|
|
17377
17489
|
* @category Community API
|
|
17378
17490
|
* @async
|
|
17379
17491
|
*/
|
|
17380
|
-
const
|
|
17492
|
+
const removeCommunityMembersRoles = async (communityId, roleIds, userIds) => {
|
|
17381
17493
|
const client = getActiveClient();
|
|
17382
|
-
client.log('community/
|
|
17383
|
-
const { data } = await client.http.delete(`/api/
|
|
17494
|
+
client.log('community/removeCommunityMembersRoles', communityId, roleIds, userIds);
|
|
17495
|
+
const { data } = await client.http.delete(`/api/v4/communities/${communityId}/users/roles`, { data: { communityId, roles: roleIds, userIds } });
|
|
17384
17496
|
if (client.cache)
|
|
17385
17497
|
ingestInCache(data);
|
|
17386
17498
|
const { communityUsers } = data;
|
|
17387
|
-
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17499
|
+
return !!communityUsers.find(communityUser => communityUser.communityId === communityId &&
|
|
17500
|
+
!roleIds.some(role => communityUser.roles.includes(role)));
|
|
17388
17501
|
};
|
|
17389
17502
|
|
|
17390
17503
|
/**
|
|
@@ -17530,7 +17643,7 @@ getRecommendedCommunities.locally = (query) => {
|
|
|
17530
17643
|
const deletePost = async (postId, permanent = false) => {
|
|
17531
17644
|
const client = getActiveClient();
|
|
17532
17645
|
client.log('post/deletePost', postId);
|
|
17533
|
-
|
|
17646
|
+
const post = await getPost(postId);
|
|
17534
17647
|
// API-FIX: This endpoint has not been implemented yet.
|
|
17535
17648
|
await client.http.delete(`/api/v4/posts/${encodeURIComponent(postId)}`, {
|
|
17536
17649
|
params: {
|
|
@@ -17577,12 +17690,7 @@ const deletePost = async (postId, permanent = false) => {
|
|
|
17577
17690
|
const queryComments = async (query) => {
|
|
17578
17691
|
const client = getActiveClient();
|
|
17579
17692
|
client.log('comment/queryComments', query);
|
|
17580
|
-
const { page = { limit: 10 } } = query, params = __rest(query
|
|
17581
|
-
// const filterByParentId = query.parentId !== undefined
|
|
17582
|
-
// API-FIX: parameters should be querystring. (1)
|
|
17583
|
-
// API-FIX: backend should answer Amity.Response (2)
|
|
17584
|
-
// const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.CommentPayload>>>(
|
|
17585
|
-
, ["page"]);
|
|
17693
|
+
const { page = { limit: 10 } } = query, params = __rest(query, ["page"]);
|
|
17586
17694
|
// const filterByParentId = query.parentId !== undefined
|
|
17587
17695
|
// API-FIX: parameters should be querystring. (1)
|
|
17588
17696
|
// API-FIX: backend should answer Amity.Response (2)
|
|
@@ -17601,7 +17709,11 @@ const queryComments = async (query) => {
|
|
|
17601
17709
|
const cachedAt = client.cache && Date.now();
|
|
17602
17710
|
if (client.cache) {
|
|
17603
17711
|
ingestInCache(payload, { cachedAt });
|
|
17604
|
-
const cacheKey = [
|
|
17712
|
+
const cacheKey = [
|
|
17713
|
+
'comment',
|
|
17714
|
+
'query',
|
|
17715
|
+
Object.assign(Object.assign({}, params), { options: Object.assign({}, page) }),
|
|
17716
|
+
];
|
|
17605
17717
|
pushToCache(cacheKey, { comments: comments.map(getResolver('comment')), paging });
|
|
17606
17718
|
}
|
|
17607
17719
|
const nextPage = toPage(paging.next);
|
|
@@ -17662,13 +17774,15 @@ const getComments = async (commentIds) => {
|
|
|
17662
17774
|
client.log('comment/getComments', commentIds);
|
|
17663
17775
|
const encodedCommentIds = commentIds.map(commentId => encodeURIComponent(commentId));
|
|
17664
17776
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
17665
|
-
const { data } = await client.http.get(`/api/v3/comments/list`, {
|
|
17777
|
+
const { data } = await client.http.get(`/api/v3/comments/list`, {
|
|
17778
|
+
params: { commentIds: encodedCommentIds },
|
|
17779
|
+
});
|
|
17666
17780
|
const cachedAt = client.cache && Date.now();
|
|
17667
17781
|
if (client.cache)
|
|
17668
17782
|
ingestInCache(data, { cachedAt });
|
|
17669
17783
|
return {
|
|
17670
17784
|
data: data.comments,
|
|
17671
|
-
cachedAt
|
|
17785
|
+
cachedAt,
|
|
17672
17786
|
};
|
|
17673
17787
|
};
|
|
17674
17788
|
/**
|
|
@@ -17694,7 +17808,7 @@ getComments.locally = (commentIds) => {
|
|
|
17694
17808
|
.map(commentId => pullFromCache(['comment', 'get', commentId]))
|
|
17695
17809
|
.filter(Boolean);
|
|
17696
17810
|
const comments = cached.map(({ data }) => data);
|
|
17697
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
17811
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
17698
17812
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < commentIds.length)
|
|
17699
17813
|
return;
|
|
17700
17814
|
return {
|
|
@@ -17877,9 +17991,9 @@ const deleteComment = async (commentId, permanent = false) => {
|
|
|
17877
17991
|
const fetchReference = async (referenceType, referenceId) => {
|
|
17878
17992
|
if (referenceType === 'message')
|
|
17879
17993
|
return getMessage(referenceId);
|
|
17880
|
-
|
|
17994
|
+
if (referenceType === 'post')
|
|
17881
17995
|
return getPost(referenceId);
|
|
17882
|
-
|
|
17996
|
+
if (referenceType === 'comment')
|
|
17883
17997
|
return getComment(referenceId);
|
|
17884
17998
|
throw new Error(`Incorrect referenceType: ${referenceType}`);
|
|
17885
17999
|
};
|
|
@@ -17916,7 +18030,9 @@ const preparePayloadForCache = (event, payload) => {
|
|
|
17916
18030
|
if (!cached.myReactions.includes(payload.reactor.reactionName)) {
|
|
17917
18031
|
return;
|
|
17918
18032
|
}
|
|
17919
|
-
Object.assign(model, {
|
|
18033
|
+
Object.assign(model, {
|
|
18034
|
+
myReactions: cached.myReactions.filter(x => x !== payload.reactor.reactionName),
|
|
18035
|
+
});
|
|
17920
18036
|
}
|
|
17921
18037
|
};
|
|
17922
18038
|
|
|
@@ -17935,7 +18051,7 @@ const preparePayloadForCache = (event, payload) => {
|
|
|
17935
18051
|
*
|
|
17936
18052
|
* @category Reaction API
|
|
17937
18053
|
* @async
|
|
17938
|
-
|
|
18054
|
+
* */
|
|
17939
18055
|
const addReaction = async (referenceType, referenceId, reactionName) => {
|
|
17940
18056
|
var _a, _b;
|
|
17941
18057
|
const client = getActiveClient();
|
|
@@ -17944,7 +18060,11 @@ const addReaction = async (referenceType, referenceId, reactionName) => {
|
|
|
17944
18060
|
referenceType,
|
|
17945
18061
|
reactionName,
|
|
17946
18062
|
});
|
|
17947
|
-
await client.http.post('/api/v2/reactions', {
|
|
18063
|
+
await client.http.post('/api/v2/reactions', {
|
|
18064
|
+
referenceId,
|
|
18065
|
+
referenceType,
|
|
18066
|
+
reactionName,
|
|
18067
|
+
});
|
|
17948
18068
|
const model = await fetchReference(referenceType, referenceId);
|
|
17949
18069
|
dispatchReactable(referenceType, model.data);
|
|
17950
18070
|
return (_b = (_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName)) !== null && _b !== void 0 ? _b : false;
|
|
@@ -17963,7 +18083,7 @@ const addReaction = async (referenceType, referenceId, reactionName) => {
|
|
|
17963
18083
|
* @returns The added result.
|
|
17964
18084
|
*
|
|
17965
18085
|
* @category Reaction API
|
|
17966
|
-
|
|
18086
|
+
* */
|
|
17967
18087
|
addReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
17968
18088
|
var _a, _b, _c, _d, _e;
|
|
17969
18089
|
const client = getActiveClient();
|
|
@@ -17974,7 +18094,11 @@ addReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
|
17974
18094
|
});
|
|
17975
18095
|
if (!client.cache)
|
|
17976
18096
|
return;
|
|
17977
|
-
const model = pullFromCache([
|
|
18097
|
+
const model = pullFromCache([
|
|
18098
|
+
referenceType,
|
|
18099
|
+
'get',
|
|
18100
|
+
referenceId,
|
|
18101
|
+
]);
|
|
17978
18102
|
if (!(model === null || model === void 0 ? void 0 : model.data) || ((_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName)))
|
|
17979
18103
|
return;
|
|
17980
18104
|
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 }) });
|
|
@@ -17998,7 +18122,7 @@ addReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
|
17998
18122
|
*
|
|
17999
18123
|
* @category Reaction API
|
|
18000
18124
|
* @async
|
|
18001
|
-
|
|
18125
|
+
* */
|
|
18002
18126
|
const removeReaction = async (referenceType, referenceId, reactionName) => {
|
|
18003
18127
|
var _a, _b;
|
|
18004
18128
|
const client = getActiveClient();
|
|
@@ -18007,7 +18131,9 @@ const removeReaction = async (referenceType, referenceId, reactionName) => {
|
|
|
18007
18131
|
referenceType,
|
|
18008
18132
|
reactionName,
|
|
18009
18133
|
});
|
|
18010
|
-
await client.http.delete(`/api/v2/reactions`, {
|
|
18134
|
+
await client.http.delete(`/api/v2/reactions`, {
|
|
18135
|
+
data: { referenceId, referenceType, reactionName },
|
|
18136
|
+
});
|
|
18011
18137
|
const model = await fetchReference(referenceType, referenceId);
|
|
18012
18138
|
dispatchReactable(referenceType, model.data);
|
|
18013
18139
|
return (_b = !((_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName))) !== null && _b !== void 0 ? _b : false;
|
|
@@ -18026,7 +18152,7 @@ const removeReaction = async (referenceType, referenceId, reactionName) => {
|
|
|
18026
18152
|
* @returns The added result.
|
|
18027
18153
|
*
|
|
18028
18154
|
* @category Reaction API
|
|
18029
|
-
|
|
18155
|
+
* */
|
|
18030
18156
|
removeReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
18031
18157
|
var _a, _b, _c, _d, _e;
|
|
18032
18158
|
const client = getActiveClient();
|
|
@@ -18037,7 +18163,11 @@ removeReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
|
18037
18163
|
});
|
|
18038
18164
|
if (!client.cache)
|
|
18039
18165
|
return;
|
|
18040
|
-
const model = pullFromCache([
|
|
18166
|
+
const model = pullFromCache([
|
|
18167
|
+
referenceType,
|
|
18168
|
+
'get',
|
|
18169
|
+
referenceId,
|
|
18170
|
+
]);
|
|
18041
18171
|
if (!(model === null || model === void 0 ? void 0 : model.data) || !((_a = model.data.myReactions) === null || _a === void 0 ? void 0 : _a.includes(reactionName)))
|
|
18042
18172
|
return;
|
|
18043
18173
|
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) }) });
|
|
@@ -18216,6 +18346,7 @@ const onPostReactionAdded = (callback) => {
|
|
|
18216
18346
|
}
|
|
18217
18347
|
else {
|
|
18218
18348
|
preparePayloadForCache('post.addReaction', payload);
|
|
18349
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18219
18350
|
const postPayload = __rest(payload, ["reactor"]);
|
|
18220
18351
|
ingestInCache(postPayload);
|
|
18221
18352
|
const post = pullFromCache(['post', 'get', payload.posts[0].postId]);
|
|
@@ -18248,6 +18379,7 @@ const onPostReactionRemoved = (callback) => {
|
|
|
18248
18379
|
}
|
|
18249
18380
|
else {
|
|
18250
18381
|
preparePayloadForCache('post.removeReaction', payload);
|
|
18382
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18251
18383
|
const postPayload = __rest(payload, ["reactor"]);
|
|
18252
18384
|
ingestInCache(postPayload);
|
|
18253
18385
|
const post = pullFromCache(['post', 'get', payload.posts[0].postId]);
|
|
@@ -18267,7 +18399,11 @@ const createCommentEventSubscriber = (event, callback) => {
|
|
|
18267
18399
|
}
|
|
18268
18400
|
else {
|
|
18269
18401
|
ingestInCache(payload);
|
|
18270
|
-
const comment = pullFromCache([
|
|
18402
|
+
const comment = pullFromCache([
|
|
18403
|
+
'comment',
|
|
18404
|
+
'get',
|
|
18405
|
+
payload.comments[0].commentId,
|
|
18406
|
+
]);
|
|
18271
18407
|
if (['comment.created'].includes(event)) {
|
|
18272
18408
|
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; });
|
|
18273
18409
|
queries === null || queries === void 0 ? void 0 : queries.map(({ key, data }) => upsertInCache(key, data, { cachedAt: -1 }));
|
|
@@ -18386,9 +18522,14 @@ const onCommentReactionAdded = (callback) => {
|
|
|
18386
18522
|
}
|
|
18387
18523
|
else {
|
|
18388
18524
|
preparePayloadForCache('comment.addReaction', payload);
|
|
18525
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18389
18526
|
const commentPayload = __rest(payload, ["reactor"]);
|
|
18390
18527
|
ingestInCache(commentPayload);
|
|
18391
|
-
const comment = pullFromCache([
|
|
18528
|
+
const comment = pullFromCache([
|
|
18529
|
+
'comment',
|
|
18530
|
+
'get',
|
|
18531
|
+
payload.comments[0].commentId,
|
|
18532
|
+
]);
|
|
18392
18533
|
callback(comment.data);
|
|
18393
18534
|
}
|
|
18394
18535
|
};
|
|
@@ -18418,9 +18559,14 @@ const onCommentReactionRemoved = (callback) => {
|
|
|
18418
18559
|
}
|
|
18419
18560
|
else {
|
|
18420
18561
|
preparePayloadForCache('comment.removeReaction', payload);
|
|
18562
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18421
18563
|
const commentPayload = __rest(payload, ["reactor"]);
|
|
18422
18564
|
ingestInCache(commentPayload);
|
|
18423
|
-
const comment = pullFromCache([
|
|
18565
|
+
const comment = pullFromCache([
|
|
18566
|
+
'comment',
|
|
18567
|
+
'get',
|
|
18568
|
+
payload.comments[0].commentId,
|
|
18569
|
+
]);
|
|
18424
18570
|
callback(comment.data);
|
|
18425
18571
|
}
|
|
18426
18572
|
};
|
|
@@ -18443,7 +18589,7 @@ const onCommentReactionRemoved = (callback) => {
|
|
|
18443
18589
|
* @returns an {@link Amity.Unsubscriber} function to stop listening
|
|
18444
18590
|
*
|
|
18445
18591
|
* @category Message Events
|
|
18446
|
-
|
|
18592
|
+
* */
|
|
18447
18593
|
const onReactionRemoved = (referenceType, referenceId, callback) => {
|
|
18448
18594
|
const callbackWrapper = (model) => {
|
|
18449
18595
|
if (getResolver(referenceType)(model) === referenceId) {
|
|
@@ -18454,7 +18600,11 @@ const onReactionRemoved = (referenceType, referenceId, callback) => {
|
|
|
18454
18600
|
const client = getActiveClient();
|
|
18455
18601
|
const filter = (payload) => {
|
|
18456
18602
|
var _a;
|
|
18457
|
-
const cached = pullFromCache([
|
|
18603
|
+
const cached = pullFromCache([
|
|
18604
|
+
'message',
|
|
18605
|
+
'get',
|
|
18606
|
+
payload.messages[0].messageId,
|
|
18607
|
+
]);
|
|
18458
18608
|
const isReactionEvent = ((_a = cached === null || cached === void 0 ? void 0 : cached.data) === null || _a === void 0 ? void 0 : _a.reactionsCount) !== payload.messages[0].reactionsCount;
|
|
18459
18609
|
ingestInCache(payload);
|
|
18460
18610
|
if (isReactionEvent) {
|
|
@@ -18504,12 +18654,12 @@ var REFERENCE_TYPES = {
|
|
|
18504
18654
|
*
|
|
18505
18655
|
* @category Report API
|
|
18506
18656
|
* @async
|
|
18507
|
-
|
|
18657
|
+
* */
|
|
18508
18658
|
const createReport = async (referenceType, referenceId) => {
|
|
18509
18659
|
const client = getActiveClient();
|
|
18510
18660
|
client.log('report/createReport', { referenceType, referenceId });
|
|
18511
18661
|
const { domainName } = REFERENCE_TYPES[referenceType];
|
|
18512
|
-
const { data } = await client.http.post(`/api/v3/${domainName}/${
|
|
18662
|
+
const { data } = await client.http.post(`/api/v3/${domainName}/${encodeURIComponent(referenceId)}/flag`);
|
|
18513
18663
|
if (client.cache)
|
|
18514
18664
|
ingestInCache(data);
|
|
18515
18665
|
const event = referenceType === 'message'
|
|
@@ -18531,7 +18681,7 @@ const createReport = async (referenceType, referenceId) => {
|
|
|
18531
18681
|
*
|
|
18532
18682
|
* @category Report API
|
|
18533
18683
|
* @async
|
|
18534
|
-
|
|
18684
|
+
* */
|
|
18535
18685
|
const deleteReport = async (referenceType, referenceId) => {
|
|
18536
18686
|
const client = getActiveClient();
|
|
18537
18687
|
client.log('report/deleteReport', { referenceType, referenceId });
|
|
@@ -18558,7 +18708,7 @@ const deleteReport = async (referenceType, referenceId) => {
|
|
|
18558
18708
|
*
|
|
18559
18709
|
* @category Report API
|
|
18560
18710
|
* @async
|
|
18561
|
-
|
|
18711
|
+
* */
|
|
18562
18712
|
const isReportedByMe = async (referenceType, referenceId) => {
|
|
18563
18713
|
var _a, _b;
|
|
18564
18714
|
const client = getActiveClient();
|
|
@@ -18593,15 +18743,21 @@ const queryChannels = async (query) => {
|
|
|
18593
18743
|
// API-FIX: parameters should be querystring.
|
|
18594
18744
|
// API-FIX: backend doesnt answer Amity.Response
|
|
18595
18745
|
// const { data } = await client.http.get<Amity.Response<Amity.Paged<ChannelPayload>>>(
|
|
18596
|
-
const { data } = await client.http.get(`/api/v3/channels`, {
|
|
18746
|
+
const { data } = await client.http.get(`/api/v3/channels`, {
|
|
18747
|
+
params: Object.assign(Object.assign({}, params), { keyword: displayName, filter: membership, options: {
|
|
18597
18748
|
token: toToken(page, 'skiplimit'),
|
|
18598
|
-
} })
|
|
18749
|
+
} }),
|
|
18750
|
+
});
|
|
18599
18751
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
18600
18752
|
const { channels } = payload;
|
|
18601
18753
|
const cachedAt = client.cache && Date.now();
|
|
18602
18754
|
if (client.cache) {
|
|
18603
18755
|
ingestInCache(payload, { cachedAt });
|
|
18604
|
-
const cacheKey = [
|
|
18756
|
+
const cacheKey = [
|
|
18757
|
+
'channel',
|
|
18758
|
+
'query',
|
|
18759
|
+
Object.assign(Object.assign({}, params), { options: Object.assign({}, page) }),
|
|
18760
|
+
];
|
|
18605
18761
|
pushToCache(cacheKey, { channels: channels.map(getResolver('channel')), paging });
|
|
18606
18762
|
}
|
|
18607
18763
|
const nextPage = toPage(paging.next);
|
|
@@ -18646,13 +18802,15 @@ const getChannels = async (channelIds) => {
|
|
|
18646
18802
|
client.log('channel/getChannels', channelIds);
|
|
18647
18803
|
const encodedChannelIds = channelIds.map(channelId => encodeURIComponent(channelId));
|
|
18648
18804
|
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
18649
|
-
const { data } = await client.http.get(`/api/v3/channels/list`, {
|
|
18805
|
+
const { data } = await client.http.get(`/api/v3/channels/list`, {
|
|
18806
|
+
params: { channelIds: encodedChannelIds },
|
|
18807
|
+
});
|
|
18650
18808
|
const cachedAt = client.cache && Date.now();
|
|
18651
18809
|
if (client.cache)
|
|
18652
18810
|
ingestInCache(data, { cachedAt });
|
|
18653
18811
|
return {
|
|
18654
18812
|
data: data.channels,
|
|
18655
|
-
cachedAt
|
|
18813
|
+
cachedAt,
|
|
18656
18814
|
};
|
|
18657
18815
|
};
|
|
18658
18816
|
/**
|
|
@@ -18678,7 +18836,7 @@ getChannels.locally = (channelIds) => {
|
|
|
18678
18836
|
.map(channelId => pullFromCache(['channel', 'get', channelId]))
|
|
18679
18837
|
.filter(Boolean);
|
|
18680
18838
|
const channels = cached.map(({ data }) => data);
|
|
18681
|
-
const oldest = (_a = cached.sort((a, b) => a.cachedAt < b.cachedAt ? -1 : 1)) === null || _a === void 0 ? void 0 : _a[0];
|
|
18839
|
+
const oldest = (_a = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _a === void 0 ? void 0 : _a[0];
|
|
18682
18840
|
if ((cached === null || cached === void 0 ? void 0 : cached.length) < channelIds.length)
|
|
18683
18841
|
return;
|
|
18684
18842
|
return {
|
|
@@ -18822,7 +18980,6 @@ const updateChannel = async (channelId, patch) => {
|
|
|
18822
18980
|
const deleteChannel = async (channelId) => {
|
|
18823
18981
|
const client = getActiveClient();
|
|
18824
18982
|
client.log('channel/deleteChannel', channelId);
|
|
18825
|
-
// API-FIX: This endpoint has not been implemented yet.
|
|
18826
18983
|
await client.http.delete(`/api/v3/channels/${encodeURIComponent(channelId)}`);
|
|
18827
18984
|
const deleted = await getChannel(channelId);
|
|
18828
18985
|
// no need for event, fired by server
|
|
@@ -18850,8 +19007,7 @@ const joinChannel = async (channelId) => {
|
|
|
18850
19007
|
if (client.cache)
|
|
18851
19008
|
ingestInCache(data);
|
|
18852
19009
|
const { channelUsers } = data;
|
|
18853
|
-
return !!channelUsers.find(channelUser =>
|
|
18854
|
-
&& channelUser.membership === 'member'));
|
|
19010
|
+
return !!channelUsers.find(channelUser => channelUser.channelId === channelId && channelUser.membership === 'member');
|
|
18855
19011
|
};
|
|
18856
19012
|
|
|
18857
19013
|
/**
|
|
@@ -18875,8 +19031,7 @@ const leaveChannel = async (channelId) => {
|
|
|
18875
19031
|
if (client.cache)
|
|
18876
19032
|
ingestInCache(data);
|
|
18877
19033
|
const { channelUsers } = data;
|
|
18878
|
-
return !!channelUsers.find(channelUser =>
|
|
18879
|
-
&& channelUser.membership !== 'member'));
|
|
19034
|
+
return !!channelUsers.find(channelUser => channelUser.channelId === channelId && channelUser.membership !== 'member');
|
|
18880
19035
|
};
|
|
18881
19036
|
|
|
18882
19037
|
/**
|
|
@@ -18892,7 +19047,7 @@ const leaveChannel = async (channelId) => {
|
|
|
18892
19047
|
*
|
|
18893
19048
|
* @category Channel API
|
|
18894
19049
|
* @async
|
|
18895
|
-
|
|
19050
|
+
* */
|
|
18896
19051
|
const queryChannelMembers = async (query) => {
|
|
18897
19052
|
const client = getActiveClient();
|
|
18898
19053
|
client.log('channel/queryChannelMembers', query);
|
|
@@ -19388,7 +19543,11 @@ const createCommunityEventSubscriber = (event, callback) => {
|
|
|
19388
19543
|
}
|
|
19389
19544
|
else {
|
|
19390
19545
|
ingestInCache(payload);
|
|
19391
|
-
const community = pullFromCache([
|
|
19546
|
+
const community = pullFromCache([
|
|
19547
|
+
'community',
|
|
19548
|
+
'get',
|
|
19549
|
+
payload.communities[0].communityId,
|
|
19550
|
+
]);
|
|
19392
19551
|
callback(community.data);
|
|
19393
19552
|
}
|
|
19394
19553
|
};
|
|
@@ -19398,8 +19557,8 @@ function hasPermission(member, payload, permission) {
|
|
|
19398
19557
|
if (member.permissions.some(x => x === permission)) {
|
|
19399
19558
|
return true;
|
|
19400
19559
|
}
|
|
19401
|
-
return payload
|
|
19402
|
-
.find(user => user.userId === member.userId)
|
|
19560
|
+
return payload
|
|
19561
|
+
.users.find(user => user.userId === member.userId)
|
|
19403
19562
|
.permissions.some(x => x === permission);
|
|
19404
19563
|
}
|
|
19405
19564
|
function getEventRelatedMember(event, payload) {
|
|
@@ -19429,11 +19588,15 @@ const createCommunityMemberEventSubscriber = (event, callback) => {
|
|
|
19429
19588
|
}
|
|
19430
19589
|
else {
|
|
19431
19590
|
ingestInCache(payload);
|
|
19432
|
-
const community = pullFromCache([
|
|
19591
|
+
const community = pullFromCache([
|
|
19592
|
+
'community',
|
|
19593
|
+
'get',
|
|
19594
|
+
payload.communities[0].communityId,
|
|
19595
|
+
]);
|
|
19433
19596
|
const member = pullFromCache([
|
|
19434
19597
|
'communityUsers',
|
|
19435
19598
|
'get',
|
|
19436
|
-
getResolver('communityUsers')(getEventRelatedMember(event, payload))
|
|
19599
|
+
getResolver('communityUsers')(getEventRelatedMember(event, payload)),
|
|
19437
19600
|
]);
|
|
19438
19601
|
callback(community.data, member.data);
|
|
19439
19602
|
}
|
|
@@ -19638,6 +19801,134 @@ const observeCommunity = (communityId, callback) => {
|
|
|
19638
19801
|
};
|
|
19639
19802
|
};
|
|
19640
19803
|
|
|
19804
|
+
/**
|
|
19805
|
+
* ```js
|
|
19806
|
+
* import { queryCategories } from '@amityco/ts-sdk'
|
|
19807
|
+
* const { data: categories, prevPage, nextPage } = await queryCategories()
|
|
19808
|
+
* ```
|
|
19809
|
+
*
|
|
19810
|
+
* Queries a paginable list of {@link Amity.Category} objects
|
|
19811
|
+
*
|
|
19812
|
+
* @param query The query parameters
|
|
19813
|
+
* @returns A page of {@link Amity.Category} objects
|
|
19814
|
+
*
|
|
19815
|
+
* @category Category API
|
|
19816
|
+
* @async
|
|
19817
|
+
* */
|
|
19818
|
+
const queryCategories = async (query) => {
|
|
19819
|
+
const client = getActiveClient();
|
|
19820
|
+
client.log('category/queryCategories', query);
|
|
19821
|
+
const _a = query !== null && query !== void 0 ? query : {}, { page = { limit: 10 } } = _a, params = __rest(_a, ["page"]);
|
|
19822
|
+
const { data } = await client.http.get(`/api/v3/community-categories`, {
|
|
19823
|
+
params: Object.assign(Object.assign({}, params), { options: {
|
|
19824
|
+
token: toToken(page, 'skiplimit'),
|
|
19825
|
+
} }),
|
|
19826
|
+
});
|
|
19827
|
+
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
19828
|
+
const { categories } = payload;
|
|
19829
|
+
const cachedAt = client.cache && Date.now();
|
|
19830
|
+
if (client.cache) {
|
|
19831
|
+
ingestInCache(payload, { cachedAt });
|
|
19832
|
+
const cacheKey = [
|
|
19833
|
+
'category',
|
|
19834
|
+
'query',
|
|
19835
|
+
Object.assign(Object.assign({}, params), { options: Object.assign({}, page) }),
|
|
19836
|
+
];
|
|
19837
|
+
pushToCache(cacheKey, { categories: categories.map(getResolver('category')), paging });
|
|
19838
|
+
}
|
|
19839
|
+
const nextPage = toPage(paging.next);
|
|
19840
|
+
const prevPage = toPage(paging.previous);
|
|
19841
|
+
return { data: categories, cachedAt, prevPage, nextPage };
|
|
19842
|
+
};
|
|
19843
|
+
/**
|
|
19844
|
+
* ```js
|
|
19845
|
+
* import { queryCategories } from '@amityco/ts-sdk'
|
|
19846
|
+
* const { data: categories, prevPage, nextPage } = queryCategories.locally()
|
|
19847
|
+
* ```
|
|
19848
|
+
*
|
|
19849
|
+
* Queries a paginable list of {@link Amity.Category} objects from cache
|
|
19850
|
+
*
|
|
19851
|
+
* @param query The query parameters
|
|
19852
|
+
* @returns categories
|
|
19853
|
+
*
|
|
19854
|
+
* @category category API
|
|
19855
|
+
*/
|
|
19856
|
+
queryCategories.locally = (query) => {
|
|
19857
|
+
var _a, _b;
|
|
19858
|
+
const client = getActiveClient();
|
|
19859
|
+
client.log('category/queryCategories.locally', query);
|
|
19860
|
+
if (!client.cache)
|
|
19861
|
+
return;
|
|
19862
|
+
const _c = query !== null && query !== void 0 ? query : {}, { page = { limit: 10 } } = _c, params = __rest(_c, ["page"]);
|
|
19863
|
+
const queryKey = ['category', 'query', Object.assign(Object.assign({}, params), { options: Object.assign({}, page) })];
|
|
19864
|
+
const { data, cachedAt } = (_a = pullFromCache(queryKey)) !== null && _a !== void 0 ? _a : {};
|
|
19865
|
+
if (!(data === null || data === void 0 ? void 0 : data.categories.length))
|
|
19866
|
+
return;
|
|
19867
|
+
const categories = data.categories
|
|
19868
|
+
.map(categoryId => pullFromCache(['category', 'get', categoryId]))
|
|
19869
|
+
.filter(Boolean)
|
|
19870
|
+
.map(({ data }) => data);
|
|
19871
|
+
const prevPage = toPage(data === null || data === void 0 ? void 0 : data.paging.previous);
|
|
19872
|
+
const nextPage = toPage(data === null || data === void 0 ? void 0 : data.paging.next);
|
|
19873
|
+
return categories.length === ((_b = data === null || data === void 0 ? void 0 : data.categories) === null || _b === void 0 ? void 0 : _b.length)
|
|
19874
|
+
? { data: categories, cachedAt, prevPage, nextPage }
|
|
19875
|
+
: undefined;
|
|
19876
|
+
};
|
|
19877
|
+
|
|
19878
|
+
/**
|
|
19879
|
+
* ```js
|
|
19880
|
+
* import { getCategory } from '@amityco/ts-sdk'
|
|
19881
|
+
* const { data: category } = await getCategory('foo')
|
|
19882
|
+
* ```
|
|
19883
|
+
*
|
|
19884
|
+
* Fetches a {@link Amity.Category} object
|
|
19885
|
+
*
|
|
19886
|
+
* @param categoryId the ID of the {@link Amity.Category} to fetch
|
|
19887
|
+
* @returns the associated {@link Amity.Category} object
|
|
19888
|
+
*
|
|
19889
|
+
* @category Category API
|
|
19890
|
+
* @async
|
|
19891
|
+
*/
|
|
19892
|
+
const getCategory = async (categoryId) => {
|
|
19893
|
+
const client = getActiveClient();
|
|
19894
|
+
client.log('category/getCategory', categoryId);
|
|
19895
|
+
const { data } = await client.http.get(`/api/v3/community-categories/${encodeURIComponent(categoryId)}`);
|
|
19896
|
+
const cachedAt = client.cache && Date.now();
|
|
19897
|
+
if (client.cache)
|
|
19898
|
+
ingestInCache(data, { cachedAt });
|
|
19899
|
+
const { categories } = data;
|
|
19900
|
+
return {
|
|
19901
|
+
data: categories.find(category => category.categoryId === categoryId),
|
|
19902
|
+
cachedAt,
|
|
19903
|
+
};
|
|
19904
|
+
};
|
|
19905
|
+
/**
|
|
19906
|
+
* ```js
|
|
19907
|
+
* import { getCategory } from '@amityco/ts-sdk'
|
|
19908
|
+
* const { data: category } = getCategory.locally('foobar')
|
|
19909
|
+
* ```
|
|
19910
|
+
*
|
|
19911
|
+
* Fetches a {@link Amity.Category} object from cache
|
|
19912
|
+
*
|
|
19913
|
+
* @param categoryId the ID of the {@link Amity.Category} to fetch
|
|
19914
|
+
* @returns the associated {@link Amity.Category} object
|
|
19915
|
+
*
|
|
19916
|
+
* @category Category API
|
|
19917
|
+
*/
|
|
19918
|
+
getCategory.locally = (categoryId) => {
|
|
19919
|
+
const client = getActiveClient();
|
|
19920
|
+
client.log('category/getCategory.locally', categoryId);
|
|
19921
|
+
if (!client.cache)
|
|
19922
|
+
return;
|
|
19923
|
+
const cached = pullFromCache(['category', 'get', categoryId]);
|
|
19924
|
+
if (!cached)
|
|
19925
|
+
return;
|
|
19926
|
+
return {
|
|
19927
|
+
data: cached.data,
|
|
19928
|
+
cachedAt: cached.cachedAt,
|
|
19929
|
+
};
|
|
19930
|
+
};
|
|
19931
|
+
|
|
19641
19932
|
/**
|
|
19642
19933
|
* ```js
|
|
19643
19934
|
* import { queryGlobalFeed } from '@amityco/ts-sdk'
|
|
@@ -19651,20 +19942,26 @@ const observeCommunity = (communityId, callback) => {
|
|
|
19651
19942
|
*
|
|
19652
19943
|
* @category Feed API
|
|
19653
19944
|
* @async
|
|
19654
|
-
|
|
19945
|
+
* */
|
|
19655
19946
|
const queryGlobalFeed = async (query) => {
|
|
19656
19947
|
const client = getActiveClient();
|
|
19657
19948
|
client.log('feed/queryGlobalFeed', query);
|
|
19658
19949
|
const _a = query !== null && query !== void 0 ? query : {}, { useCustomRanking, page } = _a, params = __rest(_a, ["useCustomRanking", "page"]);
|
|
19659
|
-
const { data } = await client.http.get(useCustomRanking ? `/api/v5/me/global-feeds` : `/api/v4/me/global-feeds`, {
|
|
19660
|
-
|
|
19661
|
-
|
|
19950
|
+
const { data } = await client.http.get(useCustomRanking ? `/api/v5/me/global-feeds` : `/api/v4/me/global-feeds`, {
|
|
19951
|
+
params: Object.assign(Object.assign({}, params), { options: {
|
|
19952
|
+
token: toToken(page, 'skiplimit'),
|
|
19953
|
+
} }),
|
|
19954
|
+
});
|
|
19662
19955
|
const { paging } = data, payload = __rest(data, ["paging"]);
|
|
19663
19956
|
const { posts } = payload;
|
|
19664
19957
|
const cachedAt = client.cache && Date.now();
|
|
19665
19958
|
if (client.cache) {
|
|
19666
19959
|
ingestInCache(payload);
|
|
19667
|
-
const cacheKey = [
|
|
19960
|
+
const cacheKey = [
|
|
19961
|
+
'globalFeed',
|
|
19962
|
+
'query',
|
|
19963
|
+
Object.assign(Object.assign({}, params), { useCustomRanking, options: Object.assign({}, page) }),
|
|
19964
|
+
];
|
|
19668
19965
|
pushToCache(cacheKey, { posts: posts.map(getResolver('post')), paging });
|
|
19669
19966
|
}
|
|
19670
19967
|
const nextPage = toPage(paging.next);
|
|
@@ -19684,7 +19981,7 @@ const queryGlobalFeed = async (query) => {
|
|
|
19684
19981
|
*
|
|
19685
19982
|
* @category Feed API
|
|
19686
19983
|
* @async
|
|
19687
|
-
|
|
19984
|
+
* */
|
|
19688
19985
|
queryGlobalFeed.locally = (query) => {
|
|
19689
19986
|
var _a, _b;
|
|
19690
19987
|
const client = getActiveClient();
|
|
@@ -19692,7 +19989,11 @@ queryGlobalFeed.locally = (query) => {
|
|
|
19692
19989
|
if (!client.cache)
|
|
19693
19990
|
return;
|
|
19694
19991
|
const _c = query !== null && query !== void 0 ? query : {}, { useCustomRanking, page } = _c, params = __rest(_c, ["useCustomRanking", "page"]);
|
|
19695
|
-
const queryKey = [
|
|
19992
|
+
const queryKey = [
|
|
19993
|
+
'globalFeed',
|
|
19994
|
+
'query',
|
|
19995
|
+
Object.assign(Object.assign({}, params), { useCustomRanking, options: Object.assign({}, page) }),
|
|
19996
|
+
];
|
|
19696
19997
|
const { data, cachedAt } = (_a = pullFromCache(queryKey)) !== null && _a !== void 0 ? _a : {};
|
|
19697
19998
|
if (!(data === null || data === void 0 ? void 0 : data.posts.length))
|
|
19698
19999
|
return;
|
|
@@ -19719,7 +20020,11 @@ const queryFollows = async (key, query) => {
|
|
|
19719
20020
|
const cachedAt = client.cache && Date.now();
|
|
19720
20021
|
if (client.cache) {
|
|
19721
20022
|
ingestInCache(payload, { cachedAt });
|
|
19722
|
-
const cacheKey = [
|
|
20023
|
+
const cacheKey = [
|
|
20024
|
+
key,
|
|
20025
|
+
'query',
|
|
20026
|
+
Object.assign(Object.assign({}, params), { userId, options: Object.assign({}, page) }),
|
|
20027
|
+
];
|
|
19723
20028
|
pushToCache(cacheKey, { follows: follows.map(getResolver('follow')), paging });
|
|
19724
20029
|
}
|
|
19725
20030
|
const nextPage = toPage(paging.next);
|
|
@@ -19809,7 +20114,11 @@ const queryFollowings = async (query) => queryFollows('following', query);
|
|
|
19809
20114
|
*/
|
|
19810
20115
|
queryFollowings.locally = (query) => queryFollows.locally('following', query);
|
|
19811
20116
|
|
|
19812
|
-
const getCacheKey = (userId) => [
|
|
20117
|
+
const getCacheKey = (userId) => [
|
|
20118
|
+
'followInfo',
|
|
20119
|
+
'get',
|
|
20120
|
+
`${getActiveClient().userId}#${userId}`,
|
|
20121
|
+
];
|
|
19813
20122
|
/**
|
|
19814
20123
|
* ```js
|
|
19815
20124
|
* import { getFollowInfo } from '@amityco/ts-sdk'
|
|
@@ -19982,8 +20291,8 @@ const createFollowEventSubscriber = (event, callback) => {
|
|
|
19982
20291
|
else {
|
|
19983
20292
|
ingestInCache({ follows: [payload] });
|
|
19984
20293
|
const queries = [
|
|
19985
|
-
...(_a = queryCache(['followers', 'query'])) !== null && _a !== void 0 ? _a : [],
|
|
19986
|
-
...(_b = queryCache(['followings', 'query'])) !== null && _b !== void 0 ? _b : [],
|
|
20294
|
+
...((_a = queryCache(['followers', 'query'])) !== null && _a !== void 0 ? _a : []),
|
|
20295
|
+
...((_b = queryCache(['followings', 'query'])) !== null && _b !== void 0 ? _b : []),
|
|
19987
20296
|
];
|
|
19988
20297
|
queries
|
|
19989
20298
|
// @ts-ignore
|
|
@@ -20131,7 +20440,10 @@ const onFollowRequestDeclined = (callback) => createFollowEventSubscriber('follo
|
|
|
20131
20440
|
*/
|
|
20132
20441
|
const onFollowInfoUpdated = (callback) => {
|
|
20133
20442
|
const handler = async (payload) => {
|
|
20134
|
-
const [{ data: followInfoFrom }, { data: followInfoTo }
|
|
20443
|
+
const [{ data: followInfoFrom }, { data: followInfoTo }] = await Promise.all([
|
|
20444
|
+
getFollowInfo(payload.from),
|
|
20445
|
+
getFollowInfo(payload.to),
|
|
20446
|
+
]);
|
|
20135
20447
|
callback(followInfoFrom);
|
|
20136
20448
|
callback(followInfoTo);
|
|
20137
20449
|
};
|
|
@@ -20297,8 +20609,7 @@ const observePosts = (params, callback) => {
|
|
|
20297
20609
|
const disposers = [];
|
|
20298
20610
|
const router = (post, action) => {
|
|
20299
20611
|
var _a, _b;
|
|
20300
|
-
if (params.targetId !== post.targetId
|
|
20301
|
-
|| params.targetType !== post.targetType)
|
|
20612
|
+
if (params.targetId !== post.targetId || params.targetType !== post.targetType)
|
|
20302
20613
|
return;
|
|
20303
20614
|
if (callback instanceof Function)
|
|
20304
20615
|
return callback(post);
|
|
@@ -20437,6 +20748,178 @@ const observeComment = (commentId, callback, policy = 'cache_then_server') => {
|
|
|
20437
20748
|
};
|
|
20438
20749
|
};
|
|
20439
20750
|
|
|
20751
|
+
/**
|
|
20752
|
+
* ```js
|
|
20753
|
+
* import { getPoll } from '@amityco/ts-sdk'
|
|
20754
|
+
* const poll = await getPoll('foobar')
|
|
20755
|
+
* ```
|
|
20756
|
+
*
|
|
20757
|
+
* Fetches a {@link Amity.Poll} object
|
|
20758
|
+
*
|
|
20759
|
+
* @param pollId the ID of the {@link Amity.Poll} to fetch
|
|
20760
|
+
* @returns the associated {@link Amity.Poll} object
|
|
20761
|
+
*
|
|
20762
|
+
* @category Poll API
|
|
20763
|
+
* @async
|
|
20764
|
+
*/
|
|
20765
|
+
const getPoll = async (pollId) => {
|
|
20766
|
+
const client = getActiveClient();
|
|
20767
|
+
client.log('poll/getPoll', pollId);
|
|
20768
|
+
const { data } = await client.http.get(`/api/v3/polls/${pollId}`);
|
|
20769
|
+
const cachedAt = client.cache && Date.now();
|
|
20770
|
+
if (client.cache)
|
|
20771
|
+
ingestInCache(data, { cachedAt });
|
|
20772
|
+
const { polls } = data;
|
|
20773
|
+
return {
|
|
20774
|
+
data: polls.find(poll => poll.pollId === pollId),
|
|
20775
|
+
cachedAt,
|
|
20776
|
+
};
|
|
20777
|
+
};
|
|
20778
|
+
/**
|
|
20779
|
+
* ```js
|
|
20780
|
+
* import { getPoll } from '@amityco/ts-sdk'
|
|
20781
|
+
* const poll = getPoll.locally('foobar')
|
|
20782
|
+
* ```
|
|
20783
|
+
*
|
|
20784
|
+
* Fetches a {@link Amity.Poll} object
|
|
20785
|
+
*
|
|
20786
|
+
* @param pollId the ID of the {@link Amity.Poll} to fetch
|
|
20787
|
+
* @returns the associated {@link Amity.Poll} object
|
|
20788
|
+
*
|
|
20789
|
+
* @category Poll API
|
|
20790
|
+
*/
|
|
20791
|
+
getPoll.locally = (pollId) => {
|
|
20792
|
+
const client = getActiveClient();
|
|
20793
|
+
client.log('poll/getPoll', pollId);
|
|
20794
|
+
if (!client.cache)
|
|
20795
|
+
return;
|
|
20796
|
+
const cached = pullFromCache(['poll', 'get', pollId]);
|
|
20797
|
+
if (!cached)
|
|
20798
|
+
return;
|
|
20799
|
+
return {
|
|
20800
|
+
data: cached.data,
|
|
20801
|
+
cachedAt: cached.cachedAt,
|
|
20802
|
+
};
|
|
20803
|
+
};
|
|
20804
|
+
|
|
20805
|
+
/**
|
|
20806
|
+
* ```js
|
|
20807
|
+
* import { createPoll } from '@amityco/ts-sdk'
|
|
20808
|
+
* const created = await createPoll({
|
|
20809
|
+
* question: 'question',
|
|
20810
|
+
* answers: [
|
|
20811
|
+
* { dataType: 'text', data: 'answer1' },
|
|
20812
|
+
* { dataType: 'text', data: 'answer2' },
|
|
20813
|
+
* ],
|
|
20814
|
+
* closedIn: 1649136484
|
|
20815
|
+
* }))
|
|
20816
|
+
* ```
|
|
20817
|
+
*
|
|
20818
|
+
* Creates an {@link Amity.Poll}
|
|
20819
|
+
*
|
|
20820
|
+
* @param bundle The data necessary to create a new {@link Amity.Poll}
|
|
20821
|
+
* @returns The newly created {@link Amity.Poll}
|
|
20822
|
+
*
|
|
20823
|
+
* @category Poll API
|
|
20824
|
+
* @async
|
|
20825
|
+
*/
|
|
20826
|
+
const createPoll = async (bundle) => {
|
|
20827
|
+
const client = getActiveClient();
|
|
20828
|
+
client.log('post/createPoll', bundle);
|
|
20829
|
+
const { data } = await client.http.post('/api/v3/polls', bundle);
|
|
20830
|
+
const cachedAt = client.cache && Date.now();
|
|
20831
|
+
if (client.cache)
|
|
20832
|
+
ingestInCache(data, { cachedAt });
|
|
20833
|
+
const { polls } = data;
|
|
20834
|
+
return {
|
|
20835
|
+
data: polls[0],
|
|
20836
|
+
cachedAt,
|
|
20837
|
+
};
|
|
20838
|
+
};
|
|
20839
|
+
|
|
20840
|
+
/**
|
|
20841
|
+
* ```js
|
|
20842
|
+
* import { closePoll } from '@amityco/ts-sdk'
|
|
20843
|
+
* const updated = await closePoll(pollId)
|
|
20844
|
+
* ```
|
|
20845
|
+
*
|
|
20846
|
+
* Updates an {@link Amity.Poll}
|
|
20847
|
+
*
|
|
20848
|
+
* @param pollId The ID of the {@link Amity.Poll} to close
|
|
20849
|
+
* @returns the updated {@link Amity.Poll} object
|
|
20850
|
+
*
|
|
20851
|
+
* @category Poll API
|
|
20852
|
+
* @async
|
|
20853
|
+
*/
|
|
20854
|
+
const closePoll = async (pollId) => {
|
|
20855
|
+
const client = getActiveClient();
|
|
20856
|
+
client.log('user/closePoll', pollId);
|
|
20857
|
+
const { data } = await client.http.put(`/api/v3/polls/${encodeURIComponent(pollId)}`, { status: 'closed' });
|
|
20858
|
+
const cachedAt = client.cache && Date.now();
|
|
20859
|
+
if (client.cache)
|
|
20860
|
+
ingestInCache(data, { cachedAt });
|
|
20861
|
+
const { polls } = data;
|
|
20862
|
+
return {
|
|
20863
|
+
data: polls.find(poll => poll.pollId === pollId),
|
|
20864
|
+
cachedAt,
|
|
20865
|
+
};
|
|
20866
|
+
};
|
|
20867
|
+
|
|
20868
|
+
/**
|
|
20869
|
+
* ```js
|
|
20870
|
+
* import { deletePoll } from '@amityco/ts-sdk'
|
|
20871
|
+
* const success = await deletePoll(pollId)
|
|
20872
|
+
* ```
|
|
20873
|
+
*
|
|
20874
|
+
* Deletes a {@link Amity.Poll}
|
|
20875
|
+
*
|
|
20876
|
+
* @param pollId The {@link Amity.Poll} ID to delete
|
|
20877
|
+
* @return A success boolean if the {@link Amity.Poll} was deleted
|
|
20878
|
+
*
|
|
20879
|
+
* @category Poll API
|
|
20880
|
+
* @async
|
|
20881
|
+
*/
|
|
20882
|
+
const deletePoll = async (pollId) => {
|
|
20883
|
+
const client = getActiveClient();
|
|
20884
|
+
client.log('poll/deletePoll', pollId);
|
|
20885
|
+
const poll = await getPoll(pollId);
|
|
20886
|
+
// API-FIX: it returns { success: boolean } but seems it should be Amity.Response<{ success: boolean }
|
|
20887
|
+
const { data } = await client.http.delete(`/api/v3/polls/${pollId}`);
|
|
20888
|
+
const { success } = data; // unwrapPayload(data)
|
|
20889
|
+
const deleted = Object.assign(Object.assign({}, poll.data), { isDeleted: true });
|
|
20890
|
+
upsertInCache(['poll', 'get', pollId], deleted);
|
|
20891
|
+
return success;
|
|
20892
|
+
};
|
|
20893
|
+
|
|
20894
|
+
/**
|
|
20895
|
+
* ```js
|
|
20896
|
+
* import { votePoll } from '@amityco/ts-sdk'
|
|
20897
|
+
* const voted = await votePoll(pollId)
|
|
20898
|
+
* ```
|
|
20899
|
+
*
|
|
20900
|
+
* Votes for an {@link Amity.Poll}
|
|
20901
|
+
*
|
|
20902
|
+
* @param pollId The ID of the {@link Amity.Poll} to vote
|
|
20903
|
+
* @param answerIds The IDs of the {@link Amity.Poll} answers to vote {@link Amity.Poll}
|
|
20904
|
+
* @returns the updated {@link Amity.Poll} object
|
|
20905
|
+
*
|
|
20906
|
+
* @category Poll API
|
|
20907
|
+
* @async
|
|
20908
|
+
*/
|
|
20909
|
+
const votePoll = async (pollId, answerIds) => {
|
|
20910
|
+
const client = getActiveClient();
|
|
20911
|
+
client.log('user/votePoll', pollId);
|
|
20912
|
+
const { data } = await client.http.post(`/api/v3/polls/${encodeURIComponent(pollId)}/votes`, { pollId, answerIds });
|
|
20913
|
+
const cachedAt = client.cache && Date.now();
|
|
20914
|
+
if (client.cache)
|
|
20915
|
+
ingestInCache(data, { cachedAt });
|
|
20916
|
+
const { polls } = data;
|
|
20917
|
+
return {
|
|
20918
|
+
data: polls.find(poll => poll.pollId === pollId),
|
|
20919
|
+
cachedAt,
|
|
20920
|
+
};
|
|
20921
|
+
};
|
|
20922
|
+
|
|
20440
20923
|
/**
|
|
20441
20924
|
* ```js
|
|
20442
20925
|
* import { getStream } from '@amityco/ts-sdk'
|
|
@@ -20509,9 +20992,11 @@ const queryStreams = async (query) => {
|
|
|
20509
20992
|
const client = getActiveClient();
|
|
20510
20993
|
client.log('stream/queryStreams', query);
|
|
20511
20994
|
const _a = query !== null && query !== void 0 ? query : {}, { page } = _a, params = __rest(_a, ["page"]);
|
|
20512
|
-
const { data } = await client.http.get(`/api/v3/video-streaming`, {
|
|
20995
|
+
const { data } = await client.http.get(`/api/v3/video-streaming`, {
|
|
20996
|
+
params: Object.assign(Object.assign({}, params), { options: {
|
|
20513
20997
|
token: toToken(page, 'skiplimit'),
|
|
20514
|
-
} })
|
|
20998
|
+
} }),
|
|
20999
|
+
});
|
|
20515
21000
|
// API-FIX: backend to response Amity.Response: const { paging, videoStreamings } = unwrapPayload(data)
|
|
20516
21001
|
// API-FIX: seems returned data has a results identifier on top of data, like no other apis, and this is beautiful
|
|
20517
21002
|
const { paging, results: payload } = data;
|
|
@@ -20617,7 +21102,7 @@ const updateStream = async (streamId, patch) => {
|
|
|
20617
21102
|
const deleteStream = async (streamId) => {
|
|
20618
21103
|
const client = getActiveClient();
|
|
20619
21104
|
client.log('stream/deleteStream', streamId);
|
|
20620
|
-
|
|
21105
|
+
const stream = await getStream(streamId);
|
|
20621
21106
|
// API-FIX: it returns { success: boolean } but seems it should be Amity.Response<{ success: boolean }
|
|
20622
21107
|
// API-FIX: swagger docs are wrong!
|
|
20623
21108
|
const { data } = await client.http.delete(`/api/v3/video-streaming/${streamId}`);
|
|
@@ -20728,32 +21213,60 @@ const onStreamRecorded = (callback) => {
|
|
|
20728
21213
|
return createEventSubscriber(client, 'stream/onStreamRecorded', 'video-streaming.didRecord', filter);
|
|
20729
21214
|
};
|
|
20730
21215
|
|
|
21216
|
+
/**
|
|
21217
|
+
* Retrieves accessToken info to use in Beta services
|
|
21218
|
+
*
|
|
21219
|
+
* @param apiKey for the Http Client instance
|
|
21220
|
+
* @param apiRegion endpoint to connect to
|
|
21221
|
+
* @param params The token parameters
|
|
21222
|
+
* @param params.userId The userId to use to issue a token
|
|
21223
|
+
* @param params.displayName The user's displayName
|
|
21224
|
+
* @param params.authToken The authentication token - necessary when network option is set to secure
|
|
21225
|
+
* @return An accessToken info object for the given userId
|
|
21226
|
+
*
|
|
21227
|
+
* @category External API
|
|
21228
|
+
* @hidden
|
|
21229
|
+
*/
|
|
21230
|
+
const createUserToken = async (apiKey, apiRegion, params) => {
|
|
21231
|
+
const deviceId = getDeviceId();
|
|
21232
|
+
const deviceInfo = await getDeviceInfo();
|
|
21233
|
+
const http = createHttpTransport(computeUrl('http', apiRegion));
|
|
21234
|
+
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 } });
|
|
21235
|
+
return { accessToken: data.accessToken };
|
|
21236
|
+
};
|
|
21237
|
+
|
|
20731
21238
|
exports.API_REGIONS = API_REGIONS;
|
|
20732
21239
|
exports.VERSION = VERSION$1;
|
|
20733
21240
|
exports.acceptFollower = acceptFollower;
|
|
20734
21241
|
exports.addChannelMembers = addChannelMembers;
|
|
20735
21242
|
exports.addChannelMembersRole = addChannelMembersRole;
|
|
20736
21243
|
exports.addCommunityMembers = addCommunityMembers;
|
|
20737
|
-
exports.
|
|
21244
|
+
exports.addCommunityMembersRoles = addCommunityMembersRoles;
|
|
20738
21245
|
exports.addReaction = addReaction;
|
|
20739
21246
|
exports.backupCache = backupCache;
|
|
21247
|
+
exports.closePoll = closePoll;
|
|
20740
21248
|
exports.connectClient = connectClient;
|
|
20741
21249
|
exports.createChannel = createChannel;
|
|
20742
21250
|
exports.createClient = createClient;
|
|
20743
21251
|
exports.createComment = createComment;
|
|
20744
21252
|
exports.createCommunity = createCommunity;
|
|
20745
21253
|
exports.createFile = createFile;
|
|
21254
|
+
exports.createImage = createImage;
|
|
20746
21255
|
exports.createMessage = createMessage;
|
|
21256
|
+
exports.createPoll = createPoll;
|
|
20747
21257
|
exports.createPost = createPost;
|
|
20748
21258
|
exports.createQuery = createQuery;
|
|
20749
21259
|
exports.createReport = createReport;
|
|
20750
21260
|
exports.createStream = createStream;
|
|
21261
|
+
exports.createUserToken = createUserToken;
|
|
21262
|
+
exports.createVideo = createVideo;
|
|
20751
21263
|
exports.declineFollower = declineFollower;
|
|
20752
21264
|
exports.deleteChannel = deleteChannel;
|
|
20753
21265
|
exports.deleteComment = deleteComment;
|
|
20754
21266
|
exports.deleteCommunity = deleteCommunity;
|
|
20755
21267
|
exports.deleteFile = deleteFile;
|
|
20756
21268
|
exports.deleteMessage = deleteMessage;
|
|
21269
|
+
exports.deletePoll = deletePoll;
|
|
20757
21270
|
exports.deletePost = deletePost;
|
|
20758
21271
|
exports.deleteReport = deleteReport;
|
|
20759
21272
|
exports.deleteStream = deleteStream;
|
|
@@ -20766,6 +21279,7 @@ exports.fileUrlWithSize = fileUrlWithSize;
|
|
|
20766
21279
|
exports.filterByPropEquality = filterByPropEquality;
|
|
20767
21280
|
exports.follow = follow;
|
|
20768
21281
|
exports.getActiveClient = getActiveClient;
|
|
21282
|
+
exports.getCategory = getCategory;
|
|
20769
21283
|
exports.getChannel = getChannel;
|
|
20770
21284
|
exports.getChannels = getChannels;
|
|
20771
21285
|
exports.getComment = getComment;
|
|
@@ -20780,6 +21294,7 @@ exports.getMessage = getMessage;
|
|
|
20780
21294
|
exports.getMessages = getMessages;
|
|
20781
21295
|
exports.getMyFollowersTopic = getMyFollowersTopic;
|
|
20782
21296
|
exports.getMyFollowingsTopic = getMyFollowingsTopic;
|
|
21297
|
+
exports.getPoll = getPoll;
|
|
20783
21298
|
exports.getPost = getPost;
|
|
20784
21299
|
exports.getPostTopic = getPostTopic;
|
|
20785
21300
|
exports.getPosts = getPosts;
|
|
@@ -20876,6 +21391,7 @@ exports.onUserUpdated = onUserUpdated;
|
|
|
20876
21391
|
exports.pullFromCache = pullFromCache;
|
|
20877
21392
|
exports.pushToCache = pushToCache;
|
|
20878
21393
|
exports.queryCache = queryCache;
|
|
21394
|
+
exports.queryCategories = queryCategories;
|
|
20879
21395
|
exports.queryChannelMembers = queryChannelMembers;
|
|
20880
21396
|
exports.queryChannels = queryChannels;
|
|
20881
21397
|
exports.queryComments = queryComments;
|
|
@@ -20893,7 +21409,7 @@ exports.queryUsers = queryUsers;
|
|
|
20893
21409
|
exports.removeChannelMembers = removeChannelMembers;
|
|
20894
21410
|
exports.removeChannelMembersRole = removeChannelMembersRole;
|
|
20895
21411
|
exports.removeCommunityMembers = removeCommunityMembers;
|
|
20896
|
-
exports.
|
|
21412
|
+
exports.removeCommunityMembersRoles = removeCommunityMembersRoles;
|
|
20897
21413
|
exports.removeReaction = removeReaction;
|
|
20898
21414
|
exports.restoreCache = restoreCache;
|
|
20899
21415
|
exports.runQuery = runQuery;
|
|
@@ -20916,4 +21432,5 @@ exports.updatePost = updatePost;
|
|
|
20916
21432
|
exports.updateStream = updateStream;
|
|
20917
21433
|
exports.updateUser = updateUser;
|
|
20918
21434
|
exports.upsertInCache = upsertInCache;
|
|
21435
|
+
exports.votePoll = votePoll;
|
|
20919
21436
|
exports.wipeCache = wipeCache;
|