@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,3 @@
1
+ export interface Session {
2
+ [key: string]: any;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/models/session.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { BotState } from './bot-state';
2
+ import { Session } from './session';
3
+ export interface User {
4
+ id: string;
5
+ name?: string;
6
+ userName?: string;
7
+ channel: string;
8
+ idFromChannel: string;
9
+ session: Session;
10
+ botState: BotState;
11
+ isOnline: boolean;
12
+ websocketId?: string;
13
+ locationInfo: string;
14
+ }
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/models/user.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/models/user.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { BotonicEvent } from '../models';
2
+ import { MessageParsingFactory } from './factory';
3
+ export declare const TEXT_NODE_NAME = "text";
4
+ export declare class BotonicOutputParser {
5
+ private readonly factory;
6
+ private static OPTIONS;
7
+ constructor(factory?: MessageParsingFactory);
8
+ xmlToMessageEvents(html: string): Partial<BotonicEvent>[];
9
+ /**
10
+ * Right now, when saving BotonicEvents to DataProvider, we need the standarized Botonic event
11
+ * to be saved. This is, converting a botonic input like: '{id: 'msgId', data: 'rawData', payload: 'somePayload'}'
12
+ * into a BotonicEvent with the expected properties.
13
+ */
14
+ inputToBotonicEvent(input: any): Partial<BotonicEvent>;
15
+ private xmlToJSONMessages;
16
+ }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BotonicOutputParser = exports.TEXT_NODE_NAME = void 0;
4
+ // eslint-disable-next-line import/named
4
5
  const fast_xml_parser_1 = require("fast-xml-parser");
5
6
  const html_entities_1 = require("html-entities");
6
7
  const factory_1 = require("./factory");
@@ -13,7 +14,12 @@ class BotonicOutputParser {
13
14
  const jsonMessages = this.xmlToJSONMessages(html);
14
15
  return jsonMessages.map(msgToParse => this.factory.parse(msgToParse));
15
16
  }
16
- parseFromUserInput(input) {
17
+ /**
18
+ * Right now, when saving BotonicEvents to DataProvider, we need the standarized Botonic event
19
+ * to be saved. This is, converting a botonic input like: '{id: 'msgId', data: 'rawData', payload: 'somePayload'}'
20
+ * into a BotonicEvent with the expected properties.
21
+ */
22
+ inputToBotonicEvent(input) {
17
23
  return this.factory.parse(input);
18
24
  }
19
25
  xmlToJSONMessages(html) {
@@ -28,4 +34,4 @@ BotonicOutputParser.OPTIONS = {
28
34
  arrayMode: true,
29
35
  attrValueProcessor: a => html_entities_1.decode(a),
30
36
  };
31
- //# sourceMappingURL=index.js.map
37
+ //# sourceMappingURL=botonic-output-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"botonic-output-parser.js","sourceRoot":"","sources":["../../../src/output-parser/botonic-output-parser.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AACxC,qDAAmD;AACnD,iDAAsC;AAGtC,uCAAiD;AAEpC,QAAA,cAAc,GAAG,MAAM,CAAA;AAEpC,MAAa,mBAAmB;IAS9B,YAA6B,UAAU,IAAI,+BAAqB,EAAE;QAArC,YAAO,GAAP,OAAO,CAA8B;IAAG,CAAC;IAEtE,kBAAkB,CAAC,IAAY;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACjD,OAAO,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;IACvE,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,KAAU;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAEO,iBAAiB,CAAC,IAAS;QACjC,OAAO,uBAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAA;IACzD,CAAC;;AA3BH,kDA4BC;AA3BgB,2BAAO,GAAwB;IAC5C,gBAAgB,EAAE,KAAK;IACvB,mBAAmB,EAAE,EAAE;IACvB,YAAY,EAAE,sBAAc;IAC5B,SAAS,EAAE,IAAI;IACf,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,sBAAM,CAAC,CAAC,CAAC;CACnC,CAAA"}
@@ -1,4 +1,4 @@
1
- import { BotonicEvent } from '../models/events';
1
+ import { BotonicEvent } from '../models';
2
2
  export declare class MessageParsingFactory {
3
3
  parse(msgToParse: any): Partial<BotonicEvent>;
4
4
  }
@@ -1,26 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MessageParsingFactory = void 0;
4
- const message_1 = require("../models/events/message");
5
- const media_1 = require("../models/events/message/media");
4
+ const models_1 = require("../models");
6
5
  const parsers_1 = require("./parsers");
7
6
  class MessageParsingFactory {
8
7
  parse(msgToParse) {
9
8
  const type = msgToParse.type;
10
9
  const parsedMessage = parsers_1.parseMessage({ toParse: msgToParse });
11
- if (type === message_1.MessageEventTypes.TEXT) {
10
+ if (type === models_1.MessageEventTypes.TEXT) {
12
11
  return parsers_1.parseText(parsers_1.parseReplies(parsers_1.parseButtons(parsedMessage))).parsed;
13
12
  }
14
- if (media_1.MEDIA_TYPES.includes(type)) {
13
+ if (type === models_1.MessageEventTypes.POSTBACK) {
14
+ return parsers_1.parsePostback(parsedMessage).parsed;
15
+ }
16
+ if (models_1.MEDIA_TYPES.includes(type)) {
15
17
  return parsers_1.parseMedia(parsers_1.parseButtons(parsedMessage)).parsed;
16
18
  }
17
- if (type === message_1.MessageEventTypes.LOCATION) {
19
+ if (type === models_1.MessageEventTypes.LOCATION) {
18
20
  return parsers_1.parseLocation(parsedMessage).parsed;
19
21
  }
20
- if (type === message_1.MessageEventTypes.CAROUSEL) {
22
+ if (type === models_1.MessageEventTypes.CAROUSEL) {
21
23
  return parsers_1.parseCarousel(parsedMessage).parsed;
22
24
  }
23
- if (type === message_1.MessageEventTypes.CUSTOM) {
25
+ if (type === models_1.MessageEventTypes.CUSTOM) {
24
26
  return parsers_1.parseCustom(parsers_1.parseReplies(parsedMessage)).parsed;
25
27
  }
26
28
  throw new Error(`Parsing for type: '${type}' not implemented.`);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/output-parser/factory.ts"],"names":[],"mappings":";;;AAAA,sCAAwE;AACxE,uCAUkB;AAElB,MAAa,qBAAqB;IAChC,KAAK,CAAC,UAAe;QACnB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QAC5B,MAAM,aAAa,GAAG,sBAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3D,IAAI,IAAI,KAAK,0BAAiB,CAAC,IAAI,EAAE;YACnC,OAAO,mBAAS,CAAC,sBAAY,CAAC,sBAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;SACnE;QACD,IAAI,IAAI,KAAK,0BAAiB,CAAC,QAAQ,EAAE;YACvC,OAAO,uBAAa,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;SAC3C;QACD,IAAI,oBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC9B,OAAO,oBAAU,CAAC,sBAAY,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;SACtD;QACD,IAAI,IAAI,KAAK,0BAAiB,CAAC,QAAQ,EAAE;YACvC,OAAO,uBAAa,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;SAC3C;QACD,IAAI,IAAI,KAAK,0BAAiB,CAAC,QAAQ,EAAE;YACvC,OAAO,uBAAa,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;SAC3C;QACD,IAAI,IAAI,KAAK,0BAAiB,CAAC,MAAM,EAAE;YACrC,OAAO,qBAAW,CAAC,sBAAY,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;SACvD;QACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,oBAAoB,CAAC,CAAA;IACjE,CAAC;CACF;AAxBD,sDAwBC"}
@@ -0,0 +1,3 @@
1
+ export * from './botonic-output-parser';
2
+ export * from './factory';
3
+ export * from './parsers';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./botonic-output-parser"), exports);
5
+ tslib_1.__exportStar(require("./factory"), exports);
6
+ tslib_1.__exportStar(require("./parsers"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-parser/index.ts"],"names":[],"mappings":";;;AAAA,kEAAuC;AACvC,oDAAyB;AACzB,oDAAyB"}
@@ -1,11 +1,6 @@
1
- import { BotonicMessageEvent } from '../models/events/message';
2
- import { Button, WithButtons } from '../models/events/message/buttons';
3
- import { CarouselElement, CarouselMessageEvent } from '../models/events/message/carousel';
4
- import { CustomMessageEvent } from '../models/events/message/custom';
5
- import { LocationMessageEvent } from '../models/events/message/location';
6
- import { AudioMessageEvent, DocumentMessageEvent, ImageMessageEvent, VideoMessageEvent } from '../models/events/message/media';
7
- import { Reply, WithReplies } from '../models/events/message/replies';
8
- import { TextMessageEvent } from '../models/events/message/text';
1
+ import { AudioMessageEvent, BotonicMessageEvent, Button, CarouselElement, CarouselMessageEvent, CustomMessageEvent, DocumentMessageEvent, ImageMessageEvent, LocationMessageEvent, PostbackMessageEvent, Reply, TextMessageEvent, VideoMessageEvent, WithButtons, WithReplies } from '../models';
2
+ export declare function parseNumber(strNumber: string): number;
3
+ export declare function parseBoolean(strNumber: string): boolean;
9
4
  export declare type ParseFunction<Out> = (args: {
10
5
  toParse: any;
11
6
  parsed?: any;
@@ -19,6 +14,7 @@ export declare const parseButtons: ParseFunction<WithButtons>;
19
14
  export declare const parseReply: (reply: any) => Reply;
20
15
  export declare const parseReplies: ParseFunction<WithReplies>;
21
16
  export declare const parseText: ParseFunction<TextMessageEvent>;
17
+ export declare const parsePostback: ParseFunction<PostbackMessageEvent>;
22
18
  export declare const parseMedia: ParseFunction<AudioMessageEvent | DocumentMessageEvent | ImageMessageEvent | VideoMessageEvent>;
23
19
  export declare const parseLocation: ParseFunction<LocationMessageEvent>;
24
20
  export declare const parseElement: (element: any) => CarouselElement;
@@ -1,34 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseCustom = exports.parseCarousel = exports.parseElement = exports.parseLocation = exports.parseMedia = exports.parseText = exports.parseReplies = exports.parseReply = exports.parseButtons = exports.parseButton = exports.parseMessage = void 0;
4
- const _1 = require(".");
5
- const util_1 = require("./util");
3
+ exports.parseCustom = exports.parseCarousel = exports.parseElement = exports.parseLocation = exports.parseMedia = exports.parsePostback = exports.parseText = exports.parseReplies = exports.parseReply = exports.parseButtons = exports.parseButton = exports.parseMessage = exports.parseBoolean = exports.parseNumber = void 0;
4
+ const models_1 = require("../models");
5
+ const botonic_output_parser_1 = require("./botonic-output-parser");
6
+ function parseNumber(strNumber) {
7
+ return parseInt(strNumber);
8
+ }
9
+ exports.parseNumber = parseNumber;
10
+ function parseBoolean(strNumber) {
11
+ if (strNumber === '0')
12
+ return false;
13
+ return true;
14
+ }
15
+ exports.parseBoolean = parseBoolean;
6
16
  // COMMON
7
17
  const parseMessage = args => {
8
18
  const typingAndDelay = {};
9
19
  if (args.toParse.delay !== undefined) {
10
- typingAndDelay['delay'] = util_1.parseNumber(args.toParse.delay);
20
+ typingAndDelay['delay'] = parseNumber(args.toParse.delay);
11
21
  }
12
22
  if (args.toParse.typing !== undefined) {
13
- typingAndDelay['typing'] = util_1.parseNumber(args.toParse.typing);
23
+ typingAndDelay['typing'] = parseNumber(args.toParse.typing);
14
24
  }
15
25
  return {
16
26
  toParse: args.toParse,
17
27
  parsed: Object.assign({
18
- // TODO: How to define here the ids?
19
- // eventId: '',
20
- // userId: '',
21
- // createdAt: '',
22
- // from: args.toParse.from,
23
- // ack: args.toParse.ack,
24
- // eventType: EventTypes.MESSAGE,
25
- type: args.toParse.type }, typingAndDelay),
28
+ // Following properties added later before saving event: eventId, userId, createdAt, from, ack
29
+ eventType: models_1.EventTypes.MESSAGE, type: args.toParse.type, ack: args.toParse.ack, from: args.toParse.from, channel: args.toParse.channel, idFromChannel: args.toParse.idFromChannel }, typingAndDelay),
26
30
  };
27
31
  };
28
32
  exports.parseMessage = parseMessage;
29
33
  // BUTTONS
30
34
  const parseButton = (button) => {
31
- const title = button[_1.TEXT_NODE_NAME];
35
+ const title = button[botonic_output_parser_1.TEXT_NODE_NAME];
32
36
  if ('payload' in button) {
33
37
  return { title, payload: button.payload };
34
38
  }
@@ -50,33 +54,33 @@ const parseButton = (button) => {
50
54
  exports.parseButton = parseButton;
51
55
  const parseButtons = args => {
52
56
  var _a, _b;
53
- const parsed = args.parsed;
54
57
  const hasButtons = ((_b = (_a = args.toParse) === null || _a === void 0 ? void 0 : _a.button) === null || _b === void 0 ? void 0 : _b.length) > 0;
58
+ let buttons = [];
55
59
  if (hasButtons) {
56
- parsed.buttons = args.toParse.button.map(button => exports.parseButton(button));
60
+ buttons = args.toParse.button.map(button => exports.parseButton(button));
57
61
  }
58
62
  return {
59
63
  toParse: args.toParse,
60
- parsed,
64
+ parsed: Object.assign(Object.assign({}, args.parsed), { buttons }),
61
65
  };
62
66
  };
63
67
  exports.parseButtons = parseButtons;
64
68
  // REPLIES
65
69
  const parseReply = (reply) => ({
66
- title: reply[_1.TEXT_NODE_NAME],
70
+ title: reply[botonic_output_parser_1.TEXT_NODE_NAME],
67
71
  payload: reply.payload,
68
72
  });
69
73
  exports.parseReply = parseReply;
70
74
  const parseReplies = args => {
71
75
  var _a, _b;
72
- const parsed = args.parsed;
73
76
  const hasReplies = ((_b = (_a = args.toParse) === null || _a === void 0 ? void 0 : _a.reply) === null || _b === void 0 ? void 0 : _b.length) > 0;
77
+ let replies = [];
74
78
  if (hasReplies) {
75
- parsed.replies = args.toParse.reply.map(reply => exports.parseReply(reply));
79
+ replies = args.toParse.reply.map(reply => exports.parseReply(reply));
76
80
  }
77
81
  return {
78
82
  toParse: args.toParse,
79
- parsed,
83
+ parsed: Object.assign(Object.assign({}, args.parsed), { replies }),
80
84
  };
81
85
  };
82
86
  exports.parseReplies = parseReplies;
@@ -84,15 +88,23 @@ exports.parseReplies = parseReplies;
84
88
  const parseText = args => {
85
89
  return {
86
90
  toParse: args.toParse,
87
- parsed: Object.assign(Object.assign({}, args.parsed), { text: args.toParse[_1.TEXT_NODE_NAME] || args.toParse.data, markdown: util_1.parseBoolean(args.toParse.markdown) }),
91
+ parsed: Object.assign(Object.assign({}, args.parsed), { text: args.toParse[botonic_output_parser_1.TEXT_NODE_NAME], markdown: parseBoolean(args.toParse.markdown) }),
88
92
  };
89
93
  };
90
94
  exports.parseText = parseText;
95
+ // POSTBACK
96
+ const parsePostback = args => {
97
+ return {
98
+ toParse: args.toParse,
99
+ parsed: Object.assign(Object.assign({}, args.parsed), { payload: args.toParse.payload }),
100
+ };
101
+ };
102
+ exports.parsePostback = parsePostback;
91
103
  // MEDIA
92
104
  const parseMedia = args => {
93
105
  return {
94
106
  toParse: args.toParse,
95
- parsed: Object.assign(Object.assign({}, args.parsed), { src: args.toParse.src || args.toParse.data }),
107
+ parsed: Object.assign(Object.assign({}, args.parsed), { src: args.toParse.src }),
96
108
  };
97
109
  };
98
110
  exports.parseMedia = parseMedia;
@@ -106,12 +118,15 @@ const parseLocation = args => {
106
118
  exports.parseLocation = parseLocation;
107
119
  // CAROUSEL
108
120
  const parseElement = (element) => {
109
- return {
121
+ const e = {
110
122
  pic: element.pic,
111
123
  title: element.title,
112
124
  subtitle: element.desc,
113
- buttons: element.button.map(b => exports.parseButton(b)),
114
125
  };
126
+ const hasButtons = element.button !== undefined;
127
+ if (hasButtons)
128
+ e.buttons = element.button.map(b => exports.parseButton(b));
129
+ return e;
115
130
  };
116
131
  exports.parseElement = parseElement;
117
132
  const parseCarousel = args => {
@@ -125,7 +140,7 @@ exports.parseCarousel = parseCarousel;
125
140
  const parseCustom = args => {
126
141
  return {
127
142
  toParse: args.toParse,
128
- parsed: Object.assign(Object.assign({}, args.parsed), { customTypeName: JSON.parse(args.toParse.json).customTypeName }),
143
+ parsed: Object.assign(Object.assign({}, args.parsed), { json: JSON.parse(args.toParse.json) }),
129
144
  };
130
145
  };
131
146
  exports.parseCustom = parseCustom;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../src/output-parser/parsers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { BotonicEvent, BotState, Input, PluginConfig, Session } from './models';
2
+ declare type PluginMode = 'pre' | 'post';
3
+ export declare function loadPlugins(plugins: PluginConfig<any>[]): any;
4
+ export declare function runPlugins(plugins: any, // // TODO: Add type for resolvedPlugins, they differ from loaded plugins
5
+ mode: PluginMode, input: Input, session: Session, botState: BotState, response?: string | null, messageEvents?: Partial<BotonicEvent>[] | null, dataProvider?: any): Promise<void>;
6
+ export {};
@@ -20,19 +20,23 @@ function loadPlugins(plugins) {
20
20
  return _plugins;
21
21
  }
22
22
  exports.loadPlugins = loadPlugins;
23
- async function runPlugins(plugins, mode, input, session, lastRoutePath, response = null, parsedResponse = null) {
23
+ async function runPlugins(plugins, // // TODO: Add type for resolvedPlugins, they differ from loaded plugins
24
+ mode, input, session, botState, response = null, messageEvents = null, dataProvider // TODO: type as dataProvider
25
+ ) {
24
26
  for (const key in plugins) {
25
27
  const p = await plugins[key];
26
28
  try {
27
- if (mode == 'pre')
28
- await p.pre({ input, session, lastRoutePath });
29
- if (mode == 'post')
29
+ if (mode === 'pre')
30
+ await p.pre({ input, session, botState, dataProvider, plugins });
31
+ if (mode === 'post')
30
32
  await p.post({
31
33
  input,
32
34
  session,
33
- lastRoutePath,
35
+ botState,
34
36
  response,
35
- parsedResponse,
37
+ messageEvents,
38
+ dataProvider,
39
+ plugins,
36
40
  });
37
41
  }
38
42
  catch (e) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":";;;AAWA,SAAgB,WAAW,CAAC,OAA4B;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,MAAM,QAAQ,GAAG,EAAE,CAAA;IACnB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAA;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QAClC,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAA;QACrC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QAC1D,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAA;QACvB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAA;QACpB,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAA;QAC7B,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;KACnD;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAhBD,kCAgBC;AAEM,KAAK,UAAU,UAAU,CAC9B,OAAY,EAAE,yEAAyE;AACvF,IAAgB,EAChB,KAAY,EACZ,OAAgB,EAChB,QAAkB,EAClB,WAA0B,IAAI,EAC9B,gBAAgD,IAAI,EACpD,YAAkB,CAAC,6BAA6B;;IAEhD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACzB,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI;YACF,IAAI,IAAI,KAAK,KAAK;gBAChB,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;YAClE,IAAI,IAAI,KAAK,MAAM;gBACjB,MAAM,CAAC,CAAC,IAAI,CAAC;oBACX,KAAK;oBACL,OAAO;oBACP,QAAQ;oBACR,QAAQ;oBACR,aAAa;oBACb,YAAY;oBACZ,OAAO;iBACR,CAAC,CAAA;SACL;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACf;KACF;AACH,CAAC;AA7BD,gCA6BC"}
@@ -0,0 +1,2 @@
1
+ export * from './router';
2
+ export * from './router-utils';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./router"), exports);
5
+ tslib_1.__exportStar(require("./router-utils"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routing/index.ts"],"names":[],"mappings":";;;AAAA,mDAAwB;AACxB,yDAA8B"}
@@ -0,0 +1,11 @@
1
+ import { Action, BotRequest, Input, Params, PathParams, Route, Routes } from '../models';
2
+ export declare class NoMatchingRouteError extends Error {
3
+ input: Input;
4
+ constructor(input: Input);
5
+ }
6
+ export declare function isPathPayload(payload?: string): boolean;
7
+ export declare function getPathParamsFromPathPayload(payload?: string): PathParams;
8
+ export declare function pathParamsToParams(pathParams?: string): Params;
9
+ export declare function getEmptyAction(childRoutes?: Route[]): Action;
10
+ export declare function getNotFoundAction(input: Input, routes: Route[]): Action;
11
+ export declare function getComputedRoutes(routes: Routes, request: BotRequest): Promise<Route[]>;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getComputedRoutes = exports.getNotFoundAction = exports.getEmptyAction = exports.pathParamsToParams = exports.getPathParamsFromPathPayload = exports.isPathPayload = exports.NoMatchingRouteError = void 0;
4
+ const constants_1 = require("../constants");
5
+ class NoMatchingRouteError extends Error {
6
+ constructor(input) {
7
+ super(`No route found for input '${JSON.stringify(input)}' and no ${constants_1.NOT_FOUND_PATH} route defined`);
8
+ this.input = input;
9
+ }
10
+ }
11
+ exports.NoMatchingRouteError = NoMatchingRouteError;
12
+ function isPathPayload(payload) {
13
+ if (!payload)
14
+ return false;
15
+ const isPathPayload = constants_1.PATH_PAYLOAD_REGEXP.exec(payload);
16
+ return Boolean(isPathPayload);
17
+ }
18
+ exports.isPathPayload = isPathPayload;
19
+ function getPathParamsFromPathPayload(payload) {
20
+ const defaultPathParams = {
21
+ path: null,
22
+ params: {},
23
+ };
24
+ if (!payload)
25
+ return defaultPathParams;
26
+ if (!isPathPayload(payload))
27
+ return defaultPathParams;
28
+ try {
29
+ const pathWithParams = payload.split(constants_1.PATH_PAYLOAD_IDENTIFIER)[1];
30
+ if (!pathWithParams) {
31
+ throw `${constants_1.PATH_PAYLOAD_IDENTIFIER} is empty`;
32
+ }
33
+ const [path, params] = pathWithParams.split('?');
34
+ return { path: path !== null && path !== void 0 ? path : null, params: pathParamsToParams(params) };
35
+ }
36
+ catch (e) {
37
+ console.error('Error getting path and params from input.payload:', e);
38
+ return defaultPathParams;
39
+ }
40
+ }
41
+ exports.getPathParamsFromPathPayload = getPathParamsFromPathPayload;
42
+ function pathParamsToParams(pathParams) {
43
+ if (!pathParams)
44
+ return {};
45
+ try {
46
+ const params = {};
47
+ const searchParams = new URLSearchParams(pathParams);
48
+ for (const [key, value] of searchParams) {
49
+ params[key] = value;
50
+ }
51
+ return params;
52
+ }
53
+ catch (e) {
54
+ return {};
55
+ }
56
+ }
57
+ exports.pathParamsToParams = pathParamsToParams;
58
+ function getEmptyAction(childRoutes) {
59
+ if (!childRoutes)
60
+ return null;
61
+ const emptyActionRoute = childRoutes.find(r => r.path === constants_1.EMPTY_ACTION_PATH);
62
+ if (!emptyActionRoute)
63
+ return null;
64
+ return emptyActionRoute.action;
65
+ }
66
+ exports.getEmptyAction = getEmptyAction;
67
+ function getNotFoundAction(input, routes) {
68
+ const notFoundActionRoute = routes.find(r => r.path === constants_1.NOT_FOUND_PATH);
69
+ if (!notFoundActionRoute)
70
+ throw new NoMatchingRouteError(input);
71
+ return notFoundActionRoute.action;
72
+ }
73
+ exports.getNotFoundAction = getNotFoundAction;
74
+ async function getComputedRoutes(routes, request) {
75
+ if (routes instanceof Function) {
76
+ return await getComputedRoutes(await routes(request), request);
77
+ }
78
+ for (const [key, route] of Object.entries(routes)) {
79
+ if (route.childRoutes && route.childRoutes instanceof Function) {
80
+ routes[key].childRoutes = await getComputedRoutes(await route.childRoutes(request), request);
81
+ }
82
+ else {
83
+ routes[key] = route;
84
+ }
85
+ }
86
+ return routes;
87
+ }
88
+ exports.getComputedRoutes = getComputedRoutes;
89
+ //# sourceMappingURL=router-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-utils.js","sourceRoot":"","sources":["../../../src/routing/router-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { RouteInspector } from '../debug/inspector';
2
+ import { BotState, Input, MatchedValue, Matcher, MatchingProp, Nullable, ProcessInputResult, Route, RouteParams, RoutePath, RoutingState, Session } from '../models';
3
+ export declare class Router {
4
+ routes: Route[];
5
+ routeInspector: RouteInspector;
6
+ constructor(routes: Route[], routeInspector?: RouteInspector | undefined);
7
+ /**
8
+ * Processes an input and return a representation of the new bot state.
9
+ * The algorithm is splitted in two main parts:
10
+ * 1. Getting the current routing state.
11
+ * 2. Given a routing state, resolve the different possible scenarios and return the new bot state.
12
+ * The new bot state can return three type of actions:
13
+ * - action: an action directly resolved from a matching route
14
+ * - emptyAction: optional action that can exists or not only within childRoutes
15
+ * - fallbackAction: any other action that acts as a fallback (404, )
16
+ */
17
+ processInput(input: Input, session: Session, botState: BotState): ProcessInputResult;
18
+ /**
19
+ * Find the route that matches the given input, if it match with some of the entries, return the whole Route of the entry with optional params captured if matcher was a regex.
20
+ * IMPORTANT: It returns a cloned route instead of the route itself to avoid modifying original routes and introduce side effects
21
+ * */
22
+ getRoute(input: Input | Partial<Input>, routes: Route[], session: Session, lastRoutePath: RoutePath): RouteParams | null;
23
+ /**
24
+ * Find the route that matches the given path. Path can include concatenations, e.g: 'Flow1/Subflow1.1'.
25
+ * IMPORTANT: It returns a cloned route instead of the route itself to avoid modifying original routes and introduce side effects
26
+ * */
27
+ getRouteByPath(path: RoutePath, routeList?: Route[]): Nullable<Route>;
28
+ /**
29
+ * Returns the matched value for a specific route.
30
+ * Matching Props: ('text' | 'payload' | 'intent' | 'type' | 'input' | 'session' | 'request' ...)
31
+ * Matchers: (string: exact match | regex: regular expression match | function: return true)
32
+ * input: user input object, e.g.: {type: 'text', data: 'Hi'}
33
+ * */
34
+ matchRoute(route: Route, prop: MatchingProp, matcher: Matcher, input: Input, session: Session, lastRoutePath: RoutePath): MatchedValue;
35
+ /**
36
+ * Runs the matcher against the given value.
37
+ * If there is a match, it will return a truthy value (true, RegExp result), o.w., it will return a falsy value.
38
+ * */
39
+ matchValue(matcher: Matcher, value: any): MatchedValue;
40
+ /**
41
+ * It resolves the current state of navigation. Two scenarios:
42
+ * 1. Given a path payload input (__PATH_PAYLOAD__somePath?someParam=someValue), we can resolve the routing state directly from it (using getRouteByPath).
43
+ * 2. Given any other type of input, we resolve the routing state with normal resolution (using getRoute).
44
+ * */
45
+ getRoutingState(input: Input, session: Session, botState: BotState): RoutingState;
46
+ /**
47
+ * Given a non path payload input, try to run it against the routes, update matching routes information in consequence and dictamine if the flow has been broken.
48
+ * */
49
+ getRoutingStateFromInput(currentRoute: Nullable<Route>, input: Input, session: Session): RoutingState;
50
+ /**
51
+ * Given a path payload input, try to run the path against the routes, update matching routes information in consequence and dictamine if the flow has been broken.
52
+ * */
53
+ getRoutingStateFromPathPayload(currentRoute: Nullable<Route>, pathPayload: string): RoutingState;
54
+ }