alipclutch-baileys 6.7.0 → 7.1.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/WAProto/index.js +77698 -117050
- package/engine-requirements.js +3 -3
- package/lib/Defaults/baileys-version.json +3 -0
- package/lib/Defaults/index.d.ts +6 -4
- package/lib/Defaults/index.js +118 -78
- package/lib/Defaults/phonenumber-mcc.json +223 -0
- package/lib/Socket/Client/abstract-socket-client.d.ts +17 -0
- package/lib/Socket/Client/abstract-socket-client.js +13 -0
- package/lib/Socket/Client/index.d.ts +3 -2
- package/lib/Socket/Client/index.js +3 -2
- 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/types.d.ts +1 -0
- package/lib/Socket/Client/types.js +1 -0
- package/lib/Socket/Client/web-socket-client.d.ts +12 -0
- package/lib/Socket/Client/web-socket-client.js +62 -0
- package/lib/Socket/Client/websocket.d.ts +1 -0
- package/lib/Socket/Client/websocket.js +1 -0
- package/lib/Socket/business.d.ts +58 -59
- package/lib/Socket/chats.d.ts +230 -45
- package/lib/Socket/chats.js +238 -139
- package/lib/Socket/dugong.d.ts +254 -0
- package/lib/Socket/dugong.js +483 -0
- package/lib/Socket/groups.d.ts +32 -41
- package/lib/Socket/groups.js +23 -38
- package/lib/Socket/index.d.ts +64 -63
- package/lib/Socket/index.js +3 -2
- package/lib/Socket/messages-recv.js +65 -9
- package/lib/Socket/messages-send.d.ts +47 -49
- package/lib/Socket/messages-send.js +420 -382
- package/lib/Socket/newsletter.d.ts +37 -39
- package/lib/Socket/newsletter.js +124 -71
- package/lib/Socket/registration.d.ts +267 -0
- package/lib/Socket/registration.js +166 -0
- package/lib/Socket/socket.d.ts +10 -10
- package/lib/Socket/socket.js +38 -62
- package/lib/Socket/usync.d.ts +4 -3
- package/lib/Socket/usync.js +1 -0
- package/lib/Store/index.d.ts +2 -1
- package/lib/Store/index.js +3 -1
- 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 +24 -24
- package/lib/Store/make-in-memory-store.js +14 -26
- 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 +7 -0
- package/lib/Types/Call.d.ts +1 -1
- package/lib/Types/Chat.d.ts +7 -14
- package/lib/Types/Contact.d.ts +1 -5
- package/lib/Types/Events.d.ts +2 -44
- package/lib/Types/GroupMetadata.d.ts +2 -11
- package/lib/Types/Label.js +1 -1
- package/lib/Types/LabelAssociation.js +1 -1
- package/lib/Types/Message.d.ts +21 -148
- package/lib/Types/Message.js +2 -0
- package/lib/Types/Newsletter.d.ts +97 -73
- package/lib/Types/Newsletter.js +38 -18
- package/lib/Types/Socket.d.ts +9 -17
- package/lib/Types/index.d.ts +1 -8
- package/lib/Types/index.js +2 -2
- package/lib/Utils/auth-utils.d.ts +3 -3
- package/lib/Utils/auth-utils.js +13 -6
- package/lib/Utils/business.js +2 -2
- package/lib/Utils/chat-utils.d.ts +16 -15
- package/lib/Utils/chat-utils.js +35 -36
- package/lib/Utils/crypto.d.ts +16 -15
- package/lib/Utils/crypto.js +29 -71
- package/lib/Utils/decode-wa-message.d.ts +6 -22
- package/lib/Utils/decode-wa-message.js +56 -65
- package/lib/Utils/event-buffer.d.ts +2 -2
- package/lib/Utils/event-buffer.js +7 -11
- package/lib/Utils/generics.d.ts +20 -17
- package/lib/Utils/generics.js +76 -96
- package/lib/Utils/history.d.ts +0 -4
- package/lib/Utils/history.js +6 -4
- package/lib/Utils/link-preview.d.ts +2 -2
- package/lib/Utils/link-preview.js +1 -34
- package/lib/Utils/logger.d.ts +3 -10
- 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 +24 -28
- package/lib/Utils/messages-media.js +236 -296
- package/lib/Utils/messages.d.ts +10 -13
- package/lib/Utils/messages.js +92 -325
- package/lib/Utils/noise-handler.d.ts +12 -10
- package/lib/Utils/noise-handler.js +23 -18
- package/lib/Utils/process-message.d.ts +4 -5
- package/lib/Utils/process-message.js +25 -108
- package/lib/Utils/signal.d.ts +1 -2
- package/lib/Utils/signal.js +26 -26
- package/lib/Utils/use-multi-file-auth-state.d.ts +1 -0
- package/lib/Utils/use-multi-file-auth-state.js +6 -51
- package/lib/Utils/validate-connection.d.ts +4 -3
- package/lib/Utils/validate-connection.js +52 -20
- package/lib/WABinary/constants.d.ts +27 -24
- package/lib/WABinary/constants.js +13 -1276
- package/lib/WABinary/decode.d.ts +4 -3
- package/lib/WABinary/decode.js +13 -26
- package/lib/WABinary/encode.d.ts +2 -1
- package/lib/WABinary/encode.js +152 -137
- package/lib/WABinary/generic-utils.d.ts +4 -1
- package/lib/WABinary/generic-utils.js +125 -37
- package/lib/WABinary/jid-utils.d.ts +5 -11
- package/lib/WABinary/jid-utils.js +5 -28
- package/lib/WAM/BinaryInfo.d.ts +11 -2
- package/lib/WAM/encode.d.ts +2 -1
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +36 -43
- package/package.json +1 -1
- package/WAProto/GenerateStatics.sh +0 -4
- package/WAProto/WAProto.proto +0 -4775
- package/WAProto/index.d.ts +0 -55057
- package/WAProto/index.ts.ts +0 -53473
- package/WAProto/p.html +0 -1
- package/lib/Defaults/wileys-version.json +0 -3
- package/lib/WABinary/jid-utils.js.bak +0 -83
- /package/{README.MD → README.md} +0 -0
package/lib/Utils/messages.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.assertMediaContent = exports.downloadMediaMessage = exports.aggregateMessageKeysNotFromMe = exports.updateMessageWithPollUpdate = exports.updateMessageWithReaction = exports.updateMessageWithReceipt = exports.getDevice = exports.extractMessageContent = exports.normalizeMessageContent = exports.getContentType = exports.generateWAMessage = exports.generateWAMessageFromContent = exports.generateWAMessageContent = exports.generateForwardMessageContent = exports.prepareDisappearingMessageSettingContent = exports.prepareWAMessageMedia = exports.generateLinkPreviewIfRequired = exports.extractUrlFromText = void 0;
|
|
7
|
-
exports.getAggregateVotesInPollMessage = getAggregateVotesInPollMessage;
|
|
6
|
+
exports.assertMediaContent = exports.downloadMediaMessage = exports.aggregateMessageKeysNotFromMe = exports.getAggregateVotesInPollMessage = exports.updateMessageWithPollUpdate = exports.updateMessageWithReaction = exports.updateMessageWithReceipt = exports.getDevice = exports.extractMessageContent = exports.normalizeMessageContent = exports.getContentType = exports.generateWAMessage = exports.generateWAMessageFromContent = exports.generateWAMessageContent = exports.generateForwardMessageContent = exports.prepareDisappearingMessageSettingContent = exports.prepareWAMessageMedia = exports.generateLinkPreviewIfRequired = exports.extractUrlFromText = void 0;
|
|
8
7
|
const boom_1 = require("@hapi/boom");
|
|
9
8
|
const axios_1 = __importDefault(require("axios"));
|
|
10
9
|
const crypto_1 = require("crypto");
|
|
@@ -75,27 +74,62 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
75
74
|
}
|
|
76
75
|
}
|
|
77
76
|
if (!mediaType) {
|
|
78
|
-
throw new boom_1.Boom('Invalid media type', {
|
|
77
|
+
throw new boom_1.Boom('Invalid media type', {
|
|
78
|
+
statusCode: 400
|
|
79
|
+
});
|
|
79
80
|
}
|
|
81
|
+
|
|
80
82
|
const uploadData = {
|
|
81
83
|
...message,
|
|
84
|
+
...(message.annotations ? {
|
|
85
|
+
annotations: message.annotations
|
|
86
|
+
} : {
|
|
87
|
+
annotations: [
|
|
88
|
+
{
|
|
89
|
+
polygonVertices: [
|
|
90
|
+
{
|
|
91
|
+
x: 60.71664810180664,
|
|
92
|
+
y: -36.39784622192383
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
x: -16.710189819335938,
|
|
96
|
+
y: 49.263675689697266
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
x: -56.585853576660156,
|
|
100
|
+
y: 37.85963439941406
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
x: 20.840980529785156,
|
|
104
|
+
y: -47.80188751220703
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
newsletter: {
|
|
108
|
+
newsletterJid: "120363420249672073@newsletter",
|
|
109
|
+
serverMessageId: 0,
|
|
110
|
+
newsletterName: "kyuu ilysm",
|
|
111
|
+
contentType: "UPDATE",
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}),
|
|
82
116
|
media: message[mediaType]
|
|
83
117
|
};
|
|
84
118
|
delete uploadData[mediaType];
|
|
85
|
-
// check if cacheable + generate cache key
|
|
86
119
|
const cacheableKey = typeof uploadData.media === 'object' &&
|
|
87
120
|
('url' in uploadData.media) &&
|
|
88
121
|
!!uploadData.media.url &&
|
|
89
122
|
!!options.mediaCache && (
|
|
90
|
-
// generate the key
|
|
91
123
|
mediaType + ':' + uploadData.media.url.toString());
|
|
124
|
+
|
|
92
125
|
if (mediaType === 'document' && !uploadData.fileName) {
|
|
93
126
|
uploadData.fileName = 'file';
|
|
94
127
|
}
|
|
128
|
+
|
|
95
129
|
if (!uploadData.mimetype) {
|
|
96
130
|
uploadData.mimetype = MIMETYPE_MAP[mediaType];
|
|
97
131
|
}
|
|
98
|
-
|
|
132
|
+
|
|
99
133
|
if (cacheableKey) {
|
|
100
134
|
const mediaBuff = options.mediaCache.get(cacheableKey);
|
|
101
135
|
if (mediaBuff) {
|
|
@@ -106,19 +140,28 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
106
140
|
return obj;
|
|
107
141
|
}
|
|
108
142
|
}
|
|
143
|
+
|
|
109
144
|
const requiresDurationComputation = mediaType === 'audio' && typeof uploadData.seconds === 'undefined';
|
|
110
145
|
const requiresThumbnailComputation = (mediaType === 'image' || mediaType === 'video') &&
|
|
111
146
|
(typeof uploadData['jpegThumbnail'] === 'undefined');
|
|
112
147
|
const requiresWaveformProcessing = mediaType === 'audio' && uploadData.ptt === true;
|
|
113
148
|
const requiresAudioBackground = options.backgroundColor && mediaType === 'audio' && uploadData.ptt === true;
|
|
114
149
|
const requiresOriginalForSomeProcessing = requiresDurationComputation || requiresThumbnailComputation;
|
|
115
|
-
|
|
150
|
+
|
|
151
|
+
const { mediaKey, encWriteStream, bodyPath, fileEncSha256, fileSha256, fileLength, didSaveToTmpPath, opusConverted } = await (options.newsletter ? messages_media_1.prepareStream : messages_media_1.encryptedStream)(uploadData.media, options.mediaTypeOverride || mediaType, {
|
|
116
152
|
logger,
|
|
117
153
|
saveOriginalFileIfRequired: requiresOriginalForSomeProcessing,
|
|
118
|
-
opts: options.options
|
|
154
|
+
opts: options.options,
|
|
155
|
+
isPtt: uploadData.ptt,
|
|
156
|
+
forceOpus: (mediaType === "audio" && uploadData.mimetype && uploadData.mimetype.includes('opus'))
|
|
119
157
|
});
|
|
120
|
-
|
|
158
|
+
|
|
159
|
+
if (mediaType === 'audio' && opusConverted) {
|
|
160
|
+
uploadData.mimetype = 'audio/ogg; codecs=opus';
|
|
161
|
+
}
|
|
162
|
+
|
|
121
163
|
const fileEncSha256B64 = (options.newsletter ? fileSha256 : fileEncSha256 !== null && fileEncSha256 !== void 0 ? fileEncSha256 : fileSha256).toString('base64');
|
|
164
|
+
|
|
122
165
|
const [{ mediaUrl, directPath, handle }] = await Promise.all([
|
|
123
166
|
(async () => {
|
|
124
167
|
const result = await options.upload(encWriteStream, { fileEncSha256B64, mediaType, timeoutMs: options.mediaUploadTimeoutMs });
|
|
@@ -159,18 +202,13 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
159
202
|
if (!Buffer.isBuffer(encWriteStream)) {
|
|
160
203
|
encWriteStream.destroy();
|
|
161
204
|
}
|
|
162
|
-
|
|
205
|
+
|
|
163
206
|
if (didSaveToTmpPath && bodyPath) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
await fs_1.promises.unlink(bodyPath);
|
|
167
|
-
logger === null || logger === void 0 ? void 0 : logger.debug('removed tmp file');
|
|
168
|
-
}
|
|
169
|
-
catch (error) {
|
|
170
|
-
logger === null || logger === void 0 ? void 0 : logger.warn('failed to remove tmp file');
|
|
171
|
-
}
|
|
207
|
+
await fs_1.promises.unlink(bodyPath);
|
|
208
|
+
logger === null || logger === void 0 ? void 0 : logger.debug('removed tmp files');
|
|
172
209
|
}
|
|
173
210
|
});
|
|
211
|
+
|
|
174
212
|
const obj = Types_1.WAProto.Message.fromObject({
|
|
175
213
|
[`${mediaType}Message`]: MessageTypeProto[mediaType].fromObject({
|
|
176
214
|
url: handle ? undefined : mediaUrl,
|
|
@@ -184,14 +222,17 @@ const prepareWAMessageMedia = async (message, options) => {
|
|
|
184
222
|
media: undefined
|
|
185
223
|
})
|
|
186
224
|
});
|
|
225
|
+
|
|
187
226
|
if (uploadData.ptv) {
|
|
188
227
|
obj.ptvMessage = obj.videoMessage;
|
|
189
228
|
delete obj.videoMessage;
|
|
190
229
|
}
|
|
230
|
+
|
|
191
231
|
if (cacheableKey) {
|
|
192
232
|
logger === null || logger === void 0 ? void 0 : logger.debug({ cacheableKey }, 'set cache');
|
|
193
233
|
options.mediaCache.set(cacheableKey, Types_1.WAProto.Message.encode(obj).finish());
|
|
194
234
|
}
|
|
235
|
+
|
|
195
236
|
return obj;
|
|
196
237
|
};
|
|
197
238
|
exports.prepareWAMessageMedia = prepareWAMessageMedia;
|
|
@@ -242,8 +283,8 @@ const generateForwardMessageContent = (message, forceForward) => {
|
|
|
242
283
|
};
|
|
243
284
|
exports.generateForwardMessageContent = generateForwardMessageContent;
|
|
244
285
|
const generateWAMessageContent = async (message, options) => {
|
|
245
|
-
var _a
|
|
246
|
-
var
|
|
286
|
+
var _a;
|
|
287
|
+
var _b;
|
|
247
288
|
let m = {};
|
|
248
289
|
if ('text' in message) {
|
|
249
290
|
const extContent = { text: message.text };
|
|
@@ -252,6 +293,7 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
252
293
|
urlInfo = await (0, exports.generateLinkPreviewIfRequired)(message.text, options.getUrlInfo, options.logger);
|
|
253
294
|
}
|
|
254
295
|
if (urlInfo) {
|
|
296
|
+
extContent.canonicalUrl = urlInfo['canonical-url'];
|
|
255
297
|
extContent.matchedText = urlInfo['matched-text'];
|
|
256
298
|
extContent.jpegThumbnail = urlInfo.jpegThumbnail;
|
|
257
299
|
extContent.description = urlInfo.description;
|
|
@@ -312,54 +354,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
312
354
|
message.disappearingMessagesInChat;
|
|
313
355
|
m = (0, exports.prepareDisappearingMessageSettingContent)(exp);
|
|
314
356
|
}
|
|
315
|
-
else if ('groupInvite' in message) {
|
|
316
|
-
m.groupInviteMessage = {};
|
|
317
|
-
m.groupInviteMessage.inviteCode = message.groupInvite.inviteCode;
|
|
318
|
-
m.groupInviteMessage.inviteExpiration = message.groupInvite.inviteExpiration;
|
|
319
|
-
m.groupInviteMessage.caption = message.groupInvite.text;
|
|
320
|
-
m.groupInviteMessage.groupJid = message.groupInvite.jid;
|
|
321
|
-
m.groupInviteMessage.groupName = message.groupInvite.subject;
|
|
322
|
-
//TODO: use built-in interface and get disappearing mode info etc.
|
|
323
|
-
//TODO: cache / use store!?
|
|
324
|
-
if (options.getProfilePicUrl) {
|
|
325
|
-
const pfpUrl = await options.getProfilePicUrl(message.groupInvite.jid, 'preview');
|
|
326
|
-
if (pfpUrl) {
|
|
327
|
-
const resp = await axios_1.default.get(pfpUrl, { responseType: 'arraybuffer' });
|
|
328
|
-
if (resp.status === 200) {
|
|
329
|
-
m.groupInviteMessage.jpegThumbnail = resp.data;
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
else if ('pin' in message) {
|
|
335
|
-
m.pinInChatMessage = {};
|
|
336
|
-
m.messageContextInfo = {};
|
|
337
|
-
m.pinInChatMessage.key = message.pin;
|
|
338
|
-
m.pinInChatMessage.type = message.type;
|
|
339
|
-
m.pinInChatMessage.senderTimestampMs = Date.now();
|
|
340
|
-
m.messageContextInfo.messageAddOnDurationInSecs = message.type === 1 ? message.time || 86400 : 0;
|
|
341
|
-
}
|
|
342
|
-
else if ('keep' in message) {
|
|
343
|
-
m.keepInChatMessage = {};
|
|
344
|
-
m.keepInChatMessage.key = message.keep;
|
|
345
|
-
m.keepInChatMessage.keepType = message.type;
|
|
346
|
-
m.keepInChatMessage.timestampMs = Date.now();
|
|
347
|
-
}
|
|
348
|
-
else if ('call' in message) {
|
|
349
|
-
m = {
|
|
350
|
-
scheduledCallCreationMessage: {
|
|
351
|
-
scheduledTimestampMs: (_a = message.call.time) !== null && _a !== void 0 ? _a : Date.now(),
|
|
352
|
-
callType: (_b = message.call.type) !== null && _b !== void 0 ? _b : 1,
|
|
353
|
-
title: message.call.title
|
|
354
|
-
}
|
|
355
|
-
};
|
|
356
|
-
}
|
|
357
|
-
else if ('paymentInvite' in message) {
|
|
358
|
-
m.paymentInviteMessage = {
|
|
359
|
-
serviceType: message.paymentInvite.type,
|
|
360
|
-
expiryTimestamp: message.paymentInvite.expiry
|
|
361
|
-
};
|
|
362
|
-
}
|
|
363
357
|
else if ('buttonReply' in message) {
|
|
364
358
|
switch (message.type) {
|
|
365
359
|
case 'template':
|
|
@@ -378,10 +372,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
378
372
|
break;
|
|
379
373
|
}
|
|
380
374
|
}
|
|
381
|
-
else if ('ptv' in message && message.ptv) {
|
|
382
|
-
const { videoMessage } = await (0, exports.prepareWAMessageMedia)({ video: message.video }, options);
|
|
383
|
-
m.ptvMessage = videoMessage;
|
|
384
|
-
}
|
|
385
375
|
else if ('product' in message) {
|
|
386
376
|
const { imageMessage } = await (0, exports.prepareWAMessageMedia)({ image: message.product.productImage }, options);
|
|
387
377
|
m.productMessage = Types_1.WAProto.Message.ProductMessage.fromObject({
|
|
@@ -392,27 +382,11 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
392
382
|
}
|
|
393
383
|
});
|
|
394
384
|
}
|
|
395
|
-
else if ('order' in message) {
|
|
396
|
-
m.orderMessage = Types_1.WAProto.Message.OrderMessage.fromObject({
|
|
397
|
-
orderId: message.order.id,
|
|
398
|
-
thumbnail: message.order.thumbnail,
|
|
399
|
-
itemCount: message.order.itemCount,
|
|
400
|
-
status: message.order.status,
|
|
401
|
-
surface: message.order.surface,
|
|
402
|
-
orderTitle: message.order.title,
|
|
403
|
-
message: message.order.text,
|
|
404
|
-
sellerJid: message.order.seller,
|
|
405
|
-
token: message.order.token,
|
|
406
|
-
totalAmount1000: message.order.amount,
|
|
407
|
-
totalCurrencyCode: message.order.currency
|
|
408
|
-
});
|
|
409
|
-
}
|
|
410
385
|
else if ('listReply' in message) {
|
|
411
386
|
m.listResponseMessage = { ...message.listReply };
|
|
412
387
|
}
|
|
413
388
|
else if ('poll' in message) {
|
|
414
|
-
(
|
|
415
|
-
(_q = message.poll).toAnnouncementGroup || (_q.toAnnouncementGroup = false);
|
|
389
|
+
(_b = message.poll).selectableCount || (_b.selectableCount = 0);
|
|
416
390
|
if (!Array.isArray(message.poll.values)) {
|
|
417
391
|
throw new boom_1.Boom('Invalid poll values', { statusCode: 400 });
|
|
418
392
|
}
|
|
@@ -424,72 +398,11 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
424
398
|
// encKey
|
|
425
399
|
messageSecret: message.poll.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
426
400
|
};
|
|
427
|
-
|
|
401
|
+
m.pollCreationMessage = {
|
|
428
402
|
name: message.poll.name,
|
|
429
403
|
selectableOptionsCount: message.poll.selectableCount,
|
|
430
404
|
options: message.poll.values.map(optionName => ({ optionName })),
|
|
431
405
|
};
|
|
432
|
-
if (message.poll.toAnnouncementGroup) {
|
|
433
|
-
// poll v2 is for community announcement groups (single select and multiple)
|
|
434
|
-
m.pollCreationMessageV2 = pollCreationMessage;
|
|
435
|
-
}
|
|
436
|
-
else {
|
|
437
|
-
if (message.poll.selectableCount === 1) {
|
|
438
|
-
// poll v3 is for single select polls
|
|
439
|
-
m.pollCreationMessageV3 = pollCreationMessage;
|
|
440
|
-
}
|
|
441
|
-
else {
|
|
442
|
-
// poll for multiple choice polls
|
|
443
|
-
m.pollCreationMessage = pollCreationMessage;
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
else if ('event' in message) {
|
|
448
|
-
m.messageContextInfo = {
|
|
449
|
-
messageSecret: message.event.messageSecret || (0, crypto_1.randomBytes)(32),
|
|
450
|
-
};
|
|
451
|
-
m.eventMessage = { ...message.event };
|
|
452
|
-
}
|
|
453
|
-
else if ('inviteAdmin' in message) {
|
|
454
|
-
m.newsletterAdminInviteMessage = {};
|
|
455
|
-
m.newsletterAdminInviteMessage.inviteExpiration = message.inviteAdmin.inviteExpiration;
|
|
456
|
-
m.newsletterAdminInviteMessage.caption = message.inviteAdmin.text;
|
|
457
|
-
m.newsletterAdminInviteMessage.newsletterJid = message.inviteAdmin.jid;
|
|
458
|
-
m.newsletterAdminInviteMessage.newsletterName = message.inviteAdmin.subject;
|
|
459
|
-
m.newsletterAdminInviteMessage.jpegThumbnail = message.inviteAdmin.thumbnail;
|
|
460
|
-
}
|
|
461
|
-
else if ('requestPayment' in message) {
|
|
462
|
-
const sticker = ((_c = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _c === void 0 ? void 0 : _c.sticker) ?
|
|
463
|
-
await (0, exports.prepareWAMessageMedia)({ sticker: (_d = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _d === void 0 ? void 0 : _d.sticker, ...options }, options)
|
|
464
|
-
: null;
|
|
465
|
-
let notes = {};
|
|
466
|
-
if ((_e = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _e === void 0 ? void 0 : _e.sticker) {
|
|
467
|
-
notes = {
|
|
468
|
-
stickerMessage: {
|
|
469
|
-
...sticker === null || sticker === void 0 ? void 0 : sticker.stickerMessage,
|
|
470
|
-
contextInfo: (_f = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _f === void 0 ? void 0 : _f.contextInfo
|
|
471
|
-
}
|
|
472
|
-
};
|
|
473
|
-
}
|
|
474
|
-
else if (message.requestPayment.note) {
|
|
475
|
-
notes = {
|
|
476
|
-
extendedTextMessage: {
|
|
477
|
-
text: message.requestPayment.note,
|
|
478
|
-
contextInfo: (_g = message === null || message === void 0 ? void 0 : message.requestPayment) === null || _g === void 0 ? void 0 : _g.contextInfo,
|
|
479
|
-
}
|
|
480
|
-
};
|
|
481
|
-
}
|
|
482
|
-
else {
|
|
483
|
-
throw new boom_1.Boom('Invalid media type', { statusCode: 400 });
|
|
484
|
-
}
|
|
485
|
-
m.requestPaymentMessage = Types_1.WAProto.Message.RequestPaymentMessage.fromObject({
|
|
486
|
-
expiryTimestamp: message.requestPayment.expiry,
|
|
487
|
-
amount1000: message.requestPayment.amount,
|
|
488
|
-
currencyCodeIso4217: message.requestPayment.currency,
|
|
489
|
-
requestFrom: message.requestPayment.from,
|
|
490
|
-
noteMessage: { ...notes },
|
|
491
|
-
background: (_h = message.requestPayment.background) !== null && _h !== void 0 ? _h : null,
|
|
492
|
-
});
|
|
493
406
|
}
|
|
494
407
|
else if ('sharePhoneNumber' in message) {
|
|
495
408
|
m.protocolMessage = {
|
|
@@ -499,14 +412,6 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
499
412
|
else if ('requestPhoneNumber' in message) {
|
|
500
413
|
m.requestPhoneNumberMessage = {};
|
|
501
414
|
}
|
|
502
|
-
else if ('album' in message) {
|
|
503
|
-
const imageMessages = message.album.filter(item => 'image' in item);
|
|
504
|
-
const videoMessages = message.album.filter(item => 'video' in item);
|
|
505
|
-
m.albumMessage = WAProto_1.proto.Message.AlbumMessage.fromObject({
|
|
506
|
-
expectedImageCount: imageMessages.length,
|
|
507
|
-
expectedVideoCount: videoMessages.length,
|
|
508
|
-
});
|
|
509
|
-
}
|
|
510
415
|
else {
|
|
511
416
|
m = await (0, exports.prepareWAMessageMedia)(message, options);
|
|
512
417
|
}
|
|
@@ -526,24 +431,14 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
526
431
|
buttonsMessage.headerType = ButtonType[type];
|
|
527
432
|
Object.assign(buttonsMessage, m);
|
|
528
433
|
}
|
|
529
|
-
if ('title' in message && !!message.title) {
|
|
530
|
-
buttonsMessage.text = message.title,
|
|
531
|
-
buttonsMessage.headerType = ButtonType.TEXT;
|
|
532
|
-
}
|
|
533
434
|
if ('footer' in message && !!message.footer) {
|
|
534
435
|
buttonsMessage.footerText = message.footer;
|
|
535
436
|
}
|
|
536
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
537
|
-
buttonsMessage.contextInfo = message.contextInfo;
|
|
538
|
-
}
|
|
539
|
-
if ('mentions' in message && !!message.mentions) {
|
|
540
|
-
buttonsMessage.contextInfo = { mentionedJid: message.mentions };
|
|
541
|
-
}
|
|
542
437
|
m = { buttonsMessage };
|
|
543
438
|
}
|
|
544
439
|
else if ('templateButtons' in message && !!message.templateButtons) {
|
|
545
440
|
const msg = {
|
|
546
|
-
hydratedButtons: message.
|
|
441
|
+
hydratedButtons: message.templateButtons
|
|
547
442
|
};
|
|
548
443
|
if ('text' in message) {
|
|
549
444
|
msg.hydratedContentText = message.text;
|
|
@@ -575,97 +470,10 @@ const generateWAMessageContent = async (message, options) => {
|
|
|
575
470
|
};
|
|
576
471
|
m = { listMessage };
|
|
577
472
|
}
|
|
578
|
-
if ('interactiveButtons' in message && !!message.interactiveButtons) {
|
|
579
|
-
const interactiveMessage = {
|
|
580
|
-
nativeFlowMessage: Types_1.WAProto.Message.InteractiveMessage.NativeFlowMessage.fromObject({
|
|
581
|
-
buttons: message.interactiveButtons,
|
|
582
|
-
})
|
|
583
|
-
};
|
|
584
|
-
if ('text' in message) {
|
|
585
|
-
interactiveMessage.body = {
|
|
586
|
-
text: message.text
|
|
587
|
-
};
|
|
588
|
-
}
|
|
589
|
-
else if ('caption' in message) {
|
|
590
|
-
interactiveMessage.body = {
|
|
591
|
-
text: message.caption
|
|
592
|
-
};
|
|
593
|
-
interactiveMessage.header = {
|
|
594
|
-
title: message.title,
|
|
595
|
-
subtitle: message.subtitle,
|
|
596
|
-
hasMediaAttachment: (_j = message === null || message === void 0 ? void 0 : message.media) !== null && _j !== void 0 ? _j : false,
|
|
597
|
-
};
|
|
598
|
-
Object.assign(interactiveMessage.header, m);
|
|
599
|
-
}
|
|
600
|
-
if ('footer' in message && !!message.footer) {
|
|
601
|
-
interactiveMessage.footer = {
|
|
602
|
-
text: message.footer
|
|
603
|
-
};
|
|
604
|
-
}
|
|
605
|
-
if ('title' in message && !!message.title) {
|
|
606
|
-
interactiveMessage.header = {
|
|
607
|
-
title: message.title,
|
|
608
|
-
subtitle: message.subtitle,
|
|
609
|
-
hasMediaAttachment: (_k = message === null || message === void 0 ? void 0 : message.media) !== null && _k !== void 0 ? _k : false,
|
|
610
|
-
};
|
|
611
|
-
Object.assign(interactiveMessage.header, m);
|
|
612
|
-
}
|
|
613
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
614
|
-
interactiveMessage.contextInfo = message.contextInfo;
|
|
615
|
-
}
|
|
616
|
-
if ('mentions' in message && !!message.mentions) {
|
|
617
|
-
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
618
|
-
}
|
|
619
|
-
m = { interactiveMessage };
|
|
620
|
-
}
|
|
621
|
-
if ('shop' in message && !!message.shop) {
|
|
622
|
-
const interactiveMessage = {
|
|
623
|
-
shopStorefrontMessage: Types_1.WAProto.Message.InteractiveMessage.ShopMessage.fromObject({
|
|
624
|
-
surface: message.shop,
|
|
625
|
-
id: message.id
|
|
626
|
-
})
|
|
627
|
-
};
|
|
628
|
-
if ('text' in message) {
|
|
629
|
-
interactiveMessage.body = {
|
|
630
|
-
text: message.text
|
|
631
|
-
};
|
|
632
|
-
}
|
|
633
|
-
else if ('caption' in message) {
|
|
634
|
-
interactiveMessage.body = {
|
|
635
|
-
text: message.caption
|
|
636
|
-
};
|
|
637
|
-
interactiveMessage.header = {
|
|
638
|
-
title: message.title,
|
|
639
|
-
subtitle: message.subtitle,
|
|
640
|
-
hasMediaAttachment: (_l = message === null || message === void 0 ? void 0 : message.media) !== null && _l !== void 0 ? _l : false,
|
|
641
|
-
};
|
|
642
|
-
Object.assign(interactiveMessage.header, m);
|
|
643
|
-
}
|
|
644
|
-
if ('footer' in message && !!message.footer) {
|
|
645
|
-
interactiveMessage.footer = {
|
|
646
|
-
text: message.footer
|
|
647
|
-
};
|
|
648
|
-
}
|
|
649
|
-
if ('title' in message && !!message.title) {
|
|
650
|
-
interactiveMessage.header = {
|
|
651
|
-
title: message.title,
|
|
652
|
-
subtitle: message.subtitle,
|
|
653
|
-
hasMediaAttachment: (_m = message === null || message === void 0 ? void 0 : message.media) !== null && _m !== void 0 ? _m : false,
|
|
654
|
-
};
|
|
655
|
-
Object.assign(interactiveMessage.header, m);
|
|
656
|
-
}
|
|
657
|
-
if ('contextInfo' in message && !!message.contextInfo) {
|
|
658
|
-
interactiveMessage.contextInfo = message.contextInfo;
|
|
659
|
-
}
|
|
660
|
-
if ('mentions' in message && !!message.mentions) {
|
|
661
|
-
interactiveMessage.contextInfo = { mentionedJid: message.mentions };
|
|
662
|
-
}
|
|
663
|
-
m = { interactiveMessage };
|
|
664
|
-
}
|
|
665
473
|
if ('viewOnce' in message && !!message.viewOnce) {
|
|
666
474
|
m = { viewOnceMessage: { message: m } };
|
|
667
475
|
}
|
|
668
|
-
if ('mentions' in message && ((
|
|
476
|
+
if ('mentions' in message && ((_a = message.mentions) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
669
477
|
const [messageType] = Object.keys(m);
|
|
670
478
|
m[messageType].contextInfo = m[messageType] || {};
|
|
671
479
|
m[messageType].contextInfo.mentionedJid = message.mentions;
|
|
@@ -698,29 +506,26 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
698
506
|
const key = (0, exports.getContentType)(innerMessage);
|
|
699
507
|
const timestamp = (0, generics_1.unixTimestampSeconds)(options.timestamp);
|
|
700
508
|
const { quoted, userJid } = options;
|
|
701
|
-
|
|
702
|
-
if (quoted && !(0, WABinary_1.isJidNewsletter)(jid)) {
|
|
509
|
+
if (quoted && !(0, WABinary_1.isJidNewsLetter)(jid)) {
|
|
703
510
|
const participant = quoted.key.fromMe ? userJid : (quoted.participant || quoted.key.participant || quoted.key.remoteJid);
|
|
704
511
|
let quotedMsg = (0, exports.normalizeMessageContent)(quoted.message);
|
|
705
512
|
const msgType = (0, exports.getContentType)(quotedMsg);
|
|
706
513
|
// strip any redundant properties
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
innerMessage[key].contextInfo = contextInfo;
|
|
723
|
-
}
|
|
514
|
+
quotedMsg = WAProto_1.proto.Message.fromObject({ [msgType]: quotedMsg[msgType] });
|
|
515
|
+
const quotedContent = quotedMsg[msgType];
|
|
516
|
+
if (typeof quotedContent === 'object' && quotedContent && 'contextInfo' in quotedContent) {
|
|
517
|
+
delete quotedContent.contextInfo;
|
|
518
|
+
}
|
|
519
|
+
const contextInfo = innerMessage[key].contextInfo || {};
|
|
520
|
+
contextInfo.participant = (0, WABinary_1.jidNormalizedUser)(participant);
|
|
521
|
+
contextInfo.stanzaId = quoted.key.id;
|
|
522
|
+
contextInfo.quotedMessage = quotedMsg;
|
|
523
|
+
// if a participant is quoted, then it must be a group
|
|
524
|
+
// hence, remoteJid of group must also be entered
|
|
525
|
+
if (jid !== quoted.key.remoteJid) {
|
|
526
|
+
contextInfo.remoteJid = quoted.key.remoteJid;
|
|
527
|
+
}
|
|
528
|
+
innerMessage[key].contextInfo = contextInfo;
|
|
724
529
|
}
|
|
725
530
|
if (
|
|
726
531
|
// if we want to send a disappearing message
|
|
@@ -730,7 +535,7 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
730
535
|
// already not converted to disappearing message
|
|
731
536
|
key !== 'ephemeralMessage' &&
|
|
732
537
|
// newsletter not accept disappearing messages
|
|
733
|
-
!(0, WABinary_1.
|
|
538
|
+
!(0, WABinary_1.isJidNewsLetter)(jid)) {
|
|
734
539
|
innerMessage[key].contextInfo = {
|
|
735
540
|
...(innerMessage[key].contextInfo || {}),
|
|
736
541
|
expiration: options.ephemeralExpiration || Defaults_1.WA_DEFAULT_EPHEMERAL,
|
|
@@ -742,7 +547,7 @@ const generateWAMessageFromContent = (jid, message, options) => {
|
|
|
742
547
|
key: {
|
|
743
548
|
remoteJid: jid,
|
|
744
549
|
fromMe: true,
|
|
745
|
-
id: (options === null || options === void 0 ? void 0 : options.messageId) || (0, generics_1.
|
|
550
|
+
id: (options === null || options === void 0 ? void 0 : options.messageId) || (0, generics_1.generateMessageID)(),
|
|
746
551
|
},
|
|
747
552
|
message: message,
|
|
748
553
|
messageTimestamp: timestamp,
|
|
@@ -757,7 +562,7 @@ const generateWAMessage = async (jid, content, options) => {
|
|
|
757
562
|
var _a;
|
|
758
563
|
// ensure msg ID is with every log
|
|
759
564
|
options.logger = (_a = options === null || options === void 0 ? void 0 : options.logger) === null || _a === void 0 ? void 0 : _a.child({ msgId: options.messageId });
|
|
760
|
-
return (0, exports.generateWAMessageFromContent)(jid, await (0, exports.generateWAMessageContent)(content, { newsletter: (0, WABinary_1.
|
|
565
|
+
return (0, exports.generateWAMessageFromContent)(jid, await (0, exports.generateWAMessageContent)(content, { newsletter: (0, WABinary_1.isJidNewsLetter)(jid), ...options }), options);
|
|
761
566
|
};
|
|
762
567
|
exports.generateWAMessage = generateWAMessage;
|
|
763
568
|
/** Get the key to access the true type of content */
|
|
@@ -794,24 +599,7 @@ const normalizeMessageContent = (content) => {
|
|
|
794
599
|
|| (message === null || message === void 0 ? void 0 : message.documentWithCaptionMessage)
|
|
795
600
|
|| (message === null || message === void 0 ? void 0 : message.viewOnceMessageV2)
|
|
796
601
|
|| (message === null || message === void 0 ? void 0 : message.viewOnceMessageV2Extension)
|
|
797
|
-
|| (message === null || message === void 0 ? void 0 : message.editedMessage)
|
|
798
|
-
|| (message === null || message === void 0 ? void 0 : message.groupMentionedMessage)
|
|
799
|
-
|| (message === null || message === void 0 ? void 0 : message.botInvokeMessage)
|
|
800
|
-
|| (message === null || message === void 0 ? void 0 : message.lottieStickerMessage)
|
|
801
|
-
|| (message === null || message === void 0 ? void 0 : message.eventCoverImage)
|
|
802
|
-
|| (message === null || message === void 0 ? void 0 : message.statusMentionMessage)
|
|
803
|
-
|| (message === null || message === void 0 ? void 0 : message.pollCreationOptionImageMessage)
|
|
804
|
-
|| (message === null || message === void 0 ? void 0 : message.associatedChildMessage)
|
|
805
|
-
|| (message === null || message === void 0 ? void 0 : message.groupStatusMentionMessage)
|
|
806
|
-
|| (message === null || message === void 0 ? void 0 : message.pollCreationMessageV4)
|
|
807
|
-
|| (message === null || message === void 0 ? void 0 : message.pollCreationMessageV5)
|
|
808
|
-
|| (message === null || message === void 0 ? void 0 : message.statusAddYours)
|
|
809
|
-
|| (message === null || message === void 0 ? void 0 : message.groupStatusMessage)
|
|
810
|
-
|| (message === null || message === void 0 ? void 0 : message.limitSharingMessage)
|
|
811
|
-
|| (message === null || message === void 0 ? void 0 : message.botTaskMessage)
|
|
812
|
-
|| (message === null || message === void 0 ? void 0 : message.questionMessage)
|
|
813
|
-
|| (message === null || message === void 0 ? void 0 : message.groupStatusMessageV2)
|
|
814
|
-
|| (message === null || message === void 0 ? void 0 : message.botForwardedMessage));
|
|
602
|
+
|| (message === null || message === void 0 ? void 0 : message.editedMessage));
|
|
815
603
|
}
|
|
816
604
|
};
|
|
817
605
|
exports.normalizeMessageContent = normalizeMessageContent;
|
|
@@ -861,11 +649,7 @@ exports.extractMessageContent = extractMessageContent;
|
|
|
861
649
|
/**
|
|
862
650
|
* Returns the device predicted by message ID
|
|
863
651
|
*/
|
|
864
|
-
const getDevice = (id) => /^3A.{18}$/.test(id) ? 'ios' :
|
|
865
|
-
/^3E.{20}$/.test(id) ? 'web' :
|
|
866
|
-
/^(.{21}|.{32})$/.test(id) ? 'android' :
|
|
867
|
-
/^(3F|.{18}$)/.test(id) ? 'desktop' :
|
|
868
|
-
'unknown';
|
|
652
|
+
const getDevice = (id) => /^3A.{18}$/.test(id) ? 'ios' : /^3E.{20}$/.test(id) ? 'web' : /^(.{21}|.{32})$/.test(id) ? 'android' : /^.{18}$/.test(id) ? 'desktop' : 'unknown';
|
|
869
653
|
exports.getDevice = getDevice;
|
|
870
654
|
/** Upserts a receipt in the message */
|
|
871
655
|
const updateMessageWithReceipt = (msg, receipt) => {
|
|
@@ -884,8 +668,9 @@ const updateMessageWithReaction = (msg, reaction) => {
|
|
|
884
668
|
const authorID = (0, generics_1.getKeyAuthor)(reaction.key);
|
|
885
669
|
const reactions = (msg.reactions || [])
|
|
886
670
|
.filter(r => (0, generics_1.getKeyAuthor)(r.key) !== authorID);
|
|
887
|
-
|
|
888
|
-
|
|
671
|
+
if (reaction.text) {
|
|
672
|
+
reactions.push(reaction);
|
|
673
|
+
}
|
|
889
674
|
msg.reactions = reactions;
|
|
890
675
|
};
|
|
891
676
|
exports.updateMessageWithReaction = updateMessageWithReaction;
|
|
@@ -938,6 +723,7 @@ function getAggregateVotesInPollMessage({ message, pollUpdates }, meId) {
|
|
|
938
723
|
}
|
|
939
724
|
return Object.values(voteHashMap);
|
|
940
725
|
}
|
|
726
|
+
exports.getAggregateVotesInPollMessage = getAggregateVotesInPollMessage;
|
|
941
727
|
/** Given a list of message keys, aggregates them by chat & sender. Useful for sending read receipts in bulk */
|
|
942
728
|
const aggregateMessageKeysNotFromMe = (keys) => {
|
|
943
729
|
const keyMap = {};
|
|
@@ -1028,22 +814,3 @@ const assertMediaContent = (content) => {
|
|
|
1028
814
|
return mediaContent;
|
|
1029
815
|
};
|
|
1030
816
|
exports.assertMediaContent = assertMediaContent;
|
|
1031
|
-
|
|
1032
|
-
const toJid = (id) => {
|
|
1033
|
-
if (!id)
|
|
1034
|
-
return '';
|
|
1035
|
-
if (id.endsWith('@lid'))
|
|
1036
|
-
return id.replace('@lid', '@s.whatsapp.net');
|
|
1037
|
-
if (id.includes('@'))
|
|
1038
|
-
return id;
|
|
1039
|
-
return `${id}@s.whatsapp.net`;
|
|
1040
|
-
};
|
|
1041
|
-
exports.toJid = toJid;
|
|
1042
|
-
const getSenderLid = (message) => {
|
|
1043
|
-
const sender = message.key.participant || message.key.remoteJid;
|
|
1044
|
-
const user = (0, WABinary_1.jidDecode)(sender)?.user || '';
|
|
1045
|
-
const lid = (0, WABinary_1.jidEncode)(user, 'lid');
|
|
1046
|
-
console.log('sender lid:', lid);
|
|
1047
|
-
return { jid: sender, lid };
|
|
1048
|
-
};
|
|
1049
|
-
exports.getSenderLid = getSenderLid;
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Logger } from 'pino';
|
|
2
3
|
import { proto } from '../../WAProto';
|
|
3
4
|
import { KeyPair } from '../Types';
|
|
4
5
|
import { BinaryNode } from '../WABinary';
|
|
5
|
-
export declare const makeNoiseHandler: ({ keyPair: { private: privateKey, public: publicKey }, NOISE_HEADER, logger, routingInfo }: {
|
|
6
|
+
export declare const makeNoiseHandler: ({ keyPair: { private: privateKey, public: publicKey }, NOISE_HEADER, mobile, logger, routingInfo }: {
|
|
6
7
|
keyPair: KeyPair;
|
|
7
8
|
NOISE_HEADER: Uint8Array;
|
|
8
|
-
|
|
9
|
+
mobile: boolean;
|
|
10
|
+
logger: Logger;
|
|
9
11
|
routingInfo?: Buffer | undefined;
|
|
10
12
|
}) => {
|
|
11
|
-
encrypt: (plaintext: Uint8Array) => Buffer
|
|
12
|
-
decrypt: (ciphertext: Uint8Array) => Buffer
|
|
13
|
+
encrypt: (plaintext: Uint8Array) => Buffer;
|
|
14
|
+
decrypt: (ciphertext: Uint8Array) => Buffer;
|
|
13
15
|
authenticate: (data: Uint8Array) => void;
|
|
14
|
-
mixIntoKey: (data: Uint8Array) =>
|
|
15
|
-
finishInit: () =>
|
|
16
|
-
processHandshake: ({ serverHello }: proto.HandshakeMessage, noiseKey: KeyPair) =>
|
|
17
|
-
encodeFrame: (data: Buffer | Uint8Array) => Buffer
|
|
18
|
-
decodeFrame: (newData: Buffer | Uint8Array, onFrame: (buff: Uint8Array | BinaryNode) => void) =>
|
|
16
|
+
mixIntoKey: (data: Uint8Array) => void;
|
|
17
|
+
finishInit: () => void;
|
|
18
|
+
processHandshake: ({ serverHello }: proto.HandshakeMessage, noiseKey: KeyPair) => Buffer;
|
|
19
|
+
encodeFrame: (data: Buffer | Uint8Array) => Buffer;
|
|
20
|
+
decodeFrame: (newData: Buffer | Uint8Array, onFrame: (buff: Uint8Array | BinaryNode) => void) => void;
|
|
19
21
|
};
|