@envive-ai/react-hooks 0.3.11 → 0.3.13

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 (210) hide show
  1. package/dist/application/commerce-api.cjs +21 -41
  2. package/dist/application/commerce-api.d.cts +2 -4
  3. package/dist/application/commerce-api.d.ts +2 -4
  4. package/dist/application/commerce-api.js +21 -41
  5. package/dist/application/models/api/widgetTextRequest.d.cts +2 -1
  6. package/dist/application/models/api/widgetTextRequest.d.ts +2 -1
  7. package/dist/application/models/chatElementDisplayLocationV3.cjs +3 -1
  8. package/dist/application/models/chatElementDisplayLocationV3.d.cts +3 -1
  9. package/dist/application/models/chatElementDisplayLocationV3.d.ts +3 -1
  10. package/dist/application/models/chatElementDisplayLocationV3.js +3 -1
  11. package/dist/application/models/guards/api/index.cjs +6 -6
  12. package/dist/application/models/guards/api/index.js +6 -6
  13. package/dist/application/models/index.cjs +18 -18
  14. package/dist/application/models/index.js +18 -18
  15. package/dist/application/models/validators/validateResponse.cjs +3 -3
  16. package/dist/application/models/validators/validateResponse.js +3 -3
  17. package/dist/application/models/variantInfo/variantInfo.cjs +1 -1
  18. package/dist/application/models/variantInfo/variantInfo.d.cts +1 -1
  19. package/dist/application/models/variantInfo/variantInfo.d.ts +1 -1
  20. package/dist/application/models/variantInfo/variantInfo.js +1 -1
  21. package/dist/application/utils/analyticsUtils.cjs +5 -5
  22. package/dist/application/utils/analyticsUtils.d.cts +2 -2
  23. package/dist/application/utils/analyticsUtils.d.ts +2 -2
  24. package/dist/application/utils/analyticsUtils.js +3 -3
  25. package/dist/application/utils/nodeSelector.cjs +12 -14
  26. package/dist/application/utils/nodeSelector.js +12 -14
  27. package/dist/application/utils/widgetTextRequestToApiRequest.cjs +2 -1
  28. package/dist/application/utils/widgetTextRequestToApiRequest.js +2 -1
  29. package/dist/atoms/app/index.d.cts +7 -7
  30. package/dist/atoms/app/index.d.ts +7 -7
  31. package/dist/atoms/chat/chatState.cjs +5 -5
  32. package/dist/atoms/chat/chatState.d.cts +19 -19
  33. package/dist/atoms/chat/chatState.d.ts +19 -19
  34. package/dist/atoms/chat/chatState.js +3 -3
  35. package/dist/atoms/chat/form.d.cts +2 -2
  36. package/dist/atoms/chat/form.d.ts +2 -2
  37. package/dist/atoms/chat/index.d.ts +2 -2
  38. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  39. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  40. package/dist/atoms/chat/messageQueue.d.cts +6 -6
  41. package/dist/atoms/chat/messageQueue.d.ts +6 -6
  42. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  43. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  44. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  45. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  46. package/dist/atoms/chat/replies.cjs +4 -4
  47. package/dist/atoms/chat/replies.d.cts +3 -3
  48. package/dist/atoms/chat/replies.d.ts +3 -3
  49. package/dist/atoms/chat/replies.js +3 -3
  50. package/dist/atoms/chat/suggestions.d.cts +2 -2
  51. package/dist/atoms/chat/suggestions.d.ts +2 -2
  52. package/dist/atoms/envive/enviveConfig.d.cts +13 -13
  53. package/dist/atoms/envive/enviveConfig.d.ts +13 -13
  54. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  55. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  56. package/dist/atoms/org/customerService.d.cts +6 -6
  57. package/dist/atoms/org/customerService.d.ts +6 -6
  58. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  59. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  60. package/dist/atoms/org/index.cjs +1 -1
  61. package/dist/atoms/org/index.js +1 -1
  62. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  63. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  64. package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
  65. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  66. package/dist/atoms/search/chatSearch.d.cts +17 -17
  67. package/dist/atoms/search/searchAPI.d.cts +13 -13
  68. package/dist/atoms/search/searchAPI.d.ts +13 -13
  69. package/dist/atoms/search/utils.d.cts +1 -1
  70. package/dist/atoms/search/utils.d.ts +1 -1
  71. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  72. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  73. package/dist/contexts/amplitudeContext/amplitudeContext.cjs +5 -5
  74. package/dist/contexts/amplitudeContext/amplitudeContext.d.cts +3 -2
  75. package/dist/contexts/amplitudeContext/amplitudeContext.d.ts +3 -2
  76. package/dist/contexts/amplitudeContext/amplitudeContext.js +5 -5
  77. package/dist/contexts/amplitudeContext/index.cjs +3 -3
  78. package/dist/contexts/amplitudeContext/index.d.cts +1 -1
  79. package/dist/contexts/amplitudeContext/index.d.ts +1 -1
  80. package/dist/contexts/amplitudeContext/index.js +1 -1
  81. package/dist/contexts/cdnContext/cdnContext.cjs +1 -1
  82. package/dist/contexts/cdnContext/cdnContext.js +1 -1
  83. package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +1 -1
  84. package/dist/contexts/enviveConfigContext/enviveConfigContext.js +1 -1
  85. package/dist/contexts/enviveContext/enviveContext.cjs +17 -14
  86. package/dist/contexts/enviveContext/enviveContext.d.cts +4 -1
  87. package/dist/contexts/enviveContext/enviveContext.d.ts +4 -1
  88. package/dist/contexts/enviveContext/enviveContext.js +17 -14
  89. package/dist/contexts/graphqlContext/graphqlContext.cjs +2 -2
  90. package/dist/contexts/graphqlContext/graphqlContext.js +2 -2
  91. package/dist/contexts/graphqlContext/mockV3Config.cjs +3 -2
  92. package/dist/contexts/graphqlContext/mockV3Config.js +3 -2
  93. package/dist/contexts/hardcopyContext/hardcopyContext.cjs +18 -8
  94. package/dist/contexts/hardcopyContext/hardcopyContext.d.cts +6 -4
  95. package/dist/contexts/hardcopyContext/hardcopyContext.d.ts +6 -4
  96. package/dist/contexts/hardcopyContext/hardcopyContext.js +16 -6
  97. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.cjs +1 -1
  98. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.js +1 -1
  99. package/dist/contexts/pageContext/pageContext.cjs +11 -7
  100. package/dist/contexts/pageContext/pageContext.js +11 -7
  101. package/dist/contexts/pageContext/types.d.cts +1 -1
  102. package/dist/contexts/salesAgentContext/chatAPI.cjs +11 -11
  103. package/dist/contexts/salesAgentContext/chatAPI.js +4 -4
  104. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +1 -1
  105. package/dist/contexts/salesAgentContext/salesAgentContext.js +1 -1
  106. package/dist/contexts/salesAgentContext/salesAgentService.cjs +9 -8
  107. package/dist/contexts/salesAgentContext/salesAgentService.js +7 -6
  108. package/dist/contexts/searchContext/searchContext.cjs +2 -2
  109. package/dist/contexts/searchContext/searchContext.js +2 -2
  110. package/dist/contexts/systemSettingsContext/systemSettingsContext.cjs +1 -1
  111. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  112. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
  113. package/dist/contexts/systemSettingsContext/systemSettingsContext.js +1 -1
  114. package/dist/contexts/types.cjs +1 -1
  115. package/dist/contexts/types.d.cts +4 -2
  116. package/dist/contexts/types.d.ts +4 -2
  117. package/dist/contexts/types.js +1 -1
  118. package/dist/contexts/typesV3.cjs +1 -1
  119. package/dist/contexts/typesV3.d.cts +27 -2
  120. package/dist/contexts/typesV3.d.ts +27 -2
  121. package/dist/contexts/typesV3.js +1 -1
  122. package/dist/contexts/userIdentityContext/userIdentityContext.cjs +2 -34
  123. package/dist/contexts/userIdentityContext/userIdentityContext.d.cts +1 -2
  124. package/dist/contexts/userIdentityContext/userIdentityContext.d.ts +1 -2
  125. package/dist/contexts/userIdentityContext/userIdentityContext.js +2 -33
  126. package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.cjs +1 -1
  127. package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.d.cts +2 -2
  128. package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.d.ts +2 -2
  129. package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.js +1 -1
  130. package/dist/hooks/ChatToggle/useChatToggle.cjs +6 -5
  131. package/dist/hooks/ChatToggle/useChatToggle.js +4 -3
  132. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
  133. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  134. package/dist/hooks/Search/useSearch.cjs +9 -8
  135. package/dist/hooks/Search/useSearch.js +4 -3
  136. package/dist/hooks/Search/useSearchInput.cjs +7 -7
  137. package/dist/hooks/Search/useSearchInput.js +4 -4
  138. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +6 -5
  139. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.cts +2 -2
  140. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.ts +2 -2
  141. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +3 -2
  142. package/dist/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.cjs +4 -3
  143. package/dist/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.js +3 -2
  144. package/dist/hooks/utils.d.ts +1 -1
  145. package/dist/services/amplitudeService/amplitudeService.cjs +17 -57
  146. package/dist/services/amplitudeService/amplitudeService.d.cts +4 -47
  147. package/dist/services/amplitudeService/amplitudeService.d.ts +4 -47
  148. package/dist/services/amplitudeService/amplitudeService.js +14 -52
  149. package/dist/services/amplitudeService/eventNames.cjs +59 -0
  150. package/dist/services/amplitudeService/eventNames.d.cts +54 -0
  151. package/dist/services/amplitudeService/eventNames.d.ts +54 -0
  152. package/dist/services/amplitudeService/eventNames.js +57 -0
  153. package/dist/services/amplitudeService/index.cjs +3 -2
  154. package/dist/services/amplitudeService/index.d.cts +2 -1
  155. package/dist/services/amplitudeService/index.d.ts +2 -1
  156. package/dist/services/amplitudeService/index.js +2 -1
  157. package/dist/services/ga4ProjectionService/ga4EventSchema.cjs +108 -0
  158. package/dist/services/ga4ProjectionService/ga4EventSchema.js +108 -0
  159. package/dist/services/ga4ProjectionService/ga4ProjectionService.cjs +71 -0
  160. package/dist/services/ga4ProjectionService/ga4ProjectionService.js +71 -0
  161. package/dist/types/customerService.cjs +2 -1
  162. package/dist/types/customerService.d.cts +2 -1
  163. package/dist/types/customerService.d.ts +2 -1
  164. package/dist/types/customerService.js +2 -1
  165. package/dist/types/enviveConfig.d.cts +4 -1
  166. package/dist/types/enviveConfig.d.ts +4 -1
  167. package/package.json +2 -7
  168. package/src/application/commerce-api.ts +25 -49
  169. package/src/application/models/api/widgetTextRequest.ts +1 -0
  170. package/src/application/models/chatElementDisplayLocationV3.ts +2 -0
  171. package/src/application/models/variantInfo/variantInfo.ts +1 -1
  172. package/src/application/utils/analyticsUtils.ts +1 -1
  173. package/src/application/utils/nodeSelector.ts +15 -14
  174. package/src/application/utils/widgetTextRequestToApiRequest.ts +1 -0
  175. package/src/atoms/chat/chatState.ts +1 -1
  176. package/src/atoms/chat/replies.ts +1 -1
  177. package/src/contexts/amplitudeContext/amplitudeContext.tsx +0 -1
  178. package/src/contexts/enviveContext/enviveContext.tsx +5 -2
  179. package/src/contexts/graphqlContext/mockV3Config.ts +3 -0
  180. package/src/contexts/hardcopyContext/hardcopyContext.tsx +20 -2
  181. package/src/contexts/pageContext/pageContext.tsx +9 -5
  182. package/src/contexts/salesAgentContext/chatAPI.ts +0 -1
  183. package/src/contexts/salesAgentContext/salesAgentService.ts +5 -2
  184. package/src/contexts/types.ts +3 -1
  185. package/src/contexts/typesV3.ts +28 -0
  186. package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +1 -66
  187. package/src/contexts/userIdentityContext/userIdentityContext.tsx +0 -47
  188. package/src/hooks/AmplitudeOperations/useAmplitudeOperations.ts +2 -4
  189. package/src/hooks/ChatToggle/useChatToggle.ts +2 -4
  190. package/src/hooks/Search/useSearch.tsx +2 -4
  191. package/src/hooks/Search/useSearchInput.ts +1 -1
  192. package/src/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.ts +2 -4
  193. package/src/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.ts +2 -4
  194. package/src/services/amplitudeService/amplitudeService.ts +14 -50
  195. package/src/services/amplitudeService/eventNames.ts +52 -0
  196. package/src/services/ga4ProjectionService/__tests__/ga4ProjectionService.test.ts +334 -0
  197. package/src/services/ga4ProjectionService/ga4EventSchema.ts +143 -0
  198. package/src/services/ga4ProjectionService/ga4ProjectionService.ts +137 -0
  199. package/src/types/customerService.ts +1 -0
  200. package/src/types/enviveConfig.ts +3 -0
  201. package/dist/hooks/IdentifyUser/index.cjs +0 -3
  202. package/dist/hooks/IdentifyUser/index.d.cts +0 -2
  203. package/dist/hooks/IdentifyUser/index.d.ts +0 -2
  204. package/dist/hooks/IdentifyUser/index.js +0 -3
  205. package/dist/hooks/IdentifyUser/useIdentifyUser.cjs +0 -35
  206. package/dist/hooks/IdentifyUser/useIdentifyUser.d.cts +0 -10
  207. package/dist/hooks/IdentifyUser/useIdentifyUser.d.ts +0 -10
  208. package/dist/hooks/IdentifyUser/useIdentifyUser.js +0 -34
  209. package/src/hooks/IdentifyUser/index.ts +0 -1
  210. package/src/hooks/IdentifyUser/useIdentifyUser.ts +0 -29
