@builderbot/cli 1.3.14 → 1.3.15-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/starters/apps/base-js-baileys-json/src/app.js +9 -0
- package/dist/starters/apps/base-js-baileys-memory/src/app.js +9 -0
- package/dist/starters/apps/base-js-baileys-mongo/src/app.js +9 -0
- package/dist/starters/apps/base-js-baileys-mysql/src/app.js +9 -0
- package/dist/starters/apps/base-js-baileys-postgres/src/app.js +9 -0
- package/dist/starters/apps/base-js-evolution-api-json/src/app.js +9 -0
- package/dist/starters/apps/base-js-evolution-api-memory/src/app.js +9 -0
- package/dist/starters/apps/base-js-evolution-api-mongo/src/app.js +9 -0
- package/dist/starters/apps/base-js-evolution-api-mysql/src/app.js +9 -0
- package/dist/starters/apps/base-js-evolution-api-postgres/src/app.js +9 -0
- package/dist/starters/apps/base-js-facebook-messenger-json/src/app.js +9 -0
- package/dist/starters/apps/base-js-facebook-messenger-memory/src/app.js +9 -0
- package/dist/starters/apps/base-js-facebook-messenger-mongo/src/app.js +9 -0
- package/dist/starters/apps/base-js-facebook-messenger-mysql/src/app.js +9 -0
- package/dist/starters/apps/base-js-facebook-messenger-postgres/src/app.js +9 -0
- package/dist/starters/apps/base-js-instagram-json/src/app.js +9 -0
- package/dist/starters/apps/base-js-instagram-memory/src/app.js +9 -0
- package/dist/starters/apps/base-js-instagram-mongo/src/app.js +9 -0
- package/dist/starters/apps/base-js-instagram-mysql/src/app.js +9 -0
- package/dist/starters/apps/base-js-instagram-postgres/src/app.js +9 -0
- package/dist/starters/apps/base-js-meta-json/src/app.js +9 -0
- package/dist/starters/apps/base-js-meta-memory/src/app.js +9 -0
- package/dist/starters/apps/base-js-meta-mongo/src/app.js +9 -0
- package/dist/starters/apps/base-js-meta-mysql/src/app.js +9 -0
- package/dist/starters/apps/base-js-meta-postgres/src/app.js +9 -0
- package/dist/starters/apps/base-js-sherpa-json/src/app.js +9 -0
- package/dist/starters/apps/base-js-sherpa-memory/src/app.js +9 -0
- package/dist/starters/apps/base-js-sherpa-mongo/src/app.js +9 -0
- package/dist/starters/apps/base-js-sherpa-mysql/src/app.js +9 -0
- package/dist/starters/apps/base-js-sherpa-postgres/src/app.js +9 -0
- package/dist/starters/apps/base-js-twilio-json/src/app.js +9 -0
- package/dist/starters/apps/base-js-twilio-memory/src/app.js +9 -0
- package/dist/starters/apps/base-js-twilio-mongo/src/app.js +9 -0
- package/dist/starters/apps/base-js-twilio-mysql/src/app.js +9 -0
- package/dist/starters/apps/base-js-twilio-postgres/src/app.js +9 -0
- package/dist/starters/apps/base-js-wppconnect-json/src/app.js +9 -0
- package/dist/starters/apps/base-js-wppconnect-memory/src/app.js +9 -0
- package/dist/starters/apps/base-js-wppconnect-mongo/src/app.js +9 -0
- package/dist/starters/apps/base-js-wppconnect-mysql/src/app.js +9 -0
- package/dist/starters/apps/base-js-wppconnect-postgres/src/app.js +9 -0
- package/dist/starters/apps/base-ts-baileys-json/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-baileys-memory/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-baileys-mongo/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-baileys-mysql/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-baileys-postgres/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-evolution-api-json/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-evolution-api-memory/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-evolution-api-mongo/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-evolution-api-mysql/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-evolution-api-postgres/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-facebook-messenger-json/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-facebook-messenger-memory/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-facebook-messenger-mongo/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-facebook-messenger-mysql/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-facebook-messenger-postgres/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-instagram-json/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-instagram-memory/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-instagram-mongo/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-instagram-mysql/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-instagram-postgres/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-meta-json/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-meta-memory/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-meta-mongo/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-meta-mysql/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-meta-postgres/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-sherpa-json/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-sherpa-memory/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-sherpa-mongo/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-sherpa-mysql/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-sherpa-postgres/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-twilio-json/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-twilio-memory/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-twilio-mongo/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-twilio-mysql/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-twilio-postgres/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-wppconnect-json/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-wppconnect-memory/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-wppconnect-mongo/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-wppconnect-mysql/src/app.ts +10 -0
- package/dist/starters/apps/base-ts-wppconnect-postgres/src/app.ts +10 -0
- package/package.json +2 -2
- package/dist/starters/apps/base-js-venom-json/.dockerignore +0 -7
- package/dist/starters/apps/base-js-venom-json/.eslintrc.json +0 -17
- package/dist/starters/apps/base-js-venom-json/Dockerfile +0 -65
- package/dist/starters/apps/base-js-venom-json/README.md +0 -44
- package/dist/starters/apps/base-js-venom-json/_gitignore +0 -10
- package/dist/starters/apps/base-js-venom-json/assets/sample.png +0 -0
- package/dist/starters/apps/base-js-venom-json/nodemon.json +0 -9
- package/dist/starters/apps/base-js-venom-json/package.json +0 -25
- package/dist/starters/apps/base-js-venom-json/src/app.js +0 -116
- package/dist/starters/apps/base-js-venom-memory/.dockerignore +0 -7
- package/dist/starters/apps/base-js-venom-memory/.eslintrc.json +0 -17
- package/dist/starters/apps/base-js-venom-memory/Dockerfile +0 -65
- package/dist/starters/apps/base-js-venom-memory/README.md +0 -44
- package/dist/starters/apps/base-js-venom-memory/_gitignore +0 -10
- package/dist/starters/apps/base-js-venom-memory/assets/sample.png +0 -0
- package/dist/starters/apps/base-js-venom-memory/nodemon.json +0 -9
- package/dist/starters/apps/base-js-venom-memory/package.json +0 -24
- package/dist/starters/apps/base-js-venom-memory/src/app.js +0 -115
- package/dist/starters/apps/base-js-venom-mongo/.dockerignore +0 -7
- package/dist/starters/apps/base-js-venom-mongo/.eslintrc.json +0 -17
- package/dist/starters/apps/base-js-venom-mongo/Dockerfile +0 -65
- package/dist/starters/apps/base-js-venom-mongo/README.md +0 -44
- package/dist/starters/apps/base-js-venom-mongo/_gitignore +0 -10
- package/dist/starters/apps/base-js-venom-mongo/assets/sample.png +0 -0
- package/dist/starters/apps/base-js-venom-mongo/nodemon.json +0 -9
- package/dist/starters/apps/base-js-venom-mongo/package.json +0 -25
- package/dist/starters/apps/base-js-venom-mongo/src/app.js +0 -118
- package/dist/starters/apps/base-js-venom-mysql/.dockerignore +0 -7
- package/dist/starters/apps/base-js-venom-mysql/.eslintrc.json +0 -17
- package/dist/starters/apps/base-js-venom-mysql/Dockerfile +0 -65
- package/dist/starters/apps/base-js-venom-mysql/README.md +0 -44
- package/dist/starters/apps/base-js-venom-mysql/_gitignore +0 -10
- package/dist/starters/apps/base-js-venom-mysql/assets/sample.png +0 -0
- package/dist/starters/apps/base-js-venom-mysql/nodemon.json +0 -9
- package/dist/starters/apps/base-js-venom-mysql/package.json +0 -25
- package/dist/starters/apps/base-js-venom-mysql/src/app.js +0 -120
- package/dist/starters/apps/base-js-venom-postgres/.dockerignore +0 -7
- package/dist/starters/apps/base-js-venom-postgres/.eslintrc.json +0 -17
- package/dist/starters/apps/base-js-venom-postgres/Dockerfile +0 -65
- package/dist/starters/apps/base-js-venom-postgres/README.md +0 -44
- package/dist/starters/apps/base-js-venom-postgres/_gitignore +0 -10
- package/dist/starters/apps/base-js-venom-postgres/assets/sample.png +0 -0
- package/dist/starters/apps/base-js-venom-postgres/nodemon.json +0 -9
- package/dist/starters/apps/base-js-venom-postgres/package.json +0 -25
- package/dist/starters/apps/base-js-venom-postgres/src/app.js +0 -121
- package/dist/starters/apps/base-ts-venom-json/.dockerignore +0 -7
- package/dist/starters/apps/base-ts-venom-json/.eslintrc.json +0 -26
- package/dist/starters/apps/base-ts-venom-json/Dockerfile +0 -66
- package/dist/starters/apps/base-ts-venom-json/README.md +0 -44
- package/dist/starters/apps/base-ts-venom-json/_gitignore +0 -10
- package/dist/starters/apps/base-ts-venom-json/assets/sample.png +0 -0
- package/dist/starters/apps/base-ts-venom-json/nodemon.json +0 -12
- package/dist/starters/apps/base-ts-venom-json/package.json +0 -33
- package/dist/starters/apps/base-ts-venom-json/rollup.config.js +0 -13
- package/dist/starters/apps/base-ts-venom-json/src/app.ts +0 -116
- package/dist/starters/apps/base-ts-venom-json/tsconfig.json +0 -34
- package/dist/starters/apps/base-ts-venom-memory/.dockerignore +0 -7
- package/dist/starters/apps/base-ts-venom-memory/.eslintrc.json +0 -26
- package/dist/starters/apps/base-ts-venom-memory/Dockerfile +0 -66
- package/dist/starters/apps/base-ts-venom-memory/README.md +0 -44
- package/dist/starters/apps/base-ts-venom-memory/_gitignore +0 -10
- package/dist/starters/apps/base-ts-venom-memory/assets/sample.png +0 -0
- package/dist/starters/apps/base-ts-venom-memory/nodemon.json +0 -12
- package/dist/starters/apps/base-ts-venom-memory/package.json +0 -32
- package/dist/starters/apps/base-ts-venom-memory/rollup.config.js +0 -13
- package/dist/starters/apps/base-ts-venom-memory/src/app.ts +0 -115
- package/dist/starters/apps/base-ts-venom-memory/tsconfig.json +0 -34
- package/dist/starters/apps/base-ts-venom-mongo/.dockerignore +0 -7
- package/dist/starters/apps/base-ts-venom-mongo/.eslintrc.json +0 -26
- package/dist/starters/apps/base-ts-venom-mongo/Dockerfile +0 -66
- package/dist/starters/apps/base-ts-venom-mongo/README.md +0 -44
- package/dist/starters/apps/base-ts-venom-mongo/_gitignore +0 -10
- package/dist/starters/apps/base-ts-venom-mongo/assets/sample.png +0 -0
- package/dist/starters/apps/base-ts-venom-mongo/nodemon.json +0 -12
- package/dist/starters/apps/base-ts-venom-mongo/package.json +0 -33
- package/dist/starters/apps/base-ts-venom-mongo/rollup.config.js +0 -13
- package/dist/starters/apps/base-ts-venom-mongo/src/app.ts +0 -118
- package/dist/starters/apps/base-ts-venom-mongo/tsconfig.json +0 -34
- package/dist/starters/apps/base-ts-venom-mysql/.dockerignore +0 -7
- package/dist/starters/apps/base-ts-venom-mysql/.eslintrc.json +0 -26
- package/dist/starters/apps/base-ts-venom-mysql/Dockerfile +0 -66
- package/dist/starters/apps/base-ts-venom-mysql/README.md +0 -44
- package/dist/starters/apps/base-ts-venom-mysql/_gitignore +0 -10
- package/dist/starters/apps/base-ts-venom-mysql/assets/sample.png +0 -0
- package/dist/starters/apps/base-ts-venom-mysql/nodemon.json +0 -12
- package/dist/starters/apps/base-ts-venom-mysql/package.json +0 -33
- package/dist/starters/apps/base-ts-venom-mysql/rollup.config.js +0 -13
- package/dist/starters/apps/base-ts-venom-mysql/src/app.ts +0 -120
- package/dist/starters/apps/base-ts-venom-mysql/tsconfig.json +0 -34
- package/dist/starters/apps/base-ts-venom-postgres/.dockerignore +0 -7
- package/dist/starters/apps/base-ts-venom-postgres/.eslintrc.json +0 -26
- package/dist/starters/apps/base-ts-venom-postgres/Dockerfile +0 -66
- package/dist/starters/apps/base-ts-venom-postgres/README.md +0 -44
- package/dist/starters/apps/base-ts-venom-postgres/_gitignore +0 -10
- package/dist/starters/apps/base-ts-venom-postgres/assets/sample.png +0 -0
- package/dist/starters/apps/base-ts-venom-postgres/nodemon.json +0 -12
- package/dist/starters/apps/base-ts-venom-postgres/package.json +0 -33
- package/dist/starters/apps/base-ts-venom-postgres/rollup.config.js +0 -13
- package/dist/starters/apps/base-ts-venom-postgres/src/app.ts +0 -121
- package/dist/starters/apps/base-ts-venom-postgres/tsconfig.json +0 -34
|
@@ -1,116 +0,0 @@
|
|
|
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,34 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "ES2022",
|
|
5
|
-
"declaration": false,
|
|
6
|
-
"declarationMap": false,
|
|
7
|
-
"moduleResolution": "node",
|
|
8
|
-
"removeComments": true,
|
|
9
|
-
"emitDecoratorMetadata": true,
|
|
10
|
-
"experimentalDecorators": true,
|
|
11
|
-
"allowSyntheticDefaultImports": true,
|
|
12
|
-
"sourceMap": false,
|
|
13
|
-
"outDir": "./dist",
|
|
14
|
-
"baseUrl": "./",
|
|
15
|
-
"rootDir": "./",
|
|
16
|
-
"incremental": true,
|
|
17
|
-
"skipLibCheck": true,
|
|
18
|
-
"paths": {
|
|
19
|
-
"~/*": ["./src/*"]
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
"include": [
|
|
23
|
-
"**/*.js",
|
|
24
|
-
"**/*.ts"
|
|
25
|
-
],
|
|
26
|
-
"exclude": [
|
|
27
|
-
"node_modules",
|
|
28
|
-
"dist",
|
|
29
|
-
"**/*.test.ts",
|
|
30
|
-
"**/*.spec.ts",
|
|
31
|
-
"**e2e**",
|
|
32
|
-
"**mock**"
|
|
33
|
-
]
|
|
34
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"root": true,
|
|
3
|
-
"env": {
|
|
4
|
-
"browser": true,
|
|
5
|
-
"node": true,
|
|
6
|
-
"es2021": true
|
|
7
|
-
},
|
|
8
|
-
"extends": [
|
|
9
|
-
"eslint:recommended",
|
|
10
|
-
"plugin:@typescript-eslint/recommended",
|
|
11
|
-
"plugin:builderbot/recommended"
|
|
12
|
-
],
|
|
13
|
-
"parser": "@typescript-eslint/parser",
|
|
14
|
-
"parserOptions": {
|
|
15
|
-
"ecmaVersion": "latest",
|
|
16
|
-
"sourceType": "module"
|
|
17
|
-
},
|
|
18
|
-
"plugins": ["@typescript-eslint", "builderbot"],
|
|
19
|
-
"rules": {
|
|
20
|
-
"@typescript-eslint/no-explicit-any": "off",
|
|
21
|
-
"@typescript-eslint/no-unused-vars": "off",
|
|
22
|
-
"@typescript-eslint/ban-ts-comment": "off",
|
|
23
|
-
"@typescript-eslint/ban-types": "off",
|
|
24
|
-
"no-unsafe-optional-chaining": "off"
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
FROM node:21-alpine3.18 as builder
|
|
2
|
-
|
|
3
|
-
RUN apk add --no-cache \
|
|
4
|
-
git \
|
|
5
|
-
python3 \
|
|
6
|
-
make \
|
|
7
|
-
g++ \
|
|
8
|
-
chromium \
|
|
9
|
-
nss \
|
|
10
|
-
freetype \
|
|
11
|
-
harfbuzz \
|
|
12
|
-
ca-certificates \
|
|
13
|
-
libpq-dev \
|
|
14
|
-
ttf-freefont \
|
|
15
|
-
udev
|
|
16
|
-
|
|
17
|
-
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
18
|
-
ENV PNPM_HOME=/usr/local/bin
|
|
19
|
-
|
|
20
|
-
RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
|
|
21
|
-
|
|
22
|
-
WORKDIR /app
|
|
23
|
-
RUN chown -R pptruser:pptruser /app
|
|
24
|
-
|
|
25
|
-
USER pptruser
|
|
26
|
-
|
|
27
|
-
COPY package.json *-lock.* ./
|
|
28
|
-
|
|
29
|
-
RUN pnpm install --production=false
|
|
30
|
-
|
|
31
|
-
COPY . .
|
|
32
|
-
RUN pnpm run build
|
|
33
|
-
|
|
34
|
-
FROM node:21-alpine3.18
|
|
35
|
-
|
|
36
|
-
RUN apk add --no-cache \
|
|
37
|
-
chromium \
|
|
38
|
-
nss \
|
|
39
|
-
freetype \
|
|
40
|
-
harfbuzz \
|
|
41
|
-
ca-certificates \
|
|
42
|
-
libpq-dev \
|
|
43
|
-
ttf-freefont \
|
|
44
|
-
udev
|
|
45
|
-
|
|
46
|
-
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
47
|
-
ENV PNPM_HOME=/usr/local/bin
|
|
48
|
-
|
|
49
|
-
RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
|
|
50
|
-
|
|
51
|
-
WORKDIR /app
|
|
52
|
-
|
|
53
|
-
COPY --from=builder /app/dist ./dist
|
|
54
|
-
COPY --from=builder /app/package.json /app/pnpm-lock.yaml ./
|
|
55
|
-
|
|
56
|
-
RUN chown -R pptruser:pptruser /app
|
|
57
|
-
|
|
58
|
-
USER pptruser
|
|
59
|
-
|
|
60
|
-
ARG PORT
|
|
61
|
-
ENV PORT $PORT
|
|
62
|
-
EXPOSE $PORT
|
|
63
|
-
|
|
64
|
-
RUN pnpm install --production
|
|
65
|
-
|
|
66
|
-
CMD ["npm", "start"]
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="https://builderbot.app/">
|
|
3
|
-
<picture>
|
|
4
|
-
<img src="https://builderbot.app/assets/thumbnail-vector.png" height="80">
|
|
5
|
-
</picture>
|
|
6
|
-
<h2 align="center">BuilderBot</h2>
|
|
7
|
-
</a>
|
|
8
|
-
</p>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<p align="center">
|
|
13
|
-
<a aria-label="NPM version" href="https://www.npmjs.com/package/@builderbot/bot">
|
|
14
|
-
<img alt="" src="https://img.shields.io/npm/v/@builderbot/bot?color=%2300c200&label=%40bot-whatsapp">
|
|
15
|
-
</a>
|
|
16
|
-
<a aria-label="Join the community on GitHub" href="https://link.codigoencasa.com/DISCORD">
|
|
17
|
-
<img alt="" src="https://img.shields.io/discord/915193197645402142?logo=discord">
|
|
18
|
-
</a>
|
|
19
|
-
</p>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## Getting Started
|
|
23
|
-
|
|
24
|
-
With this library, you can build automated conversation flows agnostic to the WhatsApp provider, set up automated responses for frequently asked questions, receive and respond to messages automatically, and track interactions with customers. Additionally, you can easily set up triggers to expand functionalities limitlessly.
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
npm create builderbot@latest
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
## Documentation
|
|
32
|
-
|
|
33
|
-
Visit [builderbot](https://builderbot.app/) to view the full documentation.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
## Official Course
|
|
37
|
-
|
|
38
|
-
If you want to discover all the functions and features offered by the library you can take the course.
|
|
39
|
-
[View Course](https://app.codigoencasa.com/courses/builderbot?refCode=LEIFER)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
## Contact Us
|
|
43
|
-
- [💻 Discord](https://link.codigoencasa.com/DISCORD)
|
|
44
|
-
- [👌 𝕏 (Twitter)](https://twitter.com/leifermendez)
|
|
Binary file
|
|
@@ -1,32 +0,0 @@
|
|
|
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": "npm run lint && nodemon --signal SIGKILL ./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
|
-
"@types/node": "^20.11.30",
|
|
20
|
-
"@typescript-eslint/eslint-plugin": "^7.4.0",
|
|
21
|
-
"@typescript-eslint/parser": "^7.4.0",
|
|
22
|
-
"eslint": "^8.52.0",
|
|
23
|
-
"eslint-plugin-builderbot": "latest",
|
|
24
|
-
"rollup": "^4.10.0",
|
|
25
|
-
"nodemon": "^3.1.0",
|
|
26
|
-
"rollup-plugin-typescript2": "^0.36.0",
|
|
27
|
-
"tsx": "^4.7.1",
|
|
28
|
-
"typescript": "^5.4.3"
|
|
29
|
-
},
|
|
30
|
-
"author": "",
|
|
31
|
-
"license": "ISC"
|
|
32
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
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
|
-
onwarn: (warning) => {
|
|
10
|
-
if (warning.code === 'UNRESOLVED_IMPORT') return
|
|
11
|
-
},
|
|
12
|
-
plugins: [typescript()],
|
|
13
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
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,34 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "ES2022",
|
|
5
|
-
"declaration": false,
|
|
6
|
-
"declarationMap": false,
|
|
7
|
-
"moduleResolution": "node",
|
|
8
|
-
"removeComments": true,
|
|
9
|
-
"emitDecoratorMetadata": true,
|
|
10
|
-
"experimentalDecorators": true,
|
|
11
|
-
"allowSyntheticDefaultImports": true,
|
|
12
|
-
"sourceMap": false,
|
|
13
|
-
"outDir": "./dist",
|
|
14
|
-
"baseUrl": "./",
|
|
15
|
-
"rootDir": "./",
|
|
16
|
-
"incremental": true,
|
|
17
|
-
"skipLibCheck": true,
|
|
18
|
-
"paths": {
|
|
19
|
-
"~/*": ["./src/*"]
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
"include": [
|
|
23
|
-
"**/*.js",
|
|
24
|
-
"**/*.ts"
|
|
25
|
-
],
|
|
26
|
-
"exclude": [
|
|
27
|
-
"node_modules",
|
|
28
|
-
"dist",
|
|
29
|
-
"**/*.test.ts",
|
|
30
|
-
"**/*.spec.ts",
|
|
31
|
-
"**e2e**",
|
|
32
|
-
"**mock**"
|
|
33
|
-
]
|
|
34
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"root": true,
|
|
3
|
-
"env": {
|
|
4
|
-
"browser": true,
|
|
5
|
-
"node": true,
|
|
6
|
-
"es2021": true
|
|
7
|
-
},
|
|
8
|
-
"extends": [
|
|
9
|
-
"eslint:recommended",
|
|
10
|
-
"plugin:@typescript-eslint/recommended",
|
|
11
|
-
"plugin:builderbot/recommended"
|
|
12
|
-
],
|
|
13
|
-
"parser": "@typescript-eslint/parser",
|
|
14
|
-
"parserOptions": {
|
|
15
|
-
"ecmaVersion": "latest",
|
|
16
|
-
"sourceType": "module"
|
|
17
|
-
},
|
|
18
|
-
"plugins": ["@typescript-eslint", "builderbot"],
|
|
19
|
-
"rules": {
|
|
20
|
-
"@typescript-eslint/no-explicit-any": "off",
|
|
21
|
-
"@typescript-eslint/no-unused-vars": "off",
|
|
22
|
-
"@typescript-eslint/ban-ts-comment": "off",
|
|
23
|
-
"@typescript-eslint/ban-types": "off",
|
|
24
|
-
"no-unsafe-optional-chaining": "off"
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
FROM node:21-alpine3.18 as builder
|
|
2
|
-
|
|
3
|
-
RUN apk add --no-cache \
|
|
4
|
-
git \
|
|
5
|
-
python3 \
|
|
6
|
-
make \
|
|
7
|
-
g++ \
|
|
8
|
-
chromium \
|
|
9
|
-
nss \
|
|
10
|
-
freetype \
|
|
11
|
-
harfbuzz \
|
|
12
|
-
ca-certificates \
|
|
13
|
-
libpq-dev \
|
|
14
|
-
ttf-freefont \
|
|
15
|
-
udev
|
|
16
|
-
|
|
17
|
-
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
18
|
-
ENV PNPM_HOME=/usr/local/bin
|
|
19
|
-
|
|
20
|
-
RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
|
|
21
|
-
|
|
22
|
-
WORKDIR /app
|
|
23
|
-
RUN chown -R pptruser:pptruser /app
|
|
24
|
-
|
|
25
|
-
USER pptruser
|
|
26
|
-
|
|
27
|
-
COPY package.json *-lock.* ./
|
|
28
|
-
|
|
29
|
-
RUN pnpm install --production=false
|
|
30
|
-
|
|
31
|
-
COPY . .
|
|
32
|
-
RUN pnpm run build
|
|
33
|
-
|
|
34
|
-
FROM node:21-alpine3.18
|
|
35
|
-
|
|
36
|
-
RUN apk add --no-cache \
|
|
37
|
-
chromium \
|
|
38
|
-
nss \
|
|
39
|
-
freetype \
|
|
40
|
-
harfbuzz \
|
|
41
|
-
ca-certificates \
|
|
42
|
-
libpq-dev \
|
|
43
|
-
ttf-freefont \
|
|
44
|
-
udev
|
|
45
|
-
|
|
46
|
-
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
47
|
-
ENV PNPM_HOME=/usr/local/bin
|
|
48
|
-
|
|
49
|
-
RUN addgroup -S pptruser && adduser -S -G pptruser pptruser
|
|
50
|
-
|
|
51
|
-
WORKDIR /app
|
|
52
|
-
|
|
53
|
-
COPY --from=builder /app/dist ./dist
|
|
54
|
-
COPY --from=builder /app/package.json /app/pnpm-lock.yaml ./
|
|
55
|
-
|
|
56
|
-
RUN chown -R pptruser:pptruser /app
|
|
57
|
-
|
|
58
|
-
USER pptruser
|
|
59
|
-
|
|
60
|
-
ARG PORT
|
|
61
|
-
ENV PORT $PORT
|
|
62
|
-
EXPOSE $PORT
|
|
63
|
-
|
|
64
|
-
RUN pnpm install --production
|
|
65
|
-
|
|
66
|
-
CMD ["npm", "start"]
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="https://builderbot.app/">
|
|
3
|
-
<picture>
|
|
4
|
-
<img src="https://builderbot.app/assets/thumbnail-vector.png" height="80">
|
|
5
|
-
</picture>
|
|
6
|
-
<h2 align="center">BuilderBot</h2>
|
|
7
|
-
</a>
|
|
8
|
-
</p>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<p align="center">
|
|
13
|
-
<a aria-label="NPM version" href="https://www.npmjs.com/package/@builderbot/bot">
|
|
14
|
-
<img alt="" src="https://img.shields.io/npm/v/@builderbot/bot?color=%2300c200&label=%40bot-whatsapp">
|
|
15
|
-
</a>
|
|
16
|
-
<a aria-label="Join the community on GitHub" href="https://link.codigoencasa.com/DISCORD">
|
|
17
|
-
<img alt="" src="https://img.shields.io/discord/915193197645402142?logo=discord">
|
|
18
|
-
</a>
|
|
19
|
-
</p>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## Getting Started
|
|
23
|
-
|
|
24
|
-
With this library, you can build automated conversation flows agnostic to the WhatsApp provider, set up automated responses for frequently asked questions, receive and respond to messages automatically, and track interactions with customers. Additionally, you can easily set up triggers to expand functionalities limitlessly.
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
npm create builderbot@latest
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
## Documentation
|
|
32
|
-
|
|
33
|
-
Visit [builderbot](https://builderbot.app/) to view the full documentation.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
## Official Course
|
|
37
|
-
|
|
38
|
-
If you want to discover all the functions and features offered by the library you can take the course.
|
|
39
|
-
[View Course](https://app.codigoencasa.com/courses/builderbot?refCode=LEIFER)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
## Contact Us
|
|
43
|
-
- [💻 Discord](https://link.codigoencasa.com/DISCORD)
|
|
44
|
-
- [👌 𝕏 (Twitter)](https://twitter.com/leifermendez)
|
|
Binary file
|