@trungdlp/zca-js 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (547) hide show
  1. package/.prettierrc +5 -0
  2. package/CODE_OF_CONDUCT.md +163 -0
  3. package/CONTRIBUTING.md +470 -0
  4. package/LICENSE +21 -0
  5. package/README.md +225 -0
  6. package/SECURITY.md +83 -0
  7. package/dist/Errors/ZaloApiError.d.ts +4 -0
  8. package/dist/Errors/ZaloApiError.js +7 -0
  9. package/dist/Errors/ZaloApiLoginQRAborted.d.ts +4 -0
  10. package/dist/Errors/ZaloApiLoginQRAborted.js +7 -0
  11. package/dist/Errors/ZaloApiLoginQRDeclined.d.ts +4 -0
  12. package/dist/Errors/ZaloApiLoginQRDeclined.js +7 -0
  13. package/dist/Errors/ZaloApiMissingImageMetadataGetter.d.ts +4 -0
  14. package/dist/Errors/ZaloApiMissingImageMetadataGetter.js +7 -0
  15. package/dist/Errors/index.d.ts +4 -0
  16. package/dist/Errors/index.js +4 -0
  17. package/dist/apis/acceptFriendRequest.d.ts +2 -0
  18. package/dist/apis/acceptFriendRequest.js +28 -0
  19. package/dist/apis/addGroupBlockedMember.d.ts +2 -0
  20. package/dist/apis/addGroupBlockedMember.js +28 -0
  21. package/dist/apis/addGroupDeputy.d.ts +2 -0
  22. package/dist/apis/addGroupDeputy.js +30 -0
  23. package/dist/apis/addPollOptions.d.ts +14 -0
  24. package/dist/apis/addPollOptions.js +26 -0
  25. package/dist/apis/addQuickMessage.d.ts +11 -0
  26. package/dist/apis/addQuickMessage.js +60 -0
  27. package/dist/apis/addReaction.d.ts +18 -0
  28. package/dist/apis/addReaction.js +294 -0
  29. package/dist/apis/addUnreadMark.d.ts +8 -0
  30. package/dist/apis/addUnreadMark.js +52 -0
  31. package/dist/apis/addUserToGroup.d.ts +5 -0
  32. package/dist/apis/addUserToGroup.js +34 -0
  33. package/dist/apis/blockUser.d.ts +2 -0
  34. package/dist/apis/blockUser.js +28 -0
  35. package/dist/apis/blockViewFeed.d.ts +2 -0
  36. package/dist/apis/blockViewFeed.js +30 -0
  37. package/dist/apis/changeAccountAvatar.d.ts +3 -0
  38. package/dist/apis/changeAccountAvatar.js +52 -0
  39. package/dist/apis/changeFriendAlias.d.ts +2 -0
  40. package/dist/apis/changeFriendAlias.js +27 -0
  41. package/dist/apis/changeGroupAvatar.d.ts +3 -0
  42. package/dist/apis/changeGroupAvatar.js +44 -0
  43. package/dist/apis/changeGroupName.d.ts +4 -0
  44. package/dist/apis/changeGroupName.js +32 -0
  45. package/dist/apis/changeGroupOwner.d.ts +4 -0
  46. package/dist/apis/changeGroupOwner.js +30 -0
  47. package/dist/apis/createAutoReply.d.ts +14 -0
  48. package/dist/apis/createAutoReply.js +37 -0
  49. package/dist/apis/createCatalog.d.ts +7 -0
  50. package/dist/apis/createCatalog.js +29 -0
  51. package/dist/apis/createGroup.d.ts +28 -0
  52. package/dist/apis/createGroup.js +43 -0
  53. package/dist/apis/createNote.d.ts +7 -0
  54. package/dist/apis/createNote.js +47 -0
  55. package/dist/apis/createPoll.d.ts +36 -0
  56. package/dist/apis/createPoll.js +40 -0
  57. package/dist/apis/createProductCatalog.d.ts +23 -0
  58. package/dist/apis/createProductCatalog.js +50 -0
  59. package/dist/apis/createReminder.d.ts +12 -0
  60. package/dist/apis/createReminder.js +63 -0
  61. package/dist/apis/custom.d.ts +9 -0
  62. package/dist/apis/custom.js +15 -0
  63. package/dist/apis/deleteAutoReply.d.ts +5 -0
  64. package/dist/apis/deleteAutoReply.js +29 -0
  65. package/dist/apis/deleteAvatar.d.ts +9 -0
  66. package/dist/apis/deleteAvatar.js +27 -0
  67. package/dist/apis/deleteCatalog.d.ts +2 -0
  68. package/dist/apis/deleteCatalog.js +28 -0
  69. package/dist/apis/deleteChat.d.ts +19 -0
  70. package/dist/apis/deleteChat.js +50 -0
  71. package/dist/apis/deleteGroupInviteBox.d.ts +9 -0
  72. package/dist/apis/deleteGroupInviteBox.js +27 -0
  73. package/dist/apis/deleteMessage.d.ts +14 -0
  74. package/dist/apis/deleteMessage.js +52 -0
  75. package/dist/apis/deleteProductCatalog.d.ts +10 -0
  76. package/dist/apis/deleteProductCatalog.js +31 -0
  77. package/dist/apis/disableGroupLink.d.ts +2 -0
  78. package/dist/apis/disableGroupLink.js +24 -0
  79. package/dist/apis/disperseGroup.d.ts +2 -0
  80. package/dist/apis/disperseGroup.js +28 -0
  81. package/dist/apis/editNote.d.ts +17 -0
  82. package/dist/apis/editNote.js +46 -0
  83. package/dist/apis/editReminder.d.ts +13 -0
  84. package/dist/apis/editReminder.js +61 -0
  85. package/dist/apis/enableGroupLink.d.ts +6 -0
  86. package/dist/apis/enableGroupLink.js +25 -0
  87. package/dist/apis/fetchAccountInfo.d.ts +3 -0
  88. package/dist/apis/fetchAccountInfo.js +10 -0
  89. package/dist/apis/findUser.d.ts +3 -0
  90. package/dist/apis/findUser.js +41 -0
  91. package/dist/apis/findUserByUsername.d.ts +3 -0
  92. package/dist/apis/findUserByUsername.js +26 -0
  93. package/dist/apis/forwardMessage.d.ts +24 -0
  94. package/dist/apis/forwardMessage.js +99 -0
  95. package/dist/apis/getAliasList.d.ts +8 -0
  96. package/dist/apis/getAliasList.js +27 -0
  97. package/dist/apis/getAllFriends.d.ts +3 -0
  98. package/dist/apis/getAllFriends.js +33 -0
  99. package/dist/apis/getAllGroups.d.ts +7 -0
  100. package/dist/apis/getAllGroups.js +10 -0
  101. package/dist/apis/getArchivedChatList.d.ts +5 -0
  102. package/dist/apis/getArchivedChatList.js +23 -0
  103. package/dist/apis/getAutoDeleteChat.d.ts +9 -0
  104. package/dist/apis/getAutoDeleteChat.js +21 -0
  105. package/dist/apis/getAutoReplyList.d.ts +6 -0
  106. package/dist/apis/getAutoReplyList.js +24 -0
  107. package/dist/apis/getAvatarList.d.ts +12 -0
  108. package/dist/apis/getAvatarList.js +28 -0
  109. package/dist/apis/getAvatarUrlProfile.d.ts +6 -0
  110. package/dist/apis/getAvatarUrlProfile.js +29 -0
  111. package/dist/apis/getBizAccount.d.ts +24 -0
  112. package/dist/apis/getBizAccount.js +27 -0
  113. package/dist/apis/getCatalogList.d.ts +18 -0
  114. package/dist/apis/getCatalogList.js +32 -0
  115. package/dist/apis/getCloseFriends.d.ts +3 -0
  116. package/dist/apis/getCloseFriends.js +20 -0
  117. package/dist/apis/getContext.d.ts +1 -0
  118. package/dist/apis/getContext.js +4 -0
  119. package/dist/apis/getCookie.d.ts +1 -0
  120. package/dist/apis/getCookie.js +9 -0
  121. package/dist/apis/getFriendBoardList.d.ts +5 -0
  122. package/dist/apis/getFriendBoardList.js +26 -0
  123. package/dist/apis/getFriendOnlines.d.ts +10 -0
  124. package/dist/apis/getFriendOnlines.js +35 -0
  125. package/dist/apis/getFriendRecommendations.d.ts +42 -0
  126. package/dist/apis/getFriendRecommendations.js +27 -0
  127. package/dist/apis/getFriendRequestStatus.d.ts +8 -0
  128. package/dist/apis/getFriendRequestStatus.js +25 -0
  129. package/dist/apis/getFullAvatar.d.ts +5 -0
  130. package/dist/apis/getFullAvatar.js +25 -0
  131. package/dist/apis/getGroupBlockedMember.d.ts +23 -0
  132. package/dist/apis/getGroupBlockedMember.js +29 -0
  133. package/dist/apis/getGroupChatHistory.d.ts +8 -0
  134. package/dist/apis/getGroupChatHistory.js +36 -0
  135. package/dist/apis/getGroupInfo.d.ts +16 -0
  136. package/dist/apis/getGroupInfo.js +32 -0
  137. package/dist/apis/getGroupInviteBoxInfo.d.ts +32 -0
  138. package/dist/apis/getGroupInviteBoxInfo.js +38 -0
  139. package/dist/apis/getGroupInviteBoxList.d.ts +38 -0
  140. package/dist/apis/getGroupInviteBoxList.js +31 -0
  141. package/dist/apis/getGroupLinkDetail.d.ts +9 -0
  142. package/dist/apis/getGroupLinkDetail.js +25 -0
  143. package/dist/apis/getGroupLinkInfo.d.ts +34 -0
  144. package/dist/apis/getGroupLinkInfo.js +28 -0
  145. package/dist/apis/getGroupMembersInfo.d.ts +17 -0
  146. package/dist/apis/getGroupMembersInfo.js +24 -0
  147. package/dist/apis/getHiddenConversations.d.ts +11 -0
  148. package/dist/apis/getHiddenConversations.js +23 -0
  149. package/dist/apis/getLabels.d.ts +7 -0
  150. package/dist/apis/getLabels.js +28 -0
  151. package/dist/apis/getListBoard.d.ts +21 -0
  152. package/dist/apis/getListBoard.js +45 -0
  153. package/dist/apis/getListReminder.d.ts +28 -0
  154. package/dist/apis/getListReminder.js +47 -0
  155. package/dist/apis/getMultiUsersByPhone.d.ts +5 -0
  156. package/dist/apis/getMultiUsersByPhone.js +38 -0
  157. package/dist/apis/getMute.d.ts +13 -0
  158. package/dist/apis/getMute.js +22 -0
  159. package/dist/apis/getOwnId.d.ts +1 -0
  160. package/dist/apis/getOwnId.js +4 -0
  161. package/dist/apis/getPendingGroupMembers.d.ts +11 -0
  162. package/dist/apis/getPendingGroupMembers.js +27 -0
  163. package/dist/apis/getPinConversations.d.ts +5 -0
  164. package/dist/apis/getPinConversations.js +22 -0
  165. package/dist/apis/getPollDetail.d.ts +3 -0
  166. package/dist/apis/getPollDetail.js +30 -0
  167. package/dist/apis/getProductCatalogList.d.ts +20 -0
  168. package/dist/apis/getProductCatalogList.js +33 -0
  169. package/dist/apis/getQR.d.ts +4 -0
  170. package/dist/apis/getQR.js +29 -0
  171. package/dist/apis/getQuickMessageList.d.ts +7 -0
  172. package/dist/apis/getQuickMessageList.js +24 -0
  173. package/dist/apis/getRelatedFriendGroup.d.ts +6 -0
  174. package/dist/apis/getRelatedFriendGroup.js +30 -0
  175. package/dist/apis/getReminder.d.ts +3 -0
  176. package/dist/apis/getReminder.js +25 -0
  177. package/dist/apis/getReminderResponses.d.ts +5 -0
  178. package/dist/apis/getReminderResponses.js +24 -0
  179. package/dist/apis/getSearchSticker.d.ts +3 -0
  180. package/dist/apis/getSearchSticker.js +28 -0
  181. package/dist/apis/getSentFriendRequest.d.ts +18 -0
  182. package/dist/apis/getSentFriendRequest.js +24 -0
  183. package/dist/apis/getSettings.d.ts +3 -0
  184. package/dist/apis/getSettings.js +20 -0
  185. package/dist/apis/getStickerCategoryDetail.d.ts +3 -0
  186. package/dist/apis/getStickerCategoryDetail.js +24 -0
  187. package/dist/apis/getStickers.d.ts +1 -0
  188. package/dist/apis/getStickers.js +40 -0
  189. package/dist/apis/getStickersDetail.d.ts +3 -0
  190. package/dist/apis/getStickersDetail.js +40 -0
  191. package/dist/apis/getUnreadMark.d.ts +14 -0
  192. package/dist/apis/getUnreadMark.js +30 -0
  193. package/dist/apis/getUserInfo.d.ts +8 -0
  194. package/dist/apis/getUserInfo.js +43 -0
  195. package/dist/apis/inviteUserToGroups.d.ts +10 -0
  196. package/dist/apis/inviteUserToGroups.js +30 -0
  197. package/dist/apis/joinGroupInviteBox.d.ts +2 -0
  198. package/dist/apis/joinGroupInviteBox.js +25 -0
  199. package/dist/apis/joinGroupLink.d.ts +2 -0
  200. package/dist/apis/joinGroupLink.js +27 -0
  201. package/dist/apis/keepAlive.d.ts +4 -0
  202. package/dist/apis/keepAlive.js +22 -0
  203. package/dist/apis/lastOnline.d.ts +7 -0
  204. package/dist/apis/lastOnline.js +26 -0
  205. package/dist/apis/leaveGroup.d.ts +4 -0
  206. package/dist/apis/leaveGroup.js +33 -0
  207. package/dist/apis/listen.d.ts +102 -0
  208. package/dist/apis/listen.js +425 -0
  209. package/dist/apis/lockPoll.d.ts +2 -0
  210. package/dist/apis/lockPoll.js +28 -0
  211. package/dist/apis/login.d.ts +3 -0
  212. package/dist/apis/login.js +96 -0
  213. package/dist/apis/loginQR.d.ts +70 -0
  214. package/dist/apis/loginQR.js +365 -0
  215. package/dist/apis/parseLink.d.ts +21 -0
  216. package/dist/apis/parseLink.js +27 -0
  217. package/dist/apis/rejectFriendRequest.d.ts +2 -0
  218. package/dist/apis/rejectFriendRequest.js +27 -0
  219. package/dist/apis/removeFriend.d.ts +2 -0
  220. package/dist/apis/removeFriend.js +28 -0
  221. package/dist/apis/removeFriendAlias.d.ts +2 -0
  222. package/dist/apis/removeFriendAlias.js +24 -0
  223. package/dist/apis/removeGroupBlockedMember.d.ts +2 -0
  224. package/dist/apis/removeGroupBlockedMember.js +28 -0
  225. package/dist/apis/removeGroupDeputy.d.ts +2 -0
  226. package/dist/apis/removeGroupDeputy.js +30 -0
  227. package/dist/apis/removeQuickMessage.d.ts +5 -0
  228. package/dist/apis/removeQuickMessage.js +27 -0
  229. package/dist/apis/removeReminder.d.ts +3 -0
  230. package/dist/apis/removeReminder.js +40 -0
  231. package/dist/apis/removeUnreadMark.d.ts +8 -0
  232. package/dist/apis/removeUnreadMark.js +50 -0
  233. package/dist/apis/removeUserFromGroup.d.ts +4 -0
  234. package/dist/apis/removeUserFromGroup.js +34 -0
  235. package/dist/apis/resetHiddenConversPin.d.ts +2 -0
  236. package/dist/apis/resetHiddenConversPin.js +20 -0
  237. package/dist/apis/reuseAvatar.d.ts +2 -0
  238. package/dist/apis/reuseAvatar.js +26 -0
  239. package/dist/apis/reviewPendingMemberRequest.d.ts +14 -0
  240. package/dist/apis/reviewPendingMemberRequest.js +38 -0
  241. package/dist/apis/sendBankCard.d.ts +9 -0
  242. package/dist/apis/sendBankCard.js +37 -0
  243. package/dist/apis/sendCard.d.ts +10 -0
  244. package/dist/apis/sendCard.js +59 -0
  245. package/dist/apis/sendDeliveredEvent.d.ts +16 -0
  246. package/dist/apis/sendDeliveredEvent.js +55 -0
  247. package/dist/apis/sendFriendRequest.d.ts +2 -0
  248. package/dist/apis/sendFriendRequest.js +39 -0
  249. package/dist/apis/sendLink.d.ts +10 -0
  250. package/dist/apis/sendLink.js +61 -0
  251. package/dist/apis/sendMessage.d.ts +99 -0
  252. package/dist/apis/sendMessage.js +451 -0
  253. package/dist/apis/sendReport.d.ts +17 -0
  254. package/dist/apis/sendReport.js +53 -0
  255. package/dist/apis/sendSeenEvent.d.ts +16 -0
  256. package/dist/apis/sendSeenEvent.js +63 -0
  257. package/dist/apis/sendSticker.d.ts +10 -0
  258. package/dist/apis/sendSticker.js +57 -0
  259. package/dist/apis/sendTypingEvent.d.ts +5 -0
  260. package/dist/apis/sendTypingEvent.js +33 -0
  261. package/dist/apis/sendVideo.d.ts +35 -0
  262. package/dist/apis/sendVideo.js +118 -0
  263. package/dist/apis/sendVoice.d.ts +12 -0
  264. package/dist/apis/sendVoice.js +73 -0
  265. package/dist/apis/setArchivedConversations.d.ts +10 -0
  266. package/dist/apis/setArchivedConversations.js +34 -0
  267. package/dist/apis/setHiddenConversations.d.ts +3 -0
  268. package/dist/apis/setHiddenConversations.js +39 -0
  269. package/dist/apis/setMute.d.ts +20 -0
  270. package/dist/apis/setMute.js +67 -0
  271. package/dist/apis/setPinnedConversations.d.ts +3 -0
  272. package/dist/apis/setPinnedConversations.js +34 -0
  273. package/dist/apis/sharePoll.d.ts +2 -0
  274. package/dist/apis/sharePoll.js +28 -0
  275. package/dist/apis/unblockUser.d.ts +2 -0
  276. package/dist/apis/unblockUser.js +28 -0
  277. package/dist/apis/undo.d.ts +9 -0
  278. package/dist/apis/undo.js +42 -0
  279. package/dist/apis/undoFriendRequest.d.ts +2 -0
  280. package/dist/apis/undoFriendRequest.js +27 -0
  281. package/dist/apis/updateActiveStatus.d.ts +4 -0
  282. package/dist/apis/updateActiveStatus.js +27 -0
  283. package/dist/apis/updateAutoDeleteChat.d.ts +9 -0
  284. package/dist/apis/updateAutoDeleteChat.js +40 -0
  285. package/dist/apis/updateAutoReply.d.ts +15 -0
  286. package/dist/apis/updateAutoReply.js +38 -0
  287. package/dist/apis/updateCatalog.d.ts +11 -0
  288. package/dist/apis/updateCatalog.js +30 -0
  289. package/dist/apis/updateGroupSettings.d.ts +40 -0
  290. package/dist/apis/updateGroupSettings.js +43 -0
  291. package/dist/apis/updateHiddenConversPin.d.ts +2 -0
  292. package/dist/apis/updateHiddenConversPin.js +30 -0
  293. package/dist/apis/updateLabels.d.ts +15 -0
  294. package/dist/apis/updateLabels.js +34 -0
  295. package/dist/apis/updateLang.d.ts +6 -0
  296. package/dist/apis/updateLang.js +30 -0
  297. package/dist/apis/updateProductCatalog.d.ts +25 -0
  298. package/dist/apis/updateProductCatalog.js +51 -0
  299. package/dist/apis/updateProfile.d.ts +20 -0
  300. package/dist/apis/updateProfile.js +43 -0
  301. package/dist/apis/updateQuickMessage.d.ts +11 -0
  302. package/dist/apis/updateQuickMessage.js +61 -0
  303. package/dist/apis/updateSettings.d.ts +16 -0
  304. package/dist/apis/updateSettings.js +90 -0
  305. package/dist/apis/updateStatus.d.ts +2 -0
  306. package/dist/apis/updateStatus.js +27 -0
  307. package/dist/apis/upgradeGroupCommunity.d.ts +2 -0
  308. package/dist/apis/upgradeGroupCommunity.js +27 -0
  309. package/dist/apis/uploadAttachment.d.ts +50 -0
  310. package/dist/apis/uploadAttachment.js +196 -0
  311. package/dist/apis/uploadProductPhoto.d.ts +14 -0
  312. package/dist/apis/uploadProductPhoto.js +50 -0
  313. package/dist/apis/votePoll.d.ts +5 -0
  314. package/dist/apis/votePoll.js +29 -0
  315. package/dist/apis.d.ts +299 -0
  316. package/dist/apis.js +299 -0
  317. package/dist/cjs/Errors/ZaloApiError.cjs +11 -0
  318. package/dist/cjs/Errors/ZaloApiLoginQRAborted.cjs +12 -0
  319. package/dist/cjs/Errors/ZaloApiLoginQRDeclined.cjs +12 -0
  320. package/dist/cjs/Errors/ZaloApiMissingImageMetadataGetter.cjs +12 -0
  321. package/dist/cjs/apis/acceptFriendRequest.cjs +33 -0
  322. package/dist/cjs/apis/addGroupBlockedMember.cjs +33 -0
  323. package/dist/cjs/apis/addGroupDeputy.cjs +35 -0
  324. package/dist/cjs/apis/addPollOptions.cjs +31 -0
  325. package/dist/cjs/apis/addQuickMessage.cjs +65 -0
  326. package/dist/cjs/apis/addReaction.cjs +307 -0
  327. package/dist/cjs/apis/addUnreadMark.cjs +65 -0
  328. package/dist/cjs/apis/addUserToGroup.cjs +39 -0
  329. package/dist/cjs/apis/blockUser.cjs +33 -0
  330. package/dist/cjs/apis/blockViewFeed.cjs +35 -0
  331. package/dist/cjs/apis/changeAccountAvatar.cjs +57 -0
  332. package/dist/cjs/apis/changeFriendAlias.cjs +32 -0
  333. package/dist/cjs/apis/changeGroupAvatar.cjs +49 -0
  334. package/dist/cjs/apis/changeGroupName.cjs +37 -0
  335. package/dist/cjs/apis/changeGroupOwner.cjs +35 -0
  336. package/dist/cjs/apis/createAutoReply.cjs +42 -0
  337. package/dist/cjs/apis/createCatalog.cjs +34 -0
  338. package/dist/cjs/apis/createGroup.cjs +48 -0
  339. package/dist/cjs/apis/createNote.cjs +52 -0
  340. package/dist/cjs/apis/createPoll.cjs +45 -0
  341. package/dist/cjs/apis/createProductCatalog.cjs +55 -0
  342. package/dist/cjs/apis/createReminder.cjs +76 -0
  343. package/dist/cjs/apis/custom.cjs +19 -0
  344. package/dist/cjs/apis/deleteAutoReply.cjs +34 -0
  345. package/dist/cjs/apis/deleteAvatar.cjs +32 -0
  346. package/dist/cjs/apis/deleteCatalog.cjs +33 -0
  347. package/dist/cjs/apis/deleteChat.cjs +63 -0
  348. package/dist/cjs/apis/deleteGroupInviteBox.cjs +32 -0
  349. package/dist/cjs/apis/deleteMessage.cjs +65 -0
  350. package/dist/cjs/apis/deleteProductCatalog.cjs +36 -0
  351. package/dist/cjs/apis/disableGroupLink.cjs +29 -0
  352. package/dist/cjs/apis/disperseGroup.cjs +33 -0
  353. package/dist/cjs/apis/editNote.cjs +51 -0
  354. package/dist/cjs/apis/editReminder.cjs +74 -0
  355. package/dist/cjs/apis/enableGroupLink.cjs +30 -0
  356. package/dist/cjs/apis/fetchAccountInfo.cjs +15 -0
  357. package/dist/cjs/apis/findUser.cjs +46 -0
  358. package/dist/cjs/apis/findUserByUsername.cjs +31 -0
  359. package/dist/cjs/apis/forwardMessage.cjs +112 -0
  360. package/dist/cjs/apis/getAliasList.cjs +32 -0
  361. package/dist/cjs/apis/getAllFriends.cjs +38 -0
  362. package/dist/cjs/apis/getAllGroups.cjs +15 -0
  363. package/dist/cjs/apis/getArchivedChatList.cjs +28 -0
  364. package/dist/cjs/apis/getAutoDeleteChat.cjs +26 -0
  365. package/dist/cjs/apis/getAutoReplyList.cjs +29 -0
  366. package/dist/cjs/apis/getAvatarList.cjs +33 -0
  367. package/dist/cjs/apis/getAvatarUrlProfile.cjs +34 -0
  368. package/dist/cjs/apis/getBizAccount.cjs +32 -0
  369. package/dist/cjs/apis/getCatalogList.cjs +37 -0
  370. package/dist/cjs/apis/getCloseFriends.cjs +25 -0
  371. package/dist/cjs/apis/getContext.cjs +9 -0
  372. package/dist/cjs/apis/getCookie.cjs +14 -0
  373. package/dist/cjs/apis/getFriendBoardList.cjs +31 -0
  374. package/dist/cjs/apis/getFriendOnlines.cjs +40 -0
  375. package/dist/cjs/apis/getFriendRecommendations.cjs +32 -0
  376. package/dist/cjs/apis/getFriendRequestStatus.cjs +30 -0
  377. package/dist/cjs/apis/getFullAvatar.cjs +30 -0
  378. package/dist/cjs/apis/getGroupBlockedMember.cjs +34 -0
  379. package/dist/cjs/apis/getGroupChatHistory.cjs +50 -0
  380. package/dist/cjs/apis/getGroupInfo.cjs +37 -0
  381. package/dist/cjs/apis/getGroupInviteBoxInfo.cjs +43 -0
  382. package/dist/cjs/apis/getGroupInviteBoxList.cjs +36 -0
  383. package/dist/cjs/apis/getGroupLinkDetail.cjs +30 -0
  384. package/dist/cjs/apis/getGroupLinkInfo.cjs +33 -0
  385. package/dist/cjs/apis/getGroupMembersInfo.cjs +29 -0
  386. package/dist/cjs/apis/getHiddenConversations.cjs +28 -0
  387. package/dist/cjs/apis/getLabels.cjs +33 -0
  388. package/dist/cjs/apis/getListBoard.cjs +58 -0
  389. package/dist/cjs/apis/getListReminder.cjs +60 -0
  390. package/dist/cjs/apis/getMultiUsersByPhone.cjs +43 -0
  391. package/dist/cjs/apis/getMute.cjs +27 -0
  392. package/dist/cjs/apis/getOwnId.cjs +9 -0
  393. package/dist/cjs/apis/getPendingGroupMembers.cjs +32 -0
  394. package/dist/cjs/apis/getPinConversations.cjs +27 -0
  395. package/dist/cjs/apis/getPollDetail.cjs +35 -0
  396. package/dist/cjs/apis/getProductCatalogList.cjs +38 -0
  397. package/dist/cjs/apis/getQR.cjs +34 -0
  398. package/dist/cjs/apis/getQuickMessageList.cjs +29 -0
  399. package/dist/cjs/apis/getRelatedFriendGroup.cjs +35 -0
  400. package/dist/cjs/apis/getReminder.cjs +30 -0
  401. package/dist/cjs/apis/getReminderResponses.cjs +29 -0
  402. package/dist/cjs/apis/getSearchSticker.cjs +33 -0
  403. package/dist/cjs/apis/getSentFriendRequest.cjs +29 -0
  404. package/dist/cjs/apis/getSettings.cjs +25 -0
  405. package/dist/cjs/apis/getStickerCategoryDetail.cjs +29 -0
  406. package/dist/cjs/apis/getStickers.cjs +45 -0
  407. package/dist/cjs/apis/getStickersDetail.cjs +45 -0
  408. package/dist/cjs/apis/getUnreadMark.cjs +35 -0
  409. package/dist/cjs/apis/getUserInfo.cjs +48 -0
  410. package/dist/cjs/apis/inviteUserToGroups.cjs +35 -0
  411. package/dist/cjs/apis/joinGroupInviteBox.cjs +30 -0
  412. package/dist/cjs/apis/joinGroupLink.cjs +32 -0
  413. package/dist/cjs/apis/keepAlive.cjs +27 -0
  414. package/dist/cjs/apis/lastOnline.cjs +31 -0
  415. package/dist/cjs/apis/leaveGroup.cjs +38 -0
  416. package/dist/cjs/apis/listen.cjs +439 -0
  417. package/dist/cjs/apis/lockPoll.cjs +33 -0
  418. package/dist/cjs/apis/login.cjs +102 -0
  419. package/dist/cjs/apis/loginQR.cjs +370 -0
  420. package/dist/cjs/apis/parseLink.cjs +32 -0
  421. package/dist/cjs/apis/rejectFriendRequest.cjs +32 -0
  422. package/dist/cjs/apis/removeFriend.cjs +33 -0
  423. package/dist/cjs/apis/removeFriendAlias.cjs +29 -0
  424. package/dist/cjs/apis/removeGroupBlockedMember.cjs +33 -0
  425. package/dist/cjs/apis/removeGroupDeputy.cjs +35 -0
  426. package/dist/cjs/apis/removeQuickMessage.cjs +32 -0
  427. package/dist/cjs/apis/removeReminder.cjs +53 -0
  428. package/dist/cjs/apis/removeUnreadMark.cjs +63 -0
  429. package/dist/cjs/apis/removeUserFromGroup.cjs +39 -0
  430. package/dist/cjs/apis/resetHiddenConversPin.cjs +25 -0
  431. package/dist/cjs/apis/reuseAvatar.cjs +31 -0
  432. package/dist/cjs/apis/reviewPendingMemberRequest.cjs +43 -0
  433. package/dist/cjs/apis/sendBankCard.cjs +50 -0
  434. package/dist/cjs/apis/sendCard.cjs +72 -0
  435. package/dist/cjs/apis/sendDeliveredEvent.cjs +68 -0
  436. package/dist/cjs/apis/sendFriendRequest.cjs +44 -0
  437. package/dist/cjs/apis/sendLink.cjs +74 -0
  438. package/dist/cjs/apis/sendMessage.cjs +464 -0
  439. package/dist/cjs/apis/sendReport.cjs +66 -0
  440. package/dist/cjs/apis/sendSeenEvent.cjs +76 -0
  441. package/dist/cjs/apis/sendSticker.cjs +70 -0
  442. package/dist/cjs/apis/sendTypingEvent.cjs +46 -0
  443. package/dist/cjs/apis/sendVideo.cjs +131 -0
  444. package/dist/cjs/apis/sendVoice.cjs +86 -0
  445. package/dist/cjs/apis/setArchivedConversations.cjs +39 -0
  446. package/dist/cjs/apis/setHiddenConversations.cjs +52 -0
  447. package/dist/cjs/apis/setMute.cjs +80 -0
  448. package/dist/cjs/apis/setPinnedConversations.cjs +47 -0
  449. package/dist/cjs/apis/sharePoll.cjs +33 -0
  450. package/dist/cjs/apis/unblockUser.cjs +33 -0
  451. package/dist/cjs/apis/undo.cjs +55 -0
  452. package/dist/cjs/apis/undoFriendRequest.cjs +32 -0
  453. package/dist/cjs/apis/updateActiveStatus.cjs +32 -0
  454. package/dist/cjs/apis/updateAutoDeleteChat.cjs +53 -0
  455. package/dist/cjs/apis/updateAutoReply.cjs +43 -0
  456. package/dist/cjs/apis/updateCatalog.cjs +35 -0
  457. package/dist/cjs/apis/updateGroupSettings.cjs +48 -0
  458. package/dist/cjs/apis/updateHiddenConversPin.cjs +35 -0
  459. package/dist/cjs/apis/updateLabels.cjs +39 -0
  460. package/dist/cjs/apis/updateLang.cjs +35 -0
  461. package/dist/cjs/apis/updateProductCatalog.cjs +56 -0
  462. package/dist/cjs/apis/updateProfile.cjs +48 -0
  463. package/dist/cjs/apis/updateQuickMessage.cjs +66 -0
  464. package/dist/cjs/apis/updateSettings.cjs +95 -0
  465. package/dist/cjs/apis/updateStatus.cjs +32 -0
  466. package/dist/cjs/apis/upgradeGroupCommunity.cjs +32 -0
  467. package/dist/cjs/apis/uploadAttachment.cjs +209 -0
  468. package/dist/cjs/apis/uploadProductPhoto.cjs +55 -0
  469. package/dist/cjs/apis/votePoll.cjs +34 -0
  470. package/dist/cjs/apis.cjs +304 -0
  471. package/dist/cjs/context.cjs +34 -0
  472. package/dist/cjs/index.cjs +149 -0
  473. package/dist/cjs/models/AutoReply.cjs +9 -0
  474. package/dist/cjs/models/Board.cjs +8 -0
  475. package/dist/cjs/models/DeliveredMessage.cjs +23 -0
  476. package/dist/cjs/models/Enum.cjs +253 -0
  477. package/dist/cjs/models/FriendEvent.cjs +87 -0
  478. package/dist/cjs/models/Group.cjs +13 -0
  479. package/dist/cjs/models/GroupEvent.cjs +94 -0
  480. package/dist/cjs/models/Message.cjs +35 -0
  481. package/dist/cjs/models/Reaction.cjs +74 -0
  482. package/dist/cjs/models/Reminder.cjs +9 -0
  483. package/dist/cjs/models/SeenMessage.cjs +23 -0
  484. package/dist/cjs/models/Typing.cjs +23 -0
  485. package/dist/cjs/models/Undo.cjs +16 -0
  486. package/dist/cjs/models/ZBusiness.cjs +39 -0
  487. package/dist/cjs/update.cjs +34 -0
  488. package/dist/cjs/utils.cjs +680 -0
  489. package/dist/cjs/zalo.cjs +112 -0
  490. package/dist/context.d.ts +179 -0
  491. package/dist/context.js +28 -0
  492. package/dist/index.d.ts +156 -0
  493. package/dist/index.js +13 -0
  494. package/dist/models/Attachment.d.ts +9 -0
  495. package/dist/models/Attachment.js +1 -0
  496. package/dist/models/AutoReply.d.ts +20 -0
  497. package/dist/models/AutoReply.js +7 -0
  498. package/dist/models/Board.d.ts +60 -0
  499. package/dist/models/Board.js +6 -0
  500. package/dist/models/Catalog.d.ts +16 -0
  501. package/dist/models/Catalog.js +1 -0
  502. package/dist/models/DeliveredMessage.d.ts +27 -0
  503. package/dist/models/DeliveredMessage.js +17 -0
  504. package/dist/models/Enum.d.ts +247 -0
  505. package/dist/models/Enum.js +251 -0
  506. package/dist/models/FriendEvent.d.ts +107 -0
  507. package/dist/models/FriendEvent.js +83 -0
  508. package/dist/models/Group.d.ts +125 -0
  509. package/dist/models/Group.js +11 -0
  510. package/dist/models/GroupEvent.d.ts +178 -0
  511. package/dist/models/GroupEvent.js +90 -0
  512. package/dist/models/Label.d.ts +10 -0
  513. package/dist/models/Label.js +1 -0
  514. package/dist/models/Message.d.ts +91 -0
  515. package/dist/models/Message.js +29 -0
  516. package/dist/models/ProductCatalog.d.ts +17 -0
  517. package/dist/models/ProductCatalog.js +1 -0
  518. package/dist/models/QuickMessage.d.ts +25 -0
  519. package/dist/models/QuickMessage.js +1 -0
  520. package/dist/models/Reaction.d.ts +85 -0
  521. package/dist/models/Reaction.js +70 -0
  522. package/dist/models/Reminder.d.ts +51 -0
  523. package/dist/models/Reminder.js +7 -0
  524. package/dist/models/SeenMessage.d.ts +26 -0
  525. package/dist/models/SeenMessage.js +17 -0
  526. package/dist/models/Sticker.d.ts +27 -0
  527. package/dist/models/Sticker.js +1 -0
  528. package/dist/models/Typing.d.ts +24 -0
  529. package/dist/models/Typing.js +17 -0
  530. package/dist/models/Undo.d.ts +34 -0
  531. package/dist/models/Undo.js +12 -0
  532. package/dist/models/User.d.ts +62 -0
  533. package/dist/models/User.js +1 -0
  534. package/dist/models/ZBusiness.d.ts +22 -0
  535. package/dist/models/ZBusiness.js +35 -0
  536. package/dist/models/index.d.ts +21 -0
  537. package/dist/models/index.js +21 -0
  538. package/dist/update.d.ts +2 -0
  539. package/dist/update.js +29 -0
  540. package/dist/utils.d.ts +166 -0
  541. package/dist/utils.js +697 -0
  542. package/dist/zalo.d.ts +41 -0
  543. package/dist/zalo.js +107 -0
  544. package/eslint.config.js +21 -0
  545. package/index.d.ts +2 -0
  546. package/package.json +78 -0
  547. package/rollup.config.js +28 -0
