@envive-ai/react-hooks 0.3.18 → 0.3.19-alpha-marlo-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/dist/application/commerce-api.cjs +14 -13
  2. package/dist/application/commerce-api.js +14 -13
  3. package/dist/application/logging/logger.cjs +16 -10
  4. package/dist/application/logging/logger.js +16 -10
  5. package/dist/application/models/guards/api/isApiFormResponse.cjs +9 -8
  6. package/dist/application/models/guards/api/isApiFormResponse.js +9 -8
  7. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.cjs +6 -5
  8. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +6 -5
  9. package/dist/application/models/guards/api/isApiOrderResponseAttributes.cjs +19 -18
  10. package/dist/application/models/guards/api/isApiOrderResponseAttributes.js +19 -18
  11. package/dist/application/models/guards/api/isApiOrgConfigResults.cjs +27 -26
  12. package/dist/application/models/guards/api/isApiOrgConfigResults.js +27 -26
  13. package/dist/application/models/guards/api/isApiOrganizationConfig.cjs +23 -22
  14. package/dist/application/models/guards/api/isApiOrganizationConfig.js +23 -22
  15. package/dist/application/models/guards/api/isApiProductResponseAttributes.cjs +12 -11
  16. package/dist/application/models/guards/api/isApiProductResponseAttributes.js +12 -11
  17. package/dist/application/models/guards/api/isApiResponse.cjs +7 -6
  18. package/dist/application/models/guards/api/isApiResponse.js +7 -6
  19. package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.cjs +5 -4
  20. package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.js +5 -4
  21. package/dist/application/models/validators/validateGraphQLFrontendConfig.cjs +15 -14
  22. package/dist/application/models/validators/validateGraphQLFrontendConfig.js +15 -14
  23. package/dist/application/utils/analyticsUtils.cjs +4 -3
  24. package/dist/application/utils/analyticsUtils.js +4 -3
  25. package/dist/application/utils/nextMessageRequestToApiRequest.cjs +3 -1
  26. package/dist/application/utils/nextMessageRequestToApiRequest.js +3 -1
  27. package/dist/atoms/app/index.d.cts +1 -1
  28. package/dist/atoms/app/index.d.ts +7 -7
  29. package/dist/atoms/app/variant.cjs +3 -2
  30. package/dist/atoms/app/variant.d.cts +6 -6
  31. package/dist/atoms/app/variant.js +3 -2
  32. package/dist/atoms/chat/chatState.d.cts +18 -18
  33. package/dist/atoms/chat/chatState.d.ts +18 -18
  34. package/dist/atoms/chat/form.d.cts +3 -3
  35. package/dist/atoms/chat/form.d.ts +2 -2
  36. package/dist/atoms/chat/index.d.cts +3 -3
  37. package/dist/atoms/chat/index.d.ts +3 -3
  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 +7 -7
  41. package/dist/atoms/chat/messageQueue.d.ts +6 -6
  42. package/dist/atoms/chat/performanceMetrics.cjs +3 -2
  43. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  44. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  45. package/dist/atoms/chat/performanceMetrics.js +3 -2
  46. package/dist/atoms/chat/renderedWidgetRefs.d.cts +3 -3
  47. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  48. package/dist/atoms/chat/replies.d.cts +3 -3
  49. package/dist/atoms/chat/replies.d.ts +3 -3
  50. package/dist/atoms/chat/suggestions.d.cts +3 -3
  51. package/dist/atoms/chat/suggestions.d.ts +2 -2
  52. package/dist/atoms/envive/enviveConfig.cjs +5 -4
  53. package/dist/atoms/envive/enviveConfig.d.cts +13 -13
  54. package/dist/atoms/envive/enviveConfig.d.ts +13 -13
  55. package/dist/atoms/envive/enviveConfig.js +5 -4
  56. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  57. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  58. package/dist/atoms/org/customerService.d.cts +6 -6
  59. package/dist/atoms/org/customerService.d.ts +6 -6
  60. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  61. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  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/types.d.cts +1 -1
  69. package/dist/atoms/search/utils.d.cts +1 -1
  70. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  71. package/dist/contexts/amplitudeContext/amplitudeContext.cjs +4 -3
  72. package/dist/contexts/amplitudeContext/amplitudeContext.js +3 -2
  73. package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +26 -15
  74. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +2 -4
  75. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +2 -4
  76. package/dist/contexts/enviveConfigContext/enviveConfigContext.js +29 -16
  77. package/dist/contexts/enviveConfigContext/index.cjs +2 -1
  78. package/dist/contexts/enviveConfigContext/index.d.cts +2 -1
  79. package/dist/contexts/enviveConfigContext/index.d.ts +2 -1
  80. package/dist/contexts/enviveConfigContext/index.js +2 -1
  81. package/dist/contexts/enviveConfigContext/useEnviveConfig.cjs +12 -0
  82. package/dist/contexts/enviveConfigContext/useEnviveConfig.d.cts +7 -0
  83. package/dist/contexts/enviveConfigContext/useEnviveConfig.d.ts +7 -0
  84. package/dist/contexts/enviveConfigContext/useEnviveConfig.js +11 -0
  85. package/dist/contexts/enviveContext/WindowChatToggleBinder.cjs +7 -5
  86. package/dist/contexts/enviveContext/WindowChatToggleBinder.js +6 -4
  87. package/dist/contexts/enviveContext/enviveContext.cjs +74 -45
  88. package/dist/contexts/enviveContext/enviveContext.d.cts +8 -2
  89. package/dist/contexts/enviveContext/enviveContext.d.ts +8 -2
  90. package/dist/contexts/enviveContext/enviveContext.js +75 -46
  91. package/dist/contexts/enviveContext/index.d.cts +2 -2
  92. package/dist/contexts/enviveContext/index.d.ts +2 -2
  93. package/dist/contexts/enviveContext/types.d.cts +1 -1
  94. package/dist/contexts/enviveContext/types.d.ts +1 -1
  95. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +7 -6
  96. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +7 -6
  97. package/dist/contexts/graphqlContext/graphqlContext.cjs +8 -7
  98. package/dist/contexts/graphqlContext/graphqlContext.js +8 -7
  99. package/dist/contexts/hardcopyContext/hardcopyContext.cjs +9 -8
  100. package/dist/contexts/hardcopyContext/hardcopyContext.js +9 -8
  101. package/dist/contexts/localStorageContext/localStorageContext.cjs +4 -3
  102. package/dist/contexts/localStorageContext/localStorageContext.js +4 -3
  103. package/dist/contexts/pageContext/pageContext.cjs +23 -4
  104. package/dist/contexts/pageContext/pageContext.d.cts +3 -1
  105. package/dist/contexts/pageContext/pageContext.d.ts +3 -1
  106. package/dist/contexts/pageContext/pageContext.js +24 -5
  107. package/dist/contexts/pageContext/types.d.ts +1 -1
  108. package/dist/contexts/salesAgentContext/chatAPI.cjs +3 -2
  109. package/dist/contexts/salesAgentContext/chatAPI.js +3 -2
  110. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +4 -3
  111. package/dist/contexts/salesAgentContext/salesAgentContext.js +4 -3
  112. package/dist/contexts/salesAgentContext/salesAgentService.cjs +3 -2
  113. package/dist/contexts/salesAgentContext/salesAgentService.js +3 -2
  114. package/dist/contexts/searchContext/searchContext.cjs +8 -6
  115. package/dist/contexts/searchContext/searchContext.js +7 -5
  116. package/dist/contexts/sessionStorageContext/sessionStorageContext.cjs +3 -2
  117. package/dist/contexts/sessionStorageContext/sessionStorageContext.js +3 -2
  118. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
  119. package/dist/contexts/types.d.cts +1 -1
  120. package/dist/contexts/types.d.ts +1 -1
  121. package/dist/contexts/typesV3.d.cts +1 -1
  122. package/dist/contexts/uiConfigContext/index.cjs +0 -1
  123. package/dist/contexts/uiConfigContext/index.d.cts +2 -2
  124. package/dist/contexts/uiConfigContext/index.d.ts +2 -2
  125. package/dist/contexts/uiConfigContext/index.js +2 -2
  126. package/dist/contexts/uiConfigContext/uiConfigContext.cjs +13 -30
  127. package/dist/contexts/uiConfigContext/uiConfigContext.d.cts +5 -9
  128. package/dist/contexts/uiConfigContext/uiConfigContext.d.ts +5 -9
  129. package/dist/contexts/uiConfigContext/uiConfigContext.js +14 -29
  130. package/dist/contexts/userIdentityContext/userIdentityContext.cjs +7 -7
  131. package/dist/contexts/userIdentityContext/userIdentityContext.js +7 -7
  132. package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +4 -3
  133. package/dist/contexts/widgetConfigContext/widgetConfigContext.js +4 -3
  134. package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.cjs +4 -3
  135. package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.js +4 -3
  136. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
  137. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  138. package/dist/hooks/ShopifyUrlOperations/useShopifyUrlOperations.d.cts +2 -2
  139. package/dist/hooks/ShopifyUrlOperations/useShopifyUrlOperations.d.ts +2 -2
  140. package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.ts +2 -2
  141. package/dist/hooks/WidgetInteraction/useWidgetInteraction.cjs +2 -2
  142. package/dist/hooks/WidgetInteraction/useWidgetInteraction.js +2 -2
  143. package/dist/hooks/WidgetInteraction/utils.cjs +2 -1
  144. package/dist/hooks/WidgetInteraction/utils.js +2 -1
  145. package/dist/hooks/utils.d.cts +1 -1
  146. package/dist/hooks/utils.d.ts +1 -1
  147. package/dist/services/amplitudeService/amplitudeService.cjs +15 -7
  148. package/dist/services/amplitudeService/amplitudeService.d.cts +2 -1
  149. package/dist/services/amplitudeService/amplitudeService.d.ts +2 -1
  150. package/dist/services/amplitudeService/amplitudeService.js +15 -7
  151. package/dist/services/ga4ProjectionService/ga4ProjectionService.cjs +3 -2
  152. package/dist/services/ga4ProjectionService/ga4ProjectionService.js +3 -2
  153. package/dist/services/userIdentityService/userIdentityService.cjs +8 -7
  154. package/dist/services/userIdentityService/userIdentityService.js +8 -7
  155. package/package.json +2 -2
  156. package/src/application/commerce-api.ts +14 -12
  157. package/src/application/logging/logger.ts +33 -8
  158. package/src/application/models/guards/api/isApiFormResponse.ts +9 -7
  159. package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +6 -4
  160. package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +19 -17
  161. package/src/application/models/guards/api/isApiOrgConfigResults.ts +40 -48
  162. package/src/application/models/guards/api/isApiOrganizationConfig.ts +25 -38
  163. package/src/application/models/guards/api/isApiProductResponseAttributes.ts +12 -10
  164. package/src/application/models/guards/api/isApiResponse.ts +7 -5
  165. package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +5 -3
  166. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +15 -13
  167. package/src/application/utils/analyticsUtils.ts +4 -4
  168. package/src/application/utils/nextMessageRequestToApiRequest.ts +2 -0
  169. package/src/atoms/app/variant.ts +3 -1
  170. package/src/atoms/chat/performanceMetrics.ts +3 -1
  171. package/src/atoms/envive/enviveConfig.ts +5 -3
  172. package/src/contexts/amplitudeContext/amplitudeContext.tsx +1 -1
  173. package/src/contexts/enviveConfigContext/__tests__/enviveConfigContext.test.tsx +4 -3
  174. package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +50 -35
  175. package/src/contexts/enviveConfigContext/index.ts +1 -0
  176. package/src/contexts/enviveConfigContext/useEnviveConfig.ts +9 -0
  177. package/src/contexts/enviveContext/WindowChatToggleBinder.tsx +6 -4
  178. package/src/contexts/enviveContext/enviveContext.tsx +109 -50
  179. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +11 -12
  180. package/src/contexts/graphqlContext/__tests__/graphqlContext.test.tsx +4 -4
  181. package/src/contexts/graphqlContext/graphqlContext.tsx +8 -6
  182. package/src/contexts/hardcopyContext/hardcopyContext.tsx +9 -7
  183. package/src/contexts/localStorageContext/__tests__/localStorageContext.test.tsx +6 -6
  184. package/src/contexts/localStorageContext/localStorageContext.tsx +4 -2
  185. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +5 -5
  186. package/src/contexts/pageContext/pageContext.tsx +22 -2
  187. package/src/contexts/salesAgentContext/chatAPI.ts +5 -5
  188. package/src/contexts/salesAgentContext/salesAgentContext.tsx +4 -2
  189. package/src/contexts/salesAgentContext/salesAgentService.ts +4 -2
  190. package/src/contexts/searchContext/__tests__/searchContext.test.tsx +15 -12
  191. package/src/contexts/searchContext/searchContext.tsx +6 -4
  192. package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +3 -1
  193. package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +7 -32
  194. package/src/contexts/uiConfigContext/uiConfigContext.tsx +17 -29
  195. package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +5 -5
  196. package/src/contexts/userIdentityContext/userIdentityContext.tsx +7 -6
  197. package/src/contexts/widgetConfigContext/__tests__/widgetConfigContext.test.tsx +7 -7
  198. package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +4 -2
  199. package/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.ts +4 -2
  200. package/src/hooks/Search/__tests__/useSearch.test.tsx +14 -8
  201. package/src/hooks/WidgetInteraction/useWidgetInteraction.ts +3 -2
  202. package/src/hooks/WidgetInteraction/utils.ts +3 -1
  203. package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +3 -3
  204. package/src/services/amplitudeService/amplitudeService.ts +19 -6
  205. package/src/services/ga4ProjectionService/ga4ProjectionService.ts +3 -1
  206. package/src/services/userIdentityService/userIdentityService.ts +8 -8
