@botonic/core 1.0.0-alpha.0 → 1.0.0-dev.2

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 (363) 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 +96 -0
  6. package/lib/cjs/core-bot.js.map +1 -0
  7. package/lib/cjs/debug/index.d.ts +1 -0
  8. package/lib/cjs/debug/index.js +5 -0
  9. package/lib/cjs/debug/index.js.map +1 -0
  10. package/lib/cjs/debug/inspector.d.ts +24 -0
  11. package/lib/{debug → cjs/debug}/inspector.js +5 -3
  12. package/lib/cjs/debug/inspector.js.map +1 -0
  13. package/lib/cjs/handoff.d.ts +67 -0
  14. package/lib/{handoff.js → cjs/handoff.js} +25 -12
  15. package/lib/cjs/handoff.js.map +1 -0
  16. package/lib/cjs/hubtype-service.d.ts +69 -0
  17. package/lib/{hubtype-service.js → cjs/hubtype-service.js} +17 -14
  18. package/lib/cjs/hubtype-service.js.map +1 -0
  19. package/lib/cjs/i18n.d.ts +2 -0
  20. package/lib/{i18n.js → cjs/i18n.js} +0 -1
  21. package/lib/cjs/i18n.js.map +1 -0
  22. package/lib/cjs/index.d.ts +11 -0
  23. package/lib/cjs/index.js +15 -0
  24. package/lib/cjs/index.js.map +1 -0
  25. package/lib/cjs/models/bot-state.d.ts +11 -0
  26. package/lib/cjs/models/bot-state.js +3 -0
  27. package/lib/cjs/models/bot-state.js.map +1 -0
  28. package/lib/cjs/models/channels.d.ts +9 -0
  29. package/lib/cjs/models/channels.js +14 -0
  30. package/lib/cjs/models/channels.js.map +1 -0
  31. package/lib/cjs/models/events/base-event.d.ts +20 -0
  32. package/lib/{models/events/index.js → cjs/models/events/base-event.js} +7 -1
  33. package/lib/cjs/models/events/base-event.js.map +1 -0
  34. package/lib/cjs/models/events/botonic-event.d.ts +4 -0
  35. package/lib/cjs/models/events/botonic-event.js +3 -0
  36. package/lib/cjs/models/events/botonic-event.js.map +1 -0
  37. package/lib/{models/events/connections/index.d.ts → cjs/models/events/connection/connection-event.d.ts} +1 -1
  38. package/lib/{models/events/connections/index.js → cjs/models/events/connection/connection-event.js} +1 -1
  39. package/lib/cjs/models/events/connection/connection-event.js.map +1 -0
  40. package/lib/cjs/models/events/connection/index.d.ts +1 -0
  41. package/lib/cjs/models/events/connection/index.js +5 -0
  42. package/lib/cjs/models/events/connection/index.js.map +1 -0
  43. package/lib/cjs/models/events/index.d.ts +4 -0
  44. package/lib/cjs/models/events/index.js +8 -0
  45. package/lib/cjs/models/events/index.js.map +1 -0
  46. package/lib/cjs/models/events/integration/index.d.ts +1 -0
  47. package/lib/cjs/models/events/integration/index.js +5 -0
  48. package/lib/cjs/models/events/integration/index.js.map +1 -0
  49. package/lib/cjs/models/events/integration/integration-event.d.ts +6 -0
  50. package/lib/cjs/models/events/integration/integration-event.js +3 -0
  51. package/lib/cjs/models/events/integration/integration-event.js.map +1 -0
  52. package/lib/{models → cjs/models}/events/message/buttons.d.ts +0 -0
  53. package/lib/{models → cjs/models}/events/message/buttons.js +0 -0
  54. package/lib/cjs/models/events/message/buttons.js.map +1 -0
  55. package/lib/{models → cjs/models}/events/message/carousel.d.ts +1 -1
  56. package/lib/{models → cjs/models}/events/message/carousel.js +0 -0
  57. package/lib/cjs/models/events/message/carousel.js.map +1 -0
  58. package/lib/{models → cjs/models}/events/message/custom.d.ts +2 -2
  59. package/lib/{models → cjs/models}/events/message/custom.js +0 -0
  60. package/lib/cjs/models/events/message/custom.js.map +1 -0
  61. package/lib/cjs/models/events/message/index.d.ts +9 -0
  62. package/lib/cjs/models/events/message/index.js +13 -0
  63. package/lib/cjs/models/events/message/index.js.map +1 -0
  64. package/lib/{models → cjs/models}/events/message/location.d.ts +1 -1
  65. package/lib/{models → cjs/models}/events/message/location.js +0 -0
  66. package/lib/cjs/models/events/message/location.js.map +1 -0
  67. package/lib/{models → cjs/models}/events/message/media.d.ts +1 -1
  68. package/lib/cjs/models/events/message/media.js +11 -0
  69. package/lib/cjs/models/events/message/media.js.map +1 -0
  70. package/lib/{models/events/message/index.d.ts → cjs/models/events/message/message-event.d.ts} +2 -1
  71. package/lib/{models/events/message/index.js → cjs/models/events/message/message-event.js} +5 -1
  72. package/lib/cjs/models/events/message/message-event.js.map +1 -0
  73. package/lib/cjs/models/events/message/postback.d.ts +4 -0
  74. package/lib/cjs/models/events/message/postback.js +3 -0
  75. package/lib/cjs/models/events/message/postback.js.map +1 -0
  76. package/lib/{models → cjs/models}/events/message/replies.d.ts +0 -0
  77. package/lib/{models → cjs/models}/events/message/replies.js +0 -0
  78. package/lib/cjs/models/events/message/replies.js.map +1 -0
  79. package/lib/{models → cjs/models}/events/message/text.d.ts +1 -1
  80. package/lib/{models → cjs/models}/events/message/text.js +0 -0
  81. package/lib/cjs/models/events/message/text.js.map +1 -0
  82. package/lib/cjs/models/index.d.ts +6 -0
  83. package/lib/cjs/models/index.js +10 -0
  84. package/lib/cjs/models/index.js.map +1 -0
  85. package/lib/cjs/models/legacy-types.d.ts +184 -0
  86. package/lib/cjs/models/legacy-types.js +59 -0
  87. package/lib/cjs/models/legacy-types.js.map +1 -0
  88. package/lib/cjs/models/session.d.ts +3 -0
  89. package/lib/cjs/models/session.js +3 -0
  90. package/lib/cjs/models/session.js.map +1 -0
  91. package/lib/cjs/models/user.d.ts +14 -0
  92. package/lib/{models → cjs/models}/user.js +0 -0
  93. package/lib/{models → cjs/models}/user.js.map +1 -1
  94. package/lib/cjs/output-parser/botonic-output-parser.d.ts +16 -0
  95. package/lib/{output-parser/index.js → cjs/output-parser/botonic-output-parser.js} +8 -2
  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 +9 -7
  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 +4 -8
  104. package/lib/{output-parser → cjs/output-parser}/parsers.js +41 -26
  105. package/lib/cjs/output-parser/parsers.js.map +1 -0
  106. package/lib/cjs/plugins.d.ts +6 -0
  107. package/lib/{plugins.js → cjs/plugins.js} +10 -6
  108. package/lib/cjs/plugins.js.map +1 -0
  109. package/lib/cjs/routing/index.d.ts +2 -0
  110. package/lib/cjs/routing/index.js +6 -0
  111. package/lib/cjs/routing/index.js.map +1 -0
  112. package/lib/cjs/routing/router-utils.d.ts +11 -0
  113. package/lib/cjs/routing/router-utils.js +89 -0
  114. package/lib/cjs/routing/router-utils.js.map +1 -0
  115. package/lib/cjs/routing/router.d.ts +54 -0
  116. package/lib/cjs/routing/router.js +319 -0
  117. package/lib/cjs/routing/router.js.map +1 -0
  118. package/lib/cjs/utils.d.ts +11 -0
  119. package/lib/{utils.js → cjs/utils.js} +14 -5
  120. package/lib/cjs/utils.js.map +1 -0
  121. package/lib/esm/constants.d.ts +4 -0
  122. package/lib/esm/constants.js +5 -0
  123. package/lib/esm/constants.js.map +1 -0
  124. package/lib/esm/core-bot.d.ts +36 -0
  125. package/lib/esm/core-bot.js +92 -0
  126. package/lib/esm/core-bot.js.map +1 -0
  127. package/lib/esm/debug/index.d.ts +1 -0
  128. package/lib/esm/debug/index.js +2 -0
  129. package/lib/esm/debug/index.js.map +1 -0
  130. package/lib/esm/debug/inspector.d.ts +24 -0
  131. package/lib/esm/debug/inspector.js +65 -0
  132. package/lib/esm/debug/inspector.js.map +1 -0
  133. package/lib/esm/handoff.d.ts +67 -0
  134. package/lib/esm/handoff.js +173 -0
  135. package/lib/esm/handoff.js.map +1 -0
  136. package/lib/esm/hubtype-service.d.ts +69 -0
  137. package/lib/esm/hubtype-service.js +185 -0
  138. package/lib/esm/hubtype-service.js.map +1 -0
  139. package/lib/esm/i18n.d.ts +2 -0
  140. package/lib/esm/i18n.js +7 -0
  141. package/lib/esm/i18n.js.map +1 -0
  142. package/lib/esm/index.d.ts +11 -0
  143. package/lib/esm/index.js +12 -0
  144. package/lib/esm/index.js.map +1 -0
  145. package/lib/esm/models/bot-state.d.ts +11 -0
  146. package/lib/esm/models/bot-state.js +2 -0
  147. package/lib/esm/models/bot-state.js.map +1 -0
  148. package/lib/esm/models/channels.d.ts +9 -0
  149. package/lib/esm/models/channels.js +11 -0
  150. package/lib/esm/models/channels.js.map +1 -0
  151. package/lib/esm/models/events/base-event.d.ts +20 -0
  152. package/lib/esm/models/events/base-event.js +14 -0
  153. package/lib/esm/models/events/base-event.js.map +1 -0
  154. package/lib/esm/models/events/botonic-event.d.ts +4 -0
  155. package/lib/esm/models/events/botonic-event.js +2 -0
  156. package/lib/esm/models/events/botonic-event.js.map +1 -0
  157. package/lib/esm/models/events/connection/connection-event.d.ts +9 -0
  158. package/lib/esm/models/events/connection/connection-event.js +6 -0
  159. package/lib/esm/models/events/connection/connection-event.js.map +1 -0
  160. package/lib/esm/models/events/connection/index.d.ts +1 -0
  161. package/lib/esm/models/events/connection/index.js +2 -0
  162. package/lib/esm/models/events/connection/index.js.map +1 -0
  163. package/lib/esm/models/events/index.d.ts +4 -0
  164. package/lib/esm/models/events/index.js +5 -0
  165. package/lib/esm/models/events/index.js.map +1 -0
  166. package/lib/esm/models/events/integration/index.d.ts +1 -0
  167. package/lib/esm/models/events/integration/index.js +2 -0
  168. package/lib/esm/models/events/integration/index.js.map +1 -0
  169. package/lib/esm/models/events/integration/integration-event.d.ts +6 -0
  170. package/lib/esm/models/events/integration/integration-event.js +2 -0
  171. package/lib/esm/models/events/integration/integration-event.js.map +1 -0
  172. package/lib/esm/models/events/message/buttons.d.ts +18 -0
  173. package/lib/esm/models/events/message/buttons.js +2 -0
  174. package/lib/esm/models/events/message/buttons.js.map +1 -0
  175. package/lib/esm/models/events/message/carousel.d.ts +11 -0
  176. package/lib/esm/models/events/message/carousel.js +2 -0
  177. package/lib/esm/models/events/message/carousel.js.map +1 -0
  178. package/lib/esm/models/events/message/custom.d.ts +6 -0
  179. package/lib/esm/models/events/message/custom.js +2 -0
  180. package/lib/esm/models/events/message/custom.js.map +1 -0
  181. package/lib/esm/models/events/message/index.d.ts +9 -0
  182. package/lib/esm/models/events/message/index.js +10 -0
  183. package/lib/esm/models/events/message/index.js.map +1 -0
  184. package/lib/esm/models/events/message/location.d.ts +6 -0
  185. package/lib/esm/models/events/message/location.js +2 -0
  186. package/lib/esm/models/events/message/location.js.map +1 -0
  187. package/lib/esm/models/events/message/media.d.ts +18 -0
  188. package/lib/esm/models/events/message/media.js +8 -0
  189. package/lib/esm/models/events/message/media.js.map +1 -0
  190. package/lib/esm/models/events/message/message-event.d.ts +30 -0
  191. package/lib/esm/models/events/message/message-event.js +29 -0
  192. package/lib/esm/models/events/message/message-event.js.map +1 -0
  193. package/lib/esm/models/events/message/postback.d.ts +4 -0
  194. package/lib/esm/models/events/message/postback.js +2 -0
  195. package/lib/esm/models/events/message/postback.js.map +1 -0
  196. package/lib/esm/models/events/message/replies.d.ts +7 -0
  197. package/lib/esm/models/events/message/replies.js +2 -0
  198. package/lib/esm/models/events/message/replies.js.map +1 -0
  199. package/lib/esm/models/events/message/text.d.ts +8 -0
  200. package/lib/esm/models/events/message/text.js +2 -0
  201. package/lib/esm/models/events/message/text.js.map +1 -0
  202. package/lib/esm/models/index.d.ts +6 -0
  203. package/lib/esm/models/index.js +7 -0
  204. package/lib/esm/models/index.js.map +1 -0
  205. package/lib/esm/models/legacy-types.d.ts +184 -0
  206. package/lib/esm/models/legacy-types.js +56 -0
  207. package/lib/esm/models/legacy-types.js.map +1 -0
  208. package/lib/esm/models/session.d.ts +3 -0
  209. package/lib/esm/models/session.js +2 -0
  210. package/lib/esm/models/session.js.map +1 -0
  211. package/lib/esm/models/user.d.ts +14 -0
  212. package/lib/esm/models/user.js +2 -0
  213. package/lib/esm/models/user.js.map +1 -0
  214. package/lib/esm/output-parser/botonic-output-parser.d.ts +16 -0
  215. package/lib/esm/output-parser/botonic-output-parser.js +33 -0
  216. package/lib/esm/output-parser/botonic-output-parser.js.map +1 -0
  217. package/lib/esm/output-parser/factory.d.ts +4 -0
  218. package/lib/esm/output-parser/factory.js +28 -0
  219. package/lib/esm/output-parser/factory.js.map +1 -0
  220. package/lib/esm/output-parser/index.d.ts +3 -0
  221. package/lib/esm/output-parser/index.js +4 -0
  222. package/lib/esm/output-parser/index.js.map +1 -0
  223. package/lib/esm/output-parser/parsers.d.ts +22 -0
  224. package/lib/esm/output-parser/parsers.js +130 -0
  225. package/lib/esm/output-parser/parsers.js.map +1 -0
  226. package/lib/esm/plugins.d.ts +6 -0
  227. package/lib/esm/plugins.js +43 -0
  228. package/lib/esm/plugins.js.map +1 -0
  229. package/lib/esm/routing/index.d.ts +2 -0
  230. package/lib/esm/routing/index.js +3 -0
  231. package/lib/esm/routing/index.js.map +1 -0
  232. package/lib/esm/routing/router-utils.d.ts +11 -0
  233. package/lib/esm/routing/router-utils.js +79 -0
  234. package/lib/esm/routing/router-utils.js.map +1 -0
  235. package/lib/esm/routing/router.d.ts +54 -0
  236. package/lib/esm/routing/router.js +315 -0
  237. package/lib/esm/routing/router.js.map +1 -0
  238. package/lib/esm/utils.d.ts +11 -0
  239. package/lib/esm/utils.js +78 -0
  240. package/lib/esm/utils.js.map +1 -0
  241. package/package.json +15 -8
  242. package/src/constants.ts +6 -0
  243. package/src/core-bot.ts +181 -0
  244. package/src/{types/debug/index.d.ts → debug/index.ts} +0 -0
  245. package/src/debug/{inspector.js → inspector.ts} +39 -14
  246. package/src/{handoff.js → handoff.ts} +103 -26
  247. package/src/{hubtype-service.js → hubtype-service.ts} +77 -35
  248. package/src/{i18n.js → i18n.ts} +7 -1
  249. package/src/index.ts +11 -0
  250. package/src/models/bot-state.ts +12 -0
  251. package/src/models/channels.ts +9 -0
  252. package/src/models/events/base-event.ts +22 -0
  253. package/src/models/events/botonic-event.ts +26 -0
  254. package/src/models/events/{connections/index.ts → connection/connection-event.ts} +1 -1
  255. package/src/models/events/connection/index.ts +1 -0
  256. package/src/models/events/index.ts +4 -37
  257. package/src/models/events/integration/index.ts +1 -0
  258. package/src/models/events/integration/integration-event.ts +13 -0
  259. package/src/models/events/message/carousel.ts +1 -1
  260. package/src/models/events/message/custom.ts +2 -2
  261. package/src/models/events/message/index.ts +9 -33
  262. package/src/models/events/message/location.ts +1 -1
  263. package/src/models/events/message/media.ts +1 -1
  264. package/src/models/events/message/message-event.ts +37 -0
  265. package/src/models/events/message/postback.ts +5 -0
  266. package/src/models/events/message/text.ts +1 -1
  267. package/src/models/index.ts +6 -0
  268. package/src/models/legacy-types.ts +262 -0
  269. package/src/models/session.ts +3 -0
  270. package/src/models/user.ts +10 -3
  271. package/src/output-parser/botonic-output-parser.ts +38 -0
  272. package/src/output-parser/factory.ts +5 -3
  273. package/src/output-parser/index.ts +3 -32
  274. package/src/output-parser/parsers.ts +45 -18
  275. package/src/{plugins.js → plugins.ts} +28 -13
  276. package/src/routing/index.ts +2 -0
  277. package/src/routing/router-utils.ts +100 -0
  278. package/src/routing/router.ts +415 -0
  279. package/src/{utils.js → utils.ts} +26 -13
  280. package/index.d.ts +0 -1
  281. package/lib/constants.d.ts +0 -15
  282. package/lib/constants.js +0 -19
  283. package/lib/constants.js.map +0 -1
  284. package/lib/core-bot.d.ts +0 -40
  285. package/lib/core-bot.js +0 -80
  286. package/lib/core-bot.js.map +0 -1
  287. package/lib/debug/index.d.ts +0 -1
  288. package/lib/debug/index.js +0 -9
  289. package/lib/debug/index.js.map +0 -1
  290. package/lib/debug/inspector.d.ts +0 -20
  291. package/lib/debug/inspector.js.map +0 -1
  292. package/lib/debug/inspector.test.d.ts +0 -1
  293. package/lib/debug/inspector.test.js +0 -8
  294. package/lib/debug/inspector.test.js.map +0 -1
  295. package/lib/errors.d.ts +0 -4
  296. package/lib/errors.js +0 -11
  297. package/lib/errors.js.map +0 -1
  298. package/lib/handoff.d.ts +0 -34
  299. package/lib/handoff.js.map +0 -1
  300. package/lib/handoff.test.d.ts +0 -1
  301. package/lib/handoff.test.js +0 -62
  302. package/lib/handoff.test.js.map +0 -1
  303. package/lib/hubtype-service.d.ts +0 -58
  304. package/lib/hubtype-service.js.map +0 -1
  305. package/lib/hubtype-service.test.d.ts +0 -1
  306. package/lib/hubtype-service.test.js +0 -21
  307. package/lib/hubtype-service.test.js.map +0 -1
  308. package/lib/i18n.d.ts +0 -1
  309. package/lib/i18n.js.map +0 -1
  310. package/lib/index.d.ts +0 -48
  311. package/lib/index.js +0 -58
  312. package/lib/index.js.map +0 -1
  313. package/lib/models/events/connections/index.js.map +0 -1
  314. package/lib/models/events/index.d.ts +0 -20
  315. package/lib/models/events/index.js.map +0 -1
  316. package/lib/models/events/message/buttons.js.map +0 -1
  317. package/lib/models/events/message/carousel.js.map +0 -1
  318. package/lib/models/events/message/custom.js.map +0 -1
  319. package/lib/models/events/message/index.js.map +0 -1
  320. package/lib/models/events/message/location.js.map +0 -1
  321. package/lib/models/events/message/media.js +0 -11
  322. package/lib/models/events/message/media.js.map +0 -1
  323. package/lib/models/events/message/replies.js.map +0 -1
  324. package/lib/models/events/message/text.js.map +0 -1
  325. package/lib/models/user.d.ts +0 -9
  326. package/lib/output-parser/factory.js.map +0 -1
  327. package/lib/output-parser/index.d.ts +0 -11
  328. package/lib/output-parser/index.js.map +0 -1
  329. package/lib/output-parser/parsers.js.map +0 -1
  330. package/lib/output-parser/util.d.ts +0 -2
  331. package/lib/output-parser/util.js +0 -14
  332. package/lib/output-parser/util.js.map +0 -1
  333. package/lib/plugins.d.ts +0 -2
  334. package/lib/plugins.js.map +0 -1
  335. package/lib/router.d.ts +0 -55
  336. package/lib/router.js +0 -268
  337. package/lib/router.js.map +0 -1
  338. package/lib/router.test.d.ts +0 -1
  339. package/lib/router.test.js +0 -273
  340. package/lib/router.test.js.map +0 -1
  341. package/lib/utils.d.ts +0 -8
  342. package/lib/utils.js.map +0 -1
  343. package/src/constants.js +0 -15
  344. package/src/core-bot.js +0 -106
  345. package/src/debug/index.js +0 -6
  346. package/src/debug/inspector.test.js +0 -6
  347. package/src/errors.js +0 -8
  348. package/src/handoff.test.js +0 -61
  349. package/src/hubtype-service.test.js +0 -23
  350. package/src/index.js +0 -51
  351. package/src/output-parser/util.ts +0 -8
  352. package/src/router.js +0 -273
  353. package/src/router.test.js +0 -347
  354. package/src/types/constants.d.ts +0 -14
  355. package/src/types/core-bot.d.ts +0 -45
  356. package/src/types/debug/inspector.d.ts +0 -33
  357. package/src/types/handoff.d.ts +0 -75
  358. package/src/types/hubtype-service.d.ts +0 -52
  359. package/src/types/i18n.d.ts +0 -8
  360. package/src/types/index.d.ts +0 -226
  361. package/src/types/plugins.d.ts +0 -13
  362. package/src/types/router.d.ts +0 -57
  363. package/src/types/utils.d.ts +0 -12