@@ -0,0 +1,108 @@
1
+ const require_eventNames = require('../amplitudeService/eventNames.cjs');
2
+
3
+ //#region src/services/ga4ProjectionService/ga4EventSchema.ts
4
+ /**
5
+ * GA4 Event Schema — single source of truth for Envive → GA4 projection.
6
+ *
7
+ * Every EnviveMetricsEventName MUST have an entry here. The Record type enforces
8
+ * this at compile time — adding a new enum member without a schema entry will
9
+ * cause a TypeScript error.
10
+ *
11
+ * ## How to update this file
12
+ *
13
+ * When adding or modifying event properties, decide whether they belong in `allowedFields` using these criteria:
14
+ * - **Low cardinality** — avoid unbounded values (free text, IDs, URLs, timestamps).
15
+ * - **Non-sensitive** — no PII, user input text, or internal implementation details.
16
+ * - **Flat scalar** — GA4 custom dimensions are flat strings/numbers/booleans.
17
+ * Nested objects should NOT be added; extract specific sub-fields instead.
18
+ * - **Snake_case key** — must already be dot-notation snake_case (e.g. `chat.user_typed`).
19
+ * - **Analytically useful** — the field should enable meaningful filtering/segmentation
20
+ * for merchants in their GA4 dashboards.
21
+ *
22
+ * If excluded from `allowedFields`, the projection layer will automatically drop it.
23
+ *
24
+ * IF IN DOUBT, DON'T HESITATE TO REACH OUT TO THE ANALYTICS TEAM!!!
25
+ */
26
+ const WIDGET_INTERACTION_DATA_PROJECTIONS = {
27
+ widget_collapsed: { trigger_collapse_source: "collapse_source" },
28
+ product_card_clicked: { trigger_product_id: "product_id" },
29
+ suggestion_scrolled: { trigger_suggestion_id: "suggestion_id" }
30
+ };
31
+ const GA4_EVENT_SCHEMA = {
32
+ [require_eventNames.EnviveMetricsEventName.WidgetRendered]: {
33
+ gaEventName: "envive_widget_rendered",
34
+ allowedFields: [
35
+ "context.page_type",
36
+ "context.page_id",
37
+ "trigger.widget",
38
+ "trigger.widget_role",
39
+ "context.surface"
40
+ ]
41
+ },
42
+ [require_eventNames.EnviveMetricsEventName.WidgetInteraction]: {
43
+ gaEventName: "envive_widget_interaction",
44
+ allowedFields: [
45
+ "context.page_type",
46
+ "context.page_id",
47
+ "trigger.widget",
48
+ "trigger.widget_interaction",
49
+ "trigger.entity_role",
50
+ "context.surface"
51
+ ],
52
+ widgetInteractionDataProjections: WIDGET_INTERACTION_DATA_PROJECTIONS
53
+ },
54
+ [require_eventNames.EnviveMetricsEventName.ChatRequest]: {
55
+ gaEventName: "envive_chat_request",
56
+ allowedFields: [
57
+ "page_type",
58
+ "page_id",
59
+ "trigger.widget",
60
+ "chat.request_type",
61
+ "chat.user_typed",
62
+ "chat.suggestion_id",
63
+ "chat.suggestion_category",
64
+ "chat.suggestion_created_at",
65
+ "chat.suggestion_is_answer",
66
+ "chat.form_type"
67
+ ]
68
+ },
69
+ [require_eventNames.EnviveMetricsEventName.ChatResponse]: {
70
+ gaEventName: "envive_chat_response",
71
+ allowedFields: [
72
+ "page_type",
73
+ "page_id",
74
+ "trigger.widget",
75
+ "chat.user_typed",
76
+ "chat.response_time_ms",
77
+ "chat.product_cards_returned",
78
+ "chat.review_cards_returned"
79
+ ]
80
+ },
81
+ [require_eventNames.EnviveMetricsEventName.EnviveInitialized]: {
82
+ gaEventName: "envive_initialized",
83
+ allowedFields: [
84
+ "environment.sales_agent_enabled",
85
+ "environment.envive_enabled",
86
+ "performance.start_time_ms",
87
+ "performance.initialize_time_ms"
88
+ ]
89
+ },
90
+ [require_eventNames.EnviveMetricsEventName.PageViewed]: {
91
+ gaEventName: "envive_page_context_evaluated",
92
+ allowedFields: [
93
+ "context.page_type",
94
+ "context.page_id",
95
+ "context.supported",
96
+ "context.ready",
97
+ "context.page_variant_id",
98
+ "environment.envive_enabled"
99
+ ]
100
+ },
101
+ [require_eventNames.EnviveMetricsEventName.WidgetTextRequest]: { gaEventName: null },
102
+ [require_eventNames.EnviveMetricsEventName.WidgetTextResponse]: { gaEventName: null },
103
+ [require_eventNames.EnviveMetricsEventName.WidgetTextClicked]: { gaEventName: null }
104
+ };
105
+
106
+ //#endregion
107
+ exports.GA4_EVENT_SCHEMA = GA4_EVENT_SCHEMA;
108
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2E0RXZlbnRTY2hlbWEuY2pzIiwibmFtZXMiOlsiV0lER0VUX0lOVEVSQUNUSU9OX0RBVEFfUFJPSkVDVElPTlM6IFdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb24iLCJHQTRfRVZFTlRfU0NIRU1BOiBSZWNvcmQ8RW52aXZlTWV0cmljc0V2ZW50TmFtZSwgR0E0RXZlbnRTY2hlbWFFbnRyeT4iLCJFbnZpdmVNZXRyaWNzRXZlbnROYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2dhNFByb2plY3Rpb25TZXJ2aWNlL2dhNEV2ZW50U2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR0E0IEV2ZW50IFNjaGVtYSDigJQgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgRW52aXZlIOKGkiBHQTQgcHJvamVjdGlvbi5cbiAqXG4gKiBFdmVyeSBFbnZpdmVNZXRyaWNzRXZlbnROYW1lIE1VU1QgaGF2ZSBhbiBlbnRyeSBoZXJlLiBUaGUgUmVjb3JkIHR5cGUgZW5mb3JjZXNcbiAqIHRoaXMgYXQgY29tcGlsZSB0aW1lIOKAlCBhZGRpbmcgYSBuZXcgZW51bSBtZW1iZXIgd2l0aG91dCBhIHNjaGVtYSBlbnRyeSB3aWxsXG4gKiBjYXVzZSBhIFR5cGVTY3JpcHQgZXJyb3IuXG4gKlxuICogIyMgSG93IHRvIHVwZGF0ZSB0aGlzIGZpbGVcbiAqXG4gKiBXaGVuIGFkZGluZyBvciBtb2RpZnlpbmcgZXZlbnQgcHJvcGVydGllcywgZGVjaWRlIHdoZXRoZXIgdGhleSBiZWxvbmcgaW4gYGFsbG93ZWRGaWVsZHNgIHVzaW5nIHRoZXNlIGNyaXRlcmlhOlxuICogLSAqKkxvdyBjYXJkaW5hbGl0eSoqIOKAlCBhdm9pZCB1bmJvdW5kZWQgdmFsdWVzIChmcmVlIHRleHQsIElEcywgVVJMcywgdGltZXN0YW1wcykuXG4gKiAtICoqTm9uLXNlbnNpdGl2ZSoqIOKAlCBubyBQSUksIHVzZXIgaW5wdXQgdGV4dCwgb3IgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlscy5cbiAqIC0gKipGbGF0IHNjYWxhcioqIOKAlCBHQTQgY3VzdG9tIGRpbWVuc2lvbnMgYXJlIGZsYXQgc3RyaW5ncy9udW1iZXJzL2Jvb2xlYW5zLlxuICogICBOZXN0ZWQgb2JqZWN0cyBzaG91bGQgTk9UIGJlIGFkZGVkOyBleHRyYWN0IHNwZWNpZmljIHN1Yi1maWVsZHMgaW5zdGVhZC5cbiAqIC0gKipTbmFrZV9jYXNlIGtleSoqIOKAlCBtdXN0IGFscmVhZHkgYmUgZG90LW5vdGF0aW9uIHNuYWtlX2Nhc2UgKGUuZy4gYGNoYXQudXNlcl90eXBlZGApLlxuICogLSAqKkFuYWx5dGljYWxseSB1c2VmdWwqKiDigJQgdGhlIGZpZWxkIHNob3VsZCBlbmFibGUgbWVhbmluZ2Z1bCBmaWx0ZXJpbmcvc2VnbWVudGF0aW9uXG4gKiAgIGZvciBtZXJjaGFudHMgaW4gdGhlaXIgR0E0IGRhc2hib2FyZHMuXG4gKlxuICogSWYgZXhjbHVkZWQgZnJvbSBgYWxsb3dlZEZpZWxkc2AsIHRoZSBwcm9qZWN0aW9uIGxheWVyIHdpbGwgYXV0b21hdGljYWxseSBkcm9wIGl0LlxuICpcbiAqIElGIElOIERPVUJULCBET04nVCBIRVNJVEFURSBUTyBSRUFDSCBPVVQgVE8gVEhFIEFOQUxZVElDUyBURUFNISEhXG4gKi9cbmltcG9ydCB7IEVudml2ZU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICcuLi9hbXBsaXR1ZGVTZXJ2aWNlL2V2ZW50TmFtZXMnO1xuXG4vKipcbiAqIERlZmluZXMgd2hpY2ggZmllbGRzIHRvIGV4dHJhY3QgZnJvbSBgdHJpZ2dlci53aWRnZXRfaW50ZXJhY3Rpb25fZGF0YWBcbiAqIGZvciBhIGdpdmVuIGB0cmlnZ2VyLndpZGdldF9pbnRlcmFjdGlvbmAgdmFsdWUuXG4gKlxuICogS2V5OiB0aGUgdmFsdWUgb2YgYHRyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uYCAoZS5nLiBcIndpZGdldF9jb2xsYXBzZWRcIilcbiAqIFZhbHVlOiBtYXBwaW5nIG9mIHsgZ2E0RmxhdEtleTogc291cmNlRmllbGRJbldpZGdldEludGVyYWN0aW9uRGF0YSB9XG4gKi9cbmV4cG9ydCB0eXBlIFdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb24gPSBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcblxuZXhwb3J0IGludGVyZmFjZSBHQTRQcm9qZWN0ZWRFdmVudENvbmZpZyB7XG4gIGdhRXZlbnROYW1lOiBzdHJpbmc7XG4gIGFsbG93ZWRGaWVsZHM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICB3aWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9ucz86IFdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR0E0RXhjbHVkZWRFdmVudENvbmZpZyB7XG4gIGdhRXZlbnROYW1lOiBudWxsO1xufVxuXG5leHBvcnQgdHlwZSBHQTRFdmVudFNjaGVtYUVudHJ5ID0gR0E0UHJvamVjdGVkRXZlbnRDb25maWcgfCBHQTRFeGNsdWRlZEV2ZW50Q29uZmlnO1xuXG5jb25zdCBXSURHRVRfSU5URVJBQ1RJT05fREFUQV9QUk9KRUNUSU9OUzogV2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbiA9IHtcbiAgd2lkZ2V0X2NvbGxhcHNlZDogeyB0cmlnZ2VyX2NvbGxhcHNlX3NvdXJjZTogJ2NvbGxhcHNlX3NvdXJjZScgfSxcbiAgcHJvZHVjdF9jYXJkX2NsaWNrZWQ6IHsgdHJpZ2dlcl9wcm9kdWN0X2lkOiAncHJvZHVjdF9pZCcgfSxcbiAgc3VnZ2VzdGlvbl9zY3JvbGxlZDogeyB0cmlnZ2VyX3N1Z2dlc3Rpb25faWQ6ICdzdWdnZXN0aW9uX2lkJyB9LFxufTtcblxuZXhwb3J0IGNvbnN0IEdBNF9FVkVOVF9TQ0hFTUE6IFJlY29yZDxFbnZpdmVNZXRyaWNzRXZlbnROYW1lLCBHQTRFdmVudFNjaGVtYUVudHJ5PiA9IHtcbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0UmVuZGVyZWRdOiB7XG4gICAgZ2FFdmVudE5hbWU6ICdlbnZpdmVfd2lkZ2V0X3JlbmRlcmVkJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXG4gICAgICAnY29udGV4dC5wYWdlX3R5cGUnLFxuICAgICAgJ2NvbnRleHQucGFnZV9pZCcsXG4gICAgICAndHJpZ2dlci53aWRnZXQnLFxuICAgICAgJ3RyaWdnZXIud2lkZ2V0X3JvbGUnLFxuICAgICAgJ2NvbnRleHQuc3VyZmFjZScsXG4gICAgXSxcbiAgfSxcblxuICAvLyBUaGlzIGV2ZW50IGlzIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0SW50ZXJhY3Rpb25dOiB7XG4gICAgZ2FFdmVudE5hbWU6ICdlbnZpdmVfd2lkZ2V0X2ludGVyYWN0aW9uJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXG4gICAgICAnY29udGV4dC5wYWdlX3R5cGUnLFxuICAgICAgJ2NvbnRleHQucGFnZV9pZCcsXG4gICAgICAndHJpZ2dlci53aWRnZXQnLFxuICAgICAgJ3RyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uJyxcbiAgICAgICd0cmlnZ2VyLmVudGl0eV9yb2xlJyxcbiAgICAgICdjb250ZXh0LnN1cmZhY2UnLFxuICAgIF0sXG4gICAgd2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbnM6IFdJREdFVF9JTlRFUkFDVElPTl9EQVRBX1BST0pFQ1RJT05TLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXF1ZXN0XToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX2NoYXRfcmVxdWVzdCcsXG4gICAgYWxsb3dlZEZpZWxkczogW1xuICAgICAgJ3BhZ2VfdHlwZScsXG4gICAgICAncGFnZV9pZCcsXG4gICAgICAndHJpZ2dlci53aWRnZXQnLFxuICAgICAgJ2NoYXQucmVxdWVzdF90eXBlJyxcbiAgICAgIC8vICdjaGF0LnJlcXVlc3RfdGV4dCcsIC8vIFRoaXMgaXMgaGlnaCBjYXJkaW5hbGl0eSBhbmQgcG90ZW50aWFsbHkgUElJIGJ1dCB3ZSBtaWdodCB3YW50IHRvIGluY2x1ZGUgaXQgbGF0ZXJcbiAgICAgICdjaGF0LnVzZXJfdHlwZWQnLFxuICAgICAgJ2NoYXQuc3VnZ2VzdGlvbl9pZCcsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICAgICdjaGF0LnN1Z2dlc3Rpb25fY2F0ZWdvcnknLCAvLyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkXG4gICAgICAnY2hhdC5zdWdnZXN0aW9uX2NyZWF0ZWRfYXQnLCAvLyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkXG4gICAgICAnY2hhdC5zdWdnZXN0aW9uX2lzX2Fuc3dlcicsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICAgICdjaGF0LmZvcm1fdHlwZScsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgICBdLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLkNoYXRSZXNwb25zZV06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV9jaGF0X3Jlc3BvbnNlJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXG4gICAgICAncGFnZV90eXBlJyxcbiAgICAgICdwYWdlX2lkJyxcbiAgICAgICd0cmlnZ2VyLndpZGdldCcsIC8vIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgKG1heWJlIGl0IHNob3VsZCdudCBiZT8/PylcbiAgICAgICdjaGF0LnVzZXJfdHlwZWQnLFxuICAgICAgJ2NoYXQucmVzcG9uc2VfdGltZV9tcycsXG4gICAgICAnY2hhdC5wcm9kdWN0X2NhcmRzX3JldHVybmVkJyxcbiAgICAgICdjaGF0LnJldmlld19jYXJkc19yZXR1cm5lZCcsXG4gICAgXSxcbiAgfSxcblxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5FbnZpdmVJbml0aWFsaXplZF06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV9pbml0aWFsaXplZCcsXG4gICAgYWxsb3dlZEZpZWxkczogW1xuICAgICAgJ2Vudmlyb25tZW50LnNhbGVzX2FnZW50X2VuYWJsZWQnLFxuICAgICAgJ2Vudmlyb25tZW50LmVudml2ZV9lbmFibGVkJyxcbiAgICAgIC8vICdlbnZpcm9ubWVudC5zZWFyY2hfZW5hYmxlZCcsIC8vIEZvciBub3csIHNlYXJjaCBpcyBub3QgaW1wbGVtZW50ZWQuIFdlIHdpbGwgYWRkIGl0IGxhdGVyLlxuICAgICAgJ3BlcmZvcm1hbmNlLnN0YXJ0X3RpbWVfbXMnLFxuICAgICAgJ3BlcmZvcm1hbmNlLmluaXRpYWxpemVfdGltZV9tcycsXG4gICAgXSxcbiAgfSxcblxuICAvLyBUaGlzIGV2ZW50IGlzIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWRcbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuUGFnZVZpZXdlZF06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV9wYWdlX2NvbnRleHRfZXZhbHVhdGVkJyxcbiAgICBhbGxvd2VkRmllbGRzOiBbXG4gICAgICAnY29udGV4dC5wYWdlX3R5cGUnLFxuICAgICAgJ2NvbnRleHQucGFnZV9pZCcsXG4gICAgICAnY29udGV4dC5zdXBwb3J0ZWQnLFxuICAgICAgJ2NvbnRleHQucmVhZHknLFxuICAgICAgJ2NvbnRleHQucGFnZV92YXJpYW50X2lkJyxcbiAgICAgICdlbnZpcm9ubWVudC5lbnZpdmVfZW5hYmxlZCcsXG4gICAgXSxcbiAgfSxcblxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0UmVxdWVzdF06IHtcbiAgICBnYUV2ZW50TmFtZTogbnVsbCxcbiAgfSxcblxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5XaWRnZXRUZXh0UmVzcG9uc2VdOiB7XG4gICAgZ2FFdmVudE5hbWU6IG51bGwsXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dENsaWNrZWRdOiB7XG4gICAgZ2FFdmVudE5hbWU6IG51bGwsXG4gIH0sXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkNBLE1BQU1BLHNDQUF1RTtDQUMzRSxrQkFBa0IsRUFBRSx5QkFBeUIsbUJBQW1CO0NBQ2hFLHNCQUFzQixFQUFFLG9CQUFvQixjQUFjO0NBQzFELHFCQUFxQixFQUFFLHVCQUF1QixpQkFBaUI7Q0FDaEU7QUFFRCxNQUFhQyxtQkFBd0U7RUFDbEZDLDBDQUF1QixpQkFBaUI7RUFDdkMsYUFBYTtFQUNiLGVBQWU7R0FDYjtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0Q7RUFDRjtFQUdBQSwwQ0FBdUIsb0JBQW9CO0VBQzFDLGFBQWE7RUFDYixlQUFlO0dBQ2I7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0Q7RUFDRCxrQ0FBa0M7RUFDbkM7RUFFQUEsMENBQXVCLGNBQWM7RUFDcEMsYUFBYTtFQUNiLGVBQWU7R0FDYjtHQUNBO0dBQ0E7R0FDQTtHQUVBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNEO0VBQ0Y7RUFFQUEsMENBQXVCLGVBQWU7RUFDckMsYUFBYTtFQUNiLGVBQWU7R0FDYjtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNEO0VBQ0Y7RUFFQUEsMENBQXVCLG9CQUFvQjtFQUMxQyxhQUFhO0VBQ2IsZUFBZTtHQUNiO0dBQ0E7R0FFQTtHQUNBO0dBQ0Q7RUFDRjtFQUdBQSwwQ0FBdUIsYUFBYTtFQUNuQyxhQUFhO0VBQ2IsZUFBZTtHQUNiO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNEO0VBQ0Y7RUFFQUEsMENBQXVCLG9CQUFvQixFQUMxQyxhQUFhLE1BQ2Q7RUFFQUEsMENBQXVCLHFCQUFxQixFQUMzQyxhQUFhLE1BQ2Q7RUFFQUEsMENBQXVCLG9CQUFvQixFQUMxQyxhQUFhLE1BQ2Q7Q0FDRiJ9
@@ -0,0 +1,108 @@
1
+ import { EnviveMetricsEventName } from "../amplitudeService/eventNames.js";
2
+
3
+ //#region src/services/ga4ProjectionService/ga4EventSchema.ts
4
+ /**
5
+ * GA4 Event Schema — single source of truth for Envive → GA4 projection.
6
+ *
7
+ * Every EnviveMetricsEventName MUST have an entry here. The Record type enforces
8
+ * this at compile time — adding a new enum member without a schema entry will
9
+ * cause a TypeScript error.
10
+ *
11
+ * ## How to update this file
12
+ *
13
+ * When adding or modifying event properties, decide whether they belong in `allowedFields` using these criteria:
14
+ * - **Low cardinality** — avoid unbounded values (free text, IDs, URLs, timestamps).
15
+ * - **Non-sensitive** — no PII, user input text, or internal implementation details.
16
+ * - **Flat scalar** — GA4 custom dimensions are flat strings/numbers/booleans.
17
+ * Nested objects should NOT be added; extract specific sub-fields instead.
18
+ * - **Snake_case key** — must already be dot-notation snake_case (e.g. `chat.user_typed`).
19
+ * - **Analytically useful** — the field should enable meaningful filtering/segmentation
20
+ * for merchants in their GA4 dashboards.
21
+ *
22
+ * If excluded from `allowedFields`, the projection layer will automatically drop it.
23
+ *
24
+ * IF IN DOUBT, DON'T HESITATE TO REACH OUT TO THE ANALYTICS TEAM!!!
25
+ */
26
+ const WIDGET_INTERACTION_DATA_PROJECTIONS = {
27
+ widget_collapsed: { trigger_collapse_source: "collapse_source" },
28
+ product_card_clicked: { trigger_product_id: "product_id" },
29
+ suggestion_scrolled: { trigger_suggestion_id: "suggestion_id" }
30
+ };
31
+ const GA4_EVENT_SCHEMA = {
32
+ [EnviveMetricsEventName.WidgetRendered]: {
33
+ gaEventName: "envive_widget_rendered",
34
+ allowedFields: [
35
+ "context.page_type",
36
+ "context.page_id",
37
+ "trigger.widget",
38
+ "trigger.widget_role",
39
+ "context.surface"
40
+ ]
41
+ },
42
+ [EnviveMetricsEventName.WidgetInteraction]: {
43
+ gaEventName: "envive_widget_interaction",
44
+ allowedFields: [
45
+ "context.page_type",
46
+ "context.page_id",
47
+ "trigger.widget",
48
+ "trigger.widget_interaction",
49
+ "trigger.entity_role",
50
+ "context.surface"
51
+ ],
52
+ widgetInteractionDataProjections: WIDGET_INTERACTION_DATA_PROJECTIONS
53
+ },
54
+ [EnviveMetricsEventName.ChatRequest]: {
55
+ gaEventName: "envive_chat_request",
56
+ allowedFields: [
57
+ "page_type",
58
+ "page_id",
59
+ "trigger.widget",
60
+ "chat.request_type",
61
+ "chat.user_typed",
62
+ "chat.suggestion_id",
63
+ "chat.suggestion_category",
64
+ "chat.suggestion_created_at",
65
+ "chat.suggestion_is_answer",
66
+ "chat.form_type"
67
+ ]
68
+ },
69
+ [EnviveMetricsEventName.ChatResponse]: {
70
+ gaEventName: "envive_chat_response",
71
+ allowedFields: [
72
+ "page_type",
73
+ "page_id",
74
+ "trigger.widget",
75
+ "chat.user_typed",
76
+ "chat.response_time_ms",
77
+ "chat.product_cards_returned",
78
+ "chat.review_cards_returned"
79
+ ]
80
+ },
81
+ [EnviveMetricsEventName.EnviveInitialized]: {
82
+ gaEventName: "envive_initialized",
83
+ allowedFields: [
84
+ "environment.sales_agent_enabled",
85
+ "environment.envive_enabled",
86
+ "performance.start_time_ms",
87
+ "performance.initialize_time_ms"
88
+ ]
89
+ },
90
+ [EnviveMetricsEventName.PageViewed]: {
91
+ gaEventName: "envive_page_context_evaluated",
92
+ allowedFields: [
93
+ "context.page_type",
94
+ "context.page_id",
95
+ "context.supported",
96
+ "context.ready",
97
+ "context.page_variant_id",
98
+ "environment.envive_enabled"
99
+ ]
100
+ },
101
+ [EnviveMetricsEventName.WidgetTextRequest]: { gaEventName: null },
102
+ [EnviveMetricsEventName.WidgetTextResponse]: { gaEventName: null },
103
+ [EnviveMetricsEventName.WidgetTextClicked]: { gaEventName: null }
104
+ };
105
+
106
+ //#endregion
107
+ export { GA4_EVENT_SCHEMA };
108
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2E0RXZlbnRTY2hlbWEuanMiLCJuYW1lcyI6WyJXSURHRVRfSU5URVJBQ1RJT05fREFUQV9QUk9KRUNUSU9OUzogV2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbiIsIkdBNF9FVkVOVF9TQ0hFTUE6IFJlY29yZDxFbnZpdmVNZXRyaWNzRXZlbnROYW1lLCBHQTRFdmVudFNjaGVtYUVudHJ5PiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9nYTRQcm9qZWN0aW9uU2VydmljZS9nYTRFdmVudFNjaGVtYS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdBNCBFdmVudCBTY2hlbWEg4oCUIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIEVudml2ZSDihpIgR0E0IHByb2plY3Rpb24uXG4gKlxuICogRXZlcnkgRW52aXZlTWV0cmljc0V2ZW50TmFtZSBNVVNUIGhhdmUgYW4gZW50cnkgaGVyZS4gVGhlIFJlY29yZCB0eXBlIGVuZm9yY2VzXG4gKiB0aGlzIGF0IGNvbXBpbGUgdGltZSDigJQgYWRkaW5nIGEgbmV3IGVudW0gbWVtYmVyIHdpdGhvdXQgYSBzY2hlbWEgZW50cnkgd2lsbFxuICogY2F1c2UgYSBUeXBlU2NyaXB0IGVycm9yLlxuICpcbiAqICMjIEhvdyB0byB1cGRhdGUgdGhpcyBmaWxlXG4gKlxuICogV2hlbiBhZGRpbmcgb3IgbW9kaWZ5aW5nIGV2ZW50IHByb3BlcnRpZXMsIGRlY2lkZSB3aGV0aGVyIHRoZXkgYmVsb25nIGluIGBhbGxvd2VkRmllbGRzYCB1c2luZyB0aGVzZSBjcml0ZXJpYTpcbiAqIC0gKipMb3cgY2FyZGluYWxpdHkqKiDigJQgYXZvaWQgdW5ib3VuZGVkIHZhbHVlcyAoZnJlZSB0ZXh0LCBJRHMsIFVSTHMsIHRpbWVzdGFtcHMpLlxuICogLSAqKk5vbi1zZW5zaXRpdmUqKiDigJQgbm8gUElJLCB1c2VyIGlucHV0IHRleHQsIG9yIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbHMuXG4gKiAtICoqRmxhdCBzY2FsYXIqKiDigJQgR0E0IGN1c3RvbSBkaW1lbnNpb25zIGFyZSBmbGF0IHN0cmluZ3MvbnVtYmVycy9ib29sZWFucy5cbiAqICAgTmVzdGVkIG9iamVjdHMgc2hvdWxkIE5PVCBiZSBhZGRlZDsgZXh0cmFjdCBzcGVjaWZpYyBzdWItZmllbGRzIGluc3RlYWQuXG4gKiAtICoqU25ha2VfY2FzZSBrZXkqKiDigJQgbXVzdCBhbHJlYWR5IGJlIGRvdC1ub3RhdGlvbiBzbmFrZV9jYXNlIChlLmcuIGBjaGF0LnVzZXJfdHlwZWRgKS5cbiAqIC0gKipBbmFseXRpY2FsbHkgdXNlZnVsKiog4oCUIHRoZSBmaWVsZCBzaG91bGQgZW5hYmxlIG1lYW5pbmdmdWwgZmlsdGVyaW5nL3NlZ21lbnRhdGlvblxuICogICBmb3IgbWVyY2hhbnRzIGluIHRoZWlyIEdBNCBkYXNoYm9hcmRzLlxuICpcbiAqIElmIGV4Y2x1ZGVkIGZyb20gYGFsbG93ZWRGaWVsZHNgLCB0aGUgcHJvamVjdGlvbiBsYXllciB3aWxsIGF1dG9tYXRpY2FsbHkgZHJvcCBpdC5cbiAqXG4gKiBJRiBJTiBET1VCVCwgRE9OJ1QgSEVTSVRBVEUgVE8gUkVBQ0ggT1VUIFRPIFRIRSBBTkFMWVRJQ1MgVEVBTSEhIVxuICovXG5pbXBvcnQgeyBFbnZpdmVNZXRyaWNzRXZlbnROYW1lIH0gZnJvbSAnLi4vYW1wbGl0dWRlU2VydmljZS9ldmVudE5hbWVzJztcblxuLyoqXG4gKiBEZWZpbmVzIHdoaWNoIGZpZWxkcyB0byBleHRyYWN0IGZyb20gYHRyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uX2RhdGFgXG4gKiBmb3IgYSBnaXZlbiBgdHJpZ2dlci53aWRnZXRfaW50ZXJhY3Rpb25gIHZhbHVlLlxuICpcbiAqIEtleTogdGhlIHZhbHVlIG9mIGB0cmlnZ2VyLndpZGdldF9pbnRlcmFjdGlvbmAgKGUuZy4gXCJ3aWRnZXRfY29sbGFwc2VkXCIpXG4gKiBWYWx1ZTogbWFwcGluZyBvZiB7IGdhNEZsYXRLZXk6IHNvdXJjZUZpZWxkSW5XaWRnZXRJbnRlcmFjdGlvbkRhdGEgfVxuICovXG5leHBvcnQgdHlwZSBXaWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9uID0gUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgR0E0UHJvamVjdGVkRXZlbnRDb25maWcge1xuICBnYUV2ZW50TmFtZTogc3RyaW5nO1xuICBhbGxvd2VkRmllbGRzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgd2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbnM/OiBXaWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdBNEV4Y2x1ZGVkRXZlbnRDb25maWcge1xuICBnYUV2ZW50TmFtZTogbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgR0E0RXZlbnRTY2hlbWFFbnRyeSA9IEdBNFByb2plY3RlZEV2ZW50Q29uZmlnIHwgR0E0RXhjbHVkZWRFdmVudENvbmZpZztcblxuY29uc3QgV0lER0VUX0lOVEVSQUNUSU9OX0RBVEFfUFJPSkVDVElPTlM6IFdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb24gPSB7XG4gIHdpZGdldF9jb2xsYXBzZWQ6IHsgdHJpZ2dlcl9jb2xsYXBzZV9zb3VyY2U6ICdjb2xsYXBzZV9zb3VyY2UnIH0sXG4gIHByb2R1Y3RfY2FyZF9jbGlja2VkOiB7IHRyaWdnZXJfcHJvZHVjdF9pZDogJ3Byb2R1Y3RfaWQnIH0sXG4gIHN1Z2dlc3Rpb25fc2Nyb2xsZWQ6IHsgdHJpZ2dlcl9zdWdnZXN0aW9uX2lkOiAnc3VnZ2VzdGlvbl9pZCcgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBHQTRfRVZFTlRfU0NIRU1BOiBSZWNvcmQ8RW52aXZlTWV0cmljc0V2ZW50TmFtZSwgR0E0RXZlbnRTY2hlbWFFbnRyeT4gPSB7XG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFJlbmRlcmVkXToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX3dpZGdldF9yZW5kZXJlZCcsXG4gICAgYWxsb3dlZEZpZWxkczogW1xuICAgICAgJ2NvbnRleHQucGFnZV90eXBlJyxcbiAgICAgICdjb250ZXh0LnBhZ2VfaWQnLFxuICAgICAgJ3RyaWdnZXIud2lkZ2V0JyxcbiAgICAgICd0cmlnZ2VyLndpZGdldF9yb2xlJyxcbiAgICAgICdjb250ZXh0LnN1cmZhY2UnLFxuICAgIF0sXG4gIH0sXG5cbiAgLy8gVGhpcyBldmVudCBpcyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldEludGVyYWN0aW9uXToge1xuICAgIGdhRXZlbnROYW1lOiAnZW52aXZlX3dpZGdldF9pbnRlcmFjdGlvbicsXG4gICAgYWxsb3dlZEZpZWxkczogW1xuICAgICAgJ2NvbnRleHQucGFnZV90eXBlJyxcbiAgICAgICdjb250ZXh0LnBhZ2VfaWQnLFxuICAgICAgJ3RyaWdnZXIud2lkZ2V0JyxcbiAgICAgICd0cmlnZ2VyLndpZGdldF9pbnRlcmFjdGlvbicsXG4gICAgICAndHJpZ2dlci5lbnRpdHlfcm9sZScsXG4gICAgICAnY29udGV4dC5zdXJmYWNlJyxcbiAgICBdLFxuICAgIHdpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb25zOiBXSURHRVRfSU5URVJBQ1RJT05fREFUQV9QUk9KRUNUSU9OUyxcbiAgfSxcblxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVxdWVzdF06IHtcbiAgICBnYUV2ZW50TmFtZTogJ2Vudml2ZV9jaGF0X3JlcXVlc3QnLFxuICAgIGFsbG93ZWRGaWVsZHM6IFtcbiAgICAgICdwYWdlX3R5cGUnLFxuICAgICAgJ3BhZ2VfaWQnLFxuICAgICAgJ3RyaWdnZXIud2lkZ2V0JyxcbiAgICAgICdjaGF0LnJlcXVlc3RfdHlwZScsXG4gICAgICAvLyAnY2hhdC5yZXF1ZXN0X3RleHQnLCAvLyBUaGlzIGlzIGhpZ2ggY2FyZGluYWxpdHkgYW5kIHBvdGVudGlhbGx5IFBJSSBidXQgd2UgbWlnaHQgd2FudCB0byBpbmNsdWRlIGl0IGxhdGVyXG4gICAgICAnY2hhdC51c2VyX3R5cGVkJyxcbiAgICAgICdjaGF0LnN1Z2dlc3Rpb25faWQnLCAvLyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkXG4gICAgICAnY2hhdC5zdWdnZXN0aW9uX2NhdGVnb3J5JywgLy8gbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZFxuICAgICAgJ2NoYXQuc3VnZ2VzdGlvbl9jcmVhdGVkX2F0JywgLy8gbm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZFxuICAgICAgJ2NoYXQuc3VnZ2VzdGlvbl9pc19hbnN3ZXInLCAvLyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkXG4gICAgICAnY2hhdC5mb3JtX3R5cGUnLCAvLyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkXG4gICAgXSxcbiAgfSxcblxuICBbRW52aXZlTWV0cmljc0V2ZW50TmFtZS5DaGF0UmVzcG9uc2VdOiB7XG4gICAgZ2FFdmVudE5hbWU6ICdlbnZpdmVfY2hhdF9yZXNwb25zZScsXG4gICAgYWxsb3dlZEZpZWxkczogW1xuICAgICAgJ3BhZ2VfdHlwZScsXG4gICAgICAncGFnZV9pZCcsXG4gICAgICAndHJpZ2dlci53aWRnZXQnLCAvLyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkIChtYXliZSBpdCBzaG91bGQnbnQgYmU/Pz8pXG4gICAgICAnY2hhdC51c2VyX3R5cGVkJyxcbiAgICAgICdjaGF0LnJlc3BvbnNlX3RpbWVfbXMnLFxuICAgICAgJ2NoYXQucHJvZHVjdF9jYXJkc19yZXR1cm5lZCcsXG4gICAgICAnY2hhdC5yZXZpZXdfY2FyZHNfcmV0dXJuZWQnLFxuICAgIF0sXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuRW52aXZlSW5pdGlhbGl6ZWRdOiB7XG4gICAgZ2FFdmVudE5hbWU6ICdlbnZpdmVfaW5pdGlhbGl6ZWQnLFxuICAgIGFsbG93ZWRGaWVsZHM6IFtcbiAgICAgICdlbnZpcm9ubWVudC5zYWxlc19hZ2VudF9lbmFibGVkJyxcbiAgICAgICdlbnZpcm9ubWVudC5lbnZpdmVfZW5hYmxlZCcsXG4gICAgICAvLyAnZW52aXJvbm1lbnQuc2VhcmNoX2VuYWJsZWQnLCAvLyBGb3Igbm93LCBzZWFyY2ggaXMgbm90IGltcGxlbWVudGVkLiBXZSB3aWxsIGFkZCBpdCBsYXRlci5cbiAgICAgICdwZXJmb3JtYW5jZS5zdGFydF90aW1lX21zJyxcbiAgICAgICdwZXJmb3JtYW5jZS5pbml0aWFsaXplX3RpbWVfbXMnLFxuICAgIF0sXG4gIH0sXG5cbiAgLy8gVGhpcyBldmVudCBpcyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLlBhZ2VWaWV3ZWRdOiB7XG4gICAgZ2FFdmVudE5hbWU6ICdlbnZpdmVfcGFnZV9jb250ZXh0X2V2YWx1YXRlZCcsXG4gICAgYWxsb3dlZEZpZWxkczogW1xuICAgICAgJ2NvbnRleHQucGFnZV90eXBlJyxcbiAgICAgICdjb250ZXh0LnBhZ2VfaWQnLFxuICAgICAgJ2NvbnRleHQuc3VwcG9ydGVkJyxcbiAgICAgICdjb250ZXh0LnJlYWR5JyxcbiAgICAgICdjb250ZXh0LnBhZ2VfdmFyaWFudF9pZCcsXG4gICAgICAnZW52aXJvbm1lbnQuZW52aXZlX2VuYWJsZWQnLFxuICAgIF0sXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlcXVlc3RdOiB7XG4gICAgZ2FFdmVudE5hbWU6IG51bGwsXG4gIH0sXG5cbiAgW0Vudml2ZU1ldHJpY3NFdmVudE5hbWUuV2lkZ2V0VGV4dFJlc3BvbnNlXToge1xuICAgIGdhRXZlbnROYW1lOiBudWxsLFxuICB9LFxuXG4gIFtFbnZpdmVNZXRyaWNzRXZlbnROYW1lLldpZGdldFRleHRDbGlja2VkXToge1xuICAgIGdhRXZlbnROYW1lOiBudWxsLFxuICB9LFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZDQSxNQUFNQSxzQ0FBdUU7Q0FDM0Usa0JBQWtCLEVBQUUseUJBQXlCLG1CQUFtQjtDQUNoRSxzQkFBc0IsRUFBRSxvQkFBb0IsY0FBYztDQUMxRCxxQkFBcUIsRUFBRSx1QkFBdUIsaUJBQWlCO0NBQ2hFO0FBRUQsTUFBYUMsbUJBQXdFO0VBQ2xGLHVCQUF1QixpQkFBaUI7RUFDdkMsYUFBYTtFQUNiLGVBQWU7R0FDYjtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0Q7RUFDRjtFQUdBLHVCQUF1QixvQkFBb0I7RUFDMUMsYUFBYTtFQUNiLGVBQWU7R0FDYjtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDRDtFQUNELGtDQUFrQztFQUNuQztFQUVBLHVCQUF1QixjQUFjO0VBQ3BDLGFBQWE7RUFDYixlQUFlO0dBQ2I7R0FDQTtHQUNBO0dBQ0E7R0FFQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDRDtFQUNGO0VBRUEsdUJBQXVCLGVBQWU7RUFDckMsYUFBYTtFQUNiLGVBQWU7R0FDYjtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNEO0VBQ0Y7RUFFQSx1QkFBdUIsb0JBQW9CO0VBQzFDLGFBQWE7RUFDYixlQUFlO0dBQ2I7R0FDQTtHQUVBO0dBQ0E7R0FDRDtFQUNGO0VBR0EsdUJBQXVCLGFBQWE7RUFDbkMsYUFBYTtFQUNiLGVBQWU7R0FDYjtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDRDtFQUNGO0VBRUEsdUJBQXVCLG9CQUFvQixFQUMxQyxhQUFhLE1BQ2Q7RUFFQSx1QkFBdUIscUJBQXFCLEVBQzNDLGFBQWEsTUFDZDtFQUVBLHVCQUF1QixvQkFBb0IsRUFDMUMsYUFBYSxNQUNkO0NBQ0YifQ==
@@ -0,0 +1,71 @@
1
+ const require_logger = require('../../application/logging/logger.cjs');
2
+ const require_ga4EventSchema = require('./ga4EventSchema.cjs');
3
+
4
+ //#region src/services/ga4ProjectionService/ga4ProjectionService.ts
5
+ const filterToSchema = (eventProps, allowedFields) => {
6
+ const result = {};
7
+ for (const field of allowedFields) if (field in eventProps) result[field] = eventProps[field];
8
+ return result;
9
+ };
10
+ const flattenDotKeys = (obj) => {
11
+ const result = {};
12
+ for (const [key, value] of Object.entries(obj)) result[key.replace(/\./g, "_")] = value;
13
+ return result;
14
+ };
15
+ const sanitizePageId = (filtered) => {
16
+ const pageType = filtered["context.page_type"];
17
+ if (pageType === "pdp" || pageType === "plp") return filtered;
18
+ const rest = { ...filtered };
19
+ delete rest["context.page_id"];
20
+ return rest;
21
+ };
22
+ const projectWidgetInteractionData = (eventProps, config) => {
23
+ if (!config.widgetInteractionDataProjections) return {};
24
+ const interaction = eventProps["trigger.widget_interaction"];
25
+ if (typeof interaction !== "string") return {};
26
+ const projectionMap = config.widgetInteractionDataProjections[interaction];
27
+ if (!projectionMap) return {};
28
+ const interactionData = eventProps["trigger.widget_interaction_data"];
29
+ if (interactionData === null || interactionData === void 0 || typeof interactionData !== "object") return {};
30
+ const data = interactionData;
31
+ const result = {};
32
+ for (const [gaKey, sourceField] of Object.entries(projectionMap)) if (sourceField in data) result[gaKey] = data[sourceField];
33
+ return result;
34
+ };
35
+ const truncateString = (value) => {
36
+ if (typeof value === "string" && value.length > 100) return `${value.substring(0, 97)}...`;
37
+ return value;
38
+ };
39
+ const truncateValues = (obj) => {
40
+ const result = {};
41
+ for (const [key, value] of Object.entries(obj)) result[key] = truncateString(value);
42
+ return result;
43
+ };
44
+ const pushToDataLayer = (gaEvent) => {
45
+ if (typeof window !== "undefined" && window.dataLayer) window.dataLayer.push(gaEvent);
46
+ };
47
+ const projectToGA4 = (eventName, eventProps) => {
48
+ try {
49
+ const schemaEntry = require_ga4EventSchema.GA4_EVENT_SCHEMA[eventName];
50
+ if (schemaEntry.gaEventName === null) return;
51
+ const config = schemaEntry;
52
+ const props = eventProps ?? {};
53
+ let filtered = filterToSchema(props, config.allowedFields);
54
+ filtered = sanitizePageId(filtered);
55
+ const interactionFields = projectWidgetInteractionData(props, config);
56
+ const truncatedParams = truncateValues({
57
+ ...flattenDotKeys(filtered),
58
+ ...interactionFields
59
+ });
60
+ pushToDataLayer({
61
+ event: config.gaEventName,
62
+ ...truncatedParams
63
+ });
64
+ } catch (err) {
65
+ require_logger.default.logError("[envive-ai] Error projecting event to GA4", err, { eventName });
66
+ }
67
+ };
68
+
69
+ //#endregion
70
+ exports.projectToGA4 = projectToGA4;
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2E0UHJvamVjdGlvblNlcnZpY2UuY2pzIiwibmFtZXMiOlsicmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiIsIkdBNF9FVkVOVF9TQ0hFTUEiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZ2E0UHJvamVjdGlvblNlcnZpY2UvZ2E0UHJvamVjdGlvblNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgRW52aXZlTWV0cmljc0V2ZW50TmFtZSB9IGZyb20gJy4uL2FtcGxpdHVkZVNlcnZpY2UvZXZlbnROYW1lcyc7XG5pbXBvcnQgeyBHQTRQcm9qZWN0ZWRFdmVudENvbmZpZywgR0E0X0VWRU5UX1NDSEVNQSB9IGZyb20gJy4vZ2E0RXZlbnRTY2hlbWEnO1xuXG5jb25zdCBmaWx0ZXJUb1NjaGVtYSA9IChcbiAgZXZlbnRQcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGFsbG93ZWRGaWVsZHM6IHJlYWRvbmx5IHN0cmluZ1tdLFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4ge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gIGZvciAoY29uc3QgZmllbGQgb2YgYWxsb3dlZEZpZWxkcykge1xuICAgIGlmIChmaWVsZCBpbiBldmVudFByb3BzKSB7XG4gICAgICByZXN1bHRbZmllbGRdID0gZXZlbnRQcm9wc1tmaWVsZF07XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyBcImNvbnRleHQucGFnZV90eXBlXCIg4oaSIFwiY29udGV4dF9wYWdlX3R5cGVcIlxuY29uc3QgZmxhdHRlbkRvdEtleXMgPSAob2JqOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+IHtcbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgcmVzdWx0W2tleS5yZXBsYWNlKC9cXC4vZywgJ18nKV0gPSB2YWx1ZTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLy8gT21pdCBjb250ZXh0LnBhZ2VfaWQgZm9yIG5vbi1wZHAvcGxwIHBhZ2UgdHlwZXMuIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGZvciBjb250ZXh0LnBhZ2VfaWQgaXM6XG4vLyBQRFA6IHByb2R1Y3RfaWRcbi8vIFBMUDogcGxwX2lkXG4vLyBTZWFyY2g6IHNlYXJjaCBxdWVyeVxuLy8gT3RoZXI6IHBhZ2UgdXJsXG4vLyBXZSB3YW50IHRvIG9taXQgYWxsIGJ1dCBwZHAgYW5kIHBscCBwYWdlIHR5cGVzIHRvIHByb3ZpZGUgYSBjbGVhciwgY29uc2lzdGVudCBpbnRlcmZhY2UgZm9yIG1lcmNoYW50cy5cbmNvbnN0IHNhbml0aXplUGFnZUlkID0gKGZpbHRlcmVkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+IHtcbiAgY29uc3QgcGFnZVR5cGUgPSBmaWx0ZXJlZFsnY29udGV4dC5wYWdlX3R5cGUnXTtcbiAgaWYgKHBhZ2VUeXBlID09PSAncGRwJyB8fCBwYWdlVHlwZSA9PT0gJ3BscCcpIHtcbiAgICByZXR1cm4gZmlsdGVyZWQ7XG4gIH1cbiAgY29uc3QgcmVzdCA9IHsgLi4uZmlsdGVyZWQgfTtcbiAgZGVsZXRlIHJlc3RbJ2NvbnRleHQucGFnZV9pZCddO1xuICByZXR1cm4gcmVzdDtcbn07XG5cbi8vIEV4dHJhY3Qgd2hpdGVsaXN0ZWQgc3ViLWZpZWxkcyBmcm9tIHRyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uX2RhdGFcbmNvbnN0IHByb2plY3RXaWRnZXRJbnRlcmFjdGlvbkRhdGEgPSAoXG4gIGV2ZW50UHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBjb25maWc6IEdBNFByb2plY3RlZEV2ZW50Q29uZmlnLFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4ge1xuICBpZiAoIWNvbmZpZy53aWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9ucykge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGNvbnN0IGludGVyYWN0aW9uID0gZXZlbnRQcm9wc1sndHJpZ2dlci53aWRnZXRfaW50ZXJhY3Rpb24nXTtcbiAgaWYgKHR5cGVvZiBpbnRlcmFjdGlvbiAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCBwcm9qZWN0aW9uTWFwID0gY29uZmlnLndpZGdldEludGVyYWN0aW9uRGF0YVByb2plY3Rpb25zW2ludGVyYWN0aW9uXTtcbiAgaWYgKCFwcm9qZWN0aW9uTWFwKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3QgaW50ZXJhY3Rpb25EYXRhID0gZXZlbnRQcm9wc1sndHJpZ2dlci53aWRnZXRfaW50ZXJhY3Rpb25fZGF0YSddO1xuICBpZiAoXG4gICAgaW50ZXJhY3Rpb25EYXRhID09PSBudWxsIHx8XG4gICAgaW50ZXJhY3Rpb25EYXRhID09PSB1bmRlZmluZWQgfHxcbiAgICB0eXBlb2YgaW50ZXJhY3Rpb25EYXRhICE9PSAnb2JqZWN0J1xuICApIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCBkYXRhID0gaW50ZXJhY3Rpb25EYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gIGZvciAoY29uc3QgW2dhS2V5LCBzb3VyY2VGaWVsZF0gb2YgT2JqZWN0LmVudHJpZXMocHJvamVjdGlvbk1hcCkpIHtcbiAgICBpZiAoc291cmNlRmllbGQgaW4gZGF0YSkge1xuICAgICAgcmVzdWx0W2dhS2V5XSA9IGRhdGFbc291cmNlRmllbGRdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgdHJ1bmNhdGVTdHJpbmcgPSAodmFsdWU6IHVua25vd24pOiB1bmtub3duID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gMTAwKSB7XG4gICAgcmV0dXJuIGAke3ZhbHVlLnN1YnN0cmluZygwLCA5Nyl9Li4uYDtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59O1xuXG5jb25zdCB0cnVuY2F0ZVZhbHVlcyA9IChvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4ge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICByZXN1bHRba2V5XSA9IHRydW5jYXRlU3RyaW5nKHZhbHVlKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgcHVzaFRvRGF0YUxheWVyID0gKGdhRXZlbnQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuZGF0YUxheWVyKSB7XG4gICAgd2luZG93LmRhdGFMYXllci5wdXNoKGdhRXZlbnQpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcHJvamVjdFRvR0E0ID0gKFxuICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUsXG4gIGV2ZW50UHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbik6IHZvaWQgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHNjaGVtYUVudHJ5ID0gR0E0X0VWRU5UX1NDSEVNQVtldmVudE5hbWVdO1xuXG4gICAgaWYgKHNjaGVtYUVudHJ5LmdhRXZlbnROYW1lID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlnID0gc2NoZW1hRW50cnk7XG4gICAgY29uc3QgcHJvcHMgPSBldmVudFByb3BzID8/IHt9O1xuXG4gICAgbGV0IGZpbHRlcmVkID0gZmlsdGVyVG9TY2hlbWEocHJvcHMsIGNvbmZpZy5hbGxvd2VkRmllbGRzKTtcbiAgICBmaWx0ZXJlZCA9IHNhbml0aXplUGFnZUlkKGZpbHRlcmVkKTtcblxuICAgIGNvbnN0IGludGVyYWN0aW9uRmllbGRzID0gcHJvamVjdFdpZGdldEludGVyYWN0aW9uRGF0YShwcm9wcywgY29uZmlnKTtcblxuICAgIGNvbnN0IGZsYXRQYXJhbXMgPSB7XG4gICAgICAuLi5mbGF0dGVuRG90S2V5cyhmaWx0ZXJlZCksXG4gICAgICAuLi5pbnRlcmFjdGlvbkZpZWxkcyxcbiAgICB9O1xuXG4gICAgY29uc3QgdHJ1bmNhdGVkUGFyYW1zID0gdHJ1bmNhdGVWYWx1ZXMoZmxhdFBhcmFtcyk7XG5cbiAgICBwdXNoVG9EYXRhTGF5ZXIoe1xuICAgICAgZXZlbnQ6IGNvbmZpZy5nYUV2ZW50TmFtZSxcbiAgICAgIC4uLnRydW5jYXRlZFBhcmFtcyxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgTG9nZ2VyLmxvZ0Vycm9yKCdbZW52aXZlLWFpXSBFcnJvciBwcm9qZWN0aW5nIGV2ZW50IHRvIEdBNCcsIGVyciwge1xuICAgICAgZXZlbnROYW1lLFxuICAgIH0pO1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBSUEsTUFBTSxrQkFDSixZQUNBLGtCQUM0QjtDQUM1QixNQUFNQSxTQUFrQyxFQUFFO0FBQzFDLE1BQUssTUFBTSxTQUFTLGNBQ2xCLEtBQUksU0FBUyxXQUNYLFFBQU8sU0FBUyxXQUFXO0FBRy9CLFFBQU87O0FBSVQsTUFBTSxrQkFBa0IsUUFBMEQ7Q0FDaEYsTUFBTUEsU0FBa0MsRUFBRTtBQUMxQyxNQUFLLE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTyxRQUFRLElBQUksQ0FDNUMsUUFBTyxJQUFJLFFBQVEsT0FBTyxJQUFJLElBQUk7QUFFcEMsUUFBTzs7QUFTVCxNQUFNLGtCQUFrQixhQUErRDtDQUNyRixNQUFNLFdBQVcsU0FBUztBQUMxQixLQUFJLGFBQWEsU0FBUyxhQUFhLE1BQ3JDLFFBQU87Q0FFVCxNQUFNLE9BQU8sRUFBRSxHQUFHLFVBQVU7QUFDNUIsUUFBTyxLQUFLO0FBQ1osUUFBTzs7QUFJVCxNQUFNLGdDQUNKLFlBQ0EsV0FDNEI7QUFDNUIsS0FBSSxDQUFDLE9BQU8saUNBQ1YsUUFBTyxFQUFFO0NBR1gsTUFBTSxjQUFjLFdBQVc7QUFDL0IsS0FBSSxPQUFPLGdCQUFnQixTQUN6QixRQUFPLEVBQUU7Q0FHWCxNQUFNLGdCQUFnQixPQUFPLGlDQUFpQztBQUM5RCxLQUFJLENBQUMsY0FDSCxRQUFPLEVBQUU7Q0FHWCxNQUFNLGtCQUFrQixXQUFXO0FBQ25DLEtBQ0Usb0JBQW9CLFFBQ3BCLG9CQUFvQixVQUNwQixPQUFPLG9CQUFvQixTQUUzQixRQUFPLEVBQUU7Q0FHWCxNQUFNLE9BQU87Q0FDYixNQUFNQSxTQUFrQyxFQUFFO0FBQzFDLE1BQUssTUFBTSxDQUFDLE9BQU8sZ0JBQWdCLE9BQU8sUUFBUSxjQUFjLENBQzlELEtBQUksZUFBZSxLQUNqQixRQUFPLFNBQVMsS0FBSztBQUd6QixRQUFPOztBQUdULE1BQU0sa0JBQWtCLFVBQTRCO0FBQ2xELEtBQUksT0FBTyxVQUFVLFlBQVksTUFBTSxTQUFTLElBQzlDLFFBQU8sR0FBRyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFFbkMsUUFBTzs7QUFHVCxNQUFNLGtCQUFrQixRQUEwRDtDQUNoRixNQUFNQSxTQUFrQyxFQUFFO0FBQzFDLE1BQUssTUFBTSxDQUFDLEtBQUssVUFBVSxPQUFPLFFBQVEsSUFBSSxDQUM1QyxRQUFPLE9BQU8sZUFBZSxNQUFNO0FBRXJDLFFBQU87O0FBR1QsTUFBTSxtQkFBbUIsWUFBMkM7QUFDbEUsS0FBSSxPQUFPLFdBQVcsZUFBZSxPQUFPLFVBQzFDLFFBQU8sVUFBVSxLQUFLLFFBQVE7O0FBSWxDLE1BQWEsZ0JBQ1gsV0FDQSxlQUNTO0FBQ1QsS0FBSTtFQUNGLE1BQU0sY0FBY0Msd0NBQWlCO0FBRXJDLE1BQUksWUFBWSxnQkFBZ0IsS0FDOUI7RUFHRixNQUFNLFNBQVM7RUFDZixNQUFNLFFBQVEsY0FBYyxFQUFFO0VBRTlCLElBQUksV0FBVyxlQUFlLE9BQU8sT0FBTyxjQUFjO0FBQzFELGFBQVcsZUFBZSxTQUFTO0VBRW5DLE1BQU0sb0JBQW9CLDZCQUE2QixPQUFPLE9BQU87RUFPckUsTUFBTSxrQkFBa0IsZUFMTDtHQUNqQixHQUFHLGVBQWUsU0FBUztHQUMzQixHQUFHO0dBQ0osQ0FFaUQ7QUFFbEQsa0JBQWdCO0dBQ2QsT0FBTyxPQUFPO0dBQ2QsR0FBRztHQUNKLENBQUM7VUFDSyxLQUFLO0FBQ1oseUJBQU8sU0FBUyw2Q0FBNkMsS0FBSyxFQUNoRSxXQUNELENBQUMifQ==
@@ -0,0 +1,71 @@
1
+ import logger_default from "../../application/logging/logger.js";
2
+ import { GA4_EVENT_SCHEMA } from "./ga4EventSchema.js";
3
+
4
+ //#region src/services/ga4ProjectionService/ga4ProjectionService.ts
5
+ const filterToSchema = (eventProps, allowedFields) => {
6
+ const result = {};
7
+ for (const field of allowedFields) if (field in eventProps) result[field] = eventProps[field];
8
+ return result;
9
+ };
10
+ const flattenDotKeys = (obj) => {
11
+ const result = {};
12
+ for (const [key, value] of Object.entries(obj)) result[key.replace(/\./g, "_")] = value;
13
+ return result;
14
+ };
15
+ const sanitizePageId = (filtered) => {
16
+ const pageType = filtered["context.page_type"];
17
+ if (pageType === "pdp" || pageType === "plp") return filtered;
18
+ const rest = { ...filtered };
19
+ delete rest["context.page_id"];
20
+ return rest;
21
+ };
22
+ const projectWidgetInteractionData = (eventProps, config) => {
23
+ if (!config.widgetInteractionDataProjections) return {};
24
+ const interaction = eventProps["trigger.widget_interaction"];
25
+ if (typeof interaction !== "string") return {};
26
+ const projectionMap = config.widgetInteractionDataProjections[interaction];
27
+ if (!projectionMap) return {};
28
+ const interactionData = eventProps["trigger.widget_interaction_data"];
29
+ if (interactionData === null || interactionData === void 0 || typeof interactionData !== "object") return {};
30
+ const data = interactionData;
31
+ const result = {};
32
+ for (const [gaKey, sourceField] of Object.entries(projectionMap)) if (sourceField in data) result[gaKey] = data[sourceField];
33
+ return result;
34
+ };
35
+ const truncateString = (value) => {
36
+ if (typeof value === "string" && value.length > 100) return `${value.substring(0, 97)}...`;
37
+ return value;
38
+ };
39
+ const truncateValues = (obj) => {
40
+ const result = {};
41
+ for (const [key, value] of Object.entries(obj)) result[key] = truncateString(value);
42
+ return result;
43
+ };
44
+ const pushToDataLayer = (gaEvent) => {
45
+ if (typeof window !== "undefined" && window.dataLayer) window.dataLayer.push(gaEvent);
46
+ };
47
+ const projectToGA4 = (eventName, eventProps) => {
48
+ try {
49
+ const schemaEntry = GA4_EVENT_SCHEMA[eventName];
50
+ if (schemaEntry.gaEventName === null) return;
51
+ const config = schemaEntry;
52
+ const props = eventProps ?? {};
53
+ let filtered = filterToSchema(props, config.allowedFields);
54
+ filtered = sanitizePageId(filtered);
55
+ const interactionFields = projectWidgetInteractionData(props, config);
56
+ const truncatedParams = truncateValues({
57
+ ...flattenDotKeys(filtered),
58
+ ...interactionFields
59
+ });
60
+ pushToDataLayer({
61
+ event: config.gaEventName,
62
+ ...truncatedParams
63
+ });
64
+ } catch (err) {
65
+ logger_default.logError("[envive-ai] Error projecting event to GA4", err, { eventName });
66
+ }
67
+ };
68
+
69
+ //#endregion
70
+ export { projectToGA4 };
71
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2E0UHJvamVjdGlvblNlcnZpY2UuanMiLCJuYW1lcyI6WyJyZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2dhNFByb2plY3Rpb25TZXJ2aWNlL2dhNFByb2plY3Rpb25TZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IEVudml2ZU1ldHJpY3NFdmVudE5hbWUgfSBmcm9tICcuLi9hbXBsaXR1ZGVTZXJ2aWNlL2V2ZW50TmFtZXMnO1xuaW1wb3J0IHsgR0E0UHJvamVjdGVkRXZlbnRDb25maWcsIEdBNF9FVkVOVF9TQ0hFTUEgfSBmcm9tICcuL2dhNEV2ZW50U2NoZW1hJztcblxuY29uc3QgZmlsdGVyVG9TY2hlbWEgPSAoXG4gIGV2ZW50UHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBhbGxvd2VkRmllbGRzOiByZWFkb25seSBzdHJpbmdbXSxcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+IHtcbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICBmb3IgKGNvbnN0IGZpZWxkIG9mIGFsbG93ZWRGaWVsZHMpIHtcbiAgICBpZiAoZmllbGQgaW4gZXZlbnRQcm9wcykge1xuICAgICAgcmVzdWx0W2ZpZWxkXSA9IGV2ZW50UHJvcHNbZmllbGRdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLy8gXCJjb250ZXh0LnBhZ2VfdHlwZVwiIOKGkiBcImNvbnRleHRfcGFnZV90eXBlXCJcbmNvbnN0IGZsYXR0ZW5Eb3RLZXlzID0gKG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiB7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkge1xuICAgIHJlc3VsdFtrZXkucmVwbGFjZSgvXFwuL2csICdfJyldID0gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vIE9taXQgY29udGV4dC5wYWdlX2lkIGZvciBub24tcGRwL3BscCBwYWdlIHR5cGVzLiBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBmb3IgY29udGV4dC5wYWdlX2lkIGlzOlxuLy8gUERQOiBwcm9kdWN0X2lkXG4vLyBQTFA6IHBscF9pZFxuLy8gU2VhcmNoOiBzZWFyY2ggcXVlcnlcbi8vIE90aGVyOiBwYWdlIHVybFxuLy8gV2Ugd2FudCB0byBvbWl0IGFsbCBidXQgcGRwIGFuZCBwbHAgcGFnZSB0eXBlcyB0byBwcm92aWRlIGEgY2xlYXIsIGNvbnNpc3RlbnQgaW50ZXJmYWNlIGZvciBtZXJjaGFudHMuXG5jb25zdCBzYW5pdGl6ZVBhZ2VJZCA9IChmaWx0ZXJlZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiB7XG4gIGNvbnN0IHBhZ2VUeXBlID0gZmlsdGVyZWRbJ2NvbnRleHQucGFnZV90eXBlJ107XG4gIGlmIChwYWdlVHlwZSA9PT0gJ3BkcCcgfHwgcGFnZVR5cGUgPT09ICdwbHAnKSB7XG4gICAgcmV0dXJuIGZpbHRlcmVkO1xuICB9XG4gIGNvbnN0IHJlc3QgPSB7IC4uLmZpbHRlcmVkIH07XG4gIGRlbGV0ZSByZXN0Wydjb250ZXh0LnBhZ2VfaWQnXTtcbiAgcmV0dXJuIHJlc3Q7XG59O1xuXG4vLyBFeHRyYWN0IHdoaXRlbGlzdGVkIHN1Yi1maWVsZHMgZnJvbSB0cmlnZ2VyLndpZGdldF9pbnRlcmFjdGlvbl9kYXRhXG5jb25zdCBwcm9qZWN0V2lkZ2V0SW50ZXJhY3Rpb25EYXRhID0gKFxuICBldmVudFByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgY29uZmlnOiBHQTRQcm9qZWN0ZWRFdmVudENvbmZpZyxcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+IHtcbiAgaWYgKCFjb25maWcud2lkZ2V0SW50ZXJhY3Rpb25EYXRhUHJvamVjdGlvbnMpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCBpbnRlcmFjdGlvbiA9IGV2ZW50UHJvcHNbJ3RyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uJ107XG4gIGlmICh0eXBlb2YgaW50ZXJhY3Rpb24gIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3QgcHJvamVjdGlvbk1hcCA9IGNvbmZpZy53aWRnZXRJbnRlcmFjdGlvbkRhdGFQcm9qZWN0aW9uc1tpbnRlcmFjdGlvbl07XG4gIGlmICghcHJvamVjdGlvbk1hcCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGNvbnN0IGludGVyYWN0aW9uRGF0YSA9IGV2ZW50UHJvcHNbJ3RyaWdnZXIud2lkZ2V0X2ludGVyYWN0aW9uX2RhdGEnXTtcbiAgaWYgKFxuICAgIGludGVyYWN0aW9uRGF0YSA9PT0gbnVsbCB8fFxuICAgIGludGVyYWN0aW9uRGF0YSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdHlwZW9mIGludGVyYWN0aW9uRGF0YSAhPT0gJ29iamVjdCdcbiAgKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IGludGVyYWN0aW9uRGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtnYUtleSwgc291cmNlRmllbGRdIG9mIE9iamVjdC5lbnRyaWVzKHByb2plY3Rpb25NYXApKSB7XG4gICAgaWYgKHNvdXJjZUZpZWxkIGluIGRhdGEpIHtcbiAgICAgIHJlc3VsdFtnYUtleV0gPSBkYXRhW3NvdXJjZUZpZWxkXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IHRydW5jYXRlU3RyaW5nID0gKHZhbHVlOiB1bmtub3duKTogdW5rbm93biA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA+IDEwMCkge1xuICAgIHJldHVybiBgJHt2YWx1ZS5zdWJzdHJpbmcoMCwgOTcpfS4uLmA7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuY29uc3QgdHJ1bmNhdGVWYWx1ZXMgPSAob2JqOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+IHtcbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmopKSB7XG4gICAgcmVzdWx0W2tleV0gPSB0cnVuY2F0ZVN0cmluZyh2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IHB1c2hUb0RhdGFMYXllciA9IChnYUV2ZW50OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQgPT4ge1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRhdGFMYXllcikge1xuICAgIHdpbmRvdy5kYXRhTGF5ZXIucHVzaChnYUV2ZW50KTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHByb2plY3RUb0dBNCA9IChcbiAgZXZlbnROYW1lOiBFbnZpdmVNZXRyaWNzRXZlbnROYW1lLFxuICBldmVudFByb3BzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4pOiB2b2lkID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzY2hlbWFFbnRyeSA9IEdBNF9FVkVOVF9TQ0hFTUFbZXZlbnROYW1lXTtcblxuICAgIGlmIChzY2hlbWFFbnRyeS5nYUV2ZW50TmFtZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmZpZyA9IHNjaGVtYUVudHJ5O1xuICAgIGNvbnN0IHByb3BzID0gZXZlbnRQcm9wcyA/PyB7fTtcblxuICAgIGxldCBmaWx0ZXJlZCA9IGZpbHRlclRvU2NoZW1hKHByb3BzLCBjb25maWcuYWxsb3dlZEZpZWxkcyk7XG4gICAgZmlsdGVyZWQgPSBzYW5pdGl6ZVBhZ2VJZChmaWx0ZXJlZCk7XG5cbiAgICBjb25zdCBpbnRlcmFjdGlvbkZpZWxkcyA9IHByb2plY3RXaWRnZXRJbnRlcmFjdGlvbkRhdGEocHJvcHMsIGNvbmZpZyk7XG5cbiAgICBjb25zdCBmbGF0UGFyYW1zID0ge1xuICAgICAgLi4uZmxhdHRlbkRvdEtleXMoZmlsdGVyZWQpLFxuICAgICAgLi4uaW50ZXJhY3Rpb25GaWVsZHMsXG4gICAgfTtcblxuICAgIGNvbnN0IHRydW5jYXRlZFBhcmFtcyA9IHRydW5jYXRlVmFsdWVzKGZsYXRQYXJhbXMpO1xuXG4gICAgcHVzaFRvRGF0YUxheWVyKHtcbiAgICAgIGV2ZW50OiBjb25maWcuZ2FFdmVudE5hbWUsXG4gICAgICAuLi50cnVuY2F0ZWRQYXJhbXMsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIExvZ2dlci5sb2dFcnJvcignW2Vudml2ZS1haV0gRXJyb3IgcHJvamVjdGluZyBldmVudCB0byBHQTQnLCBlcnIsIHtcbiAgICAgIGV2ZW50TmFtZSxcbiAgICB9KTtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUlBLE1BQU0sa0JBQ0osWUFDQSxrQkFDNEI7Q0FDNUIsTUFBTUEsU0FBa0MsRUFBRTtBQUMxQyxNQUFLLE1BQU0sU0FBUyxjQUNsQixLQUFJLFNBQVMsV0FDWCxRQUFPLFNBQVMsV0FBVztBQUcvQixRQUFPOztBQUlULE1BQU0sa0JBQWtCLFFBQTBEO0NBQ2hGLE1BQU1BLFNBQWtDLEVBQUU7QUFDMUMsTUFBSyxNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU8sUUFBUSxJQUFJLENBQzVDLFFBQU8sSUFBSSxRQUFRLE9BQU8sSUFBSSxJQUFJO0FBRXBDLFFBQU87O0FBU1QsTUFBTSxrQkFBa0IsYUFBK0Q7Q0FDckYsTUFBTSxXQUFXLFNBQVM7QUFDMUIsS0FBSSxhQUFhLFNBQVMsYUFBYSxNQUNyQyxRQUFPO0NBRVQsTUFBTSxPQUFPLEVBQUUsR0FBRyxVQUFVO0FBQzVCLFFBQU8sS0FBSztBQUNaLFFBQU87O0FBSVQsTUFBTSxnQ0FDSixZQUNBLFdBQzRCO0FBQzVCLEtBQUksQ0FBQyxPQUFPLGlDQUNWLFFBQU8sRUFBRTtDQUdYLE1BQU0sY0FBYyxXQUFXO0FBQy9CLEtBQUksT0FBTyxnQkFBZ0IsU0FDekIsUUFBTyxFQUFFO0NBR1gsTUFBTSxnQkFBZ0IsT0FBTyxpQ0FBaUM7QUFDOUQsS0FBSSxDQUFDLGNBQ0gsUUFBTyxFQUFFO0NBR1gsTUFBTSxrQkFBa0IsV0FBVztBQUNuQyxLQUNFLG9CQUFvQixRQUNwQixvQkFBb0IsVUFDcEIsT0FBTyxvQkFBb0IsU0FFM0IsUUFBTyxFQUFFO0NBR1gsTUFBTSxPQUFPO0NBQ2IsTUFBTUEsU0FBa0MsRUFBRTtBQUMxQyxNQUFLLE1BQU0sQ0FBQyxPQUFPLGdCQUFnQixPQUFPLFFBQVEsY0FBYyxDQUM5RCxLQUFJLGVBQWUsS0FDakIsUUFBTyxTQUFTLEtBQUs7QUFHekIsUUFBTzs7QUFHVCxNQUFNLGtCQUFrQixVQUE0QjtBQUNsRCxLQUFJLE9BQU8sVUFBVSxZQUFZLE1BQU0sU0FBUyxJQUM5QyxRQUFPLEdBQUcsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBRW5DLFFBQU87O0FBR1QsTUFBTSxrQkFBa0IsUUFBMEQ7Q0FDaEYsTUFBTUEsU0FBa0MsRUFBRTtBQUMxQyxNQUFLLE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTyxRQUFRLElBQUksQ0FDNUMsUUFBTyxPQUFPLGVBQWUsTUFBTTtBQUVyQyxRQUFPOztBQUdULE1BQU0sbUJBQW1CLFlBQTJDO0FBQ2xFLEtBQUksT0FBTyxXQUFXLGVBQWUsT0FBTyxVQUMxQyxRQUFPLFVBQVUsS0FBSyxRQUFROztBQUlsQyxNQUFhLGdCQUNYLFdBQ0EsZUFDUztBQUNULEtBQUk7RUFDRixNQUFNLGNBQWMsaUJBQWlCO0FBRXJDLE1BQUksWUFBWSxnQkFBZ0IsS0FDOUI7RUFHRixNQUFNLFNBQVM7RUFDZixNQUFNLFFBQVEsY0FBYyxFQUFFO0VBRTlCLElBQUksV0FBVyxlQUFlLE9BQU8sT0FBTyxjQUFjO0FBQzFELGFBQVcsZUFBZSxTQUFTO0VBRW5DLE1BQU0sb0JBQW9CLDZCQUE2QixPQUFPLE9BQU87RUFPckUsTUFBTSxrQkFBa0IsZUFMTDtHQUNqQixHQUFHLGVBQWUsU0FBUztHQUMzQixHQUFHO0dBQ0osQ0FFaUQ7QUFFbEQsa0JBQWdCO0dBQ2QsT0FBTyxPQUFPO0dBQ2QsR0FBRztHQUNKLENBQUM7VUFDSyxLQUFLO0FBQ1osaUJBQU8sU0FBUyw2Q0FBNkMsS0FBSyxFQUNoRSxXQUNELENBQUMifQ==
@@ -11,10 +11,11 @@ let CustomerServiceType = /* @__PURE__ */ function(CustomerServiceType$1) {
11
11
  CustomerServiceType$1["gladly"] = "gladly";
12
12
  CustomerServiceType$1["richpanel"] = "richpanel";
13
13
  CustomerServiceType$1["zendesk"] = "zendesk";
14
+ CustomerServiceType$1["eightByEight"] = "8x8";
14
15
  CustomerServiceType$1["unsupported"] = "unsupported";
15
16
  return CustomerServiceType$1;
16
17
  }({});
