@botonic/core 0.19.0 → 0.20.2-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/lib/cjs/constants.d.ts +4 -0
  2. package/lib/cjs/constants.js +8 -0
  3. package/lib/cjs/constants.js.map +1 -0
  4. package/lib/cjs/core-bot.d.ts +36 -0
  5. package/lib/cjs/core-bot.js +115 -0
  6. package/lib/cjs/core-bot.js.map +1 -0
  7. package/lib/cjs/data-provider/dynamodb-data-provider.d.ts +26 -0
  8. package/lib/cjs/data-provider/dynamodb-data-provider.js +81 -0
  9. package/lib/cjs/data-provider/dynamodb-data-provider.js.map +1 -0
  10. package/lib/cjs/data-provider/dynamodb-utils.d.ts +11 -0
  11. package/lib/cjs/data-provider/dynamodb-utils.js +120 -0
  12. package/lib/cjs/data-provider/dynamodb-utils.js.map +1 -0
  13. package/lib/cjs/data-provider/factory.d.ts +25 -0
  14. package/lib/cjs/data-provider/factory.js +31 -0
  15. package/lib/cjs/data-provider/factory.js.map +1 -0
  16. package/lib/cjs/data-provider/index.d.ts +4 -0
  17. package/lib/cjs/data-provider/index.js +8 -0
  18. package/lib/cjs/data-provider/index.js.map +1 -0
  19. package/lib/cjs/data-provider/local-data-provider.d.ts +26 -0
  20. package/lib/cjs/data-provider/local-data-provider.js +137 -0
  21. package/lib/cjs/data-provider/local-data-provider.js.map +1 -0
  22. package/lib/cjs/debug/index.d.ts +1 -0
  23. package/lib/cjs/debug/index.js +5 -0
  24. package/lib/cjs/debug/index.js.map +1 -0
  25. package/lib/cjs/debug/inspector.d.ts +24 -0
  26. package/lib/{debug → cjs/debug}/inspector.js +5 -3
  27. package/lib/cjs/debug/inspector.js.map +1 -0
  28. package/lib/cjs/handoff.d.ts +67 -0
  29. package/lib/{handoff.js → cjs/handoff.js} +2 -1
  30. package/lib/cjs/handoff.js.map +1 -0
  31. package/lib/cjs/hubtype-service.d.ts +69 -0
  32. package/lib/{hubtype-service.js → cjs/hubtype-service.js} +25 -12
  33. package/lib/cjs/hubtype-service.js.map +1 -0
  34. package/lib/cjs/i18n.d.ts +2 -0
  35. package/lib/{i18n.js → cjs/i18n.js} +0 -1
  36. package/lib/cjs/i18n.js.map +1 -0
  37. package/lib/cjs/index.d.ts +11 -0
  38. package/lib/cjs/index.js +17 -0
  39. package/lib/cjs/index.js.map +1 -0
  40. package/lib/cjs/models/events/base-event.d.ts +13 -0
  41. package/lib/{models/events/index.js → cjs/models/events/base-event.js} +1 -1
  42. package/lib/cjs/models/events/base-event.js.map +1 -0
  43. package/lib/cjs/models/events/botonic-event.d.ts +3 -0
  44. package/lib/cjs/models/events/botonic-event.js +3 -0
  45. package/lib/cjs/models/events/botonic-event.js.map +1 -0
  46. package/lib/{models/events/connections/index.d.ts → cjs/models/events/connections/connection-event.d.ts} +1 -1
  47. package/lib/{models/events/connections/index.js → cjs/models/events/connections/connection-event.js} +1 -1
  48. package/lib/cjs/models/events/connections/connection-event.js.map +1 -0
  49. package/lib/cjs/models/events/connections/index.d.ts +1 -0
  50. package/lib/cjs/models/events/connections/index.js +5 -0
  51. package/lib/cjs/models/events/connections/index.js.map +1 -0
  52. package/lib/cjs/models/events/index.d.ts +4 -0
  53. package/lib/cjs/models/events/index.js +8 -0
  54. package/lib/cjs/models/events/index.js.map +1 -0
  55. package/lib/{models → cjs/models}/events/message/buttons.d.ts +0 -0
  56. package/lib/{models → cjs/models}/events/message/buttons.js +0 -0
  57. package/lib/cjs/models/events/message/buttons.js.map +1 -0
  58. package/lib/{models → cjs/models}/events/message/carousel.d.ts +1 -1
  59. package/lib/{models → cjs/models}/events/message/carousel.js +0 -0
  60. package/lib/cjs/models/events/message/carousel.js.map +1 -0
  61. package/lib/{models → cjs/models}/events/message/custom.d.ts +2 -2
  62. package/lib/{models → cjs/models}/events/message/custom.js +0 -0
  63. package/lib/cjs/models/events/message/custom.js.map +1 -0
  64. package/lib/cjs/models/events/message/index.d.ts +9 -0
  65. package/lib/cjs/models/events/message/index.js +13 -0
  66. package/lib/cjs/models/events/message/index.js.map +1 -0
  67. package/lib/{models → cjs/models}/events/message/location.d.ts +1 -1
  68. package/lib/{models → cjs/models}/events/message/location.js +0 -0
  69. package/lib/cjs/models/events/message/location.js.map +1 -0
  70. package/lib/{models → cjs/models}/events/message/media.d.ts +1 -1
  71. package/lib/cjs/models/events/message/media.js +11 -0
  72. package/lib/cjs/models/events/message/media.js.map +1 -0
  73. package/lib/{models/events/message/index.d.ts → cjs/models/events/message/message-event.d.ts} +1 -1
  74. package/lib/{models/events/message/index.js → cjs/models/events/message/message-event.js} +1 -1
  75. package/lib/cjs/models/events/message/message-event.js.map +1 -0
  76. package/lib/{models → cjs/models}/events/message/postback.d.ts +1 -1
  77. package/lib/{models → cjs/models}/events/message/postback.js +0 -0
  78. package/lib/cjs/models/events/message/postback.js.map +1 -0
  79. package/lib/{models → cjs/models}/events/message/replies.d.ts +0 -0
  80. package/lib/{models → cjs/models}/events/message/replies.js +0 -0
  81. package/lib/cjs/models/events/message/replies.js.map +1 -0
  82. package/lib/{models → cjs/models}/events/message/text.d.ts +1 -1
  83. package/lib/{models → cjs/models}/events/message/text.js +0 -0
  84. package/lib/cjs/models/events/message/text.js.map +1 -0
  85. package/lib/cjs/models/index.d.ts +3 -0
  86. package/lib/cjs/models/index.js +7 -0
  87. package/lib/cjs/models/index.js.map +1 -0
  88. package/lib/cjs/models/legacy-types.d.ts +207 -0
  89. package/lib/cjs/models/legacy-types.js +60 -0
  90. package/lib/cjs/models/legacy-types.js.map +1 -0
  91. package/lib/{models → cjs/models}/user.d.ts +1 -1
  92. package/lib/{models → cjs/models}/user.js +0 -0
  93. package/lib/{models → cjs/models}/user.js.map +1 -1
  94. package/lib/{output-parser/index.d.ts → cjs/output-parser/botonic-output-parser.d.ts} +1 -1
  95. package/lib/{output-parser/index.js → cjs/output-parser/botonic-output-parser.js} +2 -1
  96. package/lib/cjs/output-parser/botonic-output-parser.js.map +1 -0
  97. package/lib/{output-parser → cjs/output-parser}/factory.d.ts +1 -1
  98. package/lib/{output-parser → cjs/output-parser}/factory.js +7 -8
  99. package/lib/cjs/output-parser/factory.js.map +1 -0
  100. package/lib/cjs/output-parser/index.d.ts +3 -0
  101. package/lib/cjs/output-parser/index.js +7 -0
  102. package/lib/cjs/output-parser/index.js.map +1 -0
  103. package/lib/{output-parser → cjs/output-parser}/parsers.d.ts +3 -9
  104. package/lib/{output-parser → cjs/output-parser}/parsers.js +21 -12
  105. package/lib/cjs/output-parser/parsers.js.map +1 -0
  106. package/lib/cjs/plugins.d.ts +7 -0
  107. package/lib/{plugins.js → cjs/plugins.js} +8 -5
  108. package/lib/cjs/plugins.js.map +1 -0
  109. package/lib/cjs/pusher-utils.d.ts +7 -0
  110. package/lib/cjs/pusher-utils.js +20 -0
  111. package/lib/cjs/pusher-utils.js.map +1 -0
  112. package/lib/cjs/routing/index.d.ts +2 -0
  113. package/lib/cjs/routing/index.js +6 -0
  114. package/lib/cjs/routing/index.js.map +1 -0
  115. package/lib/cjs/routing/router-utils.d.ts +11 -0
  116. package/lib/cjs/routing/router-utils.js +89 -0
  117. package/lib/cjs/routing/router-utils.js.map +1 -0
  118. package/lib/cjs/routing/router.d.ts +54 -0
  119. package/lib/cjs/routing/router.js +315 -0
  120. package/lib/cjs/routing/router.js.map +1 -0
  121. package/lib/cjs/utils.d.ts +11 -0
  122. package/lib/{utils.js → cjs/utils.js} +14 -5
  123. package/lib/cjs/utils.js.map +1 -0
  124. package/lib/esm/constants.d.ts +4 -0
  125. package/lib/esm/constants.js +5 -0
  126. package/lib/esm/constants.js.map +1 -0
  127. package/lib/esm/core-bot.d.ts +36 -0
  128. package/lib/esm/core-bot.js +111 -0
  129. package/lib/esm/core-bot.js.map +1 -0
  130. package/lib/esm/data-provider/dynamodb-data-provider.d.ts +26 -0
  131. package/lib/esm/data-provider/dynamodb-data-provider.js +77 -0
  132. package/lib/esm/data-provider/dynamodb-data-provider.js.map +1 -0
  133. package/lib/esm/data-provider/dynamodb-utils.d.ts +11 -0
  134. package/lib/esm/data-provider/dynamodb-utils.js +113 -0
  135. package/lib/esm/data-provider/dynamodb-utils.js.map +1 -0
  136. package/lib/esm/data-provider/factory.d.ts +25 -0
  137. package/lib/esm/data-provider/factory.js +27 -0
  138. package/lib/esm/data-provider/factory.js.map +1 -0
  139. package/lib/esm/data-provider/index.d.ts +4 -0
  140. package/lib/esm/data-provider/index.js +5 -0
  141. package/lib/esm/data-provider/index.js.map +1 -0
  142. package/lib/esm/data-provider/local-data-provider.d.ts +26 -0
  143. package/lib/esm/data-provider/local-data-provider.js +133 -0
  144. package/lib/esm/data-provider/local-data-provider.js.map +1 -0
  145. package/lib/esm/debug/index.d.ts +1 -0
  146. package/lib/esm/debug/index.js +2 -0
  147. package/lib/esm/debug/index.js.map +1 -0
  148. package/lib/esm/debug/inspector.d.ts +24 -0
  149. package/lib/esm/debug/inspector.js +65 -0
  150. package/lib/esm/debug/inspector.js.map +1 -0
  151. package/lib/esm/handoff.d.ts +67 -0
  152. package/lib/esm/handoff.js +171 -0
  153. package/lib/esm/handoff.js.map +1 -0
  154. package/lib/esm/hubtype-service.d.ts +69 -0
  155. package/lib/esm/hubtype-service.js +195 -0
  156. package/lib/esm/hubtype-service.js.map +1 -0
  157. package/lib/esm/i18n.d.ts +2 -0
  158. package/lib/esm/i18n.js +7 -0
  159. package/lib/esm/i18n.js.map +1 -0
  160. package/lib/esm/index.d.ts +11 -0
  161. package/lib/esm/index.js +14 -0
  162. package/lib/esm/index.js.map +1 -0
  163. package/lib/esm/models/events/base-event.d.ts +13 -0
  164. package/lib/esm/models/events/base-event.js +8 -0
  165. package/lib/esm/models/events/base-event.js.map +1 -0
  166. package/lib/esm/models/events/botonic-event.d.ts +3 -0
  167. package/lib/esm/models/events/botonic-event.js +2 -0
  168. package/lib/esm/models/events/botonic-event.js.map +1 -0
  169. package/lib/esm/models/events/connections/connection-event.d.ts +9 -0
  170. package/lib/esm/models/events/connections/connection-event.js +6 -0
  171. package/lib/esm/models/events/connections/connection-event.js.map +1 -0
  172. package/lib/esm/models/events/connections/index.d.ts +1 -0
  173. package/lib/esm/models/events/connections/index.js +2 -0
  174. package/lib/esm/models/events/connections/index.js.map +1 -0
  175. package/lib/esm/models/events/index.d.ts +4 -0
  176. package/lib/esm/models/events/index.js +5 -0
  177. package/lib/esm/models/events/index.js.map +1 -0
  178. package/lib/esm/models/events/message/buttons.d.ts +18 -0
  179. package/lib/esm/models/events/message/buttons.js +2 -0
  180. package/lib/esm/models/events/message/buttons.js.map +1 -0
  181. package/lib/esm/models/events/message/carousel.d.ts +11 -0
  182. package/lib/esm/models/events/message/carousel.js +2 -0
  183. package/lib/esm/models/events/message/carousel.js.map +1 -0
  184. package/lib/esm/models/events/message/custom.d.ts +6 -0
  185. package/lib/esm/models/events/message/custom.js +2 -0
  186. package/lib/esm/models/events/message/custom.js.map +1 -0
  187. package/lib/esm/models/events/message/index.d.ts +9 -0
  188. package/lib/esm/models/events/message/index.js +10 -0
  189. package/lib/esm/models/events/message/index.js.map +1 -0
  190. package/lib/esm/models/events/message/location.d.ts +6 -0
  191. package/lib/esm/models/events/message/location.js +2 -0
  192. package/lib/esm/models/events/message/location.js.map +1 -0
  193. package/lib/esm/models/events/message/media.d.ts +18 -0
  194. package/lib/esm/models/events/message/media.js +8 -0
  195. package/lib/esm/models/events/message/media.js.map +1 -0
  196. package/lib/esm/models/events/message/message-event.d.ts +30 -0
  197. package/lib/esm/models/events/message/message-event.js +29 -0
  198. package/lib/esm/models/events/message/message-event.js.map +1 -0
  199. package/lib/esm/models/events/message/postback.d.ts +4 -0
  200. package/lib/esm/models/events/message/postback.js +2 -0
  201. package/lib/esm/models/events/message/postback.js.map +1 -0
  202. package/lib/esm/models/events/message/replies.d.ts +7 -0
  203. package/lib/esm/models/events/message/replies.js +2 -0
  204. package/lib/esm/models/events/message/replies.js.map +1 -0
  205. package/lib/esm/models/events/message/text.d.ts +8 -0
  206. package/lib/esm/models/events/message/text.js +2 -0
  207. package/lib/esm/models/events/message/text.js.map +1 -0
  208. package/lib/esm/models/index.d.ts +3 -0
  209. package/lib/esm/models/index.js +4 -0
  210. package/lib/esm/models/index.js.map +1 -0
  211. package/lib/esm/models/legacy-types.d.ts +207 -0
  212. package/lib/esm/models/legacy-types.js +57 -0
  213. package/lib/esm/models/legacy-types.js.map +1 -0
  214. package/lib/esm/models/user.d.ts +10 -0
  215. package/lib/esm/models/user.js +2 -0
  216. package/lib/esm/models/user.js.map +1 -0
  217. package/lib/esm/output-parser/botonic-output-parser.d.ts +16 -0
  218. package/lib/esm/output-parser/botonic-output-parser.js +33 -0
  219. package/lib/esm/output-parser/botonic-output-parser.js.map +1 -0
  220. package/lib/esm/output-parser/factory.d.ts +4 -0
  221. package/lib/esm/output-parser/factory.js +28 -0
  222. package/lib/esm/output-parser/factory.js.map +1 -0
  223. package/lib/esm/output-parser/index.d.ts +3 -0
  224. package/lib/esm/output-parser/index.js +4 -0
  225. package/lib/esm/output-parser/index.js.map +1 -0
  226. package/lib/esm/output-parser/parsers.d.ts +22 -0
  227. package/lib/esm/output-parser/parsers.js +130 -0
  228. package/lib/esm/output-parser/parsers.js.map +1 -0
  229. package/lib/esm/plugins.d.ts +7 -0
  230. package/lib/esm/plugins.js +42 -0
  231. package/lib/esm/plugins.js.map +1 -0
  232. package/lib/esm/pusher-utils.d.ts +7 -0
  233. package/lib/esm/pusher-utils.js +16 -0
  234. package/lib/esm/pusher-utils.js.map +1 -0
  235. package/lib/esm/routing/index.d.ts +2 -0
  236. package/lib/esm/routing/index.js +3 -0
  237. package/lib/esm/routing/index.js.map +1 -0
  238. package/lib/esm/routing/router-utils.d.ts +11 -0
  239. package/lib/esm/routing/router-utils.js +79 -0
  240. package/lib/esm/routing/router-utils.js.map +1 -0
  241. package/lib/esm/routing/router.d.ts +54 -0
  242. package/lib/esm/routing/router.js +311 -0
  243. package/lib/esm/routing/router.js.map +1 -0
  244. package/lib/esm/utils.d.ts +11 -0
  245. package/lib/esm/utils.js +78 -0
  246. package/lib/esm/utils.js.map +1 -0
  247. package/package.json +22 -9
  248. package/src/constants.ts +6 -0
  249. package/src/core-bot.ts +213 -0
  250. package/src/data-provider/dynamodb-data-provider.ts +103 -0
  251. package/src/data-provider/dynamodb-utils.ts +149 -0
  252. package/src/data-provider/factory.ts +60 -0
  253. package/src/data-provider/index.ts +4 -0
  254. package/src/data-provider/local-data-provider.ts +154 -0
  255. package/src/{types/debug/index.d.ts → debug/index.ts} +0 -0
  256. package/src/debug/{inspector.js → inspector.ts} +39 -14
  257. package/src/{handoff.js → handoff.ts} +88 -24
  258. package/src/{hubtype-service.js → hubtype-service.ts} +85 -34
  259. package/src/{i18n.js → i18n.ts} +7 -1
  260. package/src/index.ts +13 -0
  261. package/src/models/events/base-event.ts +14 -0
  262. package/src/models/events/botonic-event.ts +24 -0
  263. package/src/models/events/connections/connection-event.ts +11 -0
  264. package/src/models/events/connections/index.ts +1 -11
  265. package/src/models/events/index.ts +4 -39
  266. package/src/models/events/message/carousel.ts +1 -1
  267. package/src/models/events/message/custom.ts +2 -2
  268. package/src/models/events/message/index.ts +9 -37
  269. package/src/models/events/message/location.ts +1 -1
  270. package/src/models/events/message/media.ts +1 -1
  271. package/src/models/events/message/message-event.ts +37 -0
  272. package/src/models/events/message/postback.ts +1 -1
  273. package/src/models/events/message/text.ts +1 -1
  274. package/src/models/index.ts +3 -0
  275. package/src/{types/index.d.ts → models/legacy-types.ts} +141 -80
  276. package/src/models/user.ts +2 -1
  277. package/src/output-parser/botonic-output-parser.ts +38 -0
  278. package/src/output-parser/factory.ts +1 -3
  279. package/src/output-parser/index.ts +3 -37
  280. package/src/output-parser/parsers.ts +27 -17
  281. package/src/{plugins.js → plugins.ts} +21 -12
  282. package/src/pusher-utils.ts +16 -0
  283. package/src/routing/index.ts +2 -0
  284. package/src/routing/router-utils.ts +100 -0
  285. package/src/routing/router.ts +409 -0
  286. package/src/{utils.js → utils.ts} +26 -13
  287. package/index.d.ts +0 -1
  288. package/lib/constants.d.ts +0 -15
  289. package/lib/constants.js +0 -19
  290. package/lib/constants.js.map +0 -1
  291. package/lib/core-bot.d.ts +0 -40
  292. package/lib/core-bot.js +0 -78
  293. package/lib/core-bot.js.map +0 -1
  294. package/lib/debug/index.d.ts +0 -1
  295. package/lib/debug/index.js +0 -9
  296. package/lib/debug/index.js.map +0 -1
  297. package/lib/debug/inspector.d.ts +0 -20
  298. package/lib/debug/inspector.js.map +0 -1
  299. package/lib/debug/inspector.test.d.ts +0 -1
  300. package/lib/debug/inspector.test.js +0 -8
  301. package/lib/debug/inspector.test.js.map +0 -1
  302. package/lib/errors.d.ts +0 -4
  303. package/lib/errors.js +0 -11
  304. package/lib/errors.js.map +0 -1
  305. package/lib/handoff.d.ts +0 -34
  306. package/lib/handoff.js.map +0 -1
  307. package/lib/handoff.test.d.ts +0 -1
  308. package/lib/handoff.test.js +0 -62
  309. package/lib/handoff.test.js.map +0 -1
  310. package/lib/hubtype-service.d.ts +0 -58
  311. package/lib/hubtype-service.js.map +0 -1
  312. package/lib/hubtype-service.test.d.ts +0 -1
  313. package/lib/hubtype-service.test.js +0 -21
  314. package/lib/hubtype-service.test.js.map +0 -1
  315. package/lib/i18n.d.ts +0 -1
  316. package/lib/i18n.js.map +0 -1
  317. package/lib/index.d.ts +0 -48
  318. package/lib/index.js +0 -58
  319. package/lib/index.js.map +0 -1
  320. package/lib/models/events/connections/index.js.map +0 -1
  321. package/lib/models/events/index.d.ts +0 -21
  322. package/lib/models/events/index.js.map +0 -1
  323. package/lib/models/events/message/buttons.js.map +0 -1
  324. package/lib/models/events/message/carousel.js.map +0 -1
  325. package/lib/models/events/message/custom.js.map +0 -1
  326. package/lib/models/events/message/index.js.map +0 -1
  327. package/lib/models/events/message/location.js.map +0 -1
  328. package/lib/models/events/message/media.js +0 -11
  329. package/lib/models/events/message/media.js.map +0 -1
  330. package/lib/models/events/message/postback.js.map +0 -1
  331. package/lib/models/events/message/replies.js.map +0 -1
  332. package/lib/models/events/message/text.js.map +0 -1
  333. package/lib/output-parser/factory.js.map +0 -1
  334. package/lib/output-parser/index.js.map +0 -1
  335. package/lib/output-parser/parsers.js.map +0 -1
  336. package/lib/output-parser/util.d.ts +0 -2
  337. package/lib/output-parser/util.js +0 -14
  338. package/lib/output-parser/util.js.map +0 -1
  339. package/lib/plugins.d.ts +0 -2
  340. package/lib/plugins.js.map +0 -1
  341. package/lib/router.d.ts +0 -55
  342. package/lib/router.js +0 -268
  343. package/lib/router.js.map +0 -1
  344. package/lib/router.test.d.ts +0 -1
  345. package/lib/router.test.js +0 -271
  346. package/lib/router.test.js.map +0 -1
  347. package/lib/utils.d.ts +0 -8
  348. package/lib/utils.js.map +0 -1
  349. package/src/constants.js +0 -15
  350. package/src/core-bot.js +0 -108
  351. package/src/debug/index.js +0 -6
  352. package/src/debug/inspector.test.js +0 -6
  353. package/src/errors.js +0 -8
  354. package/src/handoff.test.js +0 -61
  355. package/src/hubtype-service.test.js +0 -23
  356. package/src/index.js +0 -52
  357. package/src/output-parser/util.ts +0 -8
  358. package/src/router.js +0 -273
  359. package/src/router.test.js +0 -345
  360. package/src/types/constants.d.ts +0 -14
  361. package/src/types/core-bot.d.ts +0 -46
  362. package/src/types/debug/inspector.d.ts +0 -33
  363. package/src/types/handoff.d.ts +0 -84
  364. package/src/types/hubtype-service.d.ts +0 -52
  365. package/src/types/i18n.d.ts +0 -8
  366. package/src/types/plugins.d.ts +0 -13
  367. package/src/types/router.d.ts +0 -57
  368. package/src/types/utils.d.ts +0 -12
