@amityco/ts-sdk 6.17.3 → 6.18.0
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/events.d.ts +4 -2
- package/dist/@types/core/events.d.ts.map +1 -1
- package/dist/@types/core/marker.d.ts +12 -1
- package/dist/@types/core/marker.d.ts.map +1 -1
- package/dist/@types/core/model.d.ts +6 -2
- package/dist/@types/core/model.d.ts.map +1 -1
- package/dist/@types/core/payload.d.ts +20 -3
- package/dist/@types/core/payload.d.ts.map +1 -1
- package/dist/@types/core/readReceipt.d.ts +21 -0
- package/dist/@types/core/readReceipt.d.ts.map +1 -0
- package/dist/@types/domains/channel.d.ts +11 -1
- package/dist/@types/domains/channel.d.ts.map +1 -1
- package/dist/@types/domains/client.d.ts +12 -2
- package/dist/@types/domains/client.d.ts.map +1 -1
- package/dist/@types/domains/community.d.ts +1 -3
- package/dist/@types/domains/community.d.ts.map +1 -1
- package/dist/@types/domains/group.d.ts +2 -2
- package/dist/@types/domains/group.d.ts.map +1 -1
- package/dist/@types/domains/marker.d.ts +15 -0
- package/dist/@types/domains/marker.d.ts.map +1 -1
- package/dist/@types/domains/message.d.ts +4 -0
- package/dist/@types/domains/message.d.ts.map +1 -1
- package/dist/@types/domains/story.d.ts +20 -3
- package/dist/@types/domains/story.d.ts.map +1 -1
- package/dist/@types/domains/subChannel.d.ts +4 -0
- package/dist/@types/domains/subChannel.d.ts.map +1 -1
- package/dist/channelRepository/api/markAsRead.d.ts.map +1 -1
- package/dist/channelRepository/channelModeration/api/index.d.ts +2 -0
- package/dist/channelRepository/channelModeration/api/index.d.ts.map +1 -1
- package/dist/channelRepository/channelModeration/api/muteMembers.d.ts +17 -0
- package/dist/channelRepository/channelModeration/api/muteMembers.d.ts.map +1 -0
- package/dist/channelRepository/channelModeration/api/unmuteMembers.d.ts +16 -0
- package/dist/channelRepository/channelModeration/api/unmuteMembers.d.ts.map +1 -0
- package/dist/channelRepository/events/onChannelDeleted.d.ts.map +1 -1
- package/dist/channelRepository/events/onChannelLeft.d.ts.map +1 -1
- package/dist/channelRepository/events/onChannelMemberBanned.d.ts.map +1 -1
- package/dist/channelRepository/observers/getChannel.d.ts.map +1 -1
- package/dist/channelRepository/observers/getChannels/ChannelLiveCollectionController.d.ts.map +1 -1
- package/dist/channelRepository/observers/getChannels/ChannelQueryStreamController.d.ts.map +1 -1
- package/dist/channelRepository/utils/getChannelIsMentioned.d.ts +10 -0
- package/dist/channelRepository/utils/getChannelIsMentioned.d.ts.map +1 -0
- package/dist/channelRepository/utils/getSubChannelsUnreadCount.d.ts +10 -0
- package/dist/channelRepository/utils/getSubChannelsUnreadCount.d.ts.map +1 -0
- package/dist/channelRepository/utils/prepareChannelPayload.d.ts.map +1 -1
- package/dist/client/api/accessTokenExpiryWatcher.d.ts +1 -1
- package/dist/client/api/accessTokenExpiryWatcher.d.ts.map +1 -1
- package/dist/client/api/createClient.d.ts.map +1 -1
- package/dist/client/api/enableUnreadCount.d.ts +2 -0
- package/dist/client/api/enableUnreadCount.d.ts.map +1 -0
- package/dist/client/api/index.d.ts +1 -0
- package/dist/client/api/index.d.ts.map +1 -1
- package/dist/client/api/login.d.ts.map +1 -1
- package/dist/client/api/markerSync.d.ts.map +1 -1
- package/dist/client/api/renewal.d.ts.map +1 -1
- package/dist/client/api/validateTexts.d.ts +8 -0
- package/dist/client/api/validateTexts.d.ts.map +1 -0
- package/dist/client/api/validateUrls.d.ts +8 -0
- package/dist/client/api/validateUrls.d.ts.map +1 -0
- package/dist/client/observers/getUserUnread.d.ts +1 -1
- package/dist/client/observers/getUserUnread.d.ts.map +1 -1
- package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngine.d.ts +33 -0
- package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngine.d.ts.map +1 -0
- package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngineOnLoginHandler.d.ts +3 -0
- package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngineOnLoginHandler.d.ts.map +1 -0
- package/dist/client/utils/markerSyncEngine.d.ts +2 -0
- package/dist/client/utils/markerSyncEngine.d.ts.map +1 -1
- package/dist/client/utils/setClientToken.d.ts.map +1 -1
- package/dist/client/utils/subscribeGlobalTopic.d.ts.map +1 -1
- package/dist/commentRepository/api/deleteComment.d.ts.map +1 -1
- package/dist/commentRepository/api/queryComments.d.ts.map +1 -1
- package/dist/commentRepository/events/utils.d.ts.map +1 -1
- package/dist/commentRepository/internalApi/queryComments.d.ts.map +1 -1
- package/dist/commentRepository/utils/convertToInternalComment.d.ts +8 -0
- package/dist/commentRepository/utils/convertToInternalComment.d.ts.map +1 -0
- 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/index.d.ts.map +1 -1
- package/dist/core/query/sorting.d.ts +6 -0
- package/dist/core/query/sorting.d.ts.map +1 -1
- package/dist/core/subscription.d.ts +1 -0
- package/dist/core/subscription.d.ts.map +1 -1
- package/dist/index.cjs.js +5745 -4474
- package/dist/index.esm.js +5183 -3914
- package/dist/index.umd.js +4 -4
- package/dist/marker/api/getChannelMarkers.d.ts.map +1 -1
- package/dist/marker/api/getMessageMarkers.d.ts.map +1 -1
- package/dist/marker/api/getSubChannelMarkers.d.ts.map +1 -1
- package/dist/marker/api/getUserMarker.d.ts +1 -1
- package/dist/marker/api/getUserMarker.d.ts.map +1 -1
- package/dist/marker/api/getUserMessageFeedMarkers.d.ts +18 -0
- package/dist/marker/api/getUserMessageFeedMarkers.d.ts.map +1 -0
- package/dist/marker/events/onMessageMarked.d.ts.map +1 -1
- package/dist/marker/events/onUserFeedMarkerUpdated.d.ts +17 -0
- package/dist/marker/events/onUserFeedMarkerUpdated.d.ts.map +1 -0
- package/dist/marker/events/onUserMarkerSync.d.ts.map +1 -1
- package/dist/marker/utils/addFlagIsDeletedSubChannelUnreadByChannelId.d.ts +2 -0
- package/dist/marker/utils/addFlagIsDeletedSubChannelUnreadByChannelId.d.ts.map +1 -0
- package/dist/marker/utils/addFlagIsDeletedSubChannelUnreadBySubChannelId.d.ts +2 -0
- package/dist/marker/utils/addFlagIsDeletedSubChannelUnreadBySubChannelId.d.ts.map +1 -0
- package/dist/marker/utils/deleteChannelUnreadByChannelId.d.ts +2 -0
- package/dist/marker/utils/deleteChannelUnreadByChannelId.d.ts.map +1 -0
- package/dist/marker/utils/persistUnreadCountInfo.d.ts +2 -0
- package/dist/marker/utils/persistUnreadCountInfo.d.ts.map +1 -0
- package/dist/marker/utils/reCalculateChannelUnreadInfo.d.ts +2 -0
- package/dist/marker/utils/reCalculateChannelUnreadInfo.d.ts.map +1 -0
- package/dist/marker/utils/updateSubChannelUnreadFromMessage.d.ts +2 -0
- package/dist/marker/utils/updateSubChannelUnreadFromMessage.d.ts.map +1 -0
- package/dist/messagePreview/utils/getSubChannelMessagePreviewWithUser.d.ts +1 -0
- package/dist/messagePreview/utils/getSubChannelMessagePreviewWithUser.d.ts.map +1 -1
- package/dist/messagePreview/utils/updateMessagePreviewFromMessage.d.ts +2 -2
- package/dist/messagePreview/utils/updateMessagePreviewFromMessage.d.ts.map +1 -1
- package/dist/messageRepository/api/createMessage.d.ts.map +1 -1
- package/dist/messageRepository/api/deleteMessage.d.ts.map +1 -1
- package/dist/messageRepository/api/editMessage.d.ts.map +1 -1
- package/dist/messageRepository/api/getMessage.d.ts.map +1 -1
- package/dist/messageRepository/api/getMessages.d.ts.map +1 -1
- package/dist/messageRepository/api/markAsDelivered.d.ts.map +1 -1
- package/dist/messageRepository/api/queryMessages.d.ts.map +1 -1
- package/dist/messageRepository/api/softDeleteMessage.d.ts.map +1 -1
- package/dist/messageRepository/api/updateMessage.d.ts.map +1 -1
- package/dist/messageRepository/events/onMessageCreated.d.ts +2 -2
- package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
- package/dist/messageRepository/events/onMessageDeleted.d.ts +1 -1
- package/dist/messageRepository/events/onMessageDeleted.d.ts.map +1 -1
- package/dist/messageRepository/events/onMessageFetched.d.ts +1 -1
- package/dist/messageRepository/events/onMessageFetched.d.ts.map +1 -1
- package/dist/messageRepository/events/onMessageFlagCleared.d.ts +1 -1
- package/dist/messageRepository/events/onMessageFlagCleared.d.ts.map +1 -1
- package/dist/messageRepository/events/onMessageFlagged.d.ts +1 -1
- package/dist/messageRepository/events/onMessageFlagged.d.ts.map +1 -1
- package/dist/messageRepository/events/onMessageReactionAdded.d.ts +1 -1
- package/dist/messageRepository/events/onMessageReactionAdded.d.ts.map +1 -1
- package/dist/messageRepository/events/onMessageReactionRemoved.d.ts +1 -1
- package/dist/messageRepository/events/onMessageReactionRemoved.d.ts.map +1 -1
- package/dist/messageRepository/events/onMessageUnflagged.d.ts +1 -1
- package/dist/messageRepository/events/onMessageUnflagged.d.ts.map +1 -1
- package/dist/messageRepository/events/onMessageUpdated.d.ts +1 -1
- package/dist/messageRepository/events/onMessageUpdated.d.ts.map +1 -1
- package/dist/messageRepository/internalApi/getMessage.d.ts +32 -0
- package/dist/messageRepository/internalApi/getMessage.d.ts.map +1 -0
- package/dist/messageRepository/internalApi/getMessages.d.ts +32 -0
- package/dist/messageRepository/internalApi/getMessages.d.ts.map +1 -0
- package/dist/messageRepository/observers/getMessage.d.ts.map +1 -1
- package/dist/messageRepository/observers/getMessages/MessageLiveCollectionController.d.ts.map +1 -1
- package/dist/messageRepository/observers/getMessages/MessageQueryStreamController.d.ts +2 -2
- package/dist/messageRepository/observers/getMessages/MessageQueryStreamController.d.ts.map +1 -1
- package/dist/messageRepository/observers/observeMessage.d.ts.map +1 -1
- package/dist/messageRepository/observers/observeMessages.d.ts.map +1 -1
- package/dist/messageRepository/utils/getMessageReadCount.d.ts +1 -1
- package/dist/messageRepository/utils/getMessageReadCount.d.ts.map +1 -1
- package/dist/messageRepository/utils/prepareMessagePayload.d.ts +1 -1
- package/dist/messageRepository/utils/prepareMessagePayload.d.ts.map +1 -1
- package/dist/reactionRepository/events/onReactionAdded.d.ts +1 -1
- package/dist/reactionRepository/events/onReactionAdded.d.ts.map +1 -1
- package/dist/reactionRepository/events/onReactionRemoved.d.ts +1 -1
- package/dist/reactionRepository/events/onReactionRemoved.d.ts.map +1 -1
- package/dist/reactionRepository/events/onReactorAdded.d.ts.map +1 -1
- package/dist/reactionRepository/events/onReactorRemoved.d.ts.map +1 -1
- package/dist/reactionRepository/utils/fetchReference.d.ts +1 -1
- package/dist/reactionRepository/utils/fetchReference.d.ts.map +1 -1
- package/dist/reactionRepository/utils/prepareMessagePayloadForCache.d.ts +1 -1
- package/dist/reactionRepository/utils/prepareMessagePayloadForCache.d.ts.map +1 -1
- package/dist/reactionRepository/utils/prepareReactionPayloadFormEvent.d.ts +1 -0
- package/dist/reactionRepository/utils/prepareReactionPayloadFormEvent.d.ts.map +1 -1
- package/dist/storyRepository/api/createImageStory.d.ts.map +1 -1
- package/dist/storyRepository/api/createVideoStory.d.ts.map +1 -1
- package/dist/storyRepository/constants.d.ts +2 -0
- package/dist/storyRepository/constants.d.ts.map +1 -1
- package/dist/storyRepository/events/onStoryReactionAdded.d.ts.map +1 -1
- package/dist/storyRepository/events/onStoryReactionRemoved.d.ts.map +1 -1
- package/dist/storyRepository/internalApi/getStoryByStoryId.d.ts.map +1 -1
- package/dist/storyRepository/observers/getActiveStoriesByTarget.d.ts.map +1 -1
- package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.d.ts +14 -0
- package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.d.ts.map +1 -0
- package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryPageController.d.ts +13 -0
- package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryPageController.d.ts.map +1 -0
- package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryQueryStreamController.d.ts +16 -0
- package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryQueryStreamController.d.ts.map +1 -0
- package/dist/storyRepository/observers/getGlobalStoryTargets/getGlobalStoryTargets.d.ts +2 -0
- package/dist/storyRepository/observers/getGlobalStoryTargets/getGlobalStoryTargets.d.ts.map +1 -0
- package/dist/storyRepository/observers/getGlobalStoryTargets/index.d.ts +2 -0
- package/dist/storyRepository/observers/getGlobalStoryTargets/index.d.ts.map +1 -0
- package/dist/storyRepository/observers/getStoriesByTargetIds/StoryPaginationNoPageController.d.ts.map +1 -1
- package/dist/storyRepository/observers/index.d.ts +1 -0
- package/dist/storyRepository/observers/index.d.ts.map +1 -1
- package/dist/storyRepository/utils/StoryComputedValue.d.ts +21 -0
- package/dist/storyRepository/utils/StoryComputedValue.d.ts.map +1 -0
- package/dist/storyRepository/utils/convertRawToStory.d.ts +2 -2
- package/dist/storyRepository/utils/convertRawToStory.d.ts.map +1 -1
- package/dist/storyRepository/utils/convertStoryPayloadToRaw.d.ts.map +1 -1
- package/dist/subChannelRepository/api/markAsReadBySegment.d.ts +16 -0
- package/dist/subChannelRepository/api/markAsReadBySegment.d.ts.map +1 -0
- package/dist/subChannelRepository/api/readingAPI.d.ts.map +1 -1
- package/dist/subChannelRepository/api/startReadingAPI.d.ts.map +1 -1
- package/dist/subChannelRepository/api/stopReadingAPI.d.ts.map +1 -1
- package/dist/subChannelRepository/events/onSubChannelCreated.d.ts.map +1 -1
- package/dist/subChannelRepository/events/onSubChannelDeleted.d.ts.map +1 -1
- package/dist/subChannelRepository/index.d.ts +1 -0
- package/dist/subChannelRepository/index.d.ts.map +1 -1
- package/dist/subChannelRepository/observers/getSubChannel.d.ts.map +1 -1
- package/dist/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.d.ts.map +1 -1
- package/dist/subChannelRepository/utils/convertSubChannelFromRaw.d.ts.map +1 -1
- package/dist/subChannelRepository/utils/getSubChannelIsMentioned.d.ts +2 -0
- package/dist/subChannelRepository/utils/getSubChannelIsMentioned.d.ts.map +1 -0
- package/dist/subChannelRepository/utils/getSubChannelUnreadCount.d.ts.map +1 -1
- package/dist/subChannelRepository/utils/markReadEngine.d.ts +2 -0
- package/dist/subChannelRepository/utils/markReadEngine.d.ts.map +1 -1
- package/dist/subChannelRepository/utils/messageReceiptSync.d.ts +31 -0
- package/dist/subChannelRepository/utils/messageReceiptSync.d.ts.map +1 -0
- package/dist/subChannelRepository/utils/persistOptimisticUnreadInfo.d.ts +2 -0
- package/dist/subChannelRepository/utils/persistOptimisticUnreadInfo.d.ts.map +1 -0
- package/dist/utils/linkedObject/index.d.ts +1 -0
- package/dist/utils/linkedObject/index.d.ts.map +1 -1
- package/dist/utils/linkedObject/messageLinkedObject.d.ts +2 -0
- package/dist/utils/linkedObject/messageLinkedObject.d.ts.map +1 -0
- package/dist/utils/linkedObject/storyLinkedObject.d.ts.map +1 -1
- package/dist/utils/linkedObject/storyTargetLinkedObject.d.ts.map +1 -1
- package/dist/utils/marker.d.ts +0 -1
- package/dist/utils/marker.d.ts.map +1 -1
- package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
- package/dist/utils/tests/dummy/community.d.ts +1 -1
- package/dist/utils/tests/dummy/marker.d.ts +1 -0
- package/dist/utils/tests/dummy/marker.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/core/events.ts +4 -2
- package/src/@types/core/marker.ts +13 -1
- package/src/@types/core/model.ts +8 -2
- package/src/@types/core/payload.ts +26 -3
- package/src/@types/core/readReceipt.ts +23 -0
- package/src/@types/domains/channel.ts +11 -1
- package/src/@types/domains/client.ts +14 -6
- package/src/@types/domains/community.ts +2 -3
- package/src/@types/domains/group.ts +2 -2
- package/src/@types/domains/marker.ts +17 -0
- package/src/@types/domains/message.ts +6 -0
- package/src/@types/domains/story.ts +26 -4
- package/src/@types/domains/subChannel.ts +4 -0
- package/src/channelRepository/api/markAsRead.ts +3 -7
- package/src/channelRepository/channelModeration/api/index.ts +3 -0
- package/src/channelRepository/channelModeration/api/muteMembers.ts +47 -0
- package/src/channelRepository/channelModeration/api/unmuteMembers.ts +43 -0
- package/src/channelRepository/events/onChannelCreated.ts +1 -1
- package/src/channelRepository/events/onChannelDeleted.ts +9 -0
- package/src/channelRepository/events/onChannelJoined.ts +1 -1
- package/src/channelRepository/events/onChannelLeft.ts +10 -1
- package/src/channelRepository/events/onChannelMemberAdded.ts +1 -1
- package/src/channelRepository/events/onChannelMemberBanned.ts +17 -0
- package/src/channelRepository/events/onChannelMemberRemoved.ts +1 -1
- package/src/channelRepository/events/onChannelMemberRoleAdded.ts +1 -1
- package/src/channelRepository/events/onChannelMemberRoleRemoved.ts +1 -1
- package/src/channelRepository/events/onChannelMemberUnbanned.ts +1 -1
- package/src/channelRepository/events/onChannelMuted.ts +1 -1
- package/src/channelRepository/events/onChannelUpdated.ts +1 -1
- package/src/channelRepository/observers/getChannel.ts +12 -8
- package/src/channelRepository/observers/getChannels/ChannelLiveCollectionController.ts +44 -11
- package/src/channelRepository/observers/getChannels/ChannelQueryStreamController.ts +4 -1
- package/src/channelRepository/utils/getChannelIsMentioned.ts +42 -0
- package/src/channelRepository/utils/getSubChannelsUnreadCount.ts +50 -0
- package/src/channelRepository/utils/prepareChannelPayload.ts +25 -4
- package/src/channelRepository/utils/tests/prepareChannelPayload.test.ts +6 -0
- package/src/client/api/accessTokenExpiryWatcher.ts +7 -2
- package/src/client/api/createClient.ts +11 -0
- package/src/client/api/enableUnreadCount.ts +24 -0
- package/src/client/api/index.ts +2 -0
- package/src/client/api/login.ts +7 -5
- package/src/client/api/markerSync.ts +2 -7
- package/src/client/api/renewal.ts +2 -5
- package/src/client/api/validateTexts.ts +23 -0
- package/src/client/api/validateUrls.ts +23 -0
- package/src/client/observers/getUserUnread.ts +38 -13
- package/src/client/utils/ReadReceiptSync/readReceiptSyncEngine.ts +259 -0
- package/src/client/utils/ReadReceiptSync/readReceiptSyncEngineOnLoginHandler.ts +21 -0
- package/src/client/utils/markerSyncEngine.ts +30 -5
- package/src/client/utils/setClientToken.ts +0 -2
- package/src/client/utils/subscribeGlobalTopic.ts +2 -0
- package/src/commentRepository/api/deleteComment.ts +29 -12
- package/src/commentRepository/api/queryComments.ts +4 -2
- package/src/commentRepository/events/utils.ts +1 -2
- package/src/commentRepository/internalApi/queryComments.ts +4 -3
- package/src/commentRepository/utils/convertToInternalComment.ts +17 -0
- package/src/core/model/idResolvers.ts +3 -0
- package/src/core/model/index.ts +3 -0
- package/src/core/query/sorting.ts +8 -0
- package/src/core/subscription.ts +6 -0
- package/src/marker/api/getChannelMarkers.ts +2 -4
- package/src/marker/api/getMessageMarkers.ts +1 -5
- package/src/marker/api/getSubChannelMarkers.ts +12 -7
- package/src/marker/api/getUserMarker.ts +3 -10
- package/src/marker/api/getUserMessageFeedMarkers.ts +35 -0
- package/src/marker/api/tests/getSubChannelMarkers.test.ts +7 -0
- package/src/marker/events/onChannelMarkerFetched.ts +1 -1
- package/src/marker/events/onChannelMarkerUpdated.ts +1 -1
- package/src/marker/events/onFeedlMarkerFetched.ts +1 -1
- package/src/marker/events/onFeedlMarkerUpdated.ts +1 -1
- package/src/marker/events/onMessageMarked.ts +28 -12
- package/src/marker/events/onMessageMarkerFetched.ts +1 -1
- package/src/marker/events/onSubChannelMarkerFetched.ts +1 -1
- package/src/marker/events/onSubChannelMarkerUpdated.ts +1 -1
- package/src/marker/events/onUserFeedMarkerUpdated.ts +38 -0
- package/src/marker/events/onUserMarkerFetched.ts +1 -1
- package/src/marker/events/onUserMarkerSync.ts +3 -8
- package/src/marker/utils/addFlagIsDeletedSubChannelUnreadByChannelId.ts +19 -0
- package/src/marker/utils/addFlagIsDeletedSubChannelUnreadBySubChannelId.ts +13 -0
- package/src/marker/utils/deleteChannelUnreadByChannelId.ts +11 -0
- package/src/marker/utils/persistUnreadCountInfo.ts +47 -0
- package/src/marker/utils/reCalculateChannelUnreadInfo.ts +37 -0
- package/src/marker/utils/updateSubChannelUnreadFromMessage.ts +40 -0
- package/src/messagePreview/utils/updateMessagePreviewFromMessage.ts +2 -2
- package/src/messageRepository/api/createMessage.ts +6 -4
- package/src/messageRepository/api/deleteMessage.ts +6 -5
- package/src/messageRepository/api/editMessage.ts +5 -4
- package/src/messageRepository/api/getMessage.ts +2 -1
- package/src/messageRepository/api/getMessages.ts +2 -1
- package/src/messageRepository/api/markAsDelivered.ts +2 -6
- package/src/messageRepository/api/queryMessages.ts +8 -1
- package/src/messageRepository/api/softDeleteMessage.ts +6 -5
- package/src/messageRepository/api/updateMessage.ts +5 -4
- package/src/messageRepository/events/onMessageCreated.ts +12 -2
- package/src/messageRepository/events/onMessageDeleted.ts +4 -2
- package/src/messageRepository/events/onMessageFetched.ts +3 -1
- package/src/messageRepository/events/onMessageFlagCleared.ts +1 -1
- package/src/messageRepository/events/onMessageFlagged.ts +4 -2
- package/src/messageRepository/events/onMessageReactionAdded.ts +1 -1
- package/src/messageRepository/events/onMessageReactionRemoved.ts +1 -1
- package/src/messageRepository/events/onMessageUnflagged.ts +3 -1
- package/src/messageRepository/events/onMessageUpdated.ts +4 -2
- package/src/messageRepository/events/tests/events.test.ts +4 -1
- package/src/messageRepository/internalApi/getMessage.ts +101 -0
- package/src/messageRepository/internalApi/getMessages.ts +82 -0
- package/src/messageRepository/observers/getMessage.ts +10 -2
- package/src/messageRepository/observers/getMessages/MessageLiveCollectionController.ts +4 -2
- package/src/messageRepository/observers/getMessages/MessageQueryStreamController.ts +2 -2
- package/src/messageRepository/observers/observeMessage.ts +13 -4
- package/src/messageRepository/observers/observeMessages.ts +19 -6
- package/src/messageRepository/utils/getMessageReadCount.ts +5 -4
- package/src/messageRepository/utils/prepareMessagePayload.ts +6 -10
- package/src/reactionRepository/events/onReactionAdded.ts +1 -0
- package/src/reactionRepository/events/onReactorAdded.ts +13 -0
- package/src/reactionRepository/events/onReactorRemoved.ts +13 -0
- package/src/reactionRepository/utils/fetchReference.ts +1 -1
- package/src/reactionRepository/utils/prepareMessagePayloadForCache.ts +1 -1
- package/src/reactionRepository/utils/prepareReactionPayloadFormEvent.ts +68 -15
- package/src/storyRepository/api/createImageStory.ts +7 -0
- package/src/storyRepository/api/createVideoStory.ts +7 -0
- package/src/storyRepository/constants.ts +2 -0
- package/src/storyRepository/events/onStoryCreated.ts +2 -2
- package/src/storyRepository/events/onStoryDeleted.ts +2 -2
- package/src/storyRepository/events/onStoryReactionAdded.ts +11 -5
- package/src/storyRepository/events/onStoryReactionRemoved.ts +11 -5
- package/src/storyRepository/events/onStoryUpdated.ts +2 -2
- package/src/storyRepository/internalApi/createStory.ts +2 -2
- package/src/storyRepository/internalApi/deleteStory.ts +1 -1
- package/src/storyRepository/internalApi/getActiveStoriesByTarget.ts +2 -2
- package/src/storyRepository/internalApi/getStoryByStoryId.ts +2 -1
- package/src/storyRepository/observers/getActiveStoriesByTarget.ts +11 -5
- package/src/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.ts +152 -0
- package/src/storyRepository/observers/getGlobalStoryTargets/GlobalStoryPageController.ts +73 -0
- package/src/storyRepository/observers/getGlobalStoryTargets/GlobalStoryQueryStreamController.ts +94 -0
- package/src/storyRepository/observers/getGlobalStoryTargets/getGlobalStoryTargets.ts +32 -0
- package/src/storyRepository/observers/getGlobalStoryTargets/index.ts +1 -0
- package/src/storyRepository/observers/getStoriesByTargetIds/StoryPaginationNoPageController.ts +0 -2
- package/src/storyRepository/observers/getStoriesByTargetIds/StoryQueryStreamController.ts +2 -2
- package/src/storyRepository/observers/index.ts +1 -0
- package/src/storyRepository/utils/StoryComputedValue.ts +136 -0
- package/src/storyRepository/utils/convertRawToStory.ts +11 -4
- package/src/storyRepository/utils/convertStoryPayloadToRaw.ts +23 -0
- package/src/subChannelRepository/api/markAsReadBySegment.ts +35 -0
- package/src/subChannelRepository/api/readingAPI.ts +2 -7
- package/src/subChannelRepository/api/startReadingAPI.ts +2 -7
- package/src/subChannelRepository/api/stopReadingAPI.ts +2 -7
- package/src/subChannelRepository/events/onSubChannelCreated.ts +7 -1
- package/src/subChannelRepository/events/onSubChannelDeleted.ts +10 -1
- package/src/subChannelRepository/events/onSubChannelFetched.ts +1 -1
- package/src/subChannelRepository/index.ts +1 -0
- package/src/subChannelRepository/observers/getSubChannel.ts +10 -8
- package/src/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.ts +9 -4
- package/src/subChannelRepository/utils/convertSubChannelFromRaw.ts +5 -2
- package/src/subChannelRepository/utils/{getSubChannelHasMentioned.ts → getSubChannelIsMentioned.ts} +19 -1
- package/src/subChannelRepository/utils/getSubChannelUnreadCount.ts +18 -0
- package/src/subChannelRepository/utils/markReadEngine.ts +2 -0
- package/src/subChannelRepository/utils/messageReceiptSync.ts +73 -0
- package/src/subChannelRepository/utils/persistOptimisticUnreadInfo.ts +23 -0
- package/src/utils/linkedObject/index.ts +2 -0
- package/src/utils/linkedObject/messageLinkedObject.ts +21 -0
- package/src/utils/linkedObject/storyLinkedObject.ts +2 -1
- package/src/utils/linkedObject/storyTargetLinkedObject.ts +26 -4
- package/src/utils/marker.ts +0 -6
- package/src/utils/tests/dummy/channel.ts +8 -0
- package/src/utils/tests/dummy/marker.ts +15 -1
- package/dist/channelRepository/utils/getChannelHasMentioned.d.ts +0 -7
- package/dist/channelRepository/utils/getChannelHasMentioned.d.ts.map +0 -1
- package/dist/channelRepository/utils/getChannelUnreadCount.d.ts +0 -2
- package/dist/channelRepository/utils/getChannelUnreadCount.d.ts.map +0 -1
- package/dist/storyRepository/utils/calculateHasUnseenFlag.d.ts +0 -6
- package/dist/storyRepository/utils/calculateHasUnseenFlag.d.ts.map +0 -1
- package/dist/subChannelRepository/utils/getSubChannelHasMentioned.d.ts +0 -2
- package/dist/subChannelRepository/utils/getSubChannelHasMentioned.d.ts.map +0 -1
- package/src/channelRepository/utils/getChannelHasMentioned.ts +0 -28
- package/src/channelRepository/utils/getChannelUnreadCount.ts +0 -27
- package/src/storyRepository/utils/calculateHasUnseenFlag.ts +0 -47
|
@@ -5,6 +5,7 @@ import { pullFromCache, upsertInCache } from '~/cache/api';
|
|
|
5
5
|
import { fireEvent } from '~/core/events';
|
|
6
6
|
|
|
7
7
|
import { convertParams, prepareMessagePayload } from '../utils';
|
|
8
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
8
9
|
|
|
9
10
|
/* begin_public_function
|
|
10
11
|
id: message.edit.text_message, message.edit.custom_message
|
|
@@ -48,7 +49,7 @@ export const editMessage = async (
|
|
|
48
49
|
fireEvent('local.message.updated', { messages });
|
|
49
50
|
|
|
50
51
|
return {
|
|
51
|
-
data: messages.find(message => message.messageId === messageId)
|
|
52
|
+
data: LinkedObject.message(messages.find(message => message.messageId === messageId)!),
|
|
52
53
|
cachedAt,
|
|
53
54
|
};
|
|
54
55
|
};
|
|
@@ -78,12 +79,12 @@ editMessage.optimistically = (
|
|
|
78
79
|
|
|
79
80
|
if (!client.cache) return;
|
|
80
81
|
|
|
81
|
-
const message = pullFromCache<Amity.
|
|
82
|
+
const message = pullFromCache<Amity.InternalMessage>(['message', 'get', messageId]);
|
|
82
83
|
|
|
83
84
|
if (!message) return;
|
|
84
85
|
|
|
85
86
|
const cachedAt = -1;
|
|
86
|
-
const edited: Amity.
|
|
87
|
+
const edited: Amity.InternalMessage = {
|
|
87
88
|
...message.data,
|
|
88
89
|
...patch,
|
|
89
90
|
updatedAt: new Date().toISOString(),
|
|
@@ -93,7 +94,7 @@ editMessage.optimistically = (
|
|
|
93
94
|
fireEvent('local.message.updated', { messages: [edited] });
|
|
94
95
|
|
|
95
96
|
return {
|
|
96
|
-
data: edited,
|
|
97
|
+
data: LinkedObject.message(edited),
|
|
97
98
|
cachedAt,
|
|
98
99
|
};
|
|
99
100
|
};
|
|
@@ -9,6 +9,7 @@ import { checkIfShouldGoesToTombstone } from '~/cache/utils';
|
|
|
9
9
|
import { pushToTombstone } from '~/cache/api/pushToTombstone';
|
|
10
10
|
|
|
11
11
|
import { prepareMessagePayload } from '../utils';
|
|
12
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* ```js
|
|
@@ -64,7 +65,7 @@ export const getMessage = async (
|
|
|
64
65
|
fireEvent('local.message.fetched', { messages });
|
|
65
66
|
|
|
66
67
|
return {
|
|
67
|
-
data: messages.find(message => message.messageId === messageId)
|
|
68
|
+
data: LinkedObject.message(messages.find(message => message.messageId === messageId)!),
|
|
68
69
|
cachedAt,
|
|
69
70
|
};
|
|
70
71
|
};
|
|
@@ -5,6 +5,7 @@ import { pullFromCache } from '~/cache/api';
|
|
|
5
5
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
6
6
|
|
|
7
7
|
import { prepareMessagePayload } from '../utils';
|
|
8
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* ```js
|
|
@@ -40,7 +41,7 @@ export const getMessages = async (
|
|
|
40
41
|
fireEvent('local.message.fetched', { messages });
|
|
41
42
|
|
|
42
43
|
return {
|
|
43
|
-
data: messages,
|
|
44
|
+
data: messages.map(message => LinkedObject.message(message)),
|
|
44
45
|
cachedAt,
|
|
45
46
|
};
|
|
46
47
|
};
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { getActiveClient } from '~/client/api';
|
|
2
2
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
3
|
-
import {
|
|
4
|
-
convertChannelMarkerResponse,
|
|
5
|
-
convertSubChannelMarkerResponse,
|
|
6
|
-
convertUserMarkerResponse,
|
|
7
|
-
} from '~/utils/marker';
|
|
3
|
+
import { convertChannelMarkerResponse, convertSubChannelMarkerResponse } from '~/utils/marker';
|
|
8
4
|
|
|
9
5
|
/**
|
|
10
6
|
* ```js
|
|
@@ -40,7 +36,7 @@ export const markAsDelivered = async (
|
|
|
40
36
|
if (client.cache)
|
|
41
37
|
ingestInCache(
|
|
42
38
|
{
|
|
43
|
-
userMarkers
|
|
39
|
+
userMarkers,
|
|
44
40
|
userEntityMarkers: convertChannelMarkerResponse(userEntityMarkers),
|
|
45
41
|
userFeedMarkers: convertSubChannelMarkerResponse(userFeedMarkers),
|
|
46
42
|
...rest,
|
|
@@ -6,6 +6,7 @@ import { pushToCache } from '~/cache/api';
|
|
|
6
6
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
7
7
|
import { getResolver } from '~/core/model';
|
|
8
8
|
import { convertQueryParams, prepareMessagePayload } from '../utils';
|
|
9
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* ```js
|
|
@@ -73,6 +74,12 @@ export const queryMessages = async (
|
|
|
73
74
|
const nextPage = toPageRaw(paging.next);
|
|
74
75
|
const prevPage = toPageRaw(paging.previous);
|
|
75
76
|
|
|
76
|
-
return {
|
|
77
|
+
return {
|
|
78
|
+
data: messages.map(message => LinkedObject.message(message)),
|
|
79
|
+
cachedAt,
|
|
80
|
+
prevPage,
|
|
81
|
+
nextPage,
|
|
82
|
+
paging,
|
|
83
|
+
};
|
|
77
84
|
};
|
|
78
85
|
/* end_public_function */
|
|
@@ -2,7 +2,8 @@ import { getActiveClient } from '~/client/api';
|
|
|
2
2
|
import { pullFromCache, upsertInCache } from '~/cache/api';
|
|
3
3
|
import { fireEvent } from '~/core/events';
|
|
4
4
|
|
|
5
|
-
import { getMessage } from '
|
|
5
|
+
import { getMessage } from '../internalApi/getMessage';
|
|
6
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
6
7
|
|
|
7
8
|
/* begin_public_function
|
|
8
9
|
id: message.soft_delete
|
|
@@ -36,7 +37,7 @@ export const softDeleteMessage = async (
|
|
|
36
37
|
|
|
37
38
|
fireEvent('local.message.deleted', { messages: [deleted.data] });
|
|
38
39
|
|
|
39
|
-
return deleted.data;
|
|
40
|
+
return LinkedObject.message(deleted.data);
|
|
40
41
|
};
|
|
41
42
|
|
|
42
43
|
/**
|
|
@@ -58,12 +59,12 @@ softDeleteMessage.optimistically = (
|
|
|
58
59
|
const client = getActiveClient();
|
|
59
60
|
client.log('message/softDeleteMessage.optimistically', messageId);
|
|
60
61
|
|
|
61
|
-
const message = pullFromCache<Amity.
|
|
62
|
+
const message = pullFromCache<Amity.InternalMessage>(['message', 'get', messageId]);
|
|
62
63
|
|
|
63
64
|
if (!message) return;
|
|
64
65
|
|
|
65
66
|
const cachedAt = -1;
|
|
66
|
-
const deleted: Amity.
|
|
67
|
+
const deleted: Amity.InternalMessage = {
|
|
67
68
|
...message.data,
|
|
68
69
|
isDeleted: true,
|
|
69
70
|
updatedAt: new Date().toISOString(),
|
|
@@ -73,7 +74,7 @@ softDeleteMessage.optimistically = (
|
|
|
73
74
|
fireEvent('local.message.deleted', { messages: [deleted] });
|
|
74
75
|
|
|
75
76
|
return {
|
|
76
|
-
data: deleted,
|
|
77
|
+
data: LinkedObject.message(deleted),
|
|
77
78
|
cachedAt,
|
|
78
79
|
};
|
|
79
80
|
};
|
|
@@ -5,6 +5,7 @@ import { pullFromCache, upsertInCache } from '~/cache/api';
|
|
|
5
5
|
import { fireEvent } from '~/core/events';
|
|
6
6
|
|
|
7
7
|
import { convertParams, prepareMessagePayload } from '../utils';
|
|
8
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
8
9
|
|
|
9
10
|
/* begin_public_function
|
|
10
11
|
id: message.edit
|
|
@@ -52,7 +53,7 @@ export const updateMessage = async (
|
|
|
52
53
|
fireEvent('local.message.updated', { messages });
|
|
53
54
|
|
|
54
55
|
return {
|
|
55
|
-
data: messages.find(message => message.messageId === messageId)
|
|
56
|
+
data: LinkedObject.message(messages.find(message => message.messageId === messageId)!),
|
|
56
57
|
cachedAt,
|
|
57
58
|
};
|
|
58
59
|
};
|
|
@@ -82,12 +83,12 @@ updateMessage.optimistically = (
|
|
|
82
83
|
|
|
83
84
|
if (!client.cache) return;
|
|
84
85
|
|
|
85
|
-
const message = pullFromCache<Amity.
|
|
86
|
+
const message = pullFromCache<Amity.InternalMessage>(['message', 'get', messageId]);
|
|
86
87
|
|
|
87
88
|
if (!message) return;
|
|
88
89
|
|
|
89
90
|
const cachedAt = -1;
|
|
90
|
-
const updated: Amity.
|
|
91
|
+
const updated: Amity.InternalMessage = {
|
|
91
92
|
...message.data,
|
|
92
93
|
...patch,
|
|
93
94
|
updatedAt: new Date().toISOString(),
|
|
@@ -97,7 +98,7 @@ updateMessage.optimistically = (
|
|
|
97
98
|
fireEvent('local.message.updated', { messages: [updated] });
|
|
98
99
|
|
|
99
100
|
return {
|
|
100
|
-
data: updated,
|
|
101
|
+
data: LinkedObject.message(updated),
|
|
101
102
|
cachedAt,
|
|
102
103
|
};
|
|
103
104
|
};
|
|
@@ -2,6 +2,8 @@ import { getActiveClient } from '~/client/api/activeClient';
|
|
|
2
2
|
import { createEventSubscriber } from '~/core/events';
|
|
3
3
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
4
4
|
import { prepareMessagePayload } from '../utils';
|
|
5
|
+
import { updateSubChannelUnreadFromMessage } from '~/marker/utils/updateSubChannelUnreadFromMessage';
|
|
6
|
+
import { reCalculateChannelUnreadInfo } from '~/marker/utils/reCalculateChannelUnreadInfo';
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* ```js
|
|
@@ -20,13 +22,21 @@ import { prepareMessagePayload } from '../utils';
|
|
|
20
22
|
* @category Message Events
|
|
21
23
|
*/
|
|
22
24
|
export const onMessageCreatedMqtt = (
|
|
23
|
-
callback: Amity.Listener<Amity.
|
|
25
|
+
callback: Amity.Listener<Amity.InternalMessage>,
|
|
24
26
|
): Amity.Unsubscriber => {
|
|
25
27
|
const client = getActiveClient();
|
|
26
28
|
|
|
27
29
|
const filter = async (rawPayload: Amity.MessagePayload) => {
|
|
28
30
|
const payload = await prepareMessagePayload(rawPayload);
|
|
29
31
|
|
|
32
|
+
// update unreadCountInfo in cache
|
|
33
|
+
if (client.isUnreadCountEnabled && client.getMarkerSyncConsistentMode()) {
|
|
34
|
+
rawPayload.messages.forEach(message => {
|
|
35
|
+
updateSubChannelUnreadFromMessage(message);
|
|
36
|
+
reCalculateChannelUnreadInfo(message.channelId);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
30
40
|
// Update in cache
|
|
31
41
|
ingestInCache(payload);
|
|
32
42
|
|
|
@@ -45,7 +55,7 @@ export const onMessageCreatedMqtt = (
|
|
|
45
55
|
};
|
|
46
56
|
|
|
47
57
|
export const onMessageCreatedLocal = (
|
|
48
|
-
callback: Amity.Listener<Amity.
|
|
58
|
+
callback: Amity.Listener<Amity.InternalMessage>,
|
|
49
59
|
): Amity.Unsubscriber => {
|
|
50
60
|
const client = getActiveClient();
|
|
51
61
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getActiveClient } from '~/client/api';
|
|
1
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
2
|
import { createEventSubscriber } from '~/core/events';
|
|
3
3
|
|
|
4
4
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
@@ -19,7 +19,9 @@ import { prepareMessagePayload } from '../utils';
|
|
|
19
19
|
*
|
|
20
20
|
* @category Message Events
|
|
21
21
|
*/
|
|
22
|
-
export const onMessageDeleted = (
|
|
22
|
+
export const onMessageDeleted = (
|
|
23
|
+
callback: Amity.Listener<Amity.InternalMessage>,
|
|
24
|
+
): Amity.Unsubscriber => {
|
|
23
25
|
const client = getActiveClient();
|
|
24
26
|
|
|
25
27
|
const filter = async (rawPayload: Amity.MessagePayload) => {
|
|
@@ -18,7 +18,9 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
|
18
18
|
*
|
|
19
19
|
* @category Message Events
|
|
20
20
|
*/
|
|
21
|
-
export const onMessageFetched = (
|
|
21
|
+
export const onMessageFetched = (
|
|
22
|
+
callback: Amity.Listener<Amity.InternalMessage>,
|
|
23
|
+
): Amity.Unsubscriber => {
|
|
22
24
|
const client = getActiveClient();
|
|
23
25
|
|
|
24
26
|
const filter = (payload: Amity.Events['local.message.fetched']) => {
|
|
@@ -19,7 +19,7 @@ import { prepareMessagePayload } from '../utils';
|
|
|
19
19
|
* @category Message Events
|
|
20
20
|
*/
|
|
21
21
|
export const onMessageFlagCleared = (
|
|
22
|
-
callback: Amity.Listener<Amity.
|
|
22
|
+
callback: Amity.Listener<Amity.InternalMessage>,
|
|
23
23
|
): Amity.Unsubscriber => {
|
|
24
24
|
const client = getActiveClient();
|
|
25
25
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getActiveClient } from '~/client/api';
|
|
1
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
2
|
import { createEventSubscriber } from '~/core/events';
|
|
3
3
|
|
|
4
4
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
@@ -19,7 +19,9 @@ import { prepareMessagePayload } from '../utils';
|
|
|
19
19
|
*
|
|
20
20
|
* @category Message Events
|
|
21
21
|
*/
|
|
22
|
-
export const onMessageFlagged = (
|
|
22
|
+
export const onMessageFlagged = (
|
|
23
|
+
callback: Amity.Listener<Amity.InternalMessage>,
|
|
24
|
+
): Amity.Unsubscriber => {
|
|
23
25
|
const client = getActiveClient();
|
|
24
26
|
|
|
25
27
|
const filter = async (rawPayload: Amity.MessagePayload) => {
|
|
@@ -20,7 +20,7 @@ import { prepareMessagePayload } from '../utils';
|
|
|
20
20
|
* @category Post Events
|
|
21
21
|
*/
|
|
22
22
|
export const onMessageReactionAdded = (
|
|
23
|
-
callback: Amity.Listener<Amity.
|
|
23
|
+
callback: Amity.Listener<Amity.InternalMessage>,
|
|
24
24
|
): Amity.Unsubscriber => {
|
|
25
25
|
const client = getActiveClient();
|
|
26
26
|
|
|
@@ -20,7 +20,7 @@ import { prepareMessagePayload } from '../utils';
|
|
|
20
20
|
* @category Post Events
|
|
21
21
|
*/
|
|
22
22
|
export const onMessageReactionRemoved = (
|
|
23
|
-
callback: Amity.Listener<Amity.
|
|
23
|
+
callback: Amity.Listener<Amity.InternalMessage>,
|
|
24
24
|
): Amity.Unsubscriber => {
|
|
25
25
|
const client = getActiveClient();
|
|
26
26
|
|
|
@@ -18,7 +18,9 @@ import { prepareMessagePayload } from '../utils';
|
|
|
18
18
|
*
|
|
19
19
|
* @category Message Events
|
|
20
20
|
*/
|
|
21
|
-
export const onMessageUnflagged = (
|
|
21
|
+
export const onMessageUnflagged = (
|
|
22
|
+
callback: Amity.Listener<Amity.InternalMessage>,
|
|
23
|
+
): Amity.Unsubscriber => {
|
|
22
24
|
const client = getActiveClient();
|
|
23
25
|
|
|
24
26
|
const filter = async (rawPayload: Amity.MessagePayload) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getActiveClient } from '~/client/api';
|
|
1
|
+
import { getActiveClient } from '~/client/api/activeClient';
|
|
2
2
|
import { createEventSubscriber } from '~/core/events';
|
|
3
3
|
|
|
4
4
|
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
@@ -20,7 +20,9 @@ import { prepareMessagePayload } from '../utils';
|
|
|
20
20
|
*
|
|
21
21
|
* @category Message Events
|
|
22
22
|
*/
|
|
23
|
-
export const onMessageUpdated = (
|
|
23
|
+
export const onMessageUpdated = (
|
|
24
|
+
callback: Amity.Listener<Amity.InternalMessage>,
|
|
25
|
+
): Amity.Unsubscriber => {
|
|
24
26
|
const client = getActiveClient();
|
|
25
27
|
|
|
26
28
|
const filter = async (rawPayload: Amity.MessagePayload) => {
|
|
@@ -16,7 +16,10 @@ describe('Message Events', () => {
|
|
|
16
16
|
const message = convertFromRaw(rawMessage);
|
|
17
17
|
|
|
18
18
|
const cases: Array<
|
|
19
|
-
[
|
|
19
|
+
[
|
|
20
|
+
(callback: Amity.Listener<Amity.InternalMessage>) => Amity.Unsubscriber,
|
|
21
|
+
keyof Amity.MqttMessageEvents,
|
|
22
|
+
]
|
|
20
23
|
> = [
|
|
21
24
|
[onMessageCreatedMqtt, 'message.created'],
|
|
22
25
|
[onMessageUpdated, 'message.updated'],
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api';
|
|
2
|
+
|
|
3
|
+
import { fireEvent } from '~/core/events';
|
|
4
|
+
import { pullFromCache } from '~/cache/api';
|
|
5
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
6
|
+
|
|
7
|
+
import { isInTombstone } from '~/cache/api/isInTombstone';
|
|
8
|
+
import { checkIfShouldGoesToTombstone } from '~/cache/utils';
|
|
9
|
+
import { pushToTombstone } from '~/cache/api/pushToTombstone';
|
|
10
|
+
|
|
11
|
+
import { prepareMessagePayload } from '../utils';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* ```js
|
|
15
|
+
* import { getMessage } from '@amityco/ts-sdk'
|
|
16
|
+
* const message = await getMessage('foobar')
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* Fetches a {@link Amity.InternalMessage} object
|
|
20
|
+
*
|
|
21
|
+
* @param messageId the ID of the {@link Amity.Message} to fetch
|
|
22
|
+
* @returns the associated {@link Amity.Message} object
|
|
23
|
+
*
|
|
24
|
+
* @category Message API
|
|
25
|
+
* @async
|
|
26
|
+
*/
|
|
27
|
+
export const getMessage = async (
|
|
28
|
+
messageId: Amity.Message['messageId'],
|
|
29
|
+
isLive = false,
|
|
30
|
+
): Promise<Amity.Cached<Amity.InternalMessage>> => {
|
|
31
|
+
const client = getActiveClient();
|
|
32
|
+
client.log('message/getMessage', messageId);
|
|
33
|
+
|
|
34
|
+
if (!isLive) {
|
|
35
|
+
console.log(
|
|
36
|
+
'getMessage will be deprecated on 15th November 2022, please use liveMessage instead.',
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
isInTombstone('message', messageId);
|
|
41
|
+
|
|
42
|
+
let data: Amity.ProcessedMessagePayload;
|
|
43
|
+
|
|
44
|
+
try {
|
|
45
|
+
// API-FIX: endpoint should not be /list, parameters should be querystring.
|
|
46
|
+
const { data: payload } = await client.http.get<Amity.MessagePayload>(
|
|
47
|
+
`/api/v5/messages/${encodeURIComponent(messageId)}`,
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
data = await prepareMessagePayload(payload);
|
|
51
|
+
} catch (error) {
|
|
52
|
+
if (checkIfShouldGoesToTombstone((error as Amity.ErrorResponse)?.code)) {
|
|
53
|
+
pushToTombstone('message', messageId);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const cachedAt = client.cache && Date.now();
|
|
60
|
+
if (client.cache) ingestInCache(data, { cachedAt });
|
|
61
|
+
|
|
62
|
+
const { messages } = data;
|
|
63
|
+
|
|
64
|
+
fireEvent('local.message.fetched', { messages });
|
|
65
|
+
|
|
66
|
+
return {
|
|
67
|
+
data: messages.find(message => message.messageId === messageId)!,
|
|
68
|
+
cachedAt,
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* ```js
|
|
74
|
+
* import { getMessage } from '@amityco/ts-sdk'
|
|
75
|
+
* const message = getMessage.locally('foobar')
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* Fetches a {@link Amity.Message} object
|
|
79
|
+
*
|
|
80
|
+
* @param messageId the ID of the {@link Amity.Message} to fetch
|
|
81
|
+
* @returns the associated {@link Amity.Message} object
|
|
82
|
+
*
|
|
83
|
+
* @category Message API
|
|
84
|
+
*/
|
|
85
|
+
getMessage.locally = (
|
|
86
|
+
messageId: Amity.Message['messageId'],
|
|
87
|
+
): Amity.Cached<Amity.InternalMessage> | undefined => {
|
|
88
|
+
const client = getActiveClient();
|
|
89
|
+
client.log('message/getMessage.locally', messageId);
|
|
90
|
+
|
|
91
|
+
if (!client.cache) return;
|
|
92
|
+
|
|
93
|
+
const cached = pullFromCache<Amity.InternalMessage>(['message', 'get', messageId]);
|
|
94
|
+
|
|
95
|
+
if (!cached) return;
|
|
96
|
+
|
|
97
|
+
return {
|
|
98
|
+
data: cached.data,
|
|
99
|
+
cachedAt: cached.cachedAt,
|
|
100
|
+
};
|
|
101
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { getActiveClient } from '~/client/api';
|
|
2
|
+
|
|
3
|
+
import { fireEvent } from '~/core/events';
|
|
4
|
+
import { pullFromCache } from '~/cache/api';
|
|
5
|
+
import { ingestInCache } from '~/cache/api/ingestInCache';
|
|
6
|
+
|
|
7
|
+
import { prepareMessagePayload } from '../utils';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* ```js
|
|
11
|
+
* import { getMessages } from '@amityco/ts-sdk'
|
|
12
|
+
* const messages = await getMessages(['foo', 'bar'])
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* Fetches a collection of {@link Amity.Message} objects
|
|
16
|
+
*
|
|
17
|
+
* @param messageIds the IDs of the {@link Amity.Message} to fetch
|
|
18
|
+
* @returns the associated collection of {@link Amity.Message} objects
|
|
19
|
+
*
|
|
20
|
+
* @category Message API
|
|
21
|
+
* @async
|
|
22
|
+
*/
|
|
23
|
+
export const getMessages = async (
|
|
24
|
+
messageIds: Amity.Message['messageId'][],
|
|
25
|
+
): Promise<Amity.Cached<Amity.InternalMessage[]>> => {
|
|
26
|
+
const client = getActiveClient();
|
|
27
|
+
client.log('message/getMessages', messageIds);
|
|
28
|
+
|
|
29
|
+
const { data: payload } = await client.http.get<Amity.MessagePayload>(`/api/v5/messages/list`, {
|
|
30
|
+
params: { messageIds: messageIds.map(encodeURIComponent) },
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const data = await prepareMessagePayload(payload);
|
|
34
|
+
|
|
35
|
+
const cachedAt = client.cache && Date.now();
|
|
36
|
+
if (client.cache) ingestInCache(data, { cachedAt });
|
|
37
|
+
|
|
38
|
+
const { messages } = data;
|
|
39
|
+
|
|
40
|
+
fireEvent('local.message.fetched', { messages });
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
data: messages,
|
|
44
|
+
cachedAt,
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* ```js
|
|
50
|
+
* import { getMessages } from '@amityco/ts-sdk'
|
|
51
|
+
* const messages = getMessages.locally(['foo', 'bar']) ?? []
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* Fetches a collection of {@link Amity.Message} objects from cache
|
|
55
|
+
*
|
|
56
|
+
* @param messageIds the IDs of the {@link Amity.Message} to fetch
|
|
57
|
+
* @returns the associated collection of {@link Amity.Message} objects
|
|
58
|
+
*
|
|
59
|
+
* @category Message API
|
|
60
|
+
*/
|
|
61
|
+
getMessages.locally = (
|
|
62
|
+
messageIds: Amity.Message['messageId'][],
|
|
63
|
+
): Amity.Cached<Amity.InternalMessage[]> | undefined => {
|
|
64
|
+
const client = getActiveClient();
|
|
65
|
+
client.log('message/getMessages.locally', messageIds);
|
|
66
|
+
|
|
67
|
+
if (!client.cache) return;
|
|
68
|
+
|
|
69
|
+
const cached = messageIds
|
|
70
|
+
.map(messageId => pullFromCache<Amity.InternalMessage>(['message', 'get', messageId])!)
|
|
71
|
+
.filter(Boolean);
|
|
72
|
+
|
|
73
|
+
const messages = cached.map(({ data }) => data);
|
|
74
|
+
const oldest = cached.sort((a, b) => (a.cachedAt! < b.cachedAt! ? -1 : 1))?.[0];
|
|
75
|
+
|
|
76
|
+
if (cached?.length < messageIds.length) return;
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
data: messages,
|
|
80
|
+
cachedAt: oldest.cachedAt,
|
|
81
|
+
};
|
|
82
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { onMessageMarked, onMessageMarkerFetched } from '~/marker/events';
|
|
2
2
|
import { convertEventPayload } from '~/utils/event';
|
|
3
3
|
import { liveObject } from '~/utils/liveObject';
|
|
4
|
-
import { getMessage as _getMessage } from '../
|
|
4
|
+
import { getMessage as _getMessage } from '../internalApi/getMessage';
|
|
5
5
|
import {
|
|
6
6
|
onMessageUpdated,
|
|
7
7
|
onMessageDeleted,
|
|
@@ -12,6 +12,8 @@ import {
|
|
|
12
12
|
onMessageReactionRemoved,
|
|
13
13
|
} from '../events';
|
|
14
14
|
import { onMessageFetched } from '../events/onMessageFetched';
|
|
15
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
16
|
+
import { date } from '~/utils/tests';
|
|
15
17
|
|
|
16
18
|
/* begin_public_function
|
|
17
19
|
id: message.get
|
|
@@ -39,7 +41,13 @@ export const getMessage = (
|
|
|
39
41
|
messageId: Amity.Message['messageId'],
|
|
40
42
|
callback: Amity.LiveObjectCallback<Amity.Message>,
|
|
41
43
|
): Amity.Unsubscriber => {
|
|
42
|
-
|
|
44
|
+
const responder: Amity.LiveObjectCallback<Amity.InternalMessage> = (
|
|
45
|
+
snapshot: Amity.LiveObject<Amity.InternalMessage>,
|
|
46
|
+
) => {
|
|
47
|
+
const { data } = snapshot;
|
|
48
|
+
callback({ ...snapshot, data: data ? LinkedObject.message(snapshot.data) : data });
|
|
49
|
+
};
|
|
50
|
+
return liveObject(messageId, responder, 'messageId', _getMessage, [
|
|
43
51
|
onMessageFetched,
|
|
44
52
|
onMessageUpdated,
|
|
45
53
|
onMessageDeleted,
|
|
@@ -17,6 +17,7 @@ import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionCo
|
|
|
17
17
|
import { onMessageMarked, onMessageMarkerFetched } from '~/marker/events';
|
|
18
18
|
import { filterByPropEquality } from '~/core/query';
|
|
19
19
|
import { prepareMessagePayload } from '~/messageRepository/utils';
|
|
20
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
20
21
|
|
|
21
22
|
export class MessageLiveCollectionController extends LiveCollectionController<
|
|
22
23
|
'message',
|
|
@@ -97,9 +98,10 @@ export class MessageLiveCollectionController extends LiveCollectionController<
|
|
|
97
98
|
|
|
98
99
|
const data = this.applyFilter(
|
|
99
100
|
collection.data
|
|
100
|
-
.map(messageId => pullFromCache<Amity.
|
|
101
|
+
.map(messageId => pullFromCache<Amity.InternalMessage>(['message', 'get', messageId])!)
|
|
101
102
|
.filter(Boolean)
|
|
102
|
-
.map(({ data }) => data)
|
|
103
|
+
.map(({ data }) => data)
|
|
104
|
+
.map(message => LinkedObject.message(message)) ?? [],
|
|
103
105
|
);
|
|
104
106
|
|
|
105
107
|
if (!this.shouldNotify(data) && origin === 'event') return;
|
|
@@ -69,7 +69,7 @@ export class MessageQueryStreamController extends QueryStreamController<
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
reactor(action: string) {
|
|
72
|
-
return (payload: Amity.
|
|
72
|
+
return (payload: Amity.InternalMessage) => {
|
|
73
73
|
if (action === 'onCreate') {
|
|
74
74
|
const collection = pullFromCache<Amity.MessageLiveCollectionCache>(this.cacheKey)?.data;
|
|
75
75
|
|
|
@@ -131,7 +131,7 @@ export class MessageQueryStreamController extends QueryStreamController<
|
|
|
131
131
|
|
|
132
132
|
subscribeRTE(
|
|
133
133
|
createSubscriber: {
|
|
134
|
-
fn: (reactor: Amity.Listener<Amity.
|
|
134
|
+
fn: (reactor: Amity.Listener<Amity.InternalMessage>) => Amity.Unsubscriber;
|
|
135
135
|
action: string;
|
|
136
136
|
}[],
|
|
137
137
|
) {
|
|
@@ -7,6 +7,7 @@ import { convertEventPayload } from '~/utils/event';
|
|
|
7
7
|
import { getMessage } from '../api/getMessage';
|
|
8
8
|
|
|
9
9
|
import { onMessageUpdated, onMessageDeleted } from '../events';
|
|
10
|
+
import { LinkedObject } from '~/utils/linkedObject';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* ```js
|
|
@@ -56,18 +57,26 @@ export const observeMessage = <Events extends ['onFetch', 'onUpdate', 'onDelete'
|
|
|
56
57
|
const disposers: Amity.Unsubscriber[] = [];
|
|
57
58
|
|
|
58
59
|
disposers.push(
|
|
59
|
-
onMessageUpdated(data =>
|
|
60
|
-
|
|
60
|
+
onMessageUpdated(data =>
|
|
61
|
+
router({ data: LinkedObject.message(data), loading: false, origin: 'event' }, 'onUpdate'),
|
|
62
|
+
),
|
|
63
|
+
onMessageDeleted(data =>
|
|
64
|
+
router({ data: LinkedObject.message(data), loading: false, origin: 'event' }, 'onDelete'),
|
|
65
|
+
),
|
|
61
66
|
convertEventPayload(
|
|
62
67
|
onMessageMarkerFetched,
|
|
63
68
|
'contentId',
|
|
64
69
|
'message',
|
|
65
|
-
)(data =>
|
|
70
|
+
)(data =>
|
|
71
|
+
router({ data: LinkedObject.message(data), loading: false, origin: 'event' }, 'onUpdate'),
|
|
72
|
+
),
|
|
66
73
|
convertEventPayload(
|
|
67
74
|
onMessageMarked,
|
|
68
75
|
'contentId',
|
|
69
76
|
'message',
|
|
70
|
-
)(data =>
|
|
77
|
+
)(data =>
|
|
78
|
+
router({ data: LinkedObject.message(data), loading: false, origin: 'event' }, 'onUpdate'),
|
|
79
|
+
),
|
|
71
80
|
);
|
|
72
81
|
|
|
73
82
|
if (policy !== 'no_fetch') {
|