@safaricom-mxl/web-sdk 0.0.14 → 0.0.15

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 (234) hide show
  1. package/dist/api-logs/api/LogAPI/LogAPI.cjs.map +1 -1
  2. package/dist/api-logs/api/LogAPI/LogAPI.js.map +1 -1
  3. package/dist/api-logs/logAPI.cjs.map +1 -1
  4. package/dist/api-logs/logAPI.js.map +1 -1
  5. package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.cjs.map +1 -1
  6. package/dist/api-logs/manager/NoOpLogManager/NoOpLogManager.js.map +1 -1
  7. package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.cjs.map +1 -1
  8. package/dist/api-logs/manager/ProxyLogManager/ProxyLogManager.js.map +1 -1
  9. package/dist/api-page/api/PageAPI/PageAPI.cjs.map +1 -1
  10. package/dist/api-page/api/PageAPI/PageAPI.js.map +1 -1
  11. package/dist/api-page/manager/NoOpPageManager/NoOpPageManager.cjs.map +1 -1
  12. package/dist/api-page/manager/NoOpPageManager/NoOpPageManager.js.map +1 -1
  13. package/dist/api-page/manager/ProxyPageManager/ProxyPageManager.cjs.map +1 -1
  14. package/dist/api-page/manager/ProxyPageManager/ProxyPageManager.js.map +1 -1
  15. package/dist/api-page/pageAPI.cjs.map +1 -1
  16. package/dist/api-page/pageAPI.js.map +1 -1
  17. package/dist/api-sessions/api/SessionAPI/SessionAPI.cjs.map +1 -1
  18. package/dist/api-sessions/api/SessionAPI/SessionAPI.d.cts.map +1 -1
  19. package/dist/api-sessions/api/SessionAPI/SessionAPI.d.ts.map +1 -1
  20. package/dist/api-sessions/api/SessionAPI/SessionAPI.js.map +1 -1
  21. package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.cjs.map +1 -1
  22. package/dist/api-sessions/manager/NoOpSpanSessionManager/NoOpSpanSessionManager.js.map +1 -1
  23. package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.cjs.map +1 -1
  24. package/dist/api-sessions/manager/ProxySpanSessionManager/ProxySpanSessionManager.js.map +1 -1
  25. package/dist/api-sessions/sessionAPI.cjs.map +1 -1
  26. package/dist/api-sessions/sessionAPI.js.map +1 -1
  27. package/dist/api-traces/api/TraceAPI/TraceAPI.cjs.map +1 -1
  28. package/dist/api-traces/api/TraceAPI/TraceAPI.js.map +1 -1
  29. package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.cjs.map +1 -1
  30. package/dist/api-traces/manager/NoOpTraceManager/NoOpTraceManager.js.map +1 -1
  31. package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.cjs.map +1 -1
  32. package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.d.cts.map +1 -1
  33. package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.d.ts.map +1 -1
  34. package/dist/api-traces/manager/NoOpTraceManager/NonRecordingExtendedSpan.js.map +1 -1
  35. package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.cjs.map +1 -1
  36. package/dist/api-traces/manager/ProxyTraceManager/ProxyTraceManager.js.map +1 -1
  37. package/dist/api-traces/traceAPI.cjs.map +1 -1
  38. package/dist/api-traces/traceAPI.js.map +1 -1
  39. package/dist/api-users/api/UserAPI/UserAPI.cjs.map +1 -1
  40. package/dist/api-users/api/UserAPI/UserAPI.js.map +1 -1
  41. package/dist/api-users/manager/NoOpUserManager/NoOpUserManager.cjs.map +1 -1
  42. package/dist/api-users/manager/NoOpUserManager/NoOpUserManager.js.map +1 -1
  43. package/dist/api-users/manager/ProxyUserManager/ProxyUserManager.cjs.map +1 -1
  44. package/dist/api-users/manager/ProxyUserManager/ProxyUserManager.js.map +1 -1
  45. package/dist/api-users/userAPI.cjs.map +1 -1
  46. package/dist/api-users/userAPI.js.map +1 -1
  47. package/dist/common/attributes.cjs.map +1 -1
  48. package/dist/common/attributes.js.map +1 -1
  49. package/dist/exporters/MXLLogExporter/MXLLogExporter.cjs.map +1 -1
  50. package/dist/exporters/MXLLogExporter/MXLLogExporter.js.map +1 -1
  51. package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.cjs.map +1 -1
  52. package/dist/exporters/MXLLogExporter/OTLPFetchLogExporter.js.map +1 -1
  53. package/dist/exporters/MXLLogExporter/utils.cjs.map +1 -1
  54. package/dist/exporters/MXLLogExporter/utils.js.map +1 -1
  55. package/dist/exporters/MXLTraceExporter/MXLTraceExporter.cjs.map +1 -1
  56. package/dist/exporters/MXLTraceExporter/MXLTraceExporter.js.map +1 -1
  57. package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.cjs.map +1 -1
  58. package/dist/exporters/MXLTraceExporter/OTLPFetchTraceExporter.js.map +1 -1
  59. package/dist/exporters/MXLTraceExporter/utils.cjs.map +1 -1
  60. package/dist/exporters/MXLTraceExporter/utils.js.map +1 -1
  61. package/dist/exporters/otlpBrowserFetchExportDelegate.cjs.map +1 -1
  62. package/dist/exporters/otlpBrowserFetchExportDelegate.d.cts.map +1 -1
  63. package/dist/exporters/otlpBrowserFetchExportDelegate.d.ts.map +1 -1
  64. package/dist/exporters/otlpBrowserFetchExportDelegate.js.map +1 -1
  65. package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.cjs.map +1 -1
  66. package/dist/instrumentations/MXLInstrumentationBase/MXLInstrumentationBase.js.map +1 -1
  67. package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.cjs.map +1 -1
  68. package/dist/instrumentations/clicks/ClicksInstrumentation/ClicksInstrumentation.js.map +1 -1
  69. package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.cjs.map +1 -1
  70. package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.d.cts.map +1 -1
  71. package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.d.ts.map +1 -1
  72. package/dist/instrumentations/document-load/DocumentLoadInstrumentation/DocumentLoadInstrumentation.js.map +1 -1
  73. package/dist/instrumentations/document-load/DocumentLoadInstrumentation/utils.cjs.map +1 -1
  74. package/dist/instrumentations/document-load/DocumentLoadInstrumentation/utils.js.map +1 -1
  75. package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.cjs.map +1 -1
  76. package/dist/instrumentations/element-timing/ElementTimingInstrumentation/ElementTimingInstrumentation.js.map +1 -1
  77. package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.cjs.map +1 -1
  78. package/dist/instrumentations/empty-root/EmptyRootInstrumentation/EmptyRootInstrumentation.js.map +1 -1
  79. package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.cjs.map +1 -1
  80. package/dist/instrumentations/exceptions/GlobalExceptionInstrumentation/GlobalExceptionInstrumentation.js.map +1 -1
  81. package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.cjs.map +1 -1
  82. package/dist/instrumentations/exceptions/react/MXLErrorBoundary/MXLErrorBoundary.js.map +1 -1
  83. package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.cjs.map +1 -1
  84. package/dist/instrumentations/fetch/MXLFetchInstrumentation/MXLFetchInstrumentation.js.map +1 -1
  85. package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.cjs.map +1 -1
  86. package/dist/instrumentations/loaf/LoafInstrumentation/LoafInstrumentation.js.map +1 -1
  87. package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.cjs.map +1 -1
  88. package/dist/instrumentations/navigation/NavigationInstrumentation/NavigationInstrumentation.js.map +1 -1
  89. package/dist/instrumentations/navigation/NavigationInstrumentation/instance.cjs.map +1 -1
  90. package/dist/instrumentations/navigation/NavigationInstrumentation/instance.js.map +1 -1
  91. package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.cjs.map +1 -1
  92. package/dist/instrumentations/navigation/NavigationInstrumentation/react/createReactRouterNavigationInstrumentation.js.map +1 -1
  93. package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.cjs.map +1 -1
  94. package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.d.cts.map +1 -1
  95. package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.d.ts.map +1 -1
  96. package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV5/withMXLRoutingLegacy.js.map +1 -1
  97. package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/listenToRouterChanges.cjs.map +1 -1
  98. package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Data/listenToRouterChanges.js.map +1 -1
  99. package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/withMXLRouting.cjs.map +1 -1
  100. package/dist/instrumentations/navigation/NavigationInstrumentation/react/reactRouterV6Declarative/withMXLRouting.js.map +1 -1
  101. package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.cjs.map +1 -1
  102. package/dist/instrumentations/server-timing/ServerTimingInstrumentation/ServerTimingInstrumentation.js.map +1 -1
  103. package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.cjs.map +1 -1
  104. package/dist/instrumentations/session/SpanSessionBrowserActivityInstrumentation/SpanSessionBrowserActivityInstrumentation.js.map +1 -1
  105. package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.cjs.map +1 -1
  106. package/dist/instrumentations/session/SpanSessionOnLoadInstrumentation/SpanSessionOnLoadInstrumentation.js.map +1 -1
  107. package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.cjs.map +1 -1
  108. package/dist/instrumentations/session/SpanSessionTimeoutInstrumentation/SpanSessionTimeoutInstrumentation.js.map +1 -1
  109. package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.cjs.map +1 -1
  110. package/dist/instrumentations/session/SpanSessionVisibilityInstrumentation/SpanSessionVisibilityInstrumentation.js.map +1 -1
  111. package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.cjs.map +1 -1
  112. package/dist/instrumentations/user-timing/UserTimingInstrumentation/UserTimingInstrumentation.js.map +1 -1
  113. package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.cjs.map +1 -1
  114. package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.d.cts.map +1 -1
  115. package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.d.ts.map +1 -1
  116. package/dist/instrumentations/web-vitals/WebVitalsInstrumentation/WebVitalsInstrumentation.js.map +1 -1
  117. package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.cjs.map +1 -1
  118. package/dist/instrumentations/xhr/MXLXHRInstrumentation/MXLXHRInstrumentation.js.map +1 -1
  119. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs +1 -1
  120. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs.map +1 -1
  121. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.cts.map +1 -1
  122. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.ts.map +1 -1
  123. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js +1 -1
  124. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js.map +1 -1
  125. package/dist/managers/MXLConfigManager/constants.cjs.map +1 -1
  126. package/dist/managers/MXLConfigManager/constants.js.map +1 -1
  127. package/dist/managers/MXLConfigManager/utils.cjs.map +1 -1
  128. package/dist/managers/MXLConfigManager/utils.js.map +1 -1
  129. package/dist/managers/MXLLimitManager/MXLLimitManager.cjs.map +1 -1
  130. package/dist/managers/MXLLimitManager/MXLLimitManager.js.map +1 -1
  131. package/dist/managers/MXLLimitManager/constants.cjs.map +1 -1
  132. package/dist/managers/MXLLimitManager/constants.js.map +1 -1
  133. package/dist/managers/MXLLogManager/MXLLogManager.cjs.map +1 -1
  134. package/dist/managers/MXLLogManager/MXLLogManager.d.cts.map +1 -1
  135. package/dist/managers/MXLLogManager/MXLLogManager.d.ts.map +1 -1
  136. package/dist/managers/MXLLogManager/MXLLogManager.js.map +1 -1
  137. package/dist/managers/MXLPageManager/MXLPageManager.cjs.map +1 -1
  138. package/dist/managers/MXLPageManager/MXLPageManager.js.map +1 -1
  139. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.cjs.map +1 -1
  140. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.js.map +1 -1
  141. package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.cjs.map +1 -1
  142. package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.d.cts.map +1 -1
  143. package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.d.ts.map +1 -1
  144. package/dist/managers/MXLSpanSessionManager/MXLSpanSessionManager.js.map +1 -1
  145. package/dist/managers/MXLTraceManager/MXLExtendedSpan.cjs.map +1 -1
  146. package/dist/managers/MXLTraceManager/MXLExtendedSpan.d.cts.map +1 -1
  147. package/dist/managers/MXLTraceManager/MXLExtendedSpan.d.ts.map +1 -1
  148. package/dist/managers/MXLTraceManager/MXLExtendedSpan.js.map +1 -1
  149. package/dist/managers/MXLTraceManager/MXLTraceManager.cjs.map +1 -1
  150. package/dist/managers/MXLTraceManager/MXLTraceManager.js.map +1 -1
  151. package/dist/managers/MXLUserManager/MXLUserManager.cjs.map +1 -1
  152. package/dist/managers/MXLUserManager/MXLUserManager.js.map +1 -1
  153. package/dist/managers/MXLUserManager/types.cjs.map +1 -1
  154. package/dist/managers/MXLUserManager/types.js.map +1 -1
  155. package/dist/mxl-web-sdk.js +5 -5
  156. package/dist/mxl-web-sdk.js.map +1 -1
  157. package/dist/processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor.cjs.map +1 -1
  158. package/dist/processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor.js.map +1 -1
  159. package/dist/processors/BrowserSpanProcessor/BrowserSpanProcessor.cjs.map +1 -1
  160. package/dist/processors/BrowserSpanProcessor/BrowserSpanProcessor.js.map +1 -1
  161. package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.cjs.map +1 -1
  162. package/dist/processors/IdentifiableSessionLogRecordProcessor/IdentifiableSessionLogRecordProcessor.js.map +1 -1
  163. package/dist/processors/LogRecordScrubProcessor/LogRecordScrubProcessor.cjs.map +1 -1
  164. package/dist/processors/LogRecordScrubProcessor/LogRecordScrubProcessor.js.map +1 -1
  165. package/dist/processors/MXLLogRecordProcessor/MXLLogRecordProcessor.cjs.map +1 -1
  166. package/dist/processors/MXLLogRecordProcessor/MXLLogRecordProcessor.js.map +1 -1
  167. package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.cjs.map +1 -1
  168. package/dist/processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor.js.map +1 -1
  169. package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.cjs.map +1 -1
  170. package/dist/processors/MXLSessionBatchedSpanProcessor/MXLSessionBatchedSpanProcessor.js.map +1 -1
  171. package/dist/processors/PageLogRecordProcessor/PageLogRecordProcessor.cjs.map +1 -1
  172. package/dist/processors/PageLogRecordProcessor/PageLogRecordProcessor.js.map +1 -1
  173. package/dist/processors/PageSpanProcessor/PageSpanProcessor.cjs.map +1 -1
  174. package/dist/processors/PageSpanProcessor/PageSpanProcessor.js.map +1 -1
  175. package/dist/processors/SpanScrubProcessor/SpanScrubProcessor.cjs.map +1 -1
  176. package/dist/processors/SpanScrubProcessor/SpanScrubProcessor.js.map +1 -1
  177. package/dist/processors/UserLogRecordProcessor/UserLogRecordProcessor.cjs.map +1 -1
  178. package/dist/processors/UserLogRecordProcessor/UserLogRecordProcessor.js.map +1 -1
  179. package/dist/processors/UserSpanProcessor/UserSpanProcessor.cjs.map +1 -1
  180. package/dist/processors/UserSpanProcessor/UserSpanProcessor.js.map +1 -1
  181. package/dist/propagators/MXLW3CTraceContextPropagator/MXLW3CTraceContextPropagator.cjs.map +1 -1
  182. package/dist/propagators/MXLW3CTraceContextPropagator/MXLW3CTraceContextPropagator.js.map +1 -1
  183. package/dist/resources/appInstanceId.cjs.map +1 -1
  184. package/dist/resources/appInstanceId.js.map +1 -1
  185. package/dist/resources/constants/index.cjs +1 -1
  186. package/dist/resources/constants/index.cjs.map +1 -1
  187. package/dist/resources/constants/index.d.cts +1 -1
  188. package/dist/resources/constants/index.d.ts +1 -1
  189. package/dist/resources/constants/index.js +1 -1
  190. package/dist/resources/constants/index.js.map +1 -1
  191. package/dist/resources/webSdkResource.cjs.map +1 -1
  192. package/dist/resources/webSdkResource.d.cts.map +1 -1
  193. package/dist/resources/webSdkResource.d.ts.map +1 -1
  194. package/dist/resources/webSdkResource.js.map +1 -1
  195. package/dist/sdk/defaultAttributeScrubbers.cjs.map +1 -1
  196. package/dist/sdk/defaultAttributeScrubbers.js.map +1 -1
  197. package/dist/sdk/initSDK.cjs +1 -1
  198. package/dist/sdk/initSDK.cjs.map +1 -1
  199. package/dist/sdk/initSDK.d.cts.map +1 -1
  200. package/dist/sdk/initSDK.d.ts.map +1 -1
  201. package/dist/sdk/initSDK.js +1 -1
  202. package/dist/sdk/initSDK.js.map +1 -1
  203. package/dist/sdk/registry.cjs.map +1 -1
  204. package/dist/sdk/registry.js.map +1 -1
  205. package/dist/sdk/setupDefaultInstrumentations.cjs.map +1 -1
  206. package/dist/sdk/setupDefaultInstrumentations.js.map +1 -1
  207. package/dist/sdk/setupSessionRecorder.cjs.map +1 -1
  208. package/dist/sdk/setupSessionRecorder.js.map +1 -1
  209. package/dist/sdk/types.d.cts.map +1 -1
  210. package/dist/sdk/types.d.ts +1 -1
  211. package/dist/sdk/types.d.ts.map +1 -1
  212. package/dist/sdk/utils.cjs.map +1 -1
  213. package/dist/sdk/utils.js.map +1 -1
  214. package/dist/transport/FetchTransport/FetchTransport.cjs.map +1 -1
  215. package/dist/transport/FetchTransport/FetchTransport.js.map +1 -1
  216. package/dist/transport/FetchTransport/createFetchTransport.cjs.map +1 -1
  217. package/dist/transport/FetchTransport/createFetchTransport.js.map +1 -1
  218. package/dist/transport/RetryingTransport/RetryingTransport.cjs.map +1 -1
  219. package/dist/transport/RetryingTransport/RetryingTransport.js.map +1 -1
  220. package/dist/transport/RetryingTransport/createRetryingTransport.cjs.map +1 -1
  221. package/dist/transport/RetryingTransport/createRetryingTransport.js.map +1 -1
  222. package/dist/utils/MXLSpanStorage/MXLSpanStorage.cjs.map +1 -1
  223. package/dist/utils/MXLSpanStorage/MXLSpanStorage.js.map +1 -1
  224. package/dist/utils/PerformanceManager/OTelPerformanceManager.cjs.map +1 -1
  225. package/dist/utils/PerformanceManager/OTelPerformanceManager.js.map +1 -1
  226. package/dist/utils/bulkAddEventListener/bulkAddEventListener.cjs.map +1 -1
  227. package/dist/utils/bulkAddEventListener/bulkAddEventListener.js.map +1 -1
  228. package/dist/utils/bulkRemoveEventListener/bulkRemoveEventListener.cjs.map +1 -1
  229. package/dist/utils/bulkRemoveEventListener/bulkRemoveEventListener.js.map +1 -1
  230. package/dist/utils/getVisibilityState.cjs.map +1 -1
  231. package/dist/utils/getVisibilityState.js.map +1 -1
  232. package/dist/utils/nsfConfigValidation.cjs.map +1 -1
  233. package/dist/utils/nsfConfigValidation.js.map +1 -1
  234. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MXLExtendedSpan.js","names":[],"sources":["../../../src/managers/MXLTraceManager/MXLExtendedSpan.ts"],"sourcesContent":["import type {\n Attributes,\n AttributeValue,\n Exception,\n Link,\n Span,\n SpanContext,\n SpanStatus,\n TimeInput,\n} from '@opentelemetry/api';\nimport type {\n ExtendedSpan,\n ExtendedSpanFailedOptions,\n} from '../../api-traces/index.ts';\nimport { KEY_MXL_ERROR_CODE } from '../../constants/index.ts';\n\n/**\n * MXLSpan for the most part simply delegates to the underlying Span it receives on initialization so\n * that it satisfies the Span interface. In addition, it gives us a spot where we can implement helpers that are part\n * of the MXLSpan interface.\n */\nexport class MXLExtendedSpan implements ExtendedSpan {\n private readonly _span: ExtendedSpan;\n\n public constructor(span: Span) {\n this._span = span as ExtendedSpan;\n }\n\n /**\n * Expose attributes by extending OpenTelemetry's ReadableSpan.\n */\n public get attributes(): Attributes {\n return this._span.attributes;\n }\n\n public addEvent(\n name: string,\n attributesOrStartTime?: Attributes | TimeInput,\n startTime?: TimeInput,\n ): this {\n this._span.addEvent(name, attributesOrStartTime, startTime);\n return this;\n }\n\n public addLink(link: Link): this {\n this._span.addLink(link);\n return this;\n }\n\n public addLinks(links: Link[]): this {\n this._span.addLinks(links);\n return this;\n }\n\n public end(endTime?: TimeInput): void {\n this._span.end(endTime);\n }\n\n public isRecording(): boolean {\n return this._span.isRecording();\n }\n\n public recordException(exception: Exception, time?: TimeInput): void {\n this._span.recordException(exception, time);\n }\n\n public setAttribute(key: string, value: AttributeValue): this {\n this._span.setAttribute(key, value);\n return this;\n }\n\n public setAttributes(attributes: Attributes): this {\n this._span.setAttributes(attributes);\n return this;\n }\n\n public removeAttribute(key: string): this {\n const { [key]: _, ...attributes } = this._span.attributes;\n // @ts-expect-error Read/write spans are allowed per the spec https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#additional-span-interfaces\n this._span.attributes = attributes;\n return this;\n }\n\n public setStatus(status: SpanStatus): this {\n this._span.setStatus(status);\n return this;\n }\n\n public spanContext(): SpanContext {\n return this._span.spanContext();\n }\n\n public updateName(name: string): this {\n this._span.updateName(name);\n return this;\n }\n\n public fail(\n options: ExtendedSpanFailedOptions = {\n code: 'failure',\n },\n ): void {\n if (options.code) {\n this._span.setAttribute(KEY_MXL_ERROR_CODE, options.code.toUpperCase());\n }\n\n this._span.end(options.endTime);\n }\n}\n"],"mappings":";;;;;;;AAqBA,IAAa,kBAAb,MAAqD;CACnD;CAEA,YAAmB,MAAY;AAC7B,OAAK,QAAQ;;;;;CAMf,IAAW,aAAyB;AAClC,SAAO,KAAK,MAAM;;CAGpB,SACE,MACA,uBACA,WACM;AACN,OAAK,MAAM,SAAS,MAAM,uBAAuB,UAAU;AAC3D,SAAO;;CAGT,QAAe,MAAkB;AAC/B,OAAK,MAAM,QAAQ,KAAK;AACxB,SAAO;;CAGT,SAAgB,OAAqB;AACnC,OAAK,MAAM,SAAS,MAAM;AAC1B,SAAO;;CAGT,IAAW,SAA2B;AACpC,OAAK,MAAM,IAAI,QAAQ;;CAGzB,cAA8B;AAC5B,SAAO,KAAK,MAAM,aAAa;;CAGjC,gBAAuB,WAAsB,MAAwB;AACnE,OAAK,MAAM,gBAAgB,WAAW,KAAK;;CAG7C,aAAoB,KAAa,OAA6B;AAC5D,OAAK,MAAM,aAAa,KAAK,MAAM;AACnC,SAAO;;CAGT,cAAqB,YAA8B;AACjD,OAAK,MAAM,cAAc,WAAW;AACpC,SAAO;;CAGT,gBAAuB,KAAmB;EACxC,MAAM,GAAG,MAAM,GAAG,GAAG,eAAe,KAAK,MAAM;AAE/C,OAAK,MAAM,aAAa;AACxB,SAAO;;CAGT,UAAiB,QAA0B;AACzC,OAAK,MAAM,UAAU,OAAO;AAC5B,SAAO;;CAGT,cAAkC;AAChC,SAAO,KAAK,MAAM,aAAa;;CAGjC,WAAkB,MAAoB;AACpC,OAAK,MAAM,WAAW,KAAK;AAC3B,SAAO;;CAGT,KACE,UAAqC,EACnC,MAAM,WACP,EACK;AACN,MAAI,QAAQ,KACV,MAAK,MAAM,aAAa,oBAAoB,QAAQ,KAAK,aAAa,CAAC;AAGzE,OAAK,MAAM,IAAI,QAAQ,QAAQ"}
1
+ {"version":3,"file":"MXLExtendedSpan.js","names":[],"sources":["../../../src/managers/MXLTraceManager/MXLExtendedSpan.ts"],"sourcesContent":["import type {\n Attributes,\n AttributeValue,\n Exception,\n Link,\n Span,\n SpanContext,\n SpanStatus,\n TimeInput,\n} from '@opentelemetry/api';\nimport type { ExtendedSpan, ExtendedSpanFailedOptions } from '../../api-traces';\nimport { KEY_MXL_ERROR_CODE } from '../../constants';\n\n/**\n * MXLSpan for the most part simply delegates to the underlying Span it receives on initialization so\n * that it satisfies the Span interface. In addition, it gives us a spot where we can implement helpers that are part\n * of the MXLSpan interface.\n */\nexport class MXLExtendedSpan implements ExtendedSpan {\n private readonly _span: ExtendedSpan;\n\n public constructor(span: Span) {\n this._span = span as ExtendedSpan;\n }\n\n /**\n * Expose attributes by extending OpenTelemetry's ReadableSpan.\n */\n public get attributes(): Attributes {\n return this._span.attributes;\n }\n\n public addEvent(\n name: string,\n attributesOrStartTime?: Attributes | TimeInput,\n startTime?: TimeInput,\n ): this {\n this._span.addEvent(name, attributesOrStartTime, startTime);\n return this;\n }\n\n public addLink(link: Link): this {\n this._span.addLink(link);\n return this;\n }\n\n public addLinks(links: Link[]): this {\n this._span.addLinks(links);\n return this;\n }\n\n public end(endTime?: TimeInput): void {\n this._span.end(endTime);\n }\n\n public isRecording(): boolean {\n return this._span.isRecording();\n }\n\n public recordException(exception: Exception, time?: TimeInput): void {\n this._span.recordException(exception, time);\n }\n\n public setAttribute(key: string, value: AttributeValue): this {\n this._span.setAttribute(key, value);\n return this;\n }\n\n public setAttributes(attributes: Attributes): this {\n this._span.setAttributes(attributes);\n return this;\n }\n\n public removeAttribute(key: string): this {\n const { [key]: _, ...attributes } = this._span.attributes;\n // @ts-expect-error Read/write spans are allowed per the spec https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#additional-span-interfaces\n this._span.attributes = attributes;\n return this;\n }\n\n public setStatus(status: SpanStatus): this {\n this._span.setStatus(status);\n return this;\n }\n\n public spanContext(): SpanContext {\n return this._span.spanContext();\n }\n\n public updateName(name: string): this {\n this._span.updateName(name);\n return this;\n }\n\n public fail(\n options: ExtendedSpanFailedOptions = {\n code: 'failure',\n },\n ): void {\n if (options.code) {\n this._span.setAttribute(KEY_MXL_ERROR_CODE, options.code.toUpperCase());\n }\n\n this._span.end(options.endTime);\n }\n}\n"],"mappings":";;;;;;;AAkBA,IAAa,kBAAb,MAAqD;CACnD;CAEA,YAAmB,MAAY;AAC7B,OAAK,QAAQ;;;;;CAMf,IAAW,aAAyB;AAClC,SAAO,KAAK,MAAM;;CAGpB,SACE,MACA,uBACA,WACM;AACN,OAAK,MAAM,SAAS,MAAM,uBAAuB,UAAU;AAC3D,SAAO;;CAGT,QAAe,MAAkB;AAC/B,OAAK,MAAM,QAAQ,KAAK;AACxB,SAAO;;CAGT,SAAgB,OAAqB;AACnC,OAAK,MAAM,SAAS,MAAM;AAC1B,SAAO;;CAGT,IAAW,SAA2B;AACpC,OAAK,MAAM,IAAI,QAAQ;;CAGzB,cAA8B;AAC5B,SAAO,KAAK,MAAM,aAAa;;CAGjC,gBAAuB,WAAsB,MAAwB;AACnE,OAAK,MAAM,gBAAgB,WAAW,KAAK;;CAG7C,aAAoB,KAAa,OAA6B;AAC5D,OAAK,MAAM,aAAa,KAAK,MAAM;AACnC,SAAO;;CAGT,cAAqB,YAA8B;AACjD,OAAK,MAAM,cAAc,WAAW;AACpC,SAAO;;CAGT,gBAAuB,KAAmB;EACxC,MAAM,GAAG,MAAM,GAAG,GAAG,eAAe,KAAK,MAAM;AAE/C,OAAK,MAAM,aAAa;AACxB,SAAO;;CAGT,UAAiB,QAA0B;AACzC,OAAK,MAAM,UAAU,OAAO;AAC5B,SAAO;;CAGT,cAAkC;AAChC,SAAO,KAAK,MAAM,aAAa;;CAGjC,WAAkB,MAAoB;AACpC,OAAK,MAAM,WAAW,KAAK;AAC3B,SAAO;;CAGT,KACE,UAAqC,EACnC,MAAM,WACP,EACK;AACN,MAAI,QAAQ,KACV,MAAK,MAAM,aAAa,oBAAoB,QAAQ,KAAK,aAAa,CAAC;AAGzE,OAAK,MAAM,IAAI,QAAQ,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"MXLTraceManager.cjs","names":["trace","KEY_MXL_TYPE","context","MXLExtendedSpan"],"sources":["../../../src/managers/MXLTraceManager/MXLTraceManager.ts"],"sourcesContent":["import type { Context, Tracer } from '@opentelemetry/api';\nimport { context, trace } from '@opentelemetry/api';\nimport type {\n ExtendedSpan,\n ExtendedSpanOptions,\n TraceManager,\n TraceManagerArgs,\n} from '../../api-traces/index.ts';\nimport { KEY_MXL_TYPE, MXL_TYPES } from '../../constants/index.ts';\nimport { MXLExtendedSpan } from './MXLExtendedSpan.ts';\n\nexport class MXLTraceManager implements TraceManager {\n private readonly _tracer: Tracer;\n\n public constructor({\n tracerProvider: globalTraceProviderOverride,\n }: TraceManagerArgs = {}) {\n const tracerProvider = globalTraceProviderOverride ?? trace;\n\n this._tracer = tracerProvider.getTracer('mxl-web-sdk-traces');\n }\n\n public startSpan(\n name: string,\n options: ExtendedSpanOptions = {},\n ctx?: Context,\n ): ExtendedSpan {\n options.attributes = options.attributes ? options.attributes : {};\n options.attributes[KEY_MXL_TYPE] = MXL_TYPES.Perf;\n\n const activeContext = options.parentSpan\n ? trace.setSpan(context.active(), options.parentSpan)\n : ctx;\n\n return new MXLExtendedSpan(\n this._tracer.startSpan(name, options, activeContext),\n );\n }\n\n public setSpan: TraceManager['setSpan'] = trace.setSpan;\n\n public getSpan(context: Context): ExtendedSpan | undefined {\n const span = trace.getSpan(context);\n\n if (span) {\n return new MXLExtendedSpan(span);\n }\n\n return undefined;\n }\n}\n"],"mappings":";;;;;;AAWA,IAAa,kBAAb,MAAqD;CACnD;CAEA,YAAmB,EACjB,gBAAgB,gCACI,EAAE,EAAE;EACxB,MAAM,iBAAiB,+BAA+BA,mBAAAA;AAEtD,OAAK,UAAU,eAAe,UAAU,qBAAqB;;CAG/D,UACE,MACA,UAA+B,EAAE,EACjC,KACc;AACd,UAAQ,aAAa,QAAQ,aAAa,QAAQ,aAAa,EAAE;AACjE,UAAQ,WAAWC,6BAAAA,gBAAAA;EAEnB,MAAM,gBAAgB,QAAQ,aAC1BD,mBAAAA,MAAM,QAAQE,mBAAAA,QAAQ,QAAQ,EAAE,QAAQ,WAAW,GACnD;AAEJ,SAAO,IAAIC,iDAAAA,gBACT,KAAK,QAAQ,UAAU,MAAM,SAAS,cAAc,CACrD;;CAGH,UAA0CH,mBAAAA,MAAM;CAEhD,QAAe,SAA4C;EACzD,MAAM,OAAOA,mBAAAA,MAAM,QAAQ,QAAQ;AAEnC,MAAI,KACF,QAAO,IAAIG,iDAAAA,gBAAgB,KAAK"}
1
+ {"version":3,"file":"MXLTraceManager.cjs","names":["trace","KEY_MXL_TYPE","context","MXLExtendedSpan"],"sources":["../../../src/managers/MXLTraceManager/MXLTraceManager.ts"],"sourcesContent":["import type { Context, Tracer } from '@opentelemetry/api';\nimport { context, trace } from '@opentelemetry/api';\nimport type {\n ExtendedSpan,\n ExtendedSpanOptions,\n TraceManager,\n TraceManagerArgs,\n} from '../../api-traces';\nimport { KEY_MXL_TYPE, MXL_TYPES } from '../../constants';\nimport { MXLExtendedSpan } from './MXLExtendedSpan';\n\nexport class MXLTraceManager implements TraceManager {\n private readonly _tracer: Tracer;\n\n public constructor({\n tracerProvider: globalTraceProviderOverride,\n }: TraceManagerArgs = {}) {\n const tracerProvider = globalTraceProviderOverride ?? trace;\n\n this._tracer = tracerProvider.getTracer('mxl-web-sdk-traces');\n }\n\n public startSpan(\n name: string,\n options: ExtendedSpanOptions = {},\n ctx?: Context,\n ): ExtendedSpan {\n options.attributes = options.attributes ? options.attributes : {};\n options.attributes[KEY_MXL_TYPE] = MXL_TYPES.Perf;\n\n const activeContext = options.parentSpan\n ? trace.setSpan(context.active(), options.parentSpan)\n : ctx;\n\n return new MXLExtendedSpan(\n this._tracer.startSpan(name, options, activeContext),\n );\n }\n\n public setSpan: TraceManager['setSpan'] = trace.setSpan;\n\n public getSpan(context: Context): ExtendedSpan | undefined {\n const span = trace.getSpan(context);\n\n if (span) {\n return new MXLExtendedSpan(span);\n }\n\n return undefined;\n }\n}\n"],"mappings":";;;;;;AAWA,IAAa,kBAAb,MAAqD;CACnD;CAEA,YAAmB,EACjB,gBAAgB,gCACI,EAAE,EAAE;EACxB,MAAM,iBAAiB,+BAA+BA,mBAAAA;AAEtD,OAAK,UAAU,eAAe,UAAU,qBAAqB;;CAG/D,UACE,MACA,UAA+B,EAAE,EACjC,KACc;AACd,UAAQ,aAAa,QAAQ,aAAa,QAAQ,aAAa,EAAE;AACjE,UAAQ,WAAWC,6BAAAA,gBAAAA;EAEnB,MAAM,gBAAgB,QAAQ,aAC1BD,mBAAAA,MAAM,QAAQE,mBAAAA,QAAQ,QAAQ,EAAE,QAAQ,WAAW,GACnD;AAEJ,SAAO,IAAIC,iDAAAA,gBACT,KAAK,QAAQ,UAAU,MAAM,SAAS,cAAc,CACrD;;CAGH,UAA0CH,mBAAAA,MAAM;CAEhD,QAAe,SAA4C;EACzD,MAAM,OAAOA,mBAAAA,MAAM,QAAQ,QAAQ;AAEnC,MAAI,KACF,QAAO,IAAIG,iDAAAA,gBAAgB,KAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"MXLTraceManager.js","names":[],"sources":["../../../src/managers/MXLTraceManager/MXLTraceManager.ts"],"sourcesContent":["import type { Context, Tracer } from '@opentelemetry/api';\nimport { context, trace } from '@opentelemetry/api';\nimport type {\n ExtendedSpan,\n ExtendedSpanOptions,\n TraceManager,\n TraceManagerArgs,\n} from '../../api-traces/index.ts';\nimport { KEY_MXL_TYPE, MXL_TYPES } from '../../constants/index.ts';\nimport { MXLExtendedSpan } from './MXLExtendedSpan.ts';\n\nexport class MXLTraceManager implements TraceManager {\n private readonly _tracer: Tracer;\n\n public constructor({\n tracerProvider: globalTraceProviderOverride,\n }: TraceManagerArgs = {}) {\n const tracerProvider = globalTraceProviderOverride ?? trace;\n\n this._tracer = tracerProvider.getTracer('mxl-web-sdk-traces');\n }\n\n public startSpan(\n name: string,\n options: ExtendedSpanOptions = {},\n ctx?: Context,\n ): ExtendedSpan {\n options.attributes = options.attributes ? options.attributes : {};\n options.attributes[KEY_MXL_TYPE] = MXL_TYPES.Perf;\n\n const activeContext = options.parentSpan\n ? trace.setSpan(context.active(), options.parentSpan)\n : ctx;\n\n return new MXLExtendedSpan(\n this._tracer.startSpan(name, options, activeContext),\n );\n }\n\n public setSpan: TraceManager['setSpan'] = trace.setSpan;\n\n public getSpan(context: Context): ExtendedSpan | undefined {\n const span = trace.getSpan(context);\n\n if (span) {\n return new MXLExtendedSpan(span);\n }\n\n return undefined;\n }\n}\n"],"mappings":";;;;AAWA,IAAa,kBAAb,MAAqD;CACnD;CAEA,YAAmB,EACjB,gBAAgB,gCACI,EAAE,EAAE;EACxB,MAAM,iBAAiB,+BAA+B;AAEtD,OAAK,UAAU,eAAe,UAAU,qBAAqB;;CAG/D,UACE,MACA,UAA+B,EAAE,EACjC,KACc;AACd,UAAQ,aAAa,QAAQ,aAAa,QAAQ,aAAa,EAAE;AACjE,UAAQ,WAAW,gBAAA;EAEnB,MAAM,gBAAgB,QAAQ,aAC1B,MAAM,QAAQ,QAAQ,QAAQ,EAAE,QAAQ,WAAW,GACnD;AAEJ,SAAO,IAAI,gBACT,KAAK,QAAQ,UAAU,MAAM,SAAS,cAAc,CACrD;;CAGH,UAA0C,MAAM;CAEhD,QAAe,SAA4C;EACzD,MAAM,OAAO,MAAM,QAAQ,QAAQ;AAEnC,MAAI,KACF,QAAO,IAAI,gBAAgB,KAAK"}
1
+ {"version":3,"file":"MXLTraceManager.js","names":[],"sources":["../../../src/managers/MXLTraceManager/MXLTraceManager.ts"],"sourcesContent":["import type { Context, Tracer } from '@opentelemetry/api';\nimport { context, trace } from '@opentelemetry/api';\nimport type {\n ExtendedSpan,\n ExtendedSpanOptions,\n TraceManager,\n TraceManagerArgs,\n} from '../../api-traces';\nimport { KEY_MXL_TYPE, MXL_TYPES } from '../../constants';\nimport { MXLExtendedSpan } from './MXLExtendedSpan';\n\nexport class MXLTraceManager implements TraceManager {\n private readonly _tracer: Tracer;\n\n public constructor({\n tracerProvider: globalTraceProviderOverride,\n }: TraceManagerArgs = {}) {\n const tracerProvider = globalTraceProviderOverride ?? trace;\n\n this._tracer = tracerProvider.getTracer('mxl-web-sdk-traces');\n }\n\n public startSpan(\n name: string,\n options: ExtendedSpanOptions = {},\n ctx?: Context,\n ): ExtendedSpan {\n options.attributes = options.attributes ? options.attributes : {};\n options.attributes[KEY_MXL_TYPE] = MXL_TYPES.Perf;\n\n const activeContext = options.parentSpan\n ? trace.setSpan(context.active(), options.parentSpan)\n : ctx;\n\n return new MXLExtendedSpan(\n this._tracer.startSpan(name, options, activeContext),\n );\n }\n\n public setSpan: TraceManager['setSpan'] = trace.setSpan;\n\n public getSpan(context: Context): ExtendedSpan | undefined {\n const span = trace.getSpan(context);\n\n if (span) {\n return new MXLExtendedSpan(span);\n }\n\n return undefined;\n }\n}\n"],"mappings":";;;;AAWA,IAAa,kBAAb,MAAqD;CACnD;CAEA,YAAmB,EACjB,gBAAgB,gCACI,EAAE,EAAE;EACxB,MAAM,iBAAiB,+BAA+B;AAEtD,OAAK,UAAU,eAAe,UAAU,qBAAqB;;CAG/D,UACE,MACA,UAA+B,EAAE,EACjC,KACc;AACd,UAAQ,aAAa,QAAQ,aAAa,QAAQ,aAAa,EAAE;AACjE,UAAQ,WAAW,gBAAA;EAEnB,MAAM,gBAAgB,QAAQ,aAC1B,MAAM,QAAQ,QAAQ,QAAQ,EAAE,QAAQ,WAAW,GACnD;AAEJ,SAAO,IAAI,gBACT,KAAK,QAAQ,UAAU,MAAM,SAAS,cAAc,CACrD;;CAGH,UAA0C,MAAM;CAEhD,QAAe,SAA4C;EACzD,MAAM,OAAO,MAAM,QAAQ,QAAQ;AAEnC,MAAI,KACF,QAAO,IAAI,gBAAgB,KAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"MXLUserManager.cjs","names":["diag","MXL_USER_ID_STORAGE_KEY","MXL_USER_STORAGE_KEY_DEPRECATED","isUser","KEY_ENDUSER_PSEUDO_ID","isUserId","generateUUID","MXL_EXTERNAL_USER_ID_KEY"],"sources":["../../../src/managers/MXLUserManager/MXLUserManager.ts"],"sourcesContent":["import type { DiagLogger } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport type { UserManagerInternal } from '../../api-users/index.ts';\nimport { KEY_ENDUSER_PSEUDO_ID } from '../../api-users/index.ts';\nimport { generateUUID } from '../../utils/index.ts';\nimport {\n MXL_EXTERNAL_USER_ID_KEY,\n MXL_USER_ID_STORAGE_KEY,\n MXL_USER_STORAGE_KEY_DEPRECATED,\n} from './constants.ts';\nimport type { MXLUserManagerArgs } from './types.ts';\nimport { isUser, isUserId } from './types.ts';\n\nexport class MXLUserManager implements UserManagerInternal {\n private readonly _diag: DiagLogger;\n private readonly _storage: Storage;\n private _mxlUserId: string | null = null;\n\n public constructor({\n diag: diagParam,\n storage = window.localStorage,\n }: MXLUserManagerArgs = {}) {\n this._diag =\n diagParam ??\n diag.createComponentLogger({\n namespace: 'MXLUserManager',\n });\n this._storage = storage;\n this._migrateOldLocalStorageKey();\n this._initialSetup();\n }\n\n // No need to make this API more complicated by returning string | null\n // mxlUserId should never be null at this point, but just in case defaulting to a new one if is not present\n public getMXLUserId(): string {\n return this._mxlUserId || this._generateNewMXLUserId();\n }\n\n public setMXLUserId(userId: string) {\n this._mxlUserId = userId;\n\n try {\n this._storage.setItem(MXL_USER_ID_STORAGE_KEY, userId);\n } catch (e) {\n this._diag.warn(\n 'Failed to persist user object for storage, keeping it in-memory only',\n e,\n );\n }\n }\n\n public clearMXLUserId() {\n this._mxlUserId = null;\n\n try {\n this._storage.removeItem(MXL_USER_ID_STORAGE_KEY);\n } catch (e) {\n this._diag.warn('Failed to remove mxl user in storage', e);\n }\n }\n\n // TODO: remove this by 01/08/2025. Two months should be enough time for users to migrate to the new storage key.\n private _migrateOldLocalStorageKey() {\n // Since we migrated from storing a User in localStorage to just the user id,\n // we need to check if the old storage key exists and migrate it.\n try {\n const oldUserStorage = this._storage.getItem(\n MXL_USER_STORAGE_KEY_DEPRECATED,\n );\n\n if (oldUserStorage) {\n const user: unknown = JSON.parse(oldUserStorage);\n if (isUser(user)) {\n this._diag.debug('Migrating old user data from storage');\n this._storage.setItem(\n MXL_USER_ID_STORAGE_KEY,\n user[KEY_ENDUSER_PSEUDO_ID],\n );\n this._storage.removeItem(MXL_USER_STORAGE_KEY_DEPRECATED);\n } else {\n this._diag.warn(\n 'Invalid user data found in storage, clearing old user data',\n );\n this._storage.removeItem(MXL_USER_STORAGE_KEY_DEPRECATED);\n }\n }\n } catch (e) {\n this._diag.warn('Failed to get old user data from storage', e);\n }\n }\n\n private _initialSetup() {\n try {\n const mxlUserId = this._storage.getItem(MXL_USER_ID_STORAGE_KEY);\n if (!mxlUserId) {\n this._diag.debug(\n 'No existing user found in storage, creating a new one',\n );\n } else if (isUserId(mxlUserId)) {\n this._mxlUserId = mxlUserId;\n } else {\n this._diag.warn('Invalid mxl user id, generating a new one');\n this.clearMXLUserId();\n }\n } catch (e) {\n this._diag.warn(\n 'Failed to get mxl user id from storage, defaulting to a new one',\n e,\n );\n }\n\n if (!this._mxlUserId) {\n this._mxlUserId = this._generateNewMXLUserId();\n }\n }\n\n private _generateNewMXLUserId() {\n const newUserId = generateUUID();\n this.setMXLUserId(newUserId);\n\n return newUserId;\n }\n\n // This is the external user id that can be set by the user\n public getUserId(): string | null {\n try {\n return this._storage.getItem(MXL_EXTERNAL_USER_ID_KEY);\n } catch (e) {\n this._diag.warn('Failed to retrieve user id from storage', e);\n return null;\n }\n }\n\n // Use storage as source of truth so multiple tabs can share the same user id\n public setUserId(userId: string): void {\n try {\n this._storage.setItem(MXL_EXTERNAL_USER_ID_KEY, userId);\n } catch (e) {\n this._diag.warn('Failed to store user id', e);\n }\n }\n\n public clearUserId(): void {\n try {\n this._storage.removeItem(MXL_EXTERNAL_USER_ID_KEY);\n } catch (e) {\n this._diag.warn('Failed to clear user id', e);\n }\n }\n}\n"],"mappings":";;;;;;;;AAaA,IAAa,iBAAb,MAA2D;CACzD;CACA;CACA,aAAoC;CAEpC,YAAmB,EACjB,MAAM,WACN,UAAU,OAAO,iBACK,EAAE,EAAE;AAC1B,OAAK,QACH,aACAA,mBAAAA,KAAK,sBAAsB,EACzB,WAAW,kBACZ,CAAC;AACJ,OAAK,WAAW;AAChB,OAAK,4BAA4B;AACjC,OAAK,eAAe;;CAKtB,eAA8B;AAC5B,SAAO,KAAK,cAAc,KAAK,uBAAuB;;CAGxD,aAAoB,QAAgB;AAClC,OAAK,aAAa;AAElB,MAAI;AACF,QAAK,SAAS,QAAQC,0CAAAA,yBAAyB,OAAO;WAC/C,GAAG;AACV,QAAK,MAAM,KACT,wEACA,EACD;;;CAIL,iBAAwB;AACtB,OAAK,aAAa;AAElB,MAAI;AACF,QAAK,SAAS,WAAWA,0CAAAA,wBAAwB;WAC1C,GAAG;AACV,QAAK,MAAM,KAAK,wCAAwC,EAAE;;;CAK9D,6BAAqC;AAGnC,MAAI;GACF,MAAM,iBAAiB,KAAK,SAAS,QACnCC,0CAAAA,gCACD;AAED,OAAI,gBAAgB;IAClB,MAAM,OAAgB,KAAK,MAAM,eAAe;AAChD,QAAIC,sCAAAA,OAAO,KAAK,EAAE;AAChB,UAAK,MAAM,MAAM,uCAAuC;AACxD,UAAK,SAAS,QACZF,0CAAAA,yBACA,KAAKG,0CAAAA,uBACN;AACD,UAAK,SAAS,WAAWF,0CAAAA,gCAAgC;WACpD;AACL,UAAK,MAAM,KACT,6DACD;AACD,UAAK,SAAS,WAAWA,0CAAAA,gCAAgC;;;WAGtD,GAAG;AACV,QAAK,MAAM,KAAK,4CAA4C,EAAE;;;CAIlE,gBAAwB;AACtB,MAAI;GACF,MAAM,YAAY,KAAK,SAAS,QAAQD,0CAAAA,wBAAwB;AAChE,OAAI,CAAC,UACH,MAAK,MAAM,MACT,wDACD;YACQI,sCAAAA,SAAS,UAAU,CAC5B,MAAK,aAAa;QACb;AACL,SAAK,MAAM,KAAK,4CAA4C;AAC5D,SAAK,gBAAgB;;WAEhB,GAAG;AACV,QAAK,MAAM,KACT,mEACA,EACD;;AAGH,MAAI,CAAC,KAAK,WACR,MAAK,aAAa,KAAK,uBAAuB;;CAIlD,wBAAgC;EAC9B,MAAM,YAAYC,2BAAAA,cAAc;AAChC,OAAK,aAAa,UAAU;AAE5B,SAAO;;CAIT,YAAkC;AAChC,MAAI;AACF,UAAO,KAAK,SAAS,QAAQC,0CAAAA,yBAAyB;WAC/C,GAAG;AACV,QAAK,MAAM,KAAK,2CAA2C,EAAE;AAC7D,UAAO;;;CAKX,UAAiB,QAAsB;AACrC,MAAI;AACF,QAAK,SAAS,QAAQA,0CAAAA,0BAA0B,OAAO;WAChD,GAAG;AACV,QAAK,MAAM,KAAK,2BAA2B,EAAE;;;CAIjD,cAA2B;AACzB,MAAI;AACF,QAAK,SAAS,WAAWA,0CAAAA,yBAAyB;WAC3C,GAAG;AACV,QAAK,MAAM,KAAK,2BAA2B,EAAE"}
1
+ {"version":3,"file":"MXLUserManager.cjs","names":["diag","MXL_USER_ID_STORAGE_KEY","MXL_USER_STORAGE_KEY_DEPRECATED","isUser","KEY_ENDUSER_PSEUDO_ID","isUserId","generateUUID","MXL_EXTERNAL_USER_ID_KEY"],"sources":["../../../src/managers/MXLUserManager/MXLUserManager.ts"],"sourcesContent":["import type { DiagLogger } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport type { UserManagerInternal } from '../../api-users';\nimport { KEY_ENDUSER_PSEUDO_ID } from '../../api-users';\nimport { generateUUID } from '../../utils';\nimport {\n MXL_EXTERNAL_USER_ID_KEY,\n MXL_USER_ID_STORAGE_KEY,\n MXL_USER_STORAGE_KEY_DEPRECATED,\n} from './constants';\nimport type { MXLUserManagerArgs } from './types';\nimport { isUser, isUserId } from './types';\n\nexport class MXLUserManager implements UserManagerInternal {\n private readonly _diag: DiagLogger;\n private readonly _storage: Storage;\n private _mxlUserId: string | null = null;\n\n public constructor({\n diag: diagParam,\n storage = window.localStorage,\n }: MXLUserManagerArgs = {}) {\n this._diag =\n diagParam ??\n diag.createComponentLogger({\n namespace: 'MXLUserManager',\n });\n this._storage = storage;\n this._migrateOldLocalStorageKey();\n this._initialSetup();\n }\n\n // No need to make this API more complicated by returning string | null\n // mxlUserId should never be null at this point, but just in case defaulting to a new one if is not present\n public getMXLUserId(): string {\n return this._mxlUserId || this._generateNewMXLUserId();\n }\n\n public setMXLUserId(userId: string) {\n this._mxlUserId = userId;\n\n try {\n this._storage.setItem(MXL_USER_ID_STORAGE_KEY, userId);\n } catch (e) {\n this._diag.warn(\n 'Failed to persist user object for storage, keeping it in-memory only',\n e,\n );\n }\n }\n\n public clearMXLUserId() {\n this._mxlUserId = null;\n\n try {\n this._storage.removeItem(MXL_USER_ID_STORAGE_KEY);\n } catch (e) {\n this._diag.warn('Failed to remove mxl user in storage', e);\n }\n }\n\n // TODO: remove this by 01/08/2025. Two months should be enough time for users to migrate to the new storage key.\n private _migrateOldLocalStorageKey() {\n // Since we migrated from storing a User in localStorage to just the user id,\n // we need to check if the old storage key exists and migrate it.\n try {\n const oldUserStorage = this._storage.getItem(\n MXL_USER_STORAGE_KEY_DEPRECATED,\n );\n\n if (oldUserStorage) {\n const user: unknown = JSON.parse(oldUserStorage);\n if (isUser(user)) {\n this._diag.debug('Migrating old user data from storage');\n this._storage.setItem(\n MXL_USER_ID_STORAGE_KEY,\n user[KEY_ENDUSER_PSEUDO_ID],\n );\n this._storage.removeItem(MXL_USER_STORAGE_KEY_DEPRECATED);\n } else {\n this._diag.warn(\n 'Invalid user data found in storage, clearing old user data',\n );\n this._storage.removeItem(MXL_USER_STORAGE_KEY_DEPRECATED);\n }\n }\n } catch (e) {\n this._diag.warn('Failed to get old user data from storage', e);\n }\n }\n\n private _initialSetup() {\n try {\n const mxlUserId = this._storage.getItem(MXL_USER_ID_STORAGE_KEY);\n if (!mxlUserId) {\n this._diag.debug(\n 'No existing user found in storage, creating a new one',\n );\n } else if (isUserId(mxlUserId)) {\n this._mxlUserId = mxlUserId;\n } else {\n this._diag.warn('Invalid mxl user id, generating a new one');\n this.clearMXLUserId();\n }\n } catch (e) {\n this._diag.warn(\n 'Failed to get mxl user id from storage, defaulting to a new one',\n e,\n );\n }\n\n if (!this._mxlUserId) {\n this._mxlUserId = this._generateNewMXLUserId();\n }\n }\n\n private _generateNewMXLUserId() {\n const newUserId = generateUUID();\n this.setMXLUserId(newUserId);\n\n return newUserId;\n }\n\n // This is the external user id that can be set by the user\n public getUserId(): string | null {\n try {\n return this._storage.getItem(MXL_EXTERNAL_USER_ID_KEY);\n } catch (e) {\n this._diag.warn('Failed to retrieve user id from storage', e);\n return null;\n }\n }\n\n // Use storage as source of truth so multiple tabs can share the same user id\n public setUserId(userId: string): void {\n try {\n this._storage.setItem(MXL_EXTERNAL_USER_ID_KEY, userId);\n } catch (e) {\n this._diag.warn('Failed to store user id', e);\n }\n }\n\n public clearUserId(): void {\n try {\n this._storage.removeItem(MXL_EXTERNAL_USER_ID_KEY);\n } catch (e) {\n this._diag.warn('Failed to clear user id', e);\n }\n }\n}\n"],"mappings":";;;;;;;;AAaA,IAAa,iBAAb,MAA2D;CACzD;CACA;CACA,aAAoC;CAEpC,YAAmB,EACjB,MAAM,WACN,UAAU,OAAO,iBACK,EAAE,EAAE;AAC1B,OAAK,QACH,aACAA,mBAAAA,KAAK,sBAAsB,EACzB,WAAW,kBACZ,CAAC;AACJ,OAAK,WAAW;AAChB,OAAK,4BAA4B;AACjC,OAAK,eAAe;;CAKtB,eAA8B;AAC5B,SAAO,KAAK,cAAc,KAAK,uBAAuB;;CAGxD,aAAoB,QAAgB;AAClC,OAAK,aAAa;AAElB,MAAI;AACF,QAAK,SAAS,QAAQC,0CAAAA,yBAAyB,OAAO;WAC/C,GAAG;AACV,QAAK,MAAM,KACT,wEACA,EACD;;;CAIL,iBAAwB;AACtB,OAAK,aAAa;AAElB,MAAI;AACF,QAAK,SAAS,WAAWA,0CAAAA,wBAAwB;WAC1C,GAAG;AACV,QAAK,MAAM,KAAK,wCAAwC,EAAE;;;CAK9D,6BAAqC;AAGnC,MAAI;GACF,MAAM,iBAAiB,KAAK,SAAS,QACnCC,0CAAAA,gCACD;AAED,OAAI,gBAAgB;IAClB,MAAM,OAAgB,KAAK,MAAM,eAAe;AAChD,QAAIC,sCAAAA,OAAO,KAAK,EAAE;AAChB,UAAK,MAAM,MAAM,uCAAuC;AACxD,UAAK,SAAS,QACZF,0CAAAA,yBACA,KAAKG,0CAAAA,uBACN;AACD,UAAK,SAAS,WAAWF,0CAAAA,gCAAgC;WACpD;AACL,UAAK,MAAM,KACT,6DACD;AACD,UAAK,SAAS,WAAWA,0CAAAA,gCAAgC;;;WAGtD,GAAG;AACV,QAAK,MAAM,KAAK,4CAA4C,EAAE;;;CAIlE,gBAAwB;AACtB,MAAI;GACF,MAAM,YAAY,KAAK,SAAS,QAAQD,0CAAAA,wBAAwB;AAChE,OAAI,CAAC,UACH,MAAK,MAAM,MACT,wDACD;YACQI,sCAAAA,SAAS,UAAU,CAC5B,MAAK,aAAa;QACb;AACL,SAAK,MAAM,KAAK,4CAA4C;AAC5D,SAAK,gBAAgB;;WAEhB,GAAG;AACV,QAAK,MAAM,KACT,mEACA,EACD;;AAGH,MAAI,CAAC,KAAK,WACR,MAAK,aAAa,KAAK,uBAAuB;;CAIlD,wBAAgC;EAC9B,MAAM,YAAYC,2BAAAA,cAAc;AAChC,OAAK,aAAa,UAAU;AAE5B,SAAO;;CAIT,YAAkC;AAChC,MAAI;AACF,UAAO,KAAK,SAAS,QAAQC,0CAAAA,yBAAyB;WAC/C,GAAG;AACV,QAAK,MAAM,KAAK,2CAA2C,EAAE;AAC7D,UAAO;;;CAKX,UAAiB,QAAsB;AACrC,MAAI;AACF,QAAK,SAAS,QAAQA,0CAAAA,0BAA0B,OAAO;WAChD,GAAG;AACV,QAAK,MAAM,KAAK,2BAA2B,EAAE;;;CAIjD,cAA2B;AACzB,MAAI;AACF,QAAK,SAAS,WAAWA,0CAAAA,yBAAyB;WAC3C,GAAG;AACV,QAAK,MAAM,KAAK,2BAA2B,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"MXLUserManager.js","names":[],"sources":["../../../src/managers/MXLUserManager/MXLUserManager.ts"],"sourcesContent":["import type { DiagLogger } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport type { UserManagerInternal } from '../../api-users/index.ts';\nimport { KEY_ENDUSER_PSEUDO_ID } from '../../api-users/index.ts';\nimport { generateUUID } from '../../utils/index.ts';\nimport {\n MXL_EXTERNAL_USER_ID_KEY,\n MXL_USER_ID_STORAGE_KEY,\n MXL_USER_STORAGE_KEY_DEPRECATED,\n} from './constants.ts';\nimport type { MXLUserManagerArgs } from './types.ts';\nimport { isUser, isUserId } from './types.ts';\n\nexport class MXLUserManager implements UserManagerInternal {\n private readonly _diag: DiagLogger;\n private readonly _storage: Storage;\n private _mxlUserId: string | null = null;\n\n public constructor({\n diag: diagParam,\n storage = window.localStorage,\n }: MXLUserManagerArgs = {}) {\n this._diag =\n diagParam ??\n diag.createComponentLogger({\n namespace: 'MXLUserManager',\n });\n this._storage = storage;\n this._migrateOldLocalStorageKey();\n this._initialSetup();\n }\n\n // No need to make this API more complicated by returning string | null\n // mxlUserId should never be null at this point, but just in case defaulting to a new one if is not present\n public getMXLUserId(): string {\n return this._mxlUserId || this._generateNewMXLUserId();\n }\n\n public setMXLUserId(userId: string) {\n this._mxlUserId = userId;\n\n try {\n this._storage.setItem(MXL_USER_ID_STORAGE_KEY, userId);\n } catch (e) {\n this._diag.warn(\n 'Failed to persist user object for storage, keeping it in-memory only',\n e,\n );\n }\n }\n\n public clearMXLUserId() {\n this._mxlUserId = null;\n\n try {\n this._storage.removeItem(MXL_USER_ID_STORAGE_KEY);\n } catch (e) {\n this._diag.warn('Failed to remove mxl user in storage', e);\n }\n }\n\n // TODO: remove this by 01/08/2025. Two months should be enough time for users to migrate to the new storage key.\n private _migrateOldLocalStorageKey() {\n // Since we migrated from storing a User in localStorage to just the user id,\n // we need to check if the old storage key exists and migrate it.\n try {\n const oldUserStorage = this._storage.getItem(\n MXL_USER_STORAGE_KEY_DEPRECATED,\n );\n\n if (oldUserStorage) {\n const user: unknown = JSON.parse(oldUserStorage);\n if (isUser(user)) {\n this._diag.debug('Migrating old user data from storage');\n this._storage.setItem(\n MXL_USER_ID_STORAGE_KEY,\n user[KEY_ENDUSER_PSEUDO_ID],\n );\n this._storage.removeItem(MXL_USER_STORAGE_KEY_DEPRECATED);\n } else {\n this._diag.warn(\n 'Invalid user data found in storage, clearing old user data',\n );\n this._storage.removeItem(MXL_USER_STORAGE_KEY_DEPRECATED);\n }\n }\n } catch (e) {\n this._diag.warn('Failed to get old user data from storage', e);\n }\n }\n\n private _initialSetup() {\n try {\n const mxlUserId = this._storage.getItem(MXL_USER_ID_STORAGE_KEY);\n if (!mxlUserId) {\n this._diag.debug(\n 'No existing user found in storage, creating a new one',\n );\n } else if (isUserId(mxlUserId)) {\n this._mxlUserId = mxlUserId;\n } else {\n this._diag.warn('Invalid mxl user id, generating a new one');\n this.clearMXLUserId();\n }\n } catch (e) {\n this._diag.warn(\n 'Failed to get mxl user id from storage, defaulting to a new one',\n e,\n );\n }\n\n if (!this._mxlUserId) {\n this._mxlUserId = this._generateNewMXLUserId();\n }\n }\n\n private _generateNewMXLUserId() {\n const newUserId = generateUUID();\n this.setMXLUserId(newUserId);\n\n return newUserId;\n }\n\n // This is the external user id that can be set by the user\n public getUserId(): string | null {\n try {\n return this._storage.getItem(MXL_EXTERNAL_USER_ID_KEY);\n } catch (e) {\n this._diag.warn('Failed to retrieve user id from storage', e);\n return null;\n }\n }\n\n // Use storage as source of truth so multiple tabs can share the same user id\n public setUserId(userId: string): void {\n try {\n this._storage.setItem(MXL_EXTERNAL_USER_ID_KEY, userId);\n } catch (e) {\n this._diag.warn('Failed to store user id', e);\n }\n }\n\n public clearUserId(): void {\n try {\n this._storage.removeItem(MXL_EXTERNAL_USER_ID_KEY);\n } catch (e) {\n this._diag.warn('Failed to clear user id', e);\n }\n }\n}\n"],"mappings":";;;;;;AAaA,IAAa,iBAAb,MAA2D;CACzD;CACA;CACA,aAAoC;CAEpC,YAAmB,EACjB,MAAM,WACN,UAAU,OAAO,iBACK,EAAE,EAAE;AAC1B,OAAK,QACH,aACA,KAAK,sBAAsB,EACzB,WAAW,kBACZ,CAAC;AACJ,OAAK,WAAW;AAChB,OAAK,4BAA4B;AACjC,OAAK,eAAe;;CAKtB,eAA8B;AAC5B,SAAO,KAAK,cAAc,KAAK,uBAAuB;;CAGxD,aAAoB,QAAgB;AAClC,OAAK,aAAa;AAElB,MAAI;AACF,QAAK,SAAS,QAAQ,yBAAyB,OAAO;WAC/C,GAAG;AACV,QAAK,MAAM,KACT,wEACA,EACD;;;CAIL,iBAAwB;AACtB,OAAK,aAAa;AAElB,MAAI;AACF,QAAK,SAAS,WAAW,wBAAwB;WAC1C,GAAG;AACV,QAAK,MAAM,KAAK,wCAAwC,EAAE;;;CAK9D,6BAAqC;AAGnC,MAAI;GACF,MAAM,iBAAiB,KAAK,SAAS,QACnC,gCACD;AAED,OAAI,gBAAgB;IAClB,MAAM,OAAgB,KAAK,MAAM,eAAe;AAChD,QAAI,OAAO,KAAK,EAAE;AAChB,UAAK,MAAM,MAAM,uCAAuC;AACxD,UAAK,SAAS,QACZ,yBACA,KAAK,uBACN;AACD,UAAK,SAAS,WAAW,gCAAgC;WACpD;AACL,UAAK,MAAM,KACT,6DACD;AACD,UAAK,SAAS,WAAW,gCAAgC;;;WAGtD,GAAG;AACV,QAAK,MAAM,KAAK,4CAA4C,EAAE;;;CAIlE,gBAAwB;AACtB,MAAI;GACF,MAAM,YAAY,KAAK,SAAS,QAAQ,wBAAwB;AAChE,OAAI,CAAC,UACH,MAAK,MAAM,MACT,wDACD;YACQ,SAAS,UAAU,CAC5B,MAAK,aAAa;QACb;AACL,SAAK,MAAM,KAAK,4CAA4C;AAC5D,SAAK,gBAAgB;;WAEhB,GAAG;AACV,QAAK,MAAM,KACT,mEACA,EACD;;AAGH,MAAI,CAAC,KAAK,WACR,MAAK,aAAa,KAAK,uBAAuB;;CAIlD,wBAAgC;EAC9B,MAAM,YAAY,cAAc;AAChC,OAAK,aAAa,UAAU;AAE5B,SAAO;;CAIT,YAAkC;AAChC,MAAI;AACF,UAAO,KAAK,SAAS,QAAQ,yBAAyB;WAC/C,GAAG;AACV,QAAK,MAAM,KAAK,2CAA2C,EAAE;AAC7D,UAAO;;;CAKX,UAAiB,QAAsB;AACrC,MAAI;AACF,QAAK,SAAS,QAAQ,0BAA0B,OAAO;WAChD,GAAG;AACV,QAAK,MAAM,KAAK,2BAA2B,EAAE;;;CAIjD,cAA2B;AACzB,MAAI;AACF,QAAK,SAAS,WAAW,yBAAyB;WAC3C,GAAG;AACV,QAAK,MAAM,KAAK,2BAA2B,EAAE"}
1
+ {"version":3,"file":"MXLUserManager.js","names":[],"sources":["../../../src/managers/MXLUserManager/MXLUserManager.ts"],"sourcesContent":["import type { DiagLogger } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport type { UserManagerInternal } from '../../api-users';\nimport { KEY_ENDUSER_PSEUDO_ID } from '../../api-users';\nimport { generateUUID } from '../../utils';\nimport {\n MXL_EXTERNAL_USER_ID_KEY,\n MXL_USER_ID_STORAGE_KEY,\n MXL_USER_STORAGE_KEY_DEPRECATED,\n} from './constants';\nimport type { MXLUserManagerArgs } from './types';\nimport { isUser, isUserId } from './types';\n\nexport class MXLUserManager implements UserManagerInternal {\n private readonly _diag: DiagLogger;\n private readonly _storage: Storage;\n private _mxlUserId: string | null = null;\n\n public constructor({\n diag: diagParam,\n storage = window.localStorage,\n }: MXLUserManagerArgs = {}) {\n this._diag =\n diagParam ??\n diag.createComponentLogger({\n namespace: 'MXLUserManager',\n });\n this._storage = storage;\n this._migrateOldLocalStorageKey();\n this._initialSetup();\n }\n\n // No need to make this API more complicated by returning string | null\n // mxlUserId should never be null at this point, but just in case defaulting to a new one if is not present\n public getMXLUserId(): string {\n return this._mxlUserId || this._generateNewMXLUserId();\n }\n\n public setMXLUserId(userId: string) {\n this._mxlUserId = userId;\n\n try {\n this._storage.setItem(MXL_USER_ID_STORAGE_KEY, userId);\n } catch (e) {\n this._diag.warn(\n 'Failed to persist user object for storage, keeping it in-memory only',\n e,\n );\n }\n }\n\n public clearMXLUserId() {\n this._mxlUserId = null;\n\n try {\n this._storage.removeItem(MXL_USER_ID_STORAGE_KEY);\n } catch (e) {\n this._diag.warn('Failed to remove mxl user in storage', e);\n }\n }\n\n // TODO: remove this by 01/08/2025. Two months should be enough time for users to migrate to the new storage key.\n private _migrateOldLocalStorageKey() {\n // Since we migrated from storing a User in localStorage to just the user id,\n // we need to check if the old storage key exists and migrate it.\n try {\n const oldUserStorage = this._storage.getItem(\n MXL_USER_STORAGE_KEY_DEPRECATED,\n );\n\n if (oldUserStorage) {\n const user: unknown = JSON.parse(oldUserStorage);\n if (isUser(user)) {\n this._diag.debug('Migrating old user data from storage');\n this._storage.setItem(\n MXL_USER_ID_STORAGE_KEY,\n user[KEY_ENDUSER_PSEUDO_ID],\n );\n this._storage.removeItem(MXL_USER_STORAGE_KEY_DEPRECATED);\n } else {\n this._diag.warn(\n 'Invalid user data found in storage, clearing old user data',\n );\n this._storage.removeItem(MXL_USER_STORAGE_KEY_DEPRECATED);\n }\n }\n } catch (e) {\n this._diag.warn('Failed to get old user data from storage', e);\n }\n }\n\n private _initialSetup() {\n try {\n const mxlUserId = this._storage.getItem(MXL_USER_ID_STORAGE_KEY);\n if (!mxlUserId) {\n this._diag.debug(\n 'No existing user found in storage, creating a new one',\n );\n } else if (isUserId(mxlUserId)) {\n this._mxlUserId = mxlUserId;\n } else {\n this._diag.warn('Invalid mxl user id, generating a new one');\n this.clearMXLUserId();\n }\n } catch (e) {\n this._diag.warn(\n 'Failed to get mxl user id from storage, defaulting to a new one',\n e,\n );\n }\n\n if (!this._mxlUserId) {\n this._mxlUserId = this._generateNewMXLUserId();\n }\n }\n\n private _generateNewMXLUserId() {\n const newUserId = generateUUID();\n this.setMXLUserId(newUserId);\n\n return newUserId;\n }\n\n // This is the external user id that can be set by the user\n public getUserId(): string | null {\n try {\n return this._storage.getItem(MXL_EXTERNAL_USER_ID_KEY);\n } catch (e) {\n this._diag.warn('Failed to retrieve user id from storage', e);\n return null;\n }\n }\n\n // Use storage as source of truth so multiple tabs can share the same user id\n public setUserId(userId: string): void {\n try {\n this._storage.setItem(MXL_EXTERNAL_USER_ID_KEY, userId);\n } catch (e) {\n this._diag.warn('Failed to store user id', e);\n }\n }\n\n public clearUserId(): void {\n try {\n this._storage.removeItem(MXL_EXTERNAL_USER_ID_KEY);\n } catch (e) {\n this._diag.warn('Failed to clear user id', e);\n }\n }\n}\n"],"mappings":";;;;;;AAaA,IAAa,iBAAb,MAA2D;CACzD;CACA;CACA,aAAoC;CAEpC,YAAmB,EACjB,MAAM,WACN,UAAU,OAAO,iBACK,EAAE,EAAE;AAC1B,OAAK,QACH,aACA,KAAK,sBAAsB,EACzB,WAAW,kBACZ,CAAC;AACJ,OAAK,WAAW;AAChB,OAAK,4BAA4B;AACjC,OAAK,eAAe;;CAKtB,eAA8B;AAC5B,SAAO,KAAK,cAAc,KAAK,uBAAuB;;CAGxD,aAAoB,QAAgB;AAClC,OAAK,aAAa;AAElB,MAAI;AACF,QAAK,SAAS,QAAQ,yBAAyB,OAAO;WAC/C,GAAG;AACV,QAAK,MAAM,KACT,wEACA,EACD;;;CAIL,iBAAwB;AACtB,OAAK,aAAa;AAElB,MAAI;AACF,QAAK,SAAS,WAAW,wBAAwB;WAC1C,GAAG;AACV,QAAK,MAAM,KAAK,wCAAwC,EAAE;;;CAK9D,6BAAqC;AAGnC,MAAI;GACF,MAAM,iBAAiB,KAAK,SAAS,QACnC,gCACD;AAED,OAAI,gBAAgB;IAClB,MAAM,OAAgB,KAAK,MAAM,eAAe;AAChD,QAAI,OAAO,KAAK,EAAE;AAChB,UAAK,MAAM,MAAM,uCAAuC;AACxD,UAAK,SAAS,QACZ,yBACA,KAAK,uBACN;AACD,UAAK,SAAS,WAAW,gCAAgC;WACpD;AACL,UAAK,MAAM,KACT,6DACD;AACD,UAAK,SAAS,WAAW,gCAAgC;;;WAGtD,GAAG;AACV,QAAK,MAAM,KAAK,4CAA4C,EAAE;;;CAIlE,gBAAwB;AACtB,MAAI;GACF,MAAM,YAAY,KAAK,SAAS,QAAQ,wBAAwB;AAChE,OAAI,CAAC,UACH,MAAK,MAAM,MACT,wDACD;YACQ,SAAS,UAAU,CAC5B,MAAK,aAAa;QACb;AACL,SAAK,MAAM,KAAK,4CAA4C;AAC5D,SAAK,gBAAgB;;WAEhB,GAAG;AACV,QAAK,MAAM,KACT,mEACA,EACD;;AAGH,MAAI,CAAC,KAAK,WACR,MAAK,aAAa,KAAK,uBAAuB;;CAIlD,wBAAgC;EAC9B,MAAM,YAAY,cAAc;AAChC,OAAK,aAAa,UAAU;AAE5B,SAAO;;CAIT,YAAkC;AAChC,MAAI;AACF,UAAO,KAAK,SAAS,QAAQ,yBAAyB;WAC/C,GAAG;AACV,QAAK,MAAM,KAAK,2CAA2C,EAAE;AAC7D,UAAO;;;CAKX,UAAiB,QAAsB;AACrC,MAAI;AACF,QAAK,SAAS,QAAQ,0BAA0B,OAAO;WAChD,GAAG;AACV,QAAK,MAAM,KAAK,2BAA2B,EAAE;;;CAIjD,cAA2B;AACzB,MAAI;AACF,QAAK,SAAS,WAAW,yBAAyB;WAC3C,GAAG;AACV,QAAK,MAAM,KAAK,2BAA2B,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","names":[],"sources":["../../../src/managers/MXLUserManager/types.ts"],"sourcesContent":["import type { DiagLogger } from '@opentelemetry/api';\nimport type { User } from '../../api-users/index.ts';\nimport { KEY_ENDUSER_PSEUDO_ID } from '../../api-users/index.ts';\n\nexport interface MXLUserManagerArgs {\n diag?: DiagLogger;\n storage?: Storage;\n}\n\nexport const isUser = (user: unknown): user is User =>\n typeof (user as User)[KEY_ENDUSER_PSEUDO_ID] === 'string' &&\n (user as User)[KEY_ENDUSER_PSEUDO_ID].length === 32;\n\nexport const isUserId = (userId: unknown): userId is string =>\n typeof userId === 'string' && userId.length === 32;\n"],"mappings":";;;AASA,MAAa,UAAU,SACrB,OAAQ,KAAA,yBAAyC,YAChD,KAAA,qBAAqC,WAAW;AAEnD,MAAa,YAAY,WACvB,OAAO,WAAW,YAAY,OAAO,WAAW"}
1
+ {"version":3,"file":"types.cjs","names":[],"sources":["../../../src/managers/MXLUserManager/types.ts"],"sourcesContent":["import type { DiagLogger } from '@opentelemetry/api';\nimport type { User } from '../../api-users';\nimport { KEY_ENDUSER_PSEUDO_ID } from '../../api-users';\n\nexport interface MXLUserManagerArgs {\n diag?: DiagLogger;\n storage?: Storage;\n}\n\nexport const isUser = (user: unknown): user is User =>\n typeof (user as User)[KEY_ENDUSER_PSEUDO_ID] === 'string' &&\n (user as User)[KEY_ENDUSER_PSEUDO_ID].length === 32;\n\nexport const isUserId = (userId: unknown): userId is string =>\n typeof userId === 'string' && userId.length === 32;\n"],"mappings":";;;AASA,MAAa,UAAU,SACrB,OAAQ,KAAA,yBAAyC,YAChD,KAAA,qBAAqC,WAAW;AAEnD,MAAa,YAAY,WACvB,OAAO,WAAW,YAAY,OAAO,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/managers/MXLUserManager/types.ts"],"sourcesContent":["import type { DiagLogger } from '@opentelemetry/api';\nimport type { User } from '../../api-users/index.ts';\nimport { KEY_ENDUSER_PSEUDO_ID } from '../../api-users/index.ts';\n\nexport interface MXLUserManagerArgs {\n diag?: DiagLogger;\n storage?: Storage;\n}\n\nexport const isUser = (user: unknown): user is User =>\n typeof (user as User)[KEY_ENDUSER_PSEUDO_ID] === 'string' &&\n (user as User)[KEY_ENDUSER_PSEUDO_ID].length === 32;\n\nexport const isUserId = (userId: unknown): userId is string =>\n typeof userId === 'string' && userId.length === 32;\n"],"mappings":";;AASA,MAAa,UAAU,SACrB,OAAQ,KAAA,yBAAyC,YAChD,KAAA,qBAAqC,WAAW;AAEnD,MAAa,YAAY,WACvB,OAAO,WAAW,YAAY,OAAO,WAAW"}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/managers/MXLUserManager/types.ts"],"sourcesContent":["import type { DiagLogger } from '@opentelemetry/api';\nimport type { User } from '../../api-users';\nimport { KEY_ENDUSER_PSEUDO_ID } from '../../api-users';\n\nexport interface MXLUserManagerArgs {\n diag?: DiagLogger;\n storage?: Storage;\n}\n\nexport const isUser = (user: unknown): user is User =>\n typeof (user as User)[KEY_ENDUSER_PSEUDO_ID] === 'string' &&\n (user as User)[KEY_ENDUSER_PSEUDO_ID].length === 32;\n\nexport const isUserId = (userId: unknown): userId is string =>\n typeof userId === 'string' && userId.length === 32;\n"],"mappings":";;AASA,MAAa,UAAU,SACrB,OAAQ,KAAA,yBAAyC,YAChD,KAAA,qBAAqC,WAAW;AAEnD,MAAa,YAAY,WACvB,OAAO,WAAW,YAAY,OAAO,WAAW"}