@@ -1,39 +1,4 @@
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
+ export * from './base-event'
2
+ export * from './botonic-event'
3
+ export * from './connections'
4
+ export * from './message'
@@ -1,5 +1,5 @@
1
- import { BotonicMessageEvent, MessageEventTypes } from '.'
2
1
  import { WithButtons } from './buttons'
2
+ import { BotonicMessageEvent, MessageEventTypes } from './message-event'
3
3
 
4
4
  export interface CarouselElement extends WithButtons {
5
5
  pic: string
@@ -1,7 +1,7 @@
1
- import { BotonicMessageEvent, MessageEventTypes } from '.'
1
+ import { BotonicMessageEvent, MessageEventTypes } from './message-event'
2
2
  import { WithReplies } from './replies'
3
3
 
4
4
  export interface CustomMessageEvent extends BotonicMessageEvent, WithReplies {
5
5
  type: MessageEventTypes.CUSTOM
6
- customTypeName: string
6
+ json: any
7
7
  }
@@ -1,37 +1,9 @@
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
+ 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,4 +1,4 @@
1
- import { BotonicMessageEvent, MessageEventTypes } from '.'
1
+ import { BotonicMessageEvent, MessageEventTypes } from './message-event'
2
2
 
3
3
  export interface LocationMessageEvent extends BotonicMessageEvent {
4
4
  type: MessageEventTypes.LOCATION
@@ -1,5 +1,5 @@
1
- import { BotonicMessageEvent, MessageEventTypes } from '.'
2
1
  import { WithButtons } from './buttons'
2
+ import { BotonicMessageEvent, MessageEventTypes } from './message-event'
3
3
 
4
4
  export const MEDIA_TYPES = [
5
5
  MessageEventTypes.AUDIO,
@@ -0,0 +1,37 @@
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,4 +1,4 @@
1
- import { BotonicMessageEvent } from '.'
1
+ import { BotonicMessageEvent } from './message-event'
2
2
 
3
3
  export interface PostbackMessageEvent extends BotonicMessageEvent {
4
4
  payload: string
@@ -1,5 +1,5 @@
1
- import { BotonicMessageEvent, MessageEventTypes } from '.'
2
1
  import { WithButtons } from './buttons'
2
+ import { BotonicMessageEvent, MessageEventTypes } from './message-event'
3
3
  import { WithReplies } from './replies'
4
4
 
5
5
  export interface TextMessageEvent
@@ -0,0 +1,3 @@
1
+ export * from './events'
2
+ export * from './legacy-types'
3
+ export * from './user'
@@ -1,11 +1,63 @@
1
- export { Providers } from './constants'
2
- export { BotOptions, CoreBot } from './core-bot'
3
- export * from './debug'
4
- export * from './handoff'
5
- export { HubtypeService } from './hubtype-service'
6
- export { getString } from './i18n'
7
- export { Router } from './router'
8
- export * from './utils'
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
+
3
+ import { DataProvider } from '../data-provider'
4
+ import { BotonicEvent } from './events'
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
+ })
9
61
 
10
62
  export interface Locales {
11
63
  [id: string]: string | string[] | Locales
@@ -21,22 +73,6 @@ export interface PluginConfig<T> {
21
73
  resolve: { default: PluginConstructor<T> }
22
74
  }
23
75
 
24
- export const INPUT: Readonly<{
25
- AUDIO: 'audio'
26
- BUTTON_MESSAGE: 'buttonmessage'
27
- CAROUSEL: 'carousel'
28
- CONTACT: 'contact'
29
- CUSTOM: 'custom'
30
- DOCUMENT: 'document'
31
- IMAGE: 'image'
32
- LOCATION: 'location'
33
- POSTBACK: 'postback'
34
- TEXT: 'text'
35
- VIDEO: 'video'
36
- WEBCHAT_SETTINGS: 'webchatsettings'
37
- WHATSAPP_TEMPLATE: 'whatsapptemplate'
38
- }>
39
-
40
76
  export type InputType =
41
77
  | typeof INPUT.AUDIO
42
78
  | typeof INPUT.BUTTON_MESSAGE
@@ -75,25 +111,14 @@ export interface NluResult {
75
111
  }
76
112
 
77
113
  export interface Input extends Partial<NluResult> {
114
+ text?: string
115
+ src?: string
78
116
  data?: string
79
117
  path?: string
80
118
  payload?: string
81
119
  type: InputType
82
120
  }
83
121
 
84
- export const PROVIDER: Readonly<{
85
- DEV: 'dev'
86
- FACEBOOK: 'facebook'
87
- GENERIC: 'generic'
88
- INTERCOM: 'intercom'
89
- SMOOCH: 'smooch'
90
- TELEGRAM: 'telegram'
91
- TWITTER: 'twitter'
92
- WEBCHAT: 'webchat'
93
- WECHAT: 'wechat'
94
- WHATSAPP: 'whatsapp'
95
- }>
96
-
97
122
  export type ProviderType =
98
123
  | typeof PROVIDER.DEV
99
124
  | typeof PROVIDER.FACEBOOK
@@ -127,7 +152,7 @@ export interface Session {
127
152
  name?: string
128
153
  }
129
154
  __locale?: string
130
- __retries?: number
155
+ __retries: number
131
156
  is_first_interaction: boolean
132
157
  last_session?: any
133
158
  organization?: string
@@ -139,13 +164,13 @@ export interface Session {
139
164
  }
140
165
  // eslint-enable @typescript-eslint/naming-convention
141
166
 
142
- type InputMatcher = (input: Input) => boolean
143
- type ParamsMatcher =
167
+ export type InputMatcher = (input: Input) => boolean
168
+ export type ParamsMatcher =
144
169
  | { [key: string]: string }
145
170
  | ((params: { [key: string]: string }) => boolean)
146
- type SessionMatcher = (session: Session) => boolean
147
- type RequestMatcher = (request: BotRequest) => boolean
148
- type StringMatcher = RegExp | string | ((data: string) => boolean)
171
+ export type SessionMatcher = (session: Session) => boolean
172
+ export type RequestMatcher = (request: BotRequest) => boolean
173
+ export type StringMatcher = RegExp | string | ((data: string) => boolean)
149
174
 
150
175
  export type RouteMatcher =
151
176
  | InputMatcher
@@ -157,13 +182,11 @@ export type RouteMatcher =
157
182
  export interface Route {
158
183
  action?: any
159
184
  childRoutes?: Route[]
160
- defaultAction?: any
161
185
  lastRoutePath?: string
162
186
  ignoreRetry?: boolean
163
- path?: StringMatcher
187
+ path: RoutePath
164
188
  redirect?: string
165
189
  retry?: number
166
- retryAction?: any
167
190
 
168
191
  // matchers
169
192
  input?: InputMatcher
@@ -179,38 +202,11 @@ export interface Route {
179
202
 
180
203
  export type Routes<R = Route> = R[] | ((_: BotRequest) => R[])
181
204
 
182
- // Desk
183
-
184
- export const CASE_STATUS: Readonly<{
185
- ATTENDING: 'status_attending'
186
- IDLE: 'status_idle'
187
- RESOLVED: 'status_resolved'
188
- WAITING: 'status_waiting'
189
- }>
190
-
191
- export type CaseStatusType =
192
- | typeof CASE_STATUS.ATTENDING
193
- | typeof CASE_STATUS.IDLE
194
- | typeof CASE_STATUS.RESOLVED
195
- | typeof CASE_STATUS.WAITING
196
-
197
- export const CASE_RESOLUTION: Readonly<{
198
- BANNED: 'result_banned'
199
- NOK: 'result_nok'
200
- NOT_SOLVED: 'result_not_solved'
201
- OK: 'result_ok'
202
- }>
203
-
204
- export type CaseResolution =
205
- | typeof CASE_RESOLUTION.BANNED
206
- | typeof CASE_RESOLUTION.NOK
207
- | typeof CASE_RESOLUTION.NOT_SOLVED
208
- | typeof CASE_RESOLUTION.OK
209
-
210
205
  export interface BotRequest {
211
206
  input: Input
212
- lastRoutePath: string
207
+ lastRoutePath: RoutePath
213
208
  session: Session
209
+ dataProvider?: DataProvider
214
210
  }
215
211
 
216
212
  /** The response of the bot for the triggered actions, which can be
@@ -219,14 +215,79 @@ export interface BotRequest {
219
215
  * */
220
216
  export interface BotResponse extends BotRequest {
221
217
  response: any
218
+ messageEvents: Partial<BotonicEvent>[] | null
222
219
  }
223
220
 
224
- export type PluginPreRequest = BotRequest
225
- export type PluginPostRequest = BotResponse
221
+ export interface PluginPreRequest extends BotRequest {
222
+ plugins: Plugin[]
223
+ }
224
+ export interface PluginPostRequest extends BotResponse {
225
+ plugins: Plugin[]
226
+ }
226
227
 
227
228
  export interface Plugin {
228
- post(_: PluginPostRequest): void
229
- pre(pluginRequest: PluginPreRequest): void
229
+ post(request: PluginPostRequest): void
230
+ pre(request: PluginPreRequest): void
231
+ }
232
+
233
+ export interface Params {
234
+ [key: string]: any
230
235
  }
231
236
 
232
- export type Params = { [key: string]: string }
237
+ export const Providers = Object.freeze({
238
+ Messaging: {
239
+ FACEBOOK: 'facebook',
240
+ GENERIC: 'generic',
241
+ IMBEE: 'imbee',
242
+ INTERCOM: 'intercom',
243
+ SMOOCH_WEB: 'smooch_web',
244
+ SMOOCH: 'smooch',
245
+ TELEGRAM: 'telegram',
246
+ TWITTER: 'twitter',
247
+ WEBCHAT: 'webchat',
248
+ WECHAT: 'wechat',
249
+ WHATSAPP: 'whatsapp',
250
+ },
251
+ })
252
+
253
+ export type Nullable<T> = T | null
254
+
255
+ export type Action = Nullable<() => any>
256
+ export type RoutePath = Nullable<string>
257
+
258
+ export interface ProcessInputResult {
259
+ action: Action
260
+ emptyAction: Action
261
+ fallbackAction: Action
262
+ lastRoutePath: RoutePath
263
+ params: Params
264
+ }
265
+
266
+ export type MatchedValue = boolean | RegExpExecArray | null
267
+
268
+ export type RoutingState = {
269
+ currentRoute: Nullable<Route>
270
+ matchedRoute: Nullable<Route>
271
+ params: Params
272
+ isFlowBroken: boolean
273
+ }
274
+
275
+ export interface RouteParams {
276
+ route: Nullable<Route>
277
+ params: Params
278
+ }
279
+ export interface PathParams {
280
+ path: RoutePath
281
+ params: Params
282
+ }
283
+
284
+ export type MatchingProp =
285
+ | 'text'
286
+ | 'payload'
287
+ | 'intent'
288
+ | 'type'
289
+ | 'input'
290
+ | 'session'
291
+ | 'request'
292
+
293
+ export type Matcher = string | RegExp | ((args) => boolean)
@@ -1,4 +1,5 @@
1
- import { Session } from '../types/'
1
+ import { Session } from './legacy-types'
2
+
2
3
  export interface User {
3
4
  id: string //TODO: UUID
4
5
  providerId?: string
@@ -0,0 +1,38 @@
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
+ 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
+ }
@@ -1,6 +1,4 @@
1
- import { BotonicEvent } from '../models/events'
2
- import { MessageEventTypes } from '../models/events/message'
3
- import { MEDIA_TYPES } from '../models/events/message/media'
1
+ import { BotonicEvent, MEDIA_TYPES, MessageEventTypes } from '../models'
4
2
  import {
5
3
  parseButtons,
6
4
  parseCarousel,
@@ -1,37 +1,3 @@
1
- import { parse, X2jOptions } from 'fast-xml-parser'
2
- import { decode } from 'html-entities'
3
-
4
- import { BotonicEvent } from '../models/events'
5
- import { MessageParsingFactory } from './factory'
6
-
7
- export const TEXT_NODE_NAME = 'text'
8
-
9
- export class BotonicOutputParser {
10
- private static OPTIONS: Partial<X2jOptions> = {
11
- ignoreAttributes: false,
12
- attributeNamePrefix: '',
13
- textNodeName: TEXT_NODE_NAME,
14
- arrayMode: true,
15
- attrValueProcessor: a => decode(a),
16
- }
17
-
18
- constructor(private readonly factory = new MessageParsingFactory()) {}
19
-
20
- xmlToMessageEvents(html: string): Partial<BotonicEvent>[] {
21
- const jsonMessages = this.xmlToJSONMessages(html)
22
- return jsonMessages.map(msgToParse => this.factory.parse(msgToParse))
23
- }
24
-
25
- /**
26
- * Right now, when saving BotonicEvents to DataProvider, we need the standarized Botonic event
27
- * to be saved. This is, converting a botonic input like: '{id: 'msgId', data: 'rawData', payload: 'somePayload'}'
28
- * into a BotonicEvent with the expected properties.
29
- */
30
- parseFromUserInput(input: any): Partial<BotonicEvent> {
31
- return this.factory.parse(input)
32
- }
33
-
34
- private xmlToJSONMessages(html: any): any {
35
- return parse(html, BotonicOutputParser.OPTIONS).message
36
- }
37
- }
1
+ export * from './botonic-output-parser'
2
+ export * from './factory'
3
+ export * from './parsers'
@@ -1,23 +1,31 @@
1
- import { EventTypes } from '../models/events'
2
- import { BotonicMessageEvent } from '../models/events/message'
3
- import { Button, WithButtons } from '../models/events/message/buttons'
4
1
  import {
2
+ AudioMessageEvent,
3
+ BotonicMessageEvent,
4
+ Button,
5
5
  CarouselElement,
6
6
  CarouselMessageEvent,
7
- } from '../models/events/message/carousel'
8
- import { CustomMessageEvent } from '../models/events/message/custom'
9
- import { LocationMessageEvent } from '../models/events/message/location'
10
- import {
11
- AudioMessageEvent,
7
+ CustomMessageEvent,
12
8
  DocumentMessageEvent,
9
+ EventTypes,
13
10
  ImageMessageEvent,
11
+ LocationMessageEvent,
12
+ PostbackMessageEvent,
13
+ Reply,
14
+ TextMessageEvent,
14
15
  VideoMessageEvent,
15
- } from '../models/events/message/media'
16
- import { Reply, WithReplies } from '../models/events/message/replies'
17
- import { TextMessageEvent } from '../models/events/message/text'
18
- import { TEXT_NODE_NAME } from '.'
19
- import { parseBoolean, parseNumber } from './util'
20
- import { PostbackMessageEvent } from 'src/models/events/message/postback'
16
+ WithButtons,
17
+ WithReplies,
18
+ } from '../models'
19
+ import { TEXT_NODE_NAME } from './botonic-output-parser'
20
+
21
+ export function parseNumber(strNumber: string): number {
22
+ return parseInt(strNumber)
23
+ }
24
+
25
+ export function parseBoolean(strNumber: string): boolean {
26
+ if (strNumber === '0') return false
27
+ return true
28
+ }
21
29
 
22
30
  export type ParseFunction<Out> = (args: {
23
31
  toParse: any
@@ -42,6 +50,8 @@ export const parseMessage: ParseFunction<BotonicMessageEvent> = args => {
42
50
  // Following properties added later before saving event: eventId, userId, createdAt, from, ack
43
51
  eventType: EventTypes.MESSAGE,
44
52
  type: args.toParse.type,
53
+ ack: args.toParse.ack,
54
+ from: args.toParse.from,
45
55
  ...typingAndDelay,
46
56
  },
47
57
  }
@@ -110,7 +120,7 @@ export const parseText: ParseFunction<TextMessageEvent> = args => {
110
120
  toParse: args.toParse,
111
121
  parsed: {
112
122
  ...args.parsed,
113
- text: args.toParse[TEXT_NODE_NAME] || args.toParse.data,
123
+ text: args.toParse[TEXT_NODE_NAME],
114
124
  markdown: parseBoolean(args.toParse.markdown),
115
125
  },
116
126
  }
@@ -139,7 +149,7 @@ export const parseMedia: ParseFunction<
139
149
  toParse: args.toParse,
140
150
  parsed: {
141
151
  ...args.parsed,
142
- src: args.toParse.src || args.toParse.data,
152
+ src: args.toParse.src,
143
153
  },
144
154
  }
145
155
  }
@@ -184,7 +194,7 @@ export const parseCustom: ParseFunction<CustomMessageEvent> = args => {
184
194
  toParse: args.toParse,
185
195
  parsed: {
186
196
  ...args.parsed,
187
- customTypeName: JSON.parse(args.toParse.json).customTypeName,
197
+ json: JSON.parse(args.toParse.json),
188
198
  },
189
199
  }
190
200
  }