@safaricom-mxl/web-sdk 0.0.19 → 0.0.20

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 (156) hide show
  1. package/DATA_EXPORT.md +9 -7
  2. package/dist/exporters/MXLLogExporter/MXLLogExporter.cjs +2 -2
  3. package/dist/exporters/MXLLogExporter/MXLLogExporter.cjs.map +1 -1
  4. package/dist/exporters/MXLLogExporter/MXLLogExporter.d.cts +1 -1
  5. package/dist/exporters/MXLLogExporter/MXLLogExporter.d.cts.map +1 -1
  6. package/dist/exporters/MXLLogExporter/MXLLogExporter.d.ts +1 -1
  7. package/dist/exporters/MXLLogExporter/MXLLogExporter.d.ts.map +1 -1
  8. package/dist/exporters/MXLLogExporter/MXLLogExporter.js +2 -2
  9. package/dist/exporters/MXLLogExporter/MXLLogExporter.js.map +1 -1
  10. package/dist/exporters/MXLLogExporter/types.d.cts +1 -1
  11. package/dist/exporters/MXLLogExporter/types.d.cts.map +1 -1
  12. package/dist/exporters/MXLLogExporter/types.d.ts +1 -1
  13. package/dist/exporters/MXLLogExporter/types.d.ts.map +1 -1
  14. package/dist/exporters/MXLLogExporter/utils.cjs +1 -1
  15. package/dist/exporters/MXLLogExporter/utils.cjs.map +1 -1
  16. package/dist/exporters/MXLLogExporter/utils.d.cts +1 -1
  17. package/dist/exporters/MXLLogExporter/utils.d.cts.map +1 -1
  18. package/dist/exporters/MXLLogExporter/utils.d.ts +1 -1
  19. package/dist/exporters/MXLLogExporter/utils.d.ts.map +1 -1
  20. package/dist/exporters/MXLLogExporter/utils.js +2 -2
  21. package/dist/exporters/MXLLogExporter/utils.js.map +1 -1
  22. package/dist/exporters/MXLTraceExporter/MXLTraceExporter.cjs +2 -2
  23. package/dist/exporters/MXLTraceExporter/MXLTraceExporter.cjs.map +1 -1
  24. package/dist/exporters/MXLTraceExporter/MXLTraceExporter.d.cts +1 -1
  25. package/dist/exporters/MXLTraceExporter/MXLTraceExporter.d.cts.map +1 -1
  26. package/dist/exporters/MXLTraceExporter/MXLTraceExporter.d.ts +1 -1
  27. package/dist/exporters/MXLTraceExporter/MXLTraceExporter.d.ts.map +1 -1
  28. package/dist/exporters/MXLTraceExporter/MXLTraceExporter.js +2 -2
  29. package/dist/exporters/MXLTraceExporter/MXLTraceExporter.js.map +1 -1
  30. package/dist/exporters/MXLTraceExporter/types.d.cts +1 -1
  31. package/dist/exporters/MXLTraceExporter/types.d.cts.map +1 -1
  32. package/dist/exporters/MXLTraceExporter/types.d.ts +1 -1
  33. package/dist/exporters/MXLTraceExporter/types.d.ts.map +1 -1
  34. package/dist/exporters/MXLTraceExporter/utils.cjs +1 -1
  35. package/dist/exporters/MXLTraceExporter/utils.cjs.map +1 -1
  36. package/dist/exporters/MXLTraceExporter/utils.d.cts +1 -1
  37. package/dist/exporters/MXLTraceExporter/utils.d.cts.map +1 -1
  38. package/dist/exporters/MXLTraceExporter/utils.d.ts +1 -1
  39. package/dist/exporters/MXLTraceExporter/utils.d.ts.map +1 -1
  40. package/dist/exporters/MXLTraceExporter/utils.js +2 -2
  41. package/dist/exporters/MXLTraceExporter/utils.js.map +1 -1
  42. package/dist/exporters/utils.cjs +2 -2
  43. package/dist/exporters/utils.cjs.map +1 -1
  44. package/dist/exporters/utils.d.cts +2 -2
  45. package/dist/exporters/utils.d.cts.map +1 -1
  46. package/dist/exporters/utils.d.ts +2 -2
  47. package/dist/exporters/utils.d.ts.map +1 -1
  48. package/dist/exporters/utils.js +2 -2
  49. package/dist/exporters/utils.js.map +1 -1
  50. package/dist/index.d.cts +2 -2
  51. package/dist/index.d.ts +2 -2
  52. package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.cjs +1 -0
  53. package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.cjs.map +1 -1
  54. package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.d.cts.map +1 -1
  55. package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.d.ts.map +1 -1
  56. package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.js +1 -0
  57. package/dist/instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation.js.map +1 -1
  58. package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.cjs +32 -6
  59. package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.cjs.map +1 -1
  60. package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.d.cts +1 -2
  61. package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.d.cts.map +1 -1
  62. package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.d.ts +1 -2
  63. package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.d.ts.map +1 -1
  64. package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.js +32 -6
  65. package/dist/instrumentations/replay/rrwebLoader/loadRrwebModule.esm.js.map +1 -1
  66. package/dist/instrumentations/replay/session-recording/config.cjs.map +1 -1
  67. package/dist/instrumentations/replay/session-recording/config.d.cts +1 -1
  68. package/dist/instrumentations/replay/session-recording/config.d.cts.map +1 -1
  69. package/dist/instrumentations/replay/session-recording/config.d.ts +1 -1
  70. package/dist/instrumentations/replay/session-recording/config.d.ts.map +1 -1
  71. package/dist/instrumentations/replay/session-recording/config.js.map +1 -1
  72. package/dist/instrumentations/replay/transport/replayTransport.cjs +11 -8
  73. package/dist/instrumentations/replay/transport/replayTransport.cjs.map +1 -1
  74. package/dist/instrumentations/replay/transport/replayTransport.d.cts +2 -1
  75. package/dist/instrumentations/replay/transport/replayTransport.d.cts.map +1 -1
  76. package/dist/instrumentations/replay/transport/replayTransport.d.ts +2 -1
  77. package/dist/instrumentations/replay/transport/replayTransport.d.ts.map +1 -1
  78. package/dist/instrumentations/replay/transport/replayTransport.js +12 -9
  79. package/dist/instrumentations/replay/transport/replayTransport.js.map +1 -1
  80. package/dist/instrumentations/replay/transport/types.d.cts +1 -0
  81. package/dist/instrumentations/replay/transport/types.d.cts.map +1 -1
  82. package/dist/instrumentations/replay/transport/types.d.ts +1 -0
  83. package/dist/instrumentations/replay/transport/types.d.ts.map +1 -1
  84. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs +19 -11
  85. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs.map +1 -1
  86. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.cts +3 -3
  87. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.cts.map +1 -1
  88. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.ts +3 -3
  89. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.ts.map +1 -1
  90. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js +19 -11
  91. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js.map +1 -1
  92. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.cjs +28 -0
  93. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.cjs.map +1 -0
  94. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.cts +23 -0
  95. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.cts.map +1 -0
  96. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.ts +23 -0
  97. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.ts.map +1 -0
  98. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.js +27 -0
  99. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.js.map +1 -0
  100. package/dist/managers/MXLConfigManager/types.d.cts +16 -6
  101. package/dist/managers/MXLConfigManager/types.d.cts.map +1 -1
  102. package/dist/managers/MXLConfigManager/types.d.ts +16 -6
  103. package/dist/managers/MXLConfigManager/types.d.ts.map +1 -1
  104. package/dist/managers/MXLConfigManager/utils.cjs +66 -1
  105. package/dist/managers/MXLConfigManager/utils.cjs.map +1 -1
  106. package/dist/managers/MXLConfigManager/utils.d.cts +10 -3
  107. package/dist/managers/MXLConfigManager/utils.d.cts.map +1 -1
  108. package/dist/managers/MXLConfigManager/utils.d.ts +10 -3
  109. package/dist/managers/MXLConfigManager/utils.d.ts.map +1 -1
  110. package/dist/managers/MXLConfigManager/utils.js +64 -2
  111. package/dist/managers/MXLConfigManager/utils.js.map +1 -1
  112. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.cjs +8 -0
  113. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.cjs.map +1 -1
  114. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.cts +2 -0
  115. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.cts.map +1 -1
  116. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.ts +2 -0
  117. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.ts.map +1 -1
  118. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.js +8 -0
  119. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.js.map +1 -1
  120. package/dist/managers/MXLSDKFeaturesManager/types.d.cts +2 -0
  121. package/dist/managers/MXLSDKFeaturesManager/types.d.cts.map +1 -1
  122. package/dist/managers/MXLSDKFeaturesManager/types.d.ts +2 -0
  123. package/dist/managers/MXLSDKFeaturesManager/types.d.ts.map +1 -1
  124. package/dist/mxl-web-sdk.js +2 -2
  125. package/dist/mxl-web-sdk.js.map +1 -1
  126. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.cjs +10 -1
  127. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.cjs.map +1 -1
  128. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.cts +3 -0
  129. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.cts.map +1 -1
  130. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.ts +3 -0
  131. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.ts.map +1 -1
  132. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.js +10 -1
  133. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.js.map +1 -1
  134. package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.cts +1 -0
  135. package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.cts.map +1 -1
  136. package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.ts +1 -0
  137. package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.ts.map +1 -1
  138. package/dist/resources/sdkConstants.cjs +1 -1
  139. package/dist/resources/sdkConstants.cjs.map +1 -1
  140. package/dist/resources/sdkConstants.d.cts +1 -1
  141. package/dist/resources/sdkConstants.d.ts +1 -1
  142. package/dist/resources/sdkConstants.js +1 -1
  143. package/dist/resources/sdkConstants.js.map +1 -1
  144. package/dist/sdk/initSDK.cjs +19 -11
  145. package/dist/sdk/initSDK.cjs.map +1 -1
  146. package/dist/sdk/initSDK.d.cts +2 -2
  147. package/dist/sdk/initSDK.d.cts.map +1 -1
  148. package/dist/sdk/initSDK.d.ts +2 -2
  149. package/dist/sdk/initSDK.d.ts.map +1 -1
  150. package/dist/sdk/initSDK.js +19 -11
  151. package/dist/sdk/initSDK.js.map +1 -1
  152. package/dist/sdk/types.d.cts +23 -7
  153. package/dist/sdk/types.d.cts.map +1 -1
  154. package/dist/sdk/types.d.ts +23 -7
  155. package/dist/sdk/types.d.ts.map +1 -1
  156. package/package.json +1 -1
