@badzz88/baileys 8.4.7 → 8.5.0

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 (144) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1055 -337
  3. package/WAProto/index.js +5 -5
  4. package/lib/Defaults/index.js +187 -127
  5. package/lib/Defaults/phonenumber-mcc.json +223 -0
  6. package/lib/Signal/Group/ciphertext-message.js +14 -11
  7. package/lib/Signal/Group/group-session-builder.js +91 -29
  8. package/lib/Signal/Group/group_cipher.js +88 -81
  9. package/lib/Signal/Group/index.js +136 -12
  10. package/lib/Signal/Group/keyhelper.js +70 -15
  11. package/lib/Signal/Group/sender-chain-key.js +31 -25
  12. package/lib/Signal/Group/sender-key-distribution-message.js +65 -62
  13. package/lib/Signal/Group/sender-key-message.js +68 -65
  14. package/lib/Signal/Group/sender-key-name.js +43 -41
  15. package/lib/Signal/Group/sender-key-record.js +43 -40
  16. package/lib/Signal/Group/sender-key-state.js +96 -83
  17. package/lib/Signal/Group/sender-message-key.js +29 -25
  18. package/lib/Signal/libsignal.js +483 -424
  19. package/lib/Signal/lid-mapping.js +261 -276
  20. package/lib/Socket/Client/index.js +30 -3
  21. package/lib/Socket/Client/types.js +12 -10
  22. package/lib/Socket/Client/websocket.js +61 -53
  23. package/lib/Socket/aigroups.js +240 -0
  24. package/lib/Socket/business.js +422 -379
  25. package/lib/Socket/chats.js +1816 -1193
  26. package/lib/Socket/communities.js +549 -431
  27. package/lib/Socket/graphql.js +656 -0
  28. package/lib/Socket/groups.js +764 -374
  29. package/lib/Socket/index.js +38 -11
  30. package/lib/Socket/interactive-handler.js +522 -0
  31. package/lib/Socket/interop.js +549 -0
  32. package/lib/Socket/luxu.js +6 -5
  33. package/lib/Socket/managed-account.js +183 -0
  34. package/lib/Socket/messages-recv.js +2439 -1915
  35. package/lib/Socket/messages-send.js +1642 -1242
  36. package/lib/Socket/mex.js +59 -40
  37. package/lib/Socket/newsletter.js +812 -249
  38. package/lib/Socket/privacy.js +449 -0
  39. package/lib/Socket/registration.js +427 -0
  40. package/lib/Socket/socket.js +1077 -965
  41. package/lib/Socket/text-router.js +83 -0
  42. package/lib/Socket/username.js +237 -140
  43. package/lib/Store/index.js +36 -10
  44. package/lib/Store/make-cache-manager-store.js +85 -80
  45. package/lib/Store/make-in-memory-store.js +591 -185
  46. package/lib/Store/make-ordered-dictionary.js +78 -72
  47. package/lib/Store/object-repository.js +25 -28
  48. package/lib/Types/Auth.js +38 -2
  49. package/lib/Types/Bussines.js +2 -2
  50. package/lib/Types/Call.js +2 -2
  51. package/lib/Types/Chat.js +4 -8
  52. package/lib/Types/Contact.js +2 -2
  53. package/lib/Types/Events.js +2 -2
  54. package/lib/Types/GroupMetadata.js +2 -2
  55. package/lib/Types/Label.js +26 -24
  56. package/lib/Types/LabelAssociation.js +8 -6
  57. package/lib/Types/Message.js +95 -11
  58. package/lib/Types/Mex.js +112 -37
  59. package/lib/Types/Newsletter.js +121 -0
  60. package/lib/Types/Product.js +2 -2
  61. package/lib/Types/Signal.js +2 -2
  62. package/lib/Types/Socket.js +2 -3
  63. package/lib/Types/State.js +70 -56
  64. package/lib/Types/USync.js +2 -2
  65. package/lib/Types/index.js +55 -26
  66. package/lib/Utils/auth-utils.js +292 -288
  67. package/lib/Utils/browser-utils.js +113 -48
  68. package/lib/Utils/business.js +240 -224
  69. package/lib/Utils/chat-utils.js +1205 -869
  70. package/lib/Utils/command-loader.d.ts +31 -0
  71. package/lib/Utils/command-loader.js +100 -0
  72. package/lib/Utils/companion-reg-client-utils.js +41 -34
  73. package/lib/Utils/consumer-application.js +107 -0
  74. package/lib/Utils/crypto.js +144 -107
  75. package/lib/Utils/curve25519-js.js +275 -0
  76. package/lib/Utils/decode-wa-message.js +518 -308
  77. package/lib/Utils/event-buffer.js +596 -611
  78. package/lib/Utils/generics.js +514 -354
  79. package/lib/Utils/group-history.js +60 -0
  80. package/lib/Utils/history.js +244 -134
  81. package/lib/Utils/identity-change-handler.js +51 -49
  82. package/lib/Utils/index.js +57 -23
  83. package/lib/Utils/jid-display-normalization.js +218 -0
  84. package/lib/Utils/link-preview.js +135 -77
  85. package/lib/Utils/logger.js +9 -3
  86. package/lib/Utils/lt-hash.js +37 -6
  87. package/lib/Utils/make-mutex.js +36 -33
  88. package/lib/Utils/message-composer.js +439 -233
  89. package/lib/Utils/message-retry-manager.js +265 -260
  90. package/lib/Utils/messages-media.js +855 -747
  91. package/lib/Utils/messages.js +2528 -884
  92. package/lib/Utils/meta-ai-msmsg.js +262 -0
  93. package/lib/Utils/native-bridge.js +82 -0
  94. package/lib/Utils/noise-handler.js +195 -200
  95. package/lib/Utils/offline-node-processor.js +35 -33
  96. package/lib/Utils/pre-key-manager.js +103 -102
  97. package/lib/Utils/process-message.js +978 -560
  98. package/lib/Utils/reporting-utils.js +257 -253
  99. package/lib/Utils/session-pool.d.ts +16 -0
  100. package/lib/Utils/session-pool.js +94 -0
  101. package/lib/Utils/signal.js +218 -195
  102. package/lib/Utils/stanza-ack.js +31 -29
  103. package/lib/Utils/sticker.d.ts +17 -0
  104. package/lib/Utils/sticker.js +145 -0
  105. package/lib/Utils/sync-action-utils.js +50 -45
  106. package/lib/Utils/tc-token-utils.js +137 -139
  107. package/lib/Utils/use-multi-file-auth-state.js +109 -109
  108. package/lib/Utils/validate-connection.js +218 -202
  109. package/lib/Utils/view-once-cache.d.ts +9 -0
  110. package/lib/Utils/view-once-cache.js +79 -0
  111. package/lib/Utils/voip-rekey.js +22 -0
  112. package/lib/WABinary/constants.js +1302 -1299
  113. package/lib/WABinary/decode.js +343 -262
  114. package/lib/WABinary/encode.js +12 -4
  115. package/lib/WABinary/generic-utils.js +223 -187
  116. package/lib/WABinary/index.js +33 -6
  117. package/lib/WABinary/jid-utils.js +351 -88
  118. package/lib/WABinary/types.js +2 -2
  119. package/lib/WAM/BinaryInfo.js +12 -9
  120. package/lib/WAM/constants.js +39486 -22853
  121. package/lib/WAM/encode.js +132 -140
  122. package/lib/WAM/index.js +31 -4
  123. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +55 -0
  124. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +43 -0
  125. package/lib/WAUSync/Protocols/USyncContactProtocol.js +53 -51
  126. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +56 -53
  127. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +29 -26
  128. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +59 -0
  129. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +31 -0
  130. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +32 -0
  131. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +29 -0
  132. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +38 -37
  133. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +38 -0
  134. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +26 -24
  135. package/lib/WAUSync/Protocols/index.js +39 -6
  136. package/lib/WAUSync/USyncQuery.js +132 -97
  137. package/lib/WAUSync/USyncUser.js +49 -30
  138. package/lib/WAUSync/index.js +31 -4
  139. package/lib/antiban.js +4637 -0
  140. package/lib/index.js +48 -15
  141. package/package.json +55 -92
  142. package/lib/WAUSync/Protocols/USyncNewsletterProtocol.js +0 -263
  143. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +0 -51
  144. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +0 -29
