@builderbot/cli 1.0.4-alpha.0 → 1.0.6-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/dist/starters/apps/base-js-baileys-json/package.json +4 -4
  2. package/dist/starters/apps/base-js-baileys-json/src/app.js +3 -2
  3. package/dist/starters/apps/base-js-baileys-memory/package.json +4 -4
  4. package/dist/starters/apps/base-js-baileys-memory/src/app.js +1 -1
  5. package/dist/starters/apps/base-js-baileys-mongo/package.json +4 -4
  6. package/dist/starters/apps/base-js-baileys-mongo/src/app.js +88 -78
  7. package/dist/starters/apps/base-js-baileys-mysql/package.json +4 -4
  8. package/dist/starters/apps/base-js-baileys-mysql/src/app.js +89 -79
  9. package/dist/starters/apps/base-js-baileys-postgres/package.json +4 -4
  10. package/dist/starters/apps/base-js-baileys-postgres/src/app.js +91 -82
  11. package/dist/starters/apps/base-js-meta-json/package.json +4 -4
  12. package/dist/starters/apps/base-js-meta-json/src/app.js +90 -81
  13. package/dist/starters/apps/base-js-meta-memory/package.json +4 -4
  14. package/dist/starters/apps/base-js-meta-memory/src/app.js +89 -81
  15. package/dist/starters/apps/base-js-meta-mongo/package.json +4 -4
  16. package/dist/starters/apps/base-js-meta-mongo/src/app.js +92 -82
  17. package/dist/starters/apps/base-js-meta-mysql/package.json +4 -4
  18. package/dist/starters/apps/base-js-meta-mysql/src/app.js +93 -83
  19. package/dist/starters/apps/base-js-meta-postgres/package.json +4 -4
  20. package/dist/starters/apps/base-js-meta-postgres/src/app.js +95 -86
  21. package/dist/starters/apps/base-js-twilio-json/package.json +4 -4
  22. package/dist/starters/apps/base-js-twilio-json/src/app.js +87 -77
  23. package/dist/starters/apps/base-js-twilio-memory/package.json +4 -4
  24. package/dist/starters/apps/base-js-twilio-memory/src/app.js +86 -77
  25. package/dist/starters/apps/base-js-twilio-mongo/package.json +4 -4
  26. package/dist/starters/apps/base-js-twilio-mongo/src/app.js +88 -77
  27. package/dist/starters/apps/base-js-twilio-mysql/package.json +4 -4
  28. package/dist/starters/apps/base-js-twilio-mysql/src/app.js +89 -78
  29. package/dist/starters/apps/base-js-twilio-postgres/package.json +4 -4
  30. package/dist/starters/apps/base-js-twilio-postgres/src/app.js +92 -82
  31. package/dist/starters/apps/base-js-venom-json/package.json +4 -4
  32. package/dist/starters/apps/base-js-venom-json/src/app.js +86 -77
  33. package/dist/starters/apps/base-js-venom-memory/package.json +4 -4
  34. package/dist/starters/apps/base-js-venom-memory/src/app.js +85 -77
  35. package/dist/starters/apps/base-js-venom-mongo/package.json +4 -4
  36. package/dist/starters/apps/base-js-venom-mongo/src/app.js +88 -78
  37. package/dist/starters/apps/base-js-venom-mysql/package.json +4 -4
  38. package/dist/starters/apps/base-js-venom-mysql/src/app.js +89 -79
  39. package/dist/starters/apps/base-js-venom-postgres/package.json +4 -4
  40. package/dist/starters/apps/base-js-venom-postgres/src/app.js +91 -82
  41. package/dist/starters/apps/base-js-wppconnect-json/package.json +4 -4
  42. package/dist/starters/apps/base-js-wppconnect-json/src/app.js +86 -77
  43. package/dist/starters/apps/base-js-wppconnect-memory/package.json +4 -4
  44. package/dist/starters/apps/base-js-wppconnect-memory/src/app.js +85 -77
  45. package/dist/starters/apps/base-js-wppconnect-mongo/package.json +4 -4
  46. package/dist/starters/apps/base-js-wppconnect-mongo/src/app.js +88 -78
  47. package/dist/starters/apps/base-js-wppconnect-mysql/package.json +4 -4
  48. package/dist/starters/apps/base-js-wppconnect-mysql/src/app.js +89 -79
  49. package/dist/starters/apps/base-js-wppconnect-postgres/package.json +4 -4
  50. package/dist/starters/apps/base-js-wppconnect-postgres/src/app.js +91 -82
  51. package/dist/starters/apps/base-ts-baileys-json/package.json +7 -7
  52. package/dist/starters/apps/base-ts-baileys-json/rollup.config.js +12 -12
  53. package/dist/starters/apps/base-ts-baileys-json/src/app.ts +86 -77
  54. package/dist/starters/apps/base-ts-baileys-memory/package.json +7 -7
  55. package/dist/starters/apps/base-ts-baileys-memory/rollup.config.js +12 -12
  56. package/dist/starters/apps/base-ts-baileys-memory/src/app.ts +85 -77
  57. package/dist/starters/apps/base-ts-baileys-mongo/package.json +7 -7
  58. package/dist/starters/apps/base-ts-baileys-mongo/rollup.config.js +12 -12
  59. package/dist/starters/apps/base-ts-baileys-mongo/src/app.ts +88 -78
  60. package/dist/starters/apps/base-ts-baileys-mysql/package.json +7 -7
  61. package/dist/starters/apps/base-ts-baileys-mysql/rollup.config.js +12 -12
  62. package/dist/starters/apps/base-ts-baileys-mysql/src/app.ts +89 -79
  63. package/dist/starters/apps/base-ts-baileys-postgres/package.json +7 -7
  64. package/dist/starters/apps/base-ts-baileys-postgres/rollup.config.js +12 -12
  65. package/dist/starters/apps/base-ts-baileys-postgres/src/app.ts +91 -82
  66. package/dist/starters/apps/base-ts-meta-json/package.json +7 -7
  67. package/dist/starters/apps/base-ts-meta-json/rollup.config.js +12 -12
  68. package/dist/starters/apps/base-ts-meta-json/src/app.ts +90 -81
  69. package/dist/starters/apps/base-ts-meta-memory/package.json +7 -7
  70. package/dist/starters/apps/base-ts-meta-memory/rollup.config.js +12 -12
  71. package/dist/starters/apps/base-ts-meta-memory/src/app.ts +89 -81
  72. package/dist/starters/apps/base-ts-meta-mongo/package.json +7 -7
  73. package/dist/starters/apps/base-ts-meta-mongo/rollup.config.js +12 -12
  74. package/dist/starters/apps/base-ts-meta-mongo/src/app.ts +92 -82
  75. package/dist/starters/apps/base-ts-meta-mysql/package.json +7 -7
  76. package/dist/starters/apps/base-ts-meta-mysql/rollup.config.js +12 -12
  77. package/dist/starters/apps/base-ts-meta-mysql/src/app.ts +93 -83
  78. package/dist/starters/apps/base-ts-meta-postgres/package.json +7 -7
  79. package/dist/starters/apps/base-ts-meta-postgres/rollup.config.js +12 -12
  80. package/dist/starters/apps/base-ts-meta-postgres/src/app.ts +95 -86
  81. package/dist/starters/apps/base-ts-twilio-json/package.json +7 -7
  82. package/dist/starters/apps/base-ts-twilio-json/rollup.config.js +12 -12
  83. package/dist/starters/apps/base-ts-twilio-json/src/app.ts +87 -77
  84. package/dist/starters/apps/base-ts-twilio-memory/package.json +7 -7
  85. package/dist/starters/apps/base-ts-twilio-memory/rollup.config.js +12 -12
  86. package/dist/starters/apps/base-ts-twilio-memory/src/app.ts +86 -77
  87. package/dist/starters/apps/base-ts-twilio-mongo/package.json +7 -7
  88. package/dist/starters/apps/base-ts-twilio-mongo/rollup.config.js +12 -12
  89. package/dist/starters/apps/base-ts-twilio-mongo/src/app.ts +88 -77
  90. package/dist/starters/apps/base-ts-twilio-mysql/package.json +7 -7
  91. package/dist/starters/apps/base-ts-twilio-mysql/rollup.config.js +12 -12
  92. package/dist/starters/apps/base-ts-twilio-mysql/src/app.ts +89 -78
  93. package/dist/starters/apps/base-ts-twilio-postgres/package.json +7 -7
  94. package/dist/starters/apps/base-ts-twilio-postgres/rollup.config.js +12 -12
  95. package/dist/starters/apps/base-ts-twilio-postgres/src/app.ts +92 -82
  96. package/dist/starters/apps/base-ts-venom-json/package.json +7 -7
  97. package/dist/starters/apps/base-ts-venom-json/rollup.config.js +12 -12
  98. package/dist/starters/apps/base-ts-venom-json/src/app.ts +86 -77
  99. package/dist/starters/apps/base-ts-venom-memory/package.json +7 -7
  100. package/dist/starters/apps/base-ts-venom-memory/rollup.config.js +12 -12
  101. package/dist/starters/apps/base-ts-venom-memory/src/app.ts +85 -77
  102. package/dist/starters/apps/base-ts-venom-mongo/package.json +7 -7
  103. package/dist/starters/apps/base-ts-venom-mongo/rollup.config.js +12 -12
  104. package/dist/starters/apps/base-ts-venom-mongo/src/app.ts +88 -78
  105. package/dist/starters/apps/base-ts-venom-mysql/package.json +7 -7
  106. package/dist/starters/apps/base-ts-venom-mysql/rollup.config.js +12 -12
  107. package/dist/starters/apps/base-ts-venom-mysql/src/app.ts +89 -79
  108. package/dist/starters/apps/base-ts-venom-postgres/package.json +7 -7
  109. package/dist/starters/apps/base-ts-venom-postgres/rollup.config.js +12 -12
  110. package/dist/starters/apps/base-ts-venom-postgres/src/app.ts +91 -82
  111. package/dist/starters/apps/base-ts-wppconnect-json/package.json +7 -7
  112. package/dist/starters/apps/base-ts-wppconnect-json/rollup.config.js +12 -12
  113. package/dist/starters/apps/base-ts-wppconnect-json/src/app.ts +86 -77
  114. package/dist/starters/apps/base-ts-wppconnect-memory/package.json +7 -7
  115. package/dist/starters/apps/base-ts-wppconnect-memory/rollup.config.js +12 -12
  116. package/dist/starters/apps/base-ts-wppconnect-memory/src/app.ts +85 -77
  117. package/dist/starters/apps/base-ts-wppconnect-mongo/package.json +7 -7
  118. package/dist/starters/apps/base-ts-wppconnect-mongo/rollup.config.js +12 -12
  119. package/dist/starters/apps/base-ts-wppconnect-mongo/src/app.ts +88 -78
  120. package/dist/starters/apps/base-ts-wppconnect-mysql/package.json +7 -7
  121. package/dist/starters/apps/base-ts-wppconnect-mysql/rollup.config.js +12 -12
  122. package/dist/starters/apps/base-ts-wppconnect-mysql/src/app.ts +89 -79
  123. package/dist/starters/apps/base-ts-wppconnect-postgres/package.json +7 -7
  124. package/dist/starters/apps/base-ts-wppconnect-postgres/rollup.config.js +12 -12
  125. package/dist/starters/apps/base-ts-wppconnect-postgres/src/app.ts +91 -82
  126. package/package.json +2 -2
