@amityco/ts-sdk 0.0.1-003998f.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/.eslintrc.json +55 -0
- package/LICENSE +390 -0
- package/README.md +137 -0
- package/dist/@types/core/cache.d.ts +64 -0
- package/dist/@types/core/cache.d.ts.map +1 -0
- package/dist/@types/core/errors.d.ts +36 -0
- package/dist/@types/core/errors.d.ts.map +1 -0
- package/dist/@types/core/events.d.ts +117 -0
- package/dist/@types/core/events.d.ts.map +1 -0
- package/dist/@types/core/live.d.ts +27 -0
- package/dist/@types/core/live.d.ts.map +1 -0
- package/dist/@types/core/model.d.ts +52 -0
- package/dist/@types/core/model.d.ts.map +1 -0
- package/dist/@types/core/paging.d.ts +40 -0
- package/dist/@types/core/paging.d.ts.map +1 -0
- package/dist/@types/core/payload.d.ts +109 -0
- package/dist/@types/core/payload.d.ts.map +1 -0
- package/dist/@types/core/permissions.d.ts +71 -0
- package/dist/@types/core/permissions.d.ts.map +1 -0
- package/dist/@types/core/query.d.ts +51 -0
- package/dist/@types/core/query.d.ts.map +1 -0
- package/dist/@types/core/transport.d.ts +42 -0
- package/dist/@types/core/transport.d.ts.map +1 -0
- package/dist/@types/domains/category.d.ts +11 -0
- package/dist/@types/domains/category.d.ts.map +1 -0
- package/dist/@types/domains/channel.d.ts +53 -0
- package/dist/@types/domains/channel.d.ts.map +1 -0
- package/dist/@types/domains/client.d.ts +66 -0
- package/dist/@types/domains/client.d.ts.map +1 -0
- package/dist/@types/domains/comment.d.ts +32 -0
- package/dist/@types/domains/comment.d.ts.map +1 -0
- package/dist/@types/domains/community.d.ts +46 -0
- package/dist/@types/domains/community.d.ts.map +1 -0
- package/dist/@types/domains/content.d.ts +52 -0
- package/dist/@types/domains/content.d.ts.map +1 -0
- package/dist/@types/domains/feed.d.ts +14 -0
- package/dist/@types/domains/feed.d.ts.map +1 -0
- package/dist/@types/domains/file.d.ts +62 -0
- package/dist/@types/domains/file.d.ts.map +1 -0
- package/dist/@types/domains/follow.d.ts +32 -0
- package/dist/@types/domains/follow.d.ts.map +1 -0
- package/dist/@types/domains/group.d.ts +27 -0
- package/dist/@types/domains/group.d.ts.map +1 -0
- package/dist/@types/domains/mention.d.ts +23 -0
- package/dist/@types/domains/mention.d.ts.map +1 -0
- package/dist/@types/domains/message.d.ts +39 -0
- package/dist/@types/domains/message.d.ts.map +1 -0
- package/dist/@types/domains/partials.d.ts +45 -0
- package/dist/@types/domains/partials.d.ts.map +1 -0
- package/dist/@types/domains/poll.d.ts +27 -0
- package/dist/@types/domains/poll.d.ts.map +1 -0
- package/dist/@types/domains/post.d.ts +46 -0
- package/dist/@types/domains/post.d.ts.map +1 -0
- package/dist/@types/domains/reaction.d.ts +34 -0
- package/dist/@types/domains/reaction.d.ts.map +1 -0
- package/dist/@types/domains/stream.d.ts +57 -0
- package/dist/@types/domains/stream.d.ts.map +1 -0
- package/dist/@types/domains/user.d.ts +15 -0
- package/dist/@types/domains/user.d.ts.map +1 -0
- package/dist/@types/global.d.ts +14 -0
- package/dist/@types/global.d.ts.map +1 -0
- package/dist/@types/index.d.ts +27 -0
- package/dist/@types/index.d.ts.map +1 -0
- package/dist/cache/api/backupCache.d.ts +24 -0
- package/dist/cache/api/backupCache.d.ts.map +1 -0
- package/dist/cache/api/disableCache.d.ts +13 -0
- package/dist/cache/api/disableCache.d.ts.map +1 -0
- package/dist/cache/api/dropFromCache.d.ts +17 -0
- package/dist/cache/api/dropFromCache.d.ts.map +1 -0
- package/dist/cache/api/enableCache.d.ts +18 -0
- package/dist/cache/api/enableCache.d.ts.map +1 -0
- package/dist/cache/api/index.d.ts +12 -0
- package/dist/cache/api/index.d.ts.map +1 -0
- package/dist/cache/api/ingestInCache.d.ts +11 -0
- package/dist/cache/api/ingestInCache.d.ts.map +1 -0
- package/dist/cache/api/isInTombstone.d.ts +18 -0
- package/dist/cache/api/isInTombstone.d.ts.map +1 -0
- package/dist/cache/api/mergeInCache.d.ts +20 -0
- package/dist/cache/api/mergeInCache.d.ts.map +1 -0
- package/dist/cache/api/pullFromCache.d.ts +17 -0
- package/dist/cache/api/pullFromCache.d.ts.map +1 -0
- package/dist/cache/api/pushToCache.d.ts +17 -0
- package/dist/cache/api/pushToCache.d.ts.map +1 -0
- package/dist/cache/api/pushToTombstone.d.ts +17 -0
- package/dist/cache/api/pushToTombstone.d.ts.map +1 -0
- package/dist/cache/api/queryCache.d.ts +17 -0
- package/dist/cache/api/queryCache.d.ts.map +1 -0
- package/dist/cache/api/restoreCache.d.ts +22 -0
- package/dist/cache/api/restoreCache.d.ts.map +1 -0
- package/dist/cache/api/snipeIdFromCollection.d.ts +18 -0
- package/dist/cache/api/snipeIdFromCollection.d.ts.map +1 -0
- package/dist/cache/api/upsertInCache.d.ts +19 -0
- package/dist/cache/api/upsertInCache.d.ts.map +1 -0
- package/dist/cache/api/wipeCache.d.ts +21 -0
- package/dist/cache/api/wipeCache.d.ts.map +1 -0
- package/dist/cache/utils/index.d.ts +58 -0
- package/dist/cache/utils/index.d.ts.map +1 -0
- package/dist/category/api/getCategory.d.ts +32 -0
- package/dist/category/api/getCategory.d.ts.map +1 -0
- package/dist/category/api/index.d.ts +3 -0
- package/dist/category/api/index.d.ts.map +1 -0
- package/dist/category/api/queryCategories.d.ts +36 -0
- package/dist/category/api/queryCategories.d.ts.map +1 -0
- package/dist/channel/api/addChannelMembers.d.ts +17 -0
- package/dist/channel/api/addChannelMembers.d.ts.map +1 -0
- package/dist/channel/api/addChannelMembersRole.d.ts +18 -0
- package/dist/channel/api/addChannelMembersRole.d.ts.map +1 -0
- package/dist/channel/api/banChannelMembers.d.ts +16 -0
- package/dist/channel/api/banChannelMembers.d.ts.map +1 -0
- package/dist/channel/api/createChannel.d.ts +19 -0
- package/dist/channel/api/createChannel.d.ts.map +1 -0
- package/dist/channel/api/deleteChannel.d.ts +16 -0
- package/dist/channel/api/deleteChannel.d.ts.map +1 -0
- package/dist/channel/api/getChannel.d.ts +32 -0
- package/dist/channel/api/getChannel.d.ts.map +1 -0
- package/dist/channel/api/getChannels.d.ts +32 -0
- package/dist/channel/api/getChannels.d.ts.map +1 -0
- package/dist/channel/api/index.d.ts +16 -0
- package/dist/channel/api/index.d.ts.map +1 -0
- package/dist/channel/api/joinChannel.d.ts +16 -0
- package/dist/channel/api/joinChannel.d.ts.map +1 -0
- package/dist/channel/api/leaveChannel.d.ts +16 -0
- package/dist/channel/api/leaveChannel.d.ts.map +1 -0
- package/dist/channel/api/queryChannelMembers.d.ts +32 -0
- package/dist/channel/api/queryChannelMembers.d.ts.map +1 -0
- package/dist/channel/api/queryChannels.d.ts +33 -0
- package/dist/channel/api/queryChannels.d.ts.map +1 -0
- package/dist/channel/api/removeChannelMembers.d.ts +17 -0
- package/dist/channel/api/removeChannelMembers.d.ts.map +1 -0
- package/dist/channel/api/removeChannelMembersRole.d.ts +18 -0
- package/dist/channel/api/removeChannelMembersRole.d.ts.map +1 -0
- package/dist/channel/api/tests/addChannelMembers.test.d.ts +2 -0
- package/dist/channel/api/tests/addChannelMembers.test.d.ts.map +1 -0
- package/dist/channel/api/tests/getChannel.test.d.ts +2 -0
- package/dist/channel/api/tests/getChannel.test.d.ts.map +1 -0
- package/dist/channel/api/tests/queryChannelMembers.test.d.ts +2 -0
- package/dist/channel/api/tests/queryChannelMembers.test.d.ts.map +1 -0
- package/dist/channel/api/tests/queryChannels.test.d.ts +2 -0
- package/dist/channel/api/tests/queryChannels.test.d.ts.map +1 -0
- package/dist/channel/api/unbanChannelMembers.d.ts +16 -0
- package/dist/channel/api/unbanChannelMembers.d.ts.map +1 -0
- package/dist/channel/api/updateChannel.d.ts +17 -0
- package/dist/channel/api/updateChannel.d.ts.map +1 -0
- package/dist/channel/events/index.d.ts +11 -0
- package/dist/channel/events/index.d.ts.map +1 -0
- package/dist/channel/events/onChannelCreated.d.ts +17 -0
- package/dist/channel/events/onChannelCreated.d.ts.map +1 -0
- package/dist/channel/events/onChannelDeleted.d.ts +17 -0
- package/dist/channel/events/onChannelDeleted.d.ts.map +1 -0
- package/dist/channel/events/onChannelJoined.d.ts +17 -0
- package/dist/channel/events/onChannelJoined.d.ts.map +1 -0
- package/dist/channel/events/onChannelLeft.d.ts +17 -0
- package/dist/channel/events/onChannelLeft.d.ts.map +1 -0
- package/dist/channel/events/onChannelMemberAdded.d.ts +17 -0
- package/dist/channel/events/onChannelMemberAdded.d.ts.map +1 -0
- package/dist/channel/events/onChannelMemberBanned.d.ts +17 -0
- package/dist/channel/events/onChannelMemberBanned.d.ts.map +1 -0
- package/dist/channel/events/onChannelMemberRemoved.d.ts +17 -0
- package/dist/channel/events/onChannelMemberRemoved.d.ts.map +1 -0
- package/dist/channel/events/onChannelMemberUnbanned.d.ts +17 -0
- package/dist/channel/events/onChannelMemberUnbanned.d.ts.map +1 -0
- 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 +17 -0
- package/dist/channel/events/onChannelUpdated.d.ts.map +1 -0
- package/dist/channel/events/tests/onChannelMemberBanned.test.d.ts +2 -0
- package/dist/channel/events/tests/onChannelMemberBanned.test.d.ts.map +1 -0
- package/dist/channel/events/tests/onChannelMemberUnbanned.test.d.ts +2 -0
- package/dist/channel/events/tests/onChannelMemberUnbanned.test.d.ts.map +1 -0
- package/dist/channel/observers/index.d.ts +5 -0
- package/dist/channel/observers/index.d.ts.map +1 -0
- package/dist/channel/observers/liveChannelMembers.d.ts +20 -0
- package/dist/channel/observers/liveChannelMembers.d.ts.map +1 -0
- package/dist/channel/observers/liveChannels.d.ts +20 -0
- package/dist/channel/observers/liveChannels.d.ts.map +1 -0
- package/dist/channel/observers/observeChannel.d.ts +18 -0
- package/dist/channel/observers/observeChannel.d.ts.map +1 -0
- package/dist/channel/observers/observeChannels.d.ts +17 -0
- package/dist/channel/observers/observeChannels.d.ts.map +1 -0
- package/dist/channel/observers/tests/liveChannelMembers.test.d.ts +2 -0
- package/dist/channel/observers/tests/liveChannelMembers.test.d.ts.map +1 -0
- package/dist/channel/observers/tests/liveChannels.test.d.ts +2 -0
- package/dist/channel/observers/tests/liveChannels.test.d.ts.map +1 -0
- package/dist/channel/utils/index.d.ts +2 -0
- package/dist/channel/utils/index.d.ts.map +1 -0
- package/dist/channel/utils/prepareChannelPayload.d.ts +3 -0
- package/dist/channel/utils/prepareChannelPayload.d.ts.map +1 -0
- package/dist/channel/utils/tests/prepareChannelPayload.test.d.ts +2 -0
- package/dist/channel/utils/tests/prepareChannelPayload.test.d.ts.map +1 -0
- package/dist/client/api/activeClient.d.ts +17 -0
- package/dist/client/api/activeClient.d.ts.map +1 -0
- package/dist/client/api/activeUser.d.ts +6 -0
- package/dist/client/api/activeUser.d.ts.map +1 -0
- package/dist/client/api/connectClient.d.ts +22 -0
- package/dist/client/api/connectClient.d.ts.map +1 -0
- package/dist/client/api/createClient.d.ts +25 -0
- package/dist/client/api/createClient.d.ts.map +1 -0
- package/dist/client/api/disconnectClient.d.ts +16 -0
- package/dist/client/api/disconnectClient.d.ts.map +1 -0
- package/dist/client/api/getChatSettings.d.ts +15 -0
- package/dist/client/api/getChatSettings.d.ts.map +1 -0
- package/dist/client/api/getFeedSettings.d.ts +16 -0
- package/dist/client/api/getFeedSettings.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 +19 -0
- package/dist/client/api/getToken.d.ts.map +1 -0
- package/dist/client/api/index.d.ts +7 -0
- package/dist/client/api/index.d.ts.map +1 -0
- package/dist/client/api/isConnected.d.ts +14 -0
- package/dist/client/api/isConnected.d.ts.map +1 -0
- package/dist/client/events/index.d.ts +4 -0
- package/dist/client/events/index.d.ts.map +1 -0
- package/dist/client/events/onClientBanned.d.ts +17 -0
- package/dist/client/events/onClientBanned.d.ts.map +1 -0
- package/dist/client/events/onClientDisconnected.d.ts +17 -0
- package/dist/client/events/onClientDisconnected.d.ts.map +1 -0
- package/dist/client/events/onConnectionError.d.ts +18 -0
- package/dist/client/events/onConnectionError.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/endpoints.d.ts +12 -0
- package/dist/client/utils/endpoints.d.ts.map +1 -0
- package/dist/comment/api/createComment.d.ts +16 -0
- package/dist/comment/api/createComment.d.ts.map +1 -0
- package/dist/comment/api/deleteComment.d.ts +16 -0
- package/dist/comment/api/deleteComment.d.ts.map +1 -0
- package/dist/comment/api/getComment.d.ts +32 -0
- package/dist/comment/api/getComment.d.ts.map +1 -0
- package/dist/comment/api/getComments.d.ts +32 -0
- package/dist/comment/api/getComments.d.ts.map +1 -0
- package/dist/comment/api/index.d.ts +7 -0
- package/dist/comment/api/index.d.ts.map +1 -0
- package/dist/comment/api/queryComments.d.ts +32 -0
- package/dist/comment/api/queryComments.d.ts.map +1 -0
- package/dist/comment/api/updateComment.d.ts +19 -0
- package/dist/comment/api/updateComment.d.ts.map +1 -0
- package/dist/comment/events/index.d.ts +8 -0
- package/dist/comment/events/index.d.ts.map +1 -0
- package/dist/comment/events/onCommentCreated.d.ts +17 -0
- package/dist/comment/events/onCommentCreated.d.ts.map +1 -0
- package/dist/comment/events/onCommentDeleted.d.ts +17 -0
- package/dist/comment/events/onCommentDeleted.d.ts.map +1 -0
- package/dist/comment/events/onCommentFlagged.d.ts +17 -0
- package/dist/comment/events/onCommentFlagged.d.ts.map +1 -0
- package/dist/comment/events/onCommentReactionAdded.d.ts +17 -0
- package/dist/comment/events/onCommentReactionAdded.d.ts.map +1 -0
- package/dist/comment/events/onCommentReactionRemoved.d.ts +17 -0
- package/dist/comment/events/onCommentReactionRemoved.d.ts.map +1 -0
- package/dist/comment/events/onCommentUnflagged.d.ts +17 -0
- package/dist/comment/events/onCommentUnflagged.d.ts.map +1 -0
- package/dist/comment/events/onCommentUpdated.d.ts +17 -0
- package/dist/comment/events/onCommentUpdated.d.ts.map +1 -0
- package/dist/comment/events/utils.d.ts +2 -0
- package/dist/comment/events/utils.d.ts.map +1 -0
- package/dist/comment/observers/index.d.ts +4 -0
- package/dist/comment/observers/index.d.ts.map +1 -0
- package/dist/comment/observers/liveComments.d.ts +22 -0
- package/dist/comment/observers/liveComments.d.ts.map +1 -0
- package/dist/comment/observers/observeComment.d.ts +18 -0
- package/dist/comment/observers/observeComment.d.ts.map +1 -0
- package/dist/comment/observers/observeComments.d.ts +26 -0
- package/dist/comment/observers/observeComments.d.ts.map +1 -0
- package/dist/community/api/addCommunityMembers.d.ts +17 -0
- package/dist/community/api/addCommunityMembers.d.ts.map +1 -0
- package/dist/community/api/addCommunityMembersRoles.d.ts +18 -0
- package/dist/community/api/addCommunityMembersRoles.d.ts.map +1 -0
- package/dist/community/api/createCommunity.d.ts +20 -0
- package/dist/community/api/createCommunity.d.ts.map +1 -0
- package/dist/community/api/deleteCommunity.d.ts +16 -0
- package/dist/community/api/deleteCommunity.d.ts.map +1 -0
- package/dist/community/api/getCommunities.d.ts +32 -0
- package/dist/community/api/getCommunities.d.ts.map +1 -0
- package/dist/community/api/getCommunity.d.ts +32 -0
- package/dist/community/api/getCommunity.d.ts.map +1 -0
- package/dist/community/api/getRecommendedCommunities.d.ts +32 -0
- package/dist/community/api/getRecommendedCommunities.d.ts.map +1 -0
- package/dist/community/api/getTopTrendingCommunities.d.ts +32 -0
- package/dist/community/api/getTopTrendingCommunities.d.ts.map +1 -0
- package/dist/community/api/index.d.ts +16 -0
- package/dist/community/api/index.d.ts.map +1 -0
- package/dist/community/api/joinCommunity.d.ts +16 -0
- package/dist/community/api/joinCommunity.d.ts.map +1 -0
- package/dist/community/api/leaveCommunity.d.ts +16 -0
- package/dist/community/api/leaveCommunity.d.ts.map +1 -0
- package/dist/community/api/queryCommunities.d.ts +42 -0
- package/dist/community/api/queryCommunities.d.ts.map +1 -0
- package/dist/community/api/queryCommunityMembers.d.ts +38 -0
- package/dist/community/api/queryCommunityMembers.d.ts.map +1 -0
- package/dist/community/api/removeCommunityMembers.d.ts +17 -0
- package/dist/community/api/removeCommunityMembers.d.ts.map +1 -0
- package/dist/community/api/removeCommunityMembersRoles.d.ts +18 -0
- package/dist/community/api/removeCommunityMembersRoles.d.ts.map +1 -0
- package/dist/community/api/updateCommunity.d.ts +17 -0
- package/dist/community/api/updateCommunity.d.ts.map +1 -0
- package/dist/community/events/index.d.ts +10 -0
- package/dist/community/events/index.d.ts.map +1 -0
- package/dist/community/events/onCommunityCreated.d.ts +17 -0
- package/dist/community/events/onCommunityCreated.d.ts.map +1 -0
- package/dist/community/events/onCommunityDeleted.d.ts +17 -0
- package/dist/community/events/onCommunityDeleted.d.ts.map +1 -0
- package/dist/community/events/onCommunityJoined.d.ts +17 -0
- package/dist/community/events/onCommunityJoined.d.ts.map +1 -0
- package/dist/community/events/onCommunityLeft.d.ts +17 -0
- package/dist/community/events/onCommunityLeft.d.ts.map +1 -0
- package/dist/community/events/onCommunityUpdated.d.ts +17 -0
- package/dist/community/events/onCommunityUpdated.d.ts.map +1 -0
- package/dist/community/events/onCommunityUserAdded.d.ts +17 -0
- package/dist/community/events/onCommunityUserAdded.d.ts.map +1 -0
- package/dist/community/events/onCommunityUserBanned.d.ts +17 -0
- package/dist/community/events/onCommunityUserBanned.d.ts.map +1 -0
- package/dist/community/events/onCommunityUserRemoved.d.ts +17 -0
- package/dist/community/events/onCommunityUserRemoved.d.ts.map +1 -0
- package/dist/community/events/onCommunityUserUnbanned.d.ts +17 -0
- package/dist/community/events/onCommunityUserUnbanned.d.ts.map +1 -0
- package/dist/community/events/utils.d.ts +3 -0
- package/dist/community/events/utils.d.ts.map +1 -0
- package/dist/community/observers/index.d.ts +2 -0
- package/dist/community/observers/index.d.ts.map +1 -0
- package/dist/community/observers/observeCommunity.d.ts +18 -0
- package/dist/community/observers/observeCommunity.d.ts.map +1 -0
- package/dist/community/utils/index.d.ts +2 -0
- package/dist/community/utils/index.d.ts.map +1 -0
- package/dist/community/utils/payload.d.ts +11 -0
- package/dist/community/utils/payload.d.ts.map +1 -0
- package/dist/core/debug.d.ts +15 -0
- package/dist/core/debug.d.ts.map +1 -0
- package/dist/core/device.d.ts +7 -0
- package/dist/core/device.d.ts.map +1 -0
- package/dist/core/errors.d.ts +60 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/events.d.ts +35 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/microtasks.d.ts +13 -0
- package/dist/core/microtasks.d.ts.map +1 -0
- package/dist/core/model/idResolvers.d.ts +18 -0
- package/dist/core/model/idResolvers.d.ts.map +1 -0
- package/dist/core/model/identifyModel.d.ts +9 -0
- package/dist/core/model/identifyModel.d.ts.map +1 -0
- package/dist/core/model/index.d.ts +8 -0
- package/dist/core/model/index.d.ts.map +1 -0
- package/dist/core/query/filtering.d.ts +24 -0
- package/dist/core/query/filtering.d.ts.map +1 -0
- package/dist/core/query/index.d.ts +5 -0
- package/dist/core/query/index.d.ts.map +1 -0
- package/dist/core/query/paging.d.ts +65 -0
- package/dist/core/query/paging.d.ts.map +1 -0
- package/dist/core/query/query.d.ts +109 -0
- package/dist/core/query/query.d.ts.map +1 -0
- package/dist/core/query/sorting.d.ts +39 -0
- package/dist/core/query/sorting.d.ts.map +1 -0
- package/dist/core/subscription.d.ts +36 -0
- package/dist/core/subscription.d.ts.map +1 -0
- package/dist/core/tests/query/filtering.test.d.ts +2 -0
- package/dist/core/tests/query/filtering.test.d.ts.map +1 -0
- package/dist/core/tests/query/query/runQuery.test.d.ts +2 -0
- package/dist/core/tests/query/query/runQuery.test.d.ts.map +1 -0
- package/dist/core/tests/query/query.test.d.ts +2 -0
- package/dist/core/tests/query/query.test.d.ts.map +1 -0
- 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 +16 -0
- package/dist/core/transports/http.d.ts.map +1 -0
- package/dist/core/transports/index.d.ts +4 -0
- package/dist/core/transports/index.d.ts.map +1 -0
- package/dist/core/transports/mqtt.d.ts +17 -0
- package/dist/core/transports/mqtt.d.ts.map +1 -0
- package/dist/core/transports/test/http.test.d.ts +2 -0
- package/dist/core/transports/test/http.test.d.ts.map +1 -0
- package/dist/core/transports/utils.d.ts +13 -0
- package/dist/core/transports/utils.d.ts.map +1 -0
- package/dist/core/transports/ws.d.ts +27 -0
- package/dist/core/transports/ws.d.ts.map +1 -0
- package/dist/core/uuid.d.ts +2 -0
- package/dist/core/uuid.d.ts.map +1 -0
- package/dist/external/api/createUserToken.d.ts +23 -0
- package/dist/external/api/createUserToken.d.ts.map +1 -0
- package/dist/external/api/index.d.ts +2 -0
- package/dist/external/api/index.d.ts.map +1 -0
- package/dist/feed/api/index.d.ts +2 -0
- package/dist/feed/api/index.d.ts.map +1 -0
- package/dist/feed/api/queryGlobalFeed.d.ts +37 -0
- package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -0
- package/dist/file/api/createFile.d.ts +17 -0
- package/dist/file/api/createFile.d.ts.map +1 -0
- package/dist/file/api/createImage.d.ts +17 -0
- package/dist/file/api/createImage.d.ts.map +1 -0
- package/dist/file/api/createVideo.d.ts +18 -0
- package/dist/file/api/createVideo.d.ts.map +1 -0
- package/dist/file/api/deleteFile.d.ts +18 -0
- package/dist/file/api/deleteFile.d.ts.map +1 -0
- package/dist/file/api/fileUrlWithSize.d.ts +9 -0
- package/dist/file/api/fileUrlWithSize.d.ts.map +1 -0
- package/dist/file/api/getFile.d.ts +32 -0
- package/dist/file/api/getFile.d.ts.map +1 -0
- package/dist/file/api/index.d.ts +7 -0
- package/dist/file/api/index.d.ts.map +1 -0
- package/dist/file/observers/index.d.ts +2 -0
- package/dist/file/observers/index.d.ts.map +1 -0
- package/dist/file/observers/observeFile.d.ts +18 -0
- package/dist/file/observers/observeFile.d.ts.map +1 -0
- package/dist/follow/api/acceptFollower.d.ts +16 -0
- package/dist/follow/api/acceptFollower.d.ts.map +1 -0
- package/dist/follow/api/declineFollower.d.ts +16 -0
- package/dist/follow/api/declineFollower.d.ts.map +1 -0
- package/dist/follow/api/follow.d.ts +16 -0
- package/dist/follow/api/follow.d.ts.map +1 -0
- package/dist/follow/api/getFollowInfo.d.ts +32 -0
- package/dist/follow/api/getFollowInfo.d.ts.map +1 -0
- package/dist/follow/api/index.d.ts +8 -0
- package/dist/follow/api/index.d.ts.map +1 -0
- package/dist/follow/api/queryFollowers.d.ts +32 -0
- package/dist/follow/api/queryFollowers.d.ts.map +1 -0
- package/dist/follow/api/queryFollowings.d.ts +32 -0
- package/dist/follow/api/queryFollowings.d.ts.map +1 -0
- package/dist/follow/api/unfollow.d.ts +16 -0
- package/dist/follow/api/unfollow.d.ts.map +1 -0
- package/dist/follow/api/utils.d.ts +9 -0
- package/dist/follow/api/utils.d.ts.map +1 -0
- package/dist/follow/events/index.d.ts +9 -0
- package/dist/follow/events/index.d.ts.map +1 -0
- package/dist/follow/events/onFollowInfoUpdated.d.ts +17 -0
- package/dist/follow/events/onFollowInfoUpdated.d.ts.map +1 -0
- package/dist/follow/events/onFollowRequestAccepted.d.ts +17 -0
- package/dist/follow/events/onFollowRequestAccepted.d.ts.map +1 -0
- package/dist/follow/events/onFollowRequestCanceled.d.ts +17 -0
- package/dist/follow/events/onFollowRequestCanceled.d.ts.map +1 -0
- package/dist/follow/events/onFollowRequestDeclined.d.ts +17 -0
- package/dist/follow/events/onFollowRequestDeclined.d.ts.map +1 -0
- package/dist/follow/events/onFollowerDeleted.d.ts +17 -0
- package/dist/follow/events/onFollowerDeleted.d.ts.map +1 -0
- package/dist/follow/events/onFollowerRequested.d.ts +17 -0
- package/dist/follow/events/onFollowerRequested.d.ts.map +1 -0
- package/dist/follow/events/onUserFollowed.d.ts +17 -0
- package/dist/follow/events/onUserFollowed.d.ts.map +1 -0
- package/dist/follow/events/onUserUnfollowed.d.ts +17 -0
- package/dist/follow/events/onUserUnfollowed.d.ts.map +1 -0
- package/dist/follow/events/utils.d.ts +2 -0
- package/dist/follow/events/utils.d.ts.map +1 -0
- package/dist/follow/observers/index.d.ts +6 -0
- package/dist/follow/observers/index.d.ts.map +1 -0
- package/dist/follow/observers/liveFollowers.d.ts +20 -0
- package/dist/follow/observers/liveFollowers.d.ts.map +1 -0
- package/dist/follow/observers/liveFollowings.d.ts +20 -0
- package/dist/follow/observers/liveFollowings.d.ts.map +1 -0
- package/dist/follow/observers/observeFollowInfo.d.ts +18 -0
- package/dist/follow/observers/observeFollowInfo.d.ts.map +1 -0
- package/dist/follow/observers/observeFollowers.d.ts +18 -0
- package/dist/follow/observers/observeFollowers.d.ts.map +1 -0
- package/dist/follow/observers/observeFollowings.d.ts +18 -0
- package/dist/follow/observers/observeFollowings.d.ts.map +1 -0
- package/dist/follow/tests/observers/liveFollowers.test.d.ts +2 -0
- package/dist/follow/tests/observers/liveFollowers.test.d.ts.map +1 -0
- package/dist/follow/tests/observers/liveFollowings.test.d.ts +2 -0
- package/dist/follow/tests/observers/liveFollowings.test.d.ts.map +1 -0
- package/dist/index.cjs.js +28294 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +28034 -0
- package/dist/index.umd.js +6 -0
- package/dist/message/api/createMessage.d.ts +41 -0
- package/dist/message/api/createMessage.d.ts.map +1 -0
- package/dist/message/api/deleteMessage.d.ts +32 -0
- package/dist/message/api/deleteMessage.d.ts.map +1 -0
- package/dist/message/api/getMessage.d.ts +32 -0
- package/dist/message/api/getMessage.d.ts.map +1 -0
- package/dist/message/api/getMessages.d.ts +32 -0
- package/dist/message/api/getMessages.d.ts.map +1 -0
- package/dist/message/api/index.d.ts +7 -0
- package/dist/message/api/index.d.ts.map +1 -0
- package/dist/message/api/queryMessages.d.ts +32 -0
- package/dist/message/api/queryMessages.d.ts.map +1 -0
- package/dist/message/api/tests/createMessage.test.d.ts +2 -0
- package/dist/message/api/tests/createMessage.test.d.ts.map +1 -0
- package/dist/message/api/updateMessage.d.ts +38 -0
- package/dist/message/api/updateMessage.d.ts.map +1 -0
- package/dist/message/events/index.d.ts +5 -0
- package/dist/message/events/index.d.ts.map +1 -0
- package/dist/message/events/onMessageCreated.d.ts +17 -0
- package/dist/message/events/onMessageCreated.d.ts.map +1 -0
- package/dist/message/events/onMessageDeleted.d.ts +17 -0
- package/dist/message/events/onMessageDeleted.d.ts.map +1 -0
- package/dist/message/events/onMessageFetched.d.ts +17 -0
- package/dist/message/events/onMessageFetched.d.ts.map +1 -0
- package/dist/message/events/onMessageUpdated.d.ts +17 -0
- package/dist/message/events/onMessageUpdated.d.ts.map +1 -0
- package/dist/message/observers/index.d.ts +5 -0
- package/dist/message/observers/index.d.ts.map +1 -0
- package/dist/message/observers/liveMessage.d.ts +18 -0
- package/dist/message/observers/liveMessage.d.ts.map +1 -0
- package/dist/message/observers/liveMessages.d.ts +20 -0
- package/dist/message/observers/liveMessages.d.ts.map +1 -0
- package/dist/message/observers/observeMessage.d.ts +20 -0
- package/dist/message/observers/observeMessage.d.ts.map +1 -0
- package/dist/message/observers/observeMessages.d.ts +22 -0
- package/dist/message/observers/observeMessages.d.ts.map +1 -0
- package/dist/message/tests/api/getMessage.test.d.ts +2 -0
- package/dist/message/tests/api/getMessage.test.d.ts.map +1 -0
- package/dist/message/tests/observers/liveMessage.test.d.ts +2 -0
- package/dist/message/tests/observers/liveMessage.test.d.ts.map +1 -0
- package/dist/message/tests/observers/liveMessages.test.d.ts +2 -0
- package/dist/message/tests/observers/liveMessages.test.d.ts.map +1 -0
- package/dist/poll/api/closePoll.d.ts +16 -0
- package/dist/poll/api/closePoll.d.ts.map +1 -0
- package/dist/poll/api/createPoll.d.ts +25 -0
- package/dist/poll/api/createPoll.d.ts.map +1 -0
- package/dist/poll/api/deletePoll.d.ts +16 -0
- package/dist/poll/api/deletePoll.d.ts.map +1 -0
- package/dist/poll/api/getPoll.d.ts +32 -0
- package/dist/poll/api/getPoll.d.ts.map +1 -0
- package/dist/poll/api/index.d.ts +6 -0
- package/dist/poll/api/index.d.ts.map +1 -0
- package/dist/poll/api/votePoll.d.ts +17 -0
- package/dist/poll/api/votePoll.d.ts.map +1 -0
- package/dist/poll/events/index.d.ts +3 -0
- package/dist/poll/events/index.d.ts.map +1 -0
- package/dist/poll/events/onPollDeleted.d.ts +17 -0
- package/dist/poll/events/onPollDeleted.d.ts.map +1 -0
- package/dist/poll/events/onPollUpdated.d.ts +17 -0
- package/dist/poll/events/onPollUpdated.d.ts.map +1 -0
- package/dist/poll/observers/index.d.ts +2 -0
- package/dist/poll/observers/index.d.ts.map +1 -0
- package/dist/poll/observers/observePoll.d.ts +18 -0
- package/dist/poll/observers/observePoll.d.ts.map +1 -0
- package/dist/post/api/approvePost.d.ts +17 -0
- package/dist/post/api/approvePost.d.ts.map +1 -0
- package/dist/post/api/createPost.d.ts +29 -0
- package/dist/post/api/createPost.d.ts.map +1 -0
- package/dist/post/api/declinePost.d.ts +17 -0
- package/dist/post/api/declinePost.d.ts.map +1 -0
- package/dist/post/api/deletePost.d.ts +16 -0
- package/dist/post/api/deletePost.d.ts.map +1 -0
- package/dist/post/api/getPost.d.ts +32 -0
- package/dist/post/api/getPost.d.ts.map +1 -0
- package/dist/post/api/getPosts.d.ts +32 -0
- package/dist/post/api/getPosts.d.ts.map +1 -0
- package/dist/post/api/index.d.ts +9 -0
- package/dist/post/api/index.d.ts.map +1 -0
- package/dist/post/api/queryPosts.d.ts +32 -0
- package/dist/post/api/queryPosts.d.ts.map +1 -0
- package/dist/post/api/updatePost.d.ts +24 -0
- package/dist/post/api/updatePost.d.ts.map +1 -0
- package/dist/post/events/index.d.ts +10 -0
- package/dist/post/events/index.d.ts.map +1 -0
- package/dist/post/events/onPostApproved.d.ts +17 -0
- package/dist/post/events/onPostApproved.d.ts.map +1 -0
- package/dist/post/events/onPostCreated.d.ts +17 -0
- package/dist/post/events/onPostCreated.d.ts.map +1 -0
- package/dist/post/events/onPostDeclined.d.ts +17 -0
- package/dist/post/events/onPostDeclined.d.ts.map +1 -0
- package/dist/post/events/onPostDeleted.d.ts +17 -0
- package/dist/post/events/onPostDeleted.d.ts.map +1 -0
- package/dist/post/events/onPostFlagged.d.ts +17 -0
- package/dist/post/events/onPostFlagged.d.ts.map +1 -0
- package/dist/post/events/onPostReactionAdded.d.ts +17 -0
- package/dist/post/events/onPostReactionAdded.d.ts.map +1 -0
- package/dist/post/events/onPostReactionRemoved.d.ts +17 -0
- package/dist/post/events/onPostReactionRemoved.d.ts.map +1 -0
- package/dist/post/events/onPostUnflagged.d.ts +17 -0
- package/dist/post/events/onPostUnflagged.d.ts.map +1 -0
- package/dist/post/events/onPostUpdated.d.ts +17 -0
- package/dist/post/events/onPostUpdated.d.ts.map +1 -0
- package/dist/post/events/utils.d.ts +2 -0
- package/dist/post/events/utils.d.ts.map +1 -0
- package/dist/post/observers/index.d.ts +4 -0
- package/dist/post/observers/index.d.ts.map +1 -0
- package/dist/post/observers/livePosts.d.ts +22 -0
- package/dist/post/observers/livePosts.d.ts.map +1 -0
- package/dist/post/observers/observePost.d.ts +18 -0
- package/dist/post/observers/observePost.d.ts.map +1 -0
- package/dist/post/observers/observePosts.d.ts +35 -0
- package/dist/post/observers/observePosts.d.ts.map +1 -0
- package/dist/post/tests/api/getPost.test.d.ts +2 -0
- package/dist/post/tests/api/getPost.test.d.ts.map +1 -0
- package/dist/post/tests/api/queryPosts.test.d.ts +2 -0
- package/dist/post/tests/api/queryPosts.test.d.ts.map +1 -0
- package/dist/reaction/api/addReaction.d.ts +36 -0
- package/dist/reaction/api/addReaction.d.ts.map +1 -0
- package/dist/reaction/api/index.d.ts +4 -0
- package/dist/reaction/api/index.d.ts.map +1 -0
- package/dist/reaction/api/queryReactions.d.ts +19 -0
- package/dist/reaction/api/queryReactions.d.ts.map +1 -0
- package/dist/reaction/api/removeReaction.d.ts +36 -0
- package/dist/reaction/api/removeReaction.d.ts.map +1 -0
- package/dist/reaction/events/index.d.ts +5 -0
- package/dist/reaction/events/index.d.ts.map +1 -0
- package/dist/reaction/events/onReactionAdded.d.ts +19 -0
- package/dist/reaction/events/onReactionAdded.d.ts.map +1 -0
- package/dist/reaction/events/onReactionRemoved.d.ts +19 -0
- package/dist/reaction/events/onReactionRemoved.d.ts.map +1 -0
- package/dist/reaction/events/onReactorAdded.d.ts +19 -0
- package/dist/reaction/events/onReactorAdded.d.ts.map +1 -0
- package/dist/reaction/events/onReactorRemoved.d.ts +19 -0
- package/dist/reaction/events/onReactorRemoved.d.ts.map +1 -0
- package/dist/reaction/observers/index.d.ts +2 -0
- package/dist/reaction/observers/index.d.ts.map +1 -0
- package/dist/reaction/observers/liveReactions.d.ts +22 -0
- package/dist/reaction/observers/liveReactions.d.ts.map +1 -0
- package/dist/reaction/utils/dispatchReactable.d.ts +3 -0
- package/dist/reaction/utils/dispatchReactable.d.ts.map +1 -0
- package/dist/reaction/utils/fetchReference.d.ts +3 -0
- package/dist/reaction/utils/fetchReference.d.ts.map +1 -0
- package/dist/reaction/utils/index.d.ts +5 -0
- package/dist/reaction/utils/index.d.ts.map +1 -0
- package/dist/reaction/utils/prepareMessagePayloadForCache.d.ts +3 -0
- package/dist/reaction/utils/prepareMessagePayloadForCache.d.ts.map +1 -0
- package/dist/reaction/utils/preparePayloadForCache.d.ts +3 -0
- package/dist/reaction/utils/preparePayloadForCache.d.ts.map +1 -0
- package/dist/report/api/createReport.d.ts +16 -0
- package/dist/report/api/createReport.d.ts.map +1 -0
- package/dist/report/api/deleteReport.d.ts +16 -0
- package/dist/report/api/deleteReport.d.ts.map +1 -0
- package/dist/report/api/index.d.ts +4 -0
- package/dist/report/api/index.d.ts.map +1 -0
- package/dist/report/api/isReportedByMe.d.ts +16 -0
- package/dist/report/api/isReportedByMe.d.ts.map +1 -0
- package/dist/report/constants/referenceTypes.d.ts +24 -0
- package/dist/report/constants/referenceTypes.d.ts.map +1 -0
- package/dist/role/api/getRole.d.ts +32 -0
- package/dist/role/api/getRole.d.ts.map +1 -0
- package/dist/role/api/index.d.ts +3 -0
- package/dist/role/api/index.d.ts.map +1 -0
- package/dist/role/api/queryRoles.d.ts +38 -0
- package/dist/role/api/queryRoles.d.ts.map +1 -0
- package/dist/stream/api/createStream.d.ts +18 -0
- package/dist/stream/api/createStream.d.ts.map +1 -0
- package/dist/stream/api/deleteStream.d.ts +16 -0
- package/dist/stream/api/deleteStream.d.ts.map +1 -0
- package/dist/stream/api/disposeStream.d.ts +17 -0
- package/dist/stream/api/disposeStream.d.ts.map +1 -0
- package/dist/stream/api/getStream.d.ts +32 -0
- package/dist/stream/api/getStream.d.ts.map +1 -0
- package/dist/stream/api/index.d.ts +7 -0
- package/dist/stream/api/index.d.ts.map +1 -0
- package/dist/stream/api/queryStreams.d.ts +39 -0
- package/dist/stream/api/queryStreams.d.ts.map +1 -0
- package/dist/stream/api/updateStream.d.ts +17 -0
- package/dist/stream/api/updateStream.d.ts.map +1 -0
- package/dist/stream/events/index.d.ts +4 -0
- package/dist/stream/events/index.d.ts.map +1 -0
- package/dist/stream/events/onStreamRecorded.d.ts +17 -0
- package/dist/stream/events/onStreamRecorded.d.ts.map +1 -0
- package/dist/stream/events/onStreamStarted.d.ts +17 -0
- package/dist/stream/events/onStreamStarted.d.ts.map +1 -0
- package/dist/stream/events/onStreamStopped.d.ts +17 -0
- package/dist/stream/events/onStreamStopped.d.ts.map +1 -0
- package/dist/user/api/getUser.d.ts +32 -0
- package/dist/user/api/getUser.d.ts.map +1 -0
- package/dist/user/api/getUsers.d.ts +32 -0
- package/dist/user/api/getUsers.d.ts.map +1 -0
- package/dist/user/api/index.d.ts +5 -0
- package/dist/user/api/index.d.ts.map +1 -0
- package/dist/user/api/queryUsers.d.ts +39 -0
- package/dist/user/api/queryUsers.d.ts.map +1 -0
- package/dist/user/api/tests/queryUsers.test.d.ts +2 -0
- package/dist/user/api/tests/queryUsers.test.d.ts.map +1 -0
- package/dist/user/api/updateUser.d.ts +17 -0
- package/dist/user/api/updateUser.d.ts.map +1 -0
- package/dist/user/events/index.d.ts +7 -0
- package/dist/user/events/index.d.ts.map +1 -0
- package/dist/user/events/onUserDeleted.d.ts +17 -0
- package/dist/user/events/onUserDeleted.d.ts.map +1 -0
- package/dist/user/events/onUserFetched.d.ts +17 -0
- package/dist/user/events/onUserFetched.d.ts.map +1 -0
- package/dist/user/events/onUserFlagCleared.d.ts +17 -0
- package/dist/user/events/onUserFlagCleared.d.ts.map +1 -0
- package/dist/user/events/onUserFlagged.d.ts +17 -0
- package/dist/user/events/onUserFlagged.d.ts.map +1 -0
- package/dist/user/events/onUserUnflagged.d.ts +17 -0
- package/dist/user/events/onUserUnflagged.d.ts.map +1 -0
- package/dist/user/events/onUserUpdated.d.ts +17 -0
- package/dist/user/events/onUserUpdated.d.ts.map +1 -0
- package/dist/user/events/utils.d.ts +2 -0
- package/dist/user/events/utils.d.ts.map +1 -0
- package/dist/user/observers/index.d.ts +3 -0
- package/dist/user/observers/index.d.ts.map +1 -0
- package/dist/user/observers/liveUser.d.ts +18 -0
- package/dist/user/observers/liveUser.d.ts.map +1 -0
- package/dist/user/observers/observeUser.d.ts +17 -0
- package/dist/user/observers/observeUser.d.ts.map +1 -0
- package/dist/user/tests/api/getUser.test.d.ts +2 -0
- package/dist/user/tests/api/getUser.test.d.ts.map +1 -0
- package/dist/user/tests/observers/liveUser.test.d.ts +2 -0
- package/dist/user/tests/observers/liveUser.test.d.ts.map +1 -0
- package/dist/utils/constants.d.ts +7 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/env.d.ts +5 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/tests/client.d.ts +6 -0
- package/dist/utils/tests/client.d.ts.map +1 -0
- package/dist/utils/tests/dummy/channel.d.ts +74 -0
- package/dist/utils/tests/dummy/channel.d.ts.map +1 -0
- package/dist/utils/tests/dummy/follow.d.ts +12 -0
- package/dist/utils/tests/dummy/follow.d.ts.map +1 -0
- package/dist/utils/tests/dummy/index.d.ts +11 -0
- package/dist/utils/tests/dummy/index.d.ts.map +1 -0
- package/dist/utils/tests/dummy/message.d.ts +19 -0
- package/dist/utils/tests/dummy/message.d.ts.map +1 -0
- package/dist/utils/tests/dummy/post.d.ts +9 -0
- package/dist/utils/tests/dummy/post.d.ts.map +1 -0
- package/dist/utils/tests/dummy/user.d.ts +15 -0
- package/dist/utils/tests/dummy/user.d.ts.map +1 -0
- package/dist/utils/tests/index.d.ts +4 -0
- package/dist/utils/tests/index.d.ts.map +1 -0
- package/dist/utils/tests/utils.d.ts +4 -0
- package/dist/utils/tests/utils.d.ts.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/jest.config.ts +15 -0
- package/package.json +67 -0
- package/rollup.config.js +84 -0
- package/src/@types/core/cache.ts +74 -0
- package/src/@types/core/errors.ts +39 -0
- package/src/@types/core/events.ts +135 -0
- package/src/@types/core/live.ts +34 -0
- package/src/@types/core/model.ts +62 -0
- package/src/@types/core/paging.ts +60 -0
- package/src/@types/core/payload.ts +133 -0
- package/src/@types/core/permissions.ts +74 -0
- package/src/@types/core/query.ts +63 -0
- package/src/@types/core/transport.ts +55 -0
- package/src/@types/domains/category.ts +13 -0
- package/src/@types/domains/channel.ts +95 -0
- package/src/@types/domains/client.ts +78 -0
- package/src/@types/domains/comment.ts +58 -0
- package/src/@types/domains/community.ts +59 -0
- package/src/@types/domains/content.ts +79 -0
- package/src/@types/domains/feed.ts +15 -0
- package/src/@types/domains/file.ts +80 -0
- package/src/@types/domains/follow.ts +53 -0
- package/src/@types/domains/group.ts +36 -0
- package/src/@types/domains/mention.ts +27 -0
- package/src/@types/domains/message.ts +60 -0
- package/src/@types/domains/partials.ts +56 -0
- package/src/@types/domains/poll.ts +32 -0
- package/src/@types/domains/post.ts +77 -0
- package/src/@types/domains/reaction.ts +46 -0
- package/src/@types/domains/stream.ts +67 -0
- package/src/@types/domains/user.ts +28 -0
- package/src/@types/global.ts +30 -0
- package/src/@types/index.ts +38 -0
- package/src/@types/mqtt.d.ts +3 -0
- package/src/cache/api/backupCache.ts +49 -0
- package/src/cache/api/disableCache.ts +23 -0
- package/src/cache/api/dropFromCache.ts +41 -0
- package/src/cache/api/enableCache.ts +29 -0
- package/src/cache/api/index.ts +24 -0
- package/src/cache/api/ingestInCache.ts +32 -0
- package/src/cache/api/isInTombstone.ts +41 -0
- package/src/cache/api/mergeInCache.ts +43 -0
- package/src/cache/api/pullFromCache.ts +31 -0
- package/src/cache/api/pushToCache.ts +42 -0
- package/src/cache/api/pushToTombstone.ts +33 -0
- package/src/cache/api/queryCache.ts +34 -0
- package/src/cache/api/restoreCache.ts +44 -0
- package/src/cache/api/snipeIdFromCollection.ts +48 -0
- package/src/cache/api/upsertInCache.ts +37 -0
- package/src/cache/api/wipeCache.ts +34 -0
- package/src/cache/utils/index.ts +96 -0
- package/src/category/api/getCategory.ts +70 -0
- package/src/category/api/index.ts +2 -0
- package/src/category/api/queryCategories.ts +109 -0
- package/src/channel/api/addChannelMembers.ts +53 -0
- package/src/channel/api/addChannelMembersRole.ts +44 -0
- package/src/channel/api/banChannelMembers.ts +45 -0
- package/src/channel/api/createChannel.ts +51 -0
- package/src/channel/api/deleteChannel.ts +33 -0
- package/src/channel/api/getChannel.ts +90 -0
- package/src/channel/api/getChannels.ts +80 -0
- package/src/channel/api/index.ts +21 -0
- package/src/channel/api/joinChannel.ts +38 -0
- package/src/channel/api/leaveChannel.ts +38 -0
- package/src/channel/api/queryChannelMembers.ts +124 -0
- package/src/channel/api/queryChannels.ts +121 -0
- package/src/channel/api/removeChannelMembers.ts +45 -0
- package/src/channel/api/removeChannelMembersRole.ts +44 -0
- package/src/channel/api/tests/addChannelMembers.test.ts +95 -0
- package/src/channel/api/tests/getChannel.test.ts +108 -0
- package/src/channel/api/tests/queryChannelMembers.test.ts +115 -0
- package/src/channel/api/tests/queryChannels.test.ts +101 -0
- package/src/channel/api/unbanChannelMembers.ts +45 -0
- package/src/channel/api/updateChannel.ts +45 -0
- package/src/channel/events/index.ts +13 -0
- package/src/channel/events/onChannelCreated.ts +34 -0
- package/src/channel/events/onChannelDeleted.ts +34 -0
- package/src/channel/events/onChannelJoined.ts +34 -0
- package/src/channel/events/onChannelLeft.ts +34 -0
- package/src/channel/events/onChannelMemberAdded.ts +36 -0
- package/src/channel/events/onChannelMemberBanned.ts +36 -0
- package/src/channel/events/onChannelMemberRemoved.ts +36 -0
- package/src/channel/events/onChannelMemberUnbanned.ts +36 -0
- package/src/channel/events/onChannelMuted.ts +34 -0
- package/src/channel/events/onChannelUpdated.ts +34 -0
- package/src/channel/events/tests/onChannelMemberBanned.test.ts +58 -0
- package/src/channel/events/tests/onChannelMemberUnbanned.test.ts +58 -0
- package/src/channel/observers/index.ts +4 -0
- package/src/channel/observers/liveChannelMembers.ts +183 -0
- package/src/channel/observers/liveChannels.ts +184 -0
- package/src/channel/observers/observeChannel.ts +76 -0
- package/src/channel/observers/observeChannels.ts +61 -0
- package/src/channel/observers/tests/liveChannelMembers.test.ts +205 -0
- package/src/channel/observers/tests/liveChannels.test.ts +245 -0
- package/src/channel/utils/index.ts +1 -0
- package/src/channel/utils/prepareChannelPayload.ts +31 -0
- package/src/channel/utils/tests/prepareChannelPayload.test.ts +120 -0
- package/src/client/api/activeClient.ts +33 -0
- package/src/client/api/activeUser.ts +26 -0
- package/src/client/api/connectClient.ts +89 -0
- package/src/client/api/createClient.ts +83 -0
- package/src/client/api/disconnectClient.ts +35 -0
- package/src/client/api/getChatSettings.ts +22 -0
- package/src/client/api/getFeedSettings.ts +29 -0
- package/src/client/api/getSocialSettings.ts +24 -0
- package/src/client/api/getToken.ts +41 -0
- package/src/client/api/index.ts +10 -0
- package/src/client/api/isConnected.ts +24 -0
- package/src/client/events/index.ts +4 -0
- package/src/client/events/onClientBanned.ts +22 -0
- package/src/client/events/onClientDisconnected.ts +22 -0
- package/src/client/events/onConnectionError.ts +46 -0
- package/src/client/tests/connectClient.test.ts +31 -0
- package/src/client/utils/endpoints.ts +14 -0
- package/src/comment/api/createComment.ts +46 -0
- package/src/comment/api/deleteComment.ts +60 -0
- package/src/comment/api/getComment.ts +82 -0
- package/src/comment/api/getComments.ts +76 -0
- package/src/comment/api/index.ts +7 -0
- package/src/comment/api/queryComments.ts +115 -0
- package/src/comment/api/updateComment.ts +45 -0
- package/src/comment/events/index.ts +9 -0
- package/src/comment/events/onCommentCreated.ts +19 -0
- package/src/comment/events/onCommentDeleted.ts +19 -0
- package/src/comment/events/onCommentFlagged.ts +19 -0
- package/src/comment/events/onCommentReactionAdded.ts +48 -0
- package/src/comment/events/onCommentReactionRemoved.ts +48 -0
- package/src/comment/events/onCommentUnflagged.ts +19 -0
- package/src/comment/events/onCommentUpdated.ts +19 -0
- package/src/comment/events/utils.ts +38 -0
- package/src/comment/observers/index.ts +3 -0
- package/src/comment/observers/liveComments.ts +172 -0
- package/src/comment/observers/observeComment.ts +96 -0
- package/src/comment/observers/observeComments.ts +74 -0
- package/src/community/api/addCommunityMembers.ts +42 -0
- package/src/community/api/addCommunityMembersRoles.ts +42 -0
- package/src/community/api/createCommunity.ts +59 -0
- package/src/community/api/deleteCommunity.ts +33 -0
- package/src/community/api/getCommunities.ts +81 -0
- package/src/community/api/getCommunity.ts +75 -0
- package/src/community/api/getRecommendedCommunities.ts +90 -0
- package/src/community/api/getTopTrendingCommunities.ts +90 -0
- package/src/community/api/index.ts +19 -0
- package/src/community/api/joinCommunity.ts +41 -0
- package/src/community/api/leaveCommunity.ts +41 -0
- package/src/community/api/queryCommunities.ts +99 -0
- package/src/community/api/queryCommunityMembers.ts +76 -0
- package/src/community/api/removeCommunityMembers.ts +42 -0
- package/src/community/api/removeCommunityMembersRoles.ts +42 -0
- package/src/community/api/updateCommunity.ts +51 -0
- package/src/community/events/index.ts +11 -0
- package/src/community/events/onCommunityCreated.ts +19 -0
- package/src/community/events/onCommunityDeleted.ts +19 -0
- package/src/community/events/onCommunityJoined.ts +20 -0
- package/src/community/events/onCommunityLeft.ts +20 -0
- package/src/community/events/onCommunityUpdated.ts +19 -0
- package/src/community/events/onCommunityUserAdded.ts +20 -0
- package/src/community/events/onCommunityUserBanned.ts +20 -0
- package/src/community/events/onCommunityUserRemoved.ts +20 -0
- package/src/community/events/onCommunityUserUnbanned.ts +20 -0
- package/src/community/events/utils.ts +108 -0
- package/src/community/observers/index.ts +1 -0
- package/src/community/observers/observeCommunity.ts +104 -0
- package/src/community/utils/index.ts +1 -0
- package/src/community/utils/payload.ts +44 -0
- package/src/core/debug.ts +26 -0
- package/src/core/device.ts +38 -0
- package/src/core/errors.ts +89 -0
- package/src/core/events.ts +132 -0
- package/src/core/microtasks.ts +28 -0
- package/src/core/model/idResolvers.ts +41 -0
- package/src/core/model/identifyModel.ts +77 -0
- package/src/core/model/index.ts +29 -0
- package/src/core/query/filtering.ts +74 -0
- package/src/core/query/index.ts +4 -0
- package/src/core/query/paging.ts +166 -0
- package/src/core/query/query.ts +275 -0
- package/src/core/query/sorting.ts +56 -0
- package/src/core/subscription.ts +128 -0
- package/src/core/tests/query/filtering.test.ts +11 -0
- package/src/core/tests/query/query/runQuery.test.ts +182 -0
- package/src/core/tests/query/query.test.ts +111 -0
- package/src/core/tests/subscription.test.ts +15 -0
- package/src/core/transports/http.ts +51 -0
- package/src/core/transports/index.ts +3 -0
- package/src/core/transports/mqtt.ts +160 -0
- package/src/core/transports/test/http.test.ts +83 -0
- package/src/core/transports/utils.ts +26 -0
- package/src/core/transports/ws.ts +60 -0
- package/src/core/uuid.ts +3 -0
- package/src/external/api/createUserToken.ts +43 -0
- package/src/external/api/index.ts +1 -0
- package/src/feed/api/index.ts +1 -0
- package/src/feed/api/queryGlobalFeed.ts +110 -0
- package/src/file/api/createFile.ts +54 -0
- package/src/file/api/createImage.ts +58 -0
- package/src/file/api/createVideo.ts +64 -0
- package/src/file/api/deleteFile.ts +31 -0
- package/src/file/api/fileUrlWithSize.ts +13 -0
- package/src/file/api/getFile.ts +67 -0
- package/src/file/api/index.ts +6 -0
- package/src/file/observers/index.ts +1 -0
- package/src/file/observers/observeFile.ts +49 -0
- package/src/follow/api/acceptFollower.ts +34 -0
- package/src/follow/api/declineFollower.ts +34 -0
- package/src/follow/api/follow.ts +41 -0
- package/src/follow/api/getFollowInfo.ts +86 -0
- package/src/follow/api/index.ts +8 -0
- package/src/follow/api/queryFollowers.ts +38 -0
- package/src/follow/api/queryFollowings.ts +38 -0
- package/src/follow/api/unfollow.ts +34 -0
- package/src/follow/api/utils.ts +86 -0
- package/src/follow/events/index.ts +10 -0
- package/src/follow/events/onFollowInfoUpdated.ts +45 -0
- package/src/follow/events/onFollowRequestAccepted.ts +20 -0
- package/src/follow/events/onFollowRequestCanceled.ts +20 -0
- package/src/follow/events/onFollowRequestDeclined.ts +20 -0
- package/src/follow/events/onFollowerDeleted.ts +20 -0
- package/src/follow/events/onFollowerRequested.ts +20 -0
- package/src/follow/events/onUserFollowed.ts +19 -0
- package/src/follow/events/onUserUnfollowed.ts +20 -0
- package/src/follow/events/utils.ts +36 -0
- package/src/follow/observers/index.ts +6 -0
- package/src/follow/observers/liveFollowers.ts +149 -0
- package/src/follow/observers/liveFollowings.ts +149 -0
- package/src/follow/observers/observeFollowInfo.ts +64 -0
- package/src/follow/observers/observeFollowers.ts +77 -0
- package/src/follow/observers/observeFollowings.ts +77 -0
- package/src/follow/tests/observers/liveFollowers.test.ts +240 -0
- package/src/follow/tests/observers/liveFollowings.test.ts +239 -0
- package/src/index.ts +70 -0
- package/src/message/api/createMessage.ts +118 -0
- package/src/message/api/deleteMessage.ts +77 -0
- package/src/message/api/getMessage.ts +99 -0
- package/src/message/api/getMessages.ts +79 -0
- package/src/message/api/index.ts +6 -0
- package/src/message/api/queryMessages.ts +115 -0
- package/src/message/api/tests/createMessage.test.ts +76 -0
- package/src/message/api/updateMessage.ts +92 -0
- package/src/message/events/index.ts +4 -0
- package/src/message/events/onMessageCreated.ts +30 -0
- package/src/message/events/onMessageDeleted.ts +30 -0
- package/src/message/events/onMessageFetched.ts +30 -0
- package/src/message/events/onMessageUpdated.ts +38 -0
- package/src/message/observers/index.ts +4 -0
- package/src/message/observers/liveMessage.ts +100 -0
- package/src/message/observers/liveMessages.ts +143 -0
- package/src/message/observers/observeMessage.ts +72 -0
- package/src/message/observers/observeMessages.ts +57 -0
- package/src/message/tests/api/getMessage.test.ts +96 -0
- package/src/message/tests/observers/liveMessage.test.ts +248 -0
- package/src/message/tests/observers/liveMessages.test.ts +339 -0
- package/src/poll/api/closePoll.ts +42 -0
- package/src/poll/api/createPoll.ts +45 -0
- package/src/poll/api/deletePoll.ts +39 -0
- package/src/poll/api/getPoll.ts +64 -0
- package/src/poll/api/index.ts +7 -0
- package/src/poll/api/votePoll.ts +44 -0
- package/src/poll/events/index.ts +2 -0
- package/src/poll/events/onPollDeleted.ts +31 -0
- package/src/poll/events/onPollUpdated.ts +31 -0
- package/src/poll/observers/index.ts +1 -0
- package/src/poll/observers/observePoll.ts +67 -0
- package/src/post/api/approvePost.ts +48 -0
- package/src/post/api/createPost.ts +53 -0
- package/src/post/api/declinePost.ts +48 -0
- package/src/post/api/deletePost.ts +64 -0
- package/src/post/api/getPost.ts +83 -0
- package/src/post/api/getPosts.ts +74 -0
- package/src/post/api/index.ts +10 -0
- package/src/post/api/queryPosts.ts +104 -0
- package/src/post/api/updatePost.ts +51 -0
- package/src/post/events/index.ts +12 -0
- package/src/post/events/onPostApproved.ts +19 -0
- package/src/post/events/onPostCreated.ts +19 -0
- package/src/post/events/onPostDeclined.ts +19 -0
- package/src/post/events/onPostDeleted.ts +19 -0
- package/src/post/events/onPostFlagged.ts +19 -0
- package/src/post/events/onPostReactionAdded.ts +42 -0
- package/src/post/events/onPostReactionRemoved.ts +42 -0
- package/src/post/events/onPostUnflagged.ts +19 -0
- package/src/post/events/onPostUpdated.ts +19 -0
- package/src/post/events/utils.ts +44 -0
- package/src/post/observers/index.ts +3 -0
- package/src/post/observers/livePosts.ts +171 -0
- package/src/post/observers/observePost.ts +100 -0
- package/src/post/observers/observePosts.ts +87 -0
- package/src/post/tests/api/getPost.test.ts +88 -0
- package/src/post/tests/api/queryPosts.test.ts +23 -0
- package/src/reaction/api/addReaction.ts +99 -0
- package/src/reaction/api/index.ts +3 -0
- package/src/reaction/api/queryReactions.ts +52 -0
- package/src/reaction/api/removeReaction.ts +97 -0
- package/src/reaction/events/index.ts +5 -0
- package/src/reaction/events/onReactionAdded.ts +72 -0
- package/src/reaction/events/onReactionRemoved.ts +68 -0
- package/src/reaction/events/onReactorAdded.ts +80 -0
- package/src/reaction/events/onReactorRemoved.ts +85 -0
- package/src/reaction/observers/index.ts +1 -0
- package/src/reaction/observers/liveReactions.ts +142 -0
- package/src/reaction/utils/dispatchReactable.ts +17 -0
- package/src/reaction/utils/fetchReference.ts +15 -0
- package/src/reaction/utils/index.ts +4 -0
- package/src/reaction/utils/prepareMessagePayloadForCache.ts +40 -0
- package/src/reaction/utils/preparePayloadForCache.ts +53 -0
- package/src/report/api/createReport.ts +50 -0
- package/src/report/api/deleteReport.ts +50 -0
- package/src/report/api/index.ts +4 -0
- package/src/report/api/isReportedByMe.ts +37 -0
- package/src/report/constants/referenceTypes.ts +22 -0
- package/src/role/api/getRole.ts +62 -0
- package/src/role/api/index.ts +2 -0
- package/src/role/api/queryRoles.ts +74 -0
- package/src/stream/api/createStream.ts +36 -0
- package/src/stream/api/deleteStream.ts +41 -0
- package/src/stream/api/disposeStream.ts +39 -0
- package/src/stream/api/getStream.ts +70 -0
- package/src/stream/api/index.ts +8 -0
- package/src/stream/api/queryStreams.ts +77 -0
- package/src/stream/api/updateStream.ts +41 -0
- package/src/stream/events/index.ts +3 -0
- package/src/stream/events/onStreamRecorded.ts +35 -0
- package/src/stream/events/onStreamStarted.ts +35 -0
- package/src/stream/events/onStreamStopped.ts +30 -0
- package/src/user/api/getUser.ts +85 -0
- package/src/user/api/getUsers.ts +77 -0
- package/src/user/api/index.ts +5 -0
- package/src/user/api/queryUsers.ts +129 -0
- package/src/user/api/tests/queryUsers.test.ts +124 -0
- package/src/user/api/updateUser.ts +55 -0
- package/src/user/events/index.ts +7 -0
- package/src/user/events/onUserDeleted.ts +19 -0
- package/src/user/events/onUserFetched.ts +19 -0
- package/src/user/events/onUserFlagCleared.ts +19 -0
- package/src/user/events/onUserFlagged.ts +19 -0
- package/src/user/events/onUserUnflagged.ts +19 -0
- package/src/user/events/onUserUpdated.ts +19 -0
- package/src/user/events/utils.ts +21 -0
- package/src/user/observers/index.ts +2 -0
- package/src/user/observers/liveUser.ts +89 -0
- package/src/user/observers/observeUser.ts +70 -0
- package/src/user/tests/api/getUser.test.ts +112 -0
- package/src/user/tests/observers/liveUser.test.ts +224 -0
- package/src/utils/constants.ts +8 -0
- package/src/utils/env.ts +12 -0
- package/src/utils/tests/client.ts +33 -0
- package/src/utils/tests/dummy/channel.ts +182 -0
- package/src/utils/tests/dummy/follow.ts +60 -0
- package/src/utils/tests/dummy/index.ts +8 -0
- package/src/utils/tests/dummy/message.ts +36 -0
- package/src/utils/tests/dummy/post.ts +31 -0
- package/src/utils/tests/dummy/user.ts +37 -0
- package/src/utils/tests/index.ts +3 -0
- package/src/utils/tests/utils.ts +15 -0
- package/src/version.ts +4 -0
- package/tsconfig.json +30 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
2
|
+
let tasks: Function[] = [];
|
|
3
|
+
let timer: NodeJS.Timeout;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Add a function to run just before the next tick
|
|
7
|
+
*
|
|
8
|
+
* @param task function to schedule for later execution
|
|
9
|
+
*/
|
|
10
|
+
export const scheduleTask = (task: Function) => {
|
|
11
|
+
clearTimeout(timer);
|
|
12
|
+
tasks.push(task);
|
|
13
|
+
|
|
14
|
+
timer = setTimeout(() => {
|
|
15
|
+
tasks.forEach(fn => fn());
|
|
16
|
+
tasks = [];
|
|
17
|
+
}, 0);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Cancel the scheduling operation
|
|
22
|
+
*
|
|
23
|
+
* @param task function to be removed from later execution
|
|
24
|
+
*/
|
|
25
|
+
export const cancelTask = (task: Function) => {
|
|
26
|
+
tasks = tasks.filter(fn => fn !== task);
|
|
27
|
+
if (!tasks.length) clearTimeout(timer);
|
|
28
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manually computed type which links each key with a function
|
|
3
|
+
* used to return the object's unique id. The type is computed
|
|
4
|
+
* to avoid using any and give some typing security at the
|
|
5
|
+
* resolver's level.
|
|
6
|
+
*/
|
|
7
|
+
type Resolvers<T extends Amity.Domain[] = Amity.Domain[]> = {
|
|
8
|
+
[K in T[number]]: (model: Amity.Minimal[K]) => string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/** @hidden */
|
|
12
|
+
const idResolvers: Resolvers = {
|
|
13
|
+
user: ({ userId }) => userId,
|
|
14
|
+
file: ({ fileId }) => fileId,
|
|
15
|
+
role: ({ roleId }) => roleId,
|
|
16
|
+
|
|
17
|
+
channel: ({ channelId }) => channelId,
|
|
18
|
+
channelUsers: ({ channelId, userId }) => `${channelId}#${userId}`,
|
|
19
|
+
message: ({ messageId }) => messageId,
|
|
20
|
+
|
|
21
|
+
community: ({ communityId }) => communityId,
|
|
22
|
+
category: ({ categoryId }) => categoryId,
|
|
23
|
+
communityUsers: ({ communityId, userId }) => `${communityId}#${userId}`,
|
|
24
|
+
post: ({ postId }) => postId,
|
|
25
|
+
comment: ({ commentId }) => commentId,
|
|
26
|
+
poll: ({ pollId }) => pollId,
|
|
27
|
+
reaction: ({ reactionId }) => reactionId,
|
|
28
|
+
|
|
29
|
+
stream: ({ streamId }) => streamId,
|
|
30
|
+
|
|
31
|
+
follow: ({ from, to }) => `${from}#${to}`,
|
|
32
|
+
followCount: ({ userId }) => userId,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Retrieve the id resolver matching a domain name
|
|
37
|
+
*
|
|
38
|
+
* @param name the domain name for the resolve
|
|
39
|
+
* @returns an idResolver function for the given domain name
|
|
40
|
+
*/
|
|
41
|
+
export const getResolver = <T extends Amity.Domain>(name: T) => idResolvers[name];
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manually computed type which links each key with array
|
|
3
|
+
* of matching keys as values. The type is computed rather
|
|
4
|
+
* than letting string[] to help identifying mistakes while
|
|
5
|
+
* adding new models.
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
type Criterias<T extends Amity.Domain[] = Amity.Domain[]> = {
|
|
9
|
+
[K in T[number]]: (keyof Amity.Model[K])[];
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Identification criterias
|
|
14
|
+
*
|
|
15
|
+
* As key, the name of the identified model ;
|
|
16
|
+
* As value, the list of properties to consider a given model as of type
|
|
17
|
+
*
|
|
18
|
+
* Used as source of truth for {@link identifyModel}
|
|
19
|
+
*
|
|
20
|
+
* @hidden
|
|
21
|
+
*/
|
|
22
|
+
const CRITERIAS: Criterias = {
|
|
23
|
+
file: ['fileId', 'attributes'],
|
|
24
|
+
user: ['userId', 'avatarFileId'],
|
|
25
|
+
role: ['roleId'],
|
|
26
|
+
channel: ['channelId', 'rateLimit'],
|
|
27
|
+
channelUsers: ['channelId', 'userId', 'membership'],
|
|
28
|
+
message: ['messageId'],
|
|
29
|
+
community: ['communityId', 'postSetting'],
|
|
30
|
+
category: ['categoryId'],
|
|
31
|
+
communityUsers: ['userId', 'communityId', 'communityMembership'],
|
|
32
|
+
post: ['postId', 'feedId'],
|
|
33
|
+
comment: ['commentId', 'referenceId'],
|
|
34
|
+
poll: ['pollId'],
|
|
35
|
+
reaction: ['reactionId'],
|
|
36
|
+
stream: ['streamId'],
|
|
37
|
+
follow: ['from', 'to'],
|
|
38
|
+
followCount: ['userId', 'followerCount'],
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/** @hidden */
|
|
42
|
+
const hasKeys = (object: Record<string, unknown>, needles: string[]) => {
|
|
43
|
+
const haystack = Object.keys(object);
|
|
44
|
+
return needles.every(needle => haystack.includes(needle));
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Finds the name of the store for a given unknown model
|
|
49
|
+
*
|
|
50
|
+
* @param model one of the {@link Amity.Model} to identify
|
|
51
|
+
* @returns the name of the corresponding store
|
|
52
|
+
*/
|
|
53
|
+
export const identifyModel = (model: Record<string, unknown>) => {
|
|
54
|
+
// we cannot avoid "as" in here because Object.entries does not
|
|
55
|
+
// allow anything else than "string" as key in the iterator type
|
|
56
|
+
const criterias = Object.entries(CRITERIAS) as [Amity.Domain, string[]][];
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
58
|
+
return criterias.find(([_, keys]) => hasKeys(model, keys))?.[0];
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/*
|
|
62
|
+
* Identify the modal key for a model
|
|
63
|
+
* Used to get args for optimistic updates
|
|
64
|
+
* Example: createMessage: get messageId on optimistic message creation
|
|
65
|
+
*
|
|
66
|
+
* @param model to be recognized
|
|
67
|
+
* @returns model key array if one if found or undefined
|
|
68
|
+
*/
|
|
69
|
+
export const identifyModelKey = (model: Record<string, unknown>): string | undefined => {
|
|
70
|
+
const modalKey = identifyModel(model);
|
|
71
|
+
|
|
72
|
+
if (!modalKey) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return CRITERIAS[modalKey]?.[0];
|
|
77
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export * from './idResolvers';
|
|
2
|
+
export * from './identifyModel';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A map of v3 response keys to a store name.
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export const PAYLOAD2MODEL: Record<string, Amity.Domain> = {
|
|
9
|
+
users: 'user',
|
|
10
|
+
files: 'file',
|
|
11
|
+
roles: 'role',
|
|
12
|
+
|
|
13
|
+
channels: 'channel',
|
|
14
|
+
channelUsers: 'channelUsers',
|
|
15
|
+
messages: 'message',
|
|
16
|
+
|
|
17
|
+
communities: 'community',
|
|
18
|
+
categories: 'category',
|
|
19
|
+
communityUsers: 'communityUsers',
|
|
20
|
+
posts: 'post',
|
|
21
|
+
postChildren: 'post',
|
|
22
|
+
comments: 'comment',
|
|
23
|
+
polls: 'poll',
|
|
24
|
+
reactions: 'reaction',
|
|
25
|
+
videoStreamings: 'stream',
|
|
26
|
+
|
|
27
|
+
follows: 'follow',
|
|
28
|
+
followCounts: 'followCount',
|
|
29
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { getResolver } from '~/core/model';
|
|
2
|
+
import { pullFromCache } from '~/cache/api';
|
|
3
|
+
// Note:
|
|
4
|
+
// this file should contain a suite of filtering utilities to help the
|
|
5
|
+
// local version of the query functions.
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Filter a given collection with strict equality against a param
|
|
9
|
+
*
|
|
10
|
+
* @param collection the collection to filter
|
|
11
|
+
* @param key the key of the collection's items to challenge
|
|
12
|
+
* @param value the expected value
|
|
13
|
+
* @returns a filtered collection with items only matching the criteria
|
|
14
|
+
*
|
|
15
|
+
* @hidden
|
|
16
|
+
*/
|
|
17
|
+
export const filterByPropEquality = <T = Record<string, unknown>>(
|
|
18
|
+
collection: T[],
|
|
19
|
+
key: keyof T,
|
|
20
|
+
value: any,
|
|
21
|
+
) => (value !== undefined ? collection.filter(item => item[key] === value) : collection);
|
|
22
|
+
|
|
23
|
+
export const filterByPropInclusion = <T = Record<string, unknown>>(
|
|
24
|
+
collection: T[],
|
|
25
|
+
key: keyof T,
|
|
26
|
+
value: any[] | undefined,
|
|
27
|
+
) => (value !== undefined ? collection.filter(item => value.includes(item[key])) : collection);
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Filter a channel collection by membership of the userId
|
|
31
|
+
*
|
|
32
|
+
* @param collection the channel collection to filter
|
|
33
|
+
* @param membership the membership to be filtered by
|
|
34
|
+
* @param userId user id to be filtered by
|
|
35
|
+
* @returns a filtered collection with items only matching the criteria
|
|
36
|
+
*
|
|
37
|
+
* @hidden
|
|
38
|
+
*/
|
|
39
|
+
export const filterByChannelMembership = (
|
|
40
|
+
collection: Amity.Channel[],
|
|
41
|
+
membership: Amity.ChannelLiveCollection['membership'],
|
|
42
|
+
userId: Amity.Membership<'channel'>['userId'],
|
|
43
|
+
): Amity.Channel[] => {
|
|
44
|
+
if (membership === 'all') {
|
|
45
|
+
return collection;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return collection.filter(c => {
|
|
49
|
+
// get resolver for the channel by user
|
|
50
|
+
const channelUserCacheKey = getResolver('channelUsers')({
|
|
51
|
+
channelId: c.channelId,
|
|
52
|
+
userId,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
const channelUser = pullFromCache<Amity.Membership<'channel'>>([
|
|
56
|
+
'channelUsers',
|
|
57
|
+
'get',
|
|
58
|
+
channelUserCacheKey,
|
|
59
|
+
])?.data;
|
|
60
|
+
|
|
61
|
+
// if channel user is defined for user, user is a member
|
|
62
|
+
if (membership === 'member' && channelUser) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// if channel user by user id not found, user is not a member of that
|
|
67
|
+
// channel
|
|
68
|
+
if (membership === 'notMember' && !channelUser) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return false;
|
|
73
|
+
});
|
|
74
|
+
};
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { encode, decode } from 'js-base64';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Type guard to find if the a given decoded backend token uses "skip/limit" pagination style
|
|
5
|
+
*
|
|
6
|
+
* @param json any json object as extracted from the backend
|
|
7
|
+
* @returns success boolean if the token has either "skip" or "limit" props
|
|
8
|
+
*
|
|
9
|
+
* @hidden
|
|
10
|
+
*/
|
|
11
|
+
export const isSkipLimit = (json: Record<string, unknown>): json is Amity.SkipLimitPagination =>
|
|
12
|
+
['skip', 'limit'].some(prop => prop in json);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Type guard to find if the a given decoded backend token uses "after/before" pagination style
|
|
16
|
+
*
|
|
17
|
+
* @param json any json object as extracted from the backend
|
|
18
|
+
* @returns success boolean if the token has either "after" or "before" props
|
|
19
|
+
*
|
|
20
|
+
* @hidden
|
|
21
|
+
*/
|
|
22
|
+
export const isAfterBefore = (json: Record<string, unknown>): json is Amity.AfterBeforePagination =>
|
|
23
|
+
['after', 'before', 'first', 'last', 'limit'].some(prop => prop in json);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Type guard to find if the a given decoded backend token uses v4 or newer "after/before" pagination style
|
|
27
|
+
*
|
|
28
|
+
* @param json any json object as extracted from the backend
|
|
29
|
+
* @returns success boolean if the token has either "after" or "before" props
|
|
30
|
+
*
|
|
31
|
+
* @hidden
|
|
32
|
+
*/
|
|
33
|
+
export const isAfterBeforeRaw = (
|
|
34
|
+
json: Record<string, unknown>,
|
|
35
|
+
): json is Amity.AfterBeforeRawPagination => 'limit' in json;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Type guard to find if the a given object is wrapped around Amity.Paged<>
|
|
39
|
+
*
|
|
40
|
+
* @param payload any object as passed from query functions
|
|
41
|
+
* @returns success boolean if the object is an object shaped as { data: T[] } & Amity.Pages
|
|
42
|
+
*
|
|
43
|
+
* @hidden
|
|
44
|
+
*/
|
|
45
|
+
export const isPaged = <T extends unknown>(payload: any): payload is Amity.Paged<T, any> => {
|
|
46
|
+
return (
|
|
47
|
+
payload?.hasOwnProperty('data') &&
|
|
48
|
+
payload?.hasOwnProperty('nextPage') &&
|
|
49
|
+
payload?.hasOwnProperty('prevPage')
|
|
50
|
+
);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Converts a paging object into a b64 string token
|
|
55
|
+
*
|
|
56
|
+
* @param paging the sdk-friendly paging object
|
|
57
|
+
* @param style the style of token to produce
|
|
58
|
+
* @returns a backend's b64 encoded token
|
|
59
|
+
*
|
|
60
|
+
* @hidden
|
|
61
|
+
*/
|
|
62
|
+
export const toToken = (
|
|
63
|
+
paging: Amity.Page | Amity.PageRaw | undefined,
|
|
64
|
+
style: Amity.PaginationStyles,
|
|
65
|
+
): Amity.Token | undefined => {
|
|
66
|
+
if (!paging || !Object.keys(paging).length) return;
|
|
67
|
+
|
|
68
|
+
let payload = {};
|
|
69
|
+
|
|
70
|
+
// TODO: refactor this clean
|
|
71
|
+
if (style === 'skiplimit') {
|
|
72
|
+
payload = {
|
|
73
|
+
skip: paging.after ?? 0,
|
|
74
|
+
limit: paging.limit,
|
|
75
|
+
};
|
|
76
|
+
} else if (style === 'afterbefore' && isAfterBefore(paging)) {
|
|
77
|
+
/*
|
|
78
|
+
Caution: this testing style is only valid because
|
|
79
|
+
our backend expects nothing else than a number as
|
|
80
|
+
"before" or "after" value. if that would change,
|
|
81
|
+
we'd need to move toward a more simple: `!paging.before`
|
|
82
|
+
*/
|
|
83
|
+
if (!Number.isNaN(Number(paging?.before!))) {
|
|
84
|
+
payload = {
|
|
85
|
+
before: paging.before,
|
|
86
|
+
last: paging.limit,
|
|
87
|
+
};
|
|
88
|
+
} else if (!Number.isNaN(Number(paging?.after!))) {
|
|
89
|
+
payload = {
|
|
90
|
+
after: paging.after,
|
|
91
|
+
first: paging.limit,
|
|
92
|
+
};
|
|
93
|
+
} else if (!Number.isNaN(Number(paging?.limit!))) {
|
|
94
|
+
payload = {
|
|
95
|
+
last: paging.limit,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
} else if (style === 'afterbeforeraw') {
|
|
99
|
+
payload = paging;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// avoid sending {} as it seems backend flips when we do
|
|
103
|
+
if (!Object.keys(payload).length) return;
|
|
104
|
+
|
|
105
|
+
// don't try catch, let it throw
|
|
106
|
+
return encode(JSON.stringify(payload));
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Converts a b64 string token into a paging object
|
|
111
|
+
*
|
|
112
|
+
* @param token the backend's b64 encoded token
|
|
113
|
+
* @returns a sdk-friendly paging object
|
|
114
|
+
*
|
|
115
|
+
* @hidden
|
|
116
|
+
*/
|
|
117
|
+
export const toPage = (token?: Amity.Token): Amity.Page | undefined => {
|
|
118
|
+
if (!token) return undefined;
|
|
119
|
+
|
|
120
|
+
// don't try catch, let it throw
|
|
121
|
+
const json = JSON.parse(decode(token));
|
|
122
|
+
|
|
123
|
+
if (isSkipLimit(json)) {
|
|
124
|
+
return {
|
|
125
|
+
after: json.skip,
|
|
126
|
+
limit: json.limit!,
|
|
127
|
+
} as Amity.NextPage<number>;
|
|
128
|
+
}
|
|
129
|
+
if (isAfterBefore(json)) {
|
|
130
|
+
if ('before' in json) {
|
|
131
|
+
return {
|
|
132
|
+
before: json.before,
|
|
133
|
+
limit: json.last,
|
|
134
|
+
} as Amity.PrevPage<number>;
|
|
135
|
+
}
|
|
136
|
+
if ('after' in json) {
|
|
137
|
+
return {
|
|
138
|
+
after: json.after,
|
|
139
|
+
limit: json.first,
|
|
140
|
+
} as Amity.NextPage<number>;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return undefined;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Converts a b64 string token into a paging object
|
|
149
|
+
*
|
|
150
|
+
* @param token the backend's b64 encoded token
|
|
151
|
+
* @returns a sdk-friendly paging object
|
|
152
|
+
*
|
|
153
|
+
* @hidden
|
|
154
|
+
*/
|
|
155
|
+
export const toPageRaw = (token?: Amity.Token): Amity.PageRaw | undefined => {
|
|
156
|
+
if (!token) return undefined;
|
|
157
|
+
|
|
158
|
+
// don't try catch, let it throw
|
|
159
|
+
const json = JSON.parse(decode(token));
|
|
160
|
+
|
|
161
|
+
if (isAfterBeforeRaw(json)) {
|
|
162
|
+
return json as Amity.PageRaw;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return undefined;
|
|
166
|
+
};
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/* eslint-disable no-use-before-define */
|
|
2
|
+
import { isPaged } from './paging';
|
|
3
|
+
import { identifyModelKey } from '~/core/model';
|
|
4
|
+
|
|
5
|
+
import { CACHE_LIFESPAN } from '~/cache/utils';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Type guard to check and cast that a given async function is has the ".locally" property
|
|
9
|
+
*
|
|
10
|
+
* @param func any SDK APi function
|
|
11
|
+
* @returns success boolean if the function has a 'locally' twin
|
|
12
|
+
*
|
|
13
|
+
* @hidden
|
|
14
|
+
*/
|
|
15
|
+
export const isFetcher = <Args extends any[], Returned extends any>(
|
|
16
|
+
func: Amity.AsyncFunc<Args, Returned>,
|
|
17
|
+
): func is Amity.FetcherFunc<Args, Returned> => 'locally' in func;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Type guard to check and cast that a given async function is has the ".optimistically" property
|
|
21
|
+
*
|
|
22
|
+
* @param func any SDK APi function
|
|
23
|
+
* @returns success boolean if the function has an 'optimistically' twin
|
|
24
|
+
*
|
|
25
|
+
* @hidden
|
|
26
|
+
*/
|
|
27
|
+
export const isMutator = <Args extends any[], Returned extends any>(
|
|
28
|
+
func: Amity.AsyncFunc<Args, Returned>,
|
|
29
|
+
): func is Amity.MutatorFunc<Args, Returned> => 'optimistically' in func;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Type guard to check and cast that a given async function is has
|
|
33
|
+
* the ".locally" or ".optimistically" property
|
|
34
|
+
*
|
|
35
|
+
* @param func any SDK APi function
|
|
36
|
+
* @returns success boolean if the function has an offline twin
|
|
37
|
+
*
|
|
38
|
+
* @hidden
|
|
39
|
+
*/
|
|
40
|
+
export const isOffline = <Args extends any[], Returned extends any>(
|
|
41
|
+
func: Amity.AsyncFunc<Args, Returned>,
|
|
42
|
+
): func is Amity.OfflineFunc<Args, Returned> => isFetcher(func) || isMutator(func);
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Type guard to check and cast that a given object has the "cachedAt" property
|
|
46
|
+
*
|
|
47
|
+
* @param model any object to check on
|
|
48
|
+
* @returns success boolean if the object has property "cachedAt"
|
|
49
|
+
*
|
|
50
|
+
* @hidden
|
|
51
|
+
*/
|
|
52
|
+
export const isCachable = (model: any): model is Amity.Cachable =>
|
|
53
|
+
model?.hasOwnProperty('cachedAt');
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Checks if a model is considered local (cachedAt === -1)
|
|
57
|
+
*
|
|
58
|
+
* @param model any cachable object to check
|
|
59
|
+
* @returns success boolean if the object is marked as local
|
|
60
|
+
*
|
|
61
|
+
* @hidden
|
|
62
|
+
*/
|
|
63
|
+
export const isLocal = (model?: any): model is Amity.Local => {
|
|
64
|
+
return isCachable(model) && model?.cachedAt === -1;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Checks if a model is considered fresh
|
|
69
|
+
*
|
|
70
|
+
* @param model any cachable object to check
|
|
71
|
+
* @param lifeSpan the supposedly duration for which the object is considered synced
|
|
72
|
+
* @returns success boolean if the object is below the given lifespan
|
|
73
|
+
*
|
|
74
|
+
* @hidden
|
|
75
|
+
*/
|
|
76
|
+
export const isFresh = (model?: Amity.Cachable, lifeSpan = CACHE_LIFESPAN) => {
|
|
77
|
+
return Date.now() - (model?.cachedAt ?? 0) <= lifeSpan;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* ```js
|
|
82
|
+
* import { createQuery, getUser } from '@amityco/ts-sdk'
|
|
83
|
+
* const query = createQuery(getUser, 'foobar')
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* Creates a wrapper for the API call you wish to call.
|
|
87
|
+
* This wrapper is necessary to create for optimistically calls
|
|
88
|
+
*
|
|
89
|
+
*
|
|
90
|
+
* @param func A compatible API function from the ts sdk
|
|
91
|
+
* @param args The arguments to pass to the function passed as `fn`
|
|
92
|
+
* @returns A wrapper containing both the function and its future arguments
|
|
93
|
+
*
|
|
94
|
+
* @category Query
|
|
95
|
+
*/
|
|
96
|
+
export const createQuery = <Args extends any[], Returned extends any>(
|
|
97
|
+
func: Amity.AsyncFunc<Args, Returned> | Amity.OfflineFunc<Args, Returned>,
|
|
98
|
+
...args: Args
|
|
99
|
+
) => ({ func, args });
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* ```js
|
|
103
|
+
* import { queryOptions } from '@amityco/ts-sdk'
|
|
104
|
+
* const options = queryOptions('no_fetch', lifeSpan)
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* Creates a query options object based on the query policy passed
|
|
108
|
+
*
|
|
109
|
+
* @param policy The policy to apply to a query
|
|
110
|
+
* @returns A properly set query options object
|
|
111
|
+
*
|
|
112
|
+
* @category Query
|
|
113
|
+
*/
|
|
114
|
+
export const queryOptions = (
|
|
115
|
+
policy: Amity.QueryPolicy,
|
|
116
|
+
lifeSpan: number = CACHE_LIFESPAN, // 1mn
|
|
117
|
+
): Amity.QueryOptions => {
|
|
118
|
+
if (policy === 'cache_only') return { lifeSpan: Infinity };
|
|
119
|
+
|
|
120
|
+
return { lifeSpan: lifeSpan < CACHE_LIFESPAN ? CACHE_LIFESPAN : lifeSpan };
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Checks if an unknown shaped payload is considered empty or not.
|
|
125
|
+
* Since the payload can be wrapped around [] or {} (query or get many),
|
|
126
|
+
* we need a smarter definition of what's considered "empty".
|
|
127
|
+
*
|
|
128
|
+
* @param local the unknown object to check for emptiness
|
|
129
|
+
* @returns true if the mixed-shape "local" content is considered empty
|
|
130
|
+
*
|
|
131
|
+
* @hidden
|
|
132
|
+
*/
|
|
133
|
+
const isEmpty = (local: unknown) => {
|
|
134
|
+
// if it's supposed to be a single object, it'd be undefined
|
|
135
|
+
if (!local) return true;
|
|
136
|
+
|
|
137
|
+
// it's a paged query, the 1st cell of the array would be empty
|
|
138
|
+
if (isPaged(local) && isEmpty(local.data)) {
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// if it's a item collection, it'd have no keys
|
|
143
|
+
if (typeof local === 'object' && !Object.keys(local).length) return true;
|
|
144
|
+
|
|
145
|
+
return false;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* ```js
|
|
150
|
+
* import { createQuery, getUser, runQuery } from '@amityco/ts-sdk'
|
|
151
|
+
* const query = createQuery(getUser, client, 'foobar')
|
|
152
|
+
* runQuery(query, user => console.log(user))
|
|
153
|
+
* ```
|
|
154
|
+
*
|
|
155
|
+
* Calls an API function wrapped around a Amity.Query, and executes the callback whenever
|
|
156
|
+
* a value is available. The value can be picked either from the local cache and/or
|
|
157
|
+
* from the server afterwards depending on the query options passed
|
|
158
|
+
*
|
|
159
|
+
* @param query A query object wrapping the call to be made
|
|
160
|
+
* @param callback A function to execute when a value is available
|
|
161
|
+
* @param options the query options
|
|
162
|
+
*
|
|
163
|
+
* @category Query
|
|
164
|
+
*/
|
|
165
|
+
export const runQuery = <Args extends any[], Returned extends any>(
|
|
166
|
+
{ func, args }: Amity.Query<Args, Returned>,
|
|
167
|
+
callback?: (args: Amity.Snapshot<Returned>) => void,
|
|
168
|
+
options: Amity.QueryOptions = queryOptions('cache_then_server'),
|
|
169
|
+
) => {
|
|
170
|
+
let local: Returned | undefined;
|
|
171
|
+
|
|
172
|
+
const { lifeSpan } = queryOptions('cache_then_server', options.lifeSpan);
|
|
173
|
+
|
|
174
|
+
// offline first
|
|
175
|
+
if (isOffline(func)) {
|
|
176
|
+
try {
|
|
177
|
+
local = isMutator(func) ? func.optimistically(...args) : func.locally(...args);
|
|
178
|
+
} catch (error) {
|
|
179
|
+
callback?.(
|
|
180
|
+
createSnapshot<Returned>(undefined, {
|
|
181
|
+
origin: 'local',
|
|
182
|
+
loading: false,
|
|
183
|
+
error,
|
|
184
|
+
}),
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
const shouldAbort = isCachable(local) && isFresh(local, lifeSpan);
|
|
189
|
+
|
|
190
|
+
callback?.(
|
|
191
|
+
createSnapshot<Returned>(local, {
|
|
192
|
+
origin: 'local',
|
|
193
|
+
loading: !(isFetcher(func) && shouldAbort),
|
|
194
|
+
}),
|
|
195
|
+
);
|
|
196
|
+
|
|
197
|
+
if (shouldAbort) return;
|
|
198
|
+
} else {
|
|
199
|
+
callback?.(
|
|
200
|
+
createSnapshot<Returned>(undefined, {
|
|
201
|
+
origin: 'local',
|
|
202
|
+
loading: true,
|
|
203
|
+
}),
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
let optimisticArgs = args;
|
|
208
|
+
/* get args for optimistic method calls
|
|
209
|
+
*
|
|
210
|
+
* On optimistic updates, the modal key for the update needs to be passed to
|
|
211
|
+
* the server so as to avoid duplicate modal creation
|
|
212
|
+
*
|
|
213
|
+
* ex: on creating a new message pass the modalKey is messageId, pass this
|
|
214
|
+
* id onto the server so that a duplicate with seperate messageId is not
|
|
215
|
+
* created.
|
|
216
|
+
*/
|
|
217
|
+
if (isMutator(func)) {
|
|
218
|
+
// @ts-ignore
|
|
219
|
+
const modelKey = local && local.data && identifyModelKey(local.data);
|
|
220
|
+
if (modelKey) {
|
|
221
|
+
/*
|
|
222
|
+
* modal key is only required for create as update and delete queries pass
|
|
223
|
+
* the modal key in the param itself
|
|
224
|
+
* For update & delete the first argument is always an id which is of type
|
|
225
|
+
* string, whereas for create the first and only argument is the param object
|
|
226
|
+
*
|
|
227
|
+
* When creating an AmityObject optimistically we need to pass the modal key
|
|
228
|
+
* on to the server. ex: for create message modal key will be 'messageId`
|
|
229
|
+
*/
|
|
230
|
+
if (typeof args[0] !== 'string') {
|
|
231
|
+
// @ts-ignore
|
|
232
|
+
optimisticArgs = [{ ...args[0], [modelKey]: local.data[modelKey] }];
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
func(...optimisticArgs)
|
|
238
|
+
.then(fresh => {
|
|
239
|
+
// @ts-ignore i know.
|
|
240
|
+
// isLocal(local) && syncInCache(local, fresh)
|
|
241
|
+
|
|
242
|
+
callback?.(
|
|
243
|
+
createSnapshot<Returned>(fresh, {
|
|
244
|
+
origin: 'server',
|
|
245
|
+
loading: false,
|
|
246
|
+
}),
|
|
247
|
+
);
|
|
248
|
+
})
|
|
249
|
+
.catch(error => {
|
|
250
|
+
callback?.(
|
|
251
|
+
createSnapshot<Returned>(undefined, {
|
|
252
|
+
origin: 'server',
|
|
253
|
+
loading: false,
|
|
254
|
+
error,
|
|
255
|
+
}),
|
|
256
|
+
);
|
|
257
|
+
});
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* This is a TS hack around types
|
|
262
|
+
*
|
|
263
|
+
* @param data
|
|
264
|
+
* @param options
|
|
265
|
+
*
|
|
266
|
+
* @category Query API
|
|
267
|
+
* @hidden
|
|
268
|
+
*/
|
|
269
|
+
function createSnapshot<T>(data: T | undefined, options?: Amity.SnapshotOptions): Amity.Snapshot<T>;
|
|
270
|
+
// eslint-disable-next-line no-redeclare
|
|
271
|
+
function createSnapshot(data: unknown, options?: Amity.SnapshotOptions): unknown {
|
|
272
|
+
if (isPaged(data) || isCachable(data)) return { ...options, ...data };
|
|
273
|
+
|
|
274
|
+
return { ...options, data };
|
|
275
|
+
}
|