New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@bot-whatsapp/bot

Package Overview
Dependencies
Maintainers
1
Versions
286
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bot-whatsapp/bot - npm Package Compare versions

Comparing version 0.0.226-alpha.0 to 0.0.227-alpha.0

172

core/core.class.js

@@ -177,9 +177,9 @@ const { EventEmitter } = require('node:events')

(flag) =>
async (message = null) => {
flag.endFlow = true
endFlowFlag = true
if (message) this.sendProviderAndSave(from, createCtxMessage(message))
clearQueue()
return
}
async (message = null) => {
flag.endFlow = true
endFlowFlag = true
if (message) this.sendProviderAndSave(from, createCtxMessage(message))
clearQueue()
return
}

@@ -189,19 +189,19 @@ // 📄 Finalizar flujo (patch)

(flag) =>
async (messages = null, options = { fromGotoFlow: false, end: false }) => {
flag.endFlow = true
endFlowFlag = true
async (messages = null, options = { fromGotoFlow: false, end: false }) => {
flag.endFlow = true
endFlowFlag = true
if (Array.isArray(messages)) {
for (const iteratorCtxMessage of messages) {
const scopeCtx = await resolveCbEveryCtx(iteratorCtxMessage, {
omitEndFlow: options.fromGotoFlow,
idleCtx: !!iteratorCtxMessage?.options?.idle,
triggerKey: iteratorCtxMessage.keyword.startsWith('key_'),
})
if (scopeCtx?.endFlow) break
}
if (Array.isArray(messages)) {
for (const iteratorCtxMessage of messages) {
const scopeCtx = await resolveCbEveryCtx(iteratorCtxMessage, {
omitEndFlow: options.fromGotoFlow,
idleCtx: !!iteratorCtxMessage?.options?.idle,
triggerKey: iteratorCtxMessage.keyword.startsWith('key_'),
})
if (scopeCtx?.endFlow) break
}
clearQueue()
return
}
clearQueue()
return
}

@@ -321,51 +321,51 @@ // 📄 Esta funcion se encarga de enviar un array de mensajes dentro de este ctx

(flag) =>
async (message = null) => {
this.queuePrincipal.clearQueue(from)
flag.fallBack = true
await this.sendProviderAndSave(from, {
...prevMsg,
answer: typeof message === 'string' ? message : message?.body ?? prevMsg.answer,
options: {
...prevMsg.options,
buttons: prevMsg.options?.buttons,
},
})
return
}
async (message = null) => {
this.queuePrincipal.clearQueue(from)
flag.fallBack = true
await this.sendProviderAndSave(from, {
...prevMsg,
answer: typeof message === 'string' ? message : message?.body ?? prevMsg.answer,
options: {
...prevMsg.options,
buttons: prevMsg.options?.buttons,
},
})
return
}
const gotoFlow =
(flag) =>
async (flowInstance, step = 0) => {
const promises = []
flag.gotoFlow = true
async (flowInstance, step = 0) => {
const promises = []
flag.gotoFlow = true
if (!flowInstance?.toJson) {
printer([
`[POSSIBLE_CIRCULAR_DEPENDENCY]: Se ha detectado una dependencia circular.`,
`Para evitar problemas, te recomendamos utilizar 'require'('./ruta_del_flow')`,
`Ejemplo: gotoFlow(helloFlow) --> gotoFlow(require('./flows/helloFlow.js'))`,
`[INFO]: https://bot-whatsapp.netlify.app/docs/goto-flow/`,
])
return
}
if (!flowInstance?.toJson) {
printer([
`[POSSIBLE_CIRCULAR_DEPENDENCY]: Se ha detectado una dependencia circular.`,
`Para evitar problemas, te recomendamos utilizar 'require'('./ruta_del_flow')`,
`Ejemplo: gotoFlow(helloFlow) --> gotoFlow(require('./flows/helloFlow.js'))`,
`[INFO]: https://bot-whatsapp.netlify.app/docs/goto-flow/`,
])
return
}
await delay(flowInstance?.ctx?.options?.delay ?? 0)
await delay(flowInstance?.ctx?.options?.delay ?? 0)
const flowTree = flowInstance.toJson()
const flowTree = flowInstance.toJson()
const flowParentId = flowTree[step]
const flowParentId = flowTree[step]
const parseListMsg = await this.flowClass.find(flowParentId?.ref, true, flowTree)
const parseListMsg = await this.flowClass.find(flowParentId?.ref, true, flowTree)
for (const msg of parseListMsg) {
const msgParse = this.flowClass.findSerializeByRef(msg?.ref)
for (const msg of parseListMsg) {
const msgParse = this.flowClass.findSerializeByRef(msg?.ref)
const ctxMessage = { ...msgParse, ...msg }
await this.sendProviderAndSave(from, ctxMessage).then(() => promises.push(ctxMessage))
}
await endFlowToGotoFlow(flag)(promises, { fromGotoFlow: true, ...{ end: endFlowFlag } })
return
const ctxMessage = { ...msgParse, ...msg }
await this.sendProviderAndSave(from, ctxMessage).then(() => promises.push(ctxMessage))
}
await endFlowToGotoFlow(flag)(promises, { fromGotoFlow: true, ...{ end: endFlowFlag } })
return
}
// 📄 [options: flowDynamic]: esta funcion se encarga de responder un array de respuesta esta limitado a 5 mensajes

@@ -376,38 +376,38 @@ // para evitar bloque de whatsapp

(flag, inRef, privateOptions) =>
async (listMsg = [], options = { continue: true }) => {
if (!options.hasOwnProperty('continue')) {
options = { ...options, continue: true }
}
async (listMsg = [], options = { continue: true }) => {
if (!options.hasOwnProperty('continue')) {
options = { ...options, continue: true }
}
flag.flowDynamic = true
flag.flowDynamic = true
if (!Array.isArray(listMsg)) {
listMsg = [{ body: listMsg, ...options }]
}
if (!Array.isArray(listMsg)) {
listMsg = [{ body: listMsg, ...options }]
}
const parseListMsg = listMsg.map((opt, index) => createCtxMessage(opt, index))
const parseListMsg = listMsg.map((opt, index) => createCtxMessage(opt, index))
// Si endFlowFlag existe y no se omite la finalización del flujo, no hacer nada.
if (endFlowFlag && !privateOptions?.omitEndFlow) {
return
}
// Si endFlowFlag existe y no se omite la finalización del flujo, no hacer nada.
if (endFlowFlag && !privateOptions?.omitEndFlow) {
return
}
this.queuePrincipal.setFingerTime(from, inRef) // Debe decirle al sistema que finalizó el flujo aquí.
this.queuePrincipal.setFingerTime(from, inRef) // Debe decirle al sistema que finalizó el flujo aquí.
for (const msg of parseListMsg) {
if (privateOptions?.idleCtx) {
continue // Saltar al siguiente mensaje si se está en modo idleCtx.
}
const delayMs = msg?.options?.delay ?? this.generalArgs.delay ?? 0
await delay(delayMs)
await this.sendProviderAndSave(from, msg)
for (const msg of parseListMsg) {
if (privateOptions?.idleCtx) {
continue // Saltar al siguiente mensaje si se está en modo idleCtx.
}
if (options?.continue) {
await continueFlow()
return
}
const delayMs = msg?.options?.delay ?? this.generalArgs.delay ?? 0
await delay(delayMs)
await this.sendProviderAndSave(from, msg)
}
if (options?.continue) {
await continueFlow()
return
}
return
}

@@ -496,3 +496,5 @@ // 📄 Se encarga de revisar si el contexto del mensaje tiene callback o idle

cb: async (opts) => {
await runContext(true, { idleFallBack: opts.next, ref: opts.inRef, body: opts.body })
if (opts?.next) {
await runContext(true, { idleFallBack: opts.next, ref: opts.inRef, body: opts.body })
}
},

@@ -499,0 +501,0 @@ })

{
"name": "@bot-whatsapp/bot",
"version": "0.0.226-alpha.0",
"version": "0.0.227-alpha.0",
"description": "",

@@ -5,0 +5,0 @@ "main": "./lib/bundle.bot.cjs",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc