@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.
Files changed (1218) hide show
  1. package/README.md +18 -181
  2. package/dist/Errors/ZaloApiError.js +1 -0
  3. package/dist/apis/auth/decryptGids.d.ts +6 -0
  4. package/dist/apis/auth/decryptGids.js +30 -0
  5. package/dist/apis/auth/encryptGids.d.ts +4 -0
  6. package/dist/apis/auth/encryptGids.js +24 -0
  7. package/dist/apis/auth/getContext.d.ts +1 -0
  8. package/dist/apis/auth/getContext.js +4 -0
  9. package/dist/apis/auth/getCookie.d.ts +1 -0
  10. package/dist/apis/auth/getCookie.js +9 -0
  11. package/dist/apis/auth/getListDevice.d.ts +10 -0
  12. package/dist/apis/auth/getListDevice.js +22 -0
  13. package/dist/apis/auth/getNoisedIds.d.ts +9 -0
  14. package/dist/apis/auth/getNoisedIds.js +67 -0
  15. package/dist/apis/auth/getOwnId.d.ts +1 -0
  16. package/dist/apis/auth/getOwnId.js +4 -0
  17. package/dist/apis/auth/getQR.d.ts +4 -0
  18. package/dist/apis/auth/getQR.js +29 -0
  19. package/dist/apis/auth/keepAlive.d.ts +5 -0
  20. package/dist/apis/auth/keepAlive.js +24 -0
  21. package/dist/apis/auth/lostFocus.d.ts +4 -0
  22. package/dist/apis/auth/lostFocus.js +23 -0
  23. package/dist/apis/auth/scanURL.d.ts +4 -0
  24. package/dist/apis/auth/scanURL.js +28 -0
  25. package/dist/apis/auth/updateActiveStatus.d.ts +4 -0
  26. package/dist/apis/auth/updateActiveStatus.js +27 -0
  27. package/dist/apis/auth/updateLang.d.ts +6 -0
  28. package/dist/apis/auth/updateLang.js +30 -0
  29. package/dist/apis/board/addPollOptions.d.ts +14 -0
  30. package/dist/apis/board/addPollOptions.js +26 -0
  31. package/dist/apis/board/createNote.d.ts +7 -0
  32. package/dist/apis/board/createNote.js +47 -0
  33. package/dist/apis/board/createPoll.d.ts +36 -0
  34. package/dist/apis/board/createPoll.js +39 -0
  35. package/dist/apis/board/createReminder.d.ts +12 -0
  36. package/dist/apis/board/createReminder.js +62 -0
  37. package/dist/apis/board/editNote.d.ts +17 -0
  38. package/dist/apis/board/editNote.js +46 -0
  39. package/dist/apis/board/editReminder.d.ts +13 -0
  40. package/dist/apis/board/editReminder.js +60 -0
  41. package/dist/apis/board/getListBoard.d.ts +21 -0
  42. package/dist/apis/board/getListBoard.js +44 -0
  43. package/dist/apis/board/getListPinTopics.d.ts +5 -0
  44. package/dist/apis/board/getListPinTopics.js +28 -0
  45. package/dist/apis/board/getListReminder.d.ts +28 -0
  46. package/dist/apis/board/getListReminder.js +49 -0
  47. package/dist/apis/board/getPollDetail.d.ts +3 -0
  48. package/dist/apis/board/getPollDetail.js +30 -0
  49. package/dist/apis/board/getReminder.d.ts +3 -0
  50. package/dist/apis/board/getReminder.js +25 -0
  51. package/dist/apis/board/getReminderResponses.d.ts +5 -0
  52. package/dist/apis/board/getReminderResponses.js +24 -0
  53. package/dist/apis/board/lockPoll.d.ts +2 -0
  54. package/dist/apis/board/lockPoll.js +28 -0
  55. package/dist/apis/board/removeReminder.d.ts +3 -0
  56. package/dist/apis/board/removeReminder.js +40 -0
  57. package/dist/apis/board/sharePoll.d.ts +2 -0
  58. package/dist/apis/board/sharePoll.js +28 -0
  59. package/dist/apis/board/votePoll.d.ts +5 -0
  60. package/dist/apis/board/votePoll.js +29 -0
  61. package/dist/apis/business/addQuickMessage.d.ts +11 -0
  62. package/dist/apis/business/addQuickMessage.js +60 -0
  63. package/dist/apis/business/createAutoReply.d.ts +14 -0
  64. package/dist/apis/business/createAutoReply.js +37 -0
  65. package/dist/apis/business/createBankAccount.d.ts +8 -0
  66. package/dist/apis/business/createBankAccount.js +32 -0
  67. package/dist/apis/business/createCatalog.d.ts +7 -0
  68. package/dist/apis/business/createCatalog.js +29 -0
  69. package/dist/apis/business/createProductCatalog.d.ts +23 -0
  70. package/dist/apis/business/createProductCatalog.js +50 -0
  71. package/dist/apis/business/deleteAutoReply.d.ts +5 -0
  72. package/dist/apis/business/deleteAutoReply.js +29 -0
  73. package/dist/apis/business/deleteBankAccount.d.ts +11 -0
  74. package/dist/apis/business/deleteBankAccount.js +32 -0
  75. package/dist/apis/business/deleteCatalog.d.ts +2 -0
  76. package/dist/apis/business/deleteCatalog.js +28 -0
  77. package/dist/apis/business/deleteProductCatalog.d.ts +10 -0
  78. package/dist/apis/business/deleteProductCatalog.js +31 -0
  79. package/dist/apis/business/getAutoReplyList.d.ts +6 -0
  80. package/dist/apis/business/getAutoReplyList.js +24 -0
  81. package/dist/apis/business/getBizAccount.d.ts +24 -0
  82. package/dist/apis/business/getBizAccount.js +27 -0
  83. package/dist/apis/business/getCatalogList.d.ts +18 -0
  84. package/dist/apis/business/getCatalogList.js +31 -0
  85. package/dist/apis/business/getLabels.d.ts +7 -0
  86. package/dist/apis/business/getLabels.js +28 -0
  87. package/dist/apis/business/getListBank.d.ts +5 -0
  88. package/dist/apis/business/getListBank.js +20 -0
  89. package/dist/apis/business/getListBankAccount.d.ts +7 -0
  90. package/dist/apis/business/getListBankAccount.js +27 -0
  91. package/dist/apis/business/getProductCatalogList.d.ts +20 -0
  92. package/dist/apis/business/getProductCatalogList.js +32 -0
  93. package/dist/apis/business/getQuickMessageList.d.ts +7 -0
  94. package/dist/apis/business/getQuickMessageList.js +24 -0
  95. package/dist/apis/business/registerCatalog.d.ts +2 -0
  96. package/dist/apis/business/registerCatalog.js +27 -0
  97. package/dist/apis/business/removeQuickMessage.d.ts +5 -0
  98. package/dist/apis/business/removeQuickMessage.js +27 -0
  99. package/dist/apis/business/updateAutoReply.d.ts +15 -0
  100. package/dist/apis/business/updateAutoReply.js +38 -0
  101. package/dist/apis/business/updateBankAccount.d.ts +9 -0
  102. package/dist/apis/business/updateBankAccount.js +31 -0
  103. package/dist/apis/business/updateCatalog.d.ts +11 -0
  104. package/dist/apis/business/updateCatalog.js +30 -0
  105. package/dist/apis/business/updateLabels.d.ts +15 -0
  106. package/dist/apis/business/updateLabels.js +34 -0
  107. package/dist/apis/business/updateProductCatalog.d.ts +25 -0
  108. package/dist/apis/business/updateProductCatalog.js +51 -0
  109. package/dist/apis/business/updateQuickMessage.d.ts +11 -0
  110. package/dist/apis/business/updateQuickMessage.js +61 -0
  111. package/dist/apis/business/uploadProductPhoto.d.ts +14 -0
  112. package/dist/apis/business/uploadProductPhoto.js +50 -0
  113. package/dist/apis/call/cancelVoiceCall.d.ts +7 -0
  114. package/dist/apis/call/cancelVoiceCall.js +40 -0
  115. package/dist/apis/call/endVoiceCall.d.ts +5 -0
  116. package/dist/apis/call/endVoiceCall.js +38 -0
  117. package/dist/apis/call/sendVoiceCall.d.ts +44 -0
  118. package/dist/apis/call/sendVoiceCall.js +113 -0
  119. package/dist/apis/chat/addReaction.d.ts +18 -0
  120. package/dist/apis/chat/addReaction.js +297 -0
  121. package/dist/apis/chat/addUnreadMark.d.ts +8 -0
  122. package/dist/apis/chat/addUnreadMark.js +52 -0
  123. package/dist/apis/chat/deleteChat.d.ts +19 -0
  124. package/dist/apis/chat/deleteChat.js +50 -0
  125. package/dist/apis/chat/deleteMessage.d.ts +14 -0
  126. package/dist/apis/chat/deleteMessage.js +52 -0
  127. package/dist/apis/chat/forwardMessage.d.ts +24 -0
  128. package/dist/apis/chat/forwardMessage.js +92 -0
  129. package/dist/apis/chat/getArchivedChatList.d.ts +5 -0
  130. package/dist/apis/chat/getArchivedChatList.js +23 -0
  131. package/dist/apis/chat/getAutoDeleteChat.d.ts +9 -0
  132. package/dist/apis/chat/getAutoDeleteChat.js +21 -0
  133. package/dist/apis/chat/getHiddenConversations.d.ts +11 -0
  134. package/dist/apis/chat/getHiddenConversations.js +23 -0
  135. package/dist/apis/chat/getLastSeen.d.ts +11 -0
  136. package/dist/apis/chat/getLastSeen.js +38 -0
  137. package/dist/apis/chat/getLastSeenReaction.d.ts +9 -0
  138. package/dist/apis/chat/getLastSeenReaction.js +27 -0
  139. package/dist/apis/chat/getMute.d.ts +13 -0
  140. package/dist/apis/chat/getMute.js +22 -0
  141. package/dist/apis/chat/getPinConversations.d.ts +5 -0
  142. package/dist/apis/chat/getPinConversations.js +22 -0
  143. package/dist/apis/chat/getRecentSearchList.d.ts +6 -0
  144. package/dist/apis/chat/getRecentSearchList.js +25 -0
  145. package/dist/apis/chat/getUnreadMark.d.ts +14 -0
  146. package/dist/apis/chat/getUnreadMark.js +30 -0
  147. package/dist/apis/chat/parseLink.d.ts +21 -0
  148. package/dist/apis/chat/parseLink.js +27 -0
  149. package/dist/apis/chat/preloadConversations.d.ts +28 -0
  150. package/dist/apis/chat/preloadConversations.js +78 -0
  151. package/dist/apis/chat/removeUnreadMark.d.ts +8 -0
  152. package/dist/apis/chat/removeUnreadMark.js +50 -0
  153. package/dist/apis/chat/resetHiddenConversPin.d.ts +2 -0
  154. package/dist/apis/chat/resetHiddenConversPin.js +20 -0
  155. package/dist/apis/chat/sendBankCard.d.ts +9 -0
  156. package/dist/apis/chat/sendBankCard.js +36 -0
  157. package/dist/apis/chat/sendCard.d.ts +10 -0
  158. package/dist/apis/chat/sendCard.js +58 -0
  159. package/dist/apis/chat/sendDeliveredEvent.d.ts +16 -0
  160. package/dist/apis/chat/sendDeliveredEvent.js +62 -0
  161. package/dist/apis/chat/sendLink.d.ts +10 -0
  162. package/dist/apis/chat/sendLink.js +60 -0
  163. package/dist/apis/chat/sendMessage.d.ts +99 -0
  164. package/dist/apis/chat/sendMessage.js +460 -0
  165. package/dist/apis/chat/sendReport.d.ts +17 -0
  166. package/dist/apis/chat/sendReport.js +53 -0
  167. package/dist/apis/chat/sendSeenEvent.d.ts +16 -0
  168. package/dist/apis/chat/sendSeenEvent.js +66 -0
  169. package/dist/apis/chat/sendSticker.d.ts +10 -0
  170. package/dist/apis/chat/sendSticker.js +57 -0
  171. package/dist/apis/chat/sendTypingEvent.d.ts +5 -0
  172. package/dist/apis/chat/sendTypingEvent.js +37 -0
  173. package/dist/apis/chat/sendVideo.d.ts +35 -0
  174. package/dist/apis/chat/sendVideo.js +117 -0
  175. package/dist/apis/chat/sendVoice.d.ts +12 -0
  176. package/dist/apis/chat/sendVoice.js +72 -0
  177. package/dist/apis/chat/setHiddenConversations.d.ts +3 -0
  178. package/dist/apis/chat/setHiddenConversations.js +39 -0
  179. package/dist/apis/chat/setMute.d.ts +20 -0
  180. package/dist/apis/chat/setMute.js +67 -0
  181. package/dist/apis/chat/setPinnedConversations.d.ts +3 -0
  182. package/dist/apis/chat/setPinnedConversations.js +34 -0
  183. package/dist/apis/chat/undo.d.ts +9 -0
  184. package/dist/apis/chat/undo.js +42 -0
  185. package/dist/apis/chat/undoMultiMessage.d.ts +9 -0
  186. package/dist/apis/chat/undoMultiMessage.js +46 -0
  187. package/dist/apis/chat/updateArchivedChatList.d.ts +10 -0
  188. package/dist/apis/chat/updateArchivedChatList.js +34 -0
  189. package/dist/apis/chat/updateAutoDeleteChat.d.ts +9 -0
  190. package/dist/apis/chat/updateAutoDeleteChat.js +40 -0
  191. package/dist/apis/chat/updateHiddenConversPin.d.ts +2 -0
  192. package/dist/apis/chat/updateHiddenConversPin.js +30 -0
  193. package/dist/apis/chat/updateRecentSearch.d.ts +11 -0
  194. package/dist/apis/chat/updateRecentSearch.js +40 -0
  195. package/dist/apis/friend/acceptFriendRequest.d.ts +2 -0
  196. package/dist/apis/friend/acceptFriendRequest.js +28 -0
  197. package/dist/apis/friend/blockUser.d.ts +2 -0
  198. package/dist/apis/friend/blockUser.js +28 -0
  199. package/dist/apis/friend/blockViewFeed.d.ts +2 -0
  200. package/dist/apis/friend/blockViewFeed.js +30 -0
  201. package/dist/apis/friend/changeFriendAlias.d.ts +2 -0
  202. package/dist/apis/friend/changeFriendAlias.js +27 -0
  203. package/dist/apis/friend/clearUnreadFriendRequests.d.ts +2 -0
  204. package/dist/apis/friend/clearUnreadFriendRequests.js +29 -0
  205. package/dist/apis/friend/findUser.d.ts +3 -0
  206. package/dist/apis/friend/findUser.js +42 -0
  207. package/dist/apis/friend/findUserByUsername.d.ts +3 -0
  208. package/dist/apis/friend/findUserByUsername.js +27 -0
  209. package/dist/apis/friend/getAliasList.d.ts +8 -0
  210. package/dist/apis/friend/getAliasList.js +27 -0
  211. package/dist/apis/friend/getAliasListV2.d.ts +10 -0
  212. package/dist/apis/friend/getAliasListV2.js +28 -0
  213. package/dist/apis/friend/getAllFriends.d.ts +3 -0
  214. package/dist/apis/friend/getAllFriends.js +34 -0
  215. package/dist/apis/friend/getBlockFriends.d.ts +6 -0
  216. package/dist/apis/friend/getBlockFriends.js +28 -0
  217. package/dist/apis/friend/getCloseFriends.d.ts +3 -0
  218. package/dist/apis/friend/getCloseFriends.js +20 -0
  219. package/dist/apis/friend/getExtraFriendInfo.d.ts +3 -0
  220. package/dist/apis/friend/getExtraFriendInfo.js +31 -0
  221. package/dist/apis/friend/getFriendBoardList.d.ts +5 -0
  222. package/dist/apis/friend/getFriendBoardList.js +26 -0
  223. package/dist/apis/friend/getFriendOnlines.d.ts +10 -0
  224. package/dist/apis/friend/getFriendOnlines.js +35 -0
  225. package/dist/apis/friend/getFriendRecommendations.d.ts +42 -0
  226. package/dist/apis/friend/getFriendRecommendations.js +27 -0
  227. package/dist/apis/friend/getFriendRequestStatus.d.ts +8 -0
  228. package/dist/apis/friend/getFriendRequestStatus.js +25 -0
  229. package/dist/apis/friend/getFriendsEmojiStatus.d.ts +17 -0
  230. package/dist/apis/friend/getFriendsEmojiStatus.js +28 -0
  231. package/dist/apis/friend/getLastReadContactTab.d.ts +4 -0
  232. package/dist/apis/friend/getLastReadContactTab.js +15 -0
  233. package/dist/apis/friend/getMultiUsersByPhones.d.ts +5 -0
  234. package/dist/apis/friend/getMultiUsersByPhones.js +39 -0
  235. package/dist/apis/friend/getPhonebookV2.d.ts +6 -0
  236. package/dist/apis/friend/getPhonebookV2.js +21 -0
  237. package/dist/apis/friend/getSentFriendRequest.d.ts +18 -0
  238. package/dist/apis/friend/getSentFriendRequest.js +24 -0
  239. package/dist/apis/friend/lastOnline.d.ts +7 -0
  240. package/dist/apis/friend/lastOnline.js +26 -0
  241. package/dist/apis/friend/readContactTab.d.ts +2 -0
  242. package/dist/apis/friend/readContactTab.js +26 -0
  243. package/dist/apis/friend/rejectFriendRequest.d.ts +2 -0
  244. package/dist/apis/friend/rejectFriendRequest.js +27 -0
  245. package/dist/apis/friend/removeFriend.d.ts +2 -0
  246. package/dist/apis/friend/removeFriend.js +28 -0
  247. package/dist/apis/friend/removeFriendAlias.d.ts +2 -0
  248. package/dist/apis/friend/removeFriendAlias.js +24 -0
  249. package/dist/apis/friend/sendFriendRequest.d.ts +2 -0
  250. package/dist/apis/friend/sendFriendRequest.js +39 -0
  251. package/dist/apis/friend/unblockUser.d.ts +2 -0
  252. package/dist/apis/friend/unblockUser.js +28 -0
  253. package/dist/apis/friend/undoFriendRequest.d.ts +2 -0
  254. package/dist/apis/friend/undoFriendRequest.js +27 -0
  255. package/dist/apis/group/addGroupBlockedMember.d.ts +2 -0
  256. package/dist/apis/group/addGroupBlockedMember.js +28 -0
  257. package/dist/apis/group/addGroupDeputy.d.ts +2 -0
  258. package/dist/apis/group/addGroupDeputy.js +30 -0
  259. package/dist/apis/group/addUserToGroup.d.ts +5 -0
  260. package/dist/apis/group/addUserToGroup.js +34 -0
  261. package/dist/apis/group/changeGroupAvatar.d.ts +3 -0
  262. package/dist/apis/group/changeGroupAvatar.js +44 -0
  263. package/dist/apis/group/changeGroupName.d.ts +4 -0
  264. package/dist/apis/group/changeGroupName.js +32 -0
  265. package/dist/apis/group/changeGroupOwner.d.ts +4 -0
  266. package/dist/apis/group/changeGroupOwner.js +30 -0
  267. package/dist/apis/group/createGroup.d.ts +28 -0
  268. package/dist/apis/group/createGroup.js +43 -0
  269. package/dist/apis/group/deleteGroupInviteBox.d.ts +9 -0
  270. package/dist/apis/group/deleteGroupInviteBox.js +27 -0
  271. package/dist/apis/group/disableGroupLink.d.ts +2 -0
  272. package/dist/apis/group/disableGroupLink.js +24 -0
  273. package/dist/apis/group/disperseGroup.d.ts +2 -0
  274. package/dist/apis/group/disperseGroup.js +28 -0
  275. package/dist/apis/group/enableGroupLink.d.ts +6 -0
  276. package/dist/apis/group/enableGroupLink.js +25 -0
  277. package/dist/apis/group/getAllGroups.d.ts +7 -0
  278. package/dist/apis/group/getAllGroups.js +10 -0
  279. package/dist/apis/group/getExtraGroupInfo.d.ts +7 -0
  280. package/dist/apis/group/getExtraGroupInfo.js +32 -0
  281. package/dist/apis/group/getGroupBlockedMember.d.ts +23 -0
  282. package/dist/apis/group/getGroupBlockedMember.js +28 -0
  283. package/dist/apis/group/getGroupChatHistory.d.ts +18 -0
  284. package/dist/apis/group/getGroupChatHistory.js +64 -0
  285. package/dist/apis/group/getGroupCloudMessageJump.d.ts +3 -0
  286. package/dist/apis/group/getGroupCloudMessageJump.js +46 -0
  287. package/dist/apis/group/getGroupInfo.d.ts +16 -0
  288. package/dist/apis/group/getGroupInfo.js +32 -0
  289. package/dist/apis/group/getGroupInviteBoxInfo.d.ts +32 -0
  290. package/dist/apis/group/getGroupInviteBoxInfo.js +37 -0
  291. package/dist/apis/group/getGroupInviteBoxList.d.ts +38 -0
  292. package/dist/apis/group/getGroupInviteBoxList.js +30 -0
  293. package/dist/apis/group/getGroupLinkDetail.d.ts +9 -0
  294. package/dist/apis/group/getGroupLinkDetail.js +25 -0
  295. package/dist/apis/group/getGroupLinkInfo.d.ts +34 -0
  296. package/dist/apis/group/getGroupLinkInfo.js +27 -0
  297. package/dist/apis/group/getGroupMembersInfo.d.ts +17 -0
  298. package/dist/apis/group/getGroupMembersInfo.js +24 -0
  299. package/dist/apis/group/getPendingGroupMembers.d.ts +11 -0
  300. package/dist/apis/group/getPendingGroupMembers.js +27 -0
  301. package/dist/apis/group/getQuotaCommunity.d.ts +8 -0
  302. package/dist/apis/group/getQuotaCommunity.js +27 -0
  303. package/dist/apis/group/getRelatedFriendGroup.d.ts +6 -0
  304. package/dist/apis/group/getRelatedFriendGroup.js +30 -0
  305. package/dist/apis/group/inviteUserToGroups.d.ts +10 -0
  306. package/dist/apis/group/inviteUserToGroups.js +30 -0
  307. package/dist/apis/group/joinGroupInviteBox.d.ts +2 -0
  308. package/dist/apis/group/joinGroupInviteBox.js +25 -0
  309. package/dist/apis/group/joinGroupLink.d.ts +2 -0
  310. package/dist/apis/group/joinGroupLink.js +27 -0
  311. package/dist/apis/group/leaveGroup.d.ts +4 -0
  312. package/dist/apis/group/leaveGroup.js +33 -0
  313. package/dist/apis/group/removeGroupBlockedMember.d.ts +2 -0
  314. package/dist/apis/group/removeGroupBlockedMember.js +28 -0
  315. package/dist/apis/group/removeGroupDeputy.d.ts +2 -0
  316. package/dist/apis/group/removeGroupDeputy.js +30 -0
  317. package/dist/apis/group/removeUserFromGroup.d.ts +4 -0
  318. package/dist/apis/group/removeUserFromGroup.js +34 -0
  319. package/dist/apis/group/reviewPendingMemberRequest.d.ts +14 -0
  320. package/dist/apis/group/reviewPendingMemberRequest.js +38 -0
  321. package/dist/apis/group/updateGroupSettings.d.ts +40 -0
  322. package/dist/apis/group/updateGroupSettings.js +43 -0
  323. package/dist/apis/group/upgradeGroupToCommunity.d.ts +2 -0
  324. package/dist/apis/group/upgradeGroupToCommunity.js +27 -0
  325. package/dist/apis/listen.d.ts +1 -119
  326. package/dist/apis/listen.js +1 -576
  327. package/dist/apis/login.js +9 -6
  328. package/dist/apis/loginQR.js +110 -68
  329. package/dist/apis/media/getConversationMedia.d.ts +26 -0
  330. package/dist/apis/media/getConversationMedia.js +38 -0
  331. package/dist/apis/media/getMediaStorePreview.d.ts +3 -0
  332. package/dist/apis/media/getMediaStorePreview.js +31 -0
  333. package/dist/apis/media/removeConversationMedia.d.ts +8 -0
  334. package/dist/apis/media/removeConversationMedia.js +30 -0
  335. package/dist/apis/media/uploadAttachment.d.ts +50 -0
  336. package/dist/apis/media/uploadAttachment.js +209 -0
  337. package/dist/apis/media/voiceToText.d.ts +4 -0
  338. package/dist/apis/media/voiceToText.js +29 -0
  339. package/dist/apis/profile/changeAccountAvatar.d.ts +3 -0
  340. package/dist/apis/profile/changeAccountAvatar.js +52 -0
  341. package/dist/apis/profile/deleteAvatar.d.ts +9 -0
  342. package/dist/apis/profile/deleteAvatar.js +27 -0
  343. package/dist/apis/profile/fetchAccountInfo.d.ts +5 -0
  344. package/dist/apis/profile/fetchAccountInfo.js +10 -0
  345. package/dist/apis/profile/getAvatarList.d.ts +12 -0
  346. package/dist/apis/profile/getAvatarList.js +28 -0
  347. package/dist/apis/profile/getAvatarUrlProfile.d.ts +7 -0
  348. package/dist/apis/profile/getAvatarUrlProfile.js +30 -0
  349. package/dist/apis/profile/getEmojiStatusConfig.d.ts +17 -0
  350. package/dist/apis/profile/getEmojiStatusConfig.js +22 -0
  351. package/dist/apis/profile/getFullAvatar.d.ts +5 -0
  352. package/dist/apis/profile/getFullAvatar.js +25 -0
  353. package/dist/apis/profile/getMiniProfile.d.ts +13 -0
  354. package/dist/apis/profile/getMiniProfile.js +34 -0
  355. package/dist/apis/profile/getProfileRank.d.ts +5 -0
  356. package/dist/apis/profile/getProfileRank.js +25 -0
  357. package/dist/apis/profile/getProfileVerificationStatus.d.ts +5 -0
  358. package/dist/apis/profile/getProfileVerificationStatus.js +20 -0
  359. package/dist/apis/profile/getSettings.d.ts +3 -0
  360. package/dist/apis/profile/getSettings.js +20 -0
  361. package/dist/apis/profile/getUserInfo.d.ts +8 -0
  362. package/dist/apis/profile/getUserInfo.js +44 -0
  363. package/dist/apis/profile/reuseAvatar.d.ts +2 -0
  364. package/dist/apis/profile/reuseAvatar.js +26 -0
  365. package/dist/apis/profile/updateProfile.d.ts +20 -0
  366. package/dist/apis/profile/updateProfile.js +42 -0
  367. package/dist/apis/profile/updateProfileBio.d.ts +2 -0
  368. package/dist/apis/profile/updateProfileBio.js +27 -0
  369. package/dist/apis/profile/updateSettings.d.ts +16 -0
  370. package/dist/apis/profile/updateSettings.js +90 -0
  371. package/dist/apis/sticker/getPersonalizedStickerList.d.ts +5 -0
  372. package/dist/apis/sticker/getPersonalizedStickerList.js +24 -0
  373. package/dist/apis/sticker/getStickerCategoriesV2.d.ts +17 -0
  374. package/dist/apis/sticker/getStickerCategoriesV2.js +21 -0
  375. package/dist/apis/sticker/getStickerCategoryData.d.ts +3 -0
  376. package/dist/apis/sticker/getStickerCategoryData.js +25 -0
  377. package/dist/apis/sticker/getStickerCategoryDetail.d.ts +3 -0
  378. package/dist/apis/sticker/getStickerCategoryDetail.js +24 -0
  379. package/dist/apis/sticker/getStickerHello.d.ts +16 -0
  380. package/dist/apis/sticker/getStickerHello.js +34 -0
  381. package/dist/apis/sticker/getStickerSuggestKeywords.d.ts +12 -0
  382. package/dist/apis/sticker/getStickerSuggestKeywords.js +24 -0
  383. package/dist/apis/sticker/getStickerSuggestion.d.ts +12 -0
  384. package/dist/apis/sticker/getStickerSuggestion.js +29 -0
  385. package/dist/apis/sticker/getStickers.d.ts +1 -0
  386. package/dist/apis/sticker/getStickers.js +40 -0
  387. package/dist/apis/sticker/getStickersDetail.d.ts +3 -0
  388. package/dist/apis/sticker/getStickersDetail.js +40 -0
  389. package/dist/apis/sticker/searchSticker.d.ts +3 -0
  390. package/dist/apis/sticker/searchSticker.js +28 -0
  391. package/dist/apis/sync/cancelPullMobile.d.ts +11 -0
  392. package/dist/apis/sync/cancelPullMobile.js +33 -0
  393. package/dist/apis/sync/downloadTransferSync.d.ts +6 -0
  394. package/dist/apis/sync/downloadTransferSync.js +30 -0
  395. package/dist/apis/sync/getSyncData.d.ts +13 -0
  396. package/dist/apis/sync/getSyncData.js +103 -0
  397. package/dist/apis/sync/pullMobile.d.ts +15 -0
  398. package/dist/apis/sync/pullMobile.js +38 -0
  399. package/dist/apis/sync/requestSyncFromPhone.d.ts +20 -0
  400. package/dist/apis/sync/requestSyncFromPhone.js +40 -0
  401. package/dist/apis/zcloud/getCloudInfo.d.ts +3 -0
  402. package/dist/apis/zcloud/getCloudInfo.js +18 -0
  403. package/dist/apis/zcloud/getCloudSettings.d.ts +10 -0
  404. package/dist/apis/zcloud/getCloudSettings.js +17 -0
  405. package/dist/apis/zcloud/getCloudViewerKey.d.ts +5 -0
  406. package/dist/apis/zcloud/getCloudViewerKey.js +45 -0
  407. package/dist/apis/zcloud/getFamilyProfile.d.ts +3 -0
  408. package/dist/apis/zcloud/getFamilyProfile.js +18 -0
  409. package/dist/apis/zcloud/getFamilyUsage.d.ts +7 -0
  410. package/dist/apis/zcloud/getFamilyUsage.js +17 -0
  411. package/dist/apis/zcloud/getFamilyViewerKey.d.ts +5 -0
  412. package/dist/apis/zcloud/getFamilyViewerKey.js +45 -0
  413. package/dist/apis/zcloud/getUsageMyCloud.d.ts +7 -0
  414. package/dist/apis/zcloud/getUsageMyCloud.js +17 -0
  415. package/dist/apis/zcloud/getUsageZCloud.d.ts +11 -0
  416. package/dist/apis/zcloud/getUsageZCloud.js +17 -0
  417. package/dist/apis/zcloud/verifyCloudMedia.d.ts +14 -0
  418. package/dist/apis/zcloud/verifyCloudMedia.js +25 -0
  419. package/dist/apis.d.ts +657 -330
  420. package/dist/apis.js +1139 -330
  421. package/dist/cjs/Errors/ZaloApiError.cjs +1 -0
  422. package/dist/cjs/apis/auth/decryptGids.cjs +35 -0
  423. package/dist/cjs/apis/auth/encryptGids.cjs +29 -0
  424. package/dist/cjs/apis/auth/getContext.cjs +9 -0
  425. package/dist/cjs/apis/auth/getCookie.cjs +14 -0
  426. package/dist/cjs/apis/auth/getListDevice.cjs +27 -0
  427. package/dist/cjs/apis/auth/getNoisedIds.cjs +74 -0
  428. package/dist/cjs/apis/auth/getOwnId.cjs +9 -0
  429. package/dist/cjs/apis/auth/getQR.cjs +34 -0
  430. package/dist/cjs/apis/auth/keepAlive.cjs +29 -0
  431. package/dist/cjs/apis/auth/lostFocus.cjs +28 -0
  432. package/dist/cjs/apis/auth/scanURL.cjs +33 -0
  433. package/dist/cjs/apis/auth/updateActiveStatus.cjs +32 -0
  434. package/dist/cjs/apis/auth/updateLang.cjs +35 -0
  435. package/dist/cjs/apis/board/addPollOptions.cjs +31 -0
  436. package/dist/cjs/apis/board/createNote.cjs +52 -0
  437. package/dist/cjs/apis/board/createPoll.cjs +44 -0
  438. package/dist/cjs/apis/board/createReminder.cjs +78 -0
  439. package/dist/cjs/apis/board/editNote.cjs +51 -0
  440. package/dist/cjs/apis/board/editReminder.cjs +76 -0
  441. package/dist/cjs/apis/board/getListBoard.cjs +60 -0
  442. package/dist/cjs/apis/board/getListPinTopics.cjs +33 -0
  443. package/dist/cjs/apis/board/getListReminder.cjs +65 -0
  444. package/dist/cjs/apis/board/getPollDetail.cjs +35 -0
  445. package/dist/cjs/apis/board/getReminder.cjs +30 -0
  446. package/dist/cjs/apis/board/getReminderResponses.cjs +29 -0
  447. package/dist/cjs/apis/board/lockPoll.cjs +33 -0
  448. package/dist/cjs/apis/board/removeReminder.cjs +56 -0
  449. package/dist/cjs/apis/board/sharePoll.cjs +33 -0
  450. package/dist/cjs/apis/board/votePoll.cjs +34 -0
  451. package/dist/cjs/apis/business/addQuickMessage.cjs +65 -0
  452. package/dist/cjs/apis/business/createAutoReply.cjs +42 -0
  453. package/dist/cjs/apis/business/createBankAccount.cjs +37 -0
  454. package/dist/cjs/apis/business/createCatalog.cjs +34 -0
  455. package/dist/cjs/apis/business/createProductCatalog.cjs +55 -0
  456. package/dist/cjs/apis/business/deleteAutoReply.cjs +34 -0
  457. package/dist/cjs/apis/business/deleteBankAccount.cjs +37 -0
  458. package/dist/cjs/apis/business/deleteCatalog.cjs +33 -0
  459. package/dist/cjs/apis/business/deleteProductCatalog.cjs +36 -0
  460. package/dist/cjs/apis/business/getAutoReplyList.cjs +29 -0
  461. package/dist/cjs/apis/business/getBizAccount.cjs +32 -0
  462. package/dist/cjs/apis/business/getCatalogList.cjs +36 -0
  463. package/dist/cjs/apis/business/getLabels.cjs +33 -0
  464. package/dist/cjs/apis/business/getListBank.cjs +25 -0
  465. package/dist/cjs/apis/business/getListBankAccount.cjs +32 -0
  466. package/dist/cjs/apis/business/getProductCatalogList.cjs +37 -0
  467. package/dist/cjs/apis/business/getQuickMessageList.cjs +29 -0
  468. package/dist/cjs/apis/business/registerCatalog.cjs +32 -0
  469. package/dist/cjs/apis/business/removeQuickMessage.cjs +32 -0
  470. package/dist/cjs/apis/business/updateAutoReply.cjs +43 -0
  471. package/dist/cjs/apis/business/updateBankAccount.cjs +36 -0
  472. package/dist/cjs/apis/business/updateCatalog.cjs +35 -0
  473. package/dist/cjs/apis/business/updateLabels.cjs +39 -0
  474. package/dist/cjs/apis/business/updateProductCatalog.cjs +56 -0
  475. package/dist/cjs/apis/business/updateQuickMessage.cjs +66 -0
  476. package/dist/cjs/apis/business/uploadProductPhoto.cjs +55 -0
  477. package/dist/cjs/apis/call/cancelVoiceCall.cjs +45 -0
  478. package/dist/cjs/apis/call/endVoiceCall.cjs +43 -0
  479. package/dist/cjs/apis/call/sendVoiceCall.cjs +118 -0
  480. package/dist/cjs/apis/chat/addReaction.cjs +313 -0
  481. package/dist/cjs/apis/chat/addUnreadMark.cjs +68 -0
  482. package/dist/cjs/apis/chat/deleteChat.cjs +66 -0
  483. package/dist/cjs/apis/chat/deleteMessage.cjs +68 -0
  484. package/dist/cjs/apis/chat/forwardMessage.cjs +108 -0
  485. package/dist/cjs/apis/chat/getArchivedChatList.cjs +28 -0
  486. package/dist/cjs/apis/chat/getAutoDeleteChat.cjs +26 -0
  487. package/dist/cjs/apis/chat/getHiddenConversations.cjs +28 -0
  488. package/dist/cjs/apis/chat/getLastSeen.cjs +43 -0
  489. package/dist/cjs/apis/chat/getLastSeenReaction.cjs +32 -0
  490. package/dist/cjs/apis/chat/getMute.cjs +27 -0
  491. package/dist/cjs/apis/chat/getPinConversations.cjs +27 -0
  492. package/dist/cjs/apis/chat/getRecentSearchList.cjs +30 -0
  493. package/dist/cjs/apis/chat/getUnreadMark.cjs +35 -0
  494. package/dist/cjs/apis/chat/parseLink.cjs +32 -0
  495. package/dist/cjs/apis/chat/preloadConversations.cjs +96 -0
  496. package/dist/cjs/apis/chat/removeUnreadMark.cjs +66 -0
  497. package/dist/cjs/apis/chat/resetHiddenConversPin.cjs +25 -0
  498. package/dist/cjs/apis/chat/sendBankCard.cjs +52 -0
  499. package/dist/cjs/apis/chat/sendCard.cjs +74 -0
  500. package/dist/cjs/apis/chat/sendDeliveredEvent.cjs +78 -0
  501. package/dist/cjs/apis/chat/sendLink.cjs +76 -0
  502. package/dist/cjs/apis/chat/sendMessage.cjs +476 -0
  503. package/dist/cjs/apis/chat/sendReport.cjs +69 -0
  504. package/dist/cjs/apis/chat/sendSeenEvent.cjs +82 -0
  505. package/dist/cjs/apis/chat/sendSticker.cjs +73 -0
  506. package/dist/cjs/apis/chat/sendTypingEvent.cjs +53 -0
  507. package/dist/cjs/apis/chat/sendVideo.cjs +133 -0
  508. package/dist/cjs/apis/chat/sendVoice.cjs +88 -0
  509. package/dist/cjs/apis/chat/setHiddenConversations.cjs +55 -0
  510. package/dist/cjs/apis/chat/setMute.cjs +83 -0
  511. package/dist/cjs/apis/chat/setPinnedConversations.cjs +50 -0
  512. package/dist/cjs/apis/chat/undo.cjs +58 -0
  513. package/dist/cjs/apis/chat/undoMultiMessage.cjs +62 -0
  514. package/dist/cjs/apis/chat/updateArchivedChatList.cjs +39 -0
  515. package/dist/cjs/apis/chat/updateAutoDeleteChat.cjs +56 -0
  516. package/dist/cjs/apis/chat/updateHiddenConversPin.cjs +36 -0
  517. package/dist/cjs/apis/chat/updateRecentSearch.cjs +45 -0
  518. package/dist/cjs/apis/custom.cjs +1 -0
  519. package/dist/cjs/apis/friend/acceptFriendRequest.cjs +33 -0
  520. package/dist/cjs/apis/friend/blockUser.cjs +33 -0
  521. package/dist/cjs/apis/friend/blockViewFeed.cjs +35 -0
  522. package/dist/cjs/apis/friend/changeFriendAlias.cjs +32 -0
  523. package/dist/cjs/apis/friend/clearUnreadFriendRequests.cjs +34 -0
  524. package/dist/cjs/apis/friend/findUser.cjs +58 -0
  525. package/dist/cjs/apis/friend/findUserByUsername.cjs +43 -0
  526. package/dist/cjs/apis/friend/getAliasList.cjs +32 -0
  527. package/dist/cjs/apis/friend/getAliasListV2.cjs +33 -0
  528. package/dist/cjs/apis/friend/getAllFriends.cjs +50 -0
  529. package/dist/cjs/apis/friend/getBlockFriends.cjs +33 -0
  530. package/dist/cjs/apis/friend/getCloseFriends.cjs +25 -0
  531. package/dist/cjs/apis/friend/getExtraFriendInfo.cjs +36 -0
  532. package/dist/cjs/apis/friend/getFriendBoardList.cjs +31 -0
  533. package/dist/cjs/apis/friend/getFriendOnlines.cjs +40 -0
  534. package/dist/cjs/apis/friend/getFriendRecommendations.cjs +32 -0
  535. package/dist/cjs/apis/friend/getFriendRequestStatus.cjs +30 -0
  536. package/dist/cjs/apis/friend/getFriendsEmojiStatus.cjs +34 -0
  537. package/dist/cjs/apis/friend/getLastReadContactTab.cjs +20 -0
  538. package/dist/cjs/apis/friend/getMultiUsersByPhones.cjs +55 -0
  539. package/dist/cjs/apis/friend/getPhonebookV2.cjs +26 -0
  540. package/dist/cjs/apis/friend/getSentFriendRequest.cjs +29 -0
  541. package/dist/cjs/apis/friend/lastOnline.cjs +31 -0
  542. package/dist/cjs/apis/friend/readContactTab.cjs +31 -0
  543. package/dist/cjs/apis/friend/rejectFriendRequest.cjs +32 -0
  544. package/dist/cjs/apis/friend/removeFriend.cjs +33 -0
  545. package/dist/cjs/apis/friend/removeFriendAlias.cjs +29 -0
  546. package/dist/cjs/apis/friend/sendFriendRequest.cjs +44 -0
  547. package/dist/cjs/apis/friend/unblockUser.cjs +33 -0
  548. package/dist/cjs/apis/friend/undoFriendRequest.cjs +32 -0
  549. package/dist/cjs/apis/group/addGroupBlockedMember.cjs +33 -0
  550. package/dist/cjs/apis/group/addGroupDeputy.cjs +35 -0
  551. package/dist/cjs/apis/group/addUserToGroup.cjs +39 -0
  552. package/dist/cjs/apis/group/changeGroupAvatar.cjs +49 -0
  553. package/dist/cjs/apis/group/changeGroupName.cjs +37 -0
  554. package/dist/cjs/apis/group/changeGroupOwner.cjs +35 -0
  555. package/dist/cjs/apis/group/createGroup.cjs +48 -0
  556. package/dist/cjs/apis/group/deleteGroupInviteBox.cjs +32 -0
  557. package/dist/cjs/apis/group/disableGroupLink.cjs +29 -0
  558. package/dist/cjs/apis/group/disperseGroup.cjs +33 -0
  559. package/dist/cjs/apis/group/enableGroupLink.cjs +30 -0
  560. package/dist/cjs/apis/group/getAllGroups.cjs +15 -0
  561. package/dist/cjs/apis/group/getExtraGroupInfo.cjs +37 -0
  562. package/dist/cjs/apis/group/getGroupBlockedMember.cjs +33 -0
  563. package/dist/cjs/apis/group/getGroupChatHistory.cjs +81 -0
  564. package/dist/cjs/apis/group/getGroupCloudMessageJump.cjs +63 -0
  565. package/dist/cjs/apis/group/getGroupInfo.cjs +37 -0
  566. package/dist/cjs/apis/group/getGroupInviteBoxInfo.cjs +42 -0
  567. package/dist/cjs/apis/group/getGroupInviteBoxList.cjs +35 -0
  568. package/dist/cjs/apis/group/getGroupLinkDetail.cjs +30 -0
  569. package/dist/cjs/apis/group/getGroupLinkInfo.cjs +32 -0
  570. package/dist/cjs/apis/group/getGroupMembersInfo.cjs +29 -0
  571. package/dist/cjs/apis/group/getPendingGroupMembers.cjs +32 -0
  572. package/dist/cjs/apis/group/getQuotaCommunity.cjs +32 -0
  573. package/dist/cjs/apis/group/getRelatedFriendGroup.cjs +35 -0
  574. package/dist/cjs/apis/group/inviteUserToGroups.cjs +35 -0
  575. package/dist/cjs/apis/group/joinGroupInviteBox.cjs +30 -0
  576. package/dist/cjs/apis/group/joinGroupLink.cjs +32 -0
  577. package/dist/cjs/apis/group/leaveGroup.cjs +38 -0
  578. package/dist/cjs/apis/group/removeGroupBlockedMember.cjs +33 -0
  579. package/dist/cjs/apis/group/removeGroupDeputy.cjs +35 -0
  580. package/dist/cjs/apis/group/removeUserFromGroup.cjs +39 -0
  581. package/dist/cjs/apis/group/reviewPendingMemberRequest.cjs +43 -0
  582. package/dist/cjs/apis/group/updateGroupSettings.cjs +48 -0
  583. package/dist/cjs/apis/group/upgradeGroupToCommunity.cjs +32 -0
  584. package/dist/cjs/apis/login.cjs +15 -8
  585. package/dist/cjs/apis/loginQR.cjs +110 -68
  586. package/dist/cjs/apis/media/getConversationMedia.cjs +43 -0
  587. package/dist/cjs/apis/media/getMediaStorePreview.cjs +36 -0
  588. package/dist/cjs/apis/media/removeConversationMedia.cjs +35 -0
  589. package/dist/cjs/apis/media/uploadAttachment.cjs +225 -0
  590. package/dist/cjs/apis/media/voiceToText.cjs +35 -0
  591. package/dist/cjs/apis/profile/changeAccountAvatar.cjs +57 -0
  592. package/dist/cjs/apis/profile/deleteAvatar.cjs +32 -0
  593. package/dist/cjs/apis/profile/fetchAccountInfo.cjs +15 -0
  594. package/dist/cjs/apis/profile/getAvatarList.cjs +33 -0
  595. package/dist/cjs/apis/profile/getAvatarUrlProfile.cjs +46 -0
  596. package/dist/cjs/apis/profile/getEmojiStatusConfig.cjs +28 -0
  597. package/dist/cjs/apis/profile/getFullAvatar.cjs +30 -0
  598. package/dist/cjs/apis/profile/getMiniProfile.cjs +39 -0
  599. package/dist/cjs/apis/profile/getProfileRank.cjs +30 -0
  600. package/dist/cjs/apis/profile/getProfileVerificationStatus.cjs +25 -0
  601. package/dist/cjs/apis/profile/getSettings.cjs +27 -0
  602. package/dist/cjs/apis/profile/getUserInfo.cjs +60 -0
  603. package/dist/cjs/apis/profile/reuseAvatar.cjs +31 -0
  604. package/dist/cjs/apis/profile/updateProfile.cjs +47 -0
  605. package/dist/cjs/apis/profile/updateProfileBio.cjs +32 -0
  606. package/dist/cjs/apis/profile/updateSettings.cjs +97 -0
  607. package/dist/cjs/apis/sticker/getPersonalizedStickerList.cjs +29 -0
  608. package/dist/cjs/apis/sticker/getStickerCategoriesV2.cjs +26 -0
  609. package/dist/cjs/apis/sticker/getStickerCategoryData.cjs +30 -0
  610. package/dist/cjs/apis/sticker/getStickerCategoryDetail.cjs +29 -0
  611. package/dist/cjs/apis/sticker/getStickerHello.cjs +39 -0
  612. package/dist/cjs/apis/sticker/getStickerSuggestKeywords.cjs +29 -0
  613. package/dist/cjs/apis/sticker/getStickerSuggestion.cjs +34 -0
  614. package/dist/cjs/apis/sticker/getStickers.cjs +45 -0
  615. package/dist/cjs/apis/sticker/getStickersDetail.cjs +45 -0
  616. package/dist/cjs/apis/sticker/searchSticker.cjs +33 -0
  617. package/dist/cjs/apis/sync/cancelPullMobile.cjs +38 -0
  618. package/dist/cjs/apis/sync/downloadTransferSync.cjs +37 -0
  619. package/dist/cjs/apis/sync/getSyncData.cjs +109 -0
  620. package/dist/cjs/apis/sync/pullMobile.cjs +43 -0
  621. package/dist/cjs/apis/sync/requestSyncFromPhone.cjs +46 -0
  622. package/dist/cjs/apis/zcloud/getCloudInfo.cjs +27 -0
  623. package/dist/cjs/apis/zcloud/getCloudSettings.cjs +26 -0
  624. package/dist/cjs/apis/zcloud/getCloudViewerKey.cjs +53 -0
  625. package/dist/cjs/apis/zcloud/getFamilyProfile.cjs +27 -0
  626. package/dist/cjs/apis/zcloud/getFamilyUsage.cjs +26 -0
  627. package/dist/cjs/apis/zcloud/getFamilyViewerKey.cjs +53 -0
  628. package/dist/cjs/apis/zcloud/getUsageMyCloud.cjs +26 -0
  629. package/dist/cjs/apis/zcloud/getUsageZCloud.cjs +26 -0
  630. package/dist/cjs/apis/zcloud/verifyCloudMedia.cjs +34 -0
  631. package/dist/cjs/apis.cjs +1142 -332
  632. package/dist/cjs/constants/defaults.cjs +77 -0
  633. package/dist/cjs/constants/domains.cjs +38 -0
  634. package/dist/cjs/constants/endpoints.cjs +71 -0
  635. package/dist/cjs/constants/protocol.cjs +34 -0
  636. package/dist/cjs/context.cjs +9 -6
  637. package/dist/cjs/core/service-router.cjs +22 -0
  638. package/dist/cjs/core/zcloud-client.cjs +93 -0
  639. package/dist/cjs/crypto/aes.cjs +181 -0
  640. package/dist/cjs/crypto/ws-cipher.cjs +59 -0
  641. package/dist/cjs/crypto/zcloud-cipher.cjs +32 -0
  642. package/dist/cjs/crypto/zdb-cipher.cjs +177 -0
  643. package/dist/cjs/index.cjs +55 -17
  644. package/dist/cjs/models/ClearUnread.cjs +7 -0
  645. package/dist/cjs/models/DeliveredMessage.cjs +8 -2
  646. package/dist/cjs/models/GroupEvent.cjs +1 -2
  647. package/dist/cjs/models/Message.cjs +14 -2
  648. package/dist/cjs/models/Reaction.cjs +4 -0
  649. package/dist/cjs/models/SeenMessage.cjs +8 -2
  650. package/dist/cjs/models/Typing.cjs +8 -2
  651. package/dist/cjs/models/Undo.cjs +4 -0
  652. package/dist/cjs/realtime/handlers/control.handler.cjs +84 -0
  653. package/dist/cjs/realtime/handlers/message.handler.cjs +106 -0
  654. package/dist/cjs/realtime/handlers/reaction.handler.cjs +55 -0
  655. package/dist/cjs/realtime/handlers/status.handler.cjs +90 -0
  656. package/dist/cjs/realtime/listener.cjs +381 -0
  657. package/dist/cjs/realtime/types.cjs +9 -0
  658. package/dist/cjs/update.cjs +14 -11
  659. package/dist/cjs/utils.cjs +60 -452
  660. package/dist/cjs/zalo.cjs +13 -8
  661. package/dist/constants/defaults.d.ts +96 -0
  662. package/dist/constants/defaults.js +73 -0
  663. package/dist/constants/domains.d.ts +34 -0
  664. package/dist/constants/domains.js +34 -0
  665. package/dist/constants/endpoints.d.ts +67 -0
  666. package/dist/constants/endpoints.js +67 -0
  667. package/dist/constants/index.d.ts +4 -0
  668. package/dist/constants/index.js +4 -0
  669. package/dist/constants/protocol.d.ts +30 -0
  670. package/dist/constants/protocol.js +30 -0
  671. package/dist/context.d.ts +12 -1
  672. package/dist/context.js +7 -6
  673. package/dist/core/index.d.ts +2 -0
  674. package/dist/core/index.js +2 -0
  675. package/dist/core/service-router.d.ts +10 -0
  676. package/dist/core/service-router.js +17 -0
  677. package/dist/core/zcloud-client.d.ts +31 -0
  678. package/dist/core/zcloud-client.js +83 -0
  679. package/dist/crypto/aes.d.ts +34 -0
  680. package/dist/crypto/aes.js +171 -0
  681. package/dist/crypto/index.d.ts +4 -0
  682. package/dist/crypto/index.js +4 -0
  683. package/dist/crypto/ws-cipher.d.ts +3 -0
  684. package/dist/crypto/ws-cipher.js +52 -0
  685. package/dist/crypto/zcloud-cipher.d.ts +10 -0
  686. package/dist/crypto/zcloud-cipher.js +26 -0
  687. package/dist/crypto/zdb-cipher.d.ts +42 -0
  688. package/dist/crypto/zdb-cipher.js +167 -0
  689. package/dist/index.d.ts +217 -172
  690. package/dist/index.js +13 -10
  691. package/dist/models/ClearUnread.js +7 -0
  692. package/dist/models/DeliveredMessage.js +8 -2
  693. package/dist/models/GroupEvent.js +1 -2
  694. package/dist/models/Message.js +14 -2
  695. package/dist/models/Reaction.js +4 -0
  696. package/dist/models/SeenMessage.js +8 -2
  697. package/dist/models/Typing.js +8 -2
  698. package/dist/models/Undo.js +4 -0
  699. package/dist/realtime/handlers/control.handler.d.ts +3 -0
  700. package/dist/realtime/handlers/control.handler.js +78 -0
  701. package/dist/realtime/handlers/message.handler.d.ts +4 -0
  702. package/dist/realtime/handlers/message.handler.js +87 -0
  703. package/dist/realtime/handlers/reaction.handler.d.ts +3 -0
  704. package/dist/realtime/handlers/reaction.handler.js +32 -0
  705. package/dist/realtime/handlers/status.handler.d.ts +3 -0
  706. package/dist/realtime/handlers/status.handler.js +66 -0
  707. package/dist/realtime/index.d.ts +2 -0
  708. package/dist/realtime/index.js +2 -0
  709. package/dist/realtime/listener.d.ts +69 -0
  710. package/dist/realtime/listener.js +363 -0
  711. package/dist/realtime/types.d.ts +64 -0
  712. package/dist/realtime/types.js +7 -0
  713. package/dist/update.js +13 -11
  714. package/dist/utils.d.ts +5 -125
  715. package/dist/utils.js +49 -466
  716. package/dist/zalo.js +12 -9
  717. package/package.json +11 -7
  718. package/.prettierrc +0 -5
  719. package/dist/apis/acceptFriendRequest.d.ts +0 -2
  720. package/dist/apis/acceptFriendRequest.js +0 -28
  721. package/dist/apis/addGroupBlockedMember.d.ts +0 -2
  722. package/dist/apis/addGroupBlockedMember.js +0 -28
  723. package/dist/apis/addGroupDeputy.d.ts +0 -2
  724. package/dist/apis/addGroupDeputy.js +0 -30
  725. package/dist/apis/addPollOptions.d.ts +0 -14
  726. package/dist/apis/addPollOptions.js +0 -26
  727. package/dist/apis/addQuickMessage.d.ts +0 -11
  728. package/dist/apis/addQuickMessage.js +0 -60
  729. package/dist/apis/addReaction.d.ts +0 -18
  730. package/dist/apis/addReaction.js +0 -297
  731. package/dist/apis/addUnreadMark.d.ts +0 -8
  732. package/dist/apis/addUnreadMark.js +0 -52
  733. package/dist/apis/addUserToGroup.d.ts +0 -5
  734. package/dist/apis/addUserToGroup.js +0 -34
  735. package/dist/apis/blockUser.d.ts +0 -2
  736. package/dist/apis/blockUser.js +0 -28
  737. package/dist/apis/blockViewFeed.d.ts +0 -2
  738. package/dist/apis/blockViewFeed.js +0 -30
  739. package/dist/apis/cancelPullMobile.d.ts +0 -11
  740. package/dist/apis/cancelPullMobile.js +0 -33
  741. package/dist/apis/cancelVoiceCall.d.ts +0 -7
  742. package/dist/apis/cancelVoiceCall.js +0 -42
  743. package/dist/apis/changeAccountAvatar.d.ts +0 -3
  744. package/dist/apis/changeAccountAvatar.js +0 -52
  745. package/dist/apis/changeFriendAlias.d.ts +0 -2
  746. package/dist/apis/changeFriendAlias.js +0 -27
  747. package/dist/apis/changeGroupAvatar.d.ts +0 -3
  748. package/dist/apis/changeGroupAvatar.js +0 -44
  749. package/dist/apis/changeGroupName.d.ts +0 -4
  750. package/dist/apis/changeGroupName.js +0 -32
  751. package/dist/apis/changeGroupOwner.d.ts +0 -4
  752. package/dist/apis/changeGroupOwner.js +0 -30
  753. package/dist/apis/createAutoReply.d.ts +0 -14
  754. package/dist/apis/createAutoReply.js +0 -37
  755. package/dist/apis/createBankAccount.d.ts +0 -8
  756. package/dist/apis/createBankAccount.js +0 -32
  757. package/dist/apis/createCatalog.d.ts +0 -7
  758. package/dist/apis/createCatalog.js +0 -29
  759. package/dist/apis/createGroup.d.ts +0 -28
  760. package/dist/apis/createGroup.js +0 -43
  761. package/dist/apis/createNote.d.ts +0 -7
  762. package/dist/apis/createNote.js +0 -47
  763. package/dist/apis/createPoll.d.ts +0 -36
  764. package/dist/apis/createPoll.js +0 -40
  765. package/dist/apis/createProductCatalog.d.ts +0 -23
  766. package/dist/apis/createProductCatalog.js +0 -50
  767. package/dist/apis/createReminder.d.ts +0 -12
  768. package/dist/apis/createReminder.js +0 -63
  769. package/dist/apis/decryptGids.d.ts +0 -6
  770. package/dist/apis/decryptGids.js +0 -30
  771. package/dist/apis/deleteAutoReply.d.ts +0 -5
  772. package/dist/apis/deleteAutoReply.js +0 -29
  773. package/dist/apis/deleteAvatar.d.ts +0 -9
  774. package/dist/apis/deleteAvatar.js +0 -27
  775. package/dist/apis/deleteBankAccount.d.ts +0 -11
  776. package/dist/apis/deleteBankAccount.js +0 -32
  777. package/dist/apis/deleteCatalog.d.ts +0 -2
  778. package/dist/apis/deleteCatalog.js +0 -28
  779. package/dist/apis/deleteChat.d.ts +0 -19
  780. package/dist/apis/deleteChat.js +0 -50
  781. package/dist/apis/deleteGroupInviteBox.d.ts +0 -9
  782. package/dist/apis/deleteGroupInviteBox.js +0 -27
  783. package/dist/apis/deleteMessage.d.ts +0 -14
  784. package/dist/apis/deleteMessage.js +0 -52
  785. package/dist/apis/deleteProductCatalog.d.ts +0 -10
  786. package/dist/apis/deleteProductCatalog.js +0 -31
  787. package/dist/apis/disableGroupLink.d.ts +0 -2
  788. package/dist/apis/disableGroupLink.js +0 -24
  789. package/dist/apis/disperseGroup.d.ts +0 -2
  790. package/dist/apis/disperseGroup.js +0 -28
  791. package/dist/apis/downloadTransferSync.d.ts +0 -6
  792. package/dist/apis/downloadTransferSync.js +0 -30
  793. package/dist/apis/editNote.d.ts +0 -17
  794. package/dist/apis/editNote.js +0 -46
  795. package/dist/apis/editReminder.d.ts +0 -13
  796. package/dist/apis/editReminder.js +0 -61
  797. package/dist/apis/enableGroupLink.d.ts +0 -6
  798. package/dist/apis/enableGroupLink.js +0 -25
  799. package/dist/apis/endVoiceCall.d.ts +0 -5
  800. package/dist/apis/endVoiceCall.js +0 -40
  801. package/dist/apis/fetchAccountInfo.d.ts +0 -5
  802. package/dist/apis/fetchAccountInfo.js +0 -10
  803. package/dist/apis/findUser.d.ts +0 -3
  804. package/dist/apis/findUser.js +0 -42
  805. package/dist/apis/findUserByUsername.d.ts +0 -3
  806. package/dist/apis/findUserByUsername.js +0 -27
  807. package/dist/apis/forwardMessage.d.ts +0 -24
  808. package/dist/apis/forwardMessage.js +0 -99
  809. package/dist/apis/getAliasList.d.ts +0 -8
  810. package/dist/apis/getAliasList.js +0 -27
  811. package/dist/apis/getAllFriends.d.ts +0 -3
  812. package/dist/apis/getAllFriends.js +0 -34
  813. package/dist/apis/getAllGroups.d.ts +0 -7
  814. package/dist/apis/getAllGroups.js +0 -10
  815. package/dist/apis/getArchivedChatList.d.ts +0 -5
  816. package/dist/apis/getArchivedChatList.js +0 -23
  817. package/dist/apis/getAutoDeleteChat.d.ts +0 -9
  818. package/dist/apis/getAutoDeleteChat.js +0 -21
  819. package/dist/apis/getAutoReplyList.d.ts +0 -6
  820. package/dist/apis/getAutoReplyList.js +0 -24
  821. package/dist/apis/getAvatarList.d.ts +0 -12
  822. package/dist/apis/getAvatarList.js +0 -28
  823. package/dist/apis/getAvatarUrlProfile.d.ts +0 -7
  824. package/dist/apis/getAvatarUrlProfile.js +0 -30
  825. package/dist/apis/getBizAccount.d.ts +0 -24
  826. package/dist/apis/getBizAccount.js +0 -27
  827. package/dist/apis/getCatalogList.d.ts +0 -18
  828. package/dist/apis/getCatalogList.js +0 -32
  829. package/dist/apis/getCloseFriends.d.ts +0 -3
  830. package/dist/apis/getCloseFriends.js +0 -20
  831. package/dist/apis/getContext.d.ts +0 -1
  832. package/dist/apis/getContext.js +0 -4
  833. package/dist/apis/getCookie.d.ts +0 -1
  834. package/dist/apis/getCookie.js +0 -9
  835. package/dist/apis/getFriendBoardList.d.ts +0 -5
  836. package/dist/apis/getFriendBoardList.js +0 -26
  837. package/dist/apis/getFriendOnlines.d.ts +0 -10
  838. package/dist/apis/getFriendOnlines.js +0 -35
  839. package/dist/apis/getFriendRecommendations.d.ts +0 -42
  840. package/dist/apis/getFriendRecommendations.js +0 -27
  841. package/dist/apis/getFriendRequestStatus.d.ts +0 -8
  842. package/dist/apis/getFriendRequestStatus.js +0 -25
  843. package/dist/apis/getFullAvatar.d.ts +0 -5
  844. package/dist/apis/getFullAvatar.js +0 -25
  845. package/dist/apis/getGroupBlockedMember.d.ts +0 -23
  846. package/dist/apis/getGroupBlockedMember.js +0 -29
  847. package/dist/apis/getGroupChatHistory.d.ts +0 -18
  848. package/dist/apis/getGroupChatHistory.js +0 -64
  849. package/dist/apis/getGroupInfo.d.ts +0 -16
  850. package/dist/apis/getGroupInfo.js +0 -32
  851. package/dist/apis/getGroupInviteBoxInfo.d.ts +0 -32
  852. package/dist/apis/getGroupInviteBoxInfo.js +0 -38
  853. package/dist/apis/getGroupInviteBoxList.d.ts +0 -38
  854. package/dist/apis/getGroupInviteBoxList.js +0 -31
  855. package/dist/apis/getGroupLinkDetail.d.ts +0 -9
  856. package/dist/apis/getGroupLinkDetail.js +0 -25
  857. package/dist/apis/getGroupLinkInfo.d.ts +0 -34
  858. package/dist/apis/getGroupLinkInfo.js +0 -28
  859. package/dist/apis/getGroupMembersInfo.d.ts +0 -17
  860. package/dist/apis/getGroupMembersInfo.js +0 -24
  861. package/dist/apis/getHiddenConversations.d.ts +0 -11
  862. package/dist/apis/getHiddenConversations.js +0 -23
  863. package/dist/apis/getLabels.d.ts +0 -7
  864. package/dist/apis/getLabels.js +0 -28
  865. package/dist/apis/getListBank.d.ts +0 -5
  866. package/dist/apis/getListBank.js +0 -20
  867. package/dist/apis/getListBankAccount.d.ts +0 -7
  868. package/dist/apis/getListBankAccount.js +0 -27
  869. package/dist/apis/getListBoard.d.ts +0 -21
  870. package/dist/apis/getListBoard.js +0 -45
  871. package/dist/apis/getListDevice.d.ts +0 -10
  872. package/dist/apis/getListDevice.js +0 -22
  873. package/dist/apis/getListReminder.d.ts +0 -28
  874. package/dist/apis/getListReminder.js +0 -47
  875. package/dist/apis/getMultiUsersByPhones.d.ts +0 -5
  876. package/dist/apis/getMultiUsersByPhones.js +0 -39
  877. package/dist/apis/getMute.d.ts +0 -13
  878. package/dist/apis/getMute.js +0 -22
  879. package/dist/apis/getNoisedIds.d.ts +0 -9
  880. package/dist/apis/getNoisedIds.js +0 -67
  881. package/dist/apis/getOwnId.d.ts +0 -1
  882. package/dist/apis/getOwnId.js +0 -4
  883. package/dist/apis/getPendingGroupMembers.d.ts +0 -11
  884. package/dist/apis/getPendingGroupMembers.js +0 -27
  885. package/dist/apis/getPinConversations.d.ts +0 -5
  886. package/dist/apis/getPinConversations.js +0 -22
  887. package/dist/apis/getPollDetail.d.ts +0 -3
  888. package/dist/apis/getPollDetail.js +0 -30
  889. package/dist/apis/getProductCatalogList.d.ts +0 -20
  890. package/dist/apis/getProductCatalogList.js +0 -33
  891. package/dist/apis/getQR.d.ts +0 -4
  892. package/dist/apis/getQR.js +0 -29
  893. package/dist/apis/getQuickMessageList.d.ts +0 -7
  894. package/dist/apis/getQuickMessageList.js +0 -24
  895. package/dist/apis/getRelatedFriendGroup.d.ts +0 -6
  896. package/dist/apis/getRelatedFriendGroup.js +0 -30
  897. package/dist/apis/getReminder.d.ts +0 -3
  898. package/dist/apis/getReminder.js +0 -25
  899. package/dist/apis/getReminderResponses.d.ts +0 -5
  900. package/dist/apis/getReminderResponses.js +0 -24
  901. package/dist/apis/getSentFriendRequest.d.ts +0 -18
  902. package/dist/apis/getSentFriendRequest.js +0 -24
  903. package/dist/apis/getSettings.d.ts +0 -3
  904. package/dist/apis/getSettings.js +0 -20
  905. package/dist/apis/getStickerCategoryDetail.d.ts +0 -3
  906. package/dist/apis/getStickerCategoryDetail.js +0 -24
  907. package/dist/apis/getStickers.d.ts +0 -1
  908. package/dist/apis/getStickers.js +0 -40
  909. package/dist/apis/getStickersDetail.d.ts +0 -3
  910. package/dist/apis/getStickersDetail.js +0 -40
  911. package/dist/apis/getSyncData.d.ts +0 -13
  912. package/dist/apis/getSyncData.js +0 -103
  913. package/dist/apis/getUnreadMark.d.ts +0 -14
  914. package/dist/apis/getUnreadMark.js +0 -30
  915. package/dist/apis/getUserInfo.d.ts +0 -8
  916. package/dist/apis/getUserInfo.js +0 -44
  917. package/dist/apis/inviteUserToGroups.d.ts +0 -10
  918. package/dist/apis/inviteUserToGroups.js +0 -30
  919. package/dist/apis/joinGroupInviteBox.d.ts +0 -2
  920. package/dist/apis/joinGroupInviteBox.js +0 -25
  921. package/dist/apis/joinGroupLink.d.ts +0 -2
  922. package/dist/apis/joinGroupLink.js +0 -27
  923. package/dist/apis/keepAlive.d.ts +0 -4
  924. package/dist/apis/keepAlive.js +0 -22
  925. package/dist/apis/lastOnline.d.ts +0 -7
  926. package/dist/apis/lastOnline.js +0 -26
  927. package/dist/apis/leaveGroup.d.ts +0 -4
  928. package/dist/apis/leaveGroup.js +0 -33
  929. package/dist/apis/lockPoll.d.ts +0 -2
  930. package/dist/apis/lockPoll.js +0 -28
  931. package/dist/apis/lostFocus.d.ts +0 -4
  932. package/dist/apis/lostFocus.js +0 -23
  933. package/dist/apis/parseLink.d.ts +0 -21
  934. package/dist/apis/parseLink.js +0 -27
  935. package/dist/apis/preloadConversations.d.ts +0 -28
  936. package/dist/apis/preloadConversations.js +0 -76
  937. package/dist/apis/pullMobile.d.ts +0 -15
  938. package/dist/apis/pullMobile.js +0 -38
  939. package/dist/apis/registerCatalog.d.ts +0 -2
  940. package/dist/apis/registerCatalog.js +0 -27
  941. package/dist/apis/rejectFriendRequest.d.ts +0 -2
  942. package/dist/apis/rejectFriendRequest.js +0 -27
  943. package/dist/apis/removeFriend.d.ts +0 -2
  944. package/dist/apis/removeFriend.js +0 -28
  945. package/dist/apis/removeFriendAlias.d.ts +0 -2
  946. package/dist/apis/removeFriendAlias.js +0 -24
  947. package/dist/apis/removeGroupBlockedMember.d.ts +0 -2
  948. package/dist/apis/removeGroupBlockedMember.js +0 -28
  949. package/dist/apis/removeGroupDeputy.d.ts +0 -2
  950. package/dist/apis/removeGroupDeputy.js +0 -30
  951. package/dist/apis/removeQuickMessage.d.ts +0 -5
  952. package/dist/apis/removeQuickMessage.js +0 -27
  953. package/dist/apis/removeReminder.d.ts +0 -3
  954. package/dist/apis/removeReminder.js +0 -40
  955. package/dist/apis/removeUnreadMark.d.ts +0 -8
  956. package/dist/apis/removeUnreadMark.js +0 -50
  957. package/dist/apis/removeUserFromGroup.d.ts +0 -4
  958. package/dist/apis/removeUserFromGroup.js +0 -34
  959. package/dist/apis/requestSyncFromPhone.d.ts +0 -20
  960. package/dist/apis/requestSyncFromPhone.js +0 -41
  961. package/dist/apis/resetHiddenConversPin.d.ts +0 -2
  962. package/dist/apis/resetHiddenConversPin.js +0 -20
  963. package/dist/apis/reuseAvatar.d.ts +0 -2
  964. package/dist/apis/reuseAvatar.js +0 -26
  965. package/dist/apis/reviewPendingMemberRequest.d.ts +0 -14
  966. package/dist/apis/reviewPendingMemberRequest.js +0 -38
  967. package/dist/apis/scanURL.d.ts +0 -4
  968. package/dist/apis/scanURL.js +0 -28
  969. package/dist/apis/searchSticker.d.ts +0 -3
  970. package/dist/apis/searchSticker.js +0 -28
  971. package/dist/apis/sendBankCard.d.ts +0 -9
  972. package/dist/apis/sendBankCard.js +0 -37
  973. package/dist/apis/sendCard.d.ts +0 -10
  974. package/dist/apis/sendCard.js +0 -59
  975. package/dist/apis/sendDeliveredEvent.d.ts +0 -16
  976. package/dist/apis/sendDeliveredEvent.js +0 -55
  977. package/dist/apis/sendFriendRequest.d.ts +0 -2
  978. package/dist/apis/sendFriendRequest.js +0 -39
  979. package/dist/apis/sendLink.d.ts +0 -10
  980. package/dist/apis/sendLink.js +0 -61
  981. package/dist/apis/sendMessage.d.ts +0 -99
  982. package/dist/apis/sendMessage.js +0 -452
  983. package/dist/apis/sendReport.d.ts +0 -17
  984. package/dist/apis/sendReport.js +0 -53
  985. package/dist/apis/sendSeenEvent.d.ts +0 -16
  986. package/dist/apis/sendSeenEvent.js +0 -63
  987. package/dist/apis/sendSticker.d.ts +0 -10
  988. package/dist/apis/sendSticker.js +0 -57
  989. package/dist/apis/sendTypingEvent.d.ts +0 -5
  990. package/dist/apis/sendTypingEvent.js +0 -33
  991. package/dist/apis/sendVideo.d.ts +0 -35
  992. package/dist/apis/sendVideo.js +0 -118
  993. package/dist/apis/sendVoice.d.ts +0 -12
  994. package/dist/apis/sendVoice.js +0 -73
  995. package/dist/apis/sendVoiceCall.d.ts +0 -44
  996. package/dist/apis/sendVoiceCall.js +0 -115
  997. package/dist/apis/setHiddenConversations.d.ts +0 -3
  998. package/dist/apis/setHiddenConversations.js +0 -39
  999. package/dist/apis/setMute.d.ts +0 -20
  1000. package/dist/apis/setMute.js +0 -67
  1001. package/dist/apis/setPinnedConversations.d.ts +0 -3
  1002. package/dist/apis/setPinnedConversations.js +0 -34
  1003. package/dist/apis/sharePoll.d.ts +0 -2
  1004. package/dist/apis/sharePoll.js +0 -28
  1005. package/dist/apis/unblockUser.d.ts +0 -2
  1006. package/dist/apis/unblockUser.js +0 -28
  1007. package/dist/apis/undo.d.ts +0 -9
  1008. package/dist/apis/undo.js +0 -42
  1009. package/dist/apis/undoFriendRequest.d.ts +0 -2
  1010. package/dist/apis/undoFriendRequest.js +0 -27
  1011. package/dist/apis/updateActiveStatus.d.ts +0 -4
  1012. package/dist/apis/updateActiveStatus.js +0 -27
  1013. package/dist/apis/updateArchivedChatList.d.ts +0 -10
  1014. package/dist/apis/updateArchivedChatList.js +0 -34
  1015. package/dist/apis/updateAutoDeleteChat.d.ts +0 -9
  1016. package/dist/apis/updateAutoDeleteChat.js +0 -40
  1017. package/dist/apis/updateAutoReply.d.ts +0 -15
  1018. package/dist/apis/updateAutoReply.js +0 -38
  1019. package/dist/apis/updateBankAccount.d.ts +0 -9
  1020. package/dist/apis/updateBankAccount.js +0 -31
  1021. package/dist/apis/updateCatalog.d.ts +0 -11
  1022. package/dist/apis/updateCatalog.js +0 -30
  1023. package/dist/apis/updateGroupSettings.d.ts +0 -40
  1024. package/dist/apis/updateGroupSettings.js +0 -43
  1025. package/dist/apis/updateHiddenConversPin.d.ts +0 -2
  1026. package/dist/apis/updateHiddenConversPin.js +0 -30
  1027. package/dist/apis/updateLabels.d.ts +0 -15
  1028. package/dist/apis/updateLabels.js +0 -34
  1029. package/dist/apis/updateLang.d.ts +0 -6
  1030. package/dist/apis/updateLang.js +0 -30
  1031. package/dist/apis/updateProductCatalog.d.ts +0 -25
  1032. package/dist/apis/updateProductCatalog.js +0 -51
  1033. package/dist/apis/updateProfile.d.ts +0 -20
  1034. package/dist/apis/updateProfile.js +0 -43
  1035. package/dist/apis/updateProfileBio.d.ts +0 -2
  1036. package/dist/apis/updateProfileBio.js +0 -27
  1037. package/dist/apis/updateQuickMessage.d.ts +0 -11
  1038. package/dist/apis/updateQuickMessage.js +0 -61
  1039. package/dist/apis/updateSettings.d.ts +0 -16
  1040. package/dist/apis/updateSettings.js +0 -90
  1041. package/dist/apis/upgradeGroupToCommunity.d.ts +0 -2
  1042. package/dist/apis/upgradeGroupToCommunity.js +0 -27
  1043. package/dist/apis/uploadAttachment.d.ts +0 -50
  1044. package/dist/apis/uploadAttachment.js +0 -202
  1045. package/dist/apis/uploadProductPhoto.d.ts +0 -14
  1046. package/dist/apis/uploadProductPhoto.js +0 -50
  1047. package/dist/apis/votePoll.d.ts +0 -5
  1048. package/dist/apis/votePoll.js +0 -29
  1049. package/dist/cjs/apis/acceptFriendRequest.cjs +0 -33
  1050. package/dist/cjs/apis/addGroupBlockedMember.cjs +0 -33
  1051. package/dist/cjs/apis/addGroupDeputy.cjs +0 -35
  1052. package/dist/cjs/apis/addPollOptions.cjs +0 -31
  1053. package/dist/cjs/apis/addQuickMessage.cjs +0 -65
  1054. package/dist/cjs/apis/addReaction.cjs +0 -313
  1055. package/dist/cjs/apis/addUnreadMark.cjs +0 -68
  1056. package/dist/cjs/apis/addUserToGroup.cjs +0 -39
  1057. package/dist/cjs/apis/blockUser.cjs +0 -33
  1058. package/dist/cjs/apis/blockViewFeed.cjs +0 -35
  1059. package/dist/cjs/apis/cancelPullMobile.cjs +0 -38
  1060. package/dist/cjs/apis/cancelVoiceCall.cjs +0 -47
  1061. package/dist/cjs/apis/changeAccountAvatar.cjs +0 -57
  1062. package/dist/cjs/apis/changeFriendAlias.cjs +0 -32
  1063. package/dist/cjs/apis/changeGroupAvatar.cjs +0 -49
  1064. package/dist/cjs/apis/changeGroupName.cjs +0 -37
  1065. package/dist/cjs/apis/changeGroupOwner.cjs +0 -35
  1066. package/dist/cjs/apis/createAutoReply.cjs +0 -42
  1067. package/dist/cjs/apis/createBankAccount.cjs +0 -37
  1068. package/dist/cjs/apis/createCatalog.cjs +0 -34
  1069. package/dist/cjs/apis/createGroup.cjs +0 -48
  1070. package/dist/cjs/apis/createNote.cjs +0 -52
  1071. package/dist/cjs/apis/createPoll.cjs +0 -45
  1072. package/dist/cjs/apis/createProductCatalog.cjs +0 -55
  1073. package/dist/cjs/apis/createReminder.cjs +0 -79
  1074. package/dist/cjs/apis/decryptGids.cjs +0 -35
  1075. package/dist/cjs/apis/deleteAutoReply.cjs +0 -34
  1076. package/dist/cjs/apis/deleteAvatar.cjs +0 -32
  1077. package/dist/cjs/apis/deleteBankAccount.cjs +0 -37
  1078. package/dist/cjs/apis/deleteCatalog.cjs +0 -33
  1079. package/dist/cjs/apis/deleteChat.cjs +0 -66
  1080. package/dist/cjs/apis/deleteGroupInviteBox.cjs +0 -32
  1081. package/dist/cjs/apis/deleteMessage.cjs +0 -68
  1082. package/dist/cjs/apis/deleteProductCatalog.cjs +0 -36
  1083. package/dist/cjs/apis/disableGroupLink.cjs +0 -29
  1084. package/dist/cjs/apis/disperseGroup.cjs +0 -33
  1085. package/dist/cjs/apis/downloadTransferSync.cjs +0 -35
  1086. package/dist/cjs/apis/editNote.cjs +0 -51
  1087. package/dist/cjs/apis/editReminder.cjs +0 -77
  1088. package/dist/cjs/apis/enableGroupLink.cjs +0 -30
  1089. package/dist/cjs/apis/endVoiceCall.cjs +0 -45
  1090. package/dist/cjs/apis/fetchAccountInfo.cjs +0 -15
  1091. package/dist/cjs/apis/findUser.cjs +0 -58
  1092. package/dist/cjs/apis/findUserByUsername.cjs +0 -43
  1093. package/dist/cjs/apis/forwardMessage.cjs +0 -115
  1094. package/dist/cjs/apis/getAliasList.cjs +0 -32
  1095. package/dist/cjs/apis/getAllFriends.cjs +0 -50
  1096. package/dist/cjs/apis/getAllGroups.cjs +0 -15
  1097. package/dist/cjs/apis/getArchivedChatList.cjs +0 -28
  1098. package/dist/cjs/apis/getAutoDeleteChat.cjs +0 -26
  1099. package/dist/cjs/apis/getAutoReplyList.cjs +0 -29
  1100. package/dist/cjs/apis/getAvatarList.cjs +0 -33
  1101. package/dist/cjs/apis/getAvatarUrlProfile.cjs +0 -46
  1102. package/dist/cjs/apis/getBizAccount.cjs +0 -32
  1103. package/dist/cjs/apis/getCatalogList.cjs +0 -37
  1104. package/dist/cjs/apis/getCloseFriends.cjs +0 -25
  1105. package/dist/cjs/apis/getContext.cjs +0 -9
  1106. package/dist/cjs/apis/getCookie.cjs +0 -14
  1107. package/dist/cjs/apis/getFriendBoardList.cjs +0 -31
  1108. package/dist/cjs/apis/getFriendOnlines.cjs +0 -40
  1109. package/dist/cjs/apis/getFriendRecommendations.cjs +0 -32
  1110. package/dist/cjs/apis/getFriendRequestStatus.cjs +0 -30
  1111. package/dist/cjs/apis/getFullAvatar.cjs +0 -30
  1112. package/dist/cjs/apis/getGroupBlockedMember.cjs +0 -34
  1113. package/dist/cjs/apis/getGroupChatHistory.cjs +0 -81
  1114. package/dist/cjs/apis/getGroupInfo.cjs +0 -37
  1115. package/dist/cjs/apis/getGroupInviteBoxInfo.cjs +0 -43
  1116. package/dist/cjs/apis/getGroupInviteBoxList.cjs +0 -36
  1117. package/dist/cjs/apis/getGroupLinkDetail.cjs +0 -30
  1118. package/dist/cjs/apis/getGroupLinkInfo.cjs +0 -33
  1119. package/dist/cjs/apis/getGroupMembersInfo.cjs +0 -29
  1120. package/dist/cjs/apis/getHiddenConversations.cjs +0 -28
  1121. package/dist/cjs/apis/getLabels.cjs +0 -33
  1122. package/dist/cjs/apis/getListBank.cjs +0 -25
  1123. package/dist/cjs/apis/getListBankAccount.cjs +0 -32
  1124. package/dist/cjs/apis/getListBoard.cjs +0 -61
  1125. package/dist/cjs/apis/getListDevice.cjs +0 -27
  1126. package/dist/cjs/apis/getListReminder.cjs +0 -63
  1127. package/dist/cjs/apis/getMultiUsersByPhones.cjs +0 -55
  1128. package/dist/cjs/apis/getMute.cjs +0 -27
  1129. package/dist/cjs/apis/getNoisedIds.cjs +0 -72
  1130. package/dist/cjs/apis/getOwnId.cjs +0 -9
  1131. package/dist/cjs/apis/getPendingGroupMembers.cjs +0 -32
  1132. package/dist/cjs/apis/getPinConversations.cjs +0 -27
  1133. package/dist/cjs/apis/getPollDetail.cjs +0 -35
  1134. package/dist/cjs/apis/getProductCatalogList.cjs +0 -38
  1135. package/dist/cjs/apis/getQR.cjs +0 -34
  1136. package/dist/cjs/apis/getQuickMessageList.cjs +0 -29
  1137. package/dist/cjs/apis/getRelatedFriendGroup.cjs +0 -35
  1138. package/dist/cjs/apis/getReminder.cjs +0 -30
  1139. package/dist/cjs/apis/getReminderResponses.cjs +0 -29
  1140. package/dist/cjs/apis/getSentFriendRequest.cjs +0 -29
  1141. package/dist/cjs/apis/getSettings.cjs +0 -25
  1142. package/dist/cjs/apis/getStickerCategoryDetail.cjs +0 -29
  1143. package/dist/cjs/apis/getStickers.cjs +0 -45
  1144. package/dist/cjs/apis/getStickersDetail.cjs +0 -45
  1145. package/dist/cjs/apis/getSyncData.cjs +0 -108
  1146. package/dist/cjs/apis/getUnreadMark.cjs +0 -35
  1147. package/dist/cjs/apis/getUserInfo.cjs +0 -60
  1148. package/dist/cjs/apis/inviteUserToGroups.cjs +0 -35
  1149. package/dist/cjs/apis/joinGroupInviteBox.cjs +0 -30
  1150. package/dist/cjs/apis/joinGroupLink.cjs +0 -32
  1151. package/dist/cjs/apis/keepAlive.cjs +0 -27
  1152. package/dist/cjs/apis/lastOnline.cjs +0 -31
  1153. package/dist/cjs/apis/leaveGroup.cjs +0 -38
  1154. package/dist/cjs/apis/listen.cjs +0 -591
  1155. package/dist/cjs/apis/lockPoll.cjs +0 -33
  1156. package/dist/cjs/apis/lostFocus.cjs +0 -28
  1157. package/dist/cjs/apis/parseLink.cjs +0 -32
  1158. package/dist/cjs/apis/preloadConversations.cjs +0 -94
  1159. package/dist/cjs/apis/pullMobile.cjs +0 -43
  1160. package/dist/cjs/apis/registerCatalog.cjs +0 -32
  1161. package/dist/cjs/apis/rejectFriendRequest.cjs +0 -32
  1162. package/dist/cjs/apis/removeFriend.cjs +0 -33
  1163. package/dist/cjs/apis/removeFriendAlias.cjs +0 -29
  1164. package/dist/cjs/apis/removeGroupBlockedMember.cjs +0 -33
  1165. package/dist/cjs/apis/removeGroupDeputy.cjs +0 -35
  1166. package/dist/cjs/apis/removeQuickMessage.cjs +0 -32
  1167. package/dist/cjs/apis/removeReminder.cjs +0 -56
  1168. package/dist/cjs/apis/removeUnreadMark.cjs +0 -66
  1169. package/dist/cjs/apis/removeUserFromGroup.cjs +0 -39
  1170. package/dist/cjs/apis/requestSyncFromPhone.cjs +0 -46
  1171. package/dist/cjs/apis/resetHiddenConversPin.cjs +0 -25
  1172. package/dist/cjs/apis/reuseAvatar.cjs +0 -31
  1173. package/dist/cjs/apis/reviewPendingMemberRequest.cjs +0 -43
  1174. package/dist/cjs/apis/scanURL.cjs +0 -33
  1175. package/dist/cjs/apis/searchSticker.cjs +0 -33
  1176. package/dist/cjs/apis/sendBankCard.cjs +0 -53
  1177. package/dist/cjs/apis/sendCard.cjs +0 -75
  1178. package/dist/cjs/apis/sendDeliveredEvent.cjs +0 -71
  1179. package/dist/cjs/apis/sendFriendRequest.cjs +0 -44
  1180. package/dist/cjs/apis/sendLink.cjs +0 -77
  1181. package/dist/cjs/apis/sendMessage.cjs +0 -468
  1182. package/dist/cjs/apis/sendReport.cjs +0 -69
  1183. package/dist/cjs/apis/sendSeenEvent.cjs +0 -79
  1184. package/dist/cjs/apis/sendSticker.cjs +0 -73
  1185. package/dist/cjs/apis/sendTypingEvent.cjs +0 -49
  1186. package/dist/cjs/apis/sendVideo.cjs +0 -134
  1187. package/dist/cjs/apis/sendVoice.cjs +0 -89
  1188. package/dist/cjs/apis/sendVoiceCall.cjs +0 -120
  1189. package/dist/cjs/apis/setHiddenConversations.cjs +0 -55
  1190. package/dist/cjs/apis/setMute.cjs +0 -83
  1191. package/dist/cjs/apis/setPinnedConversations.cjs +0 -50
  1192. package/dist/cjs/apis/sharePoll.cjs +0 -33
  1193. package/dist/cjs/apis/unblockUser.cjs +0 -33
  1194. package/dist/cjs/apis/undo.cjs +0 -58
  1195. package/dist/cjs/apis/undoFriendRequest.cjs +0 -32
  1196. package/dist/cjs/apis/updateActiveStatus.cjs +0 -32
  1197. package/dist/cjs/apis/updateArchivedChatList.cjs +0 -39
  1198. package/dist/cjs/apis/updateAutoDeleteChat.cjs +0 -56
  1199. package/dist/cjs/apis/updateAutoReply.cjs +0 -43
  1200. package/dist/cjs/apis/updateBankAccount.cjs +0 -36
  1201. package/dist/cjs/apis/updateCatalog.cjs +0 -35
  1202. package/dist/cjs/apis/updateGroupSettings.cjs +0 -48
  1203. package/dist/cjs/apis/updateHiddenConversPin.cjs +0 -35
  1204. package/dist/cjs/apis/updateLabels.cjs +0 -39
  1205. package/dist/cjs/apis/updateLang.cjs +0 -35
  1206. package/dist/cjs/apis/updateProductCatalog.cjs +0 -56
  1207. package/dist/cjs/apis/updateProfile.cjs +0 -48
  1208. package/dist/cjs/apis/updateProfileBio.cjs +0 -32
  1209. package/dist/cjs/apis/updateQuickMessage.cjs +0 -66
  1210. package/dist/cjs/apis/updateSettings.cjs +0 -95
  1211. package/dist/cjs/apis/upgradeGroupToCommunity.cjs +0 -32
  1212. package/dist/cjs/apis/uploadAttachment.cjs +0 -218
  1213. package/dist/cjs/apis/uploadProductPhoto.cjs +0 -55
  1214. package/dist/cjs/apis/votePoll.cjs +0 -34
  1215. package/docs/INTEGRATION_GUIDE_SYNC_AND_CALL.md +0 -371
  1216. package/docs/REA_REVERSE_ENGINEERING_PLAN.md +0 -140
  1217. package/eslint.config.js +0 -21
  1218. 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 = "zsecure" + type;
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 "Windows"; // Không có UA → mặc định Windows
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 "Windows"; // Không nhận diện được → fallback an toàn về Windows
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 "133"; // Không có UA → dùng version ổn định hiện đại
85
+ return ZALO_DEFAULTS.BROWSER.DEFAULT_CHROME_VERSION;
267
86
  const match = userAgent.match(/Chrome\/(\d+)/);
