@botonic/plugin-hubtype-analytics 0.26.0 → 0.27.0-alpha.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 (177) hide show
  1. package/README.md +38 -5
  2. package/lib/cjs/event-models/ht-event-custom.d.ts +11 -0
  3. package/lib/cjs/event-models/ht-event-custom.js +14 -0
  4. package/lib/cjs/event-models/ht-event-custom.js.map +1 -0
  5. package/lib/cjs/event-models/ht-event-fallback.d.ts +12 -0
  6. package/lib/cjs/event-models/ht-event-fallback.js +15 -0
  7. package/lib/cjs/event-models/ht-event-fallback.js.map +1 -0
  8. package/lib/cjs/event-models/ht-event-feedback.d.ts +17 -0
  9. package/lib/cjs/event-models/ht-event-feedback.js +20 -0
  10. package/lib/cjs/event-models/ht-event-feedback.js.map +1 -0
  11. package/lib/cjs/event-models/ht-event-flow.d.ts +16 -0
  12. package/lib/cjs/event-models/ht-event-flow.js +19 -0
  13. package/lib/cjs/event-models/ht-event-flow.js.map +1 -0
  14. package/lib/cjs/event-models/ht-event-handoff.d.ts +16 -0
  15. package/lib/cjs/event-models/ht-event-handoff.js +19 -0
  16. package/lib/cjs/event-models/ht-event-handoff.js.map +1 -0
  17. package/lib/cjs/event-models/ht-event-intent-smart.d.ts +13 -0
  18. package/lib/cjs/event-models/ht-event-intent-smart.js +16 -0
  19. package/lib/cjs/event-models/ht-event-intent-smart.js.map +1 -0
  20. package/lib/cjs/event-models/ht-event-intent.d.ts +14 -0
  21. package/lib/cjs/event-models/ht-event-intent.js +17 -0
  22. package/lib/cjs/event-models/ht-event-intent.js.map +1 -0
  23. package/lib/cjs/event-models/ht-event-keyword.d.ts +14 -0
  24. package/lib/cjs/event-models/ht-event-keyword.js +17 -0
  25. package/lib/cjs/event-models/ht-event-keyword.js.map +1 -0
  26. package/lib/cjs/event-models/ht-event-knowledge-base.d.ts +15 -0
  27. package/lib/cjs/event-models/ht-event-knowledge-base.js +18 -0
  28. package/lib/cjs/event-models/ht-event-knowledge-base.js.map +1 -0
  29. package/lib/cjs/event-models/ht-event-webview.d.ts +15 -0
  30. package/lib/cjs/event-models/ht-event-webview.js +18 -0
  31. package/lib/cjs/event-models/ht-event-webview.js.map +1 -0
  32. package/lib/cjs/event-models/ht-event.d.ts +11 -4
  33. package/lib/cjs/event-models/ht-event.js +6 -10
  34. package/lib/cjs/event-models/ht-event.js.map +1 -1
  35. package/lib/cjs/event-models/index.d.ts +11 -0
  36. package/lib/cjs/event-models/index.js +26 -0
  37. package/lib/cjs/event-models/index.js.map +1 -0
  38. package/lib/cjs/index.d.ts +3 -2
  39. package/lib/cjs/index.js +12 -6
  40. package/lib/cjs/index.js.map +1 -1
  41. package/lib/cjs/types.d.ts +125 -115
  42. package/lib/cjs/types.js +31 -18
  43. package/lib/cjs/types.js.map +1 -1
  44. package/lib/cjs/utils.d.ts +1 -1
  45. package/lib/cjs/utils.js +29 -33
  46. package/lib/cjs/utils.js.map +1 -1
  47. package/lib/esm/event-models/ht-event-custom.d.ts +11 -0
  48. package/lib/esm/event-models/ht-event-custom.js +10 -0
  49. package/lib/esm/event-models/ht-event-custom.js.map +1 -0
  50. package/lib/esm/event-models/ht-event-fallback.d.ts +12 -0
  51. package/lib/esm/event-models/ht-event-fallback.js +11 -0
  52. package/lib/esm/event-models/ht-event-fallback.js.map +1 -0
  53. package/lib/esm/event-models/ht-event-feedback.d.ts +17 -0
  54. package/lib/esm/event-models/ht-event-feedback.js +16 -0
  55. package/lib/esm/event-models/ht-event-feedback.js.map +1 -0
  56. package/lib/esm/event-models/ht-event-flow.d.ts +16 -0
  57. package/lib/esm/event-models/ht-event-flow.js +15 -0
  58. package/lib/esm/event-models/ht-event-flow.js.map +1 -0
  59. package/lib/esm/event-models/ht-event-handoff.d.ts +16 -0
  60. package/lib/esm/event-models/ht-event-handoff.js +15 -0
  61. package/lib/esm/event-models/ht-event-handoff.js.map +1 -0
  62. package/lib/esm/event-models/ht-event-intent-smart.d.ts +13 -0
  63. package/lib/esm/event-models/ht-event-intent-smart.js +12 -0
  64. package/lib/esm/event-models/ht-event-intent-smart.js.map +1 -0
  65. package/lib/esm/event-models/ht-event-intent.d.ts +14 -0
  66. package/lib/esm/event-models/ht-event-intent.js +13 -0
  67. package/lib/esm/event-models/ht-event-intent.js.map +1 -0
  68. package/lib/esm/event-models/ht-event-keyword.d.ts +14 -0
  69. package/lib/esm/event-models/ht-event-keyword.js +13 -0
  70. package/lib/esm/event-models/ht-event-keyword.js.map +1 -0
  71. package/lib/esm/event-models/ht-event-knowledge-base.d.ts +15 -0
  72. package/lib/esm/event-models/ht-event-knowledge-base.js +14 -0
  73. package/lib/esm/event-models/ht-event-knowledge-base.js.map +1 -0
  74. package/lib/esm/event-models/ht-event-webview.d.ts +15 -0
  75. package/lib/esm/event-models/ht-event-webview.js +14 -0
  76. package/lib/esm/event-models/ht-event-webview.js.map +1 -0
  77. package/lib/esm/event-models/ht-event.d.ts +11 -4
  78. package/lib/esm/event-models/ht-event.js +6 -10
  79. package/lib/esm/event-models/ht-event.js.map +1 -1
  80. package/lib/esm/event-models/index.d.ts +11 -0
  81. package/lib/esm/event-models/index.js +12 -0
  82. package/lib/esm/event-models/index.js.map +1 -0
  83. package/lib/esm/index.d.ts +3 -2
  84. package/lib/esm/index.js +12 -6
  85. package/lib/esm/index.js.map +1 -1
  86. package/lib/esm/types.d.ts +125 -115
  87. package/lib/esm/types.js +30 -17
  88. package/lib/esm/types.js.map +1 -1
  89. package/lib/esm/utils.d.ts +1 -1
  90. package/lib/esm/utils.js +29 -33
  91. package/lib/esm/utils.js.map +1 -1
  92. package/package.json +4 -4
  93. package/src/event-models/ht-event-custom.ts +17 -0
  94. package/src/event-models/ht-event-fallback.ts +19 -0
  95. package/src/event-models/ht-event-feedback.ts +33 -0
  96. package/src/event-models/ht-event-flow.ts +27 -0
  97. package/src/event-models/ht-event-handoff.ts +30 -0
  98. package/src/event-models/ht-event-intent-smart.ts +21 -0
  99. package/src/event-models/ht-event-intent.ts +23 -0
  100. package/src/event-models/ht-event-keyword.ts +23 -0
  101. package/src/event-models/ht-event-knowledge-base.ts +30 -0
  102. package/src/event-models/ht-event-webview.ts +25 -0
  103. package/src/event-models/ht-event.ts +17 -14
  104. package/src/event-models/index.ts +11 -0
  105. package/src/index.ts +14 -5
  106. package/src/types.ts +128 -113
  107. package/src/utils.ts +41 -33
  108. package/lib/cjs/event-models/ht-event-agent-rating.d.ts +0 -6
  109. package/lib/cjs/event-models/ht-event-agent-rating.js +0 -14
  110. package/lib/cjs/event-models/ht-event-agent-rating.js.map +0 -1
  111. package/lib/cjs/event-models/ht-event-bot-ai-model.d.ts +0 -6
  112. package/lib/cjs/event-models/ht-event-bot-ai-model.js +0 -15
  113. package/lib/cjs/event-models/ht-event-bot-ai-model.js.map +0 -1
  114. package/lib/cjs/event-models/ht-event-bot-faq.d.ts +0 -6
  115. package/lib/cjs/event-models/ht-event-bot-faq.js +0 -12
  116. package/lib/cjs/event-models/ht-event-bot-faq.js.map +0 -1
  117. package/lib/cjs/event-models/ht-event-bot-keyword-model.d.ts +0 -6
  118. package/lib/cjs/event-models/ht-event-bot-keyword-model.js +0 -13
  119. package/lib/cjs/event-models/ht-event-bot-keyword-model.js.map +0 -1
  120. package/lib/cjs/event-models/ht-event-bot-knowledge-base.d.ts +0 -6
  121. package/lib/cjs/event-models/ht-event-bot-knowledge-base.js +0 -13
  122. package/lib/cjs/event-models/ht-event-bot-knowledge-base.js.map +0 -1
  123. package/lib/cjs/event-models/ht-event-bot-rating.d.ts +0 -6
  124. package/lib/cjs/event-models/ht-event-bot-rating.js +0 -14
  125. package/lib/cjs/event-models/ht-event-bot-rating.js.map +0 -1
  126. package/lib/cjs/event-models/ht-event-channel-rating.d.ts +0 -6
  127. package/lib/cjs/event-models/ht-event-channel-rating.js +0 -12
  128. package/lib/cjs/event-models/ht-event-channel-rating.js.map +0 -1
  129. package/lib/cjs/event-models/ht-event-faq-useful.d.ts +0 -6
  130. package/lib/cjs/event-models/ht-event-faq-useful.js +0 -13
  131. package/lib/cjs/event-models/ht-event-faq-useful.js.map +0 -1
  132. package/lib/cjs/event-models/ht-event-handoff-fail.d.ts +0 -6
  133. package/lib/cjs/event-models/ht-event-handoff-fail.js +0 -15
  134. package/lib/cjs/event-models/ht-event-handoff-fail.js.map +0 -1
  135. package/lib/cjs/event-models/ht-event-handoff-success.d.ts +0 -6
  136. package/lib/cjs/event-models/ht-event-handoff-success.js +0 -15
  137. package/lib/cjs/event-models/ht-event-handoff-success.js.map +0 -1
  138. package/lib/esm/event-models/ht-event-agent-rating.d.ts +0 -6
  139. package/lib/esm/event-models/ht-event-agent-rating.js +0 -10
  140. package/lib/esm/event-models/ht-event-agent-rating.js.map +0 -1
  141. package/lib/esm/event-models/ht-event-bot-ai-model.d.ts +0 -6
  142. package/lib/esm/event-models/ht-event-bot-ai-model.js +0 -11
  143. package/lib/esm/event-models/ht-event-bot-ai-model.js.map +0 -1
  144. package/lib/esm/event-models/ht-event-bot-faq.d.ts +0 -6
  145. package/lib/esm/event-models/ht-event-bot-faq.js +0 -8
  146. package/lib/esm/event-models/ht-event-bot-faq.js.map +0 -1
  147. package/lib/esm/event-models/ht-event-bot-keyword-model.d.ts +0 -6
  148. package/lib/esm/event-models/ht-event-bot-keyword-model.js +0 -9
  149. package/lib/esm/event-models/ht-event-bot-keyword-model.js.map +0 -1
  150. package/lib/esm/event-models/ht-event-bot-knowledge-base.d.ts +0 -6
  151. package/lib/esm/event-models/ht-event-bot-knowledge-base.js +0 -9
  152. package/lib/esm/event-models/ht-event-bot-knowledge-base.js.map +0 -1
  153. package/lib/esm/event-models/ht-event-bot-rating.d.ts +0 -6
  154. package/lib/esm/event-models/ht-event-bot-rating.js +0 -10
  155. package/lib/esm/event-models/ht-event-bot-rating.js.map +0 -1
  156. package/lib/esm/event-models/ht-event-channel-rating.d.ts +0 -6
  157. package/lib/esm/event-models/ht-event-channel-rating.js +0 -8
  158. package/lib/esm/event-models/ht-event-channel-rating.js.map +0 -1
  159. package/lib/esm/event-models/ht-event-faq-useful.d.ts +0 -6
  160. package/lib/esm/event-models/ht-event-faq-useful.js +0 -9
  161. package/lib/esm/event-models/ht-event-faq-useful.js.map +0 -1
  162. package/lib/esm/event-models/ht-event-handoff-fail.d.ts +0 -6
  163. package/lib/esm/event-models/ht-event-handoff-fail.js +0 -11
  164. package/lib/esm/event-models/ht-event-handoff-fail.js.map +0 -1
  165. package/lib/esm/event-models/ht-event-handoff-success.d.ts +0 -6
  166. package/lib/esm/event-models/ht-event-handoff-success.js +0 -11
  167. package/lib/esm/event-models/ht-event-handoff-success.js.map +0 -1
  168. package/src/event-models/ht-event-agent-rating.ts +0 -18
  169. package/src/event-models/ht-event-bot-ai-model.ts +0 -19
  170. package/src/event-models/ht-event-bot-faq.ts +0 -16
  171. package/src/event-models/ht-event-bot-keyword-model.ts +0 -17
  172. package/src/event-models/ht-event-bot-knowledge-base.ts +0 -17
  173. package/src/event-models/ht-event-bot-rating.ts +0 -18
  174. package/src/event-models/ht-event-channel-rating.ts +0 -16
  175. package/src/event-models/ht-event-faq-useful.ts +0 -17
  176. package/src/event-models/ht-event-handoff-fail.ts +0 -19
  177. package/src/event-models/ht-event-handoff-success.ts +0 -19
