@botonic/plugin-flow-builder 0.57.0-rslib-esm.2 → 0.57.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 (905) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/action/ai-agent-from-user-input.d.ts +3 -0
  3. package/lib/cjs/action/ai-agent-from-user-input.js +38 -0
  4. package/lib/cjs/action/ai-agent-from-user-input.js.map +1 -0
  5. package/lib/cjs/action/context.d.ts +11 -0
  6. package/lib/cjs/action/context.js +17 -0
  7. package/lib/cjs/action/context.js.map +1 -0
  8. package/lib/cjs/action/fallback.d.ts +3 -0
  9. package/lib/cjs/action/fallback.js +36 -0
  10. package/lib/cjs/action/fallback.js.map +1 -0
  11. package/lib/cjs/action/first-interaction.d.ts +3 -0
  12. package/lib/cjs/action/first-interaction.js +93 -0
  13. package/lib/cjs/action/first-interaction.js.map +1 -0
  14. package/lib/cjs/action/get-contents.d.ts +3 -0
  15. package/lib/cjs/action/get-contents.js +44 -0
  16. package/lib/cjs/action/get-contents.js.map +1 -0
  17. package/lib/cjs/action/index.d.ts +25 -0
  18. package/lib/cjs/action/index.js +95 -0
  19. package/lib/cjs/action/index.js.map +1 -0
  20. package/lib/cjs/action/payload.d.ts +3 -0
  21. package/lib/cjs/action/payload.js +74 -0
  22. package/lib/cjs/action/payload.js.map +1 -0
  23. package/lib/cjs/api.d.ts +45 -0
  24. package/lib/cjs/api.js +227 -0
  25. package/lib/cjs/api.js.map +1 -0
  26. package/lib/cjs/bot-context-manager.d.ts +17 -0
  27. package/lib/cjs/bot-context-manager.js +93 -0
  28. package/lib/cjs/bot-context-manager.js.map +1 -0
  29. package/lib/cjs/constants.d.ts +14 -0
  30. package/lib/cjs/constants.js +20 -0
  31. package/lib/cjs/constants.js.map +1 -0
  32. package/lib/cjs/content-fields/contact-reasons-conditional-matcher.d.ts +4 -0
  33. package/lib/cjs/content-fields/contact-reasons-conditional-matcher.js +12 -0
  34. package/lib/cjs/content-fields/contact-reasons-conditional-matcher.js.map +1 -0
  35. package/lib/cjs/content-fields/content-fields-base.d.ts +20 -0
  36. package/lib/cjs/content-fields/content-fields-base.js +74 -0
  37. package/lib/cjs/content-fields/content-fields-base.js.map +1 -0
  38. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +15 -0
  39. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +71 -0
  40. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +1 -0
  41. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +9 -0
  42. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js +58 -0
  43. package/lib/cjs/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +1 -0
  44. package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +17 -0
  45. package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js +79 -0
  46. package/lib/cjs/content-fields/custom-conditional/flow-custom-condition-v2.js.map +1 -0
  47. package/lib/cjs/content-fields/flow-ai-agent-base.d.ts +25 -0
  48. package/lib/cjs/content-fields/flow-ai-agent-base.js +97 -0
  49. package/lib/cjs/content-fields/flow-ai-agent-base.js.map +1 -0
  50. package/lib/cjs/content-fields/flow-ai-agent-router.d.ts +21 -0
  51. package/lib/cjs/content-fields/flow-ai-agent-router.js +126 -0
  52. package/lib/cjs/content-fields/flow-ai-agent-router.js.map +1 -0
  53. package/lib/cjs/content-fields/flow-ai-agent.d.ts +17 -0
  54. package/lib/cjs/content-fields/flow-ai-agent.js +65 -0
  55. package/lib/cjs/content-fields/flow-ai-agent.js.map +1 -0
  56. package/lib/cjs/content-fields/flow-bot-action.d.ts +14 -0
  57. package/lib/cjs/content-fields/flow-bot-action.js +45 -0
  58. package/lib/cjs/content-fields/flow-bot-action.js.map +1 -0
  59. package/lib/cjs/content-fields/flow-button.d.ts +31 -0
  60. package/lib/cjs/content-fields/flow-button.js +86 -0
  61. package/lib/cjs/content-fields/flow-button.js.map +1 -0
  62. package/lib/cjs/content-fields/flow-capture-user-input.d.ts +14 -0
  63. package/lib/cjs/content-fields/flow-capture-user-input.js +45 -0
  64. package/lib/cjs/content-fields/flow-capture-user-input.js.map +1 -0
  65. package/lib/cjs/content-fields/flow-carousel.d.ts +22 -0
  66. package/lib/cjs/content-fields/flow-carousel.js +152 -0
  67. package/lib/cjs/content-fields/flow-carousel.js.map +1 -0
  68. package/lib/cjs/content-fields/flow-channel-conditional.d.ts +14 -0
  69. package/lib/cjs/content-fields/flow-channel-conditional.js +57 -0
  70. package/lib/cjs/content-fields/flow-channel-conditional.js.map +1 -0
  71. package/lib/cjs/content-fields/flow-contact-reasons-conditional.d.ts +14 -0
  72. package/lib/cjs/content-fields/flow-contact-reasons-conditional.js +65 -0
  73. package/lib/cjs/content-fields/flow-contact-reasons-conditional.js.map +1 -0
  74. package/lib/cjs/content-fields/flow-country-conditional.d.ts +13 -0
  75. package/lib/cjs/content-fields/flow-country-conditional.js +59 -0
  76. package/lib/cjs/content-fields/flow-country-conditional.js.map +1 -0
  77. package/lib/cjs/content-fields/flow-custom-conditional.d.ts +17 -0
  78. package/lib/cjs/content-fields/flow-custom-conditional.js +89 -0
  79. package/lib/cjs/content-fields/flow-custom-conditional.js.map +1 -0
  80. package/lib/cjs/content-fields/flow-do-nothing.d.ts +9 -0
  81. package/lib/cjs/content-fields/flow-do-nothing.js +27 -0
  82. package/lib/cjs/content-fields/flow-do-nothing.js.map +1 -0
  83. package/lib/cjs/content-fields/flow-element.d.ts +22 -0
  84. package/lib/cjs/content-fields/flow-element.js +50 -0
  85. package/lib/cjs/content-fields/flow-element.js.map +1 -0
  86. package/lib/cjs/content-fields/flow-go-to-flow.d.ts +13 -0
  87. package/lib/cjs/content-fields/flow-go-to-flow.js +51 -0
  88. package/lib/cjs/content-fields/flow-go-to-flow.js.map +1 -0
  89. package/lib/cjs/content-fields/flow-handoff.d.ts +23 -0
  90. package/lib/cjs/content-fields/flow-handoff.js +104 -0
  91. package/lib/cjs/content-fields/flow-handoff.js.map +1 -0
  92. package/lib/cjs/content-fields/flow-image.d.ts +10 -0
  93. package/lib/cjs/content-fields/flow-image.js +33 -0
  94. package/lib/cjs/content-fields/flow-image.js.map +1 -0
  95. package/lib/cjs/content-fields/flow-queue-status-conditional.d.ts +30 -0
  96. package/lib/cjs/content-fields/flow-queue-status-conditional.js +95 -0
  97. package/lib/cjs/content-fields/flow-queue-status-conditional.js.map +1 -0
  98. package/lib/cjs/content-fields/flow-rating.d.ts +15 -0
  99. package/lib/cjs/content-fields/flow-rating.js +66 -0
  100. package/lib/cjs/content-fields/flow-rating.js.map +1 -0
  101. package/lib/cjs/content-fields/flow-text.d.ts +15 -0
  102. package/lib/cjs/content-fields/flow-text.js +60 -0
  103. package/lib/cjs/content-fields/flow-text.js.map +1 -0
  104. package/lib/cjs/content-fields/flow-video.d.ts +10 -0
  105. package/lib/cjs/content-fields/flow-video.js +33 -0
  106. package/lib/cjs/content-fields/flow-video.js.map +1 -0
  107. package/lib/cjs/content-fields/flow-webview.d.ts +16 -0
  108. package/lib/cjs/content-fields/flow-webview.js +78 -0
  109. package/lib/cjs/content-fields/flow-webview.js.map +1 -0
  110. package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.d.ts +21 -0
  111. package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js +92 -0
  112. package/lib/cjs/content-fields/flow-whatsapp-cta-url-button.js.map +1 -0
  113. package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.d.ts +11 -0
  114. package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.js +46 -0
  115. package/lib/cjs/content-fields/flow-whatsapp-request-contact-info.js.map +1 -0
  116. package/lib/cjs/content-fields/flow-whatsapp-template.d.ts +37 -0
  117. package/lib/cjs/content-fields/flow-whatsapp-template.js +264 -0
  118. package/lib/cjs/content-fields/flow-whatsapp-template.js.map +1 -0
  119. package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.d.ts +21 -0
  120. package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js +3 -0
  121. package/lib/cjs/content-fields/hubtype-fields/ai-agent-router.js.map +1 -0
  122. package/lib/cjs/content-fields/hubtype-fields/ai-agent.d.ts +25 -0
  123. package/lib/cjs/content-fields/hubtype-fields/ai-agent.js +3 -0
  124. package/lib/cjs/content-fields/hubtype-fields/ai-agent.js.map +1 -0
  125. package/lib/cjs/content-fields/hubtype-fields/bot-action.d.ts +10 -0
  126. package/lib/cjs/content-fields/hubtype-fields/bot-action.js +3 -0
  127. package/lib/cjs/content-fields/hubtype-fields/bot-action.js.map +1 -0
  128. package/lib/cjs/content-fields/hubtype-fields/button.d.ts +8 -0
  129. package/lib/cjs/content-fields/hubtype-fields/button.js +3 -0
  130. package/lib/cjs/content-fields/hubtype-fields/button.js.map +1 -0
  131. package/lib/cjs/content-fields/hubtype-fields/capture-user-input.d.ts +19 -0
  132. package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js +12 -0
  133. package/lib/cjs/content-fields/hubtype-fields/capture-user-input.js.map +1 -0
  134. package/lib/cjs/content-fields/hubtype-fields/carousel.d.ts +17 -0
  135. package/lib/cjs/content-fields/hubtype-fields/carousel.js +3 -0
  136. package/lib/cjs/content-fields/hubtype-fields/carousel.js.map +1 -0
  137. package/lib/cjs/content-fields/hubtype-fields/channel-conditional.d.ts +10 -0
  138. package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js +3 -0
  139. package/lib/cjs/content-fields/hubtype-fields/channel-conditional.js.map +1 -0
  140. package/lib/cjs/content-fields/hubtype-fields/common.d.ts +83 -0
  141. package/lib/cjs/content-fields/hubtype-fields/common.js +3 -0
  142. package/lib/cjs/content-fields/hubtype-fields/common.js.map +1 -0
  143. package/lib/cjs/content-fields/hubtype-fields/contact-reasons-conditional.d.ts +16 -0
  144. package/lib/cjs/content-fields/hubtype-fields/contact-reasons-conditional.js +3 -0
  145. package/lib/cjs/content-fields/hubtype-fields/contact-reasons-conditional.js.map +1 -0
  146. package/lib/cjs/content-fields/hubtype-fields/country-conditional.d.ts +10 -0
  147. package/lib/cjs/content-fields/hubtype-fields/country-conditional.js +3 -0
  148. package/lib/cjs/content-fields/hubtype-fields/country-conditional.js.map +1 -0
  149. package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.d.ts +56 -0
  150. package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js +36 -0
  151. package/lib/cjs/content-fields/hubtype-fields/custom-conditional-v2.js.map +1 -0
  152. package/lib/cjs/content-fields/hubtype-fields/custom-conditional.d.ts +11 -0
  153. package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js +3 -0
  154. package/lib/cjs/content-fields/hubtype-fields/custom-conditional.js.map +1 -0
  155. package/lib/cjs/content-fields/hubtype-fields/do-nothing.d.ts +6 -0
  156. package/lib/cjs/content-fields/hubtype-fields/do-nothing.js +3 -0
  157. package/lib/cjs/content-fields/hubtype-fields/do-nothing.js.map +1 -0
  158. package/lib/cjs/content-fields/hubtype-fields/fallback.d.ts +9 -0
  159. package/lib/cjs/content-fields/hubtype-fields/fallback.js +3 -0
  160. package/lib/cjs/content-fields/hubtype-fields/fallback.js.map +1 -0
  161. package/lib/cjs/content-fields/hubtype-fields/function.d.ts +30 -0
  162. package/lib/cjs/content-fields/hubtype-fields/function.js +11 -0
  163. package/lib/cjs/content-fields/hubtype-fields/function.js.map +1 -0
  164. package/lib/cjs/content-fields/hubtype-fields/go-to-flow.d.ts +9 -0
  165. package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js +3 -0
  166. package/lib/cjs/content-fields/hubtype-fields/go-to-flow.js.map +1 -0
  167. package/lib/cjs/content-fields/hubtype-fields/handoff.d.ts +21 -0
  168. package/lib/cjs/content-fields/hubtype-fields/handoff.js +10 -0
  169. package/lib/cjs/content-fields/hubtype-fields/handoff.js.map +1 -0
  170. package/lib/cjs/content-fields/hubtype-fields/image.d.ts +8 -0
  171. package/lib/cjs/content-fields/hubtype-fields/image.js +3 -0
  172. package/lib/cjs/content-fields/hubtype-fields/image.js.map +1 -0
  173. package/lib/cjs/content-fields/hubtype-fields/index.d.ts +28 -0
  174. package/lib/cjs/content-fields/hubtype-fields/index.js +32 -0
  175. package/lib/cjs/content-fields/hubtype-fields/index.js.map +1 -0
  176. package/lib/cjs/content-fields/hubtype-fields/keyword.d.ts +9 -0
  177. package/lib/cjs/content-fields/hubtype-fields/keyword.js +3 -0
  178. package/lib/cjs/content-fields/hubtype-fields/keyword.js.map +1 -0
  179. package/lib/cjs/content-fields/hubtype-fields/node-types.d.ts +33 -0
  180. package/lib/cjs/content-fields/hubtype-fields/node-types.js +40 -0
  181. package/lib/cjs/content-fields/hubtype-fields/node-types.js.map +1 -0
  182. package/lib/cjs/content-fields/hubtype-fields/nodes.d.ts +28 -0
  183. package/lib/cjs/content-fields/hubtype-fields/nodes.js +3 -0
  184. package/lib/cjs/content-fields/hubtype-fields/nodes.js.map +1 -0
  185. package/lib/cjs/content-fields/hubtype-fields/payload.d.ts +8 -0
  186. package/lib/cjs/content-fields/hubtype-fields/payload.js +3 -0
  187. package/lib/cjs/content-fields/hubtype-fields/payload.js.map +1 -0
  188. package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.d.ts +25 -0
  189. package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js +3 -0
  190. package/lib/cjs/content-fields/hubtype-fields/queue-status-conditional.js.map +1 -0
  191. package/lib/cjs/content-fields/hubtype-fields/rating.d.ts +23 -0
  192. package/lib/cjs/content-fields/hubtype-fields/rating.js +9 -0
  193. package/lib/cjs/content-fields/hubtype-fields/rating.js.map +1 -0
  194. package/lib/cjs/content-fields/hubtype-fields/smart-intent.d.ts +12 -0
  195. package/lib/cjs/content-fields/hubtype-fields/smart-intent.js +3 -0
  196. package/lib/cjs/content-fields/hubtype-fields/smart-intent.js.map +1 -0
  197. package/lib/cjs/content-fields/hubtype-fields/text.d.ts +11 -0
  198. package/lib/cjs/content-fields/hubtype-fields/text.js +3 -0
  199. package/lib/cjs/content-fields/hubtype-fields/text.js.map +1 -0
  200. package/lib/cjs/content-fields/hubtype-fields/url.d.ts +8 -0
  201. package/lib/cjs/content-fields/hubtype-fields/url.js +3 -0
  202. package/lib/cjs/content-fields/hubtype-fields/url.js.map +1 -0
  203. package/lib/cjs/content-fields/hubtype-fields/video.d.ts +8 -0
  204. package/lib/cjs/content-fields/hubtype-fields/video.js +3 -0
  205. package/lib/cjs/content-fields/hubtype-fields/video.js.map +1 -0
  206. package/lib/cjs/content-fields/hubtype-fields/webview.d.ts +17 -0
  207. package/lib/cjs/content-fields/hubtype-fields/webview.js +3 -0
  208. package/lib/cjs/content-fields/hubtype-fields/webview.js.map +1 -0
  209. package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.d.ts +21 -0
  210. package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js +3 -0
  211. package/lib/cjs/content-fields/hubtype-fields/whatsapp-button-list.js.map +1 -0
  212. package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +17 -0
  213. package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js +3 -0
  214. package/lib/cjs/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +1 -0
  215. package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +10 -0
  216. package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.js +3 -0
  217. package/lib/cjs/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +1 -0
  218. package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.d.ts +96 -0
  219. package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js +9 -0
  220. package/lib/cjs/content-fields/hubtype-fields/whatsapp-template.js.map +1 -0
  221. package/lib/cjs/content-fields/index.d.ts +27 -0
  222. package/lib/cjs/content-fields/index.js +56 -0
  223. package/lib/cjs/content-fields/index.js.map +1 -0
  224. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +14 -0
  225. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +41 -0
  226. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -0
  227. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +13 -0
  228. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +36 -0
  229. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -0
  230. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +14 -0
  231. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +46 -0
  232. package/lib/cjs/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -0
  233. package/lib/cjs/content-fields/whatsapp-button-list/index.d.ts +3 -0
  234. package/lib/cjs/content-fields/whatsapp-button-list/index.js +10 -0
  235. package/lib/cjs/content-fields/whatsapp-button-list/index.js.map +1 -0
  236. package/lib/cjs/filters/index.d.ts +12 -0
  237. package/lib/cjs/filters/index.js +17 -0
  238. package/lib/cjs/filters/index.js.map +1 -0
  239. package/lib/cjs/flow-factory.d.ts +12 -0
  240. package/lib/cjs/flow-factory.js +73 -0
  241. package/lib/cjs/flow-factory.js.map +1 -0
  242. package/lib/cjs/functions/index.d.ts +11 -0
  243. package/lib/cjs/functions/index.js +49 -0
  244. package/lib/cjs/functions/index.js.map +1 -0
  245. package/lib/cjs/index.d.ts +42 -0
  246. package/lib/cjs/index.js +142 -0
  247. package/lib/cjs/index.js.map +1 -0
  248. package/lib/cjs/services/hubtype-queues-api.js +26 -0
  249. package/lib/cjs/services/hubtype-queues-api.js.map +1 -0
  250. package/lib/cjs/structured-output/flow-builder-content.js +15 -0
  251. package/lib/cjs/structured-output/flow-builder-content.js.map +1 -0
  252. package/lib/cjs/tracking.d.ts +16 -0
  253. package/lib/cjs/tracking.js +71 -0
  254. package/lib/cjs/tracking.js.map +1 -0
  255. package/lib/cjs/types.d.ts +62 -0
  256. package/lib/cjs/types.js +14 -0
  257. package/lib/cjs/types.js.map +1 -0
  258. package/lib/cjs/user-input/capture-user-input-api.d.ts +21 -0
  259. package/lib/cjs/user-input/capture-user-input-api.js +88 -0
  260. package/lib/cjs/user-input/capture-user-input-api.js.map +1 -0
  261. package/lib/cjs/user-input/index.d.ts +4 -0
  262. package/lib/cjs/user-input/index.js +37 -0
  263. package/lib/cjs/user-input/index.js.map +1 -0
  264. package/lib/cjs/user-input/keyword.d.ts +27 -0
  265. package/lib/cjs/user-input/keyword.js +84 -0
  266. package/lib/cjs/user-input/keyword.js.map +1 -0
  267. package/lib/cjs/user-input/smart-intent.d.ts +24 -0
  268. package/lib/cjs/user-input/smart-intent.js +89 -0
  269. package/lib/cjs/user-input/smart-intent.js.map +1 -0
  270. package/lib/cjs/utils/ai-agent.d.ts +11 -0
  271. package/lib/cjs/utils/ai-agent.js +28 -0
  272. package/lib/cjs/utils/ai-agent.js.map +1 -0
  273. package/lib/cjs/utils/authentication.js +21 -0
  274. package/lib/cjs/utils/authentication.js.map +1 -0
  275. package/lib/cjs/utils/flow-locale.js +79 -0
  276. package/lib/cjs/utils/flow-locale.js.map +1 -0
  277. package/lib/cjs/utils/get-flow-builder-plugin.d.ts +3 -0
  278. package/lib/cjs/utils/get-flow-builder-plugin.js +16 -0
  279. package/lib/cjs/utils/get-flow-builder-plugin.js.map +1 -0
  280. package/lib/cjs/utils/hubtype-assistant-content.d.ts +13 -0
  281. package/lib/cjs/utils/hubtype-assistant-content.js +184 -0
  282. package/lib/cjs/utils/hubtype-assistant-content.js.map +1 -0
  283. package/lib/cjs/utils/input.js +35 -0
  284. package/lib/cjs/utils/input.js.map +1 -0
  285. package/lib/cjs/webview/contents-context.d.ts +2 -0
  286. package/lib/cjs/webview/contents-context.js +12 -0
  287. package/lib/cjs/webview/contents-context.js.map +1 -0
  288. package/lib/cjs/webview/index.d.ts +3 -0
  289. package/lib/cjs/webview/index.js +10 -0
  290. package/lib/cjs/webview/index.js.map +1 -0
  291. package/lib/cjs/webview/types.d.ts +47 -0
  292. package/lib/cjs/webview/types.js +9 -0
  293. package/lib/cjs/webview/types.js.map +1 -0
  294. package/lib/cjs/webview/use-webview-contents.d.ts +2 -0
  295. package/lib/cjs/webview/use-webview-contents.js +83 -0
  296. package/lib/cjs/webview/use-webview-contents.js.map +1 -0
  297. package/lib/esm/action/ai-agent-from-user-input.d.ts +3 -0
  298. package/lib/esm/action/ai-agent-from-user-input.js +38 -0
  299. package/lib/esm/action/ai-agent-from-user-input.js.map +1 -0
  300. package/lib/esm/action/context.d.ts +11 -0
  301. package/lib/esm/action/context.js +17 -0
  302. package/lib/esm/action/context.js.map +1 -0
  303. package/lib/esm/action/fallback.d.ts +3 -0
  304. package/lib/esm/action/fallback.js +36 -0
  305. package/lib/esm/action/fallback.js.map +1 -0
  306. package/lib/esm/action/first-interaction.d.ts +3 -0
  307. package/lib/esm/action/first-interaction.js +93 -0
  308. package/lib/esm/action/first-interaction.js.map +1 -0
  309. package/lib/esm/action/get-contents.d.ts +3 -0
  310. package/lib/esm/action/get-contents.js +44 -0
  311. package/lib/esm/action/get-contents.js.map +1 -0
  312. package/lib/esm/action/index.d.ts +25 -0
  313. package/lib/esm/action/index.js +95 -0
  314. package/lib/esm/action/index.js.map +1 -0
  315. package/lib/esm/action/payload.d.ts +3 -0
  316. package/lib/esm/action/payload.js +74 -0
  317. package/lib/esm/action/payload.js.map +1 -0
  318. package/lib/esm/api.d.ts +45 -0
  319. package/lib/esm/api.js +227 -0
  320. package/lib/esm/api.js.map +1 -0
  321. package/lib/esm/bot-context-manager.d.ts +17 -0
  322. package/lib/esm/bot-context-manager.js +93 -0
  323. package/lib/esm/bot-context-manager.js.map +1 -0
  324. package/lib/esm/constants.d.ts +14 -0
  325. package/lib/esm/constants.js +20 -0
  326. package/lib/esm/constants.js.map +1 -0
  327. package/lib/esm/content-fields/contact-reasons-conditional-matcher.d.ts +4 -0
  328. package/lib/esm/content-fields/contact-reasons-conditional-matcher.js +12 -0
  329. package/lib/esm/content-fields/contact-reasons-conditional-matcher.js.map +1 -0
  330. package/lib/esm/content-fields/content-fields-base.d.ts +20 -0
  331. package/lib/esm/content-fields/content-fields-base.js +74 -0
  332. package/lib/esm/content-fields/content-fields-base.js.map +1 -0
  333. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +15 -0
  334. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +71 -0
  335. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +1 -0
  336. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +9 -0
  337. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js +58 -0
  338. package/lib/esm/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +1 -0
  339. package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +17 -0
  340. package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js +79 -0
  341. package/lib/esm/content-fields/custom-conditional/flow-custom-condition-v2.js.map +1 -0
  342. package/lib/esm/content-fields/flow-ai-agent-base.d.ts +25 -0
  343. package/lib/esm/content-fields/flow-ai-agent-base.js +97 -0
  344. package/lib/esm/content-fields/flow-ai-agent-base.js.map +1 -0
  345. package/lib/esm/content-fields/flow-ai-agent-router.d.ts +21 -0
  346. package/lib/esm/content-fields/flow-ai-agent-router.js +126 -0
  347. package/lib/esm/content-fields/flow-ai-agent-router.js.map +1 -0
  348. package/lib/esm/content-fields/flow-ai-agent.d.ts +17 -0
  349. package/lib/esm/content-fields/flow-ai-agent.js +65 -0
  350. package/lib/esm/content-fields/flow-ai-agent.js.map +1 -0
  351. package/lib/esm/content-fields/flow-bot-action.d.ts +14 -0
  352. package/lib/esm/content-fields/flow-bot-action.js +45 -0
  353. package/lib/esm/content-fields/flow-bot-action.js.map +1 -0
  354. package/lib/esm/content-fields/flow-button.d.ts +31 -0
  355. package/lib/esm/content-fields/flow-button.js +86 -0
  356. package/lib/esm/content-fields/flow-button.js.map +1 -0
  357. package/lib/esm/content-fields/flow-capture-user-input.d.ts +14 -0
  358. package/lib/esm/content-fields/flow-capture-user-input.js +45 -0
  359. package/lib/esm/content-fields/flow-capture-user-input.js.map +1 -0
  360. package/lib/esm/content-fields/flow-carousel.d.ts +22 -0
  361. package/lib/esm/content-fields/flow-carousel.js +152 -0
  362. package/lib/esm/content-fields/flow-carousel.js.map +1 -0
  363. package/lib/esm/content-fields/flow-channel-conditional.d.ts +14 -0
  364. package/lib/esm/content-fields/flow-channel-conditional.js +57 -0
  365. package/lib/esm/content-fields/flow-channel-conditional.js.map +1 -0
  366. package/lib/esm/content-fields/flow-contact-reasons-conditional.d.ts +14 -0
  367. package/lib/esm/content-fields/flow-contact-reasons-conditional.js +65 -0
  368. package/lib/esm/content-fields/flow-contact-reasons-conditional.js.map +1 -0
  369. package/lib/esm/content-fields/flow-country-conditional.d.ts +13 -0
  370. package/lib/esm/content-fields/flow-country-conditional.js +59 -0
  371. package/lib/esm/content-fields/flow-country-conditional.js.map +1 -0
  372. package/lib/esm/content-fields/flow-custom-conditional.d.ts +17 -0
  373. package/lib/esm/content-fields/flow-custom-conditional.js +89 -0
  374. package/lib/esm/content-fields/flow-custom-conditional.js.map +1 -0
  375. package/lib/esm/content-fields/flow-do-nothing.d.ts +9 -0
  376. package/lib/esm/content-fields/flow-do-nothing.js +27 -0
  377. package/lib/esm/content-fields/flow-do-nothing.js.map +1 -0
  378. package/lib/esm/content-fields/flow-element.d.ts +22 -0
  379. package/lib/esm/content-fields/flow-element.js +50 -0
  380. package/lib/esm/content-fields/flow-element.js.map +1 -0
  381. package/lib/esm/content-fields/flow-go-to-flow.d.ts +13 -0
  382. package/lib/esm/content-fields/flow-go-to-flow.js +51 -0
  383. package/lib/esm/content-fields/flow-go-to-flow.js.map +1 -0
  384. package/lib/esm/content-fields/flow-handoff.d.ts +23 -0
  385. package/lib/esm/content-fields/flow-handoff.js +104 -0
  386. package/lib/esm/content-fields/flow-handoff.js.map +1 -0
  387. package/lib/esm/content-fields/flow-image.d.ts +10 -0
  388. package/lib/esm/content-fields/flow-image.js +33 -0
  389. package/lib/esm/content-fields/flow-image.js.map +1 -0
  390. package/lib/esm/content-fields/flow-queue-status-conditional.d.ts +30 -0
  391. package/lib/esm/content-fields/flow-queue-status-conditional.js +95 -0
  392. package/lib/esm/content-fields/flow-queue-status-conditional.js.map +1 -0
  393. package/lib/esm/content-fields/flow-rating.d.ts +15 -0
  394. package/lib/esm/content-fields/flow-rating.js +66 -0
  395. package/lib/esm/content-fields/flow-rating.js.map +1 -0
  396. package/lib/esm/content-fields/flow-text.d.ts +15 -0
  397. package/lib/esm/content-fields/flow-text.js +60 -0
  398. package/lib/esm/content-fields/flow-text.js.map +1 -0
  399. package/lib/esm/content-fields/flow-video.d.ts +10 -0
  400. package/lib/esm/content-fields/flow-video.js +33 -0
  401. package/lib/esm/content-fields/flow-video.js.map +1 -0
  402. package/lib/esm/content-fields/flow-webview.d.ts +16 -0
  403. package/lib/esm/content-fields/flow-webview.js +78 -0
  404. package/lib/esm/content-fields/flow-webview.js.map +1 -0
  405. package/lib/esm/content-fields/flow-whatsapp-cta-url-button.d.ts +21 -0
  406. package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js +92 -0
  407. package/lib/esm/content-fields/flow-whatsapp-cta-url-button.js.map +1 -0
  408. package/lib/esm/content-fields/flow-whatsapp-request-contact-info.d.ts +11 -0
  409. package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js +46 -0
  410. package/lib/esm/content-fields/flow-whatsapp-request-contact-info.js.map +1 -0
  411. package/lib/esm/content-fields/flow-whatsapp-template.d.ts +37 -0
  412. package/lib/esm/content-fields/flow-whatsapp-template.js +264 -0
  413. package/lib/esm/content-fields/flow-whatsapp-template.js.map +1 -0
  414. package/lib/esm/content-fields/hubtype-fields/ai-agent-router.d.ts +21 -0
  415. package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js +3 -0
  416. package/lib/esm/content-fields/hubtype-fields/ai-agent-router.js.map +1 -0
  417. package/lib/esm/content-fields/hubtype-fields/ai-agent.d.ts +25 -0
  418. package/lib/esm/content-fields/hubtype-fields/ai-agent.js +3 -0
  419. package/lib/esm/content-fields/hubtype-fields/ai-agent.js.map +1 -0
  420. package/lib/esm/content-fields/hubtype-fields/bot-action.d.ts +10 -0
  421. package/lib/esm/content-fields/hubtype-fields/bot-action.js +3 -0
  422. package/lib/esm/content-fields/hubtype-fields/bot-action.js.map +1 -0
  423. package/lib/esm/content-fields/hubtype-fields/button.d.ts +8 -0
  424. package/lib/esm/content-fields/hubtype-fields/button.js +3 -0
  425. package/lib/esm/content-fields/hubtype-fields/button.js.map +1 -0
  426. package/lib/esm/content-fields/hubtype-fields/capture-user-input.d.ts +19 -0
  427. package/lib/esm/content-fields/hubtype-fields/capture-user-input.js +12 -0
  428. package/lib/esm/content-fields/hubtype-fields/capture-user-input.js.map +1 -0
  429. package/lib/esm/content-fields/hubtype-fields/carousel.d.ts +17 -0
  430. package/lib/esm/content-fields/hubtype-fields/carousel.js +3 -0
  431. package/lib/esm/content-fields/hubtype-fields/carousel.js.map +1 -0
  432. package/lib/esm/content-fields/hubtype-fields/channel-conditional.d.ts +10 -0
  433. package/lib/esm/content-fields/hubtype-fields/channel-conditional.js +3 -0
  434. package/lib/esm/content-fields/hubtype-fields/channel-conditional.js.map +1 -0
  435. package/lib/esm/content-fields/hubtype-fields/common.d.ts +83 -0
  436. package/lib/esm/content-fields/hubtype-fields/common.js +3 -0
  437. package/lib/esm/content-fields/hubtype-fields/common.js.map +1 -0
  438. package/lib/esm/content-fields/hubtype-fields/contact-reasons-conditional.d.ts +16 -0
  439. package/lib/esm/content-fields/hubtype-fields/contact-reasons-conditional.js +3 -0
  440. package/lib/esm/content-fields/hubtype-fields/contact-reasons-conditional.js.map +1 -0
  441. package/lib/esm/content-fields/hubtype-fields/country-conditional.d.ts +10 -0
  442. package/lib/esm/content-fields/hubtype-fields/country-conditional.js +3 -0
  443. package/lib/esm/content-fields/hubtype-fields/country-conditional.js.map +1 -0
  444. package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.d.ts +56 -0
  445. package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js +36 -0
  446. package/lib/esm/content-fields/hubtype-fields/custom-conditional-v2.js.map +1 -0
  447. package/lib/esm/content-fields/hubtype-fields/custom-conditional.d.ts +11 -0
  448. package/lib/esm/content-fields/hubtype-fields/custom-conditional.js +3 -0
  449. package/lib/esm/content-fields/hubtype-fields/custom-conditional.js.map +1 -0
  450. package/lib/esm/content-fields/hubtype-fields/do-nothing.d.ts +6 -0
  451. package/lib/esm/content-fields/hubtype-fields/do-nothing.js +3 -0
  452. package/lib/esm/content-fields/hubtype-fields/do-nothing.js.map +1 -0
  453. package/lib/esm/content-fields/hubtype-fields/fallback.d.ts +9 -0
  454. package/lib/esm/content-fields/hubtype-fields/fallback.js +3 -0
  455. package/lib/esm/content-fields/hubtype-fields/fallback.js.map +1 -0
  456. package/lib/esm/content-fields/hubtype-fields/function.d.ts +30 -0
  457. package/lib/esm/content-fields/hubtype-fields/function.js +11 -0
  458. package/lib/esm/content-fields/hubtype-fields/function.js.map +1 -0
  459. package/lib/esm/content-fields/hubtype-fields/go-to-flow.d.ts +9 -0
  460. package/lib/esm/content-fields/hubtype-fields/go-to-flow.js +3 -0
  461. package/lib/esm/content-fields/hubtype-fields/go-to-flow.js.map +1 -0
  462. package/lib/esm/content-fields/hubtype-fields/handoff.d.ts +21 -0
  463. package/lib/esm/content-fields/hubtype-fields/handoff.js +10 -0
  464. package/lib/esm/content-fields/hubtype-fields/handoff.js.map +1 -0
  465. package/lib/esm/content-fields/hubtype-fields/image.d.ts +8 -0
  466. package/lib/esm/content-fields/hubtype-fields/image.js +3 -0
  467. package/lib/esm/content-fields/hubtype-fields/image.js.map +1 -0
  468. package/lib/esm/content-fields/hubtype-fields/index.d.ts +28 -0
  469. package/lib/esm/content-fields/hubtype-fields/index.js +32 -0
  470. package/lib/esm/content-fields/hubtype-fields/index.js.map +1 -0
  471. package/lib/esm/content-fields/hubtype-fields/keyword.d.ts +9 -0
  472. package/lib/esm/content-fields/hubtype-fields/keyword.js +3 -0
  473. package/lib/esm/content-fields/hubtype-fields/keyword.js.map +1 -0
  474. package/lib/esm/content-fields/hubtype-fields/node-types.d.ts +33 -0
  475. package/lib/esm/content-fields/hubtype-fields/node-types.js +40 -0
  476. package/lib/esm/content-fields/hubtype-fields/node-types.js.map +1 -0
  477. package/lib/esm/content-fields/hubtype-fields/nodes.d.ts +28 -0
  478. package/lib/esm/content-fields/hubtype-fields/nodes.js +3 -0
  479. package/lib/esm/content-fields/hubtype-fields/nodes.js.map +1 -0
  480. package/lib/esm/content-fields/hubtype-fields/payload.d.ts +8 -0
  481. package/lib/esm/content-fields/hubtype-fields/payload.js +3 -0
  482. package/lib/esm/content-fields/hubtype-fields/payload.js.map +1 -0
  483. package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.d.ts +25 -0
  484. package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js +3 -0
  485. package/lib/esm/content-fields/hubtype-fields/queue-status-conditional.js.map +1 -0
  486. package/lib/esm/content-fields/hubtype-fields/rating.d.ts +23 -0
  487. package/lib/esm/content-fields/hubtype-fields/rating.js +9 -0
  488. package/lib/esm/content-fields/hubtype-fields/rating.js.map +1 -0
  489. package/lib/esm/content-fields/hubtype-fields/smart-intent.d.ts +12 -0
  490. package/lib/esm/content-fields/hubtype-fields/smart-intent.js +3 -0
  491. package/lib/esm/content-fields/hubtype-fields/smart-intent.js.map +1 -0
  492. package/lib/esm/content-fields/hubtype-fields/text.d.ts +11 -0
  493. package/lib/esm/content-fields/hubtype-fields/text.js +3 -0
  494. package/lib/esm/content-fields/hubtype-fields/text.js.map +1 -0
  495. package/lib/esm/content-fields/hubtype-fields/url.d.ts +8 -0
  496. package/lib/esm/content-fields/hubtype-fields/url.js +3 -0
  497. package/lib/esm/content-fields/hubtype-fields/url.js.map +1 -0
  498. package/lib/esm/content-fields/hubtype-fields/video.d.ts +8 -0
  499. package/lib/esm/content-fields/hubtype-fields/video.js +3 -0
  500. package/lib/esm/content-fields/hubtype-fields/video.js.map +1 -0
  501. package/lib/esm/content-fields/hubtype-fields/webview.d.ts +17 -0
  502. package/lib/esm/content-fields/hubtype-fields/webview.js +3 -0
  503. package/lib/esm/content-fields/hubtype-fields/webview.js.map +1 -0
  504. package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.d.ts +21 -0
  505. package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js +3 -0
  506. package/lib/esm/content-fields/hubtype-fields/whatsapp-button-list.js.map +1 -0
  507. package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +17 -0
  508. package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js +3 -0
  509. package/lib/esm/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +1 -0
  510. package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +10 -0
  511. package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js +3 -0
  512. package/lib/esm/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +1 -0
  513. package/lib/esm/content-fields/hubtype-fields/whatsapp-template.d.ts +96 -0
  514. package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js +9 -0
  515. package/lib/esm/content-fields/hubtype-fields/whatsapp-template.js.map +1 -0
  516. package/lib/esm/content-fields/index.d.ts +27 -0
  517. package/lib/esm/content-fields/index.js +56 -0
  518. package/lib/esm/content-fields/index.js.map +1 -0
  519. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +14 -0
  520. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +41 -0
  521. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +1 -0
  522. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +13 -0
  523. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +36 -0
  524. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +1 -0
  525. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +14 -0
  526. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +46 -0
  527. package/lib/esm/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +1 -0
  528. package/lib/esm/content-fields/whatsapp-button-list/index.d.ts +3 -0
  529. package/lib/esm/content-fields/whatsapp-button-list/index.js +10 -0
  530. package/lib/esm/content-fields/whatsapp-button-list/index.js.map +1 -0
  531. package/lib/esm/filters/index.d.ts +12 -0
  532. package/lib/esm/filters/index.js +17 -0
  533. package/lib/esm/filters/index.js.map +1 -0
  534. package/lib/esm/flow-factory.d.ts +12 -0
  535. package/lib/esm/flow-factory.js +73 -0
  536. package/lib/esm/flow-factory.js.map +1 -0
  537. package/lib/esm/functions/index.d.ts +11 -0
  538. package/lib/esm/functions/index.js +49 -0
  539. package/lib/esm/functions/index.js.map +1 -0
  540. package/lib/esm/index.d.ts +42 -0
  541. package/lib/esm/index.js +142 -0
  542. package/lib/esm/index.js.map +1 -0
  543. package/lib/esm/services/hubtype-queues-api.d.ts +14 -0
  544. package/lib/esm/services/hubtype-queues-api.js +26 -0
  545. package/lib/esm/services/hubtype-queues-api.js.map +1 -0
  546. package/lib/esm/structured-output/flow-builder-content.d.ts +13 -0
  547. package/lib/esm/structured-output/flow-builder-content.js +15 -0
  548. package/lib/esm/structured-output/flow-builder-content.js.map +1 -0
  549. package/lib/esm/tracking.d.ts +16 -0
  550. package/lib/esm/tracking.js +71 -0
  551. package/lib/esm/tracking.js.map +1 -0
  552. package/lib/esm/types.d.ts +62 -0
  553. package/lib/esm/types.js +14 -0
  554. package/lib/esm/types.js.map +1 -0
  555. package/lib/esm/user-input/capture-user-input-api.d.ts +21 -0
  556. package/lib/esm/user-input/capture-user-input-api.js +88 -0
  557. package/lib/esm/user-input/capture-user-input-api.js.map +1 -0
  558. package/lib/esm/user-input/index.d.ts +4 -0
  559. package/lib/esm/user-input/index.js +37 -0
  560. package/lib/esm/user-input/index.js.map +1 -0
  561. package/lib/esm/user-input/keyword.d.ts +27 -0
  562. package/lib/esm/user-input/keyword.js +84 -0
  563. package/lib/esm/user-input/keyword.js.map +1 -0
  564. package/lib/esm/user-input/smart-intent.d.ts +24 -0
  565. package/lib/esm/user-input/smart-intent.js +89 -0
  566. package/lib/esm/user-input/smart-intent.js.map +1 -0
  567. package/lib/esm/utils/ai-agent.d.ts +11 -0
  568. package/lib/esm/utils/ai-agent.js +28 -0
  569. package/lib/esm/utils/ai-agent.js.map +1 -0
  570. package/lib/esm/utils/authentication.d.ts +2 -0
  571. package/lib/esm/utils/authentication.js +21 -0
  572. package/lib/esm/utils/authentication.js.map +1 -0
  573. package/lib/esm/utils/flow-locale.d.ts +22 -0
  574. package/lib/esm/utils/flow-locale.js +79 -0
  575. package/lib/esm/utils/flow-locale.js.map +1 -0
  576. package/lib/esm/utils/get-flow-builder-plugin.d.ts +3 -0
  577. package/lib/esm/utils/get-flow-builder-plugin.js +16 -0
  578. package/lib/esm/utils/get-flow-builder-plugin.js.map +1 -0
  579. package/lib/esm/utils/hubtype-assistant-content.d.ts +13 -0
  580. package/lib/esm/utils/hubtype-assistant-content.js +184 -0
  581. package/lib/esm/utils/hubtype-assistant-content.js.map +1 -0
  582. package/lib/esm/utils/input.d.ts +6 -0
  583. package/lib/esm/utils/input.js +35 -0
  584. package/lib/esm/utils/input.js.map +1 -0
  585. package/lib/esm/webview/contents-context.d.ts +2 -0
  586. package/lib/esm/webview/contents-context.js +12 -0
  587. package/lib/esm/webview/contents-context.js.map +1 -0
  588. package/lib/esm/webview/index.d.ts +3 -0
  589. package/lib/esm/webview/index.js +10 -0
  590. package/lib/esm/webview/index.js.map +1 -0
  591. package/lib/esm/webview/types.d.ts +47 -0
  592. package/lib/esm/webview/types.js +9 -0
  593. package/lib/esm/webview/types.js.map +1 -0
  594. package/lib/esm/webview/use-webview-contents.d.ts +2 -0
  595. package/lib/esm/webview/use-webview-contents.js +83 -0
  596. package/lib/esm/webview/use-webview-contents.js.map +1 -0
  597. package/package.json +10 -12
  598. package/src/action/ai-agent-from-user-input.ts +7 -0
  599. package/src/action/first-interaction.ts +6 -0
  600. package/src/action/get-contents.ts +17 -2
  601. package/src/action/index.tsx +7 -0
  602. package/src/api.ts +52 -15
  603. package/src/bot-context-manager.ts +153 -0
  604. package/src/constants.ts +2 -1
  605. package/src/content-fields/contact-reasons-conditional-matcher.ts +24 -0
  606. package/src/content-fields/flow-ai-agent-base.tsx +1 -1
  607. package/src/content-fields/flow-ai-agent-router.tsx +1 -0
  608. package/src/content-fields/flow-ai-agent.tsx +1 -0
  609. package/src/content-fields/flow-contact-reasons-conditional.tsx +90 -0
  610. package/src/content-fields/flow-do-nothing.tsx +29 -0
  611. package/src/content-fields/flow-handoff.tsx +54 -7
  612. package/src/content-fields/flow-whatsapp-request-contact-info.tsx +2 -0
  613. package/src/content-fields/hubtype-fields/contact-reasons-conditional.ts +18 -0
  614. package/src/content-fields/hubtype-fields/do-nothing.ts +7 -0
  615. package/src/content-fields/hubtype-fields/handoff.ts +17 -1
  616. package/src/content-fields/hubtype-fields/index.ts +1 -0
  617. package/src/content-fields/hubtype-fields/node-types.ts +2 -0
  618. package/src/content-fields/hubtype-fields/nodes.ts +4 -0
  619. package/src/content-fields/hubtype-fields/whatsapp-request-contact-info.ts +2 -0
  620. package/src/content-fields/index.ts +6 -0
  621. package/src/flow-factory.ts +11 -0
  622. package/src/index.ts +26 -88
  623. package/src/types.ts +1 -2
  624. package/lib/action/ai-agent-from-user-input.d.ts +0 -3
  625. package/lib/action/ai-agent-from-user-input.js +0 -35
  626. package/lib/action/ai-agent-from-user-input.js.map +0 -1
  627. package/lib/action/context.d.ts +0 -11
  628. package/lib/action/context.js +0 -20
  629. package/lib/action/context.js.map +0 -1
  630. package/lib/action/fallback.d.ts +0 -3
  631. package/lib/action/fallback.js +0 -41
  632. package/lib/action/fallback.js.map +0 -1
  633. package/lib/action/first-interaction.d.ts +0 -3
  634. package/lib/action/first-interaction.js +0 -100
  635. package/lib/action/first-interaction.js.map +0 -1
  636. package/lib/action/get-contents.d.ts +0 -3
  637. package/lib/action/get-contents.js +0 -56
  638. package/lib/action/get-contents.js.map +0 -1
  639. package/lib/action/index.d.ts +0 -25
  640. package/lib/action/index.js +0 -126
  641. package/lib/action/index.js.map +0 -1
  642. package/lib/action/payload.d.ts +0 -3
  643. package/lib/action/payload.js +0 -78
  644. package/lib/action/payload.js.map +0 -1
  645. package/lib/api.d.ts +0 -40
  646. package/lib/api.js +0 -216
  647. package/lib/api.js.map +0 -1
  648. package/lib/constants.d.ts +0 -13
  649. package/lib/constants.js +0 -17
  650. package/lib/constants.js.map +0 -1
  651. package/lib/content-fields/content-fields-base.d.ts +0 -20
  652. package/lib/content-fields/content-fields-base.js +0 -78
  653. package/lib/content-fields/content-fields-base.js.map +0 -1
  654. package/lib/content-fields/custom-conditional/custom-conditional-v2-evaluators.d.ts +0 -15
  655. package/lib/content-fields/custom-conditional/custom-conditional-v2-evaluators.js +0 -73
  656. package/lib/content-fields/custom-conditional/custom-conditional-v2-evaluators.js.map +0 -1
  657. package/lib/content-fields/custom-conditional/custom-conditional-v2-resolver.d.ts +0 -9
  658. package/lib/content-fields/custom-conditional/custom-conditional-v2-resolver.js +0 -58
  659. package/lib/content-fields/custom-conditional/custom-conditional-v2-resolver.js.map +0 -1
  660. package/lib/content-fields/custom-conditional/flow-custom-condition-v2.d.ts +0 -17
  661. package/lib/content-fields/custom-conditional/flow-custom-condition-v2.js +0 -94
  662. package/lib/content-fields/custom-conditional/flow-custom-condition-v2.js.map +0 -1
  663. package/lib/content-fields/flow-ai-agent-base.d.ts +0 -25
  664. package/lib/content-fields/flow-ai-agent-base.js +0 -106
  665. package/lib/content-fields/flow-ai-agent-base.js.map +0 -1
  666. package/lib/content-fields/flow-ai-agent-router.d.ts +0 -21
  667. package/lib/content-fields/flow-ai-agent-router.js +0 -136
  668. package/lib/content-fields/flow-ai-agent-router.js.map +0 -1
  669. package/lib/content-fields/flow-ai-agent.d.ts +0 -17
  670. package/lib/content-fields/flow-ai-agent.js +0 -75
  671. package/lib/content-fields/flow-ai-agent.js.map +0 -1
  672. package/lib/content-fields/flow-bot-action.d.ts +0 -14
  673. package/lib/content-fields/flow-bot-action.js +0 -53
  674. package/lib/content-fields/flow-bot-action.js.map +0 -1
  675. package/lib/content-fields/flow-button.d.ts +0 -31
  676. package/lib/content-fields/flow-button.js +0 -105
  677. package/lib/content-fields/flow-button.js.map +0 -1
  678. package/lib/content-fields/flow-capture-user-input.d.ts +0 -14
  679. package/lib/content-fields/flow-capture-user-input.js +0 -46
  680. package/lib/content-fields/flow-capture-user-input.js.map +0 -1
  681. package/lib/content-fields/flow-carousel.d.ts +0 -22
  682. package/lib/content-fields/flow-carousel.js +0 -193
  683. package/lib/content-fields/flow-carousel.js.map +0 -1
  684. package/lib/content-fields/flow-channel-conditional.d.ts +0 -14
  685. package/lib/content-fields/flow-channel-conditional.js +0 -61
  686. package/lib/content-fields/flow-channel-conditional.js.map +0 -1
  687. package/lib/content-fields/flow-country-conditional.d.ts +0 -13
  688. package/lib/content-fields/flow-country-conditional.js +0 -64
  689. package/lib/content-fields/flow-country-conditional.js.map +0 -1
  690. package/lib/content-fields/flow-custom-conditional.d.ts +0 -17
  691. package/lib/content-fields/flow-custom-conditional.js +0 -87
  692. package/lib/content-fields/flow-custom-conditional.js.map +0 -1
  693. package/lib/content-fields/flow-element.d.ts +0 -22
  694. package/lib/content-fields/flow-element.js +0 -67
  695. package/lib/content-fields/flow-element.js.map +0 -1
  696. package/lib/content-fields/flow-go-to-flow.d.ts +0 -13
  697. package/lib/content-fields/flow-go-to-flow.js +0 -56
  698. package/lib/content-fields/flow-go-to-flow.js.map +0 -1
  699. package/lib/content-fields/flow-handoff.d.ts +0 -17
  700. package/lib/content-fields/flow-handoff.js +0 -79
  701. package/lib/content-fields/flow-handoff.js.map +0 -1
  702. package/lib/content-fields/flow-image.d.ts +0 -10
  703. package/lib/content-fields/flow-image.js +0 -42
  704. package/lib/content-fields/flow-image.js.map +0 -1
  705. package/lib/content-fields/flow-queue-status-conditional.d.ts +0 -30
  706. package/lib/content-fields/flow-queue-status-conditional.js +0 -100
  707. package/lib/content-fields/flow-queue-status-conditional.js.map +0 -1
  708. package/lib/content-fields/flow-rating.d.ts +0 -15
  709. package/lib/content-fields/flow-rating.js +0 -88
  710. package/lib/content-fields/flow-rating.js.map +0 -1
  711. package/lib/content-fields/flow-text.d.ts +0 -15
  712. package/lib/content-fields/flow-text.js +0 -82
  713. package/lib/content-fields/flow-text.js.map +0 -1
  714. package/lib/content-fields/flow-video.d.ts +0 -10
  715. package/lib/content-fields/flow-video.js +0 -42
  716. package/lib/content-fields/flow-video.js.map +0 -1
  717. package/lib/content-fields/flow-webview.d.ts +0 -16
  718. package/lib/content-fields/flow-webview.js +0 -81
  719. package/lib/content-fields/flow-webview.js.map +0 -1
  720. package/lib/content-fields/flow-whatsapp-cta-url-button.d.ts +0 -21
  721. package/lib/content-fields/flow-whatsapp-cta-url-button.js +0 -131
  722. package/lib/content-fields/flow-whatsapp-cta-url-button.js.map +0 -1
  723. package/lib/content-fields/flow-whatsapp-request-contact-info.d.ts +0 -11
  724. package/lib/content-fields/flow-whatsapp-request-contact-info.js +0 -61
  725. package/lib/content-fields/flow-whatsapp-request-contact-info.js.map +0 -1
  726. package/lib/content-fields/flow-whatsapp-template.d.ts +0 -37
  727. package/lib/content-fields/flow-whatsapp-template.js +0 -281
  728. package/lib/content-fields/flow-whatsapp-template.js.map +0 -1
  729. package/lib/content-fields/hubtype-fields/ai-agent-router.d.ts +0 -21
  730. package/lib/content-fields/hubtype-fields/ai-agent-router.js +0 -4
  731. package/lib/content-fields/hubtype-fields/ai-agent-router.js.map +0 -1
  732. package/lib/content-fields/hubtype-fields/ai-agent.d.ts +0 -25
  733. package/lib/content-fields/hubtype-fields/ai-agent.js +0 -4
  734. package/lib/content-fields/hubtype-fields/ai-agent.js.map +0 -1
  735. package/lib/content-fields/hubtype-fields/bot-action.d.ts +0 -10
  736. package/lib/content-fields/hubtype-fields/bot-action.js +0 -4
  737. package/lib/content-fields/hubtype-fields/bot-action.js.map +0 -1
  738. package/lib/content-fields/hubtype-fields/button.d.ts +0 -8
  739. package/lib/content-fields/hubtype-fields/button.js +0 -4
  740. package/lib/content-fields/hubtype-fields/button.js.map +0 -1
  741. package/lib/content-fields/hubtype-fields/capture-user-input.d.ts +0 -19
  742. package/lib/content-fields/hubtype-fields/capture-user-input.js +0 -12
  743. package/lib/content-fields/hubtype-fields/capture-user-input.js.map +0 -1
  744. package/lib/content-fields/hubtype-fields/carousel.d.ts +0 -17
  745. package/lib/content-fields/hubtype-fields/carousel.js +0 -4
  746. package/lib/content-fields/hubtype-fields/carousel.js.map +0 -1
  747. package/lib/content-fields/hubtype-fields/channel-conditional.d.ts +0 -10
  748. package/lib/content-fields/hubtype-fields/channel-conditional.js +0 -4
  749. package/lib/content-fields/hubtype-fields/channel-conditional.js.map +0 -1
  750. package/lib/content-fields/hubtype-fields/common.d.ts +0 -83
  751. package/lib/content-fields/hubtype-fields/common.js +0 -4
  752. package/lib/content-fields/hubtype-fields/common.js.map +0 -1
  753. package/lib/content-fields/hubtype-fields/country-conditional.d.ts +0 -10
  754. package/lib/content-fields/hubtype-fields/country-conditional.js +0 -4
  755. package/lib/content-fields/hubtype-fields/country-conditional.js.map +0 -1
  756. package/lib/content-fields/hubtype-fields/custom-conditional-v2.d.ts +0 -56
  757. package/lib/content-fields/hubtype-fields/custom-conditional-v2.js +0 -36
  758. package/lib/content-fields/hubtype-fields/custom-conditional-v2.js.map +0 -1
  759. package/lib/content-fields/hubtype-fields/custom-conditional.d.ts +0 -11
  760. package/lib/content-fields/hubtype-fields/custom-conditional.js +0 -4
  761. package/lib/content-fields/hubtype-fields/custom-conditional.js.map +0 -1
  762. package/lib/content-fields/hubtype-fields/fallback.d.ts +0 -9
  763. package/lib/content-fields/hubtype-fields/fallback.js +0 -4
  764. package/lib/content-fields/hubtype-fields/fallback.js.map +0 -1
  765. package/lib/content-fields/hubtype-fields/function.d.ts +0 -30
  766. package/lib/content-fields/hubtype-fields/function.js +0 -11
  767. package/lib/content-fields/hubtype-fields/function.js.map +0 -1
  768. package/lib/content-fields/hubtype-fields/go-to-flow.d.ts +0 -9
  769. package/lib/content-fields/hubtype-fields/go-to-flow.js +0 -4
  770. package/lib/content-fields/hubtype-fields/go-to-flow.js.map +0 -1
  771. package/lib/content-fields/hubtype-fields/handoff.d.ts +0 -11
  772. package/lib/content-fields/hubtype-fields/handoff.js +0 -4
  773. package/lib/content-fields/hubtype-fields/handoff.js.map +0 -1
  774. package/lib/content-fields/hubtype-fields/image.d.ts +0 -8
  775. package/lib/content-fields/hubtype-fields/image.js +0 -4
  776. package/lib/content-fields/hubtype-fields/image.js.map +0 -1
  777. package/lib/content-fields/hubtype-fields/index.d.ts +0 -27
  778. package/lib/content-fields/hubtype-fields/index.js +0 -57
  779. package/lib/content-fields/hubtype-fields/index.js.map +0 -1
  780. package/lib/content-fields/hubtype-fields/keyword.d.ts +0 -9
  781. package/lib/content-fields/hubtype-fields/keyword.js +0 -4
  782. package/lib/content-fields/hubtype-fields/keyword.js.map +0 -1
  783. package/lib/content-fields/hubtype-fields/node-types.d.ts +0 -31
  784. package/lib/content-fields/hubtype-fields/node-types.js +0 -38
  785. package/lib/content-fields/hubtype-fields/node-types.js.map +0 -1
  786. package/lib/content-fields/hubtype-fields/nodes.d.ts +0 -26
  787. package/lib/content-fields/hubtype-fields/nodes.js +0 -4
  788. package/lib/content-fields/hubtype-fields/nodes.js.map +0 -1
  789. package/lib/content-fields/hubtype-fields/payload.d.ts +0 -8
  790. package/lib/content-fields/hubtype-fields/payload.js +0 -4
  791. package/lib/content-fields/hubtype-fields/payload.js.map +0 -1
  792. package/lib/content-fields/hubtype-fields/queue-status-conditional.d.ts +0 -25
  793. package/lib/content-fields/hubtype-fields/queue-status-conditional.js +0 -4
  794. package/lib/content-fields/hubtype-fields/queue-status-conditional.js.map +0 -1
  795. package/lib/content-fields/hubtype-fields/rating.d.ts +0 -23
  796. package/lib/content-fields/hubtype-fields/rating.js +0 -9
  797. package/lib/content-fields/hubtype-fields/rating.js.map +0 -1
  798. package/lib/content-fields/hubtype-fields/smart-intent.d.ts +0 -12
  799. package/lib/content-fields/hubtype-fields/smart-intent.js +0 -4
  800. package/lib/content-fields/hubtype-fields/smart-intent.js.map +0 -1
  801. package/lib/content-fields/hubtype-fields/text.d.ts +0 -11
  802. package/lib/content-fields/hubtype-fields/text.js +0 -4
  803. package/lib/content-fields/hubtype-fields/text.js.map +0 -1
  804. package/lib/content-fields/hubtype-fields/url.d.ts +0 -8
  805. package/lib/content-fields/hubtype-fields/url.js +0 -4
  806. package/lib/content-fields/hubtype-fields/url.js.map +0 -1
  807. package/lib/content-fields/hubtype-fields/video.d.ts +0 -8
  808. package/lib/content-fields/hubtype-fields/video.js +0 -4
  809. package/lib/content-fields/hubtype-fields/video.js.map +0 -1
  810. package/lib/content-fields/hubtype-fields/webview.d.ts +0 -17
  811. package/lib/content-fields/hubtype-fields/webview.js +0 -4
  812. package/lib/content-fields/hubtype-fields/webview.js.map +0 -1
  813. package/lib/content-fields/hubtype-fields/whatsapp-button-list.d.ts +0 -21
  814. package/lib/content-fields/hubtype-fields/whatsapp-button-list.js +0 -4
  815. package/lib/content-fields/hubtype-fields/whatsapp-button-list.js.map +0 -1
  816. package/lib/content-fields/hubtype-fields/whatsapp-cta-url-button.d.ts +0 -17
  817. package/lib/content-fields/hubtype-fields/whatsapp-cta-url-button.js +0 -4
  818. package/lib/content-fields/hubtype-fields/whatsapp-cta-url-button.js.map +0 -1
  819. package/lib/content-fields/hubtype-fields/whatsapp-request-contact-info.d.ts +0 -8
  820. package/lib/content-fields/hubtype-fields/whatsapp-request-contact-info.js +0 -4
  821. package/lib/content-fields/hubtype-fields/whatsapp-request-contact-info.js.map +0 -1
  822. package/lib/content-fields/hubtype-fields/whatsapp-template.d.ts +0 -96
  823. package/lib/content-fields/hubtype-fields/whatsapp-template.js +0 -9
  824. package/lib/content-fields/hubtype-fields/whatsapp-template.js.map +0 -1
  825. package/lib/content-fields/index.d.ts +0 -25
  826. package/lib/content-fields/index.js +0 -73
  827. package/lib/content-fields/index.js.map +0 -1
  828. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.d.ts +0 -14
  829. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js +0 -43
  830. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-row.js.map +0 -1
  831. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.d.ts +0 -13
  832. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js +0 -41
  833. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list-section.js.map +0 -1
  834. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list.d.ts +0 -14
  835. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js +0 -66
  836. package/lib/content-fields/whatsapp-button-list/flow-whatsapp-button-list.js.map +0 -1
  837. package/lib/content-fields/whatsapp-button-list/index.d.ts +0 -3
  838. package/lib/content-fields/whatsapp-button-list/index.js +0 -12
  839. package/lib/content-fields/whatsapp-button-list/index.js.map +0 -1
  840. package/lib/filters/index.d.ts +0 -12
  841. package/lib/filters/index.js +0 -16
  842. package/lib/filters/index.js.map +0 -1
  843. package/lib/flow-factory.d.ts +0 -12
  844. package/lib/flow-factory.js +0 -75
  845. package/lib/flow-factory.js.map +0 -1
  846. package/lib/functions/index.d.ts +0 -11
  847. package/lib/functions/index.js +0 -55
  848. package/lib/functions/index.js.map +0 -1
  849. package/lib/index.d.ts +0 -45
  850. package/lib/index.js +0 -195
  851. package/lib/index.js.map +0 -1
  852. package/lib/services/hubtype-queues-api.js +0 -26
  853. package/lib/services/hubtype-queues-api.js.map +0 -1
  854. package/lib/structured-output/flow-builder-content.js +0 -16
  855. package/lib/structured-output/flow-builder-content.js.map +0 -1
  856. package/lib/tracking.d.ts +0 -16
  857. package/lib/tracking.js +0 -77
  858. package/lib/tracking.js.map +0 -1
  859. package/lib/types.d.ts +0 -62
  860. package/lib/types.js +0 -14
  861. package/lib/types.js.map +0 -1
  862. package/lib/user-input/capture-user-input-api.d.ts +0 -21
  863. package/lib/user-input/capture-user-input-api.js +0 -99
  864. package/lib/user-input/capture-user-input-api.js.map +0 -1
  865. package/lib/user-input/index.d.ts +0 -4
  866. package/lib/user-input/index.js +0 -46
  867. package/lib/user-input/index.js.map +0 -1
  868. package/lib/user-input/keyword.d.ts +0 -27
  869. package/lib/user-input/keyword.js +0 -89
  870. package/lib/user-input/keyword.js.map +0 -1
  871. package/lib/user-input/smart-intent.d.ts +0 -24
  872. package/lib/user-input/smart-intent.js +0 -93
  873. package/lib/user-input/smart-intent.js.map +0 -1
  874. package/lib/utils/ai-agent.d.ts +0 -11
  875. package/lib/utils/ai-agent.js +0 -33
  876. package/lib/utils/ai-agent.js.map +0 -1
  877. package/lib/utils/authentication.js +0 -24
  878. package/lib/utils/authentication.js.map +0 -1
  879. package/lib/utils/flow-locale.js +0 -75
  880. package/lib/utils/flow-locale.js.map +0 -1
  881. package/lib/utils/get-flow-builder-plugin.d.ts +0 -3
  882. package/lib/utils/get-flow-builder-plugin.js +0 -16
  883. package/lib/utils/get-flow-builder-plugin.js.map +0 -1
  884. package/lib/utils/hubtype-assistant-content.d.ts +0 -13
  885. package/lib/utils/hubtype-assistant-content.js +0 -200
  886. package/lib/utils/hubtype-assistant-content.js.map +0 -1
  887. package/lib/utils/input.js +0 -37
  888. package/lib/utils/input.js.map +0 -1
  889. package/lib/webview/contents-context.d.ts +0 -2
  890. package/lib/webview/contents-context.js +0 -14
  891. package/lib/webview/contents-context.js.map +0 -1
  892. package/lib/webview/index.d.ts +0 -3
  893. package/lib/webview/index.js +0 -11
  894. package/lib/webview/index.js.map +0 -1
  895. package/lib/webview/types.d.ts +0 -47
  896. package/lib/webview/types.js +0 -9
  897. package/lib/webview/types.js.map +0 -1
  898. package/lib/webview/use-webview-contents.d.ts +0 -2
  899. package/lib/webview/use-webview-contents.js +0 -90
  900. package/lib/webview/use-webview-contents.js.map +0 -1
  901. /package/lib/{services → cjs/services}/hubtype-queues-api.d.ts +0 -0
  902. /package/lib/{structured-output → cjs/structured-output}/flow-builder-content.d.ts +0 -0
  903. /package/lib/{utils → cjs/utils}/authentication.d.ts +0 -0
  904. /package/lib/{utils → cjs/utils}/flow-locale.d.ts +0 -0
  905. /package/lib/{utils → cjs/utils}/input.d.ts +0 -0
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inputHasTextOrTranscript = inputHasTextOrTranscript;
4
+ exports.getTextOrTranscript = getTextOrTranscript;
5
+ exports.isKeywordsAllowed = isKeywordsAllowed;
6
+ exports.isSmartIntentsAllowed = isSmartIntentsAllowed;
7
+ const core_1 = require("@botonic/core");
8
+ const get_flow_builder_plugin_1 = require("./get-flow-builder-plugin");
9
+ function inputHasTextOrTranscript(input) {
10
+ const isTextInput = Boolean(input.data) && input.type === core_1.INPUT.TEXT;
11
+ const isTranscriptText = Boolean(input.transcript) && input.type === core_1.INPUT.AUDIO;
12
+ return isTextInput || isTranscriptText;
13
+ }
14
+ function getTextOrTranscript(input) {
15
+ if (input.type === core_1.INPUT.TEXT && input.data) {
16
+ return input.data;
17
+ }
18
+ if (input.type === core_1.INPUT.AUDIO && input.transcript) {
19
+ return input.transcript;
20
+ }
21
+ console.error('No text or transcript found in input', input);
22
+ return undefined;
23
+ }
24
+ function isNluAllowed(request, nluFlag) {
25
+ const shadowing = Boolean(request.session._shadowing);
26
+ const flowBuilderPlugin = (0, get_flow_builder_plugin_1.getFlowBuilderPlugin)(request.plugins);
27
+ return !shadowing || (shadowing && flowBuilderPlugin.inShadowing[nluFlag]);
28
+ }
29
+ function isKeywordsAllowed(request) {
30
+ return isNluAllowed(request, 'allowKeywords');
31
+ }
32
+ function isSmartIntentsAllowed(request) {
33
+ return isNluAllowed(request, 'allowSmartIntents');
34
+ }
35
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/utils/input.ts"],"names":[],"mappings":";;AAMA,4DAMC;AAED,kDAUC;AAWD,8CAEC;AAED,sDAEC;AAzCD,wCAAiD;AAIjD,uEAAgE;AAEhE,SAAgB,wBAAwB,CAAC,KAAY;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAK,CAAC,IAAI,CAAA;IACpE,MAAM,gBAAgB,GACpB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAK,CAAC,KAAK,CAAA;IAEzD,OAAO,WAAW,IAAI,gBAAgB,CAAA;AACxC,CAAC;AAED,SAAgB,mBAAmB,CAAC,KAAY;IAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAA;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAK,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC,UAAU,CAAA;IACzB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAA;IAC5D,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,YAAY,CACnB,OAAsB,EACtB,OAAgC;IAEhC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACrD,MAAM,iBAAiB,GAAG,IAAA,8CAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/D,OAAO,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,SAAgB,iBAAiB,CAAC,OAAsB;IACtD,OAAO,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;AAC/C,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAsB;IAC1D,OAAO,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;AACnD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { MapContentsType, WebviewContentsContextType } from './types';
2
+ export declare const createWebviewContentsContext: <T extends MapContentsType>() => import("react").Context<WebviewContentsContextType<T>>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWebviewContentsContext = void 0;
4
+ const react_1 = require("react");
5
+ const createWebviewContentsContext = () => (0, react_1.createContext)({
6
+ getTextContent: () => '',
7
+ getImageSrc: () => '',
8
+ setCurrentLocale: () => undefined,
9
+ contents: {},
10
+ });
11
+ exports.createWebviewContentsContext = createWebviewContentsContext;
12
+ //# sourceMappingURL=contents-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contents-context.js","sourceRoot":"","sources":["../../../src/webview/contents-context.ts"],"names":[],"mappings":";;;AAAA,iCAAqC;AAI9B,MAAM,4BAA4B,GAAG,GAA8B,EAAE,CAC1E,IAAA,qBAAa,EAAgC;IAC3C,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;IACrB,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS;IACjC,QAAQ,EAAE,EAA6B;CACxC,CAAC,CAAA;AANS,QAAA,4BAA4B,gCAMrC"}
@@ -0,0 +1,3 @@
1
+ export { createWebviewContentsContext } from './contents-context';
2
+ export * from './types';
3
+ export { useWebviewContents } from './use-webview-contents';
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useWebviewContents = exports.createWebviewContentsContext = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var contents_context_1 = require("./contents-context");
6
+ Object.defineProperty(exports, "createWebviewContentsContext", { enumerable: true, get: function () { return contents_context_1.createWebviewContentsContext; } });
7
+ tslib_1.__exportStar(require("./types"), exports);
8
+ var use_webview_contents_1 = require("./use-webview-contents");
9
+ Object.defineProperty(exports, "useWebviewContents", { enumerable: true, get: function () { return use_webview_contents_1.useWebviewContents; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/webview/index.ts"],"names":[],"mappings":";;;;AAAA,uDAAiE;AAAxD,gIAAA,4BAA4B,OAAA;AACrC,kDAAuB;AACvB,+DAA2D;AAAlD,0HAAA,kBAAkB,OAAA"}
@@ -0,0 +1,47 @@
1
+ import type { FlowBuilderJSONVersion } from '../types';
2
+ export declare enum WebviewContentType {
3
+ TEXT = "webview-text",
4
+ IMAGE = "webview-image"
5
+ }
6
+ export type WebviewContentsResponse = (WebviewTextContent | WebviewImageContent)[];
7
+ export interface WebviewTextContent {
8
+ code: string;
9
+ type: WebviewContentType.TEXT;
10
+ content: {
11
+ text: {
12
+ message: string;
13
+ locale: string;
14
+ }[];
15
+ };
16
+ }
17
+ export interface WebviewImageContent {
18
+ code: string;
19
+ type: WebviewContentType.IMAGE;
20
+ content: {
21
+ image: {
22
+ file: string;
23
+ locale: string;
24
+ }[];
25
+ };
26
+ }
27
+ export type MapContentsType = Record<string, string>;
28
+ export interface UseWebviewContentsProps<T extends MapContentsType> {
29
+ apiUrl?: string;
30
+ version?: FlowBuilderJSONVersion;
31
+ botId: string;
32
+ webviewId: string;
33
+ providerId: string;
34
+ locale: string;
35
+ mapContents: Record<keyof T, string>;
36
+ }
37
+ export interface UseWebviewContents<T extends MapContentsType> {
38
+ isLoading: boolean;
39
+ error: boolean;
40
+ webviewContentsContext: WebviewContentsContextType<T>;
41
+ }
42
+ export interface WebviewContentsContextType<T extends MapContentsType> {
43
+ getTextContent: (code: string) => string;
44
+ getImageSrc: (code: string) => string;
45
+ setCurrentLocale: (locale: string) => void;
46
+ contents: Record<keyof T, string>;
47
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebviewContentType = void 0;
4
+ var WebviewContentType;
5
+ (function (WebviewContentType) {
6
+ WebviewContentType["TEXT"] = "webview-text";
7
+ WebviewContentType["IMAGE"] = "webview-image";
8
+ })(WebviewContentType || (exports.WebviewContentType = WebviewContentType = {}));
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/webview/types.ts"],"names":[],"mappings":";;;AAEA,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,2CAAqB,CAAA;IACrB,6CAAuB,CAAA;AACzB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B"}
@@ -0,0 +1,2 @@
1
+ import { type MapContentsType, type UseWebviewContents, type UseWebviewContentsProps } from './types';
2
+ export declare function useWebviewContents<T extends MapContentsType>({ apiUrl, version, botId, webviewId, providerId, locale, mapContents, }: UseWebviewContentsProps<T>): UseWebviewContents<T>;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useWebviewContents = useWebviewContents;
4
+ const tslib_1 = require("tslib");
5
+ const axios_1 = tslib_1.__importDefault(require("axios"));
6
+ const react_1 = require("react");
7
+ const constants_1 = require("../constants");
8
+ const types_1 = require("../types");
9
+ const types_2 = require("./types");
10
+ function useWebviewContents({ apiUrl = constants_1.FLOW_BUILDER_API_URL_PROD, version = types_1.FlowBuilderJSONVersion.LATEST, botId, webviewId, providerId, locale, mapContents, }) {
11
+ const [textContents, setTextContents] = (0, react_1.useState)();
12
+ const [imageContents, setImageContents] = (0, react_1.useState)();
13
+ const [contents, setContents] = (0, react_1.useState)({});
14
+ const [currentLocale, setCurrentLocale] = (0, react_1.useState)(locale);
15
+ const [error, setError] = (0, react_1.useState)(false);
16
+ const updateCurrentLocale = (textContents) => {
17
+ if (!textContents || textContents.length === 0) {
18
+ console.log('There is no text contents to check the locale');
19
+ return;
20
+ }
21
+ const locales = textContents[0].content.text.map(text => text.locale);
22
+ const language = currentLocale.split('-')[0];
23
+ if (locales.includes(currentLocale)) {
24
+ setCurrentLocale(currentLocale);
25
+ return;
26
+ }
27
+ if (locales.includes(language)) {
28
+ setCurrentLocale(language);
29
+ return;
30
+ }
31
+ console.error(`locale: ${currentLocale} cannot be resolved with: ${locales.join(', ')}`);
32
+ };
33
+ const getTextContent = (contentID) => {
34
+ return (textContents
35
+ ?.find(textContent => textContent.code === contentID)
36
+ ?.content.text.find(text => text.locale === currentLocale)?.message ||
37
+ '');
38
+ };
39
+ const getImageSrc = (contentID) => {
40
+ return (imageContents
41
+ ?.find(imageContent => imageContent.code === contentID)
42
+ ?.content.image.find(image => image.locale === currentLocale)?.file ||
43
+ '');
44
+ };
45
+ (0, react_1.useEffect)(() => {
46
+ if (textContents || imageContents) {
47
+ const contentsObject = {};
48
+ for (const [key, value] of Object.entries(mapContents)) {
49
+ contentsObject[key] = getTextContent(value) || getImageSrc(value);
50
+ }
51
+ setContents(contentsObject);
52
+ }
53
+ }, [textContents, imageContents, currentLocale]);
54
+ (0, react_1.useEffect)(() => {
55
+ const getResponseContents = async () => {
56
+ const url = `${apiUrl}/v1/bot_flows/${botId}/versions/${version}/webviews/${webviewId}/?provider_id=${providerId}`;
57
+ try {
58
+ const response = await axios_1.default.get(url);
59
+ const textResponseContents = response.data.filter(webviewContent => webviewContent.type === types_2.WebviewContentType.TEXT);
60
+ setTextContents(textResponseContents);
61
+ const imageResponseContents = response.data.filter(webviewContent => webviewContent.type === types_2.WebviewContentType.IMAGE);
62
+ setImageContents(imageResponseContents);
63
+ updateCurrentLocale(textResponseContents);
64
+ }
65
+ catch (error) {
66
+ console.error('Error fetching webview contents:', error);
67
+ setError(true);
68
+ }
69
+ };
70
+ getResponseContents();
71
+ }, []);
72
+ return {
73
+ isLoading: Object.keys(contents).length === 0,
74
+ error,
75
+ webviewContentsContext: {
76
+ getTextContent,
77
+ getImageSrc,
78
+ setCurrentLocale,
79
+ contents,
80
+ },
81
+ };
82
+ }
83
+ //# sourceMappingURL=use-webview-contents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-webview-contents.js","sourceRoot":"","sources":["../../../src/webview/use-webview-contents.ts"],"names":[],"mappings":";;AAeA,gDAwGC;;AAvHD,0DAAyB;AACzB,iCAA2C;AAE3C,4CAAwD;AACxD,oCAAiD;AACjD,mCAQgB;AAEhB,SAAgB,kBAAkB,CAA4B,EAC5D,MAAM,GAAG,qCAAyB,EAClC,OAAO,GAAG,8BAAsB,CAAC,MAAM,EACvC,KAAK,EACL,SAAS,EACT,UAAU,EACV,MAAM,EACN,WAAW,GACgB;IAC3B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,GAAwB,CAAA;IACxE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,GAAyB,CAAA;IAC3E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EACtC,EAA6B,CAC9B,CAAA;IACD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC,CAAA;IAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAEzC,MAAM,mBAAmB,GAAG,CAAC,YAAmC,EAAE,EAAE;QAClE,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrE,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAE5C,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,gBAAgB,CAAC,aAAa,CAAC,CAAA;YAC/B,OAAM;QACR,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,gBAAgB,CAAC,QAAQ,CAAC,CAAA;YAC1B,OAAM;QACR,CAAC;QAED,OAAO,CAAC,KAAK,CACX,WAAW,aAAa,6BAA6B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1E,CAAA;IACH,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAU,EAAE;QACnD,OAAO,CACL,YAAY;YACV,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC;YACrD,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,EAAE,OAAO;YACrE,EAAE,CACH,CAAA;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,SAAiB,EAAU,EAAE;QAChD,OAAO,CACL,aAAa;YACX,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS,CAAC;YACvD,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,EAAE,IAAI;YACrE,EAAE,CACH,CAAA;IACH,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,cAAc,GAAG,EAAE,CAAA;YACzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAS,WAAW,CAAC,EAAE,CAAC;gBAC/D,cAAc,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAA;YACnE,CAAC;YACD,WAAW,CAAC,cAAyC,CAAC,CAAA;QACxD,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAA;IAEhD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;YACrC,MAAM,GAAG,GAAG,GAAG,MAAM,iBAAiB,KAAK,aAAa,OAAO,aAAa,SAAS,iBAAiB,UAAU,EAAE,CAAA;YAClH,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAA0B,GAAG,CAAC,CAAA;gBAE9D,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAC/C,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,0BAAkB,CAAC,IAAI,CAC1C,CAAA;gBACzB,eAAe,CAAC,oBAAoB,CAAC,CAAA;gBAErC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAChD,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,KAAK,0BAAkB,CAAC,KAAK,CAC1C,CAAA;gBAC1B,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;gBAEvC,mBAAmB,CAAC,oBAAoB,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;gBACxD,QAAQ,CAAC,IAAI,CAAC,CAAA;YAChB,CAAC;QACH,CAAC,CAAA;QACD,mBAAmB,EAAE,CAAA;IACvB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAC7C,KAAK;QACL,sBAAsB,EAAE;YACtB,cAAc;YACd,WAAW;YACX,gBAAgB;YAChB,QAAQ;SACT;KACF,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,22 +1,21 @@
1
1
  {
2
- "type": "module",
3
2
  "name": "@botonic/plugin-flow-builder",
4
- "version": "0.57.0-rslib-esm.2",
5
- "main": "./lib/index.js",
6
- "module": "./lib/index.js",
3
+ "version": "0.57.0",
4
+ "main": "./lib/cjs/index.js",
5
+ "module": "./lib/esm/index.js",
7
6
  "description": "Use Flow Builder to show your contents",
8
7
  "scripts": {
9
- "build": "rslib build --no-env",
10
- "build:watch": "rslib build --watch --no-env",
11
- "test": "vitest run --coverage",
8
+ "build": "rm -rf lib && ../../node_modules/.bin/tsc -p tsconfig.json && ../../node_modules/.bin/tsc -p tsconfig.esm.json",
9
+ "build:watch": "npm run build -- --watch",
10
+ "test": "../../node_modules/.bin/jest --coverage",
12
11
  "cloc": "../../scripts/qa/cloc-package.sh .",
13
- "prepublishOnly": "npm run build && npm run test && npm run lint",
12
+ "prepublishOnly": "rm -rf lib && npm i && npm run build",
14
13
  "lint": "biome check --write src/ tests/",
15
14
  "lint:check": "biome check src/ tests/",
16
15
  "format": "biome format --write src/ tests/"
17
16
  },
18
17
  "dependencies": {
19
- "@botonic/react": "0.57.0-rslib-esm.2",
18
+ "@botonic/react": "^0.57.0",
20
19
  "axios": "^1.18.1",
21
20
  "uuid": "^10.0.0"
22
21
  },
@@ -34,7 +33,7 @@
34
33
  "README.md"
35
34
  ],
36
35
  "engines": {
37
- "node": ">=22.19.0",
36
+ "node": ">=22.23.2",
38
37
  "npm": ">=10.0.0"
39
38
  },
40
39
  "keywords": [
@@ -47,6 +46,5 @@
47
46
  ],
48
47
  "devDependencies": {
49
48
  "@types/uuid": "^10.0.0"
50
- },
51
- "types": "./lib/index.d.ts"
49
+ }
52
50
  }
@@ -1,3 +1,4 @@
1
+ import { NluType } from '@botonic/core'
1
2
  import type { FlowContent } from '../content-fields/index'
2
3
  import { splitAiAgentContents } from '../utils/ai-agent'
3
4
  import type { FlowBuilderContext } from './context'
@@ -46,5 +47,11 @@ export async function getContentsByAiAgentFromUserInput({
46
47
  }
47
48
  }
48
49
 
50
+ request.input.nluResolution = {
51
+ type: NluType.AiAgent,
52
+ matchedValue: 'ai-agent-from-user-input',
53
+ payload: undefined,
54
+ }
55
+
49
56
  return contents
50
57
  }
@@ -1,3 +1,4 @@
1
+ import { NluType } from '@botonic/core'
1
2
  import type { FlowBuilderApi } from '../api'
2
3
  import { MAIN_FLOW_NAME } from '../constants'
3
4
  import {
@@ -51,6 +52,11 @@ export async function getContentsByFirstInteraction(
51
52
  if (request.input.nluResolution || inputHasTextOrTranscript(request.input)) {
52
53
  const contentsByUserInput = await getContentsByUserInput(context)
53
54
 
55
+ if (request.input.nluResolution?.type === NluType.AiAgent) {
56
+ const startContents = await flowBuilderPlugin.getStartContents()
57
+ return [...startContents, ...contentsByUserInput]
58
+ }
59
+
54
60
  return [...firstInteractionContents, ...contentsByUserInput]
55
61
  }
56
62
 
@@ -1,4 +1,9 @@
1
- import { type BotContext, INPUT } from '@botonic/core'
1
+ import {
2
+ type BotContext,
3
+ INPUT,
4
+ type Input,
5
+ WhatsappInputOrigin,
6
+ } from '@botonic/core'
2
7
  import { EMPTY_PAYLOAD } from '../constants'
3
8
  import type { FlowContent } from '../content-fields'
4
9
  import { inputHasTextOrTranscript } from '../utils/input'
@@ -35,7 +40,10 @@ export async function getContents(
35
40
  return await getContentsByFallback(context)
36
41
  }
37
42
 
38
- if (inputHasTextOrTranscript(botContext.input)) {
43
+ if (
44
+ inputHasTextOrTranscript(botContext.input) ||
45
+ isContactRequested(botContext.input)
46
+ ) {
39
47
  const aiAgentContents = await getContentsByAiAgentFromUserInput(context)
40
48
  if (aiAgentContents.length > 0) {
41
49
  return aiAgentContents
@@ -44,3 +52,10 @@ export async function getContents(
44
52
 
45
53
  return await getContentsByFallback(context)
46
54
  }
55
+
56
+ function isContactRequested(input: Input) {
57
+ return (
58
+ input.type === INPUT.CONTACT &&
59
+ input.origin === WhatsappInputOrigin.ContactRequest
60
+ )
61
+ }
@@ -11,8 +11,10 @@ import {
11
11
  FlowAiAgent,
12
12
  FlowAiAgentRouter,
13
13
  type FlowContent,
14
+ FlowWhatsappRequestContactInfoNode,
14
15
  } from '../content-fields'
15
16
  import { splitAiAgentContents } from '../utils/ai-agent'
17
+ import { getFlowBuilderPlugin } from '../utils/get-flow-builder-plugin'
16
18
  import { getFlowBuilderActionContext } from './context'
17
19
  import { getContentsByFirstInteraction } from './first-interaction'
18
20
  import { getContents } from './get-contents'
@@ -65,6 +67,11 @@ export class FlowBuilderAction extends React.Component<FlowBuilderActionProps> {
65
67
  }
66
68
 
67
69
  await content.processContent(botContext)
70
+
71
+ if (content instanceof FlowWhatsappRequestContactInfoNode) {
72
+ const flowBuilderPlugin = getFlowBuilderPlugin(botContext.plugins)
73
+ flowBuilderPlugin.cmsApi.setWhatsappRequestContactId(content.id)
74
+ }
68
75
  }
69
76
 
70
77
  return contents
package/src/api.ts CHANGED
@@ -1,7 +1,12 @@
1
- import type { PluginPreRequest } from '@botonic/core'
1
+ import type { BotContext } from '@botonic/core'
2
2
  import axios from 'axios'
3
3
 
4
- import { AI_AGENTS_FLOW_NAME, SEPARATOR, UUID_REGEXP } from './constants'
4
+ import {
5
+ AI_AGENTS_FLOW_NAME,
6
+ PUSH_FLOW_PAYLOAD,
7
+ SEPARATOR,
8
+ UUID_REGEXP,
9
+ } from './constants'
5
10
  import {
6
11
  type HtBotActionNode,
7
12
  type HtCaptureUserInputNode,
@@ -18,6 +23,7 @@ import {
18
23
  type HtRatingButton,
19
24
  type HtRatingNode,
20
25
  type HtSmartIntentNode,
26
+ type HtWhatsappRequestContactInfoNode,
21
27
  } from './content-fields/hubtype-fields'
22
28
  import {
23
29
  type FlowBuilderApiOptions,
@@ -30,7 +36,7 @@ export class FlowBuilderApi {
30
36
  url: string
31
37
  flowUrl: string
32
38
  flow: HtFlowBuilderData
33
- request: PluginPreRequest
39
+ botContext: BotContext
34
40
 
35
41
  private constructor() {}
36
42
 
@@ -38,12 +44,12 @@ export class FlowBuilderApi {
38
44
  const newApi = new FlowBuilderApi()
39
45
 
40
46
  newApi.url = options.url
41
- newApi.request = options.request
47
+ newApi.botContext = options.botContext
42
48
  // TODO: Refactor later to combine logic from `FlowBuilderApi.create`, `resolveFlowUrl` and `getAccessToken` to be in one place
43
49
  if (process.env.NODE_ENV === ProcessEnvNodeEnvs.DEVELOPMENT) {
44
50
  await newApi.updateSessionWithUserInfo(options.accessToken)
45
51
  }
46
- const updatedRequest = newApi.request
52
+ const updatedRequest = newApi.botContext
47
53
  newApi.flowUrl = options.flowUrl.replace(
48
54
  '{bot_id}',
49
55
  updatedRequest.session.bot.id
@@ -64,8 +70,8 @@ export class FlowBuilderApi {
64
70
  const response = await axios.get(url, {
65
71
  headers: { Authorization: `Bearer ${token}` },
66
72
  })
67
- this.request.session.organization_id = response.data.organization_id
68
- this.request.session.bot.id = response.data.bot_id
73
+ this.botContext.session.organization_id = response.data.organization_id
74
+ this.botContext.session.bot.id = response.data.bot_id
69
75
  }
70
76
 
71
77
  getNodeByFlowId(id: string): HtNodeWithContent {
@@ -259,23 +265,23 @@ export class FlowBuilderApi {
259
265
  }
260
266
 
261
267
  getCaptureUserInputId(): string | undefined {
262
- return this.request.session.capture_user_input?.node_id
268
+ return this.botContext.session.capture_user_input?.node_id
263
269
  }
264
270
 
265
271
  setCaptureUserInputId(id: string): void {
266
- if (this.request.session.capture_user_input) {
267
- this.request.session.capture_user_input.node_id = id
272
+ if (this.botContext.session.capture_user_input) {
273
+ this.botContext.session.capture_user_input.node_id = id
268
274
  }
269
- this.request.session.capture_user_input = { node_id: id }
275
+ this.botContext.session.capture_user_input = { node_id: id }
270
276
  }
271
277
 
272
278
  removeCaptureUserInputId(): void {
273
- this.request.session.capture_user_input = undefined
279
+ this.botContext.session.capture_user_input = undefined
274
280
  }
275
281
 
276
282
  setUserExtraDataVariable(key: string, value: string): void {
277
- if (this.request.session.user.extra_data) {
278
- this.request.session.user.extra_data[key] = value
283
+ if (this.botContext.session.user.extra_data) {
284
+ this.botContext.session.user.extra_data[key] = value
279
285
  }
280
286
  }
281
287
 
@@ -287,14 +293,45 @@ export class FlowBuilderApi {
287
293
  return this.getNodeById<HtCaptureUserInputNode>(captureUserInputId)
288
294
  }
289
295
 
296
+ getSessionWhatsappRequestContactId(): string | undefined {
297
+ return this.botContext.session.whatsapp_request_contact?.id
298
+ }
299
+
300
+ setWhatsappRequestContactId(id: string): void {
301
+ if (this.botContext.session.whatsapp_request_contact) {
302
+ this.botContext.session.whatsapp_request_contact.id = id
303
+ }
304
+ this.botContext.session.whatsapp_request_contact = { id }
305
+ }
306
+
307
+ removeWhatsappRequestContactId(): void {
308
+ this.botContext.session.whatsapp_request_contact = undefined
309
+ }
310
+
311
+ getWhatsappRequestContactInfoNode():
312
+ | HtWhatsappRequestContactInfoNode
313
+ | undefined {
314
+ const whatsappRequestContactId = this.getSessionWhatsappRequestContactId()
315
+ if (!whatsappRequestContactId) {
316
+ return undefined
317
+ }
318
+ return this.getNodeById<HtWhatsappRequestContactInfoNode>(
319
+ whatsappRequestContactId
320
+ )
321
+ }
322
+
290
323
  getResolvedLocale(): string {
291
324
  const flowLocales = this.flow.locales
292
325
  const defaultLocaleCode = this.flow.default_locale_code
293
326
 
294
327
  return new FlowLocale(
295
- this.request,
328
+ this.botContext,
296
329
  flowLocales,
297
330
  defaultLocaleCode
298
331
  ).resolve()
299
332
  }
333
+
334
+ isPushFlowPayload(payload?: string): boolean {
335
+ return payload?.startsWith(PUSH_FLOW_PAYLOAD) ?? false
336
+ }
300
337
  }
@@ -0,0 +1,153 @@
1
+ import {
2
+ type BotContext,
3
+ INPUT,
4
+ PROVIDER,
5
+ WhatsappInputOrigin,
6
+ } from '@botonic/core'
7
+
8
+ import type { FlowBuilderApi } from './api'
9
+ import {
10
+ EMPTY_PAYLOAD,
11
+ ON_CLOSE_HANDOFF_PAYLOAD,
12
+ SEPARATOR,
13
+ SOURCE_INFO_SEPARATOR,
14
+ } from './constants'
15
+ import { FlowHandoff } from './content-fields'
16
+ import {
17
+ type HtBotActionNode,
18
+ type HtHandoffNode,
19
+ HtNodeWithContentType,
20
+ } from './content-fields/hubtype-fields'
21
+ import { getNextPayloadByUserInput } from './user-input'
22
+ import type { SmartIntentsInferenceConfig } from './user-input/smart-intent'
23
+ import { inputHasTextOrTranscript } from './utils/input'
24
+
25
+ export class BotContextManager {
26
+ constructor(
27
+ private readonly cmsApi: FlowBuilderApi,
28
+ private readonly smartIntentsConfig: SmartIntentsInferenceConfig
29
+ ) {}
30
+
31
+ async prepareInputForRoutes(botContext: BotContext): Promise<void> {
32
+ // When AI Agent is executed in Whatsapp, button payloads come as referral and must be converted to text being processed by the agent.
33
+ this.convertWhatsappAiAgentEmptyPayloads(botContext)
34
+
35
+ // If the payload is a push-flow payload, set first interaction to false
36
+ this.updateFirstInteractionOnPushFlowPayload(botContext)
37
+
38
+ this.resolveWhatsappContactRequestPayload(botContext)
39
+ this.resolveOnCloseHandoffPayload(botContext)
40
+
41
+ await this.resolvePayloadFromUserTextInput(botContext)
42
+
43
+ this.cmsApi.removeCaptureUserInputId()
44
+ this.removePayloadSourceSuffix(botContext)
45
+ this.resolveBotActionPayload(botContext)
46
+ }
47
+
48
+ private async updateFirstInteractionOnPushFlowPayload(
49
+ botContext: BotContext
50
+ ): Promise<void> {
51
+ if (this.cmsApi.isPushFlowPayload(botContext.input.payload)) {
52
+ botContext.session.is_first_interaction = false
53
+ }
54
+ }
55
+
56
+ private async resolvePayloadFromUserTextInput(
57
+ botContext: BotContext
58
+ ): Promise<void> {
59
+ const checkUserTextInput =
60
+ inputHasTextOrTranscript(botContext.input) && !botContext.input.payload
61
+
62
+ if (!checkUserTextInput) {
63
+ return
64
+ }
65
+
66
+ const resolvedLocale = this.cmsApi.getResolvedLocale()
67
+ const nextPayload = await getNextPayloadByUserInput(
68
+ this.cmsApi,
69
+ resolvedLocale,
70
+ botContext,
71
+ this.smartIntentsConfig
72
+ )
73
+ botContext.input.payload = nextPayload
74
+ }
75
+
76
+ private resolveWhatsappContactRequestPayload(botContext: BotContext): void {
77
+ if (
78
+ botContext.input.type !== INPUT.CONTACT ||
79
+ botContext.input.origin !== WhatsappInputOrigin.ContactRequest
80
+ ) {
81
+ return
82
+ }
83
+
84
+ const whatsappRequestContactInfoNode =
85
+ this.cmsApi.getWhatsappRequestContactInfoNode()
86
+
87
+ if (whatsappRequestContactInfoNode) {
88
+ botContext.input.payload = this.cmsApi.getPayload(
89
+ whatsappRequestContactInfoNode.content.button.target
90
+ )
91
+ }
92
+
93
+ this.cmsApi.removeWhatsappRequestContactId()
94
+ }
95
+
96
+ private resolveOnCloseHandoffPayload(botContext: BotContext): void {
97
+ if (botContext.input.payload?.startsWith(ON_CLOSE_HANDOFF_PAYLOAD)) {
98
+ const handoffNodeId = botContext.input.payload.split(SEPARATOR)[1]
99
+ const handoffNode = this.cmsApi.getNodeById<HtHandoffNode>(handoffNodeId)
100
+ if (handoffNode && handoffNode.type === HtNodeWithContentType.HANDOFF) {
101
+ const flowHandoff = FlowHandoff.fromHubtypeCMS(
102
+ handoffNode,
103
+ this.cmsApi.getResolvedLocale(),
104
+ this.cmsApi
105
+ )
106
+ botContext.input.payload = flowHandoff.resolveOnClosePayload(botContext)
107
+ }
108
+ }
109
+ }
110
+
111
+ private convertWhatsappAiAgentEmptyPayloads(botContext: BotContext): void {
112
+ if (botContext.session.user.provider === PROVIDER.WHATSAPP) {
113
+ const shouldUseReferral =
114
+ botContext.input.referral &&
115
+ botContext.input.payload?.startsWith(EMPTY_PAYLOAD)
116
+
117
+ if (shouldUseReferral) {
118
+ botContext.input.type = INPUT.TEXT
119
+ botContext.input.data = botContext.input.referral
120
+ }
121
+ }
122
+ }
123
+
124
+ private removePayloadSourceSuffix(botContext: BotContext): void {
125
+ if (botContext.input.payload) {
126
+ botContext.input.payload = this.removeSourceSuffix(
127
+ botContext.input.payload
128
+ )
129
+ }
130
+ }
131
+
132
+ private resolveBotActionPayload(botContext: BotContext): void {
133
+ if (
134
+ botContext.input.payload &&
135
+ this.cmsApi.isBotAction(botContext.input.payload)
136
+ ) {
137
+ const cmsBotAction = this.cmsApi.getNodeById<HtBotActionNode>(
138
+ botContext.input.payload
139
+ )
140
+
141
+ botContext.input.payload =
142
+ this.cmsApi.createPayloadWithParams(cmsBotAction)
143
+
144
+ // Re-execute convertWhatsappAiAgentEmptyPayloads function to handle
145
+ // the case that a BotAction has a payload equals to EMPTY_PAYLOAD
146
+ this.convertWhatsappAiAgentEmptyPayloads(botContext)
147
+ }
148
+ }
149
+
150
+ private removeSourceSuffix(payload: string): string {
151
+ return payload.split(SOURCE_INFO_SEPARATOR)[0]
152
+ }
153
+ }