@d0v3riz/baileys 6.7.24 → 7.0.0-rc.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 (208) hide show
  1. package/README.md +23 -8
  2. package/WAProto/GenerateStatics.sh +2 -2
  3. package/WAProto/WAProto.proto +1339 -493
  4. package/WAProto/fix-imports.js +1 -1
  5. package/WAProto/index.d.ts +4585 -44041
  6. package/WAProto/index.js +80831 -148208
  7. package/lib/Defaults/index.d.ts +13 -3
  8. package/lib/Defaults/index.d.ts.map +1 -1
  9. package/lib/Defaults/index.js +27 -13
  10. package/lib/Defaults/index.js.map +1 -1
  11. package/lib/Signal/Group/group_cipher.d.ts +1 -2
  12. package/lib/Signal/Group/group_cipher.d.ts.map +1 -1
  13. package/lib/Signal/Group/group_cipher.js +29 -41
  14. package/lib/Signal/Group/group_cipher.js.map +1 -1
  15. package/lib/Signal/Group/keyhelper.d.ts.map +1 -1
  16. package/lib/Signal/Group/keyhelper.js +0 -1
  17. package/lib/Signal/Group/keyhelper.js.map +1 -1
  18. package/lib/Signal/Group/sender-chain-key.d.ts +1 -1
  19. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -1
  20. package/lib/Signal/Group/sender-chain-key.js +1 -7
  21. package/lib/Signal/Group/sender-chain-key.js.map +1 -1
  22. package/lib/Signal/Group/sender-key-distribution-message.js +2 -2
  23. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -1
  24. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -1
  25. package/lib/Signal/Group/sender-key-message.js +0 -1
  26. package/lib/Signal/Group/sender-key-message.js.map +1 -1
  27. package/lib/Signal/Group/sender-key-record.d.ts +1 -1
  28. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -1
  29. package/lib/Signal/Group/sender-key-record.js +2 -11
  30. package/lib/Signal/Group/sender-key-record.js.map +1 -1
  31. package/lib/Signal/Group/sender-key-state.d.ts +4 -4
  32. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -1
  33. package/lib/Signal/Group/sender-key-state.js +21 -33
  34. package/lib/Signal/Group/sender-key-state.js.map +1 -1
  35. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -1
  36. package/lib/Signal/Group/sender-message-key.js +0 -1
  37. package/lib/Signal/Group/sender-message-key.js.map +1 -1
  38. package/lib/Signal/libsignal.d.ts +4 -3
  39. package/lib/Signal/libsignal.d.ts.map +1 -1
  40. package/lib/Signal/libsignal.js +243 -42
  41. package/lib/Signal/libsignal.js.map +1 -1
  42. package/lib/Signal/lid-mapping.d.ts +23 -0
  43. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  44. package/lib/Signal/lid-mapping.js +171 -0
  45. package/lib/Signal/lid-mapping.js.map +1 -0
  46. package/lib/Socket/business.d.ts +29 -17
  47. package/lib/Socket/business.d.ts.map +1 -1
  48. package/lib/Socket/business.js +122 -1
  49. package/lib/Socket/business.js.map +1 -1
  50. package/lib/Socket/chats.d.ts +15 -9
  51. package/lib/Socket/chats.d.ts.map +1 -1
  52. package/lib/Socket/chats.js +49 -20
  53. package/lib/Socket/chats.js.map +1 -1
  54. package/lib/Socket/communities.d.ts +39 -14
  55. package/lib/Socket/communities.d.ts.map +1 -1
  56. package/lib/Socket/communities.js +82 -2
  57. package/lib/Socket/communities.js.map +1 -1
  58. package/lib/Socket/groups.d.ts +14 -9
  59. package/lib/Socket/groups.d.ts.map +1 -1
  60. package/lib/Socket/groups.js +14 -11
  61. package/lib/Socket/groups.js.map +1 -1
  62. package/lib/Socket/index.d.ts +39 -14
  63. package/lib/Socket/index.d.ts.map +1 -1
  64. package/lib/Socket/index.js +1 -0
  65. package/lib/Socket/index.js.map +1 -1
  66. package/lib/Socket/messages-recv.d.ts +24 -16
  67. package/lib/Socket/messages-recv.d.ts.map +1 -1
  68. package/lib/Socket/messages-recv.js +463 -319
  69. package/lib/Socket/messages-recv.js.map +1 -1
  70. package/lib/Socket/messages-send.d.ts +25 -16
  71. package/lib/Socket/messages-send.d.ts.map +1 -1
  72. package/lib/Socket/messages-send.js +365 -125
  73. package/lib/Socket/messages-send.js.map +1 -1
  74. package/lib/Socket/newsletter.d.ts +16 -12
  75. package/lib/Socket/newsletter.d.ts.map +1 -1
  76. package/lib/Socket/newsletter.js +3 -1
  77. package/lib/Socket/newsletter.js.map +1 -1
  78. package/lib/Socket/socket.d.ts +11 -3
  79. package/lib/Socket/socket.d.ts.map +1 -1
  80. package/lib/Socket/socket.js +305 -71
  81. package/lib/Socket/socket.js.map +1 -1
  82. package/lib/Types/Auth.d.ts +8 -1
  83. package/lib/Types/Auth.d.ts.map +1 -1
  84. package/lib/Types/Bussines.d.ts +25 -0
  85. package/lib/Types/Bussines.d.ts.map +1 -0
  86. package/lib/Types/Bussines.js +2 -0
  87. package/lib/Types/Bussines.js.map +1 -0
  88. package/lib/Types/Chat.d.ts +5 -0
  89. package/lib/Types/Chat.d.ts.map +1 -1
  90. package/lib/Types/Chat.js.map +1 -1
  91. package/lib/Types/Contact.d.ts +4 -4
  92. package/lib/Types/Contact.d.ts.map +1 -1
  93. package/lib/Types/Events.d.ts +8 -5
  94. package/lib/Types/Events.d.ts.map +1 -1
  95. package/lib/Types/GroupMetadata.d.ts +7 -4
  96. package/lib/Types/GroupMetadata.d.ts.map +1 -1
  97. package/lib/Types/Message.d.ts +38 -12
  98. package/lib/Types/Message.d.ts.map +1 -1
  99. package/lib/Types/Message.js +5 -1
  100. package/lib/Types/Message.js.map +1 -1
  101. package/lib/Types/Signal.d.ts +18 -0
  102. package/lib/Types/Signal.d.ts.map +1 -1
  103. package/lib/Types/Socket.d.ts +24 -13
  104. package/lib/Types/Socket.d.ts.map +1 -1
  105. package/lib/Types/Socket.js.map +1 -1
  106. package/lib/Utils/auth-utils.d.ts +2 -2
  107. package/lib/Utils/auth-utils.d.ts.map +1 -1
  108. package/lib/Utils/auth-utils.js +178 -111
  109. package/lib/Utils/auth-utils.js.map +1 -1
  110. package/lib/Utils/browser-utils.d.ts +4 -0
  111. package/lib/Utils/browser-utils.d.ts.map +1 -0
  112. package/lib/Utils/browser-utils.js +28 -0
  113. package/lib/Utils/browser-utils.js.map +1 -0
  114. package/lib/Utils/chat-utils.d.ts +6 -7
  115. package/lib/Utils/chat-utils.d.ts.map +1 -1
  116. package/lib/Utils/chat-utils.js +19 -2
  117. package/lib/Utils/chat-utils.js.map +1 -1
  118. package/lib/Utils/crypto.d.ts +6 -6
  119. package/lib/Utils/crypto.d.ts.map +1 -1
  120. package/lib/Utils/crypto.js +16 -12
  121. package/lib/Utils/crypto.js.map +1 -1
  122. package/lib/Utils/decode-wa-message.d.ts +14 -2
  123. package/lib/Utils/decode-wa-message.d.ts.map +1 -1
  124. package/lib/Utils/decode-wa-message.js +99 -14
  125. package/lib/Utils/decode-wa-message.js.map +1 -1
  126. package/lib/Utils/event-buffer.d.ts +0 -1
  127. package/lib/Utils/event-buffer.d.ts.map +1 -1
  128. package/lib/Utils/event-buffer.js +63 -18
  129. package/lib/Utils/event-buffer.js.map +1 -1
  130. package/lib/Utils/generics.d.ts +5 -7
  131. package/lib/Utils/generics.d.ts.map +1 -1
  132. package/lib/Utils/generics.js +58 -50
  133. package/lib/Utils/generics.js.map +1 -1
  134. package/lib/Utils/history.d.ts +8 -9
  135. package/lib/Utils/history.d.ts.map +1 -1
  136. package/lib/Utils/history.js +8 -3
  137. package/lib/Utils/history.js.map +1 -1
  138. package/lib/Utils/index.d.ts +2 -0
  139. package/lib/Utils/index.d.ts.map +1 -1
  140. package/lib/Utils/index.js +2 -0
  141. package/lib/Utils/index.js.map +1 -1
  142. package/lib/Utils/link-preview.d.ts +1 -2
  143. package/lib/Utils/link-preview.d.ts.map +1 -1
  144. package/lib/Utils/link-preview.js +1 -1
  145. package/lib/Utils/link-preview.js.map +1 -1
  146. package/lib/Utils/message-retry-manager.d.ts +82 -0
  147. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  148. package/lib/Utils/message-retry-manager.js +149 -0
  149. package/lib/Utils/message-retry-manager.js.map +1 -0
  150. package/lib/Utils/messages-media.d.ts +14 -12
  151. package/lib/Utils/messages-media.d.ts.map +1 -1
  152. package/lib/Utils/messages-media.js +47 -23
  153. package/lib/Utils/messages-media.js.map +1 -1
  154. package/lib/Utils/messages.d.ts +4 -4
  155. package/lib/Utils/messages.d.ts.map +1 -1
  156. package/lib/Utils/messages.js +55 -21
  157. package/lib/Utils/messages.js.map +1 -1
  158. package/lib/Utils/noise-handler.js +2 -1
  159. package/lib/Utils/noise-handler.js.map +1 -1
  160. package/lib/Utils/pre-key-manager.d.ts +28 -0
  161. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  162. package/lib/Utils/pre-key-manager.js +106 -0
  163. package/lib/Utils/pre-key-manager.js.map +1 -0
  164. package/lib/Utils/process-message.d.ts +8 -8
  165. package/lib/Utils/process-message.d.ts.map +1 -1
  166. package/lib/Utils/process-message.js +68 -23
  167. package/lib/Utils/process-message.js.map +1 -1
  168. package/lib/Utils/signal.d.ts +4 -4
  169. package/lib/Utils/signal.d.ts.map +1 -1
  170. package/lib/Utils/signal.js +21 -12
  171. package/lib/Utils/signal.js.map +1 -1
  172. package/lib/Utils/validate-connection.d.ts.map +1 -1
  173. package/lib/Utils/validate-connection.js +50 -14
  174. package/lib/Utils/validate-connection.js.map +1 -1
  175. package/lib/WABinary/decode.d.ts.map +1 -1
  176. package/lib/WABinary/decode.js +12 -2
  177. package/lib/WABinary/decode.js.map +1 -1
  178. package/lib/WABinary/generic-utils.js +1 -1
  179. package/lib/WABinary/generic-utils.js.map +1 -1
  180. package/lib/WABinary/jid-utils.d.ts +18 -6
  181. package/lib/WABinary/jid-utils.d.ts.map +1 -1
  182. package/lib/WABinary/jid-utils.js +52 -8
  183. package/lib/WABinary/jid-utils.js.map +1 -1
  184. package/lib/WAM/constants.d.ts +1 -1
  185. package/lib/WAM/constants.d.ts.map +1 -1
  186. package/lib/WAM/constants.js +18516 -10904
  187. package/lib/WAM/constants.js.map +1 -1
  188. package/lib/WAM/encode.d.ts.map +1 -1
  189. package/lib/WAM/encode.js +0 -1
  190. package/lib/WAM/encode.js.map +1 -1
  191. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +2 -1
  192. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -1
  193. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +10 -2
  194. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -1
  195. package/lib/WAUSync/USyncQuery.d.ts +1 -1
  196. package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
  197. package/lib/WAUSync/USyncQuery.js +23 -20
  198. package/lib/WAUSync/USyncQuery.js.map +1 -1
  199. package/package.json +16 -11
  200. package/lib/Defaults/baileys-version.json +0 -3
  201. package/lib/Signal/Group/queue-job.d.ts +0 -2
  202. package/lib/Signal/Group/queue-job.d.ts.map +0 -1
  203. package/lib/Signal/Group/queue-job.js +0 -54
  204. package/lib/Signal/Group/queue-job.js.map +0 -1
  205. package/lib/Socket/usync.d.ts +0 -37
  206. package/lib/Socket/usync.d.ts.map +0 -1
  207. package/lib/Socket/usync.js +0 -63
  208. package/lib/Socket/usync.js.map +0 -1
@@ -1,8 +1,12 @@
1
1
  import NodeCache from '@cacheable/node-cache';
2
+ import { AsyncLocalStorage } from 'async_hooks';
3
+ import { Mutex } from 'async-mutex';
2
4
  import { randomBytes } from 'crypto';
5
+ import PQueue from 'p-queue';
3
6
  import { DEFAULT_CACHE_TTLS } from '../Defaults/index.js';
4
7
  import { Curve, signedKeyPair } from './crypto.js';
5
8
  import { delay, generateRegistrationId } from './generics.js';
9
+ import { PreKeyManager } from './pre-key-manager.js';
6
10
  /**
7
11
  * Adds caching capability to a SignalKeyStore
8
12
  * @param store the store to add caching to
@@ -16,154 +20,216 @@ export function makeCacheableSignalKeyStore(store, logger, _cache) {
16
20
  useClones: false,
17
21
  deleteOnExpire: true
18
22
  });
23
+ // Mutex for protecting cache operations
24
+ const cacheMutex = new Mutex();
19
25
  function getUniqueId(type, id) {
20
26
  return `${type}.${id}`;
21
27
  }
22
28
  return {
23
29
  async get(type, ids) {
24
- const data = {};
25
- const idsToFetch = [];
26
- for (const id of ids) {
27
- const item = cache.get(getUniqueId(type, id));
28
- if (typeof item !== 'undefined') {
29
- data[id] = item;
30
- }
31
- else {
32
- idsToFetch.push(id);
33
- }
34
- }
35
- if (idsToFetch.length) {
36
- logger?.trace({ items: idsToFetch.length }, 'loading from store');
37
- const fetched = await store.get(type, idsToFetch);
38
- for (const id of idsToFetch) {
39
- const item = fetched[id];
40
- if (item) {
30
+ return cacheMutex.runExclusive(async () => {
31
+ const data = {};
32
+ const idsToFetch = [];
33
+ for (const id of ids) {
34
+ const item = (await cache.get(getUniqueId(type, id)));
35
+ if (typeof item !== 'undefined') {
41
36
  data[id] = item;
42
- cache.set(getUniqueId(type, id), item);
37
+ }
38
+ else {
39
+ idsToFetch.push(id);
43
40
  }
44
41
  }
45
- }
46
- return data;
42
+ if (idsToFetch.length) {
43
+ logger?.trace({ items: idsToFetch.length }, 'loading from store');
44
+ const fetched = await store.get(type, idsToFetch);
45
+ for (const id of idsToFetch) {
46
+ const item = fetched[id];
47
+ if (item) {
48
+ data[id] = item;
49
+ cache.set(getUniqueId(type, id), item);
50
+ }
51
+ }
52
+ }
53
+ return data;
54
+ });
47
55
  },
48
56
  async set(data) {
49
- let keys = 0;
50
- for (const type in data) {
51
- for (const id in data[type]) {
52
- cache.set(getUniqueId(type, id), data[type][id]);
53
- keys += 1;
57
+ return cacheMutex.runExclusive(async () => {
58
+ let keys = 0;
59
+ for (const type in data) {
60
+ for (const id in data[type]) {
61
+ await cache.set(getUniqueId(type, id), data[type][id]);
62
+ keys += 1;
63
+ }
54
64
  }
55
- }
56
- logger?.trace({ keys }, 'updated cache');
57
- await store.set(data);
65
+ logger?.trace({ keys }, 'updated cache');
66
+ await store.set(data);
67
+ });
58
68
  },
59
69
  async clear() {
60
- cache.flushAll();
70
+ await cache.flushAll();
61
71
  await store.clear?.();
62
72
  }
63
73
  };
64
74
  }
65
75
  /**
66
- * Adds DB like transaction capability (https://en.wikipedia.org/wiki/Database_transaction) to the SignalKeyStore,
67
- * this allows batch read & write operations & improves the performance of the lib
76
+ * Adds DB-like transaction capability to the SignalKeyStore
77
+ * Uses AsyncLocalStorage for automatic context management
68
78
  * @param state the key store to apply this capability to
69
79
  * @param logger logger to log events
70
80
  * @returns SignalKeyStore with transaction capability
71
81
  */
