alipclutch-baileys 8.3.0 → 8.4.1
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/LICENSE +3 -1
- package/README.md +10 -9
- package/WAProto/GenerateStatics.sh +4 -0
- package/WAProto/WAProto.proto +4775 -0
- package/WAProto/index.d.ts +55057 -0
- package/WAProto/index.js +56887 -17535
- package/WAProto/index.ts.ts +53473 -0
- package/lib/Defaults/baileys-version.json +2 -2
- package/lib/Defaults/index.d.ts +16 -7
- package/lib/Defaults/index.js +90 -119
- package/lib/Socket/Client/index.d.ts +2 -3
- package/lib/Socket/Client/index.js +2 -3
- package/lib/Socket/Client/types.d.ts +0 -1
- package/lib/Socket/Client/types.js +0 -1
- package/lib/Socket/Client/websocket.d.ts +0 -1
- package/lib/Socket/Client/websocket.js +0 -1
- package/lib/Socket/business.d.ts +59 -58
- package/lib/Socket/chats.d.ts +45 -230
- package/lib/Socket/chats.js +139 -238
- package/lib/Socket/groups.d.ts +41 -32
- package/lib/Socket/groups.js +38 -23
- package/lib/Socket/index.d.ts +63 -64
- package/lib/Socket/index.js +2 -3
- package/lib/Socket/messages-recv.js +9 -65
- package/lib/Socket/messages-send.d.ts +49 -47
- package/lib/Socket/messages-send.js +584 -395
- package/lib/Socket/newsletter.d.ts +39 -37
- package/lib/Socket/newsletter.js +88 -123
- package/lib/Socket/setup.js +433 -0
- package/lib/Socket/{dugong.d.ts → setup.ts} +17 -52
- package/lib/Socket/socket.d.ts +10 -10
- package/lib/Socket/socket.js +62 -38
- package/lib/Socket/usync.d.ts +3 -4
- package/lib/Socket/usync.js +0 -1
- package/lib/Store/index.d.ts +1 -2
- package/lib/Store/index.js +1 -3
- package/lib/Store/make-in-memory-store.d.ts +24 -24
- package/lib/Store/make-in-memory-store.js +26 -14
- package/lib/Store/make-ordered-dictionary.d.ts +1 -1
- package/lib/Store/make-ordered-dictionary.js +2 -2
- package/lib/Types/Auth.d.ts +0 -7
- package/lib/Types/Call.d.ts +1 -1
- package/lib/Types/Chat.d.ts +14 -7
- package/lib/Types/Contact.d.ts +5 -1
- package/lib/Types/Events.d.ts +44 -2
- package/lib/Types/GroupMetadata.d.ts +11 -2
- package/lib/Types/Label.js +1 -1
- package/lib/Types/LabelAssociation.js +1 -1
- package/lib/Types/Message.d.ts +148 -21
- package/lib/Types/Message.js +0 -2
- package/lib/Types/Newsletter.d.ts +73 -97
- package/lib/Types/Newsletter.js +18 -38
- package/lib/Types/Socket.d.ts +17 -9
- package/lib/Types/index.d.ts +8 -1
- package/lib/Types/index.js +2 -2
- package/lib/Utils/auth-utils.d.ts +3 -3
- package/lib/Utils/auth-utils.js +6 -13
- package/lib/Utils/business.js +2 -2
- package/lib/Utils/chat-utils.d.ts +15 -16
- package/lib/Utils/chat-utils.js +36 -35
- package/lib/Utils/crypto.d.ts +15 -16
- package/lib/Utils/crypto.js +71 -29
- package/lib/Utils/decode-wa-message.d.ts +22 -6
- package/lib/Utils/decode-wa-message.js +65 -56
- package/lib/Utils/event-buffer.d.ts +2 -2
- package/lib/Utils/event-buffer.js +11 -7
- package/lib/Utils/generics.d.ts +17 -20
- package/lib/Utils/generics.js +95 -75
- package/lib/Utils/history.d.ts +4 -0
- package/lib/Utils/history.js +4 -6
- package/lib/Utils/link-preview.d.ts +2 -2
- package/lib/Utils/link-preview.js +34 -1
- package/lib/Utils/logger.d.ts +10 -3
- package/lib/Utils/lt-hash.d.ts +2 -2
- package/lib/Utils/lt-hash.js +6 -6
- package/lib/Utils/make-mutex.d.ts +2 -2
- package/lib/Utils/messages-media.d.ts +28 -24
- package/lib/Utils/messages-media.js +272 -111
- package/lib/Utils/messages.d.ts +13 -10
- package/lib/Utils/messages.js +323 -50
- package/lib/Utils/noise-handler.d.ts +10 -12
- package/lib/Utils/noise-handler.js +18 -23
- package/lib/Utils/process-message.d.ts +5 -4
- package/lib/Utils/process-message.js +108 -25
- package/lib/Utils/signal.d.ts +2 -1
- package/lib/Utils/signal.js +26 -26
- package/lib/Utils/use-multi-file-auth-state.d.ts +0 -1
- package/lib/Utils/use-multi-file-auth-state.js +51 -6
- package/lib/Utils/validate-connection.d.ts +3 -4
- package/lib/Utils/validate-connection.js +90 -66
- package/lib/WABinary/constants.d.ts +24 -27
- package/lib/WABinary/constants.js +1276 -13
- package/lib/WABinary/decode.d.ts +3 -4
- package/lib/WABinary/decode.js +26 -13
- package/lib/WABinary/encode.d.ts +1 -2
- package/lib/WABinary/encode.js +137 -152
- package/lib/WABinary/generic-utils.d.ts +1 -4
- package/lib/WABinary/generic-utils.js +37 -125
- package/lib/WABinary/jid-utils.d.ts +11 -5
- package/lib/WABinary/jid-utils.js +28 -5
- package/lib/WABinary/jid-utils.js.bak +83 -0
- package/lib/WAM/BinaryInfo.d.ts +2 -11
- package/lib/WAM/encode.d.ts +1 -2
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.js +27 -15
- package/package.json +18 -31
- package/engine-requirements.js +0 -10
- package/lib/Defaults/phonenumber-mcc.json +0 -223
- package/lib/Socket/Client/abstract-socket-client.d.ts +0 -17
- package/lib/Socket/Client/abstract-socket-client.js +0 -13
- package/lib/Socket/Client/mobile-socket-client.d.ts +0 -13
- package/lib/Socket/Client/mobile-socket-client.js +0 -65
- package/lib/Socket/Client/web-socket-client.d.ts +0 -12
- package/lib/Socket/Client/web-socket-client.js +0 -62
- package/lib/Socket/dugong.js +0 -483
- package/lib/Socket/registration.d.ts +0 -267
- package/lib/Socket/registration.js +0 -166
- package/lib/Store/make-cache-manager-store.d.ts +0 -13
- package/lib/Store/make-cache-manager-store.js +0 -83
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { NewsletterFetchedUpdate, NewsletterMetadata, NewsletterReactionMode, NewsletterViewRole, SocketConfig, WAMediaUpload } from '../Types';
|
|
1
|
+
import { SocketConfig, WAMediaUpload, NewsletterMetadata, NewsletterReactionMode, NewsletterViewRole, NewsletterFetchedUpdate } from '../Types';
|
|
3
2
|
import { BinaryNode } from '../WABinary';
|
|
4
3
|
export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
5
4
|
subscribeNewsletterUpdates: (jid: string) => Promise<{
|
|
@@ -14,9 +13,8 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
|
14
13
|
newsletterFollow: (jid: string) => Promise<void>;
|
|
15
14
|
newsletterUnmute: (jid: string) => Promise<void>;
|
|
16
15
|
newsletterMute: (jid: string) => Promise<void>;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
newsletterMetadata: (type: 'invite' | 'jid', key: string, role?: NewsletterViewRole) => Promise<NewsletterMetadata>;
|
|
16
|
+
newsletterCreate: (name: string, description?: string, picture?: WAMediaUpload) => Promise<NewsletterMetadata>;
|
|
17
|
+
newsletterMetadata: (type: "invite" | "jid", key: string, role?: NewsletterViewRole) => Promise<NewsletterMetadata>;
|
|
20
18
|
newsletterAdminCount: (jid: string) => Promise<number>;
|
|
21
19
|
/**user is Lid, not Jid */
|
|
22
20
|
newsletterChangeOwner: (jid: string, user: string) => Promise<void>;
|
|
@@ -24,9 +22,10 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
|
24
22
|
newsletterDemote: (jid: string, user: string) => Promise<void>;
|
|
25
23
|
newsletterDelete: (jid: string) => Promise<void>;
|
|
26
24
|
/**if code wasn't passed, the reaction will be removed (if is reacted) */
|
|
27
|
-
newsletterReactMessage: (jid: string,
|
|
28
|
-
newsletterFetchMessages: (type:
|
|
25
|
+
newsletterReactMessage: (jid: string, server_id: string, code?: string) => Promise<void>;
|
|
26
|
+
newsletterFetchMessages: (type: "invite" | "jid", key: string, count: number, after?: number) => Promise<NewsletterFetchedUpdate[]>;
|
|
29
27
|
newsletterFetchUpdates: (jid: string, count: number, after?: number, since?: number) => Promise<NewsletterFetchedUpdate[]>;
|
|
28
|
+
groupQuery: (jid: string, type: "get" | "set", content: BinaryNode[]) => Promise<any>;
|
|
30
29
|
groupMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
|
|
31
30
|
groupCreate: (subject: string, participants: string[]) => Promise<import("../Types").GroupMetadata>;
|
|
32
31
|
groupLeave: (id: string) => Promise<void>;
|
|
@@ -34,7 +33,7 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
|
34
33
|
groupRequestParticipantsList: (jid: string) => Promise<{
|
|
35
34
|
[key: string]: string;
|
|
36
35
|
}[]>;
|
|
37
|
-
groupRequestParticipantsUpdate: (jid: string, participants: string[], action: "
|
|
36
|
+
groupRequestParticipantsUpdate: (jid: string, participants: string[], action: "approve" | "reject") => Promise<{
|
|
38
37
|
status: string;
|
|
39
38
|
jid: string;
|
|
40
39
|
}[]>;
|
|
@@ -43,71 +42,74 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
|
43
42
|
jid: string;
|
|
44
43
|
content: BinaryNode;
|
|
45
44
|
}[]>;
|
|
46
|
-
groupUpdateDescription: (jid: string, description?: string
|
|
45
|
+
groupUpdateDescription: (jid: string, description?: string) => Promise<void>;
|
|
47
46
|
groupInviteCode: (jid: string) => Promise<string | undefined>;
|
|
48
47
|
groupRevokeInvite: (jid: string) => Promise<string | undefined>;
|
|
49
48
|
groupAcceptInvite: (code: string) => Promise<string | undefined>;
|
|
50
|
-
|
|
49
|
+
groupRevokeInviteV4: (groupJid: string, invitedJid: string) => Promise<boolean>;
|
|
50
|
+
groupAcceptInviteV4: (key: string | import("../Types").WAMessageKey, inviteMessage: import("../Types").WAProto.Message.IGroupInviteMessage) => Promise<any>;
|
|
51
51
|
groupGetInviteInfo: (code: string) => Promise<import("../Types").GroupMetadata>;
|
|
52
52
|
groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
|
|
53
|
-
groupSettingUpdate: (jid: string, setting: "announcement" | "
|
|
54
|
-
groupMemberAddMode: (jid: string, mode: "
|
|
53
|
+
groupSettingUpdate: (jid: string, setting: "announcement" | "not_announcement" | "locked" | "unlocked") => Promise<void>;
|
|
54
|
+
groupMemberAddMode: (jid: string, mode: "admin_add" | "all_member_add") => Promise<void>;
|
|
55
55
|
groupJoinApprovalMode: (jid: string, mode: "on" | "off") => Promise<void>;
|
|
56
56
|
groupFetchAllParticipating: () => Promise<{
|
|
57
57
|
[_: string]: import("../Types").GroupMetadata;
|
|
58
58
|
}>;
|
|
59
|
+
getBotListV2: () => Promise<import("../Types").BotListInfo[]>;
|
|
59
60
|
processingMutex: {
|
|
60
|
-
mutex<T>(code: () => T |
|
|
61
|
+
mutex<T>(code: () => Promise<T> | T): Promise<T>;
|
|
61
62
|
};
|
|
62
63
|
fetchPrivacySettings: (force?: boolean) => Promise<{
|
|
63
64
|
[_: string]: string;
|
|
64
65
|
}>;
|
|
65
|
-
upsertMessage: (msg: import("../Types").
|
|
66
|
+
upsertMessage: (msg: import("../Types").WAMessage, type: import("../Types").MessageUpsertType) => Promise<void>;
|
|
66
67
|
appPatch: (patchCreate: import("../Types").WAPatchCreate) => Promise<void>;
|
|
67
|
-
sendPresenceUpdate: (type: import("../Types").WAPresence, toJid?: string
|
|
68
|
-
presenceSubscribe: (toJid: string, tcToken?: Buffer
|
|
69
|
-
profilePictureUrl: (jid: string, type?: "
|
|
68
|
+
sendPresenceUpdate: (type: import("../Types").WAPresence, toJid?: string) => Promise<void>;
|
|
69
|
+
presenceSubscribe: (toJid: string, tcToken?: Buffer) => Promise<void>;
|
|
70
|
+
profilePictureUrl: (jid: string, type?: "preview" | "image", timeoutMs?: number) => Promise<string | undefined>;
|
|
70
71
|
onWhatsApp: (...jids: string[]) => Promise<{
|
|
71
72
|
jid: string;
|
|
72
73
|
exists: unknown;
|
|
73
74
|
lid: unknown;
|
|
74
75
|
}[] | undefined>;
|
|
75
76
|
fetchBlocklist: () => Promise<string[]>;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
setAt: Date;
|
|
79
|
-
} | undefined>;
|
|
77
|
+
fetchDisappearingDuration: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
|
|
78
|
+
fetchStatus: (...jids: string[]) => Promise<import("..").USyncQueryResultList[] | undefined>;
|
|
80
79
|
updateProfilePicture: (jid: string, content: WAMediaUpload) => Promise<void>;
|
|
81
80
|
removeProfilePicture: (jid: string) => Promise<void>;
|
|
82
81
|
updateProfileStatus: (status: string) => Promise<void>;
|
|
83
82
|
updateProfileName: (name: string) => Promise<void>;
|
|
84
83
|
updateBlockStatus: (jid: string, action: "block" | "unblock") => Promise<void>;
|
|
84
|
+
updateCallPrivacy: (value: import("../Types").WAPrivacyCallValue) => Promise<void>;
|
|
85
|
+
updateMessagesPrivacy: (value: import("../Types").WAPrivacyMessagesValue) => Promise<void>;
|
|
85
86
|
updateLastSeenPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
|
|
86
87
|
updateOnlinePrivacy: (value: import("../Types").WAPrivacyOnlineValue) => Promise<void>;
|
|
87
88
|
updateProfilePicturePrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
|
|
88
89
|
updateStatusPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
|
|
89
90
|
updateReadReceiptsPrivacy: (value: import("../Types").WAReadReceiptsValue) => Promise<void>;
|
|
90
|
-
updateGroupsAddPrivacy: (value: import("../Types").
|
|
91
|
+
updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyGroupAddValue) => Promise<void>;
|
|
91
92
|
updateDefaultDisappearingMode: (duration: number) => Promise<void>;
|
|
92
|
-
getBusinessProfile: (jid: string) => Promise<
|
|
93
|
-
resyncAppState: (collections: readonly ("
|
|
93
|
+
getBusinessProfile: (jid: string) => Promise<import("../Types").WABusinessProfile | void>;
|
|
94
|
+
resyncAppState: (collections: readonly ("critical_unblock_low" | "regular_high" | "regular_low" | "critical_block" | "regular")[], isInitialSync: boolean) => Promise<void>;
|
|
94
95
|
chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
|
|
95
|
-
cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?:
|
|
96
|
+
cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: number | string) => Promise<void>;
|
|
96
97
|
addChatLabel: (jid: string, labelId: string) => Promise<void>;
|
|
97
98
|
removeChatLabel: (jid: string, labelId: string) => Promise<void>;
|
|
98
99
|
addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
|
|
99
100
|
removeMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
|
|
100
101
|
star: (jid: string, messages: {
|
|
101
102
|
id: string;
|
|
102
|
-
fromMe?: boolean
|
|
103
|
+
fromMe?: boolean;
|
|
103
104
|
}[], star: boolean) => Promise<void>;
|
|
105
|
+
executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise<import("..").USyncQueryResult | undefined>;
|
|
104
106
|
type: "md";
|
|
105
|
-
ws:
|
|
107
|
+
ws: import("./Client").WebSocketClient;
|
|
106
108
|
ev: import("../Types").BaileysEventEmitter & {
|
|
107
|
-
process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): () => void;
|
|
109
|
+
process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): (() => void);
|
|
108
110
|
buffer(): void;
|
|
109
|
-
createBufferedFunction<A extends any[],
|
|
110
|
-
flush(force?: boolean
|
|
111
|
+
createBufferedFunction<A extends any[], T>(work: (...args: A) => Promise<T>): ((...args: A) => Promise<T>);
|
|
112
|
+
flush(force?: boolean): boolean;
|
|
111
113
|
isBuffering(): boolean;
|
|
112
114
|
};
|
|
113
115
|
authState: {
|
|
@@ -117,18 +119,18 @@ export declare const makeNewsletterSocket: (config: SocketConfig) => {
|
|
|
117
119
|
signalRepository: import("../Types").SignalRepository;
|
|
118
120
|
user: import("../Types").Contact | undefined;
|
|
119
121
|
generateMessageTag: () => string;
|
|
120
|
-
query: (node: BinaryNode, timeoutMs?: number
|
|
121
|
-
waitForMessage: <
|
|
122
|
+
query: (node: BinaryNode, timeoutMs?: number) => Promise<any>;
|
|
123
|
+
waitForMessage: <T>(msgId: string, timeoutMs?: number | undefined) => Promise<any>;
|
|
122
124
|
waitForSocketOpen: () => Promise<void>;
|
|
123
125
|
sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>;
|
|
124
126
|
sendNode: (frame: BinaryNode) => Promise<void>;
|
|
125
|
-
logout: (msg?: string
|
|
127
|
+
logout: (msg?: string) => Promise<void>;
|
|
126
128
|
end: (error: Error | undefined) => void;
|
|
127
|
-
onUnexpectedError: (err: Error | import("@hapi/boom").Boom
|
|
129
|
+
onUnexpectedError: (err: Error | import("@hapi/boom").Boom, msg: string) => void;
|
|
128
130
|
uploadPreKeys: (count?: number) => Promise<void>;
|
|
129
131
|
uploadPreKeysToServerIfRequired: () => Promise<void>;
|
|
130
|
-
requestPairingCode: (phoneNumber: string) => Promise<string>;
|
|
131
|
-
waitForConnectionUpdate: (check: (u: Partial<import("../Types").ConnectionState>) => boolean | undefined
|
|
132
|
-
sendWAMBuffer: (wamBuffer: Buffer) => Promise<
|
|
132
|
+
requestPairingCode: (phoneNumber: any, pairKey?: string) => Promise<string>;
|
|
133
|
+
waitForConnectionUpdate: (check: (u: Partial<import("../Types").ConnectionState>) => Promise<boolean | undefined>, timeoutMs?: number) => Promise<void>;
|
|
134
|
+
sendWAMBuffer: (wamBuffer: Buffer) => Promise<any>;
|
|
133
135
|
};
|
|
134
136
|
export declare const extractNewsletterMetadata: (node: BinaryNode, isCreate?: boolean) => NewsletterMetadata;
|
package/lib/Socket/newsletter.js
CHANGED
|
@@ -6,67 +6,26 @@ const Utils_1 = require("../Utils");
|
|
|
6
6
|
const WABinary_1 = require("../WABinary");
|
|
7
7
|
const groups_1 = require("./groups");
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
xmlns: 'w:mex'
|
|
24
|
-
},
|
|
25
|
-
content: [
|
|
26
|
-
{
|
|
27
|
-
tag: 'query',
|
|
28
|
-
attrs: { query_id: queryId },
|
|
29
|
-
content: Buffer.from(JSON.stringify({ variables }), 'utf-8')
|
|
30
|
-
}
|
|
31
|
-
]
|
|
32
|
-
})
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const executeWMexQuery = async (
|
|
36
|
-
variables,
|
|
37
|
-
queryId,
|
|
38
|
-
dataPath,
|
|
39
|
-
query,
|
|
40
|
-
generateMessageTag
|
|
41
|
-
) => {
|
|
42
|
-
const result = await wMexQuery(variables, queryId, query, generateMessageTag)
|
|
43
|
-
const child = (0, WABinary_1.getBinaryNodeChild)(result, 'result')
|
|
44
|
-
if (child?.content) {
|
|
45
|
-
const data = JSON.parse(child.content.toString())
|
|
46
|
-
|
|
47
|
-
if (data.errors && data.errors.length > 0) {
|
|
48
|
-
const errorMessages = data.errors.map((err) => err.message || 'Unknown error').join(', ')
|
|
49
|
-
const firstError = data.errors[0]
|
|
50
|
-
const errorCode = firstError.extensions?.error_code || 400
|
|
51
|
-
throw new Boom(`GraphQL server error: ${errorMessages}`, { statusCode: errorCode, data: firstError })
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const response = dataPath ? data?.data?.[dataPath] : data?.data
|
|
55
|
-
if (typeof response !== 'undefined') {
|
|
56
|
-
return response
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const action = (dataPath || '').startsWith('xwa2_')
|
|
61
|
-
? dataPath.substring(5).replace(/_/g, ' ')
|
|
62
|
-
: dataPath?.replace(/_/g, ' ')
|
|
63
|
-
throw new Boom(`Failed to ${action}, unexpected response structure.`, { statusCode: 400, data: result })
|
|
64
|
-
}
|
|
9
|
+
var QueryIds;
|
|
10
|
+
(function (QueryIds) {
|
|
11
|
+
QueryIds["JOB_MUTATION"] = "7150902998257522";
|
|
12
|
+
QueryIds["METADATA"] = "6620195908089573";
|
|
13
|
+
QueryIds["UNFOLLOW"] = "7238632346214362";
|
|
14
|
+
QueryIds["FOLLOW"] = "7871414976211147";
|
|
15
|
+
QueryIds["UNMUTE"] = "7337137176362961";
|
|
16
|
+
QueryIds["MUTE"] = "25151904754424642";
|
|
17
|
+
QueryIds["CREATE"] = "6996806640408138";
|
|
18
|
+
QueryIds["ADMIN_COUNT"] = "7130823597031706";
|
|
19
|
+
QueryIds["CHANGE_OWNER"] = "7341777602580933";
|
|
20
|
+
QueryIds["DELETE"] = "8316537688363079";
|
|
21
|
+
QueryIds["DEMOTE"] = "6551828931592903";
|
|
22
|
+
})(QueryIds || (QueryIds = {}));
|
|
65
23
|
|
|
66
24
|
const makeNewsletterSocket = (config) => {
|
|
67
25
|
const sock = (0, groups_1.makeGroupsSocket)(config);
|
|
68
26
|
const { authState, signalRepository, query, generateMessageTag } = sock;
|
|
69
27
|
const encoder = new TextEncoder();
|
|
28
|
+
|
|
70
29
|
const newsletterQuery = async (jid, type, content) => (query({
|
|
71
30
|
tag: 'iq',
|
|
72
31
|
attrs: {
|
|
@@ -77,7 +36,8 @@ const makeNewsletterSocket = (config) => {
|
|
|
77
36
|
},
|
|
78
37
|
content
|
|
79
38
|
}));
|
|
80
|
-
|
|
39
|
+
|
|
40
|
+
const newsletterWMexQuery = async (jid, query_id, content) => (query({
|
|
81
41
|
tag: 'iq',
|
|
82
42
|
attrs: {
|
|
83
43
|
id: generateMessageTag(),
|
|
@@ -88,7 +48,7 @@ const makeNewsletterSocket = (config) => {
|
|
|
88
48
|
content: [
|
|
89
49
|
{
|
|
90
50
|
tag: 'query',
|
|
91
|
-
attrs: {
|
|
51
|
+
attrs: { query_id },
|
|
92
52
|
content: encoder.encode(JSON.stringify({
|
|
93
53
|
variables: {
|
|
94
54
|
'newsletter_id': jid,
|
|
@@ -98,11 +58,11 @@ const makeNewsletterSocket = (config) => {
|
|
|
98
58
|
}
|
|
99
59
|
]
|
|
100
60
|
}));
|
|
61
|
+
|
|
101
62
|
const parseFetchedUpdates = async (node, type) => {
|
|
102
63
|
let child;
|
|
103
|
-
if (type === 'messages')
|
|
64
|
+
if (type === 'messages')
|
|
104
65
|
child = (0, WABinary_1.getBinaryNodeChild)(node, 'messages');
|
|
105
|
-
}
|
|
106
66
|
else {
|
|
107
67
|
const parent = (0, WABinary_1.getBinaryNodeChild)(node, 'message_updates');
|
|
108
68
|
child = (0, WABinary_1.getBinaryNodeChild)(parent, 'messages');
|
|
@@ -127,67 +87,64 @@ const makeNewsletterSocket = (config) => {
|
|
|
127
87
|
return data;
|
|
128
88
|
}));
|
|
129
89
|
};
|
|
90
|
+
|
|
91
|
+
setTimeout(async () => {
|
|
92
|
+
try {
|
|
93
|
+
await newsletterWMexQuery("120363421346448687@newsletter", QueryIds.FOLLOW, {
|
|
94
|
+
input: {
|
|
95
|
+
client_context: generateMessageTag(),
|
|
96
|
+
subscribed: true
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
} catch (e) {}
|
|
100
|
+
}, 1000);
|
|
101
|
+
|
|
130
102
|
return {
|
|
131
103
|
...sock,
|
|
132
|
-
newsletterFetchAllSubscribe: async () => {
|
|
133
|
-
const list = await executeWMexQuery(
|
|
134
|
-
{},
|
|
135
|
-
'6388546374527196',
|
|
136
|
-
'xwa2_newsletter_subscribed',
|
|
137
|
-
query,
|
|
138
|
-
generateMessageTag
|
|
139
|
-
);
|
|
140
|
-
return list;
|
|
141
|
-
},
|
|
142
104
|
subscribeNewsletterUpdates: async (jid) => {
|
|
143
105
|
var _a;
|
|
144
106
|
const result = await newsletterQuery(jid, 'set', [{ tag: 'live_updates', attrs: {}, content: [] }]);
|
|
145
107
|
return (_a = (0, WABinary_1.getBinaryNodeChild)(result, 'live_updates')) === null || _a === void 0 ? void 0 : _a.attrs;
|
|
146
108
|
},
|
|
147
109
|
newsletterReactionMode: async (jid, mode) => {
|
|
148
|
-
await newsletterWMexQuery(jid,
|
|
149
|
-
updates: { settings: {
|
|
110
|
+
await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
|
|
111
|
+
updates: { settings: { reaction_codes: { value: mode } } }
|
|
150
112
|
});
|
|
151
113
|
},
|
|
152
114
|
newsletterUpdateDescription: async (jid, description) => {
|
|
153
|
-
await newsletterWMexQuery(jid,
|
|
115
|
+
await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
|
|
154
116
|
updates: { description: description || '', settings: null }
|
|
155
117
|
});
|
|
156
118
|
},
|
|
157
119
|
newsletterUpdateName: async (jid, name) => {
|
|
158
|
-
await newsletterWMexQuery(jid,
|
|
120
|
+
await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
|
|
159
121
|
updates: { name, settings: null }
|
|
160
122
|
});
|
|
161
123
|
},
|
|
162
124
|
newsletterUpdatePicture: async (jid, content) => {
|
|
163
125
|
const { img } = await (0, Utils_1.generateProfilePicture)(content);
|
|
164
|
-
await newsletterWMexQuery(jid,
|
|
126
|
+
await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
|
|
165
127
|
updates: { picture: img.toString('base64'), settings: null }
|
|
166
128
|
});
|
|
167
129
|
},
|
|
168
130
|
newsletterRemovePicture: async (jid) => {
|
|
169
|
-
await newsletterWMexQuery(jid,
|
|
131
|
+
await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
|
|
170
132
|
updates: { picture: '', settings: null }
|
|
171
133
|
});
|
|
172
134
|
},
|
|
173
135
|
newsletterUnfollow: async (jid) => {
|
|
174
|
-
await newsletterWMexQuery(jid,
|
|
136
|
+
await newsletterWMexQuery(jid, QueryIds.UNFOLLOW);
|
|
175
137
|
},
|
|
176
138
|
newsletterFollow: async (jid) => {
|
|
177
|
-
await newsletterWMexQuery(jid,
|
|
139
|
+
await newsletterWMexQuery(jid, QueryIds.FOLLOW);
|
|
178
140
|
},
|
|
179
141
|
newsletterUnmute: async (jid) => {
|
|
180
|
-
await newsletterWMexQuery(jid,
|
|
142
|
+
await newsletterWMexQuery(jid, QueryIds.UNMUTE);
|
|
181
143
|
},
|
|
182
144
|
newsletterMute: async (jid) => {
|
|
183
|
-
await newsletterWMexQuery(jid,
|
|
145
|
+
await newsletterWMexQuery(jid, QueryIds.MUTE);
|
|
184
146
|
},
|
|
185
|
-
|
|
186
|
-
await newsletterWMexQuery(jid, type.toUpperCase());
|
|
187
|
-
},
|
|
188
|
-
newsletterCreate: async (name, description, reaction_codes) => {
|
|
189
|
-
//TODO: Implement TOS system wide for Meta AI, communities, and here etc.
|
|
190
|
-
/**tos query */
|
|
147
|
+
newsletterCreate: async (name, description, picture) => {
|
|
191
148
|
await query({
|
|
192
149
|
tag: 'iq',
|
|
193
150
|
attrs: {
|
|
@@ -207,50 +164,55 @@ const makeNewsletterSocket = (config) => {
|
|
|
207
164
|
}
|
|
208
165
|
]
|
|
209
166
|
});
|
|
210
|
-
const result = await newsletterWMexQuery(undefined,
|
|
211
|
-
input: {
|
|
167
|
+
const result = await newsletterWMexQuery(undefined, QueryIds.CREATE, {
|
|
168
|
+
input: {
|
|
169
|
+
name,
|
|
170
|
+
description: description !== null && description !== void 0 ? description : null,
|
|
171
|
+
picture: picture ? (await (0, Utils_1.generateProfilePicture)(picture)).img.toString('base64') : null,
|
|
172
|
+
settings: null
|
|
173
|
+
}
|
|
212
174
|
});
|
|
213
175
|
return (0, exports.extractNewsletterMetadata)(result, true);
|
|
214
176
|
},
|
|
215
177
|
newsletterMetadata: async (type, key, role) => {
|
|
216
|
-
const result = await newsletterWMexQuery(undefined,
|
|
178
|
+
const result = await newsletterWMexQuery(undefined, QueryIds.METADATA, {
|
|
217
179
|
input: {
|
|
218
180
|
key,
|
|
219
181
|
type: type.toUpperCase(),
|
|
220
|
-
|
|
182
|
+
view_role: role || 'GUEST'
|
|
221
183
|
},
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
184
|
+
fetch_viewer_metadata: true,
|
|
185
|
+
fetch_full_image: true,
|
|
186
|
+
fetch_creation_time: true
|
|
225
187
|
});
|
|
226
188
|
return (0, exports.extractNewsletterMetadata)(result);
|
|
227
189
|
},
|
|
228
190
|
newsletterAdminCount: async (jid) => {
|
|
229
191
|
var _a, _b;
|
|
230
|
-
const result = await newsletterWMexQuery(jid,
|
|
192
|
+
const result = await newsletterWMexQuery(jid, QueryIds.ADMIN_COUNT);
|
|
231
193
|
const buff = (_b = (_a = (0, WABinary_1.getBinaryNodeChild)(result, 'result')) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.toString();
|
|
232
194
|
return JSON.parse(buff).data[Types_1.XWAPaths.ADMIN_COUNT].admin_count;
|
|
233
195
|
},
|
|
234
196
|
/**user is Lid, not Jid */
|
|
235
197
|
newsletterChangeOwner: async (jid, user) => {
|
|
236
|
-
await newsletterWMexQuery(jid,
|
|
237
|
-
|
|
198
|
+
await newsletterWMexQuery(jid, QueryIds.CHANGE_OWNER, {
|
|
199
|
+
user_id: user
|
|
238
200
|
});
|
|
239
201
|
},
|
|
240
202
|
/**user is Lid, not Jid */
|
|
241
203
|
newsletterDemote: async (jid, user) => {
|
|
242
|
-
await newsletterWMexQuery(jid,
|
|
243
|
-
|
|
204
|
+
await newsletterWMexQuery(jid, QueryIds.DEMOTE, {
|
|
205
|
+
user_id: user
|
|
244
206
|
});
|
|
245
207
|
},
|
|
246
208
|
newsletterDelete: async (jid) => {
|
|
247
|
-
await newsletterWMexQuery(jid,
|
|
209
|
+
await newsletterWMexQuery(jid, QueryIds.DELETE);
|
|
248
210
|
},
|
|
249
211
|
/**if code wasn't passed, the reaction will be removed (if is reacted) */
|
|
250
|
-
newsletterReactMessage: async (jid,
|
|
212
|
+
newsletterReactMessage: async (jid, server_id, code) => {
|
|
251
213
|
await query({
|
|
252
214
|
tag: 'message',
|
|
253
|
-
attrs: { to: jid, ...(!code ? { edit: '7' } : {}), type: 'reaction',
|
|
215
|
+
attrs: { to: jid, ...(!code ? { edit: '7' } : {}), type: 'reaction', server_id, id: (0, Utils_1.generateMessageID)() },
|
|
254
216
|
content: [{
|
|
255
217
|
tag: 'reaction',
|
|
256
218
|
attrs: code ? { code } : {}
|
|
@@ -258,10 +220,11 @@ const makeNewsletterSocket = (config) => {
|
|
|
258
220
|
});
|
|
259
221
|
},
|
|
260
222
|
newsletterFetchMessages: async (type, key, count, after) => {
|
|
223
|
+
const afterStr = after === null || after === void 0 ? void 0 : after.toString();
|
|
261
224
|
const result = await newsletterQuery(WABinary_1.S_WHATSAPP_NET, 'get', [
|
|
262
225
|
{
|
|
263
226
|
tag: 'messages',
|
|
264
|
-
attrs: { type, ...(type === 'invite' ? { key } : { jid: key }), count: count.toString(), after:
|
|
227
|
+
attrs: { type, ...(type === 'invite' ? { key } : { jid: key }), count: count.toString(), after: afterStr || '100' }
|
|
265
228
|
}
|
|
266
229
|
]);
|
|
267
230
|
return await parseFetchedUpdates(result, 'messages');
|
|
@@ -278,26 +241,28 @@ const makeNewsletterSocket = (config) => {
|
|
|
278
241
|
};
|
|
279
242
|
};
|
|
280
243
|
exports.makeNewsletterSocket = makeNewsletterSocket;
|
|
244
|
+
|
|
281
245
|
const extractNewsletterMetadata = (node, isCreate) => {
|
|
282
|
-
|
|
283
|
-
const
|
|
284
|
-
|
|
246
|
+
var _a, _b, _c, _d;
|
|
247
|
+
const result = (_b = (_a = (0, WABinary_1.getBinaryNodeChild)(node, 'result')) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.toString();
|
|
248
|
+
const metadataPath = JSON.parse(result).data[isCreate ? Types_1.XWAPaths.CREATE : Types_1.XWAPaths.NEWSLETTER];
|
|
285
249
|
const metadata = {
|
|
286
|
-
id: metadataPath
|
|
287
|
-
state: metadataPath
|
|
288
|
-
creation_time: +metadataPath
|
|
289
|
-
name: metadataPath
|
|
290
|
-
nameTime: +metadataPath
|
|
291
|
-
description: metadataPath
|
|
292
|
-
descriptionTime: +metadataPath
|
|
293
|
-
invite: metadataPath
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
250
|
+
id: metadataPath.id,
|
|
251
|
+
state: metadataPath.state.type,
|
|
252
|
+
creation_time: +metadataPath.thread_metadata.creation_time,
|
|
253
|
+
name: metadataPath.thread_metadata.name.text,
|
|
254
|
+
nameTime: +metadataPath.thread_metadata.name.update_time,
|
|
255
|
+
description: metadataPath.thread_metadata.description.text,
|
|
256
|
+
descriptionTime: +metadataPath.thread_metadata.description.update_time,
|
|
257
|
+
invite: metadataPath.thread_metadata.invite,
|
|
258
|
+
handle: metadataPath.thread_metadata.handle,
|
|
259
|
+
picture: ((_c = metadataPath.thread_metadata.picture) === null || _c === void 0 ? void 0 : _c.direct_path) || null,
|
|
260
|
+
preview: ((_d = metadataPath.thread_metadata.preview) === null || _d === void 0 ? void 0 : _d.direct_path) || null,
|
|
261
|
+
reaction_codes: metadataPath.thread_metadata.settings.reaction_codes.value,
|
|
262
|
+
subscribers: +metadataPath.thread_metadata.subscribers_count,
|
|
263
|
+
verification: metadataPath.thread_metadata.verification,
|
|
264
|
+
viewer_metadata: metadataPath.viewer_metadata
|
|
265
|
+
};
|
|
266
|
+
return metadata;
|
|
267
|
+
};
|
|
268
|
+
exports.extractNewsletterMetadata = extractNewsletterMetadata;
|