@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,90 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { apiFactory } from "../utils.js";
3
+ export var UpdateSettingsType;
4
+ (function (UpdateSettingsType) {
5
+ UpdateSettingsType["ViewBirthday"] = "view_birthday";
6
+ UpdateSettingsType["ShowOnlineStatus"] = "show_online_status";
7
+ UpdateSettingsType["DisplaySeenStatus"] = "display_seen_status";
8
+ UpdateSettingsType["ReceiveMessage"] = "receive_message";
9
+ UpdateSettingsType["AcceptCall"] = "accept_stranger_call";
10
+ UpdateSettingsType["AddFriendViaPhone"] = "add_friend_via_phone";
11
+ UpdateSettingsType["AddFriendViaQR"] = "add_friend_via_qr";
12
+ UpdateSettingsType["AddFriendViaGroup"] = "add_friend_via_group";
13
+ UpdateSettingsType["AddFriendViaContact"] = "add_friend_via_contact";
14
+ UpdateSettingsType["DisplayOnRecommendFriend"] = "display_on_recommend_friend";
15
+ UpdateSettingsType["ArchivedChat"] = "archivedChatStatus";
16
+ UpdateSettingsType["QuickMessage"] = "quickMessageStatus";
17
+ })(UpdateSettingsType || (UpdateSettingsType = {}));
18
+ export const updateSettingsFactory = apiFactory()((_api, _ctx, utils) => {
19
+ const serviceURL = utils.makeURL(`https://wpa.chat.zalo.me/api/setting/update`);
20
+ /**
21
+ * Set account settings
22
+ *
23
+ * @param type The type of setting to update
24
+ * @param value
25
+ *
26
+ * ViewBirthday
27
+ * * 0: hide
28
+ * * 1: show full day/month/year
29
+ * * 2: show day/month
30
+ *
31
+ * ShowOnlineStatus
32
+ * * 0: hide
33
+ * * 1: show
34
+ *
35
+ * DisplaySeenStatus
36
+ * * 0: hide
37
+ * * 1: show
38
+ *
39
+ * ReceiveMessage
40
+ * * 1: everyone
41
+ * * 2: only friends
42
+ *
43
+ * AcceptCall
44
+ * * 2: only friends
45
+ * * 3: everyone
46
+ * * 4: friends and person who contacted
47
+ *
48
+ * AddFriendViaPhone
49
+ * * 0: disable
50
+ * * 1: enable
51
+ *
52
+ * AddFriendViaQR
53
+ * * 0: disable
54
+ * * 1: enable
55
+ *
56
+ * AddFriendViaGroup
57
+ * * 0: disable
58
+ * * 1: enable
59
+ *
60
+ * AddFriendViaContact
61
+ * * 0: disable
62
+ * * 1: enable
63
+ *
64
+ * DisplayOnRecommendFriend
65
+ * * 0: disable
66
+ * * 1: enable
67
+ *
68
+ * ArchivedChat
69
+ * * 0: disable
70
+ * * 1: enable
71
+ *
72
+ * QuickMessage
73
+ * * 0: disable
74
+ * * 1: enable
75
+ *
76
+ * @throws {ZaloApiError}
77
+ */
78
+ return async function updateSettings(type, value) {
79
+ const params = {
80
+ [type]: value,
81
+ };
82
+ const encryptedParams = utils.encodeAES(JSON.stringify(params));
83
+ if (!encryptedParams)
84
+ throw new ZaloApiError("Failed to encrypt params");
85
+ const response = await utils.request(utils.makeURL(serviceURL, { params: encryptedParams }), {
86
+ method: "GET",
87
+ });
88
+ return utils.resolve(response);
89
+ };
90
+ });
@@ -0,0 +1,2 @@
1
+ export type UpdateStatusResponse = "";
2
+ export declare const updateStatusFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (status: string) => Promise<"">;
@@ -0,0 +1,27 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { apiFactory } from "../utils.js";
3
+ export const updateStatusFactory = apiFactory()((api, _ctx, utils) => {
4
+ const serviceURL = utils.makeURL(`${api.zpwServiceMap.profile[0]}/api/social/profile/status`);
5
+ /**
6
+ * Update status
7
+ *
8
+ * @param status status for update bio
9
+ *
10
+ * @throws {ZaloApiError}
11
+ */
12
+ return async function updateStatus(status) {
13
+ const params = {
14
+ status: status,
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: "POST",
21
+ body: new URLSearchParams({
22
+ params: encryptedParams,
23
+ }),
24
+ });
25
+ return utils.resolve(response);
26
+ };
27
+ });
@@ -0,0 +1,2 @@
1
+ export type UpgradeGroupCommunityResponse = "";
2
+ export declare const upgradeGroupCommunityFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (groupId: string) => Promise<"">;
@@ -0,0 +1,27 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { apiFactory } from "../utils.js";
3
+ export const upgradeGroupCommunityFactory = apiFactory()((api, ctx, utils) => {
4
+ const serviceURL = utils.makeURL(`${api.zpwServiceMap.group[0]}/api/group/upgrade/community`);
5
+ /**
6
+ * Upgrade group to community
7
+ *
8
+ * @param groupId Group ID upgrade
9
+ *
10
+ * @note Zalo account identity must be verified and the account must be over 18 to use
11
+ * @code 185 The limit on the number of communities that can own has been reached
12
+ * @throws {ZaloApiError}
13
+ */
14
+ return async function upgradeGroupCommunity(groupId) {
15
+ const params = {
16
+ grId: groupId,
17
+ language: ctx.language,
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,50 @@
1
+ import { ThreadType, type AttachmentSource } from "../models/index.js";
2
+ export type UploadAttachmentImageResponse = {
3
+ normalUrl: string;
4
+ photoId: string;
5
+ finished: number | boolean;
6
+ hdUrl: string;
7
+ thumbUrl: string;
8
+ clientFileId: number;
9
+ chunkId: number;
10
+ fileType: "image";
11
+ width: number;
12
+ height: number;
13
+ totalSize: number;
14
+ hdSize: number;
15
+ };
16
+ export type UploadAttachmentVideoResponse = {
17
+ finished: number | boolean;
18
+ clientFileId: number;
19
+ chunkId: number;
20
+ fileType: "video";
21
+ fileUrl: string;
22
+ fileId: string;
23
+ checksum: string;
24
+ totalSize: number;
25
+ fileName: string;
26
+ };
27
+ export type UploadAttachmentFileResponse = {
28
+ finished: number | boolean;
29
+ clientFileId: number;
30
+ chunkId: number;
31
+ fileType: "others";
32
+ fileUrl: string;
33
+ fileId: string;
34
+ checksum: string;
35
+ totalSize: number;
36
+ fileName: string;
37
+ };
38
+ export type ImageData = {
39
+ fileName: string;
40
+ totalSize: number | undefined;
41
+ width: number | undefined;
42
+ height: number | undefined;
43
+ };
44
+ export type FileData = {
45
+ fileName: string;
46
+ totalSize: number;
47
+ };
48
+ export type UploadAttachmentType = UploadAttachmentImageResponse | UploadAttachmentVideoResponse | UploadAttachmentFileResponse;
49
+ export type UploadAttachmentResponse = UploadAttachmentType[];
50
+ export declare const uploadAttachmentFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (sources: AttachmentSource | AttachmentSource[], threadId: string, type?: ThreadType) => Promise<UploadAttachmentType[]>;
@@ -0,0 +1,196 @@
1
+ import FormData from "form-data";
2
+ import fs from "node:fs";
3
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
4
+ import { ThreadType } from "../models/index.js";
5
+ import { apiFactory, getFileExtension, getFileName, getFileSize, getImageMetaData, getMd5LargeFileObject, resolveResponse, } from "../utils.js";
6
+ const urlType = {
7
+ image: "photo_original/upload",
8
+ video: "asyncfile/upload",
9
+ others: "asyncfile/upload",
10
+ };
11
+ export const uploadAttachmentFactory = apiFactory()((api, ctx, utils) => {
12
+ const serviceURL = `${api.zpwServiceMap.file[0]}/api`;
13
+ const { sharefile } = ctx.settings.features;
14
+ function isExceedMaxFile(totalFile) {
15
+ return totalFile > sharefile.max_file;
16
+ }
17
+ function isExceedMaxFileSize(fileSize) {
18
+ return fileSize > sharefile.max_size_share_file_v3 * 1024 * 1024;
19
+ }
20
+ function isExtensionValid(ext) {
21
+ return sharefile.restricted_ext_file.indexOf(ext) == -1;
22
+ }
23
+ /**
24
+ * Upload an attachment to a thread
25
+ *
26
+ * @param sources path to files or attachment sources
27
+ * @param threadId Group or User ID
28
+ * @param type Message type (User or Group)
29
+ *
30
+ * @throws {ZaloApiError | ZaloApiMissingImageMetadataGetter}
31
+ */
32
+ return async function uploadAttachment(sources, threadId, type = ThreadType.User) {
33
+ if (!sources)
34
+ throw new ZaloApiError("Missing sources");
35
+ if (!Array.isArray(sources))
36
+ sources = [sources];
37
+ if (sources.length == 0)
38
+ throw new ZaloApiError("Missing sources");
39
+ if (isExceedMaxFile(sources.length))
40
+ throw new ZaloApiError("Exceed maximum file of " + sharefile.max_file);
41
+ if (!threadId)
42
+ throw new ZaloApiError("Missing threadId");
43
+ const chunkSize = ctx.settings.features.sharefile.chunk_size_file;
44
+ const isGroupMessage = type == ThreadType.Group;
45
+ const attachmentsData = [];
46
+ const url = `${serviceURL}/${isGroupMessage ? "group" : "message"}/`;
47
+ const typeParam = isGroupMessage ? "11" : "2";
48
+ let clientId = Date.now();
49
+ for (const source of sources) {
50
+ const isFilePath = typeof source == "string";
51
+ const isBuffer = typeof source == "object" && source.data instanceof Buffer;
52
+ if (!isFilePath && !isBuffer)
53
+ throw new ZaloApiError("Invalid source type");
54
+ if (!isFilePath && !source.filename)
55
+ throw new ZaloApiError("Missing filename");
56
+ if (isFilePath && !fs.existsSync(source))
57
+ throw new ZaloApiError("File not found");
58
+ const extFile = getFileExtension(isFilePath ? source : source.filename).toLowerCase();
59
+ const fileName = isFilePath ? getFileName(source) : source.filename;
60
+ if (isExtensionValid(extFile) == false)
61
+ throw new ZaloApiError(`File extension "${extFile}" is not allowed`);
62
+ const data = {
63
+ filePath: isFilePath ? source : source.filename,
64
+ chunkContent: [],
65
+ params: {},
66
+ source,
67
+ };
68
+ if (isGroupMessage)
69
+ data.params.grid = threadId;
70
+ else
71
+ data.params.toid = threadId;
72
+ switch (extFile) {
73
+ case "jpg":
74
+ case "jpeg":
75
+ case "png":
76
+ case "webp": {
77
+ const imageData = isFilePath ? await getImageMetaData(ctx, source) : Object.assign(Object.assign({}, source.metadata), { fileName });
78
+ if (isExceedMaxFileSize(imageData.totalSize))
79
+ throw new ZaloApiError(`File ${fileName} size exceed maximum size of ${sharefile.max_size_share_file_v3}MB`);
80
+ data.fileData = imageData;
81
+ data.fileType = "image";
82
+ data.params.totalChunk = Math.ceil(data.fileData.totalSize / chunkSize);
83
+ data.params.fileName = fileName;
84
+ data.params.clientId = clientId++;
85
+ data.params.totalSize = imageData.totalSize;
86
+ data.params.imei = ctx.imei;
87
+ data.params.isE2EE = 0;
88
+ data.params.jxl = 0;
89
+ data.params.chunkId = 1;
90
+ break;
91
+ }
92
+ case "mp4": {
93
+ const videoSize = isFilePath ? await getFileSize(source) : source.metadata.totalSize;
94
+ if (isExceedMaxFileSize(videoSize))
95
+ throw new ZaloApiError(`File ${fileName} size exceed maximum size of ${sharefile.max_size_share_file_v3}MB`);
96
+ data.fileType = "video";
97
+ data.fileData = {
98
+ fileName,
99
+ totalSize: videoSize,
100
+ };
101
+ data.params.totalChunk = Math.ceil(data.fileData.totalSize / chunkSize);
102
+ data.params.fileName = fileName;
103
+ data.params.clientId = clientId++;
104
+ data.params.totalSize = videoSize;
105
+ data.params.imei = ctx.imei;
106
+ data.params.isE2EE = 0;
107
+ data.params.jxl = 0;
108
+ data.params.chunkId = 1;
109
+ break;
110
+ }
111
+ default: {
112
+ const fileSize = isFilePath ? await getFileSize(source) : source.metadata.totalSize;
113
+ if (isExceedMaxFileSize(fileSize))
114
+ throw new ZaloApiError(`File ${fileName} size exceed maximum size of ${sharefile.max_size_share_file_v3}MB`);
115
+ data.fileType = "others";
116
+ data.fileData = {
117
+ fileName,
118
+ totalSize: fileSize,
119
+ };
120
+ data.params.totalChunk = Math.ceil(data.fileData.totalSize / chunkSize);
121
+ data.params.fileName = fileName;
122
+ data.params.clientId = clientId++;
123
+ data.params.totalSize = fileSize;
124
+ data.params.imei = ctx.imei;
125
+ data.params.isE2EE = 0;
126
+ data.params.jxl = 0;
127
+ data.params.chunkId = 1;
128
+ break;
129
+ }
130
+ }
131
+ const fileBuffer = isFilePath ? await fs.promises.readFile(source) : source.data;
132
+ for (let i = 0; i < data.params.totalChunk; i++) {
133
+ const formData = new FormData();
134
+ const slicedBuffer = fileBuffer.subarray(i * chunkSize, (i + 1) * chunkSize);
135
+ formData.append("chunkContent", slicedBuffer, {
136
+ filename: fileName,
137
+ contentType: "application/octet-stream",
138
+ });
139
+ data.chunkContent[i] = formData;
140
+ }
141
+ attachmentsData.push(data);
142
+ }
143
+ const requests = [], results = [];
144
+ for (const data of attachmentsData) {
145
+ for (let i = 0; i < data.params.totalChunk; i++) {
146
+ const encryptedParams = utils.encodeAES(JSON.stringify(data.params));
147
+ if (!encryptedParams)
148
+ throw new ZaloApiError("Failed to encrypt message");
149
+ requests.push(utils
150
+ .request(utils.makeURL(url + urlType[data.fileType], { type: typeParam, params: encryptedParams }), {
151
+ method: "POST",
152
+ headers: data.chunkContent[i].getHeaders(),
153
+ body: data.chunkContent[i].getBuffer(),
154
+ })
155
+ .then(async (response) => {
156
+ /**
157
+ * @TODO: better type rather than any
158
+ */
159
+ const resData = await resolveResponse(ctx, response);
160
+ if (resData && resData.fileId != "-1" && resData.photoId != "-1")
161
+ await new Promise((resolve) => {
162
+ if (data.fileType == "video" || data.fileType == "others") {
163
+ const uploadCallback = async (wsData) => {
164
+ const result = Object.assign(Object.assign(Object.assign({ fileType: data.fileType }, resData), wsData), { totalSize: data.fileData.totalSize, fileName: data.fileData.fileName, checksum: (await getMd5LargeFileObject(data.source, data.fileData.totalSize)).data });
165
+ results.push(result);
166
+ resolve();
167
+ };
168
+ ctx.uploadCallbacks.set(resData.fileId.toString(), uploadCallback);
169
+ }
170
+ if (data.fileType == "image") {
171
+ const result = {
172
+ fileType: "image",
173
+ width: data.fileData.width,
174
+ height: data.fileData.height,
175
+ totalSize: data.fileData.totalSize,
176
+ hdSize: data.fileData.totalSize,
177
+ finished: resData.finished,
178
+ normalUrl: resData.normalUrl,
179
+ hdUrl: resData.hdUrl,
180
+ thumbUrl: resData.thumbUrl,
181
+ chunkId: resData.chunkId,
182
+ photoId: resData.photoId,
183
+ clientFileId: resData.clientFileId,
184
+ };
185
+ results.push(result);
186
+ resolve();
187
+ }
188
+ });
189
+ }));
190
+ data.params.chunkId++;
191
+ }
192
+ }
193
+ await Promise.all(requests);
194
+ return results;
195
+ };
196
+ });
@@ -0,0 +1,14 @@
1
+ import type { AttachmentSource } from "../models/index.js";
2
+ export type UploadProductPhotoPayload = {
3
+ file: AttachmentSource;
4
+ };
5
+ export type UploadProductPhotoResponse = {
6
+ normalUrl: string;
7
+ photoId: string;
8
+ finished: number;
9
+ hdUrl: string;
10
+ thumbUrl: string;
11
+ clientFileId: number;
12
+ chunkId: number;
13
+ };
14
+ export declare const uploadProductPhotoFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (payload: UploadProductPhotoPayload) => Promise<UploadProductPhotoResponse>;
@@ -0,0 +1,50 @@
1
+ import fs from "node:fs";
2
+ import FormData from "form-data";
3
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
4
+ import { apiFactory, getImageMetaData } from "../utils.js";
5
+ export const uploadProductPhotoFactory = apiFactory()((api, ctx, utils) => {
6
+ const serviceURL = utils.makeURL(`${api.zpwServiceMap.file[0]}/api/product/upload/photo`);
7
+ /**
8
+ * Upload product photo for api quick message, product catalog or custom local storage
9
+ *
10
+ * @param payload file path or attachment source
11
+ *
12
+ * @throws {ZaloApiError | ZaloApiMissingImageMetadataGetter}
13
+ */
14
+ return async function uploadProductPhoto(payload) {
15
+ const isSourceFilePath = typeof payload.file == "string";
16
+ const fileMetaData = isSourceFilePath
17
+ ? await getImageMetaData(ctx, payload.file)
18
+ : payload.file.metadata;
19
+ const fileSize = fileMetaData.totalSize || 0;
20
+ const fileBuffer = isSourceFilePath
21
+ ? await fs.promises.readFile(payload.file)
22
+ : payload.file.data;
23
+ const formData = new FormData();
24
+ formData.append("chunkContent", fileBuffer, {
25
+ filename: "undefined",
26
+ contentType: "application/octet-stream",
27
+ });
28
+ const params = {
29
+ totalChunk: 1,
30
+ fileName: `Base64_Img_Picker_${Date.now()}.jpg`,
31
+ clientId: Date.now(),
32
+ totalSize: fileSize,
33
+ imei: ctx.imei,
34
+ chunkId: 1,
35
+ toid: ctx.loginInfo.send2me_id,
36
+ featureId: 1,
37
+ };
38
+ const encryptedParams = utils.encodeAES(JSON.stringify(params));
39
+ if (!encryptedParams)
40
+ throw new ZaloApiError("Failed to encrypt params");
41
+ const response = await utils.request(utils.makeURL(serviceURL, {
42
+ params: encryptedParams,
43
+ }), {
44
+ method: "POST",
45
+ headers: formData.getHeaders(),
46
+ body: formData.getBuffer(),
47
+ });
48
+ return utils.resolve(response);
49
+ };
50
+ });
@@ -0,0 +1,5 @@
1
+ import type { PollOptions } from "../models/index.js";
2
+ export type VotePollResponse = {
3
+ options: PollOptions[];
4
+ };
5
+ export declare const votePollFactory: (ctx: import("../context.js").ContextBase, api: import("../apis.js").API) => (pollId: number, optionId: number | number[]) => Promise<VotePollResponse>;
@@ -0,0 +1,29 @@
1
+ import { ZaloApiError } from "../Errors/ZaloApiError.js";
2
+ import { apiFactory } from "../utils.js";
3
+ export const votePollFactory = apiFactory()((api, ctx, utils) => {
4
+ const serviceURL = utils.makeURL(`${api.zpwServiceMap.group[0]}/api/poll/vote`);
5
+ /**
6
+ * Vote on a poll
7
+ *
8
+ * @param pollId The ID of the poll to vote on
9
+ * @param optionId The ID(s) of the option to vote on
10
+ *
11
+ * @throws ZaloApiError
12
+ */
13
+ return async function votePoll(pollId, optionId) {
14
+ if (!Array.isArray(optionId))
15
+ optionId = [optionId];
16
+ const params = {
17
+ poll_id: pollId,
18
+ option_ids: optionId, // unvote = empty array
19
+ imei: ctx.imei,
20
+ };
21
+ const encryptedParams = utils.encodeAES(JSON.stringify(params));
22
+ if (!encryptedParams)
23
+ throw new ZaloApiError("Failed to encrypt params");
24
+ const response = await utils.request(utils.makeURL(serviceURL, { params: encryptedParams }), {
25
+ method: "GET",
26
+ });
27
+ return utils.resolve(response);
28
+ };
29
+ });