@amityco/ts-sdk 0.0.1-beta.33 → 0.0.1-beta.37
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/dist/@types/core/errors.d.ts +1 -0
- package/dist/@types/core/errors.d.ts.map +1 -1
- package/dist/@types/core/events.d.ts +51 -22
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/model.d.ts +2 -0
- package/dist/@types/core/model.d.ts.map +1 -1
- package/dist/@types/core/payload.d.ts +15 -5
- package/dist/@types/core/payload.d.ts.map +1 -1
- package/dist/@types/domains/channel.d.ts +12 -7
- package/dist/@types/domains/channel.d.ts.map +1 -1
- package/dist/@types/domains/client.d.ts +40 -1
- package/dist/@types/domains/client.d.ts.map +1 -1
- package/dist/@types/domains/content.d.ts +2 -3
- package/dist/@types/domains/content.d.ts.map +1 -1
- package/dist/@types/domains/group.d.ts +6 -2
- package/dist/@types/domains/group.d.ts.map +1 -1
- package/dist/@types/domains/message.d.ts +37 -17
- package/dist/@types/domains/message.d.ts.map +1 -1
- package/dist/@types/domains/post.d.ts +2 -2
- package/dist/@types/domains/post.d.ts.map +1 -1
- package/dist/@types/domains/subChannel.d.ts +39 -0
- package/dist/@types/domains/subChannel.d.ts.map +1 -0
- package/dist/@types/global.d.ts +7 -0
- 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/tests/dropFromCache.test.d.ts +2 -0
- package/dist/cache/api/tests/dropFromCache.test.d.ts.map +1 -0
- package/dist/cache/api/tests/enableCache.test.d.ts +2 -0
- package/dist/cache/api/tests/enableCache.test.d.ts.map +1 -0
- package/dist/cache/api/tests/pullFromCache.test.d.ts +2 -0
- package/dist/cache/api/tests/pullFromCache.test.d.ts.map +1 -0
- package/dist/cache/api/tests/upsertInCache.test.d.ts +2 -0
- package/dist/cache/api/tests/upsertInCache.test.d.ts.map +1 -0
- package/dist/cache/utils/tests/encodeKey.test.d.ts +2 -0
- package/dist/cache/utils/tests/encodeKey.test.d.ts.map +1 -0
- package/dist/cache/utils/tests/partialMatch.test.d.ts +2 -0
- package/dist/cache/utils/tests/partialMatch.test.d.ts.map +1 -0
- package/dist/channel/api/banChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/createChannel.d.ts +1 -1
- package/dist/channel/api/index.d.ts +2 -0
- package/dist/channel/api/index.d.ts.map +1 -1
- package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/removeChannelMembers.d.ts.map +1 -1
- package/dist/channel/api/startReading.d.ts +17 -0
- package/dist/channel/api/startReading.d.ts.map +1 -0
- package/dist/channel/api/stopReading.d.ts +16 -0
- package/dist/channel/api/stopReading.d.ts.map +1 -0
- package/dist/channel/api/tests/createChannel.test.d.ts +2 -0
- package/dist/channel/api/tests/createChannel.test.d.ts.map +1 -0
- package/dist/channel/api/tests/joinChannel.test.d.ts +2 -0
- package/dist/channel/api/tests/joinChannel.test.d.ts.map +1 -0
- package/dist/channel/api/tests/removeChannelMembers.test.d.ts +2 -0
- package/dist/channel/api/tests/removeChannelMembers.test.d.ts.map +1 -0
- package/dist/channel/api/tests/startReading.test.d.ts +2 -0
- package/dist/channel/api/tests/startReading.test.d.ts.map +1 -0
- package/dist/channel/api/tests/stopReading.test.d.ts +2 -0
- package/dist/channel/api/tests/stopReading.test.d.ts.map +1 -0
- package/dist/channel/api/unbanChannelMembers.d.ts.map +1 -1
- package/dist/channel/events/index.d.ts +1 -0
- package/dist/channel/events/index.d.ts.map +1 -1
- package/dist/channel/events/onChannelJoined.d.ts +2 -2
- package/dist/channel/events/onChannelJoined.d.ts.map +1 -1
- package/dist/channel/events/onChannelLeft.d.ts +2 -2
- package/dist/channel/events/onChannelLeft.d.ts.map +1 -1
- package/dist/channel/events/onChannelMemberAdded.d.ts.map +1 -1
- package/dist/channel/events/onChannelMemberBanned.d.ts.map +1 -1
- package/dist/channel/events/onChannelMemberRemoved.d.ts.map +1 -1
- package/dist/channel/events/onChannelMemberUnbanned.d.ts.map +1 -1
- package/dist/channel/events/onChannelMuted.d.ts +17 -0
- package/dist/channel/events/onChannelMuted.d.ts.map +1 -0
- package/dist/channel/events/onChannelUpdated.d.ts +1 -1
- package/dist/channel/events/onChannelUpdated.d.ts.map +1 -1
- package/dist/channel/events/tests/onChannelCreated.test.d.ts +2 -0
- package/dist/channel/events/tests/onChannelCreated.test.d.ts.map +1 -0
- package/dist/channel/events/tests/onChannelJoined.test.d.ts +2 -0
- package/dist/channel/events/tests/onChannelJoined.test.d.ts.map +1 -0
- package/dist/channel/events/tests/onChannelMemberAdded.test.d.ts +2 -0
- package/dist/channel/events/tests/onChannelMemberAdded.test.d.ts.map +1 -0
- package/dist/channel/events/tests/onChannelMemberRemoved.test.d.ts +2 -0
- package/dist/channel/events/tests/onChannelMemberRemoved.test.d.ts.map +1 -0
- package/dist/channel/events/tests/onChannelUpdated.test.d.ts +2 -0
- package/dist/channel/events/tests/onChannelUpdated.test.d.ts.map +1 -0
- package/dist/channel/observers/index.d.ts +1 -0
- package/dist/channel/observers/index.d.ts.map +1 -1
- package/dist/channel/observers/liveChannel.d.ts +21 -0
- package/dist/channel/observers/liveChannel.d.ts.map +1 -0
- package/dist/channel/observers/liveChannelMembers.d.ts.map +1 -1
- package/dist/channel/observers/liveChannels.d.ts.map +1 -1
- package/dist/channel/observers/observeChannel.d.ts +1 -1
- package/dist/channel/observers/observeChannel.d.ts.map +1 -1
- package/dist/channel/observers/observeChannels.d.ts.map +1 -1
- package/dist/channel/utils/index.d.ts +2 -1
- package/dist/channel/utils/index.d.ts.map +1 -1
- package/dist/client/api/accessTokenExpiryWatcher.d.ts +4 -0
- package/dist/client/api/accessTokenExpiryWatcher.d.ts.map +1 -0
- package/dist/client/api/activeUser.d.ts +1 -1
- package/dist/client/api/activeUser.d.ts.map +1 -1
- package/dist/client/api/connectClient.d.ts +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 +0 -1
- package/dist/client/api/disconnectClient.d.ts.map +1 -1
- package/dist/client/api/getChatSettings.d.ts +15 -0
- package/dist/client/api/getChatSettings.d.ts.map +1 -0
- package/dist/client/api/getSocialSettings.d.ts +15 -0
- package/dist/client/api/getSocialSettings.d.ts.map +1 -0
- package/dist/client/api/getToken.d.ts +4 -4
- package/dist/client/api/index.d.ts +1 -0
- package/dist/client/api/index.d.ts.map +1 -1
- package/dist/client/api/renewal.d.ts +2 -0
- package/dist/client/api/renewal.d.ts.map +1 -0
- package/dist/client/api/setSessionState.d.ts +12 -0
- package/dist/client/api/setSessionState.d.ts.map +1 -0
- package/dist/client/api/terminateClient.d.ts +9 -0
- package/dist/client/api/terminateClient.d.ts.map +1 -0
- package/dist/client/api/tests/accessTokenExpiryWatcher.test.d.ts +2 -0
- package/dist/client/api/tests/accessTokenExpiryWatcher.test.d.ts.map +1 -0
- package/dist/client/api/tests/activeClient.test.d.ts +2 -0
- package/dist/client/api/tests/activeClient.test.d.ts.map +1 -0
- package/dist/client/api/tests/activeUser.test.d.ts +2 -0
- package/dist/client/api/tests/activeUser.test.d.ts.map +1 -0
- package/dist/client/api/tests/connectClient.test.d.ts +2 -0
- package/dist/client/api/tests/connectClient.test.d.ts.map +1 -0
- package/dist/client/api/tests/createClient.test.d.ts +2 -0
- package/dist/client/api/tests/createClient.test.d.ts.map +1 -0
- package/dist/client/api/tests/disconnectClient.test.d.ts +2 -0
- package/dist/client/api/tests/disconnectClient.test.d.ts.map +1 -0
- package/dist/client/api/tests/getToken.test.d.ts +2 -0
- package/dist/client/api/tests/getToken.test.d.ts.map +1 -0
- package/dist/client/api/tests/renewal.test.d.ts +2 -0
- package/dist/client/api/tests/renewal.test.d.ts.map +1 -0
- package/dist/client/api/tests/setSessionState.test.d.ts +2 -0
- package/dist/client/api/tests/setSessionState.test.d.ts.map +1 -0
- package/dist/client/api/tests/terminateClient.test.d.ts +2 -0
- package/dist/client/api/tests/terminateClient.test.d.ts.map +1 -0
- package/dist/client/events/index.d.ts +1 -0
- package/dist/client/events/index.d.ts.map +1 -1
- package/dist/client/events/onClientBanned.d.ts +1 -1
- package/dist/client/events/onClientBanned.d.ts.map +1 -1
- package/dist/client/events/onSessionStateChange.d.ts +17 -0
- package/dist/client/events/onSessionStateChange.d.ts.map +1 -0
- package/dist/client/events/onTokenExpired.d.ts +17 -0
- package/dist/client/events/onTokenExpired.d.ts.map +1 -0
- package/dist/client/events/onTokenTerminated.d.ts +11 -0
- package/dist/client/events/onTokenTerminated.d.ts.map +1 -0
- package/dist/client/events/tests/onSessionStateChange.test.d.ts +2 -0
- package/dist/client/events/tests/onSessionStateChange.test.d.ts.map +1 -0
- package/dist/client/events/tests/onTokenTerminated.test.d.ts +2 -0
- package/dist/client/events/tests/onTokenTerminated.test.d.ts.map +1 -0
- package/dist/client/tests/connectClient.test.d.ts +2 -0
- package/dist/client/tests/connectClient.test.d.ts.map +1 -0
- package/dist/client/utils/setClientToken.d.ts +19 -0
- package/dist/client/utils/setClientToken.d.ts.map +1 -0
- package/dist/comment/api/createComment.d.ts +1 -1
- package/dist/comment/api/createComment.d.ts.map +1 -1
- package/dist/comment/api/tests/createComment.test.d.ts +2 -0
- package/dist/comment/api/tests/createComment.test.d.ts.map +1 -0
- package/dist/comment/api/tests/getComments.test.d.ts +2 -0
- package/dist/comment/api/tests/getComments.test.d.ts.map +1 -0
- package/dist/comment/events/tests/onCommentCreated.test.d.ts +2 -0
- package/dist/comment/events/tests/onCommentCreated.test.d.ts.map +1 -0
- package/dist/comment/events/tests/onCommentDeleted.test.d.ts +2 -0
- package/dist/comment/events/tests/onCommentDeleted.test.d.ts.map +1 -0
- package/dist/comment/events/utils.d.ts +1 -1
- package/dist/comment/events/utils.d.ts.map +1 -1
- package/dist/community/api/queryCommunities.d.ts.map +1 -1
- package/dist/community/api/queryCommunityMembers.d.ts +6 -1
- package/dist/community/api/queryCommunityMembers.d.ts.map +1 -1
- package/dist/community/api/test/addCommunityMember.test.d.ts +2 -0
- package/dist/community/api/test/addCommunityMember.test.d.ts.map +1 -0
- package/dist/community/api/test/addCommunityMemberRole.test.d.ts +2 -0
- package/dist/community/api/test/addCommunityMemberRole.test.d.ts.map +1 -0
- package/dist/community/api/test/createCommunity.test.d.ts +2 -0
- package/dist/community/api/test/createCommunity.test.d.ts.map +1 -0
- package/dist/community/api/test/deleteCommunity.test.d.ts +2 -0
- package/dist/community/api/test/deleteCommunity.test.d.ts.map +1 -0
- package/dist/community/api/test/getCommunities.test.d.ts +2 -0
- package/dist/community/api/test/getCommunities.test.d.ts.map +1 -0
- package/dist/community/api/test/getCommunity.test.d.ts +2 -0
- package/dist/community/api/test/getCommunity.test.d.ts.map +1 -0
- package/dist/community/api/test/getRecommendedCommunities.test.d.ts +2 -0
- package/dist/community/api/test/getRecommendedCommunities.test.d.ts.map +1 -0
- package/dist/community/api/test/getTopTrendingCommunities.test.d.ts +2 -0
- package/dist/community/api/test/getTopTrendingCommunities.test.d.ts.map +1 -0
- package/dist/community/api/test/joinCommunity.test.d.ts +2 -0
- package/dist/community/api/test/joinCommunity.test.d.ts.map +1 -0
- package/dist/community/api/test/leaveCommunity.test.d.ts +2 -0
- package/dist/community/api/test/leaveCommunity.test.d.ts.map +1 -0
- package/dist/community/api/test/queryCommunity.test.d.ts +2 -0
- package/dist/community/api/test/queryCommunity.test.d.ts.map +1 -0
- package/dist/community/api/test/queryCommunityMembers.test.d.ts +2 -0
- package/dist/community/api/test/queryCommunityMembers.test.d.ts.map +1 -0
- package/dist/community/api/test/removeCommunityMemberRole.test.d.ts +2 -0
- package/dist/community/api/test/removeCommunityMemberRole.test.d.ts.map +1 -0
- package/dist/community/api/test/removeCommunityMembers.test.d.ts +2 -0
- package/dist/community/api/test/removeCommunityMembers.test.d.ts.map +1 -0
- package/dist/community/api/test/updateCommunity.test.d.ts +2 -0
- package/dist/community/api/test/updateCommunity.test.d.ts.map +1 -0
- package/dist/community/events/test/onCommunityCreated.test.d.ts +2 -0
- package/dist/community/events/test/onCommunityCreated.test.d.ts.map +1 -0
- package/dist/community/events/test/onCommunityDeleted.test.d.ts +2 -0
- package/dist/community/events/test/onCommunityDeleted.test.d.ts.map +1 -0
- package/dist/community/events/test/onCommunityJoined.test.d.ts +2 -0
- package/dist/community/events/test/onCommunityJoined.test.d.ts.map +1 -0
- package/dist/community/events/test/onCommunityLeft.test.d.ts +2 -0
- package/dist/community/events/test/onCommunityLeft.test.d.ts.map +1 -0
- package/dist/community/events/test/onCommunityUpdated.test.d.ts +2 -0
- package/dist/community/events/test/onCommunityUpdated.test.d.ts.map +1 -0
- package/dist/community/events/test/onCommunityUserAdded.test.d.ts +2 -0
- package/dist/community/events/test/onCommunityUserAdded.test.d.ts.map +1 -0
- package/dist/community/events/test/onCommunityUserBanned.test.d.ts +2 -0
- package/dist/community/events/test/onCommunityUserBanned.test.d.ts.map +1 -0
- package/dist/community/events/test/onCommunityUserRemoved.test.d.ts +2 -0
- package/dist/community/events/test/onCommunityUserRemoved.test.d.ts.map +1 -0
- package/dist/community/events/test/onCommunityUserUnbaned.test.d.ts +2 -0
- package/dist/community/events/test/onCommunityUserUnbaned.test.d.ts.map +1 -0
- package/dist/community/events/test/utils.test.d.ts +2 -0
- package/dist/community/events/test/utils.test.d.ts.map +1 -0
- package/dist/community/events/utils.d.ts +2 -2
- package/dist/community/events/utils.d.ts.map +1 -1
- package/dist/core/events.d.ts +3 -3
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/model/idResolvers.d.ts.map +1 -1
- package/dist/core/model/identifyModel.d.ts.map +1 -1
- package/dist/core/model/index.d.ts +5 -0
- package/dist/core/model/index.d.ts.map +1 -1
- package/dist/core/query/filtering.d.ts.map +1 -1
- package/dist/core/query/query.d.ts.map +1 -1
- package/dist/core/subscription.d.ts +26 -1
- package/dist/core/subscription.d.ts.map +1 -1
- package/dist/core/tests/subscription.test.d.ts +2 -0
- package/dist/core/tests/subscription.test.d.ts.map +1 -0
- package/dist/core/transports/http.d.ts.map +1 -1
- package/dist/feed/api/queryGlobalFeed.d.ts +1 -1
- package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -1
- package/dist/feed/api/test/queryGlobalFeed.test.d.ts +2 -0
- package/dist/feed/api/test/queryGlobalFeed.test.d.ts.map +1 -0
- package/dist/follow/events/utils.d.ts +1 -1
- package/dist/follow/events/utils.d.ts.map +1 -1
- package/dist/group/utils/index.d.ts +2 -0
- package/dist/group/utils/index.d.ts.map +1 -0
- package/dist/group/utils/test/withUsers.test.d.ts +2 -0
- package/dist/group/utils/test/withUsers.test.d.ts.map +1 -0
- package/dist/group/utils/withUser.d.ts +38 -0
- package/dist/group/utils/withUser.d.ts.map +1 -0
- package/dist/index.cjs.js +2451 -870
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +2424 -869
- package/dist/index.umd.js +4 -4
- package/dist/message/api/createMessage.d.ts +15 -9
- package/dist/message/api/createMessage.d.ts.map +1 -1
- package/dist/message/api/deleteMessage.d.ts +2 -2
- package/dist/message/api/getMessage.d.ts.map +1 -1
- package/dist/message/api/getMessages.d.ts.map +1 -1
- package/dist/message/api/queryMessages.d.ts.map +1 -1
- package/dist/message/api/updateMessage.d.ts +1 -1
- package/dist/message/api/updateMessage.d.ts.map +1 -1
- package/dist/message/events/index.d.ts +5 -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/onMessageFlagCleared.d.ts +17 -0
- package/dist/message/events/onMessageFlagCleared.d.ts.map +1 -0
- package/dist/message/events/onMessageFlagged.d.ts +17 -0
- package/dist/message/events/onMessageFlagged.d.ts.map +1 -0
- package/dist/message/events/onMessageReactionAdded.d.ts +18 -0
- package/dist/message/events/onMessageReactionAdded.d.ts.map +1 -0
- package/dist/message/events/onMessageReactionRemoved.d.ts +18 -0
- package/dist/message/events/onMessageReactionRemoved.d.ts.map +1 -0
- package/dist/message/events/onMessageUnflagged.d.ts +17 -0
- package/dist/message/events/onMessageUnflagged.d.ts.map +1 -0
- package/dist/message/events/onMessageUpdated.d.ts.map +1 -1
- package/dist/message/observers/liveMessage.d.ts +7 -4
- package/dist/message/observers/liveMessage.d.ts.map +1 -1
- package/dist/message/observers/liveMessages.d.ts +7 -6
- package/dist/message/observers/liveMessages.d.ts.map +1 -1
- package/dist/message/observers/observeMessage.d.ts +1 -0
- package/dist/message/observers/observeMessage.d.ts.map +1 -1
- package/dist/message/observers/observeMessages.d.ts +5 -4
- package/dist/message/observers/observeMessages.d.ts.map +1 -1
- package/dist/message/tests/events.test.d.ts +2 -0
- package/dist/message/tests/events.test.d.ts.map +1 -0
- package/dist/message/utils/index.d.ts +18 -0
- package/dist/message/utils/index.d.ts.map +1 -0
- package/dist/post/api/queryPosts.d.ts.map +1 -1
- package/dist/post/api/tests/queryPosts.test.d.ts +2 -0
- package/dist/post/api/tests/queryPosts.test.d.ts.map +1 -0
- package/dist/post/events/tests/onPostApproved.test.d.ts +2 -0
- package/dist/post/events/tests/onPostApproved.test.d.ts.map +1 -0
- package/dist/post/events/tests/onPostCreated.test.d.ts +2 -0
- package/dist/post/events/tests/onPostCreated.test.d.ts.map +1 -0
- package/dist/post/events/tests/onPostDeclined.test.d.ts +2 -0
- package/dist/post/events/tests/onPostDeclined.test.d.ts.map +1 -0
- package/dist/post/events/tests/onPostDeleted.test.d.ts +2 -0
- package/dist/post/events/tests/onPostDeleted.test.d.ts.map +1 -0
- package/dist/post/events/tests/onPostFlagged.test.d.ts +2 -0
- package/dist/post/events/tests/onPostFlagged.test.d.ts.map +1 -0
- package/dist/post/events/tests/onPostReactionAdded.test.d.ts +2 -0
- package/dist/post/events/tests/onPostReactionAdded.test.d.ts.map +1 -0
- package/dist/post/events/tests/onPostReactionRemoved.test.d.ts +2 -0
- package/dist/post/events/tests/onPostReactionRemoved.test.d.ts.map +1 -0
- package/dist/post/events/tests/onPostUnflagged.test.d.ts +2 -0
- package/dist/post/events/tests/onPostUnflagged.test.d.ts.map +1 -0
- package/dist/post/events/tests/onPostUpdated.test.d.ts +2 -0
- package/dist/post/events/tests/onPostUpdated.test.d.ts.map +1 -0
- package/dist/post/events/utils.d.ts +1 -1
- package/dist/post/events/utils.d.ts.map +1 -1
- package/dist/post/observers/livePosts.d.ts.map +1 -1
- package/dist/post/observers/tests/livePosts.test.d.ts +2 -0
- package/dist/post/observers/tests/livePosts.test.d.ts.map +1 -0
- package/dist/reaction/api/addReaction.d.ts.map +1 -1
- package/dist/reaction/api/removeReaction.d.ts.map +1 -1
- package/dist/reaction/events/onReactionAdded.d.ts.map +1 -1
- package/dist/reaction/events/onReactionRemoved.d.ts.map +1 -1
- package/dist/reaction/events/onReactorAdded.d.ts.map +1 -1
- package/dist/reaction/events/onReactorRemoved.d.ts.map +1 -1
- package/dist/report/api/createReport.d.ts.map +1 -1
- package/dist/report/api/deleteReport.d.ts.map +1 -1
- package/dist/report/api/isReportedByMe.d.ts.map +1 -1
- package/dist/stream/api/tests/createStream.test.d.ts +2 -0
- package/dist/stream/api/tests/createStream.test.d.ts.map +1 -0
- package/dist/stream/api/tests/deleteStream.test.d.ts +2 -0
- package/dist/stream/api/tests/deleteStream.test.d.ts.map +1 -0
- package/dist/stream/api/tests/getStream.test.d.ts +2 -0
- package/dist/stream/api/tests/getStream.test.d.ts.map +1 -0
- package/dist/subChannel/api/createSubChannel.d.ts +16 -0
- package/dist/subChannel/api/createSubChannel.d.ts.map +1 -0
- package/dist/subChannel/api/deleteSubChannel.d.ts +16 -0
- package/dist/subChannel/api/deleteSubChannel.d.ts.map +1 -0
- package/dist/subChannel/api/getSubChannel.d.ts +32 -0
- package/dist/subChannel/api/getSubChannel.d.ts.map +1 -0
- package/dist/subChannel/api/getSubChannels.d.ts +32 -0
- package/dist/subChannel/api/getSubChannels.d.ts.map +1 -0
- package/dist/subChannel/api/index.d.ts +7 -0
- package/dist/subChannel/api/index.d.ts.map +1 -0
- package/dist/subChannel/api/querySubChannels.d.ts +32 -0
- package/dist/subChannel/api/querySubChannels.d.ts.map +1 -0
- package/dist/subChannel/api/tests/createSubChannel.test.d.ts +2 -0
- package/dist/subChannel/api/tests/createSubChannel.test.d.ts.map +1 -0
- package/dist/subChannel/api/updateSubChannel.d.ts +17 -0
- package/dist/subChannel/api/updateSubChannel.d.ts.map +1 -0
- package/dist/subChannel/events/index.d.ts +4 -0
- package/dist/subChannel/events/index.d.ts.map +1 -0
- package/dist/subChannel/events/onSubChannelCreated.d.ts +17 -0
- package/dist/subChannel/events/onSubChannelCreated.d.ts.map +1 -0
- package/dist/subChannel/events/onSubChannelDeleted.d.ts +17 -0
- package/dist/subChannel/events/onSubChannelDeleted.d.ts.map +1 -0
- package/dist/subChannel/events/onSubChannelFetched.d.ts +3 -0
- package/dist/subChannel/events/onSubChannelFetched.d.ts.map +1 -0
- package/dist/subChannel/events/onSubChannelUpdated.d.ts +17 -0
- package/dist/subChannel/events/onSubChannelUpdated.d.ts.map +1 -0
- package/dist/subChannel/observers/index.d.ts +3 -0
- package/dist/subChannel/observers/index.d.ts.map +1 -0
- package/dist/subChannel/observers/liveSubChannel.d.ts +21 -0
- package/dist/subChannel/observers/liveSubChannel.d.ts.map +1 -0
- package/dist/subChannel/observers/liveSubChannels.d.ts +21 -0
- package/dist/subChannel/observers/liveSubChannels.d.ts.map +1 -0
- package/dist/subChannel/observers/tests/liveSubChannel.test.d.ts +2 -0
- package/dist/subChannel/observers/tests/liveSubChannel.test.d.ts.map +1 -0
- package/dist/subChannel/observers/tests/liveSubChannels.test.d.ts +2 -0
- package/dist/subChannel/observers/tests/liveSubChannels.test.d.ts.map +1 -0
- package/dist/subChannel/utils/index.d.ts +8 -0
- package/dist/subChannel/utils/index.d.ts.map +1 -0
- package/dist/user/events/index.d.ts +0 -1
- package/dist/user/events/index.d.ts.map +1 -1
- package/dist/user/events/utils.d.ts +1 -1
- package/dist/user/events/utils.d.ts.map +1 -1
- package/dist/user/observers/liveUser.d.ts +7 -4
- package/dist/user/observers/liveUser.d.ts.map +1 -1
- package/dist/utils/constants.d.ts +2 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/tests/client.d.ts.map +1 -1
- package/dist/utils/tests/dummy/channel.d.ts +47 -22
- package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
- package/dist/utils/tests/dummy/community.d.ts +33 -1
- package/dist/utils/tests/dummy/community.d.ts.map +1 -1
- package/dist/utils/tests/dummy/index.d.ts +5 -1
- package/dist/utils/tests/dummy/index.d.ts.map +1 -1
- package/dist/utils/tests/dummy/member.d.ts +2 -0
- package/dist/utils/tests/dummy/member.d.ts.map +1 -0
- package/dist/utils/tests/dummy/message.d.ts +2 -1
- package/dist/utils/tests/dummy/message.d.ts.map +1 -1
- package/dist/utils/tests/dummy/post.d.ts +15 -0
- package/dist/utils/tests/dummy/post.d.ts.map +1 -1
- package/dist/utils/tests/dummy/stream.d.ts +83 -0
- package/dist/utils/tests/dummy/stream.d.ts.map +1 -0
- package/dist/utils/tests/dummy/subChannel.d.ts +23 -0
- package/dist/utils/tests/dummy/subChannel.d.ts.map +1 -0
- package/dist/utils/tests/dummy/token.d.ts +11 -0
- package/dist/utils/tests/dummy/token.d.ts.map +1 -0
- package/dist/utils/tests/dummy/user.d.ts +1 -0
- package/dist/utils/tests/dummy/user.d.ts.map +1 -1
- package/dist/utils/tests/utils.d.ts +1 -0
- package/dist/utils/tests/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/core/errors.ts +1 -0
- package/src/@types/core/events.ts +62 -28
- package/src/@types/core/model.ts +2 -0
- package/src/@types/core/payload.ts +21 -5
- package/src/@types/domains/channel.ts +23 -6
- package/src/@types/domains/client.ts +66 -1
- package/src/@types/domains/content.ts +4 -3
- package/src/@types/domains/group.ts +6 -2
- package/src/@types/domains/message.ts +59 -26
- package/src/@types/domains/post.ts +2 -2
- package/src/@types/domains/subChannel.ts +48 -0
- package/src/@types/global.ts +14 -0
- package/src/@types/index.ts +1 -0
- package/src/cache/api/tests/dropFromCache.test.ts +59 -0
- package/src/cache/api/tests/enableCache.test.ts +15 -0
- package/src/cache/api/tests/pullFromCache.test.ts +42 -0
- package/src/cache/api/tests/upsertInCache.test.ts +60 -0
- package/src/cache/utils/tests/encodeKey.test.ts +19 -0
- package/src/cache/utils/tests/partialMatch.test.ts +13 -0
- package/src/channel/api/addChannelMembers.ts +2 -2
- package/src/channel/api/banChannelMembers.ts +5 -3
- package/src/channel/api/createChannel.ts +1 -1
- package/src/channel/api/getChannels.ts +2 -2
- package/src/channel/api/index.ts +3 -0
- package/src/channel/api/queryChannelMembers.ts +15 -10
- package/src/channel/api/queryChannels.ts +1 -1
- package/src/channel/api/removeChannelMembers.ts +9 -1
- package/src/channel/api/startReading.ts +53 -0
- package/src/channel/api/stopReading.ts +49 -0
- package/src/channel/api/tests/addChannelMembers.test.ts +36 -8
- package/src/channel/api/tests/createChannel.test.ts +53 -0
- package/src/channel/api/tests/getChannel.test.ts +3 -2
- package/src/channel/api/tests/joinChannel.test.ts +52 -0
- package/src/channel/api/tests/queryChannelMembers.test.ts +27 -11
- package/src/channel/api/tests/queryChannels.test.ts +2 -2
- package/src/channel/api/tests/removeChannelMembers.test.ts +95 -0
- package/src/channel/api/tests/startReading.test.ts +25 -0
- package/src/channel/api/tests/stopReading.test.ts +25 -0
- package/src/channel/api/unbanChannelMembers.ts +6 -3
- package/src/channel/events/index.ts +1 -0
- package/src/channel/events/onChannelCreated.ts +1 -1
- package/src/channel/events/onChannelDeleted.ts +1 -1
- package/src/channel/events/onChannelJoined.ts +12 -7
- package/src/channel/events/onChannelLeft.ts +12 -7
- package/src/channel/events/onChannelMemberAdded.ts +8 -6
- package/src/channel/events/onChannelMemberBanned.ts +7 -4
- package/src/channel/events/onChannelMemberRemoved.ts +7 -9
- package/src/channel/events/onChannelMemberUnbanned.ts +7 -4
- package/src/channel/events/onChannelMuted.ts +34 -0
- package/src/channel/events/onChannelUpdated.ts +10 -1
- package/src/channel/events/tests/onChannelCreated.test.ts +55 -0
- package/src/channel/events/tests/onChannelJoined.test.ts +56 -0
- package/src/channel/events/tests/onChannelMemberAdded.test.ts +56 -0
- package/src/channel/events/tests/onChannelMemberBanned.test.ts +13 -12
- package/src/channel/events/tests/onChannelMemberRemoved.test.ts +56 -0
- package/src/channel/events/tests/onChannelMemberUnbanned.test.ts +13 -12
- package/src/channel/events/tests/onChannelUpdated.test.ts +55 -0
- package/src/channel/observers/index.ts +1 -0
- package/src/channel/observers/liveChannel.ts +108 -0
- package/src/channel/observers/liveChannelMembers.ts +40 -34
- package/src/channel/observers/liveChannels.ts +25 -14
- package/src/channel/observers/observeChannel.ts +2 -0
- package/src/channel/observers/observeChannels.ts +2 -0
- package/src/channel/observers/tests/liveChannelMembers.test.ts +107 -95
- package/src/channel/observers/tests/liveChannels.test.ts +385 -126
- package/src/channel/utils/index.ts +54 -1
- package/src/channel/utils/tests/prepareChannelPayload.test.ts +22 -22
- package/src/client/api/accessTokenExpiryWatcher.ts +83 -0
- package/src/client/api/activeUser.ts +1 -1
- package/src/client/api/connectClient.ts +114 -26
- package/src/client/api/createClient.ts +10 -2
- package/src/client/api/disconnectClient.ts +26 -2
- package/src/client/api/getChatSettings.ts +22 -0
- package/src/client/api/getSocialSettings.ts +24 -0
- package/src/client/api/getToken.ts +6 -6
- package/src/client/api/index.ts +2 -0
- package/src/client/api/renewal.ts +74 -0
- package/src/client/api/setSessionState.ts +75 -0
- package/src/client/api/terminateClient.ts +20 -0
- package/src/client/api/tests/accessTokenExpiryWatcher.test.ts +129 -0
- package/src/client/api/tests/activeClient.test.ts +20 -0
- package/src/client/api/tests/activeUser.test.ts +20 -0
- package/src/client/api/tests/connectClient.test.ts +84 -0
- package/src/client/api/tests/createClient.test.ts +48 -0
- package/src/client/api/tests/disconnectClient.test.ts +78 -0
- package/src/client/api/tests/getToken.test.ts +36 -0
- package/src/client/api/tests/renewal.test.ts +67 -0
- package/src/client/api/tests/setSessionState.test.ts +62 -0
- package/src/client/api/tests/terminateClient.test.ts +29 -0
- package/src/client/events/index.ts +2 -0
- package/src/client/events/onClientBanned.ts +12 -5
- package/src/client/events/onSessionStateChange.ts +31 -0
- package/src/client/events/onTokenExpired.ts +26 -0
- package/src/client/events/onTokenTerminated.ts +20 -0
- package/src/client/events/tests/onSessionStateChange.test.ts +37 -0
- package/src/client/events/tests/onTokenTerminated.test.ts +37 -0
- package/src/client/tests/connectClient.test.ts +40 -0
- package/src/client/utils/setClientToken.ts +39 -0
- package/src/comment/api/createComment.ts +3 -3
- package/src/comment/api/tests/createComment.test.ts +49 -0
- package/src/comment/api/tests/getComments.test.ts +36 -0
- package/src/comment/events/tests/onCommentCreated.test.ts +27 -0
- package/src/comment/events/tests/onCommentDeleted.test.ts +27 -0
- package/src/comment/events/utils.ts +1 -1
- package/src/comment/observers/liveComments.ts +8 -8
- package/src/community/api/queryCommunities.ts +3 -2
- package/src/community/api/queryCommunityMembers.ts +59 -14
- package/src/community/api/test/addCommunityMember.test.ts +71 -0
- package/src/community/api/test/addCommunityMemberRole.test.ts +67 -0
- package/src/community/api/test/createCommunity.test.ts +61 -0
- package/src/community/api/test/deleteCommunity.test.ts +74 -0
- package/src/community/api/test/getCommunities.test.ts +73 -0
- package/src/community/api/test/getCommunity.test.ts +69 -0
- package/src/community/api/test/getRecommendedCommunities.test.ts +102 -0
- package/src/community/api/test/getTopTrendingCommunities.test.ts +102 -0
- package/src/community/api/test/joinCommunity.test.ts +70 -0
- package/src/community/api/test/leaveCommunity.test.ts +78 -0
- package/src/community/api/test/queryCommunity.test.ts +108 -0
- package/src/community/api/test/queryCommunityMembers.test.ts +122 -0
- package/src/community/api/test/removeCommunityMemberRole.test.ts +67 -0
- package/src/community/api/test/removeCommunityMembers.test.ts +75 -0
- package/src/community/api/test/updateCommunity.test.ts +65 -0
- package/src/community/events/test/onCommunityCreated.test.ts +46 -0
- package/src/community/events/test/onCommunityDeleted.test.ts +35 -0
- package/src/community/events/test/onCommunityJoined.test.ts +50 -0
- package/src/community/events/test/onCommunityLeft.test.ts +50 -0
- package/src/community/events/test/onCommunityUpdated.test.ts +49 -0
- package/src/community/events/test/onCommunityUserAdded.test.ts +50 -0
- package/src/community/events/test/onCommunityUserBanned.test.ts +50 -0
- package/src/community/events/test/onCommunityUserRemoved.test.ts +50 -0
- package/src/community/events/test/onCommunityUserUnbaned.test.ts +50 -0
- package/src/community/events/test/utils.test.ts +158 -0
- package/src/community/events/utils.ts +18 -10
- package/src/core/events.ts +11 -20
- package/src/core/model/idResolvers.ts +1 -0
- package/src/core/model/identifyModel.ts +1 -0
- package/src/core/model/index.ts +15 -0
- package/src/core/query/filtering.ts +2 -9
- package/src/core/query/query.ts +2 -34
- package/src/core/subscription.ts +50 -10
- package/src/core/tests/query/query/runQuery.test.ts +15 -38
- package/src/core/tests/subscription.test.ts +15 -0
- package/src/core/transports/http.ts +36 -1
- package/src/core/transports/mqtt.ts +1 -1
- package/src/external/api/createUserToken.ts +2 -2
- package/src/feed/api/queryGlobalFeed.ts +1 -1
- package/src/feed/api/test/queryGlobalFeed.test.ts +138 -0
- package/src/follow/events/utils.ts +1 -1
- package/src/follow/observers/liveFollowers.ts +8 -8
- package/src/follow/observers/liveFollowings.ts +8 -8
- package/src/group/utils/index.ts +1 -0
- package/src/group/utils/test/withUsers.test.ts +103 -0
- package/src/group/utils/withUser.ts +92 -0
- package/src/index.ts +4 -0
- package/src/message/api/createMessage.ts +60 -29
- package/src/message/api/deleteMessage.ts +6 -6
- package/src/message/api/getMessage.ts +5 -4
- package/src/message/api/getMessages.ts +7 -5
- package/src/message/api/queryMessages.ts +13 -25
- package/src/message/api/tests/createMessage.test.ts +129 -37
- package/src/message/api/tests/deleteMessage.test.ts +18 -12
- package/src/message/api/tests/getMessage.test.ts +6 -4
- package/src/message/api/tests/getMessages.test.ts +7 -8
- package/src/message/api/tests/queryMessages.test.ts +20 -23
- package/src/message/api/tests/updateMessage.test.ts +13 -12
- package/src/message/api/updateMessage.ts +12 -9
- package/src/message/events/index.ts +7 -1
- package/src/message/events/onMessageCreated.ts +50 -3
- package/src/message/events/onMessageDeleted.ts +14 -2
- package/src/message/events/onMessageFetched.ts +1 -1
- package/src/message/events/onMessageFlagCleared.ts +34 -0
- package/src/message/events/onMessageFlagged.ts +33 -0
- package/src/message/events/onMessageReactionAdded.ts +35 -0
- package/src/message/events/onMessageReactionRemoved.ts +40 -0
- package/src/message/events/onMessageUnflagged.ts +32 -0
- package/src/message/events/onMessageUpdated.ts +14 -10
- package/src/message/observers/liveMessage.ts +42 -23
- package/src/message/observers/liveMessages.ts +30 -16
- package/src/message/observers/observeMessage.ts +1 -0
- package/src/message/observers/observeMessages.ts +6 -5
- package/src/message/tests/events.test.ts +53 -0
- package/src/message/tests/observers/liveMessage.test.ts +46 -49
- package/src/message/tests/observers/liveMessages.test.ts +45 -37
- package/src/message/utils/index.ts +129 -0
- package/src/post/api/queryPosts.ts +9 -0
- package/src/post/api/tests/queryPosts.test.ts +149 -0
- package/src/post/events/tests/onPostApproved.test.ts +33 -0
- package/src/post/events/tests/onPostCreated.test.ts +33 -0
- package/src/post/events/tests/onPostDeclined.test.ts +33 -0
- package/src/post/events/tests/onPostDeleted.test.ts +33 -0
- package/src/post/events/tests/onPostFlagged.test.ts +33 -0
- package/src/post/events/tests/onPostReactionAdded.test.ts +40 -0
- package/src/post/events/tests/onPostReactionRemoved.test.ts +40 -0
- package/src/post/events/tests/onPostUnflagged.test.ts +33 -0
- package/src/post/events/tests/onPostUpdated.test.ts +33 -0
- package/src/post/events/utils.ts +1 -1
- package/src/post/observers/livePosts.ts +32 -12
- package/src/post/observers/tests/livePosts.test.ts +302 -0
- package/src/reaction/api/addReaction.ts +1 -0
- package/src/reaction/api/removeReaction.ts +6 -1
- package/src/reaction/events/onReactionAdded.ts +4 -7
- package/src/reaction/events/onReactionRemoved.ts +4 -7
- package/src/reaction/events/onReactorAdded.ts +4 -2
- package/src/reaction/events/onReactorRemoved.ts +4 -7
- package/src/reaction/observers/liveReactions.ts +6 -6
- package/src/reaction/utils/dispatchReactable.ts +1 -1
- package/src/report/api/createReport.ts +28 -18
- package/src/report/api/deleteReport.ts +28 -18
- package/src/report/api/isReportedByMe.ts +9 -2
- package/src/stream/api/tests/createStream.test.ts +30 -0
- package/src/stream/api/tests/deleteStream.test.ts +48 -0
- package/src/stream/api/tests/getStream.test.ts +23 -0
- package/src/subChannel/api/createSubChannel.ts +41 -0
- package/src/subChannel/api/deleteSubChannel.ts +53 -0
- package/src/subChannel/api/getSubChannel.ts +85 -0
- package/src/subChannel/api/getSubChannels.ts +77 -0
- package/src/subChannel/api/index.ts +8 -0
- package/src/subChannel/api/querySubChannels.ts +115 -0
- package/src/subChannel/api/tests/createSubChannel.test.ts +103 -0
- package/src/subChannel/api/updateSubChannel.ts +43 -0
- package/src/subChannel/events/index.ts +3 -0
- package/src/subChannel/events/onSubChannelCreated.ts +32 -0
- package/src/subChannel/events/onSubChannelDeleted.ts +44 -0
- package/src/subChannel/events/onSubChannelFetched.ts +12 -0
- package/src/subChannel/events/onSubChannelUpdated.ts +32 -0
- package/src/subChannel/observers/index.ts +2 -0
- package/src/subChannel/observers/liveSubChannel.ts +84 -0
- package/src/subChannel/observers/liveSubChannels.ts +137 -0
- package/src/subChannel/observers/tests/liveSubChannel.test.ts +212 -0
- package/src/subChannel/observers/tests/liveSubChannels.test.ts +206 -0
- package/src/subChannel/utils/index.ts +50 -0
- package/src/user/events/index.ts +0 -1
- package/src/user/events/utils.ts +1 -1
- package/src/user/observers/liveUser.ts +29 -23
- package/src/user/tests/observers/liveUser.test.ts +5 -9
- package/src/utils/constants.ts +2 -0
- package/src/utils/index.ts +52 -0
- package/src/utils/tests/client.ts +18 -2
- package/src/utils/tests/dummy/channel.ts +123 -117
- package/src/utils/tests/dummy/community.ts +67 -3
- package/src/utils/tests/dummy/index.ts +6 -1
- package/src/utils/tests/dummy/member.ts +18 -0
- package/src/utils/tests/dummy/message.ts +37 -16
- package/src/utils/tests/dummy/post.ts +34 -0
- package/src/utils/tests/dummy/stream.ts +86 -0
- package/src/utils/tests/dummy/subChannel.ts +51 -0
- package/src/utils/tests/dummy/token.ts +12 -0
- package/src/utils/tests/dummy/user.ts +2 -0
- package/src/utils/tests/utils.ts +2 -0
- package/dist/channel/utils/prepareChannelPayload.d.ts +0 -3
- package/dist/channel/utils/prepareChannelPayload.d.ts.map +0 -1
- package/src/channel/utils/prepareChannelPayload.ts +0 -31
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
connectClient,
|
|
3
3
|
disconnectClient,
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
channel1,
|
|
5
|
+
channel2,
|
|
6
6
|
channelRaw1,
|
|
7
7
|
channelRaw2,
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
rawChannelUser,
|
|
9
|
+
rawChannelUser2,
|
|
10
10
|
} from '~/utils/tests';
|
|
11
11
|
|
|
12
|
-
import { prepareChannelPayload } from '
|
|
12
|
+
import { prepareChannelPayload } from '..';
|
|
13
13
|
|
|
14
14
|
beforeAll(async () => {
|
|
15
15
|
await connectClient();
|
|
@@ -36,7 +36,7 @@ const tests = [
|
|
|
36
36
|
},
|
|
37
37
|
after: {
|
|
38
38
|
...responseSchema,
|
|
39
|
-
channels: [
|
|
39
|
+
channels: [channel1],
|
|
40
40
|
},
|
|
41
41
|
},
|
|
42
42
|
{
|
|
@@ -45,12 +45,12 @@ const tests = [
|
|
|
45
45
|
before: {
|
|
46
46
|
...responseSchema,
|
|
47
47
|
channels: [channelRaw1],
|
|
48
|
-
channelUsers: [
|
|
48
|
+
channelUsers: [rawChannelUser],
|
|
49
49
|
},
|
|
50
50
|
after: {
|
|
51
51
|
...responseSchema,
|
|
52
|
-
channels: [
|
|
53
|
-
channelUsers: [
|
|
52
|
+
channels: [channel1],
|
|
53
|
+
channelUsers: [rawChannelUser],
|
|
54
54
|
},
|
|
55
55
|
},
|
|
56
56
|
{
|
|
@@ -59,12 +59,12 @@ const tests = [
|
|
|
59
59
|
before: {
|
|
60
60
|
...responseSchema,
|
|
61
61
|
channels: [channelRaw1],
|
|
62
|
-
channelUsers: [
|
|
62
|
+
channelUsers: [rawChannelUser],
|
|
63
63
|
},
|
|
64
64
|
after: {
|
|
65
65
|
...responseSchema,
|
|
66
|
-
channels: [
|
|
67
|
-
channelUsers: [
|
|
66
|
+
channels: [channel1],
|
|
67
|
+
channelUsers: [rawChannelUser],
|
|
68
68
|
},
|
|
69
69
|
},
|
|
70
70
|
{
|
|
@@ -73,12 +73,12 @@ const tests = [
|
|
|
73
73
|
before: {
|
|
74
74
|
...responseSchema,
|
|
75
75
|
channels: [channelRaw2],
|
|
76
|
-
channelUsers: [
|
|
76
|
+
channelUsers: [rawChannelUser2],
|
|
77
77
|
},
|
|
78
78
|
after: {
|
|
79
79
|
...responseSchema,
|
|
80
|
-
channels: [
|
|
81
|
-
channelUsers: [
|
|
80
|
+
channels: [channel2],
|
|
81
|
+
channelUsers: [rawChannelUser2],
|
|
82
82
|
},
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -87,12 +87,12 @@ const tests = [
|
|
|
87
87
|
before: {
|
|
88
88
|
...responseSchema,
|
|
89
89
|
channels: [channelRaw2],
|
|
90
|
-
channelUsers: [
|
|
90
|
+
channelUsers: [rawChannelUser2],
|
|
91
91
|
},
|
|
92
92
|
after: {
|
|
93
93
|
...responseSchema,
|
|
94
|
-
channels: [
|
|
95
|
-
channelUsers: [
|
|
94
|
+
channels: [channel2],
|
|
95
|
+
channelUsers: [rawChannelUser2],
|
|
96
96
|
},
|
|
97
97
|
},
|
|
98
98
|
{
|
|
@@ -101,17 +101,17 @@ const tests = [
|
|
|
101
101
|
before: {
|
|
102
102
|
...responseSchema,
|
|
103
103
|
channels: [channelRaw2],
|
|
104
|
-
channelUsers: [
|
|
104
|
+
channelUsers: [rawChannelUser2],
|
|
105
105
|
},
|
|
106
106
|
after: {
|
|
107
107
|
...responseSchema,
|
|
108
|
-
channels: [
|
|
109
|
-
channelUsers: [
|
|
108
|
+
channels: [channel2],
|
|
109
|
+
channelUsers: [rawChannelUser2],
|
|
110
110
|
},
|
|
111
111
|
},
|
|
112
112
|
];
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
xdescribe('channel/utils/prepareChannelPayload', () => {
|
|
115
115
|
tests.forEach(({ id, desc, before, after }) => {
|
|
116
116
|
test(`${id} - ${desc}`, () => {
|
|
117
117
|
expect(prepareChannelPayload(before)).toEqual(after);
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { fireEvent } from '~/core/events';
|
|
2
|
+
import { scheduleTask } from '~/core/microtasks';
|
|
3
|
+
import { MINUTE, ACCESS_TOKEN_WATCHER_INTERVAL } from '~/utils/constants';
|
|
4
|
+
|
|
5
|
+
import { renewal } from './renewal';
|
|
6
|
+
|
|
7
|
+
const ABOUT_TO_EXPIRE_THRESHOLD = 80 / 100;
|
|
8
|
+
const COMPENSATED_DELAY = 5 * MINUTE;
|
|
9
|
+
|
|
10
|
+
/*
|
|
11
|
+
* a helper function to check if the token has expires
|
|
12
|
+
*
|
|
13
|
+
* @param token to be checked
|
|
14
|
+
* @returns boolean indicating if token expires
|
|
15
|
+
*
|
|
16
|
+
* @category private
|
|
17
|
+
*/
|
|
18
|
+
export const isExpired = (expiresAt: Amity.Tokens['expiresAt']): boolean =>
|
|
19
|
+
Date.now() > Date.parse(expiresAt) - COMPENSATED_DELAY;
|
|
20
|
+
|
|
21
|
+
/*
|
|
22
|
+
* a helper function to check if the token is about to expire
|
|
23
|
+
*
|
|
24
|
+
* @param token to be checked
|
|
25
|
+
* @returns boolean indicating if token is aboutToExpire
|
|
26
|
+
*
|
|
27
|
+
* @category private
|
|
28
|
+
*/
|
|
29
|
+
export const isAboutToExpire = (
|
|
30
|
+
expiresAt: Amity.Tokens['expiresAt'],
|
|
31
|
+
issuedAt: Amity.Tokens['issuedAt'],
|
|
32
|
+
): boolean => {
|
|
33
|
+
const expires = Date.parse(expiresAt);
|
|
34
|
+
const issued = Date.parse(issuedAt);
|
|
35
|
+
const now = Date.now();
|
|
36
|
+
|
|
37
|
+
const duration = expires - issued - COMPENSATED_DELAY;
|
|
38
|
+
const aboutToExpireAt = issued + duration * ABOUT_TO_EXPIRE_THRESHOLD;
|
|
39
|
+
|
|
40
|
+
return now > aboutToExpireAt && now < expires;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/*
|
|
44
|
+
* Monitors time to expire of token and updates session state to aboutToExpire
|
|
45
|
+
*
|
|
46
|
+
* @returns intervalId to be cleared after trigger
|
|
47
|
+
*
|
|
48
|
+
* @category private
|
|
49
|
+
*/
|
|
50
|
+
export const accessTokenExpiryWatcher = (
|
|
51
|
+
expiresAt: Amity.Tokens['expiresAt'],
|
|
52
|
+
issuedAt: Amity.Tokens['issuedAt'],
|
|
53
|
+
sessionHandler: Amity.SessionHandler,
|
|
54
|
+
): Amity.Unsubscriber => {
|
|
55
|
+
const interval: ReturnType<typeof setInterval> = setInterval(() => {
|
|
56
|
+
if (isExpired(expiresAt)) {
|
|
57
|
+
/*
|
|
58
|
+
* the event handler will take care of updating session state
|
|
59
|
+
* Note, this will also clear the interval id, so this event will only be
|
|
60
|
+
* fired once
|
|
61
|
+
*/
|
|
62
|
+
fireEvent('tokenExpired', Amity.SessionStates.TOKEN_EXPIRED);
|
|
63
|
+
|
|
64
|
+
/*
|
|
65
|
+
* https://ekoapp.atlassian.net/wiki/spaces/UP/pages/2082537485/ASC+Core+-+Session+Management+3.0#Automatically-initiate-renewal-flow
|
|
66
|
+
*
|
|
67
|
+
* Why sechduled task?
|
|
68
|
+
* Since fireEvent is scheduled, it will be called
|
|
69
|
+
* after sessionHandler leading to an invalid state change from
|
|
70
|
+
* establishing to tokenExpired
|
|
71
|
+
*/
|
|
72
|
+
scheduleTask(() => sessionHandler.sessionWillRenewAccessToken(renewal()));
|
|
73
|
+
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if (isAboutToExpire(issuedAt, expiresAt)) {
|
|
78
|
+
sessionHandler.sessionWillRenewAccessToken(renewal());
|
|
79
|
+
}
|
|
80
|
+
}, ACCESS_TOKEN_WATCHER_INTERVAL);
|
|
81
|
+
|
|
82
|
+
return (): void => clearInterval(interval);
|
|
83
|
+
};
|
|
@@ -3,14 +3,35 @@
|
|
|
3
3
|
import { disconnectClient } from '~/client/api/disconnectClient';
|
|
4
4
|
import { getDeviceId } from '~/core/device';
|
|
5
5
|
import { proxyWebsocketEvents } from '~/core/events';
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
getUserTopic,
|
|
8
|
+
getNetworkTopic,
|
|
9
|
+
getSmartFeedChannelTopic,
|
|
10
|
+
getSmartFeedMessageTopic,
|
|
11
|
+
getSmartFeedSubChannelTopic,
|
|
12
|
+
subscribeTopic,
|
|
13
|
+
} from '~/core/subscription';
|
|
14
|
+
|
|
7
15
|
import { onUserDeleted } from '~/user/events/onUserDeleted';
|
|
8
16
|
|
|
9
17
|
import { getActiveClient } from './activeClient';
|
|
10
|
-
import {
|
|
18
|
+
import { terminateClient } from './terminateClient';
|
|
19
|
+
import { setActiveUser, getActiveUser } from './activeUser';
|
|
20
|
+
|
|
21
|
+
import { setSessionState } from './setSessionState';
|
|
11
22
|
|
|
12
|
-
import { getToken } from './getToken';
|
|
13
23
|
import { onClientBanned } from '../events';
|
|
24
|
+
import { onTokenExpired } from '../events/onTokenExpired';
|
|
25
|
+
import { onTokenTerminated } from '../events/onTokenTerminated';
|
|
26
|
+
|
|
27
|
+
import { setClientToken } from '../utils/setClientToken';
|
|
28
|
+
|
|
29
|
+
/*
|
|
30
|
+
* declared earlier to accomodate case when logging in with a different user
|
|
31
|
+
* than the one already connected, in which case the existing subscriptions need
|
|
32
|
+
* to be cleared
|
|
33
|
+
*/
|
|
34
|
+
const subscriptions: Amity.Unsubscriber[] = [];
|
|
14
35
|
|
|
15
36
|
/**
|
|
16
37
|
* ```js
|
|
@@ -34,51 +55,118 @@ import { onClientBanned } from '../events';
|
|
|
34
55
|
*/
|
|
35
56
|
export const connectClient = async (
|
|
36
57
|
params: Amity.ConnectClientParams,
|
|
58
|
+
sessionHandler: Amity.SessionHandler,
|
|
37
59
|
config?: Amity.ConnectClientConfig,
|
|
38
60
|
): Promise<boolean> => {
|
|
39
61
|
const client = getActiveClient();
|
|
40
|
-
|
|
62
|
+
let unsubWatcher: Amity.Unsubscriber;
|
|
63
|
+
|
|
64
|
+
client.log('client/api/connectClient', {
|
|
65
|
+
apiKey: client.apiKey,
|
|
66
|
+
sessionState: client.sessionState,
|
|
67
|
+
...params,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// if connecting to a different userId than the one that is connected currently
|
|
71
|
+
if (client.userId && client.userId !== params.userId) {
|
|
72
|
+
await disconnectClient();
|
|
73
|
+
|
|
74
|
+
// Remove subscription to ban and delete
|
|
75
|
+
subscriptions.forEach(fn => fn());
|
|
76
|
+
}
|
|
41
77
|
|
|
42
78
|
// default values
|
|
43
79
|
params.deviceId ??= getDeviceId();
|
|
44
80
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
81
|
+
try {
|
|
82
|
+
// @ts-ignore: in that particular case, typing can be
|
|
83
|
+
// ignored since we enforce default values just before.
|
|
84
|
+
const { users } = await setClientToken(params);
|
|
48
85
|
|
|
49
|
-
|
|
50
|
-
|
|
86
|
+
// FIXME: events are duplicated if connectClient is called few times without disconnectClient
|
|
87
|
+
// wire websocket events to our event emitter
|
|
88
|
+
proxyWebsocketEvents(client.ws, client.emitter);
|
|
51
89
|
|
|
52
|
-
|
|
53
|
-
|
|
90
|
+
// TODO: in phase 2, this should not be necessary. we should have WS
|
|
91
|
+
// to be connected "on demand" rather than "by default"
|
|
92
|
+
await new Promise(resolve => {
|
|
93
|
+
client.ws.once('connect', resolve);
|
|
94
|
+
client.ws.open();
|
|
95
|
+
});
|
|
54
96
|
|
|
55
|
-
|
|
56
|
-
// wire websocket events to our event emitter
|
|
57
|
-
proxyWebsocketEvents(client.ws, client.emitter);
|
|
97
|
+
client.userId = params.userId;
|
|
58
98
|
|
|
59
|
-
|
|
60
|
-
// to be connected "on demand" rather than "by default"
|
|
61
|
-
await new Promise(resolve => {
|
|
62
|
-
client.ws.once('connect', resolve);
|
|
63
|
-
client.ws.open();
|
|
64
|
-
});
|
|
99
|
+
client.sessionHandler = sessionHandler;
|
|
65
100
|
|
|
66
|
-
|
|
67
|
-
|
|
101
|
+
/*
|
|
102
|
+
* Cannot push to subscriptions as watcher needs to continue working even if
|
|
103
|
+
* token expires
|
|
104
|
+
*/
|
|
105
|
+
unsubWatcher = client.accessTokenExpiryWatcher(
|
|
106
|
+
client.token?.issuedAt!,
|
|
107
|
+
client.token?.expiresAt!,
|
|
108
|
+
sessionHandler!,
|
|
109
|
+
);
|
|
68
110
|
|
|
69
|
-
|
|
111
|
+
setActiveUser(users[0]);
|
|
112
|
+
} catch (error) {
|
|
113
|
+
/*
|
|
114
|
+
* if getting token failed session state reverts to initial state when app
|
|
115
|
+
* is first launched
|
|
116
|
+
*/
|
|
117
|
+
setSessionState(Amity.SessionStates.NOT_LOGGED_IN);
|
|
118
|
+
|
|
119
|
+
// pass error down tree so the calling function handle it
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
70
122
|
|
|
71
123
|
if (config?.disableRTE !== true) {
|
|
72
124
|
subscribeTopic(getNetworkTopic());
|
|
125
|
+
subscribeTopic(getSmartFeedChannelTopic());
|
|
126
|
+
subscribeTopic(getSmartFeedSubChannelTopic());
|
|
127
|
+
subscribeTopic(getSmartFeedMessageTopic());
|
|
128
|
+
// subscribing to user topic is necessary to handle ban event
|
|
129
|
+
subscribeTopic(getUserTopic(getActiveUser()));
|
|
73
130
|
}
|
|
74
131
|
|
|
75
|
-
|
|
76
|
-
|
|
132
|
+
subscriptions.push(
|
|
133
|
+
// GLOBAL_BAN
|
|
134
|
+
onClientBanned((_: Amity.UserPayload) => {
|
|
135
|
+
terminateClient();
|
|
136
|
+
|
|
137
|
+
subscriptions.forEach(fn => fn());
|
|
138
|
+
|
|
139
|
+
unsubWatcher();
|
|
140
|
+
}),
|
|
141
|
+
|
|
142
|
+
onTokenTerminated(_ => {
|
|
143
|
+
terminateClient();
|
|
144
|
+
|
|
145
|
+
subscriptions.forEach(fn => fn());
|
|
146
|
+
|
|
147
|
+
unsubWatcher();
|
|
148
|
+
}),
|
|
149
|
+
|
|
150
|
+
onUserDeleted((user: Amity.User) => {
|
|
151
|
+
if (user.userId === client.userId) {
|
|
152
|
+
terminateClient();
|
|
153
|
+
|
|
154
|
+
subscriptions.forEach(fn => fn());
|
|
155
|
+
|
|
156
|
+
unsubWatcher();
|
|
157
|
+
}
|
|
158
|
+
}),
|
|
159
|
+
|
|
160
|
+
onTokenExpired(state => {
|
|
161
|
+
setSessionState(state);
|
|
162
|
+
|
|
77
163
|
disconnectClient();
|
|
164
|
+
|
|
78
165
|
subscriptions.forEach(fn => fn());
|
|
79
166
|
}),
|
|
167
|
+
|
|
80
168
|
onUserDeleted(() => null),
|
|
81
|
-
|
|
169
|
+
);
|
|
82
170
|
|
|
83
171
|
return client.ws.connected;
|
|
84
172
|
};
|
|
@@ -14,6 +14,8 @@ import { createEventEmitter } from '~/core/events';
|
|
|
14
14
|
import { getActiveClient, setActiveClient } from './activeClient';
|
|
15
15
|
import { getFeedSettings } from './getFeedSettings';
|
|
16
16
|
|
|
17
|
+
import { accessTokenExpiryWatcher } from './accessTokenExpiryWatcher';
|
|
18
|
+
|
|
17
19
|
const DEFAULT_DEBUG_SESSION = 'amity';
|
|
18
20
|
|
|
19
21
|
/**
|
|
@@ -27,7 +29,7 @@ const DEFAULT_DEBUG_SESSION = 'amity';
|
|
|
27
29
|
* @param apiKey for the {@link Amity.Client} instance
|
|
28
30
|
* @param apiRegion endpoint to connect to
|
|
29
31
|
* @param apiEndpoint custom endpoint in case you don't want to use a preset endpoint
|
|
30
|
-
* @param debugSession session's identifier for the client's logger instance
|
|
32
|
+
* @param param.debugSession session's identifier for the client's logger instance
|
|
31
33
|
* @returns A {@link Amity.Client} instance
|
|
32
34
|
*
|
|
33
35
|
* @category Client API
|
|
@@ -59,6 +61,9 @@ export const createClient = (
|
|
|
59
61
|
|
|
60
62
|
const emitter = createEventEmitter();
|
|
61
63
|
|
|
64
|
+
const sessionState = Amity.SessionStates.NOT_LOGGED_IN;
|
|
65
|
+
const sessionHandler = undefined;
|
|
66
|
+
|
|
62
67
|
const client = {
|
|
63
68
|
version: `${VERSION}`,
|
|
64
69
|
|
|
@@ -68,13 +73,16 @@ export const createClient = (
|
|
|
68
73
|
ws,
|
|
69
74
|
mqtt,
|
|
70
75
|
emitter,
|
|
76
|
+
accessTokenExpiryWatcher,
|
|
71
77
|
use: () => setActiveClient(client),
|
|
72
78
|
|
|
79
|
+
sessionState,
|
|
80
|
+
sessionHandler,
|
|
73
81
|
getFeedSettings,
|
|
74
82
|
};
|
|
75
83
|
|
|
76
84
|
try {
|
|
77
|
-
getActiveClient();
|
|
85
|
+
return getActiveClient();
|
|
78
86
|
} catch {
|
|
79
87
|
setActiveClient(client);
|
|
80
88
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getActiveClient } from './activeClient';
|
|
2
|
+
import { setSessionState } from './setSessionState';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* ```js
|
|
@@ -8,7 +9,6 @@ import { getActiveClient } from './activeClient';
|
|
|
8
9
|
*
|
|
9
10
|
* Disconnects an {@link Amity.Client} instance from ASC servers
|
|
10
11
|
*
|
|
11
|
-
* @param client The {@link Amity.Client} instance to disconnect
|
|
12
12
|
* @returns a success boolean if disconnected
|
|
13
13
|
*
|
|
14
14
|
* @category Client API
|
|
@@ -16,6 +16,7 @@ import { getActiveClient } from './activeClient';
|
|
|
16
16
|
*/
|
|
17
17
|
export const disconnectClient = async (): Promise<boolean> => {
|
|
18
18
|
const client = getActiveClient();
|
|
19
|
+
|
|
19
20
|
client.log('client/api/disconnectClient');
|
|
20
21
|
|
|
21
22
|
await new Promise(resolve => {
|
|
@@ -29,7 +30,30 @@ export const disconnectClient = async (): Promise<boolean> => {
|
|
|
29
30
|
client.ws.removeAllListeners();
|
|
30
31
|
client.mqtt.removeAllListeners();
|
|
31
32
|
client.userId = undefined;
|
|
32
|
-
client.
|
|
33
|
+
client.token = undefined;
|
|
34
|
+
|
|
35
|
+
client.http.defaults.headers.common.Authorization = '';
|
|
36
|
+
client.ws.io.opts.query = { token: '' };
|
|
37
|
+
|
|
38
|
+
/*
|
|
39
|
+
* for cases when session state is terminated (example on ban) or token expired,
|
|
40
|
+
* the terminating block will set session state to terminated or for the or
|
|
41
|
+
* in the case of expired token the same happens
|
|
42
|
+
*
|
|
43
|
+
* establishing state also ignored in cases where accessTokenExpiryWatcher
|
|
44
|
+
* calls renewal. There is a possibility that renewal will be called before
|
|
45
|
+
* disconnectClient finishes execution
|
|
46
|
+
*/
|
|
47
|
+
if (client.sessionState === Amity.SessionStates.ESTABLISHED)
|
|
48
|
+
setSessionState(Amity.SessionStates.NOT_LOGGED_IN);
|
|
49
|
+
|
|
50
|
+
/*
|
|
51
|
+
* Cache should be usable if tokenExpired
|
|
52
|
+
* https://ekoapp.atlassian.net/wiki/spaces/UP/pages/2082537485/ASC+Core+-+Session+Management+3.0#SDK-usability-based-on-Session-State
|
|
53
|
+
*/
|
|
54
|
+
if (client.sessionState !== Amity.SessionStates.TOKEN_EXPIRED && client.cache) {
|
|
55
|
+
client.cache = { data: {} };
|
|
56
|
+
}
|
|
33
57
|
|
|
34
58
|
return !client.ws.connected;
|
|
35
59
|
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { getActiveClient } from './activeClient';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ```js
|
|
5
|
+
* import { getChatSettings } from '@amityco/ts-sdk'
|
|
6
|
+
* const chatSettings = await getChatSettings()
|
|
7
|
+
* ```
|
|
8
|
+
*
|
|
9
|
+
* Fetches a {@link Amity.ChatSettings} object
|
|
10
|
+
*
|
|
11
|
+
* @returns A Promise of {@link Amity.ChatSettings} object
|
|
12
|
+
*
|
|
13
|
+
* @category Client API
|
|
14
|
+
* @async
|
|
15
|
+
*/
|
|
16
|
+
export const getChatSettings = async (): Promise<Amity.ChatSettings> => {
|
|
17
|
+
const client = getActiveClient();
|
|
18
|
+
|
|
19
|
+
const { data } = await client.http.get<Amity.ChatSettings>(`/api/v3/network-settings/chat`);
|
|
20
|
+
|
|
21
|
+
return data;
|
|
22
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { getActiveClient } from './activeClient';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ```js
|
|
5
|
+
* import { getSocialSettings } from '@amityco/ts-sdk'
|
|
6
|
+
* const socialSettings = await getSocialSettings()
|
|
7
|
+
* ```
|
|
8
|
+
*
|
|
9
|
+
* Fetches a {@link Amity.SocialSettings} object
|
|
10
|
+
*
|
|
11
|
+
* @returns A Promise of {@link Amity.SocialSettings} object
|
|
12
|
+
*
|
|
13
|
+
* @category Client API
|
|
14
|
+
* @async
|
|
15
|
+
*/
|
|
16
|
+
export const getSocialSettings = async (): Promise<Amity.SocialSettings> => {
|
|
17
|
+
const client = getActiveClient();
|
|
18
|
+
|
|
19
|
+
const { data } = await client.http.get<{ socialNetworkSetting: Amity.SocialSettings }>(
|
|
20
|
+
`/api/v3/network-settings/social`,
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
return data.socialNetworkSetting;
|
|
24
|
+
};
|
|
@@ -5,10 +5,10 @@ import { getDeviceInfo } from '~/core/device';
|
|
|
5
5
|
/**
|
|
6
6
|
* Retrieves a pair of {@link Amity.Tokens} necessary for connection
|
|
7
7
|
*
|
|
8
|
-
* @param userId The userId to use to issue a token
|
|
9
|
-
* @param displayName The user's displayName
|
|
10
|
-
* @param deviceId The user's device Id (can be manually set for native users)
|
|
11
|
-
* @param authToken The authentication token - necessary when network option is set to secure
|
|
8
|
+
* @param params.userId The userId to use to issue a token
|
|
9
|
+
* @param params.displayName The user's displayName
|
|
10
|
+
* @param params.deviceId The user's device Id (can be manually set for native users)
|
|
11
|
+
* @param params.authToken The authentication token - necessary when network option is set to secure
|
|
12
12
|
* @return The accessToken for the given userId
|
|
13
13
|
*
|
|
14
14
|
* @category Client API
|
|
@@ -23,10 +23,10 @@ export const getToken = async (params: {
|
|
|
23
23
|
const client = getActiveClient();
|
|
24
24
|
client.log('client/api/getToken', params);
|
|
25
25
|
|
|
26
|
-
const deviceInfo =
|
|
26
|
+
const deviceInfo = getDeviceInfo();
|
|
27
27
|
|
|
28
28
|
const { data } = await client.http.post<Amity.Tokens & { users: Amity.User[] }>(
|
|
29
|
-
'/
|
|
29
|
+
'/api/v3/sessions',
|
|
30
30
|
{
|
|
31
31
|
...params,
|
|
32
32
|
deviceInfo,
|
package/src/client/api/index.ts
CHANGED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { getDeviceId } from '~/core/device';
|
|
2
|
+
import { ACCESS_TOKEN_WATCHER_INTERVAL } from '~/utils/constants';
|
|
3
|
+
|
|
4
|
+
import { getActiveUser } from './activeUser';
|
|
5
|
+
import { setClientToken as refreshToken } from '../utils/setClientToken';
|
|
6
|
+
import { getActiveClient } from './activeClient';
|
|
7
|
+
import { connectClient } from './connectClient';
|
|
8
|
+
|
|
9
|
+
/*
|
|
10
|
+
* Renewal defintion accepted by SessionHandler interface
|
|
11
|
+
*
|
|
12
|
+
* Tech Spec:
|
|
13
|
+
* https://ekoapp.atlassian.net/wiki/spaces/UP/pages/2082537485/ASC+Core+-+Session+Management+3.0#Session-Handler
|
|
14
|
+
*
|
|
15
|
+
* @category private
|
|
16
|
+
*/
|
|
17
|
+
export const renewal = (): Amity.AccessTokenRenewal => {
|
|
18
|
+
let tokenRenewed = false;
|
|
19
|
+
let renewTimeoutId: ReturnType<typeof setTimeout>;
|
|
20
|
+
|
|
21
|
+
const client = getActiveClient();
|
|
22
|
+
|
|
23
|
+
client.log('initiating access token renewal');
|
|
24
|
+
/*
|
|
25
|
+
* Renews a token if it is hasn't been renewed before. Also marks token as
|
|
26
|
+
* renewed once done
|
|
27
|
+
* Per instance of Renewal, only one renewal is allowed
|
|
28
|
+
*/
|
|
29
|
+
const renewToken = async (authToken?: Amity.ConnectClientParams['authToken']): Promise<void> => {
|
|
30
|
+
const { userId, displayName } = getActiveUser();
|
|
31
|
+
const deviceId = getDeviceId();
|
|
32
|
+
|
|
33
|
+
const params = { userId, displayName, authToken, deviceId };
|
|
34
|
+
|
|
35
|
+
if (client.sessionState === Amity.SessionStates.TOKEN_EXPIRED) {
|
|
36
|
+
// sessionHandler will never be empty when renewal is instantiatied
|
|
37
|
+
await connectClient(params, client.sessionHandler!);
|
|
38
|
+
} else {
|
|
39
|
+
// about to expire
|
|
40
|
+
|
|
41
|
+
// @ts-ignore: in that particular case, typing can be
|
|
42
|
+
// ignored since we enforce default values just before.
|
|
43
|
+
await refreshToken(params);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
tokenRenewed = true;
|
|
47
|
+
|
|
48
|
+
if (renewTimeoutId) clearTimeout(renewTimeoutId);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
renew: () => {
|
|
53
|
+
if (tokenRenewed) {
|
|
54
|
+
console.log("'renew' method can be called only once per renewal instance");
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
renewToken();
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
renewWithAuthToken: (authToken: string) => {
|
|
61
|
+
if (tokenRenewed) {
|
|
62
|
+
console.log("'renewWithAuthToken' method can be called only once per renewal instance");
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
renewToken(authToken);
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
unableToRetrieveAuthToken: () => {
|
|
69
|
+
renewTimeoutId = setTimeout(() => {
|
|
70
|
+
client.sessionHandler?.sessionWillRenewAccessToken(renewal());
|
|
71
|
+
}, ACCESS_TOKEN_WATCHER_INTERVAL);
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
};
|