@botonic/core 1.0.0-dev.0 → 2.23.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.
- package/CHANGELOG.md +226 -0
- package/README.md +7 -9
- package/package.json +19 -57
- package/src/index.d.ts +4 -0
- package/src/index.js +5 -0
- package/src/index.js.map +1 -0
- package/src/lib/core-bot/index.d.ts +33 -0
- package/src/lib/core-bot/index.js +113 -0
- package/src/lib/core-bot/index.js.map +1 -0
- package/src/lib/hubtype-service/handoff.d.ts +4 -0
- package/src/lib/hubtype-service/handoff.js +32 -0
- package/src/lib/hubtype-service/handoff.js.map +1 -0
- package/src/lib/hubtype-service/index.d.ts +10 -0
- package/src/lib/hubtype-service/index.js +96 -0
- package/src/lib/hubtype-service/index.js.map +1 -0
- package/src/lib/messages/button.d.ts +8 -0
- package/src/lib/messages/button.js +10 -0
- package/src/lib/messages/button.js.map +1 -0
- package/src/lib/plugins/index.d.ts +2 -0
- package/src/lib/plugins/index.js +23 -0
- package/src/lib/plugins/index.js.map +1 -0
- package/src/lib/routes/index.d.ts +0 -0
- package/src/lib/routes/index.js +2 -0
- package/src/lib/routes/index.js.map +1 -0
- package/src/lib/routes/router.d.ts +14 -0
- package/src/lib/routes/router.js +68 -0
- package/src/lib/routes/router.js.map +1 -0
- package/src/lib/routes/types.d.ts +15 -0
- package/src/lib/routes/types.js +2 -0
- package/src/lib/routes/types.js.map +1 -0
- package/src/lib/utils/index.d.ts +7 -0
- package/{lib/esm/utils.js → src/lib/utils/index.js} +6 -34
- package/src/lib/utils/index.js.map +1 -0
- package/lib/cjs/constants.d.ts +0 -15
- package/lib/cjs/constants.js +0 -19
- package/lib/cjs/constants.js.map +0 -1
- package/lib/cjs/core-bot.d.ts +0 -33
- package/lib/cjs/core-bot.js +0 -85
- package/lib/cjs/core-bot.js.map +0 -1
- package/lib/cjs/debug/index.d.ts +0 -1
- package/lib/cjs/debug/index.js +0 -9
- package/lib/cjs/debug/index.js.map +0 -1
- package/lib/cjs/debug/inspector.d.ts +0 -24
- package/lib/cjs/debug/inspector.js +0 -72
- package/lib/cjs/debug/inspector.js.map +0 -1
- package/lib/cjs/errors.d.ts +0 -5
- package/lib/cjs/errors.js +0 -11
- package/lib/cjs/errors.js.map +0 -1
- package/lib/cjs/handoff.d.ts +0 -67
- package/lib/cjs/handoff.js +0 -183
- package/lib/cjs/handoff.js.map +0 -1
- package/lib/cjs/hubtype-service.d.ts +0 -69
- package/lib/cjs/hubtype-service.js +0 -190
- package/lib/cjs/hubtype-service.js.map +0 -1
- package/lib/cjs/i18n.d.ts +0 -2
- package/lib/cjs/i18n.js +0 -11
- package/lib/cjs/i18n.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -166
- package/lib/cjs/index.js +0 -58
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/models/events/connections/index.d.ts +0 -9
- package/lib/cjs/models/events/connections/index.js +0 -9
- package/lib/cjs/models/events/connections/index.js.map +0 -1
- package/lib/cjs/models/events/index.d.ts +0 -21
- package/lib/cjs/models/events/index.js +0 -11
- package/lib/cjs/models/events/index.js.map +0 -1
- package/lib/cjs/models/events/message/buttons.d.ts +0 -18
- package/lib/cjs/models/events/message/buttons.js +0 -3
- package/lib/cjs/models/events/message/buttons.js.map +0 -1
- package/lib/cjs/models/events/message/carousel.d.ts +0 -11
- package/lib/cjs/models/events/message/carousel.js +0 -3
- package/lib/cjs/models/events/message/carousel.js.map +0 -1
- package/lib/cjs/models/events/message/custom.d.ts +0 -6
- package/lib/cjs/models/events/message/custom.js +0 -3
- package/lib/cjs/models/events/message/custom.js.map +0 -1
- package/lib/cjs/models/events/message/index.d.ts +0 -30
- package/lib/cjs/models/events/message/index.js +0 -32
- package/lib/cjs/models/events/message/index.js.map +0 -1
- package/lib/cjs/models/events/message/location.d.ts +0 -6
- package/lib/cjs/models/events/message/location.js +0 -3
- package/lib/cjs/models/events/message/location.js.map +0 -1
- package/lib/cjs/models/events/message/media.d.ts +0 -18
- package/lib/cjs/models/events/message/media.js +0 -11
- package/lib/cjs/models/events/message/media.js.map +0 -1
- package/lib/cjs/models/events/message/postback.d.ts +0 -4
- package/lib/cjs/models/events/message/postback.js +0 -3
- package/lib/cjs/models/events/message/postback.js.map +0 -1
- package/lib/cjs/models/events/message/replies.d.ts +0 -7
- package/lib/cjs/models/events/message/replies.js +0 -3
- package/lib/cjs/models/events/message/replies.js.map +0 -1
- package/lib/cjs/models/events/message/text.d.ts +0 -8
- package/lib/cjs/models/events/message/text.js +0 -3
- package/lib/cjs/models/events/message/text.js.map +0 -1
- package/lib/cjs/models/user.d.ts +0 -10
- package/lib/cjs/models/user.js +0 -3
- package/lib/cjs/models/user.js.map +0 -1
- package/lib/cjs/output-parser/factory.d.ts +0 -4
- package/lib/cjs/output-parser/factory.js +0 -33
- package/lib/cjs/output-parser/factory.js.map +0 -1
- package/lib/cjs/output-parser/index.d.ts +0 -16
- package/lib/cjs/output-parser/index.js +0 -37
- package/lib/cjs/output-parser/index.js.map +0 -1
- package/lib/cjs/output-parser/parsers.d.ts +0 -28
- package/lib/cjs/output-parser/parsers.js +0 -138
- package/lib/cjs/output-parser/parsers.js.map +0 -1
- package/lib/cjs/output-parser/util.d.ts +0 -2
- package/lib/cjs/output-parser/util.js +0 -14
- package/lib/cjs/output-parser/util.js.map +0 -1
- package/lib/cjs/plugins.d.ts +0 -7
- package/lib/cjs/plugins.js +0 -45
- package/lib/cjs/plugins.js.map +0 -1
- package/lib/cjs/router.d.ts +0 -35
- package/lib/cjs/router.js +0 -262
- package/lib/cjs/router.js.map +0 -1
- package/lib/cjs/utils.d.ts +0 -10
- package/lib/cjs/utils.js +0 -84
- package/lib/cjs/utils.js.map +0 -1
- package/lib/esm/constants.d.ts +0 -15
- package/lib/esm/constants.js +0 -16
- package/lib/esm/constants.js.map +0 -1
- package/lib/esm/core-bot.d.ts +0 -33
- package/lib/esm/core-bot.js +0 -81
- package/lib/esm/core-bot.js.map +0 -1
- package/lib/esm/debug/index.d.ts +0 -1
- package/lib/esm/debug/index.js +0 -2
- package/lib/esm/debug/index.js.map +0 -1
- package/lib/esm/debug/inspector.d.ts +0 -24
- package/lib/esm/debug/inspector.js +0 -65
- package/lib/esm/debug/inspector.js.map +0 -1
- package/lib/esm/errors.d.ts +0 -5
- package/lib/esm/errors.js +0 -7
- package/lib/esm/errors.js.map +0 -1
- package/lib/esm/handoff.d.ts +0 -67
- package/lib/esm/handoff.js +0 -170
- package/lib/esm/handoff.js.map +0 -1
- package/lib/esm/hubtype-service.d.ts +0 -69
- package/lib/esm/hubtype-service.js +0 -185
- package/lib/esm/hubtype-service.js.map +0 -1
- package/lib/esm/i18n.d.ts +0 -2
- package/lib/esm/i18n.js +0 -7
- package/lib/esm/i18n.js.map +0 -1
- package/lib/esm/index.d.ts +0 -166
- package/lib/esm/index.js +0 -49
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/models/events/connections/index.d.ts +0 -9
- package/lib/esm/models/events/connections/index.js +0 -6
- package/lib/esm/models/events/connections/index.js.map +0 -1
- package/lib/esm/models/events/index.d.ts +0 -21
- package/lib/esm/models/events/index.js +0 -8
- package/lib/esm/models/events/index.js.map +0 -1
- package/lib/esm/models/events/message/buttons.d.ts +0 -18
- package/lib/esm/models/events/message/buttons.js +0 -2
- package/lib/esm/models/events/message/buttons.js.map +0 -1
- package/lib/esm/models/events/message/carousel.d.ts +0 -11
- package/lib/esm/models/events/message/carousel.js +0 -2
- package/lib/esm/models/events/message/carousel.js.map +0 -1
- package/lib/esm/models/events/message/custom.d.ts +0 -6
- package/lib/esm/models/events/message/custom.js +0 -2
- package/lib/esm/models/events/message/custom.js.map +0 -1
- package/lib/esm/models/events/message/index.d.ts +0 -30
- package/lib/esm/models/events/message/index.js +0 -29
- package/lib/esm/models/events/message/index.js.map +0 -1
- package/lib/esm/models/events/message/location.d.ts +0 -6
- package/lib/esm/models/events/message/location.js +0 -2
- package/lib/esm/models/events/message/location.js.map +0 -1
- package/lib/esm/models/events/message/media.d.ts +0 -18
- package/lib/esm/models/events/message/media.js +0 -8
- package/lib/esm/models/events/message/media.js.map +0 -1
- package/lib/esm/models/events/message/postback.d.ts +0 -4
- package/lib/esm/models/events/message/postback.js +0 -2
- package/lib/esm/models/events/message/postback.js.map +0 -1
- package/lib/esm/models/events/message/replies.d.ts +0 -7
- package/lib/esm/models/events/message/replies.js +0 -2
- package/lib/esm/models/events/message/replies.js.map +0 -1
- package/lib/esm/models/events/message/text.d.ts +0 -8
- package/lib/esm/models/events/message/text.js +0 -2
- package/lib/esm/models/events/message/text.js.map +0 -1
- package/lib/esm/models/user.d.ts +0 -10
- package/lib/esm/models/user.js +0 -2
- package/lib/esm/models/user.js.map +0 -1
- package/lib/esm/output-parser/factory.d.ts +0 -4
- package/lib/esm/output-parser/factory.js +0 -29
- package/lib/esm/output-parser/factory.js.map +0 -1
- package/lib/esm/output-parser/index.d.ts +0 -16
- package/lib/esm/output-parser/index.js +0 -33
- package/lib/esm/output-parser/index.js.map +0 -1
- package/lib/esm/output-parser/parsers.d.ts +0 -28
- package/lib/esm/output-parser/parsers.js +0 -123
- package/lib/esm/output-parser/parsers.js.map +0 -1
- package/lib/esm/output-parser/util.d.ts +0 -2
- package/lib/esm/output-parser/util.js +0 -9
- package/lib/esm/output-parser/util.js.map +0 -1
- package/lib/esm/plugins.d.ts +0 -7
- package/lib/esm/plugins.js +0 -40
- package/lib/esm/plugins.js.map +0 -1
- package/lib/esm/router.d.ts +0 -35
- package/lib/esm/router.js +0 -258
- package/lib/esm/router.js.map +0 -1
- package/lib/esm/utils.d.ts +0 -10
- package/lib/esm/utils.js.map +0 -1
- package/src/constants.ts +0 -15
- package/src/core-bot.ts +0 -144
- package/src/debug/index.ts +0 -6
- package/src/debug/inspector.ts +0 -102
- package/src/errors.ts +0 -11
- package/src/handoff.ts +0 -268
- package/src/hubtype-service.ts +0 -266
- package/src/i18n.ts +0 -12
- package/src/index.ts +0 -233
- package/src/models/events/connections/index.ts +0 -11
- package/src/models/events/index.ts +0 -39
- package/src/models/events/message/buttons.ts +0 -23
- package/src/models/events/message/carousel.ts +0 -13
- package/src/models/events/message/custom.ts +0 -7
- package/src/models/events/message/index.ts +0 -37
- package/src/models/events/message/location.ts +0 -7
- package/src/models/events/message/media.ts +0 -28
- package/src/models/events/message/postback.ts +0 -5
- package/src/models/events/message/replies.ts +0 -8
- package/src/models/events/message/text.ts +0 -12
- package/src/models/user.ts +0 -10
- package/src/output-parser/factory.ts +0 -40
- package/src/output-parser/index.ts +0 -38
- package/src/output-parser/parsers.ts +0 -190
- package/src/output-parser/util.ts +0 -8
- package/src/plugins.ts +0 -49
- package/src/router.ts +0 -316
- package/src/utils.ts +0 -84
package/src/index.ts
DELETED
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import { BotonicEvent } from './models/events'
|
|
2
|
-
export { Providers } from './constants'
|
|
3
|
-
export { CoreBot } from './core-bot'
|
|
4
|
-
export * from './debug'
|
|
5
|
-
export * from './handoff'
|
|
6
|
-
export { HubtypeService } from './hubtype-service'
|
|
7
|
-
export { getString } from './i18n'
|
|
8
|
-
export { Router } from './router'
|
|
9
|
-
export * from './utils'
|
|
10
|
-
|
|
11
|
-
export type CaseStatusType =
|
|
12
|
-
| typeof CASE_STATUS.ATTENDING
|
|
13
|
-
| typeof CASE_STATUS.IDLE
|
|
14
|
-
| typeof CASE_STATUS.RESOLVED
|
|
15
|
-
| typeof CASE_STATUS.WAITING
|
|
16
|
-
|
|
17
|
-
export type CaseResolution =
|
|
18
|
-
| typeof CASE_RESOLUTION.BANNED
|
|
19
|
-
| typeof CASE_RESOLUTION.NOK
|
|
20
|
-
| typeof CASE_RESOLUTION.NOT_SOLVED
|
|
21
|
-
| typeof CASE_RESOLUTION.OK
|
|
22
|
-
|
|
23
|
-
export const PROVIDER = Object.freeze({
|
|
24
|
-
DEV: 'dev',
|
|
25
|
-
FACEBOOK: 'facebook',
|
|
26
|
-
GENERIC: 'generic',
|
|
27
|
-
INTERCOM: 'intercom',
|
|
28
|
-
SMOOCH: 'smooch',
|
|
29
|
-
TELEGRAM: 'telegram',
|
|
30
|
-
TWITTER: 'twitter',
|
|
31
|
-
WEBCHAT: 'webchat',
|
|
32
|
-
WECHAT: 'wechat',
|
|
33
|
-
WHATSAPP: 'whatsapp',
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
export const INPUT = Object.freeze({
|
|
37
|
-
TEXT: 'text',
|
|
38
|
-
POSTBACK: 'postback',
|
|
39
|
-
AUDIO: 'audio',
|
|
40
|
-
IMAGE: 'image',
|
|
41
|
-
VIDEO: 'video',
|
|
42
|
-
DOCUMENT: 'document',
|
|
43
|
-
LOCATION: 'location',
|
|
44
|
-
CONTACT: 'contact',
|
|
45
|
-
BUTTON_MESSAGE: 'buttonmessage',
|
|
46
|
-
CAROUSEL: 'carousel',
|
|
47
|
-
CUSTOM: 'custom',
|
|
48
|
-
WEBCHAT_SETTINGS: 'webchatsettings',
|
|
49
|
-
WHATSAPP_TEMPLATE: 'whatsapptemplate',
|
|
50
|
-
RAW: 'raw',
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
export const CASE_STATUS = Object.freeze({
|
|
54
|
-
WAITING: 'status_waiting',
|
|
55
|
-
ATTENDING: 'status_attending',
|
|
56
|
-
IDLE: 'status_idle',
|
|
57
|
-
RESOLVED: 'status_resolved',
|
|
58
|
-
})
|
|
59
|
-
|
|
60
|
-
export const CASE_RESOLUTION = Object.freeze({
|
|
61
|
-
OK: 'result_ok',
|
|
62
|
-
NOK: 'result_nok',
|
|
63
|
-
NOT_SOLVED: 'result_not_solved',
|
|
64
|
-
BANNED: 'result_banned',
|
|
65
|
-
})
|
|
66
|
-
|
|
67
|
-
export interface Locales {
|
|
68
|
-
[id: string]: string | string[] | Locales
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
interface PluginConstructor<T> {
|
|
72
|
-
new (arg: T): Plugin
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export interface PluginConfig<T> {
|
|
76
|
-
id: string
|
|
77
|
-
options?: T
|
|
78
|
-
resolve: { default: PluginConstructor<T> }
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export type InputType =
|
|
82
|
-
| typeof INPUT.AUDIO
|
|
83
|
-
| typeof INPUT.BUTTON_MESSAGE
|
|
84
|
-
| typeof INPUT.CAROUSEL
|
|
85
|
-
| typeof INPUT.CONTACT
|
|
86
|
-
| typeof INPUT.CUSTOM
|
|
87
|
-
| typeof INPUT.DOCUMENT
|
|
88
|
-
| typeof INPUT.IMAGE
|
|
89
|
-
| typeof INPUT.LOCATION
|
|
90
|
-
| typeof INPUT.POSTBACK
|
|
91
|
-
| typeof INPUT.TEXT
|
|
92
|
-
| typeof INPUT.VIDEO
|
|
93
|
-
| typeof INPUT.WEBCHAT_SETTINGS
|
|
94
|
-
| typeof INPUT.WHATSAPP_TEMPLATE
|
|
95
|
-
|
|
96
|
-
export interface IntentResult {
|
|
97
|
-
intent: string
|
|
98
|
-
confidence: number
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/** Generated by Translation plugins: GoogleTranslation **/
|
|
102
|
-
export interface Translations {
|
|
103
|
-
[languageCode: string]: string
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/** Fields set by NLU plugins: Luis, Dialogflow, ... **/
|
|
107
|
-
export interface NluResult {
|
|
108
|
-
// the name of the highest confidence intent
|
|
109
|
-
confidence: number
|
|
110
|
-
intent: string
|
|
111
|
-
intents: IntentResult[]
|
|
112
|
-
language: string
|
|
113
|
-
// entity recognition results in the format provided by the NLU engine
|
|
114
|
-
entities?: any
|
|
115
|
-
translations: Translations
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
export interface Input extends Partial<NluResult> {
|
|
119
|
-
data?: string
|
|
120
|
-
path?: string
|
|
121
|
-
payload?: string
|
|
122
|
-
type: InputType
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export type ProviderType =
|
|
126
|
-
| typeof PROVIDER.DEV
|
|
127
|
-
| typeof PROVIDER.FACEBOOK
|
|
128
|
-
| typeof PROVIDER.GENERIC
|
|
129
|
-
| typeof PROVIDER.INTERCOM
|
|
130
|
-
| typeof PROVIDER.SMOOCH
|
|
131
|
-
| typeof PROVIDER.TELEGRAM
|
|
132
|
-
| typeof PROVIDER.TWITTER
|
|
133
|
-
| typeof PROVIDER.WEBCHAT
|
|
134
|
-
| typeof PROVIDER.WECHAT
|
|
135
|
-
| typeof PROVIDER.WHATSAPP
|
|
136
|
-
|
|
137
|
-
export interface SessionUser {
|
|
138
|
-
id: string
|
|
139
|
-
// login
|
|
140
|
-
username?: string
|
|
141
|
-
// person name
|
|
142
|
-
name?: string
|
|
143
|
-
// whatsapp, telegram,...
|
|
144
|
-
provider: ProviderType
|
|
145
|
-
// The provider's user id
|
|
146
|
-
extra_data?: any
|
|
147
|
-
imp_id?: string
|
|
148
|
-
provider_id?: string
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
// eslint-disable @typescript-eslint/naming-convention
|
|
152
|
-
export interface Session {
|
|
153
|
-
bot: {
|
|
154
|
-
id: string
|
|
155
|
-
name?: string
|
|
156
|
-
}
|
|
157
|
-
__locale?: string
|
|
158
|
-
__retries?: number
|
|
159
|
-
is_first_interaction: boolean
|
|
160
|
-
last_session?: any
|
|
161
|
-
organization?: string
|
|
162
|
-
user: SessionUser
|
|
163
|
-
// after handoff
|
|
164
|
-
_hubtype_case_status?: CaseStatusType
|
|
165
|
-
_hubtype_case_typification?: string
|
|
166
|
-
_shadowing?: boolean
|
|
167
|
-
}
|
|
168
|
-
// eslint-enable @typescript-eslint/naming-convention
|
|
169
|
-
|
|
170
|
-
type InputMatcher = (input: Input) => boolean
|
|
171
|
-
type ParamsMatcher =
|
|
172
|
-
| { [key: string]: string }
|
|
173
|
-
| ((params: { [key: string]: string }) => boolean)
|
|
174
|
-
type SessionMatcher = (session: Session) => boolean
|
|
175
|
-
type RequestMatcher = (request: BotRequest) => boolean
|
|
176
|
-
type StringMatcher = RegExp | string | ((data: string) => boolean)
|
|
177
|
-
|
|
178
|
-
export type RouteMatcher =
|
|
179
|
-
| InputMatcher
|
|
180
|
-
| ParamsMatcher
|
|
181
|
-
| RequestMatcher
|
|
182
|
-
| SessionMatcher
|
|
183
|
-
| StringMatcher
|
|
184
|
-
|
|
185
|
-
export interface Route {
|
|
186
|
-
action?: any
|
|
187
|
-
childRoutes?: Route[]
|
|
188
|
-
defaultAction?: any
|
|
189
|
-
lastRoutePath?: string
|
|
190
|
-
ignoreRetry?: boolean
|
|
191
|
-
path?: StringMatcher
|
|
192
|
-
redirect?: string
|
|
193
|
-
retry?: number
|
|
194
|
-
retryAction?: any
|
|
195
|
-
|
|
196
|
-
// matchers
|
|
197
|
-
input?: InputMatcher
|
|
198
|
-
intent?: StringMatcher
|
|
199
|
-
params?: ParamsMatcher
|
|
200
|
-
payload?: StringMatcher
|
|
201
|
-
request?: RequestMatcher
|
|
202
|
-
session?: SessionMatcher
|
|
203
|
-
text?: StringMatcher
|
|
204
|
-
data?: StringMatcher
|
|
205
|
-
type?: StringMatcher
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
export type Routes<R = Route> = R[] | ((_: BotRequest) => R[])
|
|
209
|
-
|
|
210
|
-
export interface BotRequest {
|
|
211
|
-
input: Input
|
|
212
|
-
lastRoutePath: string
|
|
213
|
-
session: Session
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/** The response of the bot for the triggered actions, which can be
|
|
217
|
-
* the one matched by the routes, the default action and the retry actions.
|
|
218
|
-
* See Response at @botonic/react's index.d.ts for the React type
|
|
219
|
-
* */
|
|
220
|
-
export interface BotResponse extends BotRequest {
|
|
221
|
-
response: any
|
|
222
|
-
parsedResponse: Partial<BotonicEvent>[] | null
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
export type PluginPreRequest = BotRequest
|
|
226
|
-
export type PluginPostRequest = BotResponse
|
|
227
|
-
|
|
228
|
-
export interface Plugin {
|
|
229
|
-
post(_: PluginPostRequest): void
|
|
230
|
-
pre(pluginRequest: PluginPreRequest): void
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
export type Params = { [key: string]: string }
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { BaseEvent, EventTypes } from '..'
|
|
2
|
-
|
|
3
|
-
export enum ConnectionEventStatuses {
|
|
4
|
-
CONNECTED = 'connected',
|
|
5
|
-
DISCONNECTED = 'disconnected',
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export interface ConnectionEvent extends BaseEvent {
|
|
9
|
-
eventType: EventTypes.CONNECTION
|
|
10
|
-
status: ConnectionEventStatuses
|
|
11
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { ConnectionEvent } from './connections'
|
|
2
|
-
import { CarouselMessageEvent } from './message/carousel'
|
|
3
|
-
import { CustomMessageEvent } from './message/custom'
|
|
4
|
-
import { LocationMessageEvent } from './message/location'
|
|
5
|
-
import {
|
|
6
|
-
AudioMessageEvent,
|
|
7
|
-
DocumentMessageEvent,
|
|
8
|
-
ImageMessageEvent,
|
|
9
|
-
VideoMessageEvent,
|
|
10
|
-
} from './message/media'
|
|
11
|
-
import { PostbackMessageEvent } from './message/postback'
|
|
12
|
-
import { TextMessageEvent } from './message/text'
|
|
13
|
-
|
|
14
|
-
export enum EventTypes {
|
|
15
|
-
CONNECTION = 'connection',
|
|
16
|
-
MESSAGE = 'message',
|
|
17
|
-
ACK = 'ack',
|
|
18
|
-
TRACK = 'track',
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export interface BaseEvent {
|
|
22
|
-
eventId: string
|
|
23
|
-
userId: string
|
|
24
|
-
eventType: EventTypes
|
|
25
|
-
createdAt: string
|
|
26
|
-
modifiedAt?: string
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export type BotonicEvent =
|
|
30
|
-
| TextMessageEvent
|
|
31
|
-
| PostbackMessageEvent
|
|
32
|
-
| AudioMessageEvent
|
|
33
|
-
| DocumentMessageEvent
|
|
34
|
-
| ImageMessageEvent
|
|
35
|
-
| VideoMessageEvent
|
|
36
|
-
| LocationMessageEvent
|
|
37
|
-
| CarouselMessageEvent
|
|
38
|
-
| CustomMessageEvent
|
|
39
|
-
| ConnectionEvent
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export interface BaseButton {
|
|
2
|
-
title: string
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
export interface WebviewButton extends BaseButton {
|
|
6
|
-
webview: any
|
|
7
|
-
params?: any
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface UrlButton extends BaseButton {
|
|
11
|
-
url: string
|
|
12
|
-
target?: string
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export interface PayloadButton extends BaseButton {
|
|
16
|
-
payload: string
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type Button = PayloadButton | UrlButton | WebviewButton
|
|
20
|
-
|
|
21
|
-
export interface WithButtons {
|
|
22
|
-
buttons?: Button[]
|
|
23
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { BotonicMessageEvent, MessageEventTypes } from '.'
|
|
2
|
-
import { WithButtons } from './buttons'
|
|
3
|
-
|
|
4
|
-
export interface CarouselElement extends WithButtons {
|
|
5
|
-
pic: string
|
|
6
|
-
title: string
|
|
7
|
-
subtitle?: string
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface CarouselMessageEvent extends BotonicMessageEvent {
|
|
11
|
-
type: MessageEventTypes.CAROUSEL
|
|
12
|
-
elements: CarouselElement[]
|
|
13
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { BaseEvent } from '..'
|
|
2
|
-
|
|
3
|
-
export enum MessageEventTypes {
|
|
4
|
-
AUDIO = 'audio',
|
|
5
|
-
CAROUSEL = 'carousel',
|
|
6
|
-
CUSTOM = 'custom',
|
|
7
|
-
DOCUMENT = 'document',
|
|
8
|
-
IMAGE = 'image',
|
|
9
|
-
LOCATION = 'location',
|
|
10
|
-
TEXT = 'text',
|
|
11
|
-
POSTBACK = 'postback',
|
|
12
|
-
VIDEO = 'video',
|
|
13
|
-
/**
|
|
14
|
-
* TODO: contact, buttonmessage?, webchatsettings, whatsapp template
|
|
15
|
-
*/
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export enum MessageEventAck {
|
|
19
|
-
DRAFT = 'draft',
|
|
20
|
-
READ = 'read',
|
|
21
|
-
RECEIVED = 'received',
|
|
22
|
-
SENT = 'sent',
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export enum MessageEventFrom {
|
|
26
|
-
AGENT = 'agent',
|
|
27
|
-
BOT = 'bot',
|
|
28
|
-
USER = 'user',
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export interface BotonicMessageEvent extends BaseEvent {
|
|
32
|
-
ack: MessageEventAck
|
|
33
|
-
from: MessageEventFrom
|
|
34
|
-
type: MessageEventTypes
|
|
35
|
-
typing: number
|
|
36
|
-
delay: number
|
|
37
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { BotonicMessageEvent, MessageEventTypes } from '.'
|
|
2
|
-
import { WithButtons } from './buttons'
|
|
3
|
-
|
|
4
|
-
export const MEDIA_TYPES = [
|
|
5
|
-
MessageEventTypes.AUDIO,
|
|
6
|
-
MessageEventTypes.IMAGE,
|
|
7
|
-
MessageEventTypes.DOCUMENT,
|
|
8
|
-
MessageEventTypes.VIDEO,
|
|
9
|
-
]
|
|
10
|
-
export interface MediaMessageEvent extends BotonicMessageEvent, WithButtons {
|
|
11
|
-
src: string
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface AudioMessageEvent extends MediaMessageEvent {
|
|
15
|
-
type: MessageEventTypes.AUDIO
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface ImageMessageEvent extends MediaMessageEvent {
|
|
19
|
-
type: MessageEventTypes.IMAGE
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface DocumentMessageEvent extends MediaMessageEvent {
|
|
23
|
-
type: MessageEventTypes.DOCUMENT
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export interface VideoMessageEvent extends MediaMessageEvent {
|
|
27
|
-
type: MessageEventTypes.VIDEO
|
|
28
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { BotonicMessageEvent, MessageEventTypes } from '.'
|
|
2
|
-
import { WithButtons } from './buttons'
|
|
3
|
-
import { WithReplies } from './replies'
|
|
4
|
-
|
|
5
|
-
export interface TextMessageEvent
|
|
6
|
-
extends BotonicMessageEvent,
|
|
7
|
-
WithReplies,
|
|
8
|
-
WithButtons {
|
|
9
|
-
type: MessageEventTypes.TEXT
|
|
10
|
-
markdown: boolean
|
|
11
|
-
text: string
|
|
12
|
-
}
|
package/src/models/user.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { BotonicEvent } from '../models/events'
|
|
2
|
-
import { MessageEventTypes } from '../models/events/message'
|
|
3
|
-
import { MEDIA_TYPES } from '../models/events/message/media'
|
|
4
|
-
import {
|
|
5
|
-
parseButtons,
|
|
6
|
-
parseCarousel,
|
|
7
|
-
parseCustom,
|
|
8
|
-
parseLocation,
|
|
9
|
-
parseMedia,
|
|
10
|
-
parseMessage,
|
|
11
|
-
parsePostback,
|
|
12
|
-
parseReplies,
|
|
13
|
-
parseText,
|
|
14
|
-
} from './parsers'
|
|
15
|
-
|
|
16
|
-
export class MessageParsingFactory {
|
|
17
|
-
parse(msgToParse: any): Partial<BotonicEvent> {
|
|
18
|
-
const type = msgToParse.type
|
|
19
|
-
const parsedMessage = parseMessage({ toParse: msgToParse })
|
|
20
|
-
if (type === MessageEventTypes.TEXT) {
|
|
21
|
-
return parseText(parseReplies(parseButtons(parsedMessage))).parsed
|
|
22
|
-
}
|
|
23
|
-
if (type === MessageEventTypes.POSTBACK) {
|
|
24
|
-
return parsePostback(parsedMessage).parsed
|
|
25
|
-
}
|
|
26
|
-
if (MEDIA_TYPES.includes(type)) {
|
|
27
|
-
return parseMedia(parseButtons(parsedMessage)).parsed
|
|
28
|
-
}
|
|
29
|
-
if (type === MessageEventTypes.LOCATION) {
|
|
30
|
-
return parseLocation(parsedMessage).parsed
|
|
31
|
-
}
|
|
32
|
-
if (type === MessageEventTypes.CAROUSEL) {
|
|
33
|
-
return parseCarousel(parsedMessage).parsed
|
|
34
|
-
}
|
|
35
|
-
if (type === MessageEventTypes.CUSTOM) {
|
|
36
|
-
return parseCustom(parseReplies(parsedMessage)).parsed
|
|
37
|
-
}
|
|
38
|
-
throw new Error(`Parsing for type: '${type}' not implemented.`)
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// eslint-disable-next-line import/named
|
|
2
|
-
import { parse, X2jOptions } from 'fast-xml-parser'
|
|
3
|
-
import { decode } from 'html-entities'
|
|
4
|
-
|
|
5
|
-
import { BotonicEvent } from '../models/events'
|
|
6
|
-
import { MessageParsingFactory } from './factory'
|
|
7
|
-
|
|
8
|
-
export const TEXT_NODE_NAME = 'text'
|
|
9
|
-
|
|
10
|
-
export class BotonicOutputParser {
|
|
11
|
-
private static OPTIONS: Partial<X2jOptions> = {
|
|
12
|
-
ignoreAttributes: false,
|
|
13
|
-
attributeNamePrefix: '',
|
|
14
|
-
textNodeName: TEXT_NODE_NAME,
|
|
15
|
-
arrayMode: true,
|
|
16
|
-
attrValueProcessor: a => decode(a),
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
constructor(private readonly factory = new MessageParsingFactory()) {}
|
|
20
|
-
|
|
21
|
-
xmlToMessageEvents(html: string): Partial<BotonicEvent>[] {
|
|
22
|
-
const jsonMessages = this.xmlToJSONMessages(html)
|
|
23
|
-
return jsonMessages.map(msgToParse => this.factory.parse(msgToParse))
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Right now, when saving BotonicEvents to DataProvider, we need the standarized Botonic event
|
|
28
|
-
* to be saved. This is, converting a botonic input like: '{id: 'msgId', data: 'rawData', payload: 'somePayload'}'
|
|
29
|
-
* into a BotonicEvent with the expected properties.
|
|
30
|
-
*/
|
|
31
|
-
parseFromUserInput(input: any): Partial<BotonicEvent> {
|
|
32
|
-
return this.factory.parse(input)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
private xmlToJSONMessages(html: any): any {
|
|
36
|
-
return parse(html, BotonicOutputParser.OPTIONS).message
|
|
37
|
-
}
|
|
38
|
-
}
|