@botonic/plugin-flow-builder 0.43.2 → 0.44.0-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 (312) hide show
  1. package/lib/cjs/action/ai-agent.js +55 -61
  2. package/lib/cjs/action/ai-agent.js.map +1 -1
  3. package/lib/cjs/action/fallback.js +28 -32
  4. package/lib/cjs/action/fallback.js.map +1 -1
  5. package/lib/cjs/action/first-interaction.js +61 -71
  6. package/lib/cjs/action/first-interaction.js.map +1 -1
  7. package/lib/cjs/action/index.js +66 -79
  8. package/lib/cjs/action/index.js.map +1 -1
  9. package/lib/cjs/action/knowledge-bases.js +64 -72
  10. package/lib/cjs/action/knowledge-bases.js.map +1 -1
  11. package/lib/cjs/action/payload.js +61 -70
  12. package/lib/cjs/action/payload.js.map +1 -1
  13. package/lib/cjs/api.d.ts +7 -2
  14. package/lib/cjs/api.js +58 -36
  15. package/lib/cjs/api.js.map +1 -1
  16. package/lib/cjs/constants.d.ts +1 -1
  17. package/lib/cjs/content-fields/content-fields-base.js +3 -6
  18. package/lib/cjs/content-fields/content-fields-base.js.map +1 -1
  19. package/lib/cjs/content-fields/flow-ai-agent.d.ts +0 -1
  20. package/lib/cjs/content-fields/flow-ai-agent.js +4 -7
  21. package/lib/cjs/content-fields/flow-ai-agent.js.map +1 -1
  22. package/lib/cjs/content-fields/flow-bot-action.d.ts +0 -1
  23. package/lib/cjs/content-fields/flow-bot-action.js +14 -17
  24. package/lib/cjs/content-fields/flow-bot-action.js.map +1 -1
  25. package/lib/cjs/content-fields/flow-button.d.ts +0 -1
  26. package/lib/cjs/content-fields/flow-button.js +10 -16
  27. package/lib/cjs/content-fields/flow-button.js.map +1 -1
  28. package/lib/cjs/content-fields/flow-capture-user-input.d.ts +13 -0
  29. package/lib/cjs/content-fields/flow-capture-user-input.js +43 -0
  30. package/lib/cjs/content-fields/flow-capture-user-input.js.map +1 -0
  31. package/lib/cjs/content-fields/flow-carousel.d.ts +0 -1
  32. package/lib/cjs/content-fields/flow-carousel.js +16 -23
  33. package/lib/cjs/content-fields/flow-carousel.js.map +1 -1
  34. package/lib/cjs/content-fields/flow-channel-conditional.d.ts +0 -1
  35. package/lib/cjs/content-fields/flow-channel-conditional.js +14 -17
  36. package/lib/cjs/content-fields/flow-channel-conditional.js.map +1 -1
  37. package/lib/cjs/content-fields/flow-country-conditional.d.ts +0 -1
  38. package/lib/cjs/content-fields/flow-country-conditional.js +17 -21
  39. package/lib/cjs/content-fields/flow-country-conditional.js.map +1 -1
  40. package/lib/cjs/content-fields/flow-custom-conditional.js +18 -22
  41. package/lib/cjs/content-fields/flow-custom-conditional.js.map +1 -1
  42. package/lib/cjs/content-fields/flow-element.d.ts +0 -1
  43. package/lib/cjs/content-fields/flow-element.js +5 -9
  44. package/lib/cjs/content-fields/flow-element.js.map +1 -1
  45. package/lib/cjs/content-fields/flow-go-to-flow.d.ts +0 -1
  46. package/lib/cjs/content-fields/flow-go-to-flow.js +15 -18
  47. package/lib/cjs/content-fields/flow-go-to-flow.js.map +1 -1
  48. package/lib/cjs/content-fields/flow-handoff.d.ts +0 -1
  49. package/lib/cjs/content-fields/flow-handoff.js +29 -35
  50. package/lib/cjs/content-fields/flow-handoff.js.map +1 -1
  51. package/lib/cjs/content-fields/flow-image.d.ts +0 -1
  52. package/lib/cjs/content-fields/flow-image.js +2 -5
  53. package/lib/cjs/content-fields/flow-image.js.map +1 -1
  54. package/lib/cjs/content-fields/flow-knowledge-base.d.ts +0 -1
  55. package/lib/cjs/content-fields/flow-knowledge-base.js +5 -8
  56. package/lib/cjs/content-fields/flow-knowledge-base.js.map +1 -1
  57. package/lib/cjs/content-fields/flow-queue-status-conditional.d.ts +0 -1
  58. package/lib/cjs/content-fields/flow-queue-status-conditional.js +55 -65
  59. package/lib/cjs/content-fields/flow-queue-status-conditional.js.map +1 -1
  60. package/lib/cjs/content-fields/flow-rating.d.ts +0 -1
  61. package/lib/cjs/content-fields/flow-rating.js +2 -5
  62. package/lib/cjs/content-fields/flow-rating.js.map +1 -1
  63. package/lib/cjs/content-fields/flow-text.d.ts +0 -1
  64. package/lib/cjs/content-fields/flow-text.js +5 -8
  65. package/lib/cjs/content-fields/flow-text.js.map +1 -1
  66. package/lib/cjs/content-fields/flow-video.d.ts +0 -1
  67. package/lib/cjs/content-fields/flow-video.js +2 -5
  68. package/lib/cjs/content-fields/flow-video.js.map +1 -1
  69. package/lib/cjs/content-fields/flow-webview.js +15 -18
  70. package/lib/cjs/content-fields/flow-webview.js.map +1 -1
  71. package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.d.ts +0 -1
  72. package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js +3 -6
  73. package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js.map +1 -1
  74. package/lib/cjs/content-fields/flow-whatsapp-template.d.ts +0 -1
  75. package/lib/cjs/content-fields/flow-whatsapp-template.js +6 -12
  76. package/lib/cjs/content-fields/flow-whatsapp-template.js.map +1 -1
  77. package/lib/cjs/content-fields/hubtype-fields/capture-user-input.d.ts +19 -0
  78. package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js +12 -0
  79. package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js.map +1 -0
  80. package/lib/cjs/content-fields/hubtype-fields/function.js +1 -1
  81. package/lib/cjs/content-fields/hubtype-fields/function.js.map +1 -1
  82. package/lib/cjs/content-fields/hubtype-fields/index.d.ts +1 -0
  83. package/lib/cjs/content-fields/hubtype-fields/index.js +1 -0
  84. package/lib/cjs/content-fields/hubtype-fields/index.js.map +1 -1
  85. package/lib/cjs/content-fields/hubtype-fields/node-types.d.ts +2 -1
  86. package/lib/cjs/content-fields/hubtype-fields/node-types.js +4 -3
  87. package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +1 -1
  88. package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +2 -1
  89. package/lib/cjs/content-fields/hubtype-fields/rating.js +1 -1
  90. package/lib/cjs/content-fields/hubtype-fields/rating.js.map +1 -1
  91. package/lib/cjs/content-fields/index.d.ts +3 -2
  92. package/lib/cjs/content-fields/index.js +3 -1
  93. package/lib/cjs/content-fields/index.js.map +1 -1
  94. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +2 -5
  95. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -1
  96. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +2 -5
  97. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -1
  98. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +0 -1
  99. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +3 -6
  100. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -1
  101. package/lib/cjs/filters/index.js +5 -8
  102. package/lib/cjs/filters/index.js.map +1 -1
  103. package/lib/cjs/flow-factory.js +49 -51
  104. package/lib/cjs/flow-factory.js.map +1 -1
  105. package/lib/cjs/functions/index.js +18 -21
  106. package/lib/cjs/functions/index.js.map +1 -1
  107. package/lib/cjs/helpers.js +1 -2
  108. package/lib/cjs/helpers.js.map +1 -1
  109. package/lib/cjs/index.js +68 -73
  110. package/lib/cjs/index.js.map +1 -1
  111. package/lib/cjs/services/hubtype-queues-api.js +10 -12
  112. package/lib/cjs/services/hubtype-queues-api.js.map +1 -1
  113. package/lib/cjs/tracking.d.ts +1 -1
  114. package/lib/cjs/tracking.js +33 -43
  115. package/lib/cjs/tracking.js.map +1 -1
  116. package/lib/cjs/types.js +2 -2
  117. package/lib/cjs/types.js.map +1 -1
  118. package/lib/cjs/user-input/capture-user-input-api.d.ts +20 -0
  119. package/lib/cjs/user-input/capture-user-input-api.js +84 -0
  120. package/lib/cjs/user-input/capture-user-input-api.js.map +1 -0
  121. package/lib/cjs/user-input/index.d.ts +1 -2
  122. package/lib/cjs/user-input/index.js +25 -24
  123. package/lib/cjs/user-input/index.js.map +1 -1
  124. package/lib/cjs/user-input/keyword.js +31 -36
  125. package/lib/cjs/user-input/keyword.js.map +1 -1
  126. package/lib/cjs/user-input/smart-intent.js +55 -59
  127. package/lib/cjs/user-input/smart-intent.js.map +1 -1
  128. package/lib/cjs/utils.js +7 -9
  129. package/lib/cjs/utils.js.map +1 -1
  130. package/lib/cjs/webview/contents-context.d.ts +0 -1
  131. package/lib/cjs/webview/types.js +1 -1
  132. package/lib/cjs/webview/types.js.map +1 -1
  133. package/lib/cjs/webview/use-webview-contents.js +10 -9
  134. package/lib/cjs/webview/use-webview-contents.js.map +1 -1
  135. package/lib/esm/action/ai-agent.js +61 -63
  136. package/lib/esm/action/ai-agent.js.map +1 -1
  137. package/lib/esm/action/fallback.js +32 -32
  138. package/lib/esm/action/fallback.js.map +1 -1
  139. package/lib/esm/action/first-interaction.js +69 -75
  140. package/lib/esm/action/first-interaction.js.map +1 -1
  141. package/lib/esm/action/index.js +93 -101
  142. package/lib/esm/action/index.js.map +1 -1
  143. package/lib/esm/action/knowledge-bases.js +71 -75
  144. package/lib/esm/action/knowledge-bases.js.map +1 -1
  145. package/lib/esm/action/payload.js +67 -72
  146. package/lib/esm/action/payload.js.map +1 -1
  147. package/lib/esm/api.d.ts +7 -2
  148. package/lib/esm/api.js +77 -51
  149. package/lib/esm/api.js.map +1 -1
  150. package/lib/esm/constants.d.ts +1 -1
  151. package/lib/esm/constants.js +17 -14
  152. package/lib/esm/constants.js.map +1 -1
  153. package/lib/esm/content-fields/content-fields-base.js +13 -12
  154. package/lib/esm/content-fields/content-fields-base.js.map +1 -1
  155. package/lib/esm/content-fields/flow-ai-agent.d.ts +0 -1
  156. package/lib/esm/content-fields/flow-ai-agent.js +18 -17
  157. package/lib/esm/content-fields/flow-ai-agent.js.map +1 -1
  158. package/lib/esm/content-fields/flow-bot-action.d.ts +0 -1
  159. package/lib/esm/content-fields/flow-bot-action.js +25 -24
  160. package/lib/esm/content-fields/flow-bot-action.js.map +1 -1
  161. package/lib/esm/content-fields/flow-button.d.ts +0 -1
  162. package/lib/esm/content-fields/flow-button.js +25 -27
  163. package/lib/esm/content-fields/flow-button.js.map +1 -1
  164. package/lib/esm/content-fields/flow-capture-user-input.d.ts +13 -0
  165. package/lib/esm/content-fields/flow-capture-user-input.js +43 -0
  166. package/lib/esm/content-fields/flow-capture-user-input.js.map +1 -0
  167. package/lib/esm/content-fields/flow-carousel.d.ts +0 -1
  168. package/lib/esm/content-fields/flow-carousel.js +39 -42
  169. package/lib/esm/content-fields/flow-carousel.js.map +1 -1
  170. package/lib/esm/content-fields/flow-channel-conditional.d.ts +0 -1
  171. package/lib/esm/content-fields/flow-channel-conditional.js +24 -23
  172. package/lib/esm/content-fields/flow-channel-conditional.js.map +1 -1
  173. package/lib/esm/content-fields/flow-country-conditional.d.ts +0 -1
  174. package/lib/esm/content-fields/flow-country-conditional.js +27 -27
  175. package/lib/esm/content-fields/flow-country-conditional.js.map +1 -1
  176. package/lib/esm/content-fields/flow-custom-conditional.js +30 -30
  177. package/lib/esm/content-fields/flow-custom-conditional.js.map +1 -1
  178. package/lib/esm/content-fields/flow-element.d.ts +0 -1
  179. package/lib/esm/content-fields/flow-element.js +16 -16
  180. package/lib/esm/content-fields/flow-element.js.map +1 -1
  181. package/lib/esm/content-fields/flow-go-to-flow.d.ts +0 -1
  182. package/lib/esm/content-fields/flow-go-to-flow.js +25 -24
  183. package/lib/esm/content-fields/flow-go-to-flow.js.map +1 -1
  184. package/lib/esm/content-fields/flow-handoff.d.ts +0 -1
  185. package/lib/esm/content-fields/flow-handoff.js +40 -42
  186. package/lib/esm/content-fields/flow-handoff.js.map +1 -1
  187. package/lib/esm/content-fields/flow-image.d.ts +0 -1
  188. package/lib/esm/content-fields/flow-image.js +12 -11
  189. package/lib/esm/content-fields/flow-image.js.map +1 -1
  190. package/lib/esm/content-fields/flow-knowledge-base.d.ts +0 -1
  191. package/lib/esm/content-fields/flow-knowledge-base.js +15 -14
  192. package/lib/esm/content-fields/flow-knowledge-base.js.map +1 -1
  193. package/lib/esm/content-fields/flow-queue-status-conditional.d.ts +0 -1
  194. package/lib/esm/content-fields/flow-queue-status-conditional.js +67 -73
  195. package/lib/esm/content-fields/flow-queue-status-conditional.js.map +1 -1
  196. package/lib/esm/content-fields/flow-rating.d.ts +0 -1
  197. package/lib/esm/content-fields/flow-rating.js +23 -22
  198. package/lib/esm/content-fields/flow-rating.js.map +1 -1
  199. package/lib/esm/content-fields/flow-text.d.ts +0 -1
  200. package/lib/esm/content-fields/flow-text.js +25 -24
  201. package/lib/esm/content-fields/flow-text.js.map +1 -1
  202. package/lib/esm/content-fields/flow-video.d.ts +0 -1
  203. package/lib/esm/content-fields/flow-video.js +12 -11
  204. package/lib/esm/content-fields/flow-video.js.map +1 -1
  205. package/lib/esm/content-fields/flow-webview.js +23 -22
  206. package/lib/esm/content-fields/flow-webview.js.map +1 -1
  207. package/lib/esm/content-fields/flow-whatsapp-cta-url-button.d.ts +0 -1
  208. package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js +31 -30
  209. package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js.map +1 -1
  210. package/lib/esm/content-fields/flow-whatsapp-template.d.ts +0 -1
  211. package/lib/esm/content-fields/flow-whatsapp-template.js +45 -47
  212. package/lib/esm/content-fields/flow-whatsapp-template.js.map +1 -1
  213. package/lib/esm/content-fields/hubtype-fields/ai-agent.js +2 -1
  214. package/lib/esm/content-fields/hubtype-fields/bot-action.js +2 -1
  215. package/lib/esm/content-fields/hubtype-fields/button.js +2 -1
  216. package/lib/esm/content-fields/hubtype-fields/capture-user-input.d.ts +19 -0
  217. package/lib/esm/content-fields/hubtype-fields/capture-user-input.js +12 -0
  218. package/lib/esm/content-fields/hubtype-fields/capture-user-input.js.map +1 -0
  219. package/lib/esm/content-fields/hubtype-fields/carousel.js +2 -1
  220. package/lib/esm/content-fields/hubtype-fields/channel-conditional.js +2 -1
  221. package/lib/esm/content-fields/hubtype-fields/common.js +2 -1
  222. package/lib/esm/content-fields/hubtype-fields/country-conditional.js +2 -1
  223. package/lib/esm/content-fields/hubtype-fields/custom-conditional.js +2 -1
  224. package/lib/esm/content-fields/hubtype-fields/fallback.js +2 -1
  225. package/lib/esm/content-fields/hubtype-fields/function.js +5 -2
  226. package/lib/esm/content-fields/hubtype-fields/function.js.map +1 -1
  227. package/lib/esm/content-fields/hubtype-fields/go-to-flow.js +2 -1
  228. package/lib/esm/content-fields/hubtype-fields/handoff.js +2 -1
  229. package/lib/esm/content-fields/hubtype-fields/image.js +2 -1
  230. package/lib/esm/content-fields/hubtype-fields/index.d.ts +1 -0
  231. package/lib/esm/content-fields/hubtype-fields/index.js +27 -23
  232. package/lib/esm/content-fields/hubtype-fields/index.js.map +1 -1
  233. package/lib/esm/content-fields/hubtype-fields/keyword.js +2 -1
  234. package/lib/esm/content-fields/hubtype-fields/knowledge-base.js +2 -1
  235. package/lib/esm/content-fields/hubtype-fields/node-types.d.ts +2 -1
  236. package/lib/esm/content-fields/hubtype-fields/node-types.js +10 -6
  237. package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -1
  238. package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +2 -1
  239. package/lib/esm/content-fields/hubtype-fields/nodes.js +2 -1
  240. package/lib/esm/content-fields/hubtype-fields/payload.js +2 -1
  241. package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js +2 -1
  242. package/lib/esm/content-fields/hubtype-fields/rating.js +5 -2
  243. package/lib/esm/content-fields/hubtype-fields/rating.js.map +1 -1
  244. package/lib/esm/content-fields/hubtype-fields/smart-intent.js +2 -1
  245. package/lib/esm/content-fields/hubtype-fields/text.js +2 -1
  246. package/lib/esm/content-fields/hubtype-fields/url.js +2 -1
  247. package/lib/esm/content-fields/hubtype-fields/video.js +2 -1
  248. package/lib/esm/content-fields/hubtype-fields/webview.js +2 -1
  249. package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js +2 -1
  250. package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js +2 -1
  251. package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js +2 -1
  252. package/lib/esm/content-fields/index.d.ts +3 -2
  253. package/lib/esm/content-fields/index.js +46 -22
  254. package/lib/esm/content-fields/index.js.map +1 -1
  255. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +10 -9
  256. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -1
  257. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +10 -9
  258. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -1
  259. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +0 -1
  260. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +18 -17
  261. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -1
  262. package/lib/esm/filters/index.js +10 -9
  263. package/lib/esm/filters/index.js.map +1 -1
  264. package/lib/esm/flow-factory.js +56 -54
  265. package/lib/esm/flow-factory.js.map +1 -1
  266. package/lib/esm/functions/index.js +24 -22
  267. package/lib/esm/functions/index.js.map +1 -1
  268. package/lib/esm/helpers.js +4 -1
  269. package/lib/esm/helpers.js.map +1 -1
  270. package/lib/esm/index.js +101 -99
  271. package/lib/esm/index.js.map +1 -1
  272. package/lib/esm/services/hubtype-queues-api.js +17 -15
  273. package/lib/esm/services/hubtype-queues-api.js.map +1 -1
  274. package/lib/esm/tracking.d.ts +1 -1
  275. package/lib/esm/tracking.js +42 -45
  276. package/lib/esm/tracking.js.map +1 -1
  277. package/lib/esm/types.js +7 -4
  278. package/lib/esm/types.js.map +1 -1
  279. package/lib/esm/user-input/capture-user-input-api.d.ts +20 -0
  280. package/lib/esm/user-input/capture-user-input-api.js +84 -0
  281. package/lib/esm/user-input/capture-user-input-api.js.map +1 -0
  282. package/lib/esm/user-input/index.d.ts +1 -2
  283. package/lib/esm/user-input/index.js +30 -25
  284. package/lib/esm/user-input/index.js.map +1 -1
  285. package/lib/esm/user-input/keyword.js +40 -41
  286. package/lib/esm/user-input/keyword.js.map +1 -1
  287. package/lib/esm/user-input/smart-intent.js +65 -65
  288. package/lib/esm/user-input/smart-intent.js.map +1 -1
  289. package/lib/esm/utils.js +22 -15
  290. package/lib/esm/utils.js.map +1 -1
  291. package/lib/esm/webview/contents-context.d.ts +0 -1
  292. package/lib/esm/webview/contents-context.js +6 -2
  293. package/lib/esm/webview/contents-context.js.map +1 -1
  294. package/lib/esm/webview/index.js +9 -3
  295. package/lib/esm/webview/index.js.map +1 -1
  296. package/lib/esm/webview/types.js +5 -2
  297. package/lib/esm/webview/types.js.map +1 -1
  298. package/lib/esm/webview/use-webview-contents.js +28 -23
  299. package/lib/esm/webview/use-webview-contents.js.map +1 -1
  300. package/package.json +2 -2
  301. package/src/api.ts +35 -1
  302. package/src/content-fields/flow-capture-user-input.tsx +45 -0
  303. package/src/content-fields/hubtype-fields/capture-user-input.ts +21 -0
  304. package/src/content-fields/hubtype-fields/index.ts +1 -0
  305. package/src/content-fields/hubtype-fields/node-types.ts +1 -0
  306. package/src/content-fields/hubtype-fields/nodes.ts +2 -0
  307. package/src/content-fields/index.ts +3 -0
  308. package/src/flow-factory.ts +4 -0
  309. package/src/index.ts +4 -3
  310. package/src/tracking.ts +2 -2
  311. package/src/user-input/capture-user-input-api.ts +134 -0
  312. package/src/user-input/index.ts +13 -8
