@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
package/dist/utils.js
CHANGED
|
@@ -2,14 +2,17 @@ import cryptojs from "crypto-js";
|
|
|
2
2
|
import crypto from "node:crypto";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import pako from "pako";
|
|
6
5
|
import SparkMD5 from "spark-md5";
|
|
7
6
|
import toughCookie from "tough-cookie";
|
|
8
|
-
import JSONBig from "json-bigint";
|
|
9
7
|
import { isContextSession } from "./context.js";
|
|
10
8
|
import { ZaloApiError, ZaloApiMissingImageMetadataGetter } from "./Errors/index.js";
|
|
11
9
|
import { FriendEventType } from "./models/FriendEvent.js";
|
|
12
10
|
import { GroupEventType } from "./models/GroupEvent.js";
|
|
11
|
+
import { ZALO_DEFAULTS, ZALO_DOMAINS, ZALO_PROTOCOL } from "./constants/index.js";
|
|
12
|
+
import { decodeAES, encodeAES } from "./crypto/index.js";
|
|
13
|
+
export * from "./constants/index.js";
|
|
14
|
+
export * from "./crypto/index.js";
|
|
15
|
+
export * from "./core/index.js";
|
|
13
16
|
export const isBun = typeof Bun !== "undefined";
|
|
14
17
|
export function hasOwn(obj, key) {
|
|
15
18
|
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
@@ -20,7 +23,6 @@ export function hasOwn(obj, key) {
|
|
|
20
23
|
* @param type
|
|
21
24
|
* @param params
|
|
22
25
|
* @returns MD5 hash
|
|
23
|
-
*
|
|
24
26
|
*/
|
|
25
27
|
export function getSignKey(type, params) {
|
|
26
28
|
const n = [];
|
|
@@ -30,7 +32,7 @@ export function getSignKey(type, params) {
|
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
34
|
n.sort();
|
|
33
|
-
let a =
|
|
35
|
+
let a = ZALO_PROTOCOL.SIGN_KEY_PREFIX + type;
|
|
34
36
|
for (let s = 0; s < n.length; s++)
|
|
35
37
|
a += params[n[s]];
|
|
36
38
|
return cryptojs.MD5(a).toString();
|
|
@@ -41,7 +43,6 @@ export function getSignKey(type, params) {
|
|
|
41
43
|
* @param params
|
|
42
44
|
* @param apiVersion automatically add zalo api version to url params
|
|
43
45
|
* @returns
|
|
44
|
-
*
|
|
45
46
|
*/
|
|
46
47
|
export function makeURL(ctx, baseURL, params = {}, apiVersion = true) {
|
|
47
48
|
const url = new URL(baseURL);
|
|
@@ -58,214 +59,32 @@ export function makeURL(ctx, baseURL, params = {}, apiVersion = true) {
|
|
|
58
59
|
}
|
|
59
60
|
return url.toString();
|
|
60
61
|
}
|
|
61
|
-
export class ParamsEncryptor {
|
|
62
|
-
constructor({ type, imei, firstLaunchTime }) {
|
|
63
|
-
this.zcid = null;
|
|
64
|
-
this.enc_ver = "v2";
|
|
65
|
-
this.zcid = null;
|
|
66
|
-
this.encryptKey = null;
|
|
67
|
-
this.createZcid(type, imei, firstLaunchTime);
|
|
68
|
-
this.zcid_ext = ParamsEncryptor.randomString();
|
|
69
|
-
this.createEncryptKey();
|
|
70
|
-
}
|
|
71
|
-
getEncryptKey() {
|
|
72
|
-
if (!this.encryptKey)
|
|
73
|
-
throw new ZaloApiError("getEncryptKey: didn't create encryptKey yet");
|
|
74
|
-
return this.encryptKey;
|
|
75
|
-
}
|
|
76
|
-
createZcid(type, imei, firstLaunchTime) {
|
|
77
|
-
if (!type || !imei || !firstLaunchTime)
|
|
78
|
-
throw new ZaloApiError("createZcid: missing params");
|
|
79
|
-
const msg = `${type},${imei},${firstLaunchTime}`;
|
|
80
|
-
const s = ParamsEncryptor.encodeAES("3FC4F0D2AB50057BCE0D90D9187A22B1", msg, "hex", true);
|
|
81
|
-
this.zcid = s;
|
|
82
|
-
}
|
|
83
|
-
createEncryptKey(e = 0) {
|
|
84
|
-
const t = (e, t) => {
|
|
85
|
-
const { even: n } = ParamsEncryptor.processStr(e), { even: a, odd: s } = ParamsEncryptor.processStr(t);
|
|
86
|
-
if (!n || !a || !s)
|
|
87
|
-
return !1;
|
|
88
|
-
const i = n.slice(0, 8).join("") + a.slice(0, 12).join("") + s.reverse().slice(0, 12).join("");
|
|
89
|
-
return (this.encryptKey = i), !0;
|
|
90
|
-
};
|
|
91
|
-
if (!this.zcid || !this.zcid_ext)
|
|
92
|
-
throw new ZaloApiError("createEncryptKey: zcid or zcid_ext is null");
|
|
93
|
-
try {
|
|
94
|
-
const n = cryptojs.MD5(this.zcid_ext).toString().toUpperCase();
|
|
95
|
-
if (t(n, this.zcid) || !(e < 3))
|
|
96
|
-
return !1;
|
|
97
|
-
this.createEncryptKey(e + 1);
|
|
98
|
-
}
|
|
99
|
-
catch (_a) {
|
|
100
|
-
if (e < 3)
|
|
101
|
-
this.createEncryptKey(e + 1);
|
|
102
|
-
}
|
|
103
|
-
return !0;
|
|
104
|
-
}
|
|
105
|
-
getParams() {
|
|
106
|
-
return this.zcid
|
|
107
|
-
? {
|
|
108
|
-
zcid: this.zcid,
|
|
109
|
-
zcid_ext: this.zcid_ext,
|
|
110
|
-
enc_ver: this.enc_ver,
|
|
111
|
-
}
|
|
112
|
-
: null;
|
|
113
|
-
}
|
|
114
|
-
static processStr(e) {
|
|
115
|
-
if (!e || "string" != typeof e)
|
|
116
|
-
return {
|
|
117
|
-
even: null,
|
|
118
|
-
odd: null,
|
|
119
|
-
};
|
|
120
|
-
const [t, n] = [...e].reduce((e, t, n) => (e[n % 2].push(t), e), [[], []]);
|
|
121
|
-
return {
|
|
122
|
-
even: t,
|
|
123
|
-
odd: n,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
static randomString(e, t) {
|
|
127
|
-
const n = e || 6, a = t && e && t > e ? t : 12;
|
|
128
|
-
let s = Math.floor(Math.random() * (a - n + 1)) + n;
|
|
129
|
-
if (s > 12) {
|
|
130
|
-
let e = "";
|
|
131
|
-
for (; s > 0;) {
|
|
132
|
-
e += Math.random()
|
|
133
|
-
.toString(16)
|
|
134
|
-
.substr(2, s > 12 ? 12 : s);
|
|
135
|
-
s -= 12;
|
|
136
|
-
}
|
|
137
|
-
return e;
|
|
138
|
-
}
|
|
139
|
-
return Math.random().toString(16).substr(2, s);
|
|
140
|
-
}
|
|
141
|
-
static encodeAES(e, message, type, uppercase, s = 0) {
|
|
142
|
-
if (!message)
|
|
143
|
-
return null;
|
|
144
|
-
try {
|
|
145
|
-
{
|
|
146
|
-
const encoder = "hex" == type ? cryptojs.enc.Hex : cryptojs.enc.Base64;
|
|
147
|
-
const key = cryptojs.enc.Utf8.parse(e);
|
|
148
|
-
const cfg = {
|
|
149
|
-
words: [0, 0, 0, 0],
|
|
150
|
-
sigBytes: 16,
|
|
151
|
-
};
|
|
152
|
-
const encrypted = cryptojs.AES.encrypt(message, key, {
|
|
153
|
-
iv: cfg,
|
|
154
|
-
mode: cryptojs.mode.CBC,
|
|
155
|
-
padding: cryptojs.pad.Pkcs7,
|
|
156
|
-
}).ciphertext.toString(encoder);
|
|
157
|
-
return uppercase ? encrypted.toUpperCase() : encrypted;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
catch (_a) {
|
|
161
|
-
return s < 3 ? ParamsEncryptor.encodeAES(e, message, type, uppercase, s + 1) : null;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
export function decryptResp(key, data) {
|
|
166
|
-
let n = null;
|
|
167
|
-
try {
|
|
168
|
-
n = decodeRespAES(key, data);
|
|
169
|
-
const parsed = JSON.parse(n);
|
|
170
|
-
return parsed;
|
|
171
|
-
}
|
|
172
|
-
catch (_a) {
|
|
173
|
-
return n;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
function decodeRespAES(key, data) {
|
|
177
|
-
data = decodeURIComponent(data);
|
|
178
|
-
const parsedKey = cryptojs.enc.Utf8.parse(key);
|
|
179
|
-
const n = {
|
|
180
|
-
words: [0, 0, 0, 0],
|
|
181
|
-
sigBytes: 16,
|
|
182
|
-
};
|
|
183
|
-
return cryptojs.AES.decrypt({
|
|
184
|
-
ciphertext: cryptojs.enc.Base64.parse(data),
|
|
185
|
-
}, parsedKey, {
|
|
186
|
-
iv: n,
|
|
187
|
-
mode: cryptojs.mode.CBC,
|
|
188
|
-
padding: cryptojs.pad.Pkcs7,
|
|
189
|
-
}).toString(cryptojs.enc.Utf8);
|
|
190
|
-
}
|
|
191
|
-
export function decodeBase64ToBuffer(data) {
|
|
192
|
-
return Buffer.from(data, "base64");
|
|
193
|
-
}
|
|
194
|
-
export function decodeUnit8Array(data) {
|
|
195
|
-
try {
|
|
196
|
-
return new TextDecoder().decode(data);
|
|
197
|
-
}
|
|
198
|
-
catch (_a) {
|
|
199
|
-
return null;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
export function encodeAES(secretKey, data, t = 0) {
|
|
203
|
-
try {
|
|
204
|
-
const key = cryptojs.enc.Base64.parse(secretKey);
|
|
205
|
-
return cryptojs.AES.encrypt(data, key, {
|
|
206
|
-
iv: cryptojs.enc.Hex.parse("00000000000000000000000000000000"),
|
|
207
|
-
mode: cryptojs.mode.CBC,
|
|
208
|
-
padding: cryptojs.pad.Pkcs7,
|
|
209
|
-
}).ciphertext.toString(cryptojs.enc.Base64);
|
|
210
|
-
}
|
|
211
|
-
catch (_a) {
|
|
212
|
-
return t < 3 ? encodeAES(secretKey, data, t + 1) : null;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
export function decodeAES(secretKey, data, t = 0) {
|
|
216
|
-
try {
|
|
217
|
-
data = decodeURIComponent(data);
|
|
218
|
-
const key = cryptojs.enc.Base64.parse(secretKey);
|
|
219
|
-
return cryptojs.AES.decrypt({
|
|
220
|
-
ciphertext: cryptojs.enc.Base64.parse(data),
|
|
221
|
-
}, key, {
|
|
222
|
-
iv: cryptojs.enc.Hex.parse("00000000000000000000000000000000"),
|
|
223
|
-
mode: cryptojs.mode.CBC,
|
|
224
|
-
padding: cryptojs.pad.Pkcs7,
|
|
225
|
-
}).toString(cryptojs.enc.Utf8);
|
|
226
|
-
}
|
|
227
|
-
catch (_a) {
|
|
228
|
-
return t < 3 ? decodeAES(secretKey, data, t + 1) : null;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
62
|
/**
|
|
232
63
|
* Suy luận nền tảng hệ điều hành (OS) từ chuỗi User-Agent.
|
|
233
64
|
*
|
|
234
|
-
* Hàm này được sinh ra để giải quyết vấn đề cốt lõi: thư viện zca-js trước đây
|
|
235
|
-
* hardcode `sec-ch-ua-platform: "Windows"` ở 8 chỗ trong loginQR, trong khi
|
|
236
|
-
* User-Agent có thể là Mac/Linux — tạo ra Browser Mismatch khiến Zalo ban session.
|
|
237
|
-
*
|
|
238
|
-
* Thứ tự ưu tiên nhận diện: Windows → macOS → Linux → mặc định Windows (an toàn nhất)
|
|
239
|
-
*
|
|
240
65
|
* @returns Chuỗi platform theo định dạng Sec-CH-UA-Platform, ví dụ: "Windows", "macOS", "Linux"
|
|
241
66
|
*/
|
|
242
67
|
export function getPlatformFromUA(userAgent) {
|
|
243
68
|
if (!userAgent)
|
|
244
|
-
return
|
|
69
|
+
return ZALO_DEFAULTS.BROWSER.DEFAULT_PLATFORM;
|
|
245
70
|
if (/Windows/i.test(userAgent))
|
|
246
71
|
return "Windows";
|
|
247
72
|
if (/Macintosh|Mac OS X/i.test(userAgent))
|
|
248
73
|
return "macOS";
|
|
249
74
|
if (/Linux|X11/i.test(userAgent))
|
|
250
75
|
return "Linux";
|
|
251
|
-
return
|
|
76
|
+
return ZALO_DEFAULTS.BROWSER.DEFAULT_PLATFORM;
|
|
252
77
|
}
|
|
253
78
|
/**
|
|
254
79
|
* Trích xuất phiên bản Chrome major từ chuỗi User-Agent.
|
|
255
80
|
*
|
|
256
|
-
* Dùng để điền vào header `sec-ch-ua` một cách động, đảm bảo Chrome version
|
|
257
|
-
* trong header khớp với Chrome version trong User-Agent (tránh fingerprint anomaly).
|
|
258
|
-
*
|
|
259
|
-
* Lưu ý: Nếu UA không phải Chrome/Chromium (ví dụ Firefox, Safari thuần),
|
|
260
|
-
* hàm trả về "130" làm giá trị mặc định an toàn thay vì throw error.
|
|
261
|
-
*
|
|
262
81
|
* @returns Phiên bản Chrome major dạng string, ví dụ: "130", "133"
|
|
263
82
|
*/
|
|
264
83
|
export function getChromeVersionFromUA(userAgent) {
|
|
265
84
|
if (!userAgent)
|
|
266
|
-
return
|
|
85
|
+
return ZALO_DEFAULTS.BROWSER.DEFAULT_CHROME_VERSION;
|
|
267
86
|
const match = userAgent.match(/Chrome\/(\d+)/);
|
|
268
|
-
return match ? match[1] :
|
|
87
|
+
return match ? match[1] : ZALO_DEFAULTS.BROWSER.DEFAULT_CHROME_VERSION;
|
|
269
88
|
}
|
|
270
89
|
/**
|
|
271
90
|
* Chuẩn hóa chuỗi Accept-Language dựa theo thiết lập ngôn ngữ ngữ cảnh.
|
|
@@ -275,16 +94,13 @@ export function getChromeVersionFromUA(userAgent) {
|
|
|
275
94
|
*/
|
|
276
95
|
export function getBrowserLanguage(language) {
|
|
277
96
|
if (language === "en") {
|
|
278
|
-
return
|
|
97
|
+
return ZALO_DEFAULTS.BROWSER.ACCEPT_LANGUAGE_EN;
|
|
279
98
|
}
|
|
280
|
-
return
|
|
99
|
+
return ZALO_DEFAULTS.BROWSER.ACCEPT_LANGUAGE_VI;
|
|
281
100
|
}
|
|
282
101
|
/**
|
|
283
102
|
* Sinh bộ header Sec-CH-UA nhất quán theo User-Agent (chỉ khi là Chromium/Chrome).
|
|
284
103
|
*
|
|
285
|
-
* Nếu User-Agent là Firefox/Safari, hàm sẽ trả về object rỗng nhằm tránh
|
|
286
|
-
* tạo ra dị thường Browser Mismatch.
|
|
287
|
-
*
|
|
288
104
|
* @param userAgent Chuỗi User-Agent của client
|
|
289
105
|
* @returns Record chứa các header sec-ch-ua-* hoặc object rỗng
|
|
290
106
|
*/
|
|
@@ -299,23 +115,36 @@ export function getSecChUaHeaders(userAgent) {
|
|
|
299
115
|
"sec-ch-ua-platform": `"${platform}"`,
|
|
300
116
|
};
|
|
301
117
|
}
|
|
302
|
-
export async function getDefaultHeaders(ctx, origin =
|
|
118
|
+
export async function getDefaultHeaders(ctx, origin = ZALO_DOMAINS.CHAT_WEB) {
|
|
303
119
|
if (!ctx.cookie)
|
|
304
120
|
throw new ZaloApiError("Cookie is not available");
|
|
305
121
|
if (!ctx.userAgent)
|
|
306
122
|
throw new ZaloApiError("User agent is not available");
|
|
307
123
|
const secChUa = getSecChUaHeaders(ctx.userAgent);
|
|
308
|
-
return
|
|
124
|
+
return {
|
|
125
|
+
accept: "*/*",
|
|
126
|
+
"accept-encoding": "gzip, deflate, br, zstd",
|
|
127
|
+
"accept-language": getBrowserLanguage(ctx.language),
|
|
128
|
+
"content-type": "application/x-www-form-urlencoded",
|
|
129
|
+
cookie: await ctx.cookie.getCookieString(origin),
|
|
130
|
+
origin: origin,
|
|
131
|
+
priority: "u=1, i",
|
|
132
|
+
referer: `${origin}/`,
|
|
133
|
+
"user-agent": ctx.userAgent,
|
|
134
|
+
"sec-fetch-dest": "empty",
|
|
135
|
+
"sec-fetch-mode": "cors",
|
|
136
|
+
"sec-fetch-site": origin === ZALO_DOMAINS.AUTH_ID ? "same-origin" : "same-site",
|
|
137
|
+
...secChUa,
|
|
138
|
+
};
|
|
309
139
|
}
|
|
310
140
|
export async function request(ctx, url, options, raw = false) {
|
|
311
|
-
var _a, _b;
|
|
312
141
|
if (!ctx.cookie)
|
|
313
142
|
ctx.cookie = new toughCookie.CookieJar();
|
|
314
143
|
const origin = new URL(url).origin;
|
|
315
144
|
const defaultHeaders = await getDefaultHeaders(ctx, origin);
|
|
316
145
|
if (!raw) {
|
|
317
146
|
if (options && options.headers) {
|
|
318
|
-
const mergedHeaders =
|
|
147
|
+
const mergedHeaders = { ...defaultHeaders };
|
|
319
148
|
const inputHeaders = options.headers;
|
|
320
149
|
for (const [key, value] of Object.entries(inputHeaders)) {
|
|
321
150
|
const lowerKey = key.toLowerCase();
|
|
@@ -329,37 +158,36 @@ export async function request(ctx, url, options, raw = false) {
|
|
|
329
158
|
options.headers = mergedHeaders;
|
|
330
159
|
}
|
|
331
160
|
else {
|
|
332
|
-
options =
|
|
161
|
+
options = { ...(options || {}), headers: defaultHeaders };
|
|
333
162
|
}
|
|
334
163
|
}
|
|
335
|
-
const _options =
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
164
|
+
const _options = {
|
|
165
|
+
...(options ?? {}),
|
|
166
|
+
...(isBun
|
|
167
|
+
? {
|
|
168
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
169
|
+
// @ts-ignore
|
|
170
|
+
proxy: ctx.options.agent?.proxy?.href,
|
|
171
|
+
}
|
|
172
|
+
: {
|
|
173
|
+
agent: ctx.options.agent,
|
|
174
|
+
dispatcher: ctx.options.agent,
|
|
175
|
+
}),
|
|
176
|
+
};
|
|
346
177
|
const response = await ctx.options.polyfill(url, _options);
|
|
347
178
|
const setCookieRaw = response.headers.get("set-cookie");
|
|
348
179
|
if (setCookieRaw && !raw) {
|
|
349
180
|
let cookieStrings = [];
|
|
350
181
|
const headers = response.headers;
|
|
351
|
-
// Cách 1: Ưu tiên lấy Mảng Raw chuẩn gốc (Array) của thư viện node-fetch
|
|
352
182
|
if (typeof headers.raw === "function") {
|
|
353
183
|
const rawHeaders = headers.raw();
|
|
354
184
|
if (rawHeaders && rawHeaders["set-cookie"]) {
|
|
355
185
|
cookieStrings = rawHeaders["set-cookie"];
|
|
356
186
|
}
|
|
357
187
|
}
|
|
358
|
-
// Cách 2: Nếu dùng Fetch API Native của NodeJS 18+
|
|
359
188
|
else if (typeof headers.getSetCookie === "function") {
|
|
360
189
|
cookieStrings = headers.getSetCookie();
|
|
361
190
|
}
|
|
362
|
-
// Cách 3: Fallback dùng Regex Lookahead an toàn (Không bao giờ tách nhầm dấu phẩy của Expires date)
|
|
363
191
|
else {
|
|
364
192
|
cookieStrings = setCookieRaw.split(/,\s*(?=[a-zA-Z0-9_-]+\s*=)/);
|
|
365
193
|
}
|
|
@@ -376,11 +204,11 @@ export async function request(ctx, url, options, raw = false) {
|
|
|
376
204
|
}
|
|
377
205
|
const redirectURL = response.headers.get("location");
|
|
378
206
|
if (redirectURL) {
|
|
379
|
-
const redirectOptions =
|
|
207
|
+
const redirectOptions = { ...options };
|
|
380
208
|
redirectOptions.method = "GET";
|
|
381
209
|
if (!raw) {
|
|
382
210
|
redirectOptions.headers = new Headers(redirectOptions.headers);
|
|
383
|
-
redirectOptions.headers.set("Referer",
|
|
211
|
+
redirectOptions.headers.set("Referer", `${ZALO_DOMAINS.AUTH_ID}/`);
|
|
384
212
|
}
|
|
385
213
|
return await request(ctx, redirectURL, redirectOptions);
|
|
386
214
|
}
|
|
@@ -421,49 +249,11 @@ export async function getGifMetaData(ctx, filePath) {
|
|
|
421
249
|
height: gifData.height,
|
|
422
250
|
};
|
|
423
251
|
}
|
|
424
|
-
export async function decodeEventData(parsed, cipherKey) {
|
|
425
|
-
if (typeof parsed.data !== "string")
|
|
426
|
-
throw new ZaloApiError(`Invalid data, expected string but got ${typeof parsed.data}`);
|
|
427
|
-
if (typeof parsed.encrypt !== "number")
|
|
428
|
-
throw new ZaloApiError(`Invalid encrypt type, expected number but got ${typeof parsed.encrypt}`);
|
|
429
|
-
if (parsed.encrypt < 0 || parsed.encrypt > 3)
|
|
430
|
-
throw new ZaloApiError(`Invalid encrypt type, expected 0-3 but got ${parsed.encrypt}`);
|
|
431
|
-
const rawData = parsed.data;
|
|
432
|
-
const encryptType = parsed.encrypt;
|
|
433
|
-
if (encryptType === 0)
|
|
434
|
-
return JSON.parse(rawData);
|
|
435
|
-
const decodedBuffer = decodeBase64ToBuffer(encryptType === 1 ? rawData : decodeURIComponent(rawData));
|
|
436
|
-
let decryptedBuffer = decodedBuffer;
|
|
437
|
-
if (encryptType !== 1) {
|
|
438
|
-
if (cipherKey && decodedBuffer.length >= 48) {
|
|
439
|
-
const algorithm = {
|
|
440
|
-
name: "AES-GCM",
|
|
441
|
-
iv: decodedBuffer.subarray(0, 16),
|
|
442
|
-
tagLength: 128,
|
|
443
|
-
additionalData: decodedBuffer.subarray(16, 32),
|
|
444
|
-
};
|
|
445
|
-
const dataSource = decodedBuffer.subarray(32);
|
|
446
|
-
const cryptoKey = await crypto.subtle.importKey("raw", decodeBase64ToBuffer(cipherKey), algorithm, false, [
|
|
447
|
-
"decrypt",
|
|
448
|
-
]);
|
|
449
|
-
decryptedBuffer = await crypto.subtle.decrypt(algorithm, cryptoKey, dataSource);
|
|
450
|
-
}
|
|
451
|
-
else {
|
|
452
|
-
throw new ZaloApiError("Invalid data length or missing cipher key");
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
const decompressedBuffer = encryptType === 3 ? new Uint8Array(decryptedBuffer) : pako.inflate(decryptedBuffer);
|
|
456
|
-
const decodedData = decodeUnit8Array(decompressedBuffer);
|
|
457
|
-
if (!decodedData)
|
|
458
|
-
return;
|
|
459
|
-
return JSONBig.parse(decodedData);
|
|
460
|
-
}
|
|
461
252
|
export async function getMd5LargeFileObject(source, fileSize) {
|
|
462
253
|
const buffer = typeof source == "string" ? await fs.promises.readFile(source) : source.data;
|
|
463
254
|
return new Promise((resolve) => {
|
|
464
255
|
let currentChunk = 0;
|
|
465
|
-
const chunkSize =
|
|
466
|
-
chunks = Math.ceil(fileSize / chunkSize), spark = new SparkMD5.ArrayBuffer();
|
|
256
|
+
const chunkSize = ZALO_DEFAULTS.UPLOAD.MD5_CHUNK_SIZE_BYTES, chunks = Math.ceil(fileSize / chunkSize), spark = new SparkMD5.ArrayBuffer();
|
|
467
257
|
function loadNext() {
|
|
468
258
|
const start = currentChunk * chunkSize, end = start + chunkSize >= fileSize ? fileSize : start + chunkSize;
|
|
469
259
|
spark.append(new Uint8Array(buffer.subarray(start, end)).buffer);
|
|
@@ -522,9 +312,9 @@ export function getClientMessageType(msgType) {
|
|
|
522
312
|
if (msgType === "chat.recommended")
|
|
523
313
|
return 38;
|
|
524
314
|
if (msgType === "chat.link")
|
|
525
|
-
return 38;
|
|
315
|
+
return 38;
|
|
526
316
|
if (msgType === "chat.video.msg")
|
|
527
|
-
return 44;
|
|
317
|
+
return 44;
|
|
528
318
|
if (msgType === "share.file")
|
|
529
319
|
return 46;
|
|
530
320
|
if (msgType === "chat.gif")
|
|
@@ -539,7 +329,6 @@ export function strPadLeft(e, t, n) {
|
|
|
539
329
|
}
|
|
540
330
|
export function formatTime(format, timestamp = Date.now()) {
|
|
541
331
|
const date = new Date(timestamp);
|
|
542
|
-
// using lib Intl
|
|
543
332
|
const options = {
|
|
544
333
|
year: "numeric",
|
|
545
334
|
month: "2-digit",
|
|
@@ -547,7 +336,6 @@ export function formatTime(format, timestamp = Date.now()) {
|
|
|
547
336
|
hour: "2-digit",
|
|
548
337
|
minute: "2-digit",
|
|
549
338
|
second: "2-digit",
|
|
550
|
-
// hour12: false, // true or false is same <(")
|
|
551
339
|
};
|
|
552
340
|
const formatted = new Intl.DateTimeFormat("vi-VN", options).format(date);
|
|
553
341
|
if (format.includes("%H") || format.includes("%d")) {
|
|
@@ -739,47 +527,15 @@ export function apiFactory() {
|
|
|
739
527
|
export function generateZaloUUID(userAgent) {
|
|
740
528
|
return crypto.randomUUID() + "-" + cryptojs.MD5(userAgent).toString();
|
|
741
529
|
}
|
|
742
|
-
/**
|
|
743
|
-
* Encrypts a 4-digit PIN to a 32-character hex string
|
|
744
|
-
* @param pin 4-digit PIN number
|
|
745
|
-
* @returns 32-character hex string
|
|
746
|
-
*/
|
|
747
|
-
export function encryptPin(pin) {
|
|
748
|
-
return crypto.createHash("md5").update(pin).digest("hex");
|
|
749
|
-
}
|
|
750
|
-
/**
|
|
751
|
-
* Decrypts a 32-character hex string back to 4-digit PIN
|
|
752
|
-
* Note: This is a one-way hash, so we can only verify if a PIN matches the hash
|
|
753
|
-
* @param encryptedPin 32-character hex string
|
|
754
|
-
* @param pin 4-digit PIN to verify
|
|
755
|
-
* @returns true if the PIN matches the hash
|
|
756
|
-
*
|
|
757
|
-
* @example
|
|
758
|
-
* const encryptedPin = (await api.getHiddenConversations()).pin;
|
|
759
|
-
* checking pin created..
|
|
760
|
-
* const isValid = validatePin(encryptedPin, "1234"); // true if pin created is 1234
|
|
761
|
-
* const isInvalid = validatePin(encryptedPin, "5678"); // false if not pin created is 5678
|
|
762
|
-
*/
|
|
763
|
-
export function validatePin(encryptedPin, pin) {
|
|
764
|
-
const hash = crypto.createHash("md5").update(pin).digest("hex");
|
|
765
|
-
return hash === encryptedPin;
|
|
766
|
-
}
|
|
767
530
|
/**
|
|
768
531
|
* Converts a hex color code to a negative color number used by Zalo API
|
|
769
532
|
* @param hex Hex color code (e.g. '#00FF00' or '00FF00')
|
|
770
533
|
* @returns Negative color number (e.g. -16711936)
|
|
771
|
-
*
|
|
772
|
-
* @example
|
|
773
|
-
* const negativeColor = hexToNegativeColor('#00FF00'); // Result: -16711936
|
|
774
534
|
*/
|
|
775
535
|
export function hexToNegativeColor(hex) {
|
|
776
536
|
if (!hex.startsWith("#")) {
|
|
777
537
|
hex = "#" + hex;
|
|
778
538
|
}
|
|
779
|
-
// rgb no alpha
|
|
780
|
-
// const decimal = parseInt(hex.slice(1), 16);
|
|
781
|
-
// return decimal - 4294967296;
|
|
782
|
-
// rgb with alpha
|
|
783
539
|
let hexValue = hex.slice(1);
|
|
784
540
|
if (hexValue.length === 6) {
|
|
785
541
|
hexValue = "FF" + hexValue;
|
|
@@ -791,15 +547,10 @@ export function hexToNegativeColor(hex) {
|
|
|
791
547
|
* Converts a negative color number from Zalo API to hex color code
|
|
792
548
|
* @param negativeColor Negative color number (e.g. -16711936)
|
|
793
549
|
* @returns Hex color code (e.g. '#00FF00')
|
|
794
|
-
*
|
|
795
|
-
* @example
|
|
796
|
-
* const hexColor = negativeColorToHex(-16711936); // Result: '#00FF00'
|
|
797
550
|
*/
|
|
798
551
|
export function negativeColorToHex(negativeColor) {
|
|
799
|
-
// Add 2^32 to get positive number
|
|
800
552
|
const positiveColor = negativeColor + 4294967296;
|
|
801
|
-
|
|
802
|
-
return "#" + positiveColor.toString(16).slice(-6).padStart(6, "0"); // rgb with alpha
|
|
553
|
+
return "#" + positiveColor.toString(16).slice(-6).padStart(6, "0");
|
|
803
554
|
}
|
|
804
555
|
export function normalizeHolderName(input) {
|
|
805
556
|
if (!input)
|
|
@@ -813,171 +564,3 @@ export function normalizeHolderName(input) {
|
|
|
813
564
|
.trim();
|
|
814
565
|
return normalized.length >= 5 ? normalized : undefined;
|
|
815
566
|
}
|
|
816
|
-
/**
|
|
817
|
-
* Generates an RSA 2048-bit key pair for mobile message synchronization (`pull_mobile_msg`)
|
|
818
|
-
* @returns Object containing public and private keys in both PEM and Base64 formats
|
|
819
|
-
*/
|
|
820
|
-
export function generateRSAKeyPair() {
|
|
821
|
-
const { publicKey, privateKey } = crypto.generateKeyPairSync("rsa", {
|
|
822
|
-
modulusLength: 2048,
|
|
823
|
-
publicKeyEncoding: { type: "spki", format: "pem" },
|
|
824
|
-
privateKeyEncoding: { type: "pkcs8", format: "pem" },
|
|
825
|
-
});
|
|
826
|
-
const publicKeyBase64 = publicKey
|
|
827
|
-
.toString()
|
|
828
|
-
.replace(/-----BEGIN PUBLIC KEY-----/g, "")
|
|
829
|
-
.replace(/-----END PUBLIC KEY-----/g, "")
|
|
830
|
-
.replace(/\s+/g, "");
|
|
831
|
-
const privateKeyBase64 = privateKey
|
|
832
|
-
.toString()
|
|
833
|
-
.replace(/-----BEGIN PRIVATE KEY-----/g, "")
|
|
834
|
-
.replace(/-----END PRIVATE KEY-----/g, "")
|
|
835
|
-
.replace(/\s+/g, "");
|
|
836
|
-
return { publicKeyBase64, privateKeyBase64, publicKey: publicKey.toString(), privateKey: privateKey.toString() };
|
|
837
|
-
}
|
|
838
|
-
function b64urlToBigInt(value) {
|
|
839
|
-
return BigInt("0x" + Buffer.from(value, "base64url").toString("hex"));
|
|
840
|
-
}
|
|
841
|
-
function modPow(base, exp, mod) {
|
|
842
|
-
const zero = BigInt(0);
|
|
843
|
-
const one = BigInt(1);
|
|
844
|
-
let result = one;
|
|
845
|
-
base %= mod;
|
|
846
|
-
while (exp > zero) {
|
|
847
|
-
if (exp & one)
|
|
848
|
-
result = (result * base) % mod;
|
|
849
|
-
base = (base * base) % mod;
|
|
850
|
-
exp >>= one;
|
|
851
|
-
}
|
|
852
|
-
return result;
|
|
853
|
-
}
|
|
854
|
-
/**
|
|
855
|
-
* Pure-BigInt RSA CRT PKCS#1 v1.5 decryption fallback for Node.js environments
|
|
856
|
-
* where OpenSSL blocks `RSA_PKCS1_PADDING` in `crypto.privateDecrypt` (CVE-2023-46809).
|
|
857
|
-
*/
|
|
858
|
-
export function rsaDecryptPkcs1Manual(privateKeyPem, cipher) {
|
|
859
|
-
const jwk = crypto.createPrivateKey(privateKeyPem).export({ format: "jwk" });
|
|
860
|
-
const n = b64urlToBigInt(jwk.n);
|
|
861
|
-
const p = b64urlToBigInt(jwk.p);
|
|
862
|
-
const q = b64urlToBigInt(jwk.q);
|
|
863
|
-
const dp = b64urlToBigInt(jwk.dp);
|
|
864
|
-
const dq = b64urlToBigInt(jwk.dq);
|
|
865
|
-
const qi = b64urlToBigInt(jwk.qi);
|
|
866
|
-
const c = BigInt("0x" + cipher.toString("hex"));
|
|
867
|
-
const m1 = modPow(c, dp, p);
|
|
868
|
-
const m2 = modPow(c, dq, q);
|
|
869
|
-
const h = (qi * (((m1 - m2) % p) + p)) % p;
|
|
870
|
-
const m = m2 + h * q;
|
|
871
|
-
const k = Math.ceil(n.toString(16).length / 2);
|
|
872
|
-
const em = Buffer.from(m.toString(16).padStart(k * 2, "0"), "hex");
|
|
873
|
-
if (em[0] !== 0x00 || em[1] !== 0x02)
|
|
874
|
-
throw new ZaloApiError("Invalid RSA PKCS#1 v1.5 padding");
|
|
875
|
-
const sep = em.indexOf(0x00, 2);
|
|
876
|
-
if (sep < 10)
|
|
877
|
-
throw new ZaloApiError("Invalid RSA PKCS#1 v1.5 padding separator");
|
|
878
|
-
return em.subarray(sep + 1);
|
|
879
|
-
}
|
|
880
|
-
/**
|
|
881
|
-
* Decrypt `encrypted_key` from `syncmsg_info` using RSA private key with PKCS#1 v1.5 scheme.
|
|
882
|
-
* Automatically falls back to pure-BigInt CRT decryption if OpenSSL disables `RSA_PKCS1_PADDING`.
|
|
883
|
-
*
|
|
884
|
-
* @param privateKey - RSA private key in PEM format
|
|
885
|
-
* @param encryptedBase64 - Base64 encoded `encrypted_key` from `syncmsg_info`
|
|
886
|
-
* @returns Raw decrypted bytes (typically 16-32 bytes; use `deriveZdbAesKey` for ZDB4.0 AES-256-CBC key)
|
|
887
|
-
*/
|
|
888
|
-
export function decryptWithPrivateKey(privateKey, encryptedBase64) {
|
|
889
|
-
const cleanKey = privateKey.replace(/\\n/g, "\n");
|
|
890
|
-
const encryptedBuffer = Buffer.from(encryptedBase64, "base64");
|
|
891
|
-
try {
|
|
892
|
-
return crypto.privateDecrypt({
|
|
893
|
-
key: cleanKey,
|
|
894
|
-
padding: crypto.constants.RSA_PKCS1_PADDING,
|
|
895
|
-
}, encryptedBuffer);
|
|
896
|
-
}
|
|
897
|
-
catch (err) {
|
|
898
|
-
const errorObj = err;
|
|
899
|
-
const code = String((errorObj === null || errorObj === void 0 ? void 0 : errorObj.code) || "");
|
|
900
|
-
const msg = String((errorObj === null || errorObj === void 0 ? void 0 : errorObj.message) || "");
|
|
901
|
-
if (code.includes("INVALID_ARG") || /RSA_PKCS1_PADDING|security-revert|not supported/i.test(msg)) {
|
|
902
|
-
return rsaDecryptPkcs1Manual(cleanKey, encryptedBuffer);
|
|
903
|
-
}
|
|
904
|
-
throw err;
|
|
905
|
-
}
|
|
906
|
-
}
|
|
907
|
-
/**
|
|
908
|
-
* Derives the 32-byte AES-256-CBC key for Zalo ZDB4.0 (`.db.crypt`) backup files
|
|
909
|
-
* from the raw RSA-decrypted bytes: first 32 uppercase hex characters as ASCII bytes.
|
|
910
|
-
*/
|
|
911
|
-
export function deriveZdbAesKey(decryptedRsaBytes) {
|
|
912
|
-
const upperHex = decryptedRsaBytes.toString("hex").toUpperCase();
|
|
913
|
-
if (upperHex.length < 32) {
|
|
914
|
-
throw new ZaloApiError(`Decrypted RSA key hex is too short (${upperHex.length} chars, expected >= 32)`);
|
|
915
|
-
}
|
|
916
|
-
return Buffer.from(upperHex.slice(0, 32), "ascii");
|
|
917
|
-
}
|
|
918
|
-
/**
|
|
919
|
-
* Decrypts a Zalo ZDB4.0 (`.db.crypt`) backup buffer into its plaintext ZDB4.0 container
|
|
920
|
-
* (header + table of contents + XZ stream) using 64KB independent AES-256-CBC chunks (`IV = 0`).
|
|
921
|
-
*/
|
|
922
|
-
export function decryptZdbBuffer(zdbBuffer, aesKey) {
|
|
923
|
-
const ZDB_MAGIC = Buffer.from("ZDB4.0", "ascii");
|
|
924
|
-
const CHUNK_SIZE = 0x10000;
|
|
925
|
-
const zeroIv = Buffer.alloc(16, 0);
|
|
926
|
-
for (const startOffset of [0, 4]) {
|
|
927
|
-
const encryptedLength = Math.floor((zdbBuffer.length - startOffset) / 16) * 16;
|
|
928
|
-
if (encryptedLength < 16)
|
|
929
|
-
continue;
|
|
930
|
-
const firstChunkLen = Math.min(CHUNK_SIZE, encryptedLength);
|
|
931
|
-
const firstDecipher = crypto.createDecipheriv("aes-256-cbc", aesKey, zeroIv);
|
|
932
|
-
firstDecipher.setAutoPadding(false);
|
|
933
|
-
const firstPlain = Buffer.concat([
|
|
934
|
-
firstDecipher.update(zdbBuffer.subarray(startOffset, startOffset + firstChunkLen)),
|
|
935
|
-
firstDecipher.final(),
|
|
936
|
-
]);
|
|
937
|
-
if (!firstPlain.subarray(0, ZDB_MAGIC.length).equals(ZDB_MAGIC)) {
|
|
938
|
-
continue;
|
|
939
|
-
}
|
|
940
|
-
const chunks = [firstPlain];
|
|
941
|
-
for (let offset = CHUNK_SIZE; offset < encryptedLength; offset += CHUNK_SIZE) {
|
|
942
|
-
const len = Math.min(CHUNK_SIZE, encryptedLength - offset);
|
|
943
|
-
const decipher = crypto.createDecipheriv("aes-256-cbc", aesKey, zeroIv);
|
|
944
|
-
decipher.setAutoPadding(false);
|
|
945
|
-
chunks.push(Buffer.concat([
|
|
946
|
-
decipher.update(zdbBuffer.subarray(startOffset + offset, startOffset + offset + len)),
|
|
947
|
-
decipher.final(),
|
|
948
|
-
]));
|
|
949
|
-
}
|
|
950
|
-
return Buffer.concat(chunks);
|
|
951
|
-
}
|
|
952
|
-
throw new ZaloApiError("Invalid AES key or buffer is not in ZDB4.0 format");
|
|
953
|
-
}
|
|
954
|
-
/**
|
|
955
|
-
* Parses the Table of Contents (TOC) from a decrypted ZDB4.0 container buffer,
|
|
956
|
-
* returning the list of SQLite `.db` files (`<uid>.db` / `group_<gid>.db`) and the byte offset where the XZ stream starts.
|
|
957
|
-
*/
|
|
958
|
-
export function parseZdbHeader(zdbPlaintext) {
|
|
959
|
-
const ZDB_MAGIC = Buffer.from("ZDB4.0", "ascii");
|
|
960
|
-
const COUNT_OFFSET = 14;
|
|
961
|
-
if (zdbPlaintext.length < COUNT_OFFSET + 4 || !zdbPlaintext.subarray(0, ZDB_MAGIC.length).equals(ZDB_MAGIC)) {
|
|
962
|
-
throw new ZaloApiError("Buffer is not a valid decrypted ZDB4.0 container");
|
|
963
|
-
}
|
|
964
|
-
const count = zdbPlaintext.readUInt32BE(COUNT_OFFSET);
|
|
965
|
-
let offset = COUNT_OFFSET + 4;
|
|
966
|
-
const entries = [];
|
|
967
|
-
for (let i = 0; i < count; i++) {
|
|
968
|
-
if (offset + 4 > zdbPlaintext.length) {
|
|
969
|
-
throw new ZaloApiError("Truncated ZDB4.0 header while reading entry name length");
|
|
970
|
-
}
|
|
971
|
-
const nameLen = zdbPlaintext.readUInt32BE(offset);
|
|
972
|
-
if (offset + 4 + nameLen + 4 > zdbPlaintext.length) {
|
|
973
|
-
throw new ZaloApiError("Truncated ZDB4.0 header while reading entry metadata");
|
|
974
|
-
}
|
|
975
|
-
const name = zdbPlaintext
|
|
976
|
-
.toString("utf8", offset + 4, offset + 4 + nameLen)
|
|
977
|
-
.replace(/\0+$/, "");
|
|
978
|
-
const size = zdbPlaintext.readUInt32BE(offset + 4 + nameLen);
|
|
979
|
-
entries.push({ name, size });
|
|
980
|
-
offset += 4 + nameLen + 4;
|
|
981
|
-
}
|
|
982
|
-
return { entries, xzOffset: offset };
|
|
983
|
-
}
|