@ubedsockets/baileys 1.6.4 → 1.6.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 (172) hide show
  1. package/lib/Socket/Client/index.d.ts +3 -0
  2. package/lib/Socket/Client/index.d.ts.map +1 -0
  3. package/lib/Socket/Client/index.js +3 -18
  4. package/lib/Socket/Client/index.js.map +1 -0
  5. package/lib/Socket/Client/types.d.ts +16 -0
  6. package/lib/Socket/Client/types.d.ts.map +1 -0
  7. package/lib/Socket/Client/types.js +4 -6
  8. package/lib/Socket/Client/types.js.map +1 -0
  9. package/lib/Socket/Client/websocket.d.ts +13 -0
  10. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  11. package/lib/Socket/Client/websocket.js +21 -78
  12. package/lib/Socket/Client/websocket.js.map +1 -0
  13. package/lib/Socket/business.d.ts +217 -0
  14. package/lib/Socket/business.d.ts.map +1 -0
  15. package/lib/Socket/business.js +162 -43
  16. package/lib/Socket/business.js.map +1 -0
  17. package/lib/Socket/chats.d.ts +124 -0
  18. package/lib/Socket/chats.d.ts.map +1 -0
  19. package/lib/Socket/chats.js +571 -249
  20. package/lib/Socket/chats.js.map +1 -0
  21. package/lib/Socket/communities.d.ts +273 -0
  22. package/lib/Socket/communities.d.ts.map +1 -0
  23. package/lib/Socket/communities.js +431 -0
  24. package/lib/Socket/communities.js.map +1 -0
  25. package/lib/Socket/groups.d.ts +161 -0
  26. package/lib/Socket/groups.d.ts.map +1 -0
  27. package/lib/Socket/groups.js +114 -99
  28. package/lib/Socket/groups.js.map +1 -0
  29. package/lib/Socket/index.d.ts +260 -0
  30. package/lib/Socket/index.d.ts.map +1 -0
  31. package/lib/Socket/index.js +11 -9
  32. package/lib/Socket/index.js.map +1 -0
  33. package/lib/Socket/messages-recv.d.ts +203 -0
  34. package/lib/Socket/messages-recv.d.ts.map +1 -0
  35. package/lib/Socket/messages-recv.js +1277 -559
  36. package/lib/Socket/messages-recv.js.map +1 -0
  37. package/lib/Socket/messages-send.d.ts +199 -0
  38. package/lib/Socket/messages-send.d.ts.map +1 -0
  39. package/lib/Socket/messages-send.js +674 -669
  40. package/lib/Socket/messages-send.js.map +1 -0
  41. package/lib/Socket/mex.d.ts +3 -0
  42. package/lib/Socket/mex.d.ts.map +1 -0
  43. package/lib/Socket/mex.js +42 -0
  44. package/lib/Socket/mex.js.map +1 -0
  45. package/lib/Socket/newsletter.d.ts +170 -0
  46. package/lib/Socket/newsletter.d.ts.map +1 -0
  47. package/lib/Socket/newsletter.js +149 -286
  48. package/lib/Socket/newsletter.js.map +1 -0
  49. package/lib/Socket/socket.d.ts +59 -0
  50. package/lib/Socket/socket.d.ts.map +1 -0
  51. package/lib/Socket/socket.js.map +1 -0
  52. package/lib/Utils/auth-utils.d.ts +24 -0
  53. package/lib/Utils/auth-utils.d.ts.map +1 -0
  54. package/lib/Utils/auth-utils.js +239 -136
  55. package/lib/Utils/auth-utils.js.map +1 -0
  56. package/lib/Utils/browser-utils.d.ts +4 -0
  57. package/lib/Utils/browser-utils.d.ts.map +1 -0
  58. package/lib/Utils/browser-utils.js +28 -0
  59. package/lib/Utils/browser-utils.js.map +1 -0
  60. package/lib/Utils/business.d.ts +23 -0
  61. package/lib/Utils/business.d.ts.map +1 -0
  62. package/lib/Utils/business.js +66 -69
  63. package/lib/Utils/business.js.map +1 -0
  64. package/lib/Utils/chat-utils.d.ts +100 -0
  65. package/lib/Utils/chat-utils.d.ts.map +1 -0
  66. package/lib/Utils/chat-utils.js +380 -238
  67. package/lib/Utils/chat-utils.js.map +1 -0
  68. package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
  69. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  70. package/lib/Utils/companion-reg-client-utils.js +35 -0
  71. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  72. package/lib/Utils/crypto.d.ts +37 -0
  73. package/lib/Utils/crypto.d.ts.map +1 -0
  74. package/lib/Utils/crypto.js +56 -127
  75. package/lib/Utils/crypto.js.map +1 -0
  76. package/lib/Utils/decode-wa-message.d.ts +66 -0
  77. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  78. package/lib/Utils/decode-wa-message.js +173 -63
  79. package/lib/Utils/decode-wa-message.js.map +1 -0
  80. package/lib/Utils/event-buffer.d.ts +36 -0
  81. package/lib/Utils/event-buffer.d.ts.map +1 -0
  82. package/lib/Utils/event-buffer.js +174 -70
  83. package/lib/Utils/event-buffer.js.map +1 -0
  84. package/lib/Utils/generics.d.ts +91 -0
  85. package/lib/Utils/generics.d.ts.map +1 -0
  86. package/lib/Utils/generics.js +159 -207
  87. package/lib/Utils/generics.js.map +1 -0
  88. package/lib/Utils/history.d.ts +24 -0
  89. package/lib/Utils/history.d.ts.map +1 -0
  90. package/lib/Utils/history.js +93 -53
  91. package/lib/Utils/history.js.map +1 -0
  92. package/lib/Utils/identity-change-handler.d.ts +44 -0
  93. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  94. package/lib/Utils/identity-change-handler.js +50 -0
  95. package/lib/Utils/identity-change-handler.js.map +1 -0
  96. package/lib/Utils/index.d.ts +22 -0
  97. package/lib/Utils/index.d.ts.map +1 -0
  98. package/lib/Utils/index.js +22 -33
  99. package/lib/Utils/index.js.map +1 -0
  100. package/lib/Utils/link-preview.d.ts +21 -0
  101. package/lib/Utils/link-preview.d.ts.map +1 -0
  102. package/lib/Utils/link-preview.js +17 -58
  103. package/lib/Utils/link-preview.js.map +1 -0
  104. package/lib/Utils/logger.d.ts +12 -0
  105. package/lib/Utils/logger.d.ts.map +1 -0
  106. package/lib/Utils/logger.js +3 -7
  107. package/lib/Utils/logger.js.map +1 -0
  108. package/lib/Utils/lt-hash.d.ts +8 -0
  109. package/lib/Utils/lt-hash.d.ts.map +1 -0
  110. package/lib/Utils/lt-hash.js +3 -46
  111. package/lib/Utils/lt-hash.js.map +1 -0
  112. package/lib/Utils/make-mutex.d.ts +9 -0
  113. package/lib/Utils/make-mutex.d.ts.map +1 -0
  114. package/lib/Utils/make-mutex.js +24 -34
  115. package/lib/Utils/make-mutex.js.map +1 -0
  116. package/lib/Utils/message-retry-manager.d.ts +115 -0
  117. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  118. package/lib/Utils/message-retry-manager.js +265 -0
  119. package/lib/Utils/message-retry-manager.js.map +1 -0
  120. package/lib/Utils/messages-media.d.ts +133 -0
  121. package/lib/Utils/messages-media.d.ts.map +1 -0
  122. package/lib/Utils/messages-media.js +483 -744
  123. package/lib/Utils/messages-media.js.map +1 -0
  124. package/lib/Utils/messages.d.ts +91 -0
  125. package/lib/Utils/messages.d.ts.map +1 -0
  126. package/lib/Utils/messages.js +411 -621
  127. package/lib/Utils/messages.js.map +1 -0
  128. package/lib/Utils/noise-handler.d.ts +20 -0
  129. package/lib/Utils/noise-handler.d.ts.map +1 -0
  130. package/lib/Utils/noise-handler.js +149 -99
  131. package/lib/Utils/noise-handler.js.map +1 -0
  132. package/lib/Utils/offline-node-processor.d.ts +17 -0
  133. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  134. package/lib/Utils/offline-node-processor.js +40 -0
  135. package/lib/Utils/offline-node-processor.js.map +1 -0
  136. package/lib/Utils/pre-key-manager.d.ts +28 -0
  137. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  138. package/lib/Utils/pre-key-manager.js +106 -0
  139. package/lib/Utils/pre-key-manager.js.map +1 -0
  140. package/lib/Utils/process-message.d.ts +60 -0
  141. package/lib/Utils/process-message.d.ts.map +1 -0
  142. package/lib/Utils/process-message.js +459 -150
  143. package/lib/Utils/process-message.js.map +1 -0
  144. package/lib/Utils/reporting-utils.d.ts +11 -0
  145. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  146. package/lib/Utils/reporting-utils.js +258 -0
  147. package/lib/Utils/reporting-utils.js.map +1 -0
  148. package/lib/Utils/signal.d.ts +47 -0
  149. package/lib/Utils/signal.d.ts.map +1 -0
  150. package/lib/Utils/signal.js +112 -73
  151. package/lib/Utils/signal.js.map +1 -0
  152. package/lib/Utils/stanza-ack.d.ts +11 -0
  153. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  154. package/lib/Utils/stanza-ack.js +38 -0
  155. package/lib/Utils/stanza-ack.js.map +1 -0
  156. package/lib/Utils/sync-action-utils.d.ts +19 -0
  157. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  158. package/lib/Utils/sync-action-utils.js +49 -0
  159. package/lib/Utils/sync-action-utils.js.map +1 -0
  160. package/lib/Utils/tc-token-utils.d.ts +37 -0
  161. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  162. package/lib/Utils/tc-token-utils.js +163 -0
  163. package/lib/Utils/tc-token-utils.js.map +1 -0
  164. package/lib/Utils/use-multi-file-auth-state.d.ts +13 -0
  165. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  166. package/lib/Utils/use-multi-file-auth-state.js +23 -27
  167. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  168. package/lib/Utils/validate-connection.d.ts +11 -0
  169. package/lib/Utils/validate-connection.d.ts.map +1 -0
  170. package/lib/Utils/validate-connection.js +74 -104
  171. package/lib/Utils/validate-connection.js.map +1 -0
  172. package/package.json +1 -1
