@fer2809fl/baileys 7.0.2 → 7.0.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 (267) hide show
  1. package/README.md +409 -32
  2. package/lib/Defaults/index.js +2 -1
  3. package/lib/Modded/message_builder.js +2356 -0
  4. package/lib/Signal/libsignal.js +19 -0
  5. package/lib/Socket/business.d.ts +213 -532
  6. package/lib/Socket/business.js +359 -401
  7. package/lib/Socket/chats.d.ts +30 -2
  8. package/lib/Socket/chats.js +295 -40
  9. package/lib/Socket/groups.d.ts +16 -0
  10. package/lib/Socket/groups.js +101 -18
  11. package/lib/Socket/index.d.ts +17 -0
  12. package/lib/Socket/messages-recv.js +18 -1
  13. package/lib/Socket/messages-send.d.ts +18 -0
  14. package/lib/Socket/messages-send.js +50 -2
  15. package/lib/Socket/newsletter.js +3 -3
  16. package/lib/Socket/socket.js +50 -6
  17. package/lib/Types/Newsletter.d.ts +13 -4
  18. package/lib/Types/Newsletter.js +12 -2
  19. package/lib/Utils/anti-ban.d.ts +41 -0
  20. package/lib/Utils/anti-ban.js +182 -0
  21. package/lib/Utils/banner.d.ts +8 -0
  22. package/lib/Utils/banner.js +76 -0
  23. package/lib/Utils/bot-utils.d.ts +57 -0
  24. package/lib/Utils/bot-utils.js +241 -0
  25. package/lib/Utils/chat-utils.d.ts +34 -4
  26. package/lib/Utils/chat-utils.js +80 -20
  27. package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
  28. package/lib/Utils/companion-reg-client-utils.js +35 -0
  29. package/lib/Utils/enhanced-cache.d.ts +40 -0
  30. package/lib/Utils/enhanced-cache.js +242 -0
  31. package/lib/Utils/enhanced-logger.d.ts +41 -0
  32. package/lib/Utils/enhanced-logger.js +185 -0
  33. package/lib/Utils/event-buffer.js +49 -1
  34. package/lib/Utils/index.d.ts +14 -0
  35. package/lib/Utils/index.js +14 -0
  36. package/lib/Utils/lid-utils.d.ts +139 -0
  37. package/lib/Utils/lid-utils.js +503 -0
  38. package/lib/Utils/message-queue.d.ts +47 -0
  39. package/lib/Utils/message-queue.js +226 -0
  40. package/lib/Utils/message-retry-manager.js +40 -0
  41. package/lib/Utils/rich-message-utils.d.ts +21 -0
  42. package/lib/Utils/rich-message-utils.js +229 -0
  43. package/lib/Utils/rich-messages.d.ts +52 -0
  44. package/lib/Utils/rich-messages.js +185 -0
  45. package/lib/Utils/scheduled-messages.d.ts +122 -0
  46. package/lib/Utils/scheduled-messages.js +289 -0
  47. package/lib/Utils/smart-reconnect.d.ts +48 -0
  48. package/lib/Utils/smart-reconnect.js +207 -0
  49. package/lib/Utils/use-sqlite-auth-state.d.ts +11 -0
  50. package/lib/Utils/use-sqlite-auth-state.js +95 -0
  51. package/lib/VoIP/audio-feeder.d.ts +15 -0
  52. package/lib/VoIP/audio-feeder.js +132 -0
  53. package/lib/VoIP/index.js +277 -0
  54. package/lib/VoIP/relay-transport.d.ts +43 -0
  55. package/lib/VoIP/relay-transport.js +559 -0
  56. package/lib/VoIP/signaling.js +594 -0
  57. package/lib/VoIP/types.d.ts +69 -0
  58. package/lib/VoIP/types.js +17 -0
  59. package/lib/VoIP/wasm-engine.d.ts +103 -0
  60. package/lib/VoIP/wasm-engine.js +1214 -0
  61. package/lib/VoIP/worker-bootstrap.js +1042 -0
  62. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  63. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  64. package/lib/WAUSync/Protocols/index.js +1 -0
  65. package/lib/WAUSync/USyncQuery.js +5 -1
  66. package/lib/assets/wasm/loader.js +5 -0
  67. package/lib/assets/wasm/whatsapp.wasm +0 -0
  68. package/lib/assets/wasm/worker-modules.js +273 -0
  69. package/lib/index.d.ts +41 -0
  70. package/lib/index.js +3 -0
  71. package/package.json +15 -7
  72. package/lib/Defaults/index.d.ts.map +0 -1
  73. package/lib/Defaults/index.js.map +0 -1
  74. package/lib/Signal/Group/ciphertext-message.d.ts.map +0 -1
  75. package/lib/Signal/Group/ciphertext-message.js.map +0 -1
  76. package/lib/Signal/Group/group-session-builder.d.ts.map +0 -1
  77. package/lib/Signal/Group/group-session-builder.js.map +0 -1
  78. package/lib/Signal/Group/group_cipher.d.ts.map +0 -1
  79. package/lib/Signal/Group/group_cipher.js.map +0 -1
  80. package/lib/Signal/Group/index.d.ts.map +0 -1
  81. package/lib/Signal/Group/index.js.map +0 -1
  82. package/lib/Signal/Group/keyhelper.d.ts.map +0 -1
  83. package/lib/Signal/Group/keyhelper.js.map +0 -1
  84. package/lib/Signal/Group/sender-chain-key.d.ts.map +0 -1
  85. package/lib/Signal/Group/sender-chain-key.js.map +0 -1
  86. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +0 -1
  87. package/lib/Signal/Group/sender-key-distribution-message.js.map +0 -1
  88. package/lib/Signal/Group/sender-key-message.d.ts.map +0 -1
  89. package/lib/Signal/Group/sender-key-message.js.map +0 -1
  90. package/lib/Signal/Group/sender-key-name.d.ts.map +0 -1
  91. package/lib/Signal/Group/sender-key-name.js.map +0 -1
  92. package/lib/Signal/Group/sender-key-record.d.ts.map +0 -1
  93. package/lib/Signal/Group/sender-key-record.js.map +0 -1
  94. package/lib/Signal/Group/sender-key-state.d.ts.map +0 -1
  95. package/lib/Signal/Group/sender-key-state.js.map +0 -1
  96. package/lib/Signal/Group/sender-message-key.d.ts.map +0 -1
  97. package/lib/Signal/Group/sender-message-key.js.map +0 -1
  98. package/lib/Signal/libsignal.d.ts.map +0 -1
  99. package/lib/Signal/libsignal.js.map +0 -1
  100. package/lib/Signal/lid-mapping.d.ts.map +0 -1
  101. package/lib/Signal/lid-mapping.js.map +0 -1
  102. package/lib/Socket/Client/index.d.ts.map +0 -1
  103. package/lib/Socket/Client/index.js.map +0 -1
  104. package/lib/Socket/Client/types.d.ts.map +0 -1
  105. package/lib/Socket/Client/types.js.map +0 -1
  106. package/lib/Socket/Client/websocket.d.ts.map +0 -1
  107. package/lib/Socket/Client/websocket.js.map +0 -1
  108. package/lib/Socket/business.d.ts.map +0 -1
  109. package/lib/Socket/business.js.map +0 -1
  110. package/lib/Socket/chats.d.ts.map +0 -1
  111. package/lib/Socket/chats.js.map +0 -1
  112. package/lib/Socket/communities.d.ts.map +0 -1
  113. package/lib/Socket/communities.js.map +0 -1
  114. package/lib/Socket/dugong.d.ts.map +0 -1
  115. package/lib/Socket/dugong.js.map +0 -1
  116. package/lib/Socket/groups.d.ts.map +0 -1
  117. package/lib/Socket/groups.js.map +0 -1
  118. package/lib/Socket/index.d.ts.map +0 -1
  119. package/lib/Socket/index.js.map +0 -1
  120. package/lib/Socket/messages-recv.d.ts.map +0 -1
  121. package/lib/Socket/messages-recv.js.map +0 -1
  122. package/lib/Socket/messages-send.d.ts.map +0 -1
  123. package/lib/Socket/messages-send.js.map +0 -1
  124. package/lib/Socket/mex.d.ts.map +0 -1
  125. package/lib/Socket/mex.js.map +0 -1
  126. package/lib/Socket/newsletter.d.ts.map +0 -1
  127. package/lib/Socket/newsletter.js.map +0 -1
  128. package/lib/Socket/socket.d.ts.map +0 -1
  129. package/lib/Socket/socket.js.map +0 -1
  130. package/lib/Types/Auth.d.ts.map +0 -1
  131. package/lib/Types/Auth.js.map +0 -1
  132. package/lib/Types/Bussines.d.ts.map +0 -1
  133. package/lib/Types/Bussines.js.map +0 -1
  134. package/lib/Types/Call.d.ts.map +0 -1
  135. package/lib/Types/Call.js.map +0 -1
  136. package/lib/Types/Chat.d.ts.map +0 -1
  137. package/lib/Types/Chat.js.map +0 -1
  138. package/lib/Types/Contact.d.ts.map +0 -1
  139. package/lib/Types/Contact.js.map +0 -1
  140. package/lib/Types/Events.d.ts.map +0 -1
  141. package/lib/Types/Events.js.map +0 -1
  142. package/lib/Types/GroupMetadata.d.ts.map +0 -1
  143. package/lib/Types/GroupMetadata.js.map +0 -1
  144. package/lib/Types/Label.d.ts.map +0 -1
  145. package/lib/Types/Label.js.map +0 -1
  146. package/lib/Types/LabelAssociation.d.ts.map +0 -1
  147. package/lib/Types/LabelAssociation.js.map +0 -1
  148. package/lib/Types/Message.d.ts.map +0 -1
  149. package/lib/Types/Message.js.map +0 -1
  150. package/lib/Types/Newsletter.d.ts.map +0 -1
  151. package/lib/Types/Newsletter.js.map +0 -1
  152. package/lib/Types/Product.d.ts.map +0 -1
  153. package/lib/Types/Product.js.map +0 -1
  154. package/lib/Types/Signal.d.ts.map +0 -1
  155. package/lib/Types/Signal.js.map +0 -1
  156. package/lib/Types/Socket.d.ts.map +0 -1
  157. package/lib/Types/Socket.js.map +0 -1
  158. package/lib/Types/State.d.ts.map +0 -1
  159. package/lib/Types/State.js.map +0 -1
  160. package/lib/Types/USync.d.ts.map +0 -1
  161. package/lib/Types/USync.js.map +0 -1
  162. package/lib/Types/index.d.ts.map +0 -1
  163. package/lib/Types/index.js.map +0 -1
  164. package/lib/Utils/auth-utils.d.ts.map +0 -1
  165. package/lib/Utils/auth-utils.js.map +0 -1
  166. package/lib/Utils/browser-utils.d.ts.map +0 -1
  167. package/lib/Utils/browser-utils.js.map +0 -1
  168. package/lib/Utils/business.d.ts.map +0 -1
  169. package/lib/Utils/business.js.map +0 -1
  170. package/lib/Utils/chat-utils.d.ts.map +0 -1
  171. package/lib/Utils/chat-utils.js.map +0 -1
  172. package/lib/Utils/crypto.d.ts.map +0 -1
  173. package/lib/Utils/crypto.js.map +0 -1
  174. package/lib/Utils/decode-wa-message.d.ts.map +0 -1
  175. package/lib/Utils/decode-wa-message.js.map +0 -1
  176. package/lib/Utils/event-buffer.d.ts.map +0 -1
  177. package/lib/Utils/event-buffer.js.map +0 -1
  178. package/lib/Utils/generics.d.ts.map +0 -1
  179. package/lib/Utils/generics.js.map +0 -1
  180. package/lib/Utils/history.d.ts.map +0 -1
  181. package/lib/Utils/history.js.map +0 -1
  182. package/lib/Utils/identity-change-handler.d.ts.map +0 -1
  183. package/lib/Utils/identity-change-handler.js.map +0 -1
  184. package/lib/Utils/index.d.ts.map +0 -1
  185. package/lib/Utils/index.js.map +0 -1
  186. package/lib/Utils/link-preview.d.ts.map +0 -1
  187. package/lib/Utils/link-preview.js.map +0 -1
  188. package/lib/Utils/logger.d.ts.map +0 -1
  189. package/lib/Utils/logger.js.map +0 -1
  190. package/lib/Utils/lt-hash.d.ts.map +0 -1
  191. package/lib/Utils/lt-hash.js.map +0 -1
  192. package/lib/Utils/make-mutex.d.ts.map +0 -1
  193. package/lib/Utils/make-mutex.js.map +0 -1
  194. package/lib/Utils/message-retry-manager.d.ts.map +0 -1
  195. package/lib/Utils/message-retry-manager.js.map +0 -1
  196. package/lib/Utils/messages-media.d.ts.map +0 -1
  197. package/lib/Utils/messages-media.js.map +0 -1
  198. package/lib/Utils/messages.d.ts.map +0 -1
  199. package/lib/Utils/messages.js.map +0 -1
  200. package/lib/Utils/noise-handler.d.ts.map +0 -1
  201. package/lib/Utils/noise-handler.js.map +0 -1
  202. package/lib/Utils/offline-node-processor.d.ts.map +0 -1
  203. package/lib/Utils/offline-node-processor.js.map +0 -1
  204. package/lib/Utils/pre-key-manager.d.ts.map +0 -1
  205. package/lib/Utils/pre-key-manager.js.map +0 -1
  206. package/lib/Utils/process-message.d.ts.map +0 -1
  207. package/lib/Utils/process-message.js.map +0 -1
  208. package/lib/Utils/reporting-utils.d.ts.map +0 -1
  209. package/lib/Utils/reporting-utils.js.map +0 -1
  210. package/lib/Utils/rich-messages.d.ts.map +0 -1
  211. package/lib/Utils/rich-messages.js.map +0 -1
  212. package/lib/Utils/signal.d.ts.map +0 -1
  213. package/lib/Utils/signal.js.map +0 -1
  214. package/lib/Utils/stanza-ack.d.ts.map +0 -1
  215. package/lib/Utils/stanza-ack.js.map +0 -1
  216. package/lib/Utils/sync-action-utils.d.ts.map +0 -1
  217. package/lib/Utils/sync-action-utils.js.map +0 -1
  218. package/lib/Utils/tc-token-utils.d.ts.map +0 -1
  219. package/lib/Utils/tc-token-utils.js.map +0 -1
  220. package/lib/Utils/use-multi-file-auth-state.d.ts.map +0 -1
  221. package/lib/Utils/use-multi-file-auth-state.js.map +0 -1
  222. package/lib/Utils/validate-connection.d.ts.map +0 -1
  223. package/lib/Utils/validate-connection.js.map +0 -1
  224. package/lib/WABinary/constants.d.ts.map +0 -1
  225. package/lib/WABinary/constants.js.map +0 -1
  226. package/lib/WABinary/decode.d.ts.map +0 -1
  227. package/lib/WABinary/decode.js.map +0 -1
  228. package/lib/WABinary/encode.d.ts.map +0 -1
  229. package/lib/WABinary/encode.js.map +0 -1
  230. package/lib/WABinary/generic-utils.d.ts.map +0 -1
  231. package/lib/WABinary/generic-utils.js.map +0 -1
  232. package/lib/WABinary/index.d.ts.map +0 -1
  233. package/lib/WABinary/index.js.map +0 -1
  234. package/lib/WABinary/jid-utils.d.ts.map +0 -1
  235. package/lib/WABinary/jid-utils.js.map +0 -1
  236. package/lib/WABinary/types.d.ts.map +0 -1
  237. package/lib/WABinary/types.js.map +0 -1
  238. package/lib/WAM/BinaryInfo.d.ts.map +0 -1
  239. package/lib/WAM/BinaryInfo.js.map +0 -1
  240. package/lib/WAM/constants.d.ts.map +0 -1
  241. package/lib/WAM/constants.js.map +0 -1
  242. package/lib/WAM/encode.d.ts.map +0 -1
  243. package/lib/WAM/encode.js.map +0 -1
  244. package/lib/WAM/index.d.ts.map +0 -1
  245. package/lib/WAM/index.js.map +0 -1
  246. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +0 -1
  247. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +0 -1
  248. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +0 -1
  249. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +0 -1
  250. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +0 -1
  251. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +0 -1
  252. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +0 -1
  253. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +0 -1
  254. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +0 -1
  255. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +0 -1
  256. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +0 -1
  257. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +0 -1
  258. package/lib/WAUSync/Protocols/index.d.ts.map +0 -1
  259. package/lib/WAUSync/Protocols/index.js.map +0 -1
  260. package/lib/WAUSync/USyncQuery.d.ts.map +0 -1
  261. package/lib/WAUSync/USyncQuery.js.map +0 -1
  262. package/lib/WAUSync/USyncUser.d.ts.map +0 -1
  263. package/lib/WAUSync/USyncUser.js.map +0 -1
  264. package/lib/WAUSync/index.d.ts.map +0 -1
  265. package/lib/WAUSync/index.js.map +0 -1
  266. package/lib/index.d.ts.map +0 -1
  267. package/lib/index.js.map +0 -1
