Compare commits

..

1061 Commits

Author SHA1 Message Date
d483b91359 git como requisito e instrucciones
Se agregó Git como requisito e instrucciones para instalarlo en Windows
2023-01-13 13:41:19 -06:00
leifermendez
6aed100d96 ci(version): automatic - "${date}" updated versions every packages 2023-01-13 19:08:08 +00:00
Leifer Mendez
4a7c2fe553 Merge branch 'release/next' into dev 2023-01-13 20:06:07 +01:00
Leifer Mendez
a02e373cd9 Merge pull request #485 from cheveguerra/dev
fix:  Se agregó @bot-whatsapp/portal a package.json
2023-01-13 20:05:33 +01:00
a9755da8c9 Merge branch 'dev' of https://github.com/cheveguerra/bot-whatsapp into dev 2023-01-13 11:57:57 -06:00
46a9fa6793 fix: se agrego @bot-whatsapp/portal a package.json
se agrego @bot-whatsapp/portal a package.json
2023-01-13 11:57:42 -06:00
Leifer Mendez
44efbd8518 Merge branch 'release/production' into release/next 2023-01-12 21:41:13 +01:00
leifermendez
8357eda573 ci(version): automatic - "${date}" updated versions every packages 2023-01-12 20:10:58 +00:00
Leifer Mendez
05dbf2f240 Merge pull request #478 from codigoencasa/dev
Dev
2023-01-12 21:09:04 +01:00
Leifer Mendez
b65c40e59b Merge branch 'release/next' into dev 2023-01-12 21:08:57 +01:00
Leifer Mendez
d8bb1418dd Merge pull request #477 from codigoencasa/fix/refactor-cb
Fix/refactor cb
2023-01-12 21:08:33 +01:00
Leifer Mendez
8f27d34081 ci(cli): fix 2023-01-12 21:04:44 +01:00
Leifer Mendez
ee30df73b8 ci(cli): fix 2023-01-12 21:04:04 +01:00
Leifer Mendez
8a1bdc5878 refactor(bot): 🔥 fallback 2023-01-12 16:35:43 +01:00
Leifer Mendez
f742caa9a4 refactor(bot): async callbacks 2023-01-12 11:43:58 +01:00
Leifer Mendez
a1ce98bdc8 docs: 🎨 more doc 2023-01-12 10:31:41 +01:00
Leifer Mendez
230981e267 fix(starters): added dockerfile 2023-01-12 09:35:06 +01:00
Leifer Mendez
7242ab92f7 Merge remote-tracking branch 'origin/dev' into fix/githubaction 2023-01-12 09:28:29 +01:00
Leifer Mendez
d3c937579a Merge pull request #469 from cheveguerra/dev
[feat] Modificación de Starters para agregar el portal del código QR
2023-01-12 09:27:49 +01:00
1302491869 Merge branch 'codigoencasa:dev' into dev 2023-01-11 16:08:35 -06:00
Leifer Mendez
45cbc09b0e Merge branch 'dev' of github.com:leifermendez/bot-whatsapp into fix/githubaction 2023-01-11 21:18:16 +01:00
Leifer Mendez
aaec075140 fix(ci): pre-release 2023-01-11 21:17:32 +01:00
Leifer Mendez
42b98801db chore(release): 0.1.16 2023-01-11 21:16:19 +01:00
Leifer Mendez
b681be3f11 Merge pull request #476 from codigoencasa/fix/githubaction
Fix/githubaction
2023-01-11 21:04:45 +01:00
Leifer Mendez
e442d05aa4 chore(version): launch release 2023-01-11 21:04:00 +01:00
Leifer Mendez
b682b0b6ba chore(release): 0.1.15 2023-01-11 21:03:43 +01:00
Leifer Mendez
96b6430efe Merge pull request #475 from codigoencasa/fix/githubaction
chore(release): 0.1.14
2023-01-11 20:49:47 +01:00
Leifer Mendez
9723e9d908 chore(release): 0.1.14 2023-01-11 20:49:04 +01:00
Leifer Mendez
1bea3401dc Merge pull request #474 from codigoencasa/release/next
Release/next
2023-01-11 20:44:37 +01:00
leifermendez
0f9e57df37 ci(version): automatic - "${date}" updated versions every packages 2023-01-11 19:44:10 +00:00
Leifer Mendez
49b9b77543 Merge pull request #473 from codigoencasa/dev
Dev
2023-01-11 20:42:01 +01:00
Leifer Mendez
804ea2b258 Merge branch 'release/next' into dev 2023-01-11 20:41:55 +01:00
Leifer Mendez
939cea03cc Merge pull request #472 from codigoencasa:fix/githubaction
ci: 🔥 fix github action
2023-01-11 20:41:12 +01:00
Leifer Mendez
89cf909888 ci: 🔥 fix github action 2023-01-11 20:40:41 +01:00
Leifer Mendez
f323184b34 Merge pull request #471 from codigoencasa/dev
Dev
2023-01-11 20:36:24 +01:00
Leifer Mendez
65ad00e4ec Merge branch 'release/next' into dev 2023-01-11 20:36:16 +01:00
Leifer Mendez
c4158cbac6 Merge pull request #470 from codigoencasa/feat/docs-modal-video
Feat/docs modal video
2023-01-11 20:35:52 +01:00
Leifer Mendez
5a06d2cf88 Merge branch 'feat/docs-modal-video' of github.com:leifermendez/bot-whatsapp into feat/docs-modal-video 2023-01-11 20:35:11 +01:00
Leifer Mendez
675046cc58 ci: 🔥 fix github action 2023-01-11 20:34:59 +01:00
f430380b4f fix: correccion en starters app.js para portal QR
correccion en starters app.js para portal QR
2023-01-11 10:49:48 -06:00
8a1c9f3b0e Merge branch 'codigoencasa:dev' into dev 2023-01-11 10:37:55 -06:00
eceb170df0 feat: mod de starters para habiltar portal
Modificacion de starters para habiltar el portal para el QR
2023-01-11 10:36:18 -06:00
leifermendez
ef03478683 ci(version): automatic - "${date}" updated versions every packages 2023-01-11 15:36:27 +00:00
Leifer Mendez
fb3e2913e3 Merge pull request #468 from codigoencasa/release/production
Release/production
2023-01-11 16:32:27 +01:00
leifermendez
9fb34cc9e0 ci(providers): 👍 updated versions stable providers 2023-01-11 15:30:38 +00:00
Leifer Mendez
3d2c3e1452 Merge pull request #467 from codigoencasa/dev
Dev
2023-01-11 16:27:57 +01:00
Leifer Mendez
83e262b818 Merge pull request #466 from codigoencasa/feat/docs-modal-video
Feat/docs modal video
2023-01-11 16:27:36 +01:00
Leifer Mendez
389169fc58 Merge branch 'feat/docs-modal-video' of github.com:leifermendez/bot-whatsapp into feat/docs-modal-video 2023-01-11 16:26:25 +01:00
Leifer Mendez
f80a051fa9 chore(release): 0.1.13 2023-01-11 16:26:16 +01:00
Leifer Mendez
9688ec1844 chore(release): 0.1.13 2023-01-11 16:26:04 +01:00
leifermendez
288894ee8e ci(providers): 👍 updated versions stable providers 2023-01-11 15:22:46 +00:00
Leifer Mendez
f3151850d5 Merge pull request #465 from codigoencasa/dev
Dev
2023-01-11 16:19:49 +01:00
Leifer Mendez
49e9c70d7c Merge pull request #464 from codigoencasa/feat/docs-modal-video
Feat/docs modal video
2023-01-11 16:19:28 +01:00
Leifer Mendez
6a156183ad Merge branch 'feat/docs-modal-video' of github.com:leifermendez/bot-whatsapp into feat/docs-modal-video 2023-01-11 16:18:55 +01:00
Leifer Mendez
f029c7317a chore(release): 0.1.12 2023-01-11 16:18:47 +01:00
leifermendez
fea6276b89 ci(providers): 👍 updated versions stable providers 2023-01-11 15:16:00 +00:00
Leifer Mendez
4b8c1d0ec6 Merge pull request #463 from codigoencasa/dev
Dev
2023-01-11 16:13:54 +01:00
Leifer Mendez
552a425cc0 Merge pull request #462 from codigoencasa/feat/docs-modal-video
Feat/docs modal video
2023-01-11 16:13:21 +01:00
Leifer Mendez
7566059073 Merge branch 'feat/docs-modal-video' of github.com:leifermendez/bot-whatsapp into feat/docs-modal-video 2023-01-11 16:12:32 +01:00
Leifer Mendez
b321b03b2a chore(release): 0.1.12 2023-01-11 16:12:24 +01:00
Leifer Mendez
edf5fdcbdc chore(release): 0.1.12 2023-01-11 16:12:09 +01:00
Leifer Mendez
eb1fcbff22 chore(release): 0.1.11 2023-01-11 16:11:55 +01:00
leifermendez
68a6e4b241 ci(providers): 👍 updated versions stable providers 2023-01-11 14:39:57 +00:00
Leifer Mendez
837bbf3c36 Merge pull request #461 from codigoencasa/dev
Dev
2023-01-11 15:37:34 +01:00
Leifer Mendez
c8c5a03bad Merge pull request #460 from codigoencasa/feat/docs-modal-video
Feat/docs modal video
2023-01-11 15:37:06 +01:00
Leifer Mendez
353e25c204 Merge branch 'feat/docs-modal-video' of github.com:leifermendez/bot-whatsapp into feat/docs-modal-video 2023-01-11 15:36:27 +01:00
Leifer Mendez
be6c609570 chore: set MANUAL version to bypass 2023-01-11 15:36:19 +01:00
Leifer Mendez
c6f58e913d chore(release): 0.1.10 2023-01-11 15:35:47 +01:00
leifermendez
e2fec5d521 ci(providers): 👍 updated versions stable providers 2023-01-11 14:33:19 +00:00
Leifer Mendez
681ec2e1ab Merge pull request #459 from codigoencasa/dev
Dev
2023-01-11 15:31:37 +01:00
Leifer Mendez
0dc5f99089 Merge pull request #458 from codigoencasa/feat/docs-modal-video
Feat/docs modal video
2023-01-11 15:30:19 +01:00
Leifer Mendez
5c880eddf1 Merge branch 'dev' into feat/docs-modal-video 2023-01-11 15:30:04 +01:00
Leifer Mendez
57fc150331 Merge branch 'feat/docs-modal-video' of github.com:leifermendez/bot-whatsapp into feat/docs-modal-video 2023-01-11 15:28:41 +01:00
Leifer Mendez
9704bc0f02 docs: 📝 meta added 2023-01-11 15:28:30 +01:00
Leifer Mendez
7d65fee978 Merge pull request #457 from codigoencasa/dev
Dev
2023-01-11 15:16:41 +01:00
leifermendez
faa3a21ffe ci(providers): 👍 updated versions stable providers 2023-01-11 14:16:19 +00:00
Leifer Mendez
84f689cee1 Merge pull request #456 from codigoencasa/feat/docs-modal-video
Feat/docs modal video
2023-01-11 15:16:18 +01:00
Leifer Mendez
5175f66dd0 Merge branch 'feat/docs-modal-video' of github.com:leifermendez/bot-whatsapp into feat/docs-modal-video 2023-01-11 15:15:03 +01:00
Leifer Mendez
0af9ef2dae ci: 🔥 fix ci version name 2023-01-11 15:14:51 +01:00
leifermendez
787cdc69a0 ci(providers): 👍 updated versions stable providers 2023-01-11 13:45:16 +00:00
Leifer Mendez
f8ceb01eca Merge branch 'feat/docs-modal-video' of github.com:leifermendez/bot-whatsapp into feat/docs-modal-video 2023-01-11 14:41:22 +01:00
Leifer Mendez
d52951adf9 ci: 🔥 fix ci version name 2023-01-11 14:41:13 +01:00
leifermendez
c621d0ee24 ci(providers): 👍 updated versions stable providers 2023-01-11 13:36:55 +00:00
Leifer Mendez
f047ba6e71 ci: add github release
Dev
2023-01-11 14:34:09 +01:00
Leifer Mendez
401c012e00 ci: add github release
ci:  add github release
2023-01-11 14:33:46 +01:00
Leifer Mendez
39859f819c Merge branch 'feat/docs-modal-video' of github.com:leifermendez/bot-whatsapp into feat/docs-modal-video 2023-01-11 14:33:08 +01:00
Leifer Mendez
5b3e7cefde ci: add github release 2023-01-11 14:32:59 +01:00
Leifer Mendez
8436d7b0d3 ci: add github release
ci:  add github release
2023-01-11 14:27:34 +01:00
Leifer Mendez
135961daf0 ci: add github release
ci:  add github release
2023-01-11 14:26:21 +01:00
leifermendez
375a997f25 ci(providers): 👍 updated versions stable providers 2023-01-11 12:49:52 +00:00
Leifer Mendez
625ca405fc Merge branch 'feat/docs-modal-video' of github.com:leifermendez/bot-whatsapp into feat/docs-modal-video 2023-01-11 13:48:45 +01:00
Leifer Mendez
8e3413ca80 ci: add github release 2023-01-11 13:48:33 +01:00
Leifer Mendez
09407401eb ci: add github release
ci:  add github release
2023-01-11 13:39:03 +01:00
Leifer Mendez
1fa17dc601 ci: add github release
ci:  add github release
2023-01-11 13:38:31 +01:00
Leifer Mendez
73f3e6245d Merge branch 'release/next' into dev 2023-01-11 13:38:17 +01:00
leifermendez
afb127278a ci(providers): 👍 updated versions stable providers 2023-01-11 12:38:01 +00:00
Leifer Mendez
15bfb19853 Merge branch 'feat/docs-modal-video' of github.com:leifermendez/bot-whatsapp into feat/docs-modal-video 2023-01-11 13:34:01 +01:00
Leifer Mendez
d90a42b962 ci: add github release 2023-01-11 13:33:52 +01:00
leifermendez
0619641f82 ci(providers): 👍 updated versions stable providers 2023-01-11 12:33:39 +00:00
Leifer Mendez
d00547866a ci: add github release 2023-01-11 13:31:34 +01:00
Leifer Mendez
ca978867ff ci: add github release
ci:  add github release
2023-01-11 13:30:38 +01:00
Leifer Mendez
af44ed1268 ci: add github release 2023-01-11 13:25:18 +01:00
Leifer Mendez
2a416bf751 docs: 📝 meta added
docs: 📝 meta added
2023-01-11 11:59:59 +01:00
Leifer Mendez
2fc274725d docs: 📝 meta added 2023-01-11 11:58:25 +01:00
Leifer Mendez
ecde23fdea fix: 🔥 update qr package 2023-01-10 22:46:08 +01:00
Leifer Mendez
a73ff9c217 chore(release): 0.1.8
chore(release): 0.1.8
2023-01-10 19:46:46 +01:00
Leifer Mendez
16e4575777 chore(release): 0.1.8 2023-01-10 19:45:31 +01:00
Leifer Mendez
74a1301342 chore(release): 0.1.7 2023-01-10 19:45:17 +01:00
Leifer Mendez
210c013290 ci: change set commit
ci:  change set commit
2023-01-10 19:43:17 +01:00
Leifer Mendez
bfb76c87a1 ci: change set commit 2023-01-10 19:42:35 +01:00
Leifer Mendez
8f2eb6d4f2 Merge pull request #440 from codigoencasa/feat/docs-twilio
ci(version):  automatic - "${date}" updated versions every packages
2023-01-10 19:28:55 +01:00
Leifer Mendez
44dfe8ed1a ci(version): automatic - "${date}" updated versions every packages 2023-01-10 19:28:00 +01:00
Leifer Mendez
63ecac6f2b Merge pull request #438 from codigoencasa/feat/docs-twilio
Feat/docs twilio
2023-01-10 19:25:56 +01:00
Leifer Mendez
ac72c5e4e7 ci: change set commit 2023-01-10 19:25:17 +01:00
Leifer Mendez
50d64596c7 Merge commit '4289b7c3ddb35492aa83f75510c2e0477bbebe98' into feat/docs-twilio 2023-01-10 19:22:05 +01:00
Leifer Mendez
a7801d1fa2 Merge branch 'feat/docs-twilio' of github.com:leifermendez/bot-whatsapp into feat/docs-twilio 2023-01-10 19:21:46 +01:00
Leifer Mendez
74e6aae631 Merge commit 'a6607f1896c951474be8a72b78bf65d123bd4879' into feat/docs-twilio 2023-01-10 19:21:13 +01:00
Leifer Mendez
c913d5ee5c ci: change set commit 2023-01-10 19:21:02 +01:00
leifermendez
eafd27c25a ci(version): automatic - "${date}" updated versions every packages 2023-01-10 18:17:47 +00:00
Leifer Mendez
4289b7c3dd Merge pull request #436 from codigoencasa/next-release
ci(providers): 👍 updated versions stable providers
2023-01-10 19:16:30 +01:00
leifermendez
c793890c50 ci(providers): 👍 updated versions stable providers 2023-01-10 18:16:18 +00:00
Leifer Mendez
48a87fff26 ci(providers): 👍 updated versions stable providers
ci(providers): 👍 updated versions stable providers
2023-01-10 19:16:07 +01:00
Leifer Mendez
98bff0285d Merge branch 'next-release' into dev 2023-01-10 19:15:55 +01:00
Leifer Mendez
f5b8e42608 ci(providers): 👍 updated versions stable providers
ci(providers): 👍 updated versions stable providers
2023-01-10 19:15:30 +01:00
Leifer Mendez
6469c83552 Merge branch 'feat/docs-twilio' of github.com:leifermendez/bot-whatsapp into feat/docs-twilio 2023-01-10 19:14:33 +01:00
Leifer Mendez
dba33359a0 ci: push tag pre- 2023-01-10 19:14:18 +01:00
leifermendez
14f3893727 ci(providers): 👍 updated versions stable providers 2023-01-10 17:54:00 +00:00
Leifer Mendez
a6607f1896 ci: change set commit
ci:  change set commit
2023-01-10 18:53:37 +01:00
Leifer Mendez
9669cc0807 ci: change set commit
ci:  change set commit
2023-01-10 18:53:10 +01:00
Leifer Mendez
1ee05d925a Merge branch 'feat/docs-twilio' of github.com:leifermendez/bot-whatsapp into feat/docs-twilio 2023-01-10 18:52:18 +01:00
Leifer Mendez
3e18bc1f57 ci: change set commit 2023-01-10 18:52:01 +01:00
leifermendez
5872d860c9 ci(version): automatic - "${date}" updated versions every packages 2023-01-10 17:44:02 +00:00
Leifer Mendez
caa2a42933 chore(release): 0.1.6
chore(release): 0.1.6
2023-01-10 18:42:09 +01:00
leifermendez
6b407a1d72 ci(providers): 👍 updated versions stable providers 2023-01-10 17:42:02 +00:00
Leifer Mendez
da67b75d98 chore(release): 0.1.6
chore(release): 0.1.6
2023-01-10 18:41:37 +01:00
Leifer Mendez
28b5739f3f Merge branch 'next-release' into dev 2023-01-10 18:41:29 +01:00
Leifer Mendez
2d9da1e584 chore(release): 0.1.6
chore(release): 0.1.6
2023-01-10 18:41:07 +01:00
Leifer Mendez
11bcb3f2c8 Merge branch 'feat/docs-twilio' of github.com:leifermendez/bot-whatsapp into feat/docs-twilio 2023-01-10 18:40:10 +01:00
Leifer Mendez
7731f4149e chore(release): 0.1.6 2023-01-10 18:39:07 +01:00
Leifer Mendez
ae645643d5 chore(release): 0.1.5 2023-01-10 18:38:57 +01:00
leifermendez
9960227006 ci(version): automatic - "${date}" updated versions every packages 2023-01-10 17:38:41 +00:00
Leifer Mendez
c0bbf5c48f chore(release): 0.1.4 2023-01-10 18:38:41 +01:00
Leifer Mendez
512207207c docs: 📝 add more documentation about twilio
docs: 📝 add more documentation about twilio
2023-01-10 18:37:13 +01:00
Leifer Mendez
200dd6b187 docs: 📝 add more documentation about twilio
docs: 📝 add more documentation about twilio
2023-01-10 18:36:38 +01:00
Leifer Mendez
cad73dca99 Merge branch 'next-release' into dev 2023-01-10 18:36:29 +01:00
leifermendez
2114f997db ci(providers): 👍 updated versions stable providers 2023-01-10 17:11:25 +00:00
Leifer Mendez
c5d4d82538 docs: 📝 add more documentation about twilio
docs: 📝 add more documentation about twilio
2023-01-10 18:10:38 +01:00
Leifer Mendez
fdab223786 docs: 📝 add more documentation about twilio 2023-01-10 18:07:55 +01:00
Leifer Mendez
f4d1ae3199 docs: 📝 add more documentation about twilio 2023-01-10 18:04:34 +01:00
Leifer Mendez
527eac4962 Merge pull request #418 from codigoencasa/next-release
Next release
2023-01-10 11:07:31 +01:00
leifermendez
8ef6d6b560 ci(version): automatic - "${date}" updated versions every packages 2023-01-10 09:57:06 +00:00
Leifer Mendez
0d588f067f Merge pull request #417 from codigoencasa/dev
Dev
2023-01-10 10:54:50 +01:00
Leifer Mendez
b4368fd30a Merge branch 'next-release' into dev 2023-01-10 10:54:39 +01:00
Leifer Mendez
b0dd007918 Merge pull request #415 from codigoencasa/feature/qr-file-name
Feature/qr file name
2023-01-10 10:52:18 +01:00
Leifer Mendez
246ecdc11a feat: qr portal 2023-01-10 10:44:49 +01:00
Leifer Mendez
891ea75f62 Merge branch 'feature/qr-file-name' of github.com:leifermendez/bot-whatsapp into feature/qr-file-name 2023-01-10 10:42:08 +01:00
Leifer Mendez
af8b401d07 feat: qr portal 2023-01-10 10:41:56 +01:00
leifermendez
3658efd98a ci(version): automatic - "${date}" updated versions every packages 2023-01-09 21:30:46 +00:00
leifermendez
fd044fb169 ci(providers): 👍 updated versions stable providers 2023-01-09 21:28:34 +00:00
Leifer Mendez
3fb0f2282c Merge pull request #414 from codigoencasa/dev
Dev
2023-01-09 22:28:20 +01:00
Leifer Mendez
46ef98cb23 Merge branch 'next-release' into dev 2023-01-09 22:28:13 +01:00
Leifer Mendez
b61a4d7fa0 Merge pull request #412 from codigoencasa/feature/qr-file-name
Feature/qr file name
2023-01-09 22:27:42 +01:00
Leifer Mendez
6417f8e63b Merge branch 'feature/qr-file-name' of github.com:leifermendez/bot-whatsapp into feature/qr-file-name 2023-01-09 22:26:46 +01:00
Leifer Mendez
20f752e6c1 fix: fix inject port args 2023-01-09 22:26:34 +01:00
leifermendez
2b37e5a29d ci(providers): 👍 updated versions stable providers 2023-01-09 20:29:26 +00:00
Leifer Mendez
8ec7c2108a Merge pull request #410 from codigoencasa/feature/qr-file-name
fix:  fix inject port args
2023-01-09 21:28:32 +01:00
Leifer Mendez
dfc7847573 Merge branch 'feature/qr-file-name' of github.com:leifermendez/bot-whatsapp into feature/qr-file-name 2023-01-09 21:27:45 +01:00
Leifer Mendez
7a23eb0cc6 fix: fix inject port args 2023-01-09 21:27:35 +01:00
leifermendez
ab2a21ee42 ci(providers): 👍 updated versions stable providers 2023-01-09 18:48:23 +00:00
leifermendez
249a97862f ci(version): automatic - "${date}" updated versions every packages 2023-01-09 18:48:18 +00:00
Leifer Mendez
feb9ede912 Merge pull request #409 from codigoencasa/dev
Dev
2023-01-09 19:46:21 +01:00
Leifer Mendez
03918fb091 Merge branch 'next-release' into dev 2023-01-09 19:46:12 +01:00
Leifer Mendez
1fee5b6bfa Merge pull request #407 from codigoencasa/feature/qr-file-name
feat:  qr code filename
2023-01-09 19:45:03 +01:00
Leifer Mendez
131d3b7f03 Merge pull request #405 from codigoencasa:feature/qr-file-name
Feature/qr-file-name
2023-01-09 19:43:58 +01:00
Leifer Mendez
d794f604ac feat: qr code filename 2023-01-09 19:43:22 +01:00
leifermendez
b2559731da ci(version): automatic - "${date}" updated versions every packages 2023-01-09 18:04:14 +00:00
Leifer Mendez
f0c332e278 Merge pull request #404 from codigoencasa/dev
Dev
2023-01-09 18:59:49 +01:00
Leifer Mendez
4450245d91 Merge branch 'next-release' into dev 2023-01-09 18:59:41 +01:00
Leifer Mendez
ca960cd80c Merge pull request #402 from codigoencasa/feature/portal
Feature/portal
2023-01-09 18:55:18 +01:00
Leifer Mendez
4d721f99e2 Merge branch 'feature/portal' of github.com:leifermendez/bot-whatsapp into feature/portal 2023-01-09 18:54:47 +01:00
Leifer Mendez
cb2e8692a3 feat: new portal web for qr scan 2023-01-09 18:54:04 +01:00
leifermendez
969ffe177f ci(providers): 👍 updated versions stable providers 2023-01-09 17:51:39 +00:00
Leifer Mendez
83383e2022 Merge pull request #400 from codigoencasa/feature/portal
Feature/portal
2023-01-09 18:48:46 +01:00
Leifer Mendez
09aa3c8ca9 Merge branch 'feature/portal' of github.com:leifermendez/bot-whatsapp into feature/portal 2023-01-09 18:47:02 +01:00
Leifer Mendez
9e93795e6f feat: new portal web for qr scan 2023-01-09 18:46:54 +01:00
Leifer Mendez
3c178ea113 feat: new portal web for qr scan 2023-01-09 18:44:52 +01:00
Leifer Mendez
1f1f564f4e feat: new portal web for qr scan 2023-01-09 18:44:38 +01:00
leifermendez
21cc0e3c7d ci(providers): 👍 updated versions stable providers 2023-01-09 17:42:14 +00:00
Leifer Mendez
40c51236db feat: new portal web for qr scan
feat:  new portal web for qr scan
2023-01-09 18:38:39 +01:00
Leifer Mendez
3de5f4b77a feat: new portal web for qr scan 2023-01-09 18:37:58 +01:00
Leifer Mendez
c6af472d42 Merge pull request #396 from codigoencasa/next-release
Next release
2023-01-08 17:01:13 +01:00
leifermendez
1c5da9cc6a ci(version): automatic - "${date}" updated versions every packages 2023-01-08 15:52:28 +00:00
Leifer Mendez
96bfb9af4e fix: add Dockerfile, starter
fix:  add Dockerfile, starter
2023-01-08 16:51:06 +01:00
Leifer Mendez
dd07526a3d Merge branch 'next-release' into dev 2023-01-08 16:50:58 +01:00
Leifer Mendez
fd935b9785 fix: add Dockerfile, starter
fix:  add Dockerfile, starter
2023-01-08 16:48:17 +01:00
Leifer Mendez
4e0d33c6bb fix: add Dockerfile, starter 2023-01-08 16:47:28 +01:00
Leifer Mendez
5e6077dd8f Merge commit '41de8b9b5af5ffa31d8a1212c03d446d3611f24d' into feat/ci-02 2023-01-08 16:11:33 +01:00
Leifer Mendez
41de8b9b5a Merge pull request #390 from cheveguerra/dev
Se agregan dockerfile y web server para código QR a Starters
2023-01-08 16:11:20 +01:00
Leifer Mendez
5d0929efb4 Merge pull request #391 from codigoencasa/fix/wweb-docker
Fix/wweb docker
2023-01-08 16:11:02 +01:00
Leifer Mendez
5a033da83a fix(provider): fix error docker as root user 2023-01-08 15:54:32 +01:00
Leifer Mendez
8ff9cacae0 Merge remote-tracking branch 'origin/dev' into feat/ci-02 2023-01-08 14:30:04 +01:00
f9e3bbc665 feat: agregamos dockerfile y webserver a starters
agregamos  dockerfile y webserver a starters
2023-01-08 04:57:27 -06:00
e5f6cf8563 Merge branch 'codigoencasa:dev' into dev 2023-01-07 17:03:27 -06:00
leifermendez
2ad57a8be1 ci(version): automatic - "${date}" updated versions every packages 2023-01-07 16:57:52 +00:00
leifermendez
4f2fbaf21b ci(providers): 👍 updated versions stable providers 2023-01-07 16:57:18 +00:00
Leifer Mendez
b7694d7857 build: fix
build:  fix
2023-01-07 17:56:38 +01:00
Leifer Mendez
b3eec37fa9 Merge branch 'next-release' into dev 2023-01-07 17:56:32 +01:00
Leifer Mendez
bdbf529cb6 build: fix
build:  fix
2023-01-07 17:56:13 +01:00
Leifer Mendez
4ff02d2bfa build: fix 2023-01-07 17:55:11 +01:00
Leifer Mendez
2ddea5468d fix(provider): fix send image baileys 2023-01-07 14:59:48 +01:00
Leifer Mendez
391e11ce73 fix(provider): fix send image baileys 2023-01-07 14:59:25 +01:00
Leifer Mendez
5d10cb9026 fix(provider): fix send image baileys 2023-01-07 14:34:17 +01:00
Leifer Mendez
9e0a61b7ba Merge branch 'feat/ci-02' of github.com:leifermendez/bot-whatsapp into feat/ci-02 2023-01-06 21:20:18 +01:00
Leifer Mendez
6ea377e9e5 build: working fallback, flowDynamic 2023-01-06 21:20:08 +01:00
leifermendez
8017426cfc ci(version): automatic - "${date}" updated versions every packages 2023-01-06 19:18:41 +00:00
leifermendez
b588479fd1 ci(providers): 👍 updated versions stable providers 2023-01-06 19:17:18 +00:00
Leifer Mendez
25f90e4162 Merge pull request #385 from codigoencasa/dev
Dev
2023-01-06 20:16:58 +01:00
Leifer Mendez
b2e57396fb Merge branch 'next-release' into dev 2023-01-06 20:16:52 +01:00
Leifer Mendez
df786f7d34 Merge pull request #384 from codigoencasa/feat/ci-02
ci(providers): 👍 updated versions stable providers
2023-01-06 20:16:31 +01:00
leifermendez
930e120d70 ci(version): automatic - "${date}" updated versions every packages 2023-01-06 15:09:04 +00:00
Leifer Mendez
0ebead27f5 Merge pull request #383 from codigoencasa/dev
Dev
2023-01-06 16:07:48 +01:00
Leifer Mendez
397c143952 Merge branch 'next-release' into dev 2023-01-06 16:07:42 +01:00
leifermendez
0451043a21 ci(providers): 👍 updated versions stable providers 2023-01-06 15:05:32 +00:00
Leifer Mendez
2cb032a5da Merge pull request #381 from codigoencasa/feat/ci-02
Feat/ci 02
2023-01-06 16:04:29 +01:00
Leifer Mendez
a31ded6b02 Merge branch 'feat/ci-02' of github.com:leifermendez/bot-whatsapp into feat/ci-02 2023-01-06 16:03:42 +01:00
Leifer Mendez
e8e14d3b65 build: ready for video 2023-01-06 15:12:33 +01:00
Leifer Mendez
a6c10fe414 chore: 🎨 working 2023-01-06 14:31:04 +01:00
b040790129 Merge branch 'codigoencasa:dev' into dev 2023-01-06 07:01:34 -06:00
leifermendez
a71566f2ad ci(version): automatic - "${date}" updated versions every packages 2023-01-06 11:45:52 +00:00
Leifer Mendez
cb0d0be786 Merge pull request #379 from codigoencasa/next-release
build: 🚀 new release
2023-01-06 12:45:23 +01:00
leifermendez
2040f857a5 ci(providers): 👍 updated versions stable providers 2023-01-06 11:44:19 +00:00
Leifer Mendez
28a3a7a5e3 build: 🚀 new release
build: 🚀 new release
2023-01-06 12:44:18 +01:00
Leifer Mendez
737b0b6055 Merge branch 'next-release' into dev 2023-01-06 12:44:12 +01:00
Leifer Mendez
bd5a01b7e4 Merge pull request #376 from codigoencasa/feat/ci-02
build: 🚀 new release
2023-01-06 12:43:31 +01:00
Leifer Mendez
3a74927b9d Merge branch 'feat/ci-02' of github.com:leifermendez/bot-whatsapp into feat/ci-02 2023-01-06 12:42:28 +01:00
Leifer Mendez
31a7b58709 build: 🚀 new release 2023-01-06 12:42:20 +01:00
leifermendez
acf13fb02f ci(version): automatic - "${date}" updated versions every packages 2023-01-06 11:37:07 +00:00
leifermendez
21773e244e ci(providers): 👍 updated versions stable providers 2023-01-06 11:36:30 +00:00
Leifer Mendez
345f626986 Merge pull request #375 from codigoencasa/dev
next-release
2023-01-06 12:35:39 +01:00
Leifer Mendez
b72dcd75b7 Merge branch 'next-release' into dev 2023-01-06 12:35:29 +01:00
Leifer Mendez
2318a6f1e3 Merge pull request #373 from codigoencasa/dev
Dev
2023-01-06 12:34:51 +01:00
leifermendez
9b77b3f148 ci(providers): 👍 updated versions stable providers 2023-01-06 11:34:21 +00:00
leifermendez
75ec60a1bf ci(providers): 👍 updated versions stable providers 2023-01-06 11:34:16 +00:00
Leifer Mendez
2c5f3a60b7 Merge pull request #371 from codigoencasa/feat/ci-02
Feat/ci 02
2023-01-06 12:33:26 +01:00
Leifer Mendez
3cc79a7fd7 Merge branch 'feat/ci-02' of github.com:leifermendez/bot-whatsapp into feat/ci-02 2023-01-06 12:32:37 +01:00
Leifer Mendez
db7257638a build: 🚀 new release 2023-01-06 12:32:27 +01:00
Leifer Mendez
59130952fa build(bot): fix ci
build(bot):  fix ci
2023-01-06 12:28:14 +01:00
leifermendez
e07e6c5e19 ci(version): automatic - "${date}" updated versions every packages 2023-01-06 11:26:37 +00:00
Leifer Mendez
190aae55e3 Merge pull request #368 from codigoencasa/dev
Dev
2023-01-06 12:25:21 +01:00
leifermendez
15c3747fbf ci(providers): 👍 updated versions stable providers 2023-01-06 11:22:35 +00:00
leifermendez
d945f0ea79 ci(providers): 👍 updated versions stable providers 2023-01-06 11:22:17 +00:00
Leifer Mendez
99218b861a build(bot): fix ci
build(bot):  fix ci
2023-01-06 12:21:44 +01:00
Leifer Mendez
0feb51cfd0 build(bot): fix ci 2023-01-06 12:20:22 +01:00
Leifer Mendez
54270c197e Merge remote-tracking branch 'origin/HEAD' into fix/callback-01 2023-01-06 12:06:40 +01:00
Leifer Mendez
6940737d49 Merge remote-tracking branch 'origin/dev' into fix/callback-01 2023-01-06 12:06:18 +01:00
leifermendez
6e10a1084d ci(providers): 🚩 Check BREAKING CHANGE 2023-01-06 09:10:01 +00:00
cheveguerra
ec2041b75a ci(providers): 👍 updated versions stable providers 2023-01-06 06:46:09 +00:00
d3eb10d1b3 Merge branch 'dev' of https://github.com/cheveguerra/bot-whatsapp into dev 2023-01-06 00:44:48 -06:00
cheveguerra
983db5c7b8 ci(providers): 👍 updated versions stable providers 2023-01-06 06:29:55 +00:00
95947cdefc Merge branch 'codigoencasa:dev' into dev 2023-01-06 00:29:05 -06:00
leifermendez
53fe5b2e14 ci(providers): 👍 updated versions stable providers 2023-01-05 21:09:20 +00:00
Leifer Mendez
ba17e6c72c fix(bot): 🎨 callback
fix(bot): 🎨 callback
2023-01-05 22:08:23 +01:00
Leifer Mendez
5e95b200cf fix(bot): 🎨 callback 2023-01-05 22:07:25 +01:00
cheveguerra
8dad0a49b1 ci(providers): 👍 updated versions stable providers 2023-01-05 15:33:48 +00:00
Leifer Mendez
80d3f09480 Merge pull request #362 from codigoencasa/contributors-readme-action-eOaI_06GyL
docs(contributor): contributors readme action update
2023-01-05 15:14:41 +01:00
Leifer Mendez
d1b4cbf28b Merge pull request #361 from codigoencasa/contributors-readme-action-H_IMQwGnGs
docs(contributor): contributors readme action update
2023-01-05 15:14:33 +01:00
github-actions[bot]
3202d45aa8 docs(contributor): contrib-readme-action has updated readme 2023-01-05 14:12:34 +00:00
github-actions[bot]
c05de8556f docs(contributor): contrib-readme-action has updated readme 2023-01-05 14:12:32 +00:00
Leifer Mendez
81c4ca968e Merge pull request #360 from codigoencasa/contributors-readme-action-UA0XjmVFIy
docs(contributor): contributors readme action update
2023-01-05 15:12:16 +01:00
leifermendez
ba61b6718d ci(providers): 👍 updated versions stable providers 2023-01-05 14:08:20 +00:00
github-actions[bot]
665e19fe5b docs(contributor): contrib-readme-action has updated readme 2023-01-05 14:07:48 +00:00
Leifer Mendez
7a6274e739 chore(bot): launch
chore(bot):  launch
2023-01-05 15:07:33 +01:00
Leifer Mendez
f2c8794c48 chore(bot): launch
chore(bot):  launch
2023-01-05 15:07:08 +01:00
Leifer Mendez
593858bcd2 chore(bot): launch 2023-01-05 15:06:32 +01:00
Leifer Mendez
3605f0d1f6 🫡[Done!] thanks everyone for this awesome job
🫡[Done!] thanks everyone for this awesome job
2023-01-05 15:01:59 +01:00
leifermendez
f77581fc9d ci(version): automatic - "${date}" updated versions every packages 2023-01-05 13:57:08 +00:00
Leifer Mendez
b74bc67a94 Merge pull request #356 from codigoencasa/dev
Dev
2023-01-05 14:53:08 +01:00
leifermendez
2f9f2169f3 ci(providers): 👍 updated versions stable providers 2023-01-05 13:53:05 +00:00
Leifer Mendez
0f1c040bb8 Merge branch 'next-release' into dev 2023-01-05 14:52:10 +01:00
leifermendez
62c16785a2 ci(providers): 👍 updated versions stable providers 2023-01-05 12:39:40 +00:00
Leifer Mendez
1d64a6b331 docs: 🎨 lot stuff
docs: 🎨 lot stuff
2023-01-05 13:36:38 +01:00
Leifer Mendez
ccbf7a7754 chore(cli): 🔥 merge 2023-01-05 13:35:29 +01:00
Leifer Mendez
eaefc734d9 docs: 🎨 lot stuff 2023-01-05 13:19:22 +01:00
Leifer Mendez
8d6c34d8b9 docs: 🎨 lot stuff 2023-01-05 13:17:49 +01:00
Leifer Mendez
77c6baf46b docs: fix icon svg 2023-01-05 11:35:48 +01:00
cheveguerra
faa4ea0152 ci(providers): 👍 updated versions stable providers 2023-01-05 00:44:27 +00:00
Leifer Mendez
022a3b7d8e chore(release): 0.1.3 2023-01-04 22:58:42 +01:00
leifermendez
6e8e8090fb ci(version): automatic - "${date}" updated versions every packages 2023-01-04 21:47:54 +00:00
leifermendez
a3403dfd92 ci(providers): 👍 updated versions stable providers 2023-01-04 21:47:04 +00:00
Leifer Mendez
4756745200 ci(providers): 👍 updated versions stable providers
ci(providers): 👍 updated versions stable providers
2023-01-04 22:46:34 +01:00
Leifer Mendez
0d07998a9e Merge branch 'next-release' into dev 2023-01-04 22:46:03 +01:00
Leifer Mendez
1cbccb0463 Merge pull request #353 from codigoencasa/fix/bailey-restart
Fix/bailey restart
2023-01-04 22:45:15 +01:00
Leifer Mendez
d84ee56778 Merge branch 'fix/bailey-restart' of github.com:leifermendez/bot-whatsapp into fix/bailey-restart 2023-01-04 22:43:32 +01:00
Leifer Mendez
aa5aa99d7f build: 🚀 pre-release warm 2023-01-04 22:43:24 +01:00
leifermendez
7d22a47408 ci(version): automatic - "${date}" updated versions every packages 2023-01-04 21:31:23 +00:00
leifermendez
bed4422e44 ci(providers): 👍 updated versions stable providers 2023-01-04 21:30:32 +00:00
leifermendez
6d6a4aea84 ci(providers): 👍 updated versions stable providers 2023-01-04 21:30:24 +00:00
Leifer Mendez
d8d7afe3e4 Merge pull request #352 from codigoencasa/dev
Dev
2023-01-04 22:29:48 +01:00
Leifer Mendez
7b7ff8da55 Merge pull request #351 from codigoencasa/fix/bailey-restart
Fix/bailey restart
2023-01-04 22:29:28 +01:00
Leifer Mendez
fdd38dd541 Merge branch 'fix/bailey-restart' of github.com:leifermendez/bot-whatsapp into fix/bailey-restart 2023-01-04 22:28:52 +01:00
Leifer Mendez
5ce9d82c6d ci(providers): 👍 updated versions stable providers 2023-01-04 22:28:41 +01:00
Leifer Mendez
54d84cd156 Merge pull request #350 from codigoencasa/dev
Dev
2023-01-04 22:17:11 +01:00
leifermendez
5ae588e9cb ci(providers): 👍 updated versions stable providers 2023-01-04 21:16:24 +00:00
Leifer Mendez
8e6d5cd159 Merge pull request #348 from cheveguerra/dev
Se modifico el README de Starters y se arreglaron los emojis de app.js
2023-01-04 22:15:27 +01:00
leifermendez
f7da73050d ci(providers): 👍 updated versions stable providers 2023-01-04 21:14:38 +00:00
leifermendez
8a7ee09211 ci(providers): 👍 updated versions stable providers 2023-01-04 21:14:21 +00:00
Leifer Mendez
1ba2219710 fix(provider): baileys fix restart
fix(provider):  baileys fix restart
2023-01-04 22:13:34 +01:00
Leifer Mendez
ae83774365 fix(provider): baileys fix restart 2023-01-04 22:12:39 +01:00
cheveguerra
47a59dc989 ci(providers): 👍 updated versions stable providers 2023-01-04 06:24:31 +00:00
49e55088c7 docs: se modifico el README de Starters
Se modifico el README de Starters y se corrigieron los emojis de app.js
2023-01-04 00:22:56 -06:00
cheveguerra
19fd788c0f ci(providers): 👍 updated versions stable providers 2023-01-04 06:02:37 +00:00
445d3ba78c Merge branch 'codigoencasa:dev' into dev 2023-01-04 00:00:05 -06:00
leifermendez
3c16f8f501 ci(providers): 👍 updated versions stable providers 2023-01-03 22:14:10 +00:00
Leifer Mendez
41c911f867 Merge pull request #347 from codigoencasa/dev
Dev
2023-01-03 23:13:35 +01:00
Leifer Mendez
93745dcc14 Merge pull request #346 from codigoencasa/feat/rev-03
Feat/rev 03
2023-01-03 23:13:15 +01:00
Leifer Mendez
b89aebb106 Merge branch 'feat/rev-03' of github.com:leifermendez/bot-whatsapp into feat/rev-03 2023-01-03 23:12:40 +01:00
Leifer Mendez
a20499bf35 ci(providers): 👍 updated versions stable providers 2023-01-03 23:12:30 +01:00
leifermendez
d06294a15a ci(providers): 👍 updated versions stable providers 2023-01-03 22:10:32 +00:00
leifermendez
dcbc070ea5 ci(providers): 👍 updated versions stable providers 2023-01-03 22:10:13 +00:00
Leifer Mendez
c84fd60237 Merge pull request #345 from codigoencasa:feat/rev-03
feat(bot):  rev-03 everything work fine
2023-01-03 23:07:44 +01:00
Leifer Mendez
3012e026b7 feat(bot): rev-03 everything work fine 2023-01-03 23:06:27 +01:00
cheveguerra
d94034d5bb ci(providers): 👍 updated versions stable providers 2023-01-03 17:47:12 +00:00
dbf291070e Merge branch 'codigoencasa:dev' into dev 2023-01-03 11:46:16 -06:00
leifermendez
9d2f57da76 ci(providers): 👍 updated versions stable providers 2023-01-03 12:51:30 +00:00
Leifer Mendez
ceda946d78 Merge pull request #343 from codigoencasa/dev
Dev
2023-01-03 13:50:56 +01:00
Leifer Mendez
b0fe63e70f Merge pull request #342 from codigoencasa/fix/dialog-cx-buttons
Fix/dialog cx buttons
2023-01-03 13:50:34 +01:00
Leifer Mendez
eabef7a92d fix(contexts): 🔥 added buttons 2023-01-03 13:49:57 +01:00
Leifer Mendez
9afc5b5a00 Merge branch 'fix/dialog-cx-buttons' of github.com:leifermendez/bot-whatsapp into fix/dialog-cx-buttons 2023-01-03 13:49:09 +01:00
Leifer Mendez
1b878d2ba0 fix(contexts): 🔥 added buttons 2023-01-03 13:49:00 +01:00
leifermendez
fe33c213b1 ci(providers): 👍 updated versions stable providers 2023-01-03 12:42:05 +00:00
Leifer Mendez
b0b7ea0e1b next-release-dev-alpha
next-release-dev-alpha
2023-01-03 13:41:56 +01:00
leifermendez
3d197e877e ci(providers): 👍 updated versions stable providers 2023-01-03 12:41:42 +00:00
Leifer Mendez
08de15d3d8 fix(contexts): 🔥 added buttons
fix(contexts): 🔥 added buttons
2023-01-03 13:41:12 +01:00
Leifer Mendez
2a1436bf7c Merge branch 'fix/dialog-cx-buttons' of github.com:leifermendez/bot-whatsapp into fix/dialog-cx-buttons 2023-01-03 13:40:25 +01:00
Leifer Mendez
78b0a9dddc fix(contexts): 🔥 added buttons 2023-01-03 13:40:18 +01:00
leifermendez
77be7ec7fb ci(providers): 👍 updated versions stable providers 2023-01-03 12:25:51 +00:00
Leifer Mendez
d8309f77e1 fix(contexts): 🔥 added buttons 2023-01-03 13:24:15 +01:00
leifermendez
d49a91308d ci(providers): 👍 updated versions stable providers 2023-01-03 11:53:55 +00:00
Leifer Mendez
96a993eeb0 Merge pull request #339 from codigoencasa/fix/ci-linter
Fix/ci linter
2023-01-03 12:53:01 +01:00
Leifer Mendez
760586c819 Merge branch 'fix/ci-linter' of github.com:leifermendez/bot-whatsapp into fix/ci-linter 2023-01-03 12:52:15 +01:00
Leifer Mendez
3cef741c9e fix(provider): json space 2023-01-03 12:52:07 +01:00
leifermendez
d307d2e7a3 ci(providers): 👍 updated versions stable providers 2023-01-03 11:49:11 +00:00
leifermendez
fe1129e5ff ci(providers): 👍 updated versions stable providers 2023-01-03 11:48:56 +00:00
Leifer Mendez
57fd3e8aab fix(provider): json space
fix(provider):  json space
2023-01-03 12:48:06 +01:00
Leifer Mendez
9b087e0710 fix(provider): json space 2023-01-03 12:47:30 +01:00
leifermendez
568978c0dc ci(providers): 👍 updated versions stable providers 2023-01-03 11:36:10 +00:00
Leifer Mendez
45f477e782 Merge pull request #336 from codigoencasa/fix/json-import
Fix/json import
2023-01-03 12:35:16 +01:00
Leifer Mendez
79f638d01b Merge branch 'fix/json-import' of github.com:leifermendez/bot-whatsapp into fix/json-import 2023-01-03 12:34:04 +01:00
Leifer Mendez
208fb4e913 fix(provider): json space 2023-01-03 12:33:56 +01:00
leifermendez
a603e3b7dc ci(providers): 👍 updated versions stable providers 2023-01-03 11:31:00 +00:00
leifermendez
38e2340782 ci(providers): 👍 updated versions stable providers 2023-01-03 11:30:46 +00:00
Leifer Mendez
43f870b1bb fix(provider): json space
fix(provider):  json space
2023-01-03 12:30:03 +01:00
Leifer Mendez
54a59c7f0d fix(provider): json space 2023-01-03 12:29:26 +01:00
Leifer Mendez
2850a34ead docs: updated video 2023-01-03 12:28:57 +01:00
github-actions[bot]
9242a54fc2 ci(version): automatic - "${date}" updated versions every packages 2023-01-03 10:38:29 +00:00
Leifer Mendez
b0c0510420 Merge branch 'feat/ci-stable-ver' of github.com:leifermendez/bot-whatsapp into feat/ci-stable-ver 2023-01-03 11:37:09 +01:00
Leifer Mendez
4dda7c8491 Merge pull request #334 from codigoencasa/dev
Dev
2023-01-03 11:35:22 +01:00
cheveguerra
0fee32e788 ci(providers): 👍 updated versions stable providers 2023-01-03 00:32:33 +00:00
leifermendez
ebf53fd79f ci(providers): 👍 updated versions stable providers 2023-01-02 09:38:06 +00:00
Leifer Mendez
3d639b78f2 Merge pull request #333 from marianarolfo/fix/docs-footer
docs: remove icons
2023-01-02 10:36:59 +01:00
leifermendez
1c1a1e6954 ci(providers): 👍 updated versions stable providers 2023-01-02 09:29:24 +00:00
marianarolfo
4e1aeacc35 docs: remove icons 2023-01-02 10:28:26 +01:00
Leifer Mendez
4dc65fd519 Merge pull request #332 from cheveguerra/dev
Se modificó app.js en Starters para quitar la funcion addChild
2023-01-02 10:26:56 +01:00
leifermendez
bd952243b7 ci(providers): 👍 updated versions stable providers 2023-01-02 09:03:56 +00:00
Leifer Mendez
641d9a2519 docs(faq): added fat 2023-01-02 10:03:01 +01:00
cheveguerra
6940d33960 ci(providers): 👍 updated versions stable providers 2023-01-01 20:55:50 +00:00
76a4216772 Merge branch 'dev' of https://github.com/cheveguerra/bot-whatsapp into dev 2023-01-01 14:54:44 -06:00
ba2291a3dd fix: se quito addChild de las constantes porque no se usa
se quito addChild de la seccion de constantes porque no se usa
2023-01-01 14:54:34 -06:00
cheveguerra
0d6f702ff5 ci(providers): 👍 updated versions stable providers 2023-01-01 20:32:27 +00:00
32db429f29 fix: correccion en app.js para remover addChild en starters
Correccion en Starters, se quito de app.js la funcion addChild
2023-01-01 14:18:24 -06:00
cheveguerra
b5d8a6d28a ci(providers): 👍 updated versions stable providers 2023-01-01 19:25:58 +00:00
d04e7322cb Merge branch 'codigoencasa:dev' into dev 2023-01-01 13:24:48 -06:00
leifermendez
f5eee8b6f5 ci(providers): 👍 updated versions stable providers 2023-01-01 19:10:20 +00:00
leifermendez
78fb70bc1a ci(providers): 👍 updated versions stable providers 2023-01-01 19:09:58 +00:00
Leifer Mendez
99b18617e7 refactor(provider): change PORT options
refactor(provider):  change PORT options
2023-01-01 20:09:49 +01:00
cheveguerra
6a26aed929 ci(providers): 👍 updated versions stable providers 2023-01-01 19:09:24 +00:00
Leifer Mendez
bdf8abfca4 refactor(provider): change PORT options
refactor(provider):  change PORT options
2023-01-01 20:09:19 +01:00
Leifer Mendez
fa64d4e3fd Merge branch 'feat/ci-stable-ver' of github.com:leifermendez/bot-whatsapp into feat/ci-stable-ver 2023-01-01 20:07:43 +01:00
Leifer Mendez
55bef7c4e7 refactor(provider): change PORT options 2023-01-01 20:07:34 +01:00
leifermendez
04b51046aa ci(providers): 👍 updated versions stable providers 2023-01-01 18:15:49 +00:00
Leifer Mendez
6b75bd10fa ci(providers): updated versions providers
Feat/ci-stable-ver
2023-01-01 19:14:54 +01:00
leifermendez
1415a3c915 ci(providers): 👍 updated versions stable providers 2023-01-01 18:13:51 +00:00
Leifer Mendez
a3c2c85d90 ci(providers): updated versions providers 2023-01-01 19:10:57 +01:00
Leifer Mendez
38cd1593a1 Merge remote-tracking branch 'origin/dev' into feat/ci-providers-check 2023-01-01 15:21:32 +01:00
leifermendez
815bb9df84 ci(providers): updated versions providers 2023-01-01 14:19:22 +00:00
Leifer Mendez
b5016c7b98 Merge pull request #327 from codigoencasa/contributors-readme-action-cC8-S8pCpi
docs(contributor): contributors readme action update
2023-01-01 15:18:32 +01:00
leifermendez
b968d4cba2 ci(providers): updated versions providers 2023-01-01 14:16:13 +00:00
github-actions[bot]
adda5d8c64 docs(contributor): contrib-readme-action has updated readme 2023-01-01 14:15:39 +00:00
Leifer Mendez
f15e34020e Merge pull request #326 from codigoencasa/feat/ci-providers-check
ci(provider):  automatic updated versions
2023-01-01 15:15:19 +01:00
leifermendez
65afdeb69e ci(providers): updated versions providers 2023-01-01 14:14:02 +00:00
Leifer Mendez
1a5c591294 Merge branch 'feat/ci-providers-check' of github.com:leifermendez/bot-whatsapp into feat/ci-providers-check 2023-01-01 15:12:22 +01:00
Leifer Mendez
b5bfeab57c ci(provider): automatic updated versions 2023-01-01 15:11:48 +01:00
leifermendez
c309d4fbda ci(providers): updated versions providers 2023-01-01 14:09:42 +00:00
Leifer Mendez
8f2734bfaa ci(provider): automatic updated versions 2023-01-01 15:08:36 +01:00
Leifer Mendez
637c13e81c ci(provider): automatic updated versions 2023-01-01 15:07:25 +01:00
Leifer Mendez
3248dce03d ci(provider): automatic updated versions 2023-01-01 15:07:11 +01:00
Leifer Mendez
928365dcaf fix(provider): 🔥 baileys fix 2023-01-01 13:58:36 +01:00
Leifer Mendez
e37f28096c Merge remote-tracking branch 'origin/dev' into feat/docs-video 2023-01-01 12:54:50 +01:00
Leifer Mendez
ea1c0bf99b Merge pull request #325 from marianarolfo/patch-7
add info install node
2022-12-31 21:29:16 +01:00
marianarolfo
aff9f19d8e add info install node 2022-12-31 14:10:39 +01:00
Leifer Mendez
3324ebbb7d Merge pull request #324 from marianarolfo/fix/docs-readme-01
Fix/docs-readme-01
2022-12-31 13:53:33 +01:00
marianarolfo
5633f7c71c docs(READMED): update, style 2022-12-31 13:52:26 +01:00
marianarolfo
b659cc9b15 docs(README): updated, style 2022-12-31 13:47:52 +01:00
Leifer Mendez
c42591000a docs: updated video
docs:  updated video
2022-12-30 20:13:55 +01:00
Leifer Mendez
eaf6e084c1 docs: updated video 2022-12-30 20:13:15 +01:00
github-actions[bot]
ee5b69dbf3 ci(version): automatic - "${date}" updated versions every packages 2022-12-30 18:45:58 +00:00
Leifer Mendez
e0a34d8d8d Merge pull request #321 from codigoencasa/dev
Dev
2022-12-30 19:44:33 +01:00
Leifer Mendez
30e4c20669 Merge pull request #320 from codigoencasa/feat/refactor-cb
refactor(bot): 🔥 refactor child nested cbs
2022-12-30 19:43:45 +01:00
Leifer Mendez
b2f9f7158b refactor(bot): 🔥 refactor child nested cbs 2022-12-30 19:40:35 +01:00
Leifer Mendez
229e017ae2 fix(starters): base templates are added for meta
excelente trabajo @vicente1992
2022-12-30 19:17:31 +01:00
Leifer Mendez
dacc7af87b refactor(bot): 🔥 refactor child nested cbs
refactor(bot): 🔥 refactor child nested cbs
2022-12-30 15:29:09 +01:00
Leifer Mendez
e54f1fff51 refactor(bot): 🔥 refactor child nested cbs 2022-12-30 15:28:06 +01:00
Leifer Mendez
cfde8b213c refactor(bot): 🔥 refactor child nested cbs
refactor(bot): 🔥 refactor child nested cbs
2022-12-30 15:12:08 +01:00
Leifer Mendez
7d96a2c8d9 refactor(bot): 🔥 refactor child nested cbs 2022-12-30 15:09:05 +01:00
Leifer Mendez
e596526762 refactor(bot): 🔥 refactor child nested cbs 2022-12-30 15:05:24 +01:00
Leifer Mendez
230bfc16eb refactor(bot): 🔥 refactor child nested cbs 2022-12-30 15:02:58 +01:00
Leifer Mendez
2cbc96245d fix(bot): working nested new flow 2022-12-30 14:54:44 +01:00
Leifer Mendez
952ce86ffa fix(bot): working callback Phase 1 2022-12-30 14:18:22 +01:00
Leifer Mendez
c62af73c16 refactor(bot): improvement refactor for get cbs 2022-12-30 13:36:09 +01:00
vicente1992
20f665175c fix(starters): base templates are added for meta 2022-12-30 07:24:29 -05:00
Leifer Mendez
11c784f882 feat(starters): meta memory base template added
feat(starters): meta memory base template added
2022-12-30 09:11:19 +01:00
Leifer Mendez
a6f4aa8d1e fix(cli): updated 2022-12-29 17:31:43 +01:00
github-actions[bot]
41e95a606d ci(version): automatic - "${date}" updated versions every packages 2022-12-29 13:57:51 +00:00
Leifer Mendez
33c0fc09d0 Merge pull request #314 from codigoencasa/dev
Dev
2022-12-29 14:54:43 +01:00
Leifer Mendez
751ae00df3 docs: 🎨 updated readme
docs: 🎨 updated readme
2022-12-29 14:53:19 +01:00
Leifer Mendez
e17fb93b47 docs: 🎨 updated readme 2022-12-29 14:52:04 +01:00
Leifer Mendez
5088b9ff1b ci: 🎨 added new yml for deplooy netlify 2022-12-29 14:31:57 +01:00
Leifer Mendez
0db9a190cb docs: added env file pipeline process 2022-12-29 14:26:04 +01:00
Leifer Mendez
27ad84fc6c docs: added env file pipeline process 2022-12-29 14:22:27 +01:00
Leifer Mendez
447e75f97d docs: added env file pipeline process 2022-12-29 14:14:02 +01:00
Leifer Mendez
a60c891a86 docs: added env file pipeline process 2022-12-29 14:12:35 +01:00
Leifer Mendez
480d96771f docs(contributing): new section by contributors 2022-12-29 14:06:23 +01:00
Leifer Mendez
5c620342a4 docs(contributing): new section by contributors 2022-12-29 13:56:39 +01:00
Leifer Mendez
d39feb78f0 docs(contributing): new section by contributors 2022-12-29 13:28:55 +01:00
Leifer Mendez
3af618d466 docs(contributing): new section by contributors 2022-12-29 13:24:06 +01:00
Leifer Mendez
30f9975738 docs(contributing): new section by contributors 2022-12-29 13:15:27 +01:00
Leifer Mendez
18a59b85cb docs(contributing): new section by contributors 2022-12-29 12:26:39 +01:00
Leifer Mendez
2563e3ed84 docs(contributing): new section by contributors 2022-12-29 12:20:42 +01:00
Leifer Mendez
c382ca3ca2 Merge pull request #311 from codigoencasa/feat/docs-netlify
docs(contributing):  new section by contributors
2022-12-29 12:19:25 +01:00
Leifer Mendez
ab7ad81efb docs(contributing): new section by contributors 2022-12-29 12:17:55 +01:00
Leifer Mendez
91cafe5bb9 docs(contributing): new section by contributors
docs(contributing):  new section by contributors
2022-12-29 12:11:39 +01:00
Leifer Mendez
83fb510a39 docs(contributing): new section by contributors 2022-12-29 12:10:56 +01:00
Leifer Mendez
9a0ba42705 docs(contributing): new section by contributors 2022-12-29 12:09:56 +01:00
vicente1992
e8d625201e feat(starters): meta memory base template added 2022-12-29 00:01:10 -05:00
Leifer Mendez
f1addf6746 Merge pull request #308 from codigoencasa/feat/docs-netlify
docs: 🔥 added netlify
2022-12-28 21:36:37 +01:00
Leifer Mendez
6c50148143 docs: 🔥 added netlify 2022-12-28 21:35:35 +01:00
Leifer Mendez
8bc233a79a Merge pull request #307 from codigoencasa/feat/docs-netlify
docs: 🔥 added netlify
2022-12-28 21:29:41 +01:00
Leifer Mendez
4abb29f8db docs: 🔥 added netlify 2022-12-28 21:29:04 +01:00
Leifer Mendez
1c976f28f0 Merge pull request #306 from codigoencasa/feat/docs-netlify
docs: 🔥 added netlify
2022-12-28 21:27:53 +01:00
Leifer Mendez
98440bbd16 docs: 🔥 added netlify 2022-12-28 21:27:01 +01:00
Leifer Mendez
069b59e71d Merge pull request #305 from codigoencasa/feat/docs-netlify
docs: 🔥 added netlify
2022-12-28 20:59:09 +01:00
Leifer Mendez
96b569766c docs: 🔥 added netlify 2022-12-28 20:58:17 +01:00
Leifer Mendez
939c9cbae5 Merge pull request #304 from codigoencasa/feat/docs-netlify
Feat/docs-netlify
2022-12-28 20:52:31 +01:00
Leifer Mendez
be39e8fd30 docs: 🔥 added netlify 2022-12-28 20:51:28 +01:00
Leifer Mendez
279b93b61b Merge pull request #303 from codigoencasa/fix/01-rev
deFix/01 rev
2022-12-28 11:27:30 +01:00
Leifer Mendez
5b796a163e docs: added contributors 2022-12-28 11:24:39 +01:00
Leifer Mendez
305d957e11 Merge pull request #302 from codigoencasa/fix/01-rev
docs:  added contributors
2022-12-28 11:16:39 +01:00
Leifer Mendez
54d1f57a54 docs: added contributors 2022-12-28 11:15:14 +01:00
Leifer Mendez
4896284a23 Merge pull request #301 from codigoencasa/fix/01-rev
docs:  added contributors
2022-12-28 10:54:07 +01:00
Leifer Mendez
5aa348be0d docs: added contributors 2022-12-28 10:52:55 +01:00
Leifer Mendez
846cecdcab Merge pull request #300 from codigoencasa/fix/01-rev
docs:  added contributors
2022-12-28 10:46:50 +01:00
Leifer Mendez
954e6b3a98 docs: added contributors 2022-12-28 10:45:51 +01:00
Leifer Mendez
b58e0cc048 docs: added contributors
docs:  added contributors
2022-12-28 10:29:10 +01:00
Leifer Mendez
8b3c02d027 docs: added contributors 2022-12-28 10:21:10 +01:00
Leifer Mendez
086c1c3a36 docs: added contributors
docs:  added contributors
2022-12-27 21:54:04 +01:00
Leifer Mendez
edf45774ba docs: added contributors 2022-12-27 21:53:12 +01:00
Leifer Mendez
7f437d0587 docs: added contributors 2022-12-27 20:48:58 +01:00
Leifer Mendez
14c818102c docs(update): more info
Erratas
2022-12-27 16:16:37 +01:00
Leifer Mendez
8ce5d43d6b docs(update): more info
@marianarolfo excelente! gracias por tu trabajo
2022-12-27 16:15:15 +01:00
marianarolfo
b6fd8e2632 Unirse 2022-12-27 16:12:42 +01:00
marianarolfo
e5efdec31d Erratas 2022-12-27 14:17:35 +01:00
github-actions[bot]
de43077860 ci(version): automatic - "${date}" updated versions every packages 2022-12-27 12:46:41 +00:00
Leifer Mendez
d7cb5b285e release:dev
release:dev
2022-12-27 13:43:56 +01:00
Leifer Mendez
21407c0e37 fix(bot): 🔥 fix rev
fix(bot): 🔥 fix rev
2022-12-27 13:42:57 +01:00
Leifer Mendez
484c8c3bde fix(bot): 🔥 fix rev 2022-12-27 13:42:22 +01:00
Leifer Mendez
6499248983 docs(bot): 🔥 style pre
docs(bot): 🔥 style pre
2022-12-26 21:08:00 +01:00
Leifer Mendez
f2137d310d docs(bot): 🔥 style pre 2022-12-26 21:07:10 +01:00
Leifer Mendez
69fd81a565 feat(docs): master class updated 2022-12-26 20:27:54 +01:00
HackMD
d522b03e2e feat(docs): master class updated 2022-12-26 19:26:37 +00:00
Leifer Mendez
e62351bbc8 docs(bot): 🎨 master class added 2022-12-26 20:21:50 +01:00
Leifer Mendez
2db0e10626 docs(bot): 🎨 master class added 2022-12-26 20:15:03 +01:00
Leifer Mendez
e331c2dcc4 feat(bot): http responses support 2022-12-26 20:10:42 +01:00
Leifer Mendez
eacf5ded69 docs: more info 2022-12-26 14:35:19 +01:00
Leifer Mendez
bb7161b8f3 docs: more info 2022-12-26 14:13:19 +01:00
Leifer Mendez
3cdff95f0f docs: more info 2022-12-26 14:07:45 +01:00
HackMD
512c923095 last changed at Dec 25, 2022 11:11 PM, pushed by Leifer Mendez 2022-12-25 22:15:07 +00:00
Leifer Mendez
aa522059bb docs(bot): 🎨 master class added
docs(bot): 🎨 master class added
2022-12-26 20:22:36 +01:00
Leifer Mendez
15d06c6674 docs(contributor): contributors readme action update
docs(contributor): contributors readme action update
2022-12-26 20:16:37 +01:00
Leifer Mendez
52eacfc8c9 Merge branch 'dev' into contributors-readme-action-a4sz8TL1y4 2022-12-26 20:16:25 +01:00
Leifer Mendez
78ddf742db docs(bot): 🎨 master class added
docs(bot): 🎨 master class added
2022-12-26 20:15:34 +01:00
Leifer Mendez
2d2bb085cd feat(bot): http responses support
feat(bot):  http responses support
2022-12-26 20:11:18 +01:00
Leifer Mendez
9dc1ac5c42 docs: more info
docs:  more info
2022-12-26 14:37:40 +01:00
github-actions[bot]
3cc386acd4 docs(contributor): contrib-readme-action has updated readme 2022-12-26 13:33:21 +00:00
Leifer Mendez
887b0335b4 docs: more info
docs:  more info
2022-12-26 14:28:06 +01:00
Leifer Mendez
42931ca689 docs: more info
docs:  more info
2022-12-26 14:08:40 +01:00
Leifer Mendez
c3e44f764b Fix/docs nex
Fix/docs nex
2022-12-25 21:02:26 +01:00
Leifer Mendez
8b6a27b0a7 docs: updated 2022-12-25 20:57:07 +01:00
Leifer Mendez
e4ed904a8b docs: updated 2022-12-25 20:53:25 +01:00
Leifer Mendez
4be1906914 Merge remote-tracking branch 'origin/dev' into fix/docs-nex 2022-12-25 17:11:05 +01:00
Leifer Mendez
eba032b3b8 docs: 🎨 before merge 2022-12-25 17:10:18 +01:00
Leifer Mendez
666d689986 docs(web): update
Update Hero.tsx
2022-12-25 13:49:07 +01:00
Leifer Mendez
351e2b97d0 docs(web): update
docs(web): spellcheck
2022-12-25 13:48:50 +01:00
Leifer Mendez
7d2aecf369 docs(web): update
docs(web): update
2022-12-25 13:48:31 +01:00
Leifer Mendez
917942139f feat(contexts): dialogflowcx support
Excelente trabajo @danielcasta0398
2022-12-25 13:47:26 +01:00
marianarolfo
d117bdd463 Update Hero.tsx 2022-12-25 13:24:23 +01:00
marianarolfo
68eee0f36d docs(web): update 2022-12-24 18:30:01 +01:00
marianarolfo
ecf2a16b3d docs(web): spellcheck 2022-12-24 18:25:41 +01:00
Juan Daniel
eba92299cf feat(conflict): remove unused variable 2022-12-24 14:15:51 +01:00
Leifer Mendez
88ff3a43a0 docs: updated docs
docs:  updated docs
2022-12-24 14:11:23 +01:00
Leifer Mendez
ba02496222 docs: updated docs 2022-12-24 14:10:27 +01:00
Juan Daniel
c20e151e20 feat(adapter): send messages with dialogflow 2022-12-23 22:40:35 +01:00
Leifer Mendez
2cf7f5e668 Merge pull request #275 from codigoencasa/fix/docs-nex
Fix/docs nex
2022-12-23 22:17:16 +01:00
Leifer Mendez
b336586de3 docs: added video 2022-12-23 22:15:46 +01:00
Leifer Mendez
69557968ab docs(bot): 📝 updated HOME 2022-12-23 20:07:53 +01:00
Leifer Mendez
9223b0dda7 docs(bot): 📝 updated HOME 2022-12-23 20:00:52 +01:00
Leifer Mendez
146f2ba489 Merge pull request #274 from codigoencasa/fix/docs-nex
Fix/docs nex
2022-12-23 19:57:24 +01:00
Leifer Mendez
6403b83c23 docs(bot): 📝 updated HOME 2022-12-23 19:55:15 +01:00
Leifer Mendez
0e111b2bb7 When Dialogflow asks for an Image, then Upload it to Google Drive and then generate Shared Link
When Dialogflow asks for an Image, then Upload it to Google Drive and then generate Shared Link
2022-12-23 19:39:03 +01:00
Leifer Mendez
b2a0b351ee docs(starters): 🎨 desing 2022-12-23 15:21:33 +01:00
Leifer Mendez
5be76e9d2d docs(bot): 📝 merged 2022-12-23 11:36:41 +01:00
Leifer Mendez
be124cd7a2 docs: se agrego ejemplo de flujos hijos a MIGRATION.md
excelente trabajo como siempre
2022-12-23 11:07:25 +01:00
377d819038 Merge branch 'codigoencasa:dev' into dev 2022-12-23 02:57:28 -06:00
github-actions[bot]
33ad9c7703 ci(version): automatic - "${date}" updated versions every packages 2022-12-23 08:50:28 +00:00
Leifer Mendez
458fd30178 🚀 next-release
Dev
2022-12-23 09:47:37 +01:00
c539fc3788 docs: se agregaron secciones avanzado y botones y listas
se agregaron secciones avanzado y botones y listas
2022-12-23 01:44:51 -06:00
6656676123 docs: se agrego texto al archivo index.mdx de MIGRACION
Se agrego texto al archivo index.mdx de MIGRACION, solo copié el texto de MIGRATION.md
2022-12-23 00:48:47 -06:00
26dbfcdc72 docs: se agrego encabezado al ejemplo de los flujos hijos
se agrego encabezado al ejemplo de los flujos hijos
2022-12-23 00:15:39 -06:00
a256b78e5f docs: pequeños cambios en el formato del texto de MIGRATION.md
pequeños cambios en el formato del texto de MIGRATION.md
2022-12-23 00:12:56 -06:00
9577aba145 docs: cambios en el formato del texto
cambios en el formato del texto
2022-12-22 23:56:52 -06:00
2f30b995e2 docs: se agregó texto al archivo index.mdx de INSTALACION
Se agegaron instraucciones para instalar el bot  al archivo index.mdx de INSTALACION
2022-12-22 23:47:07 -06:00
c410e9763c docs: se agrego ejemplo de flujos hijos a migration.md
se agrego ejemplo de flujos hijos a migration.md
2022-12-22 22:07:02 -06:00
Zvi
c308834e6d Merge branch 'codigoencasa:main' into main 2022-12-22 20:47:14 -05:00
jzvi12
748262302c added dialogflow filter for media 2022-12-22 20:43:16 -05:00
Leifer Mendez
111368e9e4 docs: 🚑 added new page 2022-12-22 20:07:37 +01:00
Leifer Mendez
70eebe58b9 docs: 🐛 add more info 2022-12-22 20:00:51 +01:00
Leifer Mendez
67d47a6630 docs(ci): 🔥 updated add 2022-12-22 18:46:19 +01:00
Leifer Mendez
3dcb247ef9 docs(bot): updated doc 2022-12-22 18:36:43 +01:00
Leifer Mendez
15d31d6047 docs: 📝 update docs
docs: 📝 update docs
2022-12-22 14:01:33 +01:00
Leifer Mendez
65ffbc358d docs: 📝 update docs 2022-12-22 13:49:37 +01:00
Leifer Mendez
0353d0994d Merge pull request #269 from codigoencasa/fix/docs-nex
docs: 📝 update docs
2022-12-22 10:34:46 +01:00
Leifer Mendez
160adee406 docs: 📝 update docs 2022-12-22 10:28:15 +01:00
Leifer Mendez
5ee5973911 docs: 📝 update docs 2022-12-22 10:15:29 +01:00
Leifer Mendez
331e5b0f8e docs: 📝 new docs 2022-12-22 09:59:11 +01:00
Juan Daniel
4d8cf623ff feat(contexts): add new dialogflowcx 2022-12-21 23:09:33 +01:00
Juan Daniel
9885872991 feat(contexts): add new dialogflowcx 2022-12-21 23:08:23 +01:00
Leifer Mendez
d1e2fbc750 docs(starters): 📝 updated 2022-12-21 13:14:31 +01:00
Leifer Mendez
6aa78233ff docs(funding): updated 2022-12-21 10:47:01 +01:00
Leifer Mendez
e9539cab8b added OpenCollective 2022-12-21 09:54:15 +01:00
Leifer Mendez
386c1bbbac fix(adapter): json db change is made
fix(adapter): json db change is made
2022-12-21 08:56:02 +01:00
vicente1992
3bdc7afe80 fix(adapter): json db change is made 2022-12-20 22:21:41 -05:00
Leifer Mendez
1b23b83746 feat(baileys): added more methods
feat(baileys): added more methods
2022-12-20 17:30:50 +01:00
Leifer Mendez
37fe32322e fix(starters): 📝 update MIGRATION
fix(starters): 📝 update MIGRATION
2022-12-20 17:13:29 +01:00
Leifer Mendez
9b30e7dcfc fix(starters): 📝 update MIGRATION 2022-12-20 17:12:53 +01:00
Leifer Mendez
478929d134 feat(provider): endpoint is added to validate the webhook …
feat(provider):  endpoint is added to validate the webhook …
2022-12-20 08:56:19 +01:00
Joseph VTX
16e5d4b176 ci(provider): 📦 add new package - wa-sticker-formatter
add new package - wa-sticker-formatter
2022-12-20 01:06:56 -05:00
Joseph VTX
0b4e35308d feat(provider): add new methods
add new methods
2022-12-20 01:04:07 -05:00
vicente1992
1ec15647dc feat(provider): endpoint is added to validate the webhook token 2022-12-19 22:03:33 -05:00
Leifer Mendez
9ad4874fda fix(adapter): 🔥 clear log
fix(adapter): 🔥 clear log
2022-12-19 15:08:33 +01:00
Leifer Mendez
4d34d3ab1d fix(adapter): 🔥 clear log 2022-12-19 15:05:19 +01:00
Leifer Mendez
772e52358d docs(contributing): 📝 update MySQL integration tips
docs(contributing): 📝 update MySQL integration tips
2022-12-19 14:21:16 +01:00
Leifer Mendez
24b59b1ecb Merge branch 'dev' into dev 2022-12-19 14:19:58 +01:00
github-actions[bot]
f200be76f4 ci(version): automatic - "${date}" updated versions every packages 2022-12-19 13:18:46 +00:00
jlferrete
c344ef3677 docs(contributing): 📝 add contributor to comunity
Add a new contributor to community
2022-12-19 14:17:36 +01:00
Leifer Mendez
388f56f183 👉 next-release
👉 next-release
2022-12-19 14:16:23 +01:00
Leifer Mendez
2eab155cc9 Merge pull request #260 from cheveguerra/dev
docs: info en el MIGRATION.md
2022-12-19 14:15:03 +01:00
3cca0d3d14 docs: info en el MIGRATION.md
Se pone información en MIGRATION.MD, faltan ejemplos de envio de imagenes!
2022-12-19 07:10:05 -06:00
Leifer Mendez
b62d21a0bf feat(provider): update
feat(provider):  update
2022-12-19 14:04:43 +01:00
Leifer Mendez
0c94647a27 feat(provider): update 2022-12-19 14:02:09 +01:00
Leifer Mendez
2f633c72da feat(provider): added dialogflow
feat(provider):  added dialogflow
2022-12-19 13:37:36 +01:00
Leifer Mendez
7d6708c01b fix: 🎨 update 2022-12-19 13:36:18 +01:00
Leifer Mendez
798f1cebde feat(provider): added dialogflow 2022-12-19 13:32:54 +01:00
Leifer Mendez
78aa23fab0 fix(provider): 🔥 send message togther with media
fix(provider): 🔥 send message togther with media
2022-12-19 12:16:52 +01:00
Leifer Mendez
b6bf43d70f fix(provider): 🔥 send message togther with media 2022-12-19 12:16:20 +01:00
Leifer Mendez
d9aa97c781 fix(bot): 🚑 fix callback functions
fix(bot): 🚑 fix callback functions
#252 Closed
2022-12-19 11:49:16 +01:00
Leifer Mendez
964a074aa4 fix(bot): 🚑 fix callback functions 2022-12-19 11:45:39 +01:00
Leifer Mendez
b4aea18b63 docs(update): added new steps
Docs: Se agregó info de conexiones y flujos al README.md
2022-12-19 09:05:01 +01:00
4fc3a6332b docs: se agrego a README.md info de los flujos
Se agrego a README.md informacion del orden de los flujos y conexiones.
2022-12-18 17:58:56 -06:00
42a1f6502f docs: cambios a CONTRIBUTING.MD 2022-12-18 17:25:24 -06:00
50c975c8bd docs: cambios a CONTRIBUTING.MD 2022-12-18 17:21:16 -06:00
aed0f76dfb docs: cambios en CONTRIBUTING.MD
Se ampliaron las instrucciones para quitarla las dependencias "latest"
2022-12-18 17:17:51 -06:00
Leifer Mendez
954e751f70 feat: se agrego informacion al ejemplo en app.js
@cheveguerra excelente trabajo estaría genial si esos comentarios se agregaran en el README.md de cada starter hoy por ejemplo se agrego un poco más de información
 Voy merged este PR luego si haces las modificaciones en los readme haces otro pr
2022-12-18 22:14:26 +01:00
b2f1339610 feat: se agrego informacion al ejemplo en app.js
Se agrego informacion al ejemplo en app.js en el armado de los flujos secundarios
2022-12-18 14:15:47 -06:00
jlferrete
1f61e1a8ea docs(contributing): 📝 update MySQL integration tips 2022-12-18 15:52:17 +01:00
Leifer Mendez
63aacdbcaf docs(starters): 📝 updated doc
docs(starters): 📝 updated doc
2022-12-18 15:05:34 +01:00
Leifer Mendez
290812bf9a docs(starters): 📝 updated doc 2022-12-18 15:05:05 +01:00
Leifer Mendez
be3c228e9e Merge pull request #246 from codigoencasa/fix/cli
Merge pull request #246 from codigoencasa/fix/cli
2022-12-18 14:49:49 +01:00
Leifer Mendez
e585e2f5f6 fix(cli): 🔥 update instructions 2022-12-18 14:48:49 +01:00
Leifer Mendez
ed36ce0a77 fix(cli): 🔥 update instructions 2022-12-18 14:48:21 +01:00
Leifer Mendez
bad16943fc fix(cli): 🔥 update instructions
fix(cli): 🔥 update instructions
2022-12-18 14:14:52 +01:00
Leifer Mendez
a21633fb7c fix(cli): 🔥 update instructions 2022-12-18 14:14:16 +01:00
Leifer Mendez
96e220cd71 Update 2022-12-18 10:56:23 +01:00
Leifer Mendez
0e69d894e1 Merge pull request #244 from cheveguerra/dev
feat: corregimos los datos de mysql en app.js y package.json
2022-12-17 23:41:40 +01:00
8160d13c86 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
2022-12-17 15:33:25 -06:00
dcf65b87bc fix: agregamos variables para mysql
Agregamos las variables para la conexion  de MySQL en app.js
2022-12-17 07:48:32 -06:00
a8b29ee1ce Merge branch 'dev' of https://github.com/cheveguerra/bot-whatsapp into dev 2022-12-17 07:44:49 -06:00
b59d4fcdd7 fix: fix del db provider mysql
Se pusieron correctamente los datos de mysql en app.js y packaje.json
2022-12-17 07:40:27 -06:00
2f730ae71e Merge branch 'codigoencasa:dev' into dev 2022-12-17 07:16:13 -06:00
Leifer Mendez
6c4845d733 fix(provider): 🐛 qr code accurate
fix(provider): 🐛 qr code accurate
2022-12-17 14:03:09 +01:00
Leifer Mendez
91bfdc4630 fix(provider): 🐛 qr code accurate 2022-12-17 14:01:32 +01:00
Leifer Mendez
ff65832012 fix(provider): edit starter
fix(provider):  edit starter
2022-12-17 13:37:00 +01:00
Leifer Mendez
68dd1820f0 fix(provider): edit starter 2022-12-17 13:36:01 +01:00
Leifer Mendez
663641a1b8 fix(provider): qr-fix margin 2022-12-16 21:38:51 +01:00
Leifer Mendez
694284488d Merge remote-tracking branch 'origin/dev' into dev 2022-12-16 21:20:31 +01:00
github-actions[bot]
9f8693d63d ci(version): automatic - "${date}" updated versions every packages 2022-12-16 20:17:06 +00:00
Leifer Mendez
21ec4d1bdd Merge pull request #240 from codigoencasa/dev
Dev
2022-12-16 21:16:05 +01:00
Leifer Mendez
bf07c664d1 Revert "fix(provider): 🐛 create static site html qr"
This reverts commit c7e56a4b13.
2022-12-16 21:15:10 +01:00
Leifer Mendez
c7e56a4b13 fix(provider): 🐛 create static site html qr 2022-12-16 20:59:16 +01:00
fc56c3f042 Merge branch 'codigoencasa:dev' into dev 2022-12-16 12:27:10 -06:00
Leifer Mendez
4ec6f1e120 feat(provider): 🐛 dialogflow 2022-12-16 15:33:15 +01:00
Leifer Mendez
1032a3b769 Update README.md 2022-12-16 11:21:01 +01:00
cc809368f0 Merge branch 'codigoencasa:dev' into dev 2022-12-15 21:06:22 -06:00
github-actions[bot]
6051da99c8 ci(version): automatic - "${date}" updated versions every packages 2022-12-15 13:13:49 +00:00
Leifer Mendez
942d7e539a Merge pull request #215 from codigoencasa/dev
merge-full
2022-12-15 14:12:41 +01:00
Leifer Mendez
85f50be9dc fix(provider): 🐛 fix metea provider
fix(provider): 🐛 fix metea provider
2022-12-15 14:10:55 +01:00
Leifer Mendez
a52aaa11d8 fix(provider): 🐛 fix metea provider 2022-12-15 14:06:19 +01:00
Leifer Mendez
5b15527d78 Update test-case.yml 2022-12-15 11:01:17 +01:00
Leifer Mendez
25fc864f66 Update test-case.yml 2022-12-15 11:00:47 +01:00
0581d63942 Merge branch 'dev' of https://github.com/cheveguerra/bot-whatsapp into dev 2022-12-15 04:00:27 -06:00
Leifer Mendez
83c247377a Update test-case.yml 2022-12-15 11:00:24 +01:00
Leifer Mendez
032dc384b7 Update test-case.yml 2022-12-15 11:00:08 +01:00
Leifer Mendez
e3cbf6af01 Update test-case.yml 2022-12-15 10:59:38 +01:00
Leifer Mendez
188ff4fb7d Update test-case.yml 2022-12-15 10:58:59 +01:00
Leifer Mendez
73e079e93a Update test-case.yml 2022-12-15 10:57:41 +01:00
Leifer Mendez
911965b48e Update test-case.yml 2022-12-15 10:57:19 +01:00
Leifer Mendez
186477f04d Update test-case.yml 2022-12-15 10:56:29 +01:00
Leifer Mendez
2b13d58077 Update test-case.yml 2022-12-15 10:53:02 +01:00
4e0a1091ee fix: provider equivocado en app.js de venom
Se copio por error el provider de whatsapp-web.js en el app.js de venom
2022-12-15 03:19:19 -06:00
Leifer Mendez
a7d4103eb3 Update test-case.yml 2022-12-15 10:05:04 +01:00
Leifer Mendez
8328f5a078 Update test-case.yml 2022-12-15 10:04:51 +01:00
Leifer Mendez
7e5533e46e Create test-case.yml 2022-12-15 10:03:52 +01:00
Leifer Mendez
b041f7d0c7 feat(provider): meta provider is added
feat(provider): meta provider is added
excelente trabajo @vicente1992
2022-12-15 09:43:13 +01:00
Leifer Mendez
3842bb6889 Update stale.yml 2022-12-15 09:34:19 +01:00
vicente1992
71d43b585a fix(conflict): conflict resolution 2022-12-15 00:25:13 -05:00
vicente1992
438607c222 feat(provider): meta provider is added 2022-12-15 00:14:15 -05:00
e79b881297 Merge branch 'leifermendez:dev' into dev 2022-12-14 21:10:02 -06:00
99f508f938 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
2022-12-14 21:07:59 -06:00
Leifer Mendez
b7e1ae534a Create SECURITY.md 2022-12-14 23:33:34 +01:00
Leifer Mendez
77af8f9488 Update stale.yml 2022-12-14 23:32:04 +01:00
Leifer Mendez
dabb0cf131 Delete stale-issues.yml 2022-12-14 23:26:02 +01:00
Leifer Mendez
55985083ec Create stale.yml 2022-12-14 23:25:50 +01:00
Leifer Mendez
1fa234c870 Create stale-issues.yml 2022-12-14 23:19:11 +01:00
Leifer Mendez
7890eae03a Delete stale-issues.yml 2022-12-14 23:18:53 +01:00
Leifer Mendez
a80225f40e Create codeql.yml 2022-12-14 23:18:22 +01:00
Leifer Mendez
467cd23457 Update stale-issues.yml 2022-12-14 23:11:44 +01:00
Leifer Mendez
407e9065e7 Update and rename auto-pr-issue.yml to stale-issues.yml 2022-12-14 23:07:26 +01:00
Leifer Mendez
5433610a84 feat(provider): add sendfile and sendButtons
feat(provider):  add sendfile and sendButtons
2022-12-14 22:54:37 +01:00
Joseph VTX
a42b6f4af8 ci(provider): 📦 mime-types package.json
mime-types
2022-12-14 16:51:52 -05:00
Leifer Mendez
fbaef0f60c Update auto-pr-issue.yml 2022-12-14 22:43:45 +01:00
Joseph VTX
342cbccff1 feat(provider): add sendfile and sendButtons
SendFile and SendButtons
2022-12-14 14:52:09 -05:00
663f20cc43 Merge branch 'leifermendez:dev' into dev 2022-12-14 13:42:27 -06:00
github-actions[bot]
73671b26ef ci(version): automatic - "${date}" updated versions every packages 2022-12-14 18:20:02 +00:00
Leifer Mendez
06acec2bf2 feat(cli): added bailey
feat(cli):  added bailey
2022-12-14 19:17:44 +01:00
Leifer Mendez
c868f73462 feat(cli): added bailey 2022-12-14 18:59:03 +01:00
Leifer Mendez
93a990e229 Merge remote-tracking branch 'origin/dev' into dev 2022-12-14 18:50:58 +01:00
Leifer Mendez
00c587fbf2 Merge branch 'fix/starters' into dev 2022-12-14 18:47:30 +01:00
Leifer Mendez
e6fefb4049 fix(adapter): 🔥 improvement baileys
fix(adapter): 🔥 improvement baileys
2022-12-14 18:46:16 +01:00
Leifer Mendez
2d5ac2664b fix(adapter): 🔥 improvement baileys 2022-12-14 18:44:50 +01:00
Leifer Mendez
4d4f15ce73 fix(starters): 🔥 updated staters 2022-12-14 16:42:14 +01:00
Leifer Mendez
a30eaac775 fix(starters): 🔥 updated staters 2022-12-14 16:41:47 +01:00
Leifer Mendez
5da4b7a4d1 fix: updated starters 2022-12-14 14:27:40 +01:00
Leifer Mendez
4e0fcbd834 feat(provider): new added baileys
Baileys Provider
2022-12-14 14:15:09 +01:00
Leifer Mendez
041bf6280e fix(adapter): 🚀 venom update - cli - qr iamge 2022-12-14 13:40:52 +01:00
Leifer Mendez
e37fd0da36 fix(adapter): 🚀 venom update - cli - qr iamge
fix(adapter): 🚀 venom update - cli - qr iamge
2022-12-14 13:39:00 +01:00
Leifer Mendez
ca6afbb87f fix(adapter): 🚀 venom update - cli - qr iamge 2022-12-14 13:37:57 +01:00
Leifer Mendez
66f75f8722 feat(provider): new provider - venon configuracion inicial provi…
feat(provider): new provider - venon configuracion inicial provi…
2022-12-14 11:10:19 +01:00
Leifer Mendez
b8ea8283eb Create auto-pr-issue.yml 2022-12-14 10:39:17 +01:00
Leifer Mendez
3e0781fde6 Update PULL_REQUEST_TEMPLATE.md 2022-12-14 10:26:27 +01:00
Leifer Mendez
f50658c0ba Merge pull request #205 from leifermendez/template/issue
Create config.yml
2022-12-14 10:23:58 +01:00
Leifer Mendez
4819dfebda Create config.yml 2022-12-14 10:23:24 +01:00
Leifer Mendez
25fb0d6ece Merge pull request #204 from leifermendez/template/issue
Create bug.yml
2022-12-14 10:18:53 +01:00
Leifer Mendez
29fd94a0e1 Update bug.yml 2022-12-14 10:18:07 +01:00
Leifer Mendez
851052b3d2 Update bug.yml 2022-12-14 10:12:21 +01:00
Leifer Mendez
a43444bb3e Create bug.yml 2022-12-14 08:02:08 +01:00
Leifer Mendez
c2a6c6872d Create PULL_REQUEST_TEMPLATE.md 2022-12-14 07:59:13 +01:00
d5a614e5f8 Merge branch 'dev' of https://github.com/cheveguerra/bot-whatsapp into dev 2022-12-13 18:58:11 -06:00
c97a172b34 docs: correccion de errores ortograficos
Corrige algunos errores ortograficos en la documentacion.
2022-12-13 18:58:00 -06:00
Juan Daniel
31c83f5d68 feat(provider): solution error utils venom 2022-12-13 19:45:55 +01:00
Juan Daniel
1b83871cca feat(provider): solution error buttons 2022-12-13 19:44:41 +01:00
Juan Daniel
337c2e94bc feat(provider): added tamplate venom 2022-12-13 16:37:44 +01:00
Juan Daniel
01fe9ebc9a feat(provider): added new venom provider 2022-12-13 14:39:51 +01:00
Joseph VTX
23b2e8e439 feat(provider): baileysProvider
Baileys WebSocket - Fast
2022-12-12 20:25:53 -05:00
Leifer Mendez
f799498dec Merge pull request #200 from cheveguerra/dev
fix: actualizar ejemplo app.js
2022-12-12 23:22:04 +01:00
17466138dd fix: actualizar app.js de ejemplo
Corrige saltos de linea inecesarios.
2022-12-12 16:15:49 -06:00
63ca8e8892 Merge branch 'leifermendez:dev' into dev 2022-12-12 15:10:18 -06:00
60fdbf3d3c fix: actualizar ejemplo app.js
Se agregan flujos secundarios al app,js de ejemplo.
2022-12-12 14:42:37 -06:00
Leifer Mendez
e8c249897d docs(info): update
Docs: Cambios en la documentación
2022-12-12 19:54:36 +01:00
55d12810d9 docs: cambios en docs 2022-12-12 12:43:45 -06:00
639e2defa7 docs: cambios en la documentacion 2022-12-12 12:41:01 -06:00
b97d8ba8f1 docs: pagina de entrada 2022-12-12 12:27:33 -06:00
Leifer Mendez
f05b76936a chore(release): 0.1.2
chore(release): 0.1.2
2022-12-12 18:18:34 +01:00
Leifer Mendez
0a4e1e052a chore(release): 0.1.2 2022-12-12 18:14:32 +01:00
github-actions[bot]
28d88c282c ci(version): automatic - "${date}" updated versions every packages 2022-12-12 17:13:21 +00:00
Leifer Mendez
a2be57f0aa fix(cli): 🎨 starters
fix(cli): 🎨 starters
2022-12-12 18:12:22 +01:00
Leifer Mendez
670ecf121b fix(cli): 🎨 starters
fix(cli): 🎨 starters
2022-12-12 18:11:41 +01:00
Leifer Mendez
79e2318256 fix(cli): 🎨 starters 2022-12-12 18:09:27 +01:00
Leifer Mendez
87ba43a553 fix(cli): 🎨 starters 2022-12-12 18:04:17 +01:00
Leifer Mendez
acc1d37e4f Merge remote-tracking branch 'origin/dev' into fix/create-script 2022-12-12 17:53:13 +01:00
github-actions[bot]
c578d039c0 ci(version): automatic - "${date}" updated versions every packages 2022-12-12 16:49:37 +00:00
Leifer Mendez
162067104e Merge pull request #195 from leifermendez/dev
Dev
2022-12-12 17:48:07 +01:00
Leifer Mendez
ea677b6eea Merge pull request #193 from cheveguerra/fix/starter-app
Fix/starter app
2022-12-12 17:43:15 +01:00
Leifer Mendez
a82b1cfb57 chore(release): 0.1.1
chore(release): 0.1.1
2022-12-12 17:40:59 +01:00
61d0324261 fix: fix dependencias
Se agregaron bot, cli, database y provider a las dependencias
2022-12-12 10:37:17 -06:00
Leifer Mendez
4d692e0a26 chore(release): 0.1.1 2022-12-12 17:35:51 +01:00
Leifer Mendez
9de7eada87 chore(release): 0.1.1 2022-12-12 17:25:04 +01:00
Leifer Mendez
8f81d995a4 chore(release): 0.1.1
chore(release): 0.1.1
2022-12-12 17:19:25 +01:00
Leifer Mendez
024f13691d chore(release): 0.1.1 2022-12-12 17:18:04 +01:00
Leifer Mendez
4aa91cb22a chore(release): 0.1.1
chore(release): 0.1.1
2022-12-12 17:12:51 +01:00
Leifer Mendez
9ecafe5fc8 chore(release): 0.1.1 2022-12-12 17:03:30 +01:00
Leifer Mendez
d039e2aacd chore(release): 0.3.0 2022-12-12 17:03:06 +01:00
Leifer Mendez
5173a6c467 chore(release): 0.2.1 2022-12-12 17:02:37 +01:00
Leifer Mendez
1d08682393 chore(release): 0.2.0 2022-12-12 17:01:41 +01:00
Leifer Mendez
0bb251b4d5 chore(release): 0.0.3 2022-12-12 17:00:43 +01:00
Leifer Mendez
04baa7f6fd chore(release): 0.2.0 2022-12-12 16:58:06 +01:00
Leifer Mendez
32212fb52d fix(cli): 🐛 path 2022-12-12 16:50:15 +01:00
Leifer Mendez
aa61a1e1b5 Merge branch 'dev' into fix/create-script 2022-12-12 16:47:55 +01:00
Leifer Mendez
f0a0bacec9 Merge pull request #191 from leifermendez/add-code-of-conduct-1
Create CODE_OF_CONDUCT.md
2022-12-12 16:42:40 +01:00
Leifer Mendez
ec32dc429f Create CODE_OF_CONDUCT.md 2022-12-12 16:42:12 +01:00
Leifer Mendez
5ecf9c6ba7 Merge branch 'fix/version' into dev 2022-12-12 15:13:02 +01:00
Leifer Mendez
d233cbac22 Merge remote-tracking branch 'origin/dev' into fix/version 2022-12-12 15:12:01 +01:00
github-actions[bot]
10098f018f ci(version): automatic - ${date} updated versions every packages 2022-12-12 14:02:54 +00:00
Leifer Mendez
70de13ef6a Merge pull request #190 from leifermendez/dev
action update
2022-12-12 15:00:24 +01:00
Leifer Mendez
f912fd328f Merge pull request #189 from leifermendez:fix/version
done ci
2022-12-12 14:56:31 +01:00
Leifer Mendez
6a86da2851 ci(ci): releases action 2022-12-12 14:55:40 +01:00
Leifer Mendez
1a2a246bf8 ci(ci): releases action
ci(ci):  releases action
2022-12-12 14:51:49 +01:00
Leifer Mendez
248d04b666 ci(ci): releases action 2022-12-12 14:50:45 +01:00
Leifer Mendez
41e96ad027 fix(ci): github action
fix(ci):  github action
2022-12-12 14:48:40 +01:00
Leifer Mendez
f2fd254d17 ci(ci): releases action
ci(ci):  releases action
2022-12-12 14:46:50 +01:00
Leifer Mendez
7790391b50 ci(ci): releases action 2022-12-12 14:43:38 +01:00
Leifer Mendez
b827a0ab22 fix(ci): github action
fix(ci):  github action
2022-12-12 14:37:15 +01:00
Leifer Mendez
4142ca4fd5 fix(ci): github action 2022-12-12 14:36:32 +01:00
Juan Daniel
fee7c2e967 feat(provider): new provider - venon configuracion inicial provider venom 2022-12-12 13:12:29 +01:00
Leifer Mendez
091544ac3f fix(ci): github action
fix(ci):  github action
2022-12-12 12:11:40 +01:00
Leifer Mendez
2ce342a0cb fix(ci): github action 2022-12-12 12:10:15 +01:00
Leifer Mendez
781779328f fix(ci): github action
fix(ci):  github action
2022-12-12 11:59:43 +01:00
Leifer Mendez
dfced8c594 fix(ci): github action 2022-12-12 11:59:09 +01:00
Leifer Mendez
aaa4ce8372 fix(ci): github action
fix(ci):  github action
2022-12-12 11:07:02 +01:00
Leifer Mendez
9ddf144244 fix(ci): github action 2022-12-12 11:06:25 +01:00
Leifer Mendez
b465de55a0 fix(ci): github action 2022-12-12 11:02:50 +01:00
Leifer Mendez
cf1dc6fac8 fix(ci): github action
fix(ci):  github action
2022-12-12 10:54:07 +01:00
Leifer Mendez
739c63d025 Merge branch 'fix/version' of github.com:leifermendez/bot-whatsapp into fix/version 2022-12-12 10:46:15 +01:00
Leifer Mendez
8d897f824e fix(ci): github action 2022-12-12 10:46:02 +01:00
Leifer Mendez
5303dd7d25 Create FUNDING.yml 2022-12-12 00:44:58 +01:00
Leifer Mendez
aad129ea94 Create FUNDING.yml 2022-12-12 00:31:06 +01:00
Leifer Mendez (githubaction)
e48b29ed29 ci(version): updated versions every packages 2022-12-11 21:35:22 +00:00
Leifer Mendez
c64560bfc3 ci(version): updated versions every packages
ci(version):  updated versions every packages
2022-12-11 22:31:51 +01:00
Leifer Mendez
255ba86506 ci(version): updated versions every packages 2022-12-11 22:31:21 +01:00
Leifer Mendez
cd2dad9d26 ci(version): updated versions every packages
ci(version):  updated versions every packages
2022-12-11 22:27:02 +01:00
Leifer Mendez
c7ff6b4794 ci(version): updated versions every packages 2022-12-11 22:26:29 +01:00
Leifer Mendez
0246fc0b91 Merge pull request #171 from leifermendez/add-license-1
Create LICENSE.md
2022-12-11 22:21:00 +01:00
Leifer Mendez
2858e910dc Create LICENSE.md 2022-12-11 22:20:49 +01:00
Leifer Mendez
628d55df37 ci(version): updated versions every packages
ci(version):  updated versions every packages
2022-12-11 22:18:46 +01:00
Leifer Mendez
0059a1e7fb ci(version): updated versions every packages 2022-12-11 22:18:01 +01:00
Leifer Mendez
73ea7c0063 ci(version): updated versions every packages 2022-12-11 22:16:09 +01:00
Leifer Mendez
cb9f4befa0 fix/version
fix/version
2022-12-11 22:11:24 +01:00
Leifer Mendez
decccb672a ci(ci): push 2022-12-11 22:10:42 +01:00
Leifer Mendez
51466bf1c7 ci(ci): push 2022-12-11 22:09:29 +01:00
Leifer Mendez
397798790e feat(cli): create-starter
feat(cli): create-starter
2022-12-11 22:00:53 +01:00
Leifer Mendez
d3b8310180 fix(cli): create-starter 2022-12-11 21:58:13 +01:00
Leifer Mendez
7797c2b461 fix(cli): update cli copy 2022-12-11 20:59:28 +01:00
Leifer Mendez
929e74c84b fix(starter): pre-copy fix
pre-copy fix
2022-12-11 13:46:52 +01:00
08e2552907 fix: pre-copy fix 2022-12-11 05:55:31 -06:00
6617107ab8 fix: pre-copy fix 2022-12-11 05:48:51 -06:00
Leifer Mendez
8921959ea0 Merge pull request #165 from leifermendez:fix/version
fix(ci):  balance version
2022-12-10 21:49:33 +01:00
Leifer Mendez
ec46cfdd65 fix(ci): balance version 2022-12-10 21:48:55 +01:00
Leifer Mendez
bfb69d9a95 fix(cli): clean eslinter
fix(cli):  clean eslinter
2022-12-10 21:40:20 +01:00
Leifer Mendez
15f6972257 fix(cli): clean eslinter 2022-12-10 21:38:23 +01:00
Leifer Mendez
2319db3009 fix(cli): 🔥 create script - templates
fix(cli): 🔥 create script - templates
2022-12-10 21:33:07 +01:00
Leifer Mendez
9cb98b5e73 fix(cli): 🔥 create script - templates 2022-12-10 21:27:58 +01:00
Leifer Mendez
2999e0e753 fix(cli): 🔥 create script - templates
fix(cli): 🔥 create script - templates
2022-12-10 21:22:48 +01:00
Leifer Mendez
af716b7537 fix(cli): 🔥 create script - templates 2022-12-10 21:20:57 +01:00
Leifer Mendez
c6999c8493 fix(cli): 🔥 create script - templates
fix(cli): 🔥 create script - templates
2022-12-10 21:20:07 +01:00
Leifer Mendez
d4b49a9bd7 fix(cli): 🔥 create script - templates 2022-12-10 21:19:38 +01:00
Leifer Mendez
eebc3c9806 fix(cli): 🔥 create script - templates 2022-12-10 21:17:29 +01:00
Leifer Mendez
257f1cc12d ci(ci): update ci
ci(ci):  update ci
2022-12-09 15:00:05 +01:00
Leifer Mendez
1036273a28 ci(ci): update ci 2022-12-09 14:59:21 +01:00
Leifer Mendez
1b8ed93367 ci(ci): update ci
ci(ci):  update ci
2022-12-09 14:18:06 +01:00
Leifer Mendez
8c1820c879 ci(ci): update ci 2022-12-09 14:17:26 +01:00
Leifer Mendez
e5a9db7e12 feat(ci): update ci
feat(ci): update ci
2022-12-09 14:13:43 +01:00
Leifer Mendez
9d5aa7db5d ci(ci): update ci 2022-12-09 14:12:38 +01:00
Leifer Mendez
40b0d9691e chore(ci): script releases 2022-12-09 13:50:01 +01:00
Leifer Mendez
2e906bce79 feat(ci): 🎨 relases script 2022-12-09 12:17:29 +01:00
jzvi12
33490dc737 fixed typo in controllers/send.js 2022-12-08 16:57:18 -05:00
Leifer Mendez
f05ff4cf88 style: ✏️ fixed typos
style: ✏️ fixed typos
2022-12-08 22:48:12 +01:00
Leifer Mendez
5735b49e25 Merge pull request #155 from leifermendez/feat/releases
feat(release): added
2022-12-08 22:23:03 +01:00
Leifer Mendez
1988948c30 feat(release): added 2022-12-08 22:22:04 +01:00
Leifer Mendez
cb33c0df68 Merge pull request #154 from leifermendez/feat/releases
feat(relases): added
2022-12-08 22:19:25 +01:00
Leifer Mendez
f4ad7040ab feat(release): added 2022-12-08 22:15:46 +01:00
jzvi12
b3b458e41c Merge pull request #1 from HKong31/main
DialogFlow buttons per Payload
2022-12-08 16:09:11 -05:00
Leifer Mendez
b115dc3654 feat(ci): 🎨 add releases 2022-12-08 21:56:34 +01:00
6rak0
8c6023e93b style: ✏️ fixed typos
fixed typos
2022-12-08 14:34:41 -06:00
Leifer Mendez
5d7c297f2f Merge pull request #150 from leifermendez/fix/ci-yarn
ci(action): update
2022-12-08 20:17:46 +01:00
Leifer Mendez
04f99d5ed2 ci(action): update 2022-12-08 20:16:31 +01:00
Leifer Mendez
bb3f21b056 Merge pull request #149 from leifermendez/fix/ci-yarn
fix(ci): update yarn
2022-12-08 20:13:02 +01:00
Leifer Mendez
cf6188d860 ci(action): update 2022-12-08 20:12:11 +01:00
Leifer Mendez
294bfbb35f ci(action): update 2022-12-08 20:11:33 +01:00
github-actions[bot]
230538bcea docs(contributor): contrib-readme-action has updated readme 2022-12-07 22:43:36 +00:00
Leifer Mendez
5e7aa72494 Merge pull request #138 from vicente1992/feat-jsonfile-adapter
feat(adapter): implementation of json file adapter
2022-12-07 23:43:21 +01:00
vicente1992
3159ea5665 Merge branch 'dev' of https://github.com/vicente1992/bot-whatsapp into feat-jsonfile-adapter 2022-12-07 17:18:36 -05:00
vicente1992
4b307efe79 fix(adapter): conflict resolution 2022-12-07 17:14:16 -05:00
github-actions[bot]
0105dab2c4 docs(contributor): contrib-readme-action has updated readme 2022-12-07 22:10:34 +00:00
github-actions[bot]
6e8e16c9a4 docs(contributor): contrib-readme-action has updated readme 2022-12-07 20:33:21 +00:00
Leifer Mendez
8d73c86946 feat(adapter): mysql adapter
feat(adapter): mysql adapter
2022-12-07 21:33:05 +01:00
Leifer Mendez
a7b19d9bff fix(bot): flow improvement + add utils 2022-12-07 21:29:48 +01:00
vicente1992
4b7de0f690 feat(adapter): sql is added to create the table 2022-12-07 15:07:38 -05:00
github-actions[bot]
520145bf7d docs(contributor): contrib-readme-action has updated readme 2022-12-07 19:54:07 +00:00
HKong31
e8aed880d8 Retraso en el envío de botones
Modificado para que los botones sean enviados después del mensaje
2022-12-07 13:52:46 -04:00
HKong31
babff11c70 Fix crash when voice message recieved
Fix crash si recibe nota de voz
2022-12-07 13:52:46 -04:00
HKong31
b24c005e3e DialogFlow botones por payload 2022-12-07 13:52:46 -04:00
HKong31
2d6c1879ce DialogFlow botones por payload 2022-12-07 13:52:46 -04:00
HKong31
f88607c2c2 DialogFlow botones por payload
Evita crash si el mensaje excede los 256 caracteres + botones por el payload de DialogFlow
2022-12-07 13:52:46 -04:00
HKong31
b3c13d5f98 DialogFlow botones por payload 2022-12-07 13:51:50 -04:00
Leifer Mendez
2253d57fed Merge branch 'dev' of github.com:leifermendez/bot-whatsapp into dev 2022-12-07 18:13:00 +01:00
Leifer Mendez
0fb93f66a3 Merge branch 'fix/webwhatsapp' into dev 2022-12-07 18:12:45 +01:00
Leifer Mendez
501887300d Merge branch 'fix/delay-message' into dev 2022-12-07 18:11:49 +01:00
Leifer Mendez
14b6247106 Merge pull request #137 from vicente1992/feat-mysql-adapter
feat(adapter): added adapter mysql
2022-12-07 18:09:13 +01:00
Leifer Mendez
eda8a67718 refactor(provider): twilio + hook 2022-12-07 18:06:27 +01:00
Leifer Mendez
73caf090ba fix(bot): added delay promises 2022-12-07 16:20:56 +01:00
vicente1992
afa6771903 fix(adapter): corrections are made to the adapter 2022-12-06 15:48:25 -05:00
Leifer Mendez
8dd3be909b feat(provider): added twilio provider 2022-12-06 21:28:52 +01:00
github-actions[bot]
88af2469cb docs(contributor): contrib-readme-action has updated readme 2022-12-06 18:36:55 +00:00
Leifer Mendez
999d6742b4 Merge pull request #141 from leifermendez:feature/twilio
Feature/twilio
2022-12-06 19:36:42 +01:00
Leifer Mendez
24ac9fbf48 fix(bot): fix sensitive case 2022-12-06 19:35:21 +01:00
Leifer Mendez
ee87e9e875 Merge pull request #140 from jzvi12/main
Use WhatsApp Number as an Unique Dialogflow Session ID
2022-12-06 09:57:10 +01:00
jzvi12
1884832192 fixed dialogflow session id 2022-12-05 19:10:41 -05:00
Leifer Mendez
4350dff22a feat(provider): 🔥 add twilii (weoking) 2022-12-05 20:45:05 +01:00
github-actions[bot]
30e3d443bb docs(contributor): contrib-readme-action has updated readme 2022-12-05 15:47:15 +00:00
Leifer Mendez
f5ea7fe2c4 Merge branch 'dev' of github.com:leifermendez/bot-whatsapp into dev 2022-12-05 16:46:47 +01:00
Leifer Mendez
94d139e484 ci(contributors): add username avatar 2022-12-05 16:46:29 +01:00
github-actions[bot]
8049241f3f docs(contributor): contrib-readme-action has updated readme 2022-12-05 15:45:01 +00:00
Leifer Mendez
28d308ed4b ci(contributors): add username avatar 2022-12-05 16:44:36 +01:00
Leifer Mendez
e0862053d0 Merge branch 'feature/fallback' into dev 2022-12-05 16:35:05 +01:00
Leifer Mendez
e0e76d3a56 ci(contributors): add username avatar 2022-12-05 16:33:22 +01:00
Leifer Mendez
242e44315b Merge pull request #139 from leifermendez/feature/fallback
Feature/fallback
2022-12-05 16:32:02 +01:00
Leifer Mendez
6b53ed13e2 docs(contributors): add username avatar 2022-12-05 16:15:21 +01:00
Leifer Mendez
fafccbcecc Merge commit 'f2533f1ed5c0078be59938720f2ecf96c616b843' into feature/fallback 2022-12-05 16:05:49 +01:00
Leifer Mendez
49698bfda9 fix(bot): update 2022-12-05 16:02:23 +01:00
Leifer Mendez
4154cc2230 feat(bot): 🔥 improvement provider handler 2022-12-05 14:49:23 +01:00
Leifer Mendez
ce8a96b958 feat(bot): add send image function 2022-12-05 13:01:32 +01:00
Leifer Mendez
f373a3abc7 chore(bot): fallback done 2022-12-05 09:59:40 +01:00
Leifer Mendez
371ee0a780 chore(bot): update fallback function 2022-12-04 16:01:52 +01:00
Leifer Mendez
327cf5730b Merge pull request #137 from vicente1992/feat-mysql-adapter
feat(adapter): added adapter mysql
2022-12-03 12:06:03 +01:00
vicente1992
5e1a373730 feat(adapter): implementation of json file adapter 2022-12-02 22:27:31 -05:00
jzvi12
f21a58b6ff Update README.md 2022-12-02 10:16:16 -05:00
vicente1992
717a7dc95f feat(adapter): added adapter mysql 2022-12-02 09:41:57 -05:00
Leifer Mendez
aa2417af12 chore(bot): added new fallback option 2022-12-02 15:22:13 +01:00
Leifer Mendez
f2533f1ed5 Merge pull request #136 from leifermendez/feature/monorepo
docs(contributing):  update
2022-12-01 21:34:54 +01:00
Leifer Mendez
7d41699207 docs(contributing): update 2022-12-01 21:33:50 +01:00
Leifer Mendez
f9ccfef8e0 Merge pull request #135 from leifermendez/feature/monorepo
chore(cli): 🔥 fix
2022-12-01 21:07:48 +01:00
Leifer Mendez
468a2ba251 chore(cli): 🔥 fix 2022-12-01 21:07:00 +01:00
Leifer Mendez
08dbdcf4ae Merge pull request #134 from leifermendez/feature/monorepo
chore(cli): 🎨 remove uneccesary steps
2022-12-01 20:59:57 +01:00
Leifer Mendez
50d73f7bc8 chore(cli): 🎨 remove uneccesary steps 2022-12-01 20:58:58 +01:00
Leifer Mendez
d7ed9ff592 Merge pull request #133 from leifermendez/feature/monorepo
chore(cli):  added new function
2022-12-01 20:45:34 +01:00
Leifer Mendez
05c6fd4528 chore(cli): added new function 2022-12-01 20:44:12 +01:00
Leifer Mendez
a99f424901 Merge pull request #132 from leifermendez/feature/monorepo
Feature/monorepo
2022-12-01 18:43:03 +01:00
Leifer Mendez
648354500b fix(fix): fix 2022-12-01 18:42:18 +01:00
Leifer Mendez
28c0480b8b fix(fix): fix 2022-12-01 18:39:49 +01:00
Leifer Mendez
f29ed6e29b Merge pull request #131 from leifermendez/feature/monorepo
Merge pull request #130 from leifermendez/dev
2022-12-01 18:38:03 +01:00
Leifer Mendez
903b4d79ac docs(contributing): 📝 added more example 2022-12-01 18:17:19 +01:00
Leifer Mendez
026c189901 Merge pull request #130 from leifermendez/dev
Dev
2022-12-01 12:52:46 +01:00
Leifer
f2b30ee349 docs: 📝 update CONTRIBUTING 2022-12-01 12:46:49 +01:00
Leifer
5c02a9325a chore(release): 0.2.0-alpha.0 2022-12-01 12:38:17 +01:00
Leifer
7645c8642f test 2022-12-01 12:33:18 +01:00
Leifer
c5ebbe319f refactor(hook): added new improvement 2022-12-01 12:32:45 +01:00
Leifer
6f36eb1690 test 2022-12-01 10:35:41 +01:00
Leifer
18f9e006a3 test 2022-12-01 10:34:30 +01:00
Leifer
a7e334ebe9 add banner 2022-12-01 10:27:18 +01:00
Leifer
a5e15d9d84 edit hook 2022-12-01 10:17:19 +01:00
Leifer
b3173517b4 add pretty-quick 2022-12-01 10:16:06 +01:00
Leifer Mendez
06d2963163 Merge pull request #129 from leifermendez/feature/monorepo
Feature/monorepo
2022-12-01 09:53:28 +01:00
Leifer Mendez
df8282015d docs(example-app): add cli crate app 2022-11-30 21:39:30 +01:00
Leifer Mendez
81b0aab850 refactor(io): added new method addChild 2022-11-30 21:06:26 +01:00
Leifer Mendez
a8705c5b44 refactor(io): added new method addChild 2022-11-30 21:05:32 +01:00
Leifer Mendez
efe739f9fc refactor(io): added new method addChild 2022-11-30 21:04:45 +01:00
Leifer Mendez
2e83a0508a docs(contribuiting): update 2022-11-30 17:14:50 +01:00
Leifer Mendez
d66adb2a1f Merge pull request #126 from leifermendez/feature/monorepo
Feature/monorepo
2022-11-29 22:14:56 +01:00
Leifer
e5cecdee03 docs(contributin): added more info 2022-11-29 22:13:58 +01:00
Leifer
9351af16b7 docs(contributing): added more info 2022-11-29 22:04:46 +01:00
Leifer
ad8831a75a f 2022-11-29 22:00:05 +01:00
Leifer
c63018ff08 f 2022-11-29 21:55:39 +01:00
Leifer
131bce3898 . 2022-11-29 21:45:44 +01:00
Leifer
fff9316030 . 2022-11-29 21:44:04 +01:00
Leifer
2b3148dc3c update documenta 2022-11-29 21:43:11 +01:00
Leifer Mendez
13a4202f08 docs(contributing): added main readme 2022-11-29 11:33:33 +01:00
Leifer Mendez
f0df143aaf Merge pull request #125 from leifermendez/feature/monorepo
Feature/monorepo
2022-11-29 11:23:07 +01:00
Leifer Mendez
70a94ab2c6 fix(linter): update linter and commitlint 2022-11-29 10:47:12 +01:00
Leifer Mendez
e6d18d1a72 chore(release): 0.1.1 2022-11-29 10:36:23 +01:00
Leifer Mendez
46cd57fb36 chore(release): 0.1.0 2022-11-29 10:33:25 +01:00
Leifer Mendez
4ae389846d feat: (🎸) add onClick prop to component 2022-11-29 10:22:37 +01:00
Leifer Mendez
37d04e9e89 test: (💍) Is justa test!
nothing

BREAKING CHANGE: 🧨 NO
2022-11-29 10:17:32 +01:00
Leifer Mendez
39d141ca67 refactor: (💡) change emoji 2022-11-28 21:20:48 +01:00
Leifer Mendez
befcc169e0 refactor: 💡 pkgmanager
Upgrade Yarn v3
2022-11-28 21:19:00 +01:00
Leifer Mendez
6bbb9c1b81 docs(main documentation): es una mejora 2022-11-28 19:44:20 +01:00
Leifer Mendez
bb77afc4d2 test 2022-11-28 19:40:53 +01:00
Leifer Mendez
b43697fd68 docs(mocks): add mock 2022-11-28 19:02:40 +01:00
Leifer Mendez
86eebbead6 docs(example): example bot 2022-11-28 19:01:03 +01:00
Leifer Mendez
7463b8badc refactor(ci): Remove CI post doc 2022-11-28 17:01:18 +01:00
Leifer Mendez
37e857f093 refactor(husky): improved Husky 2022-11-28 16:53:05 +01:00
Leifer Mendez
2db240b32e ♻️ 2022-11-28 16:43:12 +01:00
Leifer Mendez
3c5f6031e1 ♻️ (husky) 2022-11-28 16:42:28 +01:00
Leifer Mendez
b25fee0d86 update husky 2022-11-28 16:35:09 +01:00
Leifer Mendez
a6ee58ff28 fix 2022-11-28 16:32:12 +01:00
Leifer Mendez
fdb083f2a3 test 2022-11-28 16:30:48 +01:00
Leifer Mendez
ee32a35a42 change 2022-11-28 16:01:33 +01:00
Leifer Mendez
d17b41da38 update 2022-11-28 15:55:37 +01:00
Leifer Mendez
870184b2a5 add video 2022-11-28 15:51:32 +01:00
Leifer Mendez
e787691efc docs(docs): update doc 2022-11-28 14:44:44 +01:00
Leifer Mendez
859716e6c7 test 2022-11-28 14:42:48 +01:00
Leifer Mendez
aab91b3842 docs(clean): clean 2022-11-28 14:06:01 +01:00
Leifer Mendez
f9dd0a6b03 docs(docs website): docwebsite 2022-11-28 13:56:39 +01:00
Leifer Mendez
f55cfae6e4 fix(ci): ci 2022-11-28 13:05:50 +01:00
Leifer Mendez
671c5b37f3 fix(ci): ci 2022-11-28 12:59:56 +01:00
Leifer Mendez
46c4ec7ab9 docs(websitedoc): added new website 2022-11-28 12:55:30 +01:00
Leifer Mendez
1856bd5022 style: added commitizen flag 2022-11-28 12:10:06 +01:00
Leifer Mendez
21cfc498e8 docs: doc 2022-11-28 12:05:09 +01:00
Leifer Mendez
ec7007071e update ci 2022-11-28 11:54:22 +01:00
Leifer Mendez
e33509789c update ci 2022-11-28 11:53:35 +01:00
Leifer Mendez
9fddcef271 update ci 2022-11-28 11:51:40 +01:00
Leifer Mendez
d2acb641c5 increase 95% coverage 2022-11-28 11:49:28 +01:00
Leifer Mendez
82a6b634a9 increase 95% coverage 2022-11-28 11:48:25 +01:00
Leifer Mendez
f466b0cf7b added video to explain 2022-11-28 10:31:44 +01:00
Leifer Mendez
b3f6fc852b added video to explain 2022-11-28 10:29:30 +01:00
Leifer Mendez
976d892061 added video to explain 2022-11-28 10:13:01 +01:00
Leifer Mendez
2a0a9e79da added video to explain 2022-11-28 10:11:10 +01:00
Leifer Mendez
8d24093aec added mor doc 2022-11-28 09:52:17 +01:00
Leifer Mendez
c6b23d353a add todo 2022-11-24 16:54:07 +01:00
Leifer Mendez
b6a21b9c12 Sensitive case 2022-11-24 14:52:57 +01:00
Leifer Mendez
14fbae3c86 Increase Coverage 2022-11-23 23:16:54 +01:00
Leifer Mendez
1dd88d117d test pass ok 2022-11-23 21:00:25 +01:00
Leifer Mendez
f6d70b4f7d working child flow 2022-11-23 20:56:17 +01:00
Leifer Mendez
368bf29e63 almost work it 2022-11-22 21:45:00 +01:00
Leifer Mendez
c40c0c54bd nothing 2022-11-19 21:17:18 +01:00
Leifer Mendez
0c850d47d7 removed ctx 2022-11-19 21:09:26 +01:00
Leifer Mendez
4879df040f i need remove ctx stranger 2022-11-19 21:07:41 +01:00
Leifer Mendez
8a4f134327 Update latest 2022-11-19 11:08:51 +01:00
Leifer Mendez
7cf013e52b Next 2022-11-18 20:05:11 +01:00
Leifer Mendez
4e0a1a59e0 . 2022-11-18 19:56:50 +01:00
Leifer Mendez
6953c954a8 restore flow working! 2022-11-18 19:55:57 +01:00
Leifer Mendez
e3664cc973 . 2022-11-18 18:38:05 +01:00
Leifer Mendez
417d938677 . 2022-11-18 18:37:25 +01:00
Leifer Mendez
2042abb045 . 2022-11-18 18:36:03 +01:00
Leifer Mendez
0f5efa9852 . 2022-11-18 18:35:49 +01:00
Leifer Mendez
76968ded02 UUID memory without relation UUID DB 2022-11-16 23:16:54 +01:00
Leifer Mendez
ce8e7be9d7 mongo adapter:next step, continue conversation from db 2022-11-16 20:41:36 +01:00
Leifer Mendez
1290d6b478 next save conversation 2022-11-15 20:47:12 +01:00
Leifer Mendez
a5c38658a8 work flow 2022-11-15 19:52:57 +01:00
Leifer Mendez
5797beb0ca improve 2022-11-14 20:52:38 +01:00
Leifer Mendez
9178bc083e fix rollup 2022-11-14 19:44:58 +01:00
Leifer Mendez
878840fc06 must split adapter 2022-11-13 20:06:22 +01:00
Leifer Mendez
716f0587c3 issue rollup 2022-11-13 15:13:05 +01:00
Leifer Mendez
03eed5131a move io into bot 2022-11-13 14:41:25 +01:00
Leifer Mendez
3946c88ed7 rename core to bot 2022-11-13 14:18:20 +01:00
Leifer Mendez
59182f20f3 Test (core) OK 2022-11-13 14:08:33 +01:00
Leifer Mendez
a20b128ee8 working pkgs 2022-11-11 20:28:49 +01:00
Leifer Mendez
1edd9ab371 working ws provider 2022-11-11 17:56:35 +01:00
Leifer Mendez
da8defc517 test and work 2022-11-11 15:10:34 +01:00
Leifer Mendez
45272fb34f test pass 2022-11-11 13:31:43 +01:00
Leifer Mendez
a8dc44b41e working 2022-11-11 12:12:19 +01:00
Leifer Mendez
1954a5a90a issue 2022-11-10 22:59:08 +01:00
Leifer Mendez
228530a454 continue 2022-11-10 21:16:22 +01:00
Leifer Mendez
4216cdd1e5 . 2022-11-10 20:17:38 +01:00
Leifer Mendez
6afb019f9d web-whatsapp work 2022-11-10 20:17:07 +01:00
Leifer Mendez
8410309e38 continue 2022-11-09 20:07:52 +01:00
Leifer Mendez
ceb6faa5af fix 2022-11-09 13:23:07 +01:00
Leifer Mendez
9de4777cdb pass test 2022-11-09 12:52:45 +01:00
Leifer Mendez
83df967247 adapter provider 2022-11-09 12:42:01 +01:00
Leifer Mendez
39e2356feb extends conditional class 2022-11-09 12:28:20 +01:00
Leifer Mendez
24484015b3 before lerna 2022-11-09 11:27:01 +01:00
Leifer Mendez
30e7b220cd update 2022-11-08 21:46:41 +01:00
Leifer Mendez
576092fc96 . 2022-11-08 21:41:16 +01:00
Leifer Mendez
2114800b84 mock BotClass 2022-11-08 19:17:28 +01:00
Leifer Mendez
d9492eeee6 add class 2022-11-08 15:46:38 +01:00
Leifer Mendez
2442b59a5f example bot 2022-11-05 11:44:43 +01:00
Leifer Mendez
1c01e27a65 add method 2022-11-05 11:32:08 +01:00
Leifer Mendez
0a9b1907d7 fix 2022-11-05 11:24:22 +01:00
Leifer Mendez
0a9e14c460 toJson 2022-11-02 21:10:18 +01:00
Leifer Mendez
33797ce9de add c8 coverage 2022-11-02 20:26:56 +01:00
Leifer Mendez
97ff1402f8 add c8 coverage 2022-11-02 20:24:26 +01:00
Leifer Mendez
5fa6660afd add answer options 2022-11-02 20:15:14 +01:00
Leifer Mendez
9b6ce92612 Update diaglogflow.js 2022-10-31 09:51:18 +01:00
Leifer Mendez
c05470c045 update 2022-10-29 20:17:01 +02:00
Leifer Mendez
e24e648e07 update 2022-10-29 20:15:00 +02:00
Leifer Mendez
a4d51304b9 update 2022-10-29 20:14:18 +02:00
Leifer Mendez
4210214735 update 2022-10-29 20:13:15 +02:00
Leifer Mendez
403dea665d update 2022-10-29 20:12:08 +02:00
Leifer Mendez
5704300d75 update 2022-10-29 20:10:39 +02:00
Leifer Mendez
deb238d423 update 2022-10-29 19:21:00 +02:00
Leifer Mendez
b678041e68 update 2022-10-29 19:17:33 +02:00
Leifer Mendez
df5fe085a8 update 2022-10-29 19:15:39 +02:00
Leifer Mendez
46ee2c6dd0 ci 2022-10-29 19:12:27 +02:00
Leifer Mendez
eccbe59a1a ci 2022-10-29 19:11:44 +02:00
Leifer Mendez
3e2869b54a unit test methods 2022-10-29 18:11:55 +02:00
Leifer Mendez
96b8a7626c uvu test:io 2022-10-29 14:47:42 +02:00
Leifer Mendez
7593d6e564 rollup 2022-10-29 13:18:20 +02:00
Leifer Mendez
e00aacfe3e io improvement 2022-10-29 13:07:58 +02:00
Leifer Mendez
860c2bc8fb Merge branch 'feature/monorepo' of github.com:leifermendez/bot-whatsapp into feature/monorepo 2022-10-29 12:16:21 +02:00
Leifer Mendez
710f1b9f90 before 2022-10-29 12:16:16 +02:00
Leifer
4e87ca790e ... 2022-10-29 12:15:54 +02:00
Leifer
5974f3c9f2 ... 2022-10-29 12:15:05 +02:00
Leifer Mendez
62f1b7eb88 fix dependencies 2022-10-28 20:53:32 +02:00
Leifer
1e9574e740 TODO provider 2022-10-27 14:04:29 +02:00
Leifer
b6207ba447 readme inout 2022-10-27 14:00:36 +02:00
Leifer
7fe2611aed continue 2022-10-27 11:21:11 +02:00
Leifer
860bd8539f generate json file 2022-10-27 11:10:04 +02:00
Leifer
ceade85334 add validation cli 2022-10-25 13:43:17 +02:00
Leifer
5dc81f60c0 cli update 2022-10-24 17:55:07 +02:00
Leifer
40b08622ec monorepo/cli 2022-10-24 14:37:20 +02:00
Leifer
a12d5dbb78 first 2022-10-24 13:22:12 +02:00
Leifer
663fcafc9c update 2022-10-24 09:39:38 +02:00
Leifer
f36ddd3014 update 2022-10-20 13:51:43 +02:00
Leifer Mendez
3fadaaaf13 Merge pull request #82 from Gonzalito87/patch-7
Update de librerias
2022-08-09 20:57:57 +02:00
Leifer Mendez
dfa569f29d Merge pull request #83 from aurik3/dev-pull
coreccion nanoid y send.js
2022-08-09 20:57:41 +02:00
Leifer Mendez
601508f379 Merge branch 'main' into dev-pull 2022-08-09 20:57:29 +02:00
aurik3
e7ad205268 coreccion nanoid y send.js
se corrigen errores en el codigo
2022-08-09 13:43:28 -05:00
Gonzalito87
f62ba0a076 Update de librerias 2022-08-08 15:19:13 -03:00
Leifer Mendez
a9efa0aa58 Merge pull request #71 from ulisesvina/main
Arreglado: comprobación de parámetros en funciones y problemas de inconsistencia.
2022-08-08 14:47:33 +02:00
Leifer Mendez
3276c21bc3 Merge pull request #75 from aurik3/dev-pull
Update Julio 2022
2022-07-22 12:57:14 +02:00
aurik3
1114f25a71 Update Julio 2022
Se añade localAuth para mantener la session despues de escanear el codigo y se hace un code fix al api rest

Co-Authored-By: Leifer Mendez <15802366+leifermendez@users.noreply.github.com>
2022-07-19 18:15:12 -05:00
Ulises Viña
f13a34ff75 Update send.js 2022-07-05 20:59:06 -05:00
Leifer Mendez
d45ea85e7d Merge pull request #57 from leifermendez/rev-global
rex
2022-04-27 21:33:51 +02:00
Leifer Mendez
10e2b138d3 rex 2022-04-27 21:32:29 +02:00
Leifer Mendez
a1bf5ba5c2 Merge pull request #55 from Gonzalito87/patch-3
Update package.json
2022-04-27 21:03:06 +02:00
Gonzalito87
19102b7b3a Update package.json
actualizacion de repositorio de whats app
2022-04-26 11:12:35 -03:00
Leifer Mendez
5efcc2a9a6 Merge pull request #54 from Gonzalito87/patch-1
Update diaglogflow.js
2022-04-25 19:33:28 +02:00
Gonzalito87
8279c07a88 Update diaglogflow.js 2022-04-25 13:42:12 -03:00
Leifer Mendez
02d7b3bd98 Merge pull request #50 from leifermendez/update
Update
2022-04-20 14:17:02 +02:00
Leifer Mendez
f8f6a3000d Merge branch 'update' of github.com:leifermendez/bot-whatsapp into update 2022-04-20 14:16:46 +02:00
Leifer Mendez
9a92b152a4 fix 2022-04-20 14:16:42 +02:00
Leifer Mendez
f86700deaf Update README.md 2022-04-15 12:03:22 +02:00
Leifer Mendez
4ba259b46c Update README.md 2022-04-15 12:02:59 +02:00
Leifer Mendez
cf459e94d2 Update README.md 2022-04-15 12:01:29 +02:00
Leifer Mendez
4f8ed1361c Merge pull request #47 from leifermendez/update
Update
2022-04-15 12:00:43 +02:00
Leifer Mendez
bad8802241 Merge branch 'main' into update 2022-04-15 12:00:37 +02:00
Leifer Mendez
f09ac862d5 clean credentials 2022-04-15 11:58:09 +02:00
Leifer Mendez
fe7567e1a9 update many stuff 2022-04-15 11:57:32 +02:00
Leifer Mendez
9b0b7f4d54 befor update 2022-04-15 11:02:12 +02:00
Leifer Mendez
3ddbf462a8 Update package.json 2022-03-29 17:02:09 +02:00
Leifer Mendez
e6043c99a7 Merge pull request #35 from leifermendez/dev
update
2022-03-23 09:41:38 +01:00
Leifer Mendez
b1daa0020e update 2022-03-23 09:41:18 +01:00
Leifer Mendez
190d35c9a5 Merge pull request #30 from leifermendez/dev
Dev
2022-03-16 10:05:54 +01:00
Leifer Mendez
e4378fe848 se agego multi-device .env 2022-03-16 10:05:13 +01:00
Leifer Mendez
981a6bd928 Merge pull request #25 from tonyvazgar/main
Pasado a DEV
2022-03-15 10:24:01 +01:00
Leifer Mendez
676e48021f Merge pull request #28 from leifermendez/dev
Dev
2022-03-15 10:22:38 +01:00
Leifer Mendez
1d4daf10db change csv to json 2022-03-15 10:20:25 +01:00
Leifer Mendez
3c9341d87d Merge pull request #24 from rrruuuyyy/main
into dev branch
2022-03-15 10:06:11 +01:00
unknown
04982941a7 Save messages in Mysql or Json 2022-03-14 14:17:28 -06:00
Tony
ba4f05ebb2 Sesion en multi-device funcionando y escuchando, se guarda en localauth 2022-03-14 13:49:42 -06:00
Leifer Mendez
5aaf761fce update core 2022-03-10 17:45:30 +01:00
Leifer Mendez
12539d00fa before beta multi 2022-03-09 20:24:13 +01:00
Leifer Mendez
ec8ad955ee readme 2022-02-28 21:16:46 +01:00
Leifer Mendez
d10504c40b npm update 2022-02-28 21:14:00 +01:00
Leifer Mendez
d200100caa update 2022-02-26 11:50:44 +01:00
Leifer Mendez
902431c533 fix buttons 2022-02-23 15:55:56 +01:00
Leifer Mendez
e23540593a add voice note 2022-02-23 09:29:16 +01:00
Leifer Mendez
9b548d9418 Update README.md 2022-02-16 11:51:25 +01:00
Leifer Mendez
c25de59a93 Update README.md 2022-02-16 11:10:26 +01:00
Leifer Mendez
cfe2c17165 Merge pull request #5 from leifermendez/update
npm update
2022-02-16 08:59:28 +01:00
Leifer Mendez
1309b7f806 npm update 2022-02-16 08:58:30 +01:00
Leifer Mendez
1071469e53 Merge pull request #4 from leifermendez/issueAsyncFunction
issue async function
2022-02-14 18:16:28 +01:00
Leifer Mendez
1795e8de20 issue async function 2022-02-14 18:15:33 +01:00
Leifer Mendez
7414d958ab Merge pull request #3 from leifermendez/buttons
Buttons
2022-02-11 15:55:42 +01:00
Leifer Mendez
a3ebebb19c Update README.md 2022-02-09 19:58:47 +01:00
398 changed files with 37275 additions and 5071 deletions

8
.c8rc.json Normal file
View File

@@ -0,0 +1,8 @@
{
"src": "./src",
"exclude": ["**/bot/lib", "__mocks__", "**/mock"],
"reporter": ["html"],
"report-dir": "./coverage",
"check-coverage": true,
"lines": 90
}

View File

@@ -1,11 +0,0 @@
######DATABASE: none, mysql, dialogflow
DEFAULT_MESSAGE=true
SAVE_MEDIA=true
PORT=3000
DATABASE=none
LANGUAGE=es
SQL_HOST=
SQL_USER=
SQL_PASS=
SQL_DATABASE=

2
.eslintignore Normal file
View File

@@ -0,0 +1,2 @@
packages/docs/*
packages/portal/*

18
.eslintrc.js Normal file
View File

@@ -0,0 +1,18 @@
module.exports = {
env: {
browser: true,
commonjs: true,
es2021: true,
node: true,
},
extends: 'eslint:recommended',
overrides: [],
parserOptions: {
ecmaVersion: 'latest',
},
rules: {
'no-unsafe-negation': 'off',
'no-prototype-builtins': 'off',
'no-useless-escape': 'off',
},
}

4
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,4 @@
# These are supported funding model platforms
open_collective: bot-whatsapp
patreon: leifermendez
custom: https://www.buymeacoffee.com/leifermendez

58
.github/ISSUE_TEMPLATE/bug.yml vendored Normal file
View File

@@ -0,0 +1,58 @@
name: 🐛 Reporte Bug
description: Algo no va bien?. Hazlo saber
labels: [bug, triage]
title: '[🐛]'
body:
- type: markdown
attributes:
value: |
Gracias por tomarte el tiempo de reportar este problema
- type: dropdown
id: version
attributes:
label: ¿Que versión estas usando?
description: '__INFO:__ Recuerda que puedes consultar dudas directamente en [discord](https://link.codigoencasa.com/DISCORD)'
options:
- v2
- v1
validations:
required: true
- type: dropdown
id: component
attributes:
label: ¿Sobre que afecta?
options:
- Flujo de palabras (Flow)
- DialogFlow
- Base de datos
- Otro
validations:
required: true
- type: textarea
id: description
attributes:
description: 'Trata de ser lo más claro posible, de esa manera podemos entender el contexto de tu problema y darte una mejor solución'
label: Describe tu problema
placeholder: Yo tengo un problema....
validations:
required: true
- type: input
id: reproduction
attributes:
label: Reproducir error
description: __(Recomendación)__ trata de grabar un video puedes usar algunas de las siguientes herramientas [https://www.vidyard.com/](https://www.vidyard.com/) [https://www.loom.com/](https://www.loom.com/) y en lo posbile apoyate en [https://stackblitz.com/](https://stackblitz.com/) para compartir el código de ser necesario
placeholder: URL video o stackblitz
validations:
required: false
- type: textarea
id: additional_information
attributes:
label: Información Adicional
validations:
required: false

4
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,4 @@
contact_links:
- name: 🤔 Core Team
url: https://link.codigoencasa.com/DISCORD
about: Si quieres formar parte del CoreTeam, patrocinar el proyecto o propuesta profesionales

79
.github/ISSUE_TEMPLATE/test-case.yml vendored Normal file
View File

@@ -0,0 +1,79 @@
name: 🐬 Caso de uso
description: Reporta tu caso de uso y cuales fueron tus resultados
labels: [usecase]
title: '[🐬]'
body:
- type: markdown
attributes:
value: |
Gracias por tomarte el tiempo de detallar este caso de uso, sera de gran utilidad para mantener un software de calidad puedes comenzar
⚡ `npm create bot-whatsapp@dev`
- type: dropdown
id: version
attributes:
label: ¿Cual proveedor usaste?
description: 'Actualmente tenemos varios proveedores que sirven como punto de entrada y salida con Whatsapp'
options:
- whatsapp-web.js
- venom
- bailey
- twilio
- meta
validations:
required: true
- type: dropdown
id: component
attributes:
label: ¿Cual base de datos usaste?
options:
- memory
- mongo
- mysql
- json
validations:
required: true
- type: dropdown
id: result
attributes:
label: Conclusion de la prueba
options:
- muy buena
- buena
- tiene errores
validations:
required: true
- type: textarea
id: description
attributes:
description: 'Trata de ser lo más claro posible, de esa manera podemos entender el contexto del caso de uso'
label: Describe tu caso
placeholder: Yo tengo un caso....
validations:
required: true
- type: textarea
id: logs
attributes:
label: ¿Logs Importantes?
description: Si tienes algunos logs importantes a tener en cuenta o que muetren algun error en concreto.
render: shell
- type: textarea
id: additional_information
attributes:
label: Información Adicional
validations:
required: false
- type: input
id: usernames
attributes:
label: ¿Quieres que te mencionemos?
description: Siempre buscamos fomentar la comunidad por lo cual si quieres que te mencionemos publicamente en nuestras redes sociales puedes dejar tu username
placeholder: twitter o github o instagram o alguna url
validations:
required: false

17
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,17 @@
# Que tipo de Pull Request es?
- [ ] Mejoras
- [ ] Bug
- [ ] Docs / tests
# Descripción
Por favor agrega una descripción de tu aporte para tener más contexto y poder avanzar más rápido. Si es de ayuda puedes usar plataformar como [https://www.loom.com/](https://www.loom.com/) para grabar un video.
> Forma 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)

View File

@@ -0,0 +1,46 @@
name: Rev Major Providers
on:
schedule:
- cron: '0 9 * * *'
jobs:
check-npm:
name: Install Dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
registry-url: https://registry.npmjs.org/
- run: corepack enable
- name: Install NPM Dependencies
run: yarn install --immutable --network-timeout 300000
- name: Check Baileys
run: yarn node ./scripts/checker.js --name=baileys --stable=true
- name: Check Venom
run: yarn node ./scripts/checker.js --name=venom --stable=true
- name: Check web-whatsapp
run: yarn node ./scripts/checker.js --name=web-whatsapp --stable=true
- name: Check Meta
run: yarn node ./scripts/checker.js --name=meta --stable=true
- name: Check Twilio
run: yarn node ./scripts/checker.js --name=twilio --stable=true
- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: 'ci(providers): 🚩 Check BREAKING CHANGE'
create_branch: true
branch: feature/breaking-change

58
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,58 @@
name: Build and Test
on:
pull_request:
branches:
- dev
jobs:
############ BUILD PACKAGE ############
build-package:
name: Build Package
runs-on: ubuntu-latest
needs:
- test-unit
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
registry-url: https://registry.npmjs.org/
- run: corepack enable
- name: Install NPM Dependencies
run: yarn install --immutable --network-timeout 300000
- name: Build Package
run: yarn build:full
- name: Build Eslint rules
run: yarn lint:fix
############ UNIT TEST ############
test-unit:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
registry-url: https://registry.npmjs.org/
- run: corepack enable
- name: Install NPM Dependencies
run: yarn install --immutable --network-timeout 300000
- name: Unit Tests
run: yarn test

76
.github/workflows/codeql.yml vendored Normal file
View File

@@ -0,0 +1,76 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: 'CodeQL'
on:
push:
branches: [release/next]
pull_request:
# The branches below must be a subset of the branches above
branches: ['main']
schedule:
- cron: '21 16 * * 5'
jobs:
analyze:
if: ${{ !github.event.act }}
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: ['javascript']
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Use only 'java' to analyze code written in Java, Kotlin or both
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: '/language:${{matrix.language}}'

17
.github/workflows/contributors.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Revisando Colaboradores
on:
schedule:
- cron: '0 9 * * *'
jobs:
contrib-readme-job:
runs-on: ubuntu-latest
name: A job to automate contrib in readme
steps:
- name: Contribute List
uses: akhilmhdh/contributors-readme-action@v2.3.6
with:
image_size: 50
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

47
.github/workflows/netlify-dev.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
name: 📄 Desplegando documentacion
on:
pull_request:
branches:
- 'feat/docs-**'
- 'fix/docs-**'
push:
branches:
- 'feat/docs-**'
- 'fix/docs-**'
jobs:
############ DOCUMENTATION BUILD ############
build-documentation:
if: ${{ !github.event.act }}
name: Build Package
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
registry-url: https://registry.npmjs.org/
- run: corepack enable
- name: Install NPM Dependencies
run: yarn install --immutable --network-timeout 300000
- name: Add netlify
run: yarn add netlify-cli -D
- name: Create .env build file
run: |
touch packages/docs/.env
echo VITE_GITHUB_TOKEN=${{ secrets.COLLABORATORS_TOKEN }} >> packages/docs/.env
- name: Build and Deploy
run: |
cd packages/docs
netlify deploy --build --site ${{ secrets.NETLIFY_SITE_ID }} --auth ${{ secrets.NETLIFY_AUTH_TOKEN }}

41
.github/workflows/netlify.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: 📄 (PROD) Desplegando documentacion
on:
push:
branches:
- release/next
jobs:
############ DOCUMENTATION BUILD ############
build-documentation-prod:
name: Build Package
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
registry-url: https://registry.npmjs.org/
- run: corepack enable
- name: Install NPM Dependencies
run: yarn install --immutable --network-timeout 300000
- name: Add netlify
run: yarn add netlify-cli -D
- name: Create .env build file
run: |
touch packages/docs/.env
echo VITE_GITHUB_TOKEN=${{ secrets.COLLABORATORS_TOKEN }} >> packages/docs/.env
- name: Build and Deploy
run: |
cd packages/docs
netlify deploy --prod --build --site ${{ secrets.NETLIFY_SITE_ID }} --auth ${{ secrets.NETLIFY_AUTH_TOKEN }}

57
.github/workflows/releases-dev.yml vendored Normal file
View File

@@ -0,0 +1,57 @@
name: 🚀 (DEV) Liberando versiones
on:
push:
branches:
- release/next
jobs:
############ RELEASE ############
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
registry-url: https://registry.npmjs.org/
- run: corepack enable
- name: Install NPM Dependencies
run: yarn install --immutable --network-timeout 300000
- name: Build Package
run: yarn build:full
- name: Release @bot-whatsapp/bot
run: yarn node ./scripts/release.js --name=bot --version= --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/cli
run: yarn node ./scripts/release.js --name=cli --version= --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/create-bot-whatsapp
run: yarn node ./scripts/release.js --name=create-bot-whatsapp --version= --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/database
run: yarn node ./scripts/release.js --name=database --version= --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/provider
run: yarn node ./scripts/release.js --name=provider --version= --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/contexts
run: yarn node ./scripts/release.js --name=contexts --version= --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/portal
run: yarn node ./scripts/release.js --name=portal --version= --token="${{ secrets.NPM_TOKEN }}"
- name: Commit Versioning & Push changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: 'ci(version): :zap: automatic - "${date}" updated versions every packages'
branch: dev

79
.github/workflows/releases.yml vendored Normal file
View File

@@ -0,0 +1,79 @@
name: 🚀⚡ Liberando versiones
on:
push:
branches:
- release/production
jobs:
############ RELEASE ############
release-prod:
if: ${{ !github.event.act }}
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set output
id: vars
run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
registry-url: https://registry.npmjs.org/
- run: corepack enable
- name: Set User
run: git config --global user.email "leifer.contacto@gmail.com" && git config --global user.name "Leifer Mendez"
- name: Install NPM Dependencies
run: yarn install --immutable --network-timeout 300000
- name: Set CHANGELOG
run: yarn release
- name: get-npm-version
id: package-version
uses: martinbeentjes/npm-get-version-action@main
- name: Build Package
run: yarn build:full
- name: Release @bot-whatsapp/bot
run: yarn node ./scripts/release.js --name=bot --version="${{ steps.package-version.outputs.current-version}}" --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/cli
run: yarn node ./scripts/release.js --name=cli --version="${{ steps.package-version.outputs.current-version}}" --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/create-bot-whatsapp
run: yarn node ./scripts/release.js --name=create-bot-whatsapp --version="${{ steps.package-version.outputs.current-version}}" --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/database
run: yarn node ./scripts/release.js --name=database --version="${{ steps.package-version.outputs.current-version}}" --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/provider
run: yarn node ./scripts/release.js --name=provider --version="${{ steps.package-version.outputs.current-version}}" --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/contexts
run: yarn node ./scripts/release.js --name=contexts --version="${{ steps.package-version.outputs.current-version}}" --token="${{ secrets.NPM_TOKEN }}"
- name: Release @bot-whatsapp/portal
run: yarn node ./scripts/release.js --name=portal --version="${{ steps.package-version.outputs.current-version}}" --token="${{ secrets.NPM_TOKEN }}"
- name: Release Github
run: yarn node ./scripts/github.js --version="${{ steps.package-version.outputs.current-version}}" --token="${{ secrets.OCTO_TOKEN }}"
- name: 'Run if changes have been detected'
run: |
git add .
git commit -m "chore(version): pre release"
- name: Commit Versioning & Push changes
if: github.event_name == 'push'
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: 'chore(version): launch release 🚀 "${{ steps.package-version.outputs.current-version}}"'

27
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,27 @@
# This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time.
#
# You can adjust the behavior by modifying this file.
# For more information, see:
# https://github.com/actions/stale
name: Revisar ISSUES abandonadas
on:
schedule:
- cron: '55 22 * * *'
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: '¿Alguna novedad sobre esta ISSUE?'
stale-pr-message: '¿Alguna novedad sobre esta PULL REQUEST?'
stale-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity'
exempt-issue-assignees: 'leifermendez'

39
.gitignore vendored
View File

@@ -1,5 +1,9 @@
/node_modules
/node_modules/*
/packages/*/starters
/packages/*/node_modules
/packages/*/dist
/packages/*/docs/dist
/packages/provider/src/venom/tokens
session.json
chats/*
!chats/.gitkeep
@@ -7,4 +11,35 @@ media/*
!media/.gitkeep
mediaSend/*
!mediaSend/.gitkeep
.env
!mediaSend/nota-de-voz.mp3
.env
.wwebjs_auth
/session
/session/*
/tokens
/tokens/*
packages/cli/config.json
config.json
.yarnrc.yml
coverage/
*.lcov
log
log/*
*.log
*.tgz
lib
tmp/
.yarn/*
!.yarn/releases
!.yarn/plugins/@yarnpkg/plugin-postinstall.cjs
.fleet/
example-app*/
base-*/
!starters/apps/base-*/
qr.svg
package-lock.json
yarn-error.log
.npmrc
# Local Netlify folder
.netlify
.secrets

4
.husky/commit-msg Executable file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npx --no -- commitlint --edit

4
.husky/pre-commit Executable file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
yarn run fmt.staged

4
.husky/pre-push Executable file
View File

@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npm run test

9
.prettierignore Normal file
View File

@@ -0,0 +1,9 @@
packages/**/lib
packages/docs/*.json
**/.git
**/.svn
**/.hg
**/node_modules
*.mjs
*.cjs
*.md

View File

@@ -1 +1,6 @@
{
"trailingComma": "es5",
"tabWidth": 4,
"semi": false,
"singleQuote": true
}

24
.vscode/bot.code-snippets vendored Normal file
View File

@@ -0,0 +1,24 @@
{
"Flow Bot (simple)": {
"scope": "javascript",
"prefix": "bot:flow",
"description": "Crear un flujo simple",
"body": [
"export const flow${1} = addKeyword(['hola', 'buenas'])",
" .addAnswer('Hola! 🚀 Bienvenido a este CHATBOT')",
" .addAnswer('¿Como puedo ayudarte?')"
]
},
"Flow Bot (completo)": {
"scope": "javascript",
"prefix": "bot:flow completo",
"description": "Crear un flujo completo",
"body": [
"export const flow${1} = addKeyword(['categorias'])",
" .addAnswer('⚡ Tenemos las siguientes categorias')",
" .addAnswer(['🚀 Computadoras', '🚀 Celulares', '🚀 Otros'], {",
" delay: 1500, //Milisegundo 1500 = 1.5segundos",
"})"
]
}
}

3
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"recommendations": ["xyc.vscode-mdx-preview"]
}

15
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,15 @@
{
// Use IntelliSense para saber los atributos posibles.
// Mantenga el puntero para ver las descripciones de los existentes atributos.
// Para más información, visite: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Iniciar el programa",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}\\example-app\\app.js"
}
]
}

14
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,14 @@
{
"conventionalCommits.scopes": [
"hook",
"contributing",
"cli",
"bot",
"provider",
"adapter",
"ci",
"starters",
"conflict",
"contexts"
]
}

View File

@@ -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;
}
};

807
.yarn/releases/yarn-3.3.0.cjs vendored Normal file

File diff suppressed because one or more lines are too long

10
.yarnrc.yml Normal file
View File

@@ -0,0 +1,10 @@
nodeLinker: node-modules
npmPublishRegistry: 'https://registry.npmjs.org'
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-postinstall.cjs
spec: 'https://raw.githubusercontent.com/gravitywelluk/yarn-plugin-postinstall/master/bundles/%40yarnpkg/plugin-postinstall.js'
yarnPath: .yarn/releases/yarn-3.3.0.cjs
postinstall: npx husky install

View File

@@ -1,14 +1,479 @@
#### Actualización 14 Ene 2022
- npm update
- remove ora and chalk
- add env
- add mysql
- add dialogflow
- add scan qr from webpage
- update route with middleware
- fix send message to story
- external download
- easy deploy heroku
- add support for ubuntu/linux
# Changelog
https://stackoverflow.com/questions/51855169/dialogflow-403-iam-permission-dialogflow-sessions-detectintent
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### [0.1.16](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.15...v0.1.16) (2023-01-11)
### [0.1.15](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.14...v0.1.15) (2023-01-11)
### [0.1.14](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.13...v0.1.14) (2023-01-11)
### [0.1.13](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.12...v0.1.13) (2023-01-11)
### [0.1.12](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.10...v0.1.12) (2023-01-11)
### [0.1.9-pre](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.9...v0.1.9-pre) (2023-01-10)
### [0.1.7-pre-1](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.7-alpha...v0.1.7-pre-1) (2023-01-10)
### [0.1.7-alpha](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.7-pre...v0.1.7-alpha) (2023-01-10)
### [0.1.11](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.10...v0.1.11) (2023-01-11)
### [0.1.9-pre](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.9...v0.1.9-pre) (2023-01-10)
### [0.1.7-pre-1](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.7-alpha...v0.1.7-pre-1) (2023-01-10)
### [0.1.7-alpha](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.7-pre...v0.1.7-alpha) (2023-01-10)
### [0.1.10](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.8...v0.1.10) (2023-01-11)
### Bug Fixes
* :fire: update qr package ([ecde23f](https://github.com/leifermendez/bot-whatsapp/commit/ecde23fdea65def209aa874af35a3f293e6b1a91))
### [0.1.8](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.7-pre...v0.1.8) (2023-01-10)
### [0.1.7](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.7-pre...v0.1.7) (2023-01-10)
### [0.1.6](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.5...v0.1.6) (2023-01-10)
### Features
* :zap: new portal web for qr scan ([cb2e869](https://github.com/leifermendez/bot-whatsapp/commit/cb2e8692a3f94c8b24993cd11dd564f094b0e4ef))
* :zap: new portal web for qr scan ([9e93795](https://github.com/leifermendez/bot-whatsapp/commit/9e93795e6fce38890045389da95184fef1fbe0da))
* :zap: new portal web for qr scan ([3c178ea](https://github.com/leifermendez/bot-whatsapp/commit/3c178ea113b140535a51f5dcd521dbb66251670e))
* :zap: new portal web for qr scan ([1f1f564](https://github.com/leifermendez/bot-whatsapp/commit/1f1f564f4e2e3aa13b84de500fe215e0c45c2770))
* :zap: new portal web for qr scan ([3de5f4b](https://github.com/leifermendez/bot-whatsapp/commit/3de5f4b77a10e30632ff7555f5af5d8e93cb2019))
* :zap: qr code filename ([d794f60](https://github.com/leifermendez/bot-whatsapp/commit/d794f604ac8a835e523709dbf18c9b1609bbd00e))
* :zap: qr portal ([246ecdc](https://github.com/leifermendez/bot-whatsapp/commit/246ecdc11a8c4e652867c842b612dc4ce73f9828))
* :zap: qr portal ([af8b401](https://github.com/leifermendez/bot-whatsapp/commit/af8b401d075e1c35065589ede61476461ce86b4d))
* agregamos dockerfile y webserver a starters ([f9e3bbc](https://github.com/leifermendez/bot-whatsapp/commit/f9e3bbc6655060408e4fdbe1d7e920c2ed4fca53))
### Bug Fixes
* :zap: add Dockerfile, starter ([4e0d33c](https://github.com/leifermendez/bot-whatsapp/commit/4e0d33c6bb46ad259774f6d0c38c6c0b5f8ca4a9))
* :zap: fix inject port args ([20f752e](https://github.com/leifermendez/bot-whatsapp/commit/20f752e6c1b1f7d11948fc4f2f8950f7834df7d9))
* :zap: fix inject port args ([7a23eb0](https://github.com/leifermendez/bot-whatsapp/commit/7a23eb0cc6f93ec21c5ab34e46981ae7a93f42ff))
* **provider:** :zap: fix send image baileys ([2ddea54](https://github.com/leifermendez/bot-whatsapp/commit/2ddea5468d235035478d4e91e63c821da19da179))
* **provider:** :zap: fix send image baileys ([391e11c](https://github.com/leifermendez/bot-whatsapp/commit/391e11ce738cd64792b5237d69f3739b0263c198))
* **provider:** :zap: fix send image baileys ([5d10cb9](https://github.com/leifermendez/bot-whatsapp/commit/5d10cb9026da60043e9a2f86117ebb04d0631a3f))
* **provider:** fix error docker as root user ([5a033da](https://github.com/leifermendez/bot-whatsapp/commit/5a033da83aee1f614120bccf27c9f330500cc7b0))
### [0.1.4](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.5...v0.1.4) (2023-01-10)
### Features
* :zap: new portal web for qr scan ([cb2e869](https://github.com/leifermendez/bot-whatsapp/commit/cb2e8692a3f94c8b24993cd11dd564f094b0e4ef))
* :zap: new portal web for qr scan ([9e93795](https://github.com/leifermendez/bot-whatsapp/commit/9e93795e6fce38890045389da95184fef1fbe0da))
* :zap: new portal web for qr scan ([3c178ea](https://github.com/leifermendez/bot-whatsapp/commit/3c178ea113b140535a51f5dcd521dbb66251670e))
* :zap: new portal web for qr scan ([1f1f564](https://github.com/leifermendez/bot-whatsapp/commit/1f1f564f4e2e3aa13b84de500fe215e0c45c2770))
* :zap: new portal web for qr scan ([3de5f4b](https://github.com/leifermendez/bot-whatsapp/commit/3de5f4b77a10e30632ff7555f5af5d8e93cb2019))
* :zap: qr code filename ([d794f60](https://github.com/leifermendez/bot-whatsapp/commit/d794f604ac8a835e523709dbf18c9b1609bbd00e))
* :zap: qr portal ([246ecdc](https://github.com/leifermendez/bot-whatsapp/commit/246ecdc11a8c4e652867c842b612dc4ce73f9828))
* :zap: qr portal ([af8b401](https://github.com/leifermendez/bot-whatsapp/commit/af8b401d075e1c35065589ede61476461ce86b4d))
* agregamos dockerfile y webserver a starters ([f9e3bbc](https://github.com/leifermendez/bot-whatsapp/commit/f9e3bbc6655060408e4fdbe1d7e920c2ed4fca53))
### Bug Fixes
* :zap: add Dockerfile, starter ([4e0d33c](https://github.com/leifermendez/bot-whatsapp/commit/4e0d33c6bb46ad259774f6d0c38c6c0b5f8ca4a9))
* :zap: fix inject port args ([20f752e](https://github.com/leifermendez/bot-whatsapp/commit/20f752e6c1b1f7d11948fc4f2f8950f7834df7d9))
* :zap: fix inject port args ([7a23eb0](https://github.com/leifermendez/bot-whatsapp/commit/7a23eb0cc6f93ec21c5ab34e46981ae7a93f42ff))
* **provider:** :zap: fix send image baileys ([2ddea54](https://github.com/leifermendez/bot-whatsapp/commit/2ddea5468d235035478d4e91e63c821da19da179))
* **provider:** :zap: fix send image baileys ([391e11c](https://github.com/leifermendez/bot-whatsapp/commit/391e11ce738cd64792b5237d69f3739b0263c198))
* **provider:** :zap: fix send image baileys ([5d10cb9](https://github.com/leifermendez/bot-whatsapp/commit/5d10cb9026da60043e9a2f86117ebb04d0631a3f))
* **provider:** fix error docker as root user ([5a033da](https://github.com/leifermendez/bot-whatsapp/commit/5a033da83aee1f614120bccf27c9f330500cc7b0))
### [0.1.3](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.2...v0.1.3) (2023-01-04)
### Features
* **adapter:** :zap: send messages with dialogflow ([c20e151](https://github.com/leifermendez/bot-whatsapp/commit/c20e151e209d33de9e7425a64f003c85360f1832))
* **baileys:** added more methods ([1b23b83](https://github.com/leifermendez/bot-whatsapp/commit/1b23b837460ce4533ff33f10f1de5e3a344a5623))
* **bot:** :zap: http responses support ([e331c2d](https://github.com/leifermendez/bot-whatsapp/commit/e331c2dcc40eeb82a93f9d29f6a82333b8465927))
* **bot:** :zap: http responses support ([2d2bb08](https://github.com/leifermendez/bot-whatsapp/commit/2d2bb085cd95604a84ca3fe5c4ddc84b3824ac1c))
* **bot:** :zap: rev-03 everything work fine ([3012e02](https://github.com/leifermendez/bot-whatsapp/commit/3012e026b77ab4e99334b992d166a89189f76503))
* **cli:** :sparkles: added bailey ([06acec2](https://github.com/leifermendez/bot-whatsapp/commit/06acec2bf29d72c2b46f4ce81fed115bab97351f))
* **cli:** :sparkles: added bailey ([c868f73](https://github.com/leifermendez/bot-whatsapp/commit/c868f7346245bec94582b25a342febc657926c9d))
* **conflict:** :zap: remove unused variable ([eba9229](https://github.com/leifermendez/bot-whatsapp/commit/eba92299cfd84c971f09697d027043f19eec2b7c))
* **contexts:** :zap: add new dialogflowcx ([4d8cf62](https://github.com/leifermendez/bot-whatsapp/commit/4d8cf623ff86b3d08c8d52293d4e289dfda68e1c))
* **contexts:** :zap: add new dialogflowcx ([9885872](https://github.com/leifermendez/bot-whatsapp/commit/98858729919b2544dace07c49badce7888ddfd82))
* **contexts:** dialogflowcx support ([9179421](https://github.com/leifermendez/bot-whatsapp/commit/917942139f9736f1c0f8ce5f07b4e12e5768b0c7))
* correccion de flujos en app.js de ejemplo ([99f508f](https://github.com/leifermendez/bot-whatsapp/commit/99f508f93889d70240861158bc304c25a3b2daef))
* **docs:** master class updated ([69fd81a](https://github.com/leifermendez/bot-whatsapp/commit/69fd81a565e61b249ac50917585293d2d84e3dd4))
* **docs:** master class updated ([d522b03](https://github.com/leifermendez/bot-whatsapp/commit/d522b03e2e6e6e3f7c467c59e3d2d6f288fe37b2))
* **provider:** :bug: dialogflow ([4ec6f1e](https://github.com/leifermendez/bot-whatsapp/commit/4ec6f1e120879e545fa111615f2d79b792d947a5))
* **provider:** :sparkles: added dialogflow ([2f633c7](https://github.com/leifermendez/bot-whatsapp/commit/2f633c72da24f98d6c318d1e725571b62e04604c))
* **provider:** :sparkles: added dialogflow ([798f1ce](https://github.com/leifermendez/bot-whatsapp/commit/798f1cebdefe43624c1698a219dcb224bb842d38))
* **provider:** :sparkles: endpoint is added to validate the webhook … ([478929d](https://github.com/leifermendez/bot-whatsapp/commit/478929d1340d46d6bf997ae8edabbaae4511172d))
* **provider:** :sparkles: endpoint is added to validate the webhook token ([1ec1564](https://github.com/leifermendez/bot-whatsapp/commit/1ec15647dc462363d5b765f42debddbe6ef6266b))
* **provider:** :zap: add new methods ([0b4e353](https://github.com/leifermendez/bot-whatsapp/commit/0b4e35308dace0ccdf618cb1d04987ed5200d58c))
* **provider:** :zap: add sendfile and sendButtons ([5433610](https://github.com/leifermendez/bot-whatsapp/commit/5433610a84d7a050a387e4daf2ded1daebfc03a4))
* **provider:** :zap: add sendfile and sendButtons ([342cbcc](https://github.com/leifermendez/bot-whatsapp/commit/342cbccff1d09f9aabe5423ad6d686d590a2448f))
* **provider:** :zap: added new venom provider ([01fe9eb](https://github.com/leifermendez/bot-whatsapp/commit/01fe9ebc9a943f2aa086ee415153d1cccdb14ec0))
* **provider:** :zap: added tamplate venom ([337c2e9](https://github.com/leifermendez/bot-whatsapp/commit/337c2e94bccd0ae173958fe2db08b494bdc93c28))
* **provider:** :zap: baileysProvider ([23b2e8e](https://github.com/leifermendez/bot-whatsapp/commit/23b2e8e439ecec24450bd5cf1a3820316e643434))
* **provider:** :zap: solution error buttons ([1b83871](https://github.com/leifermendez/bot-whatsapp/commit/1b83871cca6996c6acae3d4c8b6b42aec05ea146))
* **provider:** :zap: solution error utils venom ([31c83f5](https://github.com/leifermendez/bot-whatsapp/commit/31c83f5d689a01490d3adb96006f54c2a5d3268b))
* **provider:** :zap: update ([b62d21a](https://github.com/leifermendez/bot-whatsapp/commit/b62d21a0bf94466e43c25c6e8c0f5db9ae91c572))
* **provider:** :zap: update ([0c94647](https://github.com/leifermendez/bot-whatsapp/commit/0c94647a27747c3ddf4f02926580370f0d81bdc2))
* **provider:** meta provider is added ([b041f7d](https://github.com/leifermendez/bot-whatsapp/commit/b041f7d0c7cc6f152d3f36785d1d398a4141d57d))
* **provider:** meta provider is added ([438607c](https://github.com/leifermendez/bot-whatsapp/commit/438607c222b91d6f8814201dabe5f7c3e7ba1abb))
* **provider:** new added baileys ([4e0fcbd](https://github.com/leifermendez/bot-whatsapp/commit/4e0fcbd8347f8a430adb43351b5415098a5d10df))
* **provider:** new provider - venon:zap: configuracion inicial provi… ([66f75f8](https://github.com/leifermendez/bot-whatsapp/commit/66f75f872200334bfc9eda744bed92c509dfee56))
* **provider:** new provider - venon:zap: configuracion inicial provider venom ([fee7c2e](https://github.com/leifermendez/bot-whatsapp/commit/fee7c2e967b7fe8835b5acc243c19f7713acfbe7))
* se agregaron los datros del adapter mongo en app.js y package.json ([8160d13](https://github.com/leifermendez/bot-whatsapp/commit/8160d13c866b8ae17b0ec8e68eee1bc0373595b0))
* se agrego informacion al ejemplo en app.js ([954e751](https://github.com/leifermendez/bot-whatsapp/commit/954e751f700c6a39ec70c0bc5168637c0dc7e07c))
* se agrego informacion al ejemplo en app.js ([b2f1339](https://github.com/leifermendez/bot-whatsapp/commit/b2f13396104db9ccef5b3bad1c4e19c6a4bad2d4))
* **starters:** meta memory base template added ([11c784f](https://github.com/leifermendez/bot-whatsapp/commit/11c784f882965d6bd3a2313cf91bed9fb3aa5f26))
* **starters:** meta memory base template added ([e8d6252](https://github.com/leifermendez/bot-whatsapp/commit/e8d625201ed86e162e0b4e82100ede1d08985555))
### Bug Fixes
* :art: update ([7d6708c](https://github.com/leifermendez/bot-whatsapp/commit/7d6708c01bbdc5043a7e6ed56fe15a9618115b91))
* :sparkles: updated starters ([5da4b7a](https://github.com/leifermendez/bot-whatsapp/commit/5da4b7a4d1e5950be94361ac439938741b9d299c))
* actualizar app.js de ejemplo ([1746613](https://github.com/leifermendez/bot-whatsapp/commit/17466138ddcef60a23a0c87911f22045f26d3233))
* actualizar ejemplo app.js ([60fdbf3](https://github.com/leifermendez/bot-whatsapp/commit/60fdbf3d3cd62819e618853a9dc2fd0e23fe8752))
* **adapter:** :fire: clear log ([9ad4874](https://github.com/leifermendez/bot-whatsapp/commit/9ad4874fdafabfbf0e9e20e6b3281f702bb9fbe7))
* **adapter:** :fire: clear log ([4d34d3a](https://github.com/leifermendez/bot-whatsapp/commit/4d34d3ab1daab4e72fb5244216c78cf836d1a164))
* **adapter:** :fire: improvement baileys ([e6fefb4](https://github.com/leifermendez/bot-whatsapp/commit/e6fefb4049847f996f2a169b9acfc27c2428d3e6))
* **adapter:** :fire: improvement baileys ([2d5ac26](https://github.com/leifermendez/bot-whatsapp/commit/2d5ac2664bea09e60ac85ff2612609ae21050945))
* **adapter:** :rocket: venom update - cli - qr iamge ([041bf62](https://github.com/leifermendez/bot-whatsapp/commit/041bf6280e5f6956393716907e0669aa3ca78b4a))
* **adapter:** :rocket: venom update - cli - qr iamge ([e37fd0d](https://github.com/leifermendez/bot-whatsapp/commit/e37fd0da3635aa1041664d490d5f9803d2c441ca))
* **adapter:** :rocket: venom update - cli - qr iamge ([ca6afbb](https://github.com/leifermendez/bot-whatsapp/commit/ca6afbb87fceec12d4a383486ad693905e36881f))
* **adapter:** json db change is made ([386c1bb](https://github.com/leifermendez/bot-whatsapp/commit/386c1bbbac036aa58335fb5f62e3af2493766b6b))
* **adapter:** json db change is made ([3bdc7af](https://github.com/leifermendez/bot-whatsapp/commit/3bdc7afe8062527ff08620650d2c1177dfea83f5))
* agregamos variables para mysql ([dcf65b8](https://github.com/leifermendez/bot-whatsapp/commit/dcf65b87bc7e7e6381e6448e83118077986898e7))
* **bot:** :ambulance: fix callback functions ([d9aa97c](https://github.com/leifermendez/bot-whatsapp/commit/d9aa97c7819aca1446657bc0b75e9732f0f20c6b)), closes [#252](https://github.com/leifermendez/bot-whatsapp/issues/252)
* **bot:** :ambulance: fix callback functions ([964a074](https://github.com/leifermendez/bot-whatsapp/commit/964a074aa41324bd09d0c4e2e7aa663a0602b69c))
* **bot:** :fire: fix rev ([21407c0](https://github.com/leifermendez/bot-whatsapp/commit/21407c0e37f1ab12efecf887e699cedf05e3946a))
* **bot:** :fire: fix rev ([484c8c3](https://github.com/leifermendez/bot-whatsapp/commit/484c8c3bdefbc7824c32a86090bafae0593ecdac))
* **bot:** :zap: working callback Phase 1 ([952ce86](https://github.com/leifermendez/bot-whatsapp/commit/952ce86ffaa48a0d6fbc0a00a08c5d1efa14ee8e))
* **bot:** :zap: working nested new flow ([2cbc962](https://github.com/leifermendez/bot-whatsapp/commit/2cbc96245d795de749d894a3a0d99b6550f08d9e))
* **cli:** :art: starters ([a2be57f](https://github.com/leifermendez/bot-whatsapp/commit/a2be57f0aa42c6b5e13ad19c34abc7d9e81dc135))
* **cli:** :art: starters ([670ecf1](https://github.com/leifermendez/bot-whatsapp/commit/670ecf121babf53e76c2ea106c0710cbe59facde))
* **cli:** :fire: update instructions ([e585e2f](https://github.com/leifermendez/bot-whatsapp/commit/e585e2f5f644ed0188dc9cd2b3c697c9d6050669))
* **cli:** :fire: update instructions ([ed36ce0](https://github.com/leifermendez/bot-whatsapp/commit/ed36ce0a7796320c6a4a452f29c05a3f0f7368db))
* **cli:** :fire: update instructions ([bad1694](https://github.com/leifermendez/bot-whatsapp/commit/bad16943fc2089887d6bf0b6d90075d3bec6f9c7))
* **cli:** :fire: update instructions ([a21633f](https://github.com/leifermendez/bot-whatsapp/commit/a21633fb7cf348cc37f4e4714f51172b49b193b5))
* **cli:** :zap: updated ([a6f4aa8](https://github.com/leifermendez/bot-whatsapp/commit/a6f4aa8d1e809330c06c165aaf9a9f90b8922bb5))
* **conflict:** conflict resolution ([71d43b5](https://github.com/leifermendez/bot-whatsapp/commit/71d43b585a0ce173061c84e9879915e4602db026))
* **contexts:** :fire: added buttons ([eabef7a](https://github.com/leifermendez/bot-whatsapp/commit/eabef7a92d005cd0190196cfe75828c38885aadf))
* **contexts:** :fire: added buttons ([1b878d2](https://github.com/leifermendez/bot-whatsapp/commit/1b878d2ba0daeb3609af74a2ebae7948456e7fb0))
* **contexts:** :fire: added buttons ([78b0a9d](https://github.com/leifermendez/bot-whatsapp/commit/78b0a9dddc2a6e0fceb721ee7794efa2047f25fc))
* **contexts:** :fire: added buttons ([d8309f7](https://github.com/leifermendez/bot-whatsapp/commit/d8309f77e1d9137c0bec977ed9faef633cd90552))
* correccion en app.js para remover addChild en starters ([32db429](https://github.com/leifermendez/bot-whatsapp/commit/32db429f2946f344d949cb169a9595d657c06279))
* fix del db provider mysql ([b59d4fc](https://github.com/leifermendez/bot-whatsapp/commit/b59d4fcdd7462cde3f68ab5746d49960b547a592))
* provider equivocado en app.js de venom ([4e0a109](https://github.com/leifermendez/bot-whatsapp/commit/4e0a1091ee85cedfaa5a9c3d40e5cd50bc36cda3))
* **provider:** :bug: create static site html qr ([c7e56a4](https://github.com/leifermendez/bot-whatsapp/commit/c7e56a4b13c8829f91769eeca7f1f6b3473f68cf))
* **provider:** :bug: fix metea provider ([85f50be](https://github.com/leifermendez/bot-whatsapp/commit/85f50be9dcbf3817107898d8d2980baf05acd678))
* **provider:** :bug: fix metea provider ([a52aaa1](https://github.com/leifermendez/bot-whatsapp/commit/a52aaa11d883bbaf526cf87720d3c3fd9f89a986))
* **provider:** :bug: qr code accurate ([6c4845d](https://github.com/leifermendez/bot-whatsapp/commit/6c4845d733720d9916bb4008f9069ae4fd986a4b))
* **provider:** :bug: qr code accurate ([91bfdc4](https://github.com/leifermendez/bot-whatsapp/commit/91bfdc46301207cbc5274308da6f39c7b4652c63))
* **provider:** :fire: baileys fix ([928365d](https://github.com/leifermendez/bot-whatsapp/commit/928365dcafb3631acf6b1d0c239a906f8e1c4b0d))
* **provider:** :fire: send message togther with media ([78aa23f](https://github.com/leifermendez/bot-whatsapp/commit/78aa23fab094059145f82e6781f9366d5d582b4f))
* **provider:** :fire: send message togther with media ([b6bf43d](https://github.com/leifermendez/bot-whatsapp/commit/b6bf43d70fc28c6a229522b9b0de76cec43ac864))
* **provider:** :zap: baileys fix restart ([ae83774](https://github.com/leifermendez/bot-whatsapp/commit/ae83774365027e2e86127ab7713ae9ee2df31f33))
* **provider:** :zap: edit starter ([ff65832](https://github.com/leifermendez/bot-whatsapp/commit/ff65832012003423cc86d25cf0923452b1f8acb7))
* **provider:** :zap: edit starter ([68dd182](https://github.com/leifermendez/bot-whatsapp/commit/68dd1820f05d04780824b318072d053eaf7db654))
* **provider:** :zap: json space ([3cef741](https://github.com/leifermendez/bot-whatsapp/commit/3cef741c9ee30024eb42770a5f32931fcd372160))
* **provider:** :zap: json space ([9b087e0](https://github.com/leifermendez/bot-whatsapp/commit/9b087e071019a7b6c79195a24dc7ddec498c5716))
* **provider:** :zap: json space ([208fb4e](https://github.com/leifermendez/bot-whatsapp/commit/208fb4e9131dd5d4fd7230ba1aa11181337d9181))
* **provider:** :zap: json space ([54a59c7](https://github.com/leifermendez/bot-whatsapp/commit/54a59c7f0d4dbaab006ce7e3c74412d8d3613ecd))
* **provider:** qr-fix margin ([663641a](https://github.com/leifermendez/bot-whatsapp/commit/663641a1b8bf9234a88b0f3c38381ebc4bfa4bf9))
* se quito addChild de las constantes porque no se usa ([ba2291a](https://github.com/leifermendez/bot-whatsapp/commit/ba2291a3ddac0d4101021e11d03cb222c5a4bb3b))
* **starters:** :fire: updated staters ([4d4f15c](https://github.com/leifermendez/bot-whatsapp/commit/4d4f15ce73486d9335ad474d9e37c3b155670134))
* **starters:** :fire: updated staters ([a30eaac](https://github.com/leifermendez/bot-whatsapp/commit/a30eaac77534d17eb980f6ec126140e9d30aa06e))
* **starters:** :memo: update MIGRATION ([37fe323](https://github.com/leifermendez/bot-whatsapp/commit/37fe32322eb1bd41eecd151e52f17ec0588fb85e))
* **starters:** :memo: update MIGRATION ([9b30e7d](https://github.com/leifermendez/bot-whatsapp/commit/9b30e7dcfc30bc160b56427cc6cdc2dc982bde2a))
* **starters:** base templates are added for meta ([229e017](https://github.com/leifermendez/bot-whatsapp/commit/229e017ae20b84c9d12c7282f97b7034f5f33e6d))
* **starters:** base templates are added for meta ([20f6651](https://github.com/leifermendez/bot-whatsapp/commit/20f665175c9b47226df41ce43e05574bd6ab1930))
### [0.1.2](https://github.com/leifermendez/bot-whatsapp/compare/v0.1.1...v0.1.2) (2022-12-12)
### Bug Fixes
* **cli:** :art: starters ([79e2318](https://github.com/leifermendez/bot-whatsapp/commit/79e231825613f33bfec2ae8e93139f885c199c7a))
* **cli:** :art: starters ([87ba43a](https://github.com/leifermendez/bot-whatsapp/commit/87ba43a5535be0893a7701a3b6a085ee5d29e7c5))
* fix dependencias ([61d0324](https://github.com/leifermendez/bot-whatsapp/commit/61d032426119341187a470035d49b8b252ca46cd))
### [0.1.1](https://github.com/leifermendez/bot-whatsapp/compare/v0.3.0...v0.1.1) (2022-12-12)
## 0.3.0 (2022-12-12)
### ⚠ BREAKING CHANGES
* 🧨 NO
### Features
* (🎸) add onClick prop to component ([4ae3898](https://github.com/leifermendez/bot-whatsapp/commit/4ae389846d38c133f6bb2129ae373eed39d9d08d))
* **adapter:** added adapter mysql ([717a7dc](https://github.com/leifermendez/bot-whatsapp/commit/717a7dc95fbc107ec6f55387aff606c47144baa4))
* **adapter:** implementation of json file adapter ([5e1a373](https://github.com/leifermendez/bot-whatsapp/commit/5e1a3737303c843095984f6357564ea18458362f))
* **adapter:** mysql adapter ([8d73c86](https://github.com/leifermendez/bot-whatsapp/commit/8d73c86946d07aa80e5b375b62b84a88b2892e03))
* **adapter:** sql is added to create the table ([4b7de0f](https://github.com/leifermendez/bot-whatsapp/commit/4b7de0f6901524fa2c09271c3a99c364e6b3c260))
* **bot:** :fire: improvement provider handler ([4154cc2](https://github.com/leifermendez/bot-whatsapp/commit/4154cc223091a46d3203d3a378cd42f61749a5fa))
* **bot:** :zap: add send image function ([ce8a96b](https://github.com/leifermendez/bot-whatsapp/commit/ce8a96b958ff814c65d8fb4dbd5eaed5cc83a1ed))
* **ci:** :art: add releases ([b115dc3](https://github.com/leifermendez/bot-whatsapp/commit/b115dc3654996f049837bfb6b5d039a2313df0ad))
* **ci:** :art: relases script ([2e906bc](https://github.com/leifermendez/bot-whatsapp/commit/2e906bce79f7d854d437334e1d0c2cd270b0bbc6))
* **ci:** update ci ([e5a9db7](https://github.com/leifermendez/bot-whatsapp/commit/e5a9db7e12340c4f5baa66e8b20585b63daa3bcf))
* **cli:** create-starter ([3977987](https://github.com/leifermendez/bot-whatsapp/commit/397798790ef5857ca758b0df8384c6a4bfacc181))
* **provider:** :fire: add twilii (weoking) ([4350dff](https://github.com/leifermendez/bot-whatsapp/commit/4350dff22a7de69ba6d35ecbdd67e59b810bd46f))
* **provider:** added twilio provider ([8dd3be9](https://github.com/leifermendez/bot-whatsapp/commit/8dd3be909b36717f6b54e141a5f48d2722d4855c))
* **release:** added ([1988948](https://github.com/leifermendez/bot-whatsapp/commit/1988948c30d922beb7b83faab96d1d59cf7f5f90))
* **release:** added ([f4ad704](https://github.com/leifermendez/bot-whatsapp/commit/f4ad7040abf619635480c30babd6f1159c7af85a))
### Bug Fixes
* **adapter:** conflict resolution ([4b307ef](https://github.com/leifermendez/bot-whatsapp/commit/4b307efe79c738a5c4e04ff1c07ca247d827593c))
* **adapter:** corrections are made to the adapter ([afa6771](https://github.com/leifermendez/bot-whatsapp/commit/afa677190392d48715930ebe2b1e15c7619d730f))
* **bot:** :zap: added delay promises ([73caf09](https://github.com/leifermendez/bot-whatsapp/commit/73caf090ba9013132e5dcb7761a10939dc9ac300))
* **bot:** :zap: fix sensitive case ([24ac9fb](https://github.com/leifermendez/bot-whatsapp/commit/24ac9fbf48f80eeb521a36bc938af3a70dd82303))
* **bot:** :zap: flow improvement + add utils ([a7b19d9](https://github.com/leifermendez/bot-whatsapp/commit/a7b19d9bff5ea66ff888555c3df37ae0e20b612a))
* **bot:** update ([49698bf](https://github.com/leifermendez/bot-whatsapp/commit/49698bfda9d2a53f7b1a7e1724a796698601fbaa))
* **ci:** :zap: balance version ([ec46cfd](https://github.com/leifermendez/bot-whatsapp/commit/ec46cfdd657c08c8e90261613f00cfc080f1e1d6))
* **ci:** :zap: github action ([b827a0a](https://github.com/leifermendez/bot-whatsapp/commit/b827a0ab225b89bb8117c82628db0679c09b4102))
* **ci:** :zap: github action ([4142ca4](https://github.com/leifermendez/bot-whatsapp/commit/4142ca4fd552e7005f3b1397a76b90a2e574d19d))
* **ci:** :zap: github action ([091544a](https://github.com/leifermendez/bot-whatsapp/commit/091544ac3fac0c16925e856e1aec64bcad0ecf6d))
* **ci:** :zap: github action ([2ce342a](https://github.com/leifermendez/bot-whatsapp/commit/2ce342a0cb15019d5084ca06dc30e342b030ea10))
* **ci:** :zap: github action ([7817793](https://github.com/leifermendez/bot-whatsapp/commit/781779328f93ef8b0e6e0f85c6cd05ae782112fb))
* **ci:** :zap: github action ([dfced8c](https://github.com/leifermendez/bot-whatsapp/commit/dfced8c594e9175c81e837af359631ba055b7e1a))
* **ci:** :zap: github action ([aaa4ce8](https://github.com/leifermendez/bot-whatsapp/commit/aaa4ce837229fd51e274de3d91e1d9d615ac69fd))
* **ci:** :zap: github action ([9ddf144](https://github.com/leifermendez/bot-whatsapp/commit/9ddf144244cd6877e7d26f576387814459f2befb))
* **ci:** :zap: github action ([b465de5](https://github.com/leifermendez/bot-whatsapp/commit/b465de55a0e511213d1a7760a74efa102172c85e))
* **ci:** :zap: github action ([cf1dc6f](https://github.com/leifermendez/bot-whatsapp/commit/cf1dc6fac810545e5a2b63f31f71322f37329e38))
* **ci:** :zap: github action ([8d897f8](https://github.com/leifermendez/bot-whatsapp/commit/8d897f824e27a55ca011163092a813a7e8f426af))
* **ci:** ci ([f55cfae](https://github.com/leifermendez/bot-whatsapp/commit/f55cfae6e4ccc1df949212999406680020d27f9c))
* **ci:** ci ([671c5b3](https://github.com/leifermendez/bot-whatsapp/commit/671c5b37f33360e8cb754625b8dd6e83bce9014d))
* **cli:** :bug: path ([32212fb](https://github.com/leifermendez/bot-whatsapp/commit/32212fb52d206bf6f8d753a86d9ce40aa0db2a5d))
* **cli:** :fire: create script - templates ([2319db3](https://github.com/leifermendez/bot-whatsapp/commit/2319db3009501fe57ae21e60ad286eb68c46f4fd))
* **cli:** :fire: create script - templates ([9cb98b5](https://github.com/leifermendez/bot-whatsapp/commit/9cb98b5e73fca3c3f5e70a8497badc31e494b943))
* **cli:** :fire: create script - templates ([2999e0e](https://github.com/leifermendez/bot-whatsapp/commit/2999e0e753f31a8b9e6d7c117e78cdb5656e203a))
* **cli:** :fire: create script - templates ([af716b7](https://github.com/leifermendez/bot-whatsapp/commit/af716b75372899877a81b528b58278376166d0ad))
* **cli:** :fire: create script - templates ([c6999c8](https://github.com/leifermendez/bot-whatsapp/commit/c6999c84931083a87b5717db58003be68244707e))
* **cli:** :fire: create script - templates ([d4b49a9](https://github.com/leifermendez/bot-whatsapp/commit/d4b49a9bd7085070f0c5964d2903f10b71bde0b3))
* **cli:** :fire: create script - templates ([eebc3c9](https://github.com/leifermendez/bot-whatsapp/commit/eebc3c980638d88f11a0d93b8344f3ff345c7ee5))
* **cli:** :zap: clean eslinter ([bfb69d9](https://github.com/leifermendez/bot-whatsapp/commit/bfb69d9a9574a757ae02748b6c5f5afa3eac68e6))
* **cli:** :zap: clean eslinter ([15f6972](https://github.com/leifermendez/bot-whatsapp/commit/15f697225775a0f0e0a440cd980f7fb8f51a1056))
* **cli:** :zap: create-starter ([d3b8310](https://github.com/leifermendez/bot-whatsapp/commit/d3b8310180d2ad813733b1d18f2c32d7d947740a))
* **cli:** :zap: update cli copy ([7797c2b](https://github.com/leifermendez/bot-whatsapp/commit/7797c2b46133697e2a591adab2b67e66b34a1cfe))
* **fix:** fix ([6483545](https://github.com/leifermendez/bot-whatsapp/commit/648354500b123f20044f5ac2e8a26b15f16d1b8d))
* **fix:** fix ([28c0480](https://github.com/leifermendez/bot-whatsapp/commit/28c0480b8bfa6b24394095f57c36ef89c9aeb566))
* **linter:** update linter and commitlint ([70a94ab](https://github.com/leifermendez/bot-whatsapp/commit/70a94ab2c6f8e4122780c77bc3a621944883e621))
* pre-copy fix ([08e2552](https://github.com/leifermendez/bot-whatsapp/commit/08e2552907c48cfeaac843457a18bf2032e6f8aa))
* pre-copy fix ([6617107](https://github.com/leifermendez/bot-whatsapp/commit/6617107ab824215c449e26eae6c2bb327ecfc092))
* **starter:** pre-copy fix ([929e74c](https://github.com/leifermendez/bot-whatsapp/commit/929e74c84b667ec13cb5490b3b951cb8df15ebd1))
* (💍) Is justa test! ([37d04e9](https://github.com/leifermendez/bot-whatsapp/commit/37d04e9e89d3f01fdc367654ba60fb11ab2614c4))
### [0.2.1](https://github.com/leifermendez/bot-whatsapp/compare/v0.2.0...v0.2.1) (2022-12-12)
## 0.2.0 (2022-12-12)
### ⚠ BREAKING CHANGES
* 🧨 NO
### Features
* (🎸) add onClick prop to component ([4ae3898](https://github.com/leifermendez/bot-whatsapp/commit/4ae389846d38c133f6bb2129ae373eed39d9d08d))
* **adapter:** added adapter mysql ([717a7dc](https://github.com/leifermendez/bot-whatsapp/commit/717a7dc95fbc107ec6f55387aff606c47144baa4))
* **adapter:** implementation of json file adapter ([5e1a373](https://github.com/leifermendez/bot-whatsapp/commit/5e1a3737303c843095984f6357564ea18458362f))
* **adapter:** mysql adapter ([8d73c86](https://github.com/leifermendez/bot-whatsapp/commit/8d73c86946d07aa80e5b375b62b84a88b2892e03))
* **adapter:** sql is added to create the table ([4b7de0f](https://github.com/leifermendez/bot-whatsapp/commit/4b7de0f6901524fa2c09271c3a99c364e6b3c260))
* **bot:** :fire: improvement provider handler ([4154cc2](https://github.com/leifermendez/bot-whatsapp/commit/4154cc223091a46d3203d3a378cd42f61749a5fa))
* **bot:** :zap: add send image function ([ce8a96b](https://github.com/leifermendez/bot-whatsapp/commit/ce8a96b958ff814c65d8fb4dbd5eaed5cc83a1ed))
* **ci:** :art: add releases ([b115dc3](https://github.com/leifermendez/bot-whatsapp/commit/b115dc3654996f049837bfb6b5d039a2313df0ad))
* **ci:** :art: relases script ([2e906bc](https://github.com/leifermendez/bot-whatsapp/commit/2e906bce79f7d854d437334e1d0c2cd270b0bbc6))
* **ci:** update ci ([e5a9db7](https://github.com/leifermendez/bot-whatsapp/commit/e5a9db7e12340c4f5baa66e8b20585b63daa3bcf))
* **cli:** create-starter ([3977987](https://github.com/leifermendez/bot-whatsapp/commit/397798790ef5857ca758b0df8384c6a4bfacc181))
* **provider:** :fire: add twilii (weoking) ([4350dff](https://github.com/leifermendez/bot-whatsapp/commit/4350dff22a7de69ba6d35ecbdd67e59b810bd46f))
* **provider:** added twilio provider ([8dd3be9](https://github.com/leifermendez/bot-whatsapp/commit/8dd3be909b36717f6b54e141a5f48d2722d4855c))
* **release:** added ([1988948](https://github.com/leifermendez/bot-whatsapp/commit/1988948c30d922beb7b83faab96d1d59cf7f5f90))
* **release:** added ([f4ad704](https://github.com/leifermendez/bot-whatsapp/commit/f4ad7040abf619635480c30babd6f1159c7af85a))
### Bug Fixes
* **adapter:** conflict resolution ([4b307ef](https://github.com/leifermendez/bot-whatsapp/commit/4b307efe79c738a5c4e04ff1c07ca247d827593c))
* **adapter:** corrections are made to the adapter ([afa6771](https://github.com/leifermendez/bot-whatsapp/commit/afa677190392d48715930ebe2b1e15c7619d730f))
* **bot:** :zap: added delay promises ([73caf09](https://github.com/leifermendez/bot-whatsapp/commit/73caf090ba9013132e5dcb7761a10939dc9ac300))
* **bot:** :zap: fix sensitive case ([24ac9fb](https://github.com/leifermendez/bot-whatsapp/commit/24ac9fbf48f80eeb521a36bc938af3a70dd82303))
* **bot:** :zap: flow improvement + add utils ([a7b19d9](https://github.com/leifermendez/bot-whatsapp/commit/a7b19d9bff5ea66ff888555c3df37ae0e20b612a))
* **bot:** update ([49698bf](https://github.com/leifermendez/bot-whatsapp/commit/49698bfda9d2a53f7b1a7e1724a796698601fbaa))
* **ci:** :zap: balance version ([ec46cfd](https://github.com/leifermendez/bot-whatsapp/commit/ec46cfdd657c08c8e90261613f00cfc080f1e1d6))
* **ci:** :zap: github action ([b827a0a](https://github.com/leifermendez/bot-whatsapp/commit/b827a0ab225b89bb8117c82628db0679c09b4102))
* **ci:** :zap: github action ([4142ca4](https://github.com/leifermendez/bot-whatsapp/commit/4142ca4fd552e7005f3b1397a76b90a2e574d19d))
* **ci:** :zap: github action ([091544a](https://github.com/leifermendez/bot-whatsapp/commit/091544ac3fac0c16925e856e1aec64bcad0ecf6d))
* **ci:** :zap: github action ([2ce342a](https://github.com/leifermendez/bot-whatsapp/commit/2ce342a0cb15019d5084ca06dc30e342b030ea10))
* **ci:** :zap: github action ([7817793](https://github.com/leifermendez/bot-whatsapp/commit/781779328f93ef8b0e6e0f85c6cd05ae782112fb))
* **ci:** :zap: github action ([dfced8c](https://github.com/leifermendez/bot-whatsapp/commit/dfced8c594e9175c81e837af359631ba055b7e1a))
* **ci:** :zap: github action ([aaa4ce8](https://github.com/leifermendez/bot-whatsapp/commit/aaa4ce837229fd51e274de3d91e1d9d615ac69fd))
* **ci:** :zap: github action ([9ddf144](https://github.com/leifermendez/bot-whatsapp/commit/9ddf144244cd6877e7d26f576387814459f2befb))
* **ci:** :zap: github action ([b465de5](https://github.com/leifermendez/bot-whatsapp/commit/b465de55a0e511213d1a7760a74efa102172c85e))
* **ci:** :zap: github action ([cf1dc6f](https://github.com/leifermendez/bot-whatsapp/commit/cf1dc6fac810545e5a2b63f31f71322f37329e38))
* **ci:** :zap: github action ([8d897f8](https://github.com/leifermendez/bot-whatsapp/commit/8d897f824e27a55ca011163092a813a7e8f426af))
* **ci:** ci ([f55cfae](https://github.com/leifermendez/bot-whatsapp/commit/f55cfae6e4ccc1df949212999406680020d27f9c))
* **ci:** ci ([671c5b3](https://github.com/leifermendez/bot-whatsapp/commit/671c5b37f33360e8cb754625b8dd6e83bce9014d))
* **cli:** :bug: path ([32212fb](https://github.com/leifermendez/bot-whatsapp/commit/32212fb52d206bf6f8d753a86d9ce40aa0db2a5d))
* **cli:** :fire: create script - templates ([2319db3](https://github.com/leifermendez/bot-whatsapp/commit/2319db3009501fe57ae21e60ad286eb68c46f4fd))
* **cli:** :fire: create script - templates ([9cb98b5](https://github.com/leifermendez/bot-whatsapp/commit/9cb98b5e73fca3c3f5e70a8497badc31e494b943))
* **cli:** :fire: create script - templates ([2999e0e](https://github.com/leifermendez/bot-whatsapp/commit/2999e0e753f31a8b9e6d7c117e78cdb5656e203a))
* **cli:** :fire: create script - templates ([af716b7](https://github.com/leifermendez/bot-whatsapp/commit/af716b75372899877a81b528b58278376166d0ad))
* **cli:** :fire: create script - templates ([c6999c8](https://github.com/leifermendez/bot-whatsapp/commit/c6999c84931083a87b5717db58003be68244707e))
* **cli:** :fire: create script - templates ([d4b49a9](https://github.com/leifermendez/bot-whatsapp/commit/d4b49a9bd7085070f0c5964d2903f10b71bde0b3))
* **cli:** :fire: create script - templates ([eebc3c9](https://github.com/leifermendez/bot-whatsapp/commit/eebc3c980638d88f11a0d93b8344f3ff345c7ee5))
* **cli:** :zap: clean eslinter ([bfb69d9](https://github.com/leifermendez/bot-whatsapp/commit/bfb69d9a9574a757ae02748b6c5f5afa3eac68e6))
* **cli:** :zap: clean eslinter ([15f6972](https://github.com/leifermendez/bot-whatsapp/commit/15f697225775a0f0e0a440cd980f7fb8f51a1056))
* **cli:** :zap: create-starter ([d3b8310](https://github.com/leifermendez/bot-whatsapp/commit/d3b8310180d2ad813733b1d18f2c32d7d947740a))
* **cli:** :zap: update cli copy ([7797c2b](https://github.com/leifermendez/bot-whatsapp/commit/7797c2b46133697e2a591adab2b67e66b34a1cfe))
* **fix:** fix ([6483545](https://github.com/leifermendez/bot-whatsapp/commit/648354500b123f20044f5ac2e8a26b15f16d1b8d))
* **fix:** fix ([28c0480](https://github.com/leifermendez/bot-whatsapp/commit/28c0480b8bfa6b24394095f57c36ef89c9aeb566))
* **linter:** update linter and commitlint ([70a94ab](https://github.com/leifermendez/bot-whatsapp/commit/70a94ab2c6f8e4122780c77bc3a621944883e621))
* pre-copy fix ([08e2552](https://github.com/leifermendez/bot-whatsapp/commit/08e2552907c48cfeaac843457a18bf2032e6f8aa))
* pre-copy fix ([6617107](https://github.com/leifermendez/bot-whatsapp/commit/6617107ab824215c449e26eae6c2bb327ecfc092))
* **starter:** pre-copy fix ([929e74c](https://github.com/leifermendez/bot-whatsapp/commit/929e74c84b667ec13cb5490b3b951cb8df15ebd1))
* (💍) Is justa test! ([37d04e9](https://github.com/leifermendez/bot-whatsapp/commit/37d04e9e89d3f01fdc367654ba60fb11ab2614c4))
### [0.0.3](https://github.com/leifermendez/bot-whatsapp/compare/v0.2.0...v0.0.3) (2022-12-12)
## 0.2.0 (2022-12-12)
### ⚠ BREAKING CHANGES
* 🧨 NO
### Features
* (🎸) add onClick prop to component ([4ae3898](https://github.com/leifermendez/bot-whatsapp/commit/4ae389846d38c133f6bb2129ae373eed39d9d08d))
* **adapter:** added adapter mysql ([717a7dc](https://github.com/leifermendez/bot-whatsapp/commit/717a7dc95fbc107ec6f55387aff606c47144baa4))
* **adapter:** implementation of json file adapter ([5e1a373](https://github.com/leifermendez/bot-whatsapp/commit/5e1a3737303c843095984f6357564ea18458362f))
* **adapter:** mysql adapter ([8d73c86](https://github.com/leifermendez/bot-whatsapp/commit/8d73c86946d07aa80e5b375b62b84a88b2892e03))
* **adapter:** sql is added to create the table ([4b7de0f](https://github.com/leifermendez/bot-whatsapp/commit/4b7de0f6901524fa2c09271c3a99c364e6b3c260))
* **bot:** :fire: improvement provider handler ([4154cc2](https://github.com/leifermendez/bot-whatsapp/commit/4154cc223091a46d3203d3a378cd42f61749a5fa))
* **bot:** :zap: add send image function ([ce8a96b](https://github.com/leifermendez/bot-whatsapp/commit/ce8a96b958ff814c65d8fb4dbd5eaed5cc83a1ed))
* **ci:** :art: add releases ([b115dc3](https://github.com/leifermendez/bot-whatsapp/commit/b115dc3654996f049837bfb6b5d039a2313df0ad))
* **ci:** :art: relases script ([2e906bc](https://github.com/leifermendez/bot-whatsapp/commit/2e906bce79f7d854d437334e1d0c2cd270b0bbc6))
* **ci:** update ci ([e5a9db7](https://github.com/leifermendez/bot-whatsapp/commit/e5a9db7e12340c4f5baa66e8b20585b63daa3bcf))
* **cli:** create-starter ([3977987](https://github.com/leifermendez/bot-whatsapp/commit/397798790ef5857ca758b0df8384c6a4bfacc181))
* **provider:** :fire: add twilii (weoking) ([4350dff](https://github.com/leifermendez/bot-whatsapp/commit/4350dff22a7de69ba6d35ecbdd67e59b810bd46f))
* **provider:** added twilio provider ([8dd3be9](https://github.com/leifermendez/bot-whatsapp/commit/8dd3be909b36717f6b54e141a5f48d2722d4855c))
* **release:** added ([1988948](https://github.com/leifermendez/bot-whatsapp/commit/1988948c30d922beb7b83faab96d1d59cf7f5f90))
* **release:** added ([f4ad704](https://github.com/leifermendez/bot-whatsapp/commit/f4ad7040abf619635480c30babd6f1159c7af85a))
### Bug Fixes
* **adapter:** conflict resolution ([4b307ef](https://github.com/leifermendez/bot-whatsapp/commit/4b307efe79c738a5c4e04ff1c07ca247d827593c))
* **adapter:** corrections are made to the adapter ([afa6771](https://github.com/leifermendez/bot-whatsapp/commit/afa677190392d48715930ebe2b1e15c7619d730f))
* **bot:** :zap: added delay promises ([73caf09](https://github.com/leifermendez/bot-whatsapp/commit/73caf090ba9013132e5dcb7761a10939dc9ac300))
* **bot:** :zap: fix sensitive case ([24ac9fb](https://github.com/leifermendez/bot-whatsapp/commit/24ac9fbf48f80eeb521a36bc938af3a70dd82303))
* **bot:** :zap: flow improvement + add utils ([a7b19d9](https://github.com/leifermendez/bot-whatsapp/commit/a7b19d9bff5ea66ff888555c3df37ae0e20b612a))
* **bot:** update ([49698bf](https://github.com/leifermendez/bot-whatsapp/commit/49698bfda9d2a53f7b1a7e1724a796698601fbaa))
* **ci:** :zap: balance version ([ec46cfd](https://github.com/leifermendez/bot-whatsapp/commit/ec46cfdd657c08c8e90261613f00cfc080f1e1d6))
* **ci:** :zap: github action ([b827a0a](https://github.com/leifermendez/bot-whatsapp/commit/b827a0ab225b89bb8117c82628db0679c09b4102))
* **ci:** :zap: github action ([4142ca4](https://github.com/leifermendez/bot-whatsapp/commit/4142ca4fd552e7005f3b1397a76b90a2e574d19d))
* **ci:** :zap: github action ([091544a](https://github.com/leifermendez/bot-whatsapp/commit/091544ac3fac0c16925e856e1aec64bcad0ecf6d))
* **ci:** :zap: github action ([2ce342a](https://github.com/leifermendez/bot-whatsapp/commit/2ce342a0cb15019d5084ca06dc30e342b030ea10))
* **ci:** :zap: github action ([7817793](https://github.com/leifermendez/bot-whatsapp/commit/781779328f93ef8b0e6e0f85c6cd05ae782112fb))
* **ci:** :zap: github action ([dfced8c](https://github.com/leifermendez/bot-whatsapp/commit/dfced8c594e9175c81e837af359631ba055b7e1a))
* **ci:** :zap: github action ([aaa4ce8](https://github.com/leifermendez/bot-whatsapp/commit/aaa4ce837229fd51e274de3d91e1d9d615ac69fd))
* **ci:** :zap: github action ([9ddf144](https://github.com/leifermendez/bot-whatsapp/commit/9ddf144244cd6877e7d26f576387814459f2befb))
* **ci:** :zap: github action ([b465de5](https://github.com/leifermendez/bot-whatsapp/commit/b465de55a0e511213d1a7760a74efa102172c85e))
* **ci:** :zap: github action ([cf1dc6f](https://github.com/leifermendez/bot-whatsapp/commit/cf1dc6fac810545e5a2b63f31f71322f37329e38))
* **ci:** :zap: github action ([8d897f8](https://github.com/leifermendez/bot-whatsapp/commit/8d897f824e27a55ca011163092a813a7e8f426af))
* **ci:** ci ([f55cfae](https://github.com/leifermendez/bot-whatsapp/commit/f55cfae6e4ccc1df949212999406680020d27f9c))
* **ci:** ci ([671c5b3](https://github.com/leifermendez/bot-whatsapp/commit/671c5b37f33360e8cb754625b8dd6e83bce9014d))
* **cli:** :bug: path ([32212fb](https://github.com/leifermendez/bot-whatsapp/commit/32212fb52d206bf6f8d753a86d9ce40aa0db2a5d))
* **cli:** :fire: create script - templates ([2319db3](https://github.com/leifermendez/bot-whatsapp/commit/2319db3009501fe57ae21e60ad286eb68c46f4fd))
* **cli:** :fire: create script - templates ([9cb98b5](https://github.com/leifermendez/bot-whatsapp/commit/9cb98b5e73fca3c3f5e70a8497badc31e494b943))
* **cli:** :fire: create script - templates ([2999e0e](https://github.com/leifermendez/bot-whatsapp/commit/2999e0e753f31a8b9e6d7c117e78cdb5656e203a))
* **cli:** :fire: create script - templates ([af716b7](https://github.com/leifermendez/bot-whatsapp/commit/af716b75372899877a81b528b58278376166d0ad))
* **cli:** :fire: create script - templates ([c6999c8](https://github.com/leifermendez/bot-whatsapp/commit/c6999c84931083a87b5717db58003be68244707e))
* **cli:** :fire: create script - templates ([d4b49a9](https://github.com/leifermendez/bot-whatsapp/commit/d4b49a9bd7085070f0c5964d2903f10b71bde0b3))
* **cli:** :fire: create script - templates ([eebc3c9](https://github.com/leifermendez/bot-whatsapp/commit/eebc3c980638d88f11a0d93b8344f3ff345c7ee5))
* **cli:** :zap: clean eslinter ([bfb69d9](https://github.com/leifermendez/bot-whatsapp/commit/bfb69d9a9574a757ae02748b6c5f5afa3eac68e6))
* **cli:** :zap: clean eslinter ([15f6972](https://github.com/leifermendez/bot-whatsapp/commit/15f697225775a0f0e0a440cd980f7fb8f51a1056))
* **cli:** :zap: create-starter ([d3b8310](https://github.com/leifermendez/bot-whatsapp/commit/d3b8310180d2ad813733b1d18f2c32d7d947740a))
* **cli:** :zap: update cli copy ([7797c2b](https://github.com/leifermendez/bot-whatsapp/commit/7797c2b46133697e2a591adab2b67e66b34a1cfe))
* **fix:** fix ([6483545](https://github.com/leifermendez/bot-whatsapp/commit/648354500b123f20044f5ac2e8a26b15f16d1b8d))
* **fix:** fix ([28c0480](https://github.com/leifermendez/bot-whatsapp/commit/28c0480b8bfa6b24394095f57c36ef89c9aeb566))
* **linter:** update linter and commitlint ([70a94ab](https://github.com/leifermendez/bot-whatsapp/commit/70a94ab2c6f8e4122780c77bc3a621944883e621))
* pre-copy fix ([08e2552](https://github.com/leifermendez/bot-whatsapp/commit/08e2552907c48cfeaac843457a18bf2032e6f8aa))
* pre-copy fix ([6617107](https://github.com/leifermendez/bot-whatsapp/commit/6617107ab824215c449e26eae6c2bb327ecfc092))
* **starter:** pre-copy fix ([929e74c](https://github.com/leifermendez/bot-whatsapp/commit/929e74c84b667ec13cb5490b3b951cb8df15ebd1))
* (💍) Is justa test! ([37d04e9](https://github.com/leifermendez/bot-whatsapp/commit/37d04e9e89d3f01fdc367654ba60fb11ab2614c4))
## 0.2.0-alpha.0 (2022-12-01)
### ⚠ BREAKING CHANGES
* 🧨 NO
### Features
* (🎸) add onClick prop to component ([4ae3898](https://github.com/leifermendez/bot-whatsapp/commit/4ae389846d38c133f6bb2129ae373eed39d9d08d))
### Bug Fixes
* **ci:** ci ([f55cfae](https://github.com/leifermendez/bot-whatsapp/commit/f55cfae6e4ccc1df949212999406680020d27f9c))
* **ci:** ci ([671c5b3](https://github.com/leifermendez/bot-whatsapp/commit/671c5b37f33360e8cb754625b8dd6e83bce9014d))
* **linter:** update linter and commitlint ([70a94ab](https://github.com/leifermendez/bot-whatsapp/commit/70a94ab2c6f8e4122780c77bc3a621944883e621))
* (💍) Is justa test! ([37d04e9](https://github.com/leifermendez/bot-whatsapp/commit/37d04e9e89d3f01fdc367654ba60fb11ab2614c4))
## 0.1.0 (2022-11-29)
### ⚠ BREAKING CHANGES
* 🧨 NO
### Features
* (🎸) add onClick prop to component ([4ae3898](https://github.com/leifermendez/bot-whatsapp/commit/4ae389846d38c133f6bb2129ae373eed39d9d08d))
### Bug Fixes
* **ci:** ci ([f55cfae](https://github.com/leifermendez/bot-whatsapp/commit/f55cfae6e4ccc1df949212999406680020d27f9c))
* **ci:** ci ([671c5b3](https://github.com/leifermendez/bot-whatsapp/commit/671c5b37f33360e8cb754625b8dd6e83bce9014d))
* (💍) Is justa test! ([37d04e9](https://github.com/leifermendez/bot-whatsapp/commit/37d04e9e89d3f01fdc367654ba60fb11ab2614c4))
#### Actualización 14 Ene 2022
- npm update
- remove ora and chalk
- add env
- add mysql
- add dialogflow
- add scan qr from webpage
- update route with middleware
- fix send message to story
- external download
- easy deploy heroku
- add support for ubuntu/linux
https://stackoverflow.com/questions/51855169/dialogflow-403-iam-permission-dialogflow-sessions-detectintent

128
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
leifer.contacto@gmail.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

103
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,103 @@
# 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).
También es bien recibido los aportes económicos que se utilizaran para diferentes fines __[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.
### 🤔 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)
- ¿Canales de comunicación?: [Discord](https://link.codigoencasa.com/DISCORD)
-----
![](https://i.giphy.com/media/ntMt6TvalpstTIx7Ak/giphy.webp)
__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.
### 🚀 Iniciando
__Clonar repo rama dev__
```
git clone --branch dev https://github.com/codigoencasa/bot-whatsapp
```
__Instalar dependencias__
```
cd bot-whatsapp
yarn 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.
```
yarn build
```
__Example-app__
Se ejecuta el CLI (Command Line Interface) para ayudarte a crear un app-bot de ejemplo.
```
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, ejemplo: `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 creado ejemplo: `base-bailey-mysql`
```
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, 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'
```
<!-- __Seguir instrucciones__
En la consola encontraras los pasos a seguir -->
![](https://i.imgur.com/dC6lEwy.png)
> __NOTA:__ [Eres libre de aportar informacion a este documento o arreglar ortografia 🤣](
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)

88
EXAMPLE.md Normal file
View File

@@ -0,0 +1,88 @@
```js
const {
createBot,
createProvider,
createFlow,
addKeyword,
toSerialize,
} = require('@bot-whatsapp/bot')
const WebWhatsappProvider = require('@bot-whatsapp/provider/web-whatsapp')
const MongoAdapter = require('@bot-whatsapp/database/mongo')
const flowArepa1 = toSerialize(
addKeyword(['1', 'AREPA14'])
.addAnswer('Esta es una arepa calificada ⭐⭐⭐⭐⭐')
.addAnswer(['Ingredientes:', '10g Aguacate', '20g Huevo'].join('\n'))
.toJson()
)
const flowArepa2_2 = toSerialize(
addKeyword('SI').addAnswer('te pongo huevo de mentira!').toJson()
)
const flowArepa2 = toSerialize(
addKeyword(['arepa2'])
.addAnswer('Esta es una arepa calificada ⭐⭐⭐⭐')
.addAnswer(
['Ingredientes:', '10g perico', '20g huevo', '10g queso'].join('\n')
)
.addAnswer(
'Eres Vegano SI o NO',
{
capture: true,
},
null,
[...flowArepa2_2]
)
.toJson()
)
const flowArepa3 = toSerialize(
addKeyword(['arepa3'])
.addAnswer('Esta es una arepa calificada LAMEJOR ⭐⭐⭐⭐⭐')
.toJson()
)
//////////////--MENU--PRINCIPAL--//////////////////
const flujoMenuArepa = addKeyword(['hola', 'ola', 'buenos'])
.addAnswer('Bienvenido "Arepera Aji Picante 🤯🚀😅"')
.addAnswer(
[
'El menú de hoy es el siguiente:',
'👉 [1 -AREPA14] - Arepa tradicional con Aguacate y Huevo',
'👉 [arepa2] - Arepa rellena de perico y huevo con un toque de queso',
'👉 [arepa3] - Rellena de Jamon y Queso',
].join('\n')
)
.addAnswer(
'Esperando respuesta...',
{
capture: true,
},
() => {
console.log('Enviar un mail!')
},
[...flowArepa1, ...flowArepa2, ...flowArepa3]
)
.addAnswer('Gracias!')
const main = async () => {
const adapterDB = new MongoAdapter()
const adapterFlow = createFlow([flujoMenuArepa])
const adapterProvider = createProvider(WebWhatsappProvider)
createBot({
flow: adapterFlow,
provider: adapterProvider,
database: adapterDB,
})
}
main()
```

2
GLOSSARY.md Normal file
View File

@@ -0,0 +1,2 @@
CTX: Es el objeto que representa un mensaje, con opciones, id, ref
messageInComming: Objeto entrante del provider {body, from,to,...}

21
LICENSE.md Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 Leifer Mendez
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

214
MIGRATION.md Normal file
View File

@@ -0,0 +1,214 @@
# Migración
#### Versión (legacy)
En la ***versión (legacy)*** se implementaban los flujos de esta manera, en dos archivos independientes.
> __`initial.json`__ para establecer las palabras claves y el flujo a responder, por otro lado tambien se necesitaba implementar
> __`response.json`__ donde se escriben los mensajes a responder.
```json
//initial.json
[
{
"keywords": [
"hola",
"ola",
"alo"
],
"key": "hola"
},
{
"keywords": ["productos", "info"],
"key": "productos"
},
{
"keywords": ["adios", "bye"],
"key": "adios"
},
{
"keywords": ["imagen", "foto"],
"key": "catalogo"
}
]
```
```json
//response.json
{
"hola":{
"replyMessage":[
"Gracias a ti! \n"
],
"media":null,
"trigger":null
},
"adios":{
"replyMessage":[
"Que te vaya bien!!"
],
},
"productos":{
"replyMessage":[
"Más productos aquí"
],
"trigger":null,
"actions":{
"title":"¿Que te interesa ver?",
"message":"Abajo unos botons",
"footer":"",
"buttons":[
{"body":"Telefonos"},
{"body":"Computadoras"},
{"body":"Otros"}
]
}
},
"catalogo":{
"replyMessage":[
"Te envio una imagen"
],
"media":"https://media2.giphy.com/media/VQJu0IeULuAmCwf5SL/giphy.gif",
"trigger":null,
},
}
```
#### Versión 2 (0.2.X)
En esta versión es mucho más sencillo, abajo encontraras un ejemplo del mismo flujo anteriormente mostrado.
```js
//app.js
const {
createBot,
createProvider,
createFlow,
addKeyword,
addChild,
} = require('@bot-whatsapp/bot')
const BaileysProvider = require('@bot-whatsapp/provider/baileys')
const MockAdapter = require('@bot-whatsapp/database/mock')
/**
* Declarando flujos principales.
*/
const flowHola = addKeyword(['hola', 'ola', 'alo'])
.addAnswer('Bienvenido a tu tienda online!')
const flowAdios = addKeyword(['adios', 'bye'])
.addAnswer('Que te vaya bien!!')
.addAnswer('Hasta luego!')
const flowProductos = addKeyword(['productos', 'info'])
.addAnswer('Te envio una imagen', {
buttons:[
{body:"Telefonos"},
{body:"Computadoras"},
{body:"Otros"}
]
})
const flowCatalogo = addKeyword(['imagen', 'foto'])
.addAnswer('Te envio una imagen', {media:'https://media2.giphy.com/media/VQJu0IeULuAmCwf5SL/giphy.gif'})
const main = async () => {
const adapterDB = new MockAdapter()
const adapterFlow = createFlow([flowHola, flowAdios, flowProductos, flowCatalogo])
const adapterProvider = createProvider(BaileysProvider)
createBot({
flow: adapterFlow,
provider: adapterProvider,
database: adapterDB,
})
}
```
#### Flujos hijos
A continuación se muestra un ejemplo de flujos hijos, estos nos sirven para crear flujos que solo se disparan cuando el flujo anterior es el especificado, ejemplo:
> Menu Principal (Escoge zapatos o bolsos)
> - SubMenu 1 (Elegiste bolsos, ahora escoge piel o tela)
> - Submenu 1.1 (piel)
> - Submenu 2 (Elegiste zapatos, ahora escoge piel o tela)
> - Submenu 2.1 (piel)
El __submenu 1__ solo se va a disparar cuando el flujo anterior sea el __principal__, e igualmente el __submenu 1.1__, solo cuando el flujo anterior sea el __submenu 1__, ejemplo:
```js
/**
* 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')
const flowZapatos2 = addKeyword(['zapatos2', '2'])
.addAnswer('🤯 repito que tengo *MUCHOS* zapatos.')
.addAnswer('y algunas otras cosas.')
const flowZapatos = addKeyword(['1', 'zapatos', 'ZAPATOS'])
.addAnswer('🤯 Veo que elegiste zapatos')
.addAnswer('Tengo muchos zapatos...bla bla')
.addAnswer(
['Manda:', '*(2) 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(['2', 'bolsos', 'BOLSOS'])
.addAnswer('🙌 Veo que elegiste bolsos')
.addAnswer('Tengo muchos bolsos...bla bla')
.addAnswer(
['Manda:', '*(2) 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', '¿Como puedo ayudarte?'])
.addAnswer(['Tengo:', 'Zapatos', 'Bolsos', 'etc ...'])
.addAnswer(
['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)
},
[...addChild(flowBolsos), ...addChild(flowZapatos)]
)
```
> Forma 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)

230
README.md
View File

@@ -1,112 +1,118 @@
## Chatbot Whatsapp (OpenSource)
#### Actualizado Enero 2022
El siguiente proyecto se realizó con fines educativos para el canal de [Youtube (Leifer Mendez)](https://www.youtube.com/channel/UCgrIGp5QAnC0J8LfNJxDRDw?sub_confirmation=1) donde aprendemos a crear y implementar un chatbot increíble usando [node.js](https://codigoencasa.com/tag/nodejs/) además le agregamos inteligencia artificial gracias al servicio de __dialogflow__.
[![Video](https://i.giphy.com/media/OBDi3CXC83WkNeLEZP/giphy.webp)](https://youtu.be/5lEMCeWEJ8o)
#### Acceso rápido
> Si tienes una cuenta en __heroku__ puedes desplegar este proyecto con (1 click)
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/leifermendez/bot-ventas)
> Comprarme un cafe!
[![Comprar](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/leifermendez)
#### Actualización
| Feature | Status |
| ------------- | ------------- |
| Dialogflow | ✅ |
| MySQL | ✅ |
| JSON File | ✅ |
| QR Scan (route) | ✅ |
| Easy deploy heroku | ✅ |
| Buttons | ✅ |
| Add support ubuntu/linux | ✅ |
### (Nuevo) Botones
[![btn](https://i.imgur.com/W7oYlSu.png)](https://youtu.be/5lEMCeWEJ8o)
## Requisitos
- node v14 o superior
- VSCode (Editor de codigo) [Descargar](https://code.visualstudio.com/download)
- MySql (opcional) solo aplica si vas a usar el modo 'mysql' [sql-bot.sql migración](https://github.com/leifermendez/bot-whatsapp/blob/main/sql-bot.sql)
- Dialogflow (opcional) solo aplica si vas a usar el modo 'dialogflow'
## Instruciones
__Descargar o Clonar repositorio__
![](https://i.imgur.com/dSpUbFz.png)
__Usas ¿Ubuntu / Linux?__
> Asegurate de instalar los siguientes paquetes
```
sudo apt-get install -y libgbm-dev
sudo apt install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
```
__Instalar dependencias (npm install)__
> Ubicate en le directorio que descargaste y via consola o terminal ejecuta el siguiente comando
`npm install`
![](https://i.imgur.com/BJuMjGR.png)
__Configurar .env__
> Con el editor de texto crea un archivo `.env` el cual debes de guiarte del archivo `.env.example`
[Ver video explicando](https://youtu.be/5lEMCeWEJ8o?t=381)
```
######DATABASE: none, mysql, dialogflow
DEFAULT_MESSAGE=true
SAVE_MEDIA=true
PORT=3000
DATABASE=none
LANGUAGE=es
SQL_HOST=
SQL_USER=
SQL_PASS=
SQL_DATABASE=
```
![](https://i.imgur.com/9poNnW0.png)
__Ejecutar el script__
> Ubicate en le directorio que descargaste y via consola o terminal ejecuta el siguiente comando
`npm run start`
![](https://i.imgur.com/eMkBkuJ.png)
__Whatsapp en tu celular__
> Ahora abre la aplicación de Whatsapp en tu dispositivo y escanea el código QR
<img src="https://i.imgur.com/RSbPtat.png" width="500" />
Visitar la pagina
`http://localhost:3000/qr`
![](https://i.imgur.com/Q3JEDlP.png)
__Listo 😎__
> Cuando sale este mensaje tu BOT está __listo__ para trabajar!
![](https://i.imgur.com/eoJ4Ruk.png)
# ¿Quieres ver como se creó? 🤖
- [Ver Video 1](https://www.youtube.com/watch?v=A_Xu0OR_HkE)
- [¿Como instalarlo? (Actulización)](https://youtu.be/5lEMCeWEJ8o)
## ¿Como usarlo el chatbot de whatsapp?
> Escribe un mensaje al whatsapp que vinculaste con tu BOT
![](https://i.imgur.com/OSUgljQ.png)
> Ahora deberías obtener un arespuesta por parte del BOT como la siguiente, ademas de esto tambien se crea un archivo excel
con el historial de conversación con el número de tu cliente
![](https://i.imgur.com/lrMLgR8.png)
![](https://i.imgur.com/UYcoUSV.png)
## Preguntar al BOT
> Puedes interactuar con el bot ejemplo escribele __hola__ y el bot debe responderte!
![](https://i.imgur.com/cNAS51I.png)
# Chatbot Library
![](https://img.shields.io/npm/v/@bot-whatsapp/bot?color=%2300c200&label=%40bot-whatsapp)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![BotWhatsapp Releases(Prod)](https://github.com/codigoencasa/bot-whatsapp/actions/workflows/releases.yml/badge.svg)](https://github.com/codigoencasa/bot-whatsapp/actions/workflows/releases.yml)
<p align="center">
<img width="300" src="https://i.imgur.com/Oauef6t.png">
</p>
**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/)**
## Comenzar
```
npm create bot-whatsapp@latest
```
Entiende más a fondo sus funcionalidades explicadas en nuestra documentación.
- Instalacion
- Base de datos
- Proveedores
## Recursos
- [📄 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)
- [🎥 Youtube](https://www.youtube.com/watch?v=5lEMCeWEJ8o&list=PL_WGMLcL4jzWPhdhcUyhbFU6bC0oJd2BR)
## Comunidad
<!-- readme: collaborators,contributors -start -->
<table>
<tr>
<td align="center">
<a href="https://github.com/leifermendez">
<img src="https://avatars.githubusercontent.com/u/15802366?v=4" width="50;" alt="leifermendez"/>
<br />
<sub><b>Leifer Mendez</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/aurik3">
<img src="https://avatars.githubusercontent.com/u/37228512?v=4" width="50;" alt="aurik3"/>
<br />
<sub><b>Null</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/vicente1992">
<img src="https://avatars.githubusercontent.com/u/57806030?v=4" width="50;" alt="vicente1992"/>
<br />
<sub><b>Manuel Vicente Ortiz</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/leifermendezfroged">
<img src="https://avatars.githubusercontent.com/u/97020486?v=4" width="50;" alt="leifermendezfroged"/>
<br />
<sub><b>Leifer Mendez</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/HKong31">
<img src="https://avatars.githubusercontent.com/u/113340082?v=4" width="50;" alt="HKong31"/>
<br />
<sub><b>HLKong</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/jzvi12">
<img src="https://avatars.githubusercontent.com/u/10729787?v=4" width="50;" alt="jzvi12"/>
<br />
<sub><b>Zvi</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/Gonzalito87">
<img src="https://avatars.githubusercontent.com/u/100331586?v=4" width="50;" alt="Gonzalito87"/>
<br />
<sub><b>Null</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/tonyvazgar">
<img src="https://avatars.githubusercontent.com/u/21047090?v=4" width="50;" alt="tonyvazgar"/>
<br />
<sub><b>Luis Antonio Vázquez García</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/ulisesvina">
<img src="https://avatars.githubusercontent.com/u/20508563?v=4" width="50;" alt="ulisesvina"/>
<br />
<sub><b>Ulises Viña</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/rrruuuyyy">
<img src="https://avatars.githubusercontent.com/u/33061671?v=4" width="50;" alt="rrruuuyyy"/>
<br />
<sub><b>Rodrigo Mendoza Cabrera</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/yond1994">
<img src="https://avatars.githubusercontent.com/u/47557263?v=4" width="50;" alt="yond1994"/>
<br />
<sub><b>Yonathan Suarez</b></sub>
</a>
</td></tr>
</table>
<!-- readme: collaborators,contributors -end -->

21
SECURITY.md Normal file
View File

@@ -0,0 +1,21 @@
# Security Policy
## Supported Versions
Use this section to tell people about which versions of your project are
currently being supported with security updates.
| Version | Supported |
| ------- | ------------------ |
| 5.1.x | :white_check_mark: |
| 5.0.x | :x: |
| 4.0.x | :white_check_mark: |
| < 4.0 | :x: |
## Reporting a Vulnerability
Use this section to tell people how to report a vulnerability.
Tell them where to go, how often they can expect to get an update on a
reported vulnerability, what to expect if the vulnerability is accepted or
declined, etc.

51
TODO.md Normal file
View File

@@ -0,0 +1,51 @@
### Genral
- [X] __(doc)__ Video de como colaborar PR
- [ ] __(doc)__ Video implementación de test y cobertura
- [ ] __(doc)__ Video explicacion de github action
- [ ] Crear packages list externas
### @bot-whatsapp/bot
- [X] agregar export package
- [X] Posibilidad de en el capture meter todo un nuevo CTX de FLOW .addAnswer('Marca la opcion',{capture:true, join:CTX})
- [X] .addKeyword('1') no funciona con 1 caracter
- [X] sensitivy viene activado por defecto
- [X] fallback respuesta en hijo: Se puede colocar en option el ref de la answer fallback
- [X] Cuando Envian Sticket devuelve mensaje raro
- [x] addAnswer agregar delay
- [ ] colocar mensaje esperando conectando whatsapp (provider)
- [ ] createDatabase validar implementacion de funciones
- [ ] limitar caracteres de mensajes 4000
- [X] cuando envias numeros (5 o 1) se dispara el flujo
### @bot-whatsapp/database
- [X] agregar export package
- [X] __(doc):__ Video para explicar como implementar nuevos database
- [X] Mongo adapter
- [X] MySQL adapter
- [ ] JsonFile adapter
### @bot-whatsapp/provider
- [X] agregar export package
- [ ] __(doc):__ Video para explicar como implementar nuevos providers
- [X] WhatsappWeb provider enviar imagenes
- [X] WhatsappWeb provider enviar audio
- [X] WhatsappWeb botones (Tiene truco) github:leifermendez/whatsapp-web.js
- [ ] Twilio adapter
- [ ] Meta adapter
### @bot-whatsapp/cli
- [X] Hacer comando para crear `example-app`
### @bot-whatsapp/create-bot
- [ ]
### Starters
- [X] Base
- [X] Basico
- [ ] Enviando Imagen
- [ ] Enviando Botones
- [ ] Mezclando flujos hijos
### Extra
- [X] Crear CI mantener fork update https://stackoverflow.com/questions/23793062/can-forks-be-synced-automatically-in-github

6
__mocks__/mobile.mock.js Normal file
View File

@@ -0,0 +1,6 @@
const MOCK_MOBILE_WS = {
from: 'XXXXXX',
hasMedia: false,
}
module.exports = { MOCK_MOBILE_WS }

View File

@@ -0,0 +1,21 @@
const ProviderClass = require('../packages/bot/provider/provider.class')
class MockProvider extends ProviderClass {
constructor() {
super()
}
delaySendMessage = (miliseconds, eventName, payload) =>
new Promise((res) =>
setTimeout(() => {
this.emit(eventName, payload)
res
}, miliseconds)
)
sendMessage = async (userId, message) => {
console.log(`Enviando... ${userId}, ${message}`)
return Promise.resolve({ userId, message })
}
}
module.exports = MockProvider

View File

@@ -1,75 +0,0 @@
const dialogflow = require('@google-cloud/dialogflow');
const fs = require('fs')
const nanoid = require('nanoid')
/**
* Debes de tener tu archivo con el nombre "chatbot-account.json" en la raíz del proyecto
*/
let PROJECID;
let CONFIGURATION;
let sessionClient;
const checkFileCredentials = () => {
if(!fs.existsSync(`${__dirname}/../chatbot-account.json`)){
return false
}
const parseCredentials = JSON.parse(fs.readFileSync(`${__dirname}/../chatbot-account.json`));
PROJECID = parseCredentials.project_id;
CONFIGURATION = {
credentials: {
private_key: parseCredentials['private_key'],
client_email: parseCredentials['client_email']
}
}
sessionClient = new dialogflow.SessionsClient(CONFIGURATION);
}
// Create a new session
// Detect intent method
const detectIntent = async (queryText) => {
let media = null;
const sessionId = nanoid.nanoid()
const sessionPath = sessionClient.projectAgentSessionPath(PROJECID, sessionId);
const languageCode = process.env.LANGUAGE
const request = {
session: sessionPath,
queryInput: {
text: {
text: queryText,
languageCode: languageCode,
},
},
};
const responses = await sessionClient.detectIntent(request);
const [singleResponse] = responses;
const { queryResult } = singleResponse
const { intent } = queryResult || { intent: {} }
const parseIntent = intent['displayName'] || null
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['payload']
const parseData = {
replyMessage: queryResult.fulfillmentText,
media,
trigger: null
}
return parseData
}
const getDataIa = (message = '', cb = () => { }) => {
detectIntent(message).then((res) => {
cb(res)
})
}
checkFileCredentials();
module.exports = { getDataIa }

View File

@@ -1,67 +0,0 @@
const { getData, getReply } = require('./mysql')
const { getDataIa } = require('./diaglogflow')
const stepsInitial = require('../flow/initial.json')
const stepsReponse = require('../flow/response.json')
const get = (message) => new Promise((resolve, reject) => {
/**
* Si no estas usando un gesto de base de datos
*/
if (process.env.DATABASE === 'none') {
const { key } = stepsInitial.find(k => k.keywords.includes(message)) || { key: null }
const response = key || null
resolve(response)
}
/**
* Si usas MYSQL
*/
if (process.env.DATABASE === 'mysql') {
getData(message, (dt) => {
resolve(dt)
});
}
})
const reply = (step) => new Promise((resolve, reject) => {
/**
* Si no estas usando un gesto de base de datos
*/
if (process.env.DATABASE === 'none') {
let resData = { replyMessage: '', media: null, trigger: null }
const responseFind = stepsReponse[step] || {};
resData = {
...resData,
...responseFind,
replyMessage:responseFind.replyMessage.join('')}
resolve(resData);
return
}
/**
* Si usas MYSQL
*/
if (process.env.DATABASE === 'mysql') {
let resData = { replyMessage: '', media: null, trigger: null }
getReply(step, (dt) => {
resData = { ...resData, ...dt }
resolve(resData)
});
}
})
const getIA = (message) => new Promise((resolve, reject) => {
/**
* Si usas dialogflow
*/
if (process.env.DATABASE === 'dialogflow') {
let resData = { replyMessage: '', media: null, trigger: null }
getDataIa(message,(dt) => {
resData = { ...resData, ...dt }
resolve(resData)
})
}
})
module.exports = { get, reply, getIA }

View File

@@ -1,28 +0,0 @@
const {connection} = require('../config/mysql')
const DATABASE_NAME = process.env.SQL_DATABASE || 'db_test'
getData = (message = '', callback) => connection.query(
`SELECT * FROM ${DATABASE_NAME}.initial WHERE keywords LIKE '%${message}%' LIMIT 1`,
(error, results
) => {
const [response] = results
const key = response?.option_key || null
callback(key)
});
getReply = (option_key = '', callback) => connection.query(
`SELECT * FROM ${DATABASE_NAME}.response WHERE option_key = '${option_key}' LIMIT 1`,
(error, results
) => {
const [response] = results;
console.log(response)
const value = {
replyMessage:response?.replyMessage || '',
trigger:response?.trigger || '',
media:response?.media || ''
}
callback(value)
});
module.exports = {getData, getReply}

223
app.js
View File

@@ -1,223 +0,0 @@
/**
* ⚡⚡⚡ DECLARAMOS LAS LIBRERIAS y CONSTANTES A USAR! ⚡⚡⚡
*/
require('dotenv').config()
const fs = require('fs');
const express = require('express');
const cors = require('cors')
const qrcode = require('qrcode-terminal');
const { Client } = require('whatsapp-web.js');
const mysqlConnection = require('./config/mysql')
const { middlewareClient } = require('./middleware/client')
const { generateImage, cleanNumber } = require('./controllers/handle')
const { connectionReady, connectionLost } = require('./controllers/connection')
const { saveMedia } = require('./controllers/save')
const { getMessages, responseMessages, bothResponse } = require('./controllers/flows')
const { sendMedia, sendMessage, lastTrigger, sendMessageButton, readChat } = require('./controllers/send')
const app = express();
app.use(cors())
app.use(express.json())
const server = require('http').Server(app)
const io = require('socket.io')(server, {
cors: {
origins: ['http://localhost:4200']
}
})
let socketEvents = {sendQR:() => {} ,sendStatus:() => {}};
io.on('connection', (socket) => {
const CHANNEL = 'main-channel';
socket.join(CHANNEL);
socketEvents = require('./controllers/socket')(socket)
console.log('Se conecto')
})
app.use('/', require('./routes/web'))
const port = process.env.PORT || 3000
const SESSION_FILE_PATH = './session.json';
var client;
var sessionData;
/**
* Escuchamos cuando entre un mensaje
*/
const listenMessage = () => client.on('message', async msg => {
const { from, body, hasMedia } = msg;
// Este bug lo reporto Lucas Aldeco Brescia para evitar que se publiquen estados
if (from === 'status@broadcast') {
return
}
message = body.toLowerCase();
console.log('BODY',message)
const number = cleanNumber(from)
await readChat(number, message)
/**
* Guardamos el archivo multimedia que envia
*/
if (process.env.SAVE_MEDIA && hasMedia) {
const media = await msg.downloadMedia();
saveMedia(media);
}
/**
* Si estas usando dialogflow solo manejamos una funcion todo es IA
*/
if (process.env.DATABASE === 'dialogflow') {
const response = await bothResponse(message);
await sendMessage(client, from, response.replyMessage);
if (response.media) {
sendMedia(client, from, response.media);
}
return
}
/**
* Ver si viene de un paso anterior
* Aqui podemos ir agregando más pasos
* a tu gusto!
*/
const lastStep = await lastTrigger(from) || null;
console.log({ lastStep })
if (lastStep) {
const response = await responseMessages(lastStep)
await sendMessage(client, from, response.replyMessage);
}
/**
* Respondemos al primero paso si encuentra palabras clave
*/
const step = await getMessages(message);
console.log({ step })
if (step) {
const response = await responseMessages(step)
await sendMessage(client, from, response.replyMessage, response.trigger);
if (!response.delay && response.media) {
sendMedia(client, from, response.media);
}
if (response.delay && response.media) {
setTimeout(() => {
sendMedia(client, from, response.media);
}, response.delay)
}
return
}
//Si quieres tener un mensaje por defecto
if (process.env.DEFAULT_MESSAGE === 'true') {
const response = await responseMessages('DEFAULT')
await sendMessage(client, from, response.replyMessage, response.trigger);
/**
* Si quieres enviar botones
*/
if(response.hasOwnProperty('actions')){
const { actions } = response;
await sendMessageButton(client, from, null, actions);
}
return
}
});
/**
* Revisamos si tenemos credenciales guardadas para inciar sessio
* este paso evita volver a escanear el QRCODE
*/
const withSession = () => {
// Si exsite cargamos el archivo con las credenciales
console.log(`Validando session con Whatsapp...`)
sessionData = require(SESSION_FILE_PATH);
client = new Client({
session: sessionData,
puppeteer: {
args: [
'--no-sandbox'
],
}
});
client.on('ready', () => {
connectionReady()
listenMessage()
loadRoutes(client);
socketEvents.sendStatus()
});
client.on('auth_failure', () => connectionLost())
client.initialize();
}
/**
* Generamos un QRCODE para iniciar sesion
*/
const withOutSession = () => {
console.log('No tenemos session guardada');
client = new Client({
puppeteer: {
args: [
'--no-sandbox'
],
}
});
client.on('qr', qr => generateImage(qr, () => {
qrcode.generate(qr, { small: true });
console.log(`Ver QR http://localhost:${port}/qr`)
socketEvents.sendQR(qr)
}))
client.on('ready', (a) => {
connectionReady()
listenMessage()
loadRoutes(client);
// socketEvents.sendStatus(client)
});
client.on('auth_failure', () => connectionLost());
client.on('authenticated', (session) => {
sessionData = session;
fs.writeFile(SESSION_FILE_PATH, JSON.stringify(session), function (err) {
if (err) {
console.log(`Ocurrio un error con el archivo: `, err);
}
});
});
client.initialize();
}
/**
* Cargamos rutas de express
*/
const loadRoutes = (client) => {
app.use('/api/', middlewareClient(client), require('./routes/api'))
}
/**
* Revisamos si existe archivo con credenciales!
*/
(fs.existsSync(SESSION_FILE_PATH)) ? withSession() : withOutSession();
/**
* Verificamos si tienes un gesto de db
*/
if (process.env.DATABASE === 'mysql') {
mysqlConnection.connect()
}
server.listen(port, () => {
console.log(`El server esta listo por el puerto ${port}`);
})

View File

@@ -1,35 +0,0 @@
{
"name": "Chatbot Whatsapp (Leifer Mendez)",
"description": "El siguiente proyecto se realizó con fines educativos para el canal de Youtube (Leifer Mendez) donde aprendemos como usando node.js podemos crear un chatbot increíble que además le agregamos inteligencia artificial gracias al servicio de dialogflow",
"repository": "https://github.com/leifermendez/bot-whatsapp",
"logo": "https://avatars0.githubusercontent.com/u/15802366?s=460&u=77ec7ef359e8ed842aef769693f1675c0ed460fd&v=4",
"keywords": [
"nodejs",
"whatsapp",
"bot",
"chatbot",
"dialogflow"
],
"addons": [
],
"buildpacks": [
{
"url": "heroku/nodejs"
},
{
"url": "https://github.com/jontewks/puppeteer-heroku-buildpack"
}
],
"env": {
"SAVE_MEDIA": "false",
"DATABASE": {
"description": "'none', 'mysql', 'dialogflow' por defecto 'none' Puedes usar alguna de los siguientes opciones. Pero antes debes de saber como funciona y eso lo explico en el video. Puedes obtener más información https://github.com/leifermendez/bot-whatsapp/blob/main/README.md",
"value": "none"
},
"LANGUAGE": "es",
"SQL_HOST":"your_host",
"SQL_USER":"your_user",
"SQL_PASS":"your_password",
"SQL_DATABASE":"your_database"
}
}

91
changelog.config.js Normal file
View File

@@ -0,0 +1,91 @@
module.exports = {
disableEmoji: false,
format: '{type}{scope}: {emoji}{subject}',
list: [
'test',
'feat',
'fix',
'chore',
'docs',
'refactor',
'style',
'ci',
'perf',
],
maxMessageLength: 64,
minMessageLength: 3,
questions: [
'type',
'scope',
'subject',
'body',
'breaking',
'issues',
'lerna',
],
scopes: [],
types: {
chore: {
description: 'Build process or auxiliary tool changes',
emoji: '(🤖)',
value: 'chore',
},
ci: {
description: 'CI related changes',
emoji: '(🎡)',
value: 'ci',
},
docs: {
description: 'Documentation only changes',
emoji: '(✏️)',
value: 'docs',
},
feat: {
description: 'A new feature',
emoji: '(🎸)',
value: 'feat',
},
fix: {
description: 'A bug fix',
emoji: '(🐛)',
value: 'fix',
},
perf: {
description: 'A code change that improves performance',
emoji: '(⚡️)',
value: 'perf',
},
refactor: {
description:
'A code change that neither fixes a bug or adds a feature',
emoji: '(💡)',
value: 'refactor',
},
release: {
description: 'Create a release commit',
emoji: '(🏹)',
value: 'release',
},
style: {
description:
'Markup, white-space, formatting, missing semi-colons...',
emoji: '(💄)',
value: 'style',
},
test: {
description: 'Adding missing tests',
emoji: '(💍)',
value: 'test',
},
messages: {
type: "Select the type of change that you're committing:",
customScope: 'Select the scope this component affects:',
subject:
'Write a short, imperative mood description of the change:\n',
body: 'Provide a longer description of the change:\n ',
breaking: 'List any breaking changes:\n',
footer: 'Issues this commit closes, e.g #123:',
confirmCommit: 'The packages that this commit has affected\n',
},
},
}

View File

@@ -1,13 +0,0 @@
{
"type": "",
"project_id": "",
"private_key_id": "",
"private_key":"",
"client_email": "",
"client_id": "",
"auth_uri": "",
"token_uri": "",
"auth_provider_x509_cert_url": "",
"client_x509_cert_url":""
}

Binary file not shown.

1
commitlint.config.js Normal file
View File

@@ -0,0 +1 @@
module.exports = { extends: ['@commitlint/config-conventional'] }

View File

@@ -0,0 +1,8 @@
{
"banner.output": [
"/** \n",
"* NO TOCAR ESTE ARCHIVO: Es generado automaticamente, si sabes lo que haces adelante ;)\n",
"* de lo contrario mejor ir a la documentacion o al servidor de discord link.codigoencasa.com/DISCORD\n",
"*/"
]
}

View File

@@ -1,18 +0,0 @@
const mysql = require('mysql');
const connection = mysql.createConnection({
host : process.env.SQL_HOST || 'localhost',
user : process.env.SQL_USER || 'me',
password : process.env.SQL_PASS || 'secret',
database : process.env.SQL_DATABASE || 'my_db'
});
const connect = () => connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('Conexion correcta con tu base de datos MySQL')
});
module.exports = {connect, connection}

View File

@@ -1,13 +0,0 @@
const connectionReady = (cb = () =>{}) => {
console.log('Listo para escuchas mensajes')
console.log('Client is ready!');
cb()
}
const connectionLost = (cb = () =>{}) => {
console.log('** Error de autentificacion vuelve a generar el QRCODE (Borrar el archivo session.json) **');
cb()
}
module.exports = {connectionReady, connectionLost}

View File

@@ -1,28 +0,0 @@
const {get, reply, getIA} = require('../adapter')
const {saveExternalFile} = require('./handle')
const getMessages = async (message) => {
const data = await get(message)
return data
}
const responseMessages = async (step) => {
const data = await reply(step)
if(data && data.media){
const file = await saveExternalFile(data.media)
return {...data,...{media:file}}
}
return data
}
const bothResponse = async (message) => {
const data = await getIA(message)
if(data && data.media){
const file = await saveExternalFile(data.media)
return {...data,...{media:file}}
}
return data
}
module.exports = { getMessages, responseMessages, bothResponse }

View File

@@ -1,42 +0,0 @@
const http = require('http'); // or 'https' for https:// URLs
const https = require('https'); // or 'https' for https:// URLs
const fs = require('fs');
const qr = require('qr-image')
const cleanNumber = (number) => {
number = number.replace('@c.us', '');
number = `${number}@c.us`;
return number
}
const saveExternalFile = (url) => new Promise((resolve, reject) => {
const ext = url.split('.').pop()
const checkProtocol = url.split('/').includes('https:');
const handleHttp = checkProtocol ? https : http;
const name = `${Date.now()}.${ext}`;
const file = fs.createWriteStream(`${__dirname}/../mediaSend/${name}`);
console.log(url)
handleHttp.get(url, function(response) {
response.pipe(file);
file.on('finish', function() {
file.close(); // close() is async, call cb after close completes.
resolve(name)
});
file.on('error', function() {
console.log('errro')
file.close(); // close() is async, call cb after close completes.
resolve(null)
});
});
})
const generateImage = (base64, cb = () => {}) => {
let qr_svg = qr.image(base64, { type: 'svg', margin: 4 });
qr_svg.pipe(require('fs').createWriteStream('./mediaSend/qr-code.svg'));
console.log(`⚡ Recuerda que el QR se actualiza cada minuto ⚡'`);
console.log(`⚡ Actualiza F5 el navegador para mantener el mejor QR⚡`);
cb()
}
module.exports = {cleanNumber, saveExternalFile, generateImage}

View File

@@ -1,18 +0,0 @@
const mimeDb = require('mime-db')
const fs = require('fs')
/**
* Guardamos archivos multimedia que nuestro cliente nos envie!
* @param {*} media
*/
const saveMedia = (media) => {
const extensionProcess = mimeDb[media.mimetype]
const ext = extensionProcess.extensions[0]
fs.writeFile(`./media/${Date.now()}.${ext}`, media.data, { encoding: 'base64' }, function (err) {
console.log('** Archivo Media Guardado **');
});
}
module.exports = {saveMedia}

View File

@@ -1,121 +0,0 @@
const ExcelJS = require('exceljs');
const moment = require('moment');
const fs = require('fs');
const { MessageMedia, Buttons } = require('whatsapp-web.js');
const { cleanNumber } = require('./handle')
const { saveMedia } = require('../controllers/save')
/**
* Enviamos archivos multimedia a nuestro cliente
* @param {*} number
* @param {*} fileName
*/
const sendMedia = (client, number, fileName) => {
const dirMedia = `${__dirname}/../mediaSend/${fileName}`;
number = cleanNumber(number)
if (fs.existsSync(dirMedia)) {
const media = MessageMedia.fromFilePath(dirMedia);
client.sendMessage(number, media);
}
}
/**
* Enviamos un mensaje simple (texto) a nuestro cliente
* @param {*} number
*/
const sendMessage = async (client, number = null, text = null, trigger = null) => {
number = cleanNumber(number)
const message = text
client.sendMessage(number, message);
await readChat(number, message, trigger)
console.log(`⚡⚡⚡ Enviando mensajes....`);
}
/**
* Enviamos un mensaje con buttons a nuestro cliente
* @param {*} number
*/
const sendMessageButton = async (client, number = null, text = null, actionButtons) => {
number = cleanNumber(number)
const { title = null, message = null, footer = null, buttons = [] } = actionButtons;
let button = new Buttons(message,[...buttons], title, footer);
client.sendMessage(number, button);
console.log(`⚡⚡⚡ Enviando mensajes....`);
}
/**
* Opte
*/
const lastTrigger = (number) => new Promise((resolve, reject) => {
number = cleanNumber(number)
const pathExcel = `${__dirname}/../chats/${number}.xlsx`;
const workbook = new ExcelJS.Workbook();
if (fs.existsSync(pathExcel)) {
workbook.xlsx.readFile(pathExcel)
.then(() => {
const worksheet = workbook.getWorksheet(1);
const lastRow = worksheet.lastRow;
const getRowPrevStep = worksheet.getRow(lastRow.number);
const lastStep = getRowPrevStep.getCell('C').value;
resolve(lastStep)
});
} else {
resolve(null)
}
})
/**
* Guardar historial de conversacion
* @param {*} number
* @param {*} message
*/
const readChat = async (number, message, trigger = null) => {
setTimeout(() => {
const pathExcel = `${__dirname}/../chats/${number}.xlsx`;
const workbook = new ExcelJS.Workbook();
const today = moment().format('DD-MM-YYYY hh:mm')
if (fs.existsSync(pathExcel)) {
/**
* Si existe el archivo de conversacion lo actualizamos
*/
const workbook = new ExcelJS.Workbook();
workbook.xlsx.readFile(pathExcel)
.then(() => {
const worksheet = workbook.getWorksheet(1);
const lastRow = worksheet.lastRow;
var getRowInsert = worksheet.getRow(++(lastRow.number));
getRowInsert.getCell('A').value = today;
getRowInsert.getCell('B').value = message;
getRowInsert.getCell('C').value = trigger;
getRowInsert.commit();
workbook.xlsx.writeFile(pathExcel);
});
} else {
/**
* NO existe el archivo de conversacion lo creamos
*/
const worksheet = workbook.addWorksheet('Chats');
worksheet.columns = [
{ header: 'Fecha', key: 'number_customer' },
{ header: 'Mensajes', key: 'message' },
{ header: 'Disparador', key: 'trigger' }
];
worksheet.addRow([today, message, trigger]);
workbook.xlsx.writeFile(pathExcel)
.then(() => {
console.log("saved");
})
.catch((err) => {
console.log("err", err);
});
}
}, 900)
}
module.exports = { sendMessage, sendMedia, lastTrigger, sendMessageButton, readChat }

View File

@@ -1,16 +0,0 @@
module.exports = (socket) => {
return {
sendQR:(qr) => {
socket.emit('connection_qr',{
qr
})
},
sendStatus:() => {
socket.emit('connection_status',{
a:1
})
}
}
}

View File

@@ -1,16 +0,0 @@
const fs = require('fs')
const { sendMessage } = require('../controllers/send')
const sendMessagePost = (req, res) => {
const { message, number } = req.body
const client = req.clientWs || null;
sendMessage(client, number, message)
res.send({ status: 'Enviado!' })
}
const getQr = (req, res) => {
res.writeHead(200, { 'content-type': 'image/svg+xml' });
fs.createReadStream(`${__dirname}/../mediaSend/qr-code.svg`).pipe(res);
}
module.exports = { sendMessagePost, getQr }

25
docker-compose.yml Normal file
View File

@@ -0,0 +1,25 @@
version: '3.3'
services:
mongo:
image: mongo
container_name: app_enviroment
restart: always
ports:
- '27019:27017'
environment:
MONGO_INITDB_DATABASE: bot
expose:
- 27019
mysql:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: bot
container_name: app_mysql
ports:
- '3306:3306'
expose:
- 3306

View File

@@ -1,88 +0,0 @@
[
{
"keywords": [
"hola",
"hola!",
"ola",
"ole",
"inicio",
"welcome",
"buenos días",
"buenas tardes",
"buenas noches",
"me dieron este número",
"venden a crédito",
"quisiera saber si venden",
"necesito saber"
],
"key": "STEP_1"
},
{
"keywords": [
"cursos",
"info",
"curso"
],
"key": "STEP_2"
},
{
"keywords": [
"angular"
],
"key": "STEP_2_1"
},
{
"keywords": [
"node"
],
"key": "STEP_2_2"
},
{
"keywords": [
"ngrx"
],
"key": "STEP_2_3"
},
{
"keywords": [
"aws"
],
"key": "STEP_2_4"
},
{
"keywords": [
"asesor",
"asesores",
"Vendedor",
"cobrador"
],
"key": "STEP_3"
},
{
"keywords": [
"muchas gracias",
"ok",
"gracias",
"vale gracias"
],
"key": "STEP_4"
},
{
"keywords": [
"👉 Youtube"
],
"key": "STEP_5"
},
{
"keywords": [
"😎 Cursos"
],
"key": "STEP_6"
},
{
"keywords": [
"😁 Telegram"
],
"key": "STEP_7"
}
]

View File

@@ -1,135 +0,0 @@
{
"DEFAULT":{
"replyMessage":[
"🆗 Bienvenido a este 🤖 CHATBOT de Whatsapp, lo primero \n",
"decirte que mi nombre es *Leifer Mendez*😎 y te dejo opciones rapidas \n"
],
"media":null,
"trigger":null,
"actions":{
"title":"¿Que te interesa ver?",
"message":"Recuerda todo este contenido es gratis y estaria genial que me siguas!",
"footer":"Gracias",
"buttons":[
{"body":"😎 Cursos"},
{"body":"👉 Youtube"},
{"body":"😁 Telegram"}
]
}
},
"STEP_0":{
"replyMessage":[
"El flujo ha finalizado \n",
"pero puedes ver todo el codigo de este \n",
"repositorio en https://github.com/leifermendez/bot-whatsapp.git"
],
"media":null,
"trigger":null
},
"STEP_1":{
"replyMessage":[
"✌️ Bienvenido a este 🤖 CHATBOT de Whatsapp, lo primero \n",
"decirte que mi nombre es *Leifer Mendez*😎 \n",
"\n Si necesitas ver más info sobre las capacitacion tecnicas ",
"escribe *cursos* o *info*"
],
"media":null,
"trigger":null
},
"STEP_2":{
"replyMessage":[
"Perfecto, te voy a pasar la lista ",
"de los temas que tengo y un breve video 🙂🤖 \n\n",
"*Angular* Basico (Pago) \n",
"*Angular* Basico (Gratis) \n",
"*Node* Basico (Gratis) \n",
"*NGRX* Basico (Gratis) \n",
"*AWS* Basico (Pago) \n\n",
"Escribe la palabra del tema que te interese \n"
],
"media":"https://i.giphy.com/media/5J5gN0WUk0VToHaK2p/giphy-downsized.gif",
"trigger":null
},
"STEP_2_1":{
"replyMessage":[
"Si te interesa Angular tienes disponible \n",
"*(Gratis)* https://bit.ly/367tJ32 \n\n",
"*(Pago)* https://link.codigoencasa.com/PROMO-INICIAL \n\n",
"*(Pago)* https://link.codigoencasa.com/ANGULAR-BASICO-EDTEAM \n\n",
"😎😎😎"
],
"media":"https://i.imgur.com/Q0a5UQI.jpg",
"trigger":null
},
"STEP_2_2":{
"replyMessage":[
"Si te interesa NODE tienes disponible \n",
"*(Gratis)* https://bit.ly/3od1Bl6 \n\n",
"Espero pronto tener más material disponible",
"🤖"
],
"media":null,
"trigger":null
},
"STEP_2_3":{
"replyMessage":[
"NGRX para manejar estados en Angular \n",
"*(Gratis)* https://bit.ly/ngrx-desde-cero \n",
"A darle! 😮"
],
"media":null,
"trigger":null
},
"STEP_2_4":{
"replyMessage":[
"Muy bien AWS esta pronto a salir pre-registrate aquí \n",
"*(Pre-registro)* https://link.codigoencasa.com/AWS-BASICO-INVITACION \n",
"😮😮"
],
"media":null,
"trigger":null
},
"STEP_3":{
"replyMessage":[
"¿Ok cual curso de intereso? \n",
"*angular* , *node*, *ngrx*, *aws*"
],
"media":null,
"trigger":null
},
"STEP_4":{
"replyMessage":[
"Gracias a ti! \n"
],
"media":"https://media4.giphy.com/media/hur0SFIU5SH4mxNBWa/giphy.gif",
"trigger":null
},
"STEP_5":{
"replyMessage":[
"Muy bien te comparto el canal de Youtube \n"
],
"media":"https://youtube.com/leifermendez",
"trigger":null
},
"STEP_6":{
"replyMessage":[
"Perfecto, te voy a pasar la lista ",
"de los temas que tengo y un breve video 🙂🤖 \n\n",
"*Angular* Basico (Pago) \n",
"*Angular* Basico (Gratis) \n",
"*Node* Basico (Gratis) \n",
"*NGRX* Basico (Gratis) \n",
"*AWS* Basico (Pago) \n\n",
"Escribe la palabra del tema que te interese \n"
],
"media":"https://i.giphy.com/media/5J5gN0WUk0VToHaK2p/giphy-downsized.gif",
"trigger":null
},
"STEP_7":{
"replyMessage":[
"Vente al telegram \n"
],
"media":"https://t.me/leifermendez",
"trigger":null
}
}

View File

@@ -1,21 +0,0 @@
const middlewareClient = (client = null) => async (req, res, next) => {
try {
if(!client){
res.status(409)
console.log(client)
res.send({ error: 'Error de client.' })
}else{
req.clientWs = client;
next()
}
} catch (e) {
console.log(e)
res.status(409)
res.send({ error: 'Error de client' })
}
}
module.exports = { middlewareClient }

3847
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,37 +1,102 @@
{
"name": "test-ws-bot",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"start": "node ./app.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@google-cloud/dialogflow": "^4.6.0",
"cors": "^2.8.5",
"dotenv": "^11.0.0",
"exceljs": "^4.3.0",
"express": "^4.17.2",
"file-type": "^16.5.3",
"mime-db": "^1.51.0",
"moment": "^2.29.1",
"mysql": "^2.18.1",
"nanoid": "^3.1.32",
"qr-image": "^3.2.0",
"qrcode-terminal": "^0.12.0",
"socket.io": "^4.4.1",
"whatsapp-web.js": "^1.15.4",
"xlsx": "^0.16.9"
},
"devDependencies": {
"pm2": "^5.1.2",
"prettier": "2.5.1"
},
"engines": {
"node": "14.x"
}
"name": "@bot-whatsapp/root",
"version": "0.1.16",
"description": "Bot de wahtsapp open source para MVP o pequeños negocios",
"main": "app.js",
"private": true,
"scripts": {
"commit": "git-cz",
"cli:rollup": "rollup --config ./packages/cli/rollup-cli.config.js ",
"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",
"portal:rollup": "rollup --config ./packages/portal/rollup-portal.config.js",
"format:check": "prettier --check ./packages",
"format:write": "prettier --write ./packages",
"fmt.staged": "pretty-quick --staged",
"lint:check": "eslint ./packages",
"lint:fix": "eslint --fix ./packages",
"build:portal-web": "cd ./packages/portal/ && yarn run build.types && yarn run build.client && yarn run build.server && yarn run lint --fix",
"build:full": "yarn run build:portal-web && 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 && yarn run portal: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 && yarn run portal: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",
"test": "npm run test.coverage",
"cli": "node ./packages/cli/bin/cli.js",
"create": "node ./packages/create-bot-whatsapp/bin/create.js",
"dev:debug": "node --inspect ./example-app/app.js",
"dev": "node ./example-app/app.js",
"prepare": "npx husky install",
"preinstall": "npx only-allow yarn",
"postinstall": "npx prettier --write .",
"release": "standard-version -- --prerelease --global"
},
"workspaces": [
"packages/create-bot-whatsapp",
"packages/bot",
"packages/cli",
"packages/database",
"packages/provider",
"packages/contexts",
"packages/portal",
"packages/docs"
],
"keywords": [
"whatsapp",
"bot-whatsapp",
"node-bot-whatsapp"
],
"contributors": [
{
"email": "leifer33@gmail.com",
"name": "Leifer Mendez",
"url": "https://leifermendez.github.io"
},
{
"name": "aurik3",
"email": "aurik3@aurik3.com",
"url": "https://github.com/aurik3"
}
],
"repository": "https://github.com/leifermendez/bot-whatsapp",
"license": "ISC",
"devDependencies": {
"@commitlint/cli": "^17.3.0",
"@commitlint/config-conventional": "^17.3.0",
"@octokit/core": "^4.1.0",
"@rollup/plugin-commonjs": "^23.0.2",
"@rollup/plugin-json": "^5.0.1",
"@rollup/plugin-node-resolve": "^15.0.1",
"@rollup/plugin-replace": "^5.0.1",
"c8": "^7.12.0",
"conventional-changelog": "^3.1.25",
"cross-env": "^7.0.3",
"eslint": "^8.26.0",
"eslint-config-prettier": "^8.5.0",
"fs-extra": "^11.1.0",
"git-cz": "^4.9.0",
"husky": "^8.0.2",
"only-allow": "^1.1.1",
"prettier": "^2.8.0",
"pretty-quick": "^3.1.3",
"prompts": "^2.4.2",
"rimraf": "^3.0.2",
"rollup": "^3.2.3",
"rollup-plugin-cleanup": "^3.2.1",
"rollup-plugin-copy": "^3.4.0",
"semver": "^7.3.8",
"standard-version": "^9.5.0",
"uvu": "^0.5.6"
},
"packageManager": "yarn@3.3.0",
"engines": {
"node": ">=16",
"npm": "please-use-yarn",
"yarn": ">=3"
},
"author": "Leifer Mendez <leifer33@gmail.com>"
}

110
packages/bot/USES_CASES.md Normal file
View File

@@ -0,0 +1,110 @@
# @bot-whatsapp/io
### Caso de uso
> Una persona escribe `hola`
**addKeyword** recibe `string | string[]`
> `sensitive` false _default_
- [x] addKeyword
- [x] addAnswer
- [x] addKeyword: Opciones
- [x] addAnswer: Opciones, media, buttons
- [x] Retornar JSON (options)
- [ ] Recibir JSON
```js
// bootstrap.js Como iniciar el provider
const { inout, provider, database } = require('@bot-whatsapp')
/**
* async whatsapp-web, twilio, meta
* */
const bootstrap = async () => {
console.log(`Iniciando....`)
const client = await provider.start()
/**
* - QR
* - Endpoint
* - Check Token Meta, Twilio
* - Return events? on message
* */
console.log(`Fin...`)
// Esto es opcional ? no deberia ser necesario
client.on('message', ({number, body,...}) => {
// Incoming message
})
}
```
```js
// flow.js Como agregar keywords y respuestas
const { inout, provider, database } = require('@bot-whatsapp')
await inout
.addKeyword('hola')
.addAnswer('Bienvenido a tu tienda 🥲')
.addAnswer('escribe *catalogo* o *ofertas*')
await inout
.addKeyword(['catalogo', 'ofertas'])
.addAnswer('Este es nuestro CATALOGO mas reciente!', {
buttons: [{ body: 'Xiaomi' }, { body: 'Samsung' }],
})
await inout
.addKeyword('Xiaomi')
.addAnswer('Estos son nuestro productos XIAOMI ....', {
media: 'https://....',
})
.addAnswer('Si quieres mas info escrbie *info*')
await inout
.addKeyword('chao!')
.addAnswer('bye!')
.addAnswer('Recuerda que tengo esta promo', {
media: 'https://media2.giphy.com/media/VQJu0IeULuAmCwf5SL/giphy.gif',
})
await inout
.addKeyword('Modelo C', { sensitive: false })
.addAnswer('100USD', { media: 'http//:...' })
await inout
.addKeyword('hola!', { sensitive: false })
.addAnswer('Bievenido Escribe *productos*')
await inout
.addKeyword('productos', { sensitive: false })
.addAnswer('Esto son los mas vendidos')
.addAnswer('*PC1* Precio 10USD', { media: 'https://....' })
.addAnswer('*PC2* Precio 10USD', { media: 'https://....' })
await inout
.addKeyword('PC1', { sensitive: false })
.addAnswer('Bievenido Escribe *productos*')
const answerOne = await inout.addAnswer({
message: 'Como estas!',
media: 'https://media2.giphy.com/media/VQJu0IeULuAmCwf5SL/giphy.gif',
})
const otherAnswer = await inout.addAnswer('Aprovecho para decirte!')
answerOne.push(otherAnswer)
inout.addKeywords(['hola', 'hi', 'ola'])
```
**Comunidad**
> Forma 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)

View File

@@ -0,0 +1,229 @@
const { toCtx } = require('../io/methods')
const { printer } = require('../utils/interactive')
const { delay } = require('../utils/delay')
const Queue = require('../utils/queue')
const { Console } = require('console')
const { createWriteStream } = require('fs')
const logger = new Console({
stdout: createWriteStream(`${process.cwd()}/core.class.log`),
})
const QueuePrincipal = new Queue()
/**
* [ ] Escuchar eventos del provider asegurarte que los provider emitan eventos
* [ ] Guardar historial en db
* [ ] Buscar mensaje en flow
*
*/
class CoreClass {
flowClass
databaseClass
providerClass
constructor(_flow, _database, _provider) {
this.flowClass = _flow
this.databaseClass = _database
this.providerClass = _provider
for (const { event, func } of this.listenerBusEvents()) {
this.providerClass.on(event, func)
}
}
/**
* Manejador de eventos
*/
listenerBusEvents = () => [
{
event: 'preinit',
func: () => printer('Iniciando proveedor, espere...'),
},
{
event: 'require_action',
func: ({ instructions, title = '⚡⚡ ACCIÓN REQUERIDA ⚡⚡' }) =>
printer(instructions, title),
},
{
event: 'ready',
func: () => printer('Proveedor conectado y listo'),
},
{
event: 'auth_failure',
func: ({ instructions }) =>
printer(instructions, '⚡⚡ ERROR AUTH ⚡⚡'),
},
{
event: 'message',
func: (msg) => this.handleMsg(msg),
},
]
/**
* GLOSSARY.md
* @param {*} messageCtxInComming
* @returns
*/
handleMsg = async (messageCtxInComming) => {
logger.log(`[handleMsg]: `, messageCtxInComming)
const { body, from } = messageCtxInComming
let msgToSend = []
let fallBackFlag = false
if (!body.length) return
const prevMsg = await this.databaseClass.getPrevByNumber(from)
const refToContinue = this.flowClass.findBySerialize(
prevMsg?.refSerialize
)
if (prevMsg?.ref) {
const ctxByNumber = toCtx({
body,
from,
prevRef: prevMsg.refSerialize,
})
this.databaseClass.save(ctxByNumber)
}
// 📄 Esta funcion se encarga de enviar un array de mensajes dentro de este ctx
const sendFlow = async (messageToSend, numberOrId) => {
const queue = []
for (const ctxMessage of messageToSend) {
const delayMs = ctxMessage?.options?.delay || 0
if (delayMs) await delay(delayMs)
QueuePrincipal.enqueue(() =>
Promise.all([
this.sendProviderAndSave(numberOrId, ctxMessage),
resolveCbEveryCtx(ctxMessage),
])
)
}
return Promise.all(queue)
}
// 📄 [options: fallBack]: esta funcion se encarga de repetir el ultimo mensaje
const fallBack = async () => {
fallBackFlag = true
await this.sendProviderAndSave(from, refToContinue)
QueuePrincipal.queue = []
return refToContinue
}
// 📄 [options: flowDynamic]: esta funcion se encarga de responder un array de respuesta esta limitado a 5 mensajes
// para evitar bloque de whatsapp
const flowDynamic = async (
listMsg = [],
optListMsg = { limit: 5, fallback: false }
) => {
if (!Array.isArray(listMsg))
throw new Error('Esto debe ser un ARRAY')
fallBackFlag = optListMsg.fallback
const parseListMsg = listMsg
.map(({ body }, index) =>
toCtx({
body,
from,
keyword: null,
index,
})
)
.slice(0, optListMsg.limit)
for (const msg of parseListMsg) {
await this.sendProviderAndSave(from, msg)
}
return
}
// 📄 Se encarga de revisar si el contexto del mensaje tiene callback o fallback
const resolveCbEveryCtx = async (ctxMessage) => {
if (prevMsg?.options?.capture) return cbEveryCtx(prevMsg?.ref)
if (!ctxMessage?.options?.capture)
return await cbEveryCtx(ctxMessage?.ref)
}
// 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo
const cbEveryCtx = async (inRef) => {
if (!this.flowClass.allCallbacks[inRef]) return Promise.resolve()
return this.flowClass.allCallbacks[inRef](messageCtxInComming, {
fallBack,
flowDynamic,
})
}
if (prevMsg?.ref) resolveCbEveryCtx(prevMsg)
// 📄 [options: callback]: Si se tiene un callback se ejecuta
//TODO AQUI
// if (!fallBackFlag) {
// if (prevMsg?.options?.capture) cbEveryCtx(prevMsg?.ref)
// for (const ite of this.flowClass.find(body)) {
// if (!ite?.options?.capture) 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
const flowStandalone = nestedRef.map((f) => ({
...nestedRef.find((r) => r.refSerialize === f.refSerialize),
}))
msgToSend = this.flowClass.find(body, false, flowStandalone) || []
// //TODO AQUI
// for (const ite of msgToSend) {
// cbEveryCtx(ite?.ref)
// }
sendFlow(msgToSend, from)
return
}
// 📄🤘(tiene return) [options: capture (boolean)]: Si se tiene option boolean
if (!fallBackFlag && !prevMsg?.options?.nested?.length) {
const typeCapture = typeof prevMsg?.options?.capture
const valueCapture = prevMsg?.options?.capture
if (['string', 'boolean'].includes(typeCapture) && valueCapture) {
msgToSend = this.flowClass.find(refToContinue?.ref, true) || []
sendFlow(msgToSend, from)
return
}
}
msgToSend = this.flowClass.find(body) || []
sendFlow(msgToSend, from)
}
/**
* Enviar mensaje con contexto atraves del proveedor de whatsapp
* @param {*} numberOrId
* @param {*} ctxMessage ver más en GLOSSARY.md
* @returns
*/
sendProviderAndSave = (numberOrId, ctxMessage) => {
const { answer } = ctxMessage
return Promise.all([
this.providerClass.sendMessage(numberOrId, answer, ctxMessage),
this.databaseClass.save({ ...ctxMessage, from: numberOrId }),
])
}
/**
* @private
* @param {*} message
* @param {*} ref
*/
continue = (message, ref = false) => {
const responde = this.flowClass.find(message, ref)
if (responde) {
this.providerClass.sendMessage(responde.answer)
this.databaseClass.saveLog(responde.answer)
this.continue(null, responde.ref)
}
}
}
module.exports = CoreClass

47
packages/bot/index.js Normal file
View File

@@ -0,0 +1,47 @@
const CoreClass = require('./core/core.class')
const ProviderClass = require('./provider/provider.class')
const FlowClass = require('./io/flow.class')
const { addKeyword, addAnswer, addChild, toSerialize } = require('./io/methods')
/**
* Crear instancia de clase Bot
* @param {*} args
* @returns
*/
const createBot = async ({ flow, database, provider }) =>
new CoreClass(flow, database, provider)
/**
* Crear instancia de clase Io (Flow)
* @param {*} args
* @returns
*/
const createFlow = (args) => {
return new FlowClass(args)
}
/**
* Crear instancia de clase Provider
* Depdendiendo del Provider puedes pasar argumentos
* Ver Documentacion
* @param {*} args
* @returns
*/
const createProvider = (providerClass = class {}, args = null) => {
const providerInstance = new providerClass(args)
if (!providerClass.prototype instanceof ProviderClass)
throw new Error('El provider no implementa ProviderClass')
return providerInstance
}
module.exports = {
createBot,
createFlow,
createProvider,
addKeyword,
addAnswer,
addChild,
toSerialize,
ProviderClass,
CoreClass,
}

View File

@@ -0,0 +1,65 @@
const { toSerialize } = require('./methods/toSerialize')
const { flatObject } = require('../utils/flattener')
class FlowClass {
allCallbacks = []
flowSerialize = []
flowRaw = []
constructor(_flow) {
if (!Array.isArray(_flow)) throw new Error('Esto debe ser un ARRAY')
this.flowRaw = _flow
this.allCallbacks = flatObject(_flow)
const mergeToJsonSerialize = Object.keys(_flow)
.map((indexObjectFlow) => _flow[indexObjectFlow].toJson())
.flat(2)
this.flowSerialize = toSerialize(mergeToJsonSerialize)
}
find = (keyOrWord, symbol = false, overFlow = null) => {
keyOrWord = `${keyOrWord}`
let capture = false
let messages = []
let refSymbol = null
overFlow = overFlow ?? this.flowSerialize
/** Retornar expresion regular para buscar coincidencia */
const mapSensitive = (str, flag = false) => {
const regexSensitive = flag ? 'g' : 'i'
if (Array.isArray(str)) {
return new RegExp(str.join('|'), regexSensitive)
}
return new RegExp(str, regexSensitive)
}
const findIn = (keyOrWord, symbol = false, flow = overFlow) => {
const sensitive = refSymbol?.options?.sensitive || false
capture = refSymbol?.options?.capture || false
if (capture) return messages
if (symbol) {
refSymbol = flow.find((c) => c.keyword === keyOrWord)
if (refSymbol?.answer) messages.push(refSymbol)
if (refSymbol?.ref) findIn(refSymbol.ref, true)
} else {
refSymbol = flow.find((c) => {
return mapSensitive(c.keyword, sensitive).test(keyOrWord)
})
if (refSymbol?.ref) findIn(refSymbol.ref, true)
return messages
}
}
findIn(keyOrWord, symbol)
return messages
}
findBySerialize = (refSerialize) =>
this.flowSerialize.find((r) => r.refSerialize === refSerialize)
findIndexByRef = (ref) => this.flowSerialize.findIndex((r) => r.ref === ref)
}
module.exports = FlowClass

View File

@@ -0,0 +1,111 @@
const { flatObject } = require('../../utils/flattener')
const { generateRef } = require('../../utils/hash')
const { addChild } = require('./addChild')
const { toJson } = require('./toJson')
/**
*
* @param answer string
* @param options {media:string, buttons:[{"body":"😎 Cursos"}], delay:ms, capture:true default false}
* @returns
*/
const addAnswer =
(inCtx) =>
(answer, options, cb = null, nested = []) => {
answer = Array.isArray(answer) ? answer.join('\n') : answer
/**
* Todas las opciones referentes a el mensaje en concreto options:{}
* @returns
*/
const getAnswerOptions = () => ({
media:
typeof options?.media === 'string' ? `${options?.media}` : null,
buttons: Array.isArray(options?.buttons) ? options.buttons : [],
capture:
typeof options?.capture === 'boolean'
? options?.capture
: false,
child:
typeof options?.child === 'string' ? `${options?.child}` : null,
delay: typeof options?.delay === 'number' ? options?.delay : 0,
})
const getNested = () => {
let flatNested = []
if (Array.isArray(nested)) {
for (const iterator of nested) {
flatNested = [...flatNested, ...addChild(iterator)]
}
return {
nested: flatNested,
}
}
return {
nested: addChild(nested),
}
}
/**
* Esta funcion aplana y busca los callback anidados de los hijos
* @returns
*/
const getCbFromNested = () =>
flatObject(Array.isArray(nested) ? nested : [nested])
const callback = typeof cb === 'function' ? cb : () => null
const lastCtx = inCtx.hasOwnProperty('ctx') ? inCtx.ctx : inCtx
/**
* Esta funcion se encarga de mapear y transformar todo antes
* de retornar
* @returns
*/
const ctxAnswer = () => {
const ref = `ans_${generateRef()}`
const options = {
...getAnswerOptions(),
...getNested(),
keyword: {},
callback: !!cb,
}
const json = [].concat(inCtx.json).concat([
{
ref,
keyword: lastCtx.ref,
answer,
options,
},
])
getCbFromNested()
const callbacks = {
...inCtx.callbacks,
...getCbFromNested(),
[ref]: callback,
}
return {
...lastCtx,
ref,
answer,
json,
options,
callbacks,
}
}
/// Retornar contexto no colocar nada más abajo de esto
const ctx = ctxAnswer()
return {
ctx,
ref: ctx.ref,
addAnswer: addAnswer(ctx),
toJson: toJson(ctx),
}
}
module.exports = { addAnswer }

View File

@@ -0,0 +1,15 @@
const { toSerialize } = require('./toSerialize')
/**
* @deprecate
* @param answer string
* @param options {media:string, buttons:[], capture:true default false}
* @returns
*/
const addChild = (flowIn = null) => {
if (!flowIn?.toJson) {
throw new Error('DEBE SER UN FLOW CON toJSON()')
}
return toSerialize(flowIn.toJson())
}
module.exports = { addChild }

View File

@@ -0,0 +1,49 @@
const { generateRef } = require('../../utils/hash')
const { addAnswer } = require('./addAnswer')
const { toJson } = require('./toJson')
/**
*
* @param {*} message `string | string[]`
* @param {*} options {sensitive:boolean} default false
*/
const addKeyword = (keyword, options) => {
const parseOptions = () => {
const defaultProperties = {
sensitive:
typeof options?.sensitive === 'boolean'
? options?.sensitive
: false,
}
return defaultProperties
}
const ctxAddKeyword = () => {
const ref = `key_${generateRef()}`
const options = parseOptions()
const json = [
{
ref,
keyword,
options,
},
]
/**
* Se guarda en db
*/
return { ref, keyword, options, json }
}
const ctx = ctxAddKeyword()
return {
ctx,
ref: ctx.ref,
addAnswer: addAnswer(ctx),
toJson: toJson(ctx),
}
}
module.exports = { addKeyword }

View File

@@ -0,0 +1,8 @@
const { addAnswer } = require('./addAnswer')
const { addKeyword } = require('./addKeyword')
const { addChild } = require('./addChild')
const { toSerialize } = require('./toSerialize')
const { toCtx } = require('./toCtx')
const { toJson } = require('./toJson')
module.exports = { addAnswer, addKeyword, addChild, toCtx, toJson, toSerialize }

View File

@@ -0,0 +1,19 @@
const { generateRef, generateRefSerialize } = require('../../utils/hash')
/**
* @deprecate
* @param answer string
* @param options {media:string, buttons:[], capture:true default false}
* @returns
*/
const toCtx = ({ body, from, prevRef, index }) => {
return {
ref: generateRef(),
keyword: prevRef,
answer: body,
options: {},
from,
refSerialize: generateRefSerialize({ index, answer: body }),
}
}
module.exports = { toCtx }

View File

@@ -0,0 +1,6 @@
const toJson = (inCtx) => () => {
const lastCtx = inCtx.hasOwnProperty('ctx') ? inCtx.ctx : inCtx
return lastCtx.json
}
module.exports = { toJson }

View File

@@ -0,0 +1,23 @@
const { generateRefSerialize } = require('../../utils/hash')
/**
* Crear referencia serializada
* @param {*} flowJson
* @returns array[]
*/
const toSerialize = (flowJson) => {
if (!Array.isArray(flowJson)) throw new Error('Esto debe ser un ARRAY')
const jsonToSerialize = flowJson.map((row, index) => ({
...row,
refSerialize: `${generateRefSerialize({
index,
keyword: row.keyword,
answer: row.answer,
})}`,
}))
return jsonToSerialize
}
module.exports = { toSerialize }

View File

@@ -0,0 +1,14 @@
const commonjs = require('@rollup/plugin-commonjs')
const { nodeResolve } = require('@rollup/plugin-node-resolve')
const { join } = require('path')
const PATH = join(__dirname, 'lib', 'io', 'bundle.io.cjs')
module.exports = {
input: 'index.js',
output: {
file: PATH,
format: 'cjs',
},
plugins: [commonjs(), nodeResolve()],
}

36
packages/bot/package.json Normal file
View File

@@ -0,0 +1,36 @@
{
"name": "@bot-whatsapp/bot",
"version": "0.0.64-alpha.0",
"description": "",
"main": "./lib/bundle.bot.cjs",
"scripts": {
"bot:rollup": "node ../../node_modules/.bin/rollup index.js --config ./rollup-cli.config.js",
"format:check": "prettier --check .",
"format:write": "prettier --write .",
"lint:check": "eslint .",
"lint:fix": "eslint --fix .",
"test.unit": "cross-env NODE_ENV=test node ../../node_modules/uvu/bin.js tests"
},
"keywords": [],
"files": [
"./lib/bundle.bot.cjs",
"./provider/*",
"./core/*",
"./io/*"
],
"author": "",
"license": "ISC",
"devDependencies": {
"@bot-whatsapp/cli": "*",
"@bot-whatsapp/database": "*",
"@bot-whatsapp/provider": "*",
"kleur": "^4.1.5"
},
"dependencies": {
"dotenv": "^16.0.3"
},
"repository": {
"type": "git",
"url": "https://github.com/codigoencasa/bot-whatsapp/tree/main/packages/bot"
}
}

View File

@@ -0,0 +1,29 @@
const { EventEmitter } = require('node:events')
/**
* Esta clase debe siempre proporcionar los siguietes metodos
* sendMessage = Para enviar un mensaje
*
* @important
* Esta clase extiende de la clase del provider OJO
* Eventos
* - message
* - ready
* - error
* - require_action
*/
const NODE_ENV = process.env.NODE_ENV || 'dev'
class ProviderClass extends EventEmitter {
/**
* events: message | auth | auth_error | ...
*
*/
sendMessage = async (userId, message) => {
if (NODE_ENV !== 'production')
console.log('[sendMessage]', { userId, message })
return message
}
}
module.exports = ProviderClass

View File

@@ -0,0 +1,26 @@
const banner = require('../../config/banner.rollup.json')
const commonjs = require('@rollup/plugin-commonjs')
const { nodeResolve } = require('@rollup/plugin-node-resolve')
const { join } = require('path')
module.exports = [
{
input: join(__dirname, 'index.js'),
output: {
banner: banner['banner.output'].join(''),
file: join(__dirname, 'lib', 'bundle.bot.cjs'),
format: 'cjs',
sourcemap: true,
},
plugins: [commonjs(), nodeResolve()],
},
{
input: join(__dirname, 'index.js'),
output: {
banner: banner['banner.output'].join(''),
file: join(__dirname, 'lib', 'bundle.bot.cjs'),
format: 'cjs',
},
plugins: [commonjs(), nodeResolve()],
},
]

View File

@@ -0,0 +1,279 @@
const { test } = require('uvu')
const assert = require('uvu/assert')
const FlowClass = require('../io/flow.class')
const MockProvider = require('../../../__mocks__/mock.provider')
const {
createBot,
CoreClass,
createFlow,
createProvider,
ProviderClass,
} = require('../index')
class MockFlow {
allCallbacks = { ref: () => 1 }
flowSerialize = []
flowRaw = []
find = (arg) => {
if (arg) {
return [{ answer: 'answer', ref: 'ref' }]
} else {
return null
}
}
findBySerialize = () => ({})
findIndexByRef = () => 0
}
class MockDBA {
listHistory = []
save = () => {}
getPrevByNumber = () => {}
}
class MockDBB {
listHistory = []
save = () => {}
getPrevByNumber = () => ({
refSerialize: 'xxxxx',
ref: 'xxxx',
options: { callback: true },
})
}
class MockDBC {
listHistory = []
save = () => {}
getPrevByNumber = () => ({
refSerialize: 'xxxxx',
ref: 'xxxx',
options: { callback: true, nested: ['1', '2'] },
})
saveLog = () => {}
}
test(`[CoreClass] Probando instanciamiento de clase`, async () => {
const setting = {
flow: new MockFlow(),
database: new MockDBA(),
provider: new MockProvider(),
}
const bot = await createBot(setting)
assert.is(bot instanceof CoreClass, true)
})
test(`[CoreClass createFlow] Probando instanciamiento de clase`, async () => {
const mockCreateFlow = createFlow([])
assert.is(mockCreateFlow instanceof FlowClass, true)
})
test(`[CoreClass createProvider] Probando instanciamiento de clase`, async () => {
const mockCreateProvider = createProvider(MockProvider)
assert.is(mockCreateProvider instanceof ProviderClass, true)
})
test(`[Bot] Eventos 'require_action,ready,auth_failure,message '`, async () => {
let responseEvents = {}
const MOCK_EVENTS = {
require_action: {
instructions: 'Debes...',
},
ready: true,
auth_failure: {
instructions: 'Error...',
},
message: {
from: 'XXXXXX',
body: 'hola',
hasMedia: false,
},
}
const mockProvider = new MockProvider()
const setting = {
flow: new MockFlow(),
database: new MockDBA(),
provider: mockProvider,
}
await createBot(setting)
/// Escuchamos eventos
mockProvider.on(
'require_action',
(r) => (responseEvents['require_action'] = r)
)
mockProvider.on('ready', (r) => (responseEvents['ready'] = r))
mockProvider.on('auth_failure', (r) => (responseEvents['auth_failure'] = r))
mockProvider.on('message', (r) => (responseEvents['message'] = r))
/// Emitimos eventos
mockProvider.delaySendMessage(
0,
'require_action',
MOCK_EVENTS.require_action
)
mockProvider.delaySendMessage(0, 'ready', MOCK_EVENTS.ready)
mockProvider.delaySendMessage(0, 'auth_failure', MOCK_EVENTS.auth_failure)
mockProvider.delaySendMessage(0, 'message', MOCK_EVENTS.message)
await delay(0)
/// Testeamos eventos
assert.is(
JSON.stringify(responseEvents.require_action),
JSON.stringify(MOCK_EVENTS.require_action)
)
assert.is(responseEvents.ready, MOCK_EVENTS.ready)
assert.is(
JSON.stringify(responseEvents.auth_failure),
JSON.stringify(MOCK_EVENTS.auth_failure)
)
assert.is(
JSON.stringify(responseEvents.message),
JSON.stringify(MOCK_EVENTS.message)
)
})
test(`[Bot] Probando Flujos Internos`, async () => {
let responseEvents = {}
const MOCK_EVENTS = {
require_action: {
instructions: 'Debes...',
},
ready: true,
auth_failure: {
instructions: 'Error...',
},
message: {
from: 'XXXXXX',
body: 'hola',
hasMedia: false,
},
}
const mockProvider = new MockProvider()
const setting = {
flow: new MockFlow(),
database: new MockDBB(),
provider: mockProvider,
}
await createBot(setting)
/// Escuchamos eventos
mockProvider.on(
'require_action',
(r) => (responseEvents['require_action'] = r)
)
mockProvider.on('ready', (r) => (responseEvents['ready'] = r))
mockProvider.on('auth_failure', (r) => (responseEvents['auth_failure'] = r))
mockProvider.on('message', (r) => (responseEvents['message'] = r))
/// Emitimos eventos
mockProvider.delaySendMessage(
0,
'require_action',
MOCK_EVENTS.require_action
)
mockProvider.delaySendMessage(0, 'ready', MOCK_EVENTS.ready)
mockProvider.delaySendMessage(0, 'auth_failure', MOCK_EVENTS.auth_failure)
mockProvider.delaySendMessage(0, 'message', MOCK_EVENTS.message)
await delay(0)
/// Testeamos eventos
assert.is(
JSON.stringify(responseEvents.require_action),
JSON.stringify(MOCK_EVENTS.require_action)
)
assert.is(responseEvents.ready, MOCK_EVENTS.ready)
assert.is(
JSON.stringify(responseEvents.auth_failure),
JSON.stringify(MOCK_EVENTS.auth_failure)
)
assert.is(
JSON.stringify(responseEvents.message),
JSON.stringify(MOCK_EVENTS.message)
)
})
test(`[Bot] Probando Flujos Nested`, async () => {
let responseEvents = {}
const MOCK_EVENTS = {
require_action: {
instructions: 'Debes...',
},
ready: true,
auth_failure: {
instructions: 'Error...',
},
message: {
from: 'XXXXXX',
body: 'hola',
hasMedia: false,
},
}
const mockProvider = new MockProvider()
const setting = {
flow: new MockFlow(),
database: new MockDBC(),
provider: mockProvider,
}
const botInstance = await createBot(setting)
botInstance.sendProviderAndSave('xxxxx', 'xxxxx')
botInstance.continue('xxxxx', 'xxxxx')
/// Escuchamos eventos
mockProvider.on(
'require_action',
(r) => (responseEvents['require_action'] = r)
)
mockProvider.on('ready', (r) => (responseEvents['ready'] = r))
mockProvider.on('auth_failure', (r) => (responseEvents['auth_failure'] = r))
mockProvider.on('message', (r) => (responseEvents['message'] = r))
/// Emitimos eventos
mockProvider.delaySendMessage(
0,
'require_action',
MOCK_EVENTS.require_action
)
mockProvider.delaySendMessage(0, 'ready', MOCK_EVENTS.ready)
mockProvider.delaySendMessage(0, 'auth_failure', MOCK_EVENTS.auth_failure)
mockProvider.delaySendMessage(0, 'message', MOCK_EVENTS.message)
await delay(0)
/// Testeamos eventos
assert.is(
JSON.stringify(responseEvents.require_action),
JSON.stringify(MOCK_EVENTS.require_action)
)
assert.is(responseEvents.ready, MOCK_EVENTS.ready)
assert.is(
JSON.stringify(responseEvents.auth_failure),
JSON.stringify(MOCK_EVENTS.auth_failure)
)
assert.is(
JSON.stringify(responseEvents.message),
JSON.stringify(MOCK_EVENTS.message)
)
})
test.run()
function delay(ms) {
return new Promise((res) => setTimeout(res, ms))
}

View File

@@ -0,0 +1,161 @@
const { test } = require('uvu')
const assert = require('uvu/assert')
const { generateRefSerialize } = require('../utils/hash')
const { addKeyword, addAnswer, toSerialize } = require('../io/methods')
test('Debere probar las propeidades', () => {
const ARRANGE = {
keyword: 'hola!',
}
const MAIN_CTX = addKeyword(ARRANGE.keyword)
assert.type(MAIN_CTX.addAnswer, 'function')
assert.is(MAIN_CTX.ctx.keyword, ARRANGE.keyword)
})
test('Debere probar las propeidades array', () => {
const ARRANGE = {
keyword: ['hola!', 'ole'],
}
const MAIN_CTX = addKeyword(ARRANGE.keyword)
assert.is(MAIN_CTX.ctx.keyword, ARRANGE.keyword)
})
test('Debere probar las propeidades array en answer', () => {
const ARRANGE = {
keyword: ['hola!', 'ole'],
}
const MAIN_CTX = addKeyword(ARRANGE.keyword).addAnswer(['hola', 'chao'])
assert.is(MAIN_CTX.ctx.keyword, ARRANGE.keyword)
})
test('Debere probar toSerialize', () => {
const ARRANGE = {
keyword: ['hola!', 'ole'],
}
const MAIN_CTX = addKeyword(ARRANGE.keyword)
.addAnswer('Segundo!')
.addAnswer('Segundo!')
.toJson()
const [ANSWER_A] = MAIN_CTX
assert.is(
toSerialize(MAIN_CTX)[0].refSerialize,
generateRefSerialize({
index: 0,
answer: ANSWER_A.answer,
keyword: ANSWER_A.keyword,
})
)
})
test('Debere probar el paso de contexto', () => {
const ARRANGE = {
keyword: 'hola!',
answer: 'Bienvenido',
}
const CTX_A = addKeyword(ARRANGE.keyword)
const CTX_B = addAnswer(CTX_A)(ARRANGE.answer)
assert.is(CTX_A.ctx.keyword, ARRANGE.keyword)
assert.is(CTX_B.ctx.keyword, ARRANGE.keyword)
assert.is(CTX_B.ctx.answer, ARRANGE.answer)
})
test('Debere probar la anidación', () => {
const ARRANGE = {
keyword: 'hola!',
answer_A: 'Bienvenido',
answer_B: 'Continuar',
}
const MAIN_CTX = addKeyword(ARRANGE.keyword)
.addAnswer(ARRANGE.answer_A)
.addAnswer(ARRANGE.answer_B)
assert.is(MAIN_CTX.ctx.answer, ARRANGE.answer_B)
})
test('Debere probar las poptions', () => {
const MAIN_CTX = addKeyword('etc', { sensitive: false })
assert.is(MAIN_CTX.ctx.options.sensitive, false)
})
test('Debere probar las addAnswer', () => {
const MOCK_OPT = {
media: 'http://image.mock/mock.png',
buttons: [1],
}
const MAIN_CTX = addKeyword('hola').addAnswer('etc', MOCK_OPT)
assert.is(MAIN_CTX.ctx.options.media, MOCK_OPT.media)
assert.is(MAIN_CTX.ctx.options.buttons.length, 1)
})
test('Debere probar error las addAnswer', () => {
const MOCK_OPT = {
media: { a: 1, b: [] },
buttons: 'test',
}
const MAIN_CTX = addKeyword('hola').addAnswer('etc', MOCK_OPT)
assert.is(MAIN_CTX.ctx.options.media, null)
assert.is(MAIN_CTX.ctx.options.buttons.length, 0)
})
test('Obtener toJson', () => {
const [ctxA, ctxB, ctxC] = addKeyword('hola')
.addAnswer('pera!')
.addAnswer('chao')
.toJson()
assert.is(ctxA.keyword, 'hola')
assert.match(ctxA.ref, /^key_/)
assert.is(ctxB.answer, 'pera!')
assert.match(ctxB.ref, /^ans_/)
assert.is(ctxC.answer, 'chao')
assert.match(ctxC.ref, /^ans_/)
})
test('addKeyword toJson con sensitive', () => {
const [ctxA] = addKeyword('hola').toJson()
assert.is(ctxA.options.sensitive, false)
const [ctxB] = addKeyword('hola', { sensitive: true }).toJson()
assert.is(ctxB.options.sensitive, true)
})
test('addAnswer toJson con IMG', () => {
const [, ctxB, ctxC] = addKeyword('hola')
.addAnswer('bye!', {
media: 'http://mock.img/file-a.png',
})
.addAnswer('otro!', {
media: 'http://mock.img/file-b.png',
})
.toJson()
assert.is(ctxB.options.media, 'http://mock.img/file-a.png')
assert.is(ctxC.options.media, 'http://mock.img/file-b.png')
})
test('addAnswer toJson con BUTTONS', () => {
const [, ctxB] = addKeyword('hola')
.addAnswer('mis opciones!', {
buttons: [{ body: 'BTN_1' }, { body: 'BTN_2' }],
})
.toJson()
assert.is(ctxB.options.buttons.length, 2)
const [btnA, btnB] = ctxB.options.buttons
assert.is(btnA.body, 'BTN_1')
assert.is(btnB.body, 'BTN_2')
})
test.run()

View File

@@ -0,0 +1,4 @@
const delay = (miliseconds) =>
new Promise((res) => setTimeout(res, miliseconds))
module.exports = { delay }

View File

@@ -0,0 +1,25 @@
const flatObject = (listArray = []) => {
const cbNestedList = Array.isArray(listArray) ? listArray : []
if (!listArray.length) return {}
const cbNestedObj = cbNestedList
.map(({ ctx }) => ctx?.callbacks)
.filter((i) => !!i)
const queueCb = cbNestedObj.reduce((acc, current) => {
const getKeys = Object.keys(current)
const parse = getKeys.map((icb, i) => ({
[icb]: Object.values(current)[i],
}))
return [...acc, ...parse]
}, [])
const flatObj = {}
for (const iteration of queueCb) {
const [keyCb] = Object.keys(iteration)
flatObj[keyCb] = iteration[keyCb]
}
return flatObj
}
module.exports = { flatObject }

View File

@@ -0,0 +1,24 @@
const crypto = require('crypto')
/**
* Generamos un UUID unico con posibilidad de tener un prefijo
* @param {*} prefix
* @returns
*/
const generateRef = (prefix = false) => {
const id = crypto.randomUUID()
return prefix ? `${prefix}_${id}` : id
}
/**
* Genera un HASH MD5
* @param {*} param0
* @returns
*/
const generateRefSerialize = ({ index, answer, keyword }) =>
crypto
.createHash('md5')
.update(JSON.stringify({ index, answer, keyword }))
.digest('hex')
module.exports = { generateRef, generateRefSerialize }

View File

@@ -0,0 +1,14 @@
const { yellow, bgRed } = require('kleur')
const NODE_ENV = process.env.NODE_ENV || 'dev'
const printer = (message, title) => {
if (NODE_ENV !== 'test') {
// console.clear()
if (title) console.log(bgRed(`${title}`))
console.log(
yellow(Array.isArray(message) ? message.join('\n') : message)
)
console.log(``)
}
}
module.exports = { printer }

View File

@@ -0,0 +1,46 @@
class Queue {
queue = []
pendingPromise = false
enqueue(promise) {
return new Promise((resolve, reject) => {
this.queue.push({
promise,
resolve,
reject,
})
this.dequeue()
})
}
dequeue() {
if (this.workingOnPromise) {
return false
}
const item = this.queue.shift()
if (!item) {
return false
}
try {
this.workingOnPromise = true
item.promise()
.then((value) => {
this.workingOnPromise = false
item.resolve(value)
this.dequeue()
})
.catch((err) => {
this.workingOnPromise = false
item.reject(err)
this.dequeue()
})
} catch (err) {
this.workingOnPromise = false
item.reject(err)
this.dequeue()
}
return true
}
}
module.exports = Queue

20
packages/cli/README.md Normal file
View File

@@ -0,0 +1,20 @@
# @bot-whatsapp/cli
- [x] Revisar version de NODE
- [x] Revisar OS
- [x] Obtener Package Manager
- [x] Revisar las libreria de WhatsappWeb para obtener version reciente
- [x] Opcion interactiva de limpiar session
- [x] Opcion de generar `json` con la configuracion
- [x] Agregar `rollup` para limpiar el codigo
---
**Comunidad**
> Forma 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)

3
packages/cli/bin/cli.js Executable file
View File

@@ -0,0 +1,3 @@
#!/usr/bin/env node
const index = require('../lib/cli/bundle.cli.cjs')
index.startInteractive()

View File

@@ -0,0 +1,38 @@
const { red, yellow, green, bgCyan } = require('kleur')
const checkNodeVersion = () => {
console.log(bgCyan('🚀 Revisando tu Node.js'))
const version = process.version
const majorVersion = parseInt(version.replace('v', '').split('.').shift())
if (majorVersion < 16) {
console.error(
red(
`🔴 Se require Node.js 16 o superior. Actualmente esta ejecutando Node.js ${version}`
)
)
process.exit(1)
}
console.log(green(`Node.js compatible ${version}`))
console.log(``)
}
const checkOs = () => {
console.log(bgCyan('🙂 Revisando tu sistema operativo'))
const os = process.platform
if (!os.includes('win32')) {
const messages = [
`El sistema operativo actual (${os}) posiblemente requiera`,
`una configuración adicional referente al puppeteer`,
``,
`Recuerda pasar por el WIKI`,
`🔗 https://github.com/leifermendez/bot-whatsapp/wiki/Instalación`,
``,
]
console.log(yellow(messages.join(' \n')))
}
console.log(``)
}
module.exports = { checkNodeVersion, checkOs }

View File

@@ -0,0 +1,19 @@
const rimraf = require('rimraf')
const { yellow } = require('kleur')
const { join } = require('path')
const PATH_WW = [
join(process.cwd(), '.wwebjs_auth'),
join(process.cwd(), 'session.json'),
]
const cleanSession = () => {
const queue = []
for (const PATH of PATH_WW) {
console.log(yellow(`😬 Eliminando: ${PATH}`))
queue.push(rimraf(PATH, () => Promise.resolve()))
}
return Promise.all(queue)
}
module.exports = { cleanSession }

View File

@@ -0,0 +1,33 @@
const { writeFile } = require('fs').promises
const { join } = require('path')
/**
* JSON_TEMPLATE = {[key:string]{...pros}}
*/
const JSON_TEMPLATE = {
provider: {
vendor: '',
},
database: {
host: '',
password: '',
port: '',
username: '',
db: '',
},
io: {
vendor: '',
},
}
const PATH_CONFIG = join(process.cwd(), 'config.json')
const jsonConfig = () => {
return writeFile(
PATH_CONFIG,
JSON.stringify(JSON_TEMPLATE, null, 2),
'utf-8'
)
}
module.exports = { jsonConfig }

View File

@@ -0,0 +1,25 @@
const fs = require('fs-extra')
/**
* Copy files
*/
const copyFiles = async (from, to) => {
try {
await fs.copy(from, to)
console.log('success!')
} catch (err) {
console.error(err)
}
}
/**
* Copiar directorio con archivos
* @param {*} templateName
*/
const copyBaseApp = async (fromDir = process.cwd(), toDir = process.cwd()) => {
const BASEP_APP_PATH_FROM = `${fromDir}`
const BASEP_APP_PATH_TO = `${toDir}`
await copyFiles(BASEP_APP_PATH_FROM, BASEP_APP_PATH_TO)
}
module.exports = { copyBaseApp }

3
packages/cli/index.js Normal file
View File

@@ -0,0 +1,3 @@
const { startInteractive } = require('./interactive')
if (process.env.NODE_ENV === 'dev') startInteractive()
module.exports = { startInteractive }

View File

@@ -0,0 +1,24 @@
const { readFileSync, existsSync } = require('fs')
const { join } = require('path')
const { installDeps, getPkgManage } = require('./tool')
const PATHS_DIR = [
join(__dirname, 'pkg-to-update.json'),
join(__dirname, '..', 'pkg-to-update.json'),
join(__dirname, '..', '..', 'pkg-to-update.json'),
]
const PKG_TO_UPDATE = () => {
const PATH_INDEX = PATHS_DIR.findIndex((a) => existsSync(a))
const data = readFileSync(PATHS_DIR[PATH_INDEX], 'utf-8')
const dataParse = JSON.parse(data)
const pkg = Object.keys(dataParse).map((n) => `${n}@${dataParse[n]}`)
return pkg
}
const installAll = async () => {
const pkg = await getPkgManage()
installDeps(pkg, PKG_TO_UPDATE()).runInstall()
}
module.exports = { installAll }

View File

@@ -0,0 +1,68 @@
const { red } = require('kleur')
const spawn = require('cross-spawn')
// const { detect } = require('detect-package-manager')
const PKG_OPTION = {
npm: 'install',
yarn: 'add',
pnpm: 'add',
}
const getPkgManage = async () => {
// const pkg = await detect()
// return pkg
return 'npm'
}
const installDeps = (pkgManager, packageList) => {
const errorMessage = `Ocurrió un error instalando ${packageList}`
let childProcess = []
const installSingle = (pkgInstall) => () => {
new Promise((resolve) => {
try {
childProcess = spawn(
pkgManager,
[PKG_OPTION[pkgManager], pkgInstall],
{
stdio: 'inherit',
}
)
childProcess.on('error', (e) => {
console.error(e)
console.error(red(errorMessage))
resolve()
})
childProcess.on('close', (code) => {
if (code === 0) {
resolve()
} else {
console.error(code)
console.error(red(errorMessage))
}
})
resolve()
} catch (e) {
console.error(e)
console.error(red(errorMessage))
}
})
}
if (typeof packageList === 'string') {
childProcess.push(installSingle(packageList))
} else {
for (const pkg of packageList) {
childProcess.push(installSingle(pkg))
}
}
const runInstall = () => {
return Promise.all(childProcess.map((i) => i()))
}
return { runInstall }
}
module.exports = { getPkgManage, installDeps }

View File

@@ -0,0 +1,139 @@
const prompts = require('prompts')
const { join } = require('path')
const { yellow, red, cyan, bgMagenta } = require('kleur')
const { existsSync } = require('fs')
const { copyBaseApp } = require('../create-app')
const { checkNodeVersion, checkOs } = require('../check')
const bannerDone = () => {
console.log(``)
console.log(
cyan(
[
`[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/codigoencasa/bot-whatsapp`,
`[🚀] Realizando mejoras en el codigo`,
].join('\n')
)
)
console.log(``)
}
const startInteractive = async () => {
const questions = [
{
type: 'text',
name: 'outDir',
message: 'Quieres crear un bot? (Y/n)',
},
{
type: 'multiselect',
name: 'providerWs',
message: '¿Cuál proveedor de whatsapp quieres utilizar?',
choices: [
{ title: 'whatsapp-web.js (gratis)', value: 'wweb' },
{ title: 'Venom (gratis)', value: 'venom' },
{ title: 'Baileys (gratis)', value: 'baileys' },
{ title: 'Twilio', value: 'twilio' },
{ title: 'API Oficial (Meta)', value: 'meta' },
],
max: 1,
hint: 'Espacio para seleccionar',
instructions: '↑/↓',
},
{
type: 'multiselect',
name: 'providerDb',
message: '¿Cuál base de datos quieres utilizar?',
choices: [
{ title: 'Memory', value: 'memory' },
{ title: 'Json', value: 'json' },
{ title: 'Mongo', value: 'mongo' },
{ title: 'MySQL', value: 'mysql' },
],
max: 1,
hint: 'Espacio para seleccionar',
instructions: '↑/↓',
},
]
console.clear()
checkNodeVersion()
checkOs()
const onCancel = () => {
console.log('¡Proceso cancelado!')
return true
}
const response = await prompts(questions, { onCancel })
const { outDir = '', providerDb = [], providerWs = [] } = response
const createApp = async (templateName = null) => {
if (!templateName)
throw new Error('TEMPLATE_NAME_INVALID: ', templateName)
const possiblesPath = [
join(__dirname, '..', '..', 'starters', 'apps', templateName),
join(__dirname, '..', 'starters', 'apps', templateName),
join(__dirname, 'starters', 'apps', templateName),
]
const answer = outDir.toLowerCase() || 'n'
if (answer.includes('n')) return true
if (answer.includes('y')) {
const indexOfPath = possiblesPath.find((a) => existsSync(a))
await copyBaseApp(indexOfPath, join(process.cwd(), templateName))
console.log(``)
console.log(bgMagenta(`⚡⚡⚡ INSTRUCCIONES ⚡⚡⚡`))
console.log(yellow(`cd ${templateName}`))
console.log(yellow(`npm install`))
console.log(yellow(`npm start`))
console.log(``)
return outDir
}
}
/**
* Selccionar Provider (meta, twilio, etc...)
* @returns
*/
const vendorProvider = async () => {
const [answer] = providerWs
if (!providerWs.length) {
console.log(
red(
`Debes seleccionar un proveedor de whatsapp. Tecla [Space] para seleccionar`
)
)
process.exit(1)
}
return answer
}
/**
* Selecionar adaptador de base de datos
* @returns
*/
const dbProvider = async () => {
const [answer] = providerDb
if (!providerDb.length) {
console.log(
red(
`Debes seleccionar un proveedor de base de datos. Tecla [Space] para seleccionar`
)
)
process.exit(1)
}
return answer
}
const providerAdapter = await vendorProvider()
const dbAdapter = await dbProvider()
const NAME_DIR = ['base', providerAdapter, dbAdapter].join('-')
await createApp(NAME_DIR)
bannerDone()
}
module.exports = { startInteractive }

Some files were not shown because too many files have changed in this diff Show More