@@ -1,29 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uploadingNecessaryImages = exports.parseProductNode = exports.toProductNode = exports.parseOrderDetailsNode = exports.parseCollectionsNode = exports.parseCatalogNode = void 0;
4
- exports.uploadingNecessaryImagesOfProduct = uploadingNecessaryImagesOfProduct;
5
- const boom_1 = require("@hapi/boom");
6
- const crypto_1 = require("crypto");
7
- const WABinary_1 = require("../WABinary");
8
- const messages_media_1 = require("./messages-media");
9
- const parseCatalogNode = (node) => {
10
- const catalogNode = (0, WABinary_1.getBinaryNodeChild)(node, 'product_catalog');
11
- const products = (0, WABinary_1.getBinaryNodeChildren)(catalogNode, 'product').map(exports.parseProductNode);
12
- const paging = (0, WABinary_1.getBinaryNodeChild)(catalogNode, 'paging');
1
+ import { Boom } from '@hapi/boom';
2
+ import { createHash } from 'crypto';
3
+ import { createWriteStream, promises as fs } from 'fs';
4
+ import { tmpdir } from 'os';
5
+ import { join } from 'path';
6
+ import { getBinaryNodeChild, getBinaryNodeChildren, getBinaryNodeChildString } from '../WABinary/index.js';
7
+ import { generateMessageIDV2 } from './generics.js';
8
+ import { getStream, getUrlFromDirectPath } from './messages-media.js';
9
+ export const parseCatalogNode = (node) => {
10
+ const catalogNode = getBinaryNodeChild(node, 'product_catalog');
11
+ const products = getBinaryNodeChildren(catalogNode, 'product').map(parseProductNode);
12
+ const paging = getBinaryNodeChild(catalogNode, 'paging');
13
13
  return {
14
14
  products,
15
- nextPageCursor: paging
16
- ? (0, WABinary_1.getBinaryNodeChildString)(paging, 'after')
17
- : undefined
15
+ nextPageCursor: paging ? getBinaryNodeChildString(paging, 'after') : undefined
18
16
  };
19
17
  };
20
- exports.parseCatalogNode = parseCatalogNode;
21
- const parseCollectionsNode = (node) => {
22
- const collectionsNode = (0, WABinary_1.getBinaryNodeChild)(node, 'collections');
23
- const collections = (0, WABinary_1.getBinaryNodeChildren)(collectionsNode, 'collection').map(collectionNode => {
24
- const id = (0, WABinary_1.getBinaryNodeChildString)(collectionNode, 'id');
25
- const name = (0, WABinary_1.getBinaryNodeChildString)(collectionNode, 'name');
26
- const products = (0, WABinary_1.getBinaryNodeChildren)(collectionNode, 'product').map(exports.parseProductNode);
18
+ export const parseCollectionsNode = (node) => {
19
+ const collectionsNode = getBinaryNodeChild(node, 'collections');
20
+ const collections = getBinaryNodeChildren(collectionsNode, 'collection').map(collectionNode => {
21
+ const id = getBinaryNodeChildString(collectionNode, 'id');
22
+ const name = getBinaryNodeChildString(collectionNode, 'name');
23
+ const products = getBinaryNodeChildren(collectionNode, 'product').map(parseProductNode);
27
24
  return {
28
25
  id,
29
26
  name,
@@ -35,32 +32,30 @@ const parseCollectionsNode = (node) => {
35
32
  collections
36
33
  };
37
34
  };
38
- exports.parseCollectionsNode = parseCollectionsNode;
39
- const parseOrderDetailsNode = (node) => {
40
- const orderNode = (0, WABinary_1.getBinaryNodeChild)(node, 'order');
41
- const products = (0, WABinary_1.getBinaryNodeChildren)(orderNode, 'product').map(productNode => {
42
- const imageNode = (0, WABinary_1.getBinaryNodeChild)(productNode, 'image');
35
+ export const parseOrderDetailsNode = (node) => {
36
+ const orderNode = getBinaryNodeChild(node, 'order');
37
+ const products = getBinaryNodeChildren(orderNode, 'product').map(productNode => {
38
+ const imageNode = getBinaryNodeChild(productNode, 'image');
43
39
  return {
44
- id: (0, WABinary_1.getBinaryNodeChildString)(productNode, 'id'),
45
- name: (0, WABinary_1.getBinaryNodeChildString)(productNode, 'name'),
46
- imageUrl: (0, WABinary_1.getBinaryNodeChildString)(imageNode, 'url'),
47
- price: +(0, WABinary_1.getBinaryNodeChildString)(productNode, 'price'),
48
- currency: (0, WABinary_1.getBinaryNodeChildString)(productNode, 'currency'),
49
- quantity: +(0, WABinary_1.getBinaryNodeChildString)(productNode, 'quantity')
40
+ id: getBinaryNodeChildString(productNode, 'id'),
41
+ name: getBinaryNodeChildString(productNode, 'name'),
42
+ imageUrl: getBinaryNodeChildString(imageNode, 'url'),
43
+ price: +getBinaryNodeChildString(productNode, 'price'),
44
+ currency: getBinaryNodeChildString(productNode, 'currency'),
45
+ quantity: +getBinaryNodeChildString(productNode, 'quantity')
50
46
  };
51
47
  });
52
- const priceNode = (0, WABinary_1.getBinaryNodeChild)(orderNode, 'price');
48
+ const priceNode = getBinaryNodeChild(orderNode, 'price');
53
49
  const orderDetails = {
54
50
  price: {
55
- total: +(0, WABinary_1.getBinaryNodeChildString)(priceNode, 'total'),
56
- currency: (0, WABinary_1.getBinaryNodeChildString)(priceNode, 'currency'),
51
+ total: +getBinaryNodeChildString(priceNode, 'total'),
52
+ currency: getBinaryNodeChildString(priceNode, 'currency')
57
53
  },
58
54
  products
59
55
  };
60
56
  return orderDetails;
61
57
  };
62
- exports.parseOrderDetailsNode = parseOrderDetailsNode;
63
- const toProductNode = (productId, product) => {
58
+ export const toProductNode = (productId, product) => {
64
59
  const attrs = {};
65
60
  const content = [];
66
61
  if (typeof productId !== 'undefined') {
@@ -97,7 +92,7 @@ const toProductNode = (productId, product) => {
97
92
  attrs: {},
98
93
  content: product.images.map(img => {
99
94
  if (!('url' in img)) {
100
- throw new boom_1.Boom('Expected img for product to already be uploaded', { statusCode: 400 });
95
+ throw new Boom('Expected img for product to already be uploaded', { statusCode: 400 });
101
96
  }
102
97
  return {
103
98
  tag: 'image',
@@ -155,44 +150,44 @@ const toProductNode = (productId, product) => {
155
150
  };
156
151
  return node;
157
152
  };
158
- exports.toProductNode = toProductNode;
159
- const parseProductNode = (productNode) => {
153
+ export const parseProductNode = (productNode) => {
160
154
  const isHidden = productNode.attrs.is_hidden === 'true';
161
- const id = (0, WABinary_1.getBinaryNodeChildString)(productNode, 'id');
162
- const mediaNode = (0, WABinary_1.getBinaryNodeChild)(productNode, 'media');
163
- const statusInfoNode = (0, WABinary_1.getBinaryNodeChild)(productNode, 'status_info');
155
+ const id = getBinaryNodeChildString(productNode, 'id');
156
+ const mediaNode = getBinaryNodeChild(productNode, 'media');
157
+ const statusInfoNode = getBinaryNodeChild(productNode, 'status_info');
164
158
  const product = {
165
159
  id,
166
160
  imageUrls: parseImageUrls(mediaNode),
167
161
  reviewStatus: {
168
- whatsapp: (0, WABinary_1.getBinaryNodeChildString)(statusInfoNode, 'status'),
162
+ whatsapp: getBinaryNodeChildString(statusInfoNode, 'status')
169
163
  },
170
164
  availability: 'in stock',
171
- name: (0, WABinary_1.getBinaryNodeChildString)(productNode, 'name'),
172
- retailerId: (0, WABinary_1.getBinaryNodeChildString)(productNode, 'retailer_id'),
173
- url: (0, WABinary_1.getBinaryNodeChildString)(productNode, 'url'),
174
- description: (0, WABinary_1.getBinaryNodeChildString)(productNode, 'description'),
175
- price: +(0, WABinary_1.getBinaryNodeChildString)(productNode, 'price'),
176
- currency: (0, WABinary_1.getBinaryNodeChildString)(productNode, 'currency'),
177
- isHidden,
165
+ name: getBinaryNodeChildString(productNode, 'name'),
166
+ retailerId: getBinaryNodeChildString(productNode, 'retailer_id'),
167
+ url: getBinaryNodeChildString(productNode, 'url'),
168
+ description: getBinaryNodeChildString(productNode, 'description'),
169
+ price: +getBinaryNodeChildString(productNode, 'price'),
170
+ currency: getBinaryNodeChildString(productNode, 'currency'),
171
+ isHidden
178
172
  };
179
173
  return product;
180
174
  };
181
- exports.parseProductNode = parseProductNode;
182
175
  /**
183
176
  * Uploads images not already uploaded to WA's servers
184
177
  */
185
- async function uploadingNecessaryImagesOfProduct(product, waUploadToServer, timeoutMs = 30000) {
178
+ export async function uploadingNecessaryImagesOfProduct(product, waUploadToServer, timeoutMs = 30000) {
186
179
  product = {
187
180
  ...product,
188
- images: product.images ? await (0, exports.uploadingNecessaryImages)(product.images, waUploadToServer, timeoutMs) : product.images
181
+ images: product.images
182
+ ? await uploadingNecessaryImages(product.images, waUploadToServer, timeoutMs)
183
+ : product.images
189
184
  };
190
185
  return product;
191
186
  }
192
187
  /**
193
188
  * Uploads images not already uploaded to WA's servers
194
189
  */
195
- const uploadingNecessaryImages = async (images, waUploadToServer, timeoutMs = 30000) => {
190
+ export const uploadingNecessaryImages = async (images, waUploadToServer, timeoutMs = 30000) => {
196
191
  const results = await Promise.all(images.map(async (img) => {
197
192
  if ('url' in img) {
198
193
  const url = img.url.toString();
@@ -200,35 +195,37 @@ const uploadingNecessaryImages = async (images, waUploadToServer, timeoutMs = 30
200
195
  return { url };
201
196
  }
202
197
  }
203
- const { stream } = await (0, messages_media_1.getStream)(img);
204
- const hasher = (0, crypto_1.createHash)('sha256');
205
- const contentBlocks = [];
198
+ const { stream } = await getStream(img);
199
+ const hasher = createHash('sha256');
200
+ const filePath = join(tmpdir(), 'img' + generateMessageIDV2());
201
+ const encFileWriteStream = createWriteStream(filePath);
206
202
  for await (const block of stream) {
207
203
  hasher.update(block);
208
- contentBlocks.push(block);
204
+ encFileWriteStream.write(block);
209
205
  }
210
206
  const sha = hasher.digest('base64');
211
- const { directPath } = await waUploadToServer((0, messages_media_1.toReadable)(Buffer.concat(contentBlocks)), {
207
+ const { directPath } = await waUploadToServer(filePath, {
212
208
  mediaType: 'product-catalog-image',
213
209
  fileEncSha256B64: sha,
214
210
  timeoutMs
215
211
  });
216
- return { url: (0, messages_media_1.getUrlFromDirectPath)(directPath) };
212
+ await fs.unlink(filePath).catch(err => console.log('Error deleting temp file ', err));
213
+ return { url: getUrlFromDirectPath(directPath) };
217
214
  }));
218
215
  return results;
219
216
  };
220
- exports.uploadingNecessaryImages = uploadingNecessaryImages;
221
217
  const parseImageUrls = (mediaNode) => {
222
- const imgNode = (0, WABinary_1.getBinaryNodeChild)(mediaNode, 'image');
218
+ const imgNode = getBinaryNodeChild(mediaNode, 'image');
223
219
  return {
224
- requested: (0, WABinary_1.getBinaryNodeChildString)(imgNode, 'request_image_url'),
225
- original: (0, WABinary_1.getBinaryNodeChildString)(imgNode, 'original_image_url')
220
+ requested: getBinaryNodeChildString(imgNode, 'request_image_url'),
221
+ original: getBinaryNodeChildString(imgNode, 'original_image_url')
226
222
  };
227
223
  };
228
224
  const parseStatusInfo = (mediaNode) => {
229
- const node = (0, WABinary_1.getBinaryNodeChild)(mediaNode, 'status_info');
225
+ const node = getBinaryNodeChild(mediaNode, 'status_info');
230
226
  return {
231
- status: (0, WABinary_1.getBinaryNodeChildString)(node, 'status'),
232
- canAppeal: (0, WABinary_1.getBinaryNodeChildString)(node, 'can_appeal') === 'true',
227
+ status: getBinaryNodeChildString(node, 'status'),
228
+ canAppeal: getBinaryNodeChildString(node, 'can_appeal') === 'true'
233
229
  };
234
230
  };
231
+ //# sourceMappingURL=business.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business.js","sourceRoot":"","sources":["../../src/Utils/business.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAY3B,OAAO,EAAmB,kBAAkB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAClH,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAElE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAgB,EAAE,EAAE;IACpD,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACpF,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAExD,OAAO;QACN,QAAQ;QACR,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9E,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAgB,EAAE,EAAE;IACxD,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;IAC/D,MAAM,WAAW,GAAG,qBAAqB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,GAAG,CAAoB,cAAc,CAAC,EAAE;QAChH,MAAM,EAAE,GAAG,wBAAwB,CAAC,cAAc,EAAE,IAAI,CAAE,CAAA;QAC1D,MAAM,IAAI,GAAG,wBAAwB,CAAC,cAAc,EAAE,MAAM,CAAE,CAAA;QAE9D,MAAM,QAAQ,GAAG,qBAAqB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;QACvF,OAAO;YACN,EAAE;YACF,IAAI;YACJ,QAAQ;YACR,MAAM,EAAE,eAAe,CAAC,cAAc,CAAC;SACvC,CAAA;IACF,CAAC,CAAC,CAAA;IAEF,OAAO;QACN,WAAW;KACX,CAAA;AACF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAgB,EAAE,EAAE;IACzD,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACnD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,CAAe,WAAW,CAAC,EAAE;QAC5F,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAE,CAAA;QAC3D,OAAO;YACN,EAAE,EAAE,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAE;YAChD,IAAI,EAAE,wBAAwB,CAAC,WAAW,EAAE,MAAM,CAAE;YACpD,QAAQ,EAAE,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAE;YACrD,KAAK,EAAE,CAAC,wBAAwB,CAAC,WAAW,EAAE,OAAO,CAAE;YACvD,QAAQ,EAAE,wBAAwB,CAAC,WAAW,EAAE,UAAU,CAAE;YAC5D,QAAQ,EAAE,CAAC,wBAAwB,CAAC,WAAW,EAAE,UAAU,CAAE;SAC7D,CAAA;IACF,CAAC,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAExD,MAAM,YAAY,GAAiB;QAClC,KAAK,EAAE;YACN,KAAK,EAAE,CAAC,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAE;YACrD,QAAQ,EAAE,wBAAwB,CAAC,SAAS,EAAE,UAAU,CAAE;SAC1D;QACD,QAAQ;KACR,CAAA;IAED,OAAO,YAAY,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAA6B,EAAE,OAAsC,EAAE,EAAE;IACtG,MAAM,KAAK,GAAwB,EAAE,CAAA;IACrC,MAAM,OAAO,GAAiB,EAAE,CAAA;IAEhC,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SAC/B,CAAC,CAAA;IACH,CAAC;IAED,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAA;IACH,CAAC;IAED,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SACzC,CAAC,CAAA;IACH,CAAC;IAED,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SACxC,CAAC,CAAA;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACjC,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,IAAI,IAAI,CAAC,iDAAiD,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;gBACvF,CAAC;gBAED,OAAO;oBACN,GAAG,EAAE,OAAO;oBACZ,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE;wBACR;4BACC,GAAG,EAAE,KAAK;4BACV,KAAK,EAAE,EAAE;4BACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;yBACxC;qBACD;iBACD,CAAA;YACF,CAAC,CAAC;SACF,CAAC,CAAA;IACH,CAAC;IAED,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SAC9C,CAAC,CAAA;IACH,CAAC;IAED,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;SACtC,CAAC,CAAA;IACH,CAAC;IAED,IAAI,mBAAmB,IAAI,OAAO,EAAE,CAAC;QACpC,IAAI,OAAO,OAAO,CAAC,iBAAiB,KAAK,WAAW,EAAE,CAAC;YACtD,KAAK,CAAC,qBAAqB,CAAC,GAAG,uBAAuB,CAAA;QACvD,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC;gBACZ,GAAG,EAAE,iBAAiB;gBACtB,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE;oBACR;wBACC,GAAG,EAAE,qBAAqB;wBAC1B,KAAK,EAAE,EAAE;wBACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;qBAC/C;iBACD;aACD,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAED,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7C,KAAK,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;IACjD,CAAC;IAED,MAAM,IAAI,GAAe;QACxB,GAAG,EAAE,SAAS;QACd,KAAK;QACL,OAAO;KACP,CAAA;IACD,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAuB,EAAE,EAAE;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAA;IACvD,MAAM,EAAE,GAAG,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAE,CAAA;IAEvD,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAE,CAAA;IAC3D,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAE,CAAA;IAEtE,MAAM,OAAO,GAAY;QACxB,EAAE;QACF,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC;QACpC,YAAY,EAAE;YACb,QAAQ,EAAE,wBAAwB,CAAC,cAAc,EAAE,QAAQ,CAAE;SAC7D;QACD,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,wBAAwB,CAAC,WAAW,EAAE,MAAM,CAAE;QACpD,UAAU,EAAE,wBAAwB,CAAC,WAAW,EAAE,aAAa,CAAC;QAChE,GAAG,EAAE,wBAAwB,CAAC,WAAW,EAAE,KAAK,CAAC;QACjD,WAAW,EAAE,wBAAwB,CAAC,WAAW,EAAE,aAAa,CAAE;QAClE,KAAK,EAAE,CAAC,wBAAwB,CAAC,WAAW,EAAE,OAAO,CAAE;QACvD,QAAQ,EAAE,wBAAwB,CAAC,WAAW,EAAE,UAAU,CAAE;QAC5D,QAAQ;KACR,CAAA;IAED,OAAO,OAAO,CAAA;AACf,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACtD,OAAU,EACV,gBAAuC,EACvC,SAAS,GAAG,KAAM;IAElB,OAAO,GAAG;QACT,GAAG,OAAO;QACV,MAAM,EAAE,OAAO,CAAC,MAAM;YACrB,CAAC,CAAC,MAAM,wBAAwB,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,CAAC;YAC7E,CAAC,CAAC,OAAO,CAAC,MAAM;KACjB,CAAA;IACD,OAAO,OAAO,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC5C,MAAuB,EACvB,gBAAuC,EACvC,SAAS,GAAG,KAAM,EACjB,EAAE;IACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,MAAM,CAAC,GAAG,CAA2B,KAAK,EAAC,GAAG,EAAC,EAAE;QAChD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC9B,IAAI,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnC,OAAO,EAAE,GAAG,EAAE,CAAA;YACf,CAAC;QACF,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,GAAG,mBAAmB,EAAE,CAAC,CAAA;QAC9D,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QAEtD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACpB,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAChC,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAEnC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE;YACvD,SAAS,EAAE,uBAAuB;YAClC,gBAAgB,EAAE,GAAG;YACrB,SAAS;SACT,CAAC,CAAA;QAEF,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC,CAAA;QAErF,OAAO,EAAE,GAAG,EAAE,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAA;IACjD,CAAC,CAAC,CACF,CAAA;IACD,OAAO,OAAO,CAAA;AACf,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,SAAqB,EAAE,EAAE;IAChD,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACtD,OAAO;QACN,SAAS,EAAE,wBAAwB,CAAC,OAAO,EAAE,mBAAmB,CAAE;QAClE,QAAQ,EAAE,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,CAAE;KAClE,CAAA;AACF,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,SAAqB,EAAiB,EAAE;IAChE,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IACzD,OAAO;QACN,MAAM,EAAE,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAE;QACjD,SAAS,EAAE,wBAAwB,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,MAAM;KAClE,CAAA;AACF,CAAC,CAAA"}
@@ -0,0 +1,100 @@
1
+ import { proto } from '../../WAProto/index.js';
2
+ import type { BaileysEventEmitter, ChatModification, ChatMutation, Contact, InitialAppStateSyncOptions, LTHashState, WAPatchCreate, WAPatchName } from '../Types/index.js';
3
+ import { type BinaryNode } from '../WABinary/index.js';
4
+ import type { ILogger } from './logger.js';
5
+ type FetchAppStateSyncKey = (keyId: string) => Promise<proto.Message.IAppStateSyncKeyData | null | undefined>;
6
+ export type ChatMutationMap = {
7
+ [index: string]: ChatMutation;
8
+ };
9
+ type Mac = {
10
+ indexMac: Uint8Array;
11
+ valueMac: Uint8Array;
12
+ operation: proto.SyncdMutation.SyncdOperation;
13
+ };
14
+ export declare const makeLtHashGenerator: ({ indexValueMap, hash }: Pick<LTHashState, "hash" | "indexValueMap">) => {
15
+ mix: ({ indexMac, valueMac, operation }: Mac) => void;
16
+ finish: () => {
17
+ hash: Buffer<ArrayBuffer>;
18
+ indexValueMap: {
19
+ [indexMacBase64: string]: {
20
+ valueMac: Uint8Array | Buffer;
21
+ };
22
+ };
23
+ };
24
+ };
25
+ export declare const newLTHashState: () => LTHashState;
26
+ export declare const ensureLTHashStateVersion: (state: LTHashState) => LTHashState;
27
+ export declare const MAX_SYNC_ATTEMPTS = 2;
28
+ /**
29
+ * Check if an error is a missing app state sync key.
30
+ * WA Web treats these as "Blocked" (waits for key arrival), not fatal.
31
+ * In Baileys we retry with a snapshot which may use a different key.
32
+ */
33
+ export declare const isMissingKeyError: (error: any) => boolean;
34
+ /**
35
+ * Determines if an app state sync error is unrecoverable.
36
+ * TypeError indicates a WASM crash; otherwise we give up after MAX_SYNC_ATTEMPTS.
37
+ * Missing keys are NOT checked here — they are handled separately as "Blocked".
38
+ */
39
+ export declare const isAppStateSyncIrrecoverable: (error: any, attempts: number) => boolean;
40
+ export declare const encodeSyncdPatch: ({ type, index, syncAction, apiVersion, operation }: WAPatchCreate, myAppStateKeyId: string, state: LTHashState, getAppStateSyncKey: FetchAppStateSyncKey) => Promise<{
41
+ patch: proto.ISyncdPatch;
42
+ state: LTHashState;
43
+ }>;
44
+ export declare const decodeSyncdMutations: (msgMutations: (proto.ISyncdMutation | proto.ISyncdRecord)[], initialState: LTHashState, getAppStateSyncKey: FetchAppStateSyncKey, onMutation: (mutation: ChatMutation) => void, validateMacs: boolean) => Promise<{
45
+ hash: Buffer<ArrayBuffer>;
46
+ indexValueMap: {
47
+ [indexMacBase64: string]: {
48
+ valueMac: Uint8Array | Buffer;
49
+ };
50
+ };
51
+ }>;
52
+ export declare const decodeSyncdPatch: (msg: proto.ISyncdPatch, name: WAPatchName, initialState: LTHashState, getAppStateSyncKey: FetchAppStateSyncKey, onMutation: (mutation: ChatMutation) => void, validateMacs: boolean) => Promise<{
53
+ hash: Buffer<ArrayBuffer>;
54
+ indexValueMap: {
55
+ [indexMacBase64: string]: {
56
+ valueMac: Uint8Array | Buffer;
57
+ };
58
+ };
59
+ }>;
60
+ export declare const extractSyncdPatches: (result: BinaryNode, options: RequestInit) => Promise<{
61
+ critical_unblock_low: {
62
+ patches: proto.ISyncdPatch[];
63
+ hasMorePatches: boolean;
64
+ snapshot?: proto.ISyncdSnapshot;
65
+ };
66
+ regular_high: {
67
+ patches: proto.ISyncdPatch[];
68
+ hasMorePatches: boolean;
69
+ snapshot?: proto.ISyncdSnapshot;
70
+ };
71
+ regular_low: {
72
+ patches: proto.ISyncdPatch[];
73
+ hasMorePatches: boolean;
74
+ snapshot?: proto.ISyncdSnapshot;
75
+ };
76
+ critical_block: {
77
+ patches: proto.ISyncdPatch[];
78
+ hasMorePatches: boolean;
79
+ snapshot?: proto.ISyncdSnapshot;
80
+ };
81
+ regular: {
82
+ patches: proto.ISyncdPatch[];
83
+ hasMorePatches: boolean;
84
+ snapshot?: proto.ISyncdSnapshot;
85
+ };
86
+ }>;
87
+ export declare const downloadExternalBlob: (blob: proto.IExternalBlobReference, options: RequestInit) => Promise<Buffer<ArrayBuffer>>;
88
+ export declare const downloadExternalPatch: (blob: proto.IExternalBlobReference, options: RequestInit) => Promise<proto.SyncdMutations>;
89
+ export declare const decodeSyncdSnapshot: (name: WAPatchName, snapshot: proto.ISyncdSnapshot, getAppStateSyncKey: FetchAppStateSyncKey, minimumVersionNumber: number | undefined, validateMacs?: boolean, logger?: ILogger) => Promise<{
90
+ state: LTHashState;
91
+ mutationMap: ChatMutationMap;
92
+ }>;
93
+ export declare const decodePatches: (name: WAPatchName, syncds: proto.ISyncdPatch[], initial: LTHashState, getAppStateSyncKey: FetchAppStateSyncKey, options: RequestInit, minimumVersionNumber?: number, logger?: ILogger, validateMacs?: boolean) => Promise<{
94
+ state: LTHashState;
95
+ mutationMap: ChatMutationMap;
96
+ }>;
97
+ export declare const chatModificationToAppPatch: (mod: ChatModification, jid: string) => WAPatchCreate;
98
+ export declare const processSyncAction: (syncAction: ChatMutation, ev: BaileysEventEmitter, me: Contact, initialSyncOpts?: InitialAppStateSyncOptions, logger?: ILogger) => void;
99
+ export {};
100
+ //# sourceMappingURL=chat-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-utils.d.ts","sourceRoot":"","sources":["../../src/Utils/chat-utils.ts"],"names":[],"mappings":"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"}