create-builderbot 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/bin/create.cjs +3 -0
  2. package/dist/index.cjs +15 -0
  3. package/dist/index.d.ts +9 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/package.json +34 -0
  6. package/starters/apps/base-baileys-json/.eslintrc.js +23 -0
  7. package/starters/apps/base-baileys-json/Dockerfile +9 -0
  8. package/starters/apps/base-baileys-json/README.md +22 -0
  9. package/starters/apps/base-baileys-json/app.js +79 -0
  10. package/starters/apps/base-baileys-json/package.json +29 -0
  11. package/starters/apps/base-baileys-memory/.eslintrc.js +23 -0
  12. package/starters/apps/base-baileys-memory/Dockerfile +9 -0
  13. package/starters/apps/base-baileys-memory/README.md +22 -0
  14. package/starters/apps/base-baileys-memory/app.js +79 -0
  15. package/starters/apps/base-baileys-memory/package.json +28 -0
  16. package/starters/apps/base-baileys-mongo/.eslintrc.js +23 -0
  17. package/starters/apps/base-baileys-mongo/Dockerfile +9 -0
  18. package/starters/apps/base-baileys-mongo/README.md +40 -0
  19. package/starters/apps/base-baileys-mongo/app.js +99 -0
  20. package/starters/apps/base-baileys-mongo/package.json +30 -0
  21. package/starters/apps/base-baileys-mysql/.eslintrc.js +23 -0
  22. package/starters/apps/base-baileys-mysql/Dockerfile +9 -0
  23. package/starters/apps/base-baileys-mysql/README.md +40 -0
  24. package/starters/apps/base-baileys-mysql/app.js +104 -0
  25. package/starters/apps/base-baileys-mysql/package.json +29 -0
  26. package/starters/apps/base-baileys-postgres/.eslintrc.js +23 -0
  27. package/starters/apps/base-baileys-postgres/Dockerfile +9 -0
  28. package/starters/apps/base-baileys-postgres/README.md +40 -0
  29. package/starters/apps/base-baileys-postgres/app.js +105 -0
  30. package/starters/apps/base-baileys-postgres/package.json +29 -0
  31. package/starters/apps/base-meta-json/.eslintrc.js +23 -0
  32. package/starters/apps/base-meta-json/Dockerfile +9 -0
  33. package/starters/apps/base-meta-json/README.md +40 -0
  34. package/starters/apps/base-meta-json/app.js +94 -0
  35. package/starters/apps/base-meta-json/package.json +29 -0
  36. package/starters/apps/base-meta-memory/.eslintrc.js +23 -0
  37. package/starters/apps/base-meta-memory/Dockerfile +9 -0
  38. package/starters/apps/base-meta-memory/README.md +40 -0
  39. package/starters/apps/base-meta-memory/app.js +94 -0
  40. package/starters/apps/base-meta-memory/package.json +29 -0
  41. package/starters/apps/base-meta-mongo/.eslintrc.js +23 -0
  42. package/starters/apps/base-meta-mongo/Dockerfile +9 -0
  43. package/starters/apps/base-meta-mongo/README.md +40 -0
  44. package/starters/apps/base-meta-mongo/app.js +105 -0
  45. package/starters/apps/base-meta-mongo/package.json +30 -0
  46. package/starters/apps/base-meta-mysql/.eslintrc.js +23 -0
  47. package/starters/apps/base-meta-mysql/Dockerfile +9 -0
  48. package/starters/apps/base-meta-mysql/README.md +40 -0
  49. package/starters/apps/base-meta-mysql/app.js +109 -0
  50. package/starters/apps/base-meta-mysql/package.json +30 -0
  51. package/starters/apps/base-meta-postgres/.eslintrc.js +23 -0
  52. package/starters/apps/base-meta-postgres/Dockerfile +9 -0
  53. package/starters/apps/base-meta-postgres/README.md +40 -0
  54. package/starters/apps/base-meta-postgres/app.js +110 -0
  55. package/starters/apps/base-meta-postgres/package.json +30 -0
  56. package/starters/apps/base-twilio-json/.eslintrc.js +23 -0
  57. package/starters/apps/base-twilio-json/Dockerfile +9 -0
  58. package/starters/apps/base-twilio-json/README.md +40 -0
  59. package/starters/apps/base-twilio-json/app.js +93 -0
  60. package/starters/apps/base-twilio-json/package.json +27 -0
  61. package/starters/apps/base-twilio-memory/.eslintrc.js +23 -0
  62. package/starters/apps/base-twilio-memory/Dockerfile +9 -0
  63. package/starters/apps/base-twilio-memory/README.md +40 -0
  64. package/starters/apps/base-twilio-memory/app.js +93 -0
  65. package/starters/apps/base-twilio-memory/package.json +27 -0
  66. package/starters/apps/base-twilio-mongo/.eslintrc.js +23 -0
  67. package/starters/apps/base-twilio-mongo/Dockerfile +9 -0
  68. package/starters/apps/base-twilio-mongo/README.md +40 -0
  69. package/starters/apps/base-twilio-mongo/app.js +102 -0
  70. package/starters/apps/base-twilio-mongo/package.json +29 -0
  71. package/starters/apps/base-twilio-mysql/.eslintrc.js +23 -0
  72. package/starters/apps/base-twilio-mysql/Dockerfile +9 -0
  73. package/starters/apps/base-twilio-mysql/README.md +40 -0
  74. package/starters/apps/base-twilio-mysql/app.js +107 -0
  75. package/starters/apps/base-twilio-mysql/package.json +28 -0
  76. package/starters/apps/base-twilio-postgres/.eslintrc.js +23 -0
  77. package/starters/apps/base-twilio-postgres/Dockerfile +9 -0
  78. package/starters/apps/base-twilio-postgres/README.md +40 -0
  79. package/starters/apps/base-twilio-postgres/app.js +105 -0
  80. package/starters/apps/base-twilio-postgres/package.json +28 -0
  81. package/starters/apps/base-venom-json/.eslintrc.js +23 -0
  82. package/starters/apps/base-venom-json/Dockerfile +24 -0
  83. package/starters/apps/base-venom-json/README.md +40 -0
  84. package/starters/apps/base-venom-json/app.js +89 -0
  85. package/starters/apps/base-venom-json/package.json +27 -0
  86. package/starters/apps/base-venom-memory/.eslintrc.js +23 -0
  87. package/starters/apps/base-venom-memory/Dockerfile +24 -0
  88. package/starters/apps/base-venom-memory/README.md +40 -0
  89. package/starters/apps/base-venom-memory/app.js +89 -0
  90. package/starters/apps/base-venom-memory/package.json +27 -0
  91. package/starters/apps/base-venom-mongo/.eslintrc.js +23 -0
  92. package/starters/apps/base-venom-mongo/Dockerfile +24 -0
  93. package/starters/apps/base-venom-mongo/README.md +40 -0
  94. package/starters/apps/base-venom-mongo/app.js +99 -0
  95. package/starters/apps/base-venom-mongo/package.json +28 -0
  96. package/starters/apps/base-venom-mysql/.eslintrc.js +23 -0
  97. package/starters/apps/base-venom-mysql/Dockerfile +24 -0
  98. package/starters/apps/base-venom-mysql/README.md +40 -0
  99. package/starters/apps/base-venom-mysql/app.js +105 -0
  100. package/starters/apps/base-venom-mysql/package.json +28 -0
  101. package/starters/apps/base-venom-postgres/.eslintrc.js +23 -0
  102. package/starters/apps/base-venom-postgres/Dockerfile +9 -0
  103. package/starters/apps/base-venom-postgres/README.md +40 -0
  104. package/starters/apps/base-venom-postgres/app.js +105 -0
  105. package/starters/apps/base-venom-postgres/package.json +28 -0
  106. package/starters/apps/base-wppconnect-json/.eslintrc.js +23 -0
  107. package/starters/apps/base-wppconnect-json/README.md +22 -0
  108. package/starters/apps/base-wppconnect-json/app.js +79 -0
  109. package/starters/apps/base-wppconnect-json/package.json +27 -0
  110. package/starters/apps/base-wppconnect-memory/.eslintrc.js +23 -0
  111. package/starters/apps/base-wppconnect-memory/README.md +22 -0
  112. package/starters/apps/base-wppconnect-memory/app.js +79 -0
  113. package/starters/apps/base-wppconnect-memory/package.json +27 -0
  114. package/starters/apps/base-wppconnect-mongo/.eslintrc.js +23 -0
  115. package/starters/apps/base-wppconnect-mongo/README.md +40 -0
  116. package/starters/apps/base-wppconnect-mongo/app.js +99 -0
  117. package/starters/apps/base-wppconnect-mongo/package.json +28 -0
  118. package/starters/apps/base-wppconnect-mysql/.eslintrc.js +23 -0
  119. package/starters/apps/base-wppconnect-mysql/README.md +40 -0
  120. package/starters/apps/base-wppconnect-mysql/app.js +104 -0
  121. package/starters/apps/base-wppconnect-mysql/package.json +28 -0
  122. package/starters/apps/base-wppconnect-postgres/.eslintrc.js +23 -0
  123. package/starters/apps/base-wppconnect-postgres/README.md +40 -0
  124. package/starters/apps/base-wppconnect-postgres/app.js +105 -0
  125. package/starters/apps/base-wppconnect-postgres/package.json +28 -0
  126. package/starters/apps/base-wweb-json/.eslintrc.js +23 -0
  127. package/starters/apps/base-wweb-json/Dockerfile +24 -0
  128. package/starters/apps/base-wweb-json/README.md +40 -0
  129. package/starters/apps/base-wweb-json/app.js +89 -0
  130. package/starters/apps/base-wweb-json/package.json +26 -0
  131. package/starters/apps/base-wweb-memory/.eslintrc.js +23 -0
  132. package/starters/apps/base-wweb-memory/Dockerfile +24 -0
  133. package/starters/apps/base-wweb-memory/README.md +40 -0
  134. package/starters/apps/base-wweb-memory/app.js +89 -0
  135. package/starters/apps/base-wweb-memory/package.json +26 -0
  136. package/starters/apps/base-wweb-mongo/.eslintrc.js +23 -0
  137. package/starters/apps/base-wweb-mongo/Dockerfile +24 -0
  138. package/starters/apps/base-wweb-mongo/README.md +40 -0
  139. package/starters/apps/base-wweb-mongo/app.js +99 -0
  140. package/starters/apps/base-wweb-mongo/package.json +28 -0
  141. package/starters/apps/base-wweb-mysql/.eslintrc.js +23 -0
  142. package/starters/apps/base-wweb-mysql/Dockerfile +24 -0
  143. package/starters/apps/base-wweb-mysql/README.md +40 -0
  144. package/starters/apps/base-wweb-mysql/app.js +105 -0
  145. package/starters/apps/base-wweb-mysql/package.json +27 -0
  146. package/starters/apps/base-wweb-postgres/.eslintrc.js +23 -0
  147. package/starters/apps/base-wweb-postgres/Dockerfile +24 -0
  148. package/starters/apps/base-wweb-postgres/README.md +40 -0
  149. package/starters/apps/base-wweb-postgres/app.js +105 -0
  150. package/starters/apps/base-wweb-postgres/package.json +27 -0
