@builderbot/provider-baileys 1.2.10-y.2 → 1.3.2-alpha.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.
package/dist/bailey.d.ts CHANGED
@@ -4,6 +4,7 @@ import type { PathOrFileDescriptor } from 'fs';
4
4
  import NodeCache from 'node-cache';
5
5
  import type polka from 'polka';
6
6
  import type { IStickerOptions } from 'wa-sticker-formatter';
7
+
7
8
  import { BaileysEventMap, WAMessage, WASocket, proto } from './baileyWrapper';
8
9
  import type { BaileyGlobalVendorArgs } from './type';
9
10
  declare class BaileysProvider extends ProviderClass<WASocket> {
@@ -17,6 +18,7 @@ declare class BaileysProvider extends ProviderClass<WASocket> {
17
18
  private logStream;
18
19
  private idsDuplicates;
19
20
  private mapSet;
21
+ private readonly PROBLEMATIC_USERS;
20
22
  constructor(args: Partial<BaileyGlobalVendorArgs>);
21
23
  /**
22
24
  * Setup cleanup handlers
@@ -43,7 +45,19 @@ declare class BaileysProvider extends ProviderClass<WASocket> {
43
45
  /**
44
46
  * Iniciar todo Bailey
45
47
  */
46
- protected initVendor: () => Promise<any>;
48
+ protected initVendor: () => Promise<import("@leifermendez/baileys").BaileysEventEmitter & {
49
+ process(handler: (events: Partial<import("@leifermendez/baileys").BaileysEventMap>) => void | Promise<void>): () => void;
50
+ buffer(): void;
51
+ createBufferedFunction<A extends any[], T>(work: (...args: A) => Promise<T>): (...args: A) => Promise<T>;
52
+ flush(): boolean;
53
+ isBuffering(): boolean;
54
+ }>;
55
+ /**
56
+ * Manejo específico de errores Bad MAC para usuarios problemáticos
57
+ * @param messageCtx Contexto del mensaje con error
58
+ * @returns true si se manejó el usuario problemático, false si no
59
+ */
60
+ private handleBadMACForProblematicUser;
47
61
  /**
48
62
  * Map native events that the Provider class expects
49
63
  * to have a standard set of events
@@ -58,7 +72,7 @@ declare class BaileysProvider extends ProviderClass<WASocket> {
58
72
  * @param {string} orderToken
59
73
  * @example await getOrderDetails('order-id', 'order-token')
60
74
  */
61
- getOrderDetails: (orderId: string, orderToken: string) => Promise<import("baileys").OrderDetails>;
75
+ getOrderDetails: (orderId: string, orderToken: string) => Promise<import("@leifermendez/baileys").OrderDetails>;
62
76
  /**
63
77
  * @param {string} number
64
78
  * @param {string} message
@@ -1 +1 @@
1
- {"version":3,"file":"bailey.d.ts","sourceRoot":"","sources":["../src/bailey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bailey.d.ts","sourceRoot":"","sources":["../src/bailey.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { useMultiFileAuthState, DisconnectReason, proto, makeCacheableSignalKeyStore, getAggregateVotesInPollMessage, WASocket, BaileysEventMap, AnyMediaMessageContent, AnyMessageContent, PollMessageOptions, downloadMediaMessage, WAMessage, MessageUpsertType, isJidGroup, isJidBroadcast } from 'baileys';
2
- declare const makeWASocketOther: any;
1
+ import { useMultiFileAuthState, DisconnectReason, proto, makeCacheableSignalKeyStore, getAggregateVotesInPollMessage, WASocket, BaileysEventMap, AnyMediaMessageContent, AnyMessageContent, PollMessageOptions, downloadMediaMessage, WAMessage, MessageUpsertType, isJidGroup, isJidBroadcast, makeWASocket as makeWASocketOther } from '@leifermendez/baileys';
3
2
  export { makeWASocketOther, useMultiFileAuthState, DisconnectReason, proto, makeCacheableSignalKeyStore, getAggregateVotesInPollMessage, WASocket, BaileysEventMap, AnyMediaMessageContent, AnyMessageContent, PollMessageOptions, downloadMediaMessage, WAMessage, MessageUpsertType, isJidGroup, isJidBroadcast, };
4
3
  //# sourceMappingURL=baileyWrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"baileyWrapper.d.ts","sourceRoot":"","sources":["../src/baileyWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,QAAQ,EACR,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,cAAc,EACjB,MAAM,SAAS,CAAA;AAEhB,QAAA,MAAM,iBAAiB,KAA6B,CAAA;AAEpD,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,QAAQ,EACR,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,cAAc,GACjB,CAAA"}
1
+ {"version":3,"file":"baileyWrapper.d.ts","sourceRoot":"","sources":["../src/baileyWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,QAAQ,EACR,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,YAAY,IAAI,iBAAiB,EACpC,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACH,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,QAAQ,EACR,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,cAAc,GACjB,CAAA"}
package/dist/index.cjs CHANGED
@@ -22,7 +22,7 @@ var require$$1$4 = require('tty');
22
22
  var require$$0$9 = require('crypto');
23
23
  var require$$0$b = require('sharp');
24
24
  var require$$0$a = require('fluent-ffmpeg');
25
- var baileys = require('baileys');
25
+ var baileys = require('@leifermendez/baileys');
26
26
 
27
27
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
28
28
 
@@ -30901,8 +30901,6 @@ function requireDist () {
30901
30901
 
30902
30902
  var distExports = requireDist();
30903
30903
 
30904
- const makeWASocketOther = require('baileys').default;
30905
-
30906
30904
  const keepFiles = ['creds.json', 'baileys_store.json', 'app-state-sync', 'session'];
30907
30905
  /**
30908
30906
  * @alpha
@@ -30961,6 +30959,8 @@ class BaileysProvider extends bot.ProviderClass {
30961
30959
  this.reconnectDelay = 1000; // 1 segundo inicial
30962
30960
  this.idsDuplicates = [];
30963
30961
  this.mapSet = new Set();
30962
+ // ✅ Configuración escalable para usuarios problemáticos
30963
+ this.PROBLEMATIC_USERS = new Set(['@lid']);
30964
30964
  this.indexHome = (req, res) => {
30965
30965
  try {
30966
30966
  const botName = req[this.idBotName];
@@ -31010,7 +31010,7 @@ class BaileysProvider extends bot.ProviderClass {
31010
31010
  this.initVendor().then((v) => this.listenOnEvents(v));
31011
31011
  }
31012
31012
  try {
31013
- const sock = makeWASocketOther({
31013
+ const sock = baileys.makeWASocket({
31014
31014
  logger: loggerBaileys,
31015
31015
  version: [2, 3000, 1023223821],
31016
31016
  printQRInTerminal: false,
@@ -31183,8 +31183,11 @@ class BaileysProvider extends bot.ProviderClass {
31183
31183
  messageCtx.messageStubParameters[0].includes('No session'))
31184
31184
  continue;
31185
31185
  if (messageCtx?.messageStubParameters?.length &&
31186
- messageCtx.messageStubParameters[0].includes('Bad MAC'))
31186
+ messageCtx.messageStubParameters[0].includes('Bad MAC')) {
31187
+ // Manejo específico para usuarios problemáticos
31188
+ this.handleBadMACForProblematicUser(messageCtx);
31187
31189
  continue;
31190
+ }
31188
31191
  if (messageCtx?.messageStubParameters?.length &&
31189
31192
  messageCtx.messageStubParameters[0].includes('Invalid')) {
31190
31193
  if (this.globalVendorArgs.fallBackAction) {
@@ -31736,6 +31739,38 @@ class BaileysProvider extends bot.ProviderClass {
31736
31739
  .get('/', this.indexHome);
31737
31740
  }
31738
31741
  afterHttpServerInit() { }
31742
+ /**
31743
+ * Manejo específico de errores Bad MAC para usuarios problemáticos
31744
+ * @param messageCtx Contexto del mensaje con error
31745
+ * @returns true si se manejó el usuario problemático, false si no
31746
+ */
31747
+ handleBadMACForProblematicUser(messageCtx) {
31748
+ const userId = messageCtx?.key?.remoteJid;
31749
+ if (!userId)
31750
+ return false;
31751
+ // Verificación rápida y eficiente
31752
+ const isProblematic = Array.from(this.PROBLEMATIC_USERS).some(user => userId.includes(user));
31753
+ if (isProblematic) {
31754
+ this.logger.log(`🔧 [${new Date().toISOString()}] Bad MAC en usuario problemático: ${userId}`);
31755
+ // Cleanup eficiente y no-bloqueante
31756
+ setImmediate(() => {
31757
+ try {
31758
+ const cleanId = userId.split('@')[0];
31759
+ // Limpiar cache de dispositivos del usuario
31760
+ this.userDevicesCache?.del(cleanId);
31761
+ this.userDevicesCache?.del(userId);
31762
+ // Limpiar cache de reintentos de mensajes
31763
+ const msgKey = `${userId}_${messageCtx.key?.id}`;
31764
+ this.msgRetryCounterCache?.del(msgKey);
31765
+ }
31766
+ catch (error) {
31767
+ this.logger.log(`❌ Error en cleanup para usuario problemático ${userId}:`, error.message);
31768
+ }
31769
+ });
31770
+ return true;
31771
+ }
31772
+ return false;
31773
+ }
31739
31774
  shouldReconnect(statusCode) {
31740
31775
  // Lista de códigos donde SÍ debemos reconectar
31741
31776
  const reconnectableCodes = [