@@ -1,52 +1,44 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCommonFlowContentEventArgsForContentId = exports.trackOneContent = exports.trackFlowContent = exports.trackEvent = void 0;
4
- const tslib_1 = require("tslib");
3
+ exports.trackEvent = trackEvent;
4
+ exports.trackFlowContent = trackFlowContent;
5
+ exports.trackOneContent = trackOneContent;
6
+ exports.getCommonFlowContentEventArgsForContentId = getCommonFlowContentEventArgsForContentId;
5
7
  const core_1 = require("@botonic/core");
6
8
  const uuid_1 = require("uuid");
7
9
  const hubtype_fields_1 = require("./content-fields/hubtype-fields");
8
10
  const helpers_1 = require("./helpers");
9
- function trackEvent(request, eventAction, args) {
10
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
- const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
12
- if (flowBuilderPlugin.trackEvent) {
13
- yield flowBuilderPlugin.trackEvent(request, eventAction, args);
14
- }
15
- return;
16
- });
11
+ async function trackEvent(request, eventAction, args) {
12
+ const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
13
+ if (flowBuilderPlugin.trackEvent) {
14
+ await flowBuilderPlugin.trackEvent(request, eventAction, args);
15
+ }
16
+ return;
17
17
  }
18
- exports.trackEvent = trackEvent;
19
- function trackFlowContent(request, contents) {
20
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
21
- const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
22
- const cmsApi = flowBuilderPlugin.cmsApi;
23
- for (const content of contents) {
24
- yield trackOneContent(request, content, cmsApi);
25
- }
26
- });
18
+ async function trackFlowContent(request, contents) {
19
+ const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
20
+ const cmsApi = flowBuilderPlugin.cmsApi;
21
+ for (const content of contents) {
22
+ await trackOneContent(request, content, cmsApi);
23
+ }
27
24
  }
