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.
Files changed (252) 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/README.md +1 -0
  10. package/src/Signal/libsignal.js +180 -0
  11. package/src/Signal/libsignal.ts +141 -0
  12. package/src/Socket/Client/abstract-socket-client.ts +19 -0
  13. package/{lib → src}/Socket/Client/index.js +3 -2
  14. package/src/Socket/Client/index.ts +3 -0
  15. package/src/Socket/Client/mobile-socket-client.js +78 -0
  16. package/src/Socket/Client/mobile-socket-client.ts +66 -0
  17. package/src/Socket/Client/web-socket-client.js +75 -0
  18. package/src/Socket/Client/web-socket-client.ts +57 -0
  19. package/{lib → src}/Socket/business.js +33 -28
  20. package/src/Socket/business.ts +281 -0
  21. package/{lib → src}/Socket/chats.js +176 -174
  22. package/src/Socket/chats.ts +1030 -0
  23. package/{lib → src}/Socket/groups.js +68 -80
  24. package/src/Socket/groups.ts +356 -0
  25. package/{lib → src}/Socket/index.js +1 -4
  26. package/src/Socket/index.ts +13 -0
  27. package/{lib → src}/Socket/messages-recv.js +211 -378
  28. package/src/Socket/messages-recv.ts +985 -0
  29. package/{lib → src}/Socket/messages-send.js +177 -452
  30. package/src/Socket/messages-send.ts +871 -0
  31. package/{lib → src}/Socket/newsletter.js +98 -107
  32. package/src/Socket/newsletter.ts +282 -0
  33. package/{lib → src}/Socket/registration.js +48 -56
  34. package/src/Socket/registration.ts +250 -0
  35. package/{lib → src}/Socket/socket.js +77 -77
  36. package/src/Socket/socket.ts +777 -0
  37. package/src/Store/index.ts +3 -0
  38. package/{lib → src}/Store/make-cache-manager-store.js +34 -25
  39. package/src/Store/make-cache-manager-store.ts +100 -0
  40. package/{lib → src}/Store/make-in-memory-store.js +32 -36
  41. package/src/Store/make-in-memory-store.ts +475 -0
  42. package/src/Store/make-ordered-dictionary.ts +86 -0
  43. package/{lib → src}/Store/object-repository.js +1 -1
  44. package/src/Store/object-repository.ts +32 -0
  45. package/src/Tests/test.app-state-sync.js +204 -0
  46. package/src/Tests/test.app-state-sync.ts +207 -0
  47. package/src/Tests/test.event-buffer.js +270 -0
  48. package/src/Tests/test.event-buffer.ts +319 -0
  49. package/src/Tests/test.key-store.js +76 -0
  50. package/src/Tests/test.key-store.ts +92 -0
  51. package/src/Tests/test.libsignal.js +141 -0
  52. package/src/Tests/test.libsignal.ts +186 -0
  53. package/src/Tests/test.media-download.js +93 -0
  54. package/src/Tests/test.media-download.ts +76 -0
  55. package/src/Tests/test.messages.js +33 -0
  56. package/src/Tests/test.messages.ts +37 -0
  57. package/src/Tests/utils.js +34 -0
  58. package/src/Tests/utils.ts +36 -0
  59. package/src/Types/Auth.ts +113 -0
  60. package/src/Types/Call.ts +15 -0
  61. package/src/Types/Chat.ts +106 -0
  62. package/{lib/Types/Contact.d.ts → src/Types/Contact.ts} +9 -8
  63. package/src/Types/Events.ts +93 -0
  64. package/src/Types/GroupMetadata.ts +53 -0
  65. package/src/Types/Label.ts +36 -0
  66. package/{lib/Types/LabelAssociation.d.ts → src/Types/LabelAssociation.ts} +22 -16
  67. package/src/Types/Message.ts +288 -0
  68. package/src/Types/Newsletter.ts +98 -0
  69. package/src/Types/Product.ts +85 -0
  70. package/src/Types/Signal.ts +68 -0
  71. package/{lib/Types/Socket.d.ts → src/Types/Socket.ts} +68 -61
  72. package/src/Types/State.ts +29 -0
  73. package/src/Types/index.ts +59 -0
  74. package/{lib → src}/Utils/auth-utils.js +90 -73
  75. package/src/Utils/auth-utils.ts +222 -0
  76. package/src/Utils/baileys-event-stream.js +92 -0
  77. package/src/Utils/baileys-event-stream.ts +66 -0
  78. package/{lib → src}/Utils/business.js +43 -15
  79. package/src/Utils/business.ts +275 -0
  80. package/{lib → src}/Utils/chat-utils.js +94 -87
  81. package/src/Utils/chat-utils.ts +860 -0
  82. package/{lib → src}/Utils/crypto.js +2 -4
  83. package/src/Utils/crypto.ts +131 -0
  84. package/src/Utils/decode-wa-message.js +211 -0
  85. package/src/Utils/decode-wa-message.ts +228 -0
  86. package/{lib → src}/Utils/event-buffer.js +13 -4
  87. package/src/Utils/event-buffer.ts +613 -0
  88. package/{lib → src}/Utils/generics.js +86 -67
  89. package/src/Utils/generics.ts +434 -0
  90. package/{lib → src}/Utils/history.js +39 -13
  91. package/src/Utils/history.ts +112 -0
  92. package/src/Utils/index.ts +17 -0
  93. package/{lib → src}/Utils/link-preview.js +54 -17
  94. package/src/Utils/link-preview.ts +122 -0
  95. package/src/Utils/logger.ts +3 -0
  96. package/src/Utils/lt-hash.ts +61 -0
  97. package/{lib → src}/Utils/make-mutex.js +13 -4
  98. package/src/Utils/make-mutex.ts +44 -0
  99. package/{lib → src}/Utils/messages-media.js +255 -193
  100. package/src/Utils/messages-media.ts +847 -0
  101. package/{lib → src}/Utils/messages.js +118 -588
  102. package/src/Utils/messages.ts +956 -0
  103. package/src/Utils/noise-handler.ts +197 -0
  104. package/{lib → src}/Utils/process-message.js +30 -27
  105. package/src/Utils/process-message.ts +414 -0
  106. package/{lib → src}/Utils/signal.js +42 -25
  107. package/src/Utils/signal.ts +177 -0
  108. package/{lib → src}/Utils/use-multi-file-auth-state.js +28 -27
  109. package/src/Utils/use-multi-file-auth-state.ts +90 -0
  110. package/{lib → src}/Utils/validate-connection.js +9 -40
  111. package/src/Utils/validate-connection.ts +238 -0
  112. package/src/WABinary/constants.ts +42 -0
  113. package/src/WABinary/decode.ts +265 -0
  114. package/{lib → src}/WABinary/encode.js +10 -16
  115. package/src/WABinary/encode.ts +236 -0
  116. package/src/WABinary/generic-utils.ts +121 -0
  117. package/src/WABinary/index.ts +5 -0
  118. package/src/WABinary/jid-utils.ts +68 -0
  119. package/src/WABinary/types.ts +17 -0
  120. package/src/WAM/BinaryInfo.ts +12 -0
  121. package/src/WAM/constants.ts +15382 -0
  122. package/src/WAM/encode.ts +174 -0
  123. package/src/WAM/index.ts +3 -0
  124. package/{lib → src}/index.js +0 -1
  125. package/src/index.ts +13 -0
  126. package/README.md +0 -1645
  127. package/lib/Defaults/baileys-version.json +0 -3
  128. package/lib/Defaults/index.d.ts +0 -284
  129. package/lib/Signal/libsignal.d.ts +0 -3
  130. package/lib/Signal/libsignal.js +0 -161
  131. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -15
  132. package/lib/Socket/Client/index.d.ts +0 -2
  133. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -12
  134. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  135. package/lib/Socket/Client/types.d.ts +0 -17
  136. package/lib/Socket/Client/types.js +0 -13
  137. package/lib/Socket/Client/websocket.d.ts +0 -12
  138. package/lib/Socket/Client/websocket.js +0 -62
  139. package/lib/Socket/business.d.ts +0 -170
  140. package/lib/Socket/chats.d.ts +0 -81
  141. package/lib/Socket/groups.d.ts +0 -115
  142. package/lib/Socket/index.d.ts +0 -172
  143. package/lib/Socket/messages-recv.d.ts +0 -158
  144. package/lib/Socket/messages-send.d.ts +0 -155
  145. package/lib/Socket/newsletter.d.ts +0 -132
  146. package/lib/Socket/registration.d.ts +0 -264
  147. package/lib/Socket/socket.d.ts +0 -44
  148. package/lib/Socket/usync.d.ts +0 -37
  149. package/lib/Socket/usync.js +0 -70
  150. package/lib/Store/index.d.ts +0 -3
  151. package/lib/Store/make-cache-manager-store.d.ts +0 -14
  152. package/lib/Store/make-in-memory-store.d.ts +0 -118
  153. package/lib/Store/make-ordered-dictionary.d.ts +0 -13
  154. package/lib/Store/object-repository.d.ts +0 -10
  155. package/lib/Types/Auth.d.ts +0 -109
  156. package/lib/Types/Call.d.ts +0 -13
  157. package/lib/Types/Chat.d.ts +0 -107
  158. package/lib/Types/Events.d.ts +0 -172
  159. package/lib/Types/GroupMetadata.d.ts +0 -56
  160. package/lib/Types/Label.d.ts +0 -46
  161. package/lib/Types/Message.d.ts +0 -433
  162. package/lib/Types/Newsletter.d.ts +0 -92
  163. package/lib/Types/Product.d.ts +0 -78
  164. package/lib/Types/Signal.d.ts +0 -57
  165. package/lib/Types/State.d.ts +0 -27
  166. package/lib/Types/USync.d.ts +0 -25
  167. package/lib/Types/USync.js +0 -2
  168. package/lib/Types/index.d.ts +0 -66
  169. package/lib/Utils/auth-utils.d.ts +0 -18
  170. package/lib/Utils/baileys-event-stream.d.ts +0 -16
  171. package/lib/Utils/baileys-event-stream.js +0 -63
  172. package/lib/Utils/business.d.ts +0 -22
  173. package/lib/Utils/chat-utils.d.ts +0 -70
  174. package/lib/Utils/crypto.d.ts +0 -40
  175. package/lib/Utils/decode-wa-message.d.ts +0 -36
  176. package/lib/Utils/decode-wa-message.js +0 -226
  177. package/lib/Utils/event-buffer.d.ts +0 -35
  178. package/lib/Utils/generics.d.ts +0 -88
  179. package/lib/Utils/history.d.ts +0 -19
  180. package/lib/Utils/index.d.ts +0 -17
  181. package/lib/Utils/link-preview.d.ts +0 -21
  182. package/lib/Utils/logger.d.ts +0 -2
  183. package/lib/Utils/lt-hash.d.ts +0 -12
  184. package/lib/Utils/make-mutex.d.ts +0 -7
  185. package/lib/Utils/messages-media.d.ts +0 -113
  186. package/lib/Utils/messages.d.ts +0 -77
  187. package/lib/Utils/noise-handler.d.ts +0 -20
  188. package/lib/Utils/process-message.d.ts +0 -41
  189. package/lib/Utils/signal.d.ts +0 -33
  190. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -12
  191. package/lib/Utils/validate-connection.d.ts +0 -11
  192. package/lib/WABinary/constants.d.ts +0 -27
  193. package/lib/WABinary/decode.d.ts +0 -6
  194. package/lib/WABinary/encode.d.ts +0 -2
  195. package/lib/WABinary/generic-utils.d.ts +0 -14
  196. package/lib/WABinary/index.d.ts +0 -5
  197. package/lib/WABinary/jid-utils.d.ts +0 -31
  198. package/lib/WABinary/types.d.ts +0 -18
  199. package/lib/WAM/BinaryInfo.d.ts +0 -8
  200. package/lib/WAM/constants.d.ts +0 -38
  201. package/lib/WAM/encode.d.ts +0 -2
  202. package/lib/WAM/index.d.ts +0 -3
  203. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -9
  204. package/lib/WAUSync/Protocols/USyncContactProtocol.js +0 -32
  205. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -22
  206. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +0 -57
  207. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -12
  208. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -30
  209. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -12
  210. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +0 -42
  211. package/lib/WAUSync/Protocols/index.d.ts +0 -4
  212. package/lib/WAUSync/Protocols/index.js +0 -20
  213. package/lib/WAUSync/USyncQuery.d.ts +0 -26
  214. package/lib/WAUSync/USyncQuery.js +0 -79
  215. package/lib/WAUSync/USyncUser.d.ts +0 -10
  216. package/lib/WAUSync/USyncUser.js +0 -22
  217. package/lib/WAUSync/index.d.ts +0 -3
  218. package/lib/WAUSync/index.js +0 -19
  219. /package/{lib → src}/Defaults/phonenumber-mcc.json +0 -0
  220. /package/{lib → src}/Socket/Client/abstract-socket-client.js +0 -0
  221. /package/{lib → src}/Store/index.js +0 -0
  222. /package/{lib → src}/Store/make-ordered-dictionary.js +0 -0
  223. /package/{lib → src}/Types/Auth.js +0 -0
  224. /package/{lib → src}/Types/Call.js +0 -0
  225. /package/{lib → src}/Types/Chat.js +0 -0
  226. /package/{lib → src}/Types/Contact.js +0 -0
  227. /package/{lib → src}/Types/Events.js +0 -0
  228. /package/{lib → src}/Types/GroupMetadata.js +0 -0
  229. /package/{lib → src}/Types/Label.js +0 -0
  230. /package/{lib → src}/Types/LabelAssociation.js +0 -0
  231. /package/{lib → src}/Types/Message.js +0 -0
  232. /package/{lib → src}/Types/Newsletter.js +0 -0
  233. /package/{lib → src}/Types/Product.js +0 -0
  234. /package/{lib → src}/Types/Signal.js +0 -0
  235. /package/{lib → src}/Types/Socket.js +0 -0
  236. /package/{lib → src}/Types/State.js +0 -0
  237. /package/{lib → src}/Types/index.js +0 -0
  238. /package/{lib → src}/Utils/index.js +0 -0
  239. /package/{lib → src}/Utils/logger.js +0 -0
  240. /package/{lib → src}/Utils/lt-hash.js +0 -0
  241. /package/{lib → src}/Utils/noise-handler.js +0 -0
  242. /package/{lib → src}/WABinary/constants.js +0 -0
  243. /package/{lib → src}/WABinary/decode.js +0 -0
  244. /package/{lib → src}/WABinary/generic-utils.js +0 -0
  245. /package/{lib → src}/WABinary/index.js +0 -0
  246. /package/{lib → src}/WABinary/jid-utils.js +0 -0
  247. /package/{lib → src}/WABinary/types.js +0 -0
  248. /package/{lib → src}/WAM/BinaryInfo.js +0 -0
  249. /package/{lib → src}/WAM/constants.js +0 -0
  250. /package/{lib → src}/WAM/encode.js +0 -0
  251. /package/{lib → src}/WAM/index.js +0 -0
  252. /package/{lib → src}/gifted +0 -0