package/lib/esm/utils.js CHANGED
@@ -1,37 +1,33 @@
1
- import { HtEvent } from './event-models/ht-event';
2
- import { HtEventAgentRating } from './event-models/ht-event-agent-rating';
3
- import { HtEventBotAiModel } from './event-models/ht-event-bot-ai-model';
4
- import { HtEventBotFaq } from './event-models/ht-event-bot-faq';
5
- import { HtEventBotKeywordModel } from './event-models/ht-event-bot-keyword-model';
6
- import { HtEventBotAiKnowledgeBase } from './event-models/ht-event-bot-knowledge-base';
7
- import { HtEventBotRating } from './event-models/ht-event-bot-rating';
8
- import { HtEventChannelRating } from './event-models/ht-event-channel-rating';
9
- import { HtEventFaqUseful } from './event-models/ht-event-faq-useful';
10
- import { HtEventHandoffFail } from './event-models/ht-event-handoff-fail';
11
- import { HtEventHandoffSuccess } from './event-models/ht-event-handoff-success';
12
- import { EventName } from './types';
1
+ import { HtEvent, HtEventCustom, HtEventFallback, HtEventFeedback, HtEventFlow, HtEventHandoff, HtEventIntent, HtEventIntentSmart, HtEventKeyword, HtEventKnowledgeBase, HtEventWebview, } from './event-models';
2
+ import { EventAction } from './types';
13
3
  export function createHtEvent(requestData, htEventProps) {
14
- switch (htEventProps.event_type) {
15
- case EventName.botAgentRating:
16
- return new HtEventAgentRating(htEventProps, requestData);
17
- case EventName.botChannelRating:
18
- return new HtEventChannelRating(htEventProps, requestData);
19
- case EventName.botFaqUseful:
20
- return new HtEventFaqUseful(htEventProps, requestData);
21
- case EventName.botRating:
22
- return new HtEventBotRating(htEventProps, requestData);
23
- case EventName.botFaq:
24
- return new HtEventBotFaq(htEventProps, requestData);
25
- case EventName.botAiModel:
26
- return new HtEventBotAiModel(htEventProps, requestData);
27
- case EventName.botAiKnowledgeBase:
28
- return new HtEventBotAiKnowledgeBase(htEventProps, requestData);
29
- case EventName.botKeywordsModel:
30
- return new HtEventBotKeywordModel(htEventProps, requestData);
31
- case EventName.handoffSuccess:
32
- return new HtEventHandoffSuccess(htEventProps, requestData);
33
- case EventName.handoffFail:
34
- return new HtEventHandoffFail(htEventProps, requestData);
4
+ switch (htEventProps.action) {
5
+ case EventAction.FeedbackCase:
6
+ case EventAction.FeedbackConversation:
7
+ case EventAction.FeedbackMessage:
8
+ case EventAction.FeedbackWebview:
9
+ return new HtEventFeedback(htEventProps, requestData);
10
+ case EventAction.FlowNode:
11
+ return new HtEventFlow(htEventProps, requestData);
12
+ case EventAction.HandoffOption:
13
+ case EventAction.HandoffSuccess:
14
+ case EventAction.HandoffFail:
15
+ return new HtEventHandoff(htEventProps, requestData);
16
+ case EventAction.Intent:
17
+ return new HtEventIntent(htEventProps, requestData);
18
+ case EventAction.Keyword:
19
+ return new HtEventKeyword(htEventProps, requestData);
20
+ case EventAction.IntentSmart:
21
+ return new HtEventIntentSmart(htEventProps, requestData);
22
+ case EventAction.Knowledgebase:
23
+ return new HtEventKnowledgeBase(htEventProps, requestData);
24
+ case EventAction.Fallback:
25
+ return new HtEventFallback(htEventProps, requestData);
26
+ case EventAction.WebviewStep:
27
+ case EventAction.WebviewEnd:
28
+ return new HtEventWebview(htEventProps, requestData);
29
+ case EventAction.Custom:
30
+ return new HtEventCustom(htEventProps, requestData);
35
31
  default:
36
32
  return new HtEvent(htEventProps, requestData);
37
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAA;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAA;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAE,SAAS,EAA6B,MAAM,SAAS,CAAA;AAE9D,MAAM,UAAU,aAAa,CAC3B,WAAwB,EACxB,YAA0B;IAE1B,QAAQ,YAAY,CAAC,UAAU,EAAE;QAC/B,KAAK,SAAS,CAAC,cAAc;YAC3B,OAAO,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE1D,KAAK,SAAS,CAAC,gBAAgB;YAC7B,OAAO,IAAI,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE5D,KAAK,SAAS,CAAC,YAAY;YACzB,OAAO,IAAI,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAExD,KAAK,SAAS,CAAC,SAAS;YACtB,OAAO,IAAI,gBAAgB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAExD,KAAK,SAAS,CAAC,MAAM;YACnB,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAErD,KAAK,SAAS,CAAC,UAAU;YACvB,OAAO,IAAI,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEzD,KAAK,SAAS,CAAC,kBAAkB;YAC/B,OAAO,IAAI,yBAAyB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEjE,KAAK,SAAS,CAAC,gBAAgB;YAC7B,OAAO,IAAI,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE9D,KAAK,SAAS,CAAC,cAAc;YAC3B,OAAO,IAAI,qBAAqB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE7D,KAAK,SAAS,CAAC,WAAW;YACxB,OAAO,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE1D;YACE,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;KAChD;AACH,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,aAAa,EACb,eAAe,EACf,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAA6B,MAAM,SAAS,CAAA;AAEhE,MAAM,UAAU,aAAa,CAC3B,WAAwB,EACxB,YAA0B;IAE1B,QAAQ,YAAY,CAAC,MAAM,EAAE;QAC3B,KAAK,WAAW,CAAC,YAAY,CAAC;QAC9B,KAAK,WAAW,CAAC,oBAAoB,CAAC;QACtC,KAAK,WAAW,CAAC,eAAe,CAAC;QACjC,KAAK,WAAW,CAAC,eAAe;YAC9B,OAAO,IAAI,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEvD,KAAK,WAAW,CAAC,QAAQ;YACvB,OAAO,IAAI,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEnD,KAAK,WAAW,CAAC,aAAa,CAAC;QAC/B,KAAK,WAAW,CAAC,cAAc,CAAC;QAChC,KAAK,WAAW,CAAC,WAAW;YAC1B,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAErD,KAAK,WAAW,CAAC,OAAO;YACtB,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,WAAW,CAAC,WAAW;YAC1B,OAAO,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE1D,KAAK,WAAW,CAAC,aAAa;YAC5B,OAAO,IAAI,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAE5D,KAAK,WAAW,CAAC,QAAQ;YACvB,OAAO,IAAI,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEvD,KAAK,WAAW,CAAC,WAAW,CAAC;QAC7B,KAAK,WAAW,CAAC,UAAU;YACzB,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAEtD,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO,IAAI,aAAa,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAErD;YACE,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;KAChD;AACH,CAAC"}
package/package.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@botonic/plugin-hubtype-analytics",
3
- "version": "0.26.0",
3
+ "version": "0.27.0-alpha.1",
4
4
  "description": "Plugin for tracking in the Hubtype backend to see the results in the Hubtype Dashbord",
5
5
  "main": "./lib/cjs/index.js",
6
6
  "module": "./lib/esm/index.js",
7
7
  "scripts": {
8
8
  "build": "rm -rf lib && ../../node_modules/.bin/tsc -p tsconfig.json && ../../node_modules/.bin/tsc -p tsconfig.esm.json",
9
9
  "build:watch": "npm run build -- --watch",
10
- "test": "echo Skipping tests...",
10
+ "test": "../../node_modules/.bin/jest --coverage",
11
11
  "prepublishOnly": "rm -rf lib && npm i && npm run build",
12
12
  "lint": "npm run lint_core -- --fix",
13
13
  "lint_core": "../../node_modules/.bin/eslint_d --cache --quiet 'src/**/*.ts*'"
14
14
  },
15
15
  "dependencies": {
16
16
  "@babel/runtime": "^7.21.0",
17
- "@botonic/core": "^0.26.0",
18
- "axios": "^1.6.0"
17
+ "@botonic/core": "^0.27.0-alpha.1",
18
+ "axios": "^1.6.8"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/node": "^20.11.17",
@@ -0,0 +1,17 @@
1
+ import { EventAction, EventCustom, EventType, RequestData } from '../types'
2
+ import { HtEvent } from './ht-event'
3
+
4
+ interface EventDataCustom {
5
+ action: EventAction.Custom
6
+ custom_fields: Record<string, any>
7
+ }
8
+
9
+ export class HtEventCustom extends HtEvent {
10
+ data: EventDataCustom
11
+
12
+ constructor(event: EventCustom, requestData: RequestData) {
13
+ super(event, requestData)
14
+ this.type = EventType.Webevent
15
+ this.data.custom_fields = event.data.customFields
16
+ }
17
+ }
@@ -0,0 +1,19 @@
1
+ import { EventAction, EventFallback, EventType, RequestData } from '../types'
2
+ import { HtEvent } from './ht-event'
3
+
4
+ interface EventDataFallback {
5
+ action: EventAction.Fallback
6
+ fallback_out: number
7
+ fallback_message_id: string
8
+ }
9
+
10
+ export class HtEventFallback extends HtEvent {
11
+ data: EventDataFallback
12
+
13
+ constructor(event: EventFallback, requestData: RequestData) {
14
+ super(event, requestData)
15
+ this.type = EventType.Botevent
16
+ this.data.fallback_out = event.data.fallbackOut
17
+ this.data.fallback_message_id = event.data.fallbackMessageId
18
+ }
19
+ }
@@ -0,0 +1,33 @@
1
+ import { EventAction, EventFeedback, EventType, RequestData } from '../types'
2
+ import { HtEvent } from './ht-event'
3
+
4
+ interface EventDataFeedback {
5
+ action:
6
+ | EventAction.FeedbackCase
7
+ | EventAction.FeedbackConversation
8
+ | EventAction.FeedbackMessage
9
+ | EventAction.FeedbackWebview
10
+ message_generated_by?: string
11
+ feedback_target_id?: string
12
+ feedback_group_id?: string
13
+ possible_options: string[]
14
+ possible_values: number[]
15
+ option: string
16
+ value: number
17
+ }
18
+
19
+ export class HtEventFeedback extends HtEvent {
20
+ data: EventDataFeedback
21
+
22
+ constructor(event: EventFeedback, requestData: RequestData) {
23
+ super(event, requestData)
24
+ this.type = EventType.Feedback
25
+ this.data.message_generated_by = event.data.messageGeneratedBy // ?? nomes te valor quan action es message. Si es message de knowledge base => sources y chunks. Quan es un node de flow builder => content_id
26
+ this.data.feedback_target_id = event.data.feedbackTargetId // ?? case_id, message_id, conversation_id ???, webview_name
27
+ this.data.feedback_group_id = event.data.feedbackGroupId // ??
28
+ this.data.possible_options = event.data.possibleOptions
29
+ this.data.possible_values = event.data.possibleValues
30
+ this.data.option = event.data.option
31
+ this.data.value = event.data.value
32
+ }
33
+ }
@@ -0,0 +1,27 @@
1
+ import { EventAction, EventFlow, EventType, RequestData } from '../types'
2
+ import { HtEvent } from './ht-event'
3
+
4
+ interface EventDataFlow {
5
+ action: EventAction.FlowNode
6
+ flow_thread_id: string
7
+ flow_id: string
8
+ flow_name: string
9
+ flow_node_id: string
10
+ flow_node_content_id: string
11
+ flow_node_is_meaningful: boolean
12
+ }
13
+
14
+ export class HtEventFlow extends HtEvent {
15
+ data: EventDataFlow
16
+
17
+ constructor(event: EventFlow, requestData: RequestData) {
18
+ super(event, requestData)
19
+ this.type = EventType.Botevent
20
+ this.data.flow_thread_id = event.data.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
21
+ this.data.flow_id = event.data.flowId
22
+ this.data.flow_name = event.data.flowName
23
+ this.data.flow_node_id = event.data.flowNodeId
24
+ this.data.flow_node_content_id = event.data.flowNodeContentId
25
+ this.data.flow_node_is_meaningful = event.data.flowNodeIsMeaningful || false
26
+ }
27
+ }
@@ -0,0 +1,30 @@
1
+ import { EventAction, EventHandoff, EventType, RequestData } from '../types'
2
+ import { HtEvent } from './ht-event'
3
+
4
+ interface EventDataHandoff {
5
+ action:
6
+ | EventAction.HandoffOption
7
+ | EventAction.HandoffSuccess
8
+ | EventAction.HandoffFail
9
+ handoff_queue_id: string
10
+ handoff_queue_name: string
11
+ handoff_case_id?: string
12
+ is_queue_open?: boolean
13
+ handoff_is_available_agent?: boolean
14
+ handoff_is_threshold_reached?: boolean
15
+ }
16
+
17
+ export class HtEventHandoff extends HtEvent {
18
+ data: EventDataHandoff
19
+
20
+ constructor(event: EventHandoff, requestData: RequestData) {
21
+ super(event, requestData)
22
+ this.type = EventType.Botevent
23
+ this.data.handoff_queue_id = event.data.queueId
24
+ this.data.handoff_queue_name = event.data.queueName
25
+ this.data.handoff_case_id = event.data.caseId
26
+ this.data.is_queue_open = event.data.isQueueOpen
27
+ this.data.handoff_is_available_agent = event.data.isAvailableAgent
28
+ this.data.handoff_is_threshold_reached = event.data.isThresholdReached
29
+ }
30
+ }
@@ -0,0 +1,21 @@
1
+ import { EventAction, EventIntentSmart, EventType, RequestData } from '../types'
2
+ import { HtEvent } from './ht-event'
3
+
4
+ interface EventDataIntentSmart {
5
+ action: EventAction.IntentSmart
6
+ nlu_intent_smart_title: string
7
+ nlu_intent_smart_num_used: number
8
+ nlu_intent_smart_message_id: string
9
+ }
10
+
11
+ export class HtEventIntentSmart extends HtEvent {
12
+ data: EventDataIntentSmart
13
+
14
+ constructor(event: EventIntentSmart, requestData: RequestData) {
15
+ super(event, requestData)
16
+ this.type = EventType.Botevent
17
+ this.data.nlu_intent_smart_title = event.data.nluIntentSmartTitle
18
+ this.data.nlu_intent_smart_num_used = event.data.nluIntentSmartNumUsed
19
+ this.data.nlu_intent_smart_message_id = event.data.nluIntentSmartMessageId
20
+ }
21
+ }
@@ -0,0 +1,23 @@
1
+ import { EventAction, EventIntent, EventType, RequestData } from '../types'
2
+ import { HtEvent } from './ht-event'
3
+
4
+ interface EventDataIntent {
5
+ action: EventAction.Intent
6
+ nlu_intent_label: string
7
+ nlu_intent_confidence: number
8
+ nlu_intent_threshold: number
9
+ nlu_intent_message_id: string
10
+ }
11
+
12
+ export class HtEventIntent extends HtEvent {
13
+ data: EventDataIntent
14
+
15
+ constructor(event: EventIntent, requestData: RequestData) {
16
+ super(event, requestData)
17
+ this.type = EventType.Botevent
18
+ this.data.nlu_intent_label = event.data.nluIntentLabel
19
+ this.data.nlu_intent_confidence = event.data.nluIntentConfidence
20
+ this.data.nlu_intent_threshold = event.data.nluIntentThreshold
21
+ this.data.nlu_intent_message_id = event.data.nluIntentMessageId
22
+ }
23
+ }
@@ -0,0 +1,23 @@
1
+ import { EventAction, EventKeyword, EventType, RequestData } from '../types'
2
+ import { HtEvent } from './ht-event'
3
+
4
+ interface EventDataKeyword {
5
+ action: EventAction.Keyword
6
+ nlu_keyword_id: string
7
+ nlu_keyword_name: string
8
+ nlu_keyword_is_regex: boolean
9
+ nlu_keyword_message_id: string
10
+ }
11
+
12
+ export class HtEventKeyword extends HtEvent {
13
+ data: EventDataKeyword
14
+
15
+ constructor(event: EventKeyword, requestData: RequestData) {
16
+ super(event, requestData)
17
+ this.type = EventType.Botevent
18
+ this.data.nlu_keyword_id = event.data.nluKeywordId
19
+ this.data.nlu_keyword_name = event.data.nluKeywordName
20
+ this.data.nlu_keyword_is_regex = event.data.nluKeywordIsRegex || false
21
+ this.data.nlu_keyword_message_id = event.data.nluKeywordMessageId
22
+ }
23
+ }
@@ -0,0 +1,30 @@
1
+ import {
2
+ EventAction,
3
+ EventKnowledgeBase,
4
+ EventType,
5
+ RequestData,
6
+ } from '../types'
7
+ import { HtEvent } from './ht-event'
8
+
9
+ interface EventDataKnowledgeBase {
10
+ action: EventAction.Knowledgebase
11
+ knowledgebase_inference_id: string
12
+ knowledgebase_fail_reason?: string
13
+ knowledgebase_sources_ids: string[]
14
+ knowledgebase_chunks_ids: string[]
15
+ knowledgebase_message_id: string
16
+ }
17
+
18
+ export class HtEventKnowledgeBase extends HtEvent {
19
+ data: EventDataKnowledgeBase
20
+
21
+ constructor(event: EventKnowledgeBase, requestData: RequestData) {
22
+ super(event, requestData)
23
+ this.type = EventType.Botevent
24
+ this.data.knowledgebase_inference_id = event.data.knowledgebaseInferenceId
25
+ this.data.knowledgebase_fail_reason = event.data.knowledgebaseFailReason
26
+ this.data.knowledgebase_sources_ids = event.data.knowledgebaseSourcesIds
27
+ this.data.knowledgebase_chunks_ids = event.data.knowledgebaseChunksIds
28
+ this.data.knowledgebase_message_id = event.data.knowledgebaseMessageId
29
+ }
30
+ }
@@ -0,0 +1,25 @@
1
+ import { EventAction, EventType, EventWebview, RequestData } from '../types'
2
+ import { HtEvent } from './ht-event'
3
+
4
+ interface EventDataWebview {
5
+ action: EventAction.WebviewStep | EventAction.WebviewEnd
6
+ webview_thread_id: string
7
+ webview_name: string
8
+ webview_step_name?: string
9
+ webview_end_fail_type?: string
10
+ webview_end_fail_message?: string
11
+ }
12
+
13
+ export class HtEventWebview extends HtEvent {
14
+ data: EventDataWebview
15
+
16
+ constructor(event: EventWebview, requestData: RequestData) {
17
+ super(event, requestData)
18
+ this.type = EventType.Webevent
19
+ this.data.webview_thread_id = event.data.webviewThreadId
20
+ this.data.webview_name = event.data.webviewName
21
+ this.data.webview_step_name = event.data.webviewStepName
22
+ this.data.webview_end_fail_type = event.data.webviewEndFailType
23
+ this.data.webview_end_fail_message = event.data.webviewEndFailMessage
24
+ }
25
+ }
@@ -1,20 +1,23 @@
1
- import { BaseEventData, EventName, HtEventProps, RequestData } from '../types'
1
+ import { EventType, HtEventProps, RequestData } from '../types'
2
2
 
3
3
  export class HtEvent {
4
- chat: string
5
- event_type: EventName
6
- event_data: BaseEventData
4
+ chat_id: string
5
+ type: EventType
6
+ channel: string
7
+ created_at: string
8
+ chat_language: string
9
+ chat_country?: string
10
+ format_version?: number
11
+ bot_version?: string
12
+ flow_version?: string
13
+ data: any
7
14
 
8
15
  constructor(event: HtEventProps, requestData: RequestData) {
9
- this.chat = requestData.userId
10
- this.event_type = event.event_type
11
- this.event_data = {
12
- channel: requestData.provider,
13
- event_datetime: new Date().toISOString(),
14
- enduser_language: requestData.language,
15
- enduser_country: requestData.country,
16
- format_version: 1,
17
- // flow_version?: string
18
- }
16
+ this.chat_id = requestData.userId
17
+ this.chat_language = requestData.language
18
+ this.chat_country = requestData.country
19
+ this.format_version = 2
20
+ this.data = {}
21
+ this.data.action = event.action
19
22
  }
20
23
  }
@@ -0,0 +1,11 @@
1
+ export { HtEvent } from './ht-event'
2
+ export { HtEventCustom } from './ht-event-custom'
3
+ export { HtEventFallback } from './ht-event-fallback'
4
+ export { HtEventFeedback } from './ht-event-feedback'
5
+ export { HtEventFlow } from './ht-event-flow'
6
+ export { HtEventHandoff } from './ht-event-handoff'
7
+ export { HtEventIntent } from './ht-event-intent'
8
+ export { HtEventIntentSmart } from './ht-event-intent-smart'
9
+ export { HtEventKeyword } from './ht-event-keyword'
10
+ export { HtEventKnowledgeBase } from './ht-event-knowledge-base'
11
+ export { HtEventWebview } from './ht-event-webview'
package/src/index.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { BotRequest, Plugin } from '@botonic/core'
2
2
  import axios from 'axios'
3
3
 
4
- import { HtEventProps, RequestData } from './types'
4
+ import { HtEvent } from './event-models'
5
+ import { EventType, HtEventProps, RequestData } from './types'
5
6
  import { createHtEvent } from './utils'
6
7
 
7
8
  export interface HubtypeAnalyticsOptions {
@@ -31,8 +32,11 @@ export default class BotonicPluginHubtypeAnalytics implements Plugin {
31
32
  return
32
33
  }
33
34
 
34
- getUrl(request: BotRequest) {
35
- return `${this.baseUrl}/external/v1/conversational_apps/${request.session.bot.id}/bot_event/`
35
+ getUrl(request: BotRequest, eventType: EventType) {
36
+ const endpoint =
37
+ eventType === EventType.Webevent ? 'web_event' : 'bot_event'
38
+ const botId = request.session.bot.id
39
+ return `${this.baseUrl}/external/v2/conversational_apps/${botId}/${endpoint}/`
36
40
  }
37
41
 
38
42
  getRequestData(request: BotRequest): RequestData {
@@ -45,11 +49,16 @@ export default class BotonicPluginHubtypeAnalytics implements Plugin {
45
49
  }
46
50
 
47
51
  async trackEvent(request: BotRequest, htEventProps: HtEventProps) {
48
- const url = this.getUrl(request)
49
52
  const requestData = this.getRequestData(request)
50
53
  const event = createHtEvent(requestData, htEventProps)
54
+
55
+ return this.sendEvent(request, event)
56
+ }
57
+
58
+ private sendEvent(request: BotRequest, event: HtEvent) {
59
+ const url = this.getUrl(request, event.type)
51
60
  const headers = { Authorization: `Bearer ${request.session._access_token}` }
52
- const config = { headers }
61
+ const config = event.type !== EventType.Webevent ? { headers } : undefined
53
62
  return axios.post(url, event, config)
54
63
  }
55
64
  }