@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
@@ -1,273 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const errors_1 = require("./errors");
4
- const index_1 = require("./index");
5
- const router_1 = require("./router");
6
- /** @type Input */
7
- const textInput = { type: 'text', data: 'hi' };
8
- /** @type Input */
9
- const textInputComplex = { type: 'text', data: 'Cömplêx input &% 🚀' };
10
- /** @type Input */
11
- const textPayloadInput = { type: 'text', data: 'hi', payload: 'foo' };
12
- /** @type Input */
13
- const postbackInput = { type: 'postback', payload: 'foo' };
14
- const requestInput = {
15
- input: textInput,
16
- session: { organization: 'myOrg' },
17
- lastRoutePath: 'initial',
18
- };
19
- /**
20
- * @return {Route}
21
- */
22
- function testRoute() {
23
- return {};
24
- }
25
- /**
26
- * @return {Session}
27
- */
28
- function testSession() {
29
- return {
30
- user: { id: 'userid', provider: index_1.PROVIDER.DEV },
31
- bot: { id: 'bot_id' },
32
- is_first_interaction: true,
33
- };
34
- }
35
- describe('Bad router initialization', () => {
36
- test('empty routes throw TypeError', () => {
37
- const router = new router_1.Router([]);
38
- expect(() => router.processInput(textInput, testSession())).toThrow(errors_1.NoMatchingRouteError);
39
- });
40
- test('null routes throw TypeError', () => {
41
- // @ts-ignore
42
- const router = new router_1.Router();
43
- expect(() => router.processInput(textInput, testSession())).toThrow(TypeError);
44
- });
45
- });
46
- test('Router returns 404', () => {
47
- const router = new router_1.Router([{ path: '404', action: '404Action' }]);
48
- const { action } = router.processInput(textInput, testSession());
49
- expect(action).toBe('404Action');
50
- });
51
- describe('Match route by MATCHER <> INPUT', () => {
52
- const router = new router_1.Router([]);
53
- const matchTextProp = (matcher, textInput) => router.matchRoute(testRoute(), 'text', matcher, textInput, testSession());
54
- const matchPayloadProp = (matcher, payload) => router.matchRoute(testRoute(), 'payload', matcher, payload, testSession());
55
- const matchRequestProp = (matcher, request) => router.matchRoute(testRoute(), 'request', matcher, request.input, request.session, request.lastRoutePath);
56
- test('text <> text', () => {
57
- expect(matchTextProp('hi', textInput)).toBeTruthy();
58
- expect(matchTextProp('hii', textInput)).toBeFalsy();
59
- expect(matchTextProp('bye', textInput)).toBeFalsy();
60
- expect(matchTextProp('', textInput)).toBeFalsy();
61
- expect(matchTextProp(null, textInput)).toBeFalsy();
62
- expect(matchTextProp('Cömplêx input &% 🚀', textInputComplex)).toBeTruthy();
63
- expect(matchTextProp(' Cömplêx input &% 🚀', textInputComplex)).toBeFalsy(); // has a space at the beginning
64
- });
65
- test('regex <> text', () => {
66
- expect(matchTextProp(/hi/, textInput)).toBeTruthy();
67
- expect(matchTextProp(/bye/, textInput)).toBeFalsy();
68
- expect(matchTextProp(/🚀/, textInputComplex)).toBeTruthy();
69
- expect(matchTextProp(/complex/, textInputComplex)).toBeFalsy();
70
- });
71
- test('function <> text', () => {
72
- expect(matchTextProp(v => v.startsWith('hi'), textInput)).toBeTruthy();
73
- expect(matchTextProp(v => !v.startsWith('hi'), textInput)).toBeFalsy();
74
- });
75
- test('input <> text', () => {
76
- expect(router.matchRoute(testRoute(), 'input', i => i.data.startsWith('hi'), textInput, testSession())).toBeTruthy();
77
- expect(router.matchRoute(testRoute(), 'input', i => !i.data.startsWith('hi'), textInput, testSession())).toBeFalsy();
78
- });
79
- test('text <> text payload', () => {
80
- expect(matchPayloadProp('foo', textPayloadInput)).toBeTruthy();
81
- expect(matchPayloadProp('fooo', textPayloadInput)).toBeFalsy();
82
- expect(matchPayloadProp('bar', textPayloadInput)).toBeFalsy();
83
- expect(matchPayloadProp('', textPayloadInput)).toBeFalsy();
84
- expect(matchPayloadProp(null, textPayloadInput)).toBeFalsy();
85
- });
86
- test('regex <> text payload', () => {
87
- expect(matchPayloadProp(/foo/, textPayloadInput)).toBeTruthy();
88
- expect(matchPayloadProp(/bar/, textPayloadInput)).toBeFalsy();
89
- });
90
- test('function <> text payload', () => {
91
- expect(matchPayloadProp(v => v.startsWith('fo'), textPayloadInput)).toBeTruthy();
92
- expect(matchPayloadProp(v => !v.startsWith('fo'), textPayloadInput)).toBeFalsy();
93
- });
94
- test('text <> postback', () => {
95
- expect(matchPayloadProp('foo', postbackInput)).toBeTruthy();
96
- expect(matchPayloadProp('fooo', postbackInput)).toBeFalsy();
97
- expect(matchPayloadProp('bar', postbackInput)).toBeFalsy();
98
- expect(matchPayloadProp('', postbackInput)).toBeFalsy();
99
- expect(matchPayloadProp(null, postbackInput)).toBeFalsy();
100
- });
101
- test('regex <> postback', () => {
102
- expect(matchPayloadProp(/foo/, postbackInput)).toBeTruthy();
103
- expect(matchPayloadProp(/bar/, postbackInput)).toBeFalsy();
104
- });
105
- test('function <> postback', () => {
106
- expect(matchPayloadProp(v => v.startsWith('fo'), postbackInput)).toBeTruthy();
107
- expect(matchPayloadProp(v => !v.startsWith('fo'), postbackInput)).toBeFalsy();
108
- });
109
- test('function <> request', () => {
110
- expect(matchRequestProp(request => request.input.data === 'hi' &&
111
- request.session.organization === 'myOrg' &&
112
- request.lastRoutePath === 'initial', requestInput)).toBeTruthy();
113
- expect(matchRequestProp(request => request.input.data === 'hello' &&
114
- request.session.organization === 'myOrg' &&
115
- request.lastRoutePath === 'initial', requestInput)).toBeFalsy();
116
- });
117
- });
118
- describe('Get route by path', () => {
119
- const externalRoutes = [
120
- { path: '', action: 'DefaultAction' },
121
- { path: 'child', action: 'ChildAction' },
122
- ];
123
- const router = new router_1.Router([
124
- { path: 'initial', action: 'Initial' },
125
- {
126
- path: 'flow-1',
127
- action: 'Flow1',
128
- childRoutes: [
129
- {
130
- path: '1',
131
- action: 'Flow1.1',
132
- childRoutes: [
133
- { path: '1', action: 'Flow1.1.1' },
134
- { path: '2', action: 'Flow1.1.2' },
135
- { path: '3', action: 'Flow1.1.3' },
136
- ],
137
- },
138
- { path: '2', action: 'Flow1.2', childRoutes: externalRoutes },
139
- {
140
- path: '3',
141
- action: 'Flow1.3',
142
- childRoutes: [
143
- { path: '1', action: 'Flow1.3.1' },
144
- { path: '2', action: 'Flow1.3.2' },
145
- { path: '3', action: 'Flow1.3.3' },
146
- ],
147
- },
148
- ],
149
- },
150
- { path: '404', action: '404Action' },
151
- ]);
152
- function getRouteActionByPath(path) {
153
- // @ts-ignore
154
- return router.getRouteByPath(path).action;
155
- }
156
- test('path exists', () => {
157
- expect(getRouteActionByPath('initial')).toBe('Initial');
158
- expect(getRouteActionByPath('flow-1/1')).toBe('Flow1.1');
159
- expect(getRouteActionByPath('flow-1/3/2')).toBe('Flow1.3.2');
160
- });
161
- test('path exists in composed child routes', () => {
162
- expect(getRouteActionByPath('flow-1/2')).toBe('Flow1.2');
163
- expect(getRouteActionByPath('flow-1/2/child')).toBe('ChildAction');
164
- });
165
- test('path does not exist', () => {
166
- expect(router.getRouteByPath('')).toBeNull();
167
- expect(router.getRouteByPath('foo')).toBeNull();
168
- expect(router.getRouteByPath('flow-1/3/2/6')).toBeNull();
169
- });
170
- });
171
- describe('Process input (v<0.9)', () => {
172
- const externalRoutes = [
173
- { path: '', action: 'DefaultAction' },
174
- { path: 'child', action: 'ChildAction' },
175
- ];
176
- const router = new router_1.Router([
177
- { path: 'help', payload: 'help', action: 'Help' },
178
- {
179
- path: 'initial',
180
- intent: /greeting/,
181
- action: 'Flow1',
182
- childRoutes: [
183
- {
184
- path: '1',
185
- payload: '1',
186
- action: 'Flow1.1',
187
- childRoutes: [
188
- { path: '1', payload: '1', action: 'Flow1.1.1' },
189
- { path: '2', payload: '2', action: 'Flow1.1.2' },
190
- { path: '3', payload: '3', action: 'Flow1.1.3' },
191
- ],
192
- },
193
- {
194
- path: '2',
195
- payload: '2',
196
- action: 'Flow1.2',
197
- childRoutes: externalRoutes,
198
- },
199
- {
200
- path: '3',
201
- payload: '3',
202
- action: 'Flow1.3',
203
- childRoutes: [
204
- { path: '1', payload: '1', action: 'Flow1.3.1' },
205
- { path: '2', payload: '2', action: 'Flow1.3.2' },
206
- { path: '3', payload: '3', action: 'Flow1.3.3' },
207
- ],
208
- },
209
- ],
210
- },
211
- { path: '404', action: '404Action' },
212
- ]);
213
- test('text input, root level route', () => {
214
- /** @type Input */
215
- const input = { type: 'text', data: 'hi', intent: 'greeting' };
216
- const lastRoutePath = null;
217
- expect(router.processInput(input, testSession(), lastRoutePath).action).toBe('Flow1');
218
- });
219
- test('payload input, 2nd level route', () => {
220
- /** @type Input */
221
- const input = { type: 'postback', payload: '2' };
222
- const lastRoutePath = 'initial';
223
- expect(router.processInput(input, testSession(), lastRoutePath).action).toBe('Flow1.2');
224
- });
225
- test('old protocol:path payload input, root level route', () => {
226
- /** @type Input */
227
- const input = { type: 'postback', payload: '__PATH_PAYLOAD__initial' };
228
- const lastRoutePath = '';
229
- expect(router.processInput(input, testSession(), lastRoutePath).action).toBe('Flow1');
230
- });
231
- test('old protocol:path payload input, root level route with composed path', () => {
232
- /** @type Input */
233
- const input = { type: 'postback', path: 'initial/2' };
234
- const lastRoutePath = '';
235
- expect(router.processInput(input, testSession(), lastRoutePath).action).toBe('Flow1.2');
236
- });
237
- test('old protocol: path payload input, 2nd level route with lastRoutePath', () => {
238
- /** @type Input */
239
- const input = { type: 'postback', payload: '__PATH_PAYLOAD__2' };
240
- const lastRoutePath = 'initial';
241
- expect(router.processInput(input, testSession(), lastRoutePath).action).toBe('Flow1.2');
242
- });
243
- test('path payload input with deprecated protocol, root level route', () => {
244
- /** @type Input */
245
- const input = { type: 'postback', payload: '__PATH_PAYLOAD__initial/2' };
246
- const lastRoutePath = '';
247
- expect(router.processInput(input, testSession(), lastRoutePath).action).toBe('Flow1.2');
248
- });
249
- test('old protocol:path payload input with deprecated protocol, 2nd level route', () => {
250
- /** @type Input */
251
- const input = { type: 'postback', payload: '__PATH_PAYLOAD__initial/2' };
252
- const lastRoutePath = 'initial';
253
- expect(router.processInput(input, testSession(), lastRoutePath).action).toBe('Flow1.2');
254
- });
255
- });
256
- test.each([
257
- [undefined, undefined, undefined],
258
- ['', undefined, undefined],
259
- ['bad_input', undefined, undefined],
260
- ['__PATH_PAYLOAD__', '', undefined],
261
- ['xx__PATH_PAYLOAD__path1', 'path1', undefined],
262
- ['xx__PATH_PAYLOAD__path1?path1', 'path1', 'path1'],
263
- ])('getOnFinishParams(%s)=>%s', (inputPayload, expectedPath, expectedParams) => {
264
- const router = new router_1.Router([]);
265
- /** @type Input */
266
- const input = { type: 'postback', payload: inputPayload };
267
- expect(router.getOnFinishParams(input)).toEqual(expectedParams);
268
- expect(input.path).toEqual(expectedPath);
269
- if (input.path) {
270
- expect(input.payload).toBeUndefined();
271
- }
272
- });
273
- //# sourceMappingURL=router.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.test.js","sourceRoot":"","sources":["../src/router.test.js"],"names":[],"mappings":"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"}
package/lib/utils.d.ts DELETED
@@ -1,8 +0,0 @@
1
- export function getWebpackEnvVar(webpackEnvVar: any, name: any, defaultValue: any): any;
2
- export function isFunction(o: any): boolean;
3
- export function isNode(): any;
4
- export function isBrowser(): any;
5
- export function isMobile(mobileBreakpoint?: number): boolean;
6
- export function params2queryString(params: any): string;
7
- export function join(...segments: any[]): string;
8
- export function dirname(path: any): string;
package/lib/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.js"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,GAAG,EAAE;IACzB,OAAO,OAAO,OAAO,KAAK,WAAW;QACnC,CAAC,CAAC,oCAAoC;YACpC,OAAO;QACT,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW;YAC5B,OAAO,CAAC,QAAQ,KAAK,IAAI;YACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAA;AACtC,CAAC,CAAA;AAPY,QAAA,MAAM,UAOlB;AAEM,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,OAAO,OAAO,UAAU,KAAK,WAAW;QACtC,CAAC,CAAC,oCAAoC;YACpC,UAAU;QACZ,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW;YAC3B,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW;YACtC,CAAC,MAAM,CAAC,OAAO,CAAA;AACvB,CAAC,CAAA;AAPY,QAAA,SAAS,aAOrB;AAED,SAAgB,gBAAgB,CAAC,aAAa,EAAE,IAAI,EAAE,YAAY;IAChE,OAAO,CACL,aAAa;QACb,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrD,YAAY,CACb,CAAA;AACH,CAAC;AAND,4CAMC;AAEM,MAAM,QAAQ,GAAG,CAAC,gBAAgB,GAAG,GAAG,EAAE,EAAE;IACjD,IAAI,iBAAS,EAAE,EAAE;QACf,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAChB,QAAQ,CAAC,eAAe,CAAC,WAAW,EACpC,MAAM,CAAC,UAAU,IAAI,CAAC,CACvB,CAAA;QACD,IAAI,CAAC,GAAG,gBAAgB,EAAE;YACxB,OAAO,IAAI,CAAA;SACZ;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAXY,QAAA,QAAQ,YAWpB;AACD,SAAgB,UAAU,CAAC,CAAC;IAC1B,OAAO,OAAO,CAAC,KAAK,UAAU,CAAA;AAChC,CAAC;AAFD,gCAEC;AAEM,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CACzC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;KACnB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,IAAI,CAAC,GAAG,CAAC,CAAA;AAHD,QAAA,kBAAkB,sBAGjB;AAEd,wEAAwE;AACxE,4DAA4D;AAC5D,wEAAwE;AACjE,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,EAAE,EAAE;IAClC,iDAAiD;IACjD,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC/C,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;KAC7C;IACD,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,EAAE,CAAA;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,sCAAsC;QACtC,2BAA2B;QAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG;YAAE,SAAQ;QACnC,yCAAyC;QACzC,IAAI,IAAI,KAAK,IAAI;YAAE,QAAQ,CAAC,GAAG,EAAE,CAAA;QACjC,0BAA0B;;YACrB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACzB;IACD,+CAA+C;IAC/C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACzC,uCAAuC;IACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAC5D,CAAC,CAAA;AAtBY,QAAA,IAAI,QAsBhB;AAED,iDAAiD;AACjD,4DAA4D;AACrD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,YAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAAlC,QAAA,OAAO,WAA2B"}
package/src/constants.js DELETED
@@ -1,15 +0,0 @@
1
- export const Providers = Object.freeze({
2
- Messaging: {
3
- TELEGRAM: 'telegram',
4
- WECHAT: 'wechat',
5
- FACEBOOK: 'facebook',
6
- INTERCOM: 'intercom',
7
- GENERIC: 'generic',
8
- TWITTER: 'twitter',
9
- WHATSAPP: 'whatsapp',
10
- SMOOCH: 'smooch',
11
- SMOOCH_WEB: 'smooch_web',
12
- IMBEE: 'imbee',
13
- WEBCHAT: 'webchat',
14
- },
15
- })
package/src/core-bot.js DELETED
@@ -1,106 +0,0 @@
1
- import { Inspector } from './debug/inspector'
2
- import { getString } from './i18n'
3
- import { BotonicOutputParser } from './output-parser/'
4
- import { loadPlugins, runPlugins } from './plugins'
5
- import { Router } from './router'
6
- import { isFunction } from './utils'
7
-
8
- export class CoreBot {
9
- constructor({
10
- renderer,
11
- routes,
12
- locales,
13
- theme,
14
- plugins,
15
- appId,
16
- defaultTyping,
17
- defaultDelay,
18
- defaultRoutes,
19
- inspector,
20
- }) {
21
- this.renderer = renderer
22
- this.plugins = loadPlugins(plugins)
23
- this.theme = theme || {}
24
- this.defaultTyping =
25
- typeof defaultTyping !== 'undefined' ? defaultTyping : 0.6
26
- this.defaultDelay = typeof defaultDelay !== 'undefined' ? defaultDelay : 0.4
27
- this.locales = locales
28
- if (appId) {
29
- this.appId = appId
30
- return
31
- }
32
- this.rootElement = null
33
- this.inspector = inspector || new Inspector()
34
- this.routes = routes
35
- this.defaultRoutes = defaultRoutes || []
36
- this.router = isFunction(this.routes)
37
- ? null
38
- : new Router(
39
- [...this.routes, ...this.defaultRoutes],
40
- this.inspector.routeInspector
41
- )
42
- }
43
-
44
- getString(stringID, session) {
45
- return getString(this.locales, session.__locale, stringID)
46
- }
47
-
48
- setLocale(locale, session) {
49
- session.__locale = locale
50
- }
51
-
52
- async input({ input, session, lastRoutePath }) {
53
- session = session || {}
54
- if (!session.__locale) session.__locale = 'en'
55
-
56
- if (this.plugins) {
57
- await runPlugins(this.plugins, 'pre', input, session, lastRoutePath)
58
- }
59
-
60
- if (isFunction(this.routes)) {
61
- this.router = new Router(
62
- [
63
- ...(await this.routes({ input, session, lastRoutePath })),
64
- ...this.defaultRoutes,
65
- ],
66
- this.inspector.routeInspector
67
- )
68
- }
69
-
70
- const output = this.router.processInput(input, session, lastRoutePath)
71
-
72
- const request = {
73
- getString: stringId => this.getString(stringId, session),
74
- setLocale: locale => this.setLocale(locale, session),
75
- session: session || {},
76
- params: output.params || {},
77
- input: input,
78
- plugins: this.plugins,
79
- defaultTyping: this.defaultTyping,
80
- defaultDelay: this.defaultDelay,
81
- lastRoutePath,
82
- }
83
-
84
- const actions = [output.action, output.retryAction, output.defaultAction]
85
-
86
- const response = await this.renderer({ request, actions })
87
- const parsedResponse = new BotonicOutputParser().xmlToMessageEvents(
88
- response
89
- )
90
- lastRoutePath = output.lastRoutePath
91
- if (this.plugins) {
92
- await runPlugins(
93
- this.plugins,
94
- 'post',
95
- input,
96
- session,
97
- lastRoutePath,
98
- response,
99
- parsedResponse
100
- )
101
- }
102
-
103
- session.is_first_interaction = false
104
- return { input, response, parsedResponse, session, lastRoutePath }
105
- }
106
- }
@@ -1,6 +0,0 @@
1
- export {
2
- FocusRouteInspector,
3
- Inspector,
4
- LogRouteInspector,
5
- RouteInspector,
6
- } from './inspector'
@@ -1,6 +0,0 @@
1
- import { LogRouteInspector } from './inspector'
2
-
3
- test('LogRouteInspector', () => {
4
- const sut = new LogRouteInspector()
5
- sut.routeMatched({ path: 'path1' }, 'k1', 'val1', 'inputVal')
6
- })
package/src/errors.js DELETED
@@ -1,8 +0,0 @@
1
- export class NoMatchingRouteError extends Error {
2
- constructor(input) {
3
- super(
4
- `No route found for input '${String(input)}' and no 404 route defined`
5
- )
6
- this.input = input
7
- }
8
- }
@@ -1,61 +0,0 @@
1
- import { HandOffBuilder, humanHandOff } from './handoff'
2
-
3
- describe('handOff', () => {
4
- test.each([
5
- [
6
- `create_case:{
7
- "queue":"q1",
8
- "on_finish":"payload1"
9
- }`,
10
- 'q1',
11
- { payload: 'payload1' },
12
- ],
13
- [
14
- `create_case:{
15
- "on_finish":"__PATH_PAYLOAD__path1"
16
- }`,
17
- '',
18
- { path: 'path1' },
19
- ],
20
- ])('humanHandOff', (expected, queue, onFinish) => {
21
- const session = {}
22
- humanHandOff(session, queue, onFinish)
23
- expect(session._botonic_action).toEqual(expected.replace(/[ \n]/g, ''))
24
- })
25
-
26
- test.each([
27
- [
28
- `create_case:` +
29
- JSON.stringify({
30
- queue: 'q1',
31
- agent_email: 'email1',
32
- case_info: '{}{:::: m"ho menjo tot}',
33
- note: '{}{:::: m"ho menjo tot2}',
34
- on_finish: 'payload1',
35
- }),
36
- new HandOffBuilder({})
37
- .withQueue('q1')
38
- .withOnFinishPayload('payload1')
39
- .withAgentEmail('email1')
40
- .withCaseInfo('{}{:::: m"ho menjo tot}')
41
- .withNote('{}{:::: m"ho menjo tot2}'),
42
- ],
43
- [
44
- `create_case:` +
45
- JSON.stringify({
46
- on_finish: '__PATH_PAYLOAD__path1',
47
- }),
48
- new HandOffBuilder({}).withOnFinishPath('path1'),
49
- ],
50
- [
51
- `create_case:` +
52
- JSON.stringify({
53
- agent_id: '1234',
54
- }),
55
- new HandOffBuilder({}).withAgentId('1234'),
56
- ],
57
- ])('HandOffBuilder', (expected, builder) => {
58
- builder.handOff()
59
- expect(builder._session._botonic_action).toEqual(expected)
60
- })
61
- })
@@ -1,23 +0,0 @@
1
- import { HubtypeService } from './hubtype-service'
2
-
3
- describe('HubtypeService', () => {
4
- test.each([
5
- [{ user: { id: 'userId' } }],
6
- [{ appId: 'appId' }],
7
- [{ appId: '', user: { id: 'userId' } }],
8
- [{ appId: 'appId', user: { id: undefined } }],
9
- ])('init fails if user or appid are empty: %s', async args => {
10
- const sut = new HubtypeService(args)
11
-
12
- await expect(sut.init()).rejects.toEqual(
13
- 'No User or appId. Clear cache and reload'
14
- )
15
- })
16
-
17
- test('init timeouts when it cannot connect to hubtype', async () => {
18
- const sut = new HubtypeService({ appId: 'appId', user: { id: 'userId' } })
19
- sut.PUSHER_CONNECT_TIMEOUT_MS = 20
20
- // will fail because _HUBTYPE_API_URL_ is not configured for unit tests
21
- await expect(sut.init()).rejects.toEqual('Connection Timeout')
22
- })
23
- })
package/src/index.js DELETED
@@ -1,51 +0,0 @@
1
- export { Providers } from './constants'
2
- export { CoreBot } from './core-bot'
3
- export * from './debug'
4
- export * from './handoff'
5
- export { HubtypeService } from './hubtype-service'
6
- export { getString } from './i18n'
7
- export { Router } from './router'
8
- export * from './utils'
9
-
10
- export const PROVIDER = Object.freeze({
11
- DEV: 'dev',
12
- FACEBOOK: 'facebook',
13
- GENERIC: 'generic',
14
- INTERCOM: 'intercom',
15
- SMOOCH: 'smooch',
16
- TELEGRAM: 'telegram',
17
- TWITTER: 'twitter',
18
- WEBCHAT: 'webchat',
19
- WECHAT: 'wechat',
20
- WHATSAPP: 'whatsapp',
21
- })
22
-
23
- export const INPUT = Object.freeze({
24
- TEXT: 'text',
25
- POSTBACK: 'postback',
26
- AUDIO: 'audio',
27
- IMAGE: 'image',
28
- VIDEO: 'video',
29
- DOCUMENT: 'document',
30
- LOCATION: 'location',
31
- CONTACT: 'contact',
32
- BUTTON_MESSAGE: 'buttonmessage',
33
- CAROUSEL: 'carousel',
34
- CUSTOM: 'custom',
35
- WEBCHAT_SETTINGS: 'webchatsettings',
36
- WHATSAPP_TEMPLATE: 'whatsapptemplate',
37
- })
38
-
39
- export const CASE_STATUS = Object.freeze({
40
- WAITING: 'status_waiting',
41
- ATTENDING: 'status_attending',
42
- IDLE: 'status_idle',
43
- RESOLVED: 'status_resolved',
44
- })
45
-
46
- export const CASE_RESOLUTION = Object.freeze({
47
- OK: 'result_ok',
48
- NOK: 'result_nok',
49
- NOT_SOLVED: 'result_not_solved',
50
- BANNED: 'result_banned',
51
- })
@@ -1,8 +0,0 @@
1
- export function parseNumber(strNumber: string): number {
2
- return parseInt(strNumber)
3
- }
4
-
5
- export function parseBoolean(strNumber: string): boolean {
6
- if (strNumber === '0') return false
7
- return true
8
- }