gifted-baileys 1.5.4 → 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.
Files changed (250) hide show
  1. package/LICENSE +1 -1
  2. package/WAProto/WAProto.proto +88 -969
  3. package/WAProto/index.d.ts +1256 -13195
  4. package/WAProto/index.js +74730 -125106
  5. package/package.json +9 -27
  6. package/src/Defaults/baileys-version.json +3 -0
  7. package/{lib → src}/Defaults/index.js +14 -7
  8. package/src/Defaults/index.ts +131 -0
  9. package/src/Signal/libsignal.js +180 -0
  10. package/src/Signal/libsignal.ts +141 -0
  11. package/src/Socket/Client/abstract-socket-client.ts +19 -0
  12. package/{lib → src}/Socket/Client/index.js +3 -2
  13. package/src/Socket/Client/index.ts +3 -0
  14. package/src/Socket/Client/mobile-socket-client.js +78 -0
  15. package/src/Socket/Client/mobile-socket-client.ts +66 -0
  16. package/src/Socket/Client/web-socket-client.js +75 -0
  17. package/src/Socket/Client/web-socket-client.ts +57 -0
  18. package/{lib → src}/Socket/business.js +33 -28
  19. package/src/Socket/business.ts +281 -0
  20. package/{lib → src}/Socket/chats.js +176 -174
  21. package/src/Socket/chats.ts +1030 -0
  22. package/{lib → src}/Socket/groups.js +68 -80
  23. package/src/Socket/groups.ts +356 -0
  24. package/{lib → src}/Socket/index.js +1 -4
  25. package/src/Socket/index.ts +13 -0
  26. package/{lib → src}/Socket/messages-recv.js +211 -378
  27. package/src/Socket/messages-recv.ts +985 -0
  28. package/{lib → src}/Socket/messages-send.js +177 -452
  29. package/src/Socket/messages-send.ts +871 -0
  30. package/{lib → src}/Socket/newsletter.js +98 -107
  31. package/src/Socket/newsletter.ts +282 -0
  32. package/{lib → src}/Socket/registration.js +48 -56
  33. package/src/Socket/registration.ts +250 -0
  34. package/{lib → src}/Socket/socket.js +77 -77
  35. package/src/Socket/socket.ts +777 -0
  36. package/src/Store/index.ts +3 -0
  37. package/{lib → src}/Store/make-cache-manager-store.js +34 -25
  38. package/src/Store/make-cache-manager-store.ts +100 -0
  39. package/{lib → src}/Store/make-in-memory-store.js +32 -36
  40. package/src/Store/make-in-memory-store.ts +475 -0
  41. package/src/Store/make-ordered-dictionary.ts +86 -0
  42. package/{lib → src}/Store/object-repository.js +1 -1
  43. package/src/Store/object-repository.ts +32 -0
  44. package/src/Tests/test.app-state-sync.js +204 -0
  45. package/src/Tests/test.app-state-sync.ts +207 -0
  46. package/src/Tests/test.event-buffer.js +270 -0
  47. package/src/Tests/test.event-buffer.ts +319 -0
  48. package/src/Tests/test.key-store.js +76 -0
  49. package/src/Tests/test.key-store.ts +92 -0
  50. package/src/Tests/test.libsignal.js +141 -0
  51. package/src/Tests/test.libsignal.ts +186 -0
  52. package/src/Tests/test.media-download.js +93 -0
  53. package/src/Tests/test.media-download.ts +76 -0
  54. package/src/Tests/test.messages.js +33 -0
  55. package/src/Tests/test.messages.ts +37 -0
  56. package/src/Tests/utils.js +34 -0
  57. package/src/Tests/utils.ts +36 -0
  58. package/src/Types/Auth.ts +113 -0
  59. package/src/Types/Call.ts +15 -0
  60. package/src/Types/Chat.ts +106 -0
  61. package/{lib/Types/Contact.d.ts → src/Types/Contact.ts} +9 -8
  62. package/src/Types/Events.ts +93 -0
  63. package/src/Types/GroupMetadata.ts +53 -0
  64. package/src/Types/Label.ts +36 -0
  65. package/{lib/Types/LabelAssociation.d.ts → src/Types/LabelAssociation.ts} +22 -16
  66. package/src/Types/Message.ts +288 -0
  67. package/src/Types/Newsletter.ts +98 -0
  68. package/src/Types/Product.ts +85 -0
  69. package/src/Types/Signal.ts +68 -0
  70. package/{lib/Types/Socket.d.ts → src/Types/Socket.ts} +68 -61
  71. package/src/Types/State.ts +29 -0
  72. package/src/Types/index.ts +59 -0
  73. package/{lib → src}/Utils/auth-utils.js +90 -73
  74. package/src/Utils/auth-utils.ts +222 -0
  75. package/src/Utils/baileys-event-stream.js +92 -0
  76. package/src/Utils/baileys-event-stream.ts +66 -0
  77. package/{lib → src}/Utils/business.js +43 -15
  78. package/src/Utils/business.ts +275 -0
  79. package/{lib → src}/Utils/chat-utils.js +94 -87
  80. package/src/Utils/chat-utils.ts +860 -0
  81. package/{lib → src}/Utils/crypto.js +2 -4
  82. package/src/Utils/crypto.ts +131 -0
  83. package/src/Utils/decode-wa-message.js +211 -0
  84. package/src/Utils/decode-wa-message.ts +228 -0
  85. package/{lib → src}/Utils/event-buffer.js +13 -4
  86. package/src/Utils/event-buffer.ts +613 -0
  87. package/{lib → src}/Utils/generics.js +86 -67
  88. package/src/Utils/generics.ts +434 -0
  89. package/{lib → src}/Utils/history.js +39 -13
  90. package/src/Utils/history.ts +112 -0
  91. package/src/Utils/index.ts +17 -0
  92. package/{lib → src}/Utils/link-preview.js +54 -17
  93. package/src/Utils/link-preview.ts +122 -0
  94. package/src/Utils/logger.ts +3 -0
  95. package/src/Utils/lt-hash.ts +61 -0
  96. package/{lib → src}/Utils/make-mutex.js +13 -4
  97. package/src/Utils/make-mutex.ts +44 -0
  98. package/{lib → src}/Utils/messages-media.js +255 -193
  99. package/src/Utils/messages-media.ts +847 -0
  100. package/{lib → src}/Utils/messages.js +118 -588
  101. package/src/Utils/messages.ts +956 -0
  102. package/src/Utils/noise-handler.ts +197 -0
  103. package/{lib → src}/Utils/process-message.js +30 -27
  104. package/src/Utils/process-message.ts +414 -0
  105. package/{lib → src}/Utils/signal.js +42 -25
  106. package/src/Utils/signal.ts +177 -0
  107. package/{lib → src}/Utils/use-multi-file-auth-state.js +28 -27
  108. package/src/Utils/use-multi-file-auth-state.ts +90 -0
  109. package/{lib → src}/Utils/validate-connection.js +9 -40
  110. package/src/Utils/validate-connection.ts +238 -0
  111. package/src/WABinary/constants.ts +42 -0
  112. package/src/WABinary/decode.ts +265 -0
  113. package/{lib → src}/WABinary/encode.js +10 -16
  114. package/src/WABinary/encode.ts +236 -0
  115. package/src/WABinary/generic-utils.ts +121 -0
  116. package/src/WABinary/index.ts +5 -0
  117. package/src/WABinary/jid-utils.ts +68 -0
  118. package/src/WABinary/types.ts +17 -0
  119. package/src/WAM/BinaryInfo.ts +12 -0
  120. package/src/WAM/constants.ts +15382 -0
  121. package/src/WAM/encode.ts +174 -0
  122. package/src/WAM/index.ts +3 -0
  123. package/{lib → src}/index.js +0 -1
  124. package/src/index.ts +13 -0
  125. package/lib/Defaults/baileys-version.json +0 -3
  126. package/lib/Defaults/index.d.ts +0 -284
  127. package/lib/Signal/libsignal.d.ts +0 -3
  128. package/lib/Signal/libsignal.js +0 -161
  129. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -15
  130. package/lib/Socket/Client/index.d.ts +0 -2
  131. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -12
  132. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  133. package/lib/Socket/Client/types.d.ts +0 -17
  134. package/lib/Socket/Client/types.js +0 -13
  135. package/lib/Socket/Client/websocket.d.ts +0 -12
  136. package/lib/Socket/Client/websocket.js +0 -62
  137. package/lib/Socket/business.d.ts +0 -170
  138. package/lib/Socket/chats.d.ts +0 -81
  139. package/lib/Socket/groups.d.ts +0 -115
  140. package/lib/Socket/index.d.ts +0 -172
  141. package/lib/Socket/messages-recv.d.ts +0 -158
  142. package/lib/Socket/messages-send.d.ts +0 -155
  143. package/lib/Socket/newsletter.d.ts +0 -132
  144. package/lib/Socket/registration.d.ts +0 -264
  145. package/lib/Socket/socket.d.ts +0 -44
  146. package/lib/Socket/usync.d.ts +0 -37
  147. package/lib/Socket/usync.js +0 -70
  148. package/lib/Store/index.d.ts +0 -3
  149. package/lib/Store/make-cache-manager-store.d.ts +0 -14
  150. package/lib/Store/make-in-memory-store.d.ts +0 -118
  151. package/lib/Store/make-ordered-dictionary.d.ts +0 -13
  152. package/lib/Store/object-repository.d.ts +0 -10
  153. package/lib/Types/Auth.d.ts +0 -109
  154. package/lib/Types/Call.d.ts +0 -13
  155. package/lib/Types/Chat.d.ts +0 -107
  156. package/lib/Types/Events.d.ts +0 -172
  157. package/lib/Types/GroupMetadata.d.ts +0 -56
  158. package/lib/Types/Label.d.ts +0 -46
  159. package/lib/Types/Message.d.ts +0 -433
  160. package/lib/Types/Newsletter.d.ts +0 -92
  161. package/lib/Types/Product.d.ts +0 -78
  162. package/lib/Types/Signal.d.ts +0 -57
  163. package/lib/Types/State.d.ts +0 -27
  164. package/lib/Types/USync.d.ts +0 -25
  165. package/lib/Types/USync.js +0 -2
  166. package/lib/Types/index.d.ts +0 -66
  167. package/lib/Utils/auth-utils.d.ts +0 -18
  168. package/lib/Utils/baileys-event-stream.d.ts +0 -16
  169. package/lib/Utils/baileys-event-stream.js +0 -63
  170. package/lib/Utils/business.d.ts +0 -22
  171. package/lib/Utils/chat-utils.d.ts +0 -70
  172. package/lib/Utils/crypto.d.ts +0 -40
  173. package/lib/Utils/decode-wa-message.d.ts +0 -36
  174. package/lib/Utils/decode-wa-message.js +0 -226
  175. package/lib/Utils/event-buffer.d.ts +0 -35
  176. package/lib/Utils/generics.d.ts +0 -88
  177. package/lib/Utils/history.d.ts +0 -19
  178. package/lib/Utils/index.d.ts +0 -17
  179. package/lib/Utils/link-preview.d.ts +0 -21
  180. package/lib/Utils/logger.d.ts +0 -2
  181. package/lib/Utils/lt-hash.d.ts +0 -12
  182. package/lib/Utils/make-mutex.d.ts +0 -7
  183. package/lib/Utils/messages-media.d.ts +0 -113
  184. package/lib/Utils/messages.d.ts +0 -77
  185. package/lib/Utils/noise-handler.d.ts +0 -20
  186. package/lib/Utils/process-message.d.ts +0 -41
  187. package/lib/Utils/signal.d.ts +0 -33
  188. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -12
  189. package/lib/Utils/validate-connection.d.ts +0 -11
  190. package/lib/WABinary/constants.d.ts +0 -27
  191. package/lib/WABinary/decode.d.ts +0 -6
  192. package/lib/WABinary/encode.d.ts +0 -2
  193. package/lib/WABinary/generic-utils.d.ts +0 -14
  194. package/lib/WABinary/index.d.ts +0 -5
  195. package/lib/WABinary/jid-utils.d.ts +0 -31
  196. package/lib/WABinary/types.d.ts +0 -18
  197. package/lib/WAM/BinaryInfo.d.ts +0 -8
  198. package/lib/WAM/constants.d.ts +0 -38
  199. package/lib/WAM/encode.d.ts +0 -2
  200. package/lib/WAM/index.d.ts +0 -3
  201. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -9
  202. package/lib/WAUSync/Protocols/USyncContactProtocol.js +0 -32
  203. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -22
  204. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +0 -57
  205. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -12
  206. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -30
  207. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -12
  208. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +0 -42
  209. package/lib/WAUSync/Protocols/index.d.ts +0 -4
  210. package/lib/WAUSync/Protocols/index.js +0 -20
  211. package/lib/WAUSync/USyncQuery.d.ts +0 -26
  212. package/lib/WAUSync/USyncQuery.js +0 -79
  213. package/lib/WAUSync/USyncUser.d.ts +0 -10
  214. package/lib/WAUSync/USyncUser.js +0 -22
  215. package/lib/WAUSync/index.d.ts +0 -3
  216. package/lib/WAUSync/index.js +0 -19
  217. /package/{lib → src}/Defaults/phonenumber-mcc.json +0 -0
  218. /package/{lib → src}/Socket/Client/abstract-socket-client.js +0 -0
  219. /package/{lib → src}/Store/index.js +0 -0
  220. /package/{lib → src}/Store/make-ordered-dictionary.js +0 -0
  221. /package/{lib → src}/Types/Auth.js +0 -0
  222. /package/{lib → src}/Types/Call.js +0 -0
  223. /package/{lib → src}/Types/Chat.js +0 -0
  224. /package/{lib → src}/Types/Contact.js +0 -0
  225. /package/{lib → src}/Types/Events.js +0 -0
  226. /package/{lib → src}/Types/GroupMetadata.js +0 -0
  227. /package/{lib → src}/Types/Label.js +0 -0
  228. /package/{lib → src}/Types/LabelAssociation.js +0 -0
  229. /package/{lib → src}/Types/Message.js +0 -0
  230. /package/{lib → src}/Types/Newsletter.js +0 -0
  231. /package/{lib → src}/Types/Product.js +0 -0
  232. /package/{lib → src}/Types/Signal.js +0 -0
  233. /package/{lib → src}/Types/Socket.js +0 -0
  234. /package/{lib → src}/Types/State.js +0 -0
  235. /package/{lib → src}/Types/index.js +0 -0
  236. /package/{lib → src}/Utils/index.js +0 -0
  237. /package/{lib → src}/Utils/logger.js +0 -0
  238. /package/{lib → src}/Utils/lt-hash.js +0 -0
  239. /package/{lib → src}/Utils/noise-handler.js +0 -0
  240. /package/{lib → src}/WABinary/constants.js +0 -0
  241. /package/{lib → src}/WABinary/decode.js +0 -0
  242. /package/{lib → src}/WABinary/generic-utils.js +0 -0
  243. /package/{lib → src}/WABinary/index.js +0 -0
  244. /package/{lib → src}/WABinary/jid-utils.js +0 -0
  245. /package/{lib → src}/WABinary/types.js +0 -0
  246. /package/{lib → src}/WAM/BinaryInfo.js +0 -0
  247. /package/{lib → src}/WAM/constants.js +0 -0
  248. /package/{lib → src}/WAM/encode.js +0 -0
  249. /package/{lib → src}/WAM/index.js +0 -0
  250. /package/{lib → src}/gifted +0 -0
@@ -0,0 +1,3 @@
1
+ import makeCacheManagerAuthState from './make-cache-manager-store'
2
+ import makeInMemoryStore from './make-in-memory-store'
3
+ export { makeInMemoryStore, 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
  };
@@ -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 = async (store, sessionKey) => {
19
+ const makeCacheManagerAuthState = (store, sessionKey) => __awaiter(void 0, void 0, void 0, function* () {
11
20
  const defaultKey = (file) => `${sessionKey}:${file}`;
12
- const databaseConn = await (0, cache_manager_1.caching)(store);
13
- const writeData = async (file, data) => {
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
- await databaseConn.set(defaultKey(file), JSON.stringify(data, Utils_1.BufferJSON.replacer), ttl);
19
- };
20
- const readData = async (file) => {
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 = await databaseConn.get(defaultKey(file));
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 = async (file) => {
41
+ });
42
+ const removeData = (file) => __awaiter(void 0, void 0, void 0, function* () {
34
43
  try {
35
- return await databaseConn.del(defaultKey(file));
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 = async () => {
49
+ });
50
+ const clearState = () => __awaiter(void 0, void 0, void 0, function* () {
42
51
  try {
43
- const result = await databaseConn.store.keys(`${sessionKey}*`);
44
- await Promise.all(result.map(async (key) => await databaseConn.del(key)));
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 = (await readData('creds')) || (0, Utils_1.initAuthCreds)();
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: async (type, ids) => {
65
+ get: (type, ids) => __awaiter(void 0, void 0, void 0, function* () {
57
66
  const data = {};
58
- await Promise.all(ids.map(async (id) => {
59
- let value = await readData(`${type}-${id}`);
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: async (data) => {
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
- await Promise.all(tasks);
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, syncType }) => {
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', async (updates) => {
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 validContacts = getValidContacts();
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 ? await (socket === null || socket === void 0 ? void 0 : socket.profilePictureUrl(contact.id)) : undefined;
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 = { ...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: async (jid, count, cursor) => {
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: async (jid, id) => { var _a; return (_a = messages[jid]) === null || _a === void 0 ? void 0 : _a.get(id); },
375
- mostRecentMessage: async (jid) => {
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: async (jid, sock) => {
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 = await (sock === null || sock === void 0 ? void 0 : sock.profilePictureUrl(jid));
382
+ contact.imgUrl = yield (sock === null || sock === void 0 ? void 0 : sock.profilePictureUrl(jid));
387
383
  }
388
384
  return contact.imgUrl;
389
- },
390
- fetchGroupMetadata: async (jid, sock) => {
385
+ }),
386
+ fetchGroupMetadata: (jid, sock) => __awaiter(void 0, void 0, void 0, function* () {
391
387
  if (!groupMetadata[jid]) {
392
- const metadata = await (sock === null || sock === void 0 ? void 0 : sock.groupMetadata(jid));
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: async ({ remoteJid, id }) => {
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) => {