@@ -0,0 +1,365 @@
1
+ import { CookieJar } from "tough-cookie";
2
+ import { writeFile } from "node:fs/promises";
3
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
4
+ import { logger, request } from "../utils.js";
5
+ import { ZaloApiLoginQRAborted } from "../Errors/ZaloApiLoginQRAborted.js";
6
+ import { ZaloApiLoginQRDeclined } from "../Errors/ZaloApiLoginQRDeclined.js";
7
+ export var LoginQRCallbackEventType;
8
+ (function (LoginQRCallbackEventType) {
9
+ LoginQRCallbackEventType[LoginQRCallbackEventType["QRCodeGenerated"] = 0] = "QRCodeGenerated";
10
+ LoginQRCallbackEventType[LoginQRCallbackEventType["QRCodeExpired"] = 1] = "QRCodeExpired";
11
+ LoginQRCallbackEventType[LoginQRCallbackEventType["QRCodeScanned"] = 2] = "QRCodeScanned";
12
+ LoginQRCallbackEventType[LoginQRCallbackEventType["QRCodeDeclined"] = 3] = "QRCodeDeclined";
13
+ LoginQRCallbackEventType[LoginQRCallbackEventType["GotLoginInfo"] = 4] = "GotLoginInfo";
14
+ })(LoginQRCallbackEventType || (LoginQRCallbackEventType = {}));
15
+ async function loadLoginPage(ctx) {
16
+ const response = await request(ctx, "https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F", {
17
+ headers: {
18
+ accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
19
+ "accept-language": "vi-VN,vi;q=0.9,fr-FR;q=0.8,fr;q=0.7,en-US;q=0.6,en;q=0.5",
20
+ "cache-control": "max-age=0",
21
+ priority: "u=0, i",
22
+ "sec-ch-ua": '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
23
+ "sec-ch-ua-mobile": "?0",
24
+ "sec-ch-ua-platform": '"Windows"',
25
+ "sec-fetch-dest": "document",
26
+ "sec-fetch-mode": "navigate",
27
+ "sec-fetch-site": "same-site",
28
+ "sec-fetch-user": "?1",
29
+ "upgrade-insecure-requests": "1",
30
+ Referer: "https://chat.zalo.me/",
31
+ "Referrer-Policy": "strict-origin-when-cross-origin",
32
+ },
33
+ method: "GET",
34
+ });
35
+ const html = await response.text();
36
+ const regex = /https:\/\/stc-zlogin\.zdn\.vn\/main-([\d.]+)\.js/;
37
+ const match = html.match(regex);
38
+ return match === null || match === void 0 ? void 0 : match[1];
39
+ }
40
+ async function getLoginInfo(ctx, version) {
41
+ const form = new URLSearchParams();
42
+ form.append("continue", "https://zalo.me/pc");
43
+ form.append("v", version);
44
+ return await request(ctx, "https://id.zalo.me/account/logininfo", {
45
+ headers: {
46
+ accept: "*/*",
47
+ "accept-language": "vi-VN,vi;q=0.9,fr-FR;q=0.8,fr;q=0.7,en-US;q=0.6,en;q=0.5",
48
+ "content-type": "application/x-www-form-urlencoded",
49
+ priority: "u=1, i",
50
+ "sec-ch-ua": '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
51
+ "sec-ch-ua-mobile": "?0",
52
+ "sec-ch-ua-platform": '"Windows"',
53
+ "sec-fetch-dest": "empty",
54
+ "sec-fetch-mode": "cors",
55
+ "sec-fetch-site": "same-origin",
56
+ Referer: "https://id.zalo.me/account?continue=https%3A%2F%2Fzalo.me%2Fpc",
57
+ "Referrer-Policy": "strict-origin-when-cross-origin",
58
+ },
59
+ body: form,
60
+ method: "POST",
61
+ })
62
+ .then((res) => res.json())
63
+ .catch(logger(ctx).error);
64
+ }
65
+ async function verifyClient(ctx, version) {
66
+ const form = new URLSearchParams();
67
+ form.append("type", "device");
68
+ form.append("continue", "https://zalo.me/pc");
69
+ form.append("v", version);
70
+ return await request(ctx, "https://id.zalo.me/account/verify-client", {
71
+ headers: {
72
+ accept: "*/*",
73
+ "accept-language": "vi-VN,vi;q=0.9,fr-FR;q=0.8,fr;q=0.7,en-US;q=0.6,en;q=0.5",
74
+ "content-type": "application/x-www-form-urlencoded",
75
+ priority: "u=1, i",
76
+ "sec-ch-ua": '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
77
+ "sec-ch-ua-mobile": "?0",
78
+ "sec-ch-ua-platform": '"Windows"',
79
+ "sec-fetch-dest": "empty",
80
+ "sec-fetch-mode": "cors",
81
+ "sec-fetch-site": "same-origin",
82
+ Referer: "https://id.zalo.me/account?continue=https%3A%2F%2Fzalo.me%2Fpc",
83
+ "Referrer-Policy": "strict-origin-when-cross-origin",
84
+ },
85
+ body: form,
86
+ method: "POST",
87
+ })
88
+ .then((res) => res.json())
89
+ .catch(logger(ctx).error);
90
+ }
91
+ async function generate(ctx, version) {
92
+ const form = new URLSearchParams();
93
+ form.append("continue", "https://zalo.me/pc");
94
+ form.append("v", version);
95
+ return await request(ctx, "https://id.zalo.me/account/authen/qr/generate", {
96
+ headers: {
97
+ accept: "*/*",
98
+ "accept-language": "vi-VN,vi;q=0.9,fr-FR;q=0.8,fr;q=0.7,en-US;q=0.6,en;q=0.5",
99
+ "content-type": "application/x-www-form-urlencoded",
100
+ priority: "u=1, i",
101
+ "sec-ch-ua": '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
102
+ "sec-ch-ua-mobile": "?0",
103
+ "sec-ch-ua-platform": '"Windows"',
104
+ "sec-fetch-dest": "empty",
105
+ "sec-fetch-mode": "cors",
106
+ "sec-fetch-site": "same-origin",
107
+ Referer: "https://id.zalo.me/account?continue=https%3A%2F%2Fzalo.me%2Fpc",
108
+ "Referrer-Policy": "strict-origin-when-cross-origin",
109
+ },
110
+ body: form,
111
+ method: "POST",
112
+ })
113
+ .then((res) => res.json())
114
+ .catch(logger(ctx).error);
115
+ }
116
+ async function saveQRCodeToFile(filepath, imageData) {
117
+ await writeFile(filepath, imageData, "base64");
118
+ }
119
+ async function waitingScan(ctx, version, code, signal) {
120
+ const form = new URLSearchParams();
121
+ form.append("code", code);
122
+ form.append("continue", "https://chat.zalo.me/");
123
+ form.append("v", version);
124
+ return await request(ctx, "https://id.zalo.me/account/authen/qr/waiting-scan", {
125
+ headers: {
126
+ accept: "*/*",
127
+ "accept-language": "vi-VN,vi;q=0.9,fr-FR;q=0.8,fr;q=0.7,en-US;q=0.6,en;q=0.5",
128
+ "content-type": "application/x-www-form-urlencoded",
129
+ priority: "u=1, i",
130
+ "sec-ch-ua": '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
131
+ "sec-ch-ua-mobile": "?0",
132
+ "sec-ch-ua-platform": '"Windows"',
133
+ "sec-fetch-dest": "empty",
134
+ "sec-fetch-mode": "cors",
135
+ "sec-fetch-site": "same-origin",
136
+ Referer: "https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F",
137
+ "Referrer-Policy": "strict-origin-when-cross-origin",
138
+ },
139
+ body: form,
140
+ method: "POST",
141
+ signal,
142
+ })
143
+ .then((res) => res.json())
144
+ .then((data) => {
145
+ if (data.error_code == 8) {
146
+ return waitingScan(ctx, version, code, signal);
147
+ }
148
+ return data;
149
+ })
150
+ .catch((e) => {
151
+ if (!signal.aborted)
152
+ logger(ctx).error(e);
153
+ });
154
+ }
155
+ async function waitingConfirm(ctx, version, code, signal) {
156
+ const form = new URLSearchParams();
157
+ form.append("code", code);
158
+ form.append("gToken", "");
159
+ form.append("gAction", "CONFIRM_QR");
160
+ form.append("continue", "https://chat.zalo.me/");
161
+ form.append("v", version);
162
+ logger(ctx).info("Please confirm on your phone");
163
+ return await request(ctx, "https://id.zalo.me/account/authen/qr/waiting-confirm", {
164
+ headers: {
165
+ accept: "*/*",
166
+ "accept-language": "vi-VN,vi;q=0.9,fr-FR;q=0.8,fr;q=0.7,en-US;q=0.6,en;q=0.5",
167
+ "content-type": "application/x-www-form-urlencoded",
168
+ priority: "u=1, i",
169
+ "sec-ch-ua": '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
170
+ "sec-ch-ua-mobile": "?0",
171
+ "sec-ch-ua-platform": '"Windows"',
172
+ "sec-fetch-dest": "empty",
173
+ "sec-fetch-mode": "cors",
174
+ "sec-fetch-site": "same-origin",
175
+ Referer: "https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F",
176
+ "Referrer-Policy": "strict-origin-when-cross-origin",
177
+ },
178
+ body: form,
179
+ method: "POST",
180
+ signal,
181
+ })
182
+ .then((res) => res.json())
183
+ .then((data) => {
184
+ if (data.error_code == 8) {
185
+ return waitingConfirm(ctx, version, code, signal);
186
+ }
187
+ return data;
188
+ })
189
+ .catch((e) => {
190
+ if (!signal.aborted)
191
+ logger(ctx).error(e);
192
+ });
193
+ }
194
+ async function checkSession(ctx) {
195
+ return await request(ctx, "https://id.zalo.me/account/checksession?continue=https%3A%2F%2Fchat.zalo.me%2Findex.html", {
196
+ headers: {
197
+ accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
198
+ "accept-language": "vi-VN,vi;q=0.9,fr-FR;q=0.8,fr;q=0.7,en-US;q=0.6,en;q=0.5",
199
+ priority: "u=0, i",
200
+ "sec-ch-ua": '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
201
+ "sec-ch-ua-mobile": "?0",
202
+ "sec-ch-ua-platform": '"Windows"',
203
+ "sec-fetch-dest": "document",
204
+ "sec-fetch-mode": "navigate",
205
+ "sec-fetch-site": "same-origin",
206
+ "upgrade-insecure-requests": "1",
207
+ Referer: "https://id.zalo.me/account?continue=https%3A%2F%2Fchat.zalo.me%2F",
208
+ "Referrer-Policy": "strict-origin-when-cross-origin",
209
+ },
210
+ redirect: "manual",
211
+ method: "GET",
212
+ }).catch(logger(ctx).error);
213
+ }
214
+ async function getUserInfo(ctx) {
215
+ return await request(ctx, "https://jr.chat.zalo.me/jr/userinfo", {
216
+ headers: {
217
+ accept: "*/*",
218
+ "accept-language": "vi-VN,vi;q=0.9,fr-FR;q=0.8,fr;q=0.7,en-US;q=0.6,en;q=0.5",
219
+ priority: "u=1, i",
220
+ "sec-ch-ua": '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
221
+ "sec-ch-ua-mobile": "?0",
222
+ "sec-ch-ua-platform": '"Windows"',
223
+ "sec-fetch-dest": "empty",
224
+ "sec-fetch-mode": "cors",
225
+ "sec-fetch-site": "same-site",
226
+ Referer: "https://chat.zalo.me/",
227
+ "Referrer-Policy": "strict-origin-when-cross-origin",
228
+ },
229
+ method: "GET",
230
+ })
231
+ .then((res) => res.json())
232
+ .catch(logger(ctx).error);
233
+ }
234
+ export async function loginQR(ctx, options, callback) {
235
+ ctx.cookie = new CookieJar();
236
+ ctx.userAgent = options.userAgent;
237
+ return new Promise(async (resolve, reject) => {
238
+ var _a;
239
+ const controller = new AbortController();
240
+ let qrTimeout = null;
241
+ function cleanUp() {
242
+ controller.abort();
243
+ if (qrTimeout) {
244
+ clearTimeout(qrTimeout);
245
+ qrTimeout = null;
246
+ }
247
+ }
248
+ try {
249
+ function retry() {
250
+ cleanUp();
251
+ return resolve(loginQR(ctx, options, callback));
252
+ }
253
+ function abort() {
254
+ cleanUp();
255
+ return reject(new ZaloApiLoginQRAborted());
256
+ }
257
+ if (ctx.options.logging)
258
+ console.log();
259
+ const loginVersion = await loadLoginPage(ctx);
260
+ if (!loginVersion)
261
+ throw new ZaloApiError("Cannot get API login version");
262
+ logger(ctx).info("Got login version:", loginVersion);
263
+ await getLoginInfo(ctx, loginVersion);
264
+ await verifyClient(ctx, loginVersion);
265
+ const qrGenResult = await generate(ctx, loginVersion);
266
+ if (!qrGenResult || !qrGenResult.data)
267
+ throw new ZaloApiError(`Unable to generate QRCode\nResponse: ${JSON.stringify(qrGenResult, null, 2)}`);
268
+ const qrData = qrGenResult.data;
269
+ if (callback) {
270
+ callback({
271
+ type: LoginQRCallbackEventType.QRCodeGenerated,
272
+ data: Object.assign(Object.assign({}, qrGenResult.data), { image: qrGenResult.data.image.replace(/^data:image\/png;base64,/, "") }),
273
+ actions: {
274
+ async saveToFile(qrPath) {
275
+ var _a;
276
+ if (qrPath === void 0) { qrPath = (_a = options.qrPath) !== null && _a !== void 0 ? _a : "qr.png"; }
277
+ await saveQRCodeToFile(qrPath, qrData.image.replace(/^data:image\/png;base64,/, ""));
278
+ logger(ctx).info("Scan the QR code at", `'${qrPath}'`, "to proceed with login");
279
+ },
280
+ retry,
281
+ abort,
282
+ },
283
+ });
284
+ }
285
+ else {
286
+ const qrPath = (_a = options.qrPath) !== null && _a !== void 0 ? _a : "qr.png";
287
+ await saveQRCodeToFile(qrPath, qrData.image.replace(/^data:image\/png;base64,/, ""));
288
+ logger(ctx).info("Scan the QR code at", `'${qrPath}'`, "to proceed with login");
289
+ }
290
+ qrTimeout = setTimeout(() => {
291
+ cleanUp();
292
+ logger(ctx).info("QR expired!");
293
+ if (callback) {
294
+ callback({
295
+ type: LoginQRCallbackEventType.QRCodeExpired,
296
+ data: null,
297
+ actions: {
298
+ retry,
299
+ abort,
300
+ },
301
+ });
302
+ }
303
+ else {
304
+ retry();
305
+ }
306
+ }, 100000);
307
+ const scanResult = await waitingScan(ctx, loginVersion, qrGenResult.data.code, controller.signal);
308
+ if (!scanResult || !scanResult.data)
309
+ throw new ZaloApiError("Cannot get scan result");
310
+ if (callback) {
311
+ callback({
312
+ type: LoginQRCallbackEventType.QRCodeScanned,
313
+ data: scanResult.data,
314
+ actions: {
315
+ retry,
316
+ abort,
317
+ },
318
+ });
319
+ }
320
+ const confirmResult = await waitingConfirm(ctx, loginVersion, qrGenResult.data.code, controller.signal);
321
+ if (!confirmResult)
322
+ throw new ZaloApiError("Cannot get confirm result");
323
+ clearTimeout(qrTimeout);
324
+ if (confirmResult.error_code == -13) {
325
+ if (callback) {
326
+ callback({
327
+ type: LoginQRCallbackEventType.QRCodeDeclined,
328
+ data: {
329
+ code: qrData.code,
330
+ },
331
+ actions: {
332
+ retry,
333
+ abort,
334
+ },
335
+ });
336
+ }
337
+ else {
338
+ logger(ctx).error("QRCode login declined");
339
+ throw new ZaloApiLoginQRDeclined();
340
+ }
341
+ return;
342
+ }
343
+ else if (confirmResult.error_code != 0) {
344
+ throw new ZaloApiError(`An error has occurred.\nResponse: ${JSON.stringify(confirmResult, null, 2)}`);
345
+ }
346
+ const checkSessionResult = await checkSession(ctx);
347
+ if (!checkSessionResult)
348
+ throw new ZaloApiError("Cannot get session, login failed");
349
+ logger(ctx).info("Successfully logged into the account", scanResult.data.display_name);
350
+ const userInfo = await getUserInfo(ctx);
351
+ if (!userInfo || !userInfo.data)
352
+ throw new ZaloApiError("Can't get account info");
353
+ if (!userInfo.data.logged)
354
+ throw new ZaloApiError("Can't login");
355
+ resolve({
356
+ cookies: ctx.cookie.toJSON().cookies,
357
+ userInfo: userInfo.data.info,
358
+ });
359
+ }
360
+ catch (error) {
361
+ cleanUp();
362
+ reject(error);
363
+ }
364
+ });
365
+ }
@@ -0,0 +1,21 @@
1
+ export type ParseLinkErrorMaps = Record<string, number>;
2
+ export type ParseLinkResponse = {
3
+ data: {
4
+ thumb: string;
5
+ title: string;
6
+ desc: string;
7
+ src: string;
8
+ href: string;
9
+ media: {
10
+ type: number;
11
+ count: number;
12
+ mediaTitle: string;
13
+ artist: string;
14
+ streamUrl: string;
15
+ stream_icon: string;
16
+ };
17
+ stream_icon: string;
18
+ };
19
+ error_maps: ParseLinkErrorMaps;
20
+ };
21
+ export declare const parseLinkFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (link: string) => Promise<ParseLinkResponse>;
@@ -0,0 +1,27 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { apiFactory } from "../utils.js";
3
+ export const parseLinkFactory = apiFactory()((api, ctx, utils) => {
4
+ const serviceURL = utils.makeURL(`${api.zpwServiceMap.file[0]}/api/message/parselink`);
5
+ /**
6
+ * Parse link
7
+ *
8
+ * @param link link to parse
9
+ *
10
+ * @throws {ZaloApiError}
11
+ *
12
+ */
13
+ return async function parseLink(link) {
14
+ const params = {
15
+ link,
16
+ version: 1, // version 0 is not available errorMaps || version 1 is errorMaps (for response)
17
+ imei: ctx.imei,
18
+ };
19
+ const encryptedParams = utils.encodeAES(JSON.stringify(params));
20
+ if (!encryptedParams)
21
+ throw new ZaloApiError("Failed to encrypt params");
22
+ const response = await utils.request(utils.makeURL(serviceURL, { params: encryptedParams }), {
23
+ method: "GET",
24
+ });
25
+ return utils.resolve(response);
26
+ };
27
+ });
@@ -0,0 +1,2 @@
1
+ export type RejectFriendRequestResponse = "";
2
+ export declare const rejectFriendRequestFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (friendId: string) => Promise<"">;
@@ -0,0 +1,27 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { apiFactory } from "../utils.js";
3
+ export const rejectFriendRequestFactory = apiFactory()((api, _ctx, utils) => {
4
+ const serviceURL = utils.makeURL(`${api.zpwServiceMap.friend[0]}/api/friend/reject`);
5
+ /**
6
+ * Reject a friend request from a User
7
+ *
8
+ * @param friendId
9
+ *
10
+ * @throws {ZaloApiError}
11
+ */
12
+ return async function rejectFriendRequest(friendId) {
13
+ const params = {
14
+ fid: friendId,
15
+ };
16
+ const encryptedParams = utils.encodeAES(JSON.stringify(params));
17
+ if (!encryptedParams)
18
+ throw new ZaloApiError("Failed to encrypt params");
19
+ const response = await utils.request(serviceURL, {
20
+ method: "POST",
21
+ body: new URLSearchParams({
22
+ params: encryptedParams,
23
+ }),
24
+ });
25
+ return utils.resolve(response);
26
+ };
27
+ });
@@ -0,0 +1,2 @@
1
+ export type RemoveFriendResponse = "";
2
+ export declare const removeFriendFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (friendId: string) => Promise<"">;
@@ -0,0 +1,28 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { apiFactory } from "../utils.js";
3
+ export const removeFriendFactory = apiFactory()((api, ctx, utils) => {
4
+ const serviceURL = utils.makeURL(`${api.zpwServiceMap.friend[0]}/api/friend/remove`);
5
+ /**
6
+ * Remove friend
7
+ *
8
+ * @param friendId - ID of the friend to remove
9
+ *
10
+ * @throws {ZaloApiError}
11
+ */
12
+ return async function removeFriend(friendId) {
13
+ const params = {
14
+ fid: friendId,
15
+ imei: ctx.imei,
16
+ };
17
+ const encryptedParams = utils.encodeAES(JSON.stringify(params));
18
+ if (!encryptedParams)
19
+ throw new ZaloApiError("Failed to encrypt params");
20
+ const response = await utils.request(serviceURL, {
21
+ method: "POST",
22
+ body: new URLSearchParams({
23
+ params: encryptedParams,
24
+ }),
25
+ });
26
+ return utils.resolve(response);
27
+ };
28
+ });
@@ -0,0 +1,2 @@
1
+ export type RemoveFriendAliasResponse = "";
2
+ export declare const removeFriendAliasFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (friendId: string) => Promise<"">;
@@ -0,0 +1,24 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { apiFactory } from "../utils.js";
3
+ export const removeFriendAliasFactory = apiFactory()((api, _ctx, utils) => {
4
+ const serviceURL = utils.makeURL(`${api.zpwServiceMap.alias[0]}/api/alias/remove`);
5
+ /**
6
+ * Remove friend's alias
7
+ *
8
+ * @param friendId friend id
9
+ *
10
+ * @throws {ZaloApiError}
11
+ */
12
+ return async function removeFriendAlias(friendId) {
13
+ const params = {
14
+ friendId: friendId,
15
+ };
16
+ const encryptedParams = utils.encodeAES(JSON.stringify(params));
17
+ if (!encryptedParams)
18
+ throw new ZaloApiError("Failed to encrypt params");
19
+ const response = await utils.request(utils.makeURL(serviceURL, { params: encryptedParams }), {
20
+ method: "GET",
21
+ });
22
+ return utils.resolve(response);
23
+ };
24
+ });
@@ -0,0 +1,2 @@
1
+ export type RemoveGroupBlockedMemberResponse = "";
2
+ export declare const removeGroupBlockedMemberFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (memberId: string | string[], groupId: string) => Promise<"">;
@@ -0,0 +1,28 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { apiFactory } from "../utils.js";
3
+ export const removeGroupBlockedMemberFactory = apiFactory()((api, _, utils) => {
4
+ const serviceURL = utils.makeURL(`${api.zpwServiceMap.group[0]}/api/group/blockedmems/remove`);
5
+ /**
6
+ * Remove group blocked member
7
+ *
8
+ * @param memberId member id(s)
9
+ * @param groupId group id
10
+ *
11
+ * @throws {ZaloApiError}
12
+ */
13
+ return async function removeGroupBlockedMember(memberId, groupId) {
14
+ if (!Array.isArray(memberId))
15
+ memberId = [memberId];
16
+ const params = {
17
+ grid: groupId,
18
+ members: memberId,
19
+ };
20
+ const encryptedParams = utils.encodeAES(JSON.stringify(params));
21
+ if (!encryptedParams)
22
+ throw new ZaloApiError("Failed to encrypt params");
23
+ const response = await utils.request(utils.makeURL(serviceURL, { params: encryptedParams }), {
24
+ method: "GET",
25
+ });
26
+ return utils.resolve(response);
27
+ };
28
+ });
@@ -0,0 +1,2 @@
1
+ export type RemoveGroupDeputyResponse = "";
2
+ export declare const removeGroupDeputyFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (memberId: string | string[], groupId: string) => Promise<"">;
@@ -0,0 +1,30 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { apiFactory } from "../utils.js";
3
+ export const removeGroupDeputyFactory = apiFactory()((api, ctx, utils) => {
4
+ const serviceURL = utils.makeURL(`${api.zpwServiceMap.group[0]}/api/group/admins/remove`);
5
+ /**
6
+ * Remove group deputy
7
+ *
8
+ * @param memberId user Id or list of user Ids
9
+ * @param groupId group Id
10
+ *
11
+ * @throws {ZaloApiError}
12
+ *
13
+ */
14
+ return async function removeGroupDeputy(memberId, groupId) {
15
+ if (!Array.isArray(memberId))
16
+ memberId = [memberId];
17
+ const params = {
18
+ grid: groupId,
19
+ members: memberId,
20
+ imei: ctx.imei,
21
+ };
22
+ const encryptedParams = utils.encodeAES(JSON.stringify(params));
23
+ if (!encryptedParams)
24
+ throw new ZaloApiError("Failed to encrypt params");
25
+ const response = await utils.request(utils.makeURL(serviceURL, { params: encryptedParams }), {
26
+ method: "GET",
27
+ });
28
+ return utils.resolve(response);
29
+ };
30
+ });
@@ -0,0 +1,5 @@
1
+ export type RemoveQuickMessageResponse = {
2
+ itemIds: number[];
3
+ version: number;
4
+ };
5
+ export declare const removeQuickMessageFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (itemIds: number | number[]) => Promise<RemoveQuickMessageResponse>;
@@ -0,0 +1,27 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { apiFactory } from "../utils.js";
3
+ export const removeQuickMessageFactory = apiFactory()((api, _ctx, utils) => {
4
+ const serviceURL = utils.makeURL(`${api.zpwServiceMap.quick_message[0]}/api/quickmessage/delete`);
5
+ /**
6
+ * Remove quick message
7
+ *
8
+ * @param itemIds - The id(s) of the quick message(s) to remove (number or number[])
9
+ *
10
+ * @note Zalo might throw an error with code 212 if the item does not exist
11
+ *
12
+ * @throws {ZaloApiError}
13
+ */
14
+ return async function removeQuickMessage(itemIds) {
15
+ const idsArray = Array.isArray(itemIds) ? itemIds : [itemIds];
16
+ const params = {
17
+ itemIds: idsArray,
18
+ };
19
+ const encryptedParams = utils.encodeAES(JSON.stringify(params));
20
+ if (!encryptedParams)
21
+ throw new ZaloApiError("Failed to encrypt params");
22
+ const response = await utils.request(utils.makeURL(serviceURL, { params: encryptedParams }), {
23
+ method: "GET",
24
+ });
25
+ return utils.resolve(response);
26
+ };
27
+ });
@@ -0,0 +1,3 @@
1
+ import { ThreadType } from "../models/index.js";
2
+ export type RemoveReminderResponse = "" | number;
3
+ export declare const removeReminderFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (reminderId: string, threadId: string, type?: ThreadType) => Promise<RemoveReminderResponse>;
@@ -0,0 +1,40 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { ThreadType } from "../models/index.js";
3
+ import { apiFactory } from "../utils.js";
4
+ export const removeReminderFactory = apiFactory()((api, ctx, utils) => {
5
+ const serviceURL = {
6
+ [ThreadType.User]: utils.makeURL(`${api.zpwServiceMap.group_board[0]}/api/board/oneone/remove`),
7
+ [ThreadType.Group]: utils.makeURL(`${api.zpwServiceMap.group_board[0]}/api/board/topic/remove`),
8
+ };
9
+ /**
10
+ * Remove a reminder in a (user/group)
11
+ *
12
+ * @param reminderId Reminder ID to remove reminder from
13
+ * @param threadId (User/Group) ID to remove reminder from
14
+ * @param type Thread type (User or Group)
15
+ *
16
+ * @throws {ZaloApiError}
17
+ */
18
+ return async function removeReminder(reminderId, threadId, type = ThreadType.User) {
19
+ const params = type === ThreadType.User
20
+ ? {
21
+ uid: threadId,
22
+ reminderId: reminderId,
23
+ }
24
+ : {
25
+ grid: threadId,
26
+ topicId: reminderId,
27
+ imei: ctx.imei,
28
+ };
29
+ const encryptedParams = utils.encodeAES(JSON.stringify(params));
30
+ if (!encryptedParams)
31
+ throw new ZaloApiError("Failed to encrypt params");
32
+ const response = await utils.request(serviceURL[type], {
33
+ method: "POST",
34
+ body: new URLSearchParams({
35
+ params: encryptedParams,
36
+ }),
37
+ });
38
+ return utils.resolve(response);
39
+ };
40
+ });