@@ -11,6 +11,7 @@ import { createSessionRecordingControlFromReplay } from "../instrumentations/rep
11
11
  import { createReplayTransportFromInit } from "../instrumentations/replay/transport/replayTransport.js";
12
12
  import { getWebSDKOverridableResource, getWebSDKResource } from "../resources/webSdkResource.js";
13
13
  import { MXLDynamicConfigManager } from "../managers/MXLConfigManager/MXLDynamicConfigManager.js";
14
+ import { resolveEffectiveReplayConfig } from "../managers/MXLConfigManager/resolveEffectiveReplayConfig.js";
14
15
  import { DEFAULT_LIMITS } from "../managers/MXLLimitManager/constants.js";
15
16
  import { MXLLimitManager } from "../managers/MXLLimitManager/MXLLimitManager.js";
16
17
  import { MXLLogManager } from "../managers/MXLLogManager/MXLLogManager.js";
@@ -48,7 +49,7 @@ import { emptyResource } from "@opentelemetry/resources";
48
49
  import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs";
49
50
  import { BatchSpanProcessor, StackContextManager, WebTracerProvider } from "@opentelemetry/sdk-trace-web";
50
51
  //#region src/sdk/initSDK.ts
51
- const initSDK = ({ appID, appVersion, resource = emptyResource(), spanExporters = [], logExporters = [], spanProcessors = [], propagator = null, defaultInstrumentationConfig, instrumentations = [], contextManager = null, logProcessors = [], attributeScrubbers = [], enableDefaultAttributeScrubbing = true, additionalQueryParamsToScrub = [], logLevel = DiagLogLevel.ERROR, mxlDataURL, mxlConfigURL, diagLogger = diag.createComponentLogger({ namespace: "mxl-sdk" }), dynamicSDKConfigManager: providedDynamicSDKConfigManager, dynamicSDKConfig, registerGlobally = true, blockNetworkSpanForwarding = false, restrictedProtocols = new Set(["file:"]), useDocumentTitleAsPageLabel = true, recordUserSessions = true, replay, serviceName, maxUserSessionDurationSeconds = DEFAULT_USER_SESSION_MAX_DURATION_SECONDS, inactivityTimeoutSeconds = DEFAULT_USER_SESSION_INACTIVITY_TIMEOUT_SECONDS } = {}) => {
52
+ const initSDK = ({ appID, appVersion, resource = emptyResource(), spanExporters = [], logExporters = [], spanProcessors = [], propagator = null, defaultInstrumentationConfig, instrumentations = [], contextManager = null, logProcessors = [], attributeScrubbers = [], enableDefaultAttributeScrubbing = true, additionalQueryParamsToScrub = [], logLevel = DiagLogLevel.ERROR, otelCollectorURL, apiURL, diagLogger = diag.createComponentLogger({ namespace: "mxl-sdk" }), dynamicSDKConfigManager: providedDynamicSDKConfigManager, dynamicSDKConfig, registerGlobally = true, blockNetworkSpanForwarding = false, restrictedProtocols = new Set(["file:"]), useDocumentTitleAsPageLabel = true, recordUserSessions = true, replay, serviceName, maxUserSessionDurationSeconds = DEFAULT_USER_SESSION_MAX_DURATION_SECONDS, inactivityTimeoutSeconds = DEFAULT_USER_SESSION_INACTIVITY_TIMEOUT_SECONDS } = {}) => {
52
53
  try {
53
54
  if (registerGlobally) {
54
55
  const existingSDK = registry.registered();
@@ -93,7 +94,7 @@ const initSDK = ({ appID, appVersion, resource = emptyResource(), spanExporters
93
94
  appVersion: validatedAppVersion,
94
95
  defaultConfig: dynamicDefaultConfig,
95
96
  deviceId: enduserPseudoID,
96
- mxlConfigURL,
97
+ apiURL,
97
98
  storage: sdkLocalStorage
98
99
  });
99
100
  dynamicConfigManager.refreshRemoteConfig();
@@ -142,9 +143,10 @@ const initSDK = ({ appID, appVersion, resource = emptyResource(), spanExporters
142
143
  let mxlLogProcessor;
143
144
  if (sendingToMXL) {
144
145
  mxlSpanProcessor = new MXLSessionPartBatchedSpanProcessor({
146
+ emptySessionAvoidanceEnabled: sdkFeaturesManager.isEmptySessionAvoidanceEnabled(),
145
147
  exporter: new MXLTraceExporter({
146
148
  appID: validatedAppID,
147
- mxlDataURL,
149
+ otelCollectorURL,
148
150
  userID: enduserPseudoID
149
151
  }),
150
152
  limitManager,
@@ -152,7 +154,7 @@ const initSDK = ({ appID, appVersion, resource = emptyResource(), spanExporters
152
154
  });
153
155
  mxlLogProcessor = new BatchLogRecordProcessor(new MXLLogExporter({
154
156
  appID: validatedAppID,
155
- mxlDataURL,
157
+ otelCollectorURL,
156
158
  userID: enduserPseudoID
157
159
  }));
158
160
  }
@@ -189,9 +191,14 @@ const initSDK = ({ appID, appVersion, resource = emptyResource(), spanExporters
189
191
  });
190
192
  userSessionManager.startSessionPartInternal("init");
191
193
  const windowDisableSessionRec = typeof window !== "undefined" && window.__MXL_DISABLE_SESSION_RECORDER === true;
192
- const includeReplay = Boolean(sendingToMXL && validatedAppID && enduserPseudoID && !windowDisableSessionRec);
193
- const replayUserOptions = replay;
194
- const replayRedundantOmit = includeReplay && recordUserSessions && replay?.omitRedundantInstrumentations ? [
194
+ const { recordUserSessions: effectiveRecordUserSessions, replay: replayUserOptions } = resolveEffectiveReplayConfig({
195
+ dynamicConfig: dynamicConfigManager.getConfig(),
196
+ isSessionReplayEnabled: sdkFeaturesManager.isSessionReplayEnabled(),
197
+ recordUserSessions,
198
+ replay
199
+ });
200
+ const includeReplay = Boolean(sendingToMXL && validatedAppID && enduserPseudoID && !windowDisableSessionRec && sdkFeaturesManager.isSessionReplayEnabled());
201
+ const replayRedundantOmit = includeReplay && effectiveRecordUserSessions && replayUserOptions?.omitRedundantInstrumentations ? [
195
202
  "click",
196
203
  "exception",
197
204
  "@opentelemetry/instrumentation-fetch",
@@ -204,11 +211,12 @@ const initSDK = ({ appID, appVersion, resource = emptyResource(), spanExporters
204
211
  const replayContext = includeReplay && validatedAppID && enduserPseudoID ? {
205
212
  appID: validatedAppID,
206
213
  appVersion: validatedAppVersion,
207
- mxlDataURL,
214
+ apiURL,
208
215
  serviceName: resolvedServiceName,
209
216
  transport: createReplayTransportFromInit({
210
217
  appID: validatedAppID,
211
- mxlDataURL,
218
+ apiURL,
219
+ otelCollectorURL,
212
220
  userID: enduserPseudoID
213
221
  }),
214
222
  userID: enduserPseudoID
@@ -218,7 +226,7 @@ const initSDK = ({ appID, appVersion, resource = emptyResource(), spanExporters
218
226
  limitManager,
219
227
  logManager: mxlLogManager,
220
228
  pageManager,
221
- recordUserSessions,
229
+ recordUserSessions: effectiveRecordUserSessions,
222
230
  replayContext,
223
231
  replayOptions: replayUserOptions,
224
232
  sessionStorage: sdkSessionStorage,
@@ -248,7 +256,7 @@ const initSDK = ({ appID, appVersion, resource = emptyResource(), spanExporters
248
256
  includeReplay,
249
257
  limitManager,
250
258
  pageManager,
251
- recordUserSessions,
259
+ recordUserSessions: effectiveRecordUserSessions,
252
260
  replayContext,
253
261
  replayOptions: replayUserOptions,
254
262
  sessionStorage: sdkSessionStorage,
@@ -1 +1 @@
1
- {"version":3,"file":"initSDK.js","names":[],"sources":["../../src/sdk/initSDK.ts"],"sourcesContent":["import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\nimport { logs } from '@opentelemetry/api-logs';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { emptyResource } from '@opentelemetry/resources';\nimport type { LogRecordProcessor } from '@opentelemetry/sdk-logs';\nimport {\n BatchLogRecordProcessor,\n LoggerProvider,\n} from '@opentelemetry/sdk-logs';\nimport type { SpanProcessor } from '@opentelemetry/sdk-trace-web';\nimport {\n BatchSpanProcessor,\n StackContextManager,\n WebTracerProvider,\n} from '@opentelemetry/sdk-trace-web';\nimport { log } from '../api-logs/logAPI';\nimport { page } from '../api-page/pageAPI';\nimport { session } from '../api-sessions/sessionAPI';\nimport { trace } from '../api-traces/traceAPI';\nimport { user } from '../api-users/userAPI';\nimport type { AttributeScrubber } from '../common/types';\nimport { MXLLogExporter } from '../exporters/MXLLogExporter/MXLLogExporter';\nimport { MXLTraceExporter } from '../exporters/MXLTraceExporter/MXLTraceExporter';\nimport { createSessionRecordingControlFromReplay } from '../instrumentations/replay/createSessionRecordingControlFromReplay';\nimport { ReplayInstrumentation } from '../instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation';\nimport { createReplayTransportFromInit } from '../instrumentations/replay/transport/replayTransport';\nimport type { ReplayContext } from '../instrumentations/replay/session-recording/config';\nimport { MXLDynamicConfigManager } from '../managers/MXLConfigManager/MXLDynamicConfigManager';\nimport { DEFAULT_LIMITS } from '../managers/MXLLimitManager/constants';\nimport { MXLLimitManager } from '../managers/MXLLimitManager/MXLLimitManager';\nimport { MXLLogManager } from '../managers/MXLLogManager/MXLLogManager';\nimport { MXLPageManager } from '../managers/MXLPageManager/MXLPageManager';\nimport { MXLSDKFeaturesManager } from '../managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager';\nimport { MXLTraceManager } from '../managers/MXLTraceManager/MXLTraceManager';\nimport { MXLUserManager } from '../managers/MXLUserManager/MXLUserManager';\nimport {\n DEFAULT_USER_SESSION_INACTIVITY_TIMEOUT_SECONDS,\n DEFAULT_USER_SESSION_MAX_DURATION_SECONDS,\n} from '../managers/MXLUserSessionManager/constants';\nimport { MXLUserSessionManager } from '../managers/MXLUserSessionManager/MXLUserSessionManager';\nimport { BrowserLogRecordProcessor } from '../processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor';\nimport { BrowserSpanProcessor } from '../processors/BrowserSpanProcessor/BrowserSpanProcessor';\nimport { LogRecordScrubProcessor } from '../processors/LogRecordScrubProcessor/LogRecordScrubProcessor';\nimport { MXLLogRecordProcessor } from '../processors/MXLLogRecordProcessor/MXLLogRecordProcessor';\nimport { MXLNetworkSpanProcessor } from '../processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor';\nimport { MXLSessionPartBatchedSpanProcessor } from '../processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor';\nimport { PageLogRecordProcessor } from '../processors/PageLogRecordProcessor/PageLogRecordProcessor';\nimport { PageSpanProcessor } from '../processors/PageSpanProcessor/PageSpanProcessor';\nimport { SpanScrubProcessor } from '../processors/SpanScrubProcessor/SpanScrubProcessor';\nimport { UserLogRecordProcessor } from '../processors/UserLogRecordProcessor/UserLogRecordProcessor';\nimport { UserSessionLogRecordProcessor } from '../processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor';\nimport { UserSpanProcessor } from '../processors/UserSpanProcessor/UserSpanProcessor';\nimport { MXLW3CTraceContextPropagator } from '../propagators/MXLW3CTraceContextPropagator/MXLW3CTraceContextPropagator';\nimport {\n OTEL_DEFAULT_SERVICE_NAME,\n getWebSDKOverridableResource,\n getWebSDKResource,\n} from '../resources/webSdkResource';\nimport { NamespacedStorage } from '../utils/NamespacedStorage/NamespacedStorage';\nimport { nsfConfigValidation } from '../utils/nsfConfigValidation';\nimport { OTelPerformanceManager } from '../utils/PerformanceManager/OTelPerformanceManager';\nimport { getDefaultAttributeScrubbers } from './defaultAttributeScrubbers';\nimport { loadNetworkInstrumentations } from './networkInstrumentations';\nimport { noopSessionRecording } from './noopSessionRecording';\nimport { registry } from './registry';\nimport { setupDefaultInstrumentations } from './setupDefaultInstrumentations';\nimport type {\n DynamicSDKConfig,\n SDKControl,\n SDKInitConfig,\n SetupLogsArgs,\n SetupPageArgs,\n SetupTracesArgs,\n SetupUserArgs,\n SetupUserSessionArgs,\n} from './types';\nimport { validateAppID, validateAppVersion } from './utils';\n\nexport const initSDK = (\n {\n appID,\n appVersion,\n resource = emptyResource(),\n spanExporters = [],\n logExporters = [],\n spanProcessors = [],\n propagator = null,\n defaultInstrumentationConfig,\n instrumentations = [],\n contextManager = null,\n logProcessors = [],\n attributeScrubbers = [],\n enableDefaultAttributeScrubbing = true,\n additionalQueryParamsToScrub = [],\n logLevel = DiagLogLevel.ERROR,\n mxlDataURL,\n mxlConfigURL,\n diagLogger = diag.createComponentLogger({\n namespace: 'mxl-sdk',\n }),\n dynamicSDKConfigManager: providedDynamicSDKConfigManager,\n dynamicSDKConfig,\n registerGlobally = true,\n blockNetworkSpanForwarding = false,\n restrictedProtocols = new Set(['file:']),\n useDocumentTitleAsPageLabel = true,\n recordUserSessions = true,\n replay,\n serviceName,\n maxUserSessionDurationSeconds = DEFAULT_USER_SESSION_MAX_DURATION_SECONDS,\n inactivityTimeoutSeconds = DEFAULT_USER_SESSION_INACTIVITY_TIMEOUT_SECONDS,\n }: SDKInitConfig = {} as SDKInitConfig,\n): SDKControl | false => {\n try {\n if (registerGlobally) {\n const existingSDK = registry.registered();\n if (existingSDK !== null) {\n diagLogger.warn(\n 'SDK has already been successfully initialized, skipping this invocation of initSDK',\n );\n return existingSDK;\n }\n }\n\n diag.setLogger(new DiagConsoleLogger(), {\n logLevel,\n });\n\n if (typeof window === 'undefined') {\n diagLogger.warn('browser not detected, skipping initialization');\n return false;\n }\n\n const perf = new OTelPerformanceManager();\n const initSDKStart = perf.getNowMillis();\n const validatedAppID = validateAppID(appID);\n const validatedAppVersion = validateAppVersion(appVersion);\n\n const sendingToMXL = validatedAppID !== undefined;\n\n if (!sendingToMXL && !logExporters.length && !spanExporters.length) {\n throw new Error(\n 'when appID is omitted, at least one logExporter or spanExporter must be set',\n );\n }\n\n if (restrictedProtocols.has(window.location.protocol)) {\n throw new Error(\n `not initializing due to restricted protocol: ${window.location.protocol}`,\n );\n }\n\n if (sendingToMXL && typeof CompressionStream === 'undefined') {\n throw new Error(\n 'CompressionStream is not supported in this browser and required for data compression.',\n );\n }\n\n const namespace = registerGlobally ? undefined : validatedAppID;\n const sdkLocalStorage = new NamespacedStorage({\n diag: diagLogger,\n namespace,\n storage: window.localStorage,\n });\n const sdkSessionStorage = new NamespacedStorage({\n diag: diagLogger,\n namespace,\n storage: window.sessionStorage,\n });\n\n const userManager = setupUser({ registerGlobally, sdkLocalStorage });\n const enduserPseudoID = userManager.getMXLUserId();\n if (sendingToMXL && !enduserPseudoID) {\n throw new Error('userID is required when using MXL exporter');\n }\n\n const dynamicDefaultConfig = {\n ...dynamicSDKConfig,\n };\n\n const dynamicConfigManager =\n providedDynamicSDKConfigManager ??\n new MXLDynamicConfigManager({\n appID: validatedAppID,\n appVersion: validatedAppVersion,\n defaultConfig: dynamicDefaultConfig,\n deviceId: enduserPseudoID,\n mxlConfigURL,\n storage: sdkLocalStorage,\n });\n void dynamicConfigManager.refreshRemoteConfig();\n\n const resolvedServiceName =\n dynamicConfigManager.resolveApplicationServiceName?.(serviceName) ??\n (() => {\n const fromInit = serviceName?.trim();\n if (fromInit) {\n return fromInit;\n }\n const fromCfg = dynamicConfigManager.getConfig().serviceName?.trim();\n if (fromCfg) {\n return fromCfg;\n }\n return OTEL_DEFAULT_SERVICE_NAME;\n })();\n\n const resourceWithWebSDKAttributes = getWebSDKOverridableResource({\n serviceName: resolvedServiceName,\n })\n .merge(resource)\n .merge(\n getWebSDKResource({\n appVersion: validatedAppVersion,\n diagLogger,\n pageSessionStorage: sdkSessionStorage,\n }),\n );\n\n const sdkFeaturesManager = new MXLSDKFeaturesManager({\n blockNetworkSpanForwarding,\n deviceId: enduserPseudoID,\n dynamicConfigManager,\n });\n\n if (!sdkFeaturesManager.isSDKEnabled()) {\n diagLogger.debug('SDK is disabled, skipping initialization.');\n\n return false;\n }\n\n const nsfValid = nsfConfigValidation({\n defaultInstrumentationConfig,\n diag: diagLogger,\n featureManager: sdkFeaturesManager,\n propagator,\n registerGlobally,\n });\n\n const limitManager = new MXLLimitManager(DEFAULT_LIMITS);\n\n const finalAttributeScrubbers: AttributeScrubber[] = [\n ...(enableDefaultAttributeScrubbing\n ? getDefaultAttributeScrubbers(additionalQueryParamsToScrub)\n : []),\n ...attributeScrubbers,\n ];\n\n const userSessionManager = setupUserSession({\n limitManager,\n perf,\n registerGlobally,\n sdkLocalStorage,\n sdkSessionStorage,\n userSessionConfig: {\n inactivityTimeoutSeconds,\n maxUserSessionDurationSeconds,\n },\n });\n\n let mxlSpanProcessor: MXLSessionPartBatchedSpanProcessor | undefined;\n let mxlLogProcessor: BatchLogRecordProcessor | undefined;\n if (sendingToMXL) {\n mxlSpanProcessor = new MXLSessionPartBatchedSpanProcessor({\n exporter: new MXLTraceExporter({\n appID: validatedAppID,\n mxlDataURL,\n userID: enduserPseudoID,\n }),\n limitManager,\n userSessionManager,\n });\n\n mxlLogProcessor = new BatchLogRecordProcessor(\n new MXLLogExporter({\n appID: validatedAppID,\n mxlDataURL,\n userID: enduserPseudoID,\n }),\n );\n }\n\n const pageManager = setupPage({\n registerGlobally,\n useDocumentTitleAsPageLabel,\n });\n\n const { tracerProvider, mxlTraceManager } = setupTraces({\n attributeScrubbers: finalAttributeScrubbers,\n contextManager,\n mxlSpanProcessor,\n pageManager,\n propagator: nsfValid ? new MXLW3CTraceContextPropagator() : propagator,\n registerGlobally,\n resource: resourceWithWebSDKAttributes,\n spanExporters,\n spanProcessors,\n userManager,\n });\n\n userSessionManager.setTracerProvider(tracerProvider);\n\n const { loggerProvider, mxlLogManager } = setupLogs({\n attributeScrubbers: finalAttributeScrubbers,\n limitManager,\n logExporters,\n logProcessors,\n mxlLogProcessor,\n pageManager,\n registerGlobally,\n resource: resourceWithWebSDKAttributes,\n sdkLocalStorage,\n userManager,\n userSessionManager,\n visibilityDoc: window.document,\n });\n\n userSessionManager.startSessionPartInternal('init');\n\n const windowDisableSessionRec =\n typeof window !== 'undefined' &&\n (window as unknown as { __MXL_DISABLE_SESSION_RECORDER?: boolean })\n .__MXL_DISABLE_SESSION_RECORDER === true;\n\n const includeReplay = Boolean(\n sendingToMXL &&\n validatedAppID &&\n enduserPseudoID &&\n !windowDisableSessionRec,\n );\n\n const replayUserOptions = replay;\n\n const replayRedundantOmit =\n includeReplay &&\n recordUserSessions &&\n replay?.omitRedundantInstrumentations\n ? ([\n 'click',\n 'exception',\n '@opentelemetry/instrumentation-fetch',\n '@opentelemetry/instrumentation-xml-http-request',\n ] as const)\n : undefined;\n\n const effectiveDefaultInstrumentationConfig =\n replayRedundantOmit === undefined\n ? defaultInstrumentationConfig\n : {\n ...defaultInstrumentationConfig,\n omit: new Set([\n ...(defaultInstrumentationConfig?.omit ?? []),\n ...replayRedundantOmit,\n ]),\n };\n\n const replayContext: ReplayContext | undefined =\n includeReplay && validatedAppID && enduserPseudoID\n ? {\n appID: validatedAppID,\n appVersion: validatedAppVersion,\n mxlDataURL,\n serviceName: resolvedServiceName,\n transport: createReplayTransportFromInit({\n appID: validatedAppID,\n mxlDataURL,\n userID: enduserPseudoID,\n }),\n userID: enduserPseudoID,\n }\n : undefined;\n\n const buildDefaultInstrumentations = () =>\n setupDefaultInstrumentations(effectiveDefaultInstrumentationConfig, {\n includeReplay,\n limitManager,\n logManager: mxlLogManager,\n pageManager,\n recordUserSessions,\n replayContext,\n replayOptions: replayUserOptions,\n sessionStorage: sdkSessionStorage,\n userSessionManager,\n });\n\n // NOTE: we require setupInstrumentation to run the last, after setupLogs and setupTraces. This is how OTel works wrt\n // The dependencies between instrumentations and global providers. We need the providers for tracers, and logs to be\n // Setup before we enable instrumentations.\n let replayInstrumentation: ReplayInstrumentation | undefined;\n\n let disableInstrumentations: (() => void) | undefined;\n let disableNetworkInstrumentations: (() => void) | undefined;\n\n if (!registerGlobally) {\n const defaultInstrumentations = buildDefaultInstrumentations();\n replayInstrumentation = defaultInstrumentations.find(\n (instrumentation): instrumentation is ReplayInstrumentation =>\n instrumentation instanceof ReplayInstrumentation,\n );\n\n disableInstrumentations = registerInstrumentations({\n instrumentations: [...defaultInstrumentations, ...instrumentations],\n loggerProvider,\n tracerProvider,\n });\n\n void loadNetworkInstrumentations(\n effectiveDefaultInstrumentationConfig,\n ).then((networkInstrumentations) => {\n if (networkInstrumentations.length === 0) {\n return;\n }\n disableNetworkInstrumentations = registerInstrumentations({\n instrumentations: networkInstrumentations,\n loggerProvider,\n tracerProvider,\n });\n });\n } else {\n const defaultInstrumentations = setupDefaultInstrumentations(\n effectiveDefaultInstrumentationConfig,\n {\n includeReplay,\n limitManager,\n pageManager,\n recordUserSessions,\n replayContext,\n replayOptions: replayUserOptions,\n sessionStorage: sdkSessionStorage,\n userSessionManager,\n },\n );\n replayInstrumentation = defaultInstrumentations.find(\n (instrumentation): instrumentation is ReplayInstrumentation =>\n instrumentation instanceof ReplayInstrumentation,\n );\n\n disableInstrumentations = registerInstrumentations({\n instrumentations: [...defaultInstrumentations, ...instrumentations],\n });\n\n void loadNetworkInstrumentations(\n effectiveDefaultInstrumentationConfig,\n ).then((networkInstrumentations) => {\n if (networkInstrumentations.length === 0) {\n return;\n }\n disableNetworkInstrumentations = registerInstrumentations({\n instrumentations: networkInstrumentations,\n });\n });\n }\n\n let shutdownCalled = false;\n let stopCalled = false;\n\n const stopSdk = (): void => {\n if (stopCalled) {\n return;\n }\n stopCalled = true;\n\n replayInstrumentation?.disable();\n disableInstrumentations?.();\n disableNetworkInstrumentations?.();\n userSessionManager._shutdown();\n };\n\n const sessionRecording = replayInstrumentation\n ? createSessionRecordingControlFromReplay(replayInstrumentation)\n : noopSessionRecording;\n\n diagLogger.info('successfully initialized the SDK');\n\n const sdkControl: SDKControl = {\n flush: async () => {\n await tracerProvider.forceFlush();\n await loggerProvider.forceFlush();\n },\n log: mxlLogManager,\n page: pageManager,\n session: userSessionManager,\n sessionRecording,\n setDynamicConfig: (config: Partial<DynamicSDKConfig>) => {\n dynamicConfigManager.setConfig(config);\n },\n shutdown: async () => {\n if (shutdownCalled) {\n return;\n }\n shutdownCalled = true;\n stopSdk();\n await tracerProvider.shutdown();\n await loggerProvider.shutdown();\n },\n stop: stopSdk,\n trace: mxlTraceManager,\n user: userManager,\n };\n\n if (registerGlobally) {\n registry.register(sdkControl);\n }\n\n userSessionManager.recordSDKStartupDuration(\n perf.getNowMillis() - initSDKStart,\n );\n\n return sdkControl;\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Unknown error.';\n diagLogger.error(`failed to initialize the SDK: ${message}`);\n return false;\n }\n};\n\nconst setupUser = ({ registerGlobally, sdkLocalStorage }: SetupUserArgs) => {\n const mxlUserManager = new MXLUserManager({\n storage: sdkLocalStorage,\n });\n\n if (registerGlobally) {\n user.setGlobalUserManager(mxlUserManager);\n }\n\n return mxlUserManager;\n};\n\nconst setupUserSession = ({\n limitManager,\n perf,\n registerGlobally,\n sdkLocalStorage,\n sdkSessionStorage,\n userSessionConfig,\n}: SetupUserSessionArgs) => {\n const mxlUserSessionManager = new MXLUserSessionManager({\n config: userSessionConfig,\n limitManager,\n perf,\n storage: sdkLocalStorage,\n tabStorage: sdkSessionStorage,\n visibilityDoc: window.document,\n });\n\n if (registerGlobally) {\n session.setGlobalUserSessionManager(mxlUserSessionManager);\n }\n\n return mxlUserSessionManager;\n};\n\nconst setupTraces = ({\n resource,\n userManager,\n spanExporters,\n spanProcessors = [],\n propagator = null,\n contextManager = null,\n attributeScrubbers,\n registerGlobally,\n mxlSpanProcessor,\n pageManager,\n}: SetupTracesArgs) => {\n const finalSpanProcessors: SpanProcessor[] = [\n ...spanProcessors,\n new BrowserSpanProcessor(),\n new MXLNetworkSpanProcessor(),\n new UserSpanProcessor({ userManager }),\n new PageSpanProcessor({ pageManager }),\n new SpanScrubProcessor({ attributeScrubbers }),\n ];\n\n spanExporters?.forEach((exporter) => {\n finalSpanProcessors.push(new BatchSpanProcessor(exporter));\n });\n\n if (mxlSpanProcessor) {\n finalSpanProcessors.push(mxlSpanProcessor);\n }\n\n const tracerProvider = new WebTracerProvider({\n resource,\n spanLimits: {\n // Session properties are stored as attributes on the session span, add a\n // Buffer here so that there is room for our internal attributes\n attributeCountLimit: DEFAULT_LIMITS.maxAllowed.session_property * 2,\n // Breadcrumbs are stored as events on the session span, add a\n // Buffer here so that there is room for our internal events\n eventCountLimit: DEFAULT_LIMITS.maxAllowed.breadcrumb * 2,\n },\n spanProcessors: finalSpanProcessors,\n });\n\n const mxlTraceManager = new MXLTraceManager({\n tracerProvider: registerGlobally ? undefined : tracerProvider,\n });\n\n if (registerGlobally) {\n trace.setGlobalTraceManager(mxlTraceManager);\n tracerProvider.register({\n // WebTracerProvider.register has different fallback behaviours depending on whether null or undefined is passed,\n // Be more explicit here and always supply a StackContextManager if the config did not specify one. If a user really\n // Wants to turn off context management they can pass a no-op manager explicitly:\n // https://github.com/open-telemetry/opentelemetry-js/blob/4f0b6285af24b71a9fa022755aaa3b6a63ae5033/packages/opentelemetry-sdk-trace-web/src/WebTracerProvider.ts#L39\n contextManager: contextManager || new StackContextManager(),\n propagator,\n });\n }\n\n return { mxlTraceManager, tracerProvider };\n};\n\nconst setupLogs = ({\n resource,\n userManager,\n logExporters,\n logProcessors,\n userSessionManager,\n limitManager,\n attributeScrubbers,\n registerGlobally,\n mxlLogProcessor,\n sdkLocalStorage,\n pageManager,\n visibilityDoc = window.document,\n}: SetupLogsArgs) => {\n const finalLogProcessors: LogRecordProcessor[] = [\n ...logProcessors,\n new UserSessionLogRecordProcessor({\n userSessionManager,\n }),\n new BrowserLogRecordProcessor(),\n new MXLLogRecordProcessor(),\n new UserLogRecordProcessor({ userManager }),\n new LogRecordScrubProcessor({ attributeScrubbers }),\n new PageLogRecordProcessor({ pageManager }),\n ];\n\n logExporters?.forEach((exporter) => {\n finalLogProcessors.push(new BatchLogRecordProcessor(exporter));\n });\n\n if (mxlLogProcessor) {\n finalLogProcessors.push(mxlLogProcessor);\n }\n\n const loggerProvider = new LoggerProvider({\n processors: finalLogProcessors,\n resource,\n });\n\n const mxlLogManager = new MXLLogManager({\n limitManager,\n loggerProvider: registerGlobally ? undefined : loggerProvider,\n storage: sdkLocalStorage,\n userSessionManager,\n visibilityDoc,\n });\n\n if (registerGlobally) {\n logs.setGlobalLoggerProvider(loggerProvider);\n log.setGlobalLogManager(mxlLogManager);\n }\n\n return { loggerProvider, mxlLogManager };\n};\n\nconst setupPage = ({\n useDocumentTitleAsPageLabel,\n registerGlobally,\n}: SetupPageArgs) => {\n const mxlPageManager = new MXLPageManager({\n useDocumentTitleAsPageLabel,\n });\n\n if (registerGlobally) {\n page.setGlobalPageManager(mxlPageManager);\n }\n\n return mxlPageManager;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"initSDK.js","names":[],"sources":["../../src/sdk/initSDK.ts"],"sourcesContent":["import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\nimport { logs } from '@opentelemetry/api-logs';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { emptyResource } from '@opentelemetry/resources';\nimport type { LogRecordProcessor } from '@opentelemetry/sdk-logs';\nimport {\n BatchLogRecordProcessor,\n LoggerProvider,\n} from '@opentelemetry/sdk-logs';\nimport type { SpanProcessor } from '@opentelemetry/sdk-trace-web';\nimport {\n BatchSpanProcessor,\n StackContextManager,\n WebTracerProvider,\n} from '@opentelemetry/sdk-trace-web';\nimport { log } from '../api-logs/logAPI';\nimport { page } from '../api-page/pageAPI';\nimport { session } from '../api-sessions/sessionAPI';\nimport { trace } from '../api-traces/traceAPI';\nimport { user } from '../api-users/userAPI';\nimport type { AttributeScrubber } from '../common/types';\nimport { MXLLogExporter } from '../exporters/MXLLogExporter/MXLLogExporter';\nimport { MXLTraceExporter } from '../exporters/MXLTraceExporter/MXLTraceExporter';\nimport { createSessionRecordingControlFromReplay } from '../instrumentations/replay/createSessionRecordingControlFromReplay';\nimport { ReplayInstrumentation } from '../instrumentations/replay/ReplayInstrumentation/ReplayInstrumentation';\nimport { createReplayTransportFromInit } from '../instrumentations/replay/transport/replayTransport';\nimport type { ReplayContext } from '../instrumentations/replay/session-recording/config';\nimport { MXLDynamicConfigManager } from '../managers/MXLConfigManager/MXLDynamicConfigManager';\nimport { resolveEffectiveReplayConfig } from '../managers/MXLConfigManager/resolveEffectiveReplayConfig';\nimport { DEFAULT_LIMITS } from '../managers/MXLLimitManager/constants';\nimport { MXLLimitManager } from '../managers/MXLLimitManager/MXLLimitManager';\nimport { MXLLogManager } from '../managers/MXLLogManager/MXLLogManager';\nimport { MXLPageManager } from '../managers/MXLPageManager/MXLPageManager';\nimport { MXLSDKFeaturesManager } from '../managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager';\nimport { MXLTraceManager } from '../managers/MXLTraceManager/MXLTraceManager';\nimport { MXLUserManager } from '../managers/MXLUserManager/MXLUserManager';\nimport {\n DEFAULT_USER_SESSION_INACTIVITY_TIMEOUT_SECONDS,\n DEFAULT_USER_SESSION_MAX_DURATION_SECONDS,\n} from '../managers/MXLUserSessionManager/constants';\nimport { MXLUserSessionManager } from '../managers/MXLUserSessionManager/MXLUserSessionManager';\nimport { BrowserLogRecordProcessor } from '../processors/BrowserLogRecordProcessor/BrowserLogRecordProcessor';\nimport { BrowserSpanProcessor } from '../processors/BrowserSpanProcessor/BrowserSpanProcessor';\nimport { LogRecordScrubProcessor } from '../processors/LogRecordScrubProcessor/LogRecordScrubProcessor';\nimport { MXLLogRecordProcessor } from '../processors/MXLLogRecordProcessor/MXLLogRecordProcessor';\nimport { MXLNetworkSpanProcessor } from '../processors/MXLNetworkSpanProcessor/MXLNetworkSpanProcessor';\nimport { MXLSessionPartBatchedSpanProcessor } from '../processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor';\nimport { PageLogRecordProcessor } from '../processors/PageLogRecordProcessor/PageLogRecordProcessor';\nimport { PageSpanProcessor } from '../processors/PageSpanProcessor/PageSpanProcessor';\nimport { SpanScrubProcessor } from '../processors/SpanScrubProcessor/SpanScrubProcessor';\nimport { UserLogRecordProcessor } from '../processors/UserLogRecordProcessor/UserLogRecordProcessor';\nimport { UserSessionLogRecordProcessor } from '../processors/UserSessionLogRecordProcessor/UserSessionLogRecordProcessor';\nimport { UserSpanProcessor } from '../processors/UserSpanProcessor/UserSpanProcessor';\nimport { MXLW3CTraceContextPropagator } from '../propagators/MXLW3CTraceContextPropagator/MXLW3CTraceContextPropagator';\nimport {\n OTEL_DEFAULT_SERVICE_NAME,\n getWebSDKOverridableResource,\n getWebSDKResource,\n} from '../resources/webSdkResource';\nimport { NamespacedStorage } from '../utils/NamespacedStorage/NamespacedStorage';\nimport { nsfConfigValidation } from '../utils/nsfConfigValidation';\nimport { OTelPerformanceManager } from '../utils/PerformanceManager/OTelPerformanceManager';\nimport { getDefaultAttributeScrubbers } from './defaultAttributeScrubbers';\nimport { loadNetworkInstrumentations } from './networkInstrumentations';\nimport { noopSessionRecording } from './noopSessionRecording';\nimport { registry } from './registry';\nimport { setupDefaultInstrumentations } from './setupDefaultInstrumentations';\nimport type {\n DynamicSDKConfig,\n SDKControl,\n SDKInitConfig,\n SetupLogsArgs,\n SetupPageArgs,\n SetupTracesArgs,\n SetupUserArgs,\n SetupUserSessionArgs,\n} from './types';\nimport { validateAppID, validateAppVersion } from './utils';\n\nexport const initSDK = (\n {\n appID,\n appVersion,\n resource = emptyResource(),\n spanExporters = [],\n logExporters = [],\n spanProcessors = [],\n propagator = null,\n defaultInstrumentationConfig,\n instrumentations = [],\n contextManager = null,\n logProcessors = [],\n attributeScrubbers = [],\n enableDefaultAttributeScrubbing = true,\n additionalQueryParamsToScrub = [],\n logLevel = DiagLogLevel.ERROR,\n otelCollectorURL,\n apiURL,\n diagLogger = diag.createComponentLogger({\n namespace: 'mxl-sdk',\n }),\n dynamicSDKConfigManager: providedDynamicSDKConfigManager,\n dynamicSDKConfig,\n registerGlobally = true,\n blockNetworkSpanForwarding = false,\n restrictedProtocols = new Set(['file:']),\n useDocumentTitleAsPageLabel = true,\n recordUserSessions = true,\n replay,\n serviceName,\n maxUserSessionDurationSeconds = DEFAULT_USER_SESSION_MAX_DURATION_SECONDS,\n inactivityTimeoutSeconds = DEFAULT_USER_SESSION_INACTIVITY_TIMEOUT_SECONDS,\n }: SDKInitConfig = {} as SDKInitConfig,\n): SDKControl | false => {\n try {\n if (registerGlobally) {\n const existingSDK = registry.registered();\n if (existingSDK !== null) {\n diagLogger.warn(\n 'SDK has already been successfully initialized, skipping this invocation of initSDK',\n );\n return existingSDK;\n }\n }\n\n diag.setLogger(new DiagConsoleLogger(), {\n logLevel,\n });\n\n if (typeof window === 'undefined') {\n diagLogger.warn('browser not detected, skipping initialization');\n return false;\n }\n\n const perf = new OTelPerformanceManager();\n const initSDKStart = perf.getNowMillis();\n const validatedAppID = validateAppID(appID);\n const validatedAppVersion = validateAppVersion(appVersion);\n\n const sendingToMXL = validatedAppID !== undefined;\n\n if (!sendingToMXL && !logExporters.length && !spanExporters.length) {\n throw new Error(\n 'when appID is omitted, at least one logExporter or spanExporter must be set',\n );\n }\n\n if (restrictedProtocols.has(window.location.protocol)) {\n throw new Error(\n `not initializing due to restricted protocol: ${window.location.protocol}`,\n );\n }\n\n if (sendingToMXL && typeof CompressionStream === 'undefined') {\n throw new Error(\n 'CompressionStream is not supported in this browser and required for data compression.',\n );\n }\n\n const namespace = registerGlobally ? undefined : validatedAppID;\n const sdkLocalStorage = new NamespacedStorage({\n diag: diagLogger,\n namespace,\n storage: window.localStorage,\n });\n const sdkSessionStorage = new NamespacedStorage({\n diag: diagLogger,\n namespace,\n storage: window.sessionStorage,\n });\n\n const userManager = setupUser({ registerGlobally, sdkLocalStorage });\n const enduserPseudoID = userManager.getMXLUserId();\n if (sendingToMXL && !enduserPseudoID) {\n throw new Error('userID is required when using MXL exporter');\n }\n\n const dynamicDefaultConfig = {\n ...dynamicSDKConfig,\n };\n\n const dynamicConfigManager =\n providedDynamicSDKConfigManager ??\n new MXLDynamicConfigManager({\n appID: validatedAppID,\n appVersion: validatedAppVersion,\n defaultConfig: dynamicDefaultConfig,\n deviceId: enduserPseudoID,\n apiURL,\n storage: sdkLocalStorage,\n });\n void dynamicConfigManager.refreshRemoteConfig();\n\n const resolvedServiceName =\n dynamicConfigManager.resolveApplicationServiceName?.(serviceName) ??\n (() => {\n const fromInit = serviceName?.trim();\n if (fromInit) {\n return fromInit;\n }\n const fromCfg = dynamicConfigManager.getConfig().serviceName?.trim();\n if (fromCfg) {\n return fromCfg;\n }\n return OTEL_DEFAULT_SERVICE_NAME;\n })();\n\n const resourceWithWebSDKAttributes = getWebSDKOverridableResource({\n serviceName: resolvedServiceName,\n })\n .merge(resource)\n .merge(\n getWebSDKResource({\n appVersion: validatedAppVersion,\n diagLogger,\n pageSessionStorage: sdkSessionStorage,\n }),\n );\n\n const sdkFeaturesManager = new MXLSDKFeaturesManager({\n blockNetworkSpanForwarding,\n deviceId: enduserPseudoID,\n dynamicConfigManager,\n });\n\n if (!sdkFeaturesManager.isSDKEnabled()) {\n diagLogger.debug('SDK is disabled, skipping initialization.');\n\n return false;\n }\n\n const nsfValid = nsfConfigValidation({\n defaultInstrumentationConfig,\n diag: diagLogger,\n featureManager: sdkFeaturesManager,\n propagator,\n registerGlobally,\n });\n\n const limitManager = new MXLLimitManager(DEFAULT_LIMITS);\n\n const finalAttributeScrubbers: AttributeScrubber[] = [\n ...(enableDefaultAttributeScrubbing\n ? getDefaultAttributeScrubbers(additionalQueryParamsToScrub)\n : []),\n ...attributeScrubbers,\n ];\n\n const userSessionManager = setupUserSession({\n limitManager,\n perf,\n registerGlobally,\n sdkLocalStorage,\n sdkSessionStorage,\n userSessionConfig: {\n inactivityTimeoutSeconds,\n maxUserSessionDurationSeconds,\n },\n });\n\n let mxlSpanProcessor: MXLSessionPartBatchedSpanProcessor | undefined;\n let mxlLogProcessor: BatchLogRecordProcessor | undefined;\n if (sendingToMXL) {\n mxlSpanProcessor = new MXLSessionPartBatchedSpanProcessor({\n emptySessionAvoidanceEnabled:\n sdkFeaturesManager.isEmptySessionAvoidanceEnabled(),\n exporter: new MXLTraceExporter({\n appID: validatedAppID,\n otelCollectorURL,\n userID: enduserPseudoID,\n }),\n limitManager,\n userSessionManager,\n });\n\n mxlLogProcessor = new BatchLogRecordProcessor(\n new MXLLogExporter({\n appID: validatedAppID,\n otelCollectorURL,\n userID: enduserPseudoID,\n }),\n );\n }\n\n const pageManager = setupPage({\n registerGlobally,\n useDocumentTitleAsPageLabel,\n });\n\n const { tracerProvider, mxlTraceManager } = setupTraces({\n attributeScrubbers: finalAttributeScrubbers,\n contextManager,\n mxlSpanProcessor,\n pageManager,\n propagator: nsfValid ? new MXLW3CTraceContextPropagator() : propagator,\n registerGlobally,\n resource: resourceWithWebSDKAttributes,\n spanExporters,\n spanProcessors,\n userManager,\n });\n\n userSessionManager.setTracerProvider(tracerProvider);\n\n const { loggerProvider, mxlLogManager } = setupLogs({\n attributeScrubbers: finalAttributeScrubbers,\n limitManager,\n logExporters,\n logProcessors,\n mxlLogProcessor,\n pageManager,\n registerGlobally,\n resource: resourceWithWebSDKAttributes,\n sdkLocalStorage,\n userManager,\n userSessionManager,\n visibilityDoc: window.document,\n });\n\n userSessionManager.startSessionPartInternal('init');\n\n const windowDisableSessionRec =\n typeof window !== 'undefined' &&\n (window as unknown as { __MXL_DISABLE_SESSION_RECORDER?: boolean })\n .__MXL_DISABLE_SESSION_RECORDER === true;\n\n const { recordUserSessions: effectiveRecordUserSessions, replay: replayUserOptions } =\n resolveEffectiveReplayConfig({\n dynamicConfig: dynamicConfigManager.getConfig(),\n isSessionReplayEnabled: sdkFeaturesManager.isSessionReplayEnabled(),\n recordUserSessions,\n replay,\n });\n\n const includeReplay = Boolean(\n sendingToMXL &&\n validatedAppID &&\n enduserPseudoID &&\n !windowDisableSessionRec &&\n sdkFeaturesManager.isSessionReplayEnabled(),\n );\n\n const replayRedundantOmit =\n includeReplay &&\n effectiveRecordUserSessions &&\n replayUserOptions?.omitRedundantInstrumentations\n ? ([\n 'click',\n 'exception',\n '@opentelemetry/instrumentation-fetch',\n '@opentelemetry/instrumentation-xml-http-request',\n ] as const)\n : undefined;\n\n const effectiveDefaultInstrumentationConfig =\n replayRedundantOmit === undefined\n ? defaultInstrumentationConfig\n : {\n ...defaultInstrumentationConfig,\n omit: new Set([\n ...(defaultInstrumentationConfig?.omit ?? []),\n ...replayRedundantOmit,\n ]),\n };\n\n const replayContext: ReplayContext | undefined =\n includeReplay && validatedAppID && enduserPseudoID\n ? {\n appID: validatedAppID,\n appVersion: validatedAppVersion,\n apiURL,\n serviceName: resolvedServiceName,\n transport: createReplayTransportFromInit({\n appID: validatedAppID,\n apiURL,\n otelCollectorURL,\n userID: enduserPseudoID,\n }),\n userID: enduserPseudoID,\n }\n : undefined;\n\n const buildDefaultInstrumentations = () =>\n setupDefaultInstrumentations(effectiveDefaultInstrumentationConfig, {\n includeReplay,\n limitManager,\n logManager: mxlLogManager,\n pageManager,\n recordUserSessions: effectiveRecordUserSessions,\n replayContext,\n replayOptions: replayUserOptions,\n sessionStorage: sdkSessionStorage,\n userSessionManager,\n });\n\n // NOTE: we require setupInstrumentation to run the last, after setupLogs and setupTraces. This is how OTel works wrt\n // The dependencies between instrumentations and global providers. We need the providers for tracers, and logs to be\n // Setup before we enable instrumentations.\n let replayInstrumentation: ReplayInstrumentation | undefined;\n\n let disableInstrumentations: (() => void) | undefined;\n let disableNetworkInstrumentations: (() => void) | undefined;\n\n if (!registerGlobally) {\n const defaultInstrumentations = buildDefaultInstrumentations();\n replayInstrumentation = defaultInstrumentations.find(\n (instrumentation): instrumentation is ReplayInstrumentation =>\n instrumentation instanceof ReplayInstrumentation,\n );\n\n disableInstrumentations = registerInstrumentations({\n instrumentations: [...defaultInstrumentations, ...instrumentations],\n loggerProvider,\n tracerProvider,\n });\n\n void loadNetworkInstrumentations(\n effectiveDefaultInstrumentationConfig,\n ).then((networkInstrumentations) => {\n if (networkInstrumentations.length === 0) {\n return;\n }\n disableNetworkInstrumentations = registerInstrumentations({\n instrumentations: networkInstrumentations,\n loggerProvider,\n tracerProvider,\n });\n });\n } else {\n const defaultInstrumentations = setupDefaultInstrumentations(\n effectiveDefaultInstrumentationConfig,\n {\n includeReplay,\n limitManager,\n pageManager,\n recordUserSessions: effectiveRecordUserSessions,\n replayContext,\n replayOptions: replayUserOptions,\n sessionStorage: sdkSessionStorage,\n userSessionManager,\n },\n );\n replayInstrumentation = defaultInstrumentations.find(\n (instrumentation): instrumentation is ReplayInstrumentation =>\n instrumentation instanceof ReplayInstrumentation,\n );\n\n disableInstrumentations = registerInstrumentations({\n instrumentations: [...defaultInstrumentations, ...instrumentations],\n });\n\n void loadNetworkInstrumentations(\n effectiveDefaultInstrumentationConfig,\n ).then((networkInstrumentations) => {\n if (networkInstrumentations.length === 0) {\n return;\n }\n disableNetworkInstrumentations = registerInstrumentations({\n instrumentations: networkInstrumentations,\n });\n });\n }\n\n let shutdownCalled = false;\n let stopCalled = false;\n\n const stopSdk = (): void => {\n if (stopCalled) {\n return;\n }\n stopCalled = true;\n\n replayInstrumentation?.disable();\n disableInstrumentations?.();\n disableNetworkInstrumentations?.();\n userSessionManager._shutdown();\n };\n\n const sessionRecording = replayInstrumentation\n ? createSessionRecordingControlFromReplay(replayInstrumentation)\n : noopSessionRecording;\n\n diagLogger.info('successfully initialized the SDK');\n\n const sdkControl: SDKControl = {\n flush: async () => {\n await tracerProvider.forceFlush();\n await loggerProvider.forceFlush();\n },\n log: mxlLogManager,\n page: pageManager,\n session: userSessionManager,\n sessionRecording,\n setDynamicConfig: (config: Partial<DynamicSDKConfig>) => {\n dynamicConfigManager.setConfig(config);\n },\n shutdown: async () => {\n if (shutdownCalled) {\n return;\n }\n shutdownCalled = true;\n stopSdk();\n await tracerProvider.shutdown();\n await loggerProvider.shutdown();\n },\n stop: stopSdk,\n trace: mxlTraceManager,\n user: userManager,\n };\n\n if (registerGlobally) {\n registry.register(sdkControl);\n }\n\n userSessionManager.recordSDKStartupDuration(\n perf.getNowMillis() - initSDKStart,\n );\n\n return sdkControl;\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Unknown error.';\n diagLogger.error(`failed to initialize the SDK: ${message}`);\n return false;\n }\n};\n\nconst setupUser = ({ registerGlobally, sdkLocalStorage }: SetupUserArgs) => {\n const mxlUserManager = new MXLUserManager({\n storage: sdkLocalStorage,\n });\n\n if (registerGlobally) {\n user.setGlobalUserManager(mxlUserManager);\n }\n\n return mxlUserManager;\n};\n\nconst setupUserSession = ({\n limitManager,\n perf,\n registerGlobally,\n sdkLocalStorage,\n sdkSessionStorage,\n userSessionConfig,\n}: SetupUserSessionArgs) => {\n const mxlUserSessionManager = new MXLUserSessionManager({\n config: userSessionConfig,\n limitManager,\n perf,\n storage: sdkLocalStorage,\n tabStorage: sdkSessionStorage,\n visibilityDoc: window.document,\n });\n\n if (registerGlobally) {\n session.setGlobalUserSessionManager(mxlUserSessionManager);\n }\n\n return mxlUserSessionManager;\n};\n\nconst setupTraces = ({\n resource,\n userManager,\n spanExporters,\n spanProcessors = [],\n propagator = null,\n contextManager = null,\n attributeScrubbers,\n registerGlobally,\n mxlSpanProcessor,\n pageManager,\n}: SetupTracesArgs) => {\n const finalSpanProcessors: SpanProcessor[] = [\n ...spanProcessors,\n new BrowserSpanProcessor(),\n new MXLNetworkSpanProcessor(),\n new UserSpanProcessor({ userManager }),\n new PageSpanProcessor({ pageManager }),\n new SpanScrubProcessor({ attributeScrubbers }),\n ];\n\n spanExporters?.forEach((exporter) => {\n finalSpanProcessors.push(new BatchSpanProcessor(exporter));\n });\n\n if (mxlSpanProcessor) {\n finalSpanProcessors.push(mxlSpanProcessor);\n }\n\n const tracerProvider = new WebTracerProvider({\n resource,\n spanLimits: {\n // Session properties are stored as attributes on the session span, add a\n // Buffer here so that there is room for our internal attributes\n attributeCountLimit: DEFAULT_LIMITS.maxAllowed.session_property * 2,\n // Breadcrumbs are stored as events on the session span, add a\n // Buffer here so that there is room for our internal events\n eventCountLimit: DEFAULT_LIMITS.maxAllowed.breadcrumb * 2,\n },\n spanProcessors: finalSpanProcessors,\n });\n\n const mxlTraceManager = new MXLTraceManager({\n tracerProvider: registerGlobally ? undefined : tracerProvider,\n });\n\n if (registerGlobally) {\n trace.setGlobalTraceManager(mxlTraceManager);\n tracerProvider.register({\n // WebTracerProvider.register has different fallback behaviours depending on whether null or undefined is passed,\n // Be more explicit here and always supply a StackContextManager if the config did not specify one. If a user really\n // Wants to turn off context management they can pass a no-op manager explicitly:\n // https://github.com/open-telemetry/opentelemetry-js/blob/4f0b6285af24b71a9fa022755aaa3b6a63ae5033/packages/opentelemetry-sdk-trace-web/src/WebTracerProvider.ts#L39\n contextManager: contextManager || new StackContextManager(),\n propagator,\n });\n }\n\n return { mxlTraceManager, tracerProvider };\n};\n\nconst setupLogs = ({\n resource,\n userManager,\n logExporters,\n logProcessors,\n userSessionManager,\n limitManager,\n attributeScrubbers,\n registerGlobally,\n mxlLogProcessor,\n sdkLocalStorage,\n pageManager,\n visibilityDoc = window.document,\n}: SetupLogsArgs) => {\n const finalLogProcessors: LogRecordProcessor[] = [\n ...logProcessors,\n new UserSessionLogRecordProcessor({\n userSessionManager,\n }),\n new BrowserLogRecordProcessor(),\n new MXLLogRecordProcessor(),\n new UserLogRecordProcessor({ userManager }),\n new LogRecordScrubProcessor({ attributeScrubbers }),\n new PageLogRecordProcessor({ pageManager }),\n ];\n\n logExporters?.forEach((exporter) => {\n finalLogProcessors.push(new BatchLogRecordProcessor(exporter));\n });\n\n if (mxlLogProcessor) {\n finalLogProcessors.push(mxlLogProcessor);\n }\n\n const loggerProvider = new LoggerProvider({\n processors: finalLogProcessors,\n resource,\n });\n\n const mxlLogManager = new MXLLogManager({\n limitManager,\n loggerProvider: registerGlobally ? undefined : loggerProvider,\n storage: sdkLocalStorage,\n userSessionManager,\n visibilityDoc,\n });\n\n if (registerGlobally) {\n logs.setGlobalLoggerProvider(loggerProvider);\n log.setGlobalLogManager(mxlLogManager);\n }\n\n return { loggerProvider, mxlLogManager };\n};\n\nconst setupPage = ({\n useDocumentTitleAsPageLabel,\n registerGlobally,\n}: SetupPageArgs) => {\n const mxlPageManager = new MXLPageManager({\n useDocumentTitleAsPageLabel,\n });\n\n if (registerGlobally) {\n page.setGlobalPageManager(mxlPageManager);\n }\n\n return mxlPageManager;\n};\n"],"mappings":"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"}
@@ -32,6 +32,9 @@ interface SessionRecordingControl {
32
32
  isRecording: () => boolean;
33
33
  setEnabled: (enabled: boolean) => void;
34
34
  }
35
+ type DynamicReplayConfig = Partial<ReplayUserConfig> & {
36
+ /** Device rollout pct (0–100). Not part of rrweb init options. */pctEnabled?: number;
37
+ };
35
38
  interface DynamicSDKConfig {
36
39
  /**
37
40
  * Pct of users that are sampled. 100% means all users are sampled.
@@ -46,9 +49,18 @@ interface DynamicSDKConfig {
46
49
  */
47
50
  networkSpansForwardingThreshold?: number;
48
51
  /**
49
- * When set remotely via the MXL config service (`service_name` JSON field), overrides init-time naming for OpenTelemetry [`service.name`](https://opentelemetry.io/docs/specs/semconv/resource/#service).
52
+ * When set remotely via the MXL config service (`serviceName` JSON field), overrides init-time naming for OpenTelemetry [`service.name`](https://opentelemetry.io/docs/specs/semconv/resource/#service).
50
53
  */
51
54
  serviceName?: string;
55
+ /**
56
+ * Pct of devices that should skip exporting OTel session span batches with no child spans.
57
+ * Set remotely via `emptySessionAvoidanceEnabledPct`.
58
+ */
59
+ emptySessionAvoidanceEnabledPct?: number;
60
+ /**
61
+ * Session replay options from remote config (`sessionReplay` JSON object).
62
+ */
63
+ replay?: DynamicReplayConfig;
52
64
  }
53
65
  interface DynamicConfigManager {
54
66
  refreshRemoteConfig: () => Promise<void>;
@@ -69,7 +81,7 @@ interface BaseSDKInitConfig {
69
81
  appVersion?: string;
70
82
  /**
71
83
  * Logical [`service.name`](https://opentelemetry.io/docs/specs/semconv/resource/#service) for your application when sending to collectors.
72
- * Remote JSON field `service_name` from the MXL config service overrides this after merge when present.
84
+ * Remote JSON field `serviceName` from the MXL config service overrides this after merge when present.
73
85
  * When unset everywhere, defaults to OpenTelemetry [`unknown_service`](https://opentelemetry.io/docs/languages/sdk-configuration/general/).
74
86
  */
75
87
  serviceName?: string;
@@ -157,13 +169,17 @@ interface BaseSDKInitConfig {
157
169
  additionalQueryParamsToScrub?: string[];
158
170
  diagLogger?: DiagLogger;
159
171
  /**
160
- * MxlDataURL is used to specify a custom MXL data URL. This is only used for testing purposes.
172
+ * Base URL for the OpenTelemetry collector (traces and logs export).
173
+ *
174
+ * **default**: http://mxl-otelcol.apps.ocpthikadev01.safaricom.net
161
175
  */
162
- mxlDataURL?: string;
176
+ otelCollectorURL?: string;
163
177
  /**
164
- * MxlConfigURL is used to specify a custom MXL configuration URL. This is only used for testing purposes.
178
+ * Base URL for the MXL API (remote config and session replay).
179
+ *
180
+ * **default**: http://mxl-basket.apps.ocpthikadev01.safaricom.net
165
181
  */
166
- mxlConfigURL?: string;
182
+ apiURL?: string;
167
183
  /**
168
184
  * DynamicSDKConfigManager is used to manage dynamic SDK configuration. The manager can connect to a
169
185
  * remote configuration service to fetch the latest configuration. By default, the SDK will use a config manager that
@@ -371,5 +387,5 @@ interface SDKRegistryManager {
371
387
  registered: () => SDKControl | null;
372
388
  }
373
389
  //#endregion
374
- export { DefaultInstrumentationConfig, DynamicConfigManager, DynamicSDKConfig, type ReplayUserConfig, SDKControl, SDKInitConfig, SDKRegistryManager, SessionRecordingControl, SetupDefaultInstrumentationsArgs, SetupLogsArgs, SetupPageArgs, SetupTracesArgs, SetupUserArgs, SetupUserSessionArgs };
390
+ export { DefaultInstrumentationConfig, DynamicConfigManager, DynamicReplayConfig, DynamicSDKConfig, type ReplayUserConfig, SDKControl, SDKInitConfig, SDKRegistryManager, SessionRecordingControl, SetupDefaultInstrumentationsArgs, SetupLogsArgs, SetupPageArgs, SetupTracesArgs, SetupUserArgs, SetupUserSessionArgs };
375
391
  //# sourceMappingURL=types.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","names":[],"sources":["../../src/sdk/types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"types.d.cts","names":[],"sources":["../../src/sdk/types.ts"],"mappings":"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"}
@@ -32,6 +32,9 @@ interface SessionRecordingControl {
32
32
  isRecording: () => boolean;
33
33
  setEnabled: (enabled: boolean) => void;
34
34
  }
35
+ type DynamicReplayConfig = Partial<ReplayUserConfig> & {
36
+ /** Device rollout pct (0–100). Not part of rrweb init options. */pctEnabled?: number;
37
+ };
35
38
  interface DynamicSDKConfig {
36
39
  /**
37
40
  * Pct of users that are sampled. 100% means all users are sampled.
@@ -46,9 +49,18 @@ interface DynamicSDKConfig {
46
49
  */
47
50
  networkSpansForwardingThreshold?: number;
48
51
  /**
49
- * When set remotely via the MXL config service (`service_name` JSON field), overrides init-time naming for OpenTelemetry [`service.name`](https://opentelemetry.io/docs/specs/semconv/resource/#service).
52
+ * When set remotely via the MXL config service (`serviceName` JSON field), overrides init-time naming for OpenTelemetry [`service.name`](https://opentelemetry.io/docs/specs/semconv/resource/#service).
50
53
  */
51
54
  serviceName?: string;
55
+ /**
56
+ * Pct of devices that should skip exporting OTel session span batches with no child spans.
57
+ * Set remotely via `emptySessionAvoidanceEnabledPct`.
58
+ */
59
+ emptySessionAvoidanceEnabledPct?: number;
60
+ /**
61
+ * Session replay options from remote config (`sessionReplay` JSON object).
62
+ */
63
+ replay?: DynamicReplayConfig;
52
64
  }
53
65
  interface DynamicConfigManager {
54
66
  refreshRemoteConfig: () => Promise<void>;
@@ -69,7 +81,7 @@ interface BaseSDKInitConfig {
69
81
  appVersion?: string;
70
82
  /**
71
83
  * Logical [`service.name`](https://opentelemetry.io/docs/specs/semconv/resource/#service) for your application when sending to collectors.
72
- * Remote JSON field `service_name` from the MXL config service overrides this after merge when present.
84
+ * Remote JSON field `serviceName` from the MXL config service overrides this after merge when present.
73
85
  * When unset everywhere, defaults to OpenTelemetry [`unknown_service`](https://opentelemetry.io/docs/languages/sdk-configuration/general/).
74
86
  */
75
87
  serviceName?: string;
@@ -157,13 +169,17 @@ interface BaseSDKInitConfig {
157
169
  additionalQueryParamsToScrub?: string[];
158
170
  diagLogger?: DiagLogger;
159
171
  /**
160
- * MxlDataURL is used to specify a custom MXL data URL. This is only used for testing purposes.
172
+ * Base URL for the OpenTelemetry collector (traces and logs export).
173
+ *
174
+ * **default**: http://mxl-otelcol.apps.ocpthikadev01.safaricom.net
161
175
  */
162
- mxlDataURL?: string;
176
+ otelCollectorURL?: string;
163
177
  /**
164
- * MxlConfigURL is used to specify a custom MXL configuration URL. This is only used for testing purposes.
178
+ * Base URL for the MXL API (remote config and session replay).
179
+ *
180
+ * **default**: http://mxl-basket.apps.ocpthikadev01.safaricom.net
165
181
  */
166
- mxlConfigURL?: string;
182
+ apiURL?: string;
167
183
  /**
168
184
  * DynamicSDKConfigManager is used to manage dynamic SDK configuration. The manager can connect to a
169
185
  * remote configuration service to fetch the latest configuration. By default, the SDK will use a config manager that
@@ -371,5 +387,5 @@ interface SDKRegistryManager {
371
387
  registered: () => SDKControl | null;
372
388
  }
373
389
  //#endregion
374
- export { DefaultInstrumentationConfig, DynamicConfigManager, DynamicSDKConfig, type ReplayUserConfig, SDKControl, SDKInitConfig, SDKRegistryManager, SessionRecordingControl, SetupDefaultInstrumentationsArgs, SetupLogsArgs, SetupPageArgs, SetupTracesArgs, SetupUserArgs, SetupUserSessionArgs };
390
+ export { DefaultInstrumentationConfig, DynamicConfigManager, DynamicReplayConfig, DynamicSDKConfig, type ReplayUserConfig, SDKControl, SDKInitConfig, SDKRegistryManager, SessionRecordingControl, SetupDefaultInstrumentationsArgs, SetupLogsArgs, SetupPageArgs, SetupTracesArgs, SetupUserArgs, SetupUserSessionArgs };
375
391
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../src/sdk/types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../src/sdk/types.ts"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@safaricom-mxl/web-sdk",
3
- "version": "0.0.19",
3
+ "version": "0.0.20",
4
4
  "description": "MXL Web SDK",
5
5
  "keywords": [
6
6
  "instrumentation",