@@ -0,0 +1,26 @@
1
+ import { ConnectionEvent } from './connection'
2
+ import { IntegrationEvent } from './integration'
3
+ import {
4
+ AudioMessageEvent,
5
+ CarouselMessageEvent,
6
+ CustomMessageEvent,
7
+ DocumentMessageEvent,
8
+ ImageMessageEvent,
9
+ LocationMessageEvent,
10
+ PostbackMessageEvent,
11
+ TextMessageEvent,
12
+ VideoMessageEvent,
13
+ } from './message'
14
+
15
+ export type BotonicEvent =
16
+ | TextMessageEvent
17
+ | PostbackMessageEvent
18
+ | AudioMessageEvent
19
+ | DocumentMessageEvent
20
+ | ImageMessageEvent
21
+ | VideoMessageEvent
22
+ | LocationMessageEvent
23
+ | CarouselMessageEvent
24
+ | CustomMessageEvent
25
+ | ConnectionEvent
26
+ | IntegrationEvent
@@ -1,4 +1,4 @@
1
- import { BaseEvent, EventTypes } from '..'
1
+ import { BaseEvent, EventTypes } from '../base-event'
2
2
 
3
3
  export enum ConnectionEventStatuses {
4
4
  CONNECTED = 'connected',
@@ -0,0 +1 @@
1
+ export * from './connection-event'
@@ -1,37 +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 { TextMessageEvent } from './message/text'
12
-
13
- export enum EventTypes {
14
- CONNECTION = 'connection',
15
- MESSAGE = 'message',
16
- ACK = 'ack',
17
- TRACK = 'track',
18
- }
19
-
20
- export interface BaseEvent {
21
- eventId: string
22
- userId: string
23
- eventType: EventTypes
24
- createdAt: string
25
- modifiedAt?: string
26
- }
27
-
28
- export type BotonicEvent =
29
- | TextMessageEvent
30
- | AudioMessageEvent
31
- | DocumentMessageEvent
32
- | ImageMessageEvent
33
- | VideoMessageEvent
34
- | LocationMessageEvent
35
- | CarouselMessageEvent
36
- | CustomMessageEvent
37
- | ConnectionEvent
1
+ export * from './base-event'
2
+ export * from './botonic-event'
3
+ export * from './connection'
4
+ export * from './message'
@@ -0,0 +1 @@
1
+ export * from './integration-event'
@@ -0,0 +1,13 @@
1
+ import { BaseEvent, EventTypes } from '../base-event'
2
+
3
+ export type IntegrationEventType =
4
+ | EventTypes.NEW_USER
5
+ | EventTypes.RECEIVED_MESSAGE
6
+ | EventTypes.BOT_EXECUTED
7
+ | EventTypes.BOT_ACTION
8
+ | EventTypes.ACTION_SENT
9
+
10
+ export interface IntegrationEvent extends BaseEvent {
11
+ eventType: IntegrationEventType
12
+ details: any
13
+ }
@@ -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,33 +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
- VIDEO = 'video',
12
- }
13
-
14
- export enum MessageEventAck {
15
- DRAFT = 'draft',
16
- READ = 'read',
17
- RECEIVED = 'received',
18
- SENT = 'sent',
19
- }
20
-
21
- export enum MessageEventFrom {
22
- AGENT = 'agent',
23
- BOT = 'bot',
24
- USER = 'user',
25
- }
26
-
27
- export interface BotonicMessageEvent extends BaseEvent {
28
- ack: MessageEventAck
29
- from: MessageEventFrom
30
- type: MessageEventTypes
31
- typing: number
32
- delay: number
33
- }
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
+ }
@@ -0,0 +1,5 @@
1
+ import { BotonicMessageEvent } from './message-event'
2
+
3
+ export interface PostbackMessageEvent extends BotonicMessageEvent {
4
+ payload: string
5
+ }
@@ -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,6 @@
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'
@@ -0,0 +1,262 @@
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)
@@ -0,0 +1,3 @@
1
+ export interface Session {
2
+ [key: string]: any
3
+ }
@@ -1,9 +1,16 @@
1
- import { Session } from '../types/'
1
+ import { BotState } from './bot-state'
2
+ import { Session } from './session'
3
+
2
4
  export interface User {
3
5
  id: string //TODO: UUID
4
- websocketId: string
6
+ name?: string
7
+ userName?: string
8
+ channel: string
9
+ idFromChannel: string // providerId
5
10
  session: Session
6
- route: string
11
+ botState: BotState
7
12
  isOnline: boolean
13
+ websocketId?: string
14
+ // part of details?
8
15
  locationInfo: string
9
16
  }
@@ -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
+ 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,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,
@@ -8,6 +6,7 @@ import {
8
6
  parseLocation,
9
7
  parseMedia,
10
8
  parseMessage,
9
+ parsePostback,
11
10
  parseReplies,
12
11
  parseText,
13
12
  } from './parsers'
@@ -19,6 +18,9 @@ export class MessageParsingFactory {
19
18
  if (type === MessageEventTypes.TEXT) {
20
19
  return parseText(parseReplies(parseButtons(parsedMessage))).parsed
21
20
  }
21
+ if (type === MessageEventTypes.POSTBACK) {
22
+ return parsePostback(parsedMessage).parsed
23
+ }
22
24
  if (MEDIA_TYPES.includes(type)) {
23
25
  return parseMedia(parseButtons(parsedMessage)).parsed
24
26
  }
@@ -1,32 +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
- parseFromUserInput(input: any): Partial<BotonicEvent> {
26
- return this.factory.parse(input)
27
- }
28
-
29
- private xmlToJSONMessages(html: any): any {
30
- return parse(html, BotonicOutputParser.OPTIONS).message
31
- }
32
- }
1
+ export * from './botonic-output-parser'
2
+ export * from './factory'
3
+ export * from './parsers'