From c97a172b343a73bf2f5eccdc4ddc1dbb5b4c07ba Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Tue, 13 Dec 2022 18:58:00 -0600
Subject: [PATCH 01/26] docs: correccion de errores ortograficos
Corrige algunos errores ortograficos en la documentacion.
---
packages/docs/src/routes/index.tsx | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/packages/docs/src/routes/index.tsx b/packages/docs/src/routes/index.tsx
index 4ae7f96..af63475 100644
--- a/packages/docs/src/routes/index.tsx
+++ b/packages/docs/src/routes/index.tsx
@@ -13,7 +13,7 @@ export default component$(() => {
clientes desde tu cuenta de Whatsapp automáticamente.
- Este bot esta programado en Javascript y usa NodeJS y es{' '}
+ Este bot esta hecho en Javascript y usa NodeJS y es{' '}
Open Source
@@ -25,7 +25,7 @@ export default component$(() => {
más.
- Si se quere cambiar la librería que se está usando, esto se
+ Si se quiere cambiar la librería que se está usando, esto se
puede hacer con solo cambiar unas lineas en el código.
@@ -183,18 +183,18 @@ export default component$(() => {
Instalación
-
- Abre VSCode y muevete al directorio en donde queres insralar
- el bot.
+ Abre VSCode y muevete al directorio en donde quieres
+ instalar el bot.
- Ejecuta este comando: npm create bot-whatsapp@latest
- - Contesta que SI queres crear un bot nuevo (Y)
+ - Contesta que SI quieres crear un bot nuevo (Y)
-
Selecciona con las flechas (arriba y abajo) la librería que
- quieres usar para el bot, cuando estes sobre la opción que
+ vas usar para el bot, cuando estes sobre la opción que
quieres, oprime la barra de espacio y luego la tecla "Enter"
-
- De igual forma selecciona la base de daros que quieres usar.
+ De igual forma selecciona la base de datos que quieres usar.
-
Cambiate al directorio que se creo dependiendo de la base de
@@ -210,7 +210,7 @@ export default component$(() => {
start"y espera a que te mande el mensaje de que necesitas
escanear el código QR, para esto ve al directorio en el que
se instaló y busca el archivo "qr.svg" y abrelo, te debe de
- mostrsr un código QR que tienes que escanear en el Whatsapp
+ mostrar un código QR que tienes que escanear en el Whatsapp
que quieres ligar con el bot, para esto ve a tu Whatsapp,
haz clic en los tres botones de arriba a la derecha y entra
en "Linked devices", y luego en el botón que dice "LINK
@@ -218,11 +218,11 @@ export default component$(() => {
código.
-
- Una vez ligado el Whatsapp vas a ver el mensaje de
+ Una vez ligado el Whatsapp, vas a ver el mensaje de
"Proveedor conectado y listo".
-
- Desde OTRO celular mandas un mensaje al numero del Whatsapp
+ Desde OTRO celular manda un mensaje al número del Whatsapp
que acabas de ligar al bot con la palabra "Hola" y LISTO.
- Debes de recibir una respuesta automática del bot.
From 99f508f93889d70240861158bc304c25a3b2daef Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Wed, 14 Dec 2022 21:07:59 -0600
Subject: [PATCH 02/26] feat: correccion de flujos en app.js de ejemplo
Se corrigio una variable que se mostraba del objeto ctx que no existe en todos los proveedores
---
starters/apps/base-bailey-memory/app.js | 1 -
starters/apps/base-bailey-mongo/app.js | 1 -
starters/apps/base-bailey-mysql/app.js | 1 -
starters/apps/base-twilio-memory/app.js | 1 -
starters/apps/base-twilio-mongo/app.js | 1 -
starters/apps/base-twilio-mysql/app.js | 1 -
starters/apps/base-venom-memory/app.js | 63 +++++++++++++++++++++++--
starters/apps/base-venom-mongo/app.js | 63 +++++++++++++++++++++++--
starters/apps/base-venom-mysql/app.js | 63 +++++++++++++++++++++++--
starters/apps/base-wweb-memory/app.js | 1 -
starters/apps/base-wweb-mongo/app.js | 1 -
starters/apps/base-wweb-mysql/app.js | 1 -
12 files changed, 174 insertions(+), 24 deletions(-)
diff --git a/starters/apps/base-bailey-memory/app.js b/starters/apps/base-bailey-memory/app.js
index fdc0fdd..0a1863b 100644
--- a/starters/apps/base-bailey-memory/app.js
+++ b/starters/apps/base-bailey-memory/app.js
@@ -63,7 +63,6 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
- console.log(ctx['_data']['notifyName'])
},
[...addChild(flowBolsos), ...addChild(flowZapatos)]
)
diff --git a/starters/apps/base-bailey-mongo/app.js b/starters/apps/base-bailey-mongo/app.js
index fdc0fdd..0a1863b 100644
--- a/starters/apps/base-bailey-mongo/app.js
+++ b/starters/apps/base-bailey-mongo/app.js
@@ -63,7 +63,6 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
- console.log(ctx['_data']['notifyName'])
},
[...addChild(flowBolsos), ...addChild(flowZapatos)]
)
diff --git a/starters/apps/base-bailey-mysql/app.js b/starters/apps/base-bailey-mysql/app.js
index fdc0fdd..0a1863b 100644
--- a/starters/apps/base-bailey-mysql/app.js
+++ b/starters/apps/base-bailey-mysql/app.js
@@ -63,7 +63,6 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
- console.log(ctx['_data']['notifyName'])
},
[...addChild(flowBolsos), ...addChild(flowZapatos)]
)
diff --git a/starters/apps/base-twilio-memory/app.js b/starters/apps/base-twilio-memory/app.js
index 6f932f0..a0f1573 100644
--- a/starters/apps/base-twilio-memory/app.js
+++ b/starters/apps/base-twilio-memory/app.js
@@ -63,7 +63,6 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
- console.log(ctx['_data']['notifyName'])
},
[...addChild(flowBolsos), ...addChild(flowZapatos)]
)
diff --git a/starters/apps/base-twilio-mongo/app.js b/starters/apps/base-twilio-mongo/app.js
index cd29140..9f8584f 100644
--- a/starters/apps/base-twilio-mongo/app.js
+++ b/starters/apps/base-twilio-mongo/app.js
@@ -63,7 +63,6 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
- console.log(ctx['_data']['notifyName'])
},
[...addChild(flowBolsos), ...addChild(flowZapatos)]
)
diff --git a/starters/apps/base-twilio-mysql/app.js b/starters/apps/base-twilio-mysql/app.js
index f405728..8bf6198 100644
--- a/starters/apps/base-twilio-mysql/app.js
+++ b/starters/apps/base-twilio-mysql/app.js
@@ -63,7 +63,6 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
- console.log(ctx['_data']['notifyName'])
},
[...addChild(flowBolsos), ...addChild(flowZapatos)]
)
diff --git a/starters/apps/base-venom-memory/app.js b/starters/apps/base-venom-memory/app.js
index 9dd87ef..c2828f2 100644
--- a/starters/apps/base-venom-memory/app.js
+++ b/starters/apps/base-venom-memory/app.js
@@ -3,21 +3,74 @@ const {
createProvider,
createFlow,
addKeyword,
+ addChild,
} = require('@bot-whatsapp/bot')
-const VenomProvider = require('@bot-whatsapp/provider/venom')
+const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
const MockAdapter = require('@bot-whatsapp/database/mock')
-const flowPrincipal = addKeyword(['hola', 'ole', 'HOLA'])
- .addAnswer('Bienvenido a mi tienda')
+/**
+ * Declarando flujo hijo
+ */
+
+const flowBolsos2 = addKeyword(['bolsos2', '2'])
+ .addAnswer('🤯 *MUCHOS* bolsos ...')
+ .addAnswer('y mas bolsos... bla bla')
+
+const flowZapatos2 = addKeyword(['zapatos2', '2'])
+ .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
+ .addAnswer('y algunas otras cosas.')
+
+const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+ .addAnswer('🤯 Veo que elegiste zapatos')
+ .addAnswer('Tengo muchos zapatos...bla bla')
+ .addAnswer(
+ ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ { capture: true },
+ (ctx) => {
+ console.log('Aqui puedes ver más info del usuario...')
+ console.log('Puedes enviar un mail, hook, etc..')
+ console.log(ctx)
+ },
+ [...addChild(flowZapatos2)]
+ )
+
+const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+ .addAnswer('🙌 Veo que elegiste bolsos')
+ .addAnswer('Tengo muchos bolsos...bla bla')
+ .addAnswer(
+ ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ { capture: true },
+ (ctx) => {
+ console.log('Aqui puedes ver más info del usuario...')
+ console.log('Puedes enviar un mail, hook, etc..')
+ console.log(ctx)
+ },
+ [...addChild(flowBolsos2)]
+ )
+
+/**
+ * Declarando flujo principal
+ */
+const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
+ .addAnswer('Hola, bienvenido a mi tienda')
.addAnswer('Como puedo ayudarte?')
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(
+ ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ { capture: true },
+ (ctx) => {
+ console.log('Aqui puedes ver más info del usuario...')
+ console.log('Puedes enviar un mail, hook, etc..')
+ console.log(ctx)
+ },
+ [...addChild(flowBolsos), ...addChild(flowZapatos)]
+ )
const main = async () => {
const adapterDB = new MockAdapter()
const adapterFlow = createFlow([flowPrincipal])
- const adapterProvider = createProvider(VenomProvider)
-
+ const adapterProvider = createProvider(WebWhatsappProvider)
createBot({
flow: adapterFlow,
provider: adapterProvider,
diff --git a/starters/apps/base-venom-mongo/app.js b/starters/apps/base-venom-mongo/app.js
index 9dd87ef..c2828f2 100644
--- a/starters/apps/base-venom-mongo/app.js
+++ b/starters/apps/base-venom-mongo/app.js
@@ -3,21 +3,74 @@ const {
createProvider,
createFlow,
addKeyword,
+ addChild,
} = require('@bot-whatsapp/bot')
-const VenomProvider = require('@bot-whatsapp/provider/venom')
+const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
const MockAdapter = require('@bot-whatsapp/database/mock')
-const flowPrincipal = addKeyword(['hola', 'ole', 'HOLA'])
- .addAnswer('Bienvenido a mi tienda')
+/**
+ * Declarando flujo hijo
+ */
+
+const flowBolsos2 = addKeyword(['bolsos2', '2'])
+ .addAnswer('🤯 *MUCHOS* bolsos ...')
+ .addAnswer('y mas bolsos... bla bla')
+
+const flowZapatos2 = addKeyword(['zapatos2', '2'])
+ .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
+ .addAnswer('y algunas otras cosas.')
+
+const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+ .addAnswer('🤯 Veo que elegiste zapatos')
+ .addAnswer('Tengo muchos zapatos...bla bla')
+ .addAnswer(
+ ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ { capture: true },
+ (ctx) => {
+ console.log('Aqui puedes ver más info del usuario...')
+ console.log('Puedes enviar un mail, hook, etc..')
+ console.log(ctx)
+ },
+ [...addChild(flowZapatos2)]
+ )
+
+const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+ .addAnswer('🙌 Veo que elegiste bolsos')
+ .addAnswer('Tengo muchos bolsos...bla bla')
+ .addAnswer(
+ ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ { capture: true },
+ (ctx) => {
+ console.log('Aqui puedes ver más info del usuario...')
+ console.log('Puedes enviar un mail, hook, etc..')
+ console.log(ctx)
+ },
+ [...addChild(flowBolsos2)]
+ )
+
+/**
+ * Declarando flujo principal
+ */
+const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
+ .addAnswer('Hola, bienvenido a mi tienda')
.addAnswer('Como puedo ayudarte?')
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(
+ ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ { capture: true },
+ (ctx) => {
+ console.log('Aqui puedes ver más info del usuario...')
+ console.log('Puedes enviar un mail, hook, etc..')
+ console.log(ctx)
+ },
+ [...addChild(flowBolsos), ...addChild(flowZapatos)]
+ )
const main = async () => {
const adapterDB = new MockAdapter()
const adapterFlow = createFlow([flowPrincipal])
- const adapterProvider = createProvider(VenomProvider)
-
+ const adapterProvider = createProvider(WebWhatsappProvider)
createBot({
flow: adapterFlow,
provider: adapterProvider,
diff --git a/starters/apps/base-venom-mysql/app.js b/starters/apps/base-venom-mysql/app.js
index 9dd87ef..c2828f2 100644
--- a/starters/apps/base-venom-mysql/app.js
+++ b/starters/apps/base-venom-mysql/app.js
@@ -3,21 +3,74 @@ const {
createProvider,
createFlow,
addKeyword,
+ addChild,
} = require('@bot-whatsapp/bot')
-const VenomProvider = require('@bot-whatsapp/provider/venom')
+const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
const MockAdapter = require('@bot-whatsapp/database/mock')
-const flowPrincipal = addKeyword(['hola', 'ole', 'HOLA'])
- .addAnswer('Bienvenido a mi tienda')
+/**
+ * Declarando flujo hijo
+ */
+
+const flowBolsos2 = addKeyword(['bolsos2', '2'])
+ .addAnswer('🤯 *MUCHOS* bolsos ...')
+ .addAnswer('y mas bolsos... bla bla')
+
+const flowZapatos2 = addKeyword(['zapatos2', '2'])
+ .addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
+ .addAnswer('y algunas otras cosas.')
+
+const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+ .addAnswer('🤯 Veo que elegiste zapatos')
+ .addAnswer('Tengo muchos zapatos...bla bla')
+ .addAnswer(
+ ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ { capture: true },
+ (ctx) => {
+ console.log('Aqui puedes ver más info del usuario...')
+ console.log('Puedes enviar un mail, hook, etc..')
+ console.log(ctx)
+ },
+ [...addChild(flowZapatos2)]
+ )
+
+const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+ .addAnswer('🙌 Veo que elegiste bolsos')
+ .addAnswer('Tengo muchos bolsos...bla bla')
+ .addAnswer(
+ ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ { capture: true },
+ (ctx) => {
+ console.log('Aqui puedes ver más info del usuario...')
+ console.log('Puedes enviar un mail, hook, etc..')
+ console.log(ctx)
+ },
+ [...addChild(flowBolsos2)]
+ )
+
+/**
+ * Declarando flujo principal
+ */
+const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
+ .addAnswer('Hola, bienvenido a mi tienda')
.addAnswer('Como puedo ayudarte?')
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(
+ ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ { capture: true },
+ (ctx) => {
+ console.log('Aqui puedes ver más info del usuario...')
+ console.log('Puedes enviar un mail, hook, etc..')
+ console.log(ctx)
+ },
+ [...addChild(flowBolsos), ...addChild(flowZapatos)]
+ )
const main = async () => {
const adapterDB = new MockAdapter()
const adapterFlow = createFlow([flowPrincipal])
- const adapterProvider = createProvider(VenomProvider)
-
+ const adapterProvider = createProvider(WebWhatsappProvider)
createBot({
flow: adapterFlow,
provider: adapterProvider,
diff --git a/starters/apps/base-wweb-memory/app.js b/starters/apps/base-wweb-memory/app.js
index 3717be9..c2828f2 100644
--- a/starters/apps/base-wweb-memory/app.js
+++ b/starters/apps/base-wweb-memory/app.js
@@ -63,7 +63,6 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
- console.log(ctx['_data']['notifyName'])
},
[...addChild(flowBolsos), ...addChild(flowZapatos)]
)
diff --git a/starters/apps/base-wweb-mongo/app.js b/starters/apps/base-wweb-mongo/app.js
index 3717be9..c2828f2 100644
--- a/starters/apps/base-wweb-mongo/app.js
+++ b/starters/apps/base-wweb-mongo/app.js
@@ -63,7 +63,6 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
- console.log(ctx['_data']['notifyName'])
},
[...addChild(flowBolsos), ...addChild(flowZapatos)]
)
diff --git a/starters/apps/base-wweb-mysql/app.js b/starters/apps/base-wweb-mysql/app.js
index 3717be9..c2828f2 100644
--- a/starters/apps/base-wweb-mysql/app.js
+++ b/starters/apps/base-wweb-mysql/app.js
@@ -63,7 +63,6 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
- console.log(ctx['_data']['notifyName'])
},
[...addChild(flowBolsos), ...addChild(flowZapatos)]
)
From 4e0a1091ee85cedfaa5a9c3d40e5cd50bc36cda3 Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Thu, 15 Dec 2022 03:19:19 -0600
Subject: [PATCH 03/26] fix: provider equivocado en app.js de venom
Se copio por error el provider de whatsapp-web.js en el app.js de venom
---
starters/apps/base-venom-memory/app.js | 4 ++--
starters/apps/base-venom-mongo/app.js | 4 ++--
starters/apps/base-venom-mysql/app.js | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/starters/apps/base-venom-memory/app.js b/starters/apps/base-venom-memory/app.js
index c2828f2..fff68c3 100644
--- a/starters/apps/base-venom-memory/app.js
+++ b/starters/apps/base-venom-memory/app.js
@@ -6,7 +6,7 @@ const {
addChild,
} = require('@bot-whatsapp/bot')
-const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
+const VenomProvider = require('@bot-whatsapp/provider/venom')
const MockAdapter = require('@bot-whatsapp/database/mock')
/**
@@ -70,7 +70,7 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
const main = async () => {
const adapterDB = new MockAdapter()
const adapterFlow = createFlow([flowPrincipal])
- const adapterProvider = createProvider(WebWhatsappProvider)
+ const adapterProvider = createProvider(VenomProvider)
createBot({
flow: adapterFlow,
provider: adapterProvider,
diff --git a/starters/apps/base-venom-mongo/app.js b/starters/apps/base-venom-mongo/app.js
index c2828f2..fff68c3 100644
--- a/starters/apps/base-venom-mongo/app.js
+++ b/starters/apps/base-venom-mongo/app.js
@@ -6,7 +6,7 @@ const {
addChild,
} = require('@bot-whatsapp/bot')
-const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
+const VenomProvider = require('@bot-whatsapp/provider/venom')
const MockAdapter = require('@bot-whatsapp/database/mock')
/**
@@ -70,7 +70,7 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
const main = async () => {
const adapterDB = new MockAdapter()
const adapterFlow = createFlow([flowPrincipal])
- const adapterProvider = createProvider(WebWhatsappProvider)
+ const adapterProvider = createProvider(VenomProvider)
createBot({
flow: adapterFlow,
provider: adapterProvider,
diff --git a/starters/apps/base-venom-mysql/app.js b/starters/apps/base-venom-mysql/app.js
index c2828f2..fff68c3 100644
--- a/starters/apps/base-venom-mysql/app.js
+++ b/starters/apps/base-venom-mysql/app.js
@@ -6,7 +6,7 @@ const {
addChild,
} = require('@bot-whatsapp/bot')
-const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
+const VenomProvider = require('@bot-whatsapp/provider/venom')
const MockAdapter = require('@bot-whatsapp/database/mock')
/**
@@ -70,7 +70,7 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
const main = async () => {
const adapterDB = new MockAdapter()
const adapterFlow = createFlow([flowPrincipal])
- const adapterProvider = createProvider(WebWhatsappProvider)
+ const adapterProvider = createProvider(VenomProvider)
createBot({
flow: adapterFlow,
provider: adapterProvider,
From 4ec6f1e120879e545fa111615f2d79b792d947a5 Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Fri, 16 Dec 2022 15:33:15 +0100
Subject: [PATCH 04/26] feat(provider): :bug: dialogflow
---
GLOSSARY.md | 2 +-
package.json | 4 +-
packages/bot/core/core.class.js | 19 +--
packages/contexts/package.json | 16 +++
packages/contexts/rollup-contexts.config.js | 24 ++++
.../src/dialogflow/dialogflow.class.js | 112 ++++++++++++++++++
packages/contexts/src/dialogflow/index.js | 14 +++
packages/contexts/src/mock/index.js | 14 +++
packages/contexts/src/mock/mock.class.js | 24 ++++
scripts/move.js | 1 +
yarn.lock | 8 ++
11 files changed, 228 insertions(+), 10 deletions(-)
create mode 100644 packages/contexts/package.json
create mode 100644 packages/contexts/rollup-contexts.config.js
create mode 100644 packages/contexts/src/dialogflow/dialogflow.class.js
create mode 100644 packages/contexts/src/dialogflow/index.js
create mode 100644 packages/contexts/src/mock/index.js
create mode 100644 packages/contexts/src/mock/mock.class.js
diff --git a/GLOSSARY.md b/GLOSSARY.md
index ec85e10..d054e6f 100644
--- a/GLOSSARY.md
+++ b/GLOSSARY.md
@@ -1,2 +1,2 @@
CTX: Es el objeto que representa un mensaje, con opciones, id, ref
-messageInComming: Objeto entrante del provider {body, from,...}
\ No newline at end of file
+messageInComming: Objeto entrante del provider {body, from,to,...}
\ No newline at end of file
diff --git a/package.json b/package.json
index 8a8ebe0..92f2f3d 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
"create-bot:rollup": "rollup --config ./packages/create-bot-whatsapp/rollup-create.config.js ",
"bot:rollup": "rollup --config ./packages/bot/rollup-bot.config.js",
"provider:rollup": "rollup --config ./packages/provider/rollup-provider.config.js ",
+ "contexts:rollup": "rollup --config ./packages/contexts/rollup-contexts.config.js",
"database:rollup": "rollup --config ./packages/database/rollup-database.config.js",
"create-bot-whatsapp:rollup": "rollup --config ./packages/create-bot-whatsapp/rollup-create.config.js",
"format:check": "prettier --check ./packages",
@@ -17,7 +18,7 @@
"fmt.staged": "pretty-quick --staged",
"lint:check": "eslint ./packages",
"lint:fix": "eslint --fix ./packages",
- "build": "yarn run cli:rollup && yarn run bot:rollup && yarn run provider:rollup && yarn run database:rollup && yarn run create-bot-whatsapp:rollup",
+ "build": "yarn run cli:rollup && yarn run bot:rollup && yarn run provider:rollup && yarn run database:rollup && yarn run contexts:rollup && yarn run create-bot-whatsapp:rollup",
"copy.lib": "node ./scripts/move.js",
"test.unit": "node ./node_modules/uvu/bin.js packages test",
"test.coverage": "node ./node_modules/c8/bin/c8.js npm run test.unit",
@@ -37,6 +38,7 @@
"packages/cli",
"packages/database",
"packages/provider",
+ "packages/contexts",
"packages/docs"
],
"keywords": [
diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js
index e04bd13..f87be25 100644
--- a/packages/bot/core/core.class.js
+++ b/packages/bot/core/core.class.js
@@ -58,13 +58,13 @@ class CoreClass {
]
/**
- *
- * @param {*} messageInComming
+ * GLOSSARY.md
+ * @param {*} messageCtxInComming
* @returns
*/
- handleMsg = async (messageInComming) => {
- logger.log(`[handleMsg]: `, messageInComming)
- const { body, from } = messageInComming
+ handleMsg = async (messageCtxInComming) => {
+ logger.log(`[handleMsg]: `, messageCtxInComming)
+ const { body, from } = messageCtxInComming
let msgToSend = []
let fallBackFlag = false
@@ -95,9 +95,12 @@ class CoreClass {
// 📄 [options: callback]: Si se tiene un callback se ejecuta
if (!fallBackFlag && refToContinue && prevMsg?.options?.callback) {
const indexFlow = this.flowClass.findIndexByRef(refToContinue?.ref)
- this.flowClass.allCallbacks[indexFlow].callback(messageInComming, {
- fallBack,
- })
+ this.flowClass.allCallbacks[indexFlow].callback(
+ messageCtxInComming,
+ {
+ fallBack,
+ }
+ )
}
// 📄🤘(tiene return) [options: nested(array)]: Si se tiene flujos hijos los implementa
diff --git a/packages/contexts/package.json b/packages/contexts/package.json
new file mode 100644
index 0000000..9d27195
--- /dev/null
+++ b/packages/contexts/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "@bot-whatsapp/contexts",
+ "version": "0.0.1",
+ "description": "",
+ "main": "./lib/bundle.contexts.cjs",
+ "files": [
+ "./lib/"
+ ],
+ "exports": {
+ "./mock": "./lib/mock/index.cjs",
+ "./dialogflow": "./lib/dialogflow/index.cjs"
+ },
+ "dependencies": {
+ "@bot-whatsapp/bot": "*"
+ }
+}
diff --git a/packages/contexts/rollup-contexts.config.js b/packages/contexts/rollup-contexts.config.js
new file mode 100644
index 0000000..59a7624
--- /dev/null
+++ b/packages/contexts/rollup-contexts.config.js
@@ -0,0 +1,24 @@
+const banner = require('../../config/banner.rollup.json')
+const commonjs = require('@rollup/plugin-commonjs')
+const { join } = require('path')
+
+module.exports = [
+ {
+ input: join(__dirname, 'src', 'mock', 'index.js'),
+ output: {
+ banner: banner['banner.output'].join(''),
+ file: join(__dirname, 'lib', 'mock', 'index.cjs'),
+ format: 'cjs',
+ },
+ plugins: [commonjs()],
+ },
+ {
+ input: join(__dirname, 'src', 'dialogflow', 'index.js'),
+ output: {
+ banner: banner['banner.output'].join(''),
+ file: join(__dirname, 'lib', 'dialogflow', 'index.cjs'),
+ format: 'cjs',
+ },
+ plugins: [commonjs()],
+ },
+]
diff --git a/packages/contexts/src/dialogflow/dialogflow.class.js b/packages/contexts/src/dialogflow/dialogflow.class.js
new file mode 100644
index 0000000..db96377
--- /dev/null
+++ b/packages/contexts/src/dialogflow/dialogflow.class.js
@@ -0,0 +1,112 @@
+const { CoreClass } = require('@bot-whatsapp/bot')
+const dialogflow = require('@google-cloud/dialogflow')
+const { existsSync, readFileSync } = require('fs')
+const { join } = require('path')
+
+/**
+ * Necesita extender de core.class
+ * handleMsg(messageInComming) // const { body, from } = messageInComming
+ */
+
+const GOOGLE_ACCOUNT_PATH = join(process.cwd(), 'google-key.json')
+
+class DialogFlowContext extends CoreClass {
+ projectId = null
+ configuration = null
+ sessionClient = null
+
+ constructor(_database, _provider) {
+ super(null, _database, _provider)
+ }
+
+ /**
+ * Verificar conexión con servicio de DialogFlow
+ */
+ init = () => {
+ if (!existsSync(GOOGLE_ACCOUNT_PATH)) {
+ /**
+ * Emitir evento de error para que se mueste por consola dicinedo que no tiene el json
+ * */
+ }
+
+ const rawJson = readFileSync(GOOGLE_ACCOUNT_PATH, 'utf-8')
+ const { project_id, private_key, client_email } = JSON.parse(rawJson)
+
+ this.projectId = project_id
+ this.configuration = {
+ credentials: {
+ private_key,
+ client_email,
+ },
+ }
+
+ this.sessionClient = new dialogflow.SessionsClient(this.configuration)
+ }
+
+ /**
+ * GLOSSARY.md
+ * @param {*} messageCtxInComming
+ * @returns
+ */
+ handleMsg = async (messageCtxInComming) => {
+ const languageCode = process.env.LANGUAGE || 'es' //????? language
+
+ console.log('DEBUG:', messageCtxInComming)
+ const { from, body } = messageCtxInComming // body: hola
+ let media = null
+
+ /**
+ * 📄 Creamos session de contexto basado en el numero de la persona
+ * para evitar este problema.
+ * https://github.com/codigoencasa/bot-whatsapp/pull/140
+ */
+ const session = this.sessionClient.projectAgentSessionPath(
+ this.projectId,
+ from
+ )
+ const requestDialog = {
+ session,
+ queryInput: {
+ text: {
+ text: body,
+ languageCode,
+ },
+ },
+ }
+
+ const [singleResponse] = (await sessionClient.detectIntent(
+ requestDialog
+ )) || [null]
+
+ const { queryResult } = singleResponse
+ const { intent } = queryResult || { intent: {} }
+
+ // const parseIntent = intent['displayName'] || null
+ //****** HE LLEGADO A ESTE PUNTO */
+ //****** this.sendFlow(msgToSend, from) */
+
+ const parsePayload = queryResult['fulfillmentMessages'].find(
+ (a) => a.message === 'payload'
+ )
+ // console.log(singleResponse)
+ if (parsePayload && parsePayload.payload) {
+ const { fields } = parsePayload.payload
+ media = fields.media.stringValue || null
+ }
+ const customPayload = parsePayload ? parsePayload['payload'] : null
+
+ const parseData = {
+ replyMessage: queryResult.fulfillmentText,
+ media,
+ trigger: null,
+ }
+
+ // se tiene que enviar mensaje
+ // msgToSend = [{options?.delay}]
+ this.sendFlow(msgToSend, from)
+
+ return parseData
+ }
+}
+
+module.exports = DialogFlowContext
diff --git a/packages/contexts/src/dialogflow/index.js b/packages/contexts/src/dialogflow/index.js
new file mode 100644
index 0000000..d3c6035
--- /dev/null
+++ b/packages/contexts/src/dialogflow/index.js
@@ -0,0 +1,14 @@
+const DialogFlowClass = require('./dialogflow.class')
+
+/**
+ * Crear instancia de clase Bot
+ * @param {*} args
+ * @returns
+ */
+const createBotDialog = async ({ flow, database, provider }) =>
+ new DialogFlowClass(flow, database, provider)
+
+module.exports = {
+ createBotDialog,
+ DialogFlowClass,
+}
diff --git a/packages/contexts/src/mock/index.js b/packages/contexts/src/mock/index.js
new file mode 100644
index 0000000..b609be5
--- /dev/null
+++ b/packages/contexts/src/mock/index.js
@@ -0,0 +1,14 @@
+const MockClass = require('./mock.class')
+
+/**
+ * Crear instancia de clase Bot
+ * @param {*} args
+ * @returns
+ */
+const createBotMock = async ({ database, provider }) =>
+ new MockClass(database, provider)
+
+module.exports = {
+ createBotMock,
+ MockClass,
+}
diff --git a/packages/contexts/src/mock/mock.class.js b/packages/contexts/src/mock/mock.class.js
new file mode 100644
index 0000000..4ffece4
--- /dev/null
+++ b/packages/contexts/src/mock/mock.class.js
@@ -0,0 +1,24 @@
+const { CoreClass } = require('@bot-whatsapp/bot')
+/**
+ * Necesita extender de core.class
+ * handleMsg(messageInComming) // const { body, from } = messageInComming
+ */
+
+class MockContext extends CoreClass {
+ constructor(_database, _provider) {
+ super(null, _database, _provider)
+ }
+
+ init = () => {}
+
+ /**
+ * GLOSSARY.md
+ * @param {*} messageCtxInComming
+ * @returns
+ */
+ handleMsg = async ({ from, body }) => {
+ console.log('DEBUG:', messageCtxInComming)
+ }
+}
+
+module.exports = MockContext
diff --git a/scripts/move.js b/scripts/move.js
index d92d233..078581a 100644
--- a/scripts/move.js
+++ b/scripts/move.js
@@ -15,4 +15,5 @@ Promise.all([
copyLibPkg('bot', appDir),
copyLibPkg('database', appDir),
copyLibPkg('provider', appDir),
+ copyLibPkg('contexts', appDir),
]).then(() => console.log('Todas las librerías copiadas'))
diff --git a/yarn.lock b/yarn.lock
index 68f5d42..1e05b0f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -963,6 +963,14 @@ __metadata:
languageName: unknown
linkType: soft
+"@bot-whatsapp/contexts@workspace:packages/contexts":
+ version: 0.0.0-use.local
+ resolution: "@bot-whatsapp/contexts@workspace:packages/contexts"
+ dependencies:
+ "@bot-whatsapp/bot": "*"
+ languageName: unknown
+ linkType: soft
+
"@bot-whatsapp/database@npm:*":
version: 0.1.2
resolution: "@bot-whatsapp/database@npm:0.1.2"
From 9f8693d63daf993cc31acb87deb6114bc55edaa2 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Fri, 16 Dec 2022 20:17:06 +0000
Subject: [PATCH 05/26] ci(version): :zap: automatic - "${date}" updated
versions every packages
---
packages/bot/package.json | 2 +-
packages/cli/package.json | 2 +-
packages/create-bot-whatsapp/package.json | 2 +-
packages/database/package.json | 2 +-
packages/provider/package.json | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/packages/bot/package.json b/packages/bot/package.json
index 554f404..4079f55 100644
--- a/packages/bot/package.json
+++ b/packages/bot/package.json
@@ -1,6 +1,6 @@
{
"name": "@bot-whatsapp/bot",
- "version": "0.0.23-alpha.0",
+ "version": "0.0.24-alpha.0",
"description": "",
"main": "./lib/bundle.bot.cjs",
"scripts": {
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 39a11d2..6e76ff6 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@bot-whatsapp/cli",
- "version": "0.0.30-alpha.0",
+ "version": "0.0.31-alpha.0",
"description": "",
"main": "index.js",
"devDependencies": {
diff --git a/packages/create-bot-whatsapp/package.json b/packages/create-bot-whatsapp/package.json
index 678ba6c..7cfa3ea 100644
--- a/packages/create-bot-whatsapp/package.json
+++ b/packages/create-bot-whatsapp/package.json
@@ -1,6 +1,6 @@
{
"name": "create-bot-whatsapp",
- "version": "0.0.41-alpha.0",
+ "version": "0.0.42-alpha.0",
"description": "",
"main": "./lib/bundle.create-bot-whatsapp.cjs",
"files": [
diff --git a/packages/database/package.json b/packages/database/package.json
index f75a8cc..1184abd 100644
--- a/packages/database/package.json
+++ b/packages/database/package.json
@@ -1,6 +1,6 @@
{
"name": "@bot-whatsapp/database",
- "version": "0.0.22-alpha.0",
+ "version": "0.0.23-alpha.0",
"description": "Esto es el conector a mysql, pg, mongo",
"main": "./lib/mock/index.cjs",
"keywords": [],
diff --git a/packages/provider/package.json b/packages/provider/package.json
index 957193b..5fccc98 100644
--- a/packages/provider/package.json
+++ b/packages/provider/package.json
@@ -1,6 +1,6 @@
{
"name": "@bot-whatsapp/provider",
- "version": "0.0.28-alpha.0",
+ "version": "0.0.29-alpha.0",
"description": "Esto es el conector a Twilio, Meta, etc...",
"main": "./lib/mock/index.cjs",
"keywords": [],
From 663641a1b8bf9234a88b0f3c38381ebc4bfa4bf9 Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Fri, 16 Dec 2022 21:38:51 +0100
Subject: [PATCH 06/26] fix(provider): qr-fix margin
---
packages/provider/package.json | 1 +
packages/provider/src/baileys/utils.js | 11 +-
packages/provider/src/venom/utils.js | 20 +-
packages/provider/src/web-whatsapp/utils.js | 7 +-
yarn.lock | 660 +++++++++++++++++++-
5 files changed, 676 insertions(+), 23 deletions(-)
diff --git a/packages/provider/package.json b/packages/provider/package.json
index 5fccc98..e59f80d 100644
--- a/packages/provider/package.json
+++ b/packages/provider/package.json
@@ -11,6 +11,7 @@
],
"dependencies": {
"@bot-whatsapp/bot": "*",
+ "combine-image": "^1.0.3",
"qr-image": "^3.2.0"
},
"exports": {
diff --git a/packages/provider/src/baileys/utils.js b/packages/provider/src/baileys/utils.js
index 7da3c0a..2fc0779 100644
--- a/packages/provider/src/baileys/utils.js
+++ b/packages/provider/src/baileys/utils.js
@@ -1,4 +1,5 @@
const { createWriteStream } = require('fs')
+const combineImage = require('combine-image')
const qr = require('qr-image')
const baileyCleanNumber = (number, full = false) => {
@@ -7,9 +8,17 @@ const baileyCleanNumber = (number, full = false) => {
return number
}
+/**
+ * Hace promesa el write
+ * @param {*} base64
+ */
const baileyGenerateImage = (base64) => {
+ const PATH_QR = `${process.cwd()}/qr.png`
let qr_svg = qr.image(base64, { type: 'png', margin: 4 })
- qr_svg.pipe(createWriteStream(`${process.cwd()}/qr.png`))
+ qr_svg.pipe(createWriteStream(PATH_QR))
+ combineImage([PATH_QR], { margin: 15, color: 0xffffffff }).then((img) => {
+ img.write(PATH_QR)
+ })
}
const baileyIsValidNumber = (rawNumber) => {
diff --git a/packages/provider/src/venom/utils.js b/packages/provider/src/venom/utils.js
index 151f7e0..ecbf497 100644
--- a/packages/provider/src/venom/utils.js
+++ b/packages/provider/src/venom/utils.js
@@ -1,4 +1,5 @@
const { writeFile } = require('fs')
+const combineImage = require('combine-image')
const venomCleanNumber = (number, full = false) => {
number = number.replace('@c.us', '')
@@ -7,6 +8,7 @@ const venomCleanNumber = (number, full = false) => {
}
const venomGenerateImage = (base) => {
+ const PATH_QR = `${process.cwd()}/qr.png`
const matches = base.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/)
if (matches.length !== 3) {
return new Error('Invalid input string')
@@ -17,15 +19,15 @@ const venomGenerateImage = (base) => {
response.data = new Buffer.from(matches[2], 'base64')
var imageBuffer = response
- writeFile(
- `${process.cwd()}/qr.png`,
- imageBuffer['data'],
- 'binary',
- (err) => {
- if (err != null) throw new Error('ERROR_QR_GENERATE')
- return
- }
- )
+ writeFile(PATH_QR, imageBuffer['data'], 'binary', (err) => {
+ if (err != null) throw new Error('ERROR_QR_GENERATE')
+ combineImage([PATH_QR], { margin: 15, color: 0xffffffff }).then(
+ (img) => {
+ img.write(PATH_QR)
+ }
+ )
+ return
+ })
}
const venomisValidNumber = (rawNumber) => {
diff --git a/packages/provider/src/web-whatsapp/utils.js b/packages/provider/src/web-whatsapp/utils.js
index 4a29b35..274ddd5 100644
--- a/packages/provider/src/web-whatsapp/utils.js
+++ b/packages/provider/src/web-whatsapp/utils.js
@@ -1,4 +1,5 @@
const { createWriteStream } = require('fs')
+const combineImage = require('combine-image')
const qr = require('qr-image')
const { tmpdir } = require('os')
const http = require('http')
@@ -11,8 +12,12 @@ const wwebCleanNumber = (number, full = false) => {
}
const wwebGenerateImage = (base64) => {
+ const PATH_QR = `${process.cwd()}/qr.png`
let qr_svg = qr.image(base64, { type: 'png', margin: 4 })
- qr_svg.pipe(createWriteStream(`${process.cwd()}/qr.png`))
+ qr_svg.pipe(createWriteStream(PATH_QR))
+ combineImage([PATH_QR], { margin: 15, color: 0xffffffff }).then((img) => {
+ img.write(PATH_QR)
+ })
}
const wwebIsValidNumber = (rawNumber) => {
diff --git a/yarn.lock b/yarn.lock
index 68f5d42..e5389fe 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1001,6 +1001,7 @@ __metadata:
resolution: "@bot-whatsapp/provider@workspace:packages/provider"
dependencies:
"@bot-whatsapp/bot": "*"
+ combine-image: ^1.0.3
qr-image: ^3.2.0
languageName: unknown
linkType: soft
@@ -2250,7 +2251,7 @@ __metadata:
languageName: node
linkType: hard
-"ajv@npm:^6.10.0, ajv@npm:^6.12.4":
+"ajv@npm:^6.10.0, ajv@npm:^6.12.3, ajv@npm:^6.12.4":
version: 6.12.6
resolution: "ajv@npm:6.12.6"
dependencies:
@@ -2398,6 +2399,22 @@ __metadata:
languageName: node
linkType: hard
+"asn1@npm:~0.2.3":
+ version: 0.2.6
+ resolution: "asn1@npm:0.2.6"
+ dependencies:
+ safer-buffer: ~2.1.0
+ checksum: 39f2ae343b03c15ad4f238ba561e626602a3de8d94ae536c46a4a93e69578826305366dc09fbb9b56aec39b4982a463682f259c38e59f6fa380cd72cd61e493d
+ languageName: node
+ linkType: hard
+
+"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "assert-plus@npm:1.0.0"
+ checksum: 19b4340cb8f0e6a981c07225eacac0e9d52c2644c080198765d63398f0075f83bbc0c8e95474d54224e297555ad0d631c1dcd058adb1ddc2437b41a6b424ac64
+ languageName: node
+ linkType: hard
+
"astring@npm:^1.8.0":
version: 1.8.3
resolution: "astring@npm:1.8.3"
@@ -2407,6 +2424,13 @@ __metadata:
languageName: node
linkType: hard
+"asynckit@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "asynckit@npm:0.4.0"
+ checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be
+ languageName: node
+ linkType: hard
+
"autoprefixer@npm:10.4.11":
version: 10.4.11
resolution: "autoprefixer@npm:10.4.11"
@@ -2425,6 +2449,20 @@ __metadata:
languageName: node
linkType: hard
+"aws-sign2@npm:~0.7.0":
+ version: 0.7.0
+ resolution: "aws-sign2@npm:0.7.0"
+ checksum: b148b0bb0778098ad8cf7e5fc619768bcb51236707ca1d3e5b49e41b171166d8be9fdc2ea2ae43d7decf02989d0aaa3a9c4caa6f320af95d684de9b548a71525
+ languageName: node
+ linkType: hard
+
+"aws4@npm:^1.8.0":
+ version: 1.11.0
+ resolution: "aws4@npm:1.11.0"
+ checksum: 5a00d045fd0385926d20ebebcfba5ec79d4482fe706f63c27b324d489a04c68edb0db99ed991e19eda09cb8c97dc2452059a34d97545cebf591d7a2b5a10999f
+ languageName: node
+ linkType: hard
+
"bail@npm:^2.0.0":
version: 2.0.2
resolution: "bail@npm:2.0.2"
@@ -2446,6 +2484,22 @@ __metadata:
languageName: node
linkType: hard
+"bcrypt-pbkdf@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "bcrypt-pbkdf@npm:1.0.2"
+ dependencies:
+ tweetnacl: ^0.14.3
+ checksum: 4edfc9fe7d07019609ccf797a2af28351736e9d012c8402a07120c4453a3b789a15f2ee1530dc49eee8f7eb9379331a8dd4b3766042b9e502f74a68e7f662291
+ languageName: node
+ linkType: hard
+
+"bignumber.js@npm:^2.1.0":
+ version: 2.4.0
+ resolution: "bignumber.js@npm:2.4.0"
+ checksum: 822c0318b8d077566f2ae1e3b3a78ebd0aa0a1f74a2dc4a5c0bab0fbcfc3e4af56489db814f64cdca973d4682468d99c251fe10dc81060225a1cfc19404a92c5
+ languageName: node
+ linkType: hard
+
"binary-extensions@npm:^2.0.0":
version: 2.2.0
resolution: "binary-extensions@npm:2.2.0"
@@ -2460,6 +2514,13 @@ __metadata:
languageName: node
linkType: hard
+"bmp-js@npm:0.0.1":
+ version: 0.0.1
+ resolution: "bmp-js@npm:0.0.1"
+ checksum: 6fa93734e9f8968f13871d39f112d76595097e3c8eb3ae948e944ebfef8723b5d87544134e0816e7f6a4ecb0d6cf61bb6653984d8854c15774d96c4998e188ab
+ languageName: node
+ linkType: hard
+
"bot-whatsapp-docs@workspace:packages/docs":
version: 0.0.0-use.local
resolution: "bot-whatsapp-docs@workspace:packages/docs"
@@ -2558,6 +2619,13 @@ __metadata:
languageName: node
linkType: hard
+"buffer-equal@npm:0.0.1":
+ version: 0.0.1
+ resolution: "buffer-equal@npm:0.0.1"
+ checksum: ca4b52e6c01143529d957a78cb9a93e4257f172bbab30d9eb87c20ae085ed23c5e07f236ac051202dacbf3d17aba42e1455f84cba21ea79b67d57f2b05e9a613
+ languageName: node
+ linkType: hard
+
"buffer-from@npm:^1.0.0":
version: 1.1.2
resolution: "buffer-from@npm:1.1.2"
@@ -2687,6 +2755,13 @@ __metadata:
languageName: node
linkType: hard
+"caseless@npm:~0.12.0":
+ version: 0.12.0
+ resolution: "caseless@npm:0.12.0"
+ checksum: b43bd4c440aa1e8ee6baefee8063b4850fd0d7b378f6aabc796c9ec8cb26d27fb30b46885350777d9bd079c5256c0e1329ad0dc7c2817e0bb466810ebb353751
+ languageName: node
+ linkType: hard
+
"ccount@npm:^2.0.0":
version: 2.0.1
resolution: "ccount@npm:2.0.1"
@@ -2863,6 +2938,25 @@ __metadata:
languageName: node
linkType: hard
+"combine-image@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "combine-image@npm:1.0.3"
+ dependencies:
+ is-plain-obj: ^1.1.0
+ jimp: 0.2.27
+ checksum: 5a70fcff187e98a988214c175490f7862bc6032e7b532bd8d52aa95d68f630c3c1740c3f8098137759463851a4b9332041be1f9c8a67c84e07e1650a4fb65531
+ languageName: node
+ linkType: hard
+
+"combined-stream@npm:^1.0.6, combined-stream@npm:~1.0.6":
+ version: 1.0.8
+ resolution: "combined-stream@npm:1.0.8"
+ dependencies:
+ delayed-stream: ~1.0.0
+ checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c
+ languageName: node
+ linkType: hard
+
"comma-separated-tokens@npm:^2.0.0":
version: 2.0.3
resolution: "comma-separated-tokens@npm:2.0.3"
@@ -3148,6 +3242,13 @@ __metadata:
languageName: node
linkType: hard
+"core-util-is@npm:1.0.2":
+ version: 1.0.2
+ resolution: "core-util-is@npm:1.0.2"
+ checksum: 7a4c925b497a2c91421e25bf76d6d8190f0b2359a9200dbeed136e63b2931d6294d3b1893eda378883ed363cd950f44a12a401384c609839ea616befb7927dab
+ languageName: node
+ linkType: hard
+
"core-util-is@npm:~1.0.0":
version: 1.0.3
resolution: "core-util-is@npm:1.0.3"
@@ -3243,6 +3344,15 @@ __metadata:
languageName: node
linkType: hard
+"dashdash@npm:^1.12.0":
+ version: 1.14.1
+ resolution: "dashdash@npm:1.14.1"
+ dependencies:
+ assert-plus: ^1.0.0
+ checksum: 3634c249570f7f34e3d34f866c93f866c5b417f0dd616275decae08147dcdf8fccfaa5947380ccfb0473998ea3a8057c0b4cd90c875740ee685d0624b2983598
+ languageName: node
+ linkType: hard
+
"data-uri-to-buffer@npm:^4.0.0":
version: 4.0.0
resolution: "data-uri-to-buffer@npm:4.0.0"
@@ -3316,6 +3426,13 @@ __metadata:
languageName: node
linkType: hard
+"delayed-stream@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "delayed-stream@npm:1.0.0"
+ checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020
+ languageName: node
+ linkType: hard
+
"delegates@npm:^1.0.0":
version: 1.0.0
resolution: "delegates@npm:1.0.0"
@@ -3426,6 +3543,13 @@ __metadata:
languageName: node
linkType: hard
+"dom-walk@npm:^0.1.0":
+ version: 0.1.2
+ resolution: "dom-walk@npm:0.1.2"
+ checksum: 19eb0ce9c6de39d5e231530685248545d9cd2bd97b2cb3486e0bfc0f2a393a9addddfd5557463a932b52fdfcf68ad2a619020cd2c74a5fe46fbecaa8e80872f3
+ languageName: node
+ linkType: hard
+
"dot-prop@npm:^5.1.0":
version: 5.3.0
resolution: "dot-prop@npm:5.3.0"
@@ -3459,6 +3583,16 @@ __metadata:
languageName: node
linkType: hard
+"ecc-jsbn@npm:~0.1.1":
+ version: 0.1.2
+ resolution: "ecc-jsbn@npm:0.1.2"
+ dependencies:
+ jsbn: ~0.1.0
+ safer-buffer: ^2.1.0
+ checksum: 22fef4b6203e5f31d425f5b711eb389e4c6c2723402e389af394f8411b76a488fa414d309d866e2b577ce3e8462d344205545c88a8143cc21752a5172818888a
+ languageName: node
+ linkType: hard
+
"electron-to-chromium@npm:^1.4.251":
version: 1.4.284
resolution: "electron-to-chromium@npm:1.4.284"
@@ -3514,6 +3648,13 @@ __metadata:
languageName: node
linkType: hard
+"es6-promise@npm:^3.0.2":
+ version: 3.3.1
+ resolution: "es6-promise@npm:3.3.1"
+ checksum: ce4044009c2b78db18b15212338eb711cd8a4d485961bc9ec18bb24e8c1e91c96d3295b0fcf63066fc0fa1b0ade36da05e6657827d4336dece382be2429b8398
+ languageName: node
+ linkType: hard
+
"esbuild-android-64@npm:0.14.51":
version: 0.14.51
resolution: "esbuild-android-64@npm:0.14.51"
@@ -4296,13 +4437,34 @@ __metadata:
languageName: node
linkType: hard
-"extend@npm:^3.0.0":
+"exif-parser@npm:^0.1.9":
+ version: 0.1.12
+ resolution: "exif-parser@npm:0.1.12"
+ checksum: 6ba50cb9e0b45a6efa37e966a9582ecd171b5c5b3ef0c47542f2b862c521f70d2f656dde85b4d2a5dd8e1163486b09049f4c412e9c6176bfbda1654a5b2f021c
+ languageName: node
+ linkType: hard
+
+"extend@npm:^3.0.0, extend@npm:~3.0.2":
version: 3.0.2
resolution: "extend@npm:3.0.2"
checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515
languageName: node
linkType: hard
+"extsprintf@npm:1.3.0":
+ version: 1.3.0
+ resolution: "extsprintf@npm:1.3.0"
+ checksum: cee7a4a1e34cffeeec18559109de92c27517e5641991ec6bab849aa64e3081022903dd53084f2080d0d2530803aa5ee84f1e9de642c365452f9e67be8f958ce2
+ languageName: node
+ linkType: hard
+
+"extsprintf@npm:^1.2.0":
+ version: 1.4.1
+ resolution: "extsprintf@npm:1.4.1"
+ checksum: a2f29b241914a8d2bad64363de684821b6b1609d06ae68d5b539e4de6b28659715b5bea94a7265201603713b7027d35399d10b0548f09071c5513e65e8323d33
+ languageName: node
+ linkType: hard
+
"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
version: 3.1.3
resolution: "fast-deep-equal@npm:3.1.3"
@@ -4385,6 +4547,13 @@ __metadata:
languageName: node
linkType: hard
+"file-type@npm:^3.1.0":
+ version: 3.9.0
+ resolution: "file-type@npm:3.9.0"
+ checksum: 1db70b2485ac77c4edb4b8753c1874ee6194123533f43c2651820f96b518f505fa570b093fedd6672eb105ba9fb89c62f84b6492e46788e39c3447aed37afa2d
+ languageName: node
+ linkType: hard
+
"fill-range@npm:^7.0.1":
version: 7.0.1
resolution: "fill-range@npm:7.0.1"
@@ -4459,6 +4628,24 @@ __metadata:
languageName: node
linkType: hard
+"forever-agent@npm:~0.6.1":
+ version: 0.6.1
+ resolution: "forever-agent@npm:0.6.1"
+ checksum: 766ae6e220f5fe23676bb4c6a99387cec5b7b62ceb99e10923376e27bfea72f3c3aeec2ba5f45f3f7ba65d6616965aa7c20b15002b6860833bb6e394dea546a8
+ languageName: node
+ linkType: hard
+
+"form-data@npm:~2.3.2":
+ version: 2.3.3
+ resolution: "form-data@npm:2.3.3"
+ dependencies:
+ asynckit: ^0.4.0
+ combined-stream: ^1.0.6
+ mime-types: ^2.1.12
+ checksum: 10c1780fa13dbe1ff3100114c2ce1f9307f8be10b14bf16e103815356ff567b6be39d70fc4a40f8990b9660012dc24b0f5e1dde1b6426166eb23a445ba068ca3
+ languageName: node
+ linkType: hard
+
"formdata-polyfill@npm:^4.0.10":
version: 4.0.10
resolution: "formdata-polyfill@npm:4.0.10"
@@ -4612,6 +4799,15 @@ __metadata:
languageName: node
linkType: hard
+"getpass@npm:^0.1.1":
+ version: 0.1.7
+ resolution: "getpass@npm:0.1.7"
+ dependencies:
+ assert-plus: ^1.0.0
+ checksum: ab18d55661db264e3eac6012c2d3daeafaab7a501c035ae0ccb193c3c23e9849c6e29b6ac762b9c2adae460266f925d55a3a2a3a3c8b94be2f222df94d70c046
+ languageName: node
+ linkType: hard
+
"git-cz@npm:^4.9.0":
version: 4.9.0
resolution: "git-cz@npm:4.9.0"
@@ -4743,6 +4939,16 @@ __metadata:
languageName: node
linkType: hard
+"global@npm:~4.4.0":
+ version: 4.4.0
+ resolution: "global@npm:4.4.0"
+ dependencies:
+ min-document: ^2.19.0
+ process: ^0.11.10
+ checksum: 9c057557c8f5a5bcfbeb9378ba4fe2255d04679452be504608dd5f13b54edf79f7be1db1031ea06a4ec6edd3b9f5f17d2d172fb47e6c69dae57fd84b7e72b77f
+ languageName: node
+ linkType: hard
+
"globals@npm:^13.15.0":
version: 13.19.0
resolution: "globals@npm:13.19.0"
@@ -4821,6 +5027,23 @@ __metadata:
languageName: node
linkType: hard
+"har-schema@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "har-schema@npm:2.0.0"
+ checksum: d8946348f333fb09e2bf24cc4c67eabb47c8e1d1aa1c14184c7ffec1140a49ec8aa78aa93677ae452d71d5fc0fdeec20f0c8c1237291fc2bcb3f502a5d204f9b
+ languageName: node
+ linkType: hard
+
+"har-validator@npm:~5.1.3":
+ version: 5.1.5
+ resolution: "har-validator@npm:5.1.5"
+ dependencies:
+ ajv: ^6.12.3
+ har-schema: ^2.0.0
+ checksum: b998a7269ca560d7f219eedc53e2c664cd87d487e428ae854a6af4573fc94f182fe9d2e3b92ab968249baec7ebaf9ead69cf975c931dc2ab282ec182ee988280
+ languageName: node
+ linkType: hard
+
"hard-rejection@npm:^2.1.0":
version: 2.1.0
resolution: "hard-rejection@npm:2.1.0"
@@ -4936,6 +5159,17 @@ __metadata:
languageName: node
linkType: hard
+"http-signature@npm:~1.2.0":
+ version: 1.2.0
+ resolution: "http-signature@npm:1.2.0"
+ dependencies:
+ assert-plus: ^1.0.0
+ jsprim: ^1.2.2
+ sshpk: ^1.7.0
+ checksum: 3324598712266a9683585bb84a75dec4fd550567d5e0dd4a0fff6ff3f74348793404d3eeac4918fa0902c810eeee1a86419e4a2e92a164132dfe6b26743fb47c
+ languageName: node
+ linkType: hard
+
"https-proxy-agent@npm:^5.0.0":
version: 5.0.1
resolution: "https-proxy-agent@npm:5.0.1"
@@ -5070,6 +5304,13 @@ __metadata:
languageName: node
linkType: hard
+"ip-regex@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "ip-regex@npm:1.0.3"
+ checksum: 9ce02e567949be9cf4d16c5c314cd241ce1edf78b2619e94b276cdff97eefe198970a224f9d1f0c22a92c4655997ad68fd34d82e41e7d19fafa47fe15108f22a
+ languageName: node
+ linkType: hard
+
"ip@npm:^2.0.0":
version: 2.0.0
resolution: "ip@npm:2.0.0"
@@ -5156,6 +5397,13 @@ __metadata:
languageName: node
linkType: hard
+"is-function@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "is-function@npm:1.0.2"
+ checksum: 7d564562e07b4b51359547d3ccc10fb93bb392fd1b8177ae2601ee4982a0ece86d952323fc172a9000743a3971f09689495ab78a1d49a9b14fc97a7e28521dc0
+ languageName: node
+ linkType: hard
+
"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1":
version: 4.0.3
resolution: "is-glob@npm:4.0.3"
@@ -5276,6 +5524,13 @@ __metadata:
languageName: node
linkType: hard
+"is-typedarray@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "is-typedarray@npm:1.0.0"
+ checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7
+ languageName: node
+ linkType: hard
+
"isarray@npm:~1.0.0":
version: 1.0.0
resolution: "isarray@npm:1.0.0"
@@ -5290,6 +5545,13 @@ __metadata:
languageName: node
linkType: hard
+"isstream@npm:~0.1.2":
+ version: 0.1.2
+ resolution: "isstream@npm:0.1.2"
+ checksum: 1eb2fe63a729f7bdd8a559ab552c69055f4f48eb5c2f03724430587c6f450783c8f1cd936c1c952d0a927925180fcc892ebd5b174236cf1065d4bd5bdb37e963
+ languageName: node
+ linkType: hard
+
"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0":
version: 3.2.0
resolution: "istanbul-lib-coverage@npm:3.2.0"
@@ -5318,6 +5580,36 @@ __metadata:
languageName: node
linkType: hard
+"jimp@npm:0.2.27":
+ version: 0.2.27
+ resolution: "jimp@npm:0.2.27"
+ dependencies:
+ bignumber.js: ^2.1.0
+ bmp-js: 0.0.1
+ es6-promise: ^3.0.2
+ exif-parser: ^0.1.9
+ file-type: ^3.1.0
+ jpeg-js: ^0.2.0
+ load-bmfont: ^1.2.3
+ mime: ^1.3.4
+ pixelmatch: ^4.0.0
+ pngjs: ^3.0.0
+ read-chunk: ^1.0.1
+ request: ^2.65.0
+ stream-to-buffer: ^0.1.0
+ tinycolor2: ^1.1.2
+ url-regex: ^3.0.0
+ checksum: b64ded908f3b39f17706ce955073606fbb586609e3d336a794e11c998e42c6d0f5c938d81672ec6835fc94aaec3f9d0bc9541515efdf51e56c516d4499d45277
+ languageName: node
+ linkType: hard
+
+"jpeg-js@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "jpeg-js@npm:0.2.0"
+ checksum: 2a57b19e252a86b583e9b1e917ddb1c3617170493fee6dfd01bf8ff5e0e43123cb988c0066681f7ea19c093cf1b61d19c47c88258d03395f16946e35856135bc
+ languageName: node
+ linkType: hard
+
"js-cleanup@npm:^1.2.0":
version: 1.2.0
resolution: "js-cleanup@npm:1.2.0"
@@ -5354,6 +5646,13 @@ __metadata:
languageName: node
linkType: hard
+"jsbn@npm:~0.1.0":
+ version: 0.1.1
+ resolution: "jsbn@npm:0.1.1"
+ checksum: e5ff29c1b8d965017ef3f9c219dacd6e40ad355c664e277d31246c90545a02e6047018c16c60a00f36d561b3647215c41894f5d869ada6908a2e0ce4200c88f2
+ languageName: node
+ linkType: hard
+
"json-parse-better-errors@npm:^1.0.1":
version: 1.0.2
resolution: "json-parse-better-errors@npm:1.0.2"
@@ -5382,6 +5681,13 @@ __metadata:
languageName: node
linkType: hard
+"json-schema@npm:0.4.0":
+ version: 0.4.0
+ resolution: "json-schema@npm:0.4.0"
+ checksum: 66389434c3469e698da0df2e7ac5a3281bcff75e797a5c127db7c5b56270e01ae13d9afa3c03344f76e32e81678337a8c912bdbb75101c62e487dc3778461d72
+ languageName: node
+ linkType: hard
+
"json-stable-stringify-without-jsonify@npm:^1.0.1":
version: 1.0.1
resolution: "json-stable-stringify-without-jsonify@npm:1.0.1"
@@ -5389,7 +5695,7 @@ __metadata:
languageName: node
linkType: hard
-"json-stringify-safe@npm:^5.0.1":
+"json-stringify-safe@npm:^5.0.1, json-stringify-safe@npm:~5.0.1":
version: 5.0.1
resolution: "json-stringify-safe@npm:5.0.1"
checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee
@@ -5437,6 +5743,18 @@ __metadata:
languageName: node
linkType: hard
+"jsprim@npm:^1.2.2":
+ version: 1.4.2
+ resolution: "jsprim@npm:1.4.2"
+ dependencies:
+ assert-plus: 1.0.0
+ extsprintf: 1.3.0
+ json-schema: 0.4.0
+ verror: 1.10.0
+ checksum: 2ad1b9fdcccae8b3d580fa6ced25de930eaa1ad154db21bbf8478a4d30bbbec7925b5f5ff29b933fba9412b16a17bd484a8da4fdb3663b5e27af95dd693bab2a
+ languageName: node
+ linkType: hard
+
"kind-of@npm:^6.0.3":
version: 6.0.3
resolution: "kind-of@npm:6.0.3"
@@ -5482,6 +5800,22 @@ __metadata:
languageName: node
linkType: hard
+"load-bmfont@npm:^1.2.3":
+ version: 1.4.1
+ resolution: "load-bmfont@npm:1.4.1"
+ dependencies:
+ buffer-equal: 0.0.1
+ mime: ^1.3.4
+ parse-bmfont-ascii: ^1.0.3
+ parse-bmfont-binary: ^1.0.5
+ parse-bmfont-xml: ^1.1.4
+ phin: ^2.9.1
+ xhr: ^2.0.1
+ xtend: ^4.0.0
+ checksum: 688d932fb0dc4c9333747736ccd926261f0b91734b7bdb6ff24f8659ef068a0f0b2278084b208851afac0beec79af7bd6664fe2ed5b6c5e1db88755fc25f785e
+ languageName: node
+ linkType: hard
+
"load-json-file@npm:^4.0.0":
version: 4.0.0
resolution: "load-json-file@npm:4.0.0"
@@ -6251,6 +6585,31 @@ __metadata:
languageName: node
linkType: hard
+"mime-db@npm:1.52.0":
+ version: 1.52.0
+ resolution: "mime-db@npm:1.52.0"
+ checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f
+ languageName: node
+ linkType: hard
+
+"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19":
+ version: 2.1.35
+ resolution: "mime-types@npm:2.1.35"
+ dependencies:
+ mime-db: 1.52.0
+ checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836
+ languageName: node
+ linkType: hard
+
+"mime@npm:^1.3.4":
+ version: 1.6.0
+ resolution: "mime@npm:1.6.0"
+ bin:
+ mime: cli.js
+ checksum: fef25e39263e6d207580bdc629f8872a3f9772c923c7f8c7e793175cee22777bbe8bba95e5d509a40aaa292d8974514ce634ae35769faa45f22d17edda5e8557
+ languageName: node
+ linkType: hard
+
"mime@npm:^3.0.0":
version: 3.0.0
resolution: "mime@npm:3.0.0"
@@ -6274,6 +6633,15 @@ __metadata:
languageName: node
linkType: hard
+"min-document@npm:^2.19.0":
+ version: 2.19.0
+ resolution: "min-document@npm:2.19.0"
+ dependencies:
+ dom-walk: ^0.1.0
+ checksum: da6437562ea2228041542a2384528e74e22d1daa1a4ec439c165abf0b9d8a63e17e3b8a6dc6e0c731845e85301198730426932a0e813d23f932ca668340c9623
+ languageName: node
+ linkType: hard
+
"min-indent@npm:^1.0.0":
version: 1.0.1
resolution: "min-indent@npm:1.0.1"
@@ -6741,6 +7109,13 @@ __metadata:
languageName: node
linkType: hard
+"oauth-sign@npm:~0.9.0":
+ version: 0.9.0
+ resolution: "oauth-sign@npm:0.9.0"
+ checksum: 8f5497a127967866a3c67094c21efd295e46013a94e6e828573c62220e9af568cc1d2d04b16865ba583e430510fa168baf821ea78f355146d8ed7e350fc44c64
+ languageName: node
+ linkType: hard
+
"object-assign@npm:^4.0.1":
version: 4.1.1
resolution: "object-assign@npm:4.1.1"
@@ -6903,6 +7278,30 @@ __metadata:
languageName: node
linkType: hard
+"parse-bmfont-ascii@npm:^1.0.3":
+ version: 1.0.6
+ resolution: "parse-bmfont-ascii@npm:1.0.6"
+ checksum: de3f6671f183c3e9d64bb4812b0407693b5fd0d24e9d16b2e106bb9eef809d64a6cc061f39ca29bb10c5c2e47e241e91b7aeefa587391fff7ccb27ab9db5012e
+ languageName: node
+ linkType: hard
+
+"parse-bmfont-binary@npm:^1.0.5":
+ version: 1.0.6
+ resolution: "parse-bmfont-binary@npm:1.0.6"
+ checksum: ca37fb1e92f5941fddc5342b45857fafd27f00d2bd5fa44dd504bec6faeab97536c95ad45260c2dd5fc4c63de71e525663d3cdac09d038cbca803d97c669add5
+ languageName: node
+ linkType: hard
+
+"parse-bmfont-xml@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "parse-bmfont-xml@npm:1.1.4"
+ dependencies:
+ xml-parse-from-string: ^1.0.0
+ xml2js: ^0.4.5
+ checksum: 879e5435be44f22b8c4934e2e1d2754a6d90a9ddb16309360daff965e1428d877b673f3d1fafaab4fef437c912a0db9f85545e0dd375ec62df7d4d328450d257
+ languageName: node
+ linkType: hard
+
"parse-entities@npm:^4.0.0":
version: 4.0.0
resolution: "parse-entities@npm:4.0.0"
@@ -6919,6 +7318,13 @@ __metadata:
languageName: node
linkType: hard
+"parse-headers@npm:^2.0.0":
+ version: 2.0.5
+ resolution: "parse-headers@npm:2.0.5"
+ checksum: 3e97f01e4c7f960bfbfd0ee489f0bd8d3c72b6c814f1f79b66abec2cca8eaf8e4ecd89deba0b6e61266469aed87350bc932001181c01ff8c29a59e696abe251f
+ languageName: node
+ linkType: hard
+
"parse-json@npm:^4.0.0":
version: 4.0.0
resolution: "parse-json@npm:4.0.0"
@@ -7020,6 +7426,13 @@ __metadata:
languageName: node
linkType: hard
+"performance-now@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "performance-now@npm:2.1.0"
+ checksum: 534e641aa8f7cba160f0afec0599b6cecefbb516a2e837b512be0adbe6c1da5550e89c78059c7fabc5c9ffdf6627edabe23eb7c518c4500067a898fa65c2b550
+ languageName: node
+ linkType: hard
+
"periscopic@npm:^3.0.0":
version: 3.0.4
resolution: "periscopic@npm:3.0.4"
@@ -7030,6 +7443,13 @@ __metadata:
languageName: node
linkType: hard
+"phin@npm:^2.9.1":
+ version: 2.9.3
+ resolution: "phin@npm:2.9.3"
+ checksum: 7e2abd7be74a54eb7be92dccb1d7a019725c8adaa79ac22a38f25220f9a859393e654ea753a559d326aed7bbc966fadac88270cc8c39d78896f7784219560c47
+ languageName: node
+ linkType: hard
+
"picocolors@npm:^1.0.0":
version: 1.0.0
resolution: "picocolors@npm:1.0.0"
@@ -7065,6 +7485,24 @@ __metadata:
languageName: node
linkType: hard
+"pixelmatch@npm:^4.0.0":
+ version: 4.0.2
+ resolution: "pixelmatch@npm:4.0.2"
+ dependencies:
+ pngjs: ^3.0.0
+ bin:
+ pixelmatch: bin/pixelmatch
+ checksum: 9c5c1329001938cae6d01e2bb84a909ba767f8256bcafc075422cea2a4dbaa8bebd44fceaa4b4ce7cdc36d11f20d4f1ba0cf669851d5649b32d8d1d27e4f5a36
+ languageName: node
+ linkType: hard
+
+"pngjs@npm:^3.0.0":
+ version: 3.4.0
+ resolution: "pngjs@npm:3.4.0"
+ checksum: 8bd40bd698abd16b72c97b85cb858c80894fbedc76277ce72a784aa441e14795d45d9856e97333ca469b34b67528860ffc8a7317ca6beea349b645366df00bcd
+ languageName: node
+ linkType: hard
+
"postcss-import@npm:^14.1.0":
version: 14.1.0
resolution: "postcss-import@npm:14.1.0"
@@ -7196,6 +7634,13 @@ __metadata:
languageName: node
linkType: hard
+"process@npm:^0.11.10":
+ version: 0.11.10
+ resolution: "process@npm:0.11.10"
+ checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3
+ languageName: node
+ linkType: hard
+
"promise-inflight@npm:^1.0.1":
version: 1.0.1
resolution: "promise-inflight@npm:1.0.1"
@@ -7237,6 +7682,13 @@ __metadata:
languageName: node
linkType: hard
+"psl@npm:^1.1.28":
+ version: 1.9.0
+ resolution: "psl@npm:1.9.0"
+ checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d
+ languageName: node
+ linkType: hard
+
"pump@npm:^3.0.0":
version: 3.0.0
resolution: "pump@npm:3.0.0"
@@ -7268,6 +7720,13 @@ __metadata:
languageName: node
linkType: hard
+"qs@npm:~6.5.2":
+ version: 6.5.3
+ resolution: "qs@npm:6.5.3"
+ checksum: 6f20bf08cabd90c458e50855559539a28d00b2f2e7dddcb66082b16a43188418cb3cb77cbd09268bcef6022935650f0534357b8af9eeb29bf0f27ccb17655692
+ languageName: node
+ linkType: hard
+
"queue-microtask@npm:^1.2.2":
version: 1.2.3
resolution: "queue-microtask@npm:1.2.3"
@@ -7298,6 +7757,13 @@ __metadata:
languageName: node
linkType: hard
+"read-chunk@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "read-chunk@npm:1.0.1"
+ checksum: 9240d6a7dbef26d611f5e816dde890bbda99a4547c3edc2be60f8beab757023dfaaa6486004a20bc6d3f5fce90ff31da64eff131554e4250fc5182ed1e6b2a80
+ languageName: node
+ linkType: hard
+
"read-pkg-up@npm:^3.0.0":
version: 3.0.0
resolution: "read-pkg-up@npm:3.0.0"
@@ -7440,6 +7906,34 @@ __metadata:
languageName: node
linkType: hard
+"request@npm:^2.65.0":
+ version: 2.88.2
+ resolution: "request@npm:2.88.2"
+ dependencies:
+ aws-sign2: ~0.7.0
+ aws4: ^1.8.0
+ caseless: ~0.12.0
+ combined-stream: ~1.0.6
+ extend: ~3.0.2
+ forever-agent: ~0.6.1
+ form-data: ~2.3.2
+ har-validator: ~5.1.3
+ http-signature: ~1.2.0
+ is-typedarray: ~1.0.0
+ isstream: ~0.1.2
+ json-stringify-safe: ~5.0.1
+ mime-types: ~2.1.19
+ oauth-sign: ~0.9.0
+ performance-now: ^2.1.0
+ qs: ~6.5.2
+ safe-buffer: ^5.1.2
+ tough-cookie: ~2.5.0
+ tunnel-agent: ^0.6.0
+ uuid: ^3.3.2
+ checksum: 4e112c087f6eabe7327869da2417e9d28fcd0910419edd2eb17b6acfc4bfa1dad61954525949c228705805882d8a98a86a0ea12d7f739c01ee92af7062996983
+ languageName: node
+ linkType: hard
+
"require-directory@npm:^2.1.1":
version: 2.1.1
resolution: "require-directory@npm:2.1.1"
@@ -7628,6 +8122,13 @@ __metadata:
languageName: node
linkType: hard
+"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0":
+ version: 5.2.1
+ resolution: "safe-buffer@npm:5.2.1"
+ checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491
+ languageName: node
+ linkType: hard
+
"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
version: 5.1.2
resolution: "safe-buffer@npm:5.1.2"
@@ -7635,14 +8136,7 @@ __metadata:
languageName: node
linkType: hard
-"safe-buffer@npm:~5.2.0":
- version: 5.2.1
- resolution: "safe-buffer@npm:5.2.1"
- checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491
- languageName: node
- linkType: hard
-
-"safer-buffer@npm:>= 2.1.2 < 3.0.0":
+"safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0":
version: 2.1.2
resolution: "safer-buffer@npm:2.1.2"
checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0
@@ -7658,6 +8152,13 @@ __metadata:
languageName: node
linkType: hard
+"sax@npm:>=0.6.0":
+ version: 1.2.4
+ resolution: "sax@npm:1.2.4"
+ checksum: d3df7d32b897a2c2f28e941f732c71ba90e27c24f62ee918bd4d9a8cfb3553f2f81e5493c7f0be94a11c1911b643a9108f231dd6f60df3fa9586b5d2e3e9e1fe
+ languageName: node
+ linkType: hard
+
"selfsigned@npm:^2.0.0, selfsigned@npm:^2.0.1":
version: 2.1.1
resolution: "selfsigned@npm:2.1.1"
@@ -7920,6 +8421,27 @@ __metadata:
languageName: node
linkType: hard
+"sshpk@npm:^1.7.0":
+ version: 1.17.0
+ resolution: "sshpk@npm:1.17.0"
+ dependencies:
+ asn1: ~0.2.3
+ assert-plus: ^1.0.0
+ bcrypt-pbkdf: ^1.0.0
+ dashdash: ^1.12.0
+ ecc-jsbn: ~0.1.1
+ getpass: ^0.1.1
+ jsbn: ~0.1.0
+ safer-buffer: ^2.0.2
+ tweetnacl: ~0.14.0
+ bin:
+ sshpk-conv: bin/sshpk-conv
+ sshpk-sign: bin/sshpk-sign
+ sshpk-verify: bin/sshpk-verify
+ checksum: ba109f65c8e6c35133b8e6ed5576abeff8aa8d614824b7275ec3ca308f081fef483607c28d97780c1e235818b0f93ed8c8b56d0a5968d5a23fd6af57718c7597
+ languageName: node
+ linkType: hard
+
"ssri@npm:^9.0.0":
version: 9.0.1
resolution: "ssri@npm:9.0.1"
@@ -7967,6 +8489,22 @@ __metadata:
languageName: node
linkType: hard
+"stream-to-buffer@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "stream-to-buffer@npm:0.1.0"
+ dependencies:
+ stream-to: ~0.2.0
+ checksum: 9adf4eadf245ac4bd2ce1b4cd879170714221d185798637b1b5e4f53aef304d5dccbbd180380932d6f3618f7e1972a0529732618ae5c8e33beb0ca51d6907aec
+ languageName: node
+ linkType: hard
+
+"stream-to@npm:~0.2.0":
+ version: 0.2.2
+ resolution: "stream-to@npm:0.2.2"
+ checksum: 06a3f163cfc609a7dc6952f0d953e67f5dabf68c75a7349cc0656ed4e211806e58c69ba1270263ec33c288aaf1468386c3055d592e18b76bc0f13e322ab78068
+ languageName: node
+ linkType: hard
+
"streamsearch@npm:^1.1.0":
version: 1.1.0
resolution: "streamsearch@npm:1.1.0"
@@ -8250,6 +8788,13 @@ __metadata:
languageName: node
linkType: hard
+"tinycolor2@npm:^1.1.2":
+ version: 1.4.2
+ resolution: "tinycolor2@npm:1.4.2"
+ checksum: 57ed262e08815a4ab0ed933edafdbc6555a17081781766149813b44a080ecbe58b3ee281e81c0e75b42e4d41679f138cfa98eabf043f829e0683c04adb12c031
+ languageName: node
+ linkType: hard
+
"to-regex-range@npm:^5.0.1":
version: 5.0.1
resolution: "to-regex-range@npm:5.0.1"
@@ -8259,6 +8804,16 @@ __metadata:
languageName: node
linkType: hard
+"tough-cookie@npm:~2.5.0":
+ version: 2.5.0
+ resolution: "tough-cookie@npm:2.5.0"
+ dependencies:
+ psl: ^1.1.28
+ punycode: ^2.1.1
+ checksum: 16a8cd090224dd176eee23837cbe7573ca0fa297d7e468ab5e1c02d49a4e9a97bb05fef11320605eac516f91d54c57838a25864e8680e27b069a5231d8264977
+ languageName: node
+ linkType: hard
+
"tr46@npm:^3.0.0":
version: 3.0.0
resolution: "tr46@npm:3.0.0"
@@ -8370,6 +8925,22 @@ __metadata:
languageName: node
linkType: hard
+"tunnel-agent@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "tunnel-agent@npm:0.6.0"
+ dependencies:
+ safe-buffer: ^5.0.1
+ checksum: 05f6510358f8afc62a057b8b692f05d70c1782b70db86d6a1e0d5e28a32389e52fa6e7707b6c5ecccacc031462e4bc35af85ecfe4bbc341767917b7cf6965711
+ languageName: node
+ linkType: hard
+
+"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0":
+ version: 0.14.5
+ resolution: "tweetnacl@npm:0.14.5"
+ checksum: 6061daba1724f59473d99a7bb82e13f211cdf6e31315510ae9656fefd4779851cb927adad90f3b488c8ed77c106adc0421ea8055f6f976ff21b27c5c4e918487
+ languageName: node
+ linkType: hard
+
"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
version: 0.4.0
resolution: "type-check@npm:0.4.0"
@@ -8621,6 +9192,15 @@ __metadata:
languageName: node
linkType: hard
+"url-regex@npm:^3.0.0":
+ version: 3.2.0
+ resolution: "url-regex@npm:3.2.0"
+ dependencies:
+ ip-regex: ^1.0.1
+ checksum: 667c8b079491ea76360f54c707d3cbd486a9ec29d6723e47fcbf6b8515a8dcb347bf94c7b1bac8b5af5ce7a5eacb2211d2096aa82fd4f077e559fc70cab8abd0
+ languageName: node
+ linkType: hard
+
"urlpattern-polyfill@npm:^4.0.3":
version: 4.0.3
resolution: "urlpattern-polyfill@npm:4.0.3"
@@ -8635,6 +9215,15 @@ __metadata:
languageName: node
linkType: hard
+"uuid@npm:^3.3.2":
+ version: 3.4.0
+ resolution: "uuid@npm:3.4.0"
+ bin:
+ uuid: ./bin/uuid
+ checksum: 58de2feed61c59060b40f8203c0e4ed7fd6f99d42534a499f1741218a1dd0c129f4aa1de797bcf822c8ea5da7e4137aa3673431a96dae729047f7aca7b27866f
+ languageName: node
+ linkType: hard
+
"uuid@npm:^8.3.2":
version: 8.3.2
resolution: "uuid@npm:8.3.2"
@@ -8695,6 +9284,17 @@ __metadata:
languageName: node
linkType: hard
+"verror@npm:1.10.0":
+ version: 1.10.0
+ resolution: "verror@npm:1.10.0"
+ dependencies:
+ assert-plus: ^1.0.0
+ core-util-is: 1.0.2
+ extsprintf: ^1.2.0
+ checksum: c431df0bedf2088b227a4e051e0ff4ca54df2c114096b0c01e1cbaadb021c30a04d7dd5b41ab277bcd51246ca135bf931d4c4c796ecae7a4fef6d744ecef36ea
+ languageName: node
+ linkType: hard
+
"vfile-location@npm:^4.0.0":
version: 4.0.1
resolution: "vfile-location@npm:4.0.1"
@@ -8916,7 +9516,43 @@ __metadata:
languageName: node
linkType: hard
-"xtend@npm:^4.0.2, xtend@npm:~4.0.1":
+"xhr@npm:^2.0.1":
+ version: 2.6.0
+ resolution: "xhr@npm:2.6.0"
+ dependencies:
+ global: ~4.4.0
+ is-function: ^1.0.1
+ parse-headers: ^2.0.0
+ xtend: ^4.0.0
+ checksum: a1db277e37737caf3ed363d2a33ce4b4ea5b5fc190b663a6f70bc252799185b840ccaa166eaeeea4841c9c60b87741f0a24e29cbcf6708dd425986d4df186d2f
+ languageName: node
+ linkType: hard
+
+"xml-parse-from-string@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "xml-parse-from-string@npm:1.0.1"
+ checksum: 5155cb98e428409829f4060ce542c55438b2f7646d11fd306d850eaf12d35c06ffd9e86d76aa5230121a533b958fd1a319d6f90a5c113391853d0ff01f4da7bb
+ languageName: node
+ linkType: hard
+
+"xml2js@npm:^0.4.5":
+ version: 0.4.23
+ resolution: "xml2js@npm:0.4.23"
+ dependencies:
+ sax: ">=0.6.0"
+ xmlbuilder: ~11.0.0
+ checksum: ca0cf2dfbf6deeaae878a891c8fbc0db6fd04398087084edf143cdc83d0509ad0fe199b890f62f39c4415cf60268a27a6aed0d343f0658f8779bd7add690fa98
+ languageName: node
+ linkType: hard
+
+"xmlbuilder@npm:~11.0.0":
+ version: 11.0.1
+ resolution: "xmlbuilder@npm:11.0.1"
+ checksum: 7152695e16f1a9976658215abab27e55d08b1b97bca901d58b048d2b6e106b5af31efccbdecf9b07af37c8377d8e7e821b494af10b3a68b0ff4ae60331b415b0
+ languageName: node
+ linkType: hard
+
+"xtend@npm:^4.0.0, xtend@npm:^4.0.2, xtend@npm:~4.0.1":
version: 4.0.2
resolution: "xtend@npm:4.0.2"
checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a
From 68dd1820f05d04780824b318072d053eaf7db654 Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Sat, 17 Dec 2022 13:36:01 +0100
Subject: [PATCH 07/26] fix(provider): :zap: edit starter
---
.vscode/bot.code-snippets | 26 ++++++++++++++++++++
packages/database/src/mongo/index.js | 13 ++++------
packages/database/src/mysql/index.js | 2 +-
starters/apps/base-bailey-mongo/app.js | 14 ++++++++---
starters/apps/base-bailey-mongo/package.json | 7 +++---
starters/apps/base-bailey-mysql/app.js | 17 +++++++++++--
starters/apps/base-bailey-mysql/package.json | 7 +++---
7 files changed, 66 insertions(+), 20 deletions(-)
create mode 100644 .vscode/bot.code-snippets
diff --git a/.vscode/bot.code-snippets b/.vscode/bot.code-snippets
new file mode 100644
index 0000000..951f52e
--- /dev/null
+++ b/.vscode/bot.code-snippets
@@ -0,0 +1,26 @@
+{
+ "Flow Bot (simple)": {
+ "scope": "javascript",
+ "prefix": "bot:flow",
+ "description": "Crear un flujo simple",
+ "body": [
+ "export const ${1:${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}}Flow = addKeyword(['hola', 'buenas'])",
+ " .addAnswer('Hola! 🚀 Bienvenido a este CHATBOT')",
+ " .addAnswer('¿Como puedo ayudarte?', {",
+ " delay: 1500",
+ "})"
+ ]
+ },
+ "Flow Bot (completo)": {
+ "scope": "javascript",
+ "prefix": "bot:flow completo",
+ "description": "Crear un flujo completo",
+ "body": [
+ "export const ${1:${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}}Flow = addKeyword(['hola', 'buenas'])",
+ " .addAnswer('Hola! 🚀 Bienvenido a este CHATBOT')",
+ " .addAnswer('¿Como puedo ayudarte?', {",
+ " delay: 1500",
+ "})"
+ ]
+ }
+}
diff --git a/packages/database/src/mongo/index.js b/packages/database/src/mongo/index.js
index 21b7cf1..6af68f0 100644
--- a/packages/database/src/mongo/index.js
+++ b/packages/database/src/mongo/index.js
@@ -1,23 +1,20 @@
-require('dotenv').config()
const { MongoClient } = require('mongodb')
-const DB_URI = process.env.DB_URI || 'mongodb://0.0.0.0:27017'
-const DB_NAME = process.env.DB_NAME || 'db_bot'
-
class MongoAdapter {
db
listHistory = []
-
- constructor() {
+ credentials = { dbUri: null, dbName: null }
+ constructor(_credentials) {
+ this.credentials = _credentials
this.init().then()
}
init = async () => {
try {
- const client = new MongoClient(DB_URI, {})
+ const client = new MongoClient(this.credentials.dbUri, {})
await client.connect()
console.log('🆗 Conexión Correcta DB')
- const db = client.db(DB_NAME)
+ const db = client.db(this.credentials.dbName)
this.db = db
return true
} catch (e) {
diff --git a/packages/database/src/mysql/index.js b/packages/database/src/mysql/index.js
index a557f3e..e01b55a 100644
--- a/packages/database/src/mysql/index.js
+++ b/packages/database/src/mysql/index.js
@@ -3,7 +3,7 @@ const mysql = require('mysql2')
class MyslAdapter {
db
listHistory = []
- credentials = { host: null, user: null, database: null }
+ credentials = { host: null, user: null, database: null, password: null }
constructor(_credentials) {
this.credentials = _credentials
diff --git a/starters/apps/base-bailey-mongo/app.js b/starters/apps/base-bailey-mongo/app.js
index fdc0fdd..698b828 100644
--- a/starters/apps/base-bailey-mongo/app.js
+++ b/starters/apps/base-bailey-mongo/app.js
@@ -7,12 +7,17 @@ const {
} = require('@bot-whatsapp/bot')
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
-const MockAdapter = require('@bot-whatsapp/database/mock')
+const MongoAdapter = require('@bot-whatsapp/database/mock')
+
+/**
+ * Declaramos las conexiones de Mongo
+ */
+const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
+const MONGO_DB_NAME = 'db_bot'
/**
* Declarando flujo hijo
*/
-
const flowBolsos2 = addKeyword(['bolsos2', '2'])
.addAnswer('🤯 *MUCHOS* bolsos ...')
.addAnswer('y mas bolsos... bla bla')
@@ -69,7 +74,10 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
)
const main = async () => {
- const adapterDB = new MockAdapter()
+ const adapterDB = new MongoAdapter({
+ dbUri: MONGO_DB_URI,
+ dbName: MONGO_DB_NAME,
+ })
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(BaileysProvider)
createBot({
diff --git a/starters/apps/base-bailey-mongo/package.json b/starters/apps/base-bailey-mongo/package.json
index ad14f04..64660e7 100644
--- a/starters/apps/base-bailey-mongo/package.json
+++ b/starters/apps/base-bailey-mongo/package.json
@@ -9,12 +9,13 @@
},
"keywords": [],
"dependencies": {
- "@adiwajshing/baileys": "^4.4.0",
- "mime-types": "^2.1.35",
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
- "@bot-whatsapp/provider": "latest"
+ "@bot-whatsapp/provider": "latest",
+ "@adiwajshing/baileys": "^4.4.0",
+ "mime-types": "^2.1.35",
+ "mongodb": "^4.12.1"
},
"author": "",
"license": "ISC"
diff --git a/starters/apps/base-bailey-mysql/app.js b/starters/apps/base-bailey-mysql/app.js
index fdc0fdd..41c0cd4 100644
--- a/starters/apps/base-bailey-mysql/app.js
+++ b/starters/apps/base-bailey-mysql/app.js
@@ -7,7 +7,15 @@ const {
} = require('@bot-whatsapp/bot')
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
-const MockAdapter = require('@bot-whatsapp/database/mock')
+const MySQLAdapter = require('@bot-whatsapp/database/mysql')
+
+/**
+ * Declaramos las conexiones de Mongo
+ */
+const MYSQL_DB_HOST = 'localhost'
+const MYSQL_DB_USER = 'user'
+const MYSQL_DB_PASSWORD = 'pass'
+const MYSQL_DB_NAME = 'bot'
/**
* Declarando flujo hijo
@@ -69,7 +77,12 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
)
const main = async () => {
- const adapterDB = new MockAdapter()
+ const adapterDB = new MySQLAdapter({
+ host: MYSQL_DB_HOST,
+ user: MYSQL_DB_USER,
+ database: MYSQL_DB_NAME,
+ password: MYSQL_DB_PASSWORD,
+ })
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(BaileysProvider)
createBot({
diff --git a/starters/apps/base-bailey-mysql/package.json b/starters/apps/base-bailey-mysql/package.json
index c8c66de..cbf2eb5 100644
--- a/starters/apps/base-bailey-mysql/package.json
+++ b/starters/apps/base-bailey-mysql/package.json
@@ -9,12 +9,13 @@
},
"keywords": [],
"dependencies": {
- "@adiwajshing/baileys": "^4.4.0",
- "mime-types": "^2.1.35",
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
- "@bot-whatsapp/provider": "latest"
+ "@bot-whatsapp/provider": "latest",
+ "@adiwajshing/baileys": "^4.4.0",
+ "mime-types": "^2.1.35",
+ "mysql2": "^2.3.3"
},
"author": "",
"license": "ISC"
From 91bfdc46301207cbc5274308da6f39c7b4652c63 Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Sat, 17 Dec 2022 14:01:32 +0100
Subject: [PATCH 08/26] fix(provider): :bug: qr code accurate
---
packages/provider/src/baileys/index.js | 2 +-
packages/provider/src/baileys/utils.js | 19 ++++++++++++----
packages/provider/src/venom/index.js | 4 ++--
packages/provider/src/venom/utils.js | 25 ++++++++++++---------
packages/provider/src/web-whatsapp/index.js | 4 ++--
packages/provider/src/web-whatsapp/utils.js | 19 ++++++++++++----
6 files changed, 50 insertions(+), 23 deletions(-)
diff --git a/packages/provider/src/baileys/index.js b/packages/provider/src/baileys/index.js
index 8bd860e..3855043 100644
--- a/packages/provider/src/baileys/index.js
+++ b/packages/provider/src/baileys/index.js
@@ -70,7 +70,7 @@ class BaileysProvider extends ProviderClass {
`Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
],
})
- baileyGenerateImage(qr)
+ await baileyGenerateImage(qr)
}
if (lastDisconnect?.error) {
diff --git a/packages/provider/src/baileys/utils.js b/packages/provider/src/baileys/utils.js
index 2fc0779..40efa61 100644
--- a/packages/provider/src/baileys/utils.js
+++ b/packages/provider/src/baileys/utils.js
@@ -12,13 +12,24 @@ const baileyCleanNumber = (number, full = false) => {
* Hace promesa el write
* @param {*} base64
*/
-const baileyGenerateImage = (base64) => {
+const baileyGenerateImage = async (base64) => {
const PATH_QR = `${process.cwd()}/qr.png`
let qr_svg = qr.image(base64, { type: 'png', margin: 4 })
- qr_svg.pipe(createWriteStream(PATH_QR))
- combineImage([PATH_QR], { margin: 15, color: 0xffffffff }).then((img) => {
- img.write(PATH_QR)
+
+ const writeFilePromise = () =>
+ new Promise((resolve, reject) => {
+ const file = qr_svg.pipe(createWriteStream(PATH_QR))
+ file.on('finish', () => resolve(true))
+ file.on('error', reject)
+ })
+
+ await writeFilePromise()
+
+ const cleanImage = await combineImage([PATH_QR], {
+ margin: 15,
+ color: 0xffffffff,
})
+ cleanImage.write(PATH_QR)
}
const baileyIsValidNumber = (rawNumber) => {
diff --git a/packages/provider/src/venom/index.js b/packages/provider/src/venom/index.js
index bb167e4..1aafd80 100644
--- a/packages/provider/src/venom/index.js
+++ b/packages/provider/src/venom/index.js
@@ -49,7 +49,7 @@ class VenomProvider extends ProviderClass {
/**
* Generamos QR Code pra escanear con el Whatsapp
*/
- generateQr = (qr) => {
+ generateQr = async (qr) => {
console.clear()
this.emit('require_action', {
instructions: [
@@ -58,7 +58,7 @@ class VenomProvider extends ProviderClass {
`Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
],
})
- venomGenerateImage(qr)
+ await venomGenerateImage(qr)
}
/**
diff --git a/packages/provider/src/venom/utils.js b/packages/provider/src/venom/utils.js
index ecbf497..ff1d733 100644
--- a/packages/provider/src/venom/utils.js
+++ b/packages/provider/src/venom/utils.js
@@ -7,7 +7,7 @@ const venomCleanNumber = (number, full = false) => {
return number
}
-const venomGenerateImage = (base) => {
+const venomGenerateImage = async (base) => {
const PATH_QR = `${process.cwd()}/qr.png`
const matches = base.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/)
if (matches.length !== 3) {
@@ -18,16 +18,21 @@ const venomGenerateImage = (base) => {
response.type = matches[1]
response.data = new Buffer.from(matches[2], 'base64')
- var imageBuffer = response
- writeFile(PATH_QR, imageBuffer['data'], 'binary', (err) => {
- if (err != null) throw new Error('ERROR_QR_GENERATE')
- combineImage([PATH_QR], { margin: 15, color: 0xffffffff }).then(
- (img) => {
- img.write(PATH_QR)
- }
- )
- return
+ const writeFilePromise = () =>
+ new Promise((resolve, reject) => {
+ writeFile(PATH_QR, response['data'], 'binary', (err) => {
+ if (err != null) reject('ERROR_QR_GENERATE')
+ resolve(true)
+ })
+ })
+
+ await writeFilePromise()
+
+ const cleanImage = await combineImage([PATH_QR], {
+ margin: 15,
+ color: 0xffffffff,
})
+ cleanImage.write(PATH_QR)
}
const venomisValidNumber = (rawNumber) => {
diff --git a/packages/provider/src/web-whatsapp/index.js b/packages/provider/src/web-whatsapp/index.js
index ae8747e..ef9427f 100644
--- a/packages/provider/src/web-whatsapp/index.js
+++ b/packages/provider/src/web-whatsapp/index.js
@@ -57,7 +57,7 @@ class WebWhatsappProvider extends ProviderClass {
},
{
event: 'qr',
- func: (qr) => {
+ func: async (qr) => {
this.emit('require_action', {
instructions: [
`Debes escanear el QR Code para iniciar session reivsa qr.png`,
@@ -65,7 +65,7 @@ class WebWhatsappProvider extends ProviderClass {
`Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
],
})
- wwebGenerateImage(qr)
+ await wwebGenerateImage(qr)
},
},
{
diff --git a/packages/provider/src/web-whatsapp/utils.js b/packages/provider/src/web-whatsapp/utils.js
index 274ddd5..e70bd65 100644
--- a/packages/provider/src/web-whatsapp/utils.js
+++ b/packages/provider/src/web-whatsapp/utils.js
@@ -11,13 +11,24 @@ const wwebCleanNumber = (number, full = false) => {
return number
}
-const wwebGenerateImage = (base64) => {
+const wwebGenerateImage = async (base64) => {
const PATH_QR = `${process.cwd()}/qr.png`
let qr_svg = qr.image(base64, { type: 'png', margin: 4 })
- qr_svg.pipe(createWriteStream(PATH_QR))
- combineImage([PATH_QR], { margin: 15, color: 0xffffffff }).then((img) => {
- img.write(PATH_QR)
+
+ const writeFilePromise = () =>
+ new Promise((resolve, reject) => {
+ const file = qr_svg.pipe(createWriteStream(PATH_QR))
+ file.on('finish', () => resolve(true))
+ file.on('error', reject)
+ })
+
+ await writeFilePromise()
+
+ const cleanImage = await combineImage([PATH_QR], {
+ margin: 15,
+ color: 0xffffffff,
})
+ cleanImage.write(PATH_QR)
}
const wwebIsValidNumber = (rawNumber) => {
From b59d4fcdd7462cde3f68ab5746d49960b547a592 Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Sat, 17 Dec 2022 07:40:27 -0600
Subject: [PATCH 09/26] fix: fix del db provider mysql
Se pusieron correctamente los datos de mysql en app.js y packaje.json
---
starters/apps/base-bailey-mysql/app.js | 9 +++++++--
starters/apps/base-bailey-mysql/package.json | 3 ++-
starters/apps/base-twilio-mysql/app.js | 9 +++++++--
starters/apps/base-twilio-mysql/package.json | 3 ++-
starters/apps/base-venom-mysql/app.js | 9 +++++++--
starters/apps/base-venom-mysql/package.json | 3 ++-
starters/apps/base-wweb-mysql/app.js | 9 +++++++--
starters/apps/base-wweb-mysql/package.json | 3 ++-
8 files changed, 36 insertions(+), 12 deletions(-)
diff --git a/starters/apps/base-bailey-mysql/app.js b/starters/apps/base-bailey-mysql/app.js
index 0a1863b..d459929 100644
--- a/starters/apps/base-bailey-mysql/app.js
+++ b/starters/apps/base-bailey-mysql/app.js
@@ -7,7 +7,7 @@ const {
} = require('@bot-whatsapp/bot')
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
-const MockAdapter = require('@bot-whatsapp/database/mock')
+const MySQLAdapter = require('@bot-whatsapp/database/mysql')
/**
* Declarando flujo hijo
@@ -68,7 +68,12 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
)
const main = async () => {
- const adapterDB = new MockAdapter()
+ const adapterDB = new MySQLAdapter({
+ host: MYSQL_DB_HOST,
+ user: MYSQL_DB_USER,
+ database: MYSQL_DB_NAME,
+ password: MYSQL_DB_PASSWORD,
+ })
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(BaileysProvider)
createBot({
diff --git a/starters/apps/base-bailey-mysql/package.json b/starters/apps/base-bailey-mysql/package.json
index c8c66de..ac13ecd 100644
--- a/starters/apps/base-bailey-mysql/package.json
+++ b/starters/apps/base-bailey-mysql/package.json
@@ -14,7 +14,8 @@
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
- "@bot-whatsapp/provider": "latest"
+ "@bot-whatsapp/provider": "latest",
+ "mysql2": "^2.3.3"
},
"author": "",
"license": "ISC"
diff --git a/starters/apps/base-twilio-mysql/app.js b/starters/apps/base-twilio-mysql/app.js
index 8bf6198..90f8fea 100644
--- a/starters/apps/base-twilio-mysql/app.js
+++ b/starters/apps/base-twilio-mysql/app.js
@@ -7,7 +7,7 @@ const {
} = require('@bot-whatsapp/bot')
const TwilioProvider = require('@bot-whatsapp/provider/twilio')
-const MockAdapter = require('@bot-whatsapp/database/mock')
+const MySQLAdapter = require('@bot-whatsapp/database/mysql')
/**
* Declarando flujo hijo
@@ -68,7 +68,12 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
)
const main = async () => {
- const adapterDB = new MockAdapter()
+ const adapterDB = new MySQLAdapter({
+ host: MYSQL_DB_HOST,
+ user: MYSQL_DB_USER,
+ database: MYSQL_DB_NAME,
+ password: MYSQL_DB_PASSWORD,
+ })
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(TwilioProvider, {
accountSid: 'YOUR_ACCOUNT_SID',
diff --git a/starters/apps/base-twilio-mysql/package.json b/starters/apps/base-twilio-mysql/package.json
index 14f73dd..1f5e5d0 100644
--- a/starters/apps/base-twilio-mysql/package.json
+++ b/starters/apps/base-twilio-mysql/package.json
@@ -15,7 +15,8 @@
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
- "@bot-whatsapp/provider": "latest"
+ "@bot-whatsapp/provider": "latest",
+ "mysql2": "^2.3.3"
},
"author": "",
"license": "ISC"
diff --git a/starters/apps/base-venom-mysql/app.js b/starters/apps/base-venom-mysql/app.js
index fff68c3..28dbbc5 100644
--- a/starters/apps/base-venom-mysql/app.js
+++ b/starters/apps/base-venom-mysql/app.js
@@ -7,7 +7,7 @@ const {
} = require('@bot-whatsapp/bot')
const VenomProvider = require('@bot-whatsapp/provider/venom')
-const MockAdapter = require('@bot-whatsapp/database/mock')
+const MySQLAdapter = require('@bot-whatsapp/database/mysql')
/**
* Declarando flujo hijo
@@ -68,7 +68,12 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
)
const main = async () => {
- const adapterDB = new MockAdapter()
+ const adapterDB = new MySQLAdapter({
+ host: MYSQL_DB_HOST,
+ user: MYSQL_DB_USER,
+ database: MYSQL_DB_NAME,
+ password: MYSQL_DB_PASSWORD,
+ })
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(VenomProvider)
createBot({
diff --git a/starters/apps/base-venom-mysql/package.json b/starters/apps/base-venom-mysql/package.json
index d08359a..c549d12 100644
--- a/starters/apps/base-venom-mysql/package.json
+++ b/starters/apps/base-venom-mysql/package.json
@@ -13,7 +13,8 @@
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
- "@bot-whatsapp/provider": "latest"
+ "@bot-whatsapp/provider": "latest",
+ "mysql2": "^2.3.3"
},
"author": "",
"license": "ISC"
diff --git a/starters/apps/base-wweb-mysql/app.js b/starters/apps/base-wweb-mysql/app.js
index c2828f2..ecebb45 100644
--- a/starters/apps/base-wweb-mysql/app.js
+++ b/starters/apps/base-wweb-mysql/app.js
@@ -7,7 +7,7 @@ const {
} = require('@bot-whatsapp/bot')
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
-const MockAdapter = require('@bot-whatsapp/database/mock')
+const MySQLAdapter = require('@bot-whatsapp/database/mysql')
/**
* Declarando flujo hijo
@@ -68,7 +68,12 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
)
const main = async () => {
- const adapterDB = new MockAdapter()
+ const adapterDB = new MySQLAdapter({
+ host: MYSQL_DB_HOST,
+ user: MYSQL_DB_USER,
+ database: MYSQL_DB_NAME,
+ password: MYSQL_DB_PASSWORD,
+ })
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(WebWhatsappProvider)
createBot({
diff --git a/starters/apps/base-wweb-mysql/package.json b/starters/apps/base-wweb-mysql/package.json
index 329f3ef..3ab73d5 100644
--- a/starters/apps/base-wweb-mysql/package.json
+++ b/starters/apps/base-wweb-mysql/package.json
@@ -13,7 +13,8 @@
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
- "@bot-whatsapp/provider": "latest"
+ "@bot-whatsapp/provider": "latest",
+ "mysql2": "^2.3.3"
},
"author": "",
"license": "ISC"
From dcf65b87bc7e7e6381e6448e83118077986898e7 Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Sat, 17 Dec 2022 07:48:32 -0600
Subject: [PATCH 10/26] fix: agregamos variables para mysql
Agregamos las variables para la conexion de MySQL en app.js
---
starters/apps/base-twilio-mysql/app.js | 8 ++++++++
starters/apps/base-venom-mysql/app.js | 8 ++++++++
starters/apps/base-wweb-mysql/app.js | 8 ++++++++
3 files changed, 24 insertions(+)
diff --git a/starters/apps/base-twilio-mysql/app.js b/starters/apps/base-twilio-mysql/app.js
index 90f8fea..d901f8e 100644
--- a/starters/apps/base-twilio-mysql/app.js
+++ b/starters/apps/base-twilio-mysql/app.js
@@ -9,6 +9,14 @@ const {
const TwilioProvider = require('@bot-whatsapp/provider/twilio')
const MySQLAdapter = require('@bot-whatsapp/database/mysql')
+/**
+ * Declaramos las conexiones de MySQL
+ */
+const MYSQL_DB_HOST = 'localhost'
+const MYSQL_DB_USER = 'user'
+const MYSQL_DB_PASSWORD = 'pass'
+const MYSQL_DB_NAME = 'bot'
+
/**
* Declarando flujo hijo
*/
diff --git a/starters/apps/base-venom-mysql/app.js b/starters/apps/base-venom-mysql/app.js
index 28dbbc5..da4ad99 100644
--- a/starters/apps/base-venom-mysql/app.js
+++ b/starters/apps/base-venom-mysql/app.js
@@ -9,6 +9,14 @@ const {
const VenomProvider = require('@bot-whatsapp/provider/venom')
const MySQLAdapter = require('@bot-whatsapp/database/mysql')
+/**
+ * Declaramos las conexiones de MySQL
+ */
+const MYSQL_DB_HOST = 'localhost'
+const MYSQL_DB_USER = 'user'
+const MYSQL_DB_PASSWORD = 'pass'
+const MYSQL_DB_NAME = 'bot'
+
/**
* Declarando flujo hijo
*/
diff --git a/starters/apps/base-wweb-mysql/app.js b/starters/apps/base-wweb-mysql/app.js
index ecebb45..519f142 100644
--- a/starters/apps/base-wweb-mysql/app.js
+++ b/starters/apps/base-wweb-mysql/app.js
@@ -9,6 +9,14 @@ const {
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
const MySQLAdapter = require('@bot-whatsapp/database/mysql')
+/**
+ * Declaramos las conexiones de MySQL
+ */
+const MYSQL_DB_HOST = 'localhost'
+const MYSQL_DB_USER = 'user'
+const MYSQL_DB_PASSWORD = 'pass'
+const MYSQL_DB_NAME = 'bot'
+
/**
* Declarando flujo hijo
*/
From 8160d13c866b8ae17b0ec8e68eee1bc0373595b0 Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Sat, 17 Dec 2022 15:33:25 -0600
Subject: [PATCH 11/26] feat: se agregaron los datros del adapter mongo en
app.js y package.json
Se agregaron los datos del adaptador de Mongo en app.js y package.json
---
starters/apps/base-bailey-mongo/app.js | 2 +-
starters/apps/base-twilio-mongo/app.js | 13 +++++++++++--
starters/apps/base-twilio-mongo/package.json | 4 +++-
starters/apps/base-venom-mongo/app.js | 13 +++++++++++--
starters/apps/base-venom-mongo/package.json | 4 +++-
starters/apps/base-wweb-mongo/app.js | 13 +++++++++++--
starters/apps/base-wweb-mongo/package.json | 4 +++-
7 files changed, 43 insertions(+), 10 deletions(-)
diff --git a/starters/apps/base-bailey-mongo/app.js b/starters/apps/base-bailey-mongo/app.js
index ab5a46e..cc469c2 100644
--- a/starters/apps/base-bailey-mongo/app.js
+++ b/starters/apps/base-bailey-mongo/app.js
@@ -7,7 +7,7 @@ const {
} = require('@bot-whatsapp/bot')
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
-const MongoAdapter = require('@bot-whatsapp/database/mock')
+const MongoAdapter = require('@bot-whatsapp/database/mongo')
/**
* Declaramos las conexiones de Mongo
diff --git a/starters/apps/base-twilio-mongo/app.js b/starters/apps/base-twilio-mongo/app.js
index 9f8584f..71024e1 100644
--- a/starters/apps/base-twilio-mongo/app.js
+++ b/starters/apps/base-twilio-mongo/app.js
@@ -7,7 +7,13 @@ const {
} = require('@bot-whatsapp/bot')
const TwilioProvider = require('@bot-whatsapp/provider/twilio')
-const MockAdapter = require('@bot-whatsapp/database/mock')
+const MongoAdapter = require('@bot-whatsapp/database/mongo')
+
+/**
+ * Declaramos las conexiones de Mongo
+ */
+const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
+const MONGO_DB_NAME = 'db_bot'
/**
* Declarando flujo hijo
@@ -68,7 +74,10 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
)
const main = async () => {
- const adapterDB = new MockAdapter()
+ const adapterDB = new MongoAdapter({
+ dbUri: MONGO_DB_URI,
+ dbName: MONGO_DB_NAME,
+ })
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(TwilioProvider, {
accountSid: 'YOUR_ACCOUNT_SID',
diff --git a/starters/apps/base-twilio-mongo/package.json b/starters/apps/base-twilio-mongo/package.json
index 56f4600..c8ead10 100644
--- a/starters/apps/base-twilio-mongo/package.json
+++ b/starters/apps/base-twilio-mongo/package.json
@@ -15,7 +15,9 @@
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
- "@bot-whatsapp/provider": "latest"
+ "@bot-whatsapp/provider": "latest",
+ "mime-types": "^2.1.35",
+ "mongodb": "^4.12.1"
},
"author": "",
"license": "ISC"
diff --git a/starters/apps/base-venom-mongo/app.js b/starters/apps/base-venom-mongo/app.js
index fff68c3..90a41a4 100644
--- a/starters/apps/base-venom-mongo/app.js
+++ b/starters/apps/base-venom-mongo/app.js
@@ -7,7 +7,13 @@ const {
} = require('@bot-whatsapp/bot')
const VenomProvider = require('@bot-whatsapp/provider/venom')
-const MockAdapter = require('@bot-whatsapp/database/mock')
+const MongoAdapter = require('@bot-whatsapp/database/mongo')
+
+/**
+ * Declaramos las conexiones de Mongo
+ */
+const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
+const MONGO_DB_NAME = 'db_bot'
/**
* Declarando flujo hijo
@@ -68,7 +74,10 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
)
const main = async () => {
- const adapterDB = new MockAdapter()
+ const adapterDB = new MongoAdapter({
+ dbUri: MONGO_DB_URI,
+ dbName: MONGO_DB_NAME,
+ })
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(VenomProvider)
createBot({
diff --git a/starters/apps/base-venom-mongo/package.json b/starters/apps/base-venom-mongo/package.json
index d516b9d..6586c9f 100644
--- a/starters/apps/base-venom-mongo/package.json
+++ b/starters/apps/base-venom-mongo/package.json
@@ -13,7 +13,9 @@
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
- "@bot-whatsapp/provider": "latest"
+ "@bot-whatsapp/provider": "latest",
+ "mime-types": "^2.1.35",
+ "mongodb": "^4.12.1"
},
"author": "",
"license": "ISC"
diff --git a/starters/apps/base-wweb-mongo/app.js b/starters/apps/base-wweb-mongo/app.js
index c2828f2..bb77f07 100644
--- a/starters/apps/base-wweb-mongo/app.js
+++ b/starters/apps/base-wweb-mongo/app.js
@@ -7,7 +7,13 @@ const {
} = require('@bot-whatsapp/bot')
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
-const MockAdapter = require('@bot-whatsapp/database/mock')
+const MongoAdapter = require('@bot-whatsapp/database/mongo')
+
+/**
+ * Declaramos las conexiones de Mongo
+ */
+const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
+const MONGO_DB_NAME = 'db_bot'
/**
* Declarando flujo hijo
@@ -68,7 +74,10 @@ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
)
const main = async () => {
- const adapterDB = new MockAdapter()
+ const adapterDB = new MongoAdapter({
+ dbUri: MONGO_DB_URI,
+ dbName: MONGO_DB_NAME,
+ })
const adapterFlow = createFlow([flowPrincipal])
const adapterProvider = createProvider(WebWhatsappProvider)
createBot({
diff --git a/starters/apps/base-wweb-mongo/package.json b/starters/apps/base-wweb-mongo/package.json
index 390f6c9..9e323dd 100644
--- a/starters/apps/base-wweb-mongo/package.json
+++ b/starters/apps/base-wweb-mongo/package.json
@@ -13,7 +13,9 @@
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
- "@bot-whatsapp/provider": "latest"
+ "@bot-whatsapp/provider": "latest",
+ "mime-types": "^2.1.35",
+ "mongodb": "^4.12.1"
},
"author": "",
"license": "ISC"
From 96e220cd71ae2d26dac4b6cbc3a4c635d17a7dc5 Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Sun, 18 Dec 2022 10:56:23 +0100
Subject: [PATCH 12/26] Update
---
CONTRIBUTING.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 4b1954d..3afc3f9 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -13,7 +13,7 @@ __Requerimientos:__
__Clonar repo rama dev__
```
-git clone --branch dev https://github.com/leifermendez/bot-whatsapp
+git clone --branch dev https://github.com/codigoencasa/bot-whatsapp
```
__Instalar dependencias__
```
From a21633fb7cf348cc37f4e4714f51172b49b193b5 Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Sun, 18 Dec 2022 14:14:16 +0100
Subject: [PATCH 13/26] fix(cli): :fire: update instructions
---
.vscode/bot.code-snippets | 14 ++++++--------
CONTRIBUTING.md | 9 ++-------
packages/cli/interactive/index.js | 4 ++--
packages/database/package.json | 2 +-
packages/database/rollup-database.config.js | 4 ++--
packages/database/src/{json-file => json}/index.js | 7 +++----
6 files changed, 16 insertions(+), 24 deletions(-)
rename packages/database/src/{json-file => json}/index.js (88%)
diff --git a/.vscode/bot.code-snippets b/.vscode/bot.code-snippets
index 951f52e..062383f 100644
--- a/.vscode/bot.code-snippets
+++ b/.vscode/bot.code-snippets
@@ -4,11 +4,9 @@
"prefix": "bot:flow",
"description": "Crear un flujo simple",
"body": [
- "export const ${1:${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}}Flow = addKeyword(['hola', 'buenas'])",
+ "export const flow${1} = addKeyword(['hola', 'buenas'])",
" .addAnswer('Hola! 🚀 Bienvenido a este CHATBOT')",
- " .addAnswer('¿Como puedo ayudarte?', {",
- " delay: 1500",
- "})"
+ " .addAnswer('¿Como puedo ayudarte?')"
]
},
"Flow Bot (completo)": {
@@ -16,10 +14,10 @@
"prefix": "bot:flow completo",
"description": "Crear un flujo completo",
"body": [
- "export const ${1:${TM_FILENAME_BASE/(.*)/${1:/capitalize}/}}Flow = addKeyword(['hola', 'buenas'])",
- " .addAnswer('Hola! 🚀 Bienvenido a este CHATBOT')",
- " .addAnswer('¿Como puedo ayudarte?', {",
- " delay: 1500",
+ "export const flow${1} = addKeyword(['categorias'])",
+ " .addAnswer('⚡ Tenemos las siguientes categorias')",
+ " .addAnswer(['🚀 Computadoras', '🚀 Celulares', '🚀 Otros'], {",
+ " delay: 1500, //Milisegundo 1500 = 1.5segundos",
"})"
]
}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3afc3f9..33f98f3 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -34,13 +34,8 @@ Se ejecuta el CLI (Command Line Interface) para ayudarte a crear un app-bot de e
yarn run cli
```
-Abrir carpeta __example-app-base__ y ejecutar
-```
-cd example-app-base
-npm i
-npm run pre-copy
-npm start
-```
+__Seguir instrucciones__
+
### __Commit y Push__
diff --git a/packages/cli/interactive/index.js b/packages/cli/interactive/index.js
index f7360ce..3dc16c4 100644
--- a/packages/cli/interactive/index.js
+++ b/packages/cli/interactive/index.js
@@ -12,7 +12,7 @@ const bannerDone = () => {
[
`[Agradecimientos]: Este es un proyecto OpenSource, si tienes intenciones de colaborar puedes hacerlo:`,
`[😉] Comprando un cafe https://www.buymeacoffee.com/leifermendez`,
- `[⭐] Dar estrella https://github.com/leifermendez/bot-whatsapp`,
+ `[⭐] Dar estrella https://github.com/codigoencasa/bot-whatsapp`,
`[🚀] Realizando mejoras en el codigo`,
].join('\n')
)
@@ -85,7 +85,7 @@ const startInteractive = async () => {
const indexOfPath = possiblesPath.find((a) => existsSync(a))
await copyBaseApp(indexOfPath, join(process.cwd(), templateName))
console.log(``)
- console.log(bgMagenta(`⚡⚡⚡INSTRUCCIONES⚡⚡⚡`))
+ console.log(bgMagenta(`⚡⚡⚡ INSTRUCCIONES ⚡⚡⚡`))
console.log(yellow(`cd ${templateName}`))
console.log(yellow(`npm install`))
console.log(yellow(`npm start`))
diff --git a/packages/database/package.json b/packages/database/package.json
index 1184abd..cfe467d 100644
--- a/packages/database/package.json
+++ b/packages/database/package.json
@@ -18,7 +18,7 @@
"exports": {
"./mock": "./lib/mock/index.cjs",
"./mongo": "./lib/mongo/index.cjs",
- "./json-file": "./lib/json-file/index.cjs",
+ "./json": "./lib/json/index.cjs",
"./mysql": "./lib/mysql/index.cjs"
}
}
diff --git a/packages/database/rollup-database.config.js b/packages/database/rollup-database.config.js
index 1eecdba..844d414 100644
--- a/packages/database/rollup-database.config.js
+++ b/packages/database/rollup-database.config.js
@@ -31,10 +31,10 @@ module.exports = [
plugins: [commonjs()],
},
{
- input: join(__dirname, 'src', 'json-file', 'index.js'),
+ input: join(__dirname, 'src', 'json', 'index.js'),
output: {
banner: banner['banner.output'].join(''),
- file: join(__dirname, 'lib', 'json-file', 'index.cjs'),
+ file: join(__dirname, 'lib', 'json', 'index.cjs'),
},
plugins: [commonjs()],
},
diff --git a/packages/database/src/json-file/index.js b/packages/database/src/json/index.js
similarity index 88%
rename from packages/database/src/json-file/index.js
rename to packages/database/src/json/index.js
index af53df8..7aa8029 100644
--- a/packages/database/src/json-file/index.js
+++ b/packages/database/src/json/index.js
@@ -1,8 +1,7 @@
-const path = require('path')
const StormDB = require('stormdb')
-const engine = new StormDB.localFileEngine(
- path.join(process.cwd(), './db.stormdb')
-)
+const { join } = require('path')
+
+const engine = new StormDB.localFileEngine(join(process.cwd(), './db.stormdb'))
class JsonFileAdapter {
db
From ed36ce0a7796320c6a4a452f29c05a3f0f7368db Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Sun, 18 Dec 2022 14:48:21 +0100
Subject: [PATCH 14/26] fix(cli): :fire: update instructions
---
CONTRIBUTING.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 33f98f3..e80b046 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -35,15 +35,15 @@ yarn run cli
```
__Seguir instrucciones__
+En la consola encontraras los pasos a seguir
+

-### __Commit y Push__
-
-El proyecto tiene implementado __[husky](https://typicode.github.io/husky/#/)__, es una herramienta que dispara unas acciones al momento de hacer commit y hacer push.
-
-__commit:__ Los commit son semánticos, esto quiere decir que deben cumplir un standar al momento de escribirlos ejemplo: ` feat(adapter): new adapter myqsl ` puede ver más info sobre esto __[aquí](https://github.com/conventional-changelog/commitlint/#what-is-commitlint)__
-
-__push:__ Cada push ejecutar `yarn run test` el cual realiza los test internos que tienen que cumplir con __95% de cobertura__.
+### 🤔 Preguntas frecuentes
+- ¿Como puedo hacer aportaciones de código en el proyecto?: [Ver Video](https://youtu.be/Lxt8Acob6aU)
+- ¿Como ejecutar el entorno de pruebas?: [Ver Video](https://youtu.be/Mf9V-dloBfk)
+- ¿Como crear un nuevo proveedor?: [Ver Video](https://youtu.be/cahK9zH3SI8)
+- ¿Que son los GithubActions?: [Ver Video](https://youtu.be/nYBEBFKLiqw)
> Documento en constante actualización....
From e585e2f5f644ed0188dc9cd2b3c697c9d6050669 Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Sun, 18 Dec 2022 14:48:49 +0100
Subject: [PATCH 15/26] fix(cli): :fire: update instructions
---
CONTRIBUTING.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e80b046..350f484 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -46,7 +46,7 @@ En la consola encontraras los pasos a seguir
- ¿Que son los GithubActions?: [Ver Video](https://youtu.be/nYBEBFKLiqw)
-> Documento en constante actualización....
+> __NOTA:__ Documento en constante actualización....
------
- [Discord](https://link.codigoencasa.com/DISCORD)
From 290812bf9a0ddcd621798001aa1f3a61911b2fcb Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Sun, 18 Dec 2022 15:05:05 +0100
Subject: [PATCH 16/26] docs(starters): :memo: updated doc
---
starters/apps/base-bailey-memory/README.md | 22 ++++++++++---
starters/apps/base-bailey-memory/package.json | 6 ++--
starters/apps/base-bailey-mongo/README.md | 29 ++++++++++++++---
starters/apps/base-bailey-mysql/README.md | 31 ++++++++++++++++---
starters/apps/base-meta-memory/README.md | 22 ++++++++++---
starters/apps/base-meta-memory/package.json | 1 -
starters/apps/base-twilio-memory/README.md | 22 ++++++++++---
starters/apps/base-twilio-mongo/README.md | 29 ++++++++++++++---
starters/apps/base-twilio-mysql/README.md | 31 ++++++++++++++++---
starters/apps/base-venom-memory/README.md | 22 ++++++++++---
starters/apps/base-venom-mongo/README.md | 29 ++++++++++++++---
starters/apps/base-venom-mysql/README.md | 31 ++++++++++++++++---
starters/apps/base-wweb-memory/README.md | 22 ++++++++++---
starters/apps/base-wweb-mongo/README.md | 29 ++++++++++++++---
starters/apps/base-wweb-mysql/README.md | 31 ++++++++++++++++---
15 files changed, 288 insertions(+), 69 deletions(-)
diff --git a/starters/apps/base-bailey-memory/README.md b/starters/apps/base-bailey-memory/README.md
index f8e0e90..4d1d6b2 100644
--- a/starters/apps/base-bailey-memory/README.md
+++ b/starters/apps/base-bailey-memory/README.md
@@ -1,12 +1,24 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-bailey-memory/package.json b/starters/apps/base-bailey-memory/package.json
index ef0e2b3..5e3ee48 100644
--- a/starters/apps/base-bailey-memory/package.json
+++ b/starters/apps/base-bailey-memory/package.json
@@ -9,12 +9,12 @@
},
"keywords": [],
"dependencies": {
- "@adiwajshing/baileys": "^4.4.0",
- "mime-types": "^2.1.35",
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
- "@bot-whatsapp/provider": "latest"
+ "@bot-whatsapp/provider": "latest",
+ "@adiwajshing/baileys": "^4.4.0",
+ "mime-types": "^2.1.35"
},
"author": "",
"license": "ISC"
diff --git a/starters/apps/base-bailey-mongo/README.md b/starters/apps/base-bailey-mongo/README.md
index f8e0e90..d5a4d67 100644
--- a/starters/apps/base-bailey-mongo/README.md
+++ b/starters/apps/base-bailey-mongo/README.md
@@ -1,12 +1,31 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+Recuerda configurar los parametros de conexion de la base de datos
+```js
+// app.js
+
+const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
+const MONGO_DB_NAME = 'db_bot'
+```
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-bailey-mysql/README.md b/starters/apps/base-bailey-mysql/README.md
index f8e0e90..fbad3da 100644
--- a/starters/apps/base-bailey-mysql/README.md
+++ b/starters/apps/base-bailey-mysql/README.md
@@ -1,12 +1,33 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+Recuerda configurar los parametros de conexion de la base de datos
+```js
+// app.js
+
+const MYSQL_DB_HOST = 'localhost'
+const MYSQL_DB_USER = 'user'
+const MYSQL_DB_PASSWORD = 'pass'
+const MYSQL_DB_NAME = 'bot'
+```
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-meta-memory/README.md b/starters/apps/base-meta-memory/README.md
index f8e0e90..4d1d6b2 100644
--- a/starters/apps/base-meta-memory/README.md
+++ b/starters/apps/base-meta-memory/README.md
@@ -1,12 +1,24 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-meta-memory/package.json b/starters/apps/base-meta-memory/package.json
index d0af65c..af95cf3 100644
--- a/starters/apps/base-meta-memory/package.json
+++ b/starters/apps/base-meta-memory/package.json
@@ -11,7 +11,6 @@
"dependencies": {
"body-parser": "^1.20.1",
"polka": "^0.5.2",
- "twilio": "^3.83.4",
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
diff --git a/starters/apps/base-twilio-memory/README.md b/starters/apps/base-twilio-memory/README.md
index f8e0e90..4d1d6b2 100644
--- a/starters/apps/base-twilio-memory/README.md
+++ b/starters/apps/base-twilio-memory/README.md
@@ -1,12 +1,24 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-twilio-mongo/README.md b/starters/apps/base-twilio-mongo/README.md
index f8e0e90..d5a4d67 100644
--- a/starters/apps/base-twilio-mongo/README.md
+++ b/starters/apps/base-twilio-mongo/README.md
@@ -1,12 +1,31 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+Recuerda configurar los parametros de conexion de la base de datos
+```js
+// app.js
+
+const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
+const MONGO_DB_NAME = 'db_bot'
+```
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-twilio-mysql/README.md b/starters/apps/base-twilio-mysql/README.md
index f8e0e90..fbad3da 100644
--- a/starters/apps/base-twilio-mysql/README.md
+++ b/starters/apps/base-twilio-mysql/README.md
@@ -1,12 +1,33 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+Recuerda configurar los parametros de conexion de la base de datos
+```js
+// app.js
+
+const MYSQL_DB_HOST = 'localhost'
+const MYSQL_DB_USER = 'user'
+const MYSQL_DB_PASSWORD = 'pass'
+const MYSQL_DB_NAME = 'bot'
+```
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-venom-memory/README.md b/starters/apps/base-venom-memory/README.md
index f8e0e90..4d1d6b2 100644
--- a/starters/apps/base-venom-memory/README.md
+++ b/starters/apps/base-venom-memory/README.md
@@ -1,12 +1,24 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-venom-mongo/README.md b/starters/apps/base-venom-mongo/README.md
index f8e0e90..d5a4d67 100644
--- a/starters/apps/base-venom-mongo/README.md
+++ b/starters/apps/base-venom-mongo/README.md
@@ -1,12 +1,31 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+Recuerda configurar los parametros de conexion de la base de datos
+```js
+// app.js
+
+const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
+const MONGO_DB_NAME = 'db_bot'
+```
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-venom-mysql/README.md b/starters/apps/base-venom-mysql/README.md
index f8e0e90..fbad3da 100644
--- a/starters/apps/base-venom-mysql/README.md
+++ b/starters/apps/base-venom-mysql/README.md
@@ -1,12 +1,33 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+Recuerda configurar los parametros de conexion de la base de datos
+```js
+// app.js
+
+const MYSQL_DB_HOST = 'localhost'
+const MYSQL_DB_USER = 'user'
+const MYSQL_DB_PASSWORD = 'pass'
+const MYSQL_DB_NAME = 'bot'
+```
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-wweb-memory/README.md b/starters/apps/base-wweb-memory/README.md
index f8e0e90..4d1d6b2 100644
--- a/starters/apps/base-wweb-memory/README.md
+++ b/starters/apps/base-wweb-memory/README.md
@@ -1,12 +1,24 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-wweb-mongo/README.md b/starters/apps/base-wweb-mongo/README.md
index f8e0e90..d5a4d67 100644
--- a/starters/apps/base-wweb-mongo/README.md
+++ b/starters/apps/base-wweb-mongo/README.md
@@ -1,12 +1,31 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+Recuerda configurar los parametros de conexion de la base de datos
+```js
+// app.js
+
+const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
+const MONGO_DB_NAME = 'db_bot'
+```
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
diff --git a/starters/apps/base-wweb-mysql/README.md b/starters/apps/base-wweb-mysql/README.md
index f8e0e90..fbad3da 100644
--- a/starters/apps/base-wweb-mysql/README.md
+++ b/starters/apps/base-wweb-mysql/README.md
@@ -1,12 +1,33 @@
-### BASE APP
+### CHATBOT Whatsapp
+
+Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
- Bienvenido a mi tienda
- Como puedo ayudarte?
- Tengo: Zapatos Bolsos etc..
+__Iniciar__
+Recuerda configurar los parametros de conexion de la base de datos
+```js
+// app.js
+
+const MYSQL_DB_HOST = 'localhost'
+const MYSQL_DB_USER = 'user'
+const MYSQL_DB_PASSWORD = 'pass'
+const MYSQL_DB_NAME = 'bot'
+```
+
+```
+npm install
+npm start
+```
+
+__¿Tienes problemas?:__ [Abrir Issue](https://github.com/codigoencasa/bot-whatsapp/issues/new/choose)
+
------
-- [Discord](https://link.codigoencasa.com/DISCORD)
-- [Twitter](https://twitter.com/leifermendez)
-- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
-- [Telegram](https://t.me/leifermendez)
+> ¿Quieres se parte de este proyecto?
+> - [Discord](https://link.codigoencasa.com/DISCORD)
+> - [Twitter](https://twitter.com/leifermendez)
+> - [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
+> - [Telegram](https://t.me/leifermendez)
From b2f13396104db9ccef5b3bad1c4e19c6a4bad2d4 Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Sun, 18 Dec 2022 14:15:47 -0600
Subject: [PATCH 17/26] feat: se agrego informacion al ejemplo en app.js
Se agrego informacion al ejemplo en app.js en el armado de los flujos secundarios
---
starters/apps/base-bailey-memory/app.js | 26 +++++++++++++++--------
starters/apps/base-bailey-mongo/app.js | 28 +++++++++++++++++--------
starters/apps/base-bailey-mysql/app.js | 28 ++++++++++++++++---------
starters/apps/base-meta-memory/app.js | 27 +++++++++++++++---------
starters/apps/base-twilio-memory/app.js | 26 +++++++++++++++--------
starters/apps/base-twilio-mongo/app.js | 27 ++++++++++++++++--------
starters/apps/base-twilio-mysql/app.js | 27 ++++++++++++++++--------
starters/apps/base-venom-memory/app.js | 26 +++++++++++++++--------
starters/apps/base-venom-mongo/app.js | 27 ++++++++++++++++--------
starters/apps/base-venom-mysql/app.js | 27 ++++++++++++++++--------
starters/apps/base-wweb-memory/app.js | 26 +++++++++++++++--------
starters/apps/base-wweb-mongo/app.js | 27 ++++++++++++++++--------
starters/apps/base-wweb-mysql/app.js | 27 ++++++++++++++++--------
13 files changed, 230 insertions(+), 119 deletions(-)
diff --git a/starters/apps/base-bailey-memory/app.js b/starters/apps/base-bailey-memory/app.js
index 0a1863b..624f70f 100644
--- a/starters/apps/base-bailey-memory/app.js
+++ b/starters/apps/base-bailey-memory/app.js
@@ -10,7 +10,15 @@ const BaileysProvider = require('@bot-whatsapp/provider/baileys')
const MockAdapter = require('@bot-whatsapp/database/mock')
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -21,11 +29,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -35,11 +43,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -52,12 +60,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
diff --git a/starters/apps/base-bailey-mongo/app.js b/starters/apps/base-bailey-mongo/app.js
index cc469c2..f71a425 100644
--- a/starters/apps/base-bailey-mongo/app.js
+++ b/starters/apps/base-bailey-mongo/app.js
@@ -12,12 +12,22 @@ const MongoAdapter = require('@bot-whatsapp/database/mongo')
/**
* Declaramos las conexiones de Mongo
*/
+
const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
const MONGO_DB_NAME = 'db_bot'
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
+
const flowBolsos2 = addKeyword(['bolsos2', '2'])
.addAnswer('🤯 *MUCHOS* bolsos ...')
.addAnswer('y mas bolsos... bla bla')
@@ -26,11 +36,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -40,11 +50,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -57,12 +67,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
diff --git a/starters/apps/base-bailey-mysql/app.js b/starters/apps/base-bailey-mysql/app.js
index 1211654..88e1e11 100644
--- a/starters/apps/base-bailey-mysql/app.js
+++ b/starters/apps/base-bailey-mysql/app.js
@@ -13,12 +13,20 @@ const MySQLAdapter = require('@bot-whatsapp/database/mysql')
* Declaramos las conexiones de MySQL
*/
const MYSQL_DB_HOST = 'localhost'
-const MYSQL_DB_USER = 'user'
+const MYSQL_DB_USER = 'usr'
const MYSQL_DB_PASSWORD = 'pass'
const MYSQL_DB_NAME = 'bot'
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -29,11 +37,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -43,11 +51,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -60,12 +68,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
diff --git a/starters/apps/base-meta-memory/app.js b/starters/apps/base-meta-memory/app.js
index 6f932f0..ab26888 100644
--- a/starters/apps/base-meta-memory/app.js
+++ b/starters/apps/base-meta-memory/app.js
@@ -10,7 +10,15 @@ const TwilioProvider = require('@bot-whatsapp/provider/twilio')
const MockAdapter = require('@bot-whatsapp/database/mock')
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -21,11 +29,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -35,11 +43,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -52,18 +60,17 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
console.log('Puedes enviar un mail, hook, etc..')
console.log(ctx)
- console.log(ctx['_data']['notifyName'])
},
[...addChild(flowBolsos), ...addChild(flowZapatos)]
)
diff --git a/starters/apps/base-twilio-memory/app.js b/starters/apps/base-twilio-memory/app.js
index a0f1573..ab26888 100644
--- a/starters/apps/base-twilio-memory/app.js
+++ b/starters/apps/base-twilio-memory/app.js
@@ -10,7 +10,15 @@ const TwilioProvider = require('@bot-whatsapp/provider/twilio')
const MockAdapter = require('@bot-whatsapp/database/mock')
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -21,11 +29,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -35,11 +43,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -52,12 +60,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
diff --git a/starters/apps/base-twilio-mongo/app.js b/starters/apps/base-twilio-mongo/app.js
index 71024e1..f1e735c 100644
--- a/starters/apps/base-twilio-mongo/app.js
+++ b/starters/apps/base-twilio-mongo/app.js
@@ -12,11 +12,20 @@ const MongoAdapter = require('@bot-whatsapp/database/mongo')
/**
* Declaramos las conexiones de Mongo
*/
+
const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
const MONGO_DB_NAME = 'db_bot'
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -27,11 +36,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -41,11 +50,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -58,12 +67,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
diff --git a/starters/apps/base-twilio-mysql/app.js b/starters/apps/base-twilio-mysql/app.js
index d901f8e..724b819 100644
--- a/starters/apps/base-twilio-mysql/app.js
+++ b/starters/apps/base-twilio-mysql/app.js
@@ -12,13 +12,22 @@ const MySQLAdapter = require('@bot-whatsapp/database/mysql')
/**
* Declaramos las conexiones de MySQL
*/
+
const MYSQL_DB_HOST = 'localhost'
const MYSQL_DB_USER = 'user'
const MYSQL_DB_PASSWORD = 'pass'
const MYSQL_DB_NAME = 'bot'
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -29,11 +38,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -43,11 +52,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -60,12 +69,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
diff --git a/starters/apps/base-venom-memory/app.js b/starters/apps/base-venom-memory/app.js
index fff68c3..b785def 100644
--- a/starters/apps/base-venom-memory/app.js
+++ b/starters/apps/base-venom-memory/app.js
@@ -10,7 +10,15 @@ const VenomProvider = require('@bot-whatsapp/provider/venom')
const MockAdapter = require('@bot-whatsapp/database/mock')
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -21,11 +29,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -35,11 +43,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -52,12 +60,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
diff --git a/starters/apps/base-venom-mongo/app.js b/starters/apps/base-venom-mongo/app.js
index 90a41a4..d1ec8fc 100644
--- a/starters/apps/base-venom-mongo/app.js
+++ b/starters/apps/base-venom-mongo/app.js
@@ -12,11 +12,20 @@ const MongoAdapter = require('@bot-whatsapp/database/mongo')
/**
* Declaramos las conexiones de Mongo
*/
+
const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
const MONGO_DB_NAME = 'db_bot'
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -27,11 +36,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -41,11 +50,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -58,12 +67,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
diff --git a/starters/apps/base-venom-mysql/app.js b/starters/apps/base-venom-mysql/app.js
index da4ad99..304e6fa 100644
--- a/starters/apps/base-venom-mysql/app.js
+++ b/starters/apps/base-venom-mysql/app.js
@@ -12,13 +12,22 @@ const MySQLAdapter = require('@bot-whatsapp/database/mysql')
/**
* Declaramos las conexiones de MySQL
*/
+
const MYSQL_DB_HOST = 'localhost'
const MYSQL_DB_USER = 'user'
const MYSQL_DB_PASSWORD = 'pass'
const MYSQL_DB_NAME = 'bot'
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -29,11 +38,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -43,11 +52,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -60,12 +69,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
diff --git a/starters/apps/base-wweb-memory/app.js b/starters/apps/base-wweb-memory/app.js
index c2828f2..f968ba9 100644
--- a/starters/apps/base-wweb-memory/app.js
+++ b/starters/apps/base-wweb-memory/app.js
@@ -10,7 +10,15 @@ const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
const MockAdapter = require('@bot-whatsapp/database/mock')
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -21,11 +29,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -35,11 +43,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -52,12 +60,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
diff --git a/starters/apps/base-wweb-mongo/app.js b/starters/apps/base-wweb-mongo/app.js
index bb77f07..60f20e7 100644
--- a/starters/apps/base-wweb-mongo/app.js
+++ b/starters/apps/base-wweb-mongo/app.js
@@ -12,11 +12,20 @@ const MongoAdapter = require('@bot-whatsapp/database/mongo')
/**
* Declaramos las conexiones de Mongo
*/
+
const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
const MONGO_DB_NAME = 'db_bot'
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -27,11 +36,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -41,11 +50,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -58,12 +67,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
diff --git a/starters/apps/base-wweb-mysql/app.js b/starters/apps/base-wweb-mysql/app.js
index 519f142..d8d6f80 100644
--- a/starters/apps/base-wweb-mysql/app.js
+++ b/starters/apps/base-wweb-mysql/app.js
@@ -12,13 +12,22 @@ const MySQLAdapter = require('@bot-whatsapp/database/mysql')
/**
* Declaramos las conexiones de MySQL
*/
+
const MYSQL_DB_HOST = 'localhost'
const MYSQL_DB_USER = 'user'
const MYSQL_DB_PASSWORD = 'pass'
const MYSQL_DB_NAME = 'bot'
/**
- * Declarando flujo hijo
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
+ *
+ * Menu Principal
+ * - SubMenu 1
+ * - Submenu 1.1
+ * - Submenu 2
+ * - Submenu 2.1
+ *
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
*/
const flowBolsos2 = addKeyword(['bolsos2', '2'])
@@ -29,11 +38,11 @@ const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
-const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
+const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*zapatos2*', 'para mas información'],
+ ['Manda:', '*(2) Zapatos2*', 'para mas información'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -43,11 +52,11 @@ const flowZapatos = addKeyword(['zapatos', 'ZAPATOS'])
[...addChild(flowZapatos2)]
)
-const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
+const flowBolsos = addKeyword(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
- ['Manda:', '*2*', 'o', '*bolsos2*', 'para mas información.'],
+ ['Manda:', '*(2) Bolsos2*', 'para mas información.'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
@@ -60,12 +69,12 @@ const flowBolsos = addKeyword(['bolsos', 'BOLSOS'])
/**
* Declarando flujo principal
*/
+
const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
- .addAnswer('Hola, bienvenido a mi tienda')
- .addAnswer('Como puedo ayudarte?')
- .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..'])
+ .addAnswer(['Hola, bienvenido a mi tienda', '¿Como puedo ayudarte?'])
+ .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
- ['Para continuar escribe:', '*Zapatos*', 'o', '*Bolsos*'],
+ ['Para continuar escribe:', '*(1) Zapatos*', '*(2) Bolsos*'],
{ capture: true },
(ctx) => {
console.log('Aqui puedes ver más info del usuario...')
From aed0f76dfb66de4891639ef2bdb79b40928d9b31 Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Sun, 18 Dec 2022 17:17:51 -0600
Subject: [PATCH 18/26] docs: cambios en CONTRIBUTING.MD
Se ampliaron las instrucciones para quitarla las dependencias "latest"
---
CONTRIBUTING.md | 29 +++++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 350f484..ceaf800 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -34,11 +34,36 @@ Se ejecuta el CLI (Command Line Interface) para ayudarte a crear un app-bot de e
yarn run cli
```
-__Seguir instrucciones__
-En la consola encontraras los pasos a seguir
+Selecionas (mediante las flechas arriba y abajo) el proveedor que quieras usar y cuando estes sobre el presiona la barra de espacio, igualmente selecciona la base de datos que quieras usar.
+
+Se creó un subdirecorio con el nombre del proveedor y base de datos que seleccionaste, ej: base-bailey-mysql
+
+Dentro de ese directorio necesitas editar el archivo package.json y borrar las siguientes lineas:
+...
+ "@bot-whatsapp/bot": "latest",
+ "@bot-whatsapp/cli": "latest",
+ "@bot-whatsapp/database": "latest",
+ "@bot-whatsapp/provider": "latest",
+...
+
+Cambiate al directorio base-xxxxx-xxxx que se haya creado.
+...
+cd base-baileys-mysql
+...
+Ejecuta los comandos:
+...
+npm install
+npm run pre-copy
+npm start
+...
+
+

+En el caso de MySql y Mongo es necesario especificar en app.js los datos de la conexión.
+
### 🤔 Preguntas frecuentes
- ¿Como puedo hacer aportaciones de código en el proyecto?: [Ver Video](https://youtu.be/Lxt8Acob6aU)
- ¿Como ejecutar el entorno de pruebas?: [Ver Video](https://youtu.be/Mf9V-dloBfk)
From 50c975c8bd941d7e2ef26598a4c165dc25791cc8 Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Sun, 18 Dec 2022 17:21:16 -0600
Subject: [PATCH 19/26] docs: cambios a CONTRIBUTING.MD
---
CONTRIBUTING.md | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ceaf800..ad639e2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -36,26 +36,26 @@ yarn run cli
Selecionas (mediante las flechas arriba y abajo) el proveedor que quieras usar y cuando estes sobre el presiona la barra de espacio, igualmente selecciona la base de datos que quieras usar.
-Se creó un subdirecorio con el nombre del proveedor y base de datos que seleccionaste, ej: base-bailey-mysql
+Se creó un subdirecorio con el nombre del proveedor y base de datos que seleccionaste, ej: `base-bailey-mysql`
Dentro de ese directorio necesitas editar el archivo package.json y borrar las siguientes lineas:
-...
+```
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
"@bot-whatsapp/provider": "latest",
-...
+```
Cambiate al directorio base-xxxxx-xxxx que se haya creado.
-...
+```
cd base-baileys-mysql
-...
+```
Ejecuta los comandos:
-...
+```
npm install
npm run pre-copy
npm start
-...
+```
From 42a1f6502ff1b5eacb1ff258b02b70aa5fb0e6bc Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Sun, 18 Dec 2022 17:25:24 -0600
Subject: [PATCH 20/26] docs: cambios a CONTRIBUTING.MD
---
CONTRIBUTING.md | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ad639e2..176cfc7 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -36,7 +36,7 @@ yarn run cli
Selecionas (mediante las flechas arriba y abajo) el proveedor que quieras usar y cuando estes sobre el presiona la barra de espacio, igualmente selecciona la base de datos que quieras usar.
-Se creó un subdirecorio con el nombre del proveedor y base de datos que seleccionaste, ej: `base-bailey-mysql`
+Se creó un subdirecorio con el nombre del proveedor y base de datos que seleccionaste, ejemplo: `base-bailey-mysql`
Dentro de ese directorio necesitas editar el archivo package.json y borrar las siguientes lineas:
```
@@ -46,7 +46,7 @@ Dentro de ese directorio necesitas editar el archivo package.json y borrar las s
"@bot-whatsapp/provider": "latest",
```
-Cambiate al directorio base-xxxxx-xxxx que se haya creado.
+Cambiate al directorio creado ejemplo: `base-bailey-mysql`
```
cd base-baileys-mysql
```
@@ -56,13 +56,24 @@ npm install
npm run pre-copy
npm start
```
+En el caso de MySql y Mongo es necesario especificar en app.js los datos de la conexión, ejemplo de MySql:
+```
+const BaileysProvider = require('@bot-whatsapp/provider/baileys')
+const MySQLAdapter = require('@bot-whatsapp/database/mysql')
+/**
+ * Declaramos las conexiones de MySQL
+ */
+const MYSQL_DB_HOST = 'localhost'
+const MYSQL_DB_USER = 'usr'
+const MYSQL_DB_PASSWORD = 'pass'
+const MYSQL_DB_NAME = 'bot'
+```

-En el caso de MySql y Mongo es necesario especificar en app.js los datos de la conexión.
### 🤔 Preguntas frecuentes
- ¿Como puedo hacer aportaciones de código en el proyecto?: [Ver Video](https://youtu.be/Lxt8Acob6aU)
From 4fc3a6332b8838362fb90318f5a41dd7e100d709 Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Sun, 18 Dec 2022 17:58:56 -0600
Subject: [PATCH 21/26] docs: se agrego a README.md info de los flujos
Se agrego a README.md informacion del orden de los flujos y conexiones.
---
starters/apps/base-bailey-memory/README.md | 18 ++++++++++++++----
starters/apps/base-bailey-mongo/README.md | 21 ++++++++++++++++-----
starters/apps/base-bailey-mysql/README.md | 21 ++++++++++++++++-----
starters/apps/base-meta-memory/README.md | 18 ++++++++++++++----
starters/apps/base-twilio-memory/README.md | 18 ++++++++++++++----
starters/apps/base-twilio-mongo/README.md | 19 +++++++++++++++----
starters/apps/base-twilio-mysql/README.md | 20 +++++++++++++++-----
starters/apps/base-venom-memory/README.md | 18 ++++++++++++++----
starters/apps/base-venom-mongo/README.md | 21 ++++++++++++++++-----
starters/apps/base-venom-mysql/README.md | 20 +++++++++++++++-----
starters/apps/base-wweb-memory/README.md | 18 ++++++++++++++----
starters/apps/base-wweb-mongo/README.md | 21 ++++++++++++++++-----
starters/apps/base-wweb-mysql/README.md | 20 +++++++++++++++-----
13 files changed, 194 insertions(+), 59 deletions(-)
diff --git a/starters/apps/base-bailey-memory/README.md b/starters/apps/base-bailey-memory/README.md
index 4d1d6b2..d0e43d2 100644
--- a/starters/apps/base-bailey-memory/README.md
+++ b/starters/apps/base-bailey-memory/README.md
@@ -1,14 +1,24 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
+Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
+
```
npm install
npm start
diff --git a/starters/apps/base-bailey-mongo/README.md b/starters/apps/base-bailey-mongo/README.md
index d5a4d67..a22e43b 100644
--- a/starters/apps/base-bailey-mongo/README.md
+++ b/starters/apps/base-bailey-mongo/README.md
@@ -1,14 +1,15 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
-Recuerda configurar los parametros de conexion de la base de datos
+
+Recuerda configurar los parametros de conexión de la base de datos:
```js
// app.js
@@ -16,6 +17,16 @@ const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
const MONGO_DB_NAME = 'db_bot'
```
+ Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+ Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
+
```
npm install
npm start
diff --git a/starters/apps/base-bailey-mysql/README.md b/starters/apps/base-bailey-mysql/README.md
index fbad3da..4a1cab2 100644
--- a/starters/apps/base-bailey-mysql/README.md
+++ b/starters/apps/base-bailey-mysql/README.md
@@ -1,14 +1,15 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
-Recuerda configurar los parametros de conexion de la base de datos
+
+Recuerda configurar los parametros de conexión de la base de datos
```js
// app.js
@@ -17,6 +18,16 @@ const MYSQL_DB_USER = 'user'
const MYSQL_DB_PASSWORD = 'pass'
const MYSQL_DB_NAME = 'bot'
```
+Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
+
```
npm install
diff --git a/starters/apps/base-meta-memory/README.md b/starters/apps/base-meta-memory/README.md
index 4d1d6b2..d0e43d2 100644
--- a/starters/apps/base-meta-memory/README.md
+++ b/starters/apps/base-meta-memory/README.md
@@ -1,14 +1,24 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
+Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
+
```
npm install
npm start
diff --git a/starters/apps/base-twilio-memory/README.md b/starters/apps/base-twilio-memory/README.md
index 4d1d6b2..d0e43d2 100644
--- a/starters/apps/base-twilio-memory/README.md
+++ b/starters/apps/base-twilio-memory/README.md
@@ -1,14 +1,24 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
+Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
+
```
npm install
npm start
diff --git a/starters/apps/base-twilio-mongo/README.md b/starters/apps/base-twilio-mongo/README.md
index d5a4d67..0791742 100644
--- a/starters/apps/base-twilio-mongo/README.md
+++ b/starters/apps/base-twilio-mongo/README.md
@@ -1,13 +1,14 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
+
Recuerda configurar los parametros de conexion de la base de datos
```js
// app.js
@@ -16,6 +17,16 @@ const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
const MONGO_DB_NAME = 'db_bot'
```
+ Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+ Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
+
```
npm install
npm start
diff --git a/starters/apps/base-twilio-mysql/README.md b/starters/apps/base-twilio-mysql/README.md
index fbad3da..ad304ee 100644
--- a/starters/apps/base-twilio-mysql/README.md
+++ b/starters/apps/base-twilio-mysql/README.md
@@ -1,14 +1,15 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
-Recuerda configurar los parametros de conexion de la base de datos
+
+Recuerda configurar los parametros de conexión de la base de datos
```js
// app.js
@@ -17,6 +18,15 @@ const MYSQL_DB_USER = 'user'
const MYSQL_DB_PASSWORD = 'pass'
const MYSQL_DB_NAME = 'bot'
```
+Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
```
npm install
diff --git a/starters/apps/base-venom-memory/README.md b/starters/apps/base-venom-memory/README.md
index 4d1d6b2..d0e43d2 100644
--- a/starters/apps/base-venom-memory/README.md
+++ b/starters/apps/base-venom-memory/README.md
@@ -1,14 +1,24 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
+Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
+
```
npm install
npm start
diff --git a/starters/apps/base-venom-mongo/README.md b/starters/apps/base-venom-mongo/README.md
index d5a4d67..b2bf791 100644
--- a/starters/apps/base-venom-mongo/README.md
+++ b/starters/apps/base-venom-mongo/README.md
@@ -1,14 +1,15 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
-Recuerda configurar los parametros de conexion de la base de datos
+
+Recuerda configurar los parametros de conexión de la base de datos.
```js
// app.js
@@ -16,6 +17,16 @@ const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
const MONGO_DB_NAME = 'db_bot'
```
+ Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+ Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
+
```
npm install
npm start
diff --git a/starters/apps/base-venom-mysql/README.md b/starters/apps/base-venom-mysql/README.md
index fbad3da..ad304ee 100644
--- a/starters/apps/base-venom-mysql/README.md
+++ b/starters/apps/base-venom-mysql/README.md
@@ -1,14 +1,15 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
-Recuerda configurar los parametros de conexion de la base de datos
+
+Recuerda configurar los parametros de conexión de la base de datos
```js
// app.js
@@ -17,6 +18,15 @@ const MYSQL_DB_USER = 'user'
const MYSQL_DB_PASSWORD = 'pass'
const MYSQL_DB_NAME = 'bot'
```
+Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
```
npm install
diff --git a/starters/apps/base-wweb-memory/README.md b/starters/apps/base-wweb-memory/README.md
index 4d1d6b2..d0e43d2 100644
--- a/starters/apps/base-wweb-memory/README.md
+++ b/starters/apps/base-wweb-memory/README.md
@@ -1,14 +1,24 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
+Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
+
```
npm install
npm start
diff --git a/starters/apps/base-wweb-mongo/README.md b/starters/apps/base-wweb-mongo/README.md
index d5a4d67..a22e43b 100644
--- a/starters/apps/base-wweb-mongo/README.md
+++ b/starters/apps/base-wweb-mongo/README.md
@@ -1,14 +1,15 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
-Recuerda configurar los parametros de conexion de la base de datos
+
+Recuerda configurar los parametros de conexión de la base de datos:
```js
// app.js
@@ -16,6 +17,16 @@ const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
const MONGO_DB_NAME = 'db_bot'
```
+ Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+ Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
+
```
npm install
npm start
diff --git a/starters/apps/base-wweb-mysql/README.md b/starters/apps/base-wweb-mysql/README.md
index fbad3da..ad304ee 100644
--- a/starters/apps/base-wweb-mysql/README.md
+++ b/starters/apps/base-wweb-mysql/README.md
@@ -1,14 +1,15 @@
### CHATBOT Whatsapp
-Este bot es una aplicación que puedes vincular con tu whatsapp crear flujos para automatizar tareas en tu negocio o procesos repetitivos
+Este bot es una aplicación que puedes vincular con tu whatsapp y crear flujos para automatizar tareas en tu negocio o procesos repetitivos.
-Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde.
+Este bot contiene un flujo básico en el cual una persona (cliente) escribe **"hola"** y el bot responde:
- Bienvenido a mi tienda
-- Como puedo ayudarte?
-- Tengo: Zapatos Bolsos etc..
+- ¿Como puedo ayudarte?
+- Tengo: Zapatos, Bolsos etc..
__Iniciar__
-Recuerda configurar los parametros de conexion de la base de datos
+
+Recuerda configurar los parametros de conexión de la base de datos
```js
// app.js
@@ -17,6 +18,15 @@ const MYSQL_DB_USER = 'user'
const MYSQL_DB_PASSWORD = 'pass'
const MYSQL_DB_NAME = 'bot'
```
+Los flujos se declaran de atrás para adelante, es decir que si tienes un flujo de este tipo:
+
+ Menu Principal
+ - SubMenu 1
+ - Submenu 1.1
+ - Submenu 2
+ - Submenu 2.1
+
+Primero se declaran los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
```
npm install
From 964a074aa41324bd09d0c4e2e7aa663a0602b69c Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Mon, 19 Dec 2022 11:45:39 +0100
Subject: [PATCH 22/26] fix(bot): :ambulance: fix callback functions
---
packages/bot/core/core.class.js | 17 ++++++++++++++---
packages/provider/src/baileys/index.js | 19 ++++++++++++++++---
packages/provider/src/venom/index.js | 15 +++++++++++----
3 files changed, 41 insertions(+), 10 deletions(-)
diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js
index e04bd13..7411954 100644
--- a/packages/bot/core/core.class.js
+++ b/packages/bot/core/core.class.js
@@ -92,14 +92,25 @@ class CoreClass {
return refToContinue
}
- // 📄 [options: callback]: Si se tiene un callback se ejecuta
- if (!fallBackFlag && refToContinue && prevMsg?.options?.callback) {
- const indexFlow = this.flowClass.findIndexByRef(refToContinue?.ref)
+ // 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo
+ const cbEveryCtx = (inRef) => {
+ const indexFlow = this.flowClass.findIndexByRef(inRef)
this.flowClass.allCallbacks[indexFlow].callback(messageInComming, {
fallBack,
})
}
+ // 📄 [options: callback]: Si se tiene un callback se ejecuta
+ if (!fallBackFlag) {
+ if (refToContinue && prevMsg?.options?.callback) {
+ cbEveryCtx(refToContinue?.ref)
+ } else {
+ for (const ite of this.flowClass.find(body)) {
+ cbEveryCtx(ite?.ref)
+ }
+ }
+ }
+
// 📄🤘(tiene return) [options: nested(array)]: Si se tiene flujos hijos los implementa
if (!fallBackFlag && prevMsg?.options?.nested?.length) {
const nestedRef = prevMsg.options.nested
diff --git a/packages/provider/src/baileys/index.js b/packages/provider/src/baileys/index.js
index 3855043..a0c8a84 100644
--- a/packages/provider/src/baileys/index.js
+++ b/packages/provider/src/baileys/index.js
@@ -1,7 +1,9 @@
const { ProviderClass } = require('@bot-whatsapp/bot')
const pino = require('pino')
const mime = require('mime-types')
-const fs = require('fs')
+const { existsSync, createWriteStream } = require('fs')
+const { Console } = require('console')
+
const {
default: makeWASocket,
useMultiFileAuthState,
@@ -12,6 +14,10 @@ const {
baileyIsValidNumber,
} = require('./utils')
+const logger = new Console({
+ stdout: createWriteStream(`${process.cwd()}/baileys.log`),
+})
+
/**
* ⚙️ BaileysProvider: Es una clase tipo adaptor
* que extiende clases de ProviderClass (la cual es como interfaz para sber que funciones rqueridas)
@@ -49,7 +55,14 @@ class BaileysProvider extends ProviderClass {
}
)
} catch (e) {
- this.emit('error', e)
+ logger.log(e)
+ this.emit('auth_failure', [
+ `Algo inesperado ha ocurrido NO entres en pánico`,
+ `Reinicia el BOT`,
+ `Tambien puedes mirar un log que se ha creado baileys.log`,
+ `Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
+ `(Puedes abrir un ISSUE) https://github.com/codigoencasa/bot-whatsapp/issues/new/choose`,
+ ])
}
}
@@ -177,7 +190,7 @@ class BaileysProvider extends ProviderClass {
*/
sendFile = async (number, filePath) => {
- if (fs.existsSync(filePath)) {
+ if (existsSync(filePath)) {
const mimeType = mime.lookup(filePath)
const numberClean = number.replace('+', '')
const fileName = filePath.split('/').pop()
diff --git a/packages/provider/src/venom/index.js b/packages/provider/src/venom/index.js
index 1aafd80..8780e84 100644
--- a/packages/provider/src/venom/index.js
+++ b/packages/provider/src/venom/index.js
@@ -1,11 +1,18 @@
const { ProviderClass } = require('@bot-whatsapp/bot')
const venom = require('venom-bot')
+const { createWriteStream } = require('fs')
+const { Console } = require('console')
+
const {
venomCleanNumber,
venomGenerateImage,
venomisValidNumber,
} = require('./utils')
+const logger = new Console({
+ stdout: createWriteStream(`${process.cwd()}/venom.log`),
+})
+
/**
* ⚙️ VenomProvider: Es una clase tipo adaptor
* que extiende clases de ProviderClass (la cual es como interfaz para sber que funciones rqueridas)
@@ -34,13 +41,13 @@ class VenomProvider extends ProviderClass {
)
this.vendor = client
} catch (e) {
+ logger.log(e)
this.emit('auth_failure', {
instructions: [
`Ocurrio un error con la inicializacion de venom`,
- `Necesitas ayuda: https://link.codigoencasa.com/DISCORD`,
- `(Puedes abrir un ISSUE) https://github.com/leifermendez/bot-whatsapp/issues/new/choose`,
- ``,
- `${e?.message}`,
+ `Reinicia el BOT`,
+ `Tambien puedes mirar un log que se ha creado venom.log`,
+ `(Puedes abrir un ISSUE) https://github.com/codigoencasa/bot-whatsapp/issues/new/choose`,
],
})
}
From b6bf43d70fc28c6a229522b9b0de76cec43ac864 Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Mon, 19 Dec 2022 12:16:20 +0100
Subject: [PATCH 23/26] fix(provider): :fire: send message togther with media
---
packages/provider/src/baileys/index.js | 37 ++++++++++++-----------
packages/provider/src/venom/index.js | 17 ++++++++++-
packages/provider/src/venom/utils.js | 41 ++++++++++++++++++++++++--
3 files changed, 75 insertions(+), 20 deletions(-)
diff --git a/packages/provider/src/baileys/index.js b/packages/provider/src/baileys/index.js
index a0c8a84..0b14afe 100644
--- a/packages/provider/src/baileys/index.js
+++ b/packages/provider/src/baileys/index.js
@@ -33,7 +33,7 @@ class BaileysProvider extends ProviderClass {
/**
* Iniciar todo Bailey
*/
- async initBailey() {
+ initBailey = async () => {
const { state, saveCreds } = await useMultiFileAuthState('sessions')
try {
@@ -135,9 +135,10 @@ class BaileysProvider extends ProviderClass {
* @example await sendMessage('+XXXXXXXXXXX', 'https://dominio.com/imagen.jpg' | 'img/imagen.jpg')
*/
- sendMedia = async (number, imageUrl) => {
+ sendMedia = async (number, imageUrl, text) => {
await this.vendor.sendMessage(number, {
image: { url: imageUrl },
+ text,
})
}
@@ -166,21 +167,6 @@ class BaileysProvider extends ProviderClass {
sendText = async (number, message) => {
return this.vendor.sendMessage(number, { text: message })
}
- /**
- * TODO: Necesita terminar de implementar el sendMedia y sendButton guiarse:
- * https://github.com/leifermendez/bot-whatsapp/blob/4e0fcbd8347f8a430adb43351b5415098a5d10df/packages/provider/src/web-whatsapp/index.js#L165
- * @param {string} number
- * @param {string} message
- * @example await sendMessage('+XXXXXXXXXXX', 'Hello World')
- */
- sendMessage = async (numberIn, message, { options }) => {
- const number = baileyCleanNumber(numberIn)
-
- // if (options?.buttons?.length)
- // return this.sendButtons(number, message, options.buttons)
- if (options?.media) return this.sendMedia(number, options.media)
- return this.sendText(number, message)
- }
/**
*
@@ -224,6 +210,23 @@ class BaileysProvider extends ProviderClass {
await this.vendor.sendMessage(`${numberClean}@c.us`, buttonMessage)
}
+
+ /**
+ * TODO: Necesita terminar de implementar el sendMedia y sendButton guiarse:
+ * https://github.com/leifermendez/bot-whatsapp/blob/4e0fcbd8347f8a430adb43351b5415098a5d10df/packages/provider/src/web-whatsapp/index.js#L165
+ * @param {string} number
+ * @param {string} message
+ * @example await sendMessage('+XXXXXXXXXXX', 'Hello World')
+ */
+ sendMessage = async (numberIn, message, { options }) => {
+ const number = baileyCleanNumber(numberIn)
+
+ // if (options?.buttons?.length)
+ // return this.sendButtons(number, message, options.buttons)
+ if (options?.media)
+ return this.sendMedia(number, options.media, message)
+ return this.sendText(number, message)
+ }
}
module.exports = BaileysProvider
diff --git a/packages/provider/src/venom/index.js b/packages/provider/src/venom/index.js
index 8780e84..645e809 100644
--- a/packages/provider/src/venom/index.js
+++ b/packages/provider/src/venom/index.js
@@ -7,6 +7,7 @@ const {
venomCleanNumber,
venomGenerateImage,
venomisValidNumber,
+ venomDownloadMedia,
} = require('./utils')
const logger = new Console({
@@ -104,6 +105,19 @@ class VenomProvider extends ProviderClass {
}
}
+ /**
+ * Enviar imagen o multimedia
+ * @param {*} number
+ * @param {*} mediaInput
+ * @param {*} message
+ * @returns
+ */
+ sendMedia = async (number, mediaInput, message) => {
+ if (!mediaInput) throw new Error(`NO_SE_ENCONTRO: ${mediaInput}`)
+ const fileDownloaded = await venomDownloadMedia(mediaInput)
+ return this.vendor.sendImage(number, fileDownloaded, '.', message)
+ }
+
/**
* Enviar mensaje al usuario
* @param {*} userId
@@ -115,7 +129,8 @@ class VenomProvider extends ProviderClass {
const number = venomCleanNumber(userId)
if (options?.buttons?.length)
return this.sendButtons(number, message, options.buttons)
- if (options?.media) return this.sendMedia(number, options.media)
+ if (options?.media)
+ return this.sendMedia(number, options.media, message)
return this.vendor.sendText(number, message)
}
}
diff --git a/packages/provider/src/venom/utils.js b/packages/provider/src/venom/utils.js
index ff1d733..cf1dc5f 100644
--- a/packages/provider/src/venom/utils.js
+++ b/packages/provider/src/venom/utils.js
@@ -1,4 +1,7 @@
-const { writeFile } = require('fs')
+const { writeFile, createWriteStream } = require('fs')
+const { tmpdir } = require('os')
+const http = require('http')
+const https = require('https')
const combineImage = require('combine-image')
const venomCleanNumber = (number, full = false) => {
@@ -35,9 +38,43 @@ const venomGenerateImage = async (base) => {
cleanImage.write(PATH_QR)
}
+/**
+ * Incompleta
+ * Descargar archivo multimedia para enviar
+ * @param {*} url
+ * @returns
+ */
+const venomDownloadMedia = (url) => {
+ return new Promise((resolve, reject) => {
+ const ext = url.split('.').pop()
+ const checkProtocol = url.includes('https:')
+ const handleHttp = checkProtocol ? https : http
+ const name = `tmp-${Date.now()}.${ext}`
+ const fullPath = `${tmpdir()}/${name}`
+ const file = createWriteStream(fullPath)
+ handleHttp.get(url, function (response) {
+ response.pipe(file)
+ file.on('finish', function () {
+ file.close()
+ resolve(fullPath)
+ })
+ file.on('error', function () {
+ console.log('errro')
+ file.close()
+ reject(null)
+ })
+ })
+ })
+}
+
const venomisValidNumber = (rawNumber) => {
const regexGroup = /\@g.us\b/gm
const exist = rawNumber.match(regexGroup)
return !exist
}
-module.exports = { venomCleanNumber, venomGenerateImage, venomisValidNumber }
+module.exports = {
+ venomCleanNumber,
+ venomGenerateImage,
+ venomisValidNumber,
+ venomDownloadMedia,
+}
From 7d6708c01bbdc5043a7e6ed56fe15a9618115b91 Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Mon, 19 Dec 2022 13:36:18 +0100
Subject: [PATCH 24/26] fix: :art: update
---
packages/bot/core/core.class.js | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js
index 394b704..e545a55 100644
--- a/packages/bot/core/core.class.js
+++ b/packages/bot/core/core.class.js
@@ -95,9 +95,12 @@ class CoreClass {
// 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo
const cbEveryCtx = (inRef) => {
const indexFlow = this.flowClass.findIndexByRef(inRef)
- this.flowClass.allCallbacks[indexFlow].callback(messageInComming, {
- fallBack,
- })
+ this.flowClass.allCallbacks[indexFlow].callback(
+ messageCtxInComming,
+ {
+ fallBack,
+ }
+ )
}
// 📄 [options: callback]: Si se tiene un callback se ejecuta
From 0c94647a27747c3ddf4f02926580370f0d81bdc2 Mon Sep 17 00:00:00 2001
From: Leifer Mendez
Date: Mon, 19 Dec 2022 14:02:09 +0100
Subject: [PATCH 25/26] feat(provider): :zap: update
---
packages/bot/io/methods/addAnswer.js | 5 +-
packages/contexts/src/mock/mock.class.js | 4 +-
yarn.lock | 242 +++++++++++------------
3 files changed, 124 insertions(+), 127 deletions(-)
diff --git a/packages/bot/io/methods/addAnswer.js b/packages/bot/io/methods/addAnswer.js
index d5b53e6..a7db6d6 100644
--- a/packages/bot/io/methods/addAnswer.js
+++ b/packages/bot/io/methods/addAnswer.js
@@ -31,10 +31,7 @@ const addAnswer =
nested: Array.isArray(nested) ? nested : [],
})
- const callback =
- typeof cb === 'function'
- ? cb
- : () => console.log('Callback no definida')
+ const callback = typeof cb === 'function' ? cb : () => null
const lastCtx = inCtx.hasOwnProperty('ctx') ? inCtx.ctx : inCtx
diff --git a/packages/contexts/src/mock/mock.class.js b/packages/contexts/src/mock/mock.class.js
index 4ffece4..6e5c9d2 100644
--- a/packages/contexts/src/mock/mock.class.js
+++ b/packages/contexts/src/mock/mock.class.js
@@ -16,8 +16,8 @@ class MockContext extends CoreClass {
* @param {*} messageCtxInComming
* @returns
*/
- handleMsg = async ({ from, body }) => {
- console.log('DEBUG:', messageCtxInComming)
+ handleMsg = async () => {
+ console.log('DEBUG:')
}
}
diff --git a/yarn.lock b/yarn.lock
index a977b83..a39adac 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -82,15 +82,15 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/client-cognito-identity@npm:3.229.0":
- version: 3.229.0
- resolution: "@aws-sdk/client-cognito-identity@npm:3.229.0"
+"@aws-sdk/client-cognito-identity@npm:3.231.0":
+ version: 3.231.0
+ resolution: "@aws-sdk/client-cognito-identity@npm:3.231.0"
dependencies:
"@aws-crypto/sha256-browser": 2.0.0
"@aws-crypto/sha256-js": 2.0.0
- "@aws-sdk/client-sts": 3.229.0
- "@aws-sdk/config-resolver": 3.226.0
- "@aws-sdk/credential-provider-node": 3.229.0
+ "@aws-sdk/client-sts": 3.231.0
+ "@aws-sdk/config-resolver": 3.231.0
+ "@aws-sdk/credential-provider-node": 3.231.0
"@aws-sdk/fetch-http-handler": 3.226.0
"@aws-sdk/hash-node": 3.226.0
"@aws-sdk/invalid-dependency": 3.226.0
@@ -114,7 +114,7 @@ __metadata:
"@aws-sdk/util-body-length-browser": 3.188.0
"@aws-sdk/util-body-length-node": 3.208.0
"@aws-sdk/util-defaults-mode-browser": 3.226.0
- "@aws-sdk/util-defaults-mode-node": 3.226.0
+ "@aws-sdk/util-defaults-mode-node": 3.231.0
"@aws-sdk/util-endpoints": 3.226.0
"@aws-sdk/util-retry": 3.229.0
"@aws-sdk/util-user-agent-browser": 3.226.0
@@ -122,17 +122,17 @@ __metadata:
"@aws-sdk/util-utf8-browser": 3.188.0
"@aws-sdk/util-utf8-node": 3.208.0
tslib: ^2.3.1
- checksum: 742e26278a61685b276e4dbaa15e3e3fc5702606ec2be72f59a210eedba99b8b66fabfd2d00927e76f7941dbe63701176f5e8c6cad82224f30dfeca2b125c186
+ checksum: 309c433d0005c072db5298d75df4f37826350ffc2bdab940c1147f719f5285207e9761ee8f87884b23ea2cf5f8bf7157fcf992008f0a838491954cbe6925a47a
languageName: node
linkType: hard
-"@aws-sdk/client-sso-oidc@npm:3.229.0":
- version: 3.229.0
- resolution: "@aws-sdk/client-sso-oidc@npm:3.229.0"
+"@aws-sdk/client-sso-oidc@npm:3.231.0":
+ version: 3.231.0
+ resolution: "@aws-sdk/client-sso-oidc@npm:3.231.0"
dependencies:
"@aws-crypto/sha256-browser": 2.0.0
"@aws-crypto/sha256-js": 2.0.0
- "@aws-sdk/config-resolver": 3.226.0
+ "@aws-sdk/config-resolver": 3.231.0
"@aws-sdk/fetch-http-handler": 3.226.0
"@aws-sdk/hash-node": 3.226.0
"@aws-sdk/invalid-dependency": 3.226.0
@@ -155,7 +155,7 @@ __metadata:
"@aws-sdk/util-body-length-browser": 3.188.0
"@aws-sdk/util-body-length-node": 3.208.0
"@aws-sdk/util-defaults-mode-browser": 3.226.0
- "@aws-sdk/util-defaults-mode-node": 3.226.0
+ "@aws-sdk/util-defaults-mode-node": 3.231.0
"@aws-sdk/util-endpoints": 3.226.0
"@aws-sdk/util-retry": 3.229.0
"@aws-sdk/util-user-agent-browser": 3.226.0
@@ -163,17 +163,17 @@ __metadata:
"@aws-sdk/util-utf8-browser": 3.188.0
"@aws-sdk/util-utf8-node": 3.208.0
tslib: ^2.3.1
- checksum: 031bedebd213f7f2522321abb55bb50a2271e4d63ad38e3596eab6daeddb39044a4d72f554fc3e716ea4108317b3169ffb681b6e75f45ec83f730619b588eac6
+ checksum: 4ec5e5f0f25969df5d5341cd1f291a763ed2edaeb317228a7873f18f16471f2cbd83bd575f766a4f0f22c3ebfcf69ecd75891fd0518a205c69eb20ded8734c98
languageName: node
linkType: hard
-"@aws-sdk/client-sso@npm:3.229.0":
- version: 3.229.0
- resolution: "@aws-sdk/client-sso@npm:3.229.0"
+"@aws-sdk/client-sso@npm:3.231.0":
+ version: 3.231.0
+ resolution: "@aws-sdk/client-sso@npm:3.231.0"
dependencies:
"@aws-crypto/sha256-browser": 2.0.0
"@aws-crypto/sha256-js": 2.0.0
- "@aws-sdk/config-resolver": 3.226.0
+ "@aws-sdk/config-resolver": 3.231.0
"@aws-sdk/fetch-http-handler": 3.226.0
"@aws-sdk/hash-node": 3.226.0
"@aws-sdk/invalid-dependency": 3.226.0
@@ -196,7 +196,7 @@ __metadata:
"@aws-sdk/util-body-length-browser": 3.188.0
"@aws-sdk/util-body-length-node": 3.208.0
"@aws-sdk/util-defaults-mode-browser": 3.226.0
- "@aws-sdk/util-defaults-mode-node": 3.226.0
+ "@aws-sdk/util-defaults-mode-node": 3.231.0
"@aws-sdk/util-endpoints": 3.226.0
"@aws-sdk/util-retry": 3.229.0
"@aws-sdk/util-user-agent-browser": 3.226.0
@@ -204,18 +204,18 @@ __metadata:
"@aws-sdk/util-utf8-browser": 3.188.0
"@aws-sdk/util-utf8-node": 3.208.0
tslib: ^2.3.1
- checksum: 970e6ea9666a6e976f0b4e7f693e286ade8c090aca1ae780835050623f5d8bd3ecbc0336d1b3f4037e92d50c48b5d18d5ad6d595ddb62db7efe38b90ab928129
+ checksum: 3551984b8c14f611daa93c7082f2a361caa0c8e985fbfc6d66674ec7f3624364aa7d3c8011aa334729022e3866e5323c6ac18a4ba3e840023128000994d99165
languageName: node
linkType: hard
-"@aws-sdk/client-sts@npm:3.229.0":
- version: 3.229.0
- resolution: "@aws-sdk/client-sts@npm:3.229.0"
+"@aws-sdk/client-sts@npm:3.231.0":
+ version: 3.231.0
+ resolution: "@aws-sdk/client-sts@npm:3.231.0"
dependencies:
"@aws-crypto/sha256-browser": 2.0.0
"@aws-crypto/sha256-js": 2.0.0
- "@aws-sdk/config-resolver": 3.226.0
- "@aws-sdk/credential-provider-node": 3.229.0
+ "@aws-sdk/config-resolver": 3.231.0
+ "@aws-sdk/credential-provider-node": 3.231.0
"@aws-sdk/fetch-http-handler": 3.226.0
"@aws-sdk/hash-node": 3.226.0
"@aws-sdk/invalid-dependency": 3.226.0
@@ -240,7 +240,7 @@ __metadata:
"@aws-sdk/util-body-length-browser": 3.188.0
"@aws-sdk/util-body-length-node": 3.208.0
"@aws-sdk/util-defaults-mode-browser": 3.226.0
- "@aws-sdk/util-defaults-mode-node": 3.226.0
+ "@aws-sdk/util-defaults-mode-node": 3.231.0
"@aws-sdk/util-endpoints": 3.226.0
"@aws-sdk/util-retry": 3.229.0
"@aws-sdk/util-user-agent-browser": 3.226.0
@@ -249,32 +249,32 @@ __metadata:
"@aws-sdk/util-utf8-node": 3.208.0
fast-xml-parser: 4.0.11
tslib: ^2.3.1
- checksum: 18d357f2433ef832948f867c0e22ba34ac57c096e8b5209e0203d892acab9de60d9114a513f8ec9354ec83a89652a8285a49f89ee3203cededc514a25eea67f5
+ checksum: 377eabf0ff0523b7847fe1677084293c322d5525443a859f522b83363eb647a87721245f7b48f7232e2f2f3b49dfdaefdf274e9578915c24617c5d7540624aca
languageName: node
linkType: hard
-"@aws-sdk/config-resolver@npm:3.226.0":
- version: 3.226.0
- resolution: "@aws-sdk/config-resolver@npm:3.226.0"
+"@aws-sdk/config-resolver@npm:3.231.0":
+ version: 3.231.0
+ resolution: "@aws-sdk/config-resolver@npm:3.231.0"
dependencies:
"@aws-sdk/signature-v4": 3.226.0
"@aws-sdk/types": 3.226.0
"@aws-sdk/util-config-provider": 3.208.0
"@aws-sdk/util-middleware": 3.226.0
tslib: ^2.3.1
- checksum: 08bfbc0528da98cba2b46bda05cd9af46f6eced3dbe5e415b11465501fe672d99b869adc9f08cfd2f138c9b61ac119b43eb9a90a490395aec705e1b795022d4d
+ checksum: 67ec8d1f547cdde45f9c0daec21864225cfc04fba732e5e157b59d23f987d588fdc1738e1ce43012f885bdb6e65da8105511f5816e5844a5b839192b5feecc64
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-cognito-identity@npm:3.229.0":
- version: 3.229.0
- resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.229.0"
+"@aws-sdk/credential-provider-cognito-identity@npm:3.231.0":
+ version: 3.231.0
+ resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.231.0"
dependencies:
- "@aws-sdk/client-cognito-identity": 3.229.0
+ "@aws-sdk/client-cognito-identity": 3.231.0
"@aws-sdk/property-provider": 3.226.0
"@aws-sdk/types": 3.226.0
tslib: ^2.3.1
- checksum: 37cc46249390dc5bc6cb39b014a2c9710fcbe53d22b8cf90452473712f7464dffcf286c3c7cb72ae268988c136710a1dbcb52006d93d2de8973c40953ef79058
+ checksum: f0c2059379f703e72538b00e52d2f5ce01c69a8adf3af370af2e72cc971ffe44963e6611917032326c0207b11fe34133780540e4ab0412e36e6c34b589f3dec3
languageName: node
linkType: hard
@@ -302,37 +302,37 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-ini@npm:3.229.0":
- version: 3.229.0
- resolution: "@aws-sdk/credential-provider-ini@npm:3.229.0"
+"@aws-sdk/credential-provider-ini@npm:3.231.0":
+ version: 3.231.0
+ resolution: "@aws-sdk/credential-provider-ini@npm:3.231.0"
dependencies:
"@aws-sdk/credential-provider-env": 3.226.0
"@aws-sdk/credential-provider-imds": 3.226.0
- "@aws-sdk/credential-provider-sso": 3.229.0
+ "@aws-sdk/credential-provider-sso": 3.231.0
"@aws-sdk/credential-provider-web-identity": 3.226.0
"@aws-sdk/property-provider": 3.226.0
"@aws-sdk/shared-ini-file-loader": 3.226.0
"@aws-sdk/types": 3.226.0
tslib: ^2.3.1
- checksum: fb573675c0c34c7fa0e207c78190bce73e42fc1713d93a25868b50002352a70f3584e2ab0a0b249103bcf25c3a60c26261ad3dcfc1d6280b4f5dc8ad4e4b3f49
+ checksum: f6b11d4876602e65464bc25804781b78a6e0c66b39c293178d7e97f2f11c151bd6e23e1e31158c0442dfbc3076f417aeecf44c315d4e509b48e7cfc3be2e7472
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-node@npm:3.229.0":
- version: 3.229.0
- resolution: "@aws-sdk/credential-provider-node@npm:3.229.0"
+"@aws-sdk/credential-provider-node@npm:3.231.0":
+ version: 3.231.0
+ resolution: "@aws-sdk/credential-provider-node@npm:3.231.0"
dependencies:
"@aws-sdk/credential-provider-env": 3.226.0
"@aws-sdk/credential-provider-imds": 3.226.0
- "@aws-sdk/credential-provider-ini": 3.229.0
+ "@aws-sdk/credential-provider-ini": 3.231.0
"@aws-sdk/credential-provider-process": 3.226.0
- "@aws-sdk/credential-provider-sso": 3.229.0
+ "@aws-sdk/credential-provider-sso": 3.231.0
"@aws-sdk/credential-provider-web-identity": 3.226.0
"@aws-sdk/property-provider": 3.226.0
"@aws-sdk/shared-ini-file-loader": 3.226.0
"@aws-sdk/types": 3.226.0
tslib: ^2.3.1
- checksum: a8ad0f6aeb3c7ee03937e7389dbcabeb81f2a6e23c3bfeb84f518b063fb156a2d2f2e4a7267655c6bdfa178ba51e9e0ea74c98397dd6dd58b9a315d9e5a4a6de
+ checksum: e28266dce53130c6e28eb7e82028e29cb2db2f06e1f40c98ae7875bcf2e17553976899f02b93576070c7fd77c131046ec752f543f9aa7e32078e1f3a44c3acf5
languageName: node
linkType: hard
@@ -348,17 +348,17 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/credential-provider-sso@npm:3.229.0":
- version: 3.229.0
- resolution: "@aws-sdk/credential-provider-sso@npm:3.229.0"
+"@aws-sdk/credential-provider-sso@npm:3.231.0":
+ version: 3.231.0
+ resolution: "@aws-sdk/credential-provider-sso@npm:3.231.0"
dependencies:
- "@aws-sdk/client-sso": 3.229.0
+ "@aws-sdk/client-sso": 3.231.0
"@aws-sdk/property-provider": 3.226.0
"@aws-sdk/shared-ini-file-loader": 3.226.0
- "@aws-sdk/token-providers": 3.229.0
+ "@aws-sdk/token-providers": 3.231.0
"@aws-sdk/types": 3.226.0
tslib: ^2.3.1
- checksum: 9497a8c5dfddf70a4740e9e485cea757070a6e9c5c94469cc51599918f2689f6ca794fcaba98320b20aa7b81e7e56c3b91f11d3cf8111335e445638825d0ee58
+ checksum: 0aa69ec7ea5b0115c53972c6ae0419687e0bebc7500fbefa77c1108ecb81e735227982b586180b2fe111427cba17fad75f6db61f69a8b5cf5ad079f7ee09107c
languageName: node
linkType: hard
@@ -374,25 +374,25 @@ __metadata:
linkType: hard
"@aws-sdk/credential-providers@npm:^3.186.0":
- version: 3.229.0
- resolution: "@aws-sdk/credential-providers@npm:3.229.0"
+ version: 3.231.0
+ resolution: "@aws-sdk/credential-providers@npm:3.231.0"
dependencies:
- "@aws-sdk/client-cognito-identity": 3.229.0
- "@aws-sdk/client-sso": 3.229.0
- "@aws-sdk/client-sts": 3.229.0
- "@aws-sdk/credential-provider-cognito-identity": 3.229.0
+ "@aws-sdk/client-cognito-identity": 3.231.0
+ "@aws-sdk/client-sso": 3.231.0
+ "@aws-sdk/client-sts": 3.231.0
+ "@aws-sdk/credential-provider-cognito-identity": 3.231.0
"@aws-sdk/credential-provider-env": 3.226.0
"@aws-sdk/credential-provider-imds": 3.226.0
- "@aws-sdk/credential-provider-ini": 3.229.0
- "@aws-sdk/credential-provider-node": 3.229.0
+ "@aws-sdk/credential-provider-ini": 3.231.0
+ "@aws-sdk/credential-provider-node": 3.231.0
"@aws-sdk/credential-provider-process": 3.226.0
- "@aws-sdk/credential-provider-sso": 3.229.0
+ "@aws-sdk/credential-provider-sso": 3.231.0
"@aws-sdk/credential-provider-web-identity": 3.226.0
"@aws-sdk/property-provider": 3.226.0
"@aws-sdk/shared-ini-file-loader": 3.226.0
"@aws-sdk/types": 3.226.0
tslib: ^2.3.1
- checksum: 9acd1bfb97d5c45a3b02ed74540317791eb00a058bbe4ab2852099f59dff62ab6a7f834dcfdb1f75e80956b86d80a3b44c0574361a12473f8a3e493437a1b36a
+ checksum: edbf6a2821c5bf38d40a83f8d7c8ab967fff85d2c10af79f6f5df40cd52ef185f988c6499552a0294ca98cb7db34cb77e046a78e779e5ff5d362d104c29acc83
languageName: node
linkType: hard
@@ -678,16 +678,16 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/token-providers@npm:3.229.0":
- version: 3.229.0
- resolution: "@aws-sdk/token-providers@npm:3.229.0"
+"@aws-sdk/token-providers@npm:3.231.0":
+ version: 3.231.0
+ resolution: "@aws-sdk/token-providers@npm:3.231.0"
dependencies:
- "@aws-sdk/client-sso-oidc": 3.229.0
+ "@aws-sdk/client-sso-oidc": 3.231.0
"@aws-sdk/property-provider": 3.226.0
"@aws-sdk/shared-ini-file-loader": 3.226.0
"@aws-sdk/types": 3.226.0
tslib: ^2.3.1
- checksum: b099537ba47f3c2520f8081590ef97d22279aea39fcb1f3883f611273c8f15f4190d7b44f3f2debfdb36900f124e5f188193b039ce95c45c6e20d3b48ef9a3da
+ checksum: 3fe2b2776232f2aad499d74ec540431db013520a1c4e3cee6ed4ab4d5cb2a402b1b50dd60f64d1c95e9ebb2bcc44c2244462d62453b9f6226b73082930dcc119
languageName: node
linkType: hard
@@ -770,17 +770,17 @@ __metadata:
languageName: node
linkType: hard
-"@aws-sdk/util-defaults-mode-node@npm:3.226.0":
- version: 3.226.0
- resolution: "@aws-sdk/util-defaults-mode-node@npm:3.226.0"
+"@aws-sdk/util-defaults-mode-node@npm:3.231.0":
+ version: 3.231.0
+ resolution: "@aws-sdk/util-defaults-mode-node@npm:3.231.0"
dependencies:
- "@aws-sdk/config-resolver": 3.226.0
+ "@aws-sdk/config-resolver": 3.231.0
"@aws-sdk/credential-provider-imds": 3.226.0
"@aws-sdk/node-config-provider": 3.226.0
"@aws-sdk/property-provider": 3.226.0
"@aws-sdk/types": 3.226.0
tslib: ^2.3.1
- checksum: cb34426f745aa3965fe25d5c8e38eb4d1c3f85f6f071995b15ecad48afcd0ca01a01b7f572c26dacd917134d9c676625492df8f6fb01d702ad6becb65bd34105
+ checksum: 6dca6704798145569f25002605c4918890ebd2b7bf56d20909192993eea5bcf8fdceff7f51484c9ab7e009a77c3d371e0935666d204c819e703128e857859e73
languageName: node
linkType: hard
@@ -1324,20 +1324,20 @@ __metadata:
languageName: node
linkType: hard
-"@eslint/eslintrc@npm:^1.3.3":
- version: 1.3.3
- resolution: "@eslint/eslintrc@npm:1.3.3"
+"@eslint/eslintrc@npm:^1.3.3, @eslint/eslintrc@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "@eslint/eslintrc@npm:1.4.0"
dependencies:
ajv: ^6.12.4
debug: ^4.3.2
espree: ^9.4.0
- globals: ^13.15.0
+ globals: ^13.19.0
ignore: ^5.2.0
import-fresh: ^3.2.1
js-yaml: ^4.1.0
minimatch: ^3.1.2
strip-json-comments: ^3.1.1
- checksum: f03e9d6727efd3e0719da2051ea80c0c73d20e28c171121527dbb868cd34232ca9c1d0525a66e517a404afea26624b1e47895b6a92474678418c2f50c9566694
+ checksum: 73e39c833deafde8d8706e6fa9b52b6d99927c094ead8e405ea4174e8197ec24aac9ba88ae38cc8ad32eaccf07b9c7fc5dc70761d1fba6da41a928691447305f
languageName: node
linkType: hard
@@ -1348,14 +1348,14 @@ __metadata:
languageName: node
linkType: hard
-"@humanwhocodes/config-array@npm:^0.11.6":
- version: 0.11.7
- resolution: "@humanwhocodes/config-array@npm:0.11.7"
+"@humanwhocodes/config-array@npm:^0.11.6, @humanwhocodes/config-array@npm:^0.11.8":
+ version: 0.11.8
+ resolution: "@humanwhocodes/config-array@npm:0.11.8"
dependencies:
"@humanwhocodes/object-schema": ^1.2.1
debug: ^4.1.1
minimatch: ^3.0.5
- checksum: cf506dc45d9488af7fbf108ea6ac2151ba1a25e6d2b94b9b4fc36d2c1e4099b89ff560296dbfa13947e44604d4ca4a90d97a4fb167370bf8dd01a6ca2b6d83ac
+ checksum: 0fd6b3c54f1674ce0a224df09b9c2f9846d20b9e54fabae1281ecfc04f2e6ad69bf19e1d6af6a28f88e8aa3990168b6cb9e1ef755868c3256a630605ec2cb1d3
languageName: node
linkType: hard
@@ -1401,7 +1401,7 @@ __metadata:
languageName: node
linkType: hard
-"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10":
+"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13":
version: 1.4.14
resolution: "@jridgewell/sourcemap-codec@npm:1.4.14"
checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97
@@ -1702,21 +1702,21 @@ __metadata:
linkType: hard
"@rollup/plugin-commonjs@npm:^23.0.2":
- version: 23.0.4
- resolution: "@rollup/plugin-commonjs@npm:23.0.4"
+ version: 23.0.7
+ resolution: "@rollup/plugin-commonjs@npm:23.0.7"
dependencies:
"@rollup/pluginutils": ^5.0.1
commondir: ^1.0.1
estree-walker: ^2.0.2
glob: ^8.0.3
is-reference: 1.2.1
- magic-string: ^0.26.4
+ magic-string: ^0.27.0
peerDependencies:
rollup: ^2.68.0||^3.0.0
peerDependenciesMeta:
rollup:
optional: true
- checksum: 32d84de06140d4d050c0b402c6a6d858a6f970c3d6f50ea1fba40495b0cd0f977486513639875058287885cfbddc6f8b1ab5ebbe0d28f0364506b372fd4b0bd6
+ checksum: 01d90947bd4aa664c568cec172399825921f29afc035a6d8aec153868ab151ce7901ad56a101c76655e31b21567ddc70313c4bca476685b872218f041757a8c9
languageName: node
linkType: hard
@@ -1754,17 +1754,17 @@ __metadata:
linkType: hard
"@rollup/plugin-replace@npm:^5.0.1":
- version: 5.0.1
- resolution: "@rollup/plugin-replace@npm:5.0.1"
+ version: 5.0.2
+ resolution: "@rollup/plugin-replace@npm:5.0.2"
dependencies:
"@rollup/pluginutils": ^5.0.1
- magic-string: ^0.26.4
+ magic-string: ^0.27.0
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0
peerDependenciesMeta:
rollup:
optional: true
- checksum: d5f98a93dd24086ed1bf70e9299230d1fddae9b132280e2daaca855dba2307eccd5490553e2a03b701b7411593d2921d2d675e5d906b4754c57152f8c50adb07
+ checksum: 3a91b5fa2ce5acfe67c1faf8d479585da30f398f29499cf8a2d2153c899af0b2ef0363012db0e6edc2ebbb3d9fad6dd7ad591c9d977c1ae2ca3256b52e86d950
languageName: node
linkType: hard
@@ -1959,16 +1959,16 @@ __metadata:
linkType: hard
"@types/node@npm:*, @types/node@npm:latest":
- version: 18.11.15
- resolution: "@types/node@npm:18.11.15"
- checksum: cae8692a5cee0316f93ee0342237eb921f70c51afb37c661c711a925a4642654ae7e404c5a80899d481c0cfaff3a6891ef04bacd330a2e72734192bfc91dc2d8
+ version: 18.11.17
+ resolution: "@types/node@npm:18.11.17"
+ checksum: 1933afd068d5c75c068c6c4df6d10edb3b0b2bb6503d544e2f0496ac007c90596e6a5e284a8ef032451bc16f871b7e46719d7d2bea60e9b25d13a77d52161cac
languageName: node
linkType: hard
"@types/node@npm:^14.0.0":
- version: 14.18.34
- resolution: "@types/node@npm:14.18.34"
- checksum: 25ac3b456a0b7b82c76b37276ec86845849e8276fc81d1470a87227c105c619e299aa7165b6148aa11a4ea156b1452f6d3327935f3e7dc0067ff54dde0e3d4e0
+ version: 14.18.35
+ resolution: "@types/node@npm:14.18.35"
+ checksum: edaeea2735aa62a12b9f67311ef6efdb960560e055dc127a658b3571e0bbd52e020bd570227362bf255cd156ddfae18c18205515f1fb3599e34c06a914f167a1
languageName: node
linkType: hard
@@ -4227,11 +4227,11 @@ __metadata:
linkType: hard
"eslint@npm:^8.26.0":
- version: 8.29.0
- resolution: "eslint@npm:8.29.0"
+ version: 8.30.0
+ resolution: "eslint@npm:8.30.0"
dependencies:
- "@eslint/eslintrc": ^1.3.3
- "@humanwhocodes/config-array": ^0.11.6
+ "@eslint/eslintrc": ^1.4.0
+ "@humanwhocodes/config-array": ^0.11.8
"@humanwhocodes/module-importer": ^1.0.1
"@nodelib/fs.walk": ^1.2.8
ajv: ^6.10.0
@@ -4250,7 +4250,7 @@ __metadata:
file-entry-cache: ^6.0.1
find-up: ^5.0.0
glob-parent: ^6.0.2
- globals: ^13.15.0
+ globals: ^13.19.0
grapheme-splitter: ^1.0.4
ignore: ^5.2.0
import-fresh: ^3.0.0
@@ -4271,7 +4271,7 @@ __metadata:
text-table: ^0.2.0
bin:
eslint: bin/eslint.js
- checksum: e05204b05907b82d910983995cb946e0ba62ca514eb2b6791c43f623333b143564a2eee0139909d31c10935c21877d815b1f76dd674a59cb91c471064325c4ab
+ checksum: b7525bb465b342665c3b8bab7e114d514ef1bc4e79f211c919863f9c71767e7412ec82383a22614a92d159783f91101018817000f7c61ce69a5e7015280cafaf
languageName: node
linkType: hard
@@ -4957,7 +4957,7 @@ __metadata:
languageName: node
linkType: hard
-"globals@npm:^13.15.0":
+"globals@npm:^13.15.0, globals@npm:^13.19.0":
version: 13.19.0
resolution: "globals@npm:13.19.0"
dependencies:
@@ -5244,9 +5244,9 @@ __metadata:
linkType: hard
"ignore@npm:^5.1.1, ignore@npm:^5.1.4, ignore@npm:^5.2.0":
- version: 5.2.1
- resolution: "ignore@npm:5.2.1"
- checksum: 7251d00cba49fe88c4f3565fadeb4aa726ba38294a9a79ffed542edc47bafd989d4b2ccf65700c5b1b26a1e91dfc7218fb23017937c79216025d5caeec0ee9d5
+ version: 5.2.2
+ resolution: "ignore@npm:5.2.2"
+ checksum: 2086f12e8dca6978001b3861562272888fcf231f464696938049e0aa576d0562a8f31926630a973e302944c20c64639c14cfdd725bacd208dcda973021377420
languageName: node
linkType: hard
@@ -5711,11 +5711,11 @@ __metadata:
linkType: hard
"json5@npm:^2.2.1":
- version: 2.2.1
- resolution: "json5@npm:2.2.1"
+ version: 2.2.2
+ resolution: "json5@npm:2.2.2"
bin:
json5: lib/cli.js
- checksum: 74b8a23b102a6f2bf2d224797ae553a75488b5adbaee9c9b6e5ab8b510a2fc6e38f876d4c77dea672d4014a44b2399e15f2051ac2b37b87f74c0c7602003543b
+ checksum: 9a878d66b72157b073cf0017f3e5d93ec209fa5943abcb38d37a54b208917c166bd473c26a24695e67a016ce65759aeb89946592991f8f9174fb96c8e2492683
languageName: node
linkType: hard
@@ -6007,12 +6007,12 @@ __metadata:
languageName: node
linkType: hard
-"magic-string@npm:^0.26.4":
- version: 0.26.7
- resolution: "magic-string@npm:0.26.7"
+"magic-string@npm:^0.27.0":
+ version: 0.27.0
+ resolution: "magic-string@npm:0.27.0"
dependencies:
- sourcemap-codec: ^1.4.8
- checksum: 89b0d60cbb32bbf3d1e23c46ea93db082d18a8230b972027aecb10a40bba51be519ecce0674f995571e3affe917b76b09f59d8dbc9a1b2c9c4102a2b6e8a2b01
+ "@jridgewell/sourcemap-codec": ^1.4.13
+ checksum: 273faaa50baadb7a2df6e442eac34ad611304fc08fe16e24fe2e472fd944bfcb73ffb50d2dc972dc04e92784222002af46868cb9698b1be181c81830fd95a13e
languageName: node
linkType: hard
@@ -7020,9 +7020,9 @@ __metadata:
linkType: hard
"node-releases@npm:^2.0.6":
- version: 2.0.7
- resolution: "node-releases@npm:2.0.7"
- checksum: d1c5af091d788b7f9dfce5aa77cbf76c28e8e326b891fe64a05b96943a90cd6ba19eae94ef32777c23f5898a7b00d9cf8266adba33d61ebe6611cca74ccfc0b1
+ version: 2.0.8
+ resolution: "node-releases@npm:2.0.8"
+ checksum: b1ab02c0d5d8e081bf9537232777a7a787dc8fef07f70feabe70a344599b220fe16462f746ac30f3eed5a58549445ad69368964d12a1f8b3b764f6caab7ba34a
languageName: node
linkType: hard
@@ -8099,8 +8099,8 @@ __metadata:
linkType: hard
"rollup@npm:^3.2.3":
- version: 3.7.4
- resolution: "rollup@npm:3.7.4"
+ version: 3.7.5
+ resolution: "rollup@npm:3.7.5"
dependencies:
fsevents: ~2.3.2
dependenciesMeta:
@@ -8108,7 +8108,7 @@ __metadata:
optional: true
bin:
rollup: dist/bin/rollup
- checksum: 0f2478d740527cdc8f4d81a5676221b0ec9495147cae0e6643627f6ac3ac63bf92385e26936ed8ef9ed06678a2ff7d8398489a235581c590f149149a003870d8
+ checksum: 772f85e9f12c83091cbe8ef31dc563198566cfe536dc8099dd6d4e372daa370f9d455cc42c7993d22b02521e25d53733df7e98d2a993e5a22bf11b2591de4e2d
languageName: node
linkType: hard
From 3cca0d3d149f7025822843142157a633dfe55220 Mon Sep 17 00:00:00 2001
From: cheveguerra
Date: Mon, 19 Dec 2022 07:10:05 -0600
Subject: [PATCH 26/26] docs: info en el MIGRATION.md
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Se pone información en MIGRATION.MD, faltan ejemplos de envio de imagenes!
---
MIGRATION.md | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 MIGRATION.md
diff --git a/MIGRATION.md b/MIGRATION.md
new file mode 100644
index 0000000..5b5086e
--- /dev/null
+++ b/MIGRATION.md
@@ -0,0 +1,73 @@
+## MIGRANDO DE LA VERSIÓN 1 A LAS VERSIÓN 2
+
+Pasar los flujos del bot de la versión 1 a la 2 es muy fácil, supongamos que en tu initial.json y response.json tienes un flujo como el siguiente:
+
+```js
+//initial.json
+[
+ {
+ "keywords": [
+ "hola",
+ "ola",
+ "alo"
+ ],
+ "key": "hola"
+ },
+ {
+ "keywords": ["adios", "bye"],
+ "key": "adios"
+ }
+]
+```
+y
+
+```js
+//response.json
+{
+ "hola":{
+ "replyMessage":[
+ "Gracias a ti! \n"
+ ],
+ "media":null,
+ "trigger":null
+ },
+ "adios":{
+ "replyMessage":[
+ "Que te vaya bien!!"
+ ],
+ "media":null
+ }
+}
+```
+En la versión 2, no es necesario tener esos 2 archivos, los flujos se ponen directamente en app.js de la siguiente manera:
+
+```js
+//app.js
+/**
+ * Declarando flujos principales.
+ */
+const flowHola = addKeyword(['hola', 'ola', 'alo']) //Aqui van los "keywords" de initial.json
+ .addAnswer('Gracias a ti!') // Aquí va la respuesta del response.json, no es necesario especificar nuevamente los "keywords"
+ .addAnswer('Siempre un placer!!!') // Y se pueden agregar varias respuestas encadenadas ... TANTAS com sean necesarias.
+
+const flowAdios = addKeyword(['adios', 'bye']) //Aqui van los "keywords" de initial.json
+ .addAnswer('Que te vaya bien!!') // Aquí va la respuesta del response.json, no es necesario especificar nuevamente los "keywords"
+ .addAnswer('Hasta luego!', // Y se pueden agregar varias respuestas encadenadas ... TANTAS com sean necesarias.
+ null, null,[...addChild(flowHijo1)] // Y se pueden agregar flujos HIJOS (Sub Menus). Los flujos hijos se tienen que definir ANTES que los principales.
+ )
+
+
+##FALTAN EJEMPLOS DE ENVIOS DE IMAGENES!
+
+
+ const main = async () => {
+ const adapterDB = new MockAdapter()
+ const adapterFlow = createFlow([flowHola, flowAdios]) // Aqui se crean los flujos.
+ const adapterProvider = createProvider(BaileysProvider)
+ createBot({
+ flow: adapterFlow,
+ provider: adapterProvider,
+ database: adapterDB,
+ })
+}
+ ```
\ No newline at end of file