72
82
  export const addTransactionCapability = (state, logger, { maxCommitRetries, delayBetweenTriesMs }) => {
73
- // number of queries made to the DB during the transaction
74
- // only there for logging purposes
75
- let dbQueriesInTransaction = 0;
76
- let transactionCache = {};
77
- let mutations = {};
78
- let transactionsInProgress = 0;
79
- return {
80
- get: async (type, ids) => {
81
- if (isInTransaction()) {
82
- const dict = transactionCache[type];
83
- const idsRequiringFetch = dict ? ids.filter(item => typeof dict[item] === 'undefined') : ids;
84
- // only fetch if there are any items to fetch
85
- if (idsRequiringFetch.length) {
86
- dbQueriesInTransaction += 1;
87
- const result = await state.get(type, idsRequiringFetch);
88
- transactionCache[type] || (transactionCache[type] = {});
89
- Object.assign(transactionCache[type], result);
83
+ const txStorage = new AsyncLocalStorage();
84
+ // Queues for concurrency control
85
+ const keyQueues = new Map();
86
+ const txMutexes = new Map();
87
+ // Pre-key manager for specialized operations
88
+ const preKeyManager = new PreKeyManager(state, logger);
89
+ /**
90
+ * Get or create a queue for a specific key type
91
+ */
92
+ function getQueue(key) {
93
+ if (!keyQueues.has(key)) {
94
+ keyQueues.set(key, new PQueue({ concurrency: 1 }));
95
+ }
96
+ return keyQueues.get(key);
97
+ }
98
+ /**
99
+ * Get or create a transaction mutex
100
+ */
101
+ function getTxMutex(key) {
102
+ if (!txMutexes.has(key)) {
103
+ txMutexes.set(key, new Mutex());
104
+ }
105
+ return txMutexes.get(key);
106
+ }
107
+ /**
108
+ * Check if currently in a transaction
109
+ */
110
+ function isInTransaction() {
111
+ return !!txStorage.getStore();
112
+ }
113
+ /**
114
+ * Commit transaction with retries
115
+ */
116
+ async function commitWithRetry(mutations) {
117
+ if (Object.keys(mutations).length === 0) {
118
+ logger.trace('no mutations in transaction');
119
+ return;
120
+ }
121
+ logger.trace('committing transaction');
122
+ for (let attempt = 0; attempt < maxCommitRetries; attempt++) {
123
+ try {
124
+ await state.set(mutations);
125
+ logger.trace({ mutationCount: Object.keys(mutations).length }, 'committed transaction');
126
+ return;
127
+ }
128
+ catch (error) {
129
+ const retriesLeft = maxCommitRetries - attempt - 1;
130
+ logger.warn(`failed to commit mutations, retries left=${retriesLeft}`);
131
+ if (retriesLeft === 0) {
132
+ throw error;
90
133
  }
91
- return ids.reduce((dict, id) => {
92
- const value = transactionCache[type]?.[id];
93
- if (value) {
94
- dict[id] = value;
95
- }
96
- return dict;
97
- }, {});
134
+ await delay(delayBetweenTriesMs);
98
135
  }
99
- else {
136
+ }
137
+ }
138
+ return {
139
+ get: async (type, ids) => {
140
+ const ctx = txStorage.getStore();
141
+ if (!ctx) {
142
+ // No transaction - direct read without exclusive lock for concurrency
100
143
  return state.get(type, ids);
101
144
  }
145
+ // In transaction - check cache first
146
+ const cached = ctx.cache[type] || {};
147
+ const missing = ids.filter(id => !(id in cached));
148
+ if (missing.length > 0) {
149
+ ctx.dbQueries++;
150
+ logger.trace({ type, count: missing.length }, 'fetching missing keys in transaction');
151
+ const fetched = await getTxMutex(type).runExclusive(() => state.get(type, missing));
152
+ // Update cache
153
+ ctx.cache[type] = ctx.cache[type] || {};
154
+ Object.assign(ctx.cache[type], fetched);
155
+ }
156
+ // Return requested ids from cache
157
+ const result = {};
158
+ for (const id of ids) {
159
+ const value = ctx.cache[type]?.[id];
160
+ if (value !== undefined && value !== null) {
161
+ result[id] = value;
162
+ }
163
+ }
164
+ return result;
102
165
  },
103
- set: data => {
104
- if (isInTransaction()) {
105
- logger.trace({ types: Object.keys(data) }, 'caching in transaction');
106
- for (const key_ in data) {
107
- const key = key_;
108
- transactionCache[key] = transactionCache[key] || {};
109
- Object.assign(transactionCache[key], data[key]);
110
- mutations[key] = mutations[key] || {};
111
- Object.assign(mutations[key], data[key]);
166
+ set: async (data) => {
167
+ const ctx = txStorage.getStore();
168
+ if (!ctx) {
169
+ // No transaction - direct write with queue protection
170
+ const types = Object.keys(data);
171
+ // Process pre-keys with validation
172
+ for (const type_ of types) {
173
+ const type = type_;
174
+ if (type === 'pre-key') {
175
+ await preKeyManager.validateDeletions(data, type);
176
+ }
112
177
  }
178
+ // Write all data in parallel
179
+ await Promise.all(types.map(type => getQueue(type).add(async () => {
180
+ const typeData = { [type]: data[type] };
181
+ await state.set(typeData);
182
+ })));
183
+ return;
113
184
  }
114
- else {
115
- return state.set(data);
185
+ // In transaction - update cache and mutations
186
+ logger.trace({ types: Object.keys(data) }, 'caching in transaction');
187
+ for (const key_ in data) {
188
+ const key = key_;
189
+ // Ensure structures exist
190
+ ctx.cache[key] = ctx.cache[key] || {};
191
+ ctx.mutations[key] = ctx.mutations[key] || {};
192
+ // Special handling for pre-keys
193
+ if (key === 'pre-key') {
194
+ await preKeyManager.processOperations(data, key, ctx.cache, ctx.mutations, true);
195
+ }
196
+ else {
197
+ // Normal key types
198
+ Object.assign(ctx.cache[key], data[key]);
199
+ Object.assign(ctx.mutations[key], data[key]);
200
+ }
116
201
  }
117
202
  },
118
203
  isInTransaction,
119
- async transaction(work) {
120
- let result;
121
- transactionsInProgress += 1;
122
- if (transactionsInProgress === 1) {
123
- logger.trace('entering transaction');
204
+ transaction: async (work, key) => {
205
+ const existing = txStorage.getStore();
206
+ // Nested transaction - reuse existing context
207
+ if (existing) {
208
+ logger.trace('reusing existing transaction context');
209
+ return work();
124
210
  }
125
- try {
126
- result = await work();
127
- // commit if this is the outermost transaction
128
- if (transactionsInProgress === 1) {
129
- if (Object.keys(mutations).length) {
130
- logger.trace('committing transaction');
131
- // retry mechanism to ensure we've some recovery
132
- // in case a transaction fails in the first attempt
133
- let tries = maxCommitRetries;
134
- while (tries) {
135
- tries -= 1;
136
- //eslint-disable-next-line max-depth
137
- try {
138
- await state.set(mutations);
139
- logger.trace({ dbQueriesInTransaction }, 'committed transaction');
140
- break;
141
- }
142
- catch (error) {
143
- logger.warn(`failed to commit ${Object.keys(mutations).length} mutations, tries left=${tries}`);
144
- await delay(delayBetweenTriesMs);
145
- }
146
- }
147
- }
148
- else {
149
- logger.trace('no mutations in transaction');
150
- }
211
+ // New transaction - acquire mutex and create context
212
+ return getTxMutex(key).runExclusive(async () => {
213
+ const ctx = {
214
+ cache: {},
215
+ mutations: {},
216
+ dbQueries: 0
217
+ };
218
+ logger.trace('entering transaction');
219
+ try {
220
+ const result = await txStorage.run(ctx, work);
221
+ // Commit mutations
222
+ await commitWithRetry(ctx.mutations);
223
+ logger.trace({ dbQueries: ctx.dbQueries }, 'transaction completed');
224
+ return result;
151
225
  }
152
- }
153
- finally {
154
- transactionsInProgress -= 1;
155
- if (transactionsInProgress === 0) {
156
- transactionCache = {};
157
- mutations = {};
158
- dbQueriesInTransaction = 0;
226
+ catch (error) {
227
+ logger.error({ error }, 'transaction failed, rolling back');
228
+ throw error;
159
229
  }
160
- }
161
- return result;
230
+ });
162
231
  }
163
232
  };
164
- function isInTransaction() {
165
- return transactionsInProgress > 0;
166
- }
167
233
  };
168
234
  export const initAuthCreds = () => {
169
235
  const identityKey = Curve.generateKeyPair();
@@ -184,7 +250,8 @@ export const initAuthCreds = () => {
184
250
  registered: false,
185
251
  pairingCode: undefined,
186
252
  lastPropHash: undefined,
187
- routingInfo: undefined
253
+ routingInfo: undefined,
254
+ additionalData: undefined
188
255
  };
189
256
  };
190
257
  //# sourceMappingURL=auth-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-utils.js","sourceRoot":"","sources":["../../src/Utils/auth-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-utils.js","sourceRoot":"","sources":["../../src/Utils/auth-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { BrowsersMap } from '../Types/index.js';
2
+ export declare const Browsers: BrowsersMap;
3
+ export declare const getPlatformId: (browser: string) => string;
4
+ //# sourceMappingURL=browser-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-utils.d.ts","sourceRoot":"","sources":["../../src/Utils/browser-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAgB3C,eAAO,MAAM,QAAQ,EAAE,WAOtB,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,WAG5C,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { platform, release } from 'os';
2
+ import { proto } from '../../WAProto/index.js';
3
+ const PLATFORM_MAP = {
4
+ aix: 'AIX',
5
+ darwin: 'Mac OS',
6
+ win32: 'Windows',
7
+ android: 'Android',
8
+ freebsd: 'FreeBSD',
9
+ openbsd: 'OpenBSD',
10
+ sunos: 'Solaris',
11
+ linux: undefined,
12
+ haiku: undefined,
13
+ cygwin: undefined,
14
+ netbsd: undefined
15
+ };
16
+ export const Browsers = {
17
+ ubuntu: browser => ['Ubuntu', browser, '22.04.4'],
18
+ macOS: browser => ['Mac OS', browser, '14.4.1'],
19
+ baileys: browser => ['Baileys', browser, '6.5.0'],
20
+ windows: browser => ['Windows', browser, '10.0.22631'],
21
+ /** The appropriate browser based on your OS & release */
22
+ appropriate: browser => [PLATFORM_MAP[platform()] || 'Ubuntu', browser, release()]
23
+ };
24
+ export const getPlatformId = (browser) => {
25
+ const platformType = proto.DeviceProps.PlatformType[browser.toUpperCase()];
26
+ return platformType ? platformType.toString() : '1'; //chrome
27
+ };
28
+ //# sourceMappingURL=browser-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-utils.js","sourceRoot":"","sources":["../../src/Utils/browser-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAG9C,MAAM,YAAY,GAAG;IACpB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;CACjB,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACpC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;IACjD,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC;IACtD,yDAAyD;IACzD,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;CAClF,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;IAChD,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAS,CAAC,CAAA;IACjF,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA,CAAC,QAAQ;AAC7D,CAAC,CAAA"}
@@ -1,4 +1,3 @@
1
- import type { AxiosRequestConfig } from 'axios';
2
1
  import { proto } from '../../WAProto/index.js';
3
2
  import type { BaileysEventEmitter, ChatModification, ChatMutation, Contact, InitialAppStateSyncOptions, LTHashState, WAPatchCreate, WAPatchName } from '../Types/index.js';
4
3
  import { type BinaryNode } from '../WABinary/index.js';
@@ -13,7 +12,7 @@ export declare const encodeSyncdPatch: ({ type, index, syncAction, apiVersion, o
13
12
  state: LTHashState;
14
13
  }>;
15
14
  export declare const decodeSyncdMutations: (msgMutations: (proto.ISyncdMutation | proto.ISyncdRecord)[], initialState: LTHashState, getAppStateSyncKey: FetchAppStateSyncKey, onMutation: (mutation: ChatMutation) => void, validateMacs: boolean) => Promise<{
16
- hash: Buffer<ArrayBufferLike>;
15
+ hash: Buffer<ArrayBuffer>;
17
16
  indexValueMap: {
18
17
  [indexMacBase64: string]: {
19
18
  valueMac: Uint8Array | Buffer;
@@ -21,14 +20,14 @@ export declare const decodeSyncdMutations: (msgMutations: (proto.ISyncdMutation
21
20
  };
22
21
  }>;
23
22
  export declare const decodeSyncdPatch: (msg: proto.ISyncdPatch, name: WAPatchName, initialState: LTHashState, getAppStateSyncKey: FetchAppStateSyncKey, onMutation: (mutation: ChatMutation) => void, validateMacs: boolean) => Promise<{
24
- hash: Buffer<ArrayBufferLike>;
23
+ hash: Buffer<ArrayBuffer>;
25
24
  indexValueMap: {
26
25
  [indexMacBase64: string]: {
27
26
  valueMac: Uint8Array | Buffer;
28
27
  };
29
28
  };
30
29
  }>;
31
- export declare const extractSyncdPatches: (result: BinaryNode, options: AxiosRequestConfig<{}>) => Promise<{
30
+ export declare const extractSyncdPatches: (result: BinaryNode, options: RequestInit) => Promise<{
32
31
  critical_unblock_low: {
33
32
  patches: proto.ISyncdPatch[];
34
33
  hasMorePatches: boolean;
@@ -55,13 +54,13 @@ export declare const extractSyncdPatches: (result: BinaryNode, options: AxiosReq
55
54
  snapshot?: proto.ISyncdSnapshot;
56
55
  };
57
56
  }>;
58
- export declare const downloadExternalBlob: (blob: proto.IExternalBlobReference, options: AxiosRequestConfig<{}>) => Promise<Buffer<ArrayBuffer>>;
59
- export declare const downloadExternalPatch: (blob: proto.IExternalBlobReference, options: AxiosRequestConfig<{}>) => Promise<proto.SyncdMutations>;
57
+ export declare const downloadExternalBlob: (blob: proto.IExternalBlobReference, options: RequestInit) => Promise<Buffer<ArrayBuffer>>;
58
+ export declare const downloadExternalPatch: (blob: proto.IExternalBlobReference, options: RequestInit) => Promise<proto.SyncdMutations>;
60
59
  export declare const decodeSyncdSnapshot: (name: WAPatchName, snapshot: proto.ISyncdSnapshot, getAppStateSyncKey: FetchAppStateSyncKey, minimumVersionNumber: number | undefined, validateMacs?: boolean) => Promise<{
61
60
  state: LTHashState;
62
61
  mutationMap: ChatMutationMap;
63
62
  }>;
64
- export declare const decodePatches: (name: WAPatchName, syncds: proto.ISyncdPatch[], initial: LTHashState, getAppStateSyncKey: FetchAppStateSyncKey, options: AxiosRequestConfig<{}>, minimumVersionNumber?: number, logger?: ILogger, validateMacs?: boolean) => Promise<{
63
+ export declare const decodePatches: (name: WAPatchName, syncds: proto.ISyncdPatch[], initial: LTHashState, getAppStateSyncKey: FetchAppStateSyncKey, options: RequestInit, minimumVersionNumber?: number, logger?: ILogger, validateMacs?: boolean) => Promise<{
65
64
  state: LTHashState;
66
65
  mutationMap: ChatMutationMap;
67
66
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-utils.d.ts","sourceRoot":"","sources":["../../src/Utils/chat-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-utils.d.ts","sourceRoot":"","sources":["../../src/Utils/chat-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,EACX,mBAAmB,EAEnB,gBAAgB,EAChB,YAAY,EAEZ,OAAO,EACP,0BAA0B,EAE1B,WAAW,EACX,aAAa,EACb,WAAW,EACX,MAAM,UAAU,CAAA;AAMjB,OAAO,EAAE,KAAK,UAAU,EAA4E,MAAM,aAAa,CAAA;AAGvH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAIvC,KAAK,oBAAoB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;AAE7G,MAAM,MAAM,eAAe,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAA;CAAE,CAAA;AA4G/D,eAAO,MAAM,cAAc,QAAO,WAA2E,CAAA;AAE7G,eAAO,MAAM,gBAAgB,GAC5B,oDAAoD,aAAa,EACjE,iBAAiB,MAAM,EACvB,OAAO,WAAW,EAClB,oBAAoB,oBAAoB;;;EA2DxC,CAAA;AAED,eAAO,MAAM,oBAAoB,GAChC,cAAc,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,EAC3D,cAAc,WAAW,EACzB,oBAAoB,oBAAoB,EACxC,YAAY,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,EAC5C,cAAc,OAAO;;;;;;;EA0DrB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC5B,KAAK,KAAK,CAAC,WAAW,EACtB,MAAM,WAAW,EACjB,cAAc,WAAW,EACzB,oBAAoB,oBAAoB,EACxC,YAAY,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,EAC5C,cAAc,OAAO;;;;;;;EA0BrB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAU,QAAQ,UAAU,EAAE,SAAS,WAAW;;iBAKjD,KAAK,CAAC,WAAW,EAAE;wBAAkB,OAAO;mBAAa,KAAK,CAAC,cAAc;;;iBAA7E,KAAK,CAAC,WAAW,EAAE;wBAAkB,OAAO;mBAAa,KAAK,CAAC,cAAc;;;iBAA7E,KAAK,CAAC,WAAW,EAAE;wBAAkB,OAAO;mBAAa,KAAK,CAAC,cAAc;;;iBAA7E,KAAK,CAAC,WAAW,EAAE;wBAAkB,OAAO;mBAAa,KAAK,CAAC,cAAc;;;iBAA7E,KAAK,CAAC,WAAW,EAAE;wBAAkB,OAAO;mBAAa,KAAK,CAAC,cAAc;;EA6C7G,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAU,MAAM,KAAK,CAAC,sBAAsB,EAAE,SAAS,WAAW,iCAQlG,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAU,MAAM,KAAK,CAAC,sBAAsB,EAAE,SAAS,WAAW,kCAInG,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC/B,MAAM,WAAW,EACjB,UAAU,KAAK,CAAC,cAAc,EAC9B,oBAAoB,oBAAoB,EACxC,sBAAsB,MAAM,GAAG,SAAS,EACxC,sBAAmB;;;EAyCnB,CAAA;AAED,eAAO,MAAM,aAAa,GACzB,MAAM,WAAW,EACjB,QAAQ,KAAK,CAAC,WAAW,EAAE,EAC3B,SAAS,WAAW,EACpB,oBAAoB,oBAAoB,EACxC,SAAS,WAAW,EACpB,uBAAuB,MAAM,EAC7B,SAAS,OAAO,EAChB,sBAAmB;;;EA2DnB,CAAA;AAED,eAAO,MAAM,0BAA0B,GAAI,KAAK,gBAAgB,EAAE,KAAK,MAAM,kBAyQ5E,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC7B,YAAY,YAAY,EACxB,IAAI,mBAAmB,EACvB,IAAI,OAAO,EACX,kBAAkB,0BAA0B,EAC5C,SAAS,OAAO,SA4KhB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { Boom } from '@hapi/boom';
2
2
  import { proto } from '../../WAProto/index.js';
3
3
  import { LabelAssociationType } from '../Types/LabelAssociation.js';
4
- import { getBinaryNodeChild, getBinaryNodeChildren, isJidGroup, isJidUser, jidNormalizedUser } from '../WABinary/index.js';
4
+ import { getBinaryNodeChild, getBinaryNodeChildren, isJidGroup, jidNormalizedUser } from '../WABinary/index.js';
5
5
  import { aesDecrypt, aesEncrypt, hkdf, hmacSign } from './crypto.js';
6
6
  import { toNumber } from './generics.js';
7
7
  import { LT_HASH_ANTI_TAMPERING } from './lt-hash.js';
@@ -499,6 +499,23 @@ export const chatModificationToAppPatch = (mod, jid) => {
499
499
  operation: OP.SET
500
500
  };
501
501
  }
502
+ else if ('quickReply' in mod) {
503
+ patch = {
504
+ syncAction: {
505
+ quickReplyAction: {
506
+ count: 0,
507
+ deleted: mod.quickReply.deleted || false,
508
+ keywords: [],
509
+ message: mod.quickReply.message || '',
510
+ shortcut: mod.quickReply.shortcut || ''
511
+ }
512
+ },
513
+ index: ['quick_reply', mod.quickReply.timestamp || String(Math.floor(Date.now() / 1000))],
514
+ type: 'regular',
515
+ apiVersion: 2,
516
+ operation: OP.SET
517
+ };
518
+ }
502
519
  else if ('addLabel' in mod) {
503
520
  patch = {
504
521
  syncAction: {
@@ -653,7 +670,7 @@ export const processSyncAction = (syncAction, ev, me, initialSyncOpts, logger) =
653
670
  id: id,
654
671
  name: action.contactAction.fullName,
655
672
  lid: action.contactAction.lidJid || undefined,
656
- jid: isJidUser(id) ? id : undefined
673
+ phoneNumber: action.contactAction.pnJid || undefined
657
674
  }
658
675
  ]);
659
676
  }