28
- exports.trackFlowContent = trackFlowContent;
29
- function trackOneContent(request, content, cmsApi) {
30
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
31
- if (!cmsApi) {
32
- const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
33
- cmsApi = flowBuilderPlugin.cmsApi;
34
- }
35
- const nodeContent = cmsApi.getNodeById(content.id);
36
- if (nodeContent.type !== hubtype_fields_1.HtNodeWithContentType.KNOWLEDGE_BASE &&
37
- nodeContent.type !== hubtype_fields_1.HtNodeWithContentType.AI_AGENT) {
38
- const event = getContentEventArgs(request, nodeContent);
39
- const { action } = event, eventArgs = tslib_1.__rest(event, ["action"]);
40
- yield trackEvent(request, action, eventArgs);
41
- }
42
- });
25
+ async function trackOneContent(request, content, cmsApi) {
26
+ if (!cmsApi) {
27
+ const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
28
+ cmsApi = flowBuilderPlugin.cmsApi;
29
+ }
30
+ const nodeContent = cmsApi.getNodeById(content.id);
31
+ if (nodeContent.type !== hubtype_fields_1.HtNodeWithContentType.KNOWLEDGE_BASE &&
32
+ nodeContent.type !== hubtype_fields_1.HtNodeWithContentType.AI_AGENT) {
33
+ const event = getContentEventArgs(request, nodeContent);
34
+ const { action, ...eventArgs } = event;
35
+ await trackEvent(request, action, eventArgs);
36
+ }
43
37
  }