17
18
 
18
19
  //#endregion
19
20
  exports.CustomerServiceType = CustomerServiceType;
20
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXJTZXJ2aWNlLmNqcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvY3VzdG9tZXJTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbWVyU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcblxuZXhwb3J0IGVudW0gQ3VzdG9tZXJTZXJ2aWNlVHlwZSB7XG4gIHNob3BpZnkgPSAnc2hvcGlmeScsXG4gIGdvcmdpYXMgPSAnZ29yZ2lhcycsXG4gIGt1c3RvbWVyID0gJ2t1c3RvbWVyJyxcbiAgZ3Jvb3ZlID0gJ2dyb292ZScsXG4gIHRpZGlvID0gJ3RpZGlvJyxcbiAgem93aWUgPSAnem93aWUnLFxuICByZWRvID0gJ3JlZG8nLFxuICBnbGFkbHkgPSAnZ2xhZGx5JyxcbiAgcmljaHBhbmVsID0gJ3JpY2hwYW5lbCcsXG4gIHplbmRlc2sgPSAnemVuZGVzaycsXG4gIHVuc3VwcG9ydGVkID0gJ3Vuc3VwcG9ydGVkJyxcbn1cbmV4cG9ydCBlbnVtIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZSB7XG4gIG5vbmUgPSAnbm9uZScsXG4gIHNpbXBsZSA9ICdzaW1wbGUnLFxuICBmdWxsID0gJ2Z1bGwnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uIHtcbiAgcHJvdmlkZXI6IEN1c3RvbWVyU2VydmljZVByb3ZpZGVyO1xuICBzdXBwb3J0ZWRJbnRlZ3JhdGlvbk1vZGVzOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGVbXTtcbiAgYWxsb3dGaWxlVXBsb2FkPzogYm9vbGVhbjtcbiAgbWF4ZmlsZVVwbG9hZFNpemU/OiBudW1iZXI7XG4gIC8vIFRPRE86IFJlbW92ZSB0aGlzIG1ldGhvZCB3aGVuIG1pZ3JhdGluZyBvdGhlciBwcm92aWRlcnMgdG8gdGhlIG5ldyB1bmlmaWVkIENYIGJ1dHRvbi5cbiAgb25Td2l0Y2hUb0FnZW50OiAoKSA9PiB2b2lkO1xuICBpc0VuYWJsZWQ6ICgpID0+IGJvb2xlYW47XG4gIGlzQnVzaW5lc3NIb3VyczogKGFwaUtleT86IHN0cmluZywgYXBpRW5kcG9pbnQ/OiBzdHJpbmcpID0+IFByb21pc2U8Ym9vbGVhbj47XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBRUEsSUFBWSxzRUFBTDtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EifQ==
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXJTZXJ2aWNlLmNqcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvY3VzdG9tZXJTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbWVyU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcblxuZXhwb3J0IGVudW0gQ3VzdG9tZXJTZXJ2aWNlVHlwZSB7XG4gIHNob3BpZnkgPSAnc2hvcGlmeScsXG4gIGdvcmdpYXMgPSAnZ29yZ2lhcycsXG4gIGt1c3RvbWVyID0gJ2t1c3RvbWVyJyxcbiAgZ3Jvb3ZlID0gJ2dyb292ZScsXG4gIHRpZGlvID0gJ3RpZGlvJyxcbiAgem93aWUgPSAnem93aWUnLFxuICByZWRvID0gJ3JlZG8nLFxuICBnbGFkbHkgPSAnZ2xhZGx5JyxcbiAgcmljaHBhbmVsID0gJ3JpY2hwYW5lbCcsXG4gIHplbmRlc2sgPSAnemVuZGVzaycsXG4gIGVpZ2h0QnlFaWdodCA9ICc4eDgnLFxuICB1bnN1cHBvcnRlZCA9ICd1bnN1cHBvcnRlZCcsXG59XG5leHBvcnQgZW51bSBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGUge1xuICBub25lID0gJ25vbmUnLFxuICBzaW1wbGUgPSAnc2ltcGxlJyxcbiAgZnVsbCA9ICdmdWxsJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiB7XG4gIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VQcm92aWRlcjtcbiAgc3VwcG9ydGVkSW50ZWdyYXRpb25Nb2RlczogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlW107XG4gIGFsbG93RmlsZVVwbG9hZD86IGJvb2xlYW47XG4gIG1heGZpbGVVcGxvYWRTaXplPzogbnVtYmVyO1xuICAvLyBUT0RPOiBSZW1vdmUgdGhpcyBtZXRob2Qgd2hlbiBtaWdyYXRpbmcgb3RoZXIgcHJvdmlkZXJzIHRvIHRoZSBuZXcgdW5pZmllZCBDWCBidXR0b24uXG4gIG9uU3dpdGNoVG9BZ2VudDogKCkgPT4gdm9pZDtcbiAgaXNFbmFibGVkOiAoKSA9PiBib29sZWFuO1xuICBpc0J1c2luZXNzSG91cnM6IChhcGlLZXk/OiBzdHJpbmcsIGFwaUVuZHBvaW50Pzogc3RyaW5nKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLElBQVksc0VBQUw7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EifQ==
@@ -12,6 +12,7 @@ declare enum CustomerServiceType {
12
12
  gladly = "gladly",
13
13
  richpanel = "richpanel",
14
14
  zendesk = "zendesk",
15
+ eightByEight = "8x8",
15
16
  unsupported = "unsupported",
16
17
  }
