supunmd-bail 2.1.1 → 2.1.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/LICENSE +1 -1
- package/README.md +428 -0
- package/WAProto/index.js +130529 -45236
- package/engine-requirements.js +1 -1
- package/lib/Defaults/baileys-version.json +1 -1
- package/lib/Defaults/index.d.ts +9 -18
- package/lib/Defaults/index.js +136 -104
- package/lib/Defaults/phonenumber-mcc.json +223 -0
- package/lib/Signal/Group/ciphertext-message.d.ts +0 -1
- package/lib/Signal/Group/ciphertext-message.js +5 -2
- package/lib/Signal/Group/group-session-builder.d.ts +3 -4
- package/lib/Signal/Group/group-session-builder.js +41 -7
- package/lib/Signal/Group/group_cipher.d.ts +4 -4
- package/lib/Signal/Group/group_cipher.js +51 -37
- package/lib/Signal/Group/index.d.ts +11 -12
- package/lib/Signal/Group/index.js +57 -12
- package/lib/Signal/Group/keyhelper.d.ts +1 -2
- package/lib/Signal/Group/keyhelper.js +44 -7
- package/lib/Signal/Group/queue-job.d.ts +0 -1
- package/lib/Signal/Group/queue-job.js +5 -2
- package/lib/Signal/Group/sender-chain-key.d.ts +2 -3
- package/lib/Signal/Group/sender-chain-key.js +15 -7
- package/lib/Signal/Group/sender-key-distribution-message.d.ts +1 -2
- package/lib/Signal/Group/sender-key-distribution-message.js +11 -8
- package/lib/Signal/Group/sender-key-message.d.ts +1 -2
- package/lib/Signal/Group/sender-key-message.js +12 -9
- package/lib/Signal/Group/sender-key-name.d.ts +0 -1
- package/lib/Signal/Group/sender-key-name.js +5 -2
- package/lib/Signal/Group/sender-key-record.d.ts +2 -3
- package/lib/Signal/Group/sender-key-record.js +21 -9
- package/lib/Signal/Group/sender-key-state.d.ts +6 -7
- package/lib/Signal/Group/sender-key-state.js +42 -27
- package/lib/Signal/Group/sender-message-key.d.ts +0 -1
- package/lib/Signal/Group/sender-message-key.js +7 -4
- package/lib/Signal/libsignal.d.ts +3 -5
- package/lib/Signal/libsignal.js +90 -258
- package/lib/Socket/Client/{types.d.ts → abstract-socket-client.d.ts} +3 -2
- package/lib/Socket/Client/abstract-socket-client.js +13 -0
- package/lib/Socket/Client/index.d.ts +3 -3
- package/lib/Socket/Client/index.js +19 -3
- package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
- package/lib/Socket/Client/mobile-socket-client.js +65 -0
- package/lib/Socket/Client/{websocket.d.ts → web-socket-client.d.ts} +1 -2
- package/lib/Socket/Client/web-socket-client.js +62 -0
- package/lib/Socket/business.d.ts +108 -125
- package/lib/Socket/business.js +43 -159
- package/lib/Socket/chats.d.ts +239 -70
- package/lib/Socket/chats.js +384 -363
- package/lib/Socket/dugong.d.ts +254 -0
- package/lib/Socket/dugong.js +484 -0
- package/lib/Socket/groups.d.ts +56 -78
- package/lib/Socket/groups.js +96 -106
- package/lib/Socket/index.d.ts +115 -173
- package/lib/Socket/index.js +10 -17
- package/lib/Socket/messages-recv.d.ts +79 -91
- package/lib/Socket/messages-recv.js +521 -639
- package/lib/Socket/messages-send.d.ts +91 -111
- package/lib/Socket/messages-send.js +438 -599
- package/lib/Socket/newsletter.d.ts +84 -97
- package/lib/Socket/newsletter.js +239 -145
- package/lib/Socket/registration.d.ts +267 -0
- package/lib/Socket/registration.js +166 -0
- package/lib/Socket/socket.d.ts +18 -26
- package/lib/Socket/socket.js +230 -448
- package/lib/Socket/usync.d.ts +16 -17
- package/lib/Socket/usync.js +26 -19
- package/lib/Store/index.d.ts +3 -0
- package/lib/Store/index.js +10 -0
- package/lib/Store/make-cache-manager-store.d.ts +13 -0
- package/lib/Store/make-cache-manager-store.js +83 -0
- package/lib/Store/make-in-memory-store.d.ts +118 -0
- package/lib/Store/make-in-memory-store.js +427 -0
- package/lib/Store/make-ordered-dictionary.d.ts +13 -0
- package/lib/Store/make-ordered-dictionary.js +81 -0
- package/lib/Store/object-repository.d.ts +10 -0
- package/lib/Store/object-repository.js +27 -0
- package/lib/Types/Auth.d.ts +12 -13
- package/lib/Types/Auth.js +2 -2
- package/lib/Types/Call.d.ts +1 -2
- package/lib/Types/Call.js +2 -2
- package/lib/Types/Chat.d.ts +13 -34
- package/lib/Types/Chat.js +4 -8
- package/lib/Types/Contact.d.ts +1 -6
- package/lib/Types/Contact.js +2 -2
- package/lib/Types/Events.d.ts +15 -60
- package/lib/Types/Events.js +2 -2
- package/lib/Types/GroupMetadata.d.ts +5 -17
- package/lib/Types/GroupMetadata.js +2 -2
- package/lib/Types/Label.d.ts +0 -12
- package/lib/Types/Label.js +5 -3
- package/lib/Types/LabelAssociation.d.ts +0 -1
- package/lib/Types/LabelAssociation.js +5 -3
- package/lib/Types/Message.d.ts +54 -84
- package/lib/Types/Message.js +9 -11
- package/lib/Types/Newsletter.d.ts +98 -130
- package/lib/Types/Newsletter.js +38 -31
- package/lib/Types/Product.d.ts +1 -2
- package/lib/Types/Product.js +2 -2
- package/lib/Types/Signal.d.ts +1 -20
- package/lib/Types/Signal.js +2 -2
- package/lib/Types/Socket.d.ts +25 -47
- package/lib/Types/Socket.js +2 -3
- package/lib/Types/State.d.ts +2 -14
- package/lib/Types/State.js +2 -13
- package/lib/Types/USync.d.ts +2 -3
- package/lib/Types/USync.js +2 -2
- package/lib/Types/index.d.ts +14 -22
- package/lib/Types/index.js +31 -15
- package/lib/Utils/auth-utils.d.ts +6 -7
- package/lib/Utils/auth-utils.js +148 -199
- package/lib/Utils/baileys-event-stream.d.ts +1 -2
- package/lib/Utils/baileys-event-stream.js +22 -15
- package/lib/Utils/business.d.ts +2 -3
- package/lib/Utils/business.js +69 -66
- package/lib/Utils/chat-utils.d.ts +22 -21
- package/lib/Utils/chat-utils.js +226 -260
- package/lib/Utils/crypto.d.ts +19 -19
- package/lib/Utils/crypto.js +86 -77
- package/lib/Utils/decode-wa-message.d.ts +8 -37
- package/lib/Utils/decode-wa-message.js +83 -164
- package/lib/Utils/event-buffer.d.ts +8 -7
- package/lib/Utils/event-buffer.js +76 -110
- package/lib/Utils/generics.d.ts +29 -27
- package/lib/Utils/generics.js +210 -168
- package/lib/Utils/history.d.ts +8 -12
- package/lib/Utils/history.js +46 -34
- package/lib/Utils/index.d.ts +17 -20
- package/lib/Utils/index.js +33 -20
- package/lib/Utils/link-preview.d.ts +5 -5
- package/lib/Utils/link-preview.js +22 -14
- package/lib/Utils/logger.d.ts +3 -11
- package/lib/Utils/logger.js +7 -3
- package/lib/Utils/lt-hash.d.ts +8 -9
- package/lib/Utils/lt-hash.js +28 -25
- package/lib/Utils/make-mutex.d.ts +2 -3
- package/lib/Utils/make-mutex.js +10 -7
- package/lib/Utils/messages-media.d.ts +44 -42
- package/lib/Utils/messages-media.js +475 -319
- package/lib/Utils/messages.d.ts +18 -17
- package/lib/Utils/messages.js +259 -383
- package/lib/Utils/noise-handler.d.ts +15 -14
- package/lib/Utils/noise-handler.js +38 -30
- package/lib/Utils/process-message.d.ts +13 -14
- package/lib/Utils/process-message.js +147 -239
- package/lib/Utils/signal.d.ts +5 -7
- package/lib/Utils/signal.js +72 -78
- package/lib/Utils/use-multi-file-auth-state.d.ts +2 -2
- package/lib/Utils/use-multi-file-auth-state.js +27 -29
- package/lib/Utils/validate-connection.d.ts +7 -7
- package/lib/Utils/validate-connection.js +106 -72
- package/lib/WABinary/constants.d.ts +27 -25
- package/lib/WABinary/constants.js +20 -1281
- package/lib/WABinary/decode.d.ts +5 -5
- package/lib/WABinary/decode.js +42 -28
- package/lib/WABinary/encode.d.ts +3 -3
- package/lib/WABinary/encode.js +154 -105
- package/lib/WABinary/generic-utils.d.ts +7 -5
- package/lib/WABinary/generic-utils.js +63 -56
- package/lib/WABinary/index.d.ts +5 -6
- package/lib/WABinary/index.js +21 -6
- package/lib/WABinary/jid-utils.d.ts +8 -25
- package/lib/WABinary/jid-utils.js +40 -74
- package/lib/WABinary/types.d.ts +1 -2
- package/lib/WABinary/types.js +2 -2
- package/lib/WAM/BinaryInfo.d.ts +11 -3
- package/lib/WAM/BinaryInfo.js +5 -2
- package/lib/WAM/constants.d.ts +3 -5
- package/lib/WAM/constants.js +11958 -19461
- package/lib/WAM/encode.d.ts +3 -3
- package/lib/WAM/encode.js +22 -17
- package/lib/WAM/index.d.ts +3 -4
- package/lib/WAM/index.js +19 -4
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +3 -4
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +11 -8
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +2 -3
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +14 -11
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +2 -3
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +12 -9
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +2 -3
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +13 -9
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +3 -4
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +22 -20
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +3 -5
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +8 -13
- package/lib/WAUSync/Protocols/index.d.ts +4 -5
- package/lib/WAUSync/Protocols/index.js +20 -5
- package/lib/WAUSync/USyncQuery.d.ts +4 -5
- package/lib/WAUSync/USyncQuery.js +35 -40
- package/lib/WAUSync/USyncUser.d.ts +5 -6
- package/lib/WAUSync/USyncUser.js +5 -2
- package/lib/WAUSync/index.d.ts +3 -4
- package/lib/WAUSync/index.js +19 -4
- package/lib/index.d.ts +9 -19
- package/lib/index.js +47 -24
- package/package.json +109 -99
- package/WAProto/GenerateStatics.sh +0 -3
- package/WAProto/WAProto.proto +0 -5519
- package/WAProto/fix-imports.js +0 -29
- package/WAProto/index.d.ts +0 -11969
- package/lib/Signal/lid-mapping.d.ts +0 -23
- package/lib/Signal/lid-mapping.js +0 -171
- package/lib/Socket/Client/types.js +0 -11
- package/lib/Socket/Client/websocket.js +0 -50
- package/lib/Socket/communities.d.ts +0 -244
- package/lib/Socket/communities.js +0 -431
- package/lib/Socket/mex.d.ts +0 -3
- package/lib/Socket/mex.js +0 -42
- package/lib/Types/Bussines.d.ts +0 -25
- package/lib/Types/Bussines.js +0 -2
- package/lib/Utils/browser-utils.d.ts +0 -4
- package/lib/Utils/browser-utils.js +0 -28
- package/lib/Utils/message-retry-manager.d.ts +0 -82
- package/lib/Utils/message-retry-manager.js +0 -149
- package/lib/Utils/pre-key-manager.d.ts +0 -28
- package/lib/Utils/pre-key-manager.js +0 -106
- /package/lib/{supun → supunmd} +0 -0
package/lib/Socket/groups.js
CHANGED
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractGroupMetadata = exports.makeGroupsSocket = void 0;
|
|
4
|
+
const WAProto_1 = require("../../WAProto");
|
|
5
|
+
const Types_1 = require("../Types");
|
|
6
|
+
const Utils_1 = require("../Utils");
|
|
7
|
+
const WABinary_1 = require("../WABinary");
|
|
8
|
+
const chats_1 = require("./chats");
|
|
9
|
+
const WAUSync_1 = require("../WAUSync");
|
|
10
|
+
const makeGroupsSocket = (config) => {
|
|
11
|
+
const sock = (0, chats_1.makeChatsSocket)(config);
|
|
8
12
|
const { authState, ev, query, upsertMessage } = sock;
|
|
9
|
-
const groupQuery = async (jid, type, content) => query({
|
|
13
|
+
const groupQuery = async (jid, type, content) => (query({
|
|
10
14
|
tag: 'iq',
|
|
11
15
|
attrs: {
|
|
12
16
|
type,
|
|
13
17
|
xmlns: 'w:g2',
|
|
14
|
-
to: jid
|
|
18
|
+
to: jid,
|
|
15
19
|
},
|
|
16
20
|
content
|
|
17
|
-
});
|
|
21
|
+
}));
|
|
18
22
|
const groupMetadata = async (jid) => {
|
|
19
23
|
const result = await groupQuery(jid, 'get', [{ tag: 'query', attrs: { request: 'interactive' } }]);
|
|
20
|
-
return extractGroupMetadata(result);
|
|
24
|
+
return (0, exports.extractGroupMetadata)(result);
|
|
21
25
|
};
|
|
22
26
|
const groupFetchAllParticipating = async () => {
|
|
23
27
|
const result = await query({
|
|
@@ -25,7 +29,7 @@ export const makeGroupsSocket = (config) => {
|
|
|
25
29
|
attrs: {
|
|
26
30
|
to: '@g.us',
|
|
27
31
|
xmlns: 'w:g2',
|
|
28
|
-
type: 'get'
|
|
32
|
+
type: 'get',
|
|
29
33
|
},
|
|
30
34
|
content: [
|
|
31
35
|
{
|
|
@@ -39,11 +43,11 @@ export const makeGroupsSocket = (config) => {
|
|
|
39
43
|
]
|
|
40
44
|
});
|
|
41
45
|
const data = {};
|
|
42
|
-
const groupsChild = getBinaryNodeChild(result, 'groups');
|
|
46
|
+
const groupsChild = (0, WABinary_1.getBinaryNodeChild)(result, 'groups');
|
|
43
47
|
if (groupsChild) {
|
|
44
|
-
const groups = getBinaryNodeChildren(groupsChild, 'group');
|
|
48
|
+
const groups = (0, WABinary_1.getBinaryNodeChildren)(groupsChild, 'group');
|
|
45
49
|
for (const groupNode of groups) {
|
|
46
|
-
const meta = extractGroupMetadata({
|
|
50
|
+
const meta = (0, exports.extractGroupMetadata)({
|
|
47
51
|
tag: 'result',
|
|
48
52
|
attrs: {},
|
|
49
53
|
content: [groupNode]
|
|
@@ -51,12 +55,11 @@ export const makeGroupsSocket = (config) => {
|
|
|
51
55
|
data[meta.id] = meta;
|
|
52
56
|
}
|
|
53
57
|
}
|
|
54
|
-
// TODO: properly parse LID / PN DATA
|
|
55
58
|
sock.ev.emit('groups.update', Object.values(data));
|
|
56
59
|
return data;
|
|
57
60
|
};
|
|
58
61
|
sock.ws.on('CB:ib,,dirty', async (node) => {
|
|
59
|
-
const { attrs } = getBinaryNodeChild(node, 'dirty');
|
|
62
|
+
const { attrs } = (0, WABinary_1.getBinaryNodeChild)(node, 'dirty');
|
|
60
63
|
if (attrs.type !== 'groups') {
|
|
61
64
|
return;
|
|
62
65
|
}
|
|
@@ -67,7 +70,7 @@ export const makeGroupsSocket = (config) => {
|
|
|
67
70
|
...sock,
|
|
68
71
|
groupMetadata,
|
|
69
72
|
groupCreate: async (subject, participants) => {
|
|
70
|
-
const key =
|
|
73
|
+
const key = (0, Utils_1.generateMessageID)();
|
|
71
74
|
const result = await groupQuery('@g.us', 'set', [
|
|
72
75
|
{
|
|
73
76
|
tag: 'create',
|
|
@@ -81,14 +84,16 @@ export const makeGroupsSocket = (config) => {
|
|
|
81
84
|
}))
|
|
82
85
|
}
|
|
83
86
|
]);
|
|
84
|
-
return extractGroupMetadata(result);
|
|
87
|
+
return (0, exports.extractGroupMetadata)(result);
|
|
85
88
|
},
|
|
86
89
|
groupLeave: async (id) => {
|
|
87
90
|
await groupQuery('@g.us', 'set', [
|
|
88
91
|
{
|
|
89
92
|
tag: 'leave',
|
|
90
93
|
attrs: {},
|
|
91
|
-
content: [
|
|
94
|
+
content: [
|
|
95
|
+
{ tag: 'group', attrs: { id } }
|
|
96
|
+
]
|
|
92
97
|
}
|
|
93
98
|
]);
|
|
94
99
|
},
|
|
@@ -108,13 +113,12 @@ export const makeGroupsSocket = (config) => {
|
|
|
108
113
|
attrs: {}
|
|
109
114
|
}
|
|
110
115
|
]);
|
|
111
|
-
const node = getBinaryNodeChild(result, 'membership_approval_requests');
|
|
112
|
-
const participants = getBinaryNodeChildren(node, 'membership_approval_request');
|
|
116
|
+
const node = (0, WABinary_1.getBinaryNodeChild)(result, 'membership_approval_requests');
|
|
117
|
+
const participants = (0, WABinary_1.getBinaryNodeChildren)(node, 'membership_approval_request');
|
|
113
118
|
return participants.map(v => v.attrs);
|
|
114
119
|
},
|
|
115
120
|
groupRequestParticipantsUpdate: async (jid, participants, action) => {
|
|
116
|
-
const result = await groupQuery(jid, 'set', [
|
|
117
|
-
{
|
|
121
|
+
const result = await groupQuery(jid, 'set', [{
|
|
118
122
|
tag: 'membership_requests_action',
|
|
119
123
|
attrs: {},
|
|
120
124
|
content: [
|
|
@@ -127,11 +131,10 @@ export const makeGroupsSocket = (config) => {
|
|
|
127
131
|
}))
|
|
128
132
|
}
|
|
129
133
|
]
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
const
|
|
133
|
-
const
|
|
134
|
-
const participantsAffected = getBinaryNodeChildren(nodeAction, 'participant');
|
|
134
|
+
}]);
|
|
135
|
+
const node = (0, WABinary_1.getBinaryNodeChild)(result, 'membership_requests_action');
|
|
136
|
+
const nodeAction = (0, WABinary_1.getBinaryNodeChild)(node, action);
|
|
137
|
+
const participantsAffected = (0, WABinary_1.getBinaryNodeChildren)(nodeAction, 'participant');
|
|
135
138
|
return participantsAffected.map(p => {
|
|
136
139
|
return { status: p.attrs.error || '200', jid: p.attrs.jid };
|
|
137
140
|
});
|
|
@@ -147,52 +150,43 @@ export const makeGroupsSocket = (config) => {
|
|
|
147
150
|
}))
|
|
148
151
|
}
|
|
149
152
|
]);
|
|
150
|
-
const node = getBinaryNodeChild(result, action);
|
|
151
|
-
const participantsAffected = getBinaryNodeChildren(node, 'participant');
|
|
153
|
+
const node = (0, WABinary_1.getBinaryNodeChild)(result, action);
|
|
154
|
+
const participantsAffected = (0, WABinary_1.getBinaryNodeChildren)(node, 'participant');
|
|
152
155
|
return participantsAffected.map(p => {
|
|
153
156
|
return { status: p.attrs.error || '200', jid: p.attrs.jid, content: p };
|
|
154
157
|
});
|
|
155
158
|
},
|
|
156
159
|
groupUpdateDescription: async (jid, description) => {
|
|
160
|
+
var _a;
|
|
157
161
|
const metadata = await groupMetadata(jid);
|
|
158
|
-
const prev = metadata.descId
|
|
162
|
+
const prev = (_a = metadata.descId) !== null && _a !== void 0 ? _a : null;
|
|
159
163
|
await groupQuery(jid, 'set', [
|
|
160
164
|
{
|
|
161
165
|
tag: 'description',
|
|
162
166
|
attrs: {
|
|
163
|
-
...(description ? { id:
|
|
167
|
+
...(description ? { id: (0, Utils_1.generateMessageID)() } : { delete: 'true' }),
|
|
164
168
|
...(prev ? { prev } : {})
|
|
165
169
|
},
|
|
166
|
-
content: description ? [
|
|
170
|
+
content: description ? [
|
|
171
|
+
{ tag: 'body', attrs: {}, content: Buffer.from(description, 'utf-8') }
|
|
172
|
+
] : undefined
|
|
167
173
|
}
|
|
168
174
|
]);
|
|
169
175
|
},
|
|
170
176
|
groupInviteCode: async (jid) => {
|
|
171
177
|
const result = await groupQuery(jid, 'get', [{ tag: 'invite', attrs: {} }]);
|
|
172
|
-
const inviteNode = getBinaryNodeChild(result, 'invite');
|
|
173
|
-
return inviteNode
|
|
178
|
+
const inviteNode = (0, WABinary_1.getBinaryNodeChild)(result, 'invite');
|
|
179
|
+
return inviteNode === null || inviteNode === void 0 ? void 0 : inviteNode.attrs.code;
|
|
174
180
|
},
|
|
175
181
|
groupRevokeInvite: async (jid) => {
|
|
176
182
|
const result = await groupQuery(jid, 'set', [{ tag: 'invite', attrs: {} }]);
|
|
177
|
-
const inviteNode = getBinaryNodeChild(result, 'invite');
|
|
178
|
-
return inviteNode
|
|
183
|
+
const inviteNode = (0, WABinary_1.getBinaryNodeChild)(result, 'invite');
|
|
184
|
+
return inviteNode === null || inviteNode === void 0 ? void 0 : inviteNode.attrs.code;
|
|
179
185
|
},
|
|
180
186
|
groupAcceptInvite: async (code) => {
|
|
181
187
|
const results = await groupQuery('@g.us', 'set', [{ tag: 'invite', attrs: { code } }]);
|
|
182
|
-
const result = getBinaryNodeChild(results, 'group');
|
|
183
|
-
return result
|
|
184
|
-
},
|
|
185
|
-
/**
|
|
186
|
-
* revoke a v4 invite for someone
|
|
187
|
-
* @param groupJid group jid
|
|
188
|
-
* @param invitedJid jid of person you invited
|
|
189
|
-
* @returns true if successful
|
|
190
|
-
*/
|
|
191
|
-
groupRevokeInviteV4: async (groupJid, invitedJid) => {
|
|
192
|
-
const result = await groupQuery(groupJid, 'set', [
|
|
193
|
-
{ tag: 'revoke', attrs: {}, content: [{ tag: 'participant', attrs: { jid: invitedJid } }] }
|
|
194
|
-
]);
|
|
195
|
-
return !!result;
|
|
188
|
+
const result = (0, WABinary_1.getBinaryNodeChild)(results, 'group');
|
|
189
|
+
return result === null || result === void 0 ? void 0 : result.attrs.jid;
|
|
196
190
|
},
|
|
197
191
|
/**
|
|
198
192
|
* accept a GroupInviteMessage
|
|
@@ -201,21 +195,19 @@ export const makeGroupsSocket = (config) => {
|
|
|
201
195
|
*/
|
|
202
196
|
groupAcceptInviteV4: ev.createBufferedFunction(async (key, inviteMessage) => {
|
|
203
197
|
key = typeof key === 'string' ? { remoteJid: key } : key;
|
|
204
|
-
const results = await groupQuery(inviteMessage.groupJid, 'set', [
|
|
205
|
-
{
|
|
198
|
+
const results = await groupQuery(inviteMessage.groupJid, 'set', [{
|
|
206
199
|
tag: 'accept',
|
|
207
200
|
attrs: {
|
|
208
201
|
code: inviteMessage.inviteCode,
|
|
209
202
|
expiration: inviteMessage.inviteExpiration.toString(),
|
|
210
203
|
admin: key.remoteJid
|
|
211
204
|
}
|
|
212
|
-
}
|
|
213
|
-
]);
|
|
205
|
+
}]);
|
|
214
206
|
// if we have the full message key
|
|
215
207
|
// update the invite message to be expired
|
|
216
208
|
if (key.id) {
|
|
217
209
|
// create new invite message that is expired
|
|
218
|
-
inviteMessage = proto.Message.GroupInviteMessage.fromObject(inviteMessage);
|
|
210
|
+
inviteMessage = WAProto_1.proto.Message.GroupInviteMessage.fromObject(inviteMessage);
|
|
219
211
|
inviteMessage.inviteExpiration = 0;
|
|
220
212
|
inviteMessage.inviteCode = '';
|
|
221
213
|
ev.emit('messages.update', [
|
|
@@ -233,25 +225,27 @@ export const makeGroupsSocket = (config) => {
|
|
|
233
225
|
await upsertMessage({
|
|
234
226
|
key: {
|
|
235
227
|
remoteJid: inviteMessage.groupJid,
|
|
236
|
-
id:
|
|
228
|
+
id: (0, Utils_1.generateMessageID)(),
|
|
237
229
|
fromMe: false,
|
|
238
|
-
participant: key.remoteJid
|
|
230
|
+
participant: key.remoteJid,
|
|
239
231
|
},
|
|
240
|
-
messageStubType: WAMessageStubType.GROUP_PARTICIPANT_ADD,
|
|
241
|
-
messageStubParameters: [
|
|
232
|
+
messageStubType: Types_1.WAMessageStubType.GROUP_PARTICIPANT_ADD,
|
|
233
|
+
messageStubParameters: [
|
|
234
|
+
authState.creds.me.id
|
|
235
|
+
],
|
|
242
236
|
participant: key.remoteJid,
|
|
243
|
-
messageTimestamp: unixTimestampSeconds()
|
|
237
|
+
messageTimestamp: (0, Utils_1.unixTimestampSeconds)()
|
|
244
238
|
}, 'notify');
|
|
245
239
|
return results.attrs.from;
|
|
246
240
|
}),
|
|
247
241
|
groupGetInviteInfo: async (code) => {
|
|
248
242
|
const results = await groupQuery('@g.us', 'get', [{ tag: 'invite', attrs: { code } }]);
|
|
249
|
-
return extractGroupMetadata(results);
|
|
243
|
+
return (0, exports.extractGroupMetadata)(results);
|
|
250
244
|
},
|
|
251
245
|
groupToggleEphemeral: async (jid, ephemeralExpiration) => {
|
|
252
|
-
const content = ephemeralExpiration
|
|
253
|
-
|
|
254
|
-
|
|
246
|
+
const content = ephemeralExpiration ?
|
|
247
|
+
{ tag: 'ephemeral', attrs: { expiration: ephemeralExpiration.toString() } } :
|
|
248
|
+
{ tag: 'not_ephemeral', attrs: {} };
|
|
255
249
|
await groupQuery(jid, 'set', [content]);
|
|
256
250
|
},
|
|
257
251
|
groupSettingUpdate: async (jid, setting) => {
|
|
@@ -261,67 +255,63 @@ export const makeGroupsSocket = (config) => {
|
|
|
261
255
|
await groupQuery(jid, 'set', [{ tag: 'member_add_mode', attrs: {}, content: mode }]);
|
|
262
256
|
},
|
|
263
257
|
groupJoinApprovalMode: async (jid, mode) => {
|
|
264
|
-
await groupQuery(jid, 'set', [
|
|
265
|
-
{ tag: 'membership_approval_mode', attrs: {}, content: [{ tag: 'group_join', attrs: { state: mode } }] }
|
|
266
|
-
]);
|
|
258
|
+
await groupQuery(jid, 'set', [{ tag: 'membership_approval_mode', attrs: {}, content: [{ tag: 'group_join', attrs: { state: mode } }] }]);
|
|
267
259
|
},
|
|
268
260
|
groupFetchAllParticipating
|
|
269
261
|
};
|
|
270
262
|
};
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
263
|
+
exports.makeGroupsSocket = makeGroupsSocket;
|
|
264
|
+
const extractGroupMetadata = (result) => {
|
|
265
|
+
var _a, _b;
|
|
266
|
+
const group = WABinary_1.getBinaryNodeChild(result, 'group');
|
|
267
|
+
const descChild = WABinary_1.getBinaryNodeChild(group, 'description');
|
|
274
268
|
let desc;
|
|
275
269
|
let descId;
|
|
276
270
|
let descOwner;
|
|
277
|
-
let
|
|
271
|
+
let descOwnerLid;
|
|
278
272
|
let descTime;
|
|
279
273
|
if (descChild) {
|
|
280
|
-
desc = getBinaryNodeChildString(descChild, 'body');
|
|
281
|
-
descOwner = descChild.attrs.
|
|
282
|
-
|
|
283
|
-
|
|
274
|
+
desc = WABinary_1.getBinaryNodeChildString(descChild, 'body');
|
|
275
|
+
descOwner = WABinary_1.jidNormalizedUser(descChild.attrs.participant_pn || descChild.attrs.participant);
|
|
276
|
+
if (group.attrs.addressing_mode === 'lid') {
|
|
277
|
+
descOwnerLid = WABinary_1.jidNormalizedUser(descChild.attrs.participant);
|
|
278
|
+
}
|
|
284
279
|
descId = descChild.attrs.id;
|
|
280
|
+
descTime = descChild.attrs.t ? +descChild.attrs.t : undefined;
|
|
285
281
|
}
|
|
286
|
-
const
|
|
287
|
-
const
|
|
288
|
-
const
|
|
282
|
+
const groupSize = group.attrs.size ? Number(group.attrs.size) : undefined;
|
|
283
|
+
const groupId = group.attrs.id.includes('@') ? group.attrs.id : (0, WABinary_1.jidEncode)(group.attrs.id, 'g.us');
|
|
284
|
+
const eph = WABinary_1.getBinaryNodeChild(group, 'ephemeral')?.attrs.expiration
|
|
285
|
+
const memberAddMode = WABinary_1.getBinaryNodeChildString(group, 'member_add_mode') === 'all_member_add';
|
|
289
286
|
const metadata = {
|
|
290
287
|
id: groupId,
|
|
291
|
-
|
|
292
|
-
addressingMode: group.attrs.addressing_mode === 'lid' ? WAMessageAddressingMode.LID : WAMessageAddressingMode.PN,
|
|
288
|
+
addressingMode: group.attrs.addressing_mode,
|
|
293
289
|
subject: group.attrs.subject,
|
|
294
|
-
subjectOwner: group.attrs.s_o,
|
|
295
|
-
|
|
296
|
-
subjectTime: +group.attrs.s_t,
|
|
297
|
-
size:
|
|
298
|
-
creation: +group.attrs.creation,
|
|
299
|
-
owner: group.attrs.
|
|
300
|
-
|
|
301
|
-
owner_country_code: group.attrs.creator_country_code,
|
|
302
|
-
desc,
|
|
303
|
-
descId,
|
|
290
|
+
subjectOwner: WABinary_1.jidNormalizedUser(group.attrs.s_o_pn || group.attrs.s_o),
|
|
291
|
+
...(group.attrs.addressing_mode === 'lid' ? { subjectOwnerLid: WABinary_1.jidNormalizedUser(group.attrs.s_o) } : {}),
|
|
292
|
+
subjectTime: group.attrs.s_t ? +group.attrs.s_t : undefined,
|
|
293
|
+
size: groupSize || WABinary_1.getBinaryNodeChildren(group, 'participant').length,
|
|
294
|
+
creation: group.attrs.creation ? +group.attrs.creation : undefined,
|
|
295
|
+
owner: WABinary_1.jidNormalizedUser(group.attrs.creator_pn || group.attrs.creator),
|
|
296
|
+
...(group.attrs.addressing_mode === 'lid' ? { ownerLid: WABinary_1.jidNormalizedUser(group.attrs.creator) } : {}),
|
|
304
297
|
descOwner,
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
isCommunityAnnounce: !!getBinaryNodeChild(group, 'default_sub_group'),
|
|
312
|
-
joinApprovalMode: !!getBinaryNodeChild(group, 'membership_approval_mode'),
|
|
298
|
+
descOwnerLid,
|
|
299
|
+
restrict: !!WABinary_1.getBinaryNodeChild(group, 'locked'),
|
|
300
|
+
announce: !!WABinary_1.getBinaryNodeChild(group, 'announcement'),
|
|
301
|
+
isCommunity: !!WABinary_1.getBinaryNodeChild(group, 'parent'),
|
|
302
|
+
isCommunityAnnounce: !!WABinary_1.getBinaryNodeChild(group, 'default_sub_group'),
|
|
303
|
+
joinApprovalMode: !!WABinary_1.getBinaryNodeChild(group, 'membership_approval_mode'),
|
|
313
304
|
memberAddMode,
|
|
314
|
-
participants: getBinaryNodeChildren(group, 'participant').map(({ attrs }) => {
|
|
315
|
-
// TODO: Store LID MAPPINGS
|
|
305
|
+
participants: WABinary_1.getBinaryNodeChildren(group, 'participant').map(({ attrs }) => {
|
|
316
306
|
return {
|
|
317
307
|
id: attrs.jid,
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
admin: (attrs.type || null)
|
|
308
|
+
jid: attrs.phone_number || attrs.jid,
|
|
309
|
+
admin: (attrs.type || null),
|
|
321
310
|
};
|
|
322
311
|
}),
|
|
323
312
|
ephemeralDuration: eph ? +eph : undefined
|
|
324
313
|
};
|
|
325
314
|
return metadata;
|
|
326
315
|
};
|
|
327
|
-
|
|
316
|
+
exports.extractGroupMetadata = extractGroupMetadata;
|
|
317
|
+
|