gifted-baileys 1.5.0 → 1.5.5
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 +1429 -684
- package/package.json +11 -26
- package/src/Defaults/baileys-version.json +3 -0
- package/{lib → src}/Defaults/index.js +16 -8
- package/src/Defaults/index.ts +131 -0
- package/src/Defaults/phonenumber-mcc.json +223 -0
- package/src/Signal/libsignal.js +180 -0
- package/src/Signal/libsignal.ts +141 -0
- package/src/Socket/Client/abstract-socket-client.ts +19 -0
- package/src/Socket/Client/index.ts +3 -0
- package/src/Socket/Client/mobile-socket-client.js +78 -0
- package/src/Socket/Client/mobile-socket-client.ts +66 -0
- package/src/Socket/Client/web-socket-client.js +75 -0
- package/src/Socket/Client/web-socket-client.ts +57 -0
- package/{lib → src}/Socket/business.js +33 -27
- package/src/Socket/business.ts +281 -0
- package/{lib → src}/Socket/chats.js +197 -178
- package/src/Socket/chats.ts +1030 -0
- package/{lib → src}/Socket/groups.js +69 -79
- package/src/Socket/groups.ts +356 -0
- package/{lib → src}/Socket/index.js +1 -4
- package/src/Socket/index.ts +13 -0
- package/{lib → src}/Socket/messages-recv.js +160 -108
- package/src/Socket/messages-recv.ts +985 -0
- package/{lib → src}/Socket/messages-send.js +183 -100
- package/src/Socket/messages-send.ts +871 -0
- package/src/Socket/newsletter.js +227 -0
- package/src/Socket/newsletter.ts +282 -0
- package/{lib → src}/Socket/registration.js +55 -63
- package/src/Socket/registration.ts +250 -0
- package/{lib → src}/Socket/socket.js +107 -66
- package/src/Socket/socket.ts +777 -0
- package/src/Store/index.ts +3 -0
- package/{lib → src}/Store/make-cache-manager-store.js +34 -25
- package/src/Store/make-cache-manager-store.ts +100 -0
- package/{lib → src}/Store/make-in-memory-store.js +51 -61
- package/src/Store/make-in-memory-store.ts +475 -0
- package/src/Store/make-ordered-dictionary.ts +86 -0
- package/{lib → src}/Store/object-repository.js +1 -1
- package/src/Store/object-repository.ts +32 -0
- package/src/Tests/test.app-state-sync.js +204 -0
- package/src/Tests/test.app-state-sync.ts +207 -0
- package/src/Tests/test.event-buffer.js +270 -0
- package/src/Tests/test.event-buffer.ts +319 -0
- package/src/Tests/test.key-store.js +76 -0
- package/src/Tests/test.key-store.ts +92 -0
- package/src/Tests/test.libsignal.js +141 -0
- package/src/Tests/test.libsignal.ts +186 -0
- package/src/Tests/test.media-download.js +93 -0
- package/src/Tests/test.media-download.ts +76 -0
- package/src/Tests/test.messages.js +33 -0
- package/src/Tests/test.messages.ts +37 -0
- package/src/Tests/utils.js +34 -0
- package/src/Tests/utils.ts +36 -0
- package/src/Types/Auth.ts +113 -0
- package/src/Types/Call.ts +15 -0
- package/src/Types/Chat.ts +106 -0
- package/{lib/Types/Contact.d.ts → src/Types/Contact.ts} +9 -8
- package/src/Types/Events.ts +93 -0
- package/src/Types/GroupMetadata.ts +53 -0
- package/{lib → src}/Types/Label.js +1 -1
- package/src/Types/Label.ts +36 -0
- package/{lib → src}/Types/LabelAssociation.js +1 -1
- package/{lib/Types/LabelAssociation.d.ts → src/Types/LabelAssociation.ts} +22 -16
- package/src/Types/Message.ts +288 -0
- package/src/Types/Newsletter.js +32 -0
- package/src/Types/Newsletter.ts +98 -0
- package/src/Types/Product.ts +85 -0
- package/src/Types/Signal.ts +68 -0
- package/{lib/Types/Socket.d.ts → src/Types/Socket.ts} +68 -56
- package/src/Types/State.ts +29 -0
- package/{lib → src}/Types/index.js +2 -1
- package/src/Types/index.ts +59 -0
- package/{lib → src}/Utils/auth-utils.js +95 -76
- package/src/Utils/auth-utils.ts +222 -0
- package/src/Utils/baileys-event-stream.js +92 -0
- package/src/Utils/baileys-event-stream.ts +66 -0
- package/{lib → src}/Utils/business.js +45 -17
- package/src/Utils/business.ts +275 -0
- package/{lib → src}/Utils/chat-utils.js +74 -46
- package/src/Utils/chat-utils.ts +860 -0
- package/{lib → src}/Utils/crypto.js +31 -21
- package/src/Utils/crypto.ts +131 -0
- package/src/Utils/decode-wa-message.js +211 -0
- package/src/Utils/decode-wa-message.ts +228 -0
- package/{lib → src}/Utils/event-buffer.js +13 -4
- package/src/Utils/event-buffer.ts +613 -0
- package/{lib → src}/Utils/generics.js +98 -45
- package/src/Utils/generics.ts +434 -0
- package/{lib → src}/Utils/history.js +39 -10
- package/src/Utils/history.ts +112 -0
- package/src/Utils/index.ts +17 -0
- package/{lib → src}/Utils/link-preview.js +54 -17
- package/src/Utils/link-preview.ts +122 -0
- package/src/Utils/logger.ts +3 -0
- package/src/Utils/lt-hash.ts +61 -0
- package/{lib → src}/Utils/make-mutex.js +13 -4
- package/src/Utils/make-mutex.ts +44 -0
- package/{lib → src}/Utils/messages-media.js +296 -192
- package/src/Utils/messages-media.ts +847 -0
- package/{lib → src}/Utils/messages.js +124 -113
- package/src/Utils/messages.ts +956 -0
- package/{lib → src}/Utils/noise-handler.js +16 -3
- package/src/Utils/noise-handler.ts +197 -0
- package/{lib → src}/Utils/process-message.js +33 -29
- package/src/Utils/process-message.ts +414 -0
- package/{lib → src}/Utils/signal.js +23 -14
- package/src/Utils/signal.ts +177 -0
- package/{lib → src}/Utils/use-multi-file-auth-state.js +28 -19
- package/src/Utils/use-multi-file-auth-state.ts +90 -0
- package/{lib → src}/Utils/validate-connection.js +25 -42
- package/src/Utils/validate-connection.ts +238 -0
- package/src/WABinary/constants.ts +42 -0
- package/{lib → src}/WABinary/decode.js +17 -7
- package/src/WABinary/decode.ts +265 -0
- package/{lib → src}/WABinary/encode.js +17 -7
- package/src/WABinary/encode.ts +236 -0
- package/{lib → src}/WABinary/generic-utils.js +2 -2
- package/src/WABinary/generic-utils.ts +121 -0
- package/src/WABinary/index.ts +5 -0
- package/{lib → src}/WABinary/jid-utils.js +4 -1
- package/src/WABinary/jid-utils.ts +68 -0
- package/src/WABinary/types.ts +17 -0
- package/src/WAM/BinaryInfo.js +13 -0
- package/src/WAM/BinaryInfo.ts +12 -0
- package/src/WAM/constants.js +15350 -0
- package/src/WAM/constants.ts +15382 -0
- package/src/WAM/encode.js +155 -0
- package/src/WAM/encode.ts +174 -0
- package/src/WAM/index.js +19 -0
- package/src/WAM/index.ts +3 -0
- package/src/gifted +1 -0
- package/{lib → src}/index.js +1 -0
- package/src/index.ts +13 -0
- package/lib/Defaults/baileys-version.json +0 -3
- package/lib/Defaults/index.d.ts +0 -284
- package/lib/Defaults/phonenumber-mcc.json +0 -223
- package/lib/Signal/libsignal.d.ts +0 -3
- package/lib/Signal/libsignal.js +0 -152
- package/lib/Socket/Client/abstract-socket-client.d.ts +0 -17
- package/lib/Socket/Client/index.d.ts +0 -3
- 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/business.d.ts +0 -135
- package/lib/Socket/chats.d.ts +0 -79
- package/lib/Socket/groups.d.ts +0 -113
- package/lib/Socket/index.d.ts +0 -137
- package/lib/Socket/messages-recv.d.ts +0 -124
- package/lib/Socket/messages-send.d.ts +0 -119
- package/lib/Socket/registration.d.ts +0 -232
- package/lib/Socket/socket.d.ts +0 -42
- package/lib/Store/index.d.ts +0 -3
- package/lib/Store/make-cache-manager-store.d.ts +0 -13
- package/lib/Store/make-in-memory-store.d.ts +0 -117
- package/lib/Store/make-ordered-dictionary.d.ts +0 -13
- package/lib/Store/object-repository.d.ts +0 -10
- package/lib/Types/Auth.d.ts +0 -108
- package/lib/Types/Call.d.ts +0 -13
- package/lib/Types/Chat.d.ts +0 -102
- package/lib/Types/Events.d.ts +0 -157
- package/lib/Types/GroupMetadata.d.ts +0 -52
- package/lib/Types/Label.d.ts +0 -35
- package/lib/Types/Message.d.ts +0 -261
- package/lib/Types/Product.d.ts +0 -78
- package/lib/Types/Signal.d.ts +0 -57
- package/lib/Types/State.d.ts +0 -27
- package/lib/Types/index.d.ts +0 -56
- package/lib/Utils/auth-utils.d.ts +0 -18
- package/lib/Utils/baileys-event-stream.d.ts +0 -16
- package/lib/Utils/baileys-event-stream.js +0 -63
- package/lib/Utils/business.d.ts +0 -22
- package/lib/Utils/chat-utils.d.ts +0 -71
- package/lib/Utils/crypto.d.ts +0 -41
- package/lib/Utils/decode-wa-message.d.ts +0 -19
- package/lib/Utils/decode-wa-message.js +0 -174
- package/lib/Utils/event-buffer.d.ts +0 -35
- package/lib/Utils/generics.d.ts +0 -94
- package/lib/Utils/history.d.ts +0 -15
- package/lib/Utils/index.d.ts +0 -17
- package/lib/Utils/link-preview.d.ts +0 -21
- package/lib/Utils/logger.d.ts +0 -4
- package/lib/Utils/lt-hash.d.ts +0 -12
- package/lib/Utils/make-mutex.d.ts +0 -7
- package/lib/Utils/messages-media.d.ts +0 -107
- package/lib/Utils/messages.d.ts +0 -76
- package/lib/Utils/noise-handler.d.ts +0 -20
- package/lib/Utils/process-message.d.ts +0 -41
- package/lib/Utils/signal.d.ts +0 -32
- package/lib/Utils/use-multi-file-auth-state.d.ts +0 -12
- package/lib/Utils/validate-connection.d.ts +0 -11
- package/lib/WABinary/constants.d.ts +0 -27
- package/lib/WABinary/decode.d.ts +0 -7
- package/lib/WABinary/encode.d.ts +0 -3
- package/lib/WABinary/generic-utils.d.ts +0 -15
- package/lib/WABinary/index.d.ts +0 -5
- package/lib/WABinary/jid-utils.d.ts +0 -29
- package/lib/WABinary/types.d.ts +0 -18
- package/lib/index.d.ts +0 -10
- /package/{lib → src}/Socket/Client/abstract-socket-client.js +0 -0
- /package/{lib → src}/Socket/Client/index.js +0 -0
- /package/{lib → src}/Store/index.js +0 -0
- /package/{lib → src}/Store/make-ordered-dictionary.js +0 -0
- /package/{lib → src}/Types/Auth.js +0 -0
- /package/{lib → src}/Types/Call.js +0 -0
- /package/{lib → src}/Types/Chat.js +0 -0
- /package/{lib → src}/Types/Contact.js +0 -0
- /package/{lib → src}/Types/Events.js +0 -0
- /package/{lib → src}/Types/GroupMetadata.js +0 -0
- /package/{lib → src}/Types/Message.js +0 -0
- /package/{lib → src}/Types/Product.js +0 -0
- /package/{lib → src}/Types/Signal.js +0 -0
- /package/{lib → src}/Types/Socket.js +0 -0
- /package/{lib → src}/Types/State.js +0 -0
- /package/{lib → src}/Utils/index.js +0 -0
- /package/{lib → src}/Utils/logger.js +0 -0
- /package/{lib → src}/Utils/lt-hash.js +0 -0
- /package/{lib → src}/WABinary/constants.js +0 -0
- /package/{lib → src}/WABinary/index.js +0 -0
- /package/{lib → src}/WABinary/types.js +0 -0
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.extractGroupMetadata = exports.makeGroupsSocket = void 0;
|
|
4
13
|
const WAProto_1 = require("../../WAProto");
|
|
@@ -9,21 +18,23 @@ const chats_1 = require("./chats");
|
|
|
9
18
|
const makeGroupsSocket = (config) => {
|
|
10
19
|
const sock = (0, chats_1.makeChatsSocket)(config);
|
|
11
20
|
const { authState, ev, query, upsertMessage } = sock;
|
|
12
|
-
const groupQuery =
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const groupQuery = (jid, type, content) => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
return (query({
|
|
23
|
+
tag: 'iq',
|
|
24
|
+
attrs: {
|
|
25
|
+
type,
|
|
26
|
+
xmlns: 'w:g2',
|
|
27
|
+
to: jid,
|
|
28
|
+
},
|
|
29
|
+
content
|
|
30
|
+
}));
|
|
31
|
+
});
|
|
32
|
+
const groupMetadata = (jid) => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
const result = yield groupQuery(jid, 'get', [{ tag: 'query', attrs: { request: 'interactive' } }]);
|
|
23
34
|
return (0, exports.extractGroupMetadata)(result);
|
|
24
|
-
};
|
|
25
|
-
const groupFetchAllParticipating =
|
|
26
|
-
const result =
|
|
35
|
+
});
|
|
36
|
+
const groupFetchAllParticipating = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
+
const result = yield query({
|
|
27
38
|
tag: 'iq',
|
|
28
39
|
attrs: {
|
|
29
40
|
to: '@g.us',
|
|
@@ -56,21 +67,18 @@ const makeGroupsSocket = (config) => {
|
|
|
56
67
|
}
|
|
57
68
|
sock.ev.emit('groups.update', Object.values(data));
|
|
58
69
|
return data;
|
|
59
|
-
};
|
|
60
|
-
sock.ws.on('CB:ib,,dirty',
|
|
70
|
+
});
|
|
71
|
+
sock.ws.on('CB:ib,,dirty', (node) => __awaiter(void 0, void 0, void 0, function* () {
|
|
61
72
|
const { attrs } = (0, WABinary_1.getBinaryNodeChild)(node, 'dirty');
|
|
62
73
|
if (attrs.type !== 'groups') {
|
|
63
74
|
return;
|
|
64
75
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
});
|
|
68
|
-
return {
|
|
69
|
-
...sock,
|
|
70
|
-
groupMetadata,
|
|
71
|
-
groupCreate: async (subject, participants) => {
|
|
76
|
+
yield groupFetchAllParticipating();
|
|
77
|
+
yield sock.cleanDirtyBits('groups');
|
|
78
|
+
}));
|
|
79
|
+
return Object.assign(Object.assign({}, sock), { groupMetadata, groupCreate: (subject, participants) => __awaiter(void 0, void 0, void 0, function* () {
|
|
72
80
|
const key = (0, Utils_1.generateMessageID)();
|
|
73
|
-
const result =
|
|
81
|
+
const result = yield groupQuery('@g.us', 'set', [
|
|
74
82
|
{
|
|
75
83
|
tag: 'create',
|
|
76
84
|
attrs: {
|
|
@@ -84,9 +92,8 @@ const makeGroupsSocket = (config) => {
|
|
|
84
92
|
}
|
|
85
93
|
]);
|
|
86
94
|
return (0, exports.extractGroupMetadata)(result);
|
|
87
|
-
},
|
|
88
|
-
|
|
89
|
-
await groupQuery('@g.us', 'set', [
|
|
95
|
+
}), groupLeave: (id) => __awaiter(void 0, void 0, void 0, function* () {
|
|
96
|
+
yield groupQuery('@g.us', 'set', [
|
|
90
97
|
{
|
|
91
98
|
tag: 'leave',
|
|
92
99
|
attrs: {},
|
|
@@ -95,18 +102,16 @@ const makeGroupsSocket = (config) => {
|
|
|
95
102
|
]
|
|
96
103
|
}
|
|
97
104
|
]);
|
|
98
|
-
},
|
|
99
|
-
|
|
100
|
-
await groupQuery(jid, 'set', [
|
|
105
|
+
}), groupUpdateSubject: (jid, subject) => __awaiter(void 0, void 0, void 0, function* () {
|
|
106
|
+
yield groupQuery(jid, 'set', [
|
|
101
107
|
{
|
|
102
108
|
tag: 'subject',
|
|
103
109
|
attrs: {},
|
|
104
110
|
content: Buffer.from(subject, 'utf-8')
|
|
105
111
|
}
|
|
106
112
|
]);
|
|
107
|
-
},
|
|
108
|
-
|
|
109
|
-
const result = await groupQuery(jid, 'get', [
|
|
113
|
+
}), groupRequestParticipantsList: (jid) => __awaiter(void 0, void 0, void 0, function* () {
|
|
114
|
+
const result = yield groupQuery(jid, 'get', [
|
|
110
115
|
{
|
|
111
116
|
tag: 'membership_approval_requests',
|
|
112
117
|
attrs: {}
|
|
@@ -115,9 +120,8 @@ const makeGroupsSocket = (config) => {
|
|
|
115
120
|
const node = (0, WABinary_1.getBinaryNodeChild)(result, 'membership_approval_requests');
|
|
116
121
|
const participants = (0, WABinary_1.getBinaryNodeChildren)(node, 'membership_approval_request');
|
|
117
122
|
return participants.map(v => v.attrs);
|
|
118
|
-
},
|
|
119
|
-
|
|
120
|
-
const result = await groupQuery(jid, 'set', [{
|
|
123
|
+
}), groupRequestParticipantsUpdate: (jid, participants, action) => __awaiter(void 0, void 0, void 0, function* () {
|
|
124
|
+
const result = yield groupQuery(jid, 'set', [{
|
|
121
125
|
tag: 'membership_requests_action',
|
|
122
126
|
attrs: {},
|
|
123
127
|
content: [
|
|
@@ -137,9 +141,8 @@ const makeGroupsSocket = (config) => {
|
|
|
137
141
|
return participantsAffected.map(p => {
|
|
138
142
|
return { status: p.attrs.error || '200', jid: p.attrs.jid };
|
|
139
143
|
});
|
|
140
|
-
},
|
|
141
|
-
|
|
142
|
-
const result = await groupQuery(jid, 'set', [
|
|
144
|
+
}), groupParticipantsUpdate: (jid, participants, action) => __awaiter(void 0, void 0, void 0, function* () {
|
|
145
|
+
const result = yield groupQuery(jid, 'set', [
|
|
143
146
|
{
|
|
144
147
|
tag: action,
|
|
145
148
|
attrs: {},
|
|
@@ -154,47 +157,40 @@ const makeGroupsSocket = (config) => {
|
|
|
154
157
|
return participantsAffected.map(p => {
|
|
155
158
|
return { status: p.attrs.error || '200', jid: p.attrs.jid, content: p };
|
|
156
159
|
});
|
|
157
|
-
},
|
|
158
|
-
groupUpdateDescription: async (jid, description) => {
|
|
160
|
+
}), groupUpdateDescription: (jid, description) => __awaiter(void 0, void 0, void 0, function* () {
|
|
159
161
|
var _a;
|
|
160
|
-
const metadata =
|
|
162
|
+
const metadata = yield groupMetadata(jid);
|
|
161
163
|
const prev = (_a = metadata.descId) !== null && _a !== void 0 ? _a : null;
|
|
162
|
-
|
|
164
|
+
yield groupQuery(jid, 'set', [
|
|
163
165
|
{
|
|
164
166
|
tag: 'description',
|
|
165
|
-
attrs: {
|
|
166
|
-
...(description ? { id: (0, Utils_1.generateMessageID)() } : { delete: 'true' }),
|
|
167
|
-
...(prev ? { prev } : {})
|
|
168
|
-
},
|
|
167
|
+
attrs: Object.assign(Object.assign({}, (description ? { id: (0, Utils_1.generateMessageID)() } : { delete: 'true' })), (prev ? { prev } : {})),
|
|
169
168
|
content: description ? [
|
|
170
169
|
{ tag: 'body', attrs: {}, content: Buffer.from(description, 'utf-8') }
|
|
171
170
|
] : undefined
|
|
172
171
|
}
|
|
173
172
|
]);
|
|
174
|
-
},
|
|
175
|
-
|
|
176
|
-
const result = await groupQuery(jid, 'get', [{ tag: 'invite', attrs: {} }]);
|
|
173
|
+
}), groupInviteCode: (jid) => __awaiter(void 0, void 0, void 0, function* () {
|
|
174
|
+
const result = yield groupQuery(jid, 'get', [{ tag: 'invite', attrs: {} }]);
|
|
177
175
|
const inviteNode = (0, WABinary_1.getBinaryNodeChild)(result, 'invite');
|
|
178
176
|
return inviteNode === null || inviteNode === void 0 ? void 0 : inviteNode.attrs.code;
|
|
179
|
-
},
|
|
180
|
-
|
|
181
|
-
const result = await groupQuery(jid, 'set', [{ tag: 'invite', attrs: {} }]);
|
|
177
|
+
}), groupRevokeInvite: (jid) => __awaiter(void 0, void 0, void 0, function* () {
|
|
178
|
+
const result = yield groupQuery(jid, 'set', [{ tag: 'invite', attrs: {} }]);
|
|
182
179
|
const inviteNode = (0, WABinary_1.getBinaryNodeChild)(result, 'invite');
|
|
183
180
|
return inviteNode === null || inviteNode === void 0 ? void 0 : inviteNode.attrs.code;
|
|
184
|
-
},
|
|
185
|
-
|
|
186
|
-
const results = await groupQuery('@g.us', 'set', [{ tag: 'invite', attrs: { code } }]);
|
|
181
|
+
}), groupAcceptInvite: (code) => __awaiter(void 0, void 0, void 0, function* () {
|
|
182
|
+
const results = yield groupQuery('@g.us', 'set', [{ tag: 'invite', attrs: { code } }]);
|
|
187
183
|
const result = (0, WABinary_1.getBinaryNodeChild)(results, 'group');
|
|
188
184
|
return result === null || result === void 0 ? void 0 : result.attrs.jid;
|
|
189
|
-
},
|
|
185
|
+
}),
|
|
190
186
|
/**
|
|
191
187
|
* accept a GroupInviteMessage
|
|
192
188
|
* @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
|
|
193
189
|
* @param inviteMessage the message to accept
|
|
194
190
|
*/
|
|
195
|
-
groupAcceptInviteV4: ev.createBufferedFunction(
|
|
191
|
+
groupAcceptInviteV4: ev.createBufferedFunction((key, inviteMessage) => __awaiter(void 0, void 0, void 0, function* () {
|
|
196
192
|
key = typeof key === 'string' ? { remoteJid: key } : key;
|
|
197
|
-
const results =
|
|
193
|
+
const results = yield groupQuery(inviteMessage.groupJid, 'set', [{
|
|
198
194
|
tag: 'accept',
|
|
199
195
|
attrs: {
|
|
200
196
|
code: inviteMessage.inviteCode,
|
|
@@ -221,7 +217,7 @@ const makeGroupsSocket = (config) => {
|
|
|
221
217
|
]);
|
|
222
218
|
}
|
|
223
219
|
// generate the group add message
|
|
224
|
-
|
|
220
|
+
yield upsertMessage({
|
|
225
221
|
key: {
|
|
226
222
|
remoteJid: inviteMessage.groupJid,
|
|
227
223
|
id: (0, Utils_1.generateMessageID)(),
|
|
@@ -236,32 +232,25 @@ const makeGroupsSocket = (config) => {
|
|
|
236
232
|
messageTimestamp: (0, Utils_1.unixTimestampSeconds)()
|
|
237
233
|
}, 'notify');
|
|
238
234
|
return results.attrs.from;
|
|
239
|
-
}),
|
|
240
|
-
|
|
241
|
-
const results = await groupQuery('@g.us', 'get', [{ tag: 'invite', attrs: { code } }]);
|
|
235
|
+
})), groupGetInviteInfo: (code) => __awaiter(void 0, void 0, void 0, function* () {
|
|
236
|
+
const results = yield groupQuery('@g.us', 'get', [{ tag: 'invite', attrs: { code } }]);
|
|
242
237
|
return (0, exports.extractGroupMetadata)(results);
|
|
243
|
-
},
|
|
244
|
-
groupToggleEphemeral: async (jid, ephemeralExpiration) => {
|
|
238
|
+
}), groupToggleEphemeral: (jid, ephemeralExpiration) => __awaiter(void 0, void 0, void 0, function* () {
|
|
245
239
|
const content = ephemeralExpiration ?
|
|
246
240
|
{ tag: 'ephemeral', attrs: { expiration: ephemeralExpiration.toString() } } :
|
|
247
241
|
{ tag: 'not_ephemeral', attrs: {} };
|
|
248
|
-
|
|
249
|
-
},
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
},
|
|
256
|
-
groupJoinApprovalMode: async (jid, mode) => {
|
|
257
|
-
await groupQuery(jid, 'set', [{ tag: 'membership_approval_mode', attrs: {}, content: [{ tag: 'group_join', attrs: { state: mode } }] }]);
|
|
258
|
-
},
|
|
259
|
-
groupFetchAllParticipating
|
|
260
|
-
};
|
|
242
|
+
yield groupQuery(jid, 'set', [content]);
|
|
243
|
+
}), groupSettingUpdate: (jid, setting) => __awaiter(void 0, void 0, void 0, function* () {
|
|
244
|
+
yield groupQuery(jid, 'set', [{ tag: setting, attrs: {} }]);
|
|
245
|
+
}), groupMemberAddMode: (jid, mode) => __awaiter(void 0, void 0, void 0, function* () {
|
|
246
|
+
yield groupQuery(jid, 'set', [{ tag: 'member_add_mode', attrs: {}, content: mode }]);
|
|
247
|
+
}), groupJoinApprovalMode: (jid, mode) => __awaiter(void 0, void 0, void 0, function* () {
|
|
248
|
+
yield groupQuery(jid, 'set', [{ tag: 'membership_approval_mode', attrs: {}, content: [{ tag: 'group_join', attrs: { state: mode } }] }]);
|
|
249
|
+
}), groupFetchAllParticipating });
|
|
261
250
|
};
|
|
262
251
|
exports.makeGroupsSocket = makeGroupsSocket;
|
|
263
252
|
const extractGroupMetadata = (result) => {
|
|
264
|
-
var _a;
|
|
253
|
+
var _a, _b;
|
|
265
254
|
const group = (0, WABinary_1.getBinaryNodeChild)(result, 'group');
|
|
266
255
|
const descChild = (0, WABinary_1.getBinaryNodeChild)(group, 'description');
|
|
267
256
|
let desc;
|
|
@@ -283,6 +272,7 @@ const extractGroupMetadata = (result) => {
|
|
|
283
272
|
owner: group.attrs.creator ? (0, WABinary_1.jidNormalizedUser)(group.attrs.creator) : undefined,
|
|
284
273
|
desc,
|
|
285
274
|
descId,
|
|
275
|
+
linkedParent: ((_b = (0, WABinary_1.getBinaryNodeChild)(group, 'linked_parent')) === null || _b === void 0 ? void 0 : _b.attrs.jid) || undefined,
|
|
286
276
|
restrict: !!(0, WABinary_1.getBinaryNodeChild)(group, 'locked'),
|
|
287
277
|
announce: !!(0, WABinary_1.getBinaryNodeChild)(group, 'announcement'),
|
|
288
278
|
isCommunity: !!(0, WABinary_1.getBinaryNodeChild)(group, 'parent'),
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
import { proto } from '../../WAProto'
|
|
2
|
+
import { GroupMetadata, GroupParticipant, ParticipantAction, SocketConfig, WAMessageKey, WAMessageStubType } from '../Types'
|
|
3
|
+
import { generateMessageID, unixTimestampSeconds } from '../Utils'
|
|
4
|
+
import { BinaryNode, getBinaryNodeChild, getBinaryNodeChildren, getBinaryNodeChildString, jidEncode, jidNormalizedUser } from '../WABinary'
|
|
5
|
+
import { makeChatsSocket } from './chats'
|
|
6
|
+
|
|
7
|
+
export const makeGroupsSocket = (config: SocketConfig) => {
|
|
8
|
+
const sock = makeChatsSocket(config)
|
|
9
|
+
const { authState, ev, query, upsertMessage } = sock
|
|
10
|
+
|
|
11
|
+
const groupQuery = async(jid: string, type: 'get' | 'set', content: BinaryNode[]) => (
|
|
12
|
+
query({
|
|
13
|
+
tag: 'iq',
|
|
14
|
+
attrs: {
|
|
15
|
+
type,
|
|
16
|
+
xmlns: 'w:g2',
|
|
17
|
+
to: jid,
|
|
18
|
+
},
|
|
19
|
+
content
|
|
20
|
+
})
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
const groupMetadata = async(jid: string) => {
|
|
24
|
+
const result = await groupQuery(
|
|
25
|
+
jid,
|
|
26
|
+
'get',
|
|
27
|
+
[ { tag: 'query', attrs: { request: 'interactive' } } ]
|
|
28
|
+
)
|
|
29
|
+
return extractGroupMetadata(result)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
const groupFetchAllParticipating = async() => {
|
|
34
|
+
const result = await query({
|
|
35
|
+
tag: 'iq',
|
|
36
|
+
attrs: {
|
|
37
|
+
to: '@g.us',
|
|
38
|
+
xmlns: 'w:g2',
|
|
39
|
+
type: 'get',
|
|
40
|
+
},
|
|
41
|
+
content: [
|
|
42
|
+
{
|
|
43
|
+
tag: 'participating',
|
|
44
|
+
attrs: { },
|
|
45
|
+
content: [
|
|
46
|
+
{ tag: 'participants', attrs: { } },
|
|
47
|
+
{ tag: 'description', attrs: { } }
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
})
|
|
52
|
+
const data: { [_: string]: GroupMetadata } = { }
|
|
53
|
+
const groupsChild = getBinaryNodeChild(result, 'groups')
|
|
54
|
+
if(groupsChild) {
|
|
55
|
+
const groups = getBinaryNodeChildren(groupsChild, 'group')
|
|
56
|
+
for(const groupNode of groups) {
|
|
57
|
+
const meta = extractGroupMetadata({
|
|
58
|
+
tag: 'result',
|
|
59
|
+
attrs: { },
|
|
60
|
+
content: [groupNode]
|
|
61
|
+
})
|
|
62
|
+
data[meta.id] = meta
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
sock.ev.emit('groups.update', Object.values(data))
|
|
67
|
+
|
|
68
|
+
return data
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
sock.ws.on('CB:ib,,dirty', async(node: BinaryNode) => {
|
|
72
|
+
const { attrs } = getBinaryNodeChild(node, 'dirty')!
|
|
73
|
+
if(attrs.type !== 'groups') {
|
|
74
|
+
return
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
await groupFetchAllParticipating()
|
|
78
|
+
await sock.cleanDirtyBits('groups')
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
...sock,
|
|
83
|
+
groupMetadata,
|
|
84
|
+
groupCreate: async(subject: string, participants: string[]) => {
|
|
85
|
+
const key = generateMessageID()
|
|
86
|
+
const result = await groupQuery(
|
|
87
|
+
'@g.us',
|
|
88
|
+
'set',
|
|
89
|
+
[
|
|
90
|
+
{
|
|
91
|
+
tag: 'create',
|
|
92
|
+
attrs: {
|
|
93
|
+
subject,
|
|
94
|
+
key
|
|
95
|
+
},
|
|
96
|
+
content: participants.map(jid => ({
|
|
97
|
+
tag: 'participant',
|
|
98
|
+
attrs: { jid }
|
|
99
|
+
}))
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
)
|
|
103
|
+
return extractGroupMetadata(result)
|
|
104
|
+
},
|
|
105
|
+
groupLeave: async(id: string) => {
|
|
106
|
+
await groupQuery(
|
|
107
|
+
'@g.us',
|
|
108
|
+
'set',
|
|
109
|
+
[
|
|
110
|
+
{
|
|
111
|
+
tag: 'leave',
|
|
112
|
+
attrs: { },
|
|
113
|
+
content: [
|
|
114
|
+
{ tag: 'group', attrs: { id } }
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
)
|
|
119
|
+
},
|
|
120
|
+
groupUpdateSubject: async(jid: string, subject: string) => {
|
|
121
|
+
await groupQuery(
|
|
122
|
+
jid,
|
|
123
|
+
'set',
|
|
124
|
+
[
|
|
125
|
+
{
|
|
126
|
+
tag: 'subject',
|
|
127
|
+
attrs: { },
|
|
128
|
+
content: Buffer.from(subject, 'utf-8')
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
)
|
|
132
|
+
},
|
|
133
|
+
groupRequestParticipantsList: async(jid: string) => {
|
|
134
|
+
const result = await groupQuery(
|
|
135
|
+
jid,
|
|
136
|
+
'get',
|
|
137
|
+
[
|
|
138
|
+
{
|
|
139
|
+
tag: 'membership_approval_requests',
|
|
140
|
+
attrs: {}
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
)
|
|
144
|
+
const node = getBinaryNodeChild(result, 'membership_approval_requests')
|
|
145
|
+
const participants = getBinaryNodeChildren(node, 'membership_approval_request')
|
|
146
|
+
return participants.map(v => v.attrs)
|
|
147
|
+
},
|
|
148
|
+
groupRequestParticipantsUpdate: async(jid: string, participants: string[], action: 'approve' | 'reject') => {
|
|
149
|
+
const result = await groupQuery(
|
|
150
|
+
jid,
|
|
151
|
+
'set',
|
|
152
|
+
[{
|
|
153
|
+
tag: 'membership_requests_action',
|
|
154
|
+
attrs: {},
|
|
155
|
+
content: [
|
|
156
|
+
{
|
|
157
|
+
tag: action,
|
|
158
|
+
attrs: { },
|
|
159
|
+
content: participants.map(jid => ({
|
|
160
|
+
tag: 'participant',
|
|
161
|
+
attrs: { jid }
|
|
162
|
+
}))
|
|
163
|
+
}
|
|
164
|
+
]
|
|
165
|
+
}]
|
|
166
|
+
)
|
|
167
|
+
const node = getBinaryNodeChild(result, 'membership_requests_action')
|
|
168
|
+
const nodeAction = getBinaryNodeChild(node, action)
|
|
169
|
+
const participantsAffected = getBinaryNodeChildren(nodeAction, 'participant')
|
|
170
|
+
return participantsAffected.map(p => {
|
|
171
|
+
return { status: p.attrs.error || '200', jid: p.attrs.jid }
|
|
172
|
+
})
|
|
173
|
+
},
|
|
174
|
+
groupParticipantsUpdate: async(
|
|
175
|
+
jid: string,
|
|
176
|
+
participants: string[],
|
|
177
|
+
action: ParticipantAction
|
|
178
|
+
) => {
|
|
179
|
+
const result = await groupQuery(
|
|
180
|
+
jid,
|
|
181
|
+
'set',
|
|
182
|
+
[
|
|
183
|
+
{
|
|
184
|
+
tag: action,
|
|
185
|
+
attrs: { },
|
|
186
|
+
content: participants.map(jid => ({
|
|
187
|
+
tag: 'participant',
|
|
188
|
+
attrs: { jid }
|
|
189
|
+
}))
|
|
190
|
+
}
|
|
191
|
+
]
|
|
192
|
+
)
|
|
193
|
+
const node = getBinaryNodeChild(result, action)
|
|
194
|
+
const participantsAffected = getBinaryNodeChildren(node!, 'participant')
|
|
195
|
+
return participantsAffected.map(p => {
|
|
196
|
+
return { status: p.attrs.error || '200', jid: p.attrs.jid, content: p }
|
|
197
|
+
})
|
|
198
|
+
},
|
|
199
|
+
groupUpdateDescription: async(jid: string, description?: string) => {
|
|
200
|
+
const metadata = await groupMetadata(jid)
|
|
201
|
+
const prev = metadata.descId ?? null
|
|
202
|
+
|
|
203
|
+
await groupQuery(
|
|
204
|
+
jid,
|
|
205
|
+
'set',
|
|
206
|
+
[
|
|
207
|
+
{
|
|
208
|
+
tag: 'description',
|
|
209
|
+
attrs: {
|
|
210
|
+
...(description ? { id: generateMessageID() } : { delete: 'true' }),
|
|
211
|
+
...(prev ? { prev } : {})
|
|
212
|
+
},
|
|
213
|
+
content: description ? [
|
|
214
|
+
{ tag: 'body', attrs: {}, content: Buffer.from(description, 'utf-8') }
|
|
215
|
+
] : undefined
|
|
216
|
+
}
|
|
217
|
+
]
|
|
218
|
+
)
|
|
219
|
+
},
|
|
220
|
+
groupInviteCode: async(jid: string) => {
|
|
221
|
+
const result = await groupQuery(jid, 'get', [{ tag: 'invite', attrs: {} }])
|
|
222
|
+
const inviteNode = getBinaryNodeChild(result, 'invite')
|
|
223
|
+
return inviteNode?.attrs.code
|
|
224
|
+
},
|
|
225
|
+
groupRevokeInvite: async(jid: string) => {
|
|
226
|
+
const result = await groupQuery(jid, 'set', [{ tag: 'invite', attrs: {} }])
|
|
227
|
+
const inviteNode = getBinaryNodeChild(result, 'invite')
|
|
228
|
+
return inviteNode?.attrs.code
|
|
229
|
+
},
|
|
230
|
+
groupAcceptInvite: async(code: string) => {
|
|
231
|
+
const results = await groupQuery('@g.us', 'set', [{ tag: 'invite', attrs: { code } }])
|
|
232
|
+
const result = getBinaryNodeChild(results, 'group')
|
|
233
|
+
return result?.attrs.jid
|
|
234
|
+
},
|
|
235
|
+
/**
|
|
236
|
+
* accept a GroupInviteMessage
|
|
237
|
+
* @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
|
|
238
|
+
* @param inviteMessage the message to accept
|
|
239
|
+
*/
|
|
240
|
+
groupAcceptInviteV4: ev.createBufferedFunction(async(key: string | WAMessageKey, inviteMessage: proto.Message.IGroupInviteMessage) => {
|
|
241
|
+
key = typeof key === 'string' ? { remoteJid: key } : key
|
|
242
|
+
const results = await groupQuery(inviteMessage.groupJid!, 'set', [{
|
|
243
|
+
tag: 'accept',
|
|
244
|
+
attrs: {
|
|
245
|
+
code: inviteMessage.inviteCode!,
|
|
246
|
+
expiration: inviteMessage.inviteExpiration!.toString(),
|
|
247
|
+
admin: key.remoteJid!
|
|
248
|
+
}
|
|
249
|
+
}])
|
|
250
|
+
|
|
251
|
+
// if we have the full message key
|
|
252
|
+
// update the invite message to be expired
|
|
253
|
+
if(key.id) {
|
|
254
|
+
// create new invite message that is expired
|
|
255
|
+
inviteMessage = proto.Message.GroupInviteMessage.fromObject(inviteMessage)
|
|
256
|
+
inviteMessage.inviteExpiration = 0
|
|
257
|
+
inviteMessage.inviteCode = ''
|
|
258
|
+
ev.emit('messages.update', [
|
|
259
|
+
{
|
|
260
|
+
key,
|
|
261
|
+
update: {
|
|
262
|
+
message: {
|
|
263
|
+
groupInviteMessage: inviteMessage
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
])
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// generate the group add message
|
|
271
|
+
await upsertMessage(
|
|
272
|
+
{
|
|
273
|
+
key: {
|
|
274
|
+
remoteJid: inviteMessage.groupJid,
|
|
275
|
+
id: generateMessageID(),
|
|
276
|
+
fromMe: false,
|
|
277
|
+
participant: key.remoteJid,
|
|
278
|
+
},
|
|
279
|
+
messageStubType: WAMessageStubType.GROUP_PARTICIPANT_ADD,
|
|
280
|
+
messageStubParameters: [
|
|
281
|
+
authState.creds.me!.id
|
|
282
|
+
],
|
|
283
|
+
participant: key.remoteJid,
|
|
284
|
+
messageTimestamp: unixTimestampSeconds()
|
|
285
|
+
},
|
|
286
|
+
'notify'
|
|
287
|
+
)
|
|
288
|
+
|
|
289
|
+
return results.attrs.from
|
|
290
|
+
}),
|
|
291
|
+
groupGetInviteInfo: async(code: string) => {
|
|
292
|
+
const results = await groupQuery('@g.us', 'get', [{ tag: 'invite', attrs: { code } }])
|
|
293
|
+
return extractGroupMetadata(results)
|
|
294
|
+
},
|
|
295
|
+
groupToggleEphemeral: async(jid: string, ephemeralExpiration: number) => {
|
|
296
|
+
const content: BinaryNode = ephemeralExpiration ?
|
|
297
|
+
{ tag: 'ephemeral', attrs: { expiration: ephemeralExpiration.toString() } } :
|
|
298
|
+
{ tag: 'not_ephemeral', attrs: { } }
|
|
299
|
+
await groupQuery(jid, 'set', [content])
|
|
300
|
+
},
|
|
301
|
+
groupSettingUpdate: async(jid: string, setting: 'announcement' | 'not_announcement' | 'locked' | 'unlocked') => {
|
|
302
|
+
await groupQuery(jid, 'set', [ { tag: setting, attrs: { } } ])
|
|
303
|
+
},
|
|
304
|
+
groupMemberAddMode: async(jid: string, mode: 'admin_add' | 'all_member_add') => {
|
|
305
|
+
await groupQuery(jid, 'set', [ { tag: 'member_add_mode', attrs: { }, content: mode } ])
|
|
306
|
+
},
|
|
307
|
+
groupJoinApprovalMode: async(jid: string, mode: 'on' | 'off') => {
|
|
308
|
+
await groupQuery(jid, 'set', [ { tag: 'membership_approval_mode', attrs: { }, content: [ { tag: 'group_join', attrs: { state: mode } } ] } ])
|
|
309
|
+
},
|
|
310
|
+
groupFetchAllParticipating
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
export const extractGroupMetadata = (result: BinaryNode) => {
|
|
316
|
+
const group = getBinaryNodeChild(result, 'group')!
|
|
317
|
+
const descChild = getBinaryNodeChild(group, 'description')
|
|
318
|
+
let desc: string | undefined
|
|
319
|
+
let descId: string | undefined
|
|
320
|
+
if(descChild) {
|
|
321
|
+
desc = getBinaryNodeChildString(descChild, 'body')
|
|
322
|
+
descId = descChild.attrs.id
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
const groupId = group.attrs.id.includes('@') ? group.attrs.id : jidEncode(group.attrs.id, 'g.us')
|
|
326
|
+
const eph = getBinaryNodeChild(group, 'ephemeral')?.attrs.expiration
|
|
327
|
+
const memberAddMode = getBinaryNodeChildString(group, 'member_add_mode') === 'all_member_add'
|
|
328
|
+
const metadata: GroupMetadata = {
|
|
329
|
+
id: groupId,
|
|
330
|
+
subject: group.attrs.subject,
|
|
331
|
+
subjectOwner: group.attrs.s_o,
|
|
332
|
+
subjectTime: +group.attrs.s_t,
|
|
333
|
+
size: getBinaryNodeChildren(group, 'participant').length,
|
|
334
|
+
creation: +group.attrs.creation,
|
|
335
|
+
owner: group.attrs.creator ? jidNormalizedUser(group.attrs.creator) : undefined,
|
|
336
|
+
desc,
|
|
337
|
+
descId,
|
|
338
|
+
linkedParent: getBinaryNodeChild(group, 'linked_parent')?.attrs.jid || undefined,
|
|
339
|
+
restrict: !!getBinaryNodeChild(group, 'locked'),
|
|
340
|
+
announce: !!getBinaryNodeChild(group, 'announcement'),
|
|
341
|
+
isCommunity: !!getBinaryNodeChild(group, 'parent'),
|
|
342
|
+
isCommunityAnnounce: !!getBinaryNodeChild(group, 'default_sub_group'),
|
|
343
|
+
joinApprovalMode: !!getBinaryNodeChild(group, 'membership_approval_mode'),
|
|
344
|
+
memberAddMode,
|
|
345
|
+
participants: getBinaryNodeChildren(group, 'participant').map(
|
|
346
|
+
({ attrs }) => {
|
|
347
|
+
return {
|
|
348
|
+
id: attrs.jid,
|
|
349
|
+
admin: (attrs.type || null) as GroupParticipant['admin'],
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
),
|
|
353
|
+
ephemeralDuration: eph ? +eph : undefined
|
|
354
|
+
}
|
|
355
|
+
return metadata
|
|
356
|
+
}
|
|
@@ -3,8 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const Defaults_1 = require("../Defaults");
|
|
4
4
|
const registration_1 = require("./registration");
|
|
5
5
|
// export the last socket layer
|
|
6
|
-
const makeWASocket = (config) => ((0, registration_1.makeRegistrationSocket)({
|
|
7
|
-
...Defaults_1.DEFAULT_CONNECTION_CONFIG,
|
|
8
|
-
...config
|
|
9
|
-
}));
|
|
6
|
+
const makeWASocket = (config) => ((0, registration_1.makeRegistrationSocket)(Object.assign(Object.assign({}, Defaults_1.DEFAULT_CONNECTION_CONFIG), config)));
|
|
10
7
|
exports.default = makeWASocket;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DEFAULT_CONNECTION_CONFIG } from '../Defaults'
|
|
2
|
+
import { UserFacingSocketConfig } from '../Types'
|
|
3
|
+
import { makeRegistrationSocket as _makeSocket } from './registration'
|
|
4
|
+
|
|
5
|
+
// export the last socket layer
|
|
6
|
+
const makeWASocket = (config: UserFacingSocketConfig) => (
|
|
7
|
+
_makeSocket({
|
|
8
|
+
...DEFAULT_CONNECTION_CONFIG,
|
|
9
|
+
...config
|
|
10
|
+
})
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
export default makeWASocket
|