17
18
  declare enum CustomerServiceIntegrationMode {
@@ -21,4 +22,4 @@ declare enum CustomerServiceIntegrationMode {
21
22
  }
22
23
  //#endregion
23
24
  export { CustomerServiceIntegrationMode, CustomerServiceType };
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXJTZXJ2aWNlLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9jdXN0b21lclNlcnZpY2UuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21lclNlcnZpY2VQcm92aWRlciB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5leHBvcnQgZGVjbGFyZSBlbnVtIEN1c3RvbWVyU2VydmljZVR5cGUge1xuICAgIHNob3BpZnkgPSBcInNob3BpZnlcIixcbiAgICBnb3JnaWFzID0gXCJnb3JnaWFzXCIsXG4gICAga3VzdG9tZXIgPSBcImt1c3RvbWVyXCIsXG4gICAgZ3Jvb3ZlID0gXCJncm9vdmVcIixcbiAgICB0aWRpbyA9IFwidGlkaW9cIixcbiAgICB6b3dpZSA9IFwiem93aWVcIixcbiAgICByZWRvID0gXCJyZWRvXCIsXG4gICAgZ2xhZGx5ID0gXCJnbGFkbHlcIixcbiAgICByaWNocGFuZWwgPSBcInJpY2hwYW5lbFwiLFxuICAgIHplbmRlc2sgPSBcInplbmRlc2tcIixcbiAgICB1bnN1cHBvcnRlZCA9IFwidW5zdXBwb3J0ZWRcIlxufVxuZXhwb3J0IGRlY2xhcmUgZW51bSBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGUge1xuICAgIG5vbmUgPSBcIm5vbmVcIixcbiAgICBzaW1wbGUgPSBcInNpbXBsZVwiLFxuICAgIGZ1bGwgPSBcImZ1bGxcIlxufVxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbiB7XG4gICAgcHJvdmlkZXI6IEN1c3RvbWVyU2VydmljZVByb3ZpZGVyO1xuICAgIHN1cHBvcnRlZEludGVncmF0aW9uTW9kZXM6IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZVtdO1xuICAgIGFsbG93RmlsZVVwbG9hZD86IGJvb2xlYW47XG4gICAgbWF4ZmlsZVVwbG9hZFNpemU/OiBudW1iZXI7XG4gICAgb25Td2l0Y2hUb0FnZW50OiAoKSA9PiB2b2lkO1xuICAgIGlzRW5hYmxlZDogKCkgPT4gYm9vbGVhbjtcbiAgICBpc0J1c2luZXNzSG91cnM6IChhcGlLZXk/OiBzdHJpbmcsIGFwaUVuZHBvaW50Pzogc3RyaW5nKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFDQSxJQUFXLHNCQUFzQixDQUFDLElBQUk7QUFDdEMsSUFBVyxpQ0FBWSxDQUFBLElBQUEifQ==
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXJTZXJ2aWNlLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9jdXN0b21lclNlcnZpY2UuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21lclNlcnZpY2VQcm92aWRlciB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5leHBvcnQgZGVjbGFyZSBlbnVtIEN1c3RvbWVyU2VydmljZVR5cGUge1xuICAgIHNob3BpZnkgPSBcInNob3BpZnlcIixcbiAgICBnb3JnaWFzID0gXCJnb3JnaWFzXCIsXG4gICAga3VzdG9tZXIgPSBcImt1c3RvbWVyXCIsXG4gICAgZ3Jvb3ZlID0gXCJncm9vdmVcIixcbiAgICB0aWRpbyA9IFwidGlkaW9cIixcbiAgICB6b3dpZSA9IFwiem93aWVcIixcbiAgICByZWRvID0gXCJyZWRvXCIsXG4gICAgZ2xhZGx5ID0gXCJnbGFkbHlcIixcbiAgICByaWNocGFuZWwgPSBcInJpY2hwYW5lbFwiLFxuICAgIHplbmRlc2sgPSBcInplbmRlc2tcIixcbiAgICBlaWdodEJ5RWlnaHQgPSBcIjh4OFwiLFxuICAgIHVuc3VwcG9ydGVkID0gXCJ1bnN1cHBvcnRlZFwiXG59XG5leHBvcnQgZGVjbGFyZSBlbnVtIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZSB7XG4gICAgbm9uZSA9IFwibm9uZVwiLFxuICAgIHNpbXBsZSA9IFwic2ltcGxlXCIsXG4gICAgZnVsbCA9IFwiZnVsbFwiXG59XG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uIHtcbiAgICBwcm92aWRlcjogQ3VzdG9tZXJTZXJ2aWNlUHJvdmlkZXI7XG4gICAgc3VwcG9ydGVkSW50ZWdyYXRpb25Nb2RlczogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlW107XG4gICAgYWxsb3dGaWxlVXBsb2FkPzogYm9vbGVhbjtcbiAgICBtYXhmaWxlVXBsb2FkU2l6ZT86IG51bWJlcjtcbiAgICBvblN3aXRjaFRvQWdlbnQ6ICgpID0+IHZvaWQ7XG4gICAgaXNFbmFibGVkOiAoKSA9PiBib29sZWFuO1xuICAgIGlzQnVzaW5lc3NIb3VyczogKGFwaUtleT86IHN0cmluZywgYXBpRW5kcG9pbnQ/OiBzdHJpbmcpID0+IFByb21pc2U8Ym9vbGVhbj47XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUNBLElBQVcsc0JBQXNCLENBQUMsSUFBSTtBQUN0QyxJQUFXLGlDQUFZLENBQUEsSUFBQSJ9
@@ -12,6 +12,7 @@ declare enum CustomerServiceType {
12
12
  gladly = "gladly",
13
13
  richpanel = "richpanel",
14
14
  zendesk = "zendesk",
15
+ eightByEight = "8x8",
15
16
  unsupported = "unsupported",
16
17
  }
17
18
  declare enum CustomerServiceIntegrationMode {
@@ -21,4 +22,4 @@ declare enum CustomerServiceIntegrationMode {
21
22
  }
22
23
  //#endregion
23
24
  export { CustomerServiceIntegrationMode, CustomerServiceType };
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXJTZXJ2aWNlLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2N1c3RvbWVyU2VydmljZS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbWVyU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmV4cG9ydCBkZWNsYXJlIGVudW0gQ3VzdG9tZXJTZXJ2aWNlVHlwZSB7XG4gICAgc2hvcGlmeSA9IFwic2hvcGlmeVwiLFxuICAgIGdvcmdpYXMgPSBcImdvcmdpYXNcIixcbiAgICBrdXN0b21lciA9IFwia3VzdG9tZXJcIixcbiAgICBncm9vdmUgPSBcImdyb292ZVwiLFxuICAgIHRpZGlvID0gXCJ0aWRpb1wiLFxuICAgIHpvd2llID0gXCJ6b3dpZVwiLFxuICAgIHJlZG8gPSBcInJlZG9cIixcbiAgICBnbGFkbHkgPSBcImdsYWRseVwiLFxuICAgIHJpY2hwYW5lbCA9IFwicmljaHBhbmVsXCIsXG4gICAgemVuZGVzayA9IFwiemVuZGVza1wiLFxuICAgIHVuc3VwcG9ydGVkID0gXCJ1bnN1cHBvcnRlZFwiXG59XG5leHBvcnQgZGVjbGFyZSBlbnVtIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZSB7XG4gICAgbm9uZSA9IFwibm9uZVwiLFxuICAgIHNpbXBsZSA9IFwic2ltcGxlXCIsXG4gICAgZnVsbCA9IFwiZnVsbFwiXG59XG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uIHtcbiAgICBwcm92aWRlcjogQ3VzdG9tZXJTZXJ2aWNlUHJvdmlkZXI7XG4gICAgc3VwcG9ydGVkSW50ZWdyYXRpb25Nb2RlczogQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlW107XG4gICAgYWxsb3dGaWxlVXBsb2FkPzogYm9vbGVhbjtcbiAgICBtYXhmaWxlVXBsb2FkU2l6ZT86IG51bWJlcjtcbiAgICBvblN3aXRjaFRvQWdlbnQ6ICgpID0+IHZvaWQ7XG4gICAgaXNFbmFibGVkOiAoKSA9PiBib29sZWFuO1xuICAgIGlzQnVzaW5lc3NIb3VyczogKGFwaUtleT86IHN0cmluZywgYXBpRW5kcG9pbnQ/OiBzdHJpbmcpID0+IFByb21pc2U8Ym9vbGVhbj47XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUNBLElBQVcsc0JBQXNCLENBQUMsSUFBSTtBQUN0QyxJQUFXLGlDQUFZLENBQUEsSUFBQSJ9
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXJTZXJ2aWNlLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2N1c3RvbWVyU2VydmljZS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbWVyU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmV4cG9ydCBkZWNsYXJlIGVudW0gQ3VzdG9tZXJTZXJ2aWNlVHlwZSB7XG4gICAgc2hvcGlmeSA9IFwic2hvcGlmeVwiLFxuICAgIGdvcmdpYXMgPSBcImdvcmdpYXNcIixcbiAgICBrdXN0b21lciA9IFwia3VzdG9tZXJcIixcbiAgICBncm9vdmUgPSBcImdyb292ZVwiLFxuICAgIHRpZGlvID0gXCJ0aWRpb1wiLFxuICAgIHpvd2llID0gXCJ6b3dpZVwiLFxuICAgIHJlZG8gPSBcInJlZG9cIixcbiAgICBnbGFkbHkgPSBcImdsYWRseVwiLFxuICAgIHJpY2hwYW5lbCA9IFwicmljaHBhbmVsXCIsXG4gICAgemVuZGVzayA9IFwiemVuZGVza1wiLFxuICAgIGVpZ2h0QnlFaWdodCA9IFwiOHg4XCIsXG4gICAgdW5zdXBwb3J0ZWQgPSBcInVuc3VwcG9ydGVkXCJcbn1cbmV4cG9ydCBkZWNsYXJlIGVudW0gQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlIHtcbiAgICBub25lID0gXCJub25lXCIsXG4gICAgc2ltcGxlID0gXCJzaW1wbGVcIixcbiAgICBmdWxsID0gXCJmdWxsXCJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24ge1xuICAgIHByb3ZpZGVyOiBDdXN0b21lclNlcnZpY2VQcm92aWRlcjtcbiAgICBzdXBwb3J0ZWRJbnRlZ3JhdGlvbk1vZGVzOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGVbXTtcbiAgICBhbGxvd0ZpbGVVcGxvYWQ/OiBib29sZWFuO1xuICAgIG1heGZpbGVVcGxvYWRTaXplPzogbnVtYmVyO1xuICAgIG9uU3dpdGNoVG9BZ2VudDogKCkgPT4gdm9pZDtcbiAgICBpc0VuYWJsZWQ6ICgpID0+IGJvb2xlYW47XG4gICAgaXNCdXNpbmVzc0hvdXJzOiAoYXBpS2V5Pzogc3RyaW5nLCBhcGlFbmRwb2ludD86IHN0cmluZykgPT4gUHJvbWlzZTxib29sZWFuPjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBVyxzQkFBc0IsQ0FBQyxJQUFJO0FBQ3RDLElBQVcsaUNBQVksQ0FBQSxJQUFBIn0=
@@ -10,10 +10,11 @@ let CustomerServiceType = /* @__PURE__ */ function(CustomerServiceType$1) {
10
10
  CustomerServiceType$1["gladly"] = "gladly";
11
11
  CustomerServiceType$1["richpanel"] = "richpanel";
12
12
  CustomerServiceType$1["zendesk"] = "zendesk";
13
+ CustomerServiceType$1["eightByEight"] = "8x8";
13
14
  CustomerServiceType$1["unsupported"] = "unsupported";
14
15
  return CustomerServiceType$1;
15
16
  }({});
16
17
 
17
18
  //#endregion
18
19
  export { CustomerServiceType };
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXJTZXJ2aWNlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9jdXN0b21lclNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tZXJTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgZW51bSBDdXN0b21lclNlcnZpY2VUeXBlIHtcbiAgc2hvcGlmeSA9ICdzaG9waWZ5JyxcbiAgZ29yZ2lhcyA9ICdnb3JnaWFzJyxcbiAga3VzdG9tZXIgPSAna3VzdG9tZXInLFxuICBncm9vdmUgPSAnZ3Jvb3ZlJyxcbiAgdGlkaW8gPSAndGlkaW8nLFxuICB6b3dpZSA9ICd6b3dpZScsXG4gIHJlZG8gPSAncmVkbycsXG4gIGdsYWRseSA9ICdnbGFkbHknLFxuICByaWNocGFuZWwgPSAncmljaHBhbmVsJyxcbiAgemVuZGVzayA9ICd6ZW5kZXNrJyxcbiAgdW5zdXBwb3J0ZWQgPSAndW5zdXBwb3J0ZWQnLFxufVxuZXhwb3J0IGVudW0gQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb25Nb2RlIHtcbiAgbm9uZSA9ICdub25lJyxcbiAgc2ltcGxlID0gJ3NpbXBsZScsXG4gIGZ1bGwgPSAnZnVsbCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tZXJTZXJ2aWNlSW50ZWdyYXRpb24ge1xuICBwcm92aWRlcjogQ3VzdG9tZXJTZXJ2aWNlUHJvdmlkZXI7XG4gIHN1cHBvcnRlZEludGVncmF0aW9uTW9kZXM6IEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZVtdO1xuICBhbGxvd0ZpbGVVcGxvYWQ/OiBib29sZWFuO1xuICBtYXhmaWxlVXBsb2FkU2l6ZT86IG51bWJlcjtcbiAgLy8gVE9ETzogUmVtb3ZlIHRoaXMgbWV0aG9kIHdoZW4gbWlncmF0aW5nIG90aGVyIHByb3ZpZGVycyB0byB0aGUgbmV3IHVuaWZpZWQgQ1ggYnV0dG9uLlxuICBvblN3aXRjaFRvQWdlbnQ6ICgpID0+IHZvaWQ7XG4gIGlzRW5hYmxlZDogKCkgPT4gYm9vbGVhbjtcbiAgaXNCdXNpbmVzc0hvdXJzOiAoYXBpS2V5Pzogc3RyaW5nLCBhcGlFbmRwb2ludD86IHN0cmluZykgPT4gUHJvbWlzZTxib29sZWFuPjtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUVBLElBQVksc0VBQUw7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIn0=
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXJTZXJ2aWNlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9jdXN0b21lclNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tZXJTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5leHBvcnQgZW51bSBDdXN0b21lclNlcnZpY2VUeXBlIHtcbiAgc2hvcGlmeSA9ICdzaG9waWZ5JyxcbiAgZ29yZ2lhcyA9ICdnb3JnaWFzJyxcbiAga3VzdG9tZXIgPSAna3VzdG9tZXInLFxuICBncm9vdmUgPSAnZ3Jvb3ZlJyxcbiAgdGlkaW8gPSAndGlkaW8nLFxuICB6b3dpZSA9ICd6b3dpZScsXG4gIHJlZG8gPSAncmVkbycsXG4gIGdsYWRseSA9ICdnbGFkbHknLFxuICByaWNocGFuZWwgPSAncmljaHBhbmVsJyxcbiAgemVuZGVzayA9ICd6ZW5kZXNrJyxcbiAgZWlnaHRCeUVpZ2h0ID0gJzh4OCcsXG4gIHVuc3VwcG9ydGVkID0gJ3Vuc3VwcG9ydGVkJyxcbn1cbmV4cG9ydCBlbnVtIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uTW9kZSB7XG4gIG5vbmUgPSAnbm9uZScsXG4gIHNpbXBsZSA9ICdzaW1wbGUnLFxuICBmdWxsID0gJ2Z1bGwnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyU2VydmljZUludGVncmF0aW9uIHtcbiAgcHJvdmlkZXI6IEN1c3RvbWVyU2VydmljZVByb3ZpZGVyO1xuICBzdXBwb3J0ZWRJbnRlZ3JhdGlvbk1vZGVzOiBDdXN0b21lclNlcnZpY2VJbnRlZ3JhdGlvbk1vZGVbXTtcbiAgYWxsb3dGaWxlVXBsb2FkPzogYm9vbGVhbjtcbiAgbWF4ZmlsZVVwbG9hZFNpemU/OiBudW1iZXI7XG4gIC8vIFRPRE86IFJlbW92ZSB0aGlzIG1ldGhvZCB3aGVuIG1pZ3JhdGluZyBvdGhlciBwcm92aWRlcnMgdG8gdGhlIG5ldyB1bmlmaWVkIENYIGJ1dHRvbi5cbiAgb25Td2l0Y2hUb0FnZW50OiAoKSA9PiB2b2lkO1xuICBpc0VuYWJsZWQ6ICgpID0+IGJvb2xlYW47XG4gIGlzQnVzaW5lc3NIb3VyczogKGFwaUtleT86IHN0cmluZywgYXBpRW5kcG9pbnQ/OiBzdHJpbmcpID0+IFByb21pc2U8Ym9vbGVhbj47XG59XG4iXSwibWFwcGluZ3MiOiI7QUFFQSxJQUFZLHNFQUFMO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIn0=
@@ -1,3 +1,5 @@
1
+ import { WidgetTypeV3 } from "../contexts/typesV3.cjs";
2
+ import { HardcopyResponse } from "../contexts/hardcopyContext/hardcopyContext.cjs";
1
3
  import { FrontendConfigOverrides } from "../application/models/frontendConfig.cjs";
2
4
  import { VariantInfo } from "../application/models/variantInfo/variantInfo.cjs";
3
5
 
@@ -17,6 +19,7 @@ interface EnviveConfig {
17
19
  initialOpenSearchOverlay?: boolean;
18
20
  WidgetMountingOverride?: Record<string, any>[];
19
21
  configChanges?: FrontendConfigOverrides[];
22
+ hardcopyOverride?: Partial<Record<WidgetTypeV3, HardcopyResponse>>;
20
23
  }
21
24
  declare global {
22
25
  interface Window {
@@ -26,4 +29,4 @@ declare global {
26
29
  }
27
30
  //#endregion
28
31
  export { EnviveConfig };
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9lbnZpdmVDb25maWcuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGcm9udGVuZENvbmZpZ092ZXJyaWRlcywgVmFyaWFudEluZm8gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmV4cG9ydCBpbnRlcmZhY2UgRW52aXZlQ29uZmlnIHtcbiAgICBwdWJsaWNLZXk/OiBzdHJpbmc7XG4gICAgdXNlcklEPzogc3RyaW5nO1xuICAgIGVudj86ICdwcm9kJyB8ICdkZXYnO1xuICAgIGNsaWVudElEPzogc3RyaW5nO1xuICAgIHNob3c/OiBib29sZWFuO1xuICAgIGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgICB2YXJpYW50SW5mb092ZXJyaWRlPzogVmFyaWFudEluZm87XG4gICAgdmFyaWFudFVybE92ZXJyaWRlPzogc3RyaW5nO1xuICAgIHBhZ2VWYXJpYW50SWRPdmVycmlkZT86IHN0cmluZztcbiAgICBzZWxlY3RlZEN1c3RvbWl6ZU9wdGlvbj86IHN0cmluZztcbiAgICByZWR1Y2VkTW90aW9uT3ZlcnJpZGU/OiBib29sZWFuO1xuICAgIGluaXRpYWxPcGVuU2VhcmNoT3ZlcmxheT86IGJvb2xlYW47XG4gICAgV2lkZ2V0TW91bnRpbmdPdmVycmlkZT86IFJlY29yZDxzdHJpbmcsIGFueT5bXTtcbiAgICBjb25maWdDaGFuZ2VzPzogRnJvbnRlbmRDb25maWdPdmVycmlkZXNbXTtcbn1cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAgICAgX3NwaWZmeT86IEVudml2ZUNvbmZpZztcbiAgICAgICAgX2Vudml2ZT86IEVudml2ZUNvbmZpZztcbiAgICB9XG59XG5leHBvcnQge307XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxJQUFXLGVBQWU7Q0FBQztPQUFHO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDOUIsSUFBSSxLQUFLO0NBQUM7T0FBVztPQUFDO0NBQUEsV0FBQSxHQUFBO0NBQUEifQ==
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnLmQuY3RzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9lbnZpdmVDb25maWcuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGcm9udGVuZENvbmZpZ092ZXJyaWRlcywgVmFyaWFudEluZm8gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB0eXBlIHsgSGFyZGNvcHlSZXNwb25zZSB9IGZyb20gJ3NyYy9jb250ZXh0cy9oYXJkY29weUNvbnRleHQvaGFyZGNvcHlDb250ZXh0JztcbmltcG9ydCB0eXBlIHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnc3JjL2NvbnRleHRzL3R5cGVzVjMnO1xuZXhwb3J0IGludGVyZmFjZSBFbnZpdmVDb25maWcge1xuICAgIHB1YmxpY0tleT86IHN0cmluZztcbiAgICB1c2VySUQ/OiBzdHJpbmc7XG4gICAgZW52PzogJ3Byb2QnIHwgJ2Rldic7XG4gICAgY2xpZW50SUQ/OiBzdHJpbmc7XG4gICAgc2hvdz86IGJvb2xlYW47XG4gICAgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgIHZhcmlhbnRJbmZvT3ZlcnJpZGU/OiBWYXJpYW50SW5mbztcbiAgICB2YXJpYW50VXJsT3ZlcnJpZGU/OiBzdHJpbmc7XG4gICAgcGFnZVZhcmlhbnRJZE92ZXJyaWRlPzogc3RyaW5nO1xuICAgIHNlbGVjdGVkQ3VzdG9taXplT3B0aW9uPzogc3RyaW5nO1xuICAgIHJlZHVjZWRNb3Rpb25PdmVycmlkZT86IGJvb2xlYW47XG4gICAgaW5pdGlhbE9wZW5TZWFyY2hPdmVybGF5PzogYm9vbGVhbjtcbiAgICBXaWRnZXRNb3VudGluZ092ZXJyaWRlPzogUmVjb3JkPHN0cmluZywgYW55PltdO1xuICAgIGNvbmZpZ0NoYW5nZXM/OiBGcm9udGVuZENvbmZpZ092ZXJyaWRlc1tdO1xuICAgIGhhcmRjb3B5T3ZlcnJpZGU/OiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+Pjtcbn1cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAgICAgX3NwaWZmeT86IEVudml2ZUNvbmZpZztcbiAgICAgICAgX2Vudml2ZT86IEVudml2ZUNvbmZpZztcbiAgICB9XG59XG5leHBvcnQge307XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQVcsZUFBZTtDQUFDO09BQUc7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQzlCLElBQUksS0FBSztDQUFDO09BQVc7T0FBQztDQUFBLFdBQUEsR0FBQTtDQUFBIn0=
@@ -1,3 +1,5 @@
1
+ import { WidgetTypeV3 } from "../contexts/typesV3.js";
2
+ import { HardcopyResponse } from "../contexts/hardcopyContext/hardcopyContext.js";
1
3
  import { FrontendConfigOverrides } from "../application/models/frontendConfig.js";
2
4
  import { VariantInfo } from "../application/models/variantInfo/variantInfo.js";
3
5
 
@@ -17,6 +19,7 @@ interface EnviveConfig {
17
19
  initialOpenSearchOverlay?: boolean;
18
20
  WidgetMountingOverride?: Record<string, any>[];
19
21
  configChanges?: FrontendConfigOverrides[];
22
+ hardcopyOverride?: Partial<Record<WidgetTypeV3, HardcopyResponse>>;
20
23
  }
21
24
  declare global {
22
25
  interface Window {
@@ -26,4 +29,4 @@ declare global {
26
29
  }
27
30
  //#endregion
28
31
  export { EnviveConfig };
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2Vudml2ZUNvbmZpZy5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyb250ZW5kQ29uZmlnT3ZlcnJpZGVzLCBWYXJpYW50SW5mbyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuZXhwb3J0IGludGVyZmFjZSBFbnZpdmVDb25maWcge1xuICAgIHB1YmxpY0tleT86IHN0cmluZztcbiAgICB1c2VySUQ/OiBzdHJpbmc7XG4gICAgZW52PzogJ3Byb2QnIHwgJ2Rldic7XG4gICAgY2xpZW50SUQ/OiBzdHJpbmc7XG4gICAgc2hvdz86IGJvb2xlYW47XG4gICAgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgIHZhcmlhbnRJbmZvT3ZlcnJpZGU/OiBWYXJpYW50SW5mbztcbiAgICB2YXJpYW50VXJsT3ZlcnJpZGU/OiBzdHJpbmc7XG4gICAgcGFnZVZhcmlhbnRJZE92ZXJyaWRlPzogc3RyaW5nO1xuICAgIHNlbGVjdGVkQ3VzdG9taXplT3B0aW9uPzogc3RyaW5nO1xuICAgIHJlZHVjZWRNb3Rpb25PdmVycmlkZT86IGJvb2xlYW47XG4gICAgaW5pdGlhbE9wZW5TZWFyY2hPdmVybGF5PzogYm9vbGVhbjtcbiAgICBXaWRnZXRNb3VudGluZ092ZXJyaWRlPzogUmVjb3JkPHN0cmluZywgYW55PltdO1xuICAgIGNvbmZpZ0NoYW5nZXM/OiBGcm9udGVuZENvbmZpZ092ZXJyaWRlc1tdO1xufVxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBXaW5kb3cge1xuICAgICAgICBfc3BpZmZ5PzogRW52aXZlQ29uZmlnO1xuICAgICAgICBfZW52aXZlPzogRW52aXZlQ29uZmlnO1xuICAgIH1cbn1cbmV4cG9ydCB7fTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLElBQVcsZUFBZTtDQUFDO09BQUc7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUM5QixJQUFJLEtBQUs7Q0FBQztPQUFXO09BQUM7Q0FBQSxXQUFBLEdBQUE7Q0FBQSJ9
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29uZmlnLmQudHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2Vudml2ZUNvbmZpZy5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyb250ZW5kQ29uZmlnT3ZlcnJpZGVzLCBWYXJpYW50SW5mbyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHR5cGUgeyBIYXJkY29weVJlc3BvbnNlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2hhcmRjb3B5Q29udGV4dC9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBXaWRnZXRUeXBlVjMgfSBmcm9tICdzcmMvY29udGV4dHMvdHlwZXNWMyc7XG5leHBvcnQgaW50ZXJmYWNlIEVudml2ZUNvbmZpZyB7XG4gICAgcHVibGljS2V5Pzogc3RyaW5nO1xuICAgIHVzZXJJRD86IHN0cmluZztcbiAgICBlbnY/OiAncHJvZCcgfCAnZGV2JztcbiAgICBjbGllbnRJRD86IHN0cmluZztcbiAgICBzaG93PzogYm9vbGVhbjtcbiAgICBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgdmFyaWFudEluZm9PdmVycmlkZT86IFZhcmlhbnRJbmZvO1xuICAgIHZhcmlhbnRVcmxPdmVycmlkZT86IHN0cmluZztcbiAgICBwYWdlVmFyaWFudElkT3ZlcnJpZGU/OiBzdHJpbmc7XG4gICAgc2VsZWN0ZWRDdXN0b21pemVPcHRpb24/OiBzdHJpbmc7XG4gICAgcmVkdWNlZE1vdGlvbk92ZXJyaWRlPzogYm9vbGVhbjtcbiAgICBpbml0aWFsT3BlblNlYXJjaE92ZXJsYXk/OiBib29sZWFuO1xuICAgIFdpZGdldE1vdW50aW5nT3ZlcnJpZGU/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+W107XG4gICAgY29uZmlnQ2hhbmdlcz86IEZyb250ZW5kQ29uZmlnT3ZlcnJpZGVzW107XG4gICAgaGFyZGNvcHlPdmVycmlkZT86IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+O1xufVxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBXaW5kb3cge1xuICAgICAgICBfc3BpZmZ5PzogRW52aXZlQ29uZmlnO1xuICAgICAgICBfZW52aXZlPzogRW52aXZlQ29uZmlnO1xuICAgIH1cbn1cbmV4cG9ydCB7fTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsSUFBVyxlQUFlO0NBQUM7T0FBRztPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDOUIsSUFBSSxLQUFLO0NBQUM7T0FBVztPQUFDO0NBQUEsV0FBQSxHQUFBO0NBQUEifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@envive-ai/react-hooks",
3
- "version": "0.3.11",
3
+ "version": "0.3.13",
4
4
  "description": "React hooks for connecting to Envive AI services.",
5
5
  "keywords": [
6
6
  "react",
@@ -38,11 +38,10 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@amplitude/analytics-browser": "2.23.7",
41
- "@spiffy-ai/commerce-api-client": "1.1.0-SNAPSHOT.202602191038",
41
+ "@spiffy-ai/commerce-api-client": "1.1.0-SNAPSHOT.202602261036",
42
42
  "@envive-ai/analytics": "1.0.28",
43
43
  "fuse.js": "^7.1.0",
44
44
  "jotai": "^2.14.0",
45
- "ua-parser-js": "^1.0.39",
46
45
  "uuid": "^13.0.0"
47
46
  },
48
47
  "devDependencies": {
@@ -315,10 +314,6 @@
315
314
  "import": "./dist/hooks/GraphQLConfig/index.js",
316
315
  "require": "./dist/hooks/GraphQLConfig/index.cjs"
317
316
  },
318
- "./hooks/IdentifyUser": {
319
- "import": "./dist/hooks/IdentifyUser/index.js",
320
- "require": "./dist/hooks/IdentifyUser/index.cjs"
321
- },
322
317
  "./hooks/ImageResolver": {
323
318
  "import": "./dist/hooks/ImageResolver/index.js",
324
319
  "require": "./dist/hooks/ImageResolver/index.cjs"