@@ -1,83 +1,92 @@
1
- import { createBot, createProvider, createFlow, addKeyword, utils } from '@bot-whatsapp/bot'
1
+ import { createBot, createProvider, createFlow, addKeyword, utils } from '@bot-whatsapp/bot'
2
2
  import { MemoryDB as Database } from '@bot-whatsapp/bot'
3
- import { TwilioProvider as Provider } from '@bot-whatsapp/provider-twilio'
4
- const PORT = process.env.PORT ?? 3008
5
-
6
- const discordFlow = addKeyword<Provider, Database>('doc').addAnswer(
7
- [
8
- 'You can see the documentation here',
9
- '📄 https://builderbot.app/docs \n',
10
- 'Do you want to continue? *yes*'
11
- ].join('\n'), { capture: true }, async (ctx, { gotoFlow, flowDynamic }) => {
12
- if (ctx.body.toLocaleLowerCase().includes('yes')) {
13
- return gotoFlow(registerFlow)
14
- }
15
- await flowDynamic('Thanks!')
16
- return
17
- }
18
- )
19
-
20
- const welcomeFlow = addKeyword<Provider, Database>(['hi', 'hello', 'hola'])
21
- .addAnswer(`🙌 Hello welcome to this *Chatbot*`)
22
- .addAnswer(
23
- [
24
- 'I share with you the following links of interest about the project',
25
- '👉 *doc* to view the documentation',
26
- ].join('\n'),
27
- { delay: 800 },
28
- null,
29
- [discordFlow]
30
- )
31
-
32
- const registerFlow = addKeyword<Provider, Database>(utils.setEvent('REGISTER_FLOW'))
33
- .addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
34
- await state.update({ name: ctx.body })
35
- })
36
- .addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
37
- await state.update({ age: ctx.body })
38
- })
39
- .addAction(async (_, { flowDynamic, state }) => {
40
- await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
41
- })
42
-
43
- const main = async () => {
44
-
45
- const adapterFlow = createFlow([welcomeFlow, registerFlow])
3
+ import { TwilioProvider as Provider } from '@bot-whatsapp/provider-twilio'
4
+
5
+ const PORT = process.env.PORT ?? 3008
6
+
7
+ const discordFlow = addKeyword<Provider, Database>('doc').addAnswer(
8
+ ['You can see the documentation here', '📄 https://builderbot.app/docs \n', 'Do you want to continue? *yes*'].join(
9
+ '\n'
10
+ ),
11
+ { capture: true },
12
+ async (ctx, { gotoFlow, flowDynamic }) => {
13
+ if (ctx.body.toLocaleLowerCase().includes('yes')) {
14
+ return gotoFlow(registerFlow)
15
+ }
16
+ await flowDynamic('Thanks!')
17
+ return
18
+ }
19
+ )
20
+
21
+ const welcomeFlow = addKeyword<Provider, Database>(['hi', 'hello', 'hola'])
22
+ .addAnswer(`🙌 Hello welcome to this *Chatbot*`)
23
+ .addAnswer(
24
+ [
25
+ 'I share with you the following links of interest about the project',
26
+ '👉 *doc* to view the documentation',
27
+ ].join('\n'),
28
+ { delay: 800 },
29
+ null,
30
+ [discordFlow]
31
+ )
32
+
33
+ const registerFlow = addKeyword<Provider, Database>(utils.setEvent('REGISTER_FLOW'))
34
+ .addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
35
+ await state.update({ name: ctx.body })
36
+ })
37
+ .addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
38
+ await state.update({ age: ctx.body })
39
+ })
40
+ .addAction(async (_, { flowDynamic, state }) => {
41
+ await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
42
+ })
43
+
44
+ const main = async () => {
45
+ const adapterFlow = createFlow([welcomeFlow, registerFlow])
46
46
  const adapterProvider = createProvider(Provider, {
47
47
  accountSid: 'YOUR_ACCOUNT_SID',
48
48
  authToken: 'YOUR_ACCOUNT_TOKEN',
49
49
  vendorNumber: '+14100000000',
50
- })
50
+ })
51
51
  const adapterDB = new Database()
52
-
53
- const { handleCtx, httpServer } = await createBot({
54
- flow: adapterFlow,
55
- provider: adapterProvider,
56
- database: adapterDB,
57
- })
58
-
59
- httpServer(+PORT)
60
-
61
- adapterProvider.http.server.post('/v1/messages', handleCtx(async (bot, req, res) => {
62
- const { number, message, urlMedia } = req.body
63
- await bot.sendMessage(number, message, { media: urlMedia ?? null })
64
- return res.end('sended')
65
- }))
66
-
67
- adapterProvider.http.server.post('/v1/register', handleCtx(async (bot, req, res) => {
68
- const { number, name } = req.body
69
- await bot.dispatch('REGISTER_FLOW', { from: number, name })
70
- return res.end('trigger')
71
- }))
72
-
73
- adapterProvider.http.server.post('/v1/blacklist', handleCtx(async (bot, req, res) => {
74
- const { number, intent } = req.body
75
- if (intent === 'remove') bot.blacklist.remove(`340000000`)
76
- if (intent === 'add') bot.blacklist.add(`340000000`)
77
-
78
- res.writeHead(200, { 'Content-Type': 'application/json' })
79
- return res.end(JSON.stringify({ status: 'ok', number, intent }))
80
- }))
81
- }
82
-
83
- main()
52
+
53
+ const { handleCtx, httpServer } = await createBot({
54
+ flow: adapterFlow,
55
+ provider: adapterProvider,
56
+ database: adapterDB,
57
+ })
58
+
59
+ httpServer(+PORT)
60
+
61
+ adapterProvider.http.server.post(
62
+ '/v1/messages',
63
+ handleCtx(async (bot, req, res) => {
64
+ const { number, message, urlMedia } = req.body
65
+ await bot.sendMessage(number, message, { media: urlMedia ?? null })
66
+ return res.end('sended')
67
+ })
68
+ )
69
+
70
+ adapterProvider.http.server.post(
71
+ '/v1/register',
72
+ handleCtx(async (bot, req, res) => {
73
+ const { number, name } = req.body
74
+ await bot.dispatch('REGISTER_FLOW', { from: number, name })
75
+ return res.end('trigger')
76
+ })
77
+ )
78
+
79
+ adapterProvider.http.server.post(
80
+ '/v1/blacklist',
81
+ handleCtx(async (bot, req, res) => {
82
+ const { number, intent } = req.body
83
+ if (intent === 'remove') bot.blacklist.remove(`340000000`)
84
+ if (intent === 'add') bot.blacklist.add(`340000000`)
85
+
86
+ res.writeHead(200, { 'Content-Type': 'application/json' })
87
+ return res.end(JSON.stringify({ status: 'ok', number, intent }))
88
+ })
89
+ )
90
+ }
91
+
92
+ main()
@@ -6,21 +6,21 @@
6
6
  "type": "module",
7
7
  "scripts": {
8
8
  "prestart": "npx eslint . --no-ignore",
9
- "pre-copy": "cd .. && npm run copy.lib base-baileys-json",
10
9
  "start": "node dist/app.js",
11
- "dev": "npx tsx src/app.ts",
12
- "build": "npx rollup -c"
10
+ "dev": "nodemon src/app.ts",
11
+ "build": "npx rollup -c"
13
12
  },
14
13
  "keywords": [],
15
14
  "dependencies": {
16
- "@bot-whatsapp/bot": "latest",
17
- "@bot-whatsapp/database-json": "latest",
18
- "@bot-whatsapp/provider-baileys": "latest"
15
+ "@builderbot/bot": "latest",
16
+ "@builderbot/database-json": "latest",
17
+ "@builderbot/provider-baileys": "latest"
19
18
  },
20
19
  "devDependencies": {
20
+ "nodemon": "^3.1.0",
21
21
  "@rollup/plugin-terser": "^0.4.4",
22
22
  "eslint": "^8.52.0",
23
- "eslint-plugin-bot-whatsapp": "latest",
23
+ "eslint-plugin-builderbot": "latest",
24
24
  "rollup": "^4.10.0",
25
25
  "rollup-plugin-typescript2": "^0.36.0",
26
26
  "tsx": "^4.7.1"
@@ -1,12 +1,12 @@
1
- import terser from '@rollup/plugin-terser'
2
- import typescript from 'rollup-plugin-typescript2'
3
-
4
- export default {
5
- input: 'src/app.ts',
6
- output: {
7
- file: 'dist/app.js',
8
- format: 'esm',
9
- },
10
-
11
- plugins: [typescript(), terser()],
12
- }
1
+ import terser from '@rollup/plugin-terser'
2
+ import typescript from 'rollup-plugin-typescript2'
3
+
4
+ export default {
5
+ input: 'src/app.ts',
6
+ output: {
7
+ file: 'dist/app.js',
8
+ format: 'esm',
9
+ },
10
+
11
+ plugins: [typescript(), terser()],
12
+ }
@@ -1,84 +1,95 @@
1
- import { createBot, createProvider, createFlow, addKeyword, utils } from '@bot-whatsapp/bot'
2
- import { MongoAdapter as Database } from '@bot-whatsapp/database-mongo'import { TwilioProvider as Provider } from '@bot-whatsapp/provider-twilio'
3
- const PORT = process.env.PORT ?? 3008
4
-
5
- const discordFlow = addKeyword<Provider, Database>('doc').addAnswer(
6
- [
7
- 'You can see the documentation here',
8
- '📄 https://builderbot.app/docs \n',
9
- 'Do you want to continue? *yes*'
10
- ].join('\n'), { capture: true }, async (ctx, { gotoFlow, flowDynamic }) => {
11
- if (ctx.body.toLocaleLowerCase().includes('yes')) {
12
- return gotoFlow(registerFlow)
13
- }
14
- await flowDynamic('Thanks!')
15
- return
16
- }
17
- )
18
-
19
- const welcomeFlow = addKeyword<Provider, Database>(['hi', 'hello', 'hola'])
20
- .addAnswer(`🙌 Hello welcome to this *Chatbot*`)
21
- .addAnswer(
22
- [
23
- 'I share with you the following links of interest about the project',
24
- '👉 *doc* to view the documentation',
25
- ].join('\n'),
26
- { delay: 800 },
27
- null,
28
- [discordFlow]
29
- )
30
-
31
- const registerFlow = addKeyword<Provider, Database>(utils.setEvent('REGISTER_FLOW'))
32
- .addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
33
- await state.update({ name: ctx.body })
34
- })
35
- .addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
36
- await state.update({ age: ctx.body })
37
- })
38
- .addAction(async (_, { flowDynamic, state }) => {
39
- await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
40
- })
41
-
42
- const main = async () => {
43
-
44
- const adapterFlow = createFlow([welcomeFlow, registerFlow])
1
+ import { createBot, createProvider, createFlow, addKeyword, utils } from '@bot-whatsapp/bot'
2
+ import { MongoAdapter as Database } from '@bot-whatsapp/database-mongo'
3
+ import { TwilioProvider as Provider } from '@bot-whatsapp/provider-twilio'
4
+
5
+ const PORT = process.env.PORT ?? 3008
6
+
7
+ const discordFlow = addKeyword<Provider, Database>('doc').addAnswer(
8
+ ['You can see the documentation here', '📄 https://builderbot.app/docs \n', 'Do you want to continue? *yes*'].join(
9
+ '\n'
10
+ ),
11
+ { capture: true },
12
+ async (ctx, { gotoFlow, flowDynamic }) => {
13
+ if (ctx.body.toLocaleLowerCase().includes('yes')) {
14
+ return gotoFlow(registerFlow)
15
+ }
16
+ await flowDynamic('Thanks!')
17
+ return
18
+ }
19
+ )
20
+
21
+ const welcomeFlow = addKeyword<Provider, Database>(['hi', 'hello', 'hola'])
22
+ .addAnswer(`🙌 Hello welcome to this *Chatbot*`)
23
+ .addAnswer(
24
+ [
25
+ 'I share with you the following links of interest about the project',
26
+ '👉 *doc* to view the documentation',
27
+ ].join('\n'),
28
+ { delay: 800 },
29
+ null,
30
+ [discordFlow]
31
+ )
32
+
33
+ const registerFlow = addKeyword<Provider, Database>(utils.setEvent('REGISTER_FLOW'))
34
+ .addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
35
+ await state.update({ name: ctx.body })
36
+ })
37
+ .addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
38
+ await state.update({ age: ctx.body })
39
+ })
40
+ .addAction(async (_, { flowDynamic, state }) => {
41
+ await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
42
+ })
43
+
44
+ const main = async () => {
45
+ const adapterFlow = createFlow([welcomeFlow, registerFlow])
45
46
  const adapterProvider = createProvider(Provider, {
46
47
  accountSid: 'YOUR_ACCOUNT_SID',
47
48
  authToken: 'YOUR_ACCOUNT_TOKEN',
48
49
  vendorNumber: '+14100000000',
49
- })
50
+ })
50
51
  const adapterDB = new Database({
51
52
  dbUri: process.env.MONGO_DB_URI,
52
53
  dbName: process.env.MONGO_DB_NAME,
53
- })
54
- const { handleCtx, httpServer } = await createBot({
55
- flow: adapterFlow,
56
- provider: adapterProvider,
57
- database: adapterDB,
58
- })
59
-
60
- httpServer(+PORT)
61
-
62
- adapterProvider.http.server.post('/v1/messages', handleCtx(async (bot, req, res) => {
63
- const { number, message, urlMedia } = req.body
64
- await bot.sendMessage(number, message, { media: urlMedia ?? null })
65
- return res.end('sended')
66
- }))
67
-
68
- adapterProvider.http.server.post('/v1/register', handleCtx(async (bot, req, res) => {
69
- const { number, name } = req.body
70
- await bot.dispatch('REGISTER_FLOW', { from: number, name })
71
- return res.end('trigger')
72
- }))
73
-
74
- adapterProvider.http.server.post('/v1/blacklist', handleCtx(async (bot, req, res) => {
75
- const { number, intent } = req.body
76
- if (intent === 'remove') bot.blacklist.remove(`340000000`)
77
- if (intent === 'add') bot.blacklist.add(`340000000`)
78
-
79
- res.writeHead(200, { 'Content-Type': 'application/json' })
80
- return res.end(JSON.stringify({ status: 'ok', number, intent }))
81
- }))
82
- }
83
-
84
- main()
54
+ })
55
+
56
+ const { handleCtx, httpServer } = await createBot({
57
+ flow: adapterFlow,
58
+ provider: adapterProvider,
59
+ database: adapterDB,
60
+ })
61
+
62
+ httpServer(+PORT)
63
+
64
+ adapterProvider.http.server.post(
65
+ '/v1/messages',
66
+ handleCtx(async (bot, req, res) => {
67
+ const { number, message, urlMedia } = req.body
68
+ await bot.sendMessage(number, message, { media: urlMedia ?? null })
69
+ return res.end('sended')
70
+ })
71
+ )
72
+
73
+ adapterProvider.http.server.post(
74
+ '/v1/register',
75
+ handleCtx(async (bot, req, res) => {
76
+ const { number, name } = req.body
77
+ await bot.dispatch('REGISTER_FLOW', { from: number, name })
78
+ return res.end('trigger')
79
+ })
80
+ )
81
+
82
+ adapterProvider.http.server.post(
83
+ '/v1/blacklist',
84
+ handleCtx(async (bot, req, res) => {
85
+ const { number, intent } = req.body
86
+ if (intent === 'remove') bot.blacklist.remove(`340000000`)
87
+ if (intent === 'add') bot.blacklist.add(`340000000`)
88
+
89
+ res.writeHead(200, { 'Content-Type': 'application/json' })
90
+ return res.end(JSON.stringify({ status: 'ok', number, intent }))
91
+ })
92
+ )
93
+ }
94
+
95
+ main()
@@ -6,21 +6,21 @@
6
6
  "type": "module",
7
7
  "scripts": {
8
8
  "prestart": "npx eslint . --no-ignore",
9
- "pre-copy": "cd .. && npm run copy.lib base-baileys-json",
10
9
  "start": "node dist/app.js",
11
- "dev": "npx tsx src/app.ts",
12
- "build": "npx rollup -c"
10
+ "dev": "nodemon src/app.ts",
11
+ "build": "npx rollup -c"
13
12
  },
14
13
  "keywords": [],
15
14
  "dependencies": {
16
- "@bot-whatsapp/bot": "latest",
17
- "@bot-whatsapp/database-json": "latest",
18
- "@bot-whatsapp/provider-baileys": "latest"
15
+ "@builderbot/bot": "latest",
16
+ "@builderbot/database-json": "latest",
17
+ "@builderbot/provider-baileys": "latest"
19
18
  },
20
19
  "devDependencies": {
20
+ "nodemon": "^3.1.0",
21
21
  "@rollup/plugin-terser": "^0.4.4",
22
22
  "eslint": "^8.52.0",
23
- "eslint-plugin-bot-whatsapp": "latest",
23
+ "eslint-plugin-builderbot": "latest",
24
24
  "rollup": "^4.10.0",
25
25
  "rollup-plugin-typescript2": "^0.36.0",
26
26
  "tsx": "^4.7.1"
@@ -1,12 +1,12 @@
1
- import terser from '@rollup/plugin-terser'
2
- import typescript from 'rollup-plugin-typescript2'
3
-
4
- export default {
5
- input: 'src/app.ts',
6
- output: {
7
- file: 'dist/app.js',
8
- format: 'esm',
9
- },
10
-
11
- plugins: [typescript(), terser()],
12
- }
1
+ import terser from '@rollup/plugin-terser'
2
+ import typescript from 'rollup-plugin-typescript2'
3
+
4
+ export default {
5
+ input: 'src/app.ts',
6
+ output: {
7
+ file: 'dist/app.js',
8
+ format: 'esm',
9
+ },
10
+
11
+ plugins: [typescript(), terser()],
12
+ }
@@ -1,86 +1,97 @@
1
- import { createBot, createProvider, createFlow, addKeyword, utils } from '@bot-whatsapp/bot'
2
- import { MysqlAdapter as Database } from '@bot-whatsapp/database-mysql'import { TwilioProvider as Provider } from '@bot-whatsapp/provider-twilio'
3
- const PORT = process.env.PORT ?? 3008
4
-
5
- const discordFlow = addKeyword<Provider, Database>('doc').addAnswer(
6
- [
7
- 'You can see the documentation here',
8
- '📄 https://builderbot.app/docs \n',
9
- 'Do you want to continue? *yes*'
10
- ].join('\n'), { capture: true }, async (ctx, { gotoFlow, flowDynamic }) => {
11
- if (ctx.body.toLocaleLowerCase().includes('yes')) {
12
- return gotoFlow(registerFlow)
13
- }
14
- await flowDynamic('Thanks!')
15
- return
16
- }
17
- )
18
-
19
- const welcomeFlow = addKeyword<Provider, Database>(['hi', 'hello', 'hola'])
20
- .addAnswer(`🙌 Hello welcome to this *Chatbot*`)
21
- .addAnswer(
22
- [
23
- 'I share with you the following links of interest about the project',
24
- '👉 *doc* to view the documentation',
25
- ].join('\n'),
26
- { delay: 800 },
27
- null,
28
- [discordFlow]
29
- )
30
-
31
- const registerFlow = addKeyword<Provider, Database>(utils.setEvent('REGISTER_FLOW'))
32
- .addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
33
- await state.update({ name: ctx.body })
34
- })
35
- .addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
36
- await state.update({ age: ctx.body })
37
- })
38
- .addAction(async (_, { flowDynamic, state }) => {
39
- await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
40
- })
41
-
42
- const main = async () => {
43
-
44
- const adapterFlow = createFlow([welcomeFlow, registerFlow])
1
+ import { createBot, createProvider, createFlow, addKeyword, utils } from '@bot-whatsapp/bot'
2
+ import { MysqlAdapter as Database } from '@bot-whatsapp/database-mysql'
3
+ import { TwilioProvider as Provider } from '@bot-whatsapp/provider-twilio'
4
+
5
+ const PORT = process.env.PORT ?? 3008
6
+
7
+ const discordFlow = addKeyword<Provider, Database>('doc').addAnswer(
8
+ ['You can see the documentation here', '📄 https://builderbot.app/docs \n', 'Do you want to continue? *yes*'].join(
9
+ '\n'
10
+ ),
11
+ { capture: true },
12
+ async (ctx, { gotoFlow, flowDynamic }) => {
13
+ if (ctx.body.toLocaleLowerCase().includes('yes')) {
14
+ return gotoFlow(registerFlow)
15
+ }
16
+ await flowDynamic('Thanks!')
17
+ return
18
+ }
19
+ )
20
+
21
+ const welcomeFlow = addKeyword<Provider, Database>(['hi', 'hello', 'hola'])
22
+ .addAnswer(`🙌 Hello welcome to this *Chatbot*`)
23
+ .addAnswer(
24
+ [
25
+ 'I share with you the following links of interest about the project',
26
+ '👉 *doc* to view the documentation',
27
+ ].join('\n'),
28
+ { delay: 800 },
29
+ null,
30
+ [discordFlow]
31
+ )
32
+
33
+ const registerFlow = addKeyword<Provider, Database>(utils.setEvent('REGISTER_FLOW'))
34
+ .addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
35
+ await state.update({ name: ctx.body })
36
+ })
37
+ .addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
38
+ await state.update({ age: ctx.body })
39
+ })
40
+ .addAction(async (_, { flowDynamic, state }) => {
41
+ await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
42
+ })
43
+
44
+ const main = async () => {
45
+ const adapterFlow = createFlow([welcomeFlow, registerFlow])
45
46
  const adapterProvider = createProvider(Provider, {
46
47
  accountSid: 'YOUR_ACCOUNT_SID',
47
48
  authToken: 'YOUR_ACCOUNT_TOKEN',
48
49
  vendorNumber: '+14100000000',
49
- })
50
- const adapterDB = new Database({
50
+ })
51
+ const adapterDB = new Database({
51
52
  host: process.env.MYSQL_DB_HOST,
52
53
  user: process.env.MYSQL_DB_USER,
53
54
  database: process.env.MYSQL_DB_NAME,
54
55
  password: process.env.MYSQL_DB_PASSWORD,
55
- })
56
- const { handleCtx, httpServer } = await createBot({
57
- flow: adapterFlow,
58
- provider: adapterProvider,
59
- database: adapterDB,
60
- })
61
-
62
- httpServer(+PORT)
63
-
64
- adapterProvider.http.server.post('/v1/messages', handleCtx(async (bot, req, res) => {
65
- const { number, message, urlMedia } = req.body
66
- await bot.sendMessage(number, message, { media: urlMedia ?? null })
67
- return res.end('sended')
68
- }))
69
-
70
- adapterProvider.http.server.post('/v1/register', handleCtx(async (bot, req, res) => {
71
- const { number, name } = req.body
72
- await bot.dispatch('REGISTER_FLOW', { from: number, name })
73
- return res.end('trigger')
74
- }))
75
-
76
- adapterProvider.http.server.post('/v1/blacklist', handleCtx(async (bot, req, res) => {
77
- const { number, intent } = req.body
78
- if (intent === 'remove') bot.blacklist.remove(`340000000`)
79
- if (intent === 'add') bot.blacklist.add(`340000000`)
80
-
81
- res.writeHead(200, { 'Content-Type': 'application/json' })
82
- return res.end(JSON.stringify({ status: 'ok', number, intent }))
83
- }))
84
- }
85
-
86
- main()
56
+ })
57
+
58
+ const { handleCtx, httpServer } = await createBot({
59
+ flow: adapterFlow,
60
+ provider: adapterProvider,
61
+ database: adapterDB,
62
+ })
63
+
64
+ httpServer(+PORT)
65
+
66
+ adapterProvider.http.server.post(
67
+ '/v1/messages',
68
+ handleCtx(async (bot, req, res) => {
69
+ const { number, message, urlMedia } = req.body
70
+ await bot.sendMessage(number, message, { media: urlMedia ?? null })
71
+ return res.end('sended')
72
+ })
73
+ )
74
+
75
+ adapterProvider.http.server.post(
76
+ '/v1/register',
77
+ handleCtx(async (bot, req, res) => {
78
+ const { number, name } = req.body
79
+ await bot.dispatch('REGISTER_FLOW', { from: number, name })
80
+ return res.end('trigger')
81
+ })
82
+ )
83
+
84
+ adapterProvider.http.server.post(
85
+ '/v1/blacklist',
86
+ handleCtx(async (bot, req, res) => {
87
+ const { number, intent } = req.body
88
+ if (intent === 'remove') bot.blacklist.remove(`340000000`)
89
+ if (intent === 'add') bot.blacklist.add(`340000000`)
90
+
91
+ res.writeHead(200, { 'Content-Type': 'application/json' })
92
+ return res.end(JSON.stringify({ status: 'ok', number, intent }))
93
+ })
94
+ )
95
+ }
96
+
97
+ main()