@@ -1,4 +1,20 @@
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
+ };
11
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
12
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
+ var m = o[Symbol.asyncIterator], i;
14
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
+ };
2
18
  Object.defineProperty(exports, "__esModule", { value: true });
3
19
  exports.processSyncAction = exports.chatModificationToAppPatch = exports.decodePatches = exports.decodeSyncdSnapshot = exports.downloadExternalPatch = exports.downloadExternalBlob = exports.extractSyncdPatches = exports.decodeSyncdPatch = exports.decodeSyncdMutations = exports.encodeSyncdPatch = exports.newLTHashState = void 0;
4
20
  const boom_1 = require("@hapi/boom");
@@ -46,7 +62,7 @@ const to64BitNetworkOrder = (e) => {
46
62
  return buff;
47
63
  };
48
64
  const makeLtHashGenerator = ({ indexValueMap, hash }) => {
49
- indexValueMap = { ...indexValueMap };
65
+ indexValueMap = Object.assign({}, indexValueMap);
50
66
  const addBuffs = [];
51
67
  const subBuffs = [];
52
68
  return {
@@ -99,13 +115,13 @@ const generatePatchMac = (snapshotMac, valueMacs, version, type, key) => {
99
115
  };
100
116
  const newLTHashState = () => ({ version: 0, hash: Buffer.alloc(128), indexValueMap: {} });
101
117
  exports.newLTHashState = newLTHashState;
102
- const encodeSyncdPatch = async ({ type, index, syncAction, apiVersion, operation }, myAppStateKeyId, state, getAppStateSyncKey) => {
103
- const key = !!myAppStateKeyId ? await getAppStateSyncKey(myAppStateKeyId) : undefined;
118
+ const encodeSyncdPatch = (_a, myAppStateKeyId_1, state_1, getAppStateSyncKey_1) => __awaiter(void 0, [_a, myAppStateKeyId_1, state_1, getAppStateSyncKey_1], void 0, function* ({ type, index, syncAction, apiVersion, operation }, myAppStateKeyId, state, getAppStateSyncKey) {
119
+ const key = !!myAppStateKeyId ? yield getAppStateSyncKey(myAppStateKeyId) : undefined;
104
120
  if (!key) {
105
121
  throw new boom_1.Boom(`myAppStateKey ("${myAppStateKeyId}") not present`, { statusCode: 404 });
106
122
  }
107
123
  const encKeyId = Buffer.from(myAppStateKeyId, 'base64');
108
- state = { ...state, indexValueMap: { ...state.indexValueMap } };
124
+ state = Object.assign(Object.assign({}, state), { indexValueMap: Object.assign({}, state.indexValueMap) });
109
125
  const indexBuffer = Buffer.from(JSON.stringify(index));
110
126
  const dataProto = WAProto_1.proto.SyncActionData.fromObject({
111
127
  index: indexBuffer,
@@ -146,9 +162,9 @@ const encodeSyncdPatch = async ({ type, index, syncAction, apiVersion, operation
146
162
  const base64Index = indexMac.toString('base64');
147
163
  state.indexValueMap[base64Index] = { valueMac };
148
164
  return { patch, state };
149
- };
165
+ });
150
166
  exports.encodeSyncdPatch = encodeSyncdPatch;
151
- const decodeSyncdMutations = async (msgMutations, initialState, getAppStateSyncKey, onMutation, validateMacs) => {
167
+ const decodeSyncdMutations = (msgMutations, initialState, getAppStateSyncKey, onMutation, validateMacs) => __awaiter(void 0, void 0, void 0, function* () {
152
168
  const ltGenerator = makeLtHashGenerator(initialState);
153
169
  // indexKey used to HMAC sign record.index.blob
154
170
  // valueEncryptionKey used to AES-256-CBC encrypt record.value.blob[0:-32]
@@ -158,7 +174,7 @@ const decodeSyncdMutations = async (msgMutations, initialState, getAppStateSyncK
158
174
  // otherwise, if it's only a record -- it'll be a SET mutation
159
175
  const operation = 'operation' in msgMutation ? msgMutation.operation : WAProto_1.proto.SyncdMutation.SyncdOperation.SET;
160
176
  const record = ('record' in msgMutation && !!msgMutation.record) ? msgMutation.record : msgMutation;
161
- const key = await getKey(record.keyId.id);
177
+ const key = yield getKey(record.keyId.id);
162
178
  const content = Buffer.from(record.value.blob);
163
179
  const encContent = content.slice(0, -32);
164
180
  const ogValueMac = content.slice(-32);
@@ -185,20 +201,22 @@ const decodeSyncdMutations = async (msgMutations, initialState, getAppStateSyncK
185
201
  });
186
202
  }
187
203
  return ltGenerator.finish();
188
- async function getKey(keyId) {
189
- const base64Key = Buffer.from(keyId).toString('base64');
190
- const keyEnc = await getAppStateSyncKey(base64Key);
191
- if (!keyEnc) {
192
- throw new boom_1.Boom(`failed to find key "${base64Key}" to decode mutation`, { statusCode: 404, data: { msgMutations } });
193
- }
194
- return mutationKeys(keyEnc.keyData);
204
+ function getKey(keyId) {
205
+ return __awaiter(this, void 0, void 0, function* () {
206
+ const base64Key = Buffer.from(keyId).toString('base64');
207
+ const keyEnc = yield getAppStateSyncKey(base64Key);
208
+ if (!keyEnc) {
209
+ throw new boom_1.Boom(`failed to find key "${base64Key}" to decode mutation`, { statusCode: 404, data: { msgMutations } });
210
+ }
211
+ return mutationKeys(keyEnc.keyData);
212
+ });
195
213
  }
196
- };
214
+ });
197
215
  exports.decodeSyncdMutations = decodeSyncdMutations;
198
- const decodeSyncdPatch = async (msg, name, initialState, getAppStateSyncKey, onMutation, validateMacs) => {
216
+ const decodeSyncdPatch = (msg, name, initialState, getAppStateSyncKey, onMutation, validateMacs) => __awaiter(void 0, void 0, void 0, function* () {
199
217
  if (validateMacs) {
200
218
  const base64Key = Buffer.from(msg.keyId.id).toString('base64');
201
- const mainKeyObj = await getAppStateSyncKey(base64Key);
219
+ const mainKeyObj = yield getAppStateSyncKey(base64Key);
202
220
  if (!mainKeyObj) {
203
221
  throw new boom_1.Boom(`failed to find key "${base64Key}" to decode patch`, { statusCode: 404, data: { msg } });
204
222
  }
@@ -209,15 +227,15 @@ const decodeSyncdPatch = async (msg, name, initialState, getAppStateSyncKey, onM
209
227
  throw new boom_1.Boom('Invalid patch mac');
210
228
  }
211
229
  }
212
- const result = await (0, exports.decodeSyncdMutations)(msg.mutations, initialState, getAppStateSyncKey, onMutation, validateMacs);
230
+ const result = yield (0, exports.decodeSyncdMutations)(msg.mutations, initialState, getAppStateSyncKey, onMutation, validateMacs);
213
231
  return result;
214
- };
232
+ });
215
233
  exports.decodeSyncdPatch = decodeSyncdPatch;
216
- const extractSyncdPatches = async (result, options) => {
234
+ const extractSyncdPatches = (result, options) => __awaiter(void 0, void 0, void 0, function* () {
217
235
  const syncNode = (0, WABinary_1.getBinaryNodeChild)(result, 'sync');
218
236
  const collectionNodes = (0, WABinary_1.getBinaryNodeChildren)(syncNode, 'collection');
219
237
  const final = {};
220
- await Promise.all(collectionNodes.map(async (collectionNode) => {
238
+ yield Promise.all(collectionNodes.map((collectionNode) => __awaiter(void 0, void 0, void 0, function* () {
221
239
  const patchesNode = (0, WABinary_1.getBinaryNodeChild)(collectionNode, 'patches');
222
240
  const patches = (0, WABinary_1.getBinaryNodeChildren)(patchesNode || collectionNode, 'patch');
223
241
  const snapshotNode = (0, WABinary_1.getBinaryNodeChild)(collectionNode, 'snapshot');
@@ -230,7 +248,7 @@ const extractSyncdPatches = async (result, options) => {
230
248
  snapshotNode.content = Buffer.from(Object.values(snapshotNode.content));
231
249
  }
232
250
  const blobRef = WAProto_1.proto.ExternalBlobReference.decode(snapshotNode.content);
233
- const data = await (0, exports.downloadExternalBlob)(blobRef, options);
251
+ const data = yield (0, exports.downloadExternalBlob)(blobRef, options);
234
252
  snapshot = WAProto_1.proto.SyncdSnapshot.decode(data);
235
253
  }
236
254
  for (let { content } of patches) {
@@ -246,32 +264,45 @@ const extractSyncdPatches = async (result, options) => {
246
264
  }
247
265
  }
248
266
  final[name] = { patches: syncds, hasMorePatches, snapshot };
249
- }));
267
+ })));
250
268
  return final;
251
- };
269
+ });
252
270
  exports.extractSyncdPatches = extractSyncdPatches;
253
- const downloadExternalBlob = async (blob, options) => {
254
- const stream = await (0, messages_media_1.downloadContentFromMessage)(blob, 'md-app-state', { options });
271
+ const downloadExternalBlob = (blob, options) => __awaiter(void 0, void 0, void 0, function* () {
272
+ var _a, e_1, _b, _c;
273
+ const stream = yield (0, messages_media_1.downloadContentFromMessage)(blob, 'md-app-state', { options });
255
274
  const bufferArray = [];
256
- for await (const chunk of stream) {
257
- bufferArray.push(chunk);
275
+ try {
276
+ for (var _d = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield stream_1.next(), _a = stream_1_1.done, !_a; _d = true) {
277
+ _c = stream_1_1.value;
278
+ _d = false;
279
+ const chunk = _c;
280
+ bufferArray.push(chunk);
281
+ }
282
+ }
283
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
284
+ finally {
285
+ try {
286
+ if (!_d && !_a && (_b = stream_1.return)) yield _b.call(stream_1);
287
+ }
288
+ finally { if (e_1) throw e_1.error; }
258
289
  }
259
290
  return Buffer.concat(bufferArray);
260
- };
291
+ });
261
292
  exports.downloadExternalBlob = downloadExternalBlob;
262
- const downloadExternalPatch = async (blob, options) => {
263
- const buffer = await (0, exports.downloadExternalBlob)(blob, options);
293
+ const downloadExternalPatch = (blob, options) => __awaiter(void 0, void 0, void 0, function* () {
294
+ const buffer = yield (0, exports.downloadExternalBlob)(blob, options);
264
295
  const syncData = WAProto_1.proto.SyncdMutations.decode(buffer);
265
296
  return syncData;
266
- };
297
+ });
267
298
  exports.downloadExternalPatch = downloadExternalPatch;
268
- const decodeSyncdSnapshot = async (name, snapshot, getAppStateSyncKey, minimumVersionNumber, validateMacs = true) => {
299
+ const decodeSyncdSnapshot = (name_1, snapshot_1, getAppStateSyncKey_1, minimumVersionNumber_1, ...args_1) => __awaiter(void 0, [name_1, snapshot_1, getAppStateSyncKey_1, minimumVersionNumber_1, ...args_1], void 0, function* (name, snapshot, getAppStateSyncKey, minimumVersionNumber, validateMacs = true) {
269
300
  const newState = (0, exports.newLTHashState)();
270
301
  newState.version = (0, generics_1.toNumber)(snapshot.version.version);
271
302
  const mutationMap = {};
272
303
  const areMutationsRequired = typeof minimumVersionNumber === 'undefined'
273
304
  || newState.version > minimumVersionNumber;
274
- const { hash, indexValueMap } = await (0, exports.decodeSyncdMutations)(snapshot.records, newState, getAppStateSyncKey, areMutationsRequired
305
+ const { hash, indexValueMap } = yield (0, exports.decodeSyncdMutations)(snapshot.records, newState, getAppStateSyncKey, areMutationsRequired
275
306
  ? (mutation) => {
276
307
  var _a;
277
308
  const index = (_a = mutation.syncAction.index) === null || _a === void 0 ? void 0 : _a.toString();
@@ -282,7 +313,7 @@ const decodeSyncdSnapshot = async (name, snapshot, getAppStateSyncKey, minimumVe
282
313
  newState.indexValueMap = indexValueMap;
283
314
  if (validateMacs) {
284
315
  const base64Key = Buffer.from(snapshot.keyId.id).toString('base64');
285
- const keyEnc = await getAppStateSyncKey(base64Key);
316
+ const keyEnc = yield getAppStateSyncKey(base64Key);
286
317
  if (!keyEnc) {
287
318
  throw new boom_1.Boom(`failed to find key "${base64Key}" to decode mutation`);
288
319
  }
@@ -296,27 +327,25 @@ const decodeSyncdSnapshot = async (name, snapshot, getAppStateSyncKey, minimumVe
296
327
  state: newState,
297
328
  mutationMap
298
329
  };
299
- };
330
+ });
300
331
  exports.decodeSyncdSnapshot = decodeSyncdSnapshot;
301
- const decodePatches = async (name, syncds, initial, getAppStateSyncKey, options, minimumVersionNumber, logger, validateMacs = true) => {
332
+ const decodePatches = (name_1, syncds_1, initial_1, getAppStateSyncKey_1, options_1, minimumVersionNumber_1, logger_1, ...args_1) => __awaiter(void 0, [name_1, syncds_1, initial_1, getAppStateSyncKey_1, options_1, minimumVersionNumber_1, logger_1, ...args_1], void 0, function* (name, syncds, initial, getAppStateSyncKey, options, minimumVersionNumber, logger, validateMacs = true) {
302
333
  var _a;
303
- const newState = {
304
- ...initial,
305
- indexValueMap: { ...initial.indexValueMap }
306
- };
334
+ const newState = Object.assign(Object.assign({}, initial), { indexValueMap: Object.assign({}, initial.indexValueMap) });
307
335
  const mutationMap = {};
308
- for (const syncd of syncds) {
336
+ for (let i = 0; i < syncds.length; i++) {
337
+ const syncd = syncds[i];
309
338
  const { version, keyId, snapshotMac } = syncd;
310
339
  if (syncd.externalMutations) {
311
340
  logger === null || logger === void 0 ? void 0 : logger.trace({ name, version }, 'downloading external patch');
312
- const ref = await (0, exports.downloadExternalPatch)(syncd.externalMutations, options);
341
+ const ref = yield (0, exports.downloadExternalPatch)(syncd.externalMutations, options);
313
342
  logger === null || logger === void 0 ? void 0 : logger.debug({ name, version, mutations: ref.mutations.length }, 'downloaded external patch');
314
343
  (_a = syncd.mutations) === null || _a === void 0 ? void 0 : _a.push(...ref.mutations);
315
344
  }
316
345
  const patchVersion = (0, generics_1.toNumber)(version.version);
317
346
  newState.version = patchVersion;
318
347
  const shouldMutate = typeof minimumVersionNumber === 'undefined' || patchVersion > minimumVersionNumber;
319
- const decodeResult = await (0, exports.decodeSyncdPatch)(syncd, name, newState, getAppStateSyncKey, shouldMutate
348
+ const decodeResult = yield (0, exports.decodeSyncdPatch)(syncd, name, newState, getAppStateSyncKey, shouldMutate
320
349
  ? mutation => {
321
350
  var _a;
322
351
  const index = (_a = mutation.syncAction.index) === null || _a === void 0 ? void 0 : _a.toString();
@@ -327,7 +356,7 @@ const decodePatches = async (name, syncds, initial, getAppStateSyncKey, options,
327
356
  newState.indexValueMap = decodeResult.indexValueMap;
328
357
  if (validateMacs) {
329
358
  const base64Key = Buffer.from(keyId.id).toString('base64');
330
- const keyEnc = await getAppStateSyncKey(base64Key);
359
+ const keyEnc = yield getAppStateSyncKey(base64Key);
331
360
  if (!keyEnc) {
332
361
  throw new boom_1.Boom(`failed to find key "${base64Key}" to decode mutation`);
333
362
  }
@@ -341,7 +370,7 @@ const decodePatches = async (name, syncds, initial, getAppStateSyncKey, options,
341
370
  syncd.mutations = [];
342
371
  }
343
372
  return { state: newState, mutationMap };
344
- };
373
+ });
345
374
  exports.decodePatches = decodePatches;
346
375
  const chatModificationToAppPatch = (mod, jid) => {
347
376
  const OP = WAProto_1.proto.SyncdMutation.SyncdOperation;
@@ -417,31 +446,25 @@ const chatModificationToAppPatch = (mod, jid) => {
417
446
  operation: OP.SET
418
447
  };
419
448
  }
420
- else if ('deleteForMe' in mod) {
421
- const { timestamp, key, deleteMedia } = mod.deleteForMe;
422
- patch = {
423
- syncAction: {
424
- deleteMessageForMeAction: {
425
- deleteMedia,
426
- messageTimestamp: timestamp
427
- }
428
- },
429
- index: ['deleteMessageForMe', jid, key.id, key.fromMe ? '1' : '0', '0'],
430
- type: 'regular_high',
431
- apiVersion: 3,
432
- operation: OP.SET
433
- };
434
- }
435
449
  else if ('clear' in mod) {
436
- patch = {
437
- syncAction: {
438
- clearChatAction: {} // add message range later
439
- },
440
- index: ['clearChat', jid, '1' /*the option here is 0 when keep starred messages is enabled*/, '0'],
441
- type: 'regular_high',
442
- apiVersion: 6,
443
- operation: OP.SET
444
- };
450
+ if (mod.clear === 'all') {
451
+ throw new boom_1.Boom('not supported');
452
+ }
453
+ else {
454
+ const key = mod.clear.messages[0];
455
+ patch = {
456
+ syncAction: {
457
+ deleteMessageForMeAction: {
458
+ deleteMedia: false,
459
+ messageTimestamp: key.timestamp
460
+ }
461
+ },
462
+ index: ['deleteMessageForMe', jid, key.id, key.fromMe ? '1' : '0', '0'],
463
+ type: 'regular_high',
464
+ apiVersion: 3,
465
+ operation: OP.SET
466
+ };
467
+ }
445
468
  }
446
469
  else if ('pin' in mod) {
447
470
  patch = {
@@ -496,22 +519,6 @@ const chatModificationToAppPatch = (mod, jid) => {
496
519
  operation: OP.SET,
497
520
  };
498
521
  }
499
- else if ('addLabel' in mod) {
500
- patch = {
501
- syncAction: {
502
- labelEditAction: {
503
- name: mod.addLabel.name,
504
- color: mod.addLabel.color,
505
- predefinedId: mod.addLabel.predefinedId,
506
- deleted: mod.addLabel.deleted
507
- }
508
- },
509
- index: ['label_edit', mod.addLabel.id],
510
- type: 'regular',
511
- apiVersion: 3,
512
- operation: OP.SET,
513
- };
514
- }
515
522
  else if ('addChatLabel' in mod) {
516
523
  patch = {
517
524
  syncAction: {
@@ -659,7 +666,7 @@ const processSyncAction = (syncAction, ev, me, initialSyncOpts, logger) => {
659
666
  else if (action === null || action === void 0 ? void 0 : action.pushNameSetting) {
660
667
  const name = (_b = action === null || action === void 0 ? void 0 : action.pushNameSetting) === null || _b === void 0 ? void 0 : _b.name;
661
668
  if (name && (me === null || me === void 0 ? void 0 : me.name) !== name) {
662
- ev.emit('creds.update', { me: { ...me, name } });
669
+ ev.emit('creds.update', { me: Object.assign(Object.assign({}, me), { name }) });
663
670
  }
664
671
  }
665
672
  else if (action === null || action === void 0 ? void 0 : action.pinAction) {