44
- exports.trackOneContent = trackOneContent;
45
38
  function setSessionFlowThreadId(request, flowThreadId) {
46
39
  request.session.flow_thread_id = flowThreadId;
47
40
  }
48
41
  function getContentEventArgs(request, nodeContent) {
49
- var _a;
50
42
  const { flowThreadId, flowId, flowName, flowNodeId, flowNodeContentId } = getCommonFlowContentEventArgs(request, nodeContent);
51
43
  setSessionFlowThreadId(request, flowThreadId);
52
44
  return {
@@ -56,27 +48,25 @@ function getContentEventArgs(request, nodeContent) {
56
48
  flowNodeId,
57
49
  flowNodeContentId,
58
50
  flowThreadId,
59
- flowNodeIsMeaningful: (_a = nodeContent.is_meaningful) !== null && _a !== void 0 ? _a : false,
51
+ flowNodeIsMeaningful: nodeContent.is_meaningful ?? false,
60
52
  };
61
53
  }
62
54
  function getCommonFlowContentEventArgs(request, nodeContent) {
63
- var _a, _b;
64
55
  const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
65
56
  const flowName = flowBuilderPlugin.getFlowName(nodeContent.flow_id);
66
- const flowThreadId = (_a = request.session.flow_thread_id) !== null && _a !== void 0 ? _a : (0, uuid_1.v7)();
57
+ const flowThreadId = request.session.flow_thread_id ?? (0, uuid_1.v7)();
67
58
  return {
68
59
  flowThreadId,
69
60
  flowId: nodeContent.flow_id,
70
61
  flowName,
71
62
  flowNodeId: nodeContent.id,
72
- flowNodeContentId: (_b = nodeContent.code) !== null && _b !== void 0 ? _b : '',
63
+ flowNodeContentId: nodeContent.code ?? '',
73
64
  };
74
65
  }
75
- function getCommonFlowContentEventArgsForContentId(request, contentId) {
66
+ function getCommonFlowContentEventArgsForContentId(request, id) {
76
67
  const flowBuilderPlugin = (0, helpers_1.getFlowBuilderPlugin)(request.plugins);
77
68
  const cmsApi = flowBuilderPlugin.cmsApi;
78
- const nodeContent = cmsApi.getNodeById(contentId);
69
+ const nodeContent = cmsApi.getNodeById(id);
79
70
  return getCommonFlowContentEventArgs(request, nodeContent);
80
71
  }
81
- exports.getCommonFlowContentEventArgsForContentId = getCommonFlowContentEventArgsForContentId;
82
72
  //# sourceMappingURL=tracking.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../src/tracking.ts"],"names":[],"mappings":"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"}
package/lib/cjs/types.js CHANGED
@@ -5,10 +5,10 @@ var ProcessEnvNodeEnvs;
5
5
  (function (ProcessEnvNodeEnvs) {
6
6
  ProcessEnvNodeEnvs["PRODUCTION"] = "production";
7
7
  ProcessEnvNodeEnvs["DEVELOPMENT"] = "development";
8
- })(ProcessEnvNodeEnvs = exports.ProcessEnvNodeEnvs || (exports.ProcessEnvNodeEnvs = {}));
8
+ })(ProcessEnvNodeEnvs || (exports.ProcessEnvNodeEnvs = ProcessEnvNodeEnvs = {}));
9
9
  var FlowBuilderJSONVersion;