@@ -0,0 +1,89 @@
1
+ const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot')
2
+
3
+ const QRPortalWeb = require('@bot-whatsapp/portal')
4
+ const VenomProvider = require('@bot-whatsapp/provider/venom')
5
+ const JsonFileAdapter = require('@bot-whatsapp/database/json')
6
+
7
+ /**
8
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
9
+ *
10
+ * Menu Principal
11
+ * - SubMenu 1
12
+ * - Submenu 1.1
13
+ * - Submenu 2
14
+ * - Submenu 2.1
15
+ *
16
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
17
+ */
18
+
19
+ const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario'])
20
+
21
+ const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer(
22
+ [
23
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
24
+ 'https://bot-whatsapp.netlify.app/',
25
+ '\n*2* Para siguiente paso.',
26
+ ],
27
+ null,
28
+ null,
29
+ [flowSecundario]
30
+ )
31
+
32
+ const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
33
+ [
34
+ '🙌 Aquí encontras un ejemplo rapido',
35
+ 'https://bot-whatsapp.netlify.app/docs/example/',
36
+ '\n*2* Para siguiente paso.',
37
+ ],
38
+ null,
39
+ null,
40
+ [flowSecundario]
41
+ )
42
+
43
+ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
44
+ [
45
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
46
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
47
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
48
+ '[*patreon*] https://www.patreon.com/leifermendez',
49
+ '\n*2* Para siguiente paso.',
50
+ ],
51
+ null,
52
+ null,
53
+ [flowSecundario]
54
+ )
55
+
56
+ const flowDiscord = addKeyword(['discord']).addAnswer(
57
+ ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'],
58
+ null,
59
+ null,
60
+ [flowSecundario]
61
+ )
62
+
63
+ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
64
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
65
+ .addAnswer(
66
+ [
67
+ 'te comparto los siguientes links de interes sobre el proyecto',
68
+ '👉 *doc* para ver la documentación',
69
+ '👉 *gracias* para ver la lista de videos',
70
+ '👉 *discord* unirte al discord',
71
+ ],
72
+ null,
73
+ null,
74
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
75
+ )
76
+
77
+ const main = async () => {
78
+ const adapterDB = new JsonFileAdapter()
79
+ const adapterFlow = createFlow([flowPrincipal])
80
+ const adapterProvider = createProvider(VenomProvider)
81
+ createBot({
82
+ flow: adapterFlow,
83
+ provider: adapterProvider,
84
+ database: adapterDB,
85
+ })
86
+ QRPortalWeb()
87
+ }
88
+
89
+ main()
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "base-venom-json",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "app.js",
6
+ "scripts": {
7
+ "prestart": "npx eslint . --no-ignore",
8
+ "pre-copy": "cd .. && npm run copy.lib base-venom-json",
9
+ "start": "node app.js"
10
+ },
11
+ "keywords": [],
12
+ "dependencies": {
13
+ "venom-bot": "5.0.21",
14
+ "mime-types": "2.1.35",
15
+ "@bot-whatsapp/bot": "latest",
16
+ "@bot-whatsapp/cli": "latest",
17
+ "@bot-whatsapp/database": "latest",
18
+ "@bot-whatsapp/provider": "latest",
19
+ "@bot-whatsapp/portal": "latest"
20
+ },
21
+ "devDependencies": {
22
+ "eslint-plugin-bot-whatsapp": "latest",
23
+ "eslint": "^8.52.0"
24
+ },
25
+ "author": "",
26
+ "license": "ISC"
27
+ }
@@ -0,0 +1,23 @@
1
+ module.exports = {
2
+ env: {
3
+ browser: true,
4
+ commonjs: true,
5
+ es2021: true,
6
+ },
7
+ overrides: [
8
+ {
9
+ env: {
10
+ node: true,
11
+ },
12
+ files: ['.eslintrc.{js,cjs}'],
13
+ parserOptions: {
14
+ sourceType: 'script',
15
+ },
16
+ },
17
+ ],
18
+ parserOptions: {
19
+ ecmaVersion: 'latest',
20
+ },
21
+ plugins: ['bot-whatsapp'],
22
+ extends: ['plugin:bot-whatsapp/recommended'],
23
+ }
@@ -0,0 +1,24 @@
1
+ FROM node:18-alpine as node
2
+
3
+ WORKDIR /app
4
+ # Installs latest Chromium (92) package.
5
+ RUN apk add --no-cache \
6
+ chromium \
7
+ nss \
8
+ freetype \
9
+ harfbuzz \
10
+ ca-certificates \
11
+ ttf-freefont \
12
+ nodejs \
13
+ yarn
14
+
15
+ # Tell Puppeteer to skip installing Chrome. We'll be using the installed package.
16
+ ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
17
+ PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
18
+
19
+ # Puppeteer v10.0.0 works with Chromium 92.
20
+ COPY . .
21
+ RUN npm install puppeteer@10.0.0
22
+ RUN npm install
23
+
24
+ CMD ["npm", "start"]
@@ -0,0 +1,40 @@
1
+ ### CHATBOT Whatsapp (Venom Provider)
2
+
3
+ <p align="center">
4
+ <img width="300" src="https://i.imgur.com/Oauef6t.png">
5
+ </p>
6
+
7
+
8
+ **Con esta librería, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** configurar respuestas automatizadas para preguntas frecuentes, recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los clientes.  Además, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin límites. **[Ver más informacion](https://bot-whatsapp.netlify.app/)**
9
+
10
+ ```js
11
+ const main = async () => {
12
+ const adapterDB = new MockAdapter()
13
+ const adapterFlow = createFlow([flowPrincipal])
14
+
15
+ const adapterProvider = createProvider(VenomProvider, {
16
+ accountSid: process.env.ACC_SID,
17
+ authToken: process.env.ACC_TOKEN,
18
+ vendorNumber: process.env.ACC_VENDOR,
19
+ })
20
+
21
+ createBot({
22
+ flow: adapterFlow,
23
+ provider: adapterProvider,
24
+ database: adapterDB,
25
+ })
26
+ }
27
+ ```
28
+
29
+ ```
30
+ npm install
31
+ npm start
32
+ ```
33
+
34
+ ---
35
+ ## Recursos
36
+ - [📄 Documentación](https://bot-whatsapp.netlify.app/)
37
+ - [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1)
38
+ - [💻 Discord](https://link.codigoencasa.com/DISCORD)
39
+ - [👌 Twitter](https://twitter.com/leifermendez)
40
+ - [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
@@ -0,0 +1,89 @@
1
+ const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot')
2
+
3
+ const QRPortalWeb = require('@bot-whatsapp/portal')
4
+ const VenomProvider = require('@bot-whatsapp/provider/venom')
5
+ const MockAdapter = require('@bot-whatsapp/database/mock')
6
+
7
+ /**
8
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
9
+ *
10
+ * Menu Principal
11
+ * - SubMenu 1
12
+ * - Submenu 1.1
13
+ * - Submenu 2
14
+ * - Submenu 2.1
15
+ *
16
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
17
+ */
18
+
19
+ const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario'])
20
+
21
+ const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer(
22
+ [
23
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
24
+ 'https://bot-whatsapp.netlify.app/',
25
+ '\n*2* Para siguiente paso.',
26
+ ],
27
+ null,
28
+ null,
29
+ [flowSecundario]
30
+ )
31
+
32
+ const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
33
+ [
34
+ '🙌 Aquí encontras un ejemplo rapido',
35
+ 'https://bot-whatsapp.netlify.app/docs/example/',
36
+ '\n*2* Para siguiente paso.',
37
+ ],
38
+ null,
39
+ null,
40
+ [flowSecundario]
41
+ )
42
+
43
+ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
44
+ [
45
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
46
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
47
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
48
+ '[*patreon*] https://www.patreon.com/leifermendez',
49
+ '\n*2* Para siguiente paso.',
50
+ ],
51
+ null,
52
+ null,
53
+ [flowSecundario]
54
+ )
55
+
56
+ const flowDiscord = addKeyword(['discord']).addAnswer(
57
+ ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'],
58
+ null,
59
+ null,
60
+ [flowSecundario]
61
+ )
62
+
63
+ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
64
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
65
+ .addAnswer(
66
+ [
67
+ 'te comparto los siguientes links de interes sobre el proyecto',
68
+ '👉 *doc* para ver la documentación',
69
+ '👉 *gracias* para ver la lista de videos',
70
+ '👉 *discord* unirte al discord',
71
+ ],
72
+ null,
73
+ null,
74
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
75
+ )
76
+
77
+ const main = async () => {
78
+ const adapterDB = new MockAdapter()
79
+ const adapterFlow = createFlow([flowPrincipal])
80
+ const adapterProvider = createProvider(VenomProvider)
81
+ createBot({
82
+ flow: adapterFlow,
83
+ provider: adapterProvider,
84
+ database: adapterDB,
85
+ })
86
+ QRPortalWeb()
87
+ }
88
+
89
+ main()
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "base-venom-memory",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "app.js",
6
+ "scripts": {
7
+ "prestart": "npx eslint . --no-ignore",
8
+ "pre-copy": "cd .. && npm run copy.lib base-venom-memory",
9
+ "start": "node app.js"
10
+ },
11
+ "keywords": [],
12
+ "dependencies": {
13
+ "venom-bot": "5.0.21",
14
+ "@bot-whatsapp/bot": "latest",
15
+ "@bot-whatsapp/cli": "latest",
16
+ "@bot-whatsapp/database": "latest",
17
+ "@bot-whatsapp/provider": "latest",
18
+ "@bot-whatsapp/portal": "latest",
19
+ "mime-types": "2.1.35"
20
+ },
21
+ "devDependencies": {
22
+ "eslint-plugin-bot-whatsapp": "latest",
23
+ "eslint": "^8.52.0"
24
+ },
25
+ "author": "",
26
+ "license": "ISC"
27
+ }
@@ -0,0 +1,23 @@
1
+ module.exports = {
2
+ env: {
3
+ browser: true,
4
+ commonjs: true,
5
+ es2021: true,
6
+ },
7
+ overrides: [
8
+ {
9
+ env: {
10
+ node: true,
11
+ },
12
+ files: ['.eslintrc.{js,cjs}'],
13
+ parserOptions: {
14
+ sourceType: 'script',
15
+ },
16
+ },
17
+ ],
18
+ parserOptions: {
19
+ ecmaVersion: 'latest',
20
+ },
21
+ plugins: ['bot-whatsapp'],
22
+ extends: ['plugin:bot-whatsapp/recommended'],
23
+ }
@@ -0,0 +1,24 @@
1
+ FROM node:18-alpine as node
2
+
3
+ WORKDIR /app
4
+ # Installs latest Chromium (92) package.
5
+ RUN apk add --no-cache \
6
+ chromium \
7
+ nss \
8
+ freetype \
9
+ harfbuzz \
10
+ ca-certificates \
11
+ ttf-freefont \
12
+ nodejs \
13
+ yarn
14
+
15
+ # Tell Puppeteer to skip installing Chrome. We'll be using the installed package.
16
+ ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
17
+ PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
18
+
19
+ # Puppeteer v10.0.0 works with Chromium 92.
20
+ COPY . .
21
+ RUN npm install puppeteer@10.0.0
22
+ RUN npm install
23
+
24
+ CMD ["npm", "start"]
@@ -0,0 +1,40 @@
1
+ ### CHATBOT Whatsapp (Venom Provider)
2
+
3
+ <p align="center">
4
+ <img width="300" src="https://i.imgur.com/Oauef6t.png">
5
+ </p>
6
+
7
+
8
+ **Con esta librería, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** configurar respuestas automatizadas para preguntas frecuentes, recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los clientes.  Además, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin límites. **[Ver más informacion](https://bot-whatsapp.netlify.app/)**
9
+
10
+ ```js
11
+ const main = async () => {
12
+ const adapterDB = new MockAdapter()
13
+ const adapterFlow = createFlow([flowPrincipal])
14
+
15
+ const adapterProvider = createProvider(VenomProvider, {
16
+ accountSid: process.env.ACC_SID,
17
+ authToken: process.env.ACC_TOKEN,
18
+ vendorNumber: process.env.ACC_VENDOR,
19
+ })
20
+
21
+ createBot({
22
+ flow: adapterFlow,
23
+ provider: adapterProvider,
24
+ database: adapterDB,
25
+ })
26
+ }
27
+ ```
28
+
29
+ ```
30
+ npm install
31
+ npm start
32
+ ```
33
+
34
+ ---
35
+ ## Recursos
36
+ - [📄 Documentación](https://bot-whatsapp.netlify.app/)
37
+ - [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1)
38
+ - [💻 Discord](https://link.codigoencasa.com/DISCORD)
39
+ - [👌 Twitter](https://twitter.com/leifermendez)
40
+ - [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
@@ -0,0 +1,99 @@
1
+ const { createBot, createProvider, createFlow, addKeyword } = require('@bot-whatsapp/bot')
2
+
3
+ const QRPortalWeb = require('@bot-whatsapp/portal')
4
+ const VenomProvider = require('@bot-whatsapp/provider/venom')
5
+ const MongoAdapter = require('@bot-whatsapp/database/mongo')
6
+
7
+ /**
8
+ * Declaramos las conexiones de Mongo
9
+ */
10
+
11
+ const MONGO_DB_URI = 'mongodb://0.0.0.0:27017'
12
+ const MONGO_DB_NAME = 'db_bot'
13
+
14
+ /**
15
+ * Aqui declaramos los flujos hijos, los flujos se declaran de atras para adelante, es decir que si tienes un flujo de este tipo:
16
+ *
17
+ * Menu Principal
18
+ * - SubMenu 1
19
+ * - Submenu 1.1
20
+ * - Submenu 2
21
+ * - Submenu 2.1
22
+ *
23
+ * Primero declaras los submenus 1.1 y 2.1, luego el 1 y 2 y al final el principal.
24
+ */
25
+
26
+ const flowSecundario = addKeyword(['2', 'siguiente']).addAnswer(['📄 Aquí tenemos el flujo secundario'])
27
+
28
+ const flowDocs = addKeyword(['doc', 'documentacion', 'documentación']).addAnswer(
29
+ [
30
+ '📄 Aquí encontras las documentación recuerda que puedes mejorarla',
31
+ 'https://bot-whatsapp.netlify.app/',
32
+ '\n*2* Para siguiente paso.',
33
+ ],
34
+ null,
35
+ null,
36
+ [flowSecundario]
37
+ )
38
+
39
+ const flowTuto = addKeyword(['tutorial', 'tuto']).addAnswer(
40
+ [
41
+ '🙌 Aquí encontras un ejemplo rapido',
42
+ 'https://bot-whatsapp.netlify.app/docs/example/',
43
+ '\n*2* Para siguiente paso.',
44
+ ],
45
+ null,
46
+ null,
47
+ [flowSecundario]
48
+ )
49
+
50
+ const flowGracias = addKeyword(['gracias', 'grac']).addAnswer(
51
+ [
52
+ '🚀 Puedes aportar tu granito de arena a este proyecto',
53
+ '[*opencollective*] https://opencollective.com/bot-whatsapp',
54
+ '[*buymeacoffee*] https://www.buymeacoffee.com/leifermendez',
55
+ '[*patreon*] https://www.patreon.com/leifermendez',
56
+ '\n*2* Para siguiente paso.',
57
+ ],
58
+ null,
59
+ null,
60
+ [flowSecundario]
61
+ )
62
+
63
+ const flowDiscord = addKeyword(['discord']).addAnswer(
64
+ ['🤪 Únete al discord', 'https://link.codigoencasa.com/DISCORD', '\n*2* Para siguiente paso.'],
65
+ null,
66
+ null,
67
+ [flowSecundario]
68
+ )
69
+
70
+ const flowPrincipal = addKeyword(['hola', 'ole', 'alo'])
71
+ .addAnswer('🙌 Hola bienvenido a este *Chatbot*')
72
+ .addAnswer(
73
+ [
74
+ 'te comparto los siguientes links de interes sobre el proyecto',
75
+ '👉 *doc* para ver la documentación',
76
+ '👉 *gracias* para ver la lista de videos',
77
+ '👉 *discord* unirte al discord',
78
+ ],
79
+ null,
80
+ null,
81
+ [flowDocs, flowGracias, flowTuto, flowDiscord]
82
+ )
83
+
84
+ const main = async () => {
85
+ const adapterDB = new MongoAdapter({
86
+ dbUri: MONGO_DB_URI,
87
+ dbName: MONGO_DB_NAME,
88
+ })
89
+ const adapterFlow = createFlow([flowPrincipal])
90
+ const adapterProvider = createProvider(VenomProvider)
91
+ createBot({
92
+ flow: adapterFlow,
93
+ provider: adapterProvider,
94
+ database: adapterDB,
95
+ })
96
+ QRPortalWeb()
97
+ }
98
+
99
+ main()
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "base-venom-mongo",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "app.js",
6
+ "scripts": {
7
+ "prestart": "npx eslint . --no-ignore",
8
+ "pre-copy": "cd .. && npm run copy.lib base-venom-mongo",
9
+ "start": "node app.js"
10
+ },
11
+ "keywords": [],
12
+ "dependencies": {
13
+ "venom-bot": "5.0.21",
14
+ "@bot-whatsapp/bot": "latest",
15
+ "@bot-whatsapp/cli": "latest",
16
+ "@bot-whatsapp/database": "latest",
17
+ "@bot-whatsapp/provider": "latest",
18
+ "@bot-whatsapp/portal": "latest",
19
+ "mime-types": "2.1.35",
20
+ "mongodb": "^4.12.1"
21
+ },
22
+ "devDependencies": {
23
+ "eslint-plugin-bot-whatsapp": "latest",
24
+ "eslint": "^8.52.0"
25
+ },
26
+ "author": "",
27
+ "license": "ISC"
28
+ }
@@ -0,0 +1,23 @@
1
+ module.exports = {
2
+ env: {
3
+ browser: true,
4
+ commonjs: true,
5
+ es2021: true,
6
+ },
7
+ overrides: [
8
+ {
9
+ env: {
10
+ node: true,
11
+ },
12
+ files: ['.eslintrc.{js,cjs}'],
13
+ parserOptions: {
14
+ sourceType: 'script',
15
+ },
16
+ },
17
+ ],
18
+ parserOptions: {
19
+ ecmaVersion: 'latest',
20
+ },
21
+ plugins: ['bot-whatsapp'],
22
+ extends: ['plugin:bot-whatsapp/recommended'],
23
+ }
@@ -0,0 +1,24 @@
1
+ FROM node:18-alpine as node
2
+
3
+ WORKDIR /app
4
+ # Installs latest Chromium (92) package.
5
+ RUN apk add --no-cache \
6
+ chromium \
7
+ nss \
8
+ freetype \
9
+ harfbuzz \
10
+ ca-certificates \
11
+ ttf-freefont \
12
+ nodejs \
13
+ yarn
14
+
15
+ # Tell Puppeteer to skip installing Chrome. We'll be using the installed package.
16
+ ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
17
+ PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
18
+
19
+ # Puppeteer v10.0.0 works with Chromium 92.
20
+ COPY . .
21
+ RUN npm install puppeteer@10.0.0
22
+ RUN npm install
23
+
24
+ CMD ["npm", "start"]
@@ -0,0 +1,40 @@
1
+ ### CHATBOT Whatsapp (Venom Provider)
2
+
3
+ <p align="center">
4
+ <img width="300" src="https://i.imgur.com/Oauef6t.png">
5
+ </p>
6
+
7
+
8
+ **Con esta librería, puedes construir flujos automatizados de conversación de manera agnóstica al proveedor de WhatsApp,** configurar respuestas automatizadas para preguntas frecuentes, recibir y responder mensajes de manera automatizada, y hacer un seguimiento de las interacciones con los clientes.  Además, puedes configurar fácilmente disparadores que te ayudaran a expandir las funcionalidades sin límites. **[Ver más informacion](https://bot-whatsapp.netlify.app/)**
9
+
10
+ ```js
11
+ const main = async () => {
12
+ const adapterDB = new MockAdapter()
13
+ const adapterFlow = createFlow([flowPrincipal])
14
+
15
+ const adapterProvider = createProvider(VenomProvider, {
16
+ accountSid: process.env.ACC_SID,
17
+ authToken: process.env.ACC_TOKEN,
18
+ vendorNumber: process.env.ACC_VENDOR,
19
+ })
20
+
21
+ createBot({
22
+ flow: adapterFlow,
23
+ provider: adapterProvider,
24
+ database: adapterDB,
25
+ })
26
+ }
27
+ ```
28
+
29
+ ```
30
+ npm install
31
+ npm start
32
+ ```
33
+
34
+ ---
35
+ ## Recursos
36
+ - [📄 Documentación](https://bot-whatsapp.netlify.app/)
37
+ - [🚀 Roadmap](https://github.com/orgs/codigoencasa/projects/1)
38
+ - [💻 Discord](https://link.codigoencasa.com/DISCORD)
39
+ - [👌 Twitter](https://twitter.com/leifermendez)
40
+ - [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)