@softtynet/zca-js 2.2.8 → 2.2.10
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/README.md +18 -181
- package/dist/Errors/ZaloApiError.js +1 -0
- package/dist/apis/auth/decryptGids.d.ts +6 -0
- package/dist/apis/auth/decryptGids.js +30 -0
- package/dist/apis/auth/encryptGids.d.ts +4 -0
- package/dist/apis/auth/encryptGids.js +24 -0
- package/dist/apis/auth/getContext.d.ts +1 -0
- package/dist/apis/auth/getContext.js +4 -0
- package/dist/apis/auth/getCookie.d.ts +1 -0
- package/dist/apis/auth/getCookie.js +9 -0
- package/dist/apis/auth/getListDevice.d.ts +10 -0
- package/dist/apis/auth/getListDevice.js +22 -0
- package/dist/apis/auth/getNoisedIds.d.ts +9 -0
- package/dist/apis/auth/getNoisedIds.js +67 -0
- package/dist/apis/auth/getOwnId.d.ts +1 -0
- package/dist/apis/auth/getOwnId.js +4 -0
- package/dist/apis/auth/getQR.d.ts +4 -0
- package/dist/apis/auth/getQR.js +29 -0
- package/dist/apis/auth/keepAlive.d.ts +5 -0
- package/dist/apis/auth/keepAlive.js +24 -0
- package/dist/apis/auth/lostFocus.d.ts +4 -0
- package/dist/apis/auth/lostFocus.js +23 -0
- package/dist/apis/auth/scanURL.d.ts +4 -0
- package/dist/apis/auth/scanURL.js +28 -0
- package/dist/apis/auth/updateActiveStatus.d.ts +4 -0
- package/dist/apis/auth/updateActiveStatus.js +27 -0
- package/dist/apis/auth/updateLang.d.ts +6 -0
- package/dist/apis/auth/updateLang.js +30 -0
- package/dist/apis/board/addPollOptions.d.ts +14 -0
- package/dist/apis/board/addPollOptions.js +26 -0
- package/dist/apis/board/createNote.d.ts +7 -0
- package/dist/apis/board/createNote.js +47 -0
- package/dist/apis/board/createPoll.d.ts +36 -0
- package/dist/apis/board/createPoll.js +39 -0
- package/dist/apis/board/createReminder.d.ts +12 -0
- package/dist/apis/board/createReminder.js +62 -0
- package/dist/apis/board/editNote.d.ts +17 -0
- package/dist/apis/board/editNote.js +46 -0
- package/dist/apis/board/editReminder.d.ts +13 -0
- package/dist/apis/board/editReminder.js +60 -0
- package/dist/apis/board/getListBoard.d.ts +21 -0
- package/dist/apis/board/getListBoard.js +44 -0
- package/dist/apis/board/getListPinTopics.d.ts +5 -0
- package/dist/apis/board/getListPinTopics.js +28 -0
- package/dist/apis/board/getListReminder.d.ts +28 -0
- package/dist/apis/board/getListReminder.js +49 -0
- package/dist/apis/board/getPollDetail.d.ts +3 -0
- package/dist/apis/board/getPollDetail.js +30 -0
- package/dist/apis/board/getReminder.d.ts +3 -0
- package/dist/apis/board/getReminder.js +25 -0
- package/dist/apis/board/getReminderResponses.d.ts +5 -0
- package/dist/apis/board/getReminderResponses.js +24 -0
- package/dist/apis/board/lockPoll.d.ts +2 -0
- package/dist/apis/board/lockPoll.js +28 -0
- package/dist/apis/board/removeReminder.d.ts +3 -0
- package/dist/apis/board/removeReminder.js +40 -0
- package/dist/apis/board/sharePoll.d.ts +2 -0
- package/dist/apis/board/sharePoll.js +28 -0
- package/dist/apis/board/votePoll.d.ts +5 -0
- package/dist/apis/board/votePoll.js +29 -0
- package/dist/apis/business/addQuickMessage.d.ts +11 -0
- package/dist/apis/business/addQuickMessage.js +60 -0
- package/dist/apis/business/createAutoReply.d.ts +14 -0
- package/dist/apis/business/createAutoReply.js +37 -0
- package/dist/apis/business/createBankAccount.d.ts +8 -0
- package/dist/apis/business/createBankAccount.js +32 -0
- package/dist/apis/business/createCatalog.d.ts +7 -0
- package/dist/apis/business/createCatalog.js +29 -0
- package/dist/apis/business/createProductCatalog.d.ts +23 -0
- package/dist/apis/business/createProductCatalog.js +50 -0
- package/dist/apis/business/deleteAutoReply.d.ts +5 -0
- package/dist/apis/business/deleteAutoReply.js +29 -0
- package/dist/apis/business/deleteBankAccount.d.ts +11 -0
- package/dist/apis/business/deleteBankAccount.js +32 -0
- package/dist/apis/business/deleteCatalog.d.ts +2 -0
- package/dist/apis/business/deleteCatalog.js +28 -0
- package/dist/apis/business/deleteProductCatalog.d.ts +10 -0
- package/dist/apis/business/deleteProductCatalog.js +31 -0
- package/dist/apis/business/getAutoReplyList.d.ts +6 -0
- package/dist/apis/business/getAutoReplyList.js +24 -0
- package/dist/apis/business/getBizAccount.d.ts +24 -0
- package/dist/apis/business/getBizAccount.js +27 -0
- package/dist/apis/business/getCatalogList.d.ts +18 -0
- package/dist/apis/business/getCatalogList.js +31 -0
- package/dist/apis/business/getLabels.d.ts +7 -0
- package/dist/apis/business/getLabels.js +28 -0
- package/dist/apis/business/getListBank.d.ts +5 -0
- package/dist/apis/business/getListBank.js +20 -0
- package/dist/apis/business/getListBankAccount.d.ts +7 -0
- package/dist/apis/business/getListBankAccount.js +27 -0
- package/dist/apis/business/getProductCatalogList.d.ts +20 -0
- package/dist/apis/business/getProductCatalogList.js +32 -0
- package/dist/apis/business/getQuickMessageList.d.ts +7 -0
- package/dist/apis/business/getQuickMessageList.js +24 -0
- package/dist/apis/business/registerCatalog.d.ts +2 -0
- package/dist/apis/business/registerCatalog.js +27 -0
- package/dist/apis/business/removeQuickMessage.d.ts +5 -0
- package/dist/apis/business/removeQuickMessage.js +27 -0
- package/dist/apis/business/updateAutoReply.d.ts +15 -0
- package/dist/apis/business/updateAutoReply.js +38 -0
- package/dist/apis/business/updateBankAccount.d.ts +9 -0
- package/dist/apis/business/updateBankAccount.js +31 -0
- package/dist/apis/business/updateCatalog.d.ts +11 -0
- package/dist/apis/business/updateCatalog.js +30 -0
- package/dist/apis/business/updateLabels.d.ts +15 -0
- package/dist/apis/business/updateLabels.js +34 -0
- package/dist/apis/business/updateProductCatalog.d.ts +25 -0
- package/dist/apis/business/updateProductCatalog.js +51 -0
- package/dist/apis/business/updateQuickMessage.d.ts +11 -0
- package/dist/apis/business/updateQuickMessage.js +61 -0
- package/dist/apis/business/uploadProductPhoto.d.ts +14 -0
- package/dist/apis/business/uploadProductPhoto.js +50 -0
- package/dist/apis/call/cancelVoiceCall.d.ts +7 -0
- package/dist/apis/call/cancelVoiceCall.js +40 -0
- package/dist/apis/call/endVoiceCall.d.ts +5 -0
- package/dist/apis/call/endVoiceCall.js +38 -0
- package/dist/apis/call/sendVoiceCall.d.ts +44 -0
- package/dist/apis/call/sendVoiceCall.js +113 -0
- package/dist/apis/chat/addReaction.d.ts +18 -0
- package/dist/apis/chat/addReaction.js +297 -0
- package/dist/apis/chat/addUnreadMark.d.ts +8 -0
- package/dist/apis/chat/addUnreadMark.js +52 -0
- package/dist/apis/chat/deleteChat.d.ts +19 -0
- package/dist/apis/chat/deleteChat.js +50 -0
- package/dist/apis/chat/deleteMessage.d.ts +14 -0
- package/dist/apis/chat/deleteMessage.js +52 -0
- package/dist/apis/chat/forwardMessage.d.ts +24 -0
- package/dist/apis/chat/forwardMessage.js +92 -0
- package/dist/apis/chat/getArchivedChatList.d.ts +5 -0
- package/dist/apis/chat/getArchivedChatList.js +23 -0
- package/dist/apis/chat/getAutoDeleteChat.d.ts +9 -0
- package/dist/apis/chat/getAutoDeleteChat.js +21 -0
- package/dist/apis/chat/getHiddenConversations.d.ts +11 -0
- package/dist/apis/chat/getHiddenConversations.js +23 -0
- package/dist/apis/chat/getLastSeen.d.ts +11 -0
- package/dist/apis/chat/getLastSeen.js +38 -0
- package/dist/apis/chat/getLastSeenReaction.d.ts +9 -0
- package/dist/apis/chat/getLastSeenReaction.js +27 -0
- package/dist/apis/chat/getMute.d.ts +13 -0
- package/dist/apis/chat/getMute.js +22 -0
- package/dist/apis/chat/getPinConversations.d.ts +5 -0
- package/dist/apis/chat/getPinConversations.js +22 -0
- package/dist/apis/chat/getRecentSearchList.d.ts +6 -0
- package/dist/apis/chat/getRecentSearchList.js +25 -0
- package/dist/apis/chat/getUnreadMark.d.ts +14 -0
- package/dist/apis/chat/getUnreadMark.js +30 -0
- package/dist/apis/chat/parseLink.d.ts +21 -0
- package/dist/apis/chat/parseLink.js +27 -0
- package/dist/apis/chat/preloadConversations.d.ts +28 -0
- package/dist/apis/chat/preloadConversations.js +78 -0
- package/dist/apis/chat/removeUnreadMark.d.ts +8 -0
- package/dist/apis/chat/removeUnreadMark.js +50 -0
- package/dist/apis/chat/resetHiddenConversPin.d.ts +2 -0
- package/dist/apis/chat/resetHiddenConversPin.js +20 -0
- package/dist/apis/chat/sendBankCard.d.ts +9 -0
- package/dist/apis/chat/sendBankCard.js +36 -0
- package/dist/apis/chat/sendCard.d.ts +10 -0
- package/dist/apis/chat/sendCard.js +58 -0
- package/dist/apis/chat/sendDeliveredEvent.d.ts +16 -0
- package/dist/apis/chat/sendDeliveredEvent.js +62 -0
- package/dist/apis/chat/sendLink.d.ts +10 -0
- package/dist/apis/chat/sendLink.js +60 -0
- package/dist/apis/chat/sendMessage.d.ts +99 -0
- package/dist/apis/chat/sendMessage.js +460 -0
- package/dist/apis/chat/sendReport.d.ts +17 -0
- package/dist/apis/chat/sendReport.js +53 -0
- package/dist/apis/chat/sendSeenEvent.d.ts +16 -0
- package/dist/apis/chat/sendSeenEvent.js +66 -0
- package/dist/apis/chat/sendSticker.d.ts +10 -0
- package/dist/apis/chat/sendSticker.js +57 -0
- package/dist/apis/chat/sendTypingEvent.d.ts +5 -0
- package/dist/apis/chat/sendTypingEvent.js +37 -0
- package/dist/apis/chat/sendVideo.d.ts +35 -0
- package/dist/apis/chat/sendVideo.js +117 -0
- package/dist/apis/chat/sendVoice.d.ts +12 -0
- package/dist/apis/chat/sendVoice.js +72 -0
- package/dist/apis/chat/setHiddenConversations.d.ts +3 -0
- package/dist/apis/chat/setHiddenConversations.js +39 -0
- package/dist/apis/chat/setMute.d.ts +20 -0
- package/dist/apis/chat/setMute.js +67 -0
- package/dist/apis/chat/setPinnedConversations.d.ts +3 -0
- package/dist/apis/chat/setPinnedConversations.js +34 -0
- package/dist/apis/chat/undo.d.ts +9 -0
- package/dist/apis/chat/undo.js +42 -0
- package/dist/apis/chat/undoMultiMessage.d.ts +9 -0
- package/dist/apis/chat/undoMultiMessage.js +46 -0
- package/dist/apis/chat/updateArchivedChatList.d.ts +10 -0
- package/dist/apis/chat/updateArchivedChatList.js +34 -0
- package/dist/apis/chat/updateAutoDeleteChat.d.ts +9 -0
- package/dist/apis/chat/updateAutoDeleteChat.js +40 -0
- package/dist/apis/chat/updateHiddenConversPin.d.ts +2 -0
- package/dist/apis/chat/updateHiddenConversPin.js +30 -0
- package/dist/apis/chat/updateRecentSearch.d.ts +11 -0
- package/dist/apis/chat/updateRecentSearch.js +40 -0
- package/dist/apis/friend/acceptFriendRequest.d.ts +2 -0
- package/dist/apis/friend/acceptFriendRequest.js +28 -0
- package/dist/apis/friend/blockUser.d.ts +2 -0
- package/dist/apis/friend/blockUser.js +28 -0
- package/dist/apis/friend/blockViewFeed.d.ts +2 -0
- package/dist/apis/friend/blockViewFeed.js +30 -0
- package/dist/apis/friend/changeFriendAlias.d.ts +2 -0
- package/dist/apis/friend/changeFriendAlias.js +27 -0
- package/dist/apis/friend/clearUnreadFriendRequests.d.ts +2 -0
- package/dist/apis/friend/clearUnreadFriendRequests.js +29 -0
- package/dist/apis/friend/findUser.d.ts +3 -0
- package/dist/apis/friend/findUser.js +42 -0
- package/dist/apis/friend/findUserByUsername.d.ts +3 -0
- package/dist/apis/friend/findUserByUsername.js +27 -0
- package/dist/apis/friend/getAliasList.d.ts +8 -0
- package/dist/apis/friend/getAliasList.js +27 -0
- package/dist/apis/friend/getAliasListV2.d.ts +10 -0
- package/dist/apis/friend/getAliasListV2.js +28 -0
- package/dist/apis/friend/getAllFriends.d.ts +3 -0
- package/dist/apis/friend/getAllFriends.js +34 -0
- package/dist/apis/friend/getBlockFriends.d.ts +6 -0
- package/dist/apis/friend/getBlockFriends.js +28 -0
- package/dist/apis/friend/getCloseFriends.d.ts +3 -0
- package/dist/apis/friend/getCloseFriends.js +20 -0
- package/dist/apis/friend/getExtraFriendInfo.d.ts +3 -0
- package/dist/apis/friend/getExtraFriendInfo.js +31 -0
- package/dist/apis/friend/getFriendBoardList.d.ts +5 -0
- package/dist/apis/friend/getFriendBoardList.js +26 -0
- package/dist/apis/friend/getFriendOnlines.d.ts +10 -0
- package/dist/apis/friend/getFriendOnlines.js +35 -0
- package/dist/apis/friend/getFriendRecommendations.d.ts +42 -0
- package/dist/apis/friend/getFriendRecommendations.js +27 -0
- package/dist/apis/friend/getFriendRequestStatus.d.ts +8 -0
- package/dist/apis/friend/getFriendRequestStatus.js +25 -0
- package/dist/apis/friend/getFriendsEmojiStatus.d.ts +17 -0
- package/dist/apis/friend/getFriendsEmojiStatus.js +28 -0
- package/dist/apis/friend/getLastReadContactTab.d.ts +4 -0
- package/dist/apis/friend/getLastReadContactTab.js +15 -0
- package/dist/apis/friend/getMultiUsersByPhones.d.ts +5 -0
- package/dist/apis/friend/getMultiUsersByPhones.js +39 -0
- package/dist/apis/friend/getPhonebookV2.d.ts +6 -0
- package/dist/apis/friend/getPhonebookV2.js +21 -0
- package/dist/apis/friend/getSentFriendRequest.d.ts +18 -0
- package/dist/apis/friend/getSentFriendRequest.js +24 -0
- package/dist/apis/friend/lastOnline.d.ts +7 -0
- package/dist/apis/friend/lastOnline.js +26 -0
- package/dist/apis/friend/readContactTab.d.ts +2 -0
- package/dist/apis/friend/readContactTab.js +26 -0
- package/dist/apis/friend/rejectFriendRequest.d.ts +2 -0
- package/dist/apis/friend/rejectFriendRequest.js +27 -0
- package/dist/apis/friend/removeFriend.d.ts +2 -0
- package/dist/apis/friend/removeFriend.js +28 -0
- package/dist/apis/friend/removeFriendAlias.d.ts +2 -0
- package/dist/apis/friend/removeFriendAlias.js +24 -0
- package/dist/apis/friend/sendFriendRequest.d.ts +2 -0
- package/dist/apis/friend/sendFriendRequest.js +39 -0
- package/dist/apis/friend/unblockUser.d.ts +2 -0
- package/dist/apis/friend/unblockUser.js +28 -0
- package/dist/apis/friend/undoFriendRequest.d.ts +2 -0
- package/dist/apis/friend/undoFriendRequest.js +27 -0
- package/dist/apis/group/addGroupBlockedMember.d.ts +2 -0
- package/dist/apis/group/addGroupBlockedMember.js +28 -0
- package/dist/apis/group/addGroupDeputy.d.ts +2 -0
- package/dist/apis/group/addGroupDeputy.js +30 -0
- package/dist/apis/group/addUserToGroup.d.ts +5 -0
- package/dist/apis/group/addUserToGroup.js +34 -0
- package/dist/apis/group/changeGroupAvatar.d.ts +3 -0
- package/dist/apis/group/changeGroupAvatar.js +44 -0
- package/dist/apis/group/changeGroupName.d.ts +4 -0
- package/dist/apis/group/changeGroupName.js +32 -0
- package/dist/apis/group/changeGroupOwner.d.ts +4 -0
- package/dist/apis/group/changeGroupOwner.js +30 -0
- package/dist/apis/group/createGroup.d.ts +28 -0
- package/dist/apis/group/createGroup.js +43 -0
- package/dist/apis/group/deleteGroupInviteBox.d.ts +9 -0
- package/dist/apis/group/deleteGroupInviteBox.js +27 -0
- package/dist/apis/group/disableGroupLink.d.ts +2 -0
- package/dist/apis/group/disableGroupLink.js +24 -0
- package/dist/apis/group/disperseGroup.d.ts +2 -0
- package/dist/apis/group/disperseGroup.js +28 -0
- package/dist/apis/group/enableGroupLink.d.ts +6 -0
- package/dist/apis/group/enableGroupLink.js +25 -0
- package/dist/apis/group/getAllGroups.d.ts +7 -0
- package/dist/apis/group/getAllGroups.js +10 -0
- package/dist/apis/group/getExtraGroupInfo.d.ts +7 -0
- package/dist/apis/group/getExtraGroupInfo.js +32 -0
- package/dist/apis/group/getGroupBlockedMember.d.ts +23 -0
- package/dist/apis/group/getGroupBlockedMember.js +28 -0
- package/dist/apis/group/getGroupChatHistory.d.ts +18 -0
- package/dist/apis/group/getGroupChatHistory.js +64 -0
- package/dist/apis/group/getGroupCloudMessageJump.d.ts +3 -0
- package/dist/apis/group/getGroupCloudMessageJump.js +46 -0
- package/dist/apis/group/getGroupInfo.d.ts +16 -0
- package/dist/apis/group/getGroupInfo.js +32 -0
- package/dist/apis/group/getGroupInviteBoxInfo.d.ts +32 -0
- package/dist/apis/group/getGroupInviteBoxInfo.js +37 -0
- package/dist/apis/group/getGroupInviteBoxList.d.ts +38 -0
- package/dist/apis/group/getGroupInviteBoxList.js +30 -0
- package/dist/apis/group/getGroupLinkDetail.d.ts +9 -0
- package/dist/apis/group/getGroupLinkDetail.js +25 -0
- package/dist/apis/group/getGroupLinkInfo.d.ts +34 -0
- package/dist/apis/group/getGroupLinkInfo.js +27 -0
- package/dist/apis/group/getGroupMembersInfo.d.ts +17 -0
- package/dist/apis/group/getGroupMembersInfo.js +24 -0
- package/dist/apis/group/getPendingGroupMembers.d.ts +11 -0
- package/dist/apis/group/getPendingGroupMembers.js +27 -0
- package/dist/apis/group/getQuotaCommunity.d.ts +8 -0
- package/dist/apis/group/getQuotaCommunity.js +27 -0
- package/dist/apis/group/getRelatedFriendGroup.d.ts +6 -0
- package/dist/apis/group/getRelatedFriendGroup.js +30 -0
- package/dist/apis/group/inviteUserToGroups.d.ts +10 -0
- package/dist/apis/group/inviteUserToGroups.js +30 -0
- package/dist/apis/group/joinGroupInviteBox.d.ts +2 -0
- package/dist/apis/group/joinGroupInviteBox.js +25 -0
- package/dist/apis/group/joinGroupLink.d.ts +2 -0
- package/dist/apis/group/joinGroupLink.js +27 -0
- package/dist/apis/group/leaveGroup.d.ts +4 -0
- package/dist/apis/group/leaveGroup.js +33 -0
- package/dist/apis/group/removeGroupBlockedMember.d.ts +2 -0
- package/dist/apis/group/removeGroupBlockedMember.js +28 -0
- package/dist/apis/group/removeGroupDeputy.d.ts +2 -0
- package/dist/apis/group/removeGroupDeputy.js +30 -0
- package/dist/apis/group/removeUserFromGroup.d.ts +4 -0
- package/dist/apis/group/removeUserFromGroup.js +34 -0
- package/dist/apis/group/reviewPendingMemberRequest.d.ts +14 -0
- package/dist/apis/group/reviewPendingMemberRequest.js +38 -0
- package/dist/apis/group/updateGroupSettings.d.ts +40 -0
- package/dist/apis/group/updateGroupSettings.js +43 -0
- package/dist/apis/group/upgradeGroupToCommunity.d.ts +2 -0
- package/dist/apis/group/upgradeGroupToCommunity.js +27 -0
- package/dist/apis/listen.d.ts +1 -119
- package/dist/apis/listen.js +1 -576
- package/dist/apis/login.js +9 -6
- package/dist/apis/loginQR.js +110 -68
- package/dist/apis/media/getConversationMedia.d.ts +26 -0
- package/dist/apis/media/getConversationMedia.js +38 -0
- package/dist/apis/media/getMediaStorePreview.d.ts +3 -0
- package/dist/apis/media/getMediaStorePreview.js +31 -0
- package/dist/apis/media/removeConversationMedia.d.ts +8 -0
- package/dist/apis/media/removeConversationMedia.js +30 -0
- package/dist/apis/media/uploadAttachment.d.ts +50 -0
- package/dist/apis/media/uploadAttachment.js +209 -0
- package/dist/apis/media/voiceToText.d.ts +4 -0
- package/dist/apis/media/voiceToText.js +29 -0
- package/dist/apis/profile/changeAccountAvatar.d.ts +3 -0
- package/dist/apis/profile/changeAccountAvatar.js +52 -0
- package/dist/apis/profile/deleteAvatar.d.ts +9 -0
- package/dist/apis/profile/deleteAvatar.js +27 -0
- package/dist/apis/profile/fetchAccountInfo.d.ts +5 -0
- package/dist/apis/profile/fetchAccountInfo.js +10 -0
- package/dist/apis/profile/getAvatarList.d.ts +12 -0
- package/dist/apis/profile/getAvatarList.js +28 -0
- package/dist/apis/profile/getAvatarUrlProfile.d.ts +7 -0
- package/dist/apis/profile/getAvatarUrlProfile.js +30 -0
- package/dist/apis/profile/getEmojiStatusConfig.d.ts +17 -0
- package/dist/apis/profile/getEmojiStatusConfig.js +22 -0
- package/dist/apis/profile/getFullAvatar.d.ts +5 -0
- package/dist/apis/profile/getFullAvatar.js +25 -0
- package/dist/apis/profile/getMiniProfile.d.ts +13 -0
- package/dist/apis/profile/getMiniProfile.js +34 -0
- package/dist/apis/profile/getProfileRank.d.ts +5 -0
- package/dist/apis/profile/getProfileRank.js +25 -0
- package/dist/apis/profile/getProfileVerificationStatus.d.ts +5 -0
- package/dist/apis/profile/getProfileVerificationStatus.js +20 -0
- package/dist/apis/profile/getSettings.d.ts +3 -0
- package/dist/apis/profile/getSettings.js +20 -0
- package/dist/apis/profile/getUserInfo.d.ts +8 -0
- package/dist/apis/profile/getUserInfo.js +44 -0
- package/dist/apis/profile/reuseAvatar.d.ts +2 -0
- package/dist/apis/profile/reuseAvatar.js +26 -0
- package/dist/apis/profile/updateProfile.d.ts +20 -0
- package/dist/apis/profile/updateProfile.js +42 -0
- package/dist/apis/profile/updateProfileBio.d.ts +2 -0
- package/dist/apis/profile/updateProfileBio.js +27 -0
- package/dist/apis/profile/updateSettings.d.ts +16 -0
- package/dist/apis/profile/updateSettings.js +90 -0
- package/dist/apis/sticker/getPersonalizedStickerList.d.ts +5 -0
- package/dist/apis/sticker/getPersonalizedStickerList.js +24 -0
- package/dist/apis/sticker/getStickerCategoriesV2.d.ts +17 -0
- package/dist/apis/sticker/getStickerCategoriesV2.js +21 -0
- package/dist/apis/sticker/getStickerCategoryData.d.ts +3 -0
- package/dist/apis/sticker/getStickerCategoryData.js +25 -0
- package/dist/apis/sticker/getStickerCategoryDetail.d.ts +3 -0
- package/dist/apis/sticker/getStickerCategoryDetail.js +24 -0
- package/dist/apis/sticker/getStickerHello.d.ts +16 -0
- package/dist/apis/sticker/getStickerHello.js +34 -0
- package/dist/apis/sticker/getStickerSuggestKeywords.d.ts +12 -0
- package/dist/apis/sticker/getStickerSuggestKeywords.js +24 -0
- package/dist/apis/sticker/getStickerSuggestion.d.ts +12 -0
- package/dist/apis/sticker/getStickerSuggestion.js +29 -0
- package/dist/apis/sticker/getStickers.d.ts +1 -0
- package/dist/apis/sticker/getStickers.js +40 -0
- package/dist/apis/sticker/getStickersDetail.d.ts +3 -0
- package/dist/apis/sticker/getStickersDetail.js +40 -0
- package/dist/apis/sticker/searchSticker.d.ts +3 -0
- package/dist/apis/sticker/searchSticker.js +28 -0
- package/dist/apis/sync/cancelPullMobile.d.ts +11 -0
- package/dist/apis/sync/cancelPullMobile.js +33 -0
- package/dist/apis/sync/downloadTransferSync.d.ts +6 -0
- package/dist/apis/sync/downloadTransferSync.js +30 -0
- package/dist/apis/sync/getSyncData.d.ts +13 -0
- package/dist/apis/sync/getSyncData.js +103 -0
- package/dist/apis/sync/pullMobile.d.ts +15 -0
- package/dist/apis/sync/pullMobile.js +38 -0
- package/dist/apis/sync/requestSyncFromPhone.d.ts +20 -0
- package/dist/apis/sync/requestSyncFromPhone.js +40 -0
- package/dist/apis/zcloud/getCloudInfo.d.ts +3 -0
- package/dist/apis/zcloud/getCloudInfo.js +18 -0
- package/dist/apis/zcloud/getCloudSettings.d.ts +10 -0
- package/dist/apis/zcloud/getCloudSettings.js +17 -0
- package/dist/apis/zcloud/getCloudViewerKey.d.ts +5 -0
- package/dist/apis/zcloud/getCloudViewerKey.js +45 -0
- package/dist/apis/zcloud/getFamilyProfile.d.ts +3 -0
- package/dist/apis/zcloud/getFamilyProfile.js +18 -0
- package/dist/apis/zcloud/getFamilyUsage.d.ts +7 -0
- package/dist/apis/zcloud/getFamilyUsage.js +17 -0
- package/dist/apis/zcloud/getFamilyViewerKey.d.ts +5 -0
- package/dist/apis/zcloud/getFamilyViewerKey.js +45 -0
- package/dist/apis/zcloud/getUsageMyCloud.d.ts +7 -0
- package/dist/apis/zcloud/getUsageMyCloud.js +17 -0
- package/dist/apis/zcloud/getUsageZCloud.d.ts +11 -0
- package/dist/apis/zcloud/getUsageZCloud.js +17 -0
- package/dist/apis/zcloud/verifyCloudMedia.d.ts +14 -0
- package/dist/apis/zcloud/verifyCloudMedia.js +25 -0
- package/dist/apis.d.ts +657 -330
- package/dist/apis.js +1139 -330
- package/dist/cjs/Errors/ZaloApiError.cjs +1 -0
- package/dist/cjs/apis/auth/decryptGids.cjs +35 -0
- package/dist/cjs/apis/auth/encryptGids.cjs +29 -0
- package/dist/cjs/apis/auth/getContext.cjs +9 -0
- package/dist/cjs/apis/auth/getCookie.cjs +14 -0
- package/dist/cjs/apis/auth/getListDevice.cjs +27 -0
- package/dist/cjs/apis/auth/getNoisedIds.cjs +74 -0
- package/dist/cjs/apis/auth/getOwnId.cjs +9 -0
- package/dist/cjs/apis/auth/getQR.cjs +34 -0
- package/dist/cjs/apis/auth/keepAlive.cjs +29 -0
- package/dist/cjs/apis/auth/lostFocus.cjs +28 -0
- package/dist/cjs/apis/auth/scanURL.cjs +33 -0
- package/dist/cjs/apis/auth/updateActiveStatus.cjs +32 -0
- package/dist/cjs/apis/auth/updateLang.cjs +35 -0
- package/dist/cjs/apis/board/addPollOptions.cjs +31 -0
- package/dist/cjs/apis/board/createNote.cjs +52 -0
- package/dist/cjs/apis/board/createPoll.cjs +44 -0
- package/dist/cjs/apis/board/createReminder.cjs +78 -0
- package/dist/cjs/apis/board/editNote.cjs +51 -0
- package/dist/cjs/apis/board/editReminder.cjs +76 -0
- package/dist/cjs/apis/board/getListBoard.cjs +60 -0
- package/dist/cjs/apis/board/getListPinTopics.cjs +33 -0
- package/dist/cjs/apis/board/getListReminder.cjs +65 -0
- package/dist/cjs/apis/board/getPollDetail.cjs +35 -0
- package/dist/cjs/apis/board/getReminder.cjs +30 -0
- package/dist/cjs/apis/board/getReminderResponses.cjs +29 -0
- package/dist/cjs/apis/board/lockPoll.cjs +33 -0
- package/dist/cjs/apis/board/removeReminder.cjs +56 -0
- package/dist/cjs/apis/board/sharePoll.cjs +33 -0
- package/dist/cjs/apis/board/votePoll.cjs +34 -0
- package/dist/cjs/apis/business/addQuickMessage.cjs +65 -0
- package/dist/cjs/apis/business/createAutoReply.cjs +42 -0
- package/dist/cjs/apis/business/createBankAccount.cjs +37 -0
- package/dist/cjs/apis/business/createCatalog.cjs +34 -0
- package/dist/cjs/apis/business/createProductCatalog.cjs +55 -0
- package/dist/cjs/apis/business/deleteAutoReply.cjs +34 -0
- package/dist/cjs/apis/business/deleteBankAccount.cjs +37 -0
- package/dist/cjs/apis/business/deleteCatalog.cjs +33 -0
- package/dist/cjs/apis/business/deleteProductCatalog.cjs +36 -0
- package/dist/cjs/apis/business/getAutoReplyList.cjs +29 -0
- package/dist/cjs/apis/business/getBizAccount.cjs +32 -0
- package/dist/cjs/apis/business/getCatalogList.cjs +36 -0
- package/dist/cjs/apis/business/getLabels.cjs +33 -0
- package/dist/cjs/apis/business/getListBank.cjs +25 -0
- package/dist/cjs/apis/business/getListBankAccount.cjs +32 -0
- package/dist/cjs/apis/business/getProductCatalogList.cjs +37 -0
- package/dist/cjs/apis/business/getQuickMessageList.cjs +29 -0
- package/dist/cjs/apis/business/registerCatalog.cjs +32 -0
- package/dist/cjs/apis/business/removeQuickMessage.cjs +32 -0
- package/dist/cjs/apis/business/updateAutoReply.cjs +43 -0
- package/dist/cjs/apis/business/updateBankAccount.cjs +36 -0
- package/dist/cjs/apis/business/updateCatalog.cjs +35 -0
- package/dist/cjs/apis/business/updateLabels.cjs +39 -0
- package/dist/cjs/apis/business/updateProductCatalog.cjs +56 -0
- package/dist/cjs/apis/business/updateQuickMessage.cjs +66 -0
- package/dist/cjs/apis/business/uploadProductPhoto.cjs +55 -0
- package/dist/cjs/apis/call/cancelVoiceCall.cjs +45 -0
- package/dist/cjs/apis/call/endVoiceCall.cjs +43 -0
- package/dist/cjs/apis/call/sendVoiceCall.cjs +118 -0
- package/dist/cjs/apis/chat/addReaction.cjs +313 -0
- package/dist/cjs/apis/chat/addUnreadMark.cjs +68 -0
- package/dist/cjs/apis/chat/deleteChat.cjs +66 -0
- package/dist/cjs/apis/chat/deleteMessage.cjs +68 -0
- package/dist/cjs/apis/chat/forwardMessage.cjs +108 -0
- package/dist/cjs/apis/chat/getArchivedChatList.cjs +28 -0
- package/dist/cjs/apis/chat/getAutoDeleteChat.cjs +26 -0
- package/dist/cjs/apis/chat/getHiddenConversations.cjs +28 -0
- package/dist/cjs/apis/chat/getLastSeen.cjs +43 -0
- package/dist/cjs/apis/chat/getLastSeenReaction.cjs +32 -0
- package/dist/cjs/apis/chat/getMute.cjs +27 -0
- package/dist/cjs/apis/chat/getPinConversations.cjs +27 -0
- package/dist/cjs/apis/chat/getRecentSearchList.cjs +30 -0
- package/dist/cjs/apis/chat/getUnreadMark.cjs +35 -0
- package/dist/cjs/apis/chat/parseLink.cjs +32 -0
- package/dist/cjs/apis/chat/preloadConversations.cjs +96 -0
- package/dist/cjs/apis/chat/removeUnreadMark.cjs +66 -0
- package/dist/cjs/apis/chat/resetHiddenConversPin.cjs +25 -0
- package/dist/cjs/apis/chat/sendBankCard.cjs +52 -0
- package/dist/cjs/apis/chat/sendCard.cjs +74 -0
- package/dist/cjs/apis/chat/sendDeliveredEvent.cjs +78 -0
- package/dist/cjs/apis/chat/sendLink.cjs +76 -0
- package/dist/cjs/apis/chat/sendMessage.cjs +476 -0
- package/dist/cjs/apis/chat/sendReport.cjs +69 -0
- package/dist/cjs/apis/chat/sendSeenEvent.cjs +82 -0
- package/dist/cjs/apis/chat/sendSticker.cjs +73 -0
- package/dist/cjs/apis/chat/sendTypingEvent.cjs +53 -0
- package/dist/cjs/apis/chat/sendVideo.cjs +133 -0
- package/dist/cjs/apis/chat/sendVoice.cjs +88 -0
- package/dist/cjs/apis/chat/setHiddenConversations.cjs +55 -0
- package/dist/cjs/apis/chat/setMute.cjs +83 -0
- package/dist/cjs/apis/chat/setPinnedConversations.cjs +50 -0
- package/dist/cjs/apis/chat/undo.cjs +58 -0
- package/dist/cjs/apis/chat/undoMultiMessage.cjs +62 -0
- package/dist/cjs/apis/chat/updateArchivedChatList.cjs +39 -0
- package/dist/cjs/apis/chat/updateAutoDeleteChat.cjs +56 -0
- package/dist/cjs/apis/chat/updateHiddenConversPin.cjs +36 -0
- package/dist/cjs/apis/chat/updateRecentSearch.cjs +45 -0
- package/dist/cjs/apis/custom.cjs +1 -0
- package/dist/cjs/apis/friend/acceptFriendRequest.cjs +33 -0
- package/dist/cjs/apis/friend/blockUser.cjs +33 -0
- package/dist/cjs/apis/friend/blockViewFeed.cjs +35 -0
- package/dist/cjs/apis/friend/changeFriendAlias.cjs +32 -0
- package/dist/cjs/apis/friend/clearUnreadFriendRequests.cjs +34 -0
- package/dist/cjs/apis/friend/findUser.cjs +58 -0
- package/dist/cjs/apis/friend/findUserByUsername.cjs +43 -0
- package/dist/cjs/apis/friend/getAliasList.cjs +32 -0
- package/dist/cjs/apis/friend/getAliasListV2.cjs +33 -0
- package/dist/cjs/apis/friend/getAllFriends.cjs +50 -0
- package/dist/cjs/apis/friend/getBlockFriends.cjs +33 -0
- package/dist/cjs/apis/friend/getCloseFriends.cjs +25 -0
- package/dist/cjs/apis/friend/getExtraFriendInfo.cjs +36 -0
- package/dist/cjs/apis/friend/getFriendBoardList.cjs +31 -0
- package/dist/cjs/apis/friend/getFriendOnlines.cjs +40 -0
- package/dist/cjs/apis/friend/getFriendRecommendations.cjs +32 -0
- package/dist/cjs/apis/friend/getFriendRequestStatus.cjs +30 -0
- package/dist/cjs/apis/friend/getFriendsEmojiStatus.cjs +34 -0
- package/dist/cjs/apis/friend/getLastReadContactTab.cjs +20 -0
- package/dist/cjs/apis/friend/getMultiUsersByPhones.cjs +55 -0
- package/dist/cjs/apis/friend/getPhonebookV2.cjs +26 -0
- package/dist/cjs/apis/friend/getSentFriendRequest.cjs +29 -0
- package/dist/cjs/apis/friend/lastOnline.cjs +31 -0
- package/dist/cjs/apis/friend/readContactTab.cjs +31 -0
- package/dist/cjs/apis/friend/rejectFriendRequest.cjs +32 -0
- package/dist/cjs/apis/friend/removeFriend.cjs +33 -0
- package/dist/cjs/apis/friend/removeFriendAlias.cjs +29 -0
- package/dist/cjs/apis/friend/sendFriendRequest.cjs +44 -0
- package/dist/cjs/apis/friend/unblockUser.cjs +33 -0
- package/dist/cjs/apis/friend/undoFriendRequest.cjs +32 -0
- package/dist/cjs/apis/group/addGroupBlockedMember.cjs +33 -0
- package/dist/cjs/apis/group/addGroupDeputy.cjs +35 -0
- package/dist/cjs/apis/group/addUserToGroup.cjs +39 -0
- package/dist/cjs/apis/group/changeGroupAvatar.cjs +49 -0
- package/dist/cjs/apis/group/changeGroupName.cjs +37 -0
- package/dist/cjs/apis/group/changeGroupOwner.cjs +35 -0
- package/dist/cjs/apis/group/createGroup.cjs +48 -0
- package/dist/cjs/apis/group/deleteGroupInviteBox.cjs +32 -0
- package/dist/cjs/apis/group/disableGroupLink.cjs +29 -0
- package/dist/cjs/apis/group/disperseGroup.cjs +33 -0
- package/dist/cjs/apis/group/enableGroupLink.cjs +30 -0
- package/dist/cjs/apis/group/getAllGroups.cjs +15 -0
- package/dist/cjs/apis/group/getExtraGroupInfo.cjs +37 -0
- package/dist/cjs/apis/group/getGroupBlockedMember.cjs +33 -0
- package/dist/cjs/apis/group/getGroupChatHistory.cjs +81 -0
- package/dist/cjs/apis/group/getGroupCloudMessageJump.cjs +63 -0
- package/dist/cjs/apis/group/getGroupInfo.cjs +37 -0
- package/dist/cjs/apis/group/getGroupInviteBoxInfo.cjs +42 -0
- package/dist/cjs/apis/group/getGroupInviteBoxList.cjs +35 -0
- package/dist/cjs/apis/group/getGroupLinkDetail.cjs +30 -0
- package/dist/cjs/apis/group/getGroupLinkInfo.cjs +32 -0
- package/dist/cjs/apis/group/getGroupMembersInfo.cjs +29 -0
- package/dist/cjs/apis/group/getPendingGroupMembers.cjs +32 -0
- package/dist/cjs/apis/group/getQuotaCommunity.cjs +32 -0
- package/dist/cjs/apis/group/getRelatedFriendGroup.cjs +35 -0
- package/dist/cjs/apis/group/inviteUserToGroups.cjs +35 -0
- package/dist/cjs/apis/group/joinGroupInviteBox.cjs +30 -0
- package/dist/cjs/apis/group/joinGroupLink.cjs +32 -0
- package/dist/cjs/apis/group/leaveGroup.cjs +38 -0
- package/dist/cjs/apis/group/removeGroupBlockedMember.cjs +33 -0
- package/dist/cjs/apis/group/removeGroupDeputy.cjs +35 -0
- package/dist/cjs/apis/group/removeUserFromGroup.cjs +39 -0
- package/dist/cjs/apis/group/reviewPendingMemberRequest.cjs +43 -0
- package/dist/cjs/apis/group/updateGroupSettings.cjs +48 -0
- package/dist/cjs/apis/group/upgradeGroupToCommunity.cjs +32 -0
- package/dist/cjs/apis/login.cjs +15 -8
- package/dist/cjs/apis/loginQR.cjs +110 -68
- package/dist/cjs/apis/media/getConversationMedia.cjs +43 -0
- package/dist/cjs/apis/media/getMediaStorePreview.cjs +36 -0
- package/dist/cjs/apis/media/removeConversationMedia.cjs +35 -0
- package/dist/cjs/apis/media/uploadAttachment.cjs +225 -0
- package/dist/cjs/apis/media/voiceToText.cjs +35 -0
- package/dist/cjs/apis/profile/changeAccountAvatar.cjs +57 -0
- package/dist/cjs/apis/profile/deleteAvatar.cjs +32 -0
- package/dist/cjs/apis/profile/fetchAccountInfo.cjs +15 -0
- package/dist/cjs/apis/profile/getAvatarList.cjs +33 -0
- package/dist/cjs/apis/profile/getAvatarUrlProfile.cjs +46 -0
- package/dist/cjs/apis/profile/getEmojiStatusConfig.cjs +28 -0
- package/dist/cjs/apis/profile/getFullAvatar.cjs +30 -0
- package/dist/cjs/apis/profile/getMiniProfile.cjs +39 -0
- package/dist/cjs/apis/profile/getProfileRank.cjs +30 -0
- package/dist/cjs/apis/profile/getProfileVerificationStatus.cjs +25 -0
- package/dist/cjs/apis/profile/getSettings.cjs +27 -0
- package/dist/cjs/apis/profile/getUserInfo.cjs +60 -0
- package/dist/cjs/apis/profile/reuseAvatar.cjs +31 -0
- package/dist/cjs/apis/profile/updateProfile.cjs +47 -0
- package/dist/cjs/apis/profile/updateProfileBio.cjs +32 -0
- package/dist/cjs/apis/profile/updateSettings.cjs +97 -0
- package/dist/cjs/apis/sticker/getPersonalizedStickerList.cjs +29 -0
- package/dist/cjs/apis/sticker/getStickerCategoriesV2.cjs +26 -0
- package/dist/cjs/apis/sticker/getStickerCategoryData.cjs +30 -0
- package/dist/cjs/apis/sticker/getStickerCategoryDetail.cjs +29 -0
- package/dist/cjs/apis/sticker/getStickerHello.cjs +39 -0
- package/dist/cjs/apis/sticker/getStickerSuggestKeywords.cjs +29 -0
- package/dist/cjs/apis/sticker/getStickerSuggestion.cjs +34 -0
- package/dist/cjs/apis/sticker/getStickers.cjs +45 -0
- package/dist/cjs/apis/sticker/getStickersDetail.cjs +45 -0
- package/dist/cjs/apis/sticker/searchSticker.cjs +33 -0
- package/dist/cjs/apis/sync/cancelPullMobile.cjs +38 -0
- package/dist/cjs/apis/sync/downloadTransferSync.cjs +37 -0
- package/dist/cjs/apis/sync/getSyncData.cjs +109 -0
- package/dist/cjs/apis/sync/pullMobile.cjs +43 -0
- package/dist/cjs/apis/sync/requestSyncFromPhone.cjs +46 -0
- package/dist/cjs/apis/zcloud/getCloudInfo.cjs +27 -0
- package/dist/cjs/apis/zcloud/getCloudSettings.cjs +26 -0
- package/dist/cjs/apis/zcloud/getCloudViewerKey.cjs +53 -0
- package/dist/cjs/apis/zcloud/getFamilyProfile.cjs +27 -0
- package/dist/cjs/apis/zcloud/getFamilyUsage.cjs +26 -0
- package/dist/cjs/apis/zcloud/getFamilyViewerKey.cjs +53 -0
- package/dist/cjs/apis/zcloud/getUsageMyCloud.cjs +26 -0
- package/dist/cjs/apis/zcloud/getUsageZCloud.cjs +26 -0
- package/dist/cjs/apis/zcloud/verifyCloudMedia.cjs +34 -0
- package/dist/cjs/apis.cjs +1142 -332
- package/dist/cjs/constants/defaults.cjs +77 -0
- package/dist/cjs/constants/domains.cjs +38 -0
- package/dist/cjs/constants/endpoints.cjs +71 -0
- package/dist/cjs/constants/protocol.cjs +34 -0
- package/dist/cjs/context.cjs +9 -6
- package/dist/cjs/core/service-router.cjs +22 -0
- package/dist/cjs/core/zcloud-client.cjs +93 -0
- package/dist/cjs/crypto/aes.cjs +181 -0
- package/dist/cjs/crypto/ws-cipher.cjs +59 -0
- package/dist/cjs/crypto/zcloud-cipher.cjs +32 -0
- package/dist/cjs/crypto/zdb-cipher.cjs +177 -0
- package/dist/cjs/index.cjs +55 -17
- package/dist/cjs/models/ClearUnread.cjs +7 -0
- package/dist/cjs/models/DeliveredMessage.cjs +8 -2
- package/dist/cjs/models/GroupEvent.cjs +1 -2
- package/dist/cjs/models/Message.cjs +14 -2
- package/dist/cjs/models/Reaction.cjs +4 -0
- package/dist/cjs/models/SeenMessage.cjs +8 -2
- package/dist/cjs/models/Typing.cjs +8 -2
- package/dist/cjs/models/Undo.cjs +4 -0
- package/dist/cjs/realtime/handlers/control.handler.cjs +84 -0
- package/dist/cjs/realtime/handlers/message.handler.cjs +106 -0
- package/dist/cjs/realtime/handlers/reaction.handler.cjs +55 -0
- package/dist/cjs/realtime/handlers/status.handler.cjs +90 -0
- package/dist/cjs/realtime/listener.cjs +381 -0
- package/dist/cjs/realtime/types.cjs +9 -0
- package/dist/cjs/update.cjs +14 -11
- package/dist/cjs/utils.cjs +60 -452
- package/dist/cjs/zalo.cjs +13 -8
- package/dist/constants/defaults.d.ts +96 -0
- package/dist/constants/defaults.js +73 -0
- package/dist/constants/domains.d.ts +34 -0
- package/dist/constants/domains.js +34 -0
- package/dist/constants/endpoints.d.ts +67 -0
- package/dist/constants/endpoints.js +67 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/index.js +4 -0
- package/dist/constants/protocol.d.ts +30 -0
- package/dist/constants/protocol.js +30 -0
- package/dist/context.d.ts +12 -1
- package/dist/context.js +7 -6
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +2 -0
- package/dist/core/service-router.d.ts +10 -0
- package/dist/core/service-router.js +17 -0
- package/dist/core/zcloud-client.d.ts +31 -0
- package/dist/core/zcloud-client.js +83 -0
- package/dist/crypto/aes.d.ts +34 -0
- package/dist/crypto/aes.js +171 -0
- package/dist/crypto/index.d.ts +4 -0
- package/dist/crypto/index.js +4 -0
- package/dist/crypto/ws-cipher.d.ts +3 -0
- package/dist/crypto/ws-cipher.js +52 -0
- package/dist/crypto/zcloud-cipher.d.ts +10 -0
- package/dist/crypto/zcloud-cipher.js +26 -0
- package/dist/crypto/zdb-cipher.d.ts +42 -0
- package/dist/crypto/zdb-cipher.js +167 -0
- package/dist/index.d.ts +217 -172
- package/dist/index.js +13 -10
- package/dist/models/ClearUnread.js +7 -0
- package/dist/models/DeliveredMessage.js +8 -2
- package/dist/models/GroupEvent.js +1 -2
- package/dist/models/Message.js +14 -2
- package/dist/models/Reaction.js +4 -0
- package/dist/models/SeenMessage.js +8 -2
- package/dist/models/Typing.js +8 -2
- package/dist/models/Undo.js +4 -0
- package/dist/realtime/handlers/control.handler.d.ts +3 -0
- package/dist/realtime/handlers/control.handler.js +78 -0
- package/dist/realtime/handlers/message.handler.d.ts +4 -0
- package/dist/realtime/handlers/message.handler.js +87 -0
- package/dist/realtime/handlers/reaction.handler.d.ts +3 -0
- package/dist/realtime/handlers/reaction.handler.js +32 -0
- package/dist/realtime/handlers/status.handler.d.ts +3 -0
- package/dist/realtime/handlers/status.handler.js +66 -0
- package/dist/realtime/index.d.ts +2 -0
- package/dist/realtime/index.js +2 -0
- package/dist/realtime/listener.d.ts +69 -0
- package/dist/realtime/listener.js +363 -0
- package/dist/realtime/types.d.ts +64 -0
- package/dist/realtime/types.js +7 -0
- package/dist/update.js +13 -11
- package/dist/utils.d.ts +5 -125
- package/dist/utils.js +49 -466
- package/dist/zalo.js +12 -9
- package/package.json +11 -7
- package/.prettierrc +0 -5
- package/dist/apis/acceptFriendRequest.d.ts +0 -2
- package/dist/apis/acceptFriendRequest.js +0 -28
- package/dist/apis/addGroupBlockedMember.d.ts +0 -2
- package/dist/apis/addGroupBlockedMember.js +0 -28
- package/dist/apis/addGroupDeputy.d.ts +0 -2
- package/dist/apis/addGroupDeputy.js +0 -30
- package/dist/apis/addPollOptions.d.ts +0 -14
- package/dist/apis/addPollOptions.js +0 -26
- package/dist/apis/addQuickMessage.d.ts +0 -11
- package/dist/apis/addQuickMessage.js +0 -60
- package/dist/apis/addReaction.d.ts +0 -18
- package/dist/apis/addReaction.js +0 -297
- package/dist/apis/addUnreadMark.d.ts +0 -8
- package/dist/apis/addUnreadMark.js +0 -52
- package/dist/apis/addUserToGroup.d.ts +0 -5
- package/dist/apis/addUserToGroup.js +0 -34
- package/dist/apis/blockUser.d.ts +0 -2
- package/dist/apis/blockUser.js +0 -28
- package/dist/apis/blockViewFeed.d.ts +0 -2
- package/dist/apis/blockViewFeed.js +0 -30
- package/dist/apis/cancelPullMobile.d.ts +0 -11
- package/dist/apis/cancelPullMobile.js +0 -33
- package/dist/apis/cancelVoiceCall.d.ts +0 -7
- package/dist/apis/cancelVoiceCall.js +0 -42
- package/dist/apis/changeAccountAvatar.d.ts +0 -3
- package/dist/apis/changeAccountAvatar.js +0 -52
- package/dist/apis/changeFriendAlias.d.ts +0 -2
- package/dist/apis/changeFriendAlias.js +0 -27
- package/dist/apis/changeGroupAvatar.d.ts +0 -3
- package/dist/apis/changeGroupAvatar.js +0 -44
- package/dist/apis/changeGroupName.d.ts +0 -4
- package/dist/apis/changeGroupName.js +0 -32
- package/dist/apis/changeGroupOwner.d.ts +0 -4
- package/dist/apis/changeGroupOwner.js +0 -30
- package/dist/apis/createAutoReply.d.ts +0 -14
- package/dist/apis/createAutoReply.js +0 -37
- package/dist/apis/createBankAccount.d.ts +0 -8
- package/dist/apis/createBankAccount.js +0 -32
- package/dist/apis/createCatalog.d.ts +0 -7
- package/dist/apis/createCatalog.js +0 -29
- package/dist/apis/createGroup.d.ts +0 -28
- package/dist/apis/createGroup.js +0 -43
- package/dist/apis/createNote.d.ts +0 -7
- package/dist/apis/createNote.js +0 -47
- package/dist/apis/createPoll.d.ts +0 -36
- package/dist/apis/createPoll.js +0 -40
- package/dist/apis/createProductCatalog.d.ts +0 -23
- package/dist/apis/createProductCatalog.js +0 -50
- package/dist/apis/createReminder.d.ts +0 -12
- package/dist/apis/createReminder.js +0 -63
- package/dist/apis/decryptGids.d.ts +0 -6
- package/dist/apis/decryptGids.js +0 -30
- package/dist/apis/deleteAutoReply.d.ts +0 -5
- package/dist/apis/deleteAutoReply.js +0 -29
- package/dist/apis/deleteAvatar.d.ts +0 -9
- package/dist/apis/deleteAvatar.js +0 -27
- package/dist/apis/deleteBankAccount.d.ts +0 -11
- package/dist/apis/deleteBankAccount.js +0 -32
- package/dist/apis/deleteCatalog.d.ts +0 -2
- package/dist/apis/deleteCatalog.js +0 -28
- package/dist/apis/deleteChat.d.ts +0 -19
- package/dist/apis/deleteChat.js +0 -50
- package/dist/apis/deleteGroupInviteBox.d.ts +0 -9
- package/dist/apis/deleteGroupInviteBox.js +0 -27
- package/dist/apis/deleteMessage.d.ts +0 -14
- package/dist/apis/deleteMessage.js +0 -52
- package/dist/apis/deleteProductCatalog.d.ts +0 -10
- package/dist/apis/deleteProductCatalog.js +0 -31
- package/dist/apis/disableGroupLink.d.ts +0 -2
- package/dist/apis/disableGroupLink.js +0 -24
- package/dist/apis/disperseGroup.d.ts +0 -2
- package/dist/apis/disperseGroup.js +0 -28
- package/dist/apis/downloadTransferSync.d.ts +0 -6
- package/dist/apis/downloadTransferSync.js +0 -30
- package/dist/apis/editNote.d.ts +0 -17
- package/dist/apis/editNote.js +0 -46
- package/dist/apis/editReminder.d.ts +0 -13
- package/dist/apis/editReminder.js +0 -61
- package/dist/apis/enableGroupLink.d.ts +0 -6
- package/dist/apis/enableGroupLink.js +0 -25
- package/dist/apis/endVoiceCall.d.ts +0 -5
- package/dist/apis/endVoiceCall.js +0 -40
- package/dist/apis/fetchAccountInfo.d.ts +0 -5
- package/dist/apis/fetchAccountInfo.js +0 -10
- package/dist/apis/findUser.d.ts +0 -3
- package/dist/apis/findUser.js +0 -42
- package/dist/apis/findUserByUsername.d.ts +0 -3
- package/dist/apis/findUserByUsername.js +0 -27
- package/dist/apis/forwardMessage.d.ts +0 -24
- package/dist/apis/forwardMessage.js +0 -99
- package/dist/apis/getAliasList.d.ts +0 -8
- package/dist/apis/getAliasList.js +0 -27
- package/dist/apis/getAllFriends.d.ts +0 -3
- package/dist/apis/getAllFriends.js +0 -34
- package/dist/apis/getAllGroups.d.ts +0 -7
- package/dist/apis/getAllGroups.js +0 -10
- package/dist/apis/getArchivedChatList.d.ts +0 -5
- package/dist/apis/getArchivedChatList.js +0 -23
- package/dist/apis/getAutoDeleteChat.d.ts +0 -9
- package/dist/apis/getAutoDeleteChat.js +0 -21
- package/dist/apis/getAutoReplyList.d.ts +0 -6
- package/dist/apis/getAutoReplyList.js +0 -24
- package/dist/apis/getAvatarList.d.ts +0 -12
- package/dist/apis/getAvatarList.js +0 -28
- package/dist/apis/getAvatarUrlProfile.d.ts +0 -7
- package/dist/apis/getAvatarUrlProfile.js +0 -30
- package/dist/apis/getBizAccount.d.ts +0 -24
- package/dist/apis/getBizAccount.js +0 -27
- package/dist/apis/getCatalogList.d.ts +0 -18
- package/dist/apis/getCatalogList.js +0 -32
- package/dist/apis/getCloseFriends.d.ts +0 -3
- package/dist/apis/getCloseFriends.js +0 -20
- package/dist/apis/getContext.d.ts +0 -1
- package/dist/apis/getContext.js +0 -4
- package/dist/apis/getCookie.d.ts +0 -1
- package/dist/apis/getCookie.js +0 -9
- package/dist/apis/getFriendBoardList.d.ts +0 -5
- package/dist/apis/getFriendBoardList.js +0 -26
- package/dist/apis/getFriendOnlines.d.ts +0 -10
- package/dist/apis/getFriendOnlines.js +0 -35
- package/dist/apis/getFriendRecommendations.d.ts +0 -42
- package/dist/apis/getFriendRecommendations.js +0 -27
- package/dist/apis/getFriendRequestStatus.d.ts +0 -8
- package/dist/apis/getFriendRequestStatus.js +0 -25
- package/dist/apis/getFullAvatar.d.ts +0 -5
- package/dist/apis/getFullAvatar.js +0 -25
- package/dist/apis/getGroupBlockedMember.d.ts +0 -23
- package/dist/apis/getGroupBlockedMember.js +0 -29
- package/dist/apis/getGroupChatHistory.d.ts +0 -18
- package/dist/apis/getGroupChatHistory.js +0 -64
- package/dist/apis/getGroupInfo.d.ts +0 -16
- package/dist/apis/getGroupInfo.js +0 -32
- package/dist/apis/getGroupInviteBoxInfo.d.ts +0 -32
- package/dist/apis/getGroupInviteBoxInfo.js +0 -38
- package/dist/apis/getGroupInviteBoxList.d.ts +0 -38
- package/dist/apis/getGroupInviteBoxList.js +0 -31
- package/dist/apis/getGroupLinkDetail.d.ts +0 -9
- package/dist/apis/getGroupLinkDetail.js +0 -25
- package/dist/apis/getGroupLinkInfo.d.ts +0 -34
- package/dist/apis/getGroupLinkInfo.js +0 -28
- package/dist/apis/getGroupMembersInfo.d.ts +0 -17
- package/dist/apis/getGroupMembersInfo.js +0 -24
- package/dist/apis/getHiddenConversations.d.ts +0 -11
- package/dist/apis/getHiddenConversations.js +0 -23
- package/dist/apis/getLabels.d.ts +0 -7
- package/dist/apis/getLabels.js +0 -28
- package/dist/apis/getListBank.d.ts +0 -5
- package/dist/apis/getListBank.js +0 -20
- package/dist/apis/getListBankAccount.d.ts +0 -7
- package/dist/apis/getListBankAccount.js +0 -27
- package/dist/apis/getListBoard.d.ts +0 -21
- package/dist/apis/getListBoard.js +0 -45
- package/dist/apis/getListDevice.d.ts +0 -10
- package/dist/apis/getListDevice.js +0 -22
- package/dist/apis/getListReminder.d.ts +0 -28
- package/dist/apis/getListReminder.js +0 -47
- package/dist/apis/getMultiUsersByPhones.d.ts +0 -5
- package/dist/apis/getMultiUsersByPhones.js +0 -39
- package/dist/apis/getMute.d.ts +0 -13
- package/dist/apis/getMute.js +0 -22
- package/dist/apis/getNoisedIds.d.ts +0 -9
- package/dist/apis/getNoisedIds.js +0 -67
- package/dist/apis/getOwnId.d.ts +0 -1
- package/dist/apis/getOwnId.js +0 -4
- package/dist/apis/getPendingGroupMembers.d.ts +0 -11
- package/dist/apis/getPendingGroupMembers.js +0 -27
- package/dist/apis/getPinConversations.d.ts +0 -5
- package/dist/apis/getPinConversations.js +0 -22
- package/dist/apis/getPollDetail.d.ts +0 -3
- package/dist/apis/getPollDetail.js +0 -30
- package/dist/apis/getProductCatalogList.d.ts +0 -20
- package/dist/apis/getProductCatalogList.js +0 -33
- package/dist/apis/getQR.d.ts +0 -4
- package/dist/apis/getQR.js +0 -29
- package/dist/apis/getQuickMessageList.d.ts +0 -7
- package/dist/apis/getQuickMessageList.js +0 -24
- package/dist/apis/getRelatedFriendGroup.d.ts +0 -6
- package/dist/apis/getRelatedFriendGroup.js +0 -30
- package/dist/apis/getReminder.d.ts +0 -3
- package/dist/apis/getReminder.js +0 -25
- package/dist/apis/getReminderResponses.d.ts +0 -5
- package/dist/apis/getReminderResponses.js +0 -24
- package/dist/apis/getSentFriendRequest.d.ts +0 -18
- package/dist/apis/getSentFriendRequest.js +0 -24
- package/dist/apis/getSettings.d.ts +0 -3
- package/dist/apis/getSettings.js +0 -20
- package/dist/apis/getStickerCategoryDetail.d.ts +0 -3
- package/dist/apis/getStickerCategoryDetail.js +0 -24
- package/dist/apis/getStickers.d.ts +0 -1
- package/dist/apis/getStickers.js +0 -40
- package/dist/apis/getStickersDetail.d.ts +0 -3
- package/dist/apis/getStickersDetail.js +0 -40
- package/dist/apis/getSyncData.d.ts +0 -13
- package/dist/apis/getSyncData.js +0 -103
- package/dist/apis/getUnreadMark.d.ts +0 -14
- package/dist/apis/getUnreadMark.js +0 -30
- package/dist/apis/getUserInfo.d.ts +0 -8
- package/dist/apis/getUserInfo.js +0 -44
- package/dist/apis/inviteUserToGroups.d.ts +0 -10
- package/dist/apis/inviteUserToGroups.js +0 -30
- package/dist/apis/joinGroupInviteBox.d.ts +0 -2
- package/dist/apis/joinGroupInviteBox.js +0 -25
- package/dist/apis/joinGroupLink.d.ts +0 -2
- package/dist/apis/joinGroupLink.js +0 -27
- package/dist/apis/keepAlive.d.ts +0 -4
- package/dist/apis/keepAlive.js +0 -22
- package/dist/apis/lastOnline.d.ts +0 -7
- package/dist/apis/lastOnline.js +0 -26
- package/dist/apis/leaveGroup.d.ts +0 -4
- package/dist/apis/leaveGroup.js +0 -33
- package/dist/apis/lockPoll.d.ts +0 -2
- package/dist/apis/lockPoll.js +0 -28
- package/dist/apis/lostFocus.d.ts +0 -4
- package/dist/apis/lostFocus.js +0 -23
- package/dist/apis/parseLink.d.ts +0 -21
- package/dist/apis/parseLink.js +0 -27
- package/dist/apis/preloadConversations.d.ts +0 -28
- package/dist/apis/preloadConversations.js +0 -76
- package/dist/apis/pullMobile.d.ts +0 -15
- package/dist/apis/pullMobile.js +0 -38
- package/dist/apis/registerCatalog.d.ts +0 -2
- package/dist/apis/registerCatalog.js +0 -27
- package/dist/apis/rejectFriendRequest.d.ts +0 -2
- package/dist/apis/rejectFriendRequest.js +0 -27
- package/dist/apis/removeFriend.d.ts +0 -2
- package/dist/apis/removeFriend.js +0 -28
- package/dist/apis/removeFriendAlias.d.ts +0 -2
- package/dist/apis/removeFriendAlias.js +0 -24
- package/dist/apis/removeGroupBlockedMember.d.ts +0 -2
- package/dist/apis/removeGroupBlockedMember.js +0 -28
- package/dist/apis/removeGroupDeputy.d.ts +0 -2
- package/dist/apis/removeGroupDeputy.js +0 -30
- package/dist/apis/removeQuickMessage.d.ts +0 -5
- package/dist/apis/removeQuickMessage.js +0 -27
- package/dist/apis/removeReminder.d.ts +0 -3
- package/dist/apis/removeReminder.js +0 -40
- package/dist/apis/removeUnreadMark.d.ts +0 -8
- package/dist/apis/removeUnreadMark.js +0 -50
- package/dist/apis/removeUserFromGroup.d.ts +0 -4
- package/dist/apis/removeUserFromGroup.js +0 -34
- package/dist/apis/requestSyncFromPhone.d.ts +0 -20
- package/dist/apis/requestSyncFromPhone.js +0 -41
- package/dist/apis/resetHiddenConversPin.d.ts +0 -2
- package/dist/apis/resetHiddenConversPin.js +0 -20
- package/dist/apis/reuseAvatar.d.ts +0 -2
- package/dist/apis/reuseAvatar.js +0 -26
- package/dist/apis/reviewPendingMemberRequest.d.ts +0 -14
- package/dist/apis/reviewPendingMemberRequest.js +0 -38
- package/dist/apis/scanURL.d.ts +0 -4
- package/dist/apis/scanURL.js +0 -28
- package/dist/apis/searchSticker.d.ts +0 -3
- package/dist/apis/searchSticker.js +0 -28
- package/dist/apis/sendBankCard.d.ts +0 -9
- package/dist/apis/sendBankCard.js +0 -37
- package/dist/apis/sendCard.d.ts +0 -10
- package/dist/apis/sendCard.js +0 -59
- package/dist/apis/sendDeliveredEvent.d.ts +0 -16
- package/dist/apis/sendDeliveredEvent.js +0 -55
- package/dist/apis/sendFriendRequest.d.ts +0 -2
- package/dist/apis/sendFriendRequest.js +0 -39
- package/dist/apis/sendLink.d.ts +0 -10
- package/dist/apis/sendLink.js +0 -61
- package/dist/apis/sendMessage.d.ts +0 -99
- package/dist/apis/sendMessage.js +0 -452
- package/dist/apis/sendReport.d.ts +0 -17
- package/dist/apis/sendReport.js +0 -53
- package/dist/apis/sendSeenEvent.d.ts +0 -16
- package/dist/apis/sendSeenEvent.js +0 -63
- package/dist/apis/sendSticker.d.ts +0 -10
- package/dist/apis/sendSticker.js +0 -57
- package/dist/apis/sendTypingEvent.d.ts +0 -5
- package/dist/apis/sendTypingEvent.js +0 -33
- package/dist/apis/sendVideo.d.ts +0 -35
- package/dist/apis/sendVideo.js +0 -118
- package/dist/apis/sendVoice.d.ts +0 -12
- package/dist/apis/sendVoice.js +0 -73
- package/dist/apis/sendVoiceCall.d.ts +0 -44
- package/dist/apis/sendVoiceCall.js +0 -115
- package/dist/apis/setHiddenConversations.d.ts +0 -3
- package/dist/apis/setHiddenConversations.js +0 -39
- package/dist/apis/setMute.d.ts +0 -20
- package/dist/apis/setMute.js +0 -67
- package/dist/apis/setPinnedConversations.d.ts +0 -3
- package/dist/apis/setPinnedConversations.js +0 -34
- package/dist/apis/sharePoll.d.ts +0 -2
- package/dist/apis/sharePoll.js +0 -28
- package/dist/apis/unblockUser.d.ts +0 -2
- package/dist/apis/unblockUser.js +0 -28
- package/dist/apis/undo.d.ts +0 -9
- package/dist/apis/undo.js +0 -42
- package/dist/apis/undoFriendRequest.d.ts +0 -2
- package/dist/apis/undoFriendRequest.js +0 -27
- package/dist/apis/updateActiveStatus.d.ts +0 -4
- package/dist/apis/updateActiveStatus.js +0 -27
- package/dist/apis/updateArchivedChatList.d.ts +0 -10
- package/dist/apis/updateArchivedChatList.js +0 -34
- package/dist/apis/updateAutoDeleteChat.d.ts +0 -9
- package/dist/apis/updateAutoDeleteChat.js +0 -40
- package/dist/apis/updateAutoReply.d.ts +0 -15
- package/dist/apis/updateAutoReply.js +0 -38
- package/dist/apis/updateBankAccount.d.ts +0 -9
- package/dist/apis/updateBankAccount.js +0 -31
- package/dist/apis/updateCatalog.d.ts +0 -11
- package/dist/apis/updateCatalog.js +0 -30
- package/dist/apis/updateGroupSettings.d.ts +0 -40
- package/dist/apis/updateGroupSettings.js +0 -43
- package/dist/apis/updateHiddenConversPin.d.ts +0 -2
- package/dist/apis/updateHiddenConversPin.js +0 -30
- package/dist/apis/updateLabels.d.ts +0 -15
- package/dist/apis/updateLabels.js +0 -34
- package/dist/apis/updateLang.d.ts +0 -6
- package/dist/apis/updateLang.js +0 -30
- package/dist/apis/updateProductCatalog.d.ts +0 -25
- package/dist/apis/updateProductCatalog.js +0 -51
- package/dist/apis/updateProfile.d.ts +0 -20
- package/dist/apis/updateProfile.js +0 -43
- package/dist/apis/updateProfileBio.d.ts +0 -2
- package/dist/apis/updateProfileBio.js +0 -27
- package/dist/apis/updateQuickMessage.d.ts +0 -11
- package/dist/apis/updateQuickMessage.js +0 -61
- package/dist/apis/updateSettings.d.ts +0 -16
- package/dist/apis/updateSettings.js +0 -90
- package/dist/apis/upgradeGroupToCommunity.d.ts +0 -2
- package/dist/apis/upgradeGroupToCommunity.js +0 -27
- package/dist/apis/uploadAttachment.d.ts +0 -50
- package/dist/apis/uploadAttachment.js +0 -202
- package/dist/apis/uploadProductPhoto.d.ts +0 -14
- package/dist/apis/uploadProductPhoto.js +0 -50
- package/dist/apis/votePoll.d.ts +0 -5
- package/dist/apis/votePoll.js +0 -29
- package/dist/cjs/apis/acceptFriendRequest.cjs +0 -33
- package/dist/cjs/apis/addGroupBlockedMember.cjs +0 -33
- package/dist/cjs/apis/addGroupDeputy.cjs +0 -35
- package/dist/cjs/apis/addPollOptions.cjs +0 -31
- package/dist/cjs/apis/addQuickMessage.cjs +0 -65
- package/dist/cjs/apis/addReaction.cjs +0 -313
- package/dist/cjs/apis/addUnreadMark.cjs +0 -68
- package/dist/cjs/apis/addUserToGroup.cjs +0 -39
- package/dist/cjs/apis/blockUser.cjs +0 -33
- package/dist/cjs/apis/blockViewFeed.cjs +0 -35
- package/dist/cjs/apis/cancelPullMobile.cjs +0 -38
- package/dist/cjs/apis/cancelVoiceCall.cjs +0 -47
- package/dist/cjs/apis/changeAccountAvatar.cjs +0 -57
- package/dist/cjs/apis/changeFriendAlias.cjs +0 -32
- package/dist/cjs/apis/changeGroupAvatar.cjs +0 -49
- package/dist/cjs/apis/changeGroupName.cjs +0 -37
- package/dist/cjs/apis/changeGroupOwner.cjs +0 -35
- package/dist/cjs/apis/createAutoReply.cjs +0 -42
- package/dist/cjs/apis/createBankAccount.cjs +0 -37
- package/dist/cjs/apis/createCatalog.cjs +0 -34
- package/dist/cjs/apis/createGroup.cjs +0 -48
- package/dist/cjs/apis/createNote.cjs +0 -52
- package/dist/cjs/apis/createPoll.cjs +0 -45
- package/dist/cjs/apis/createProductCatalog.cjs +0 -55
- package/dist/cjs/apis/createReminder.cjs +0 -79
- package/dist/cjs/apis/decryptGids.cjs +0 -35
- package/dist/cjs/apis/deleteAutoReply.cjs +0 -34
- package/dist/cjs/apis/deleteAvatar.cjs +0 -32
- package/dist/cjs/apis/deleteBankAccount.cjs +0 -37
- package/dist/cjs/apis/deleteCatalog.cjs +0 -33
- package/dist/cjs/apis/deleteChat.cjs +0 -66
- package/dist/cjs/apis/deleteGroupInviteBox.cjs +0 -32
- package/dist/cjs/apis/deleteMessage.cjs +0 -68
- package/dist/cjs/apis/deleteProductCatalog.cjs +0 -36
- package/dist/cjs/apis/disableGroupLink.cjs +0 -29
- package/dist/cjs/apis/disperseGroup.cjs +0 -33
- package/dist/cjs/apis/downloadTransferSync.cjs +0 -35
- package/dist/cjs/apis/editNote.cjs +0 -51
- package/dist/cjs/apis/editReminder.cjs +0 -77
- package/dist/cjs/apis/enableGroupLink.cjs +0 -30
- package/dist/cjs/apis/endVoiceCall.cjs +0 -45
- package/dist/cjs/apis/fetchAccountInfo.cjs +0 -15
- package/dist/cjs/apis/findUser.cjs +0 -58
- package/dist/cjs/apis/findUserByUsername.cjs +0 -43
- package/dist/cjs/apis/forwardMessage.cjs +0 -115
- package/dist/cjs/apis/getAliasList.cjs +0 -32
- package/dist/cjs/apis/getAllFriends.cjs +0 -50
- package/dist/cjs/apis/getAllGroups.cjs +0 -15
- package/dist/cjs/apis/getArchivedChatList.cjs +0 -28
- package/dist/cjs/apis/getAutoDeleteChat.cjs +0 -26
- package/dist/cjs/apis/getAutoReplyList.cjs +0 -29
- package/dist/cjs/apis/getAvatarList.cjs +0 -33
- package/dist/cjs/apis/getAvatarUrlProfile.cjs +0 -46
- package/dist/cjs/apis/getBizAccount.cjs +0 -32
- package/dist/cjs/apis/getCatalogList.cjs +0 -37
- package/dist/cjs/apis/getCloseFriends.cjs +0 -25
- package/dist/cjs/apis/getContext.cjs +0 -9
- package/dist/cjs/apis/getCookie.cjs +0 -14
- package/dist/cjs/apis/getFriendBoardList.cjs +0 -31
- package/dist/cjs/apis/getFriendOnlines.cjs +0 -40
- package/dist/cjs/apis/getFriendRecommendations.cjs +0 -32
- package/dist/cjs/apis/getFriendRequestStatus.cjs +0 -30
- package/dist/cjs/apis/getFullAvatar.cjs +0 -30
- package/dist/cjs/apis/getGroupBlockedMember.cjs +0 -34
- package/dist/cjs/apis/getGroupChatHistory.cjs +0 -81
- package/dist/cjs/apis/getGroupInfo.cjs +0 -37
- package/dist/cjs/apis/getGroupInviteBoxInfo.cjs +0 -43
- package/dist/cjs/apis/getGroupInviteBoxList.cjs +0 -36
- package/dist/cjs/apis/getGroupLinkDetail.cjs +0 -30
- package/dist/cjs/apis/getGroupLinkInfo.cjs +0 -33
- package/dist/cjs/apis/getGroupMembersInfo.cjs +0 -29
- package/dist/cjs/apis/getHiddenConversations.cjs +0 -28
- package/dist/cjs/apis/getLabels.cjs +0 -33
- package/dist/cjs/apis/getListBank.cjs +0 -25
- package/dist/cjs/apis/getListBankAccount.cjs +0 -32
- package/dist/cjs/apis/getListBoard.cjs +0 -61
- package/dist/cjs/apis/getListDevice.cjs +0 -27
- package/dist/cjs/apis/getListReminder.cjs +0 -63
- package/dist/cjs/apis/getMultiUsersByPhones.cjs +0 -55
- package/dist/cjs/apis/getMute.cjs +0 -27
- package/dist/cjs/apis/getNoisedIds.cjs +0 -72
- package/dist/cjs/apis/getOwnId.cjs +0 -9
- package/dist/cjs/apis/getPendingGroupMembers.cjs +0 -32
- package/dist/cjs/apis/getPinConversations.cjs +0 -27
- package/dist/cjs/apis/getPollDetail.cjs +0 -35
- package/dist/cjs/apis/getProductCatalogList.cjs +0 -38
- package/dist/cjs/apis/getQR.cjs +0 -34
- package/dist/cjs/apis/getQuickMessageList.cjs +0 -29
- package/dist/cjs/apis/getRelatedFriendGroup.cjs +0 -35
- package/dist/cjs/apis/getReminder.cjs +0 -30
- package/dist/cjs/apis/getReminderResponses.cjs +0 -29
- package/dist/cjs/apis/getSentFriendRequest.cjs +0 -29
- package/dist/cjs/apis/getSettings.cjs +0 -25
- package/dist/cjs/apis/getStickerCategoryDetail.cjs +0 -29
- package/dist/cjs/apis/getStickers.cjs +0 -45
- package/dist/cjs/apis/getStickersDetail.cjs +0 -45
- package/dist/cjs/apis/getSyncData.cjs +0 -108
- package/dist/cjs/apis/getUnreadMark.cjs +0 -35
- package/dist/cjs/apis/getUserInfo.cjs +0 -60
- package/dist/cjs/apis/inviteUserToGroups.cjs +0 -35
- package/dist/cjs/apis/joinGroupInviteBox.cjs +0 -30
- package/dist/cjs/apis/joinGroupLink.cjs +0 -32
- package/dist/cjs/apis/keepAlive.cjs +0 -27
- package/dist/cjs/apis/lastOnline.cjs +0 -31
- package/dist/cjs/apis/leaveGroup.cjs +0 -38
- package/dist/cjs/apis/listen.cjs +0 -591
- package/dist/cjs/apis/lockPoll.cjs +0 -33
- package/dist/cjs/apis/lostFocus.cjs +0 -28
- package/dist/cjs/apis/parseLink.cjs +0 -32
- package/dist/cjs/apis/preloadConversations.cjs +0 -94
- package/dist/cjs/apis/pullMobile.cjs +0 -43
- package/dist/cjs/apis/registerCatalog.cjs +0 -32
- package/dist/cjs/apis/rejectFriendRequest.cjs +0 -32
- package/dist/cjs/apis/removeFriend.cjs +0 -33
- package/dist/cjs/apis/removeFriendAlias.cjs +0 -29
- package/dist/cjs/apis/removeGroupBlockedMember.cjs +0 -33
- package/dist/cjs/apis/removeGroupDeputy.cjs +0 -35
- package/dist/cjs/apis/removeQuickMessage.cjs +0 -32
- package/dist/cjs/apis/removeReminder.cjs +0 -56
- package/dist/cjs/apis/removeUnreadMark.cjs +0 -66
- package/dist/cjs/apis/removeUserFromGroup.cjs +0 -39
- package/dist/cjs/apis/requestSyncFromPhone.cjs +0 -46
- package/dist/cjs/apis/resetHiddenConversPin.cjs +0 -25
- package/dist/cjs/apis/reuseAvatar.cjs +0 -31
- package/dist/cjs/apis/reviewPendingMemberRequest.cjs +0 -43
- package/dist/cjs/apis/scanURL.cjs +0 -33
- package/dist/cjs/apis/searchSticker.cjs +0 -33
- package/dist/cjs/apis/sendBankCard.cjs +0 -53
- package/dist/cjs/apis/sendCard.cjs +0 -75
- package/dist/cjs/apis/sendDeliveredEvent.cjs +0 -71
- package/dist/cjs/apis/sendFriendRequest.cjs +0 -44
- package/dist/cjs/apis/sendLink.cjs +0 -77
- package/dist/cjs/apis/sendMessage.cjs +0 -468
- package/dist/cjs/apis/sendReport.cjs +0 -69
- package/dist/cjs/apis/sendSeenEvent.cjs +0 -79
- package/dist/cjs/apis/sendSticker.cjs +0 -73
- package/dist/cjs/apis/sendTypingEvent.cjs +0 -49
- package/dist/cjs/apis/sendVideo.cjs +0 -134
- package/dist/cjs/apis/sendVoice.cjs +0 -89
- package/dist/cjs/apis/sendVoiceCall.cjs +0 -120
- package/dist/cjs/apis/setHiddenConversations.cjs +0 -55
- package/dist/cjs/apis/setMute.cjs +0 -83
- package/dist/cjs/apis/setPinnedConversations.cjs +0 -50
- package/dist/cjs/apis/sharePoll.cjs +0 -33
- package/dist/cjs/apis/unblockUser.cjs +0 -33
- package/dist/cjs/apis/undo.cjs +0 -58
- package/dist/cjs/apis/undoFriendRequest.cjs +0 -32
- package/dist/cjs/apis/updateActiveStatus.cjs +0 -32
- package/dist/cjs/apis/updateArchivedChatList.cjs +0 -39
- package/dist/cjs/apis/updateAutoDeleteChat.cjs +0 -56
- package/dist/cjs/apis/updateAutoReply.cjs +0 -43
- package/dist/cjs/apis/updateBankAccount.cjs +0 -36
- package/dist/cjs/apis/updateCatalog.cjs +0 -35
- package/dist/cjs/apis/updateGroupSettings.cjs +0 -48
- package/dist/cjs/apis/updateHiddenConversPin.cjs +0 -35
- package/dist/cjs/apis/updateLabels.cjs +0 -39
- package/dist/cjs/apis/updateLang.cjs +0 -35
- package/dist/cjs/apis/updateProductCatalog.cjs +0 -56
- package/dist/cjs/apis/updateProfile.cjs +0 -48
- package/dist/cjs/apis/updateProfileBio.cjs +0 -32
- package/dist/cjs/apis/updateQuickMessage.cjs +0 -66
- package/dist/cjs/apis/updateSettings.cjs +0 -95
- package/dist/cjs/apis/upgradeGroupToCommunity.cjs +0 -32
- package/dist/cjs/apis/uploadAttachment.cjs +0 -218
- package/dist/cjs/apis/uploadProductPhoto.cjs +0 -55
- package/dist/cjs/apis/votePoll.cjs +0 -34
- package/docs/INTEGRATION_GUIDE_SYNC_AND_CALL.md +0 -371
- package/docs/REA_REVERSE_ENGINEERING_PLAN.md +0 -140
- package/eslint.config.js +0 -21
- package/rollup.config.js +0 -28
|
@@ -1,371 +0,0 @@
|
|
|
1
|
-
# Hướng dẫn Tích hợp: Đồng bộ Tin nhắn Đa Thiết bị (`ZDB4.0`) & Gọi Thoại / Video (`@softtynet/zca-js`)
|
|
2
|
-
|
|
3
|
-
> [!IMPORTANT]
|
|
4
|
-
> Tài liệu này hướng dẫn chi tiết cách tích hợp các tính năng nâng cấp trên nhánh `lib` của `@softtynet/zca-js` (từ phiên bản `v2.2.0+`), đã được **kiểm định thực tế 100% trên máy chủ Zalo thật và thiết bị di động thật**.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Mục lục
|
|
9
|
-
|
|
10
|
-
1. [Tổng quan Kiến trúc](#1-tổng-quan-kiến-trúc)
|
|
11
|
-
2. [Bảng tra cứu nhanh API, Sự kiện & Hàm Giải mã](#2-bảng-tra-cứu-nhanh-api-sự-kiện--hàm-giải-mã)
|
|
12
|
-
3. [Tích hợp Tầng 1: Đồng bộ bù tin nhắn khi Offline (Catch-up Sync)](#3-tích-hợp-tầng-1-đồng-bộ-bù-tin-nhắn-khi-offline-catch-up-sync)
|
|
13
|
-
4. [Tích hợp Tầng 2: Đồng bộ lịch sử sao lưu từ Điện thoại (`ZDB4.0`)](#4-tích-hợp-tầng-2-đồng-bộ-lịch-sử-sao-lưu-từ-điện-thoại-zdb40)
|
|
14
|
-
5. [Ánh xạ ID ẩn danh (`getNoisedIds` & `decryptGids`)](#5-ánh-xạ-id-ẩn-danh-getnoisedids--decryptgids)
|
|
15
|
-
6. [Tích hợp Gọi Thoại (`CallType.Audio`) & Gọi Video (`CallType.Video`)](#6-tích-hợp-gọi-thoại-calltypeaudio--gọi-video-calltypevideo)
|
|
16
|
-
7. [Các Lưu ý Quan trọng khi Vận hành Thực tế](#7-các-lưu-ý-quan-trọng-khi-vận-hành-thực-tế)
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## 1. Tổng quan Kiến trúc
|
|
21
|
-
|
|
22
|
-
Hệ thống đồng bộ và cuộc gọi của Zalo hoạt động theo 3 luồng độc lập:
|
|
23
|
-
|
|
24
|
-
```mermaid
|
|
25
|
-
flowchart TD
|
|
26
|
-
subgraph Tầng 1: Catch-up Sync (Khi mở lại App / Mất kết nối ngắn)
|
|
27
|
-
A1["api.preloadConversations(threadIdLocalMsgId)"] --> A2["Trả về messages + unreadCleared (cmd 10053)"]
|
|
28
|
-
A3["WebSocket: sự kiện cipher_key"] --> A4["api.listener.requestOldMessages(User / Group)"]
|
|
29
|
-
A4 --> A5["Sự kiện old_messages (cmd 510 / 511) + hasMore"]
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
subgraph Tầng 2: Mobile Backup Sync (Kéo lịch sử từ Điện thoại)
|
|
33
|
-
B1["api.requestSyncFromPhone() (cmd 12000)"] --> B2["Điện thoại hiện thông báo xác nhận"]
|
|
34
|
-
B2 --> B3["WebSocket: sync_event (user_confirm -> syncmsg_info)"]
|
|
35
|
-
B3 --> B4["api.getSyncData() tải file .db.crypt"]
|
|
36
|
-
B4 --> B5["decryptWithPrivateKey -> deriveZdbAesKey -> decryptZdbBuffer -> parseZdbHeader"]
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
subgraph Luồng 3: Gọi Thoại & Video (Signaling 2 bước)
|
|
40
|
-
C1["api.sendVoiceCall(calleeId, { callType })"] --> C2["Bước 1: /api/voicecall/requestcall (cmd 11300)"]
|
|
41
|
-
C2 --> C3["Bước 2: /api/voicecall/request (cmd 11301)"]
|
|
42
|
-
C3 --> C4["Đổ chuông Thoại (1) hoặc Video (3) trên máy người nhận"]
|
|
43
|
-
C4 --> C5["api.cancelVoiceCall (11305) / api.endVoiceCall (11306)"]
|
|
44
|
-
end
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## 2. Bảng tra cứu nhanh API, Sự kiện & Hàm Giải mã
|
|
50
|
-
|
|
51
|
-
### 2.1. Các phương thức trên `api` (`API` instance)
|
|
52
|
-
|
|
53
|
-
| Phương thức | Command ID | Endpoint Zalo | Công dụng |
|
|
54
|
-
| :--- | :---: | :--- | :--- |
|
|
55
|
-
| [`api.preloadConversations(threadIdLocalMsgId?)`](../src/apis/preloadConversations.ts) | `10053` | `/api/preloadconvers/get-last-msgs` | Lấy danh sách tin nhắn mới nhất của các hội thoại (`messages`, `msgs`, `groupMsgs`) và danh sách đã đọc (`unreadCleared`). |
|
|
56
|
-
| [`api.requestSyncFromPhone(options?)`](../src/apis/requestSyncFromPhone.ts) | `12000` | `/api/message/pull_mobile_msg` | Tự sinh cặp khoá RSA-2048 và gửi yêu cầu đồng bộ lịch sử tin nhắn về điện thoại. Trả về `{ privateKey, publicKeyBase64, pcName }`. |
|
|
57
|
-
| [`api.pullMobile(options)`](../src/apis/pullMobile.ts) | `12000` | `/api/message/pull_mobile_msg` | API mức thấp để gửi yêu cầu đồng bộ với `public_key` tự quản lý. |
|
|
58
|
-
| [`api.cancelPullMobile(options)`](../src/apis/cancelPullMobile.ts) | `12700` | `/api/message/cancel_pull_mobile_msg` | Thu hồi thông báo yêu cầu đồng bộ trên điện thoại (khi hết thời gian chờ hoặc người dùng bấm huỷ trên Web/PC). |
|
|
59
|
-
| [`api.getSyncData(options)`](../src/apis/getSyncData.ts) | — | *(URL động từ `syncmsg_info`)* | Tải gói sao lưu `.db.crypt` do điện thoại tải lên về thư mục máy chủ (`savePath`). |
|
|
60
|
-
| [`api.getNoisedIds(options)`](../src/apis/getNoisedIds.ts) | `12390` | `/api/znoise` *(có fallback `zwid.api.zalo.me`)* | Chuyển đổi danh sách User ID (`fids`) và Group ID (`gids`) thật sang mã ẩn danh (Noised ID) dùng trong tên file SQLite của `ZDB4.0`. |
|
|
61
|
-
| [`api.decryptGids(gids)`](../src/apis/decryptGids.ts) | `12054` | `/api/gid/decrypt` | Giải mã danh sách Global ID / Noised ID về ID gốc. |
|
|
62
|
-
| [`api.sendVoiceCall(calleeId, options?)`](../src/apis/sendVoiceCall.ts) | `11300` + `11301` | `/api/voicecall/requestcall` + `/api/voicecall/request` | Khởi tạo cuộc gọi Thoại (`CallType.Audio = 1`) hoặc Video (`CallType.Video = 3`), làm đổ chuông thiết bị người nhận. |
|
|
63
|
-
| [`api.cancelVoiceCall(calleeId, callId, options?)`](../src/apis/cancelVoiceCall.ts) | `11305` | `/api/voicecall/cancel` | Huỷ cuộc gọi đang đổ chuông trước khi người nhận bắt máy. |
|
|
64
|
-
| [`api.endVoiceCall(calleeId, callId, options?)`](../src/apis/endVoiceCall.ts) | `11306` | `/api/voicecall/endcall` | Kết thúc cuộc gọi đang diễn ra. |
|
|
65
|
-
|
|
66
|
-
### 2.2. Các sự kiện WebSocket trên `api.listener`
|
|
67
|
-
|
|
68
|
-
| Tên sự kiện | WebSocket `cmd` | Tham số Callback | Mô tả |
|
|
69
|
-
| :--- | :---: | :--- | :--- |
|
|
70
|
-
| `old_messages` | `510` (User) / `511` (Group) | `(messages: Message[], type: ThreadType, hasMore?: boolean)` | Phát ra khi nhận lô tin nhắn cũ từ hàng đợi offline của Zalo. Khi `hasMore === true`, còn tin nhắn tiếp theo cần kéo tiếp. |
|
|
71
|
-
| `unread_cleared` | `504` / `524` | `(items: ClearUnread[])` | Phát ra khi người dùng đọc tin nhắn trên thiết bị khác (đồng bộ trạng thái đã đọc). |
|
|
72
|
-
| `sync_event` | `601` (`syncmsgmb` / `transfer_msg`) | `(event: SyncEvent)` | Phát ra các trạng thái đồng bộ từ điện thoại: `user_confirm`, `syncmsg_info`, `transfer_after_login`, `transfer_error`. |
|
|
73
|
-
| `call_event` | `601` (`voip`) | `(event: CallEvent)` | Phát ra tín hiệu cuộc gọi thời gian thực: `request`, `ringring`, `answer`, `cancel`, `endcall`, ... |
|
|
74
|
-
|
|
75
|
-
### 2.3. Các hàm tiện ích mật mã (`ZDB4.0` Crypto Helpers)
|
|
76
|
-
|
|
77
|
-
Được export trực tiếp từ `@softtynet/zca-js`:
|
|
78
|
-
- [`generateRSAKeyPair()`](../src/utils.ts): Sinh cặp khoá RSA-2048 (`publicKey`, `privateKey`, `publicKeyBase64`).
|
|
79
|
-
- [`decryptWithPrivateKey(privateKeyPem, encryptedBase64)`](../src/utils.ts): Giải mã `encrypted_key` bằng RSA PKCS#1 v1.5 (tự động dự phòng bằng thuật toán BigInt CRT thuần JS trên Node.js 20/22/24+).
|
|
80
|
-
- [`deriveZdbAesKey(decryptedRsaBytes)`](../src/utils.ts): Rút trích khoá AES-256 (32 bytes) từ payload RSA đã giải mã.
|
|
81
|
-
- [`decryptZdbBuffer(encryptedBuf, aesKey)`](../src/utils.ts): Giải mã toàn bộ nội dung file `.db.crypt` theo từng khối `64KB` (`0x10000` bytes) với `AES-256-CBC` và `IV = 16 bytes 0x00`.
|
|
82
|
-
- [`parseZdbHeader(zdbPlain)`](../src/utils.ts): Đọc header `"ZDB4.0"`, trích xuất danh sách toàn bộ file SQLite (`entries: [{ name, size }]`) và vị trí bắt đầu luồng nén XZ (`xzOffset`).
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## 3. Tích hợp Tầng 1: Đồng bộ bù tin nhắn khi Offline (Catch-up Sync)
|
|
87
|
-
|
|
88
|
-
Khi ứng dụng của bạn vừa khởi động lại hoặc vừa khôi phục kết nối mạng, hãy kết hợp **2 bước**:
|
|
89
|
-
1. Gọi `api.preloadConversations(threadIdLocalMsgId)` qua HTTP để lấy nhanh tin nhắn cuối cùng của các hội thoại và danh sách đã đọc (`unreadCleared`).
|
|
90
|
-
2. Sau khi WebSocket phát sự kiện **`cipher_key`**, gọi `api.listener.requestOldMessages(...)` để kéo toàn bộ hàng đợi tin nhắn cá nhân (`cmd 510`) và nhóm (`cmd 511`). Nếu callback `old_messages` trả về `hasMore === true`, tiếp tục truyền `msgId` cuối cùng vào `requestOldMessages(type, lastMsgId)` để phân trang đến hết.
|
|
91
|
-
|
|
92
|
-
```ts
|
|
93
|
-
import { Zalo, ThreadType } from "@softtynet/zca-js";
|
|
94
|
-
|
|
95
|
-
const zalo = new Zalo({ selfListen: true });
|
|
96
|
-
const api = await zalo.login(credentials);
|
|
97
|
-
|
|
98
|
-
// Bước 1: Preload tin nhắn mới nhất & trạng thái đã đọc qua HTTP (command 10053)
|
|
99
|
-
// Có thể truyền map { [threadId]: lastLocalMsgId } đã lưu trong DB của bạn, hoặc bỏ trống {}
|
|
100
|
-
const preload = await api.preloadConversations({});
|
|
101
|
-
|
|
102
|
-
for (const msg of preload.messages) {
|
|
103
|
-
console.log(`[Preload] thread=${msg.threadId} msgId=${msg.data.msgId}:`, msg.data.content);
|
|
104
|
-
}
|
|
105
|
-
for (const cleared of preload.unreadCleared) {
|
|
106
|
-
console.log(`[Preload UnreadCleared] thread=${cleared.idTo} lastMsgId=${cleared.lastMsgId} isGroup=${cleared.isGroup}`);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Bước 2: Lắng nghe hàng đợi tin nhắn cũ qua WebSocket (cmd 510 & 511)
|
|
110
|
-
api.listener.on("old_messages", (messages, type, hasMore) => {
|
|
111
|
-
console.log(`[OldMessages] Nhận ${messages.length} tin nhắn (${type === ThreadType.Group ? "Nhóm" : "Cá nhân"}), hasMore=${hasMore}`);
|
|
112
|
-
|
|
113
|
-
for (const msg of messages) {
|
|
114
|
-
// Lưu tin nhắn vào Database của bạn (upsert theo msg.data.msgId)
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// Nếu còn tin nhắn trong hàng đợi (hasMore === true), tự động kéo trang tiếp theo
|
|
118
|
-
if (hasMore && messages.length > 0) {
|
|
119
|
-
const lastMsgId = messages[messages.length - 1].data.msgId;
|
|
120
|
-
api.listener.requestOldMessages(type, lastMsgId);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
// Đồng bộ trạng thái đã đọc thời gian thực khi bạn đọc tin nhắn trên điện thoại
|
|
125
|
-
api.listener.on("unread_cleared", (items) => {
|
|
126
|
-
for (const item of items) {
|
|
127
|
-
console.log(`[UnreadCleared] Đã đọc hội thoại ${item.idTo} tới msgId=${item.lastMsgId}`);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
// QUAN TRỌNG: Chỉ gọi requestOldMessages sau khi nhận sự kiện "cipher_key"
|
|
132
|
-
api.listener.on("cipher_key", () => {
|
|
133
|
-
api.listener.requestOldMessages(ThreadType.User); // mặc định gửi lastId = "10000000000000000"
|
|
134
|
-
api.listener.requestOldMessages(ThreadType.Group); // mặc định gửi lastId = "10000000000000000"
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
api.listener.start({ retryOnClose: true });
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## 4. Tích hợp Tầng 2: Đồng bộ lịch sử sao lưu từ Điện thoại (`ZDB4.0`)
|
|
143
|
-
|
|
144
|
-
Tính năng này cho phép kéo toàn bộ lịch sử tin nhắn đang nằm trong máy điện thoại của người dùng lên Web/PC (giống hệt nút **"Đồng bộ tin nhắn"** trên Zalo PC/Web).
|
|
145
|
-
|
|
146
|
-
Có **2 kịch bản kích hoạt** đều được hỗ trợ đầy đủ:
|
|
147
|
-
- **Kịch bản A (Tự động sau khi quét QR)**: Nếu lúc quét mã QR trên điện thoại, người dùng tích chọn *"Đồng bộ tin nhắn"*, Zalo sẽ bắn sự kiện `SyncEventType.TRANSFER_AFTER_LOGIN` kèm `temp_key`. Bạn chỉ cần gọi `api.requestSyncFromPhone({ tempKey: event.data.temp_key })` — điện thoại sẽ tự đẩy dữ liệu lên mà không cần hỏi lại!
|
|
148
|
-
- **Kịch bản B (Chủ động yêu cầu bất kỳ lúc nào)**: Gọi `api.requestSyncFromPhone({ pcName: "Web" })` để làm nổ thông báo *"Xác nhận đồng bộ tin nhắn"* trên điện thoại người dùng. Nếu sau 60 giây người dùng không bấm, gọi `api.cancelPullMobile(...)` để đóng thông báo trên điện thoại.
|
|
149
|
-
|
|
150
|
-
```ts
|
|
151
|
-
import fs from "node:fs";
|
|
152
|
-
import {
|
|
153
|
-
SyncEventType,
|
|
154
|
-
decryptWithPrivateKey,
|
|
155
|
-
deriveZdbAesKey,
|
|
156
|
-
decryptZdbBuffer,
|
|
157
|
-
parseZdbHeader,
|
|
158
|
-
} from "@softtynet/zca-js";
|
|
159
|
-
|
|
160
|
-
let activePrivateKey = "";
|
|
161
|
-
let activePublicKeyBase64 = "";
|
|
162
|
-
let activePcName = "Web";
|
|
163
|
-
let confirmTimeout: ReturnType<typeof setTimeout> | null = null;
|
|
164
|
-
|
|
165
|
-
// 1. Lắng nghe toàn bộ tiến trình đồng bộ từ điện thoại qua sự kiện "sync_event"
|
|
166
|
-
api.listener.on("sync_event", async (event) => {
|
|
167
|
-
switch (event.type) {
|
|
168
|
-
// Kịch bản A: Người dùng tích chọn "Đồng bộ tin nhắn" ngay lúc quét QR
|
|
169
|
-
case SyncEventType.TRANSFER_AFTER_LOGIN: {
|
|
170
|
-
const session = await api.requestSyncFromPhone({
|
|
171
|
-
tempKey: event.data.temp_key,
|
|
172
|
-
pcName: "Web",
|
|
173
|
-
});
|
|
174
|
-
activePrivateKey = session.privateKey;
|
|
175
|
-
activePublicKeyBase64 = session.publicKeyBase64;
|
|
176
|
-
activePcName = session.pcName;
|
|
177
|
-
break;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// Người dùng vừa bấm "Đồng bộ ngay" trên điện thoại (user_action === 1)
|
|
181
|
-
case SyncEventType.USER_CONFIRM: {
|
|
182
|
-
if (confirmTimeout) clearTimeout(confirmTimeout);
|
|
183
|
-
if (event.data.user_action === 1) {
|
|
184
|
-
console.log("📱 Người dùng đã xác nhận! Đang chờ điện thoại đóng gói và tải file lên...");
|
|
185
|
-
} else {
|
|
186
|
-
console.log("⚠️ Người dùng đã từ chối đồng bộ trên điện thoại.");
|
|
187
|
-
}
|
|
188
|
-
break;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// Điện thoại đã tải xong file .db.crypt lên server Zalo
|
|
192
|
-
case SyncEventType.SYNCMSG_INFO: {
|
|
193
|
-
if (confirmTimeout) clearTimeout(confirmTimeout);
|
|
194
|
-
console.log(`📦 Gói sao lưu sẵn sàng: ${event.data.file_name} (${event.data.file_size} bytes)`);
|
|
195
|
-
|
|
196
|
-
// Tải file .db.crypt về thư mục ./sync_data
|
|
197
|
-
const dl = await api.getSyncData({
|
|
198
|
-
...event.data,
|
|
199
|
-
savePath: "./sync_data",
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
if (dl.success && dl.data && activePrivateKey) {
|
|
203
|
-
// Giải mã khoá RSA PKCS#1 v1.5 -> Rút trích khoá AES-256
|
|
204
|
-
const rawRsa = decryptWithPrivateKey(activePrivateKey, dl.data.encrypted_key);
|
|
205
|
-
const aesKey = deriveZdbAesKey(rawRsa);
|
|
206
|
-
|
|
207
|
-
// Giải mã toàn bộ container ZDB4.0 (chia từng khối 64KB với IV=0)
|
|
208
|
-
const cryptBytes = fs.readFileSync(dl.data.file_path);
|
|
209
|
-
const zdbPlain = decryptZdbBuffer(cryptBytes, aesKey);
|
|
210
|
-
|
|
211
|
-
// Đọc mục lục (TOC) các file SQLite hội thoại bên trong gói ZDB4.0
|
|
212
|
-
const toc = parseZdbHeader(zdbPlain);
|
|
213
|
-
console.log(`🎉 Giải mã thành công ${toc.entries.length} file SQLite hội thoại!`, toc.entries);
|
|
214
|
-
|
|
215
|
-
// Lưu ý: Luồng nén XZ chứa dữ liệu của các file SQLite bắt đầu tại:
|
|
216
|
-
const xzStream = zdbPlain.subarray(toc.xzOffset);
|
|
217
|
-
fs.writeFileSync(`${dl.data.file_path}.xz`, xzStream);
|
|
218
|
-
}
|
|
219
|
-
break;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
case SyncEventType.TRANSFER_ERROR: {
|
|
223
|
-
console.error("❌ Lỗi đồng bộ từ điện thoại:", event.data.error_code, event.data.message);
|
|
224
|
-
break;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
|
|
229
|
-
// 2. Hàm chủ động bấm nút "Đồng bộ từ điện thoại" (Kịch bản B)
|
|
230
|
-
async function triggerManualPhoneSync() {
|
|
231
|
-
const session = await api.requestSyncFromPhone({ pcName: "Web" });
|
|
232
|
-
activePrivateKey = session.privateKey;
|
|
233
|
-
activePublicKeyBase64 = session.publicKeyBase64;
|
|
234
|
-
activePcName = session.pcName;
|
|
235
|
-
|
|
236
|
-
// Tự động thu hồi thông báo trên điện thoại nếu sau 60s người dùng không bấm
|
|
237
|
-
confirmTimeout = setTimeout(async () => {
|
|
238
|
-
await api.cancelPullMobile({
|
|
239
|
-
public_key: activePublicKeyBase64,
|
|
240
|
-
pc_name: activePcName,
|
|
241
|
-
});
|
|
242
|
-
console.log("🧹 Đã thu hồi yêu cầu đồng bộ trên điện thoại do quá thời gian chờ.");
|
|
243
|
-
}, 60_000);
|
|
244
|
-
}
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## 5. Ánh xạ ID ẩn danh (`getNoisedIds` & `decryptGids`)
|
|
250
|
-
|
|
251
|
-
Bên trong gói sao lưu `ZDB4.0`, Zalo đặt tên các file SQLite theo mẫu:
|
|
252
|
-
- Tin nhắn cá nhân: `3_<myNoisedId>_<friendNoisedId>.db`
|
|
253
|
-
- Tin nhắn nhóm: `4_<myNoisedId>_<groupNoisedId>.db`
|
|
254
|
-
|
|
255
|
-
Để biết file `.db` nào ứng với bạn bè (`uid`) hay nhóm (`groupId`) nào, sử dụng [`api.getNoisedIds`](../src/apis/getNoisedIds.ts) và [`api.decryptGids`](../src/apis/decryptGids.ts):
|
|
256
|
-
|
|
257
|
-
```ts
|
|
258
|
-
// 1. Đổi danh sách UID bạn bè & Group ID thật sang Noised ID
|
|
259
|
-
const ownId = api.getOwnId();
|
|
260
|
-
const friendIds = ["5249661060655759359", "6912185345590173640"];
|
|
261
|
-
const groupIds = ["7890123456789012345"];
|
|
262
|
-
|
|
263
|
-
const noised = await api.getNoisedIds({
|
|
264
|
-
fids: [ownId, ...friendIds],
|
|
265
|
-
gids: groupIds,
|
|
266
|
-
});
|
|
267
|
-
|
|
268
|
-
const myNoisedId = noised.fids[0];
|
|
269
|
-
console.log("My Noised ID:", myNoisedId);
|
|
270
|
-
|
|
271
|
-
// Map ngược từ tên file SQLite sang Friend UID thật:
|
|
272
|
-
const sqliteFileToFriendUid = new Map<string, string>();
|
|
273
|
-
friendIds.forEach((uid, index) => {
|
|
274
|
-
const friendNoised = noised.fids[index + 1];
|
|
275
|
-
if (friendNoised) {
|
|
276
|
-
sqliteFileToFriendUid.set(`3_${myNoisedId}_${friendNoised}.db`, uid);
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
|
|
280
|
-
// 2. Giải mã trực tiếp danh sách Global ID / Noised ID qua /api/gid/decrypt
|
|
281
|
-
const decrypted = await api.decryptGids(noised.fids);
|
|
282
|
-
console.log("Decrypted mapping:", decrypted.data ?? decrypted.gids);
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
## 6. Tích hợp Gọi Thoại (`CallType.Audio`) & Gọi Video (`CallType.Video`)
|
|
288
|
-
|
|
289
|
-
Thư viện hỗ trợ khởi tạo cuộc gọi 2 bước chuẩn giao thức C++ `ZaloCall` của Zalo PC:
|
|
290
|
-
- **`CallType.Audio = 1`**: Cuộc gọi thoại 1-1.
|
|
291
|
-
- **`CallType.Video = 3`**: Cuộc gọi video 1-1 (tự động đính kèm cấu hình codec H.264 `payload: 97` trong `extendData`).
|
|
292
|
-
|
|
293
|
-
### 6.1. Gọi đi (Đổ chuông Thoại hoặc Video) & Tự động huỷ khi không bắt máy
|
|
294
|
-
|
|
295
|
-
```ts
|
|
296
|
-
import { CallType } from "@softtynet/zca-js";
|
|
297
|
-
|
|
298
|
-
const targetUid = "5249661060655759359"; // Luôn truyền dạng chuỗi (string) 19 chữ số
|
|
299
|
-
|
|
300
|
-
// --- A. Khởi tạo Cuộc gọi VIDEO ---
|
|
301
|
-
const videoCall = await api.sendVoiceCall(targetUid, {
|
|
302
|
-
callType: CallType.Video, // = 3
|
|
303
|
-
});
|
|
304
|
-
console.log("Đang đổ chuông Video:", {
|
|
305
|
-
callId: videoCall.callId,
|
|
306
|
-
sessId: videoCall.sessId,
|
|
307
|
-
rtpServer: videoCall.rtpServer,
|
|
308
|
-
});
|
|
309
|
-
|
|
310
|
-
// Huỷ cuộc gọi Video sau 30 giây nếu người nhận chưa bắt máy
|
|
311
|
-
const ringTimer = setTimeout(async () => {
|
|
312
|
-
await api.cancelVoiceCall(targetUid, videoCall.callId, {
|
|
313
|
-
callType: CallType.Video,
|
|
314
|
-
});
|
|
315
|
-
console.log("Đã huỷ cuộc gọi Video do hết thời gian chờ.");
|
|
316
|
-
}, 30_000);
|
|
317
|
-
|
|
318
|
-
// --- B. Khởi tạo Cuộc gọi THOẠI ---
|
|
319
|
-
const audioCall = await api.sendVoiceCall(targetUid, {
|
|
320
|
-
callType: CallType.Audio, // = 1 (mặc định)
|
|
321
|
-
});
|
|
322
|
-
|
|
323
|
-
// Kết thúc cuộc gọi đang diễn ra bất kỳ lúc nào
|
|
324
|
-
await api.endVoiceCall(targetUid, audioCall.callId);
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
### 6.2. Lắng nghe sự kiện Cuộc gọi thời gian thực (`call_event`)
|
|
328
|
-
|
|
329
|
-
```ts
|
|
330
|
-
import { CallEventType } from "@softtynet/zca-js";
|
|
331
|
-
|
|
332
|
-
api.listener.on("call_event", (event) => {
|
|
333
|
-
console.log(`[VoIP Signal] type=${event.type}`, event.data);
|
|
334
|
-
|
|
335
|
-
switch (event.type) {
|
|
336
|
-
case CallEventType.RINGRING:
|
|
337
|
-
console.log(`🔔 Máy của người nhận đã bắt đầu đổ chuông (callId=${event.data.callId})`);
|
|
338
|
-
break;
|
|
339
|
-
case CallEventType.ANSWER:
|
|
340
|
-
console.log(`🟢 Người nhận đã bắt máy (callId=${event.data.callId})`);
|
|
341
|
-
break;
|
|
342
|
-
case CallEventType.CANCEL:
|
|
343
|
-
case CallEventType.ENDCALL:
|
|
344
|
-
console.log(`🔴 Cuộc gọi đã kết thúc hoặc bị từ chối (callId=${event.data.callId})`);
|
|
345
|
-
break;
|
|
346
|
-
case CallEventType.INCOMING_REQUEST:
|
|
347
|
-
console.log(`📲 Có cuộc gọi đến từ UID ${event.data.callerId} (callId=${event.data.callId})`);
|
|
348
|
-
break;
|
|
349
|
-
}
|
|
350
|
-
});
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
---
|
|
354
|
-
|
|
355
|
-
## 7. Các Lưu ý Quan trọng khi Vận hành Thực tế
|
|
356
|
-
|
|
357
|
-
> [!WARNING]
|
|
358
|
-
> **1. Tuyệt đối giữ UID ở kiểu `string` (không ép kiểu `Number`)**
|
|
359
|
-
> UID của Zalo có độ dài 19 chữ số (ví dụ `"5249661060655759359"`), vượt quá giới hạn `Number.MAX_SAFE_INTEGER` (`9007199254740991`) của JavaScript. Nếu bạn ép kiểu `Number(uid)` trước khi truyền vào hàm, 3 chữ số cuối sẽ bị làm tròn thành `000` và máy chủ Zalo sẽ trả lỗi `ZaloApiError: Tham số không hợp lệ (code: 114)`.
|
|
360
|
-
|
|
361
|
-
> [!TIP]
|
|
362
|
-
> **2. Thời điểm gọi `requestOldMessages`**
|
|
363
|
-
> Luôn gọi `api.listener.requestOldMessages(...)` bên trong sự kiện `api.listener.on("cipher_key", ...)` thay vì `on("connected")`. Khi sự kiện `connected` vừa nổ, kết nối TCP/WebSocket mới thiết lập xong nhưng máy chủ Zalo chưa gửi gói `cmd=1, subCmd=1` chứa `cipher_key`.
|
|
364
|
-
|
|
365
|
-
> [!NOTE]
|
|
366
|
-
> **3. Kịch bản kiểm định nhanh trên máy của bạn**
|
|
367
|
-
> Bất kỳ lúc nào muốn kiểm tra lại toàn bộ tính năng trên tài khoản thật, bạn có thể chạy:
|
|
368
|
-
> - Kiểm định tự động (Offline/Unit): `npm run test:verify`
|
|
369
|
-
> - Kiểm định toàn diện trên Server thật (6 bước): `npm run test:live`
|
|
370
|
-
> - Chỉ test nhanh Gọi Thoại + Video tới 1 UID: `npm run test:live -- --only-call --call <UID>`
|
|
371
|
-
> - Chỉ test riêng Gọi Video tới 1 UID: `npm run test:live -- --only-call --video-only --call <UID>`
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
# Tài Liệu & Kế Hoạch Sử Dụng REA (`morluto/rea`) Cho Dự Án `zca-js`
|
|
2
|
-
|
|
3
|
-
Tài liệu này là sổ tay kỹ thuật hoàn chỉnh hướng dẫn cài đặt, vận hành bộ công cụ **REA (`rea-agents`)** ([github.com/morluto/rea](https://github.com/morluto/rea) | [rea.tools](https://rea.tools/)) và **Kế hoạch 4 giai đoạn** áp dụng REA để dịch ngược các tính năng nâng cao của Zalo Desktop (`app.asar` + Native Addons) và Zalo Web (`chat.zalo.me`).
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 1. Tổng Quan Về REA (`rea-agents`)
|
|
8
|
-
|
|
9
|
-
**REA (Reverse Engineering Assistant)** là một bộ công cụ **CLI + MCP Server** chuyên dụng giúp kết nối các AI Coding Agents (như Antigravity, Claude Code, Cursor, Codex) trực tiếp với các trình dịch ngược phần mềm:
|
|
10
|
-
|
|
11
|
-
| Thành phần mục tiêu | Công cụ REA sử dụng | Ứng dụng trong `zca-js` |
|
|
12
|
-
| :--- | :--- | :--- |
|
|
13
|
-
| **Gói Electron (`app.asar`)** | `analyze-javascript-application` | Giải nén, quét AST, trích xuất bảng `commandId`, endpoint REST/WebSocket, hằng số mã hóa từ `/Applications/Zalo.app/Contents/Resources/app.asar`. |
|
|
14
|
-
| **Web App (`chat.zalo.me`)** | `analyze-website` + HAR Capture | Quét các webpack chunks, WebWorker, WASM (`libzproto_wasm_bg.wasm`) và phân tích lưu lượng mạng thực tế (`.har`). |
|
|
15
|
-
| **Cơ sở dữ liệu cục bộ** | SQLite Inspector | Kiểm tra cấu trúc bảng `ChatContent`, `message`, `conversation` trong file sao lưu `ZDB4.0` (`.db.crypt`) của Zalo Mobile/PC. |
|
|
16
|
-
| **Native Binary (`.node` / `.dylib`)** | Ghidra / Hopper / IDA Bridge | Dịch ngược mã máy C/C++ trong `zcall.node`, `libzrtc.dylib`, `zcrypto.node` để lấy thuật toán mã hóa media (ZRTP) và chữ ký native. |
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## 2. Cài Đặt & Cấu Hình Chuẩn Bị
|
|
21
|
-
|
|
22
|
-
### 2.1. Yêu cầu hệ thống
|
|
23
|
-
1. **Node.js `>= 22.19.0` hoặc `24.x`** (bắt buộc vì `rea-agents` sử dụng module native `node:sqlite` để lập chỉ mục các hàm/symbol khi dịch ngược):
|
|
24
|
-
```bash
|
|
25
|
-
# Kiểm tra phiên bản Node hiện tại
|
|
26
|
-
node -v
|
|
27
|
-
|
|
28
|
-
# Nếu đang ở Node 20, chuyển sang Node 22+ qua nvm hoặc fnm:
|
|
29
|
-
nvm install 22 && nvm use 22
|
|
30
|
-
```
|
|
31
|
-
2. **Ứng dụng Zalo Desktop trên macOS**:
|
|
32
|
-
- Đường dẫn ASAR: `/Applications/Zalo.app/Contents/Resources/app.asar`
|
|
33
|
-
- Đường dẫn Native Addons đã giải nén: `/Applications/Zalo.app/Contents/Resources/app.asar.unpacked/`
|
|
34
|
-
3. **Trình dịch ngược Binary (tuỳ chọn cho Giai đoạn 1 & 3)**:
|
|
35
|
-
- **Ghidra** (miễn phí, mã nguồn mở) hoặc **Hopper Disassembler** / **IDA Pro** trên macOS.
|
|
36
|
-
|
|
37
|
-
### 2.2. Cài đặt và kết nối MCP Server
|
|
38
|
-
Chạy lệnh khởi tạo tự động của REA để đăng ký MCP server vào trình soạn thảo/AI Agent:
|
|
39
|
-
```bash
|
|
40
|
-
npx -y rea-agents@latest setup
|
|
41
|
-
```
|
|
42
|
-
Hoặc cấu hình thủ công trong `mcp_config.json`:
|
|
43
|
-
```json
|
|
44
|
-
{
|
|
45
|
-
"mcpServers": {
|
|
46
|
-
"rea": {
|
|
47
|
-
"command": "npx",
|
|
48
|
-
"args": ["-y", "rea-agents@latest", "mcp"]
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## 3. Sổ Tay Các Lệnh REA Thực Chiến Với Zalo
|
|
57
|
-
|
|
58
|
-
### 3.1. Phân tích gói Electron `app.asar` của Zalo PC
|
|
59
|
-
```bash
|
|
60
|
-
npx -y rea-agents@latest analyze-javascript-application \
|
|
61
|
-
"/Applications/Zalo.app/Contents/Resources/app.asar" \
|
|
62
|
-
--json
|
|
63
|
-
```
|
|
64
|
-
- Lệnh này giúp lập chỉ mục toàn bộ các webpack modules bên trong `app.asar` (ví dụ module chứa bảng định tuyến `commandId` từ `10001` đến `16228`, `SyncMessageController`, `BackupMsgController`, `VoiceCallDomain`, v.v.).
|
|
65
|
-
|
|
66
|
-
### 3.2. Phân tích trực tiếp `chat.zalo.me`
|
|
67
|
-
```bash
|
|
68
|
-
npx -y rea-agents@latest analyze-website https://chat.zalo.me --json
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### 3.3. Giải nén `app.asar` ra thư mục tạm để tra cứu sâu kết hợp REA
|
|
72
|
-
Khi cần kết hợp REA với tìm kiếm mã nguồn trực tiếp:
|
|
73
|
-
```bash
|
|
74
|
-
npx -y @electron/asar extract \
|
|
75
|
-
"/Applications/Zalo.app/Contents/Resources/app.asar" \
|
|
76
|
-
"/tmp/zalo-asar-extracted"
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## 4. Hiện Trạng Các Tính Năng Đã Hoàn Thiện (100% Verified) Trong `zca-js`
|
|
82
|
-
|
|
83
|
-
Trước khi dùng REA cho các tính năng mới, dưới đây là các tính năng **đã được xác minh 100% từ `app.asar` và tích hợp sẵn vào nhánh `lib` của `zca-js`**:
|
|
84
|
-
|
|
85
|
-
| Nhóm tính năng | API / Sự kiện trong `zca-js` | Command ID / Giao thức Zalo | Trạng thái |
|
|
86
|
-
| :--- | :--- | :--- | :--- |
|
|
87
|
-
| **Lấy bù tin nhắn khi mở lại app (Offline Catch-up)** | `api.preloadConversations(threadIdLocalMsgId)` | `10053` (`/api/preloadconvers/get-last-msgs`) | ✅ Hoàn tất 100% |
|
|
88
|
-
| **Kéo hàng đợi tin nhắn nhỡ qua WebSocket** | `api.listener.requestOldMessages(threadType, lastMsgId)` + sự kiện `old_messages` | WS `cmd: 510` (User) & `cmd: 511` (Group), `subCmd: 0 \| 1` | ✅ Hoàn tất 100% |
|
|
89
|
-
| **Đồng bộ trạng thái đã đọc liên thiết bị** | Sự kiện `api.listener.on("unread_cleared", ...)` | WS `cmd: 504` / `524` (`clearUnreads`) | ✅ Hoàn tất 100% |
|
|
90
|
-
| **Kích hoạt đồng bộ từ điện thoại (Mobile Backup Sync)** | `api.requestSyncFromPhone()`, `api.pullMobile()`, `api.cancelPullMobile()` | `12000` (`pull_mobile_msg`), `12700` (`cancel_pull_mobile_msg`) | ✅ Hoàn tất 100% |
|
|
91
|
-
| **Lắng nghe tiến trình đồng bộ từ điện thoại** | Sự kiện `api.listener.on("sync_event", ...)` (`USER_CONFIRM`, `SYNCMSG_INFO`, `TRANSFER_ERROR`, `TRANSFER_AFTER_LOGIN`) | WS `cmd: 601`, `act_type: "syncmsgmb"` & `"transfer_msg"` | ✅ Hoàn tất 100% |
|
|
92
|
-
| **Tải & giải mã gói sao lưu `ZDB4.0` (`.db.crypt`)** | `api.getSyncData()`, `decryptWithPrivateKey()`, `deriveZdbAesKey()`, `decryptZdbBuffer()` | RSA-2048 PKCS#1 v1.5 + AES-256-CBC 64KB chunk (`ZDB4.0`) | ✅ Hoàn tất 100% |
|
|
93
|
-
| **Quy đổi UID/GID số thuần sang Noised ID 19 số** | `api.getNoisedIds({ fids, gids })` & `api.decryptGids(gids)` | `12390` (`/api/znoise`) & `12054` (`/api/gid/decrypt`) | ✅ Hoàn tất 100% |
|
|
94
|
-
| **Báo hiệu Gọi Điện Thoại (Voice/Video Call Signaling)** | `api.sendVoiceCall()`, `api.cancelVoiceCall()`, `api.endVoiceCall()` + sự kiện `call_event` | `11300` (`requestcall`), `11301` (`request`), `11305` (`cancel`), `11306` (`endcall`), WS `act_type: "voip"` | ✅ Hoàn tất 100% |
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## 5. Kế Hoạch 4 Giai Đoạn Sử Dụng REA Cho Các Tính Năng Chưa Có
|
|
99
|
-
|
|
100
|
-
Dưới đây là lộ trình chi tiết sử dụng **REA** để nghiên cứu và mở khóa 4 nhóm tính năng phức tạp tiếp theo của Zalo:
|
|
101
|
-
|
|
102
|
-
### Giai đoạn 1: Giải mã Media Plane 2 chiều (Đàm thoại âm thanh RTP/ZRTP thực sự)
|
|
103
|
-
- **Vấn đề hiện tại**: `api.sendVoiceCall()` đã làm đổ chuông điện thoại người nhận và lấy về thành công `{ sessId, rtpServer, rtcpServer, zrtpKey, codec }`, đồng thời nhận được sự kiện `call_event` khi người nhận bắt máy (`CallEventType.ANSWER`). Tuy nhiên, để truyền/nhận giọng nói 2 chiều sau khi bắt máy, Zalo PC không dùng WebRTC của trình duyệt mà uỷ quyền cho native addon `zcall.node` + `libzrtc.dylib`.
|
|
104
|
-
- **Mục tiêu dùng REA**:
|
|
105
|
-
1. Dùng REA kết nối với **Ghidra/Hopper** mở 2 file native trong `/Applications/Zalo.app/Contents/Resources/app.asar.unpacked/`:
|
|
106
|
-
- `zcall.node` (Bridge IPC giữa Electron JS và C++)
|
|
107
|
-
- `libzrtc.dylib` (Engine xử lý giao thức UDP RTP/RTCP + mã hóa ZRTP)
|
|
108
|
-
2. Tìm các hàm xuất (exports) liên quan đến `initCall`, `sendDataToNative`, `recvSignal` (đặc biệt khi nhận `command: 401`, `416`, `402` trong `app.asar`) và `InitZRTP`.
|
|
109
|
-
3. Xác định định dạng header gói tin UDP đầu tiên gửi tới `rtpServer` / `rtcpServer` (cách đóng gói `sessId`, `callId`, `zrtpKey` và codec Opus payload type).
|
|
110
|
-
4. Viết module `VoiceCallMediaSession` bằng `node:dgram` (UDP socket) trong `zca-js` để cho phép phát file âm thanh (`.wav`/`.opus`) vào cuộc gọi hoặc thu âm luồng thoại của đối phương.
|
|
111
|
-
|
|
112
|
-
### Giai đoạn 2: Giải mã giao thức Đồng bộ thế hệ 2 (`Transfer-Sync-V2` & WebAssembly)
|
|
113
|
-
- **Vấn đề hiện tại**: Ngoài luồng `pull_mobile_msg` (`12000` - `ZDB4.0`), các bản Zalo mới đang triển khai song song giao thức `/api/transfer-sync-v2/request-sync` (command `12888`) và sự kiện `act_type: "transfer_sync2"` sử dụng file WebAssembly `libzproto_wasm_bg.wasm`.
|
|
114
|
-
- **Mục tiêu dùng REA**:
|
|
115
|
-
1. Dùng REA phân tích class `SyncController` và `_processSync2Ctrl` trong `app.asar` để lấy toàn bộ state machine của `transfer_sync2`.
|
|
116
|
-
2. Dùng REA + Ghidra (với plugin WASM) hoặc `wasm2wat` phân tích file `libzproto_wasm_bg.wasm` để trích xuất schema Protobuf của tham số `data` trong:
|
|
117
|
-
- `/api/transfer-sync-v2/request-sync` (`12888`)
|
|
118
|
-
- `/api/transfer-sync-v2/download`
|
|
119
|
-
3. Tích hợp bộ parser Protobuf thuần TypeScript vào `zca-js` mà không cần phụ thuộc binary WASM nặng nề.
|
|
120
|
-
|
|
121
|
-
### Giai đoạn 3: Giải mã Tin nhắn Mã hóa Đầu cuối (`CHAT_E2EE`, commands `16000`–`16201`)
|
|
122
|
-
- **Vấn đề hiện tại**: Khi một cuộc trò chuyện bật "Mã hóa đầu cuối (E2EE)", tin nhắn trả về nằm trong mảng `eeMsgs` (khi gọi `preloadConversations`) và sử dụng cụm endpoint `/api/e2ee/pc/message/*` (`16000`–`16201`).
|
|
123
|
-
- **Mục tiêu dùng REA**:
|
|
124
|
-
1. Dùng REA quét toàn bộ các tham chiếu tới `16000`–`16201` (`getE2eeDomain()`, `deleteOneOneE2eeMessageV2`, `EntriesTransferManager`) trong `app.asar`.
|
|
125
|
-
2. Dùng REA kết nối Ghidra phân tích `zcrypto.node` để xác định cơ chế trao đổi khoá (Signal Protocol / Double Ratchet hoặc X25519 + AES-GCM của Zalo).
|
|
126
|
-
3. Bổ sung `sendE2EEMessage` và bộ giải mã tự động cho `eeMsgs` trong `listen.ts` và `preloadConversations.ts`.
|
|
127
|
-
|
|
128
|
-
### Giai đoạn 4: Gọi Nhóm (`Group Voice/Video Call`, commands `12433`–`12447`)
|
|
129
|
-
- **Vấn đề hiện tại**: Từ `app.asar`, chúng ta đã trích xuất được danh sách đầy đủ các API gọi nhóm:
|
|
130
|
-
- `12433`: `/api/voicecall/group/requestcall` (`{ groupId, callId, typeRequest, data, partners }`)
|
|
131
|
-
- `12434`: `/api/voicecall/group/request` (`{ calleeId, callId, callType, data, session, partners, groupId }`)
|
|
132
|
-
- `12435`: `/api/voicecall/group/adduser`
|
|
133
|
-
- `12436`: `/api/voicecall/group/answer`
|
|
134
|
-
- `12437`: `/api/voicecall/group/cancel`
|
|
135
|
-
- `12438`: `/api/voicecall/group/endcall`
|
|
136
|
-
- `12439`: `/api/voicecall/group/ringring`
|
|
137
|
-
- `12445`: `/api/voicecall/group/state`
|
|
138
|
-
- **Mục tiêu dùng REA**:
|
|
139
|
-
1. Dùng tính năng phân tích HAR của REA khi thực hiện 1 cuộc gọi nhóm thực tế trên Zalo PC/Web để bắt chính xác cấu trúc chuỗi JSON bên trong trường `data` và mảng `partners`.
|
|
140
|
-
2. Sau khi có mẫu payload thực tế từ HAR, đóng gói thành các API `sendGroupVoiceCall`, `cancelGroupVoiceCall`, `endGroupVoiceCall` trong `zca-js`.
|
package/eslint.config.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import js from "@eslint/js";
|
|
2
|
-
import globals from "globals";
|
|
3
|
-
import tseslint from "typescript-eslint";
|
|
4
|
-
import { defineConfig, globalIgnores } from "eslint/config";
|
|
5
|
-
|
|
6
|
-
export default defineConfig([
|
|
7
|
-
{
|
|
8
|
-
files: ["**/*.{js,ts}"],
|
|
9
|
-
plugins: { js },
|
|
10
|
-
extends: ["js/recommended"],
|
|
11
|
-
languageOptions: { globals: globals.node },
|
|
12
|
-
},
|
|
13
|
-
tseslint.configs.recommended,
|
|
14
|
-
{
|
|
15
|
-
rules: {
|
|
16
|
-
"@typescript-eslint/consistent-type-imports": "error",
|
|
17
|
-
"no-extra-boolean-cast": "off",
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
globalIgnores(["dist/*"]),
|
|
21
|
-
]);
|
package/rollup.config.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// rollup.config.js
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
input: "dist/index.js",
|
|
5
|
-
output: {
|
|
6
|
-
dir: "dist/cjs",
|
|
7
|
-
entryFileNames: "[name].cjs",
|
|
8
|
-
format: "cjs",
|
|
9
|
-
preserveModules: true,
|
|
10
|
-
},
|
|
11
|
-
external: [
|
|
12
|
-
"crypto-js",
|
|
13
|
-
"events",
|
|
14
|
-
"form-data",
|
|
15
|
-
"fs",
|
|
16
|
-
"node:crypto",
|
|
17
|
-
"node:fs",
|
|
18
|
-
"node:fs/promises",
|
|
19
|
-
"node:path",
|
|
20
|
-
"pako",
|
|
21
|
-
"semver",
|
|
22
|
-
"sharp",
|
|
23
|
-
"spark-md5",
|
|
24
|
-
"tough-cookie",
|
|
25
|
-
"ws",
|
|
26
|
-
"json-bigint"
|
|
27
|
-
],
|
|
28
|
-
};
|