diff --git a/.gitignore b/.gitignore index d7f50c1..60be892 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ lib tmp/ .yarn/* !.yarn/releases +!.yarn/plugins/@yarnpkg/plugin-postinstall.cjs .fleet/ example-app*/ qr.svg diff --git a/.vscode/settings.json b/.vscode/settings.json index 0c36bdf..2d8c005 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,3 @@ { - "conventionalCommits.scopes": ["hook"] + "conventionalCommits.scopes": ["hook", "contributing"] } diff --git a/.yarn/plugins/@yarnpkg/plugin-postinstall.cjs b/.yarn/plugins/@yarnpkg/plugin-postinstall.cjs new file mode 100644 index 0000000..6db2a21 --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-postinstall.cjs @@ -0,0 +1,8 @@ +/* eslint-disable */ +module.exports = { +name: "@yarnpkg/plugin-postinstall", +factory: function (require) { +var plugin;(()=>{"use strict";var e={d:(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{default:()=>s});const n=require("@yarnpkg/core"),o=require("clipanion"),a={postinstall:{description:"Postinstall hook that will always run in Yarn v2",type:n.SettingsType.STRING,default:""}},r=require("@yarnpkg/shell"),l=async e=>{if(e){console.log("Running postinstall command...");const t=await r.execute(e);if(0!==t)throw new Error("postinstall command failed with exit code "+t)}};var i=function(e,t,n,o){var a,r=arguments.length,l=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,n,o);else for(var i=e.length-1;i>=0;i--)(a=e[i])&&(l=(r<3?a(l):r>3?a(t,n,l):a(t,n))||l);return r>3&&l&&Object.defineProperty(t,n,l),l};class c extends o.Command{async execute(){const e=(await n.Configuration.find(this.context.cwd,this.context.plugins)).get("postinstall");await l(e)}}i([o.Command.Path("postinstall")],c.prototype,"execute",null);const s={configuration:a,commands:[c],hooks:{afterAllInstalled:async e=>{const t=e.configuration.get("postinstall");await l(t)}}};plugin=t})(); +return plugin; +} +}; \ No newline at end of file diff --git a/starters/apps/base/README.md b/starters/apps/base/README.md new file mode 100644 index 0000000..f8e0e90 --- /dev/null +++ b/starters/apps/base/README.md @@ -0,0 +1,12 @@ +### BASE APP + +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.. + +------ +- [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/package.json b/starters/apps/base/package.json index 167c0dc..e37c6b5 100644 --- a/starters/apps/base/package.json +++ b/starters/apps/base/package.json @@ -8,6 +8,9 @@ }, "keywords": [], "dependencies": { + "@bot-whatsapp/bot": "file:../packages/bot", + "@bot-whatsapp/database": "file:../packages/database", + "@bot-whatsapp/provider": "file:../packages/provider", "whatsapp-web.js": "^1.18.3" }, "author": "", diff --git a/starters/apps/basic/README.md b/starters/apps/basic/README.md new file mode 100644 index 0000000..98c9930 --- /dev/null +++ b/starters/apps/basic/README.md @@ -0,0 +1,12 @@ +### BASIC APP + +Este bot contiene un flujo basico en el cual una persona (cliente) escribe **"hola"** y el bot responde. + + +![](https://i.imgur.com/0z0G91w.png) + +------ +- [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/basic/app.js b/starters/apps/basic/app.js new file mode 100644 index 0000000..e66d350 --- /dev/null +++ b/starters/apps/basic/app.js @@ -0,0 +1,60 @@ +const { + createBot, + createProvider, + createFlow, + addKeyword, + addChild, +} = require('@bot-whatsapp/bot') + +/** + * ATENCION: Si vas a usar el provider whatsapp-web.js + * recuerda ejecutar npm i whatsapp-web.js@latest + */ + +const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp') +const MockAdapter = require('@bot-whatsapp/database/mock') + +/** + * Declarando flujo hijo + */ + +const flowZapatos = addKeyword(['zapatos', 'ZAPATOS']) + .addAnswer('🤯 Veo que elegiste zapatos') + .addAnswer('Tengo muchos zapatos...bla bla') + +const flowBolsos = addKeyword(['bolsos', 'BOLSOS']) + .addAnswer('🙌 Veo que elegiste bolsos') + .addAnswer('Tengo muchos bolsos...bla bla') + +/** + * Declarando flujo principal + */ +const flowPrincipal = addKeyword(['hola', 'ole', 'HOLA']) + .addAnswer('Bienvenido a mi tienda') + .addAnswer('Como puedo ayudarte?') + .addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc..']) + .addAnswer('Escribe zapatos o bolsos') + .addAnswer( + 'esperando respuesta...', + { 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(WebWhatsappProvider) + + createBot({ + flow: adapterFlow, + provider: adapterProvider, + database: adapterDB, + }) +} + +main() diff --git a/starters/apps/basic/package.json b/starters/apps/basic/package.json new file mode 100644 index 0000000..e37c6b5 --- /dev/null +++ b/starters/apps/basic/package.json @@ -0,0 +1,18 @@ +{ + "name": "bot-whatsapp-base", + "version": "1.0.0", + "description": "", + "main": "app.js", + "scripts": { + "start": "node app.js" + }, + "keywords": [], + "dependencies": { + "@bot-whatsapp/bot": "file:../packages/bot", + "@bot-whatsapp/database": "file:../packages/database", + "@bot-whatsapp/provider": "file:../packages/provider", + "whatsapp-web.js": "^1.18.3" + }, + "author": "", + "license": "ISC" +}