@@ -6,12 +6,15 @@ import { v4 as uuid } from 'uuid';
6
6
  import { InternalWidgetInteraction, WidgetInteraction } from './types';
7
7
  import { extractPageContext } from './utils';
8
8
 
9
+ const getInteractionId = () => uuid();
10
+
9
11
  export const useWidgetInteraction = () => {
10
12
  const { trackEvent } = useAmplitude();
11
13
  const variantInfo = useAtomValue(pageVariantInfoAtom);
12
14
 
13
15
  const trackWidgetInteraction = (props: WidgetInteraction) => {
14
16
  if (props.trigger) {
17
+ // eslint-disable-next-line no-param-reassign
15
18
  props.trigger.interaction_id = props.trigger.interaction_id || getInteractionId();
16
19
  }
17
20
 
@@ -26,8 +29,6 @@ export const useWidgetInteraction = () => {
26
29
  });
27
30
  };
28
31
 
29
- const getInteractionId = () => uuid();
30
-
31
32
  return {
32
33
  trackWidgetInteraction,
33
34
  getInteractionId,
@@ -3,9 +3,9 @@ import {
3
3
  FullPageSalesAgentVariantInfo,
4
4
  HomeVariantInfo,
5
5
  OtherVariantInfo,
6
- PageVariantInfo,
7
6
  PDPPageVariantInfo,
8
7
  PLPPageVariantInfo,
8
+ PageVariantInfo,
9
9
  } from '../../contexts/pageContext/types';
10
10
  import { WidgetInteractionContext, WidgetInteractionPageType } from './types';
11
11
 
@@ -38,6 +38,8 @@ export const extractPageContext = (
38
38
  page_id: (pageVariant as FullPageSalesAgentVariantInfo).url,
39
39
  page_type: WidgetInteractionPageType.FULL_PAGE,
40
40
  };
41
+ default:
42
+ return null;
41
43
  }
