@baileys-md/baileys 10.1.0 → 11.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.
- package/LICENSE +1 -1
- package/README.md +1303 -2
- package/WAProto/GenerateStatics.sh +3 -0
- package/WAProto/WAProto.proto +4633 -0
- package/WAProto/fix-imports.js +29 -0
- package/WAProto/index.js +13516 -4182
- package/lib/Defaults/baileys-version.js +1 -0
- package/lib/Defaults/index.js +51 -72
- package/lib/Signal/Group/ciphertext-message.js +12 -0
- package/lib/Signal/Group/group-session-builder.js +30 -0
- package/lib/Signal/Group/group_cipher.js +94 -0
- package/lib/Signal/Group/index.js +12 -0
- package/lib/Signal/Group/keyhelper.js +19 -0
- package/lib/Signal/Group/queue-job.js +54 -0
- package/lib/Signal/Group/sender-chain-key.js +32 -0
- package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
- package/lib/Signal/Group/sender-key-message.js +67 -0
- package/lib/Signal/Group/sender-key-name.js +48 -0
- package/lib/Signal/Group/sender-key-record.js +50 -0
- package/lib/Signal/Group/sender-key-state.js +96 -0
- package/{WASignalGroup/sender_message_key.js → lib/Signal/Group/sender-message-key.js} +4 -16
- package/lib/Signal/libsignal.js +41 -61
- package/lib/Socket/Client/index.js +3 -19
- package/lib/Socket/Client/types.js +11 -0
- package/lib/Socket/Client/websocket.js +50 -0
- package/lib/Socket/business.js +37 -42
- package/lib/Socket/chats.js +194 -187
- package/lib/Socket/communities.js +351 -0
- package/lib/Socket/groups.js +87 -90
- package/lib/Socket/index.js +7 -8
- package/lib/Socket/messages-recv.js +360 -335
- package/lib/Socket/messages-send.js +156 -279
- package/lib/Socket/mex.js +42 -0
- package/lib/Socket/newsletter.js +144 -213
- package/lib/Socket/socket.js +128 -161
- package/lib/Socket/usync.js +19 -26
- package/lib/Types/Auth.js +2 -2
- package/lib/Types/Call.js +2 -2
- package/lib/Types/Chat.js +8 -4
- package/lib/Types/Contact.js +2 -2
- package/lib/Types/Events.js +2 -2
- package/lib/Types/GroupMetadata.js +2 -2
- package/lib/Types/Label.js +3 -5
- package/lib/Types/LabelAssociation.js +3 -5
- package/lib/Types/Message.js +7 -7
- package/lib/Types/Newsletter.js +30 -17
- package/lib/Types/Product.js +2 -2
- package/lib/Types/Signal.js +2 -2
- package/lib/Types/Socket.js +3 -2
- package/lib/Types/State.js +2 -2
- package/lib/Types/USync.js +2 -2
- package/lib/Types/index.js +15 -31
- package/lib/Utils/auth-utils.js +31 -47
- package/lib/Utils/baileys-event-stream.js +15 -22
- package/lib/Utils/business.js +66 -69
- package/lib/Utils/chat-utils.js +200 -195
- package/lib/Utils/crypto.js +70 -85
- package/lib/Utils/decode-wa-message.js +47 -51
- package/lib/Utils/event-buffer.js +36 -46
- package/lib/Utils/generics.js +116 -188
- package/lib/Utils/history.js +37 -46
- package/lib/Utils/index.js +19 -33
- package/lib/Utils/link-preview.js +14 -55
- package/lib/Utils/logger.js +3 -7
- package/lib/Utils/lt-hash.js +23 -26
- package/lib/{Store → Utils}/make-in-memory-store.js +19 -27
- package/lib/Utils/make-mutex.js +7 -10
- package/lib/{Store → Utils}/make-ordered-dictionary.js +1 -3
- package/lib/Utils/messages-media.js +236 -368
- package/lib/Utils/messages.js +278 -510
- package/lib/Utils/noise-handler.js +22 -31
- package/lib/{Store → Utils}/object-repository.js +1 -4
- package/lib/Utils/process-message.js +144 -148
- package/lib/Utils/signal.js +71 -64
- package/lib/Utils/use-multi-file-auth-state.js +112 -84
- package/lib/Utils/validate-connection.js +72 -115
- package/lib/WABinary/constants.js +1281 -20
- package/lib/WABinary/decode.js +15 -52
- package/lib/WABinary/encode.js +14 -48
- package/lib/WABinary/generic-utils.js +31 -39
- package/lib/WABinary/index.js +6 -21
- package/lib/WABinary/jid-utils.js +23 -40
- package/lib/WABinary/types.js +2 -2
- package/lib/WAM/BinaryInfo.js +2 -5
- package/lib/WAM/constants.js +2257 -2366
- package/lib/WAM/encode.js +17 -21
- package/lib/WAM/index.js +4 -19
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +8 -11
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +11 -14
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +9 -12
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +9 -13
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +20 -22
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +3 -6
- package/lib/WAUSync/Protocols/index.js +5 -20
- package/lib/WAUSync/USyncQuery.js +34 -32
- package/lib/WAUSync/USyncUser.js +2 -5
- package/lib/WAUSync/index.js +4 -19
- package/lib/index.js +11 -33
- package/package.json +25 -54
- package/WASignalGroup/GroupProtocol.js +0 -1697
- package/WASignalGroup/ciphertext_message.js +0 -16
- package/WASignalGroup/group_cipher.js +0 -120
- package/WASignalGroup/group_session_builder.js +0 -46
- package/WASignalGroup/index.js +0 -5
- package/WASignalGroup/keyhelper.js +0 -21
- package/WASignalGroup/protobufs.js +0 -3
- package/WASignalGroup/queue_job.js +0 -69
- package/WASignalGroup/sender_chain_key.js +0 -50
- package/WASignalGroup/sender_key_distribution_message.js +0 -78
- package/WASignalGroup/sender_key_message.js +0 -92
- package/WASignalGroup/sender_key_name.js +0 -70
- package/WASignalGroup/sender_key_record.js +0 -56
- package/WASignalGroup/sender_key_state.js +0 -129
- package/lib/Defaults/baileys-version.json +0 -3
- package/lib/Defaults/phonenumber-mcc.json +0 -223
- package/lib/Socket/Client/abstract-socket-client.js +0 -13
- package/lib/Socket/Client/mobile-socket-client.js +0 -65
- package/lib/Socket/Client/web-socket-client.js +0 -62
- package/lib/Socket/registration.js +0 -166
- package/lib/Store/index.js +0 -8
- package/lib/Store/make-cache-manager-store.js +0 -83
- package/lib/Store/make-mongo-store.js +0 -567
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Boom } from '@hapi/boom';
|
|
2
|
+
import { getBinaryNodeChild, S_WHATSAPP_NET } from '../WABinary/index.js';
|
|
3
|
+
const wMexQuery = (variables, queryId, query, generateMessageTag) => {
|
|
4
|
+
return query({
|
|
5
|
+
tag: 'iq',
|
|
6
|
+
attrs: {
|
|
7
|
+
id: generateMessageTag(),
|
|
8
|
+
type: 'get',
|
|
9
|
+
to: S_WHATSAPP_NET,
|
|
10
|
+
xmlns: 'w:mex'
|
|
11
|
+
},
|
|
12
|
+
content: [
|
|
13
|
+
{
|
|
14
|
+
tag: 'query',
|
|
15
|
+
attrs: { query_id: queryId },
|
|
16
|
+
content: Buffer.from(JSON.stringify({ variables }), 'utf-8')
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
export const executeWMexQuery = async (variables, queryId, dataPath, query, generateMessageTag) => {
|
|
22
|
+
const result = await wMexQuery(variables, queryId, query, generateMessageTag);
|
|
23
|
+
const child = getBinaryNodeChild(result, 'result');
|
|
24
|
+
if (child?.content) {
|
|
25
|
+
const data = JSON.parse(child.content.toString());
|
|
26
|
+
if (data.errors && data.errors.length > 0) {
|
|
27
|
+
const errorMessages = data.errors.map((err) => err.message || 'Unknown error').join(', ');
|
|
28
|
+
const firstError = data.errors[0];
|
|
29
|
+
const errorCode = firstError.extensions?.error_code || 400;
|
|
30
|
+
throw new Boom(`GraphQL server error: ${errorMessages}`, { statusCode: errorCode, data: firstError });
|
|
31
|
+
}
|
|
32
|
+
const response = dataPath ? data?.data?.[dataPath] : data?.data;
|
|
33
|
+
if (typeof response !== 'undefined') {
|
|
34
|
+
return response;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const action = (dataPath || '').startsWith('xwa2_')
|
|
38
|
+
? dataPath.substring(5).replace(/_/g, ' ')
|
|
39
|
+
: dataPath?.replace(/_/g, ' ');
|
|
40
|
+
throw new Boom(`Failed to ${action}, unexpected response structure.`, { statusCode: 400, data: result });
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=mex.js.map
|
package/lib/Socket/newsletter.js
CHANGED
|
@@ -1,248 +1,179 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
tag: 'query',
|
|
47
|
-
attrs: { query_id },
|
|
48
|
-
content: encoder.encode(JSON.stringify({ variables: { newsletter_id: jid, ...content } }))
|
|
49
|
-
}
|
|
50
|
-
]
|
|
51
|
-
}));
|
|
52
|
-
const parseFetchedUpdates = async (node, type) => {
|
|
53
|
-
let child;
|
|
54
|
-
if (type === 'messages')
|
|
55
|
-
child = (0, WABinary_1.getBinaryNodeChild)(node, 'messages');
|
|
56
|
-
else {
|
|
57
|
-
const parent = (0, WABinary_1.getBinaryNodeChild)(node, 'message_updates');
|
|
58
|
-
child = (0, WABinary_1.getBinaryNodeChild)(parent, 'messages');
|
|
59
|
-
}
|
|
60
|
-
return await Promise.all((0, WABinary_1.getAllBinaryNodeChildren)(child).map(async (messageNode) => {
|
|
61
|
-
var _a, _b;
|
|
62
|
-
messageNode.attrs.from = child === null || child === void 0 ? void 0 : child.attrs.jid;
|
|
63
|
-
const views = (_b = (_a = (0, WABinary_1.getBinaryNodeChild)(messageNode, 'views_count')) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.count;
|
|
64
|
-
const reactionNode = (0, WABinary_1.getBinaryNodeChild)(messageNode, 'reactions');
|
|
65
|
-
const reactions = (0, WABinary_1.getBinaryNodeChildren)(reactionNode, 'reaction')
|
|
66
|
-
.map(({ attrs }) => ({ count: +attrs.count, code: attrs.code }));
|
|
67
|
-
let data;
|
|
68
|
-
if (type === 'messages') {
|
|
69
|
-
const { fullMessage: message, decrypt } = await (0, Utils_1.decryptMessageNode)(messageNode, authState.creds.me.id, authState.creds.me.lid || '', signalRepository, config.logger);
|
|
70
|
-
await decrypt();
|
|
71
|
-
data = {
|
|
72
|
-
server_id: messageNode.attrs.server_id,
|
|
73
|
-
views: views ? +views : undefined,
|
|
74
|
-
reactions,
|
|
75
|
-
message
|
|
76
|
-
};
|
|
77
|
-
return data;
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
data = {
|
|
81
|
-
server_id: messageNode.attrs.server_id,
|
|
82
|
-
views: views ? +views : undefined,
|
|
83
|
-
reactions
|
|
84
|
-
};
|
|
85
|
-
return data;
|
|
1
|
+
import { QueryIds, XWAPaths } from '../Types/index.js';
|
|
2
|
+
import { generateProfilePicture } from '../Utils/messages-media.js';
|
|
3
|
+
import { getBinaryNodeChild } from '../WABinary/index.js';
|
|
4
|
+
import { executeWMexQuery as genericExecuteWMexQuery } from './mex.js';
|
|
5
|
+
const parseNewsletterCreateResponse = (response) => {
|
|
6
|
+
const { id, thread_metadata: thread, viewer_metadata: viewer } = response;
|
|
7
|
+
return {
|
|
8
|
+
id: id,
|
|
9
|
+
owner: undefined,
|
|
10
|
+
name: thread.name.text,
|
|
11
|
+
creation_time: parseInt(thread.creation_time, 10),
|
|
12
|
+
description: thread.description.text,
|
|
13
|
+
invite: thread.invite,
|
|
14
|
+
subscribers: parseInt(thread.subscribers_count, 10),
|
|
15
|
+
verification: thread.verification,
|
|
16
|
+
picture: {
|
|
17
|
+
id: thread.picture.id,
|
|
18
|
+
directPath: thread.picture.direct_path
|
|
19
|
+
},
|
|
20
|
+
mute_state: viewer.mute
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
const parseNewsletterMetadata = (result) => {
|
|
24
|
+
if (typeof result !== 'object' || result === null) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
if ('id' in result && typeof result.id === 'string') {
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
if ('result' in result && typeof result.result === 'object' && result.result !== null && 'id' in result.result) {
|
|
31
|
+
return result.result;
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
};
|
|
35
|
+
export const makeNewsletterSocket = (sock) => {
|
|
36
|
+
const { query, generateMessageTag } = sock;
|
|
37
|
+
const executeWMexQuery = (variables, queryId, dataPath) => {
|
|
38
|
+
return genericExecuteWMexQuery(variables, queryId, dataPath, query, generateMessageTag);
|
|
39
|
+
};
|
|
40
|
+
const newsletterUpdate = async (jid, updates) => {
|
|
41
|
+
const variables = {
|
|
42
|
+
newsletter_id: jid,
|
|
43
|
+
updates: {
|
|
44
|
+
...updates,
|
|
45
|
+
settings: null
|
|
86
46
|
}
|
|
87
|
-
}
|
|
47
|
+
};
|
|
48
|
+
return executeWMexQuery(variables, QueryIds.UPDATE_METADATA, 'xwa2_newsletter_update');
|
|
88
49
|
};
|
|
89
50
|
return {
|
|
90
51
|
...sock,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
52
|
+
newsletterCreate: async (name, description) => {
|
|
53
|
+
const variables = {
|
|
54
|
+
input: {
|
|
55
|
+
name,
|
|
56
|
+
description: description ?? null
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
const rawResponse = await executeWMexQuery(variables, QueryIds.CREATE, XWAPaths.xwa2_newsletter_create);
|
|
60
|
+
return parseNewsletterCreateResponse(rawResponse);
|
|
95
61
|
},
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
});
|
|
62
|
+
newsletterUpdate,
|
|
63
|
+
newsletterSubscribers: async (jid) => {
|
|
64
|
+
return executeWMexQuery({ newsletter_id: jid }, QueryIds.SUBSCRIBERS, XWAPaths.xwa2_newsletter_subscribers);
|
|
100
65
|
},
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
66
|
+
newsletterMetadata: async (type, key) => {
|
|
67
|
+
const variables = {
|
|
68
|
+
fetch_creation_time: true,
|
|
69
|
+
fetch_full_image: true,
|
|
70
|
+
fetch_viewer_metadata: true,
|
|
71
|
+
input: {
|
|
72
|
+
key,
|
|
73
|
+
type: type.toUpperCase()
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const result = await executeWMexQuery(variables, QueryIds.METADATA, XWAPaths.xwa2_newsletter_metadata);
|
|
77
|
+
return parseNewsletterMetadata(result);
|
|
105
78
|
},
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
updates: { name, settings: null }
|
|
109
|
-
});
|
|
79
|
+
newsletterFollow: (jid) => {
|
|
80
|
+
return executeWMexQuery({ newsletter_id: jid }, QueryIds.FOLLOW, XWAPaths.xwa2_newsletter_follow);
|
|
110
81
|
},
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
await newsletterWMexQuery(jid, QueryIds.JOB_MUTATION, {
|
|
114
|
-
updates: { picture: img.toString('base64'), settings: null }
|
|
115
|
-
});
|
|
82
|
+
newsletterUnfollow: (jid) => {
|
|
83
|
+
return executeWMexQuery({ newsletter_id: jid }, QueryIds.UNFOLLOW, XWAPaths.xwa2_newsletter_unfollow);
|
|
116
84
|
},
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
85
|
+
newsletterMute: (jid) => {
|
|
86
|
+
return executeWMexQuery({ newsletter_id: jid }, QueryIds.MUTE, XWAPaths.xwa2_newsletter_mute_v2);
|
|
87
|
+
},
|
|
88
|
+
newsletterUnmute: (jid) => {
|
|
89
|
+
return executeWMexQuery({ newsletter_id: jid }, QueryIds.UNMUTE, XWAPaths.xwa2_newsletter_unmute_v2);
|
|
121
90
|
},
|
|
122
|
-
|
|
123
|
-
await
|
|
91
|
+
newsletterUpdateName: async (jid, name) => {
|
|
92
|
+
return await newsletterUpdate(jid, { name });
|
|
124
93
|
},
|
|
125
|
-
|
|
126
|
-
await
|
|
94
|
+
newsletterUpdateDescription: async (jid, description) => {
|
|
95
|
+
return await newsletterUpdate(jid, { description });
|
|
127
96
|
},
|
|
128
|
-
|
|
129
|
-
await
|
|
97
|
+
newsletterUpdatePicture: async (jid, content) => {
|
|
98
|
+
const { img } = await generateProfilePicture(content);
|
|
99
|
+
return await newsletterUpdate(jid, { picture: img.toString('base64') });
|
|
130
100
|
},
|
|
131
|
-
|
|
132
|
-
await
|
|
101
|
+
newsletterRemovePicture: async (jid) => {
|
|
102
|
+
return await newsletterUpdate(jid, { picture: '' });
|
|
133
103
|
},
|
|
134
|
-
|
|
104
|
+
newsletterReactMessage: async (jid, serverId, reaction) => {
|
|
135
105
|
await query({
|
|
106
|
+
tag: 'message',
|
|
107
|
+
attrs: {
|
|
108
|
+
to: jid,
|
|
109
|
+
...(reaction ? {} : { edit: '7' }),
|
|
110
|
+
type: 'reaction',
|
|
111
|
+
server_id: serverId,
|
|
112
|
+
id: generateMessageTag()
|
|
113
|
+
},
|
|
114
|
+
content: [
|
|
115
|
+
{
|
|
116
|
+
tag: 'reaction',
|
|
117
|
+
attrs: reaction ? { code: reaction } : {}
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
});
|
|
121
|
+
},
|
|
122
|
+
newsletterFetchMessages: async (jid, count, since, after) => {
|
|
123
|
+
const messageUpdateAttrs = {
|
|
124
|
+
count: count.toString()
|
|
125
|
+
};
|
|
126
|
+
if (typeof since === 'number') {
|
|
127
|
+
messageUpdateAttrs.since = since.toString();
|
|
128
|
+
}
|
|
129
|
+
if (after) {
|
|
130
|
+
messageUpdateAttrs.after = after.toString();
|
|
131
|
+
}
|
|
132
|
+
const result = await query({
|
|
136
133
|
tag: 'iq',
|
|
137
134
|
attrs: {
|
|
138
|
-
to: WABinary_1.S_WHATSAPP_NET,
|
|
139
|
-
xmlns: 'tos',
|
|
140
135
|
id: generateMessageTag(),
|
|
141
|
-
type: '
|
|
136
|
+
type: 'get',
|
|
137
|
+
xmlns: 'newsletter',
|
|
138
|
+
to: jid
|
|
142
139
|
},
|
|
143
140
|
content: [
|
|
144
141
|
{
|
|
145
|
-
tag: '
|
|
146
|
-
attrs:
|
|
147
|
-
id: '20601218',
|
|
148
|
-
stage: '5'
|
|
149
|
-
},
|
|
150
|
-
content: []
|
|
142
|
+
tag: 'message_updates',
|
|
143
|
+
attrs: messageUpdateAttrs
|
|
151
144
|
}
|
|
152
145
|
]
|
|
153
146
|
});
|
|
154
|
-
|
|
155
|
-
input: { name, description }
|
|
156
|
-
});
|
|
157
|
-
return (0, exports.extractNewsletterMetadata)(result, true);
|
|
147
|
+
return result;
|
|
158
148
|
},
|
|
159
|
-
|
|
160
|
-
const result = await
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
149
|
+
subscribeNewsletterUpdates: async (jid) => {
|
|
150
|
+
const result = await query({
|
|
151
|
+
tag: 'iq',
|
|
152
|
+
attrs: {
|
|
153
|
+
id: generateMessageTag(),
|
|
154
|
+
type: 'set',
|
|
155
|
+
xmlns: 'newsletter',
|
|
156
|
+
to: jid
|
|
165
157
|
},
|
|
166
|
-
|
|
167
|
-
fetch_full_image: true,
|
|
168
|
-
fetch_creation_time: true
|
|
158
|
+
content: [{ tag: 'live_updates', attrs: {}, content: [] }]
|
|
169
159
|
});
|
|
170
|
-
|
|
160
|
+
const liveUpdatesNode = getBinaryNodeChild(result, 'live_updates');
|
|
161
|
+
const duration = liveUpdatesNode?.attrs?.duration;
|
|
162
|
+
return duration ? { duration: duration } : null;
|
|
171
163
|
},
|
|
172
164
|
newsletterAdminCount: async (jid) => {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
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();
|
|
176
|
-
return JSON.parse(buff).data[Types_1.XWAPaths.ADMIN_COUNT].admin_count;
|
|
177
|
-
},
|
|
178
|
-
/**user is Lid, not Jid */
|
|
179
|
-
newsletterChangeOwner: async (jid, user) => {
|
|
180
|
-
await newsletterWMexQuery(jid, QueryIds.CHANGE_OWNER, {
|
|
181
|
-
user_id: user
|
|
182
|
-
});
|
|
165
|
+
const response = await executeWMexQuery({ newsletter_id: jid }, QueryIds.ADMIN_COUNT, XWAPaths.xwa2_newsletter_admin_count);
|
|
166
|
+
return response.admin_count;
|
|
183
167
|
},
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
await newsletterWMexQuery(jid, QueryIds.DEMOTE, {
|
|
187
|
-
user_id: user
|
|
188
|
-
});
|
|
189
|
-
},
|
|
190
|
-
newsletterDelete: async (jid) => {
|
|
191
|
-
await newsletterWMexQuery(jid, QueryIds.DELETE);
|
|
168
|
+
newsletterChangeOwner: async (jid, newOwnerJid) => {
|
|
169
|
+
await executeWMexQuery({ newsletter_id: jid, user_id: newOwnerJid }, QueryIds.CHANGE_OWNER, XWAPaths.xwa2_newsletter_change_owner);
|
|
192
170
|
},
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
await query({
|
|
196
|
-
tag: 'message',
|
|
197
|
-
attrs: { to: jid, ...(!code ? { edit: '7' } : {}), type: 'reaction', server_id, id: (0, Utils_1.generateMessageID)() },
|
|
198
|
-
content: [{
|
|
199
|
-
tag: 'reaction',
|
|
200
|
-
attrs: code ? { code } : {}
|
|
201
|
-
}]
|
|
202
|
-
});
|
|
171
|
+
newsletterDemote: async (jid, userJid) => {
|
|
172
|
+
await executeWMexQuery({ newsletter_id: jid, user_id: userJid }, QueryIds.DEMOTE, XWAPaths.xwa2_newsletter_demote);
|
|
203
173
|
},
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
{
|
|
207
|
-
tag: 'messages',
|
|
208
|
-
attrs: { type, ...(type === 'invite' ? { key } : { jid: key }), count: count.toString(), after: (after === null || after === void 0 ? void 0 : after.toString()) || '100' }
|
|
209
|
-
}
|
|
210
|
-
]);
|
|
211
|
-
return await parseFetchedUpdates(result, 'messages');
|
|
212
|
-
},
|
|
213
|
-
newsletterFetchUpdates: async (jid, count, after, since) => {
|
|
214
|
-
const result = await newsletterQuery(jid, 'get', [
|
|
215
|
-
{
|
|
216
|
-
tag: 'message_updates',
|
|
217
|
-
attrs: { count: count.toString(), after: (after === null || after === void 0 ? void 0 : after.toString()) || '100', since: (since === null || since === void 0 ? void 0 : since.toString()) || '0' }
|
|
218
|
-
}
|
|
219
|
-
]);
|
|
220
|
-
return await parseFetchedUpdates(result, 'updates');
|
|
174
|
+
newsletterDelete: async (jid) => {
|
|
175
|
+
await executeWMexQuery({ newsletter_id: jid }, QueryIds.DELETE, XWAPaths.xwa2_newsletter_delete_v2);
|
|
221
176
|
}
|
|
222
177
|
};
|
|
223
178
|
};
|
|
224
|
-
|
|
225
|
-
const extractNewsletterMetadata = (node, isCreate) => {
|
|
226
|
-
var _a, _b, _c, _d;
|
|
227
|
-
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();
|
|
228
|
-
const metadataPath = JSON.parse(result).data[isCreate ? Types_1.XWAPaths.CREATE : Types_1.XWAPaths.NEWSLETTER];
|
|
229
|
-
const metadata = {
|
|
230
|
-
id: metadataPath.id,
|
|
231
|
-
state: metadataPath.state.type,
|
|
232
|
-
creation_time: +metadataPath.thread_metadata.creation_time,
|
|
233
|
-
name: metadataPath.thread_metadata.name.text,
|
|
234
|
-
nameTime: +metadataPath.thread_metadata.name.update_time,
|
|
235
|
-
description: metadataPath.thread_metadata.description.text,
|
|
236
|
-
descriptionTime: +metadataPath.thread_metadata.description.update_time,
|
|
237
|
-
invite: metadataPath.thread_metadata.invite,
|
|
238
|
-
handle: metadataPath.thread_metadata.handle,
|
|
239
|
-
picture: ((_c = metadataPath.thread_metadata.picture) === null || _c === void 0 ? void 0 : _c.direct_path) || null,
|
|
240
|
-
preview: ((_d = metadataPath.thread_metadata.preview) === null || _d === void 0 ? void 0 : _d.direct_path) || null,
|
|
241
|
-
reaction_codes: metadataPath.thread_metadata.settings.reaction_codes.value,
|
|
242
|
-
subscribers: +metadataPath.thread_metadata.subscribers_count,
|
|
243
|
-
verification: metadataPath.thread_metadata.verification,
|
|
244
|
-
viewer_metadata: metadataPath.viewer_metadata
|
|
245
|
-
};
|
|
246
|
-
return metadata;
|
|
247
|
-
};
|
|
248
|
-
exports.extractNewsletterMetadata = extractNewsletterMetadata;
|
|
179
|
+
//# sourceMappingURL=newsletter.js.map
|