@softtynet/zca-js 2.3.2 → 2.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -21
- package/dist/apis/auth/exportSession.d.ts +7 -0
- package/dist/apis/auth/exportSession.js +17 -0
- package/dist/apis/chat/getDirectMessageStatus.d.ts +14 -0
- package/dist/apis/chat/getDirectMessageStatus.js +52 -0
- package/dist/apis/chat/getSuggestedConversations.d.ts +5 -0
- package/dist/apis/chat/getSuggestedConversations.js +24 -0
- package/dist/apis/chat/updatePinConversations.d.ts +24 -0
- package/dist/apis/chat/updatePinConversations.js +40 -0
- package/dist/apis/friend/getFriendProfilesV2.d.ts +26 -0
- package/dist/apis/friend/getFriendProfilesV2.js +38 -0
- package/dist/apis/friend/getFriendsActivePCWeb.d.ts +6 -0
- package/dist/apis/friend/getFriendsActivePCWeb.js +15 -0
- package/dist/apis/friend/verifyFriend.d.ts +11 -0
- package/dist/apis/friend/verifyFriend.js +37 -0
- package/dist/apis/group/analyseGroup.d.ts +4 -0
- package/dist/apis/group/analyseGroup.js +28 -0
- package/dist/apis/group/checkQuotaCommunityMember.d.ts +6 -0
- package/dist/apis/group/checkQuotaCommunityMember.js +34 -0
- package/dist/apis/group/getE2eeGroupList.d.ts +7 -0
- package/dist/apis/group/getE2eeGroupList.js +15 -0
- package/dist/apis/group/getGroupChatHistory.d.ts +37 -6
- package/dist/apis/group/getGroupChatHistory.js +41 -19
- package/dist/apis/group/getGroupCloudMessagePath.d.ts +19 -0
- package/dist/apis/group/getGroupCloudMessagePath.js +51 -0
- package/dist/apis/group/getGroupHistoryLegacy.d.ts +7 -0
- package/dist/apis/group/getGroupHistoryLegacy.js +62 -0
- package/dist/apis/group/getGroupInfoV2.d.ts +30 -0
- package/dist/apis/group/getGroupInfoV2.js +48 -0
- package/dist/apis/group/getGroupListV3.d.ts +19 -0
- package/dist/apis/group/getGroupListV3.js +29 -0
- package/dist/apis/group/getGroupMessageStatus.d.ts +26 -0
- package/dist/apis/group/getGroupMessageStatus.js +77 -0
- package/dist/apis/group/getMultiGroupCloudMessages.d.ts +5 -0
- package/dist/apis/group/getMultiGroupCloudMessages.js +29 -0
- package/dist/apis/media/getConversationMedia.d.ts +10 -0
- package/dist/apis/media/getPersonalMedia.d.ts +8 -0
- package/dist/apis/media/getPersonalMedia.js +31 -0
- package/dist/apis/media/getPersonalMediaPreview.d.ts +3 -0
- package/dist/apis/media/getPersonalMediaPreview.js +24 -0
- package/dist/apis/media/removePersonalMedia.d.ts +9 -0
- package/dist/apis/media/removePersonalMedia.js +28 -0
- package/dist/apis.d.ts +57 -0
- package/dist/apis.js +95 -0
- package/dist/cjs/apis/auth/exportSession.cjs +22 -0
- package/dist/cjs/apis/chat/getDirectMessageStatus.cjs +58 -0
- package/dist/cjs/apis/chat/getSuggestedConversations.cjs +29 -0
- package/dist/cjs/apis/chat/updatePinConversations.cjs +45 -0
- package/dist/cjs/apis/friend/getFriendProfilesV2.cjs +43 -0
- package/dist/cjs/apis/friend/getFriendsActivePCWeb.cjs +20 -0
- package/dist/cjs/apis/friend/verifyFriend.cjs +42 -0
- package/dist/cjs/apis/group/analyseGroup.cjs +33 -0
- package/dist/cjs/apis/group/checkQuotaCommunityMember.cjs +39 -0
- package/dist/cjs/apis/group/getE2eeGroupList.cjs +20 -0
- package/dist/cjs/apis/group/getGroupChatHistory.cjs +41 -18
- package/dist/cjs/apis/group/getGroupCloudMessagePath.cjs +69 -0
- package/dist/cjs/apis/group/getGroupHistoryLegacy.cjs +80 -0
- package/dist/cjs/apis/group/getGroupInfoV2.cjs +53 -0
- package/dist/cjs/apis/group/getGroupListV3.cjs +34 -0
- package/dist/cjs/apis/group/getGroupMessageStatus.cjs +83 -0
- package/dist/cjs/apis/group/getMultiGroupCloudMessages.cjs +34 -0
- package/dist/cjs/apis/media/getPersonalMedia.cjs +36 -0
- package/dist/cjs/apis/media/getPersonalMediaPreview.cjs +29 -0
- package/dist/cjs/apis/media/removePersonalMedia.cjs +33 -0
- package/dist/cjs/apis.cjs +95 -0
- package/dist/cjs/constants/endpoints.cjs +13 -0
- package/dist/cjs/constants/protocol.cjs +1 -1
- package/dist/cjs/context.cjs +20 -2
- package/dist/cjs/core/zcloud-client.cjs +1 -2
- package/dist/cjs/crypto/ws-cipher.cjs +66 -2
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/realtime/listener.cjs +18 -6
- package/dist/cjs/update.cjs +10 -1
- package/dist/cjs/utils.cjs +22 -5
- package/dist/constants/endpoints.d.ts +13 -0
- package/dist/constants/endpoints.js +13 -0
- package/dist/constants/protocol.d.ts +1 -1
- package/dist/constants/protocol.js +1 -1
- package/dist/context.d.ts +10 -0
- package/dist/context.js +20 -2
- package/dist/crypto/ws-cipher.d.ts +7 -0
- package/dist/crypto/ws-cipher.js +64 -2
- package/dist/index.d.ts +22 -3
- package/dist/index.js +1 -1
- package/dist/realtime/listener.d.ts +1 -0
- package/dist/realtime/listener.js +18 -6
- package/dist/update.js +10 -1
- package/dist/utils.js +17 -4
- package/index.d.ts +1 -1
- package/package.json +15 -5
package/dist/cjs/apis.cjs
CHANGED
|
@@ -10,6 +10,7 @@ var addQuickMessage = require('./apis/business/addQuickMessage.cjs');
|
|
|
10
10
|
var addReaction = require('./apis/chat/addReaction.cjs');
|
|
11
11
|
var addUnreadMark = require('./apis/chat/addUnreadMark.cjs');
|
|
12
12
|
var addUserToGroup = require('./apis/group/addUserToGroup.cjs');
|
|
13
|
+
var analyseGroup = require('./apis/group/analyseGroup.cjs');
|
|
13
14
|
var blockUser = require('./apis/friend/blockUser.cjs');
|
|
14
15
|
var blockViewFeed = require('./apis/friend/blockViewFeed.cjs');
|
|
15
16
|
var cancelPullMobile = require('./apis/sync/cancelPullMobile.cjs');
|
|
@@ -19,6 +20,7 @@ var changeFriendAlias = require('./apis/friend/changeFriendAlias.cjs');
|
|
|
19
20
|
var changeGroupAvatar = require('./apis/group/changeGroupAvatar.cjs');
|
|
20
21
|
var changeGroupName = require('./apis/group/changeGroupName.cjs');
|
|
21
22
|
var changeGroupOwner = require('./apis/group/changeGroupOwner.cjs');
|
|
23
|
+
var checkQuotaCommunityMember = require('./apis/group/checkQuotaCommunityMember.cjs');
|
|
22
24
|
var clearUnreadFriendRequests = require('./apis/friend/clearUnreadFriendRequests.cjs');
|
|
23
25
|
var createAutoReply = require('./apis/business/createAutoReply.cjs');
|
|
24
26
|
var createBankAccount = require('./apis/business/createBankAccount.cjs');
|
|
@@ -45,6 +47,7 @@ var editReminder = require('./apis/board/editReminder.cjs');
|
|
|
45
47
|
var enableGroupLink = require('./apis/group/enableGroupLink.cjs');
|
|
46
48
|
var encryptGids = require('./apis/auth/encryptGids.cjs');
|
|
47
49
|
var endVoiceCall = require('./apis/call/endVoiceCall.cjs');
|
|
50
|
+
var exportSession = require('./apis/auth/exportSession.cjs');
|
|
48
51
|
var fetchAccountInfo = require('./apis/profile/fetchAccountInfo.cjs');
|
|
49
52
|
var findUser = require('./apis/friend/findUser.cjs');
|
|
50
53
|
var findUserByUsername = require('./apis/friend/findUserByUsername.cjs');
|
|
@@ -68,6 +71,8 @@ var getCloudViewerKey = require('./apis/zcloud/getCloudViewerKey.cjs');
|
|
|
68
71
|
var getContext = require('./apis/auth/getContext.cjs');
|
|
69
72
|
var getConversationMedia = require('./apis/media/getConversationMedia.cjs');
|
|
70
73
|
var getCookie = require('./apis/auth/getCookie.cjs');
|
|
74
|
+
var getDirectMessageStatus = require('./apis/chat/getDirectMessageStatus.cjs');
|
|
75
|
+
var getE2eeGroupList = require('./apis/group/getE2eeGroupList.cjs');
|
|
71
76
|
var getEmojiStatusConfig = require('./apis/profile/getEmojiStatusConfig.cjs');
|
|
72
77
|
var getExtraFriendInfo = require('./apis/friend/getExtraFriendInfo.cjs');
|
|
73
78
|
var getExtraGroupInfo = require('./apis/group/getExtraGroupInfo.cjs');
|
|
@@ -76,19 +81,26 @@ var getFamilyUsage = require('./apis/zcloud/getFamilyUsage.cjs');
|
|
|
76
81
|
var getFamilyViewerKey = require('./apis/zcloud/getFamilyViewerKey.cjs');
|
|
77
82
|
var getFriendBoardList = require('./apis/friend/getFriendBoardList.cjs');
|
|
78
83
|
var getFriendOnlines = require('./apis/friend/getFriendOnlines.cjs');
|
|
84
|
+
var getFriendProfilesV2 = require('./apis/friend/getFriendProfilesV2.cjs');
|
|
79
85
|
var getFriendRecommendations = require('./apis/friend/getFriendRecommendations.cjs');
|
|
80
86
|
var getFriendRequestStatus = require('./apis/friend/getFriendRequestStatus.cjs');
|
|
87
|
+
var getFriendsActivePCWeb = require('./apis/friend/getFriendsActivePCWeb.cjs');
|
|
81
88
|
var getFriendsEmojiStatus = require('./apis/friend/getFriendsEmojiStatus.cjs');
|
|
82
89
|
var getFullAvatar = require('./apis/profile/getFullAvatar.cjs');
|
|
83
90
|
var getGroupBlockedMember = require('./apis/group/getGroupBlockedMember.cjs');
|
|
84
91
|
var getGroupChatHistory = require('./apis/group/getGroupChatHistory.cjs');
|
|
85
92
|
var getGroupCloudMessageJump = require('./apis/group/getGroupCloudMessageJump.cjs');
|
|
93
|
+
var getGroupCloudMessagePath = require('./apis/group/getGroupCloudMessagePath.cjs');
|
|
94
|
+
var getGroupHistoryLegacy = require('./apis/group/getGroupHistoryLegacy.cjs');
|
|
86
95
|
var getGroupInfo = require('./apis/group/getGroupInfo.cjs');
|
|
96
|
+
var getGroupInfoV2 = require('./apis/group/getGroupInfoV2.cjs');
|
|
87
97
|
var getGroupInviteBoxInfo = require('./apis/group/getGroupInviteBoxInfo.cjs');
|
|
88
98
|
var getGroupInviteBoxList = require('./apis/group/getGroupInviteBoxList.cjs');
|
|
89
99
|
var getGroupLinkDetail = require('./apis/group/getGroupLinkDetail.cjs');
|
|
90
100
|
var getGroupLinkInfo = require('./apis/group/getGroupLinkInfo.cjs');
|
|
101
|
+
var getGroupListV3 = require('./apis/group/getGroupListV3.cjs');
|
|
91
102
|
var getGroupMembersInfo = require('./apis/group/getGroupMembersInfo.cjs');
|
|
103
|
+
var getGroupMessageStatus = require('./apis/group/getGroupMessageStatus.cjs');
|
|
92
104
|
var getHiddenConversations = require('./apis/chat/getHiddenConversations.cjs');
|
|
93
105
|
var getLabels = require('./apis/business/getLabels.cjs');
|
|
94
106
|
var getLastReadContactTab = require('./apis/friend/getLastReadContactTab.cjs');
|
|
@@ -102,12 +114,15 @@ var getListPinTopics = require('./apis/board/getListPinTopics.cjs');
|
|
|
102
114
|
var getListReminder = require('./apis/board/getListReminder.cjs');
|
|
103
115
|
var getMediaStorePreview = require('./apis/media/getMediaStorePreview.cjs');
|
|
104
116
|
var getMiniProfile = require('./apis/profile/getMiniProfile.cjs');
|
|
117
|
+
var getMultiGroupCloudMessages = require('./apis/group/getMultiGroupCloudMessages.cjs');
|
|
105
118
|
var getMultiUsersByPhones = require('./apis/friend/getMultiUsersByPhones.cjs');
|
|
106
119
|
var getMute = require('./apis/chat/getMute.cjs');
|
|
107
120
|
var getNoisedIds = require('./apis/auth/getNoisedIds.cjs');
|
|
108
121
|
var getOwnId = require('./apis/auth/getOwnId.cjs');
|
|
109
122
|
var getPendingGroupMembers = require('./apis/group/getPendingGroupMembers.cjs');
|
|
110
123
|
var getPersonalizedStickerList = require('./apis/sticker/getPersonalizedStickerList.cjs');
|
|
124
|
+
var getPersonalMedia = require('./apis/media/getPersonalMedia.cjs');
|
|
125
|
+
var getPersonalMediaPreview = require('./apis/media/getPersonalMediaPreview.cjs');
|
|
111
126
|
var getPhonebookV2 = require('./apis/friend/getPhonebookV2.cjs');
|
|
112
127
|
var getPinConversations = require('./apis/chat/getPinConversations.cjs');
|
|
113
128
|
var getPollDetail = require('./apis/board/getPollDetail.cjs');
|
|
@@ -131,6 +146,7 @@ var getStickers = require('./apis/sticker/getStickers.cjs');
|
|
|
131
146
|
var getStickersDetail = require('./apis/sticker/getStickersDetail.cjs');
|
|
132
147
|
var getStickerSuggestion = require('./apis/sticker/getStickerSuggestion.cjs');
|
|
133
148
|
var getStickerSuggestKeywords = require('./apis/sticker/getStickerSuggestKeywords.cjs');
|
|
149
|
+
var getSuggestedConversations = require('./apis/chat/getSuggestedConversations.cjs');
|
|
134
150
|
var getSyncData = require('./apis/sync/getSyncData.cjs');
|
|
135
151
|
var getUnreadMark = require('./apis/chat/getUnreadMark.cjs');
|
|
136
152
|
var getUsageMyCloud = require('./apis/zcloud/getUsageMyCloud.cjs');
|
|
@@ -155,6 +171,7 @@ var removeFriend = require('./apis/friend/removeFriend.cjs');
|
|
|
155
171
|
var removeFriendAlias = require('./apis/friend/removeFriendAlias.cjs');
|
|
156
172
|
var removeGroupBlockedMember = require('./apis/group/removeGroupBlockedMember.cjs');
|
|
157
173
|
var removeGroupDeputy = require('./apis/group/removeGroupDeputy.cjs');
|
|
174
|
+
var removePersonalMedia = require('./apis/media/removePersonalMedia.cjs');
|
|
158
175
|
var removeQuickMessage = require('./apis/business/removeQuickMessage.cjs');
|
|
159
176
|
var removeReminder = require('./apis/board/removeReminder.cjs');
|
|
160
177
|
var removeUnreadMark = require('./apis/chat/removeUnreadMark.cjs');
|
|
@@ -196,6 +213,7 @@ var updateGroupSettings = require('./apis/group/updateGroupSettings.cjs');
|
|
|
196
213
|
var updateHiddenConversPin = require('./apis/chat/updateHiddenConversPin.cjs');
|
|
197
214
|
var updateLabels = require('./apis/business/updateLabels.cjs');
|
|
198
215
|
var updateLang = require('./apis/auth/updateLang.cjs');
|
|
216
|
+
var updatePinConversations = require('./apis/chat/updatePinConversations.cjs');
|
|
199
217
|
var updateProductCatalog = require('./apis/business/updateProductCatalog.cjs');
|
|
200
218
|
var updateProfile = require('./apis/profile/updateProfile.cjs');
|
|
201
219
|
var updateProfileBio = require('./apis/profile/updateProfileBio.cjs');
|
|
@@ -206,6 +224,7 @@ var upgradeGroupToCommunity = require('./apis/group/upgradeGroupToCommunity.cjs'
|
|
|
206
224
|
var uploadAttachment = require('./apis/media/uploadAttachment.cjs');
|
|
207
225
|
var uploadProductPhoto = require('./apis/business/uploadProductPhoto.cjs');
|
|
208
226
|
var verifyCloudMedia = require('./apis/zcloud/verifyCloudMedia.cjs');
|
|
227
|
+
var verifyFriend = require('./apis/friend/verifyFriend.cjs');
|
|
209
228
|
var voiceToText = require('./apis/media/voiceToText.cjs');
|
|
210
229
|
var votePoll = require('./apis/board/votePoll.cjs');
|
|
211
230
|
var custom = require('./apis/custom.cjs');
|
|
@@ -231,6 +250,7 @@ class API {
|
|
|
231
250
|
const createNamespace = (api) => ({
|
|
232
251
|
get decryptGids() { return api.decryptGids; },
|
|
233
252
|
get encryptGids() { return api.encryptGids; },
|
|
253
|
+
get exportSession() { return api.exportSession; },
|
|
234
254
|
get getContext() { return api.getContext; },
|
|
235
255
|
get getCookie() { return api.getCookie; },
|
|
236
256
|
get getListDevice() { return api.getListDevice; },
|
|
@@ -326,12 +346,14 @@ class API {
|
|
|
326
346
|
get forwardMessage() { return api.forwardMessage; },
|
|
327
347
|
get getArchivedChatList() { return api.getArchivedChatList; },
|
|
328
348
|
get getAutoDeleteChat() { return api.getAutoDeleteChat; },
|
|
349
|
+
get getDirectMessageStatus() { return api.getDirectMessageStatus; },
|
|
329
350
|
get getHiddenConversations() { return api.getHiddenConversations; },
|
|
330
351
|
get getLastSeen() { return api.getLastSeen; },
|
|
331
352
|
get getLastSeenReaction() { return api.getLastSeenReaction; },
|
|
332
353
|
get getMute() { return api.getMute; },
|
|
333
354
|
get getPinConversations() { return api.getPinConversations; },
|
|
334
355
|
get getRecentSearchList() { return api.getRecentSearchList; },
|
|
356
|
+
get getSuggestedConversations() { return api.getSuggestedConversations; },
|
|
335
357
|
get getUnreadMark() { return api.getUnreadMark; },
|
|
336
358
|
get parseLink() { return api.parseLink; },
|
|
337
359
|
get preloadConversations() { return api.preloadConversations; },
|
|
@@ -356,6 +378,7 @@ class API {
|
|
|
356
378
|
get updateArchivedChatList() { return api.updateArchivedChatList; },
|
|
357
379
|
get updateAutoDeleteChat() { return api.updateAutoDeleteChat; },
|
|
358
380
|
get updateHiddenConversPin() { return api.updateHiddenConversPin; },
|
|
381
|
+
get updatePinConversations() { return api.updatePinConversations; },
|
|
359
382
|
get updateRecentSearch() { return api.updateRecentSearch; },
|
|
360
383
|
});
|
|
361
384
|
this._domains.chat = createNamespace(this);
|
|
@@ -380,8 +403,10 @@ class API {
|
|
|
380
403
|
get getExtraFriendInfo() { return api.getExtraFriendInfo; },
|
|
381
404
|
get getFriendBoardList() { return api.getFriendBoardList; },
|
|
382
405
|
get getFriendOnlines() { return api.getFriendOnlines; },
|
|
406
|
+
get getFriendProfilesV2() { return api.getFriendProfilesV2; },
|
|
383
407
|
get getFriendRecommendations() { return api.getFriendRecommendations; },
|
|
384
408
|
get getFriendRequestStatus() { return api.getFriendRequestStatus; },
|
|
409
|
+
get getFriendsActivePCWeb() { return api.getFriendsActivePCWeb; },
|
|
385
410
|
get getFriendsEmojiStatus() { return api.getFriendsEmojiStatus; },
|
|
386
411
|
get getLastReadContactTab() { return api.getLastReadContactTab; },
|
|
387
412
|
get getMultiUsersByPhones() { return api.getMultiUsersByPhones; },
|
|
@@ -395,6 +420,7 @@ class API {
|
|
|
395
420
|
get sendFriendRequest() { return api.sendFriendRequest; },
|
|
396
421
|
get unblockUser() { return api.unblockUser; },
|
|
397
422
|
get undoFriendRequest() { return api.undoFriendRequest; },
|
|
423
|
+
get verifyFriend() { return api.verifyFriend; },
|
|
398
424
|
});
|
|
399
425
|
this._domains.friend = createNamespace(this);
|
|
400
426
|
}
|
|
@@ -406,25 +432,34 @@ class API {
|
|
|
406
432
|
get addGroupBlockedMember() { return api.addGroupBlockedMember; },
|
|
407
433
|
get addGroupDeputy() { return api.addGroupDeputy; },
|
|
408
434
|
get addUserToGroup() { return api.addUserToGroup; },
|
|
435
|
+
get analyseGroup() { return api.analyseGroup; },
|
|
409
436
|
get changeGroupAvatar() { return api.changeGroupAvatar; },
|
|
410
437
|
get changeGroupName() { return api.changeGroupName; },
|
|
411
438
|
get changeGroupOwner() { return api.changeGroupOwner; },
|
|
439
|
+
get checkQuotaCommunityMember() { return api.checkQuotaCommunityMember; },
|
|
412
440
|
get createGroup() { return api.createGroup; },
|
|
413
441
|
get deleteGroupInviteBox() { return api.deleteGroupInviteBox; },
|
|
414
442
|
get disableGroupLink() { return api.disableGroupLink; },
|
|
415
443
|
get disperseGroup() { return api.disperseGroup; },
|
|
416
444
|
get enableGroupLink() { return api.enableGroupLink; },
|
|
417
445
|
get getAllGroups() { return api.getAllGroups; },
|
|
446
|
+
get getE2eeGroupList() { return api.getE2eeGroupList; },
|
|
418
447
|
get getExtraGroupInfo() { return api.getExtraGroupInfo; },
|
|
419
448
|
get getGroupBlockedMember() { return api.getGroupBlockedMember; },
|
|
420
449
|
get getGroupChatHistory() { return api.getGroupChatHistory; },
|
|
421
450
|
get getGroupCloudMessageJump() { return api.getGroupCloudMessageJump; },
|
|
451
|
+
get getGroupCloudMessagePath() { return api.getGroupCloudMessagePath; },
|
|
452
|
+
get getGroupHistoryLegacy() { return api.getGroupHistoryLegacy; },
|
|
422
453
|
get getGroupInfo() { return api.getGroupInfo; },
|
|
454
|
+
get getGroupInfoV2() { return api.getGroupInfoV2; },
|
|
423
455
|
get getGroupInviteBoxInfo() { return api.getGroupInviteBoxInfo; },
|
|
424
456
|
get getGroupInviteBoxList() { return api.getGroupInviteBoxList; },
|
|
425
457
|
get getGroupLinkDetail() { return api.getGroupLinkDetail; },
|
|
426
458
|
get getGroupLinkInfo() { return api.getGroupLinkInfo; },
|
|
459
|
+
get getGroupListV3() { return api.getGroupListV3; },
|
|
427
460
|
get getGroupMembersInfo() { return api.getGroupMembersInfo; },
|
|
461
|
+
get getGroupMessageStatus() { return api.getGroupMessageStatus; },
|
|
462
|
+
get getMultiGroupCloudMessages() { return api.getMultiGroupCloudMessages; },
|
|
428
463
|
get getPendingGroupMembers() { return api.getPendingGroupMembers; },
|
|
429
464
|
get getQuotaCommunity() { return api.getQuotaCommunity; },
|
|
430
465
|
get getRelatedFriendGroup() { return api.getRelatedFriendGroup; },
|
|
@@ -448,7 +483,10 @@ class API {
|
|
|
448
483
|
const createNamespace = (api) => ({
|
|
449
484
|
get getConversationMedia() { return api.getConversationMedia; },
|
|
450
485
|
get getMediaStorePreview() { return api.getMediaStorePreview; },
|
|
486
|
+
get getPersonalMedia() { return api.getPersonalMedia; },
|
|
487
|
+
get getPersonalMediaPreview() { return api.getPersonalMediaPreview; },
|
|
451
488
|
get removeConversationMedia() { return api.removeConversationMedia; },
|
|
489
|
+
get removePersonalMedia() { return api.removePersonalMedia; },
|
|
452
490
|
get uploadAttachment() { return api.uploadAttachment; },
|
|
453
491
|
get voiceToText() { return api.voiceToText; },
|
|
454
492
|
});
|
|
@@ -555,6 +593,9 @@ class API {
|
|
|
555
593
|
get addUserToGroup() {
|
|
556
594
|
return (this._cache.addUserToGroup ??= addUserToGroup.addUserToGroupFactory(this.ctx, this));
|
|
557
595
|
}
|
|
596
|
+
get analyseGroup() {
|
|
597
|
+
return (this._cache.analyseGroup ??= analyseGroup.analyseGroupFactory(this.ctx, this));
|
|
598
|
+
}
|
|
558
599
|
get blockUser() {
|
|
559
600
|
return (this._cache.blockUser ??= blockUser.blockUserFactory(this.ctx, this));
|
|
560
601
|
}
|
|
@@ -582,6 +623,9 @@ class API {
|
|
|
582
623
|
get changeGroupOwner() {
|
|
583
624
|
return (this._cache.changeGroupOwner ??= changeGroupOwner.changeGroupOwnerFactory(this.ctx, this));
|
|
584
625
|
}
|
|
626
|
+
get checkQuotaCommunityMember() {
|
|
627
|
+
return (this._cache.checkQuotaCommunityMember ??= checkQuotaCommunityMember.checkQuotaCommunityMemberFactory(this.ctx, this));
|
|
628
|
+
}
|
|
585
629
|
get clearUnreadFriendRequests() {
|
|
586
630
|
return (this._cache.clearUnreadFriendRequests ??= clearUnreadFriendRequests.clearUnreadFriendRequestsFactory(this.ctx, this));
|
|
587
631
|
}
|
|
@@ -660,6 +704,9 @@ class API {
|
|
|
660
704
|
get endVoiceCall() {
|
|
661
705
|
return (this._cache.endVoiceCall ??= endVoiceCall.endVoiceCallFactory(this.ctx, this));
|
|
662
706
|
}
|
|
707
|
+
get exportSession() {
|
|
708
|
+
return (this._cache.exportSession ??= exportSession.exportSessionFactory(this.ctx, this));
|
|
709
|
+
}
|
|
663
710
|
get fetchAccountInfo() {
|
|
664
711
|
return (this._cache.fetchAccountInfo ??= fetchAccountInfo.fetchAccountInfoFactory(this.ctx, this));
|
|
665
712
|
}
|
|
@@ -729,6 +776,12 @@ class API {
|
|
|
729
776
|
get getCookie() {
|
|
730
777
|
return (this._cache.getCookie ??= getCookie.getCookieFactory(this.ctx, this));
|
|
731
778
|
}
|
|
779
|
+
get getDirectMessageStatus() {
|
|
780
|
+
return (this._cache.getDirectMessageStatus ??= getDirectMessageStatus.getDirectMessageStatusFactory(this.ctx, this));
|
|
781
|
+
}
|
|
782
|
+
get getE2eeGroupList() {
|
|
783
|
+
return (this._cache.getE2eeGroupList ??= getE2eeGroupList.getE2eeGroupListFactory(this.ctx, this));
|
|
784
|
+
}
|
|
732
785
|
get getEmojiStatusConfig() {
|
|
733
786
|
return (this._cache.getEmojiStatusConfig ??= getEmojiStatusConfig.getEmojiStatusConfigFactory(this.ctx, this));
|
|
734
787
|
}
|
|
@@ -753,12 +806,18 @@ class API {
|
|
|
753
806
|
get getFriendOnlines() {
|
|
754
807
|
return (this._cache.getFriendOnlines ??= getFriendOnlines.getFriendOnlinesFactory(this.ctx, this));
|
|
755
808
|
}
|
|
809
|
+
get getFriendProfilesV2() {
|
|
810
|
+
return (this._cache.getFriendProfilesV2 ??= getFriendProfilesV2.getFriendProfilesV2Factory(this.ctx, this));
|
|
811
|
+
}
|
|
756
812
|
get getFriendRecommendations() {
|
|
757
813
|
return (this._cache.getFriendRecommendations ??= getFriendRecommendations.getFriendRecommendationsFactory(this.ctx, this));
|
|
758
814
|
}
|
|
759
815
|
get getFriendRequestStatus() {
|
|
760
816
|
return (this._cache.getFriendRequestStatus ??= getFriendRequestStatus.getFriendRequestStatusFactory(this.ctx, this));
|
|
761
817
|
}
|
|
818
|
+
get getFriendsActivePCWeb() {
|
|
819
|
+
return (this._cache.getFriendsActivePCWeb ??= getFriendsActivePCWeb.getFriendsActivePCWebFactory(this.ctx, this));
|
|
820
|
+
}
|
|
762
821
|
get getFriendsEmojiStatus() {
|
|
763
822
|
return (this._cache.getFriendsEmojiStatus ??= getFriendsEmojiStatus.getFriendsEmojiStatusFactory(this.ctx, this));
|
|
764
823
|
}
|
|
@@ -774,9 +833,18 @@ class API {
|
|
|
774
833
|
get getGroupCloudMessageJump() {
|
|
775
834
|
return (this._cache.getGroupCloudMessageJump ??= getGroupCloudMessageJump.getGroupCloudMessageJumpFactory(this.ctx, this));
|
|
776
835
|
}
|
|
836
|
+
get getGroupCloudMessagePath() {
|
|
837
|
+
return (this._cache.getGroupCloudMessagePath ??= getGroupCloudMessagePath.getGroupCloudMessagePathFactory(this.ctx, this));
|
|
838
|
+
}
|
|
839
|
+
get getGroupHistoryLegacy() {
|
|
840
|
+
return (this._cache.getGroupHistoryLegacy ??= getGroupHistoryLegacy.getGroupHistoryLegacyFactory(this.ctx, this));
|
|
841
|
+
}
|
|
777
842
|
get getGroupInfo() {
|
|
778
843
|
return (this._cache.getGroupInfo ??= getGroupInfo.getGroupInfoFactory(this.ctx, this));
|
|
779
844
|
}
|
|
845
|
+
get getGroupInfoV2() {
|
|
846
|
+
return (this._cache.getGroupInfoV2 ??= getGroupInfoV2.getGroupInfoV2Factory(this.ctx, this));
|
|
847
|
+
}
|
|
780
848
|
get getGroupInviteBoxInfo() {
|
|
781
849
|
return (this._cache.getGroupInviteBoxInfo ??= getGroupInviteBoxInfo.getGroupInviteBoxInfoFactory(this.ctx, this));
|
|
782
850
|
}
|
|
@@ -789,9 +857,15 @@ class API {
|
|
|
789
857
|
get getGroupLinkInfo() {
|
|
790
858
|
return (this._cache.getGroupLinkInfo ??= getGroupLinkInfo.getGroupLinkInfoFactory(this.ctx, this));
|
|
791
859
|
}
|
|
860
|
+
get getGroupListV3() {
|
|
861
|
+
return (this._cache.getGroupListV3 ??= getGroupListV3.getGroupListV3Factory(this.ctx, this));
|
|
862
|
+
}
|
|
792
863
|
get getGroupMembersInfo() {
|
|
793
864
|
return (this._cache.getGroupMembersInfo ??= getGroupMembersInfo.getGroupMembersInfoFactory(this.ctx, this));
|
|
794
865
|
}
|
|
866
|
+
get getGroupMessageStatus() {
|
|
867
|
+
return (this._cache.getGroupMessageStatus ??= getGroupMessageStatus.getGroupMessageStatusFactory(this.ctx, this));
|
|
868
|
+
}
|
|
795
869
|
get getHiddenConversations() {
|
|
796
870
|
return (this._cache.getHiddenConversations ??= getHiddenConversations.getHiddenConversationsFactory(this.ctx, this));
|
|
797
871
|
}
|
|
@@ -831,6 +905,9 @@ class API {
|
|
|
831
905
|
get getMiniProfile() {
|
|
832
906
|
return (this._cache.getMiniProfile ??= getMiniProfile.getMiniProfileFactory(this.ctx, this));
|
|
833
907
|
}
|
|
908
|
+
get getMultiGroupCloudMessages() {
|
|
909
|
+
return (this._cache.getMultiGroupCloudMessages ??= getMultiGroupCloudMessages.getMultiGroupCloudMessagesFactory(this.ctx, this));
|
|
910
|
+
}
|
|
834
911
|
get getMultiUsersByPhones() {
|
|
835
912
|
return (this._cache.getMultiUsersByPhones ??= getMultiUsersByPhones.getMultiUsersByPhonesFactory(this.ctx, this));
|
|
836
913
|
}
|
|
@@ -849,6 +926,12 @@ class API {
|
|
|
849
926
|
get getPersonalizedStickerList() {
|
|
850
927
|
return (this._cache.getPersonalizedStickerList ??= getPersonalizedStickerList.getPersonalizedStickerListFactory(this.ctx, this));
|
|
851
928
|
}
|
|
929
|
+
get getPersonalMedia() {
|
|
930
|
+
return (this._cache.getPersonalMedia ??= getPersonalMedia.getPersonalMediaFactory(this.ctx, this));
|
|
931
|
+
}
|
|
932
|
+
get getPersonalMediaPreview() {
|
|
933
|
+
return (this._cache.getPersonalMediaPreview ??= getPersonalMediaPreview.getPersonalMediaPreviewFactory(this.ctx, this));
|
|
934
|
+
}
|
|
852
935
|
get getPhonebookV2() {
|
|
853
936
|
return (this._cache.getPhonebookV2 ??= getPhonebookV2.getPhonebookV2Factory(this.ctx, this));
|
|
854
937
|
}
|
|
@@ -918,6 +1001,9 @@ class API {
|
|
|
918
1001
|
get getStickerSuggestKeywords() {
|
|
919
1002
|
return (this._cache.getStickerSuggestKeywords ??= getStickerSuggestKeywords.getStickerSuggestKeywordsFactory(this.ctx, this));
|
|
920
1003
|
}
|
|
1004
|
+
get getSuggestedConversations() {
|
|
1005
|
+
return (this._cache.getSuggestedConversations ??= getSuggestedConversations.getSuggestedConversationsFactory(this.ctx, this));
|
|
1006
|
+
}
|
|
921
1007
|
get getSyncData() {
|
|
922
1008
|
return (this._cache.getSyncData ??= getSyncData.getSyncDataFactory(this.ctx, this));
|
|
923
1009
|
}
|
|
@@ -990,6 +1076,9 @@ class API {
|
|
|
990
1076
|
get removeGroupDeputy() {
|
|
991
1077
|
return (this._cache.removeGroupDeputy ??= removeGroupDeputy.removeGroupDeputyFactory(this.ctx, this));
|
|
992
1078
|
}
|
|
1079
|
+
get removePersonalMedia() {
|
|
1080
|
+
return (this._cache.removePersonalMedia ??= removePersonalMedia.removePersonalMediaFactory(this.ctx, this));
|
|
1081
|
+
}
|
|
993
1082
|
get removeQuickMessage() {
|
|
994
1083
|
return (this._cache.removeQuickMessage ??= removeQuickMessage.removeQuickMessageFactory(this.ctx, this));
|
|
995
1084
|
}
|
|
@@ -1113,6 +1202,9 @@ class API {
|
|
|
1113
1202
|
get updateLang() {
|
|
1114
1203
|
return (this._cache.updateLang ??= updateLang.updateLangFactory(this.ctx, this));
|
|
1115
1204
|
}
|
|
1205
|
+
get updatePinConversations() {
|
|
1206
|
+
return (this._cache.updatePinConversations ??= updatePinConversations.updatePinConversationsFactory(this.ctx, this));
|
|
1207
|
+
}
|
|
1116
1208
|
get updateProductCatalog() {
|
|
1117
1209
|
return (this._cache.updateProductCatalog ??= updateProductCatalog.updateProductCatalogFactory(this.ctx, this));
|
|
1118
1210
|
}
|
|
@@ -1143,6 +1235,9 @@ class API {
|
|
|
1143
1235
|
get verifyCloudMedia() {
|
|
1144
1236
|
return (this._cache.verifyCloudMedia ??= verifyCloudMedia.verifyCloudMediaFactory(this.ctx, this));
|
|
1145
1237
|
}
|
|
1238
|
+
get verifyFriend() {
|
|
1239
|
+
return (this._cache.verifyFriend ??= verifyFriend.verifyFriendFactory(this.ctx, this));
|
|
1240
|
+
}
|
|
1146
1241
|
get voiceToText() {
|
|
1147
1242
|
return (this._cache.voiceToText ??= voiceToText.voiceToTextFactory(this.ctx, this));
|
|
1148
1243
|
}
|
|
@@ -66,6 +66,19 @@ const ZALO_ENDPOINTS = {
|
|
|
66
66
|
LIST: "/api/recentsearch/list",
|
|
67
67
|
UPDATE: "/api/recentsearch/update",
|
|
68
68
|
},
|
|
69
|
+
GROUP: {
|
|
70
|
+
GET_LIST_V3: "/api/group/getlg/v3",
|
|
71
|
+
GET_LIST_V4: "/api/group/getlg/v4",
|
|
72
|
+
GET_INFO_V1: "/api/group/getgi",
|
|
73
|
+
GET_INFO_V2: "/api/group/getgi/v2",
|
|
74
|
+
GET_MULTI_INFO_V1: "/api/group/getmg",
|
|
75
|
+
GET_MULTI_INFO_V2: "/api/group/getmg-v2",
|
|
76
|
+
GET_STATUS_MSG: "/api/group/getStatusMsg",
|
|
77
|
+
HISTORY_LEGACY: "/api/group/history",
|
|
78
|
+
CLOUD_MSG_RECENT_V2: "/api/cm/getrecentv2",
|
|
79
|
+
CLOUD_MSG_OLD_V2: "/api/cm/getoldv2",
|
|
80
|
+
CLOUD_MSG_JUMP_V2: "/api/cm/rgetv2",
|
|
81
|
+
},
|
|
69
82
|
};
|
|
70
83
|
|
|
71
84
|
exports.ZALO_ENDPOINTS = ZALO_ENDPOINTS;
|
|
@@ -12,7 +12,7 @@ const ZALO_PROTOCOL = {
|
|
|
12
12
|
API_VERSION: 689,
|
|
13
13
|
DEFAULT_API_VERSION: 689,
|
|
14
14
|
/** Phiên bản SDK hiện tại */
|
|
15
|
-
SDK_VERSION: "2.3.
|
|
15
|
+
SDK_VERSION: "2.3.4",
|
|
16
16
|
/** Mã zpw_type đặc thù dành riêng cho phân hệ Gọi Thoại & Video (binary C++ ZaloCall) */
|
|
17
17
|
VOICECALL_API_TYPE: 24,
|
|
18
18
|
/** Phiên bản mã hóa ZCID (ParamDecryptor) */
|
package/dist/cjs/context.cjs
CHANGED
|
@@ -5,15 +5,32 @@ var defaults = require('./constants/defaults.cjs');
|
|
|
5
5
|
|
|
6
6
|
const _5_MINUTES = defaults.ZALO_DEFAULTS.UPLOAD.CALLBACK_TTL_MS;
|
|
7
7
|
class CallbacksMap extends Map {
|
|
8
|
+
timers = new Map();
|
|
8
9
|
/**
|
|
9
10
|
* @param ttl Time to live in milliseconds. Default is 5 minutes.
|
|
10
11
|
*/
|
|
11
12
|
set(key, value, ttl = _5_MINUTES) {
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
const existing = this.timers.get(key);
|
|
14
|
+
if (existing)
|
|
15
|
+
clearTimeout(existing);
|
|
16
|
+
const timer = setTimeout(() => {
|
|
17
|
+
this.timers.delete(key);
|
|
18
|
+
super.delete(key);
|
|
14
19
|
}, ttl);
|
|
20
|
+
if (typeof timer === "object" && timer !== null && "unref" in timer && typeof timer.unref === "function") {
|
|
21
|
+
timer.unref();
|
|
22
|
+
}
|
|
23
|
+
this.timers.set(key, timer);
|
|
15
24
|
return super.set(key, value);
|
|
16
25
|
}
|
|
26
|
+
delete(key) {
|
|
27
|
+
const existing = this.timers.get(key);
|
|
28
|
+
if (existing) {
|
|
29
|
+
clearTimeout(existing);
|
|
30
|
+
this.timers.delete(key);
|
|
31
|
+
}
|
|
32
|
+
return super.delete(key);
|
|
33
|
+
}
|
|
17
34
|
}
|
|
18
35
|
const createContext = (apiType = protocol.ZALO_PROTOCOL.API_TYPE, apiVersion = protocol.ZALO_PROTOCOL.API_VERSION) => ({
|
|
19
36
|
API_TYPE: apiType,
|
|
@@ -24,6 +41,7 @@ const createContext = (apiType = protocol.ZALO_PROTOCOL.API_TYPE, apiVersion = p
|
|
|
24
41
|
checkUpdate: defaults.ZALO_DEFAULTS.OPTIONS.CHECK_UPDATE,
|
|
25
42
|
logging: defaults.ZALO_DEFAULTS.OPTIONS.LOGGING,
|
|
26
43
|
polyfill: global.fetch,
|
|
44
|
+
requestTimeout: 30000,
|
|
27
45
|
},
|
|
28
46
|
secretKey: null,
|
|
29
47
|
});
|
|
@@ -4,8 +4,7 @@ var ZaloApiError = require('../Errors/ZaloApiError.cjs');
|
|
|
4
4
|
require('crypto-js');
|
|
5
5
|
require('node:crypto');
|
|
6
6
|
var zcloudCipher = require('../crypto/zcloud-cipher.cjs');
|
|
7
|
-
require('
|
|
8
|
-
require('json-bigint');
|
|
7
|
+
require('../crypto/ws-cipher.cjs');
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* Thực thi request tới hệ sinh thái ZCloud (`zcld.chat.zalo.me`) kèm cơ chế:
|
|
@@ -5,6 +5,68 @@ var pako = require('pako');
|
|
|
5
5
|
var JSONBig = require('json-bigint');
|
|
6
6
|
var ZaloApiError = require('../Errors/ZaloApiError.cjs');
|
|
7
7
|
|
|
8
|
+
const jsonBigString = JSONBig({ storeAsString: true });
|
|
9
|
+
const DEFAULT_BIGINT_ID_FIELDS = [
|
|
10
|
+
"owner_id",
|
|
11
|
+
"group_id",
|
|
12
|
+
"uidFrom",
|
|
13
|
+
"uidTo",
|
|
14
|
+
"uid",
|
|
15
|
+
"ownerId",
|
|
16
|
+
"destId",
|
|
17
|
+
"srcId",
|
|
18
|
+
"fromUid",
|
|
19
|
+
"threadId",
|
|
20
|
+
"globalMsgId",
|
|
21
|
+
"global_msg_id",
|
|
22
|
+
"globalDelMsgId",
|
|
23
|
+
"msgId",
|
|
24
|
+
"refMessageId",
|
|
25
|
+
"cliMsgId",
|
|
26
|
+
"client_msg_id",
|
|
27
|
+
"actionId",
|
|
28
|
+
"lastActionIdOther",
|
|
29
|
+
"lastActionId",
|
|
30
|
+
"resetLastActionId",
|
|
31
|
+
"lastId",
|
|
32
|
+
"ids",
|
|
33
|
+
"topicId",
|
|
34
|
+
"reminderId",
|
|
35
|
+
"eventId",
|
|
36
|
+
];
|
|
37
|
+
/**
|
|
38
|
+
* Tiền xử lý chuỗi JSON trước khi `JSON.parse` (tương đương `preParse(e, t)` trong `app.asar` của Zalo PC).
|
|
39
|
+
* Bọc dấu ngoặc kép quanh các trường định danh 64-bit (`owner_id`, `group_id`, hoặc các số nguyên >= 16 chữ số
|
|
40
|
+
* vượt quá `Number.MAX_SAFE_INTEGER`) để tránh mất 3 chữ số cuối của UID/MsgId do làm tròn IEEE-754.
|
|
41
|
+
*/
|
|
42
|
+
function preParseJsonIds(jsonStr, alwaysStringFields = ["owner_id", "group_id"], bigIntSafeFields = DEFAULT_BIGINT_ID_FIELDS) {
|
|
43
|
+
if (!jsonStr || typeof jsonStr !== "string")
|
|
44
|
+
return jsonStr;
|
|
45
|
+
const alwaysSet = new Set(alwaysStringFields);
|
|
46
|
+
const allFields = Array.from(new Set([...alwaysStringFields, ...bigIntSafeFields]));
|
|
47
|
+
if (allFields.length === 0)
|
|
48
|
+
return jsonStr;
|
|
49
|
+
const escapedKeys = allFields.map((k) => k.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|");
|
|
50
|
+
const keyValueRegex = new RegExp(`"(${escapedKeys})"(\\s*:\\s*)(\\d+|\\[\\s*\\d+(?:\\s*,\\s*\\d+)*\\s*\\])`, "g");
|
|
51
|
+
return jsonStr.replace(keyValueRegex, (fullMatch, key, sep, rawVal) => {
|
|
52
|
+
const forceString = alwaysSet.has(key);
|
|
53
|
+
if (rawVal.startsWith("[")) {
|
|
54
|
+
const inner = rawVal.slice(1, -1);
|
|
55
|
+
const parts = inner.split(",").map((part) => {
|
|
56
|
+
const trimmed = part.trim();
|
|
57
|
+
if (forceString || trimmed.length >= 16 || Number(trimmed) > Number.MAX_SAFE_INTEGER) {
|
|
58
|
+
return `"${trimmed}"`;
|
|
59
|
+
}
|
|
60
|
+
return trimmed;
|
|
61
|
+
});
|
|
62
|
+
return `"${key}"${sep}[${parts.join(",")}]`;
|
|
63
|
+
}
|
|
64
|
+
if (forceString || rawVal.length >= 16 || Number(rawVal) > Number.MAX_SAFE_INTEGER) {
|
|
65
|
+
return `"${key}"${sep}"${rawVal}"`;
|
|
66
|
+
}
|
|
67
|
+
return fullMatch;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
8
70
|
function decodeBase64ToBuffer(data) {
|
|
9
71
|
return Buffer.from(data, "base64");
|
|
10
72
|
}
|
|
@@ -26,7 +88,7 @@ async function decodeEventData(parsed, cipherKey) {
|
|
|
26
88
|
const rawData = parsed.data;
|
|
27
89
|
const encryptType = parsed.encrypt;
|
|
28
90
|
if (encryptType === 0)
|
|
29
|
-
return
|
|
91
|
+
return jsonBigString.parse(preParseJsonIds(rawData));
|
|
30
92
|
const decodedBuffer = decodeBase64ToBuffer(encryptType === 1 ? rawData : decodeURIComponent(rawData));
|
|
31
93
|
let decryptedBuffer = decodedBuffer;
|
|
32
94
|
if (encryptType !== 1) {
|
|
@@ -51,9 +113,11 @@ async function decodeEventData(parsed, cipherKey) {
|
|
|
51
113
|
const decodedData = decodeUnit8Array(decompressedBuffer);
|
|
52
114
|
if (!decodedData)
|
|
53
115
|
return;
|
|
54
|
-
return
|
|
116
|
+
return jsonBigString.parse(preParseJsonIds(decodedData));
|
|
55
117
|
}
|
|
56
118
|
|
|
119
|
+
exports.DEFAULT_BIGINT_ID_FIELDS = DEFAULT_BIGINT_ID_FIELDS;
|
|
57
120
|
exports.decodeBase64ToBuffer = decodeBase64ToBuffer;
|
|
58
121
|
exports.decodeEventData = decodeEventData;
|
|
59
122
|
exports.decodeUnit8Array = decodeUnit8Array;
|
|
123
|
+
exports.preParseJsonIds = preParseJsonIds;
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -159,9 +159,11 @@ exports.deriveZdbAesKey = zdbCipher.deriveZdbAesKey;
|
|
|
159
159
|
exports.generateRSAKeyPair = zdbCipher.generateRSAKeyPair;
|
|
160
160
|
exports.parseZdbHeader = zdbCipher.parseZdbHeader;
|
|
161
161
|
exports.rsaDecryptPkcs1Manual = zdbCipher.rsaDecryptPkcs1Manual;
|
|
162
|
+
exports.DEFAULT_BIGINT_ID_FIELDS = wsCipher.DEFAULT_BIGINT_ID_FIELDS;
|
|
162
163
|
exports.decodeBase64ToBuffer = wsCipher.decodeBase64ToBuffer;
|
|
163
164
|
exports.decodeEventData = wsCipher.decodeEventData;
|
|
164
165
|
exports.decodeUnit8Array = wsCipher.decodeUnit8Array;
|
|
166
|
+
exports.preParseJsonIds = wsCipher.preParseJsonIds;
|
|
165
167
|
exports.getServiceEndpoint = serviceRouter.getServiceEndpoint;
|
|
166
168
|
exports.getServiceEndpoints = serviceRouter.getServiceEndpoints;
|
|
167
169
|
exports.requestZCloudDecrypted = zcloudClient.requestZCloudDecrypted;
|
|
@@ -43,6 +43,7 @@ class Listener extends EventEmitter {
|
|
|
43
43
|
retryTimeout;
|
|
44
44
|
watchdogTimeout;
|
|
45
45
|
consecutive1006Count = 0;
|
|
46
|
+
isManualStop = false;
|
|
46
47
|
id = 0;
|
|
47
48
|
constructor(ctx, urls) {
|
|
48
49
|
super();
|
|
@@ -168,6 +169,7 @@ class Listener extends EventEmitter {
|
|
|
168
169
|
utils.logger(this.ctx).verbose(`Rotating endpoint to ${this.wsURL}`);
|
|
169
170
|
}
|
|
170
171
|
start({ retryOnClose = false } = {}) {
|
|
172
|
+
this.isManualStop = false;
|
|
171
173
|
if (this.retryTimeout) {
|
|
172
174
|
clearTimeout(this.retryTimeout);
|
|
173
175
|
this.retryTimeout = undefined;
|
|
@@ -191,6 +193,10 @@ class Listener extends EventEmitter {
|
|
|
191
193
|
t: Date.now(),
|
|
192
194
|
});
|
|
193
195
|
const cookie = this.ctx.cookie.getCookieStringSync(domains.ZALO_DOMAINS.CHAT_WEB);
|
|
196
|
+
const wsAgent = this.ctx.options.agent &&
|
|
197
|
+
typeof this.ctx.options.agent.dispatch !== "function"
|
|
198
|
+
? this.ctx.options.agent
|
|
199
|
+
: undefined;
|
|
194
200
|
const ws = new WebSocket(this.wsURL, {
|
|
195
201
|
headers: {
|
|
196
202
|
"accept-language": utils.getBrowserLanguage(this.ctx.language),
|
|
@@ -205,7 +211,7 @@ class Listener extends EventEmitter {
|
|
|
205
211
|
"user-agent": this.userAgent,
|
|
206
212
|
cookie,
|
|
207
213
|
},
|
|
208
|
-
agent:
|
|
214
|
+
...(wsAgent ? { agent: wsAgent } : {}),
|
|
209
215
|
});
|
|
210
216
|
this.ws = ws;
|
|
211
217
|
ws.onopen = () => {
|
|
@@ -218,7 +224,8 @@ class Listener extends EventEmitter {
|
|
|
218
224
|
ws.onclose = (event) => {
|
|
219
225
|
this.reset();
|
|
220
226
|
this.emit("disconnected", event.code, event.reason);
|
|
221
|
-
const retry =
|
|
227
|
+
const retry = !this.isManualStop &&
|
|
228
|
+
retryOnClose &&
|
|
222
229
|
this.isRetryable(event.code) &&
|
|
223
230
|
this.canRetry(event.code);
|
|
224
231
|
if (retry && retryOnClose) {
|
|
@@ -304,19 +311,24 @@ class Listener extends EventEmitter {
|
|
|
304
311
|
};
|
|
305
312
|
}
|
|
306
313
|
stop() {
|
|
307
|
-
|
|
314
|
+
this.isManualStop = true;
|
|
315
|
+
if (this.retryTimeout) {
|
|
308
316
|
clearTimeout(this.retryTimeout);
|
|
309
|
-
|
|
317
|
+
this.retryTimeout = undefined;
|
|
318
|
+
}
|
|
319
|
+
if (this.watchdogTimeout) {
|
|
310
320
|
clearTimeout(this.watchdogTimeout);
|
|
321
|
+
this.watchdogTimeout = undefined;
|
|
322
|
+
}
|
|
311
323
|
if (this.ws) {
|
|
312
|
-
if (this.ws.readyState !== WebSocket.CLOSED) {
|
|
324
|
+
if (this.ws.readyState !== WebSocket.CLOSED && this.ws.readyState !== WebSocket.CLOSING) {
|
|
313
325
|
this.ws.close(types.CloseReason.ManualClosure);
|
|
314
326
|
}
|
|
315
327
|
}
|
|
316
328
|
this.reset();
|
|
317
329
|
}
|
|
318
330
|
sendWs(payload, requireId = true) {
|
|
319
|
-
if (this.ws) {
|
|
331
|
+
if (this.ws && (this.ws.readyState === undefined || this.ws.readyState === WebSocket.OPEN)) {
|
|
320
332
|
if (requireId)
|
|
321
333
|
payload.data["req_id"] = `req_${this.id++}`;
|
|
322
334
|
const encodedData = new TextEncoder().encode(JSON.stringify(payload.data));
|
package/dist/cjs/update.cjs
CHANGED
|
@@ -10,6 +10,9 @@ const NPM_REGISTRY = domains.ZALO_DOMAINS.NPM_REGISTRY;
|
|
|
10
10
|
async function checkUpdate(ctx) {
|
|
11
11
|
if (!ctx.options.checkUpdate)
|
|
12
12
|
return;
|
|
13
|
+
const isAgentUndiciDispatcher = Boolean(ctx.options.agent && typeof ctx.options.agent.dispatch === "function");
|
|
14
|
+
const resolvedDispatcher = ctx.options.dispatcher ?? (isAgentUndiciDispatcher ? ctx.options.agent : undefined);
|
|
15
|
+
const resolvedAgent = ctx.options.agent && !isAgentUndiciDispatcher ? ctx.options.agent : undefined;
|
|
13
16
|
const _options = {
|
|
14
17
|
...(utils.isBun
|
|
15
18
|
? {
|
|
@@ -17,7 +20,13 @@ async function checkUpdate(ctx) {
|
|
|
17
20
|
// @ts-ignore
|
|
18
21
|
proxy: ctx.options.agent?.proxy?.href,
|
|
19
22
|
}
|
|
20
|
-
: {
|
|
23
|
+
: {
|
|
24
|
+
...(resolvedAgent ? { agent: resolvedAgent } : {}),
|
|
25
|
+
...(resolvedDispatcher ? { dispatcher: resolvedDispatcher } : {}),
|
|
26
|
+
}),
|
|
27
|
+
...(typeof AbortSignal !== "undefined" && typeof AbortSignal.timeout === "function"
|
|
28
|
+
? { signal: AbortSignal.timeout(3000) }
|
|
29
|
+
: {}),
|
|
21
30
|
};
|
|
22
31
|
const response = await ctx.options.polyfill(NPM_REGISTRY, _options).catch(() => null);
|
|
23
32
|
if (!response || !response.ok)
|