@@ -0,0 +1,185 @@
1
+ const LOG_LEVELS = {
2
+ fatal: 60,
3
+ error: 50,
4
+ warn: 40,
5
+ info: 30,
6
+ debug: 20,
7
+ trace: 10,
8
+ silent: Infinity
9
+ };
10
+
11
+ const COLORS = {
12
+ reset: '\x1b[0m',
13
+ bold: '\x1b[1m',
14
+ dim: '\x1b[2m',
15
+ fatal: '\x1b[35m\x1b[1m',
16
+ error: '\x1b[31m',
17
+ warn: '\x1b[33m',
18
+ info: '\x1b[36m',
19
+ debug: '\x1b[34m',
20
+ trace: '\x1b[90m',
21
+ socket: '\x1b[32m',
22
+ message: '\x1b[33m',
23
+ media: '\x1b[35m',
24
+ group: '\x1b[36m',
25
+ auth: '\x1b[31m',
26
+ cache: '\x1b[34m'
27
+ };
28
+
29
+ const CATEGORY_ICONS = {
30
+ socket: '[SOCKET]',
31
+ message: '[MSG]',
32
+ media: '[MEDIA]',
33
+ group: '[GROUP]',
34
+ auth: '[AUTH]',
35
+ cache: '[CACHE]',
36
+ queue: '[QUEUE]',
37
+ error: '[ERROR]',
38
+ warn: '[WARN]',
39
+ info: '[INFO]',
40
+ debug: '[DEBUG]',
41
+ success: '[OK]'
42
+ };
43
+
44
+ function formatTime(date = new Date()) {
45
+ return date.toLocaleTimeString('es-ES', { hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false });
46
+ }
47
+
48
+ function formatConsoleMessage(level, category, message, data) {
49
+ const time = formatTime();
50
+ const levelColor = COLORS[level] || COLORS.info;
51
+ const categoryColor = COLORS[category] || COLORS.reset;
52
+ const icon = CATEGORY_ICONS[category] || CATEGORY_ICONS[level] || '';
53
+ let formatted = `${COLORS.dim}[${time}]${COLORS.reset} `;
54
+ formatted += `${levelColor}${level.toUpperCase().padEnd(5)}${COLORS.reset} `;
55
+ if (category) formatted += `${categoryColor}${icon} ${category}${COLORS.reset} `;
56
+ formatted += message;
57
+ if (data && Object.keys(data).length > 0) {
58
+ const dataStr = JSON.stringify(data, null, 0);
59
+ if (dataStr.length < 100) formatted += ` ${COLORS.dim}${dataStr}${COLORS.reset}`;
60
+ }
61
+ return formatted;
62
+ }
63
+
64
+ class RyzeLogger {
65
+ constructor(options = {}) {
66
+ this.options = {
67
+ level: options.level || 'info',
68
+ prettyPrint: options.prettyPrint !== false,
69
+ category: options.category || 'baileys',
70
+ colors: options.colors !== false,
71
+ timestamps: options.timestamps !== false,
72
+ ...options
73
+ };
74
+ this.category = this.options.category;
75
+ this.filters = new Set(options.filters || []);
76
+ this.history = [];
77
+ this.maxHistory = options.maxHistory || 1000;
78
+ }
79
+
80
+ _log(level, messageOrData, data = {}) {
81
+ let message = '';
82
+ let logData = data;
83
+ if (typeof messageOrData === 'string') {
84
+ message = messageOrData;
85
+ } else if (typeof messageOrData === 'object') {
86
+ logData = messageOrData;
87
+ message = messageOrData.msg || '';
88
+ }
89
+ if (this.filters.size > 0) {
90
+ const shouldFilter = [...this.filters].some(f => message.includes(f) || JSON.stringify(logData).includes(f));
91
+ if (shouldFilter) return;
92
+ }
93
+ this._addToHistory(level, message, logData);
94
+ if (this.options.prettyPrint) console.log(formatConsoleMessage(level, this.category, message, logData));
95
+ }
96
+
97
+ _addToHistory(level, message, data) {
98
+ this.history.push({ timestamp: new Date().toISOString(), level, category: this.category, message, data });
99
+ if (this.history.length > this.maxHistory) this.history.shift();
100
+ }
101
+
102
+ fatal(messageOrData, data) { this._log('fatal', messageOrData, data); }
103
+ error(messageOrData, data) { this._log('error', messageOrData, data); }
104
+ warn(messageOrData, data) { this._log('warn', messageOrData, data); }
105
+ info(messageOrData, data) { this._log('info', messageOrData, data); }
106
+ debug(messageOrData, data) { this._log('debug', messageOrData, data); }
107
+ trace(messageOrData, data) { this._log('trace', messageOrData, data); }
108
+
109
+ success(message, data = {}) {
110
+ const formatted = `${COLORS.reset}${CATEGORY_ICONS.success} ${message}${COLORS.reset}`;
111
+ this._log('info', formatted, data);
112
+ }
113
+
114
+ child(bindings) {
115
+ return new RyzeLogger({ ...this.options, category: bindings.class || bindings.category || this.category });
116
+ }
117
+
118
+ setLevel(level) {
119
+ this.options.level = level;
120
+ }
121
+
122
+ addFilter(pattern) { this.filters.add(pattern); }
123
+ removeFilter(pattern) { this.filters.delete(pattern); }
124
+
125
+ getHistory(options = {}) {
126
+ let history = [...this.history];
127
+ if (options.level) history = history.filter(h => h.level === options.level);
128
+ if (options.category) history = history.filter(h => h.category === options.category);
129
+ if (options.since) {
130
+ const sinceDate = new Date(options.since);
131
+ history = history.filter(h => new Date(h.timestamp) >= sinceDate);
132
+ }
133
+ if (options.limit) history = history.slice(-options.limit);
134
+ return history;
135
+ }
136
+
137
+ clearHistory() { this.history = []; }
138
+
139
+ exportLogs(format = 'json') {
140
+ if (format === 'json') return JSON.stringify(this.history, null, 2);
141
+ return this.history.map(h => `[${h.timestamp}] ${h.level.toUpperCase()} [${h.category}] ${h.message}`).join('\n');
142
+ }
143
+
144
+ time(label) {
145
+ const start = Date.now();
146
+ return { end: (message) => {
147
+ const duration = Date.now() - start;
148
+ this.debug(`${message || label}: ${duration}ms`, { duration, label });
149
+ return duration;
150
+ }};
151
+ }
152
+
153
+ if(condition, level, message, data) {
154
+ if (condition) this[level](message, data);
155
+ }
156
+
157
+ throttle(key, message, data, intervalMs = 5000) {
158
+ if (!this._throttleCache) this._throttleCache = new Map();
159
+ const now = Date.now();
160
+ const lastLog = this._throttleCache.get(key) || 0;
161
+ if (now - lastLog >= intervalMs) {
162
+ this._throttleCache.set(key, now);
163
+ this.info(message, data);
164
+ }
165
+ }
166
+ }
167
+
168
+ function createLogger(options = {}) {
169
+ return new RyzeLogger({
170
+ level: process.env.LOG_LEVEL || 'info',
171
+ prettyPrint: process.env.NODE_ENV !== 'production',
172
+ ...options
173
+ });
174
+ }
175
+
176
+ const defaultLogger = createLogger({ category: 'baileys' });
177
+
178
+ export {
179
+ LOG_LEVELS,
180
+ COLORS,
181
+ CATEGORY_ICONS,
182
+ RyzeLogger,
183
+ createLogger,
184
+ defaultLogger as default
185
+ };
@@ -169,7 +169,27 @@ export const makeEventBuffer = (logger) => {
169
169
  },
