@botonic/plugin-hubtype-analytics 0.46.0 → 2.23.1

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 (233) hide show
  1. package/CHANGELOG.md +205 -0
  2. package/README.md +13 -132
  3. package/package.json +18 -39
  4. package/src/index.d.ts +1 -0
  5. package/src/index.js +2 -0
  6. package/src/index.js.map +1 -0
  7. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-ai-agent.d.ts +3 -5
  8. package/src/lib/event-models/bot/ht-event-ai-agent.js +35 -0
  9. package/src/lib/event-models/bot/ht-event-ai-agent.js.map +1 -0
  10. package/{lib/esm/event-models → src/lib/event-models/bot}/ht-event-bot-action.d.ts +2 -2
  11. package/src/lib/event-models/bot/ht-event-bot-action.js +17 -0
  12. package/src/lib/event-models/bot/ht-event-bot-action.js.map +1 -0
  13. package/{lib/esm/event-models → src/lib/event-models/bot}/ht-event-capture-user-input.d.ts +2 -2
  14. package/{lib/esm/event-models → src/lib/event-models/bot}/ht-event-capture-user-input.js +5 -9
  15. package/src/lib/event-models/bot/ht-event-capture-user-input.js.map +1 -0
  16. package/{lib/esm/event-models → src/lib/event-models/bot}/ht-event-conditional-channel.d.ts +2 -2
  17. package/src/lib/event-models/bot/ht-event-conditional-channel.js +17 -0
  18. package/src/lib/event-models/bot/ht-event-conditional-channel.js.map +1 -0
  19. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-conditional-country.d.ts +2 -2
  20. package/src/lib/event-models/bot/ht-event-conditional-country.js +17 -0
  21. package/src/lib/event-models/bot/ht-event-conditional-country.js.map +1 -0
  22. package/{lib/esm/event-models → src/lib/event-models/bot}/ht-event-conditional-custom.d.ts +2 -2
  23. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-conditional-custom.js +6 -10
  24. package/src/lib/event-models/bot/ht-event-conditional-custom.js.map +1 -0
  25. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-conditional-queue-status.d.ts +2 -2
  26. package/{lib/esm/event-models → src/lib/event-models/bot}/ht-event-conditional-queue-status.js +5 -9
  27. package/src/lib/event-models/bot/ht-event-conditional-queue-status.js.map +1 -0
  28. package/{lib/esm/event-models → src/lib/event-models/bot}/ht-event-fallback.d.ts +3 -2
  29. package/src/lib/event-models/bot/ht-event-fallback.js +17 -0
  30. package/src/lib/event-models/bot/ht-event-fallback.js.map +1 -0
  31. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-flow.d.ts +3 -2
  32. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-flow.js +5 -9
  33. package/src/lib/event-models/bot/ht-event-flow.js.map +1 -0
  34. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-handoff-option.d.ts +2 -2
  35. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-handoff-option.js +5 -8
  36. package/src/lib/event-models/bot/ht-event-handoff-option.js.map +1 -0
  37. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-handoff.d.ts +2 -2
  38. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-handoff.js +4 -8
  39. package/src/lib/event-models/bot/ht-event-handoff.js.map +1 -0
  40. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-intent-smart.d.ts +3 -2
  41. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-intent-smart.js +5 -9
  42. package/src/lib/event-models/bot/ht-event-intent-smart.js.map +1 -0
  43. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-keyword.d.ts +3 -2
  44. package/{lib/esm/event-models → src/lib/event-models/bot}/ht-event-keyword.js +5 -9
  45. package/src/lib/event-models/bot/ht-event-keyword.js.map +1 -0
  46. package/{lib/esm/event-models → src/lib/event-models/bot}/ht-event-knowledge-base.d.ts +3 -2
  47. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-knowledge-base.js +5 -9
  48. package/src/lib/event-models/bot/ht-event-knowledge-base.js.map +1 -0
  49. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-redirect-flow.d.ts +2 -3
  50. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-redirect-flow.js +5 -9
  51. package/src/lib/event-models/bot/ht-event-redirect-flow.js.map +1 -0
  52. package/{lib/cjs/event-models → src/lib/event-models/bot}/ht-event-webview-action-triggered.d.ts +2 -2
  53. package/src/lib/event-models/bot/ht-event-webview-action-triggered.js +18 -0
  54. package/src/lib/event-models/bot/ht-event-webview-action-triggered.js.map +1 -0
  55. package/{lib/cjs → src/lib}/event-models/ht-event.d.ts +2 -2
  56. package/{lib/esm → src/lib}/event-models/ht-event.js +3 -7
  57. package/src/lib/event-models/ht-event.js.map +1 -0
  58. package/src/lib/event-models/index.d.ts +21 -0
  59. package/src/lib/event-models/index.js +22 -0
  60. package/src/lib/event-models/index.js.map +1 -0
  61. package/src/lib/event-models/test-helpers.d.ts +11 -0
  62. package/src/lib/event-models/test-helpers.js +50 -0
  63. package/src/lib/event-models/test-helpers.js.map +1 -0
  64. package/src/lib/event-models/types.d.ts +12 -0
  65. package/src/lib/event-models/types.js +7 -0
  66. package/src/lib/event-models/types.js.map +1 -0
  67. package/src/lib/event-models/web/ht-event-custom.d.ts +8 -0
  68. package/src/lib/event-models/web/ht-event-custom.js +12 -0
  69. package/src/lib/event-models/web/ht-event-custom.js.map +1 -0
  70. package/{lib/cjs/event-models → src/lib/event-models/web}/ht-event-feedback-knowledgebase.d.ts +2 -2
  71. package/{lib/cjs/event-models → src/lib/event-models/web}/ht-event-feedback-knowledgebase.js +4 -8
  72. package/src/lib/event-models/web/ht-event-feedback-knowledgebase.js.map +1 -0
  73. package/{lib/cjs/event-models → src/lib/event-models/web}/ht-event-feedback.d.ts +2 -2
  74. package/{lib/esm/event-models → src/lib/event-models/web}/ht-event-feedback.js +4 -8
  75. package/src/lib/event-models/web/ht-event-feedback.js.map +1 -0
  76. package/{lib/esm/event-models → src/lib/event-models/web}/ht-event-webview-end.d.ts +2 -2
  77. package/{lib/esm/event-models → src/lib/event-models/web}/ht-event-webview-end.js +4 -8
  78. package/src/lib/event-models/web/ht-event-webview-end.js.map +1 -0
  79. package/{lib/cjs/event-models → src/lib/event-models/web}/ht-event-webview-step.d.ts +2 -2
  80. package/src/lib/event-models/web/ht-event-webview-step.js +15 -0
  81. package/src/lib/event-models/web/ht-event-webview-step.js.map +1 -0
  82. package/src/lib/index.d.ts +17 -0
  83. package/src/lib/index.js +107 -0
  84. package/src/lib/index.js.map +1 -0
  85. package/{lib/cjs → src/lib}/utils.d.ts +1 -1
  86. package/src/lib/utils.js +56 -0
  87. package/src/lib/utils.js.map +1 -0
  88. package/lib/cjs/event-models/ht-event-ai-agent.js +0 -55
  89. package/lib/cjs/event-models/ht-event-ai-agent.js.map +0 -1
  90. package/lib/cjs/event-models/ht-event-bot-action.d.ts +0 -12
  91. package/lib/cjs/event-models/ht-event-bot-action.js +0 -21
  92. package/lib/cjs/event-models/ht-event-bot-action.js.map +0 -1
  93. package/lib/cjs/event-models/ht-event-capture-user-input.d.ts +0 -15
  94. package/lib/cjs/event-models/ht-event-capture-user-input.js +0 -24
  95. package/lib/cjs/event-models/ht-event-capture-user-input.js.map +0 -1
  96. package/lib/cjs/event-models/ht-event-conditional-channel.d.ts +0 -12
  97. package/lib/cjs/event-models/ht-event-conditional-channel.js +0 -21
  98. package/lib/cjs/event-models/ht-event-conditional-channel.js.map +0 -1
  99. package/lib/cjs/event-models/ht-event-conditional-country.js +0 -21
  100. package/lib/cjs/event-models/ht-event-conditional-country.js.map +0 -1
  101. package/lib/cjs/event-models/ht-event-conditional-custom.d.ts +0 -13
  102. package/lib/cjs/event-models/ht-event-conditional-custom.js.map +0 -1
  103. package/lib/cjs/event-models/ht-event-conditional-queue-status.js +0 -24
  104. package/lib/cjs/event-models/ht-event-conditional-queue-status.js.map +0 -1
  105. package/lib/cjs/event-models/ht-event-custom.d.ts +0 -7
  106. package/lib/cjs/event-models/ht-event-custom.js +0 -16
  107. package/lib/cjs/event-models/ht-event-custom.js.map +0 -1
  108. package/lib/cjs/event-models/ht-event-fallback.d.ts +0 -12
  109. package/lib/cjs/event-models/ht-event-fallback.js +0 -21
  110. package/lib/cjs/event-models/ht-event-fallback.js.map +0 -1
  111. package/lib/cjs/event-models/ht-event-feedback-knowledgebase.js.map +0 -1
  112. package/lib/cjs/event-models/ht-event-feedback.js +0 -21
  113. package/lib/cjs/event-models/ht-event-feedback.js.map +0 -1
  114. package/lib/cjs/event-models/ht-event-flow.js.map +0 -1
  115. package/lib/cjs/event-models/ht-event-handoff-option.js.map +0 -1
  116. package/lib/cjs/event-models/ht-event-handoff.js.map +0 -1
  117. package/lib/cjs/event-models/ht-event-intent-smart.js.map +0 -1
  118. package/lib/cjs/event-models/ht-event-keyword.js +0 -23
  119. package/lib/cjs/event-models/ht-event-keyword.js.map +0 -1
  120. package/lib/cjs/event-models/ht-event-knowledge-base.d.ts +0 -16
  121. package/lib/cjs/event-models/ht-event-knowledge-base.js.map +0 -1
  122. package/lib/cjs/event-models/ht-event-redirect-flow.js.map +0 -1
  123. package/lib/cjs/event-models/ht-event-webview-action-triggered.js +0 -22
  124. package/lib/cjs/event-models/ht-event-webview-action-triggered.js.map +0 -1
  125. package/lib/cjs/event-models/ht-event-webview-end.d.ts +0 -13
  126. package/lib/cjs/event-models/ht-event-webview-end.js +0 -21
  127. package/lib/cjs/event-models/ht-event-webview-end.js.map +0 -1
  128. package/lib/cjs/event-models/ht-event-webview-step.js +0 -19
  129. package/lib/cjs/event-models/ht-event-webview-step.js.map +0 -1
  130. package/lib/cjs/event-models/ht-event.js +0 -18
  131. package/lib/cjs/event-models/ht-event.js.map +0 -1
  132. package/lib/cjs/event-models/index.d.ts +0 -21
  133. package/lib/cjs/event-models/index.js +0 -46
  134. package/lib/cjs/event-models/index.js.map +0 -1
  135. package/lib/cjs/index.d.ts +0 -17
  136. package/lib/cjs/index.js +0 -70
  137. package/lib/cjs/index.js.map +0 -1
  138. package/lib/cjs/types.d.ts +0 -14
  139. package/lib/cjs/types.js +0 -13
  140. package/lib/cjs/types.js.map +0 -1
  141. package/lib/cjs/utils.js +0 -60
  142. package/lib/cjs/utils.js.map +0 -1
  143. package/lib/esm/event-models/ht-event-ai-agent.d.ts +0 -28
  144. package/lib/esm/event-models/ht-event-ai-agent.js +0 -55
  145. package/lib/esm/event-models/ht-event-ai-agent.js.map +0 -1
  146. package/lib/esm/event-models/ht-event-bot-action.js +0 -21
  147. package/lib/esm/event-models/ht-event-bot-action.js.map +0 -1
  148. package/lib/esm/event-models/ht-event-capture-user-input.js.map +0 -1
  149. package/lib/esm/event-models/ht-event-conditional-channel.js +0 -21
  150. package/lib/esm/event-models/ht-event-conditional-channel.js.map +0 -1
  151. package/lib/esm/event-models/ht-event-conditional-country.d.ts +0 -12
  152. package/lib/esm/event-models/ht-event-conditional-country.js +0 -21
  153. package/lib/esm/event-models/ht-event-conditional-country.js.map +0 -1
  154. package/lib/esm/event-models/ht-event-conditional-custom.js +0 -22
  155. package/lib/esm/event-models/ht-event-conditional-custom.js.map +0 -1
  156. package/lib/esm/event-models/ht-event-conditional-queue-status.d.ts +0 -15
  157. package/lib/esm/event-models/ht-event-conditional-queue-status.js.map +0 -1
  158. package/lib/esm/event-models/ht-event-custom.d.ts +0 -7
  159. package/lib/esm/event-models/ht-event-custom.js +0 -16
  160. package/lib/esm/event-models/ht-event-custom.js.map +0 -1
  161. package/lib/esm/event-models/ht-event-fallback.js +0 -21
  162. package/lib/esm/event-models/ht-event-fallback.js.map +0 -1
  163. package/lib/esm/event-models/ht-event-feedback-knowledgebase.d.ts +0 -15
  164. package/lib/esm/event-models/ht-event-feedback-knowledgebase.js +0 -23
  165. package/lib/esm/event-models/ht-event-feedback-knowledgebase.js.map +0 -1
  166. package/lib/esm/event-models/ht-event-feedback.d.ts +0 -13
  167. package/lib/esm/event-models/ht-event-feedback.js.map +0 -1
  168. package/lib/esm/event-models/ht-event-flow.d.ts +0 -11
  169. package/lib/esm/event-models/ht-event-flow.js +0 -20
  170. package/lib/esm/event-models/ht-event-flow.js.map +0 -1
  171. package/lib/esm/event-models/ht-event-handoff-option.d.ts +0 -13
  172. package/lib/esm/event-models/ht-event-handoff-option.js +0 -20
  173. package/lib/esm/event-models/ht-event-handoff-option.js.map +0 -1
  174. package/lib/esm/event-models/ht-event-handoff.d.ts +0 -17
  175. package/lib/esm/event-models/ht-event-handoff.js +0 -25
  176. package/lib/esm/event-models/ht-event-handoff.js.map +0 -1
  177. package/lib/esm/event-models/ht-event-intent-smart.d.ts +0 -14
  178. package/lib/esm/event-models/ht-event-intent-smart.js +0 -23
  179. package/lib/esm/event-models/ht-event-intent-smart.js.map +0 -1
  180. package/lib/esm/event-models/ht-event-keyword.d.ts +0 -14
  181. package/lib/esm/event-models/ht-event-keyword.js.map +0 -1
  182. package/lib/esm/event-models/ht-event-knowledge-base.js +0 -25
  183. package/lib/esm/event-models/ht-event-knowledge-base.js.map +0 -1
  184. package/lib/esm/event-models/ht-event-redirect-flow.d.ts +0 -14
  185. package/lib/esm/event-models/ht-event-redirect-flow.js +0 -22
  186. package/lib/esm/event-models/ht-event-redirect-flow.js.map +0 -1
  187. package/lib/esm/event-models/ht-event-webview-action-triggered.d.ts +0 -13
  188. package/lib/esm/event-models/ht-event-webview-action-triggered.js +0 -22
  189. package/lib/esm/event-models/ht-event-webview-action-triggered.js.map +0 -1
  190. package/lib/esm/event-models/ht-event-webview-end.js.map +0 -1
  191. package/lib/esm/event-models/ht-event-webview-step.d.ts +0 -11
  192. package/lib/esm/event-models/ht-event-webview-step.js +0 -19
  193. package/lib/esm/event-models/ht-event-webview-step.js.map +0 -1
  194. package/lib/esm/event-models/ht-event.d.ts +0 -14
  195. package/lib/esm/event-models/ht-event.js.map +0 -1
  196. package/lib/esm/event-models/index.d.ts +0 -21
  197. package/lib/esm/event-models/index.js +0 -46
  198. package/lib/esm/event-models/index.js.map +0 -1
  199. package/lib/esm/index.d.ts +0 -18
  200. package/lib/esm/index.js +0 -70
  201. package/lib/esm/index.js.map +0 -1
  202. package/lib/esm/types.d.ts +0 -14
  203. package/lib/esm/types.js +0 -13
  204. package/lib/esm/types.js.map +0 -1
  205. package/lib/esm/utils.d.ts +0 -3
  206. package/lib/esm/utils.js +0 -60
  207. package/lib/esm/utils.js.map +0 -1
  208. package/src/event-models/ht-event-ai-agent.ts +0 -94
  209. package/src/event-models/ht-event-bot-action.ts +0 -30
  210. package/src/event-models/ht-event-capture-user-input.ts +0 -36
  211. package/src/event-models/ht-event-conditional-channel.ts +0 -30
  212. package/src/event-models/ht-event-conditional-country.ts +0 -30
  213. package/src/event-models/ht-event-conditional-custom.ts +0 -32
  214. package/src/event-models/ht-event-conditional-queue-status.ts +0 -36
  215. package/src/event-models/ht-event-custom.ts +0 -20
  216. package/src/event-models/ht-event-fallback.ts +0 -30
  217. package/src/event-models/ht-event-feedback-knowledgebase.ts +0 -35
  218. package/src/event-models/ht-event-feedback.ts +0 -35
  219. package/src/event-models/ht-event-flow.ts +0 -28
  220. package/src/event-models/ht-event-handoff-option.ts +0 -30
  221. package/src/event-models/ht-event-handoff.ts +0 -39
  222. package/src/event-models/ht-event-intent-smart.ts +0 -34
  223. package/src/event-models/ht-event-keyword.ts +0 -34
  224. package/src/event-models/ht-event-knowledge-base.ts +0 -38
  225. package/src/event-models/ht-event-redirect-flow.ts +0 -29
  226. package/src/event-models/ht-event-webview-action-triggered.ts +0 -32
  227. package/src/event-models/ht-event-webview-end.ts +0 -31
  228. package/src/event-models/ht-event-webview-step.ts +0 -27
  229. package/src/event-models/ht-event.ts +0 -31
  230. package/src/event-models/index.ts +0 -21
  231. package/src/index.ts +0 -82
  232. package/src/types.ts +0 -90
  233. package/src/utils.ts +0 -103
