Skip to content

Commit

Permalink
release-0.1.34
Browse files Browse the repository at this point in the history
release-0.1.34
  • Loading branch information
leifermendez authored Nov 1, 2023
2 parents 6677522 + ae61a74 commit b5e57e0
Show file tree
Hide file tree
Showing 150 changed files with 3,272 additions and 930 deletions.
3 changes: 2 additions & 1 deletion .eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
packages/docs/*
packages/portal/*
packages/portal/*
starters/apps/*
23 changes: 23 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"env": {
"browser": true,
"commonjs": true,
"es2021": true,
"node": true
},
"extends": "eslint:recommended",
"overrides": [
{
"files": ["packages/**/*.js"],
"rules": {
"no-unsafe-negation": "off",
"no-prototype-builtins": "off",
"no-useless-escape": "off"
}
}
],
"parserOptions": {
"ecmaVersion": "latest"
},
"ignorePatterns": ["node_modules/", "starters/", "__test__", "base-**"]
}
18 changes: 0 additions & 18 deletions .eslintrc.js

This file was deleted.

2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ Por favor agrega una descripción de tu aporte para tener más contexto y poder
> Forma parte de este proyecto.
- [Discord](https://link.codigoencasa.com/DISCORD)
- [Twitter](https://twitter.com/leifermendez)
- [𝕏 (Twitter)](https://twitter.com/leifermendez)
- [Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
- [Telegram](https://t.me/leifermendez)
4 changes: 2 additions & 2 deletions .github/workflows/netlify-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,5 @@ jobs:
- name: Build and Deploy
run: |
cd packages/docs
netlify deploy --build --site ${{ secrets.NETLIFY_SITE_ID }} --auth ${{ secrets.NETLIFY_AUTH_TOKEN }}
cd packages/docs && npm run build
netlify deploy --site ${{ secrets.NETLIFY_SITE_ID }} --auth ${{ secrets.NETLIFY_AUTH_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/netlify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ jobs:
- name: Build and Deploy
run: |
cd packages/docs && netlify deploy --prod --build --site ${{ secrets.NETLIFY_SITE_ID }} --auth ${{ secrets.NETLIFY_AUTH_TOKEN }}
cd packages/docs && npm run build && netlify deploy --prod --site ${{ secrets.NETLIFY_SITE_ID }} --auth ${{ secrets.NETLIFY_AUTH_TOKEN }}
3 changes: 3 additions & 0 deletions .github/workflows/releases-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,6 @@ jobs:

- name: Release @bot-whatsapp/portal
run: node ./scripts/release.js --name=portal --version= --token="${{ secrets.NPM_TOKEN }}"

- name: Release eslint-plugin-bot-whatsapp
run: node ./scripts/release.js --name=eslint-plugin-bot-whatsapp --version= --token="${{ secrets.NPM_TOKEN }}"
3 changes: 3 additions & 0 deletions .github/workflows/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,5 +66,8 @@ jobs:
- name: Release @bot-whatsapp/portal
run: node ./scripts/release.js --name=portal --version="${{ steps.package-version.outputs.current-version}}" --token="${{ secrets.NPM_TOKEN }}"

- name: Release eslint-plugin-bot-whatsapp
run: node ./scripts/release.js --name=eslint-plugin-bot-whatsapp --version="${{ steps.package-version.outputs.current-version}}" --token="${{ secrets.NPM_TOKEN }}"

- name: Release Github
run: node ./scripts/github.js --version="${{ steps.package-version.outputs.current-version}}" --token="${{ secrets.OCTO_TOKEN }}"
82 changes: 41 additions & 41 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,80 +1,86 @@
# CONTRIBUTING

### 📄 Bienvenido/a
Si deseas colaborar con el proyecto existen varias maneras, la primera de ellas es aportando conocimiento y mejorando el repositorio (actualizando documentación, mejorando código, revisando __[issues](https://github.com/codigoencasa/bot-whatsapp/issues)__, etc).
### 👋 Bienvenido/a
Nos alegra que estés interesado en colaborar en nuestro proyecto. Para hacerlo, puedes contribuir de diversas maneras, la principal es aportando tu conocimiento y habilidades para mejorar el repositorio, ya sea actualizando la documentación, mejorando el código o revisando problemas pendientes en los __[issues](https://github.com/codigoencasa/bot-whatsapp/issues)__.

También es bien recibido los aportes económicos que se utilizaran para diferentes fines __[ver más](https://opencollective.com/bot-whatsapp)__
También agradecemos los aportes económicos, que utilizaremos para diversos fines relacionados con el desarrollo y mantenimiento del proyecto. Puedes ver más detalles aquí: __[ver más](https://opencollective.com/bot-whatsapp)__

El lenguaje principal que se utilizó para desarrollar este proyecto fue __JavaScript__ con el fin de qué personas que están iniciando en el mundo de la programación puedan entender fácilmente.
El lenguaje principal que usamos en este proyecto es __JavaScript__, para que las personas que están comenzando a programar puedan entenderlo más fácilmente.


### 🤔 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)
### 💡 Preguntas frecuentes
- ¿Cómo puedo hacer aportaciones de código en el proyecto?: [Ver Video](https://youtu.be/Lxt8Acob6aU)
- ¿Cómo ejecutar el entorno de pruebas?: [Ver Video](https://youtu.be/Mf9V-dloBfk)
- ¿Cómo crear un nuevo proveedor?: [Ver Video](https://youtu.be/cahK9zH3SI8)
- ¿Qué son los GithubActions?: [Ver Video](https://youtu.be/nYBEBFKLiqw)
- ¿Canales de comunicación?: [Discord](https://link.codigoencasa.com/DISCORD)

-----
------

![](https://i.giphy.com/media/ntMt6TvalpstTIx7Ak/giphy.webp)
__Requisitos:__
Para poder aportar al proyecto necesitarás tener:
- Node v18 o superior. Puedes descargar Node aquí: __[descargar node](https://nodejs.org/es/download/)__
- __[pnpm](https://pnpm.io/cli/install)__ como administrador de paquetes. Puedes seguir el enlace para saber cómo instalarlo.
- __[VSCode](https://code.visualstudio.com/download)__ es el editor de código que recomendamos, ya que cuenta con plugins útiles.
- __[Conventional Commits](https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits&ssr=false#overview)__ es un plugin de VSCode que te ayudará a crear commits semánticos, siguiendo buenas prácticas.

### 🚀 Empezando

__Requerimientos:__
- Node v16 o superior __[descargar node](https://nodejs.org/es/download/)__
- __[Yarn](https://classic.yarnpkg.com/lang/en/docs/install/#windows-stable)__ como gestor de paquetes. En el link conseguirás las intrucciones para instalar yarn.
- __[VSCode](https://code.visualstudio.com/download)__ (recomendado): Editor de código con plugins.
- __[Conventional Commits](https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits&ssr=false#overview)__ (plugin-vscode) este plugin te ayudará a crear commit semántico.
- Se usará la rama __dev__ *(https://github.com/leifermendez/bot-whatsapp/tree/dev)* como rama principal hasta que se haga oficialmente el lanzamiento de la V2.
__Hacer Fork del Proyecto__

### 🚀 Iniciando
Antes de comenzar, es necesario que hagas un fork del proyecto en tu propia cuenta de GitHub. Esto te permitirá trabajar en tu propia copia del repositorio. Haz clic en el siguiente enlace para realizar el fork: [aquí](https://github.com/codigoencasa/bot-whatsapp/fork)

__Clonar repo rama dev__
__Clona repositorio (desde tu fork)__
```
git clone --branch dev https://github.com/codigoencasa/bot-whatsapp
git clone https://github.com/TU_USERNAME/bot-whatsapp
```
__Instalar dependencias__
Entra a la carpeta del proyecto y ejecuta el siguiente comando para instalar las dependencias necesarias.
```
cd bot-whatsapp
yarn install
pnpm install
```

__Compilar (build)__
Para compilar la aplicación es necesario ejecutar este comando, el cual genera un directorio `lib` dentro de los paquetes del monorepo.
Para compilar la aplicación, debes ejecutar el siguiente comando, el cual generará un directorio `lib` dentro de los paquetes del monorepo.
```
pnpm run build
```

__Aplicación de ejemplo__
Se ejecuta el CLI (Command Line Interface) para ayudarte a crear un bot de ejemplo.
```
yarn build
pnpm run cli
```

__Example-app__
Se ejecuta el CLI (Command Line Interface) para ayudarte a crear un app-bot de ejemplo.
__Test e2e__
Todos los cambios realizados deben de pasar las pruebas end-to-end
```
yarn run cli
pnpm run test.e2e
```

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.
Selecciona el proveedor y la base de datos que quieras usar usando las flechas arriba y abajo de tu teclado y marcándolas con la barra de espacio.

Se creó un subdirecorio con el nombre del proveedor y base de datos que seleccionaste, ejemplo: `base-bailey-mysql`
Este proceso creará un subdirectorio con el nombre del proveedor y la base de datos que seleccionaste, por ejemplo: `base-bailey-mysql`

Dentro de ese directorio necesitas editar el archivo package.json y borrar las siguientes lineas:
Dentro de ese directorio, tendrás que editar el archivo package.json y borrar las siguientes líneas:
```
"@bot-whatsapp/bot": "latest",
"@bot-whatsapp/cli": "latest",
"@bot-whatsapp/database": "latest",
"@bot-whatsapp/provider": "latest",
```

Cambiate al directorio creado ejemplo: `base-bailey-mysql`
A continuación, debes desplazarte al directorio que acabas de crear, por ejemplo: `base-baileys-mysql`
```
cd base-baileys-mysql
```
Ejecuta los comandos:
Y ejecuta los siguientes 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, ejemplo de MySql:
En el caso de MySql y Mongo, necesitarás especificar en el archivo app.js los datos de la conexión, por ejemplo, para MySql:
```
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
const MySQLAdapter = require('@bot-whatsapp/database/mysql')
Expand All @@ -87,17 +93,11 @@ const MYSQL_DB_USER = 'usr'
const MYSQL_DB_PASSWORD = 'pass'
const MYSQL_DB_NAME = 'bot'
```
<!-- __Seguir instrucciones__
En la consola encontraras los pasos a seguir -->

![](https://i.imgur.com/dC6lEwy.png)


> __NOTA:__ [Eres libre de aportar informacion inexacta a este documento o arreglar horrores de ortografia que dificultan la comprensión. 🤣](
https://github.com/codigoencasa/bot-whatsapp/edit/dev/CONTRIBUTING.md)
> __NOTA:__ Si encuentras información que podría mejorarse en este documento o algún error ortográfico que dificulte la comprensión, eres libre de corregirlo.([edita aqui](https://github.com/codigoencasa/bot-whatsapp/edit/dev/CONTRIBUTING.md))
------
- [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)
- [Telegram](https://t.me/leifermendez)
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Entiende más a fondo sus funcionalidades explicadas en nuestra documentación.
- [📄 Documentación](https://bot-whatsapp.netlify.app/)
- [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1)
- [💻 Discord](https://link.codigoencasa.com/DISCORD)
- [👌 Twitter](https://twitter.com/leifermendez)
- [👌 𝕏 (Twitter)](https://twitter.com/leifermendez)
- [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)

## Comunidad
Expand Down
12 changes: 5 additions & 7 deletions __mocks__/mock.provider.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
const ProviderClass = require('../packages/bot/provider/provider.class')
const { delay } = require('./env')
class MockProvider extends ProviderClass {
constructor() {
super()
}

delaySendMessage = (miliseconds, eventName, payload) =>
new Promise((res) =>
setTimeout(() => {
this.emit(eventName, payload)
res
}, miliseconds)
)
delaySendMessage = async (miliseconds, eventName, payload) => {
await delay(miliseconds)
this.emit(eventName, payload)
}

sendMessage = async (userId, message) => {
console.log(`Enviando... ${userId}, ${message}`)
Expand Down
2 changes: 1 addition & 1 deletion __test__/0.0.0-case.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ suiteCase(`Responder a "hola"`, async ({ database, provider }) => {
suiteCase(`NO reponder a "pepe"`, async ({ database, provider }) => {
const flow = addKeyword('hola').addAnswer('Buenas!').addAnswer('Como vamos!')

createBot({
await createBot({
database,
provider,
flow: createFlow([flow]),
Expand Down
8 changes: 4 additions & 4 deletions __test__/0.0.1-case.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ suiteCase.after.each(clear)
suiteCase(`Responder a "EVENTS.LOCATION"`, async ({ database, provider }) => {
const flow = addKeyword(EVENTS.LOCATION).addAnswer('Gracias por tu location')

createBot({
await createBot({
database,
provider,
flow: createFlow([flow]),
Expand Down Expand Up @@ -51,7 +51,7 @@ suiteCase(`Responder a "EVENTS.DOCUMENT"`, async ({ database, provider }) => {
suiteCase(`Responder a "EVENTS.WELCOME"`, async ({ database, provider }) => {
const flow = addKeyword(EVENTS.WELCOME).addAnswer('Bienvenido!')

createBot({
await createBot({
database,
provider,
flow: createFlow([flow]),
Expand All @@ -71,7 +71,7 @@ suiteCase(`Responder a "EVENTS.WELCOME"`, async ({ database, provider }) => {
suiteCase(`Responder a "EVENTS.MEDIA"`, async ({ database, provider }) => {
const flow = addKeyword(EVENTS.MEDIA).addAnswer('gracias por la imagen o video!')

createBot({
await createBot({
database,
provider,
flow: createFlow([flow]),
Expand All @@ -91,7 +91,7 @@ suiteCase(`Responder a "EVENTS.MEDIA"`, async ({ database, provider }) => {
suiteCase(`Responder a "EVENTS.VOICE_NOTE"`, async ({ database, provider }) => {
const flow = addKeyword(EVENTS.VOICE_NOTE).addAnswer('gracias por la nota de voz!')

createBot({
await createBot({
database,
provider,
flow: createFlow([flow]),
Expand Down
8 changes: 4 additions & 4 deletions __test__/0.0.2-case.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ suiteCase(`Debe saltar de flujo`, async ({ database, provider }) => {
})
.addAnswer('este mensaje no deberia existir')

createBot({
await createBot({
database,
flow: createFlow([flujoBienvenida]),
provider,
})

await provider.delaySendMessage(0, 'message', {
await provider.delaySendMessage(50, 'message', {
from: '000',
body: 'hola',
})
Expand All @@ -52,7 +52,7 @@ suiteCase(`Debe saltar de flujo con capture sin flowDynamic`, async ({ database,
})
.addAnswer('este mensaje no deberia existir')

createBot({
await createBot({
database,
flow: createFlow([flujoBienvenida]),
provider,
Expand Down Expand Up @@ -90,7 +90,7 @@ suiteCase(`Debe saltar de flujo con capture con flowDynamic`, async ({ database,
})
.addAnswer('este mensaje no deberia existir')

createBot({
await createBot({
database,
flow: createFlow([flujoBienvenida]),
provider,
Expand Down
4 changes: 2 additions & 2 deletions __test__/0.1.0-case.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ suiteCase.after.each(clear)
suiteCase(`Responder a "ole" en minuscula`, async ({ database, provider }) => {
const flow = addKeyword(['ola', 'ole'], { sensitive: true }).addAnswer('Bienvenido a la OLA')

createBot({
await createBot({
database,
provider,
flow: createFlow([flow]),
Expand All @@ -31,7 +31,7 @@ suiteCase(`Responder a "ole" en minuscula`, async ({ database, provider }) => {
suiteCase(`NO Responder a "ole" en minuscula`, async ({ database, provider }) => {
const flow = addKeyword(['ola', 'ole'], { sensitive: true }).addAnswer('Bienvenido a la OLA')

createBot({
await createBot({
database,
provider,
flow: createFlow([flow]),
Expand Down
3 changes: 3 additions & 0 deletions __test__/0.1.1-case.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,13 @@ suiteCase(`Debe continuar el flujo del hijo`, async ({ database, provider }) =>
body: 'hola',
})

await delay(0)
await provider.delaySendMessage(30, 'message', {
from: '000',
body: '[email protected]',
})

await delay(0)
await provider.delaySendMessage(60, 'message', {
from: '000',
body: 'paypal',
Expand All @@ -66,6 +68,7 @@ suiteCase(`Debe continuar el flujo del hijo`, async ({ database, provider }) =>
body: 'continue!',
})

await delay(0)
await delay(800)
const getHistory = database.listHistory.map((i) => i.answer)

Expand Down
4 changes: 2 additions & 2 deletions __test__/0.1.2-case.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ suiteCase(`Responder a una expresion regular`, async ({ database, provider }) =>
.addAnswer(`Gracias por proporcionar un numero de tarjeta valido`)
.addAnswer('Fin!')

createBot({
await createBot({
database,
provider,
flow: createFlow([flow]),
Expand All @@ -39,7 +39,7 @@ suiteCase(`NO Responder a una expresion regular`, async ({ database, provider })
.addAnswer(`Gracias por proporcionar un numero de tarjeta valido`)
.addAnswer('Fin!')

createBot({
await createBot({
database,
provider,
flow: createFlow([flow]),
Expand Down
Loading

0 comments on commit b5e57e0

Please sign in to comment.