10
10
  (function (FlowBuilderJSONVersion) {
11
11
  FlowBuilderJSONVersion["DRAFT"] = "draft";
12
12
  FlowBuilderJSONVersion["LATEST"] = "latest";
13
- })(FlowBuilderJSONVersion = exports.FlowBuilderJSONVersion || (exports.FlowBuilderJSONVersion = {}));
13
+ })(FlowBuilderJSONVersion || (exports.FlowBuilderJSONVersion = FlowBuilderJSONVersion = {}));
14
14
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAoFA,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,+CAAyB,CAAA;IACzB,iDAA2B,CAAA;AAC7B,CAAC,EAHW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAG7B;AAED,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;IACf,2CAAiB,CAAA;AACnB,CAAC,EAHW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAGjC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAoFA,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,+CAAyB,CAAA;IACzB,iDAA2B,CAAA;AAC7B,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;IACf,2CAAiB,CAAA;AACnB,CAAC,EAHW,sBAAsB,sCAAtB,sBAAsB,QAGjC"}
@@ -0,0 +1,20 @@
1
+ import { ActionRequest } from '@botonic/react';
2
+ import { FlowBuilderApi } from '../api';
3
+ import { HtCaptureUserInputNode } from '../content-fields/hubtype-fields';
4
+ interface AiCaptureResponseSuccess {
5
+ success: true;
6
+ value: string;
7
+ }
8
+ interface AiCaptureResponseFailure {
9
+ success: false;
10
+ }
11
+ type AiCaptureResponse = AiCaptureResponseSuccess | AiCaptureResponseFailure;
12
+ export declare class CaptureUserInputApi {
13
+ private cmsApi;
14
+ private request;
15
+ constructor(cmsApi: FlowBuilderApi, request: ActionRequest);
16
+ getNextNodeId(): Promise<string | undefined>;
17
+ getAiCaptureResponse(captureUserInputNode: HtCaptureUserInputNode): Promise<AiCaptureResponse>;
18
+ trackUserInputCapture(captureUserInputNode: HtCaptureUserInputNode, captureSuccess: boolean): Promise<void>;
19
+ }
20
+ export {};
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CaptureUserInputApi = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@botonic/core");
6
+ const axios_1 = tslib_1.__importDefault(require("axios"));
7
+ const content_fields_1 = require("../content-fields");
8
+ const hubtype_fields_1 = require("../content-fields/hubtype-fields");
9
+ const tracking_1 = require("../tracking");
10
+ const utils_1 = require("../utils");
11
+ class CaptureUserInputApi {
12
+ constructor(cmsApi, request) {
13
+ this.cmsApi = cmsApi;
14
+ this.request = request;
15
+ }
16
+ async getNextNodeId() {
17
+ if ((0, utils_1.inputHasTextData)(this.request.input) &&
18
+ this.cmsApi.shouldCaptureUserInput()) {
19
+ const captureUserInputNode = this.cmsApi.getCaptureUserInputNode();
20
+ if (!captureUserInputNode) {
21
+ return undefined;
22
+ }
23
+ const captureUserInput = content_fields_1.FlowCaptureUserInput.fromHubtypeCMS(captureUserInputNode);
24
+ if (captureUserInput.aiValidationType === hubtype_fields_1.HtAiValidationType.NONE) {
25
+ this.cmsApi.setUserExtraDataVariable(captureUserInputNode.content.field_name, this.request.input.data);
26
+ await this.trackUserInputCapture(captureUserInputNode, true);
27
+ return captureUserInput.captureSuccessId;
28
+ }
29
+ const aiCaptureResponse = await this.getAiCaptureResponse(captureUserInputNode);
30
+ if (!aiCaptureResponse.success) {
31
+ await this.trackUserInputCapture(captureUserInputNode, false);
32
+ return captureUserInput.captureFailId;
33
+ }
34
+ this.cmsApi.setUserExtraDataVariable(captureUserInputNode.content.field_name, aiCaptureResponse.value);
35
+ await this.trackUserInputCapture(captureUserInputNode, true);
36
+ return captureUserInput.captureSuccessId;
37
+ }
38
+ return undefined;
39
+ }
40
+ async getAiCaptureResponse(captureUserInputNode) {
41
+ try {
42
+ const url = `${process.env.HUBTYPE_API_URL}/external/v1/capture_user_input/`;
43
+ const data = {
44
+ field_name: captureUserInputNode.content.field_name,
45
+ validation_instructions: captureUserInputNode.content.ai_validation_instructions,
46
+ user_input: this.request.input.data,
47
+ };
48
+ const config = {
49
+ headers: {
50
+ 'Content-Type': 'application/json',
51
+ Authorization: `Bearer ${this.request.session._access_token}`,
52
+ },
53
+ };
54
+ const aiCaptureResponse = await axios_1.default.post(url, data, config);
55
+ return aiCaptureResponse.data;
56
+ }
57
+ catch (error) {
58
+ console.warn('Error getting ai/capture_user_input', error);
59
+ }
60
+ return {
61
+ success: false,
62
+ };
63
+ }
64
+ async trackUserInputCapture(captureUserInputNode, captureSuccess) {
65
+ const { flowThreadId, flowId, flowName, flowNodeId, flowNodeContentId } = (0, tracking_1.getCommonFlowContentEventArgsForContentId)(this.request, captureUserInputNode.id);
66
+ const event = {
67
+ action: core_1.EventAction.CaptureUserInput,
68
+ flowThreadId,
69
+ flowId,
70
+ flowName,
71
+ flowNodeId,
72
+ flowNodeContentId,
73
+ flowNodeIsMeaningful: false,
74
+ fieldName: captureUserInputNode.content.field_name,
75
+ userInput: this.request.input.data,
76
+ captureSuccess,
77
+ messageId: this.request.input.message_id,
78
+ };
79
+ const { action, ...eventArgs } = event;
80
+ await (0, tracking_1.trackEvent)(this.request, action, eventArgs);
81
+ }
82
+ }
83
+ exports.CaptureUserInputApi = CaptureUserInputApi;
84
+ //# sourceMappingURL=capture-user-input-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-user-input-api.js","sourceRoot":"","sources":["../../../src/user-input/capture-user-input-api.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { ActionRequest } from '@botonic/react';
2
2
  import { FlowBuilderApi } from '../api';