@@ -1,32 +0,0 @@
1
- import {
2
- EventAction,
3
- type EventConditionalCustom,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventConditionalCustom extends HtEvent {
10
- flow_thread_id: string
11
- flow_id: string
12
- flow_name: string
13
- flow_node_id: string
14
- flow_node_content_id: string
15
- flow_node_is_meaningful: boolean
16
- conditional_variable: string
17
- variable_format: string
18
-
19
- constructor(event: EventConditionalCustom, requestData: RequestData) {
20
- super(event, requestData)
21
- this.type = EventType.BotEvent
22
- this.action = EventAction.ConditionalCustom
23
- this.flow_thread_id = event.flowThreadId
24
- this.flow_id = event.flowId
25
- this.flow_name = event.flowName
26
- this.flow_node_id = event.flowNodeId
27
- this.flow_node_content_id = event.flowNodeContentId
28
- this.conditional_variable = event.conditionalVariable
29
- this.flow_node_is_meaningful = event.flowNodeIsMeaningful
30
- this.variable_format = event.variableFormat
31
- }
32
- }
@@ -1,36 +0,0 @@
1
- import {
2
- EventAction,
3
- type EventConditionalQueueStatus,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventConditionalQueueStatus extends HtEvent {
10
- flow_thread_id: string
11
- flow_id: string
12
- flow_name: string
13
- flow_node_id: string
14
- flow_node_content_id: string
15
- flow_node_is_meaningful: boolean
16
- queue_id: string
17
- queue_name: string
18
- is_queue_open: boolean
19
- is_available_agent: boolean
20
-
21
- constructor(event: EventConditionalQueueStatus, requestData: RequestData) {
22
- super(event, requestData)
23
- this.type = EventType.BotEvent
24
- this.action = EventAction.ConditionalQueueStatus
25
- this.flow_thread_id = event.flowThreadId
26
- this.flow_id = event.flowId
27
- this.flow_name = event.flowName
28
- this.flow_node_id = event.flowNodeId
29
- this.flow_node_content_id = event.flowNodeContentId
30
- this.flow_node_is_meaningful = event.flowNodeIsMeaningful
31
- this.queue_id = event.queueId
32
- this.queue_name = event.queueName
33
- this.is_queue_open = event.isQueueOpen
34
- this.is_available_agent = event.isAvailableAgent
35
- }
36
- }
@@ -1,20 +0,0 @@
1
- import {
2
- EventAction,
3
- type EventCustom,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventCustom extends HtEvent {
10
- custom_fields: Record<string, unknown>
11
- custom_sensitive_fields: Record<string, unknown>
12
-
13
- constructor(event: EventCustom, requestData: RequestData) {
14
- super(event, requestData)
15
- this.type = EventType.WebEvent
16
- this.action = EventAction.Custom
17
- this.custom_fields = event.customFields || {}
18
- this.custom_sensitive_fields = event.customSensitiveFields || {}
19
- }
20
- }
@@ -1,30 +0,0 @@
1
- import {
2
- EventAction,
3
- type EventFallback,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventFallback extends HtEvent {
10
- flow_id: string
11
- flow_name: string
12
- flow_node_id: string
13
- flow_node_content_id: string
14
- fallback_out: number
15
- fallback_message_id: string
16
- user_input: string
17
-
18
- constructor(event: EventFallback, requestData: RequestData) {
19
- super(event, requestData)
20
- this.type = EventType.BotEvent
21
- this.action = EventAction.Fallback
22
- this.flow_id = event.flowId
23
- this.flow_name = event.flowName
24
- this.flow_node_id = event.flowNodeId
25
- this.flow_node_content_id = event.flowNodeContentId
26
- this.user_input = event.userInput
27
- this.fallback_out = event.fallbackOut
28
- this.fallback_message_id = event.fallbackMessageId
29
- }
30
- }
@@ -1,35 +0,0 @@
1
- import {
2
- type EventAction,
3
- type EventFeedbackKnowledgebase,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventFeedbackKnowledgebase extends HtEvent {
10
- action: EventAction.FeedbackKnowledgebase
11
- knowledge_base_inference_id: string
12
- feedback_target_bot_interaction_id: string
13
- feedback_target_id: string
14
- feedback_group_id: string
15
- possible_options: string[]
16
- possible_values?: number[]
17
- option: string
18
- value?: number
19
- comment?: string
20
-
21
- constructor(event: EventFeedbackKnowledgebase, requestData: RequestData) {
22
- super(event, requestData)
23
- this.type = EventType.WebEvent
24
- this.action = event.action
25
- this.knowledge_base_inference_id = event.knowledgebaseInferenceId
26
- this.feedback_target_bot_interaction_id = event.feedbackBotInteractionId
27
- this.feedback_target_id = event.feedbackTargetId
28
- this.feedback_group_id = event.feedbackGroupId
29
- this.possible_options = event.possibleOptions
30
- this.possible_values = event.possibleValues
31
- this.option = event.option
32
- this.value = event.value
33
- this.comment = event.comment
34
- }
35
- }
@@ -1,35 +0,0 @@
1
- import {
2
- type EventAction,
3
- type EventFeedback,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventFeedback extends HtEvent {
10
- action:
11
- | EventAction.FeedbackCase
12
- | EventAction.FeedbackConversation
13
- | EventAction.FeedbackMessage
14
- | EventAction.FeedbackWebview
15
- feedback_target_id: string
16
- feedback_group_id: string
17
- possible_options: string[]
18
- possible_values?: number[]
19
- option: string
20
- value?: number
21
- comment?: string
22
-
23
- constructor(event: EventFeedback, requestData: RequestData) {
24
- super(event, requestData)
25
- this.type = EventType.WebEvent
26
- this.action = event.action
27
- this.feedback_target_id = event.feedbackTargetId
28
- this.feedback_group_id = event.feedbackGroupId
29
- this.possible_options = event.possibleOptions
30
- this.possible_values = event.possibleValues
31
- this.option = event.option
32
- this.value = event.value
33
- this.comment = event.comment
34
- }
35
- }
@@ -1,28 +0,0 @@
1
- import {
2
- EventAction,
3
- type EventFlow,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventFlow extends HtEvent {
10
- flow_thread_id: string
11
- flow_id: string
12
- flow_name: string
13
- flow_node_id: string
14
- flow_node_content_id: string
15
- flow_node_is_meaningful: boolean
16
-
17
- constructor(event: EventFlow, requestData: RequestData) {
18
- super(event, requestData)
19
- this.type = EventType.BotEvent
20
- this.action = EventAction.FlowNode
21
- this.flow_thread_id = event.flowThreadId // This value is managed by the flow builder plugin, stored in the session and updated every time the content connected to the conversation start is displayed
22
- this.flow_id = event.flowId
23
- this.flow_name = event.flowName
24
- this.flow_node_id = event.flowNodeId
25
- this.flow_node_content_id = event.flowNodeContentId
26
- this.flow_node_is_meaningful = event.flowNodeIsMeaningful || false
27
- }
28
- }
@@ -1,30 +0,0 @@
1
- import {
2
- type EventAction,
3
- type EventHandoffOption,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventHandoffOption extends HtEvent {
10
- action: EventAction.HandoffOption
11
- flow_thread_id?: string
12
- flow_id: string
13
- flow_name: string
14
- flow_node_id: string
15
- flow_node_content_id: string
16
- handoff_queue_id?: string
17
- handoff_queue_name?: string
18
-
19
- constructor(event: EventHandoffOption, requestData: RequestData) {
20
- super(event, requestData)
21
- this.type = EventType.BotEvent
22
- this.flow_thread_id = event.flowThreadId
23
- this.flow_id = event.flowId
24
- this.flow_name = event.flowName
25
- this.flow_node_id = event.flowNodeId
26
- this.flow_node_content_id = event.flowNodeContentId
27
- this.handoff_queue_id = event.queueId
28
- this.handoff_queue_name = event.queueName
29
- }
30
- }
@@ -1,39 +0,0 @@
1
- import {
2
- type EventAction,
3
- type EventHandoff,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventHandoff extends HtEvent {
10
- action: EventAction.HandoffSuccess | EventAction.HandoffFail
11
- flow_thread_id?: string
12
- flow_id: string
13
- flow_name: string
14
- flow_node_id: string
15
- flow_node_content_id: string
16
- handoff_queue_id: string
17
- handoff_queue_name: string
18
- handoff_case_id?: string
19
- handoff_is_queue_open: boolean
20
- handoff_is_available_agent: boolean
21
- handoff_is_threshold_reached: boolean
22
-
23
- constructor(event: EventHandoff, requestData: RequestData) {
24
- super(event, requestData)
25
- this.type = EventType.BotEvent
26
- this.action = event.action
27
- this.flow_thread_id = event.flowThreadId
28
- this.flow_id = event.flowId
29
- this.flow_name = event.flowName
30
- this.flow_node_id = event.flowNodeId
31
- this.flow_node_content_id = event.flowNodeContentId
32
- this.handoff_queue_id = event.queueId
33
- this.handoff_queue_name = event.queueName
34
- this.handoff_case_id = event.caseId
35
- this.handoff_is_queue_open = event.isQueueOpen || false
36
- this.handoff_is_available_agent = event.isAvailableAgent || false
37
- this.handoff_is_threshold_reached = event.isThresholdReached || false
38
- }
39
- }
@@ -1,34 +0,0 @@
1
- import {
2
- EventAction,
3
- type EventIntentSmart,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventIntentSmart extends HtEvent {
10
- nlu_intent_smart_title: string
11
- nlu_intent_smart_num_used: number
12
- nlu_intent_smart_message_id: string
13
- user_input: string
14
- flow_thread_id: string
15
- flow_id: string
16
- flow_name: string
17
- flow_node_id: string
18
- flow_node_content_id: string
19
-
20
- constructor(event: EventIntentSmart, requestData: RequestData) {
21
- super(event, requestData)
22
- this.type = EventType.BotEvent
23
- this.action = EventAction.IntentSmart
24
- this.nlu_intent_smart_title = event.nluIntentSmartTitle
25
- this.nlu_intent_smart_num_used = event.nluIntentSmartNumUsed
26
- this.nlu_intent_smart_message_id = event.nluIntentSmartMessageId
27
- this.user_input = event.userInput
28
- this.flow_thread_id = event.flowThreadId
29
- this.flow_id = event.flowId
30
- this.flow_name = event.flowName
31
- this.flow_node_id = event.flowNodeId
32
- this.flow_node_content_id = event.flowNodeContentId
33
- }
34
- }
@@ -1,34 +0,0 @@
1
- import {
2
- EventAction,
3
- type EventKeyword,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventKeyword extends HtEvent {
10
- nlu_keyword_name: string
11
- nlu_keyword_is_regex: boolean
12
- nlu_keyword_message_id: string
13
- user_input: string
14
- flow_thread_id: string
15
- flow_id: string
16
- flow_name: string
17
- flow_node_id: string
18
- flow_node_content_id: string
19
-
20
- constructor(event: EventKeyword, requestData: RequestData) {
21
- super(event, requestData)
22
- this.type = EventType.BotEvent
23
- this.action = EventAction.Keyword
24
- this.nlu_keyword_name = event.nluKeywordName
25
- this.nlu_keyword_is_regex = event.nluKeywordIsRegex || false
26
- this.nlu_keyword_message_id = event.nluKeywordMessageId
27
- this.user_input = event.userInput
28
- this.flow_thread_id = event.flowThreadId
29
- this.flow_id = event.flowId
30
- this.flow_name = event.flowName
31
- this.flow_node_id = event.flowNodeId
32
- this.flow_node_content_id = event.flowNodeContentId
33
- }
34
- }
@@ -1,38 +0,0 @@
1
- import {
2
- EventAction,
3
- type EventKnowledgeBase,
4
- EventType,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventKnowledgeBase extends HtEvent {
10
- knowledgebase_inference_id: string
11
- knowledgebase_fail_reason?: string
12
- knowledgebase_sources_ids: string[]
13
- knowledgebase_chunks_ids: string[]
14
- knowledgebase_message_id: string
15
- user_input: string
16
- flow_thread_id: string
17
- flow_id: string
18
- flow_name: string
19
- flow_node_id: string
20
- flow_node_content_id: string
21
-
22
- constructor(event: EventKnowledgeBase, requestData: RequestData) {
23
- super(event, requestData)
24
- this.type = EventType.BotEvent
25
- this.action = EventAction.Knowledgebase
26
- this.knowledgebase_inference_id = event.knowledgebaseInferenceId
27
- this.knowledgebase_fail_reason = event.knowledgebaseFailReason
28
- this.knowledgebase_sources_ids = event.knowledgebaseSourcesIds
29
- this.knowledgebase_chunks_ids = event.knowledgebaseChunksIds
30
- this.knowledgebase_message_id = event.knowledgebaseMessageId
31
- this.user_input = event.userInput
32
- this.flow_thread_id = event.flowThreadId
33
- this.flow_id = event.flowId
34
- this.flow_name = event.flowName
35
- this.flow_node_id = event.flowNodeId
36
- this.flow_node_content_id = event.flowNodeContentId
37
- }
38
- }
@@ -1,29 +0,0 @@
1
- import type { EventRedirectFlow } from '@botonic/core'
2
-
3
- import { EventAction, EventType, type RequestData } from '../types'
4
- import { HtEvent } from './ht-event'
5
-
6
- export class HtEventRedirectFlow extends HtEvent {
7
- flow_thread_id: string
8
- flow_id: string
9
- flow_name: string
10
- flow_node_id: string
11
- flow_node_content_id: string
12
- flow_node_is_meaningful: boolean
13
- flow_target_id: string
14
- flow_target_name: string
15
-
16
- constructor(event: EventRedirectFlow, requestData: RequestData) {
17
- super(event, requestData)
18
- this.type = EventType.BotEvent
19
- this.action = EventAction.RedirectFlow
20
- this.flow_thread_id = event.flowThreadId
21
- this.flow_id = event.flowId
22
- this.flow_name = event.flowName
23
- this.flow_node_id = event.flowNodeId
24
- this.flow_node_content_id = event.flowNodeContentId
25
- this.flow_node_is_meaningful = event.flowNodeIsMeaningful
26
- this.flow_target_id = event.flowTargetId
27
- this.flow_target_name = event.flowTargetName
28
- }
29
- }
@@ -1,32 +0,0 @@
1
- import {
2
- EventAction,
3
- EventType,
4
- type EventWebviewActionTriggered,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventWebviewActionTriggered extends HtEvent {
10
- flow_thread_id: string
11
- flow_id: string
12
- flow_name: string
13
- flow_node_id: string
14
- flow_node_content_id: string
15
- flow_node_is_meaningful: boolean
16
- webview_name: string
17
- webview_target_id: string
18
-
19
- constructor(event: EventWebviewActionTriggered, requestData: RequestData) {
20
- super(event, requestData)
21
- this.type = EventType.BotEvent
22
- this.action = EventAction.WebviewActionTriggered
23
- this.flow_thread_id = event.flowThreadId
24
- this.flow_id = event.flowId
25
- this.flow_name = event.flowName
26
- this.flow_node_id = event.flowNodeId
27
- this.flow_node_content_id = event.flowNodeContentId
28
- this.flow_node_is_meaningful = event.flowNodeIsMeaningful
29
- this.webview_name = event.webviewName
30
- this.webview_target_id = event.webviewTargetId
31
- }
32
- }
@@ -1,31 +0,0 @@
1
- import {
2
- type EventAction,
3
- EventType,
4
- type EventWebviewEnd,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventWebviewEnd extends HtEvent {
10
- action: EventAction.WebviewEnd
11
- flow_thread_id?: string
12
- webview_thread_id: string
13
- webview_name: string
14
- webview_end_step_name?: string
15
- webview_end_step_n?: number
16
- webview_end_fail_type?: string
17
- webview_end_fail_message?: string
18
-
19
- constructor(event: EventWebviewEnd, requestData: RequestData) {
20
- super(event, requestData)
21
- this.type = EventType.WebEvent
22
- this.action = event.action
23
- this.flow_thread_id = event.flowThreadId
24
- this.webview_thread_id = event.webviewThreadId
25
- this.webview_name = event.webviewName
26
- this.webview_end_step_name = event.webviewStepName
27
- this.webview_end_step_n = event.webviewStepNumber
28
- this.webview_end_fail_type = event.webviewEndFailType
29
- this.webview_end_fail_message = event.webviewEndFailMessage
30
- }
31
- }
@@ -1,27 +0,0 @@
1
- import {
2
- type EventAction,
3
- EventType,
4
- type EventWebviewStep,
5
- type RequestData,
6
- } from '../types'
7
- import { HtEvent } from './ht-event'
8
-
9
- export class HtEventWebviewStep extends HtEvent {
10
- action: EventAction.WebviewStep
11
- flow_thread_id?: string
12
- webview_thread_id: string
13
- webview_name: string
14
- webview_step_name: string
15
- webview_step_n: number
16
-
17
- constructor(event: EventWebviewStep, requestData: RequestData) {
18
- super(event, requestData)
19
- this.type = EventType.WebEvent
20
- this.action = event.action
21
- this.flow_thread_id = event.flowThreadId
22
- this.webview_thread_id = event.webviewThreadId
23
- this.webview_name = event.webviewName
24
- this.webview_step_name = event.webviewStepName
25
- this.webview_step_n = event.webviewStepNumber
26
- }
27
- }
@@ -1,31 +0,0 @@
1
- /* eslint-disable @typescript-eslint/naming-convention */
2
- import { EVENT_FORMAT_VERSION } from '@botonic/core'
3
-
4
- import type {
5
- EventAction,
6
- EventType,
7
- HtEventProps,
8
- RequestData,
9
- } from '../types'
10
- export class HtEvent {
11
- chat_id?: string
12
- type: EventType
13
- format_version?: number
14
- bot_version?: string
15
- flow_version?: string
16
- action: EventAction
17
- bot_interaction_id?: string
18
- user_locale: string
19
- user_country: string
20
- system_locale: string
21
-
22
- constructor(event: HtEventProps, requestData: RequestData) {
23
- this.chat_id = requestData.userId
24
- this.format_version = EVENT_FORMAT_VERSION
25
- this.action = event.action
26
- this.bot_interaction_id = requestData.botInteractionId
27
- this.user_locale = requestData.userLocale
28
- this.user_country = requestData.userCountry
29
- this.system_locale = requestData.systemLocale
30
- }
31
- }
@@ -1,21 +0,0 @@
1
- export { HtEvent } from './ht-event'
2
- export { HtEventAiAgent } from './ht-event-ai-agent'
3
- export { HtEventBotAction } from './ht-event-bot-action'
4
- export { HtEventConditionalChannel } from './ht-event-conditional-channel'
5
- export { HtEventConditionalCountry } from './ht-event-conditional-country'
6
- export { HtEventConditionalCustom } from './ht-event-conditional-custom'
7
- export { HtEventConditionalQueueStatus } from './ht-event-conditional-queue-status'
8
- export { HtEventCustom } from './ht-event-custom'
9
- export { HtEventFallback } from './ht-event-fallback'
10
- export { HtEventFeedback } from './ht-event-feedback'
11
- export { HtEventFeedbackKnowledgebase } from './ht-event-feedback-knowledgebase'
12
- export { HtEventFlow } from './ht-event-flow'
13
- export { HtEventHandoff } from './ht-event-handoff'
14
- export { HtEventHandoffOption } from './ht-event-handoff-option'
15
- export { HtEventIntentSmart } from './ht-event-intent-smart'
16
- export { HtEventKeyword } from './ht-event-keyword'
17
- export { HtEventKnowledgeBase } from './ht-event-knowledge-base'
18
- export { HtEventRedirectFlow } from './ht-event-redirect-flow'
19
- export { HtEventWebviewActionTriggered } from './ht-event-webview-action-triggered'
20
- export { HtEventWebviewEnd } from './ht-event-webview-end'
21
- export { HtEventWebviewStep } from './ht-event-webview-step'
package/src/index.ts DELETED
@@ -1,82 +0,0 @@
1
- import type { BotContext, Plugin } from '@botonic/core'
2
- import axios from 'axios'
3
-
4
- import type { HtEvent } from './event-models'
5
- import { EventType, type HtEventProps, type RequestData } from './types'
6
- import { createHtEvent } from './utils'
7
-
8
- export default class BotonicPluginHubtypeAnalytics implements Plugin {
9
- eventsBaseUrl: string
10
- constructor() {
11
- const hubtypeUrl = process.env.HUBTYPE_API_URL || 'https://api.hubtype.com'
12
- this.eventsBaseUrl = `${hubtypeUrl}/external/v2/conversational_apps`
13
- }
14
-
15
- post(): void {
16
- return
17
- }
18
-
19
- async trackEvent(request: BotContext, htEventProps: HtEventProps) {
20
- const requestData = this.getRequestData(request)
21
- const event = createHtEvent(requestData, htEventProps)
22
- return this.sendEvent(request, event)
23
- }
24
-
25
- getRequestData(request: BotContext): RequestData {
26
- return {
27
- userId: this.isLambdaEvent(request) ? request.session.user.id : undefined,
28
- botInteractionId: request.input?.bot_interaction_id,
29
- userLocale: request.getUserLocale(),
30
- userCountry: request.getUserCountry(),
31
- systemLocale: request.getSystemLocale(),
32
- }
33
- }
34
-
35
- private isLambdaEvent(request: BotContext): boolean {
36
- return request.session?.bot?.id !== undefined
37
- }
38
-
39
- private sendEvent(request: BotContext, event: HtEvent) {
40
- if (event.type === EventType.BotEvent) {
41
- return this.sendBotEvent(request, event)
42
- }
43
-
44
- return this.sendWebEvent(request, event)
45
- }
46
-
47
- private sendBotEvent(request: BotContext, event: HtEvent) {
48
- const botId = request.session.bot.id
49
- const url = `${this.eventsBaseUrl}/${botId}/bot_event/`
50
- const config = {
51
- headers: { Authorization: `Bearer ${request.session._access_token}` },
52
- }
53
- return axios.post(url, event, config)
54
- }
55
-
56
- private sendWebEvent(request: BotContext, event: HtEvent) {
57
- if (this.isLambdaEvent(request)) {
58
- return this.sendWebEventByBotId(request, event)
59
- }
60
-
61
- return this.sendWebEventByProviderId(request, event)
62
- }
63
-
64
- private sendWebEventByBotId(request: BotContext, event: HtEvent) {
65
- const botId = request.session.bot.id
66
- const url = `${this.eventsBaseUrl}/${botId}/web_event/`
67
- return axios.post(url, event)
68
- }
69
-
70
- private sendWebEventByProviderId(request: BotContext, event: HtEvent) {
71
- const url = `${this.eventsBaseUrl}/web_event/`
72
- const config = {
73
- params: {
74
- provider_id: request.session.user.id,
75
- },
76
- }
77
- return axios.post(url, event, config)
78
- }
79
- }
80
-
81
- export * from './types'
82
- export * from './utils'