@builderbot/cli 1.0.28-alpha.0 → 1.0.29-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 (102) hide show
  1. package/dist/index.cjs +1797 -1883
  2. package/dist/starters/apps/base-js-baileys-json/src/app.js +115 -115
  3. package/dist/starters/apps/base-js-baileys-memory/src/app.js +114 -114
  4. package/dist/starters/apps/base-js-baileys-mongo/src/app.js +117 -117
  5. package/dist/starters/apps/base-js-baileys-mysql/src/app.js +119 -119
  6. package/dist/starters/apps/base-js-baileys-postgres/src/app.js +120 -120
  7. package/dist/starters/apps/base-js-meta-json/src/app.js +119 -119
  8. package/dist/starters/apps/base-js-meta-memory/src/app.js +118 -118
  9. package/dist/starters/apps/base-js-meta-mongo/src/app.js +121 -121
  10. package/dist/starters/apps/base-js-meta-mysql/src/app.js +123 -123
  11. package/dist/starters/apps/base-js-meta-postgres/src/app.js +124 -124
  12. package/dist/starters/apps/base-js-twilio-json/src/app.js +118 -118
  13. package/dist/starters/apps/base-js-twilio-memory/src/app.js +117 -117
  14. package/dist/starters/apps/base-js-twilio-mongo/src/app.js +120 -120
  15. package/dist/starters/apps/base-js-twilio-mysql/src/app.js +122 -122
  16. package/dist/starters/apps/base-js-twilio-postgres/src/app.js +123 -123
  17. package/dist/starters/apps/base-js-venom-json/src/app.js +115 -115
  18. package/dist/starters/apps/base-js-venom-memory/src/app.js +114 -114
  19. package/dist/starters/apps/base-js-venom-mongo/src/app.js +117 -117
  20. package/dist/starters/apps/base-js-venom-mysql/src/app.js +119 -119
  21. package/dist/starters/apps/base-js-venom-postgres/src/app.js +120 -120
  22. package/dist/starters/apps/base-js-wppconnect-json/src/app.js +115 -115
  23. package/dist/starters/apps/base-js-wppconnect-memory/src/app.js +114 -114
  24. package/dist/starters/apps/base-js-wppconnect-mongo/src/app.js +117 -117
  25. package/dist/starters/apps/base-js-wppconnect-mysql/src/app.js +119 -119
  26. package/dist/starters/apps/base-js-wppconnect-postgres/src/app.js +120 -120
  27. package/dist/starters/apps/base-ts-baileys-json/package.json +29 -29
  28. package/dist/starters/apps/base-ts-baileys-json/rollup.config.js +11 -11
  29. package/dist/starters/apps/base-ts-baileys-json/src/app.ts +116 -116
  30. package/dist/starters/apps/base-ts-baileys-memory/package.json +28 -28
  31. package/dist/starters/apps/base-ts-baileys-memory/rollup.config.js +11 -11
  32. package/dist/starters/apps/base-ts-baileys-memory/src/app.ts +115 -115
  33. package/dist/starters/apps/base-ts-baileys-mongo/package.json +29 -29
  34. package/dist/starters/apps/base-ts-baileys-mongo/rollup.config.js +11 -11
  35. package/dist/starters/apps/base-ts-baileys-mongo/src/app.ts +118 -118
  36. package/dist/starters/apps/base-ts-baileys-mysql/package.json +29 -29
  37. package/dist/starters/apps/base-ts-baileys-mysql/rollup.config.js +11 -11
  38. package/dist/starters/apps/base-ts-baileys-mysql/src/app.ts +120 -120
  39. package/dist/starters/apps/base-ts-baileys-postgres/package.json +29 -29
  40. package/dist/starters/apps/base-ts-baileys-postgres/rollup.config.js +11 -11
  41. package/dist/starters/apps/base-ts-baileys-postgres/src/app.ts +121 -121
  42. package/dist/starters/apps/base-ts-meta-json/package.json +29 -29
  43. package/dist/starters/apps/base-ts-meta-json/rollup.config.js +11 -11
  44. package/dist/starters/apps/base-ts-meta-json/src/app.ts +120 -120
  45. package/dist/starters/apps/base-ts-meta-memory/package.json +28 -28
  46. package/dist/starters/apps/base-ts-meta-memory/rollup.config.js +11 -11
  47. package/dist/starters/apps/base-ts-meta-memory/src/app.ts +119 -119
  48. package/dist/starters/apps/base-ts-meta-mongo/package.json +29 -29
  49. package/dist/starters/apps/base-ts-meta-mongo/rollup.config.js +11 -11
  50. package/dist/starters/apps/base-ts-meta-mongo/src/app.ts +122 -122
  51. package/dist/starters/apps/base-ts-meta-mysql/package.json +29 -29
  52. package/dist/starters/apps/base-ts-meta-mysql/rollup.config.js +11 -11
  53. package/dist/starters/apps/base-ts-meta-mysql/src/app.ts +124 -124
  54. package/dist/starters/apps/base-ts-meta-postgres/package.json +29 -29
  55. package/dist/starters/apps/base-ts-meta-postgres/rollup.config.js +11 -11
  56. package/dist/starters/apps/base-ts-meta-postgres/src/app.ts +125 -125
  57. package/dist/starters/apps/base-ts-twilio-json/package.json +29 -29
  58. package/dist/starters/apps/base-ts-twilio-json/rollup.config.js +11 -11
  59. package/dist/starters/apps/base-ts-twilio-json/src/app.ts +119 -119
  60. package/dist/starters/apps/base-ts-twilio-memory/package.json +28 -28
  61. package/dist/starters/apps/base-ts-twilio-memory/rollup.config.js +11 -11
  62. package/dist/starters/apps/base-ts-twilio-memory/src/app.ts +118 -118
  63. package/dist/starters/apps/base-ts-twilio-mongo/package.json +29 -29
  64. package/dist/starters/apps/base-ts-twilio-mongo/rollup.config.js +11 -11
  65. package/dist/starters/apps/base-ts-twilio-mongo/src/app.ts +121 -121
  66. package/dist/starters/apps/base-ts-twilio-mysql/package.json +29 -29
  67. package/dist/starters/apps/base-ts-twilio-mysql/rollup.config.js +11 -11
  68. package/dist/starters/apps/base-ts-twilio-mysql/src/app.ts +123 -123
  69. package/dist/starters/apps/base-ts-twilio-postgres/package.json +29 -29
  70. package/dist/starters/apps/base-ts-twilio-postgres/rollup.config.js +11 -11
  71. package/dist/starters/apps/base-ts-twilio-postgres/src/app.ts +124 -124
  72. package/dist/starters/apps/base-ts-venom-json/package.json +29 -29
  73. package/dist/starters/apps/base-ts-venom-json/rollup.config.js +11 -11
  74. package/dist/starters/apps/base-ts-venom-json/src/app.ts +116 -116
  75. package/dist/starters/apps/base-ts-venom-memory/package.json +28 -28
  76. package/dist/starters/apps/base-ts-venom-memory/rollup.config.js +11 -11
  77. package/dist/starters/apps/base-ts-venom-memory/src/app.ts +115 -115
  78. package/dist/starters/apps/base-ts-venom-mongo/package.json +29 -29
  79. package/dist/starters/apps/base-ts-venom-mongo/rollup.config.js +11 -11
  80. package/dist/starters/apps/base-ts-venom-mongo/src/app.ts +118 -118
  81. package/dist/starters/apps/base-ts-venom-mysql/package.json +29 -29
  82. package/dist/starters/apps/base-ts-venom-mysql/rollup.config.js +11 -11
  83. package/dist/starters/apps/base-ts-venom-mysql/src/app.ts +120 -120
  84. package/dist/starters/apps/base-ts-venom-postgres/package.json +29 -29
  85. package/dist/starters/apps/base-ts-venom-postgres/rollup.config.js +11 -11
  86. package/dist/starters/apps/base-ts-venom-postgres/src/app.ts +121 -121
  87. package/dist/starters/apps/base-ts-wppconnect-json/package.json +29 -29
  88. package/dist/starters/apps/base-ts-wppconnect-json/rollup.config.js +11 -11
  89. package/dist/starters/apps/base-ts-wppconnect-json/src/app.ts +116 -116
  90. package/dist/starters/apps/base-ts-wppconnect-memory/package.json +28 -28
  91. package/dist/starters/apps/base-ts-wppconnect-memory/rollup.config.js +11 -11
  92. package/dist/starters/apps/base-ts-wppconnect-memory/src/app.ts +115 -115
  93. package/dist/starters/apps/base-ts-wppconnect-mongo/package.json +29 -29
  94. package/dist/starters/apps/base-ts-wppconnect-mongo/rollup.config.js +11 -11
  95. package/dist/starters/apps/base-ts-wppconnect-mongo/src/app.ts +118 -118
  96. package/dist/starters/apps/base-ts-wppconnect-mysql/package.json +29 -29
  97. package/dist/starters/apps/base-ts-wppconnect-mysql/rollup.config.js +11 -11
  98. package/dist/starters/apps/base-ts-wppconnect-mysql/src/app.ts +120 -120
  99. package/dist/starters/apps/base-ts-wppconnect-postgres/package.json +29 -29
  100. package/dist/starters/apps/base-ts-wppconnect-postgres/rollup.config.js +11 -11
  101. package/dist/starters/apps/base-ts-wppconnect-postgres/src/app.ts +121 -121
  102. package/package.json +2 -2
@@ -1,30 +1,30 @@
1
- {
2
- "name": "base-bailey-json",
3
- "version": "1.0.0",
4
- "description": "",
5
- "main": "dist/app.js",
6
- "type": "module",
7
- "scripts": {
8
- "start": "node ./dist/app.js",
9
- "lint": "eslint . --no-ignore",
10
- "dev": "node --no-warnings --env-file=.env --import=tsx --watch-path=./src ./src/app.ts",
11
- "build": "npx rollup -c"
12
- },
13
- "keywords": [],
14
- "dependencies": {
15
- "@builderbot/bot": "latest",
16
- "@builderbot/provider-venom": "latest",
17
- "@builderbot/database-json": "latest"
18
- },
19
- "devDependencies": {
20
- "@typescript-eslint/eslint-plugin": "^7.2.0",
21
- "@types/node": "^20.11.30",
22
- "eslint": "^8.52.0",
23
- "eslint-plugin-builderbot": "latest",
24
- "rollup": "^4.10.0",
25
- "rollup-plugin-typescript2": "^0.36.0",
26
- "tsx": "^4.7.1"
27
- },
28
- "author": "",
29
- "license": "ISC"
1
+ {
2
+ "name": "base-bailey-json",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "dist/app.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "start": "node ./dist/app.js",
9
+ "lint": "eslint . --no-ignore",
10
+ "dev": "node --no-warnings --env-file=.env --import=tsx --watch-path=./src ./src/app.ts",
11
+ "build": "npx rollup -c"
12
+ },
13
+ "keywords": [],
14
+ "dependencies": {
15
+ "@builderbot/bot": "latest",
16
+ "@builderbot/provider-venom": "latest",
17
+ "@builderbot/database-json": "latest"
18
+ },
19
+ "devDependencies": {
20
+ "@typescript-eslint/eslint-plugin": "^7.2.0",
21
+ "@types/node": "^20.11.30",
22
+ "eslint": "^8.52.0",
23
+ "eslint-plugin-builderbot": "latest",
24
+ "rollup": "^4.10.0",
25
+ "rollup-plugin-typescript2": "^0.36.0",
26
+ "tsx": "^4.7.1"
27
+ },
28
+ "author": "",
29
+ "license": "ISC"
30
30
  }
@@ -1,11 +1,11 @@
1
- import typescript from 'rollup-plugin-typescript2'
2
-
3
- export default {
4
- input: 'src/app.ts',
5
- output: {
6
- file: 'dist/app.js',
7
- format: 'esm',
8
- },
9
-
10
- plugins: [typescript()],
11
- }
1
+ import typescript from 'rollup-plugin-typescript2'
2
+
3
+ export default {
4
+ input: 'src/app.ts',
5
+ output: {
6
+ file: 'dist/app.js',
7
+ format: 'esm',
8
+ },
9
+
10
+ plugins: [typescript()],
11
+ }
@@ -1,116 +1,116 @@
1
- import { join } from 'path'
2
- import { createBot, createProvider, createFlow, addKeyword, utils } from '@builderbot/bot'
3
- import { JsonFileDB as Database } from '@builderbot/database-json'
4
- import { VenomProvider as Provider } from '@builderbot/provider-venom'
5
-
6
- const PORT = process.env.PORT ?? 3008
7
-
8
- const discordFlow = addKeyword<Provider, Database>('doc').addAnswer(
9
- ['You can see the documentation here', '📄 https://builderbot.app/docs \n', 'Do you want to continue? *yes*'].join(
10
- '\n'
11
- ),
12
- { capture: true },
13
- async (ctx, { gotoFlow, flowDynamic }) => {
14
- if (ctx.body.toLocaleLowerCase().includes('yes')) {
15
- return gotoFlow(registerFlow)
16
- }
17
- await flowDynamic('Thanks!')
18
- return
19
- }
20
- )
21
-
22
- const welcomeFlow = addKeyword<Provider, Database>(['hi', 'hello', 'hola'])
23
- .addAnswer(`🙌 Hello welcome to this *Chatbot*`)
24
- .addAnswer(
25
- [
26
- 'I share with you the following links of interest about the project',
27
- '👉 *doc* to view the documentation',
28
- ].join('\n'),
29
- { delay: 800, capture: true },
30
- async (ctx, { fallBack }) => {
31
- if (!ctx.body.toLocaleLowerCase().includes('doc')) {
32
- return fallBack('You should type *doc*')
33
- }
34
- return
35
- },
36
- [discordFlow]
37
- )
38
-
39
- const registerFlow = addKeyword<Provider, Database>(utils.setEvent('REGISTER_FLOW'))
40
- .addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
41
- await state.update({ name: ctx.body })
42
- })
43
- .addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
44
- await state.update({ age: ctx.body })
45
- })
46
- .addAction(async (_, { flowDynamic, state }) => {
47
- await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
48
- })
49
-
50
- const fullSamplesFlow = addKeyword<Provider, Database>(['samples', utils.setEvent('SAMPLES')])
51
- .addAnswer(`💪 I'll send you a lot files...`)
52
- .addAnswer(`Send image from Local`, { media: join(process.cwd(), 'assets', 'sample.png') })
53
- .addAnswer(`Send video from URL`, {
54
- media: 'https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExYTJ0ZGdjd2syeXAwMjQ4aWdkcW04OWlqcXI3Ynh1ODkwZ25zZWZ1dCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/LCohAb657pSdHv0Q5h/giphy.mp4',
55
- })
56
- .addAnswer(`Send audio from URL`, { media: 'https://cdn.freesound.org/previews/728/728142_11861866-lq.mp3' })
57
- .addAnswer(`Send file from URL`, {
58
- media: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
59
- })
60
-
61
- const main = async () => {
62
- const adapterFlow = createFlow([welcomeFlow, registerFlow, fullSamplesFlow])
63
-
64
- const adapterProvider = createProvider(Provider)
65
-
66
- const adapterDB = new Database({ filename: 'db.json' })
67
-
68
- const { handleCtx, httpServer } = await createBot({
69
- flow: adapterFlow,
70
- provider: adapterProvider,
71
- database: adapterDB,
72
- })
73
-
74
- adapterProvider.server.post(
75
- '/v1/messages',
76
- handleCtx(async (bot, req, res) => {
77
- const { number, message, urlMedia } = req.body
78
- await bot.sendMessage(number, message, { media: urlMedia ?? null })
79
- return res.end('sended')
80
- })
81
- )
82
-
83
- adapterProvider.server.post(
84
- '/v1/register',
85
- handleCtx(async (bot, req, res) => {
86
- const { number, name } = req.body
87
- await bot.dispatch('REGISTER_FLOW', { from: number, name })
88
- return res.end('trigger')
89
- })
90
- )
91
-
92
- adapterProvider.server.post(
93
- '/v1/samples',
94
- handleCtx(async (bot, req, res) => {
95
- const { number, name } = req.body
96
- await bot.dispatch('SAMPLES', { from: number, name })
97
- return res.end('trigger')
98
- })
99
- )
100
-
101
- adapterProvider.server.post(
102
- '/v1/blacklist',
103
- handleCtx(async (bot, req, res) => {
104
- const { number, intent } = req.body
105
- if (intent === 'remove') bot.blacklist.remove(number)
106
- if (intent === 'add') bot.blacklist.add(number)
107
-
108
- res.writeHead(200, { 'Content-Type': 'application/json' })
109
- return res.end(JSON.stringify({ status: 'ok', number, intent }))
110
- })
111
- )
112
-
113
- httpServer(+PORT)
114
- }
115
-
116
- main()
1
+ import { join } from 'path'
2
+ import { createBot, createProvider, createFlow, addKeyword, utils } from '@builderbot/bot'
3
+ import { JsonFileDB as Database } from '@builderbot/database-json'
4
+ import { VenomProvider as Provider } from '@builderbot/provider-venom'
5
+
6
+ const PORT = process.env.PORT ?? 3008
7
+
8
+ const discordFlow = addKeyword<Provider, Database>('doc').addAnswer(
9
+ ['You can see the documentation here', '📄 https://builderbot.app/docs \n', 'Do you want to continue? *yes*'].join(
10
+ '\n'
11
+ ),
12
+ { capture: true },
13
+ async (ctx, { gotoFlow, flowDynamic }) => {
14
+ if (ctx.body.toLocaleLowerCase().includes('yes')) {
15
+ return gotoFlow(registerFlow)
16
+ }
17
+ await flowDynamic('Thanks!')
18
+ return
19
+ }
20
+ )
21
+
22
+ const welcomeFlow = addKeyword<Provider, Database>(['hi', 'hello', 'hola'])
23
+ .addAnswer(`🙌 Hello welcome to this *Chatbot*`)
24
+ .addAnswer(
25
+ [
26
+ 'I share with you the following links of interest about the project',
27
+ '👉 *doc* to view the documentation',
28
+ ].join('\n'),
29
+ { delay: 800, capture: true },
30
+ async (ctx, { fallBack }) => {
31
+ if (!ctx.body.toLocaleLowerCase().includes('doc')) {
32
+ return fallBack('You should type *doc*')
33
+ }
34
+ return
35
+ },
36
+ [discordFlow]
37
+ )
38
+
39
+ const registerFlow = addKeyword<Provider, Database>(utils.setEvent('REGISTER_FLOW'))
40
+ .addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
41
+ await state.update({ name: ctx.body })
42
+ })
43
+ .addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
44
+ await state.update({ age: ctx.body })
45
+ })
46
+ .addAction(async (_, { flowDynamic, state }) => {
47
+ await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
48
+ })
49
+
50
+ const fullSamplesFlow = addKeyword<Provider, Database>(['samples', utils.setEvent('SAMPLES')])
51
+ .addAnswer(`💪 I'll send you a lot files...`)
52
+ .addAnswer(`Send image from Local`, { media: join(process.cwd(), 'assets', 'sample.png') })
53
+ .addAnswer(`Send video from URL`, {
54
+ media: 'https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExYTJ0ZGdjd2syeXAwMjQ4aWdkcW04OWlqcXI3Ynh1ODkwZ25zZWZ1dCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/LCohAb657pSdHv0Q5h/giphy.mp4',
55
+ })
56
+ .addAnswer(`Send audio from URL`, { media: 'https://cdn.freesound.org/previews/728/728142_11861866-lq.mp3' })
57
+ .addAnswer(`Send file from URL`, {
58
+ media: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
59
+ })
60
+
61
+ const main = async () => {
62
+ const adapterFlow = createFlow([welcomeFlow, registerFlow, fullSamplesFlow])
63
+
64
+ const adapterProvider = createProvider(Provider)
65
+
66
+ const adapterDB = new Database({ filename: 'db.json' })
67
+
68
+ const { handleCtx, httpServer } = await createBot({
69
+ flow: adapterFlow,
70
+ provider: adapterProvider,
71
+ database: adapterDB,
72
+ })
73
+
74
+ adapterProvider.server.post(
75
+ '/v1/messages',
76
+ handleCtx(async (bot, req, res) => {
77
+ const { number, message, urlMedia } = req.body
78
+ await bot.sendMessage(number, message, { media: urlMedia ?? null })
79
+ return res.end('sended')
80
+ })
81
+ )
82
+
83
+ adapterProvider.server.post(
84
+ '/v1/register',
85
+ handleCtx(async (bot, req, res) => {
86
+ const { number, name } = req.body
87
+ await bot.dispatch('REGISTER_FLOW', { from: number, name })
88
+ return res.end('trigger')
89
+ })
90
+ )
91
+
92
+ adapterProvider.server.post(
93
+ '/v1/samples',
94
+ handleCtx(async (bot, req, res) => {
95
+ const { number, name } = req.body
96
+ await bot.dispatch('SAMPLES', { from: number, name })
97
+ return res.end('trigger')
98
+ })
99
+ )
100
+
101
+ adapterProvider.server.post(
102
+ '/v1/blacklist',
103
+ handleCtx(async (bot, req, res) => {
104
+ const { number, intent } = req.body
105
+ if (intent === 'remove') bot.blacklist.remove(number)
106
+ if (intent === 'add') bot.blacklist.add(number)
107
+
108
+ res.writeHead(200, { 'Content-Type': 'application/json' })
109
+ return res.end(JSON.stringify({ status: 'ok', number, intent }))
110
+ })
111
+ )
112
+
113
+ httpServer(+PORT)
114
+ }
115
+
116
+ main()
@@ -1,29 +1,29 @@
1
- {
2
- "name": "base-bailey-json",
3
- "version": "1.0.0",
4
- "description": "",
5
- "main": "dist/app.js",
6
- "type": "module",
7
- "scripts": {
8
- "start": "node ./dist/app.js",
9
- "lint": "eslint . --no-ignore",
10
- "dev": "node --no-warnings --env-file=.env --import=tsx --watch-path=./src ./src/app.ts",
11
- "build": "npx rollup -c"
12
- },
13
- "keywords": [],
14
- "dependencies": {
15
- "@builderbot/bot": "latest",
16
- "@builderbot/provider-venom": "latest"
17
- },
18
- "devDependencies": {
19
- "@typescript-eslint/eslint-plugin": "^7.2.0",
20
- "@types/node": "^20.11.30",
21
- "eslint": "^8.52.0",
22
- "eslint-plugin-builderbot": "latest",
23
- "rollup": "^4.10.0",
24
- "rollup-plugin-typescript2": "^0.36.0",
25
- "tsx": "^4.7.1"
26
- },
27
- "author": "",
28
- "license": "ISC"
1
+ {
2
+ "name": "base-bailey-json",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "dist/app.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "start": "node ./dist/app.js",
9
+ "lint": "eslint . --no-ignore",
10
+ "dev": "node --no-warnings --env-file=.env --import=tsx --watch-path=./src ./src/app.ts",
11
+ "build": "npx rollup -c"
12
+ },
13
+ "keywords": [],
14
+ "dependencies": {
15
+ "@builderbot/bot": "latest",
16
+ "@builderbot/provider-venom": "latest"
17
+ },
18
+ "devDependencies": {
19
+ "@typescript-eslint/eslint-plugin": "^7.2.0",
20
+ "@types/node": "^20.11.30",
21
+ "eslint": "^8.52.0",
22
+ "eslint-plugin-builderbot": "latest",
23
+ "rollup": "^4.10.0",
24
+ "rollup-plugin-typescript2": "^0.36.0",
25
+ "tsx": "^4.7.1"
26
+ },
27
+ "author": "",
28
+ "license": "ISC"
29
29
  }
@@ -1,11 +1,11 @@
1
- import typescript from 'rollup-plugin-typescript2'
2
-
3
- export default {
4
- input: 'src/app.ts',
5
- output: {
6
- file: 'dist/app.js',
7
- format: 'esm',
8
- },
9
-
10
- plugins: [typescript()],
11
- }
1
+ import typescript from 'rollup-plugin-typescript2'
2
+
3
+ export default {
4
+ input: 'src/app.ts',
5
+ output: {
6
+ file: 'dist/app.js',
7
+ format: 'esm',
8
+ },
9
+
10
+ plugins: [typescript()],
11
+ }
@@ -1,115 +1,115 @@
1
- import { join } from 'path'
2
- import { createBot, createProvider, createFlow, addKeyword, utils } from '@builderbot/bot'
3
- import { MemoryDB as Database } from '@builderbot/bot'
4
- import { VenomProvider as Provider } from '@builderbot/provider-venom'
5
-
6
- const PORT = process.env.PORT ?? 3008
7
-
8
- const discordFlow = addKeyword<Provider, Database>('doc').addAnswer(
9
- ['You can see the documentation here', '📄 https://builderbot.app/docs \n', 'Do you want to continue? *yes*'].join(
10
- '\n'
11
- ),
12
- { capture: true },
13
- async (ctx, { gotoFlow, flowDynamic }) => {
14
- if (ctx.body.toLocaleLowerCase().includes('yes')) {
15
- return gotoFlow(registerFlow)
16
- }
17
- await flowDynamic('Thanks!')
18
- return
19
- }
20
- )
21
-
22
- const welcomeFlow = addKeyword<Provider, Database>(['hi', 'hello', 'hola'])
23
- .addAnswer(`🙌 Hello welcome to this *Chatbot*`)
24
- .addAnswer(
25
- [
26
- 'I share with you the following links of interest about the project',
27
- '👉 *doc* to view the documentation',
28
- ].join('\n'),
29
- { delay: 800, capture: true },
30
- async (ctx, { fallBack }) => {
31
- if (!ctx.body.toLocaleLowerCase().includes('doc')) {
32
- return fallBack('You should type *doc*')
33
- }
34
- return
35
- },
36
- [discordFlow]
37
- )
38
-
39
- const registerFlow = addKeyword<Provider, Database>(utils.setEvent('REGISTER_FLOW'))
40
- .addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
41
- await state.update({ name: ctx.body })
42
- })
43
- .addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
44
- await state.update({ age: ctx.body })
45
- })
46
- .addAction(async (_, { flowDynamic, state }) => {
47
- await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
48
- })
49
-
50
- const fullSamplesFlow = addKeyword<Provider, Database>(['samples', utils.setEvent('SAMPLES')])
51
- .addAnswer(`💪 I'll send you a lot files...`)
52
- .addAnswer(`Send image from Local`, { media: join(process.cwd(), 'assets', 'sample.png') })
53
- .addAnswer(`Send video from URL`, {
54
- media: 'https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExYTJ0ZGdjd2syeXAwMjQ4aWdkcW04OWlqcXI3Ynh1ODkwZ25zZWZ1dCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/LCohAb657pSdHv0Q5h/giphy.mp4',
55
- })
56
- .addAnswer(`Send audio from URL`, { media: 'https://cdn.freesound.org/previews/728/728142_11861866-lq.mp3' })
57
- .addAnswer(`Send file from URL`, {
58
- media: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
59
- })
60
-
61
- const main = async () => {
62
- const adapterFlow = createFlow([welcomeFlow, registerFlow, fullSamplesFlow])
63
-
64
- const adapterProvider = createProvider(Provider)
65
- const adapterDB = new Database()
66
-
67
- const { handleCtx, httpServer } = await createBot({
68
- flow: adapterFlow,
69
- provider: adapterProvider,
70
- database: adapterDB,
71
- })
72
-
73
- adapterProvider.server.post(
74
- '/v1/messages',
75
- handleCtx(async (bot, req, res) => {
76
- const { number, message, urlMedia } = req.body
77
- await bot.sendMessage(number, message, { media: urlMedia ?? null })
78
- return res.end('sended')
79
- })
80
- )
81
-
82
- adapterProvider.server.post(
83
- '/v1/register',
84
- handleCtx(async (bot, req, res) => {
85
- const { number, name } = req.body
86
- await bot.dispatch('REGISTER_FLOW', { from: number, name })
87
- return res.end('trigger')
88
- })
89
- )
90
-
91
- adapterProvider.server.post(
92
- '/v1/samples',
93
- handleCtx(async (bot, req, res) => {
94
- const { number, name } = req.body
95
- await bot.dispatch('SAMPLES', { from: number, name })
96
- return res.end('trigger')
97
- })
98
- )
99
-
100
- adapterProvider.server.post(
101
- '/v1/blacklist',
102
- handleCtx(async (bot, req, res) => {
103
- const { number, intent } = req.body
104
- if (intent === 'remove') bot.blacklist.remove(number)
105
- if (intent === 'add') bot.blacklist.add(number)
106
-
107
- res.writeHead(200, { 'Content-Type': 'application/json' })
108
- return res.end(JSON.stringify({ status: 'ok', number, intent }))
109
- })
110
- )
111
-
112
- httpServer(+PORT)
113
- }
114
-
115
- main()
1
+ import { join } from 'path'
2
+ import { createBot, createProvider, createFlow, addKeyword, utils } from '@builderbot/bot'
3
+ import { MemoryDB as Database } from '@builderbot/bot'
4
+ import { VenomProvider as Provider } from '@builderbot/provider-venom'
5
+
6
+ const PORT = process.env.PORT ?? 3008
7
+
8
+ const discordFlow = addKeyword<Provider, Database>('doc').addAnswer(
9
+ ['You can see the documentation here', '📄 https://builderbot.app/docs \n', 'Do you want to continue? *yes*'].join(
10
+ '\n'
11
+ ),
12
+ { capture: true },
13
+ async (ctx, { gotoFlow, flowDynamic }) => {
14
+ if (ctx.body.toLocaleLowerCase().includes('yes')) {
15
+ return gotoFlow(registerFlow)
16
+ }
17
+ await flowDynamic('Thanks!')
18
+ return
19
+ }
20
+ )
21
+
22
+ const welcomeFlow = addKeyword<Provider, Database>(['hi', 'hello', 'hola'])
23
+ .addAnswer(`🙌 Hello welcome to this *Chatbot*`)
24
+ .addAnswer(
25
+ [
26
+ 'I share with you the following links of interest about the project',
27
+ '👉 *doc* to view the documentation',
28
+ ].join('\n'),
29
+ { delay: 800, capture: true },
30
+ async (ctx, { fallBack }) => {
31
+ if (!ctx.body.toLocaleLowerCase().includes('doc')) {
32
+ return fallBack('You should type *doc*')
33
+ }
34
+ return
35
+ },
36
+ [discordFlow]
37
+ )
38
+
39
+ const registerFlow = addKeyword<Provider, Database>(utils.setEvent('REGISTER_FLOW'))
40
+ .addAnswer(`What is your name?`, { capture: true }, async (ctx, { state }) => {
41
+ await state.update({ name: ctx.body })
42
+ })
43
+ .addAnswer('What is your age?', { capture: true }, async (ctx, { state }) => {
44
+ await state.update({ age: ctx.body })
45
+ })
46
+ .addAction(async (_, { flowDynamic, state }) => {
47
+ await flowDynamic(`${state.get('name')}, thanks for your information!: Your age: ${state.get('age')}`)
48
+ })
49
+
50
+ const fullSamplesFlow = addKeyword<Provider, Database>(['samples', utils.setEvent('SAMPLES')])
51
+ .addAnswer(`💪 I'll send you a lot files...`)
52
+ .addAnswer(`Send image from Local`, { media: join(process.cwd(), 'assets', 'sample.png') })
53
+ .addAnswer(`Send video from URL`, {
54
+ media: 'https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExYTJ0ZGdjd2syeXAwMjQ4aWdkcW04OWlqcXI3Ynh1ODkwZ25zZWZ1dCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/LCohAb657pSdHv0Q5h/giphy.mp4',
55
+ })
56
+ .addAnswer(`Send audio from URL`, { media: 'https://cdn.freesound.org/previews/728/728142_11861866-lq.mp3' })
57
+ .addAnswer(`Send file from URL`, {
58
+ media: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
59
+ })
60
+
61
+ const main = async () => {
62
+ const adapterFlow = createFlow([welcomeFlow, registerFlow, fullSamplesFlow])
63
+
64
+ const adapterProvider = createProvider(Provider)
65
+ const adapterDB = new Database()
66
+
67
+ const { handleCtx, httpServer } = await createBot({
68
+ flow: adapterFlow,
69
+ provider: adapterProvider,
70
+ database: adapterDB,
71
+ })
72
+
73
+ adapterProvider.server.post(
74
+ '/v1/messages',
75
+ handleCtx(async (bot, req, res) => {
76
+ const { number, message, urlMedia } = req.body
77
+ await bot.sendMessage(number, message, { media: urlMedia ?? null })
78
+ return res.end('sended')
79
+ })
80
+ )
81
+
82
+ adapterProvider.server.post(
83
+ '/v1/register',
84
+ handleCtx(async (bot, req, res) => {
85
+ const { number, name } = req.body
86
+ await bot.dispatch('REGISTER_FLOW', { from: number, name })
87
+ return res.end('trigger')
88
+ })
89
+ )
90
+
91
+ adapterProvider.server.post(
92
+ '/v1/samples',
93
+ handleCtx(async (bot, req, res) => {
94
+ const { number, name } = req.body
95
+ await bot.dispatch('SAMPLES', { from: number, name })
96
+ return res.end('trigger')
97
+ })
98
+ )
99
+
100
+ adapterProvider.server.post(
101
+ '/v1/blacklist',
102
+ handleCtx(async (bot, req, res) => {
103
+ const { number, intent } = req.body
104
+ if (intent === 'remove') bot.blacklist.remove(number)
105
+ if (intent === 'add') bot.blacklist.add(number)
106
+
107
+ res.writeHead(200, { 'Content-Type': 'application/json' })
108
+ return res.end(JSON.stringify({ status: 'ok', number, intent }))
109
+ })
110
+ )
111
+
112
+ httpServer(+PORT)
113
+ }
114
+
115
+ main()