268
- return match ? match[1] : "133"; // Không phải Chrome → fallback về "133"
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 "en-US,en;q=0.9,vi;q=0.8";
97
+ return ZALO_DEFAULTS.BROWSER.ACCEPT_LANGUAGE_EN;
279
98
  }
280
- return "vi-VN,vi;q=0.9,en-US;q=0.8,en;q=0.7";
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 = "https://chat.zalo.me") {
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 Object.assign({ accept: "*/*", "accept-encoding": "gzip, deflate, br, zstd", "accept-language": getBrowserLanguage(ctx.language), "content-type": "application/x-www-form-urlencoded", cookie: await ctx.cookie.getCookieString(origin), origin: origin, priority: "u=1, i", referer: `${origin}/`, "user-agent": ctx.userAgent, "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": origin === "https://id.zalo.me" ? "same-origin" : "same-site" }, secChUa);
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 = Object.assign({}, defaultHeaders);
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 = Object.assign(Object.assign({}, (options || {})), { headers: defaultHeaders });
161
+ options = { ...(options || {}), headers: defaultHeaders };
333
162
  }
334
163
  }
335
- const _options = Object.assign(Object.assign({}, (options !== null && options !== void 0 ? options : {})), (isBun
336
- ? {
337
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
338
- // @ts-ignore
339
- proxy: (_b = (_a = ctx.options.agent) === null || _a === void 0 ? void 0 : _a.proxy) === null || _b === void 0 ? void 0 : _b.href,
340
- }
341
- : {
342
- agent: ctx.options.agent,
343
- // Hỗ trợ Undici Dispatcher cho Node.js 18+ native fetch
344
- dispatcher: ctx.options.agent,
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 = Object.assign({}, options);
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", "https://id.zalo.me/");
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 = 2097152, // Read in chunks of 2MB
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; // don't know || if (msgType === "chat.link") return 1;
315
+ return 38;
526
316
  if (msgType === "chat.video.msg")
527
- return 44; // not sure
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
- // return "#" + positiveColor.toString(16).padStart(6, "0"); // rgb no alpha
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
- }