@builderbot/bot 1.2.10-y.2 → 1.3.2-y.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/core/coreClass.d.ts.map +1 -1
- package/dist/index.cjs +29 -25
- package/dist/utils/queueClass.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coreClass.d.ts","sourceRoot":"","sources":["../../src/core/coreClass.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACX,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAa,WAAW,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AACvF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAa3C,cAAM,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,GAAG,EAAE,CAAC,SAAS,QAAQ,GAAG,GAAG,CAAE,SAAQ,iBAAiB,CAAC,cAAc,CAAC;IAC9G,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,CAAC,CAAA;IACX,QAAQ,EAAE,CAAC,CAAA;IACX,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,YAAY,cAAoB;IAChC,kBAAkB,cAAoB;IACtC,gBAAgB,YAAkB;IAClC,WAAW,EAAE,WAAW,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAW3C;IAED;;;;;;OAMG;gBACS,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW;IAwBtE;;OAEG;IACH,iBAAiB,QAAO;QACpB,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,kBAAkB,CAAC,MAAM,kBAAkB,CAAC,CAAA;KACrD,EAAE,CA4BF;IAED,OAAO,CAAC,WAAW,CAElB;IAED,SAAS,GAAU,oBAAoB,sBAAsB;oCA4C5C;YACL,IAAI,EAAE,GAAG,CAAA;YACT,MAAM,EAAE,GAAG,CAAA;YACX,KAAK,EAAE,MAAM,CAAA;YACb,OAAO,EAAE,GAAG,EAAE,CAAA;YACd,OAAO,EAAE,OAAO,CAAA;YAChB,KAAK,EAAE,MAAM,CAAA;YACb,OAAO,EAAE,IAAI,CAAA;SAChB;;wBA2BM,YAAY,SAAS,MAAM,GAAG,MAAM,MACpC,aAAc;kCA4Cc,GAAG,EAAE,cAAc,MAAM,YAAW;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE;
|
|
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 (
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
14326
|
-
|
|
14327
|
-
|
|
14328
|
-
|
|
14329
|
-
|
|
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;
|
|
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
|
|
3
|
+
"version": "1.3.2-y.0",
|
|
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": "
|
|
65
|
+
"gitHead": "244b463082570e8b48813803df74f34392205d44"
|
|
66
66
|
}
|