42
44
 
43
45
  return null;
@@ -281,7 +281,7 @@ describe('AmplitudeService', () => {
281
281
  featureFlagService,
282
282
  });
283
283
 
284
- const logWarnSpy = vi.spyOn(Logger, 'logWarn');
284
+ const logWarnSpy = vi.spyOn(Logger.prototype, 'logWarn');
285
285
 
286
286
  await service.trackEvent({
287
287
  eventName: SpiffyMetricsEventName.ChatUserMessageInput,
@@ -304,7 +304,7 @@ describe('AmplitudeService', () => {
304
304
  throw error;
305
305
  });
306
306
 
307
- const logErrorSpy = vi.spyOn(Logger, 'logError');
307
+ const logErrorSpy = vi.spyOn(Logger.prototype, 'logError');
308
308
 
309
309
  await service.trackEvent({
310
310
  eventName: SpiffyMetricsEventName.ChatUserMessageInput,
@@ -312,7 +312,7 @@ describe('AmplitudeService', () => {
312
312
  });
313
313
 
314
314
  expect(logErrorSpy).toHaveBeenCalledWith(
315
- '[spiffy-ai] Error tracking event',
315
+ 'Error tracking event',
316
316
  error,
317
317
  expect.objectContaining({
318
318
  eventName: SpiffyMetricsEventName.ChatUserMessageInput,
@@ -17,6 +17,8 @@ import { EnviveMetricsEventName, SpiffyMetricsEventName } from './eventNames';
17
17
  // Re-export event names for convenience
18
18
  export { EnviveMetricsEventName, SpiffyMetricsEventName };
19
19
 
20
+ const logger = new Logger('amplitudeService');
21
+
20
22
  export interface TrackEventParams {
21
23
  eventName: SpiffyMetricsEventName | EnviveMetricsEventName;
22
24
  eventProps?: Record<string, unknown>;
@@ -211,13 +213,17 @@ export class AmplitudeService {
211
213
  return enrichment;
212
214
  }
213
215
 
216
+ private static isValidAmplitudeApiKey(apiKey: string): boolean {
217
+ return /^[0-9a-f]{32}$/i.test(apiKey);
218
+ }
219
+
214
220
  private initialize(): void {
215
221
  const isReady = Boolean(
216
222
  this.config.userId && this.config.featureFlagService && this.config.amplitudeApiKey,
217
223
  );
218
224
 
219
225
  if (!isReady) {
220
- Logger.logDebug('AmplitudeService is not ready', {
226
+ logger.logDebug('AmplitudeService is not ready', {
221
227
  isReady,
222
228
  userId: this.config.userId,
223
229
  hasFeatureFlagService: !!this.config.featureFlagService,
@@ -226,6 +232,13 @@ export class AmplitudeService {
226
232
  return;
227
233
  }
228
234
 
235
+ if (!AmplitudeService.isValidAmplitudeApiKey(this.config.amplitudeApiKey)) {
236
+ logger.logDebug(
237
+ 'AmplitudeService is assuming a mock API key is in use — no calls will be made to the Amplitude API',
238
+ );
239
+ return;
240
+ }
241
+
229
242
  if (!this.amplitudeClient) {
230
243
  const currentAmplitudeInstance: BrowserClient = createInstance();
231
244
 
@@ -351,12 +364,12 @@ export class AmplitudeService {
351
364
  eventGroups,
352
365
  alsoSendToGoogleAnalytics = false,
353
366
  }: TrackEventParams): Promise<void> {
354
- Logger.logDebug('Submitting event', eventName);
367
+ logger.logDebug('Submitting event', eventName);
355
368
  try {
356
369
  const decoratedEventName = AmplitudeService.decorateEventName(eventName);
357
370
 
358
371
  if (!this.amplitudeClient) {
359
- Logger.logWarn('amplitude client undefined', undefined, {
372
+ logger.logWarn('amplitude client undefined', undefined, {
360
373
  event_name: decoratedEventName,
361
374
  });
362
375
  return;
@@ -377,7 +390,7 @@ export class AmplitudeService {
377
390
  const hashArray = Array.from(new Uint8Array(hashBuffer));
378
391
  const currentInsertId = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
379
392
 
380
- Logger.logDebug(`amplitude tracking ${decoratedEventName}`, null, {
393
+ logger.logDebug(`amplitude tracking ${decoratedEventName}`, null, {
381
394
  event_name: decoratedEventName,
382
395
  props: mappedEventProps,
383
396
  });
@@ -404,7 +417,7 @@ export class AmplitudeService {
404
417
  };
405
418
  projectToGA4(eventName as EnviveMetricsEventName, mergedPropsForGA4);
406
419
  } else if (alsoSendToGoogleAnalytics && this.config.orgGaConfig) {
407
- Logger.logDebug('[spiffy-ai] GA tracking', decoratedEventName);
420
+ logger.logDebug('GA tracking', decoratedEventName);
408
421
  if (typeof window !== 'undefined' && window.dataLayer) {
409
422
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
410
423
  (window.dataLayer as any[]).push({
@@ -414,7 +427,7 @@ export class AmplitudeService {
414
427
  }
415
428
  }
416
429
  } catch (err) {
417
- Logger.logError('[spiffy-ai] Error tracking event', err, {
430
+ logger.logError('Error tracking event', err, {
418
431
  eventName,
419
432
  eventProps,
420
433
  });
@@ -2,6 +2,8 @@ import Logger from 'src/application/logging/logger';
2
2
  import { EnviveMetricsEventName } from '../amplitudeService/eventNames';
3
3
  import { GA4ProjectedEventConfig, GA4_EVENT_SCHEMA } from './ga4EventSchema';
4
4
 
5
+ const logger = new Logger('ga4ProjectionService');
6
+
5
7
  const filterToSchema = (
6
8
  eventProps: Record<string, unknown>,
7
9
  allowedFields: readonly string[],
@@ -130,7 +132,7 @@ export const projectToGA4 = (
130
132
  ...truncatedParams,
131
133
  });
132
134
  } catch (err) {
133
- Logger.logError('[envive-ai] Error projecting event to GA4', err, {
135
+ logger.logError('Error projecting event to GA4', err, {
134
136
  eventName,
135
137
  });
136
138
  }
@@ -4,6 +4,8 @@ import { getAtomStore } from 'src/atoms/atomStore';
4
4
  import { userIdAtom } from 'src/atoms/app';
5
5
  import { ExecutionContext } from '@envive-ai/analytics/dist/analytics/EnviveAnalytics';
6
6
 
7
+ const logger = new Logger('userIdentityService');
8
+
7
9
  type UserIdentityServiceProps = {
8
10
  apiKey: string;
9
11
  };
@@ -18,7 +20,7 @@ export class UserIdentityService {
18
20
  }
19
21
 
20
22
  getUserIdOverrideFromLocalStorage(): string | undefined {
21
- Logger.logDebug('[spiffy-ai] Getting userID from localStorage');
23
+ logger.logDebug('Getting userID from localStorage');
22
24
  return localStorage.getItem(this.USER_ID_OVERRIDE_KEY) ?? undefined;
23
25
  }
24
26
 
@@ -29,7 +31,7 @@ export class UserIdentityService {
29
31
  }
30
32
 
31
33
  try {
32
- Logger.logDebug('Getting userID via EnviveAnalytics in UserIdentityService');
34
+ logger.logDebug('Getting userID via EnviveAnalytics in UserIdentityService');
33
35
  const enviveAnalytics = new EnviveAnalytics({
34
36
  apiKey: this.apiKey,
35
37
  environmentInfo: { executionContext: ExecutionContext.EnviveReactComponentsV3 },
@@ -37,16 +39,14 @@ export class UserIdentityService {
37
39
  const enviveUserId = await enviveAnalytics.resolveEnviveUserId();
38
40
 
39
41
  if (!enviveUserId) {
40
- throw new Error(
41
- '[spiffy-ai] EnviveAnalytics.resolveEnviveUserId() returned null/undefined',
42
- );
42
+ throw new Error('EnviveAnalytics.resolveEnviveUserId() returned null/undefined');
43
43
  }
44
44
 
45
45
  return enviveUserId;
46
46
  } catch (error: unknown) {
47
- Logger.logError('[spiffy-ai] CRITICAL: Failed to get user ID:', error);
47
+ logger.logError('CRITICAL: Failed to get user ID:', error);
48
48
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
49
- throw new Error(`[spiffy-ai] CRITICAL: User ID resolution failed: ${errorMessage}`);
49
+ throw new Error(`CRITICAL: User ID resolution failed: ${errorMessage}`);
50
50
  }
51
51
  }
52
52
 
@@ -57,7 +57,7 @@ export class UserIdentityService {
57
57
  const store = atomStore || getAtomStore();
58
58
  store.set(userIdAtom, userId);
59
59
  } catch (error) {
60
- Logger.logError('[spiffy-ai] CRITICAL: Failed to initialize user ID:', error);
60
+ logger.logError('CRITICAL: Failed to initialize user ID:', error);
61
61
  throw error;
62
62
  }
63
63
  }