@@ -1,106 +1,107 @@
1
- import PQueue from 'p-queue';
1
+ 'use strict'
2
+ var __importDefault =
3
+ (this && this.__importDefault) ||
4
+ function (mod) {
5
+ return mod && mod.__esModule ? mod : { default: mod }
6
+ }
7
+ Object.defineProperty(exports, '__esModule', { value: true })
8
+ exports.PreKeyManager = void 0
9
+ const p_queue_1 = __importDefault(require('p-queue'))
2
10
  /**
3
11
  * Manages pre-key operations with proper concurrency control
4
12
  */
5
- export class PreKeyManager {
6
- constructor(store, logger) {
7
- this.store = store;
8
- this.logger = logger;
9
- this.queues = new Map();
10
- }
11
- /**
12
- * Get or create a queue for a specific key type
13
- */
14
- getQueue(keyType) {
15
- if (!this.queues.has(keyType)) {
16
- this.queues.set(keyType, new PQueue({ concurrency: 1 }));
17
- }
18
- return this.queues.get(keyType);
19
- }
20
- /**
21
- * Process pre-key operations (updates and deletions)
22
- */
23
- async processOperations(data, keyType, transactionCache, mutations, isInTransaction) {
24
- const keyData = data[keyType];
25
- if (!keyData)
26
- return;
27
- return this.getQueue(keyType).add(async () => {
28
- // Ensure structures exist
29
- transactionCache[keyType] = transactionCache[keyType] || {};
30
- mutations[keyType] = mutations[keyType] || {};
31
- // Separate deletions from updates
32
- const deletions = [];
33
- const updates = {};
34
- for (const keyId in keyData) {
35
- if (keyData[keyId] === null) {
36
- deletions.push(keyId);
37
- }
38
- else {
39
- updates[keyId] = keyData[keyId];
40
- }
41
- }
42
- // Process updates (no validation needed)
43
- if (Object.keys(updates).length > 0) {
44
- Object.assign(transactionCache[keyType], updates);
45
- Object.assign(mutations[keyType], updates);
46
- }
47
- // Process deletions with validation
48
- if (deletions.length > 0) {
49
- await this.processDeletions(keyType, deletions, transactionCache, mutations, isInTransaction);
50
- }
51
- });
52
- }
53
- /**
54
- * Process deletions with validation
55
- */
56
- async processDeletions(keyType, ids, transactionCache, mutations, isInTransaction) {
57
- if (isInTransaction) {
58
- // In transaction, only allow deletion if key exists in cache
59
- for (const keyId of ids) {
60
- if (transactionCache[keyType]?.[keyId]) {
61
- transactionCache[keyType][keyId] = null;
62
- mutations[keyType][keyId] = null;
63
- }
64
- else {
65
- this.logger.warn(`Skipping deletion of non-existent ${keyType} in transaction: ${keyId}`);
66
- }
67
- }
68
- }
69
- else {
70
- // Outside transaction, validate against store
71
- const existingKeys = await this.store.get(keyType, ids);
72
- for (const keyId of ids) {
73
- if (existingKeys[keyId]) {
74
- transactionCache[keyType][keyId] = null;
75
- mutations[keyType][keyId] = null;
76
- }
77
- else {
78
- this.logger.warn(`Skipping deletion of non-existent ${keyType}: ${keyId}`);
79
- }
80
- }
81
- }
82
- }
83
- /**
84
- * Validate and process pre-key deletions outside transactions
85
- */
86
- async validateDeletions(data, keyType) {
87
- const keyData = data[keyType];
88
- if (!keyData)
89
- return;
90
- return this.getQueue(keyType).add(async () => {
91
- // Find all deletion requests
92
- const deletionIds = Object.keys(keyData).filter(id => keyData[id] === null);
93
- if (deletionIds.length === 0)
94
- return;
95
- // Validate deletions
96
- const existingKeys = await this.store.get(keyType, deletionIds);
97
- for (const keyId of deletionIds) {
98
- if (!existingKeys[keyId]) {
99
- this.logger.warn(`Skipping deletion of non-existent ${keyType}: ${keyId}`);
100
- delete data[keyType][keyId];
101
- }
102
- }
103
- });
104
- }
13
+ class PreKeyManager {
14
+ constructor(store, logger) {
15
+ this.store = store
16
+ this.logger = logger
17
+ this.queues = new Map()
18
+ }
19
+ /**
20
+ * Get or create a queue for a specific key type
21
+ */
22
+ getQueue(keyType) {
23
+ if (!this.queues.has(keyType)) {
24
+ this.queues.set(keyType, new p_queue_1.default({ concurrency: 1 }))
25
+ }
26
+ return this.queues.get(keyType)
27
+ }
28
+ /**
29
+ * Process pre-key operations (updates and deletions)
30
+ */
31
+ async processOperations(data, keyType, transactionCache, mutations, isInTransaction) {
32
+ const keyData = data[keyType]
33
+ if (!keyData) return
34
+ return this.getQueue(keyType).add(async () => {
35
+ // Ensure structures exist
36
+ transactionCache[keyType] = transactionCache[keyType] || {}
37
+ mutations[keyType] = mutations[keyType] || {}
38
+ // Separate deletions from updates
39
+ const deletions = []
40
+ const updates = {}
41
+ for (const keyId in keyData) {
42
+ if (keyData[keyId] === null) {
43
+ deletions.push(keyId)
44
+ } else {
45
+ updates[keyId] = keyData[keyId]
46
+ }
47
+ }
48
+ // Process updates (no validation needed)
49
+ if (Object.keys(updates).length > 0) {
50
+ Object.assign(transactionCache[keyType], updates)
51
+ Object.assign(mutations[keyType], updates)
52
+ }
53
+ // Process deletions with validation
54
+ if (deletions.length > 0) {
55
+ await this.processDeletions(keyType, deletions, transactionCache, mutations, isInTransaction)
56
+ }
57
+ })
58
+ }
59
+ /**
60
+ * Process deletions with validation
61
+ */
62
+ async processDeletions(keyType, ids, transactionCache, mutations, isInTransaction) {
63
+ if (isInTransaction) {
64
+ // In transaction, only allow deletion if key exists in cache
65
+ for (const keyId of ids) {
66
+ if (transactionCache[keyType]?.[keyId]) {
67
+ transactionCache[keyType][keyId] = null
68
+ mutations[keyType][keyId] = null
69
+ } else {
70
+ this.logger.warn(`Skipping deletion of non-existent ${keyType} in transaction: ${keyId}`)
71
+ }
72
+ }
73
+ } else {
74
+ // Outside transaction, validate against store
75
+ const existingKeys = await this.store.get(keyType, ids)
76
+ for (const keyId of ids) {
77
+ if (existingKeys[keyId]) {
78
+ transactionCache[keyType][keyId] = null
79
+ mutations[keyType][keyId] = null
80
+ } else {
81
+ this.logger.warn(`Skipping deletion of non-existent ${keyType}: ${keyId}`)
82
+ }
83
+ }
84
+ }
85
+ }
86
+ /**
87
+ * Validate and process pre-key deletions outside transactions
88
+ */
89
+ async validateDeletions(data, keyType) {
90
+ const keyData = data[keyType]
91
+ if (!keyData) return
92
+ return this.getQueue(keyType).add(async () => {
93
+ // Find all deletion requests
94
+ const deletionIds = Object.keys(keyData).filter(id => keyData[id] === null)
95
+ if (deletionIds.length === 0) return
96
+ // Validate deletions
97
+ const existingKeys = await this.store.get(keyType, deletionIds)
98
+ for (const keyId of deletionIds) {
99
+ if (!existingKeys[keyId]) {
100
+ this.logger.warn(`Skipping deletion of non-existent ${keyType}: ${keyId}`)
101
+ delete data[keyType][keyId]
102
+ }
103
+ }
104
+ })
105
+ }
105
106
  }
106
- //# sourceMappingURL=pre-key-manager.js.map
107
+ exports.PreKeyManager = PreKeyManager