170
170
  on: (...args) => ev.on(...args),
171
171
  off: (...args) => ev.off(...args),
172
- removeAllListeners: (...args) => ev.removeAllListeners(...args)
172
+ removeAllListeners: (...args) => ev.removeAllListeners(...args),
173
+ destroy() {
174
+ // Clear buffer timeout
175
+ if (bufferTimeout) {
176
+ clearTimeout(bufferTimeout);
177
+ bufferTimeout = null;
178
+ }
179
+ if (flushPendingTimeout) {
180
+ clearTimeout(flushPendingTimeout);
181
+ flushPendingTimeout = null;
182
+ }
183
+ // Clear history cache
184
+ historyCache.clear();
185
+ // Reset buffer data
186
+ data = makeBufferData();
187
+ isBuffering = false;
188
+ bufferCount = 0;
189
+ // Remove all listeners
190
+ ev.removeAllListeners();
191
+ logger.debug('Event buffer destroyed');
192
+ }
173
193
  };
174
194
  };
175
195
  const makeBufferData = () => {
@@ -235,7 +255,33 @@ eventData, logger) {
235
255
  }
236
256
  data.historySets.empty = false;
237
257
  data.historySets.syncType = eventData.syncType;
258
+ if (eventData.pastParticipants?.length) {
259
+ const merged = new Map();
260
+ const sigOf = (p) => `${p.userJid || ''}:${p.leaveTs || ''}:${p.leaveReason || ''}`;
261
+ const ingest = (entry) => {
262
+ const key = entry.groupJid ?? JSON.stringify(entry);
263
+ const existing = merged.get(key);
264
+ if (!existing) {
265
+ merged.set(key, { ...entry, pastParticipants: [...(entry.pastParticipants || [])] });
266
+ return;
267
+ }
268
+ const seen = new Set((existing.pastParticipants || []).map(sigOf));
269
+ for (const p of entry.pastParticipants || []) {
270
+ const sig = sigOf(p);
271
+ if (!seen.has(sig)) {
272
+ existing.pastParticipants.push(p);
273
+ seen.add(sig);
274
+ }
275
+ }
276
+ };
277
+ for (const entry of data.historySets.pastParticipants || [])
278
+ ingest(entry);
279
+ for (const entry of eventData.pastParticipants)
280
+ ingest(entry);
281
+ data.historySets.pastParticipants = [...merged.values()];
282
+ }
238
283
  data.historySets.progress = eventData.progress;
284
+ data.historySets.chunkOrder = eventData.chunkOrder;
239
285
  data.historySets.peerDataRequestSessionId = eventData.peerDataRequestSessionId;
240
286
  data.historySets.isLatest = eventData.isLatest || data.historySets.isLatest;
241
287
  break;
@@ -500,9 +546,11 @@ function consolidateEvents(data) {
500
546
  chats: Object.values(data.historySets.chats),
501
547
  messages: Object.values(data.historySets.messages),
502
548
  contacts: Object.values(data.historySets.contacts),
549
+ pastParticipants: data.historySets.pastParticipants,
503
550
  syncType: data.historySets.syncType,
504
551
  progress: data.historySets.progress,
505
552
  isLatest: data.historySets.isLatest,
553
+ chunkOrder: data.historySets.chunkOrder,
506
554
  peerDataRequestSessionId: data.historySets.peerDataRequestSessionId
507
555
  };
508
556
  }
@@ -20,4 +20,18 @@ export * from "./identity-change-handler.js";
20
20
  export * from "./stanza-ack.js";
21
21
  export * from "./rich-messages.js";
22
22
  export * from "./sticker-pack.js";
23
+ export * from "./companion-reg-client-utils.js";
24
+ export * from "./reporting-utils.js";
25
+ // -- Añadido en v7.0.5: portado desde el fork beta --
26
+ export * from "./lid-utils.js";
27
+ export * from "./scheduled-messages.js";
28
+ export * from "./anti-ban.js";
29
+ export * from "./smart-reconnect.js";
30
+ export * from "./message-queue.js";
31
+ export * from "./enhanced-cache.js";
32
+ export * from "./enhanced-logger.js";
33
+ export * from "./bot-utils.js";
34
+ export * from "./banner.js";
35
+ export * from "./rich-message-utils.js";
36
+ export * from "./use-sqlite-auth-state.js";
23
37
  //# sourceMappingURL=index.d.ts.map
@@ -18,6 +18,20 @@ export * from './message-retry-manager.js';
18
18
  export * from './browser-utils.js';
19
19
  export * from './identity-change-handler.js';
20
20
  export * from './stanza-ack.js';
21
+ export * from './companion-reg-client-utils.js';
21
22
  export * from './rich-messages.js';
22
23
  export * from './sticker-pack.js';
24
+ export * from './reporting-utils.js';
25
+ // -- Añadido en v7.0.5: portado desde el fork beta --
26
+ export * from './lid-utils.js';
27
+ export * from './scheduled-messages.js';
28
+ export * from './anti-ban.js';
29
+ export * from './smart-reconnect.js';
30
+ export * from './message-queue.js';
31
+ export * from './enhanced-cache.js';
32
+ export * from './enhanced-logger.js';
33
+ export * from './bot-utils.js';
34
+ export * from './banner.js';
35
+ export * from './rich-message-utils.js';
36
+ export * from './use-sqlite-auth-state.js';
23
37
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,139 @@
1
+ import type { WASocket } from '../Socket/index.js';
2
+
3
+ export interface LidParticipant {
4
+ id?: string;
5
+ jid?: string;
6
+ lid?: string;
7
+ phoneNumber?: string;
8
+ admin?: string | null;
9
+ }
10
+
11
+ export interface LidMessage {
12
+ key: {
13
+ participant?: string;
14
+ remoteJid?: string;
15
+ };
16
+ participantPn?: string;
17
+ }
18
+
19
+ /**
20
+ * Cek apakah JID adalah format LID
21
+ */
22
+ export declare const isLid: (jid: string | undefined) => boolean;
23
+
24
+ /**
25
+ * Cek apakah JID adalah hasil konversi LID yang salah
26
+ */
27
+ export declare const isLidConverted: (jid: string | undefined) => boolean;
28
+
29
+ /**
30
+ * Convert LID ke format JID standard @s.whatsapp.net
31
+ */
32
+ export declare const lidToJid: (jid: string) => string;
33
+
34
+ /**
35
+ * Versi lidToJid yang aman, mengembalikan null jika tidak bisa convert
36
+ */
37
+ export declare const lidToJidSafe: (jid: string) => string | null;
38
+
39
+ /**
40
+ * Extract nomor dari JID apapun (termasuk LID)
41
+ */
42
+ export declare const extractNumber: (jid: string) => Promise<string>;
43
+
44
+ /**
45
+ * Resolve LID atau LID-converted JID ke JID asli menggunakan group metadata
46
+ */
47
+ export declare const resolveLidFromParticipants: (
48
+ jid: string,
49
+ participants?: LidParticipant[]
50
+ ) => string;
51
+
52
+ /**
53
+ * Resolve JID yang mungkin LID-converted ke JID asli
54
+ * Menangani cache, group participants, dan deteksi LID yang salah
55
+ */
56
+ export declare const resolveAnyLidToJid: (
57
+ jid: string,
58
+ participants?: LidParticipant[]
59
+ ) => string;
60
+
61
+ /**
62
+ * Convert array of JIDs, replacing any LIDs or LID-converted JIDs
63
+ */
64
+ export declare const convertLidArray: (
65
+ jids: string[],
66
+ participants?: LidParticipant[]
67
+ ) => string[];
68
+
69
+ /**
70
+ * Decode JID dan kembalikan dalam format standard
71
+ */
72
+ export declare const decodeAndNormalize: (jid: string) => string | null;
73
+
74
+ /**
75
+ * Konversi participant JID dari message
76
+ */
77
+ export declare const resolveParticipant: (
78
+ msg: LidMessage,
79
+ sock?: WASocket
80
+ ) => Promise<string | null>;
81
+
82
+ /**
83
+ * Helper untuk mendapatkan JID asli dari participant
84
+ */
85
+ export declare const getParticipantJid: (participant: LidParticipant) => string;
86
+
87
+ /**
88
+ * Convert semua participant IDs ke format yang bisa di-mention
89
+ */
90
+ export declare const getParticipantJids: (participants?: LidParticipant[]) => string[];
91
+
92
+ /**
93
+ * Cari participant berdasarkan nomor telepon
94
+ */
95
+ export declare const findParticipantByNumber: (
96
+ participants: LidParticipant[],
97
+ targetJid: string
98
+ ) => LidParticipant | null;
99
+
100
+ /**
101
+ * Cache LID to JID mapping dari array participant
102
+ */
103
+ export declare const cacheParticipantLids: (participants?: LidParticipant[]) => void;
104
+
105
+ /**
106
+ * Get cached JID for a LID
107
+ */
108
+ export declare const getCachedJid: (lid: string) => string | null;
109
+
110
+ /**
111
+ * Normalize JID ke nomor telepon (tanpa suffix @s.whatsapp.net atau @lid)
112
+ */
113
+ export declare const normalizeToPhoneNumber: (
114
+ jid: string,
115
+ participants?: LidParticipant[]
116
+ ) => string;
117
+
118
+ /**
119
+ * Simpan mapping LID-JID ke cache
120
+ */
121
+ export declare const cacheLidJid: (lid: string, jid: string) => void;
122
+
123
+ /**
124
+ * Resolve JID menggunakan sock.signalRepository o sock.store
125
+ */
126
+ export declare const resolveFromSock: (
127
+ jid: string,
128
+ sock?: WASocket
129
+ ) => Promise<string>;
130
+
131
+ /**
132
+ * Get jumlah item di LID cache
133
+ */
134
+ export declare const getLidCacheSize: () => number;
135
+
136
+ /**
137
+ * Simpan cache ke disk secara manual
138
+ */
139
+ export declare const savePersistentCache: () => void;