@builderbot/bot 1.2.10-y.2 → 1.3.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"coreClass.d.ts","sourceRoot":"","sources":["../../src/core/coreClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coreClass.d.ts","sourceRoot":"","sources":["../../src/core/coreClass.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -831,26 +831,23 @@ class Queue {
831
831
  * @returns
832
832
  */
833
833
  const promiseFunc = (item) => {
834
+ // Modo seguro por defecto: no limpia la cola al crear el timeout y gestiona timers por item
834
835
  const timer = ({ resolve }) => setTimeout(() => {
835
- console.log('no debe aparecer si la otra funcion del race se ejecuta primero 🙉🙉🙉🙉', fingerIdRef);
836
836
  resolve('timeout');
837
837
  }, this.timeout);
838
838
  const timerPromise = new Promise((resolve, reject) => {
839
- if (item.cancelled) {
840
- reject('cancelled');
841
- }
842
- if (!this.timers.has(fingerIdRef)) {
843
- const refIdTimeOut = timer({ resolve });
844
- clearTimeout(this.timers.get(fingerIdRef));
845
- this.timers.set(fingerIdRef, refIdTimeOut);
846
- this.clearAndDone(from, item);
847
- this.clearQueue(from);
848
- return refIdTimeOut;
849
- }
850
- return this.timers.get(fingerIdRef);
839
+ if (item.cancelled)
840
+ return reject('cancelled');
841
+ const existing = this.timers.get(fingerIdRef);
842
+ if (existing && typeof existing !== 'boolean')
843
+ clearTimeout(existing);
844
+ const refIdTimeOut = timer({ resolve });
845
+ this.timers.set(fingerIdRef, refIdTimeOut);
851
846
  });
852
847
  const cancel = () => {
853
- clearTimeout(this.timers.get(fingerIdRef));
848
+ const t = this.timers.get(fingerIdRef);
849
+ if (t && typeof t !== 'boolean')
850
+ clearTimeout(t);
854
851
  this.timers.delete(fingerIdRef);
855
852
  this.clearAndDone(from, item);
856
853
  };
@@ -859,7 +856,9 @@ class Queue {
859
856
  return new Promise((resolve, reject) => {
860
857
  const pid = queueByFrom.findIndex((i) => i.fingerIdRef === fingerIdRef);
861
858
  if (pid !== -1) {
862
- this.clearQueue(from);
859
+ // Ignorar silenciosamente duplicados del mismo ID y resolver en éxito
860
+ this.logger.log(`${from}: DUPLICATE: ${fingerIdRef} (ignored)`);
861
+ return resolve('success');
863
862
  }
864
863
  queueByFrom.push({
865
864
  promiseFunc,
@@ -878,7 +877,8 @@ class Queue {
878
877
  async processQueue(from) {
879
878
  const queueByFrom = this.queue.get(from);
880
879
  while (queueByFrom.length > 0) {
881
- const tasksToProcess = queueByFrom.splice(0, this.concurrencyLimit - 1);
880
+ // Procesar hasta el límite de concurrencia configurado
881
+ const tasksToProcess = queueByFrom.splice(0, this.concurrencyLimit);
882
882
  const promises = tasksToProcess.map((item) => this.processItem(from, item).finally(() => this.clearAndDone(from, item)));
883
883
  await Promise.all(promises);
884
884
  }
@@ -893,7 +893,8 @@ class Queue {
893
893
  for (const item of queueByFrom) {
894
894
  item.cancelled = true;
895
895
  this.clearAndDone(from, item);
896
- item.reject('Queue cleared');
896
+ // Resolver silenciosamente las tareas pendientes al limpiar la cola
897
+ item.resolve('success');
897
898
  }
898
899
  }
899
900
  finally {
@@ -909,7 +910,8 @@ class Queue {
909
910
  if (workingByFrom) {
910
911
  this.workingOnPromise.set(from, false);
911
912
  }
912
- return queueByFrom.length;
913
+ // Después de limpiar, no quedan elementos en cola.
914
+ return 0;
913
915
  }
914
916
  return 0;
915
917
  }
@@ -14319,16 +14321,18 @@ class CoreClass extends EventEmitterClass {
14319
14321
  const handleForceQueue = async (_, messageToSend, numberOrId, from) => {
14320
14322
  const listIdsRefCallbacks = messageToSend.map((i) => i.ref);
14321
14323
  const listProcessWait = this.queuePrincipal.getIdsCallback(from);
14324
+ // Registrar/actualizar el conjunto de IDs que están en curso para este "from"
14322
14325
  if (!listProcessWait.length) {
14323
14326
  this.queuePrincipal.setIdsCallbacks(from, listIdsRefCallbacks);
14327
+ return;
14324
14328
  }
14325
- else {
14326
- const lastMessage = messageToSend[messageToSend.length - 1];
14327
- await this.database.save({ ...lastMessage, from: numberOrId });
14328
- if (listProcessWait.includes(lastMessage.ref)) {
14329
- this.queuePrincipal.clearQueue(from);
14330
- }
14331
- }
14329
+ // Si ya hay una lista en proceso, actualizamos la referencia
14330
+ this.queuePrincipal.setIdsCallbacks(from, listIdsRefCallbacks);
14331
+ // Guardamos el último mensaje como hacía la implementación previa para conservar historial
14332
+ const lastMessage = messageToSend[messageToSend.length - 1];
14333
+ await this.database.save({ ...lastMessage, from: numberOrId });
14334
+ // Evitamos limpiar agresivamente toda la cola; los duplicados se gestionan en la propia cola
14335
+ return;
14332
14336
  };
14333
14337
  const enqueueMsg = async (numberOrId, ctxMessage, from) => {
14334
14338
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"queueClass.d.ts","sourceRoot":"","sources":["../../src/utils/queueClass.ts"],"names":[],"mappings":"AAAA,KAAK,MAAM,GAAG,OAAO,CAAA;AAiBrB,cAAM,KAAK,CAAC,CAAC;IACT,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,gBAAgB,CAAQ;gBAEpB,MAAM,EAAE,MAAM,EAAE,gBAAgB,SAAK,EAAE,OAAO,SAAQ;IAUlE;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE;YAKjD,WAAW;IAkBnB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IA8EvF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAczC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B/C,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,EAAO,GAAG,IAAI;IAIvD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAItC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAM/C,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;CAUtD;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"queueClass.d.ts","sourceRoot":"","sources":["../../src/utils/queueClass.ts"],"names":[],"mappings":"AAAA,KAAK,MAAM,GAAG,OAAO,CAAA;AAiBrB,cAAM,KAAK,CAAC,CAAC;IACT,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,gBAAgB,CAAQ;gBAEpB,MAAM,EAAE,MAAM,EAAE,gBAAgB,SAAK,EAAE,OAAO,SAAQ;IAUlE;;;;OAIG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE;YAKjD,WAAW;IAkBnB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAyEvF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgC/C,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,EAAO,GAAG,IAAI;IAIvD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAItC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAM/C,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;CAUtD;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builderbot/bot",
3
- "version": "1.2.10-y.2",
3
+ "version": "1.3.1",
4
4
  "description": "core typescript",
5
5
  "author": "Leifer Mendez <leifer33@gmail.com>",
6
6
  "homepage": "https://github.com/codigoencasa/bot-whatsapp#readme",
@@ -62,5 +62,5 @@
62
62
  "optionalDependencies": {
63
63
  "sharp": "0.33.3"
64
64
  },
65
- "gitHead": "661a1dabb43eb5047c1ad66997f0f23e33605def"
65
+ "gitHead": "c30d6f1dd70f62ea9b8436ad8709731968f37a72"
66
66
  }