@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,29 +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.parsePostback = exports.parseText = exports.parseReplies = exports.parseReply = exports.parseButtons = exports.parseButton = exports.parseMessage = void 0;
4
- const events_1 = require("../models/events");
5
- const _1 = require(".");
6
- 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;
7
16
  // COMMON
8
17
  const parseMessage = args => {
9
18
  const typingAndDelay = {};
10
19
  if (args.toParse.delay !== undefined) {
11
- typingAndDelay['delay'] = util_1.parseNumber(args.toParse.delay);
20
+ typingAndDelay['delay'] = parseNumber(args.toParse.delay);
12
21
  }
13
22
  if (args.toParse.typing !== undefined) {
14
- typingAndDelay['typing'] = util_1.parseNumber(args.toParse.typing);
23
+ typingAndDelay['typing'] = parseNumber(args.toParse.typing);
15
24
  }
16
25
  return {
17
26
  toParse: args.toParse,
18
27
  parsed: Object.assign({
19
28
  // Following properties added later before saving event: eventId, userId, createdAt, from, ack
20
- eventType: events_1.EventTypes.MESSAGE, type: args.toParse.type }, typingAndDelay),
29
+ eventType: models_1.EventTypes.MESSAGE, type: args.toParse.type, ack: args.toParse.ack, from: args.toParse.from }, typingAndDelay),
21
30
  };
22
31
  };
23
32
  exports.parseMessage = parseMessage;
24
33
  // BUTTONS
25
34
  const parseButton = (button) => {
26
- const title = button[_1.TEXT_NODE_NAME];
35
+ const title = button[botonic_output_parser_1.TEXT_NODE_NAME];
27
36
  if ('payload' in button) {
28
37
  return { title, payload: button.payload };
29
38
  }
@@ -58,7 +67,7 @@ const parseButtons = args => {
58
67
  exports.parseButtons = parseButtons;
59
68
  // REPLIES
60
69
  const parseReply = (reply) => ({
61
- title: reply[_1.TEXT_NODE_NAME],
70
+ title: reply[botonic_output_parser_1.TEXT_NODE_NAME],
62
71
  payload: reply.payload,
63
72
  });
64
73
  exports.parseReply = parseReply;
@@ -79,7 +88,7 @@ exports.parseReplies = parseReplies;
79
88
  const parseText = args => {
80
89
  return {
81
90
  toParse: args.toParse,
82
- 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) }),
83
92
  };
84
93
  };
85
94
  exports.parseText = parseText;
@@ -95,7 +104,7 @@ exports.parsePostback = parsePostback;
95
104
  const parseMedia = args => {
96
105
  return {
97
106
  toParse: args.toParse,
98
- 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 }),
99
108
  };
100
109
  };
101
110
  exports.parseMedia = parseMedia;
@@ -131,7 +140,7 @@ exports.parseCarousel = parseCarousel;
131
140
  const parseCustom = args => {
132
141
  return {
133
142
  toParse: args.toParse,
134
- 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) }),
135
144
  };
136
145
  };
137
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,7 @@
1
+ import { DataProvider } from './data-provider';
2
+ import { BotonicEvent, Input, PluginConfig, RoutePath, Session } from './models';
3
+ declare type PluginMode = 'pre' | 'post';
4
+ export declare function loadPlugins(plugins: PluginConfig<any>[]): any;
5
+ export declare function runPlugins(plugins: any, // // TODO: Add type for resolvedPlugins, they differ from loaded plugins
6
+ mode: PluginMode, input: Input, session: Session, lastRoutePath: RoutePath, response?: string | null, messageEvents?: Partial<BotonicEvent>[] | null, dataProvider?: DataProvider): Promise<void>;
7
+ export {};
@@ -20,19 +20,22 @@ 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, lastRoutePath, response = null, messageEvents = null, dataProvider) {
24
25
  for (const key in plugins) {
25
26
  const p = await plugins[key];
26
27
  try {
27
- if (mode == 'pre')
28
- await p.pre({ input, session, lastRoutePath });
29
- if (mode == 'post')
28
+ if (mode === 'pre')
29
+ await p.pre({ input, session, lastRoutePath, dataProvider, plugins });
30
+ if (mode === 'post')
30
31
  await p.post({
31
32
  input,
32
33
  session,
33
34
  lastRoutePath,
34
35
  response,
35
- parsedResponse,
36
+ messageEvents,
37
+ dataProvider,
38
+ plugins,
36
39
  });
37
40
  }
38
41
  catch (e) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":";;;AAKA,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,aAAwB,EACxB,WAA0B,IAAI,EAC9B,gBAAgD,IAAI,EACpD,YAA2B;IAE3B,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,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;YACvE,IAAI,IAAI,KAAK,MAAM;gBACjB,MAAM,CAAC,CAAC,IAAI,CAAC;oBACX,KAAK;oBACL,OAAO;oBACP,aAAa;oBACb,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,7 @@
1
+ /**
2
+ *
3
+ * @param compressedData a string representing gzipped data previously encoded to base64 for very large contents
4
+ * @returns a string representing the information of a very large content
5
+ * Ref: https://stackoverflow.com/questions/4875020/javascript-decompress-inflate-unzip-ungzip-strings (check jsfiddle proposal)
6
+ */
7
+ export declare function decompressData(compressedData: string): string;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decompressData = void 0;
4
+ const pako_inflate_js_1 = require("pako/dist/pako_inflate.js");
5
+ /**
6
+ *
7
+ * @param compressedData a string representing gzipped data previously encoded to base64 for very large contents
8
+ * @returns a string representing the information of a very large content
9
+ * Ref: https://stackoverflow.com/questions/4875020/javascript-decompress-inflate-unzip-ungzip-strings (check jsfiddle proposal)
10
+ */
11
+ function decompressData(compressedData) {
12
+ const strData = atob(compressedData); // Decode base64 (convert ascii to binary)
13
+ const charData = strData.split('').map(x => x.charCodeAt(0)); // Convert binary string to character-number array
14
+ const binData = new Uint8Array(charData); // Turn number array into byte-array
15
+ const data = pako_inflate_js_1.inflate(binData);
16
+ // @ts-ignore
17
+ return String.fromCharCode.apply(null, new Uint8Array(data)); // Convert gunzipped byteArray back to ascii string
18
+ }
19
+ exports.decompressData = decompressData;
20
+ //# sourceMappingURL=pusher-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pusher-utils.js","sourceRoot":"","sources":["../../src/pusher-utils.ts"],"names":[],"mappings":";;;AAAA,+DAAmD;AAEnD;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,cAAsB;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA,CAAC,0CAA0C;IAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,kDAAkD;IAC/G,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA,CAAC,oCAAoC;IAC7E,MAAM,IAAI,GAAG,yBAAO,CAAC,OAAO,CAAC,CAAA;IAC7B,aAAa;IACb,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC,mDAAmD;AAClH,CAAC;AAPD,wCAOC"}
@@ -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 { 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, lastRoutePath?: RoutePath): 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, lastRoutePath: RoutePath): 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
+ }