3
- import { HtKeywordNode, HtSmartIntentNode } from '../content-fields/hubtype-fields';
4
3
  import { SmartIntentsInferenceConfig } from './smart-intent';
5
- export declare function getNodeByUserInput(cmsApi: FlowBuilderApi, locale: string, request: ActionRequest, smartIntentsConfig: SmartIntentsInferenceConfig): Promise<HtSmartIntentNode | HtKeywordNode | undefined>;
4
+ export declare function getNextPayloadByUserInput(cmsApi: FlowBuilderApi, locale: string, request: ActionRequest, smartIntentsConfig: SmartIntentsInferenceConfig): Promise<string | undefined>;
@@ -1,34 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNodeByUserInput = void 0;
4
- const tslib_1 = require("tslib");
3
+ exports.getNextPayloadByUserInput = getNextPayloadByUserInput;
5
4
  const utils_1 = require("../utils");
5
+ const capture_user_input_api_1 = require("./capture-user-input-api");
6
6
  const keyword_1 = require("./keyword");
7
7
  const smart_intent_1 = require("./smart-intent");
8
- function getNodeByUserInput(cmsApi, locale, request, smartIntentsConfig) {
9
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
- if ((0, utils_1.inputHasTextData)(request.input)) {
11
- if ((0, utils_1.isKeywordsAllowed)(request)) {
12
- const keywordMatcher = new keyword_1.KeywordMatcher({
13
- cmsApi,
14
- locale,
15
- request,
16
- });
17
- const keywordNode = yield keywordMatcher.getNodeByInput(request.input.data);
18
- if (keywordNode) {
19
- return keywordNode;
20
- }
8
+ async function getNextPayloadByUserInput(cmsApi, locale, request, smartIntentsConfig) {
9
+ if ((0, utils_1.inputHasTextData)(request.input)) {
10
+ if (cmsApi.shouldCaptureUserInput()) {
11
+ const captureUserInputApi = new capture_user_input_api_1.CaptureUserInputApi(cmsApi, request);
12
+ return await captureUserInputApi.getNextNodeId();
13
+ }
14
+ if ((0, utils_1.isKeywordsAllowed)(request)) {
15
+ const keywordMatcher = new keyword_1.KeywordMatcher({
16
+ cmsApi,
17
+ locale,
18
+ request,
19
+ });
20
+ const keywordNode = await keywordMatcher.getNodeByInput(request.input.data);
21
+ if (keywordNode) {
22
+ return cmsApi.getPayload(keywordNode.target);
21
23
  }
22
- if ((0, utils_1.isSmartIntentsAllowed)(request)) {
23
- const smartIntentsApi = new smart_intent_1.SmartIntentsApi(cmsApi, request, smartIntentsConfig);
24
- const smartIntentNode = yield smartIntentsApi.getNodeByInput();
25
- if (smartIntentNode) {
26
- return smartIntentNode;
27
- }
24
+ }
25
+ if ((0, utils_1.isSmartIntentsAllowed)(request)) {
26
+ const smartIntentsApi = new smart_intent_1.SmartIntentsApi(cmsApi, request, smartIntentsConfig);
27
+ const smartIntentNode = await smartIntentsApi.getNodeByInput();
28
+ if (smartIntentNode) {
29
+ return cmsApi.getPayload(smartIntentNode.target);
28
30
  }
29
31
  }
30
- return undefined;
31
- });
32
+ }
33
+ return undefined;
32
34
  }
33
- exports.getNodeByUserInput = getNodeByUserInput;
34
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user-input/index.ts"],"names":[],"mappings":";;;;AAOA,oCAIiB;AACjB,uCAA0C;AAC1C,iDAA6E;AAE7E,SAAsB,kBAAkB,CACtC,MAAsB,EACtB,MAAc,EACd,OAAsB,EACtB,kBAA+C;;QAE/C,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI,IAAA,yBAAiB,EAAC,OAAO,CAAC,EAAE;gBAC9B,MAAM,cAAc,GAAG,IAAI,wBAAc,CAAC;oBACxC,MAAM;oBACN,MAAM;oBACN,OAAO;iBACR,CAAC,CAAA;gBACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,cAAc,CACrD,OAAO,CAAC,KAAK,CAAC,IAAK,CACpB,CAAA;gBACD,IAAI,WAAW,EAAE;oBACf,OAAO,WAAW,CAAA;iBACnB;aACF;YAED,IAAI,IAAA,6BAAqB,EAAC,OAAO,CAAC,EAAE;gBAClC,MAAM,eAAe,GAAG,IAAI,8BAAe,CACzC,MAAM,EACN,OAAO,EACP,kBAAkB,CACnB,CAAA;gBACD,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,CAAA;gBAC9D,IAAI,eAAe,EAAE;oBACnB,OAAO,eAAe,CAAA;iBACvB;aACF;SACF;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CAAA;AAnCD,gDAmCC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/user-input/index.ts"],"names":[],"mappings":";;AAYA,8DA2CC;AApDD,oCAIiB;AACjB,qEAA8D;AAC9D,uCAA0C;AAC1C,iDAA6E;AAEtE,KAAK,UAAU,yBAAyB,CAC7C,MAAsB,EACtB,MAAc,EACd,OAAsB,EACtB,kBAA+C;IAE/C,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,sBAAsB,EAAE,EAAE,CAAC;YACpC,MAAM,mBAAmB,GAAG,IAAI,4CAAmB,CACjD,MAAM,EACN,OAAmC,CACpC,CAAA;YACD,OAAO,MAAM,mBAAmB,CAAC,aAAa,EAAE,CAAA;QAClD,CAAC;QAED,IAAI,IAAA,yBAAiB,EAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,IAAI,wBAAc,CAAC;gBACxC,MAAM;gBACN,MAAM;gBACN,OAAO;aACR,CAAC,CAAA;YACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,cAAc,CACrD,OAAO,CAAC,KAAK,CAAC,IAAK,CACpB,CAAA;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,IAAA,6BAAqB,EAAC,OAAO,CAAC,EAAE,CAAC;YACnC,MAAM,eAAe,GAAG,IAAI,8BAAe,CACzC,MAAM,EACN,OAAO,EACP,kBAAkB,CACnB,CAAA;YACD,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,cAAc,EAAE,CAAA;YAC9D,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KeywordMatcher = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const core_1 = require("@botonic/core");
6
5
  const constants_1 = require("../constants");
7
6
  const tracking_1 = require("../tracking");
@@ -12,26 +11,24 @@ class KeywordMatcher {
12
11
  this.request = request;
13
12
  this.isRegExp = false;
14
13
  }
15
- getNodeByInput(userInput) {
16
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
17
- const keywordNodes = this.cmsApi.getKeywordNodes();
18
- const keywordNode = this.getNodeByKeyword(userInput, keywordNodes);
19
- if (!keywordNode || !this.matchedKeyword) {
20
- return undefined;
21
- }
22
- const targetPayload = this.cmsApi.getPayload(keywordNode.target);
23
- this.request.input.nluResolution = {
24
- type: core_1.NluType.Keyword,
25
- matchedValue: this.matchedKeyword,
26
- payload: targetPayload,
27
- };
28
- yield this.trackKeywordEvent();
29
- return keywordNode;
30
- });
14
+ async getNodeByInput(userInput) {
15
+ const keywordNodes = this.cmsApi.getKeywordNodes();
16
+ const keywordNode = this.getNodeByKeyword(userInput, keywordNodes);
17
+ if (!keywordNode || !this.matchedKeyword) {
18
+ return undefined;
19
+ }
20
+ const targetPayload = this.cmsApi.getPayload(keywordNode.target);
21
+ this.request.input.nluResolution = {
22
+ type: core_1.NluType.Keyword,
23
+ matchedValue: this.matchedKeyword,
24
+ payload: targetPayload,
25
+ };
26
+ await this.trackKeywordEvent();
27
+ return keywordNode;
31
28
  }
32
29
  getNodeByKeyword(userInput, keywordNodes) {
33
30
  const matchedKeywordNode = keywordNodes.find(node => this.matchKeywords(userInput, node));
34
- return (matchedKeywordNode === null || matchedKeywordNode === void 0 ? void 0 : matchedKeywordNode.target) ? matchedKeywordNode : undefined;
31
+ return matchedKeywordNode?.target ? matchedKeywordNode : undefined;
35
32
  }
36
33
  matchKeywords(userInput, node) {
37
34
  const result = node.content.keywords.find(keywords => {
@@ -64,24 +61,22 @@ class KeywordMatcher {
64
61
  const [, pattern, flags] = regExpMatchArray;
65
62
  return new RegExp(pattern, flags);
66
63
  }
67
- trackKeywordEvent() {
68
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
69
- const { flowId, flowName, flowNodeId, flowNodeContentId } = (0, tracking_1.getCommonFlowContentEventArgsForContentId)(this.request, this.keywordNodeId);
70
- const event = {
71
- action: core_1.EventAction.Keyword,
72
- flowNodeId,
73
- flowId,
74
- flowName,
75
- flowNodeContentId,
76
- flowThreadId: this.request.session.flow_thread_id,
77
- nluKeywordName: this.matchedKeyword,
78
- nluKeywordIsRegex: this.isRegExp,
79
- nluKeywordMessageId: this.request.input.message_id,
80
- userInput: this.request.input.data,
81
- };
82
- const { action } = event, eventArgs = tslib_1.__rest(event, ["action"]);
83
- yield (0, tracking_1.trackEvent)(this.request, action, eventArgs);
84
- });
64
+ async trackKeywordEvent() {
65
+ const { flowId, flowName, flowNodeId, flowNodeContentId } = (0, tracking_1.getCommonFlowContentEventArgsForContentId)(this.request, this.keywordNodeId);
66
+ const event = {
67
+ action: core_1.EventAction.Keyword,
68
+ flowNodeId,
69
+ flowId,
70
+ flowName,
71
+ flowNodeContentId,
72
+ flowThreadId: this.request.session.flow_thread_id,
73
+ nluKeywordName: this.matchedKeyword,
74
+ nluKeywordIsRegex: this.isRegExp,
75
+ nluKeywordMessageId: this.request.input.message_id,
76
+ userInput: this.request.input.data,
77
+ };
78
+ const { action, ...eventArgs } = event;
79
+ await (0, tracking_1.trackEvent)(this.request, action, eventArgs);
85
80
  }
86
81
  }
87
82
  exports.KeywordMatcher = KeywordMatcher;
@@ -1 +1 @@
1
- {"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/user-input/keyword.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyword.js","sourceRoot":"","sources":["../../../src/user-input/keyword.ts"],"names":[],"mappings":"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"}
@@ -13,72 +13,68 @@ class SmartIntentsApi {
13
13
  this.smartIntentsConfig = smartIntentsConfig;
14
14
  this.flowId = flowId;
15
15
  }
16
- getNodeByInput() {
17
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
18
- if (!this.currentRequest.input.data)
19
- return undefined;
20
- const smartIntentNodes = this.cmsApi.getSmartIntentNodes();
21
- if (!smartIntentNodes.length)
22
- return undefined;
23
- const params = {
24
- bot_id: this.currentRequest.session.bot.id,
25
- text: this.currentRequest.input.data,
26
- num_smart_intents_to_use: this.smartIntentsConfig.numSmartIntentsToUse,
27
- use_latest: this.resolveUseLatest(),
28
- };
29
- try {
30
- const response = yield this.getInference(params);
31
- const smartIntentNode = smartIntentNodes.find(smartIntentNode => smartIntentNode.content.title === response.data.smart_intent_title);
32
- if (smartIntentNode) {
33
- const targetPayload = this.cmsApi.getPayload(smartIntentNode.target);
34
- this.currentRequest.input.nluResolution = {
35
- type: core_1.NluType.SmartIntent,
36
- matchedValue: smartIntentNode.content.title,
37
- payload: targetPayload,
38
- };
39
- const { flowId, flowName, flowNodeId, flowNodeContentId } = (0, tracking_1.getCommonFlowContentEventArgsForContentId)(this.currentRequest, smartIntentNode.id);
40
- const event = {
41
- action: core_1.EventAction.IntentSmart,
42
- nluIntentSmartTitle: response.data.smart_intent_title,
43
- nluIntentSmartNumUsed: response.data.smart_intents_used.length,
44
- nluIntentSmartMessageId: this.currentRequest.input.message_id,
45
- userInput: this.currentRequest.input.data,
46
- flowThreadId: this.currentRequest.session.flow_thread_id,
47
- flowId,
48
- flowName,
49
- flowNodeContentId,
50
- flowNodeId,
51
- };
52
- const { action } = event, eventArgs = tslib_1.__rest(event, ["action"]);
53
- yield (0, tracking_1.trackEvent)(this.currentRequest, action, eventArgs);
54
- return smartIntentNode;
55
- }
56
- }
57
- catch (e) {
58
- console.error(e);
59
- }
16
+ async getNodeByInput() {
17
+ if (!this.currentRequest.input.data)
60
18
  return undefined;
61
- });
19
+ const smartIntentNodes = this.cmsApi.getSmartIntentNodes();
20
+ if (!smartIntentNodes.length)
21
+ return undefined;
22
+ const params = {
23
+ bot_id: this.currentRequest.session.bot.id,
24
+ text: this.currentRequest.input.data,
25
+ num_smart_intents_to_use: this.smartIntentsConfig.numSmartIntentsToUse,
26
+ use_latest: this.resolveUseLatest(),
27
+ };
28
+ try {
29
+ const response = await this.getInference(params);
30
+ const smartIntentNode = smartIntentNodes.find(smartIntentNode => smartIntentNode.content.title === response.data.smart_intent_title);
31
+ if (smartIntentNode) {
32
+ const targetPayload = this.cmsApi.getPayload(smartIntentNode.target);
33
+ this.currentRequest.input.nluResolution = {
34
+ type: core_1.NluType.SmartIntent,
35
+ matchedValue: smartIntentNode.content.title,
36
+ payload: targetPayload,
37
+ };
38
+ const { flowId, flowName, flowNodeId, flowNodeContentId } = (0, tracking_1.getCommonFlowContentEventArgsForContentId)(this.currentRequest, smartIntentNode.id);
39
+ const event = {
40
+ action: core_1.EventAction.IntentSmart,
41
+ nluIntentSmartTitle: response.data.smart_intent_title,
42
+ nluIntentSmartNumUsed: response.data.smart_intents_used.length,
43
+ nluIntentSmartMessageId: this.currentRequest.input.message_id,
44
+ userInput: this.currentRequest.input.data,
45
+ flowThreadId: this.currentRequest.session.flow_thread_id,
46
+ flowId,
47
+ flowName,
48
+ flowNodeContentId,
49
+ flowNodeId,
50
+ };
51
+ const { action, ...eventArgs } = event;
52
+ await (0, tracking_1.trackEvent)(this.currentRequest, action, eventArgs);
53
+ return smartIntentNode;
54
+ }
55
+ }
56
+ catch (e) {
57
+ console.error(e);
58
+ }
59
+ return undefined;
62
60
  }
63
61
  resolveUseLatest() {
64
62
  if (this.currentRequest.session.is_test_integration)
65
63
  return false;
66
64
  return this.smartIntentsConfig.useLatest;
67
65
  }
68
- getInference(inferenceParams) {
69
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
70
- const pluginFlowBuilder = (0, helpers_1.getFlowBuilderPlugin)(this.currentRequest.plugins);
71
- const token = pluginFlowBuilder.getAccessToken(this.currentRequest.session);
72
- return yield (0, axios_1.default)({
73
- method: 'POST',
74
- url: `${process.env.HUBTYPE_API_URL}/external/v2/ai/smart_intents/inference/`,
75
- headers: {
76
- Authorization: `Bearer ${token}`,
77
- 'Content-Type': 'application/json',
78
- },
79
- data: inferenceParams,
80
- timeout: 10000,
81
- });
66
+ async getInference(inferenceParams) {
67
+ const pluginFlowBuilder = (0, helpers_1.getFlowBuilderPlugin)(this.currentRequest.plugins);
68
+ const token = pluginFlowBuilder.getAccessToken(this.currentRequest.session);
69
+ return await (0, axios_1.default)({
70
+ method: 'POST',
71
+ url: `${process.env.HUBTYPE_API_URL}/external/v2/ai/smart_intents/inference/`,
72
+ headers: {
73
+ Authorization: `Bearer ${token}`,
74
+ 'Content-Type': 'application/json',
75
+ },
76
+ data: inferenceParams,
77
+ timeout: 10000,
82
78
  });
83
79
  }
84
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"smart-intent.js","sourceRoot":"","sources":["../../../src/user-input/smart-intent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-intent.js","sourceRoot":"","sources":["../../../src/user-input/smart-intent.ts"],"names":[],"mappings":"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"}