@botonic/core 1.0.0-dev.2 → 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.
Files changed (311) hide show
  1. package/CHANGELOG.md +226 -0
  2. package/README.md +7 -9
  3. package/package.json +19 -57
  4. package/src/index.d.ts +4 -0
  5. package/src/index.js +5 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/core-bot/index.d.ts +33 -0
  8. package/src/lib/core-bot/index.js +113 -0
  9. package/src/lib/core-bot/index.js.map +1 -0
  10. package/src/lib/hubtype-service/handoff.d.ts +4 -0
  11. package/src/lib/hubtype-service/handoff.js +32 -0
  12. package/src/lib/hubtype-service/handoff.js.map +1 -0
  13. package/src/lib/hubtype-service/index.d.ts +10 -0
  14. package/src/lib/hubtype-service/index.js +96 -0
  15. package/src/lib/hubtype-service/index.js.map +1 -0
  16. package/src/lib/messages/button.d.ts +8 -0
  17. package/src/lib/messages/button.js +10 -0
  18. package/src/lib/messages/button.js.map +1 -0
  19. package/src/lib/plugins/index.d.ts +2 -0
  20. package/src/lib/plugins/index.js +23 -0
  21. package/src/lib/plugins/index.js.map +1 -0
  22. package/src/lib/routes/index.d.ts +0 -0
  23. package/src/lib/routes/index.js +2 -0
  24. package/src/lib/routes/index.js.map +1 -0
  25. package/src/lib/routes/router.d.ts +14 -0
  26. package/src/lib/routes/router.js +68 -0
  27. package/src/lib/routes/router.js.map +1 -0
  28. package/src/lib/routes/types.d.ts +15 -0
  29. package/src/lib/routes/types.js +2 -0
  30. package/src/lib/routes/types.js.map +1 -0
  31. package/{lib/cjs/utils.d.ts → src/lib/utils/index.d.ts} +0 -4
  32. package/{lib/esm/utils.js → src/lib/utils/index.js} +1 -34
  33. package/src/lib/utils/index.js.map +1 -0
  34. package/lib/cjs/constants.d.ts +0 -4
  35. package/lib/cjs/constants.js +0 -8
  36. package/lib/cjs/constants.js.map +0 -1
  37. package/lib/cjs/core-bot.d.ts +0 -36
  38. package/lib/cjs/core-bot.js +0 -96
  39. package/lib/cjs/core-bot.js.map +0 -1
  40. package/lib/cjs/debug/index.d.ts +0 -1
  41. package/lib/cjs/debug/index.js +0 -5
  42. package/lib/cjs/debug/index.js.map +0 -1
  43. package/lib/cjs/debug/inspector.d.ts +0 -24
  44. package/lib/cjs/debug/inspector.js +0 -72
  45. package/lib/cjs/debug/inspector.js.map +0 -1
  46. package/lib/cjs/handoff.d.ts +0 -67
  47. package/lib/cjs/handoff.js +0 -186
  48. package/lib/cjs/handoff.js.map +0 -1
  49. package/lib/cjs/hubtype-service.d.ts +0 -69
  50. package/lib/cjs/hubtype-service.js +0 -190
  51. package/lib/cjs/hubtype-service.js.map +0 -1
  52. package/lib/cjs/i18n.d.ts +0 -2
  53. package/lib/cjs/i18n.js +0 -11
  54. package/lib/cjs/i18n.js.map +0 -1
  55. package/lib/cjs/index.d.ts +0 -11
  56. package/lib/cjs/index.js +0 -15
  57. package/lib/cjs/index.js.map +0 -1
  58. package/lib/cjs/models/bot-state.d.ts +0 -11
  59. package/lib/cjs/models/bot-state.js +0 -3
  60. package/lib/cjs/models/bot-state.js.map +0 -1
  61. package/lib/cjs/models/channels.d.ts +0 -9
  62. package/lib/cjs/models/channels.js +0 -14
  63. package/lib/cjs/models/channels.js.map +0 -1
  64. package/lib/cjs/models/events/base-event.d.ts +0 -20
  65. package/lib/cjs/models/events/base-event.js +0 -17
  66. package/lib/cjs/models/events/base-event.js.map +0 -1
  67. package/lib/cjs/models/events/botonic-event.d.ts +0 -4
  68. package/lib/cjs/models/events/botonic-event.js +0 -3
  69. package/lib/cjs/models/events/botonic-event.js.map +0 -1
  70. package/lib/cjs/models/events/connection/connection-event.d.ts +0 -9
  71. package/lib/cjs/models/events/connection/connection-event.js +0 -9
  72. package/lib/cjs/models/events/connection/connection-event.js.map +0 -1
  73. package/lib/cjs/models/events/connection/index.d.ts +0 -1
  74. package/lib/cjs/models/events/connection/index.js +0 -5
  75. package/lib/cjs/models/events/connection/index.js.map +0 -1
  76. package/lib/cjs/models/events/index.d.ts +0 -4
  77. package/lib/cjs/models/events/index.js +0 -8
  78. package/lib/cjs/models/events/index.js.map +0 -1
  79. package/lib/cjs/models/events/integration/index.d.ts +0 -1
  80. package/lib/cjs/models/events/integration/index.js +0 -5
  81. package/lib/cjs/models/events/integration/index.js.map +0 -1
  82. package/lib/cjs/models/events/integration/integration-event.d.ts +0 -6
  83. package/lib/cjs/models/events/integration/integration-event.js +0 -3
  84. package/lib/cjs/models/events/integration/integration-event.js.map +0 -1
  85. package/lib/cjs/models/events/message/buttons.d.ts +0 -18
  86. package/lib/cjs/models/events/message/buttons.js +0 -3
  87. package/lib/cjs/models/events/message/buttons.js.map +0 -1
  88. package/lib/cjs/models/events/message/carousel.d.ts +0 -11
  89. package/lib/cjs/models/events/message/carousel.js +0 -3
  90. package/lib/cjs/models/events/message/carousel.js.map +0 -1
  91. package/lib/cjs/models/events/message/custom.d.ts +0 -6
  92. package/lib/cjs/models/events/message/custom.js +0 -3
  93. package/lib/cjs/models/events/message/custom.js.map +0 -1
  94. package/lib/cjs/models/events/message/index.d.ts +0 -9
  95. package/lib/cjs/models/events/message/index.js +0 -13
  96. package/lib/cjs/models/events/message/index.js.map +0 -1
  97. package/lib/cjs/models/events/message/location.d.ts +0 -6
  98. package/lib/cjs/models/events/message/location.js +0 -3
  99. package/lib/cjs/models/events/message/location.js.map +0 -1
  100. package/lib/cjs/models/events/message/media.d.ts +0 -18
  101. package/lib/cjs/models/events/message/media.js +0 -11
  102. package/lib/cjs/models/events/message/media.js.map +0 -1
  103. package/lib/cjs/models/events/message/message-event.d.ts +0 -30
  104. package/lib/cjs/models/events/message/message-event.js +0 -32
  105. package/lib/cjs/models/events/message/message-event.js.map +0 -1
  106. package/lib/cjs/models/events/message/postback.d.ts +0 -4
  107. package/lib/cjs/models/events/message/postback.js +0 -3
  108. package/lib/cjs/models/events/message/postback.js.map +0 -1
  109. package/lib/cjs/models/events/message/replies.d.ts +0 -7
  110. package/lib/cjs/models/events/message/replies.js +0 -3
  111. package/lib/cjs/models/events/message/replies.js.map +0 -1
  112. package/lib/cjs/models/events/message/text.d.ts +0 -8
  113. package/lib/cjs/models/events/message/text.js +0 -3
  114. package/lib/cjs/models/events/message/text.js.map +0 -1
  115. package/lib/cjs/models/index.d.ts +0 -6
  116. package/lib/cjs/models/index.js +0 -10
  117. package/lib/cjs/models/index.js.map +0 -1
  118. package/lib/cjs/models/legacy-types.d.ts +0 -184
  119. package/lib/cjs/models/legacy-types.js +0 -59
  120. package/lib/cjs/models/legacy-types.js.map +0 -1
  121. package/lib/cjs/models/session.d.ts +0 -3
  122. package/lib/cjs/models/session.js +0 -3
  123. package/lib/cjs/models/session.js.map +0 -1
  124. package/lib/cjs/models/user.d.ts +0 -14
  125. package/lib/cjs/models/user.js +0 -3
  126. package/lib/cjs/models/user.js.map +0 -1
  127. package/lib/cjs/output-parser/botonic-output-parser.d.ts +0 -16
  128. package/lib/cjs/output-parser/botonic-output-parser.js +0 -37
  129. package/lib/cjs/output-parser/botonic-output-parser.js.map +0 -1
  130. package/lib/cjs/output-parser/factory.d.ts +0 -4
  131. package/lib/cjs/output-parser/factory.js +0 -32
  132. package/lib/cjs/output-parser/factory.js.map +0 -1
  133. package/lib/cjs/output-parser/index.d.ts +0 -3
  134. package/lib/cjs/output-parser/index.js +0 -7
  135. package/lib/cjs/output-parser/index.js.map +0 -1
  136. package/lib/cjs/output-parser/parsers.d.ts +0 -22
  137. package/lib/cjs/output-parser/parsers.js +0 -147
  138. package/lib/cjs/output-parser/parsers.js.map +0 -1
  139. package/lib/cjs/plugins.d.ts +0 -6
  140. package/lib/cjs/plugins.js +0 -48
  141. package/lib/cjs/plugins.js.map +0 -1
  142. package/lib/cjs/routing/index.d.ts +0 -2
  143. package/lib/cjs/routing/index.js +0 -6
  144. package/lib/cjs/routing/index.js.map +0 -1
  145. package/lib/cjs/routing/router-utils.d.ts +0 -11
  146. package/lib/cjs/routing/router-utils.js +0 -89
  147. package/lib/cjs/routing/router-utils.js.map +0 -1
  148. package/lib/cjs/routing/router.d.ts +0 -54
  149. package/lib/cjs/routing/router.js +0 -319
  150. package/lib/cjs/routing/router.js.map +0 -1
  151. package/lib/cjs/utils.js +0 -90
  152. package/lib/cjs/utils.js.map +0 -1
  153. package/lib/esm/constants.d.ts +0 -4
  154. package/lib/esm/constants.js +0 -5
  155. package/lib/esm/constants.js.map +0 -1
  156. package/lib/esm/core-bot.d.ts +0 -36
  157. package/lib/esm/core-bot.js +0 -92
  158. package/lib/esm/core-bot.js.map +0 -1
  159. package/lib/esm/debug/index.d.ts +0 -1
  160. package/lib/esm/debug/index.js +0 -2
  161. package/lib/esm/debug/index.js.map +0 -1
  162. package/lib/esm/debug/inspector.d.ts +0 -24
  163. package/lib/esm/debug/inspector.js +0 -65
  164. package/lib/esm/debug/inspector.js.map +0 -1
  165. package/lib/esm/handoff.d.ts +0 -67
  166. package/lib/esm/handoff.js +0 -173
  167. package/lib/esm/handoff.js.map +0 -1
  168. package/lib/esm/hubtype-service.d.ts +0 -69
  169. package/lib/esm/hubtype-service.js +0 -185
  170. package/lib/esm/hubtype-service.js.map +0 -1
  171. package/lib/esm/i18n.d.ts +0 -2
  172. package/lib/esm/i18n.js +0 -7
  173. package/lib/esm/i18n.js.map +0 -1
  174. package/lib/esm/index.d.ts +0 -11
  175. package/lib/esm/index.js +0 -12
  176. package/lib/esm/index.js.map +0 -1
  177. package/lib/esm/models/bot-state.d.ts +0 -11
  178. package/lib/esm/models/bot-state.js +0 -2
  179. package/lib/esm/models/bot-state.js.map +0 -1
  180. package/lib/esm/models/channels.d.ts +0 -9
  181. package/lib/esm/models/channels.js +0 -11
  182. package/lib/esm/models/channels.js.map +0 -1
  183. package/lib/esm/models/events/base-event.d.ts +0 -20
  184. package/lib/esm/models/events/base-event.js +0 -14
  185. package/lib/esm/models/events/base-event.js.map +0 -1
  186. package/lib/esm/models/events/botonic-event.d.ts +0 -4
  187. package/lib/esm/models/events/botonic-event.js +0 -2
  188. package/lib/esm/models/events/botonic-event.js.map +0 -1
  189. package/lib/esm/models/events/connection/connection-event.d.ts +0 -9
  190. package/lib/esm/models/events/connection/connection-event.js +0 -6
  191. package/lib/esm/models/events/connection/connection-event.js.map +0 -1
  192. package/lib/esm/models/events/connection/index.d.ts +0 -1
  193. package/lib/esm/models/events/connection/index.js +0 -2
  194. package/lib/esm/models/events/connection/index.js.map +0 -1
  195. package/lib/esm/models/events/index.d.ts +0 -4
  196. package/lib/esm/models/events/index.js +0 -5
  197. package/lib/esm/models/events/index.js.map +0 -1
  198. package/lib/esm/models/events/integration/index.d.ts +0 -1
  199. package/lib/esm/models/events/integration/index.js +0 -2
  200. package/lib/esm/models/events/integration/index.js.map +0 -1
  201. package/lib/esm/models/events/integration/integration-event.d.ts +0 -6
  202. package/lib/esm/models/events/integration/integration-event.js +0 -2
  203. package/lib/esm/models/events/integration/integration-event.js.map +0 -1
  204. package/lib/esm/models/events/message/buttons.d.ts +0 -18
  205. package/lib/esm/models/events/message/buttons.js +0 -2
  206. package/lib/esm/models/events/message/buttons.js.map +0 -1
  207. package/lib/esm/models/events/message/carousel.d.ts +0 -11
  208. package/lib/esm/models/events/message/carousel.js +0 -2
  209. package/lib/esm/models/events/message/carousel.js.map +0 -1
  210. package/lib/esm/models/events/message/custom.d.ts +0 -6
  211. package/lib/esm/models/events/message/custom.js +0 -2
  212. package/lib/esm/models/events/message/custom.js.map +0 -1
  213. package/lib/esm/models/events/message/index.d.ts +0 -9
  214. package/lib/esm/models/events/message/index.js +0 -10
  215. package/lib/esm/models/events/message/index.js.map +0 -1
  216. package/lib/esm/models/events/message/location.d.ts +0 -6
  217. package/lib/esm/models/events/message/location.js +0 -2
  218. package/lib/esm/models/events/message/location.js.map +0 -1
  219. package/lib/esm/models/events/message/media.d.ts +0 -18
  220. package/lib/esm/models/events/message/media.js +0 -8
  221. package/lib/esm/models/events/message/media.js.map +0 -1
  222. package/lib/esm/models/events/message/message-event.d.ts +0 -30
  223. package/lib/esm/models/events/message/message-event.js +0 -29
  224. package/lib/esm/models/events/message/message-event.js.map +0 -1
  225. package/lib/esm/models/events/message/postback.d.ts +0 -4
  226. package/lib/esm/models/events/message/postback.js +0 -2
  227. package/lib/esm/models/events/message/postback.js.map +0 -1
  228. package/lib/esm/models/events/message/replies.d.ts +0 -7
  229. package/lib/esm/models/events/message/replies.js +0 -2
  230. package/lib/esm/models/events/message/replies.js.map +0 -1
  231. package/lib/esm/models/events/message/text.d.ts +0 -8
  232. package/lib/esm/models/events/message/text.js +0 -2
  233. package/lib/esm/models/events/message/text.js.map +0 -1
  234. package/lib/esm/models/index.d.ts +0 -6
  235. package/lib/esm/models/index.js +0 -7
  236. package/lib/esm/models/index.js.map +0 -1
  237. package/lib/esm/models/legacy-types.d.ts +0 -184
  238. package/lib/esm/models/legacy-types.js +0 -56
  239. package/lib/esm/models/legacy-types.js.map +0 -1
  240. package/lib/esm/models/session.d.ts +0 -3
  241. package/lib/esm/models/session.js +0 -2
  242. package/lib/esm/models/session.js.map +0 -1
  243. package/lib/esm/models/user.d.ts +0 -14
  244. package/lib/esm/models/user.js +0 -2
  245. package/lib/esm/models/user.js.map +0 -1
  246. package/lib/esm/output-parser/botonic-output-parser.d.ts +0 -16
  247. package/lib/esm/output-parser/botonic-output-parser.js +0 -33
  248. package/lib/esm/output-parser/botonic-output-parser.js.map +0 -1
  249. package/lib/esm/output-parser/factory.d.ts +0 -4
  250. package/lib/esm/output-parser/factory.js +0 -28
  251. package/lib/esm/output-parser/factory.js.map +0 -1
  252. package/lib/esm/output-parser/index.d.ts +0 -3
  253. package/lib/esm/output-parser/index.js +0 -4
  254. package/lib/esm/output-parser/index.js.map +0 -1
  255. package/lib/esm/output-parser/parsers.d.ts +0 -22
  256. package/lib/esm/output-parser/parsers.js +0 -130
  257. package/lib/esm/output-parser/parsers.js.map +0 -1
  258. package/lib/esm/plugins.d.ts +0 -6
  259. package/lib/esm/plugins.js +0 -43
  260. package/lib/esm/plugins.js.map +0 -1
  261. package/lib/esm/routing/index.d.ts +0 -2
  262. package/lib/esm/routing/index.js +0 -3
  263. package/lib/esm/routing/index.js.map +0 -1
  264. package/lib/esm/routing/router-utils.d.ts +0 -11
  265. package/lib/esm/routing/router-utils.js +0 -79
  266. package/lib/esm/routing/router-utils.js.map +0 -1
  267. package/lib/esm/routing/router.d.ts +0 -54
  268. package/lib/esm/routing/router.js +0 -315
  269. package/lib/esm/routing/router.js.map +0 -1
  270. package/lib/esm/utils.d.ts +0 -11
  271. package/lib/esm/utils.js.map +0 -1
  272. package/src/constants.ts +0 -6
  273. package/src/core-bot.ts +0 -181
  274. package/src/debug/index.ts +0 -1
  275. package/src/debug/inspector.ts +0 -102
  276. package/src/handoff.ts +0 -271
  277. package/src/hubtype-service.ts +0 -266
  278. package/src/i18n.ts +0 -12
  279. package/src/index.ts +0 -11
  280. package/src/models/bot-state.ts +0 -12
  281. package/src/models/channels.ts +0 -9
  282. package/src/models/events/base-event.ts +0 -22
  283. package/src/models/events/botonic-event.ts +0 -26
  284. package/src/models/events/connection/connection-event.ts +0 -11
  285. package/src/models/events/connection/index.ts +0 -1
  286. package/src/models/events/index.ts +0 -4
  287. package/src/models/events/integration/index.ts +0 -1
  288. package/src/models/events/integration/integration-event.ts +0 -13
  289. package/src/models/events/message/buttons.ts +0 -23
  290. package/src/models/events/message/carousel.ts +0 -13
  291. package/src/models/events/message/custom.ts +0 -7
  292. package/src/models/events/message/index.ts +0 -9
  293. package/src/models/events/message/location.ts +0 -7
  294. package/src/models/events/message/media.ts +0 -28
  295. package/src/models/events/message/message-event.ts +0 -37
  296. package/src/models/events/message/postback.ts +0 -5
  297. package/src/models/events/message/replies.ts +0 -8
  298. package/src/models/events/message/text.ts +0 -12
  299. package/src/models/index.ts +0 -6
  300. package/src/models/legacy-types.ts +0 -262
  301. package/src/models/session.ts +0 -3
  302. package/src/models/user.ts +0 -16
  303. package/src/output-parser/botonic-output-parser.ts +0 -38
  304. package/src/output-parser/factory.ts +0 -38
  305. package/src/output-parser/index.ts +0 -3
  306. package/src/output-parser/parsers.ts +0 -202
  307. package/src/plugins.ts +0 -59
  308. package/src/routing/index.ts +0 -2
  309. package/src/routing/router-utils.ts +0 -100
  310. package/src/routing/router.ts +0 -415
  311. package/src/utils.ts +0 -90
@@ -1,13 +0,0 @@
1
- import { WithButtons } from './buttons'
2
- import { BotonicMessageEvent, MessageEventTypes } from './message-event'
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,7 +0,0 @@
1
- import { BotonicMessageEvent, MessageEventTypes } from './message-event'
2
- import { WithReplies } from './replies'
3
-
4
- export interface CustomMessageEvent extends BotonicMessageEvent, WithReplies {
5
- type: MessageEventTypes.CUSTOM
6
- json: any
7
- }
@@ -1,9 +0,0 @@
1
- export * from './buttons'
2
- export * from './carousel'
3
- export * from './custom'
4
- export * from './location'
5
- export * from './media'
6
- export * from './message-event'
7
- export * from './postback'
8
- export * from './replies'
9
- export * from './text'
@@ -1,7 +0,0 @@
1
- import { BotonicMessageEvent, MessageEventTypes } from './message-event'
2
-
3
- export interface LocationMessageEvent extends BotonicMessageEvent {
4
- type: MessageEventTypes.LOCATION
5
- lat: number
6
- long: number
7
- }
@@ -1,28 +0,0 @@
1
- import { WithButtons } from './buttons'
2
- import { BotonicMessageEvent, MessageEventTypes } from './message-event'
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,37 +0,0 @@
1
- import { BaseEvent } from '../base-event'
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,5 +0,0 @@
1
- import { BotonicMessageEvent } from './message-event'
2
-
3
- export interface PostbackMessageEvent extends BotonicMessageEvent {
4
- payload: string
5
- }
@@ -1,8 +0,0 @@
1
- export interface Reply {
2
- title: string
3
- payload: string
4
- }
5
-
6
- export interface WithReplies {
7
- replies?: Reply[]
8
- }
@@ -1,12 +0,0 @@
1
- import { WithButtons } from './buttons'
2
- import { BotonicMessageEvent, MessageEventTypes } from './message-event'
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
- }
@@ -1,6 +0,0 @@
1
- export * from './bot-state'
2
- export * from './channels'
3
- export * from './events'
4
- export * from './legacy-types'
5
- export * from './session'
6
- export * from './user'
@@ -1,262 +0,0 @@
1
- // TODO: This file contains all the legacy types we had in index.ts. After some refactors, we should be able to get rid of many of them.
2
- import { BotState } from './bot-state'
3
- import { BotonicEvent } from './events'
4
- import { Session } from './session'
5
-
6
- export type CaseStatusType =
7
- | typeof CASE_STATUS.ATTENDING
8
- | typeof CASE_STATUS.IDLE
9
- | typeof CASE_STATUS.RESOLVED
10
- | typeof CASE_STATUS.WAITING
11
-
12
- export type CaseResolution =
13
- | typeof CASE_RESOLUTION.BANNED
14
- | typeof CASE_RESOLUTION.NOK
15
- | typeof CASE_RESOLUTION.NOT_SOLVED
16
- | typeof CASE_RESOLUTION.OK
17
-
18
- export const PROVIDER = Object.freeze({
19
- DEV: 'dev',
20
- FACEBOOK: 'facebook',
21
- GENERIC: 'generic',
22
- INTERCOM: 'intercom',
23
- SMOOCH: 'smooch',
24
- TELEGRAM: 'telegram',
25
- TWITTER: 'twitter',
26
- WEBCHAT: 'webchat',
27
- WECHAT: 'wechat',
28
- WHATSAPP: 'whatsapp',
29
- })
30
-
31
- export const INPUT = Object.freeze({
32
- TEXT: 'text',
33
- POSTBACK: 'postback',
34
- AUDIO: 'audio',
35
- IMAGE: 'image',
36
- VIDEO: 'video',
37
- DOCUMENT: 'document',
38
- LOCATION: 'location',
39
- CONTACT: 'contact',
40
- BUTTON_MESSAGE: 'buttonmessage',
41
- CAROUSEL: 'carousel',
42
- CUSTOM: 'custom',
43
- WEBCHAT_SETTINGS: 'webchatsettings',
44
- WHATSAPP_TEMPLATE: 'whatsapptemplate',
45
- RAW: 'raw',
46
- })
47
-
48
- export const CASE_STATUS = Object.freeze({
49
- WAITING: 'status_waiting',
50
- ATTENDING: 'status_attending',
51
- IDLE: 'status_idle',
52
- RESOLVED: 'status_resolved',
53
- })
54
-
55
- export const CASE_RESOLUTION = Object.freeze({
56
- OK: 'result_ok',
57
- NOK: 'result_nok',
58
- NOT_SOLVED: 'result_not_solved',
59
- BANNED: 'result_banned',
60
- })
61
-
62
- export interface Locales {
63
- [id: string]: string | string[] | Locales
64
- }
65
-
66
- interface PluginConstructor<T> {
67
- new (arg: T): Plugin
68
- }
69
-
70
- export interface PluginConfig<T> {
71
- id: string
72
- options?: T
73
- resolve: { default: PluginConstructor<T> }
74
- }
75
-
76
- export type InputType =
77
- | typeof INPUT.AUDIO
78
- | typeof INPUT.BUTTON_MESSAGE
79
- | typeof INPUT.CAROUSEL
80
- | typeof INPUT.CONTACT
81
- | typeof INPUT.CUSTOM
82
- | typeof INPUT.DOCUMENT
83
- | typeof INPUT.IMAGE
84
- | typeof INPUT.LOCATION
85
- | typeof INPUT.POSTBACK
86
- | typeof INPUT.TEXT
87
- | typeof INPUT.VIDEO
88
- | typeof INPUT.WEBCHAT_SETTINGS
89
- | typeof INPUT.WHATSAPP_TEMPLATE
90
-
91
- export interface IntentResult {
92
- intent: string
93
- confidence: number
94
- }
95
-
96
- /** Generated by Translation plugins: GoogleTranslation **/
97
- export interface Translations {
98
- [languageCode: string]: string
99
- }
100
-
101
- /** Fields set by NLU plugins: Luis, Dialogflow, ... **/
102
- export interface NluResult {
103
- // the name of the highest confidence intent
104
- confidence: number
105
- intent: string
106
- intents: IntentResult[]
107
- language: string
108
- // entity recognition results in the format provided by the NLU engine
109
- entities?: any
110
- translations: Translations
111
- }
112
-
113
- export interface Input extends Partial<NluResult> {
114
- text?: string
115
- src?: string
116
- data?: string
117
- path?: string
118
- payload?: string
119
- type: InputType
120
- }
121
-
122
- export type ProviderType =
123
- | typeof PROVIDER.DEV
124
- | typeof PROVIDER.FACEBOOK
125
- | typeof PROVIDER.GENERIC
126
- | typeof PROVIDER.INTERCOM
127
- | typeof PROVIDER.SMOOCH
128
- | typeof PROVIDER.TELEGRAM
129
- | typeof PROVIDER.TWITTER
130
- | typeof PROVIDER.WEBCHAT
131
- | typeof PROVIDER.WECHAT
132
- | typeof PROVIDER.WHATSAPP
133
-
134
- // eslint-enable @typescript-eslint/naming-convention
135
-
136
- export type InputMatcher = (input: Input) => boolean
137
- export type ParamsMatcher =
138
- | { [key: string]: string }
139
- | ((params: { [key: string]: string }) => boolean)
140
- export type SessionMatcher = (session: Session) => boolean
141
- export type RequestMatcher = (request: BotRequest) => boolean
142
- export type StringMatcher = RegExp | string | ((data: string) => boolean)
143
-
144
- export type RouteMatcher =
145
- | InputMatcher
146
- | ParamsMatcher
147
- | RequestMatcher
148
- | SessionMatcher
149
- | StringMatcher
150
-
151
- export interface Route {
152
- action?: any
153
- childRoutes?: Route[]
154
- lastRoutePath?: string
155
- ignoreRetry?: boolean
156
- path: RoutePath
157
- redirect?: string
158
- retry?: number
159
-
160
- // matchers
161
- input?: InputMatcher
162
- intent?: StringMatcher
163
- params?: ParamsMatcher
164
- payload?: StringMatcher
165
- request?: RequestMatcher
166
- session?: SessionMatcher
167
- text?: StringMatcher
168
- data?: StringMatcher
169
- type?: StringMatcher
170
- }
171
-
172
- export type Routes<R = Route> = R[] | ((_: BotRequest) => R[])
173
-
174
- export interface BotRequest {
175
- input: Input
176
- session: Session
177
- botState: BotState
178
- dataProvider?: any // TODO: type as dataProvider
179
- }
180
-
181
- /** The response of the bot for the triggered actions, which can be
182
- * the one matched by the routes, the default action and the retry actions.
183
- * See Response at @botonic/react's index.d.ts for the React type
184
- * */
185
- export interface BotResponse extends BotRequest {
186
- response: any
187
- messageEvents: Partial<BotonicEvent>[] | null
188
- }
189
-
190
- export interface PluginPreRequest extends BotRequest {
191
- plugins: Plugin[]
192
- }
193
- export interface PluginPostRequest extends BotResponse {
194
- plugins: Plugin[]
195
- }
196
-
197
- export interface Plugin {
198
- post(request: PluginPostRequest): void
199
- pre(request: PluginPreRequest): void
200
- }
201
-
202
- export interface Params {
203
- [key: string]: any
204
- }
205
-
206
- export const Providers = Object.freeze({
207
- Messaging: {
208
- FACEBOOK: 'facebook',
209
- GENERIC: 'generic',
210
- IMBEE: 'imbee',
211
- INTERCOM: 'intercom',
212
- SMOOCH_WEB: 'smooch_web',
213
- SMOOCH: 'smooch',
214
- TELEGRAM: 'telegram',
215
- TWITTER: 'twitter',
216
- WEBCHAT: 'webchat',
217
- WECHAT: 'wechat',
218
- WHATSAPP: 'whatsapp',
219
- },
220
- })
221
-
222
- export type Nullable<T> = T | null
223
-
224
- export type Action = Nullable<() => any>
225
- export type RoutePath = Nullable<string>
226
-
227
- export interface ProcessInputResult {
228
- action: Action
229
- emptyAction: Action
230
- fallbackAction: Action
231
- botState: BotState
232
- params: Params
233
- }
234
-
235
- export type MatchedValue = boolean | RegExpExecArray | null
236
-
237
- export type RoutingState = {
238
- currentRoute: Nullable<Route>
239
- matchedRoute: Nullable<Route>
240
- params: Params
241
- isFlowBroken: boolean
242
- }
243
-
244
- export interface RouteParams {
245
- route: Nullable<Route>
246
- params: Params
247
- }
248
- export interface PathParams {
249
- path: RoutePath
250
- params: Params
251
- }
252
-
253
- export type MatchingProp =
254
- | 'text'
255
- | 'payload'
256
- | 'intent'
257
- | 'type'
258
- | 'input'
259
- | 'session'
260
- | 'request'
261
-
262
- export type Matcher = string | RegExp | ((args) => boolean)
@@ -1,3 +0,0 @@
1
- export interface Session {
2
- [key: string]: any
3
- }
@@ -1,16 +0,0 @@
1
- import { BotState } from './bot-state'
2
- import { Session } from './session'
3
-
4
- export interface User {
5
- id: string //TODO: UUID
6
- name?: string
7
- userName?: string
8
- channel: string
9
- idFromChannel: string // providerId
10
- session: Session
11
- botState: BotState
12
- isOnline: boolean
13
- websocketId?: string
14
- // part of details?
15
- locationInfo: string
16
- }
@@ -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'
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
- inputToBotonicEvent(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
- }
@@ -1,38 +0,0 @@
1
- import { BotonicEvent, MEDIA_TYPES, MessageEventTypes } from '../models'
2
- import {
3
- parseButtons,
4
- parseCarousel,
5
- parseCustom,
6
- parseLocation,
7
- parseMedia,
8
- parseMessage,
9
- parsePostback,
10
- parseReplies,
11
- parseText,
12
- } from './parsers'
13
-
14
- export class MessageParsingFactory {
15
- parse(msgToParse: any): Partial<BotonicEvent> {
16
- const type = msgToParse.type
17
- const parsedMessage = parseMessage({ toParse: msgToParse })
18
- if (type === MessageEventTypes.TEXT) {
19
- return parseText(parseReplies(parseButtons(parsedMessage))).parsed
20
- }
21
- if (type === MessageEventTypes.POSTBACK) {
22
- return parsePostback(parsedMessage).parsed
23
- }
24
- if (MEDIA_TYPES.includes(type)) {
25
- return parseMedia(parseButtons(parsedMessage)).parsed
26
- }
27
- if (type === MessageEventTypes.LOCATION) {
28
- return parseLocation(parsedMessage).parsed
29
- }
30
- if (type === MessageEventTypes.CAROUSEL) {
31
- return parseCarousel(parsedMessage).parsed
32
- }
33
- if (type === MessageEventTypes.CUSTOM) {
34
- return parseCustom(parseReplies(parsedMessage)).parsed
35
- }
36
- throw new Error(`Parsing for type: '${type}' not implemented.`)
37
- }
38
- }
@@ -1,3 +0,0 @@
1
- export * from './botonic-output-parser'
2
- export * from './factory'
3
- export * from './parsers'