gifted-baileys 1.5.4 → 1.5.6
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/WAProto.proto +88 -969
- package/WAProto/index.d.ts +1256 -13195
- package/WAProto/index.js +74730 -125106
- package/package.json +9 -27
- package/src/Defaults/baileys-version.json +3 -0
- package/{lib → src}/Defaults/index.js +14 -7
- package/src/Defaults/index.ts +131 -0
- package/src/README.md +1 -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/{lib → src}/Socket/Client/index.js +3 -2
- 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 -28
- package/src/Socket/business.ts +281 -0
- package/{lib → src}/Socket/chats.js +176 -174
- package/src/Socket/chats.ts +1030 -0
- package/{lib → src}/Socket/groups.js +68 -80
- 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 +211 -378
- package/src/Socket/messages-recv.ts +985 -0
- package/{lib → src}/Socket/messages-send.js +177 -452
- package/src/Socket/messages-send.ts +871 -0
- package/{lib → src}/Socket/newsletter.js +98 -107
- package/src/Socket/newsletter.ts +282 -0
- package/{lib → src}/Socket/registration.js +48 -56
- package/src/Socket/registration.ts +250 -0
- package/{lib → src}/Socket/socket.js +77 -77
- 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 +32 -36
- 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/src/Types/Label.ts +36 -0
- package/{lib/Types/LabelAssociation.d.ts → src/Types/LabelAssociation.ts} +22 -16
- package/src/Types/Message.ts +288 -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 -61
- package/src/Types/State.ts +29 -0
- package/src/Types/index.ts +59 -0
- package/{lib → src}/Utils/auth-utils.js +90 -73
- 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 +43 -15
- package/src/Utils/business.ts +275 -0
- package/{lib → src}/Utils/chat-utils.js +94 -87
- package/src/Utils/chat-utils.ts +860 -0
- package/{lib → src}/Utils/crypto.js +2 -4
- 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 +86 -67
- package/src/Utils/generics.ts +434 -0
- package/{lib → src}/Utils/history.js +39 -13
- 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 +255 -193
- package/src/Utils/messages-media.ts +847 -0
- package/{lib → src}/Utils/messages.js +118 -588
- package/src/Utils/messages.ts +956 -0
- package/src/Utils/noise-handler.ts +197 -0
- package/{lib → src}/Utils/process-message.js +30 -27
- package/src/Utils/process-message.ts +414 -0
- package/{lib → src}/Utils/signal.js +42 -25
- package/src/Utils/signal.ts +177 -0
- package/{lib → src}/Utils/use-multi-file-auth-state.js +28 -27
- package/src/Utils/use-multi-file-auth-state.ts +90 -0
- package/{lib → src}/Utils/validate-connection.js +9 -40
- package/src/Utils/validate-connection.ts +238 -0
- package/src/WABinary/constants.ts +42 -0
- package/src/WABinary/decode.ts +265 -0
- package/{lib → src}/WABinary/encode.js +10 -16
- package/src/WABinary/encode.ts +236 -0
- package/src/WABinary/generic-utils.ts +121 -0
- package/src/WABinary/index.ts +5 -0
- package/src/WABinary/jid-utils.ts +68 -0
- package/src/WABinary/types.ts +17 -0
- package/src/WAM/BinaryInfo.ts +12 -0
- package/src/WAM/constants.ts +15382 -0
- package/src/WAM/encode.ts +174 -0
- package/src/WAM/index.ts +3 -0
- package/{lib → src}/index.js +0 -1
- package/src/index.ts +13 -0
- package/README.md +0 -1645
- package/lib/Defaults/baileys-version.json +0 -3
- package/lib/Defaults/index.d.ts +0 -284
- package/lib/Signal/libsignal.d.ts +0 -3
- package/lib/Signal/libsignal.js +0 -161
- package/lib/Socket/Client/abstract-socket-client.d.ts +0 -15
- package/lib/Socket/Client/index.d.ts +0 -2
- package/lib/Socket/Client/mobile-socket-client.d.ts +0 -12
- package/lib/Socket/Client/mobile-socket-client.js +0 -65
- package/lib/Socket/Client/types.d.ts +0 -17
- package/lib/Socket/Client/types.js +0 -13
- package/lib/Socket/Client/websocket.d.ts +0 -12
- package/lib/Socket/Client/websocket.js +0 -62
- package/lib/Socket/business.d.ts +0 -170
- package/lib/Socket/chats.d.ts +0 -81
- package/lib/Socket/groups.d.ts +0 -115
- package/lib/Socket/index.d.ts +0 -172
- package/lib/Socket/messages-recv.d.ts +0 -158
- package/lib/Socket/messages-send.d.ts +0 -155
- package/lib/Socket/newsletter.d.ts +0 -132
- package/lib/Socket/registration.d.ts +0 -264
- package/lib/Socket/socket.d.ts +0 -44
- package/lib/Socket/usync.d.ts +0 -37
- package/lib/Socket/usync.js +0 -70
- package/lib/Store/index.d.ts +0 -3
- package/lib/Store/make-cache-manager-store.d.ts +0 -14
- package/lib/Store/make-in-memory-store.d.ts +0 -118
- 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 -109
- package/lib/Types/Call.d.ts +0 -13
- package/lib/Types/Chat.d.ts +0 -107
- package/lib/Types/Events.d.ts +0 -172
- package/lib/Types/GroupMetadata.d.ts +0 -56
- package/lib/Types/Label.d.ts +0 -46
- package/lib/Types/Message.d.ts +0 -433
- package/lib/Types/Newsletter.d.ts +0 -92
- 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/USync.d.ts +0 -25
- package/lib/Types/USync.js +0 -2
- package/lib/Types/index.d.ts +0 -66
- 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 -70
- package/lib/Utils/crypto.d.ts +0 -40
- package/lib/Utils/decode-wa-message.d.ts +0 -36
- package/lib/Utils/decode-wa-message.js +0 -226
- package/lib/Utils/event-buffer.d.ts +0 -35
- package/lib/Utils/generics.d.ts +0 -88
- package/lib/Utils/history.d.ts +0 -19
- package/lib/Utils/index.d.ts +0 -17
- package/lib/Utils/link-preview.d.ts +0 -21
- package/lib/Utils/logger.d.ts +0 -2
- 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 -113
- package/lib/Utils/messages.d.ts +0 -77
- 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 -33
- 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 -6
- package/lib/WABinary/encode.d.ts +0 -2
- package/lib/WABinary/generic-utils.d.ts +0 -14
- package/lib/WABinary/index.d.ts +0 -5
- package/lib/WABinary/jid-utils.d.ts +0 -31
- package/lib/WABinary/types.d.ts +0 -18
- package/lib/WAM/BinaryInfo.d.ts +0 -8
- package/lib/WAM/constants.d.ts +0 -38
- package/lib/WAM/encode.d.ts +0 -2
- package/lib/WAM/index.d.ts +0 -3
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -9
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +0 -32
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -22
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +0 -57
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -12
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -30
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -12
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +0 -42
- package/lib/WAUSync/Protocols/index.d.ts +0 -4
- package/lib/WAUSync/Protocols/index.js +0 -20
- package/lib/WAUSync/USyncQuery.d.ts +0 -26
- package/lib/WAUSync/USyncQuery.js +0 -79
- package/lib/WAUSync/USyncUser.d.ts +0 -10
- package/lib/WAUSync/USyncUser.js +0 -22
- package/lib/WAUSync/index.d.ts +0 -3
- package/lib/WAUSync/index.js +0 -19
- /package/{lib → src}/Defaults/phonenumber-mcc.json +0 -0
- /package/{lib → src}/Socket/Client/abstract-socket-client.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/Label.js +0 -0
- /package/{lib → src}/Types/LabelAssociation.js +0 -0
- /package/{lib → src}/Types/Message.js +0 -0
- /package/{lib → src}/Types/Newsletter.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}/Types/index.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}/Utils/noise-handler.js +0 -0
- /package/{lib → src}/WABinary/constants.js +0 -0
- /package/{lib → src}/WABinary/decode.js +0 -0
- /package/{lib → src}/WABinary/generic-utils.js +0 -0
- /package/{lib → src}/WABinary/index.js +0 -0
- /package/{lib → src}/WABinary/jid-utils.js +0 -0
- /package/{lib → src}/WABinary/types.js +0 -0
- /package/{lib → src}/WAM/BinaryInfo.js +0 -0
- /package/{lib → src}/WAM/constants.js +0 -0
- /package/{lib → src}/WAM/encode.js +0 -0
- /package/{lib → src}/WAM/index.js +0 -0
- /package/{lib → src}/gifted +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
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
13
|
};
|
|
@@ -7,19 +16,19 @@ const cache_manager_1 = require("cache-manager");
|
|
|
7
16
|
const WAProto_1 = require("../../WAProto");
|
|
8
17
|
const Utils_1 = require("../Utils");
|
|
9
18
|
const logger_1 = __importDefault(require("../Utils/logger"));
|
|
10
|
-
const makeCacheManagerAuthState =
|
|
19
|
+
const makeCacheManagerAuthState = (store, sessionKey) => __awaiter(void 0, void 0, void 0, function* () {
|
|
11
20
|
const defaultKey = (file) => `${sessionKey}:${file}`;
|
|
12
|
-
const databaseConn =
|
|
13
|
-
const writeData =
|
|
21
|
+
const databaseConn = yield (0, cache_manager_1.caching)(store);
|
|
22
|
+
const writeData = (file, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
23
|
let ttl = undefined;
|
|
15
24
|
if (file === 'creds') {
|
|
16
25
|
ttl = 63115200; // 2 years
|
|
17
26
|
}
|
|
18
|
-
|
|
19
|
-
};
|
|
20
|
-
const readData =
|
|
27
|
+
yield databaseConn.set(defaultKey(file), JSON.stringify(data, Utils_1.BufferJSON.replacer), ttl);
|
|
28
|
+
});
|
|
29
|
+
const readData = (file) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
30
|
try {
|
|
22
|
-
const data =
|
|
31
|
+
const data = yield databaseConn.get(defaultKey(file));
|
|
23
32
|
if (data) {
|
|
24
33
|
return JSON.parse(data, Utils_1.BufferJSON.reviver);
|
|
25
34
|
}
|
|
@@ -29,42 +38,42 @@ const makeCacheManagerAuthState = async (store, sessionKey) => {
|
|
|
29
38
|
logger_1.default.error(error);
|
|
30
39
|
return null;
|
|
31
40
|
}
|
|
32
|
-
};
|
|
33
|
-
const removeData =
|
|
41
|
+
});
|
|
42
|
+
const removeData = (file) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
43
|
try {
|
|
35
|
-
return
|
|
44
|
+
return yield databaseConn.del(defaultKey(file));
|
|
36
45
|
}
|
|
37
46
|
catch (_a) {
|
|
38
47
|
logger_1.default.error(`Error removing ${file} from session ${sessionKey}`);
|
|
39
48
|
}
|
|
40
|
-
};
|
|
41
|
-
const clearState =
|
|
49
|
+
});
|
|
50
|
+
const clearState = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
51
|
try {
|
|
43
|
-
const result =
|
|
44
|
-
|
|
52
|
+
const result = yield databaseConn.store.keys(`${sessionKey}*`);
|
|
53
|
+
yield Promise.all(result.map((key) => __awaiter(void 0, void 0, void 0, function* () { return yield databaseConn.del(key); })));
|
|
45
54
|
}
|
|
46
55
|
catch (err) {
|
|
47
56
|
}
|
|
48
|
-
};
|
|
49
|
-
const creds = (
|
|
57
|
+
});
|
|
58
|
+
const creds = (yield readData('creds')) || (0, Utils_1.initAuthCreds)();
|
|
50
59
|
return {
|
|
51
60
|
clearState,
|
|
52
61
|
saveCreds: () => writeData('creds', creds),
|
|
53
62
|
state: {
|
|
54
63
|
creds,
|
|
55
64
|
keys: {
|
|
56
|
-
get:
|
|
65
|
+
get: (type, ids) => __awaiter(void 0, void 0, void 0, function* () {
|
|
57
66
|
const data = {};
|
|
58
|
-
|
|
59
|
-
let value =
|
|
67
|
+
yield Promise.all(ids.map((id) => __awaiter(void 0, void 0, void 0, function* () {
|
|
68
|
+
let value = yield readData(`${type}-${id}`);
|
|
60
69
|
if (type === 'app-state-sync-key' && value) {
|
|
61
70
|
value = WAProto_1.proto.Message.AppStateSyncKeyData.fromObject(value);
|
|
62
71
|
}
|
|
63
72
|
data[id] = value;
|
|
64
|
-
}));
|
|
73
|
+
})));
|
|
65
74
|
return data;
|
|
66
|
-
},
|
|
67
|
-
set:
|
|
75
|
+
}),
|
|
76
|
+
set: (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
68
77
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
69
78
|
const tasks = [];
|
|
70
79
|
for (const category in data) {
|
|
@@ -74,10 +83,10 @@ const makeCacheManagerAuthState = async (store, sessionKey) => {
|
|
|
74
83
|
tasks.push(value ? writeData(key, value) : removeData(key));
|
|
75
84
|
}
|
|
76
85
|
}
|
|
77
|
-
|
|
78
|
-
},
|
|
86
|
+
yield Promise.all(tasks);
|
|
87
|
+
}),
|
|
79
88
|
}
|
|
80
89
|
}
|
|
81
90
|
};
|
|
82
|
-
};
|
|
91
|
+
});
|
|
83
92
|
exports.default = makeCacheManagerAuthState;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { caching, Storage } from 'cache-manager'
|
|
2
|
+
import { proto } from '../../WAProto'
|
|
3
|
+
import { AuthenticationCreds } from '../Types'
|
|
4
|
+
import { BufferJSON, initAuthCreds } from '../Utils'
|
|
5
|
+
import logger from '../Utils/logger'
|
|
6
|
+
|
|
7
|
+
const makeCacheManagerAuthState = async(store: Storage, sessionKey: string) => {
|
|
8
|
+
const defaultKey = (file: string): string => `${sessionKey}:${file}`
|
|
9
|
+
|
|
10
|
+
const databaseConn = await caching(store)
|
|
11
|
+
|
|
12
|
+
const writeData = async(file: string, data: object) => {
|
|
13
|
+
let ttl: number | undefined = undefined
|
|
14
|
+
if(file === 'creds') {
|
|
15
|
+
ttl = 63115200 // 2 years
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
await databaseConn.set(
|
|
19
|
+
defaultKey(file),
|
|
20
|
+
JSON.stringify(data, BufferJSON.replacer),
|
|
21
|
+
ttl
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const readData = async(file: string): Promise<AuthenticationCreds | null> => {
|
|
26
|
+
try {
|
|
27
|
+
const data = await databaseConn.get(defaultKey(file))
|
|
28
|
+
|
|
29
|
+
if(data) {
|
|
30
|
+
return JSON.parse(data as string, BufferJSON.reviver)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return null
|
|
34
|
+
} catch(error) {
|
|
35
|
+
logger.error(error)
|
|
36
|
+
return null
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const removeData = async(file: string) => {
|
|
41
|
+
try {
|
|
42
|
+
return await databaseConn.del(defaultKey(file))
|
|
43
|
+
} catch{
|
|
44
|
+
logger.error(`Error removing ${file} from session ${sessionKey}`)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const clearState = async() => {
|
|
49
|
+
try {
|
|
50
|
+
const result = await databaseConn.store.keys(`${sessionKey}*`)
|
|
51
|
+
await Promise.all(
|
|
52
|
+
result.map(async(key) => await databaseConn.del(key))
|
|
53
|
+
)
|
|
54
|
+
} catch(err) {
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const creds: AuthenticationCreds = (await readData('creds')) || initAuthCreds()
|
|
59
|
+
|
|
60
|
+
return {
|
|
61
|
+
clearState,
|
|
62
|
+
saveCreds: () => writeData('creds', creds),
|
|
63
|
+
state: {
|
|
64
|
+
creds,
|
|
65
|
+
keys: {
|
|
66
|
+
get: async(type: string, ids: string[]) => {
|
|
67
|
+
const data = {}
|
|
68
|
+
await Promise.all(
|
|
69
|
+
ids.map(async(id) => {
|
|
70
|
+
let value: proto.Message.AppStateSyncKeyData | AuthenticationCreds | null =
|
|
71
|
+
await readData(`${type}-${id}`)
|
|
72
|
+
if(type === 'app-state-sync-key' && value) {
|
|
73
|
+
value = proto.Message.AppStateSyncKeyData.fromObject(value)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
data[id] = value
|
|
77
|
+
})
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
return data
|
|
81
|
+
},
|
|
82
|
+
set: async(data) => {
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
84
|
+
const tasks: Promise<any>[] = []
|
|
85
|
+
for(const category in data) {
|
|
86
|
+
for(const id in data[category]) {
|
|
87
|
+
const value = data[category][id]
|
|
88
|
+
const key = `${category}-${id}`
|
|
89
|
+
tasks.push(value ? writeData(key, value) : removeData(key))
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
await Promise.all(tasks)
|
|
94
|
+
},
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export default makeCacheManagerAuthState
|
|
@@ -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
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
13
|
};
|
|
@@ -56,14 +65,6 @@ exports.default = (config) => {
|
|
|
56
65
|
labels.upsertById(label.id, label);
|
|
57
66
|
}
|
|
58
67
|
};
|
|
59
|
-
const getValidContacts = () => {
|
|
60
|
-
for (const contact of Object.keys(contacts)) {
|
|
61
|
-
if (contact.indexOf('@') < 0) {
|
|
62
|
-
delete contacts[contact];
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return Object.keys(contacts);
|
|
66
|
-
};
|
|
67
68
|
/**
|
|
68
69
|
* binds to a BaileysEventEmitter.
|
|
69
70
|
* It listens to all events and constructs a state that you can query accurate data from.
|
|
@@ -74,11 +75,7 @@ exports.default = (config) => {
|
|
|
74
75
|
ev.on('connection.update', update => {
|
|
75
76
|
Object.assign(state, update);
|
|
76
77
|
});
|
|
77
|
-
ev.on('messaging-history.set', ({ chats: newChats, contacts: newContacts, messages: newMessages, isLatest
|
|
78
|
-
if (syncType === WAProto_1.proto.HistorySync.HistorySyncType.ON_DEMAND) {
|
|
79
|
-
return; // FOR NOW,
|
|
80
|
-
//TODO: HANDLE
|
|
81
|
-
}
|
|
78
|
+
ev.on('messaging-history.set', ({ chats: newChats, contacts: newContacts, messages: newMessages, isLatest }) => {
|
|
82
79
|
if (isLatest) {
|
|
83
80
|
chats.clear();
|
|
84
81
|
for (const id in messages) {
|
|
@@ -104,7 +101,7 @@ exports.default = (config) => {
|
|
|
104
101
|
ev.on('contacts.upsert', contacts => {
|
|
105
102
|
contactsUpsert(contacts);
|
|
106
103
|
});
|
|
107
|
-
ev.on('contacts.update',
|
|
104
|
+
ev.on('contacts.update', (updates) => __awaiter(void 0, void 0, void 0, function* () {
|
|
108
105
|
var _a;
|
|
109
106
|
for (const update of updates) {
|
|
110
107
|
let contact;
|
|
@@ -112,27 +109,26 @@ exports.default = (config) => {
|
|
|
112
109
|
contact = contacts[update.id];
|
|
113
110
|
}
|
|
114
111
|
else {
|
|
115
|
-
const
|
|
116
|
-
const contactHashes = validContacts.map((contactId) => {
|
|
112
|
+
const contactHashes = yield Promise.all(Object.keys(contacts).map((contactId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
117
113
|
const { user } = (0, WABinary_1.jidDecode)(contactId);
|
|
118
|
-
return [contactId, ((0, Utils_1.md5)(Buffer.from(user + 'WA_ADD_NOTIF', 'utf8'))).toString('base64').slice(0, 3)];
|
|
119
|
-
});
|
|
114
|
+
return [contactId, (yield (0, Utils_1.md5)(Buffer.from(user + 'WA_ADD_NOTIF', 'utf8'))).toString('base64').slice(0, 3)];
|
|
115
|
+
})));
|
|
120
116
|
contact = contacts[((_a = contactHashes.find(([, b]) => b === update.id)) === null || _a === void 0 ? void 0 : _a[0]) || '']; // find contact by attrs.hash, when user is not saved as a contact
|
|
121
117
|
}
|
|
122
118
|
if (contact) {
|
|
123
119
|
if (update.imgUrl === 'changed') {
|
|
124
|
-
contact.imgUrl = socket ?
|
|
120
|
+
contact.imgUrl = socket ? yield (socket === null || socket === void 0 ? void 0 : socket.profilePictureUrl(contact.id)) : undefined;
|
|
125
121
|
}
|
|
126
122
|
else if (update.imgUrl === 'removed') {
|
|
127
123
|
delete contact.imgUrl;
|
|
128
124
|
}
|
|
129
|
-
Object.assign(contacts[contact.id], contact);
|
|
130
125
|
}
|
|
131
126
|
else {
|
|
132
|
-
logger.debug({ update }, 'got update for non-existant contact');
|
|
127
|
+
return logger.debug({ update }, 'got update for non-existant contact');
|
|
133
128
|
}
|
|
129
|
+
Object.assign(contacts[contact.id], contact);
|
|
134
130
|
}
|
|
135
|
-
});
|
|
131
|
+
}));
|
|
136
132
|
ev.on('chats.upsert', newChats => {
|
|
137
133
|
chats.upsert(...newChats);
|
|
138
134
|
});
|
|
@@ -140,7 +136,7 @@ exports.default = (config) => {
|
|
|
140
136
|
for (let update of updates) {
|
|
141
137
|
const result = chats.update(update.id, chat => {
|
|
142
138
|
if (update.unreadCount > 0) {
|
|
143
|
-
update = {
|
|
139
|
+
update = Object.assign({}, update);
|
|
144
140
|
update.unreadCount = (chat.unreadCount || 0) + update.unreadCount;
|
|
145
141
|
}
|
|
146
142
|
Object.assign(chat, update);
|
|
@@ -319,7 +315,7 @@ exports.default = (config) => {
|
|
|
319
315
|
labelAssociations,
|
|
320
316
|
bind,
|
|
321
317
|
/** loads messages from the store, if not found -- uses the legacy connection */
|
|
322
|
-
loadMessages:
|
|
318
|
+
loadMessages: (jid, count, cursor) => __awaiter(void 0, void 0, void 0, function* () {
|
|
323
319
|
const list = assertMessageList(jid);
|
|
324
320
|
const mode = !cursor || 'before' in cursor ? 'before' : 'after';
|
|
325
321
|
const cursorKey = !!cursor ? ('before' in cursor ? cursor.before : cursor.after) : undefined;
|
|
@@ -342,7 +338,7 @@ exports.default = (config) => {
|
|
|
342
338
|
messages = [];
|
|
343
339
|
}
|
|
344
340
|
return messages;
|
|
345
|
-
},
|
|
341
|
+
}),
|
|
346
342
|
/**
|
|
347
343
|
* Get all available labels for profile
|
|
348
344
|
*
|
|
@@ -371,31 +367,31 @@ exports.default = (config) => {
|
|
|
371
367
|
.all();
|
|
372
368
|
return associations.map(({ labelId }) => labelId);
|
|
373
369
|
},
|
|
374
|
-
loadMessage:
|
|
375
|
-
mostRecentMessage:
|
|
370
|
+
loadMessage: (jid, id) => __awaiter(void 0, void 0, void 0, function* () { var _a; return (_a = messages[jid]) === null || _a === void 0 ? void 0 : _a.get(id); }),
|
|
371
|
+
mostRecentMessage: (jid) => __awaiter(void 0, void 0, void 0, function* () {
|
|
376
372
|
var _a;
|
|
377
373
|
const message = (_a = messages[jid]) === null || _a === void 0 ? void 0 : _a.array.slice(-1)[0];
|
|
378
374
|
return message;
|
|
379
|
-
},
|
|
380
|
-
fetchImageUrl:
|
|
375
|
+
}),
|
|
376
|
+
fetchImageUrl: (jid, sock) => __awaiter(void 0, void 0, void 0, function* () {
|
|
381
377
|
const contact = contacts[jid];
|
|
382
378
|
if (!contact) {
|
|
383
379
|
return sock === null || sock === void 0 ? void 0 : sock.profilePictureUrl(jid);
|
|
384
380
|
}
|
|
385
381
|
if (typeof contact.imgUrl === 'undefined') {
|
|
386
|
-
contact.imgUrl =
|
|
382
|
+
contact.imgUrl = yield (sock === null || sock === void 0 ? void 0 : sock.profilePictureUrl(jid));
|
|
387
383
|
}
|
|
388
384
|
return contact.imgUrl;
|
|
389
|
-
},
|
|
390
|
-
fetchGroupMetadata:
|
|
385
|
+
}),
|
|
386
|
+
fetchGroupMetadata: (jid, sock) => __awaiter(void 0, void 0, void 0, function* () {
|
|
391
387
|
if (!groupMetadata[jid]) {
|
|
392
|
-
const metadata =
|
|
388
|
+
const metadata = yield (sock === null || sock === void 0 ? void 0 : sock.groupMetadata(jid));
|
|
393
389
|
if (metadata) {
|
|
394
390
|
groupMetadata[jid] = metadata;
|
|
395
391
|
}
|
|
396
392
|
}
|
|
397
393
|
return groupMetadata[jid];
|
|
398
|
-
},
|
|
394
|
+
}),
|
|
399
395
|
// fetchBroadcastListInfo: async(jid: string, sock: WASocket | undefined) => {
|
|
400
396
|
// if(!groupMetadata[jid]) {
|
|
401
397
|
// const metadata = await sock?.getBroadcastListInfo(jid)
|
|
@@ -405,11 +401,11 @@ exports.default = (config) => {
|
|
|
405
401
|
// }
|
|
406
402
|
// return groupMetadata[jid]
|
|
407
403
|
// },
|
|
408
|
-
fetchMessageReceipts:
|
|
404
|
+
fetchMessageReceipts: (_a) => __awaiter(void 0, [_a], void 0, function* ({ remoteJid, id }) {
|
|
409
405
|
const list = messages[remoteJid];
|
|
410
406
|
const msg = list === null || list === void 0 ? void 0 : list.get(id);
|
|
411
407
|
return msg === null || msg === void 0 ? void 0 : msg.userReceipt;
|
|
412
|
-
},
|
|
408
|
+
}),
|
|
413
409
|
toJSON,
|
|
414
410
|
fromJSON,
|
|
415
411
|
writeToFile: (path) => {
|