@safaricom-mxl/web-sdk 0.0.19 → 0.0.21

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 (160) hide show
  1. package/DATA_EXPORT.md +11 -8
  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/SessionRecording.cjs +1 -0
  67. package/dist/instrumentations/replay/session-recording/SessionRecording.cjs.map +1 -1
  68. package/dist/instrumentations/replay/session-recording/SessionRecording.js +1 -0
  69. package/dist/instrumentations/replay/session-recording/SessionRecording.js.map +1 -1
  70. package/dist/instrumentations/replay/session-recording/config.cjs.map +1 -1
  71. package/dist/instrumentations/replay/session-recording/config.d.cts +1 -1
  72. package/dist/instrumentations/replay/session-recording/config.d.cts.map +1 -1
  73. package/dist/instrumentations/replay/session-recording/config.d.ts +1 -1
  74. package/dist/instrumentations/replay/session-recording/config.d.ts.map +1 -1
  75. package/dist/instrumentations/replay/session-recording/config.js.map +1 -1
  76. package/dist/instrumentations/replay/transport/replayTransport.cjs +31 -11
  77. package/dist/instrumentations/replay/transport/replayTransport.cjs.map +1 -1
  78. package/dist/instrumentations/replay/transport/replayTransport.d.cts +3 -2
  79. package/dist/instrumentations/replay/transport/replayTransport.d.cts.map +1 -1
  80. package/dist/instrumentations/replay/transport/replayTransport.d.ts +3 -2
  81. package/dist/instrumentations/replay/transport/replayTransport.d.ts.map +1 -1
  82. package/dist/instrumentations/replay/transport/replayTransport.js +31 -11
  83. package/dist/instrumentations/replay/transport/replayTransport.js.map +1 -1
  84. package/dist/instrumentations/replay/transport/types.d.cts +3 -1
  85. package/dist/instrumentations/replay/transport/types.d.cts.map +1 -1
  86. package/dist/instrumentations/replay/transport/types.d.ts +3 -1
  87. package/dist/instrumentations/replay/transport/types.d.ts.map +1 -1
  88. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs +19 -11
  89. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.cjs.map +1 -1
  90. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.cts +3 -3
  91. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.cts.map +1 -1
  92. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.ts +3 -3
  93. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.d.ts.map +1 -1
  94. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js +19 -11
  95. package/dist/managers/MXLConfigManager/MXLDynamicConfigManager.js.map +1 -1
  96. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.cjs +28 -0
  97. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.cjs.map +1 -0
  98. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.cts +23 -0
  99. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.cts.map +1 -0
  100. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.ts +23 -0
  101. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.d.ts.map +1 -0
  102. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.js +27 -0
  103. package/dist/managers/MXLConfigManager/resolveEffectiveReplayConfig.js.map +1 -0
  104. package/dist/managers/MXLConfigManager/types.d.cts +16 -6
  105. package/dist/managers/MXLConfigManager/types.d.cts.map +1 -1
  106. package/dist/managers/MXLConfigManager/types.d.ts +16 -6
  107. package/dist/managers/MXLConfigManager/types.d.ts.map +1 -1
  108. package/dist/managers/MXLConfigManager/utils.cjs +66 -1
  109. package/dist/managers/MXLConfigManager/utils.cjs.map +1 -1
  110. package/dist/managers/MXLConfigManager/utils.d.cts +10 -3
  111. package/dist/managers/MXLConfigManager/utils.d.cts.map +1 -1
  112. package/dist/managers/MXLConfigManager/utils.d.ts +10 -3
  113. package/dist/managers/MXLConfigManager/utils.d.ts.map +1 -1
  114. package/dist/managers/MXLConfigManager/utils.js +64 -2
  115. package/dist/managers/MXLConfigManager/utils.js.map +1 -1
  116. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.cjs +8 -0
  117. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.cjs.map +1 -1
  118. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.cts +2 -0
  119. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.cts.map +1 -1
  120. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.ts +2 -0
  121. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.d.ts.map +1 -1
  122. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.js +8 -0
  123. package/dist/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.js.map +1 -1
  124. package/dist/managers/MXLSDKFeaturesManager/types.d.cts +2 -0
  125. package/dist/managers/MXLSDKFeaturesManager/types.d.cts.map +1 -1
  126. package/dist/managers/MXLSDKFeaturesManager/types.d.ts +2 -0
  127. package/dist/managers/MXLSDKFeaturesManager/types.d.ts.map +1 -1
  128. package/dist/mxl-web-sdk.js +2 -2
  129. package/dist/mxl-web-sdk.js.map +1 -1
  130. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.cjs +10 -1
  131. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.cjs.map +1 -1
  132. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.cts +3 -0
  133. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.cts.map +1 -1
  134. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.ts +3 -0
  135. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.d.ts.map +1 -1
  136. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.js +10 -1
  137. package/dist/processors/MXLSessionPartBatchedSpanProcessor/MXLSessionPartBatchedSpanProcessor.js.map +1 -1
  138. package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.cts +1 -0
  139. package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.cts.map +1 -1
  140. package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.ts +1 -0
  141. package/dist/processors/MXLSessionPartBatchedSpanProcessor/types.d.ts.map +1 -1
  142. package/dist/resources/sdkConstants.cjs +1 -1
  143. package/dist/resources/sdkConstants.cjs.map +1 -1
  144. package/dist/resources/sdkConstants.d.cts +1 -1
  145. package/dist/resources/sdkConstants.d.ts +1 -1
  146. package/dist/resources/sdkConstants.js +1 -1
  147. package/dist/resources/sdkConstants.js.map +1 -1
  148. package/dist/sdk/initSDK.cjs +20 -12
  149. package/dist/sdk/initSDK.cjs.map +1 -1
  150. package/dist/sdk/initSDK.d.cts +3 -2
  151. package/dist/sdk/initSDK.d.cts.map +1 -1
  152. package/dist/sdk/initSDK.d.ts +3 -2
  153. package/dist/sdk/initSDK.d.ts.map +1 -1
  154. package/dist/sdk/initSDK.js +20 -12
  155. package/dist/sdk/initSDK.js.map +1 -1
  156. package/dist/sdk/types.d.cts +29 -7
  157. package/dist/sdk/types.d.cts.map +1 -1
  158. package/dist/sdk/types.d.ts +29 -7
  159. package/dist/sdk/types.d.ts.map +1 -1
  160. package/package.json +1 -1
@@ -7,14 +7,24 @@ interface RemoteConfigURLParams {
7
7
  appVersion: string;
8
8
  deviceId: string;
9
9
  }
10
+ interface RemoteSessionReplayConfig {
11
+ pctEnabled?: number;
12
+ sampleRate?: number;
13
+ maskAllInputs?: boolean;
14
+ maskAllText?: boolean;
15
+ flushIntervalMs?: number;
16
+ omitRedundantInstrumentations?: boolean;
17
+ debug?: boolean;
18
+ }
10
19
  interface RemoteConfig {
11
20
  threshold: number;
12
- network_span_forwarding?: {
13
- pct_enabled: number;
21
+ networkSpanForwarding?: {
22
+ pctEnabled: number;
14
23
  };
15
- empty_session_avoidance_enabled_pct?: number;
24
+ emptySessionAvoidanceEnabledPct?: number;
16
25
  /** When present from the MXL config service, overrides init-time `serviceName` / partial dynamic config for `service.name`. */
17
- service_name?: string;
26
+ serviceName?: string;
27
+ sessionReplay?: RemoteSessionReplayConfig;
18
28
  }
19
29
  interface StoredRemoteConfig {
20
30
  config: RemoteConfig;
@@ -27,8 +37,8 @@ interface MXLDynamicConfigManagerArgs {
27
37
  diag?: DiagLogger;
28
38
  storage?: Storage;
29
39
  defaultConfig?: Partial<DynamicSDKConfig>;
30
- mxlConfigURL?: string;
40
+ apiURL?: string;
31
41
  }
32
42
  //#endregion
33
- export { MXLDynamicConfigManagerArgs, RemoteConfig, RemoteConfigURLParams, StoredRemoteConfig };
43
+ export { MXLDynamicConfigManagerArgs, RemoteConfig, RemoteConfigURLParams, RemoteSessionReplayConfig, StoredRemoteConfig };
34
44
  //# sourceMappingURL=types.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","names":[],"sources":["../../../src/managers/MXLConfigManager/types.ts"],"mappings":";;;;UAEiB,qBAAA;EACf,SAAA;EACA,UAAA;EACA,QAAA;AAAA;AAAA,UAKe,YAAA;EACf,SAAA;EACA,uBAAA;IACE,WAAA;EAAA;EAEF,mCAAA;EALe;EAOf,YAAA;AAAA;AAAA,UAGe,kBAAA;EACf,MAAA,EAAQ,YAAA;EACR,IAAA;AAAA;AAAA,UAGe,2BAAA;EACf,KAAA;EACA,UAAA;EACA,QAAA;EACA,IAAA,GAAO,UAAA;EACP,OAAA,GAAU,OAAA;EACV,aAAA,GAAgB,OAAA,CAAQ,gBAAA;EACxB,YAAA;AAAA"}
1
+ {"version":3,"file":"types.d.cts","names":[],"sources":["../../../src/managers/MXLConfigManager/types.ts"],"mappings":";;;;UAEiB,qBAAA;EACf,SAAA;EACA,UAAA;EACA,QAAA;AAAA;AAAA,UAGe,yBAAA;EACf,UAAA;EACA,UAAA;EACA,aAAA;EACA,WAAA;EACA,eAAA;EACA,6BAAA;EACA,KAAA;AAAA;AAAA,UAKe,YAAA;EACf,SAAA;EACA,qBAAA;IACE,UAAA;EAAA;EAEF,+BAAA;EAXA;EAaA,WAAA;EACA,aAAA,GAAgB,yBAAA;AAAA;AAAA,UAGD,kBAAA;EACf,MAAA,EAAQ,YAAA;EACR,IAAA;AAAA;AAAA,UAGe,2BAAA;EACf,KAAA;EACA,UAAA;EACA,QAAA;EACA,IAAA,GAAO,UAAA;EACP,OAAA,GAAU,OAAA;EACV,aAAA,GAAgB,OAAA,CAAQ,gBAAA;EACxB,MAAA;AAAA"}
@@ -7,14 +7,24 @@ interface RemoteConfigURLParams {
7
7
  appVersion: string;
8
8
  deviceId: string;
9
9
  }
10
+ interface RemoteSessionReplayConfig {
11
+ pctEnabled?: number;
12
+ sampleRate?: number;
13
+ maskAllInputs?: boolean;
14
+ maskAllText?: boolean;
15
+ flushIntervalMs?: number;
16
+ omitRedundantInstrumentations?: boolean;
17
+ debug?: boolean;
18
+ }
10
19
  interface RemoteConfig {
11
20
  threshold: number;
12
- network_span_forwarding?: {
13
- pct_enabled: number;
21
+ networkSpanForwarding?: {
22
+ pctEnabled: number;
14
23
  };
15
- empty_session_avoidance_enabled_pct?: number;
24
+ emptySessionAvoidanceEnabledPct?: number;
16
25
  /** When present from the MXL config service, overrides init-time `serviceName` / partial dynamic config for `service.name`. */
17
- service_name?: string;
26
+ serviceName?: string;
27
+ sessionReplay?: RemoteSessionReplayConfig;
18
28
  }
19
29
  interface StoredRemoteConfig {
20
30
  config: RemoteConfig;
@@ -27,8 +37,8 @@ interface MXLDynamicConfigManagerArgs {
27
37
  diag?: DiagLogger;
28
38
  storage?: Storage;
29
39
  defaultConfig?: Partial<DynamicSDKConfig>;
30
- mxlConfigURL?: string;
40
+ apiURL?: string;
31
41
  }
32
42
  //#endregion
33
- export { MXLDynamicConfigManagerArgs, RemoteConfig, RemoteConfigURLParams, StoredRemoteConfig };
43
+ export { MXLDynamicConfigManagerArgs, RemoteConfig, RemoteConfigURLParams, RemoteSessionReplayConfig, StoredRemoteConfig };
34
44
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/managers/MXLConfigManager/types.ts"],"mappings":";;;;UAEiB,qBAAA;EACf,SAAA;EACA,UAAA;EACA,QAAA;AAAA;AAAA,UAKe,YAAA;EACf,SAAA;EACA,uBAAA;IACE,WAAA;EAAA;EAEF,mCAAA;EALe;EAOf,YAAA;AAAA;AAAA,UAGe,kBAAA;EACf,MAAA,EAAQ,YAAA;EACR,IAAA;AAAA;AAAA,UAGe,2BAAA;EACf,KAAA;EACA,UAAA;EACA,QAAA;EACA,IAAA,GAAO,UAAA;EACP,OAAA,GAAU,OAAA;EACV,aAAA,GAAgB,OAAA,CAAQ,gBAAA;EACxB,YAAA;AAAA"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/managers/MXLConfigManager/types.ts"],"mappings":";;;;UAEiB,qBAAA;EACf,SAAA;EACA,UAAA;EACA,QAAA;AAAA;AAAA,UAGe,yBAAA;EACf,UAAA;EACA,UAAA;EACA,aAAA;EACA,WAAA;EACA,eAAA;EACA,6BAAA;EACA,KAAA;AAAA;AAAA,UAKe,YAAA;EACf,SAAA;EACA,qBAAA;IACE,UAAA;EAAA;EAEF,+BAAA;EAXA;EAaA,WAAA;EACA,aAAA,GAAgB,yBAAA;AAAA;AAAA,UAGD,kBAAA;EACf,MAAA,EAAQ,YAAA;EACR,IAAA;AAAA;AAAA,UAGe,2BAAA;EACf,KAAA;EACA,UAAA;EACA,QAAA;EACA,IAAA,GAAO,UAAA;EACP,OAAA,GAAU,OAAA;EACV,aAAA,GAAgB,OAAA,CAAQ,gBAAA;EACxB,MAAA;AAAA"}
@@ -1,7 +1,72 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  //#region src/managers/MXLConfigManager/utils.ts
3
- const getConfigURL = (appId, { osVersion, appVersion, deviceId }, mxlConfigURL) => `${mxlConfigURL || `https://mxl-basket.apps.ocpthikadev01.safaricom.net`}/config?appId=${appId}&osVersion=${osVersion}&appVersion=${appVersion}&deviceId=${deviceId}`;
3
+ const getApiURL = (apiURL) => apiURL || "http://mxl-basket.apps.ocpthikadev01.safaricom.net";
4
+ const getOtelCollectorURL = (otelCollectorURL) => otelCollectorURL || "http://mxl-otel-collector.apps.ocpthikadev01.safaricom.net";
5
+ const getConfigURL = (appId, { osVersion, appVersion, deviceId }, apiURL) => `${getApiURL(apiURL)}/config?appId=${appId}&osVersion=${osVersion}&appVersion=${appVersion}&deviceId=${deviceId}`;
6
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
7
+ const readNumber = (record, camelKey, snakeKey) => {
8
+ const camelValue = record[camelKey];
9
+ if (typeof camelValue === "number") return camelValue;
10
+ const snakeValue = record[snakeKey];
11
+ if (typeof snakeValue === "number") return snakeValue;
12
+ };
13
+ const readBoolean = (record, camelKey, snakeKey) => {
14
+ const camelValue = record[camelKey];
15
+ if (typeof camelValue === "boolean") return camelValue;
16
+ const snakeValue = record[snakeKey];
17
+ if (typeof snakeValue === "boolean") return snakeValue;
18
+ };
19
+ const readString = (record, camelKey, snakeKey) => {
20
+ const camelValue = record[camelKey];
21
+ if (typeof camelValue === "string") return camelValue;
22
+ const snakeValue = record[snakeKey];
23
+ if (typeof snakeValue === "string") return snakeValue;
24
+ };
25
+ const normalizeSessionReplay = (raw) => {
26
+ if (!isRecord(raw)) return;
27
+ const replay = {};
28
+ const pctEnabled = readNumber(raw, "pctEnabled", "pct_enabled");
29
+ if (pctEnabled !== void 0) replay.pctEnabled = pctEnabled;
30
+ const sampleRate = readNumber(raw, "sampleRate", "sample_rate");
31
+ if (sampleRate !== void 0) replay.sampleRate = sampleRate;
32
+ const maskAllInputs = readBoolean(raw, "maskAllInputs", "mask_all_inputs");
33
+ if (maskAllInputs !== void 0) replay.maskAllInputs = maskAllInputs;
34
+ const maskAllText = readBoolean(raw, "maskAllText", "mask_all_text");
35
+ if (maskAllText !== void 0) replay.maskAllText = maskAllText;
36
+ const flushIntervalMs = readNumber(raw, "flushIntervalMs", "flush_interval_ms");
37
+ if (flushIntervalMs !== void 0) replay.flushIntervalMs = flushIntervalMs;
38
+ const omitRedundantInstrumentations = readBoolean(raw, "omitRedundantInstrumentations", "omit_redundant_instrumentations");
39
+ if (omitRedundantInstrumentations !== void 0) replay.omitRedundantInstrumentations = omitRedundantInstrumentations;
40
+ const debug = readBoolean(raw, "debug", "debug");
41
+ if (debug !== void 0) replay.debug = debug;
42
+ return Object.keys(replay).length > 0 ? replay : void 0;
43
+ };
44
+ /**
45
+ * Normalizes remote config JSON from the API or localStorage into camelCase
46
+ * {@link RemoteConfig}. Accepts legacy snake_case payloads for backward compatibility.
47
+ */
48
+ const normalizeStoredRemoteConfig = (raw) => {
49
+ if (!isRecord(raw)) throw new TypeError("Remote config must be an object");
50
+ const threshold = raw.threshold;
51
+ if (typeof threshold !== "number") throw new TypeError("Remote config threshold must be a number");
52
+ const normalized = { threshold };
53
+ const networkSpanForwardingRaw = raw.networkSpanForwarding ?? raw.network_span_forwarding;
54
+ if (isRecord(networkSpanForwardingRaw)) {
55
+ const pctEnabled = readNumber(networkSpanForwardingRaw, "pctEnabled", "pct_enabled");
56
+ if (pctEnabled !== void 0) normalized.networkSpanForwarding = { pctEnabled };
57
+ }
58
+ const emptySessionAvoidanceEnabledPct = readNumber(raw, "emptySessionAvoidanceEnabledPct", "empty_session_avoidance_enabled_pct");
59
+ if (emptySessionAvoidanceEnabledPct !== void 0) normalized.emptySessionAvoidanceEnabledPct = emptySessionAvoidanceEnabledPct;
60
+ const serviceName = readString(raw, "serviceName", "service_name");
61
+ if (serviceName !== void 0) normalized.serviceName = serviceName;
62
+ const sessionReplay = normalizeSessionReplay(raw.sessionReplay ?? raw.session_replay);
63
+ if (sessionReplay !== void 0) normalized.sessionReplay = sessionReplay;
64
+ return normalized;
65
+ };
4
66
  //#endregion
67
+ exports.getApiURL = getApiURL;
5
68
  exports.getConfigURL = getConfigURL;
69
+ exports.getOtelCollectorURL = getOtelCollectorURL;
70
+ exports.normalizeStoredRemoteConfig = normalizeStoredRemoteConfig;
6
71
 
7
72
  //# sourceMappingURL=utils.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs","names":[],"sources":["../../../src/managers/MXLConfigManager/utils.ts"],"sourcesContent":["import type { RemoteConfigURLParams } from './types';\n\nexport const getConfigURL = (\n appId: string,\n { osVersion, appVersion, deviceId }: RemoteConfigURLParams,\n mxlConfigURL?: string,\n): string =>\n `${mxlConfigURL || `https://mxl-basket.apps.ocpthikadev01.safaricom.net`}/config?appId=${appId}&osVersion=${osVersion}&appVersion=${appVersion}&deviceId=${deviceId}`;\n"],"mappings":";;AAEA,MAAa,gBACX,OACA,EAAE,WAAW,YAAY,YACzB,iBAEA,GAAG,gBAAgB,sDAAsD,gBAAgB,MAAM,aAAa,UAAU,cAAc,WAAW,YAAY"}
1
+ {"version":3,"file":"utils.cjs","names":[],"sources":["../../../src/managers/MXLConfigManager/utils.ts"],"sourcesContent":["import type {\n RemoteConfig,\n RemoteConfigURLParams,\n RemoteSessionReplayConfig,\n} from './types';\n\nexport const getApiURL = (apiURL?: string): string =>\n apiURL || 'http://mxl-basket.apps.ocpthikadev01.safaricom.net';\nexport const getOtelCollectorURL = (otelCollectorURL?: string): string =>\n otelCollectorURL || 'http://mxl-otel-collector.apps.ocpthikadev01.safaricom.net';\n\nexport const getConfigURL = (\n appId: string,\n { osVersion, appVersion, deviceId }: RemoteConfigURLParams,\n apiURL?: string,\n): string =>\n `${getApiURL(apiURL)}/config?appId=${appId}&osVersion=${osVersion}&appVersion=${appVersion}&deviceId=${deviceId}`;\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst readNumber = (\n record: Record<string, unknown>,\n camelKey: string,\n snakeKey: string,\n): number | undefined => {\n const camelValue = record[camelKey];\n if (typeof camelValue === 'number') {\n return camelValue;\n }\n\n const snakeValue = record[snakeKey];\n if (typeof snakeValue === 'number') {\n return snakeValue;\n }\n\n return undefined;\n};\n\nconst readBoolean = (\n record: Record<string, unknown>,\n camelKey: string,\n snakeKey: string,\n): boolean | undefined => {\n const camelValue = record[camelKey];\n if (typeof camelValue === 'boolean') {\n return camelValue;\n }\n\n const snakeValue = record[snakeKey];\n if (typeof snakeValue === 'boolean') {\n return snakeValue;\n }\n\n return undefined;\n};\n\nconst readString = (\n record: Record<string, unknown>,\n camelKey: string,\n snakeKey: string,\n): string | undefined => {\n const camelValue = record[camelKey];\n if (typeof camelValue === 'string') {\n return camelValue;\n }\n\n const snakeValue = record[snakeKey];\n if (typeof snakeValue === 'string') {\n return snakeValue;\n }\n\n return undefined;\n};\n\nconst normalizeSessionReplay = (\n raw: unknown,\n): RemoteSessionReplayConfig | undefined => {\n if (!isRecord(raw)) {\n return undefined;\n }\n\n const replay: RemoteSessionReplayConfig = {};\n\n const pctEnabled = readNumber(raw, 'pctEnabled', 'pct_enabled');\n if (pctEnabled !== undefined) {\n replay.pctEnabled = pctEnabled;\n }\n\n const sampleRate = readNumber(raw, 'sampleRate', 'sample_rate');\n if (sampleRate !== undefined) {\n replay.sampleRate = sampleRate;\n }\n\n const maskAllInputs = readBoolean(raw, 'maskAllInputs', 'mask_all_inputs');\n if (maskAllInputs !== undefined) {\n replay.maskAllInputs = maskAllInputs;\n }\n\n const maskAllText = readBoolean(raw, 'maskAllText', 'mask_all_text');\n if (maskAllText !== undefined) {\n replay.maskAllText = maskAllText;\n }\n\n const flushIntervalMs = readNumber(\n raw,\n 'flushIntervalMs',\n 'flush_interval_ms',\n );\n if (flushIntervalMs !== undefined) {\n replay.flushIntervalMs = flushIntervalMs;\n }\n\n const omitRedundantInstrumentations = readBoolean(\n raw,\n 'omitRedundantInstrumentations',\n 'omit_redundant_instrumentations',\n );\n if (omitRedundantInstrumentations !== undefined) {\n replay.omitRedundantInstrumentations = omitRedundantInstrumentations;\n }\n\n const debug = readBoolean(raw, 'debug', 'debug');\n if (debug !== undefined) {\n replay.debug = debug;\n }\n\n return Object.keys(replay).length > 0 ? replay : undefined;\n};\n\n/**\n * Normalizes remote config JSON from the API or localStorage into camelCase\n * {@link RemoteConfig}. Accepts legacy snake_case payloads for backward compatibility.\n */\nexport const normalizeStoredRemoteConfig = (raw: unknown): RemoteConfig => {\n if (!isRecord(raw)) {\n throw new TypeError('Remote config must be an object');\n }\n\n const threshold = raw.threshold;\n if (typeof threshold !== 'number') {\n throw new TypeError('Remote config threshold must be a number');\n }\n\n const normalized: RemoteConfig = { threshold };\n\n const networkSpanForwardingRaw =\n raw.networkSpanForwarding ?? raw.network_span_forwarding;\n if (isRecord(networkSpanForwardingRaw)) {\n const pctEnabled = readNumber(\n networkSpanForwardingRaw,\n 'pctEnabled',\n 'pct_enabled',\n );\n if (pctEnabled !== undefined) {\n normalized.networkSpanForwarding = { pctEnabled };\n }\n }\n\n const emptySessionAvoidanceEnabledPct = readNumber(\n raw,\n 'emptySessionAvoidanceEnabledPct',\n 'empty_session_avoidance_enabled_pct',\n );\n if (emptySessionAvoidanceEnabledPct !== undefined) {\n normalized.emptySessionAvoidanceEnabledPct =\n emptySessionAvoidanceEnabledPct;\n }\n\n const serviceName = readString(raw, 'serviceName', 'service_name');\n if (serviceName !== undefined) {\n normalized.serviceName = serviceName;\n }\n\n const sessionReplay = normalizeSessionReplay(\n raw.sessionReplay ?? raw.session_replay,\n );\n if (sessionReplay !== undefined) {\n normalized.sessionReplay = sessionReplay;\n }\n\n return normalized;\n};\n"],"mappings":";;AAMA,MAAa,aAAa,WACxB,UAAU;AACZ,MAAa,uBAAuB,qBAClC,oBAAoB;AAEtB,MAAa,gBACX,OACA,EAAE,WAAW,YAAY,YACzB,WAEA,GAAG,UAAU,OAAO,CAAC,gBAAgB,MAAM,aAAa,UAAU,cAAc,WAAW,YAAY;AAEzG,MAAM,YAAY,UAChB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,MAAM;AAEtE,MAAM,cACJ,QACA,UACA,aACuB;CACvB,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,SACxB,QAAO;CAGT,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,SACxB,QAAO;;AAMX,MAAM,eACJ,QACA,UACA,aACwB;CACxB,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,UACxB,QAAO;CAGT,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,UACxB,QAAO;;AAMX,MAAM,cACJ,QACA,UACA,aACuB;CACvB,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,SACxB,QAAO;CAGT,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,SACxB,QAAO;;AAMX,MAAM,0BACJ,QAC0C;AAC1C,KAAI,CAAC,SAAS,IAAI,CAChB;CAGF,MAAM,SAAoC,EAAE;CAE5C,MAAM,aAAa,WAAW,KAAK,cAAc,cAAc;AAC/D,KAAI,eAAe,KAAA,EACjB,QAAO,aAAa;CAGtB,MAAM,aAAa,WAAW,KAAK,cAAc,cAAc;AAC/D,KAAI,eAAe,KAAA,EACjB,QAAO,aAAa;CAGtB,MAAM,gBAAgB,YAAY,KAAK,iBAAiB,kBAAkB;AAC1E,KAAI,kBAAkB,KAAA,EACpB,QAAO,gBAAgB;CAGzB,MAAM,cAAc,YAAY,KAAK,eAAe,gBAAgB;AACpE,KAAI,gBAAgB,KAAA,EAClB,QAAO,cAAc;CAGvB,MAAM,kBAAkB,WACtB,KACA,mBACA,oBACD;AACD,KAAI,oBAAoB,KAAA,EACtB,QAAO,kBAAkB;CAG3B,MAAM,gCAAgC,YACpC,KACA,iCACA,kCACD;AACD,KAAI,kCAAkC,KAAA,EACpC,QAAO,gCAAgC;CAGzC,MAAM,QAAQ,YAAY,KAAK,SAAS,QAAQ;AAChD,KAAI,UAAU,KAAA,EACZ,QAAO,QAAQ;AAGjB,QAAO,OAAO,KAAK,OAAO,CAAC,SAAS,IAAI,SAAS,KAAA;;;;;;AAOnD,MAAa,+BAA+B,QAA+B;AACzE,KAAI,CAAC,SAAS,IAAI,CAChB,OAAM,IAAI,UAAU,kCAAkC;CAGxD,MAAM,YAAY,IAAI;AACtB,KAAI,OAAO,cAAc,SACvB,OAAM,IAAI,UAAU,2CAA2C;CAGjE,MAAM,aAA2B,EAAE,WAAW;CAE9C,MAAM,2BACJ,IAAI,yBAAyB,IAAI;AACnC,KAAI,SAAS,yBAAyB,EAAE;EACtC,MAAM,aAAa,WACjB,0BACA,cACA,cACD;AACD,MAAI,eAAe,KAAA,EACjB,YAAW,wBAAwB,EAAE,YAAY;;CAIrD,MAAM,kCAAkC,WACtC,KACA,mCACA,sCACD;AACD,KAAI,oCAAoC,KAAA,EACtC,YAAW,kCACT;CAGJ,MAAM,cAAc,WAAW,KAAK,eAAe,eAAe;AAClE,KAAI,gBAAgB,KAAA,EAClB,YAAW,cAAc;CAG3B,MAAM,gBAAgB,uBACpB,IAAI,iBAAiB,IAAI,eAC1B;AACD,KAAI,kBAAkB,KAAA,EACpB,YAAW,gBAAgB;AAG7B,QAAO"}
@@ -1,11 +1,18 @@
1
- import { RemoteConfigURLParams } from "./types.cjs";
1
+ import { RemoteConfig, RemoteConfigURLParams } from "./types.cjs";
2
2
 
3
3
  //#region src/managers/MXLConfigManager/utils.d.ts
4
+ declare const getApiURL: (apiURL?: string) => string;
5
+ declare const getOtelCollectorURL: (otelCollectorURL?: string) => string;
4
6
  declare const getConfigURL: (appId: string, {
5
7
  osVersion,
6
8
  appVersion,
7
9
  deviceId
8
- }: RemoteConfigURLParams, mxlConfigURL?: string) => string;
10
+ }: RemoteConfigURLParams, apiURL?: string) => string;
11
+ /**
12
+ * Normalizes remote config JSON from the API or localStorage into camelCase
13
+ * {@link RemoteConfig}. Accepts legacy snake_case payloads for backward compatibility.
14
+ */
15
+ declare const normalizeStoredRemoteConfig: (raw: unknown) => RemoteConfig;
9
16
  //#endregion
10
- export { getConfigURL };
17
+ export { getApiURL, getConfigURL, getOtelCollectorURL, normalizeStoredRemoteConfig };
11
18
  //# sourceMappingURL=utils.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.cts","names":[],"sources":["../../../src/managers/MXLConfigManager/utils.ts"],"mappings":";;;cAEa,YAAA,GACX,KAAA;EACA,SAAA;EAAA,UAAA;EAAA;AAAA,GAAqC,qBAAA,EACrC,YAAA"}
1
+ {"version":3,"file":"utils.d.cts","names":[],"sources":["../../../src/managers/MXLConfigManager/utils.ts"],"mappings":";;;cAMa,SAAA,GAAa,MAAA;AAAA,cAEb,mBAAA,GAAuB,gBAAA;AAAA,cAGvB,YAAA,GACX,KAAA;EACA,SAAA;EAAA,UAAA;EAAA;AAAA,GAAqC,qBAAA,EACrC,MAAA;;;;;cAwHW,2BAAA,GAA+B,GAAA,cAAe,YAAA"}
@@ -1,11 +1,18 @@
1
- import { RemoteConfigURLParams } from "./types.js";
1
+ import { RemoteConfig, RemoteConfigURLParams } from "./types.js";
2
2
 
3
3
  //#region src/managers/MXLConfigManager/utils.d.ts
4
+ declare const getApiURL: (apiURL?: string) => string;
5
+ declare const getOtelCollectorURL: (otelCollectorURL?: string) => string;
4
6
  declare const getConfigURL: (appId: string, {
5
7
  osVersion,
6
8
  appVersion,
7
9
  deviceId
8
- }: RemoteConfigURLParams, mxlConfigURL?: string) => string;
10
+ }: RemoteConfigURLParams, apiURL?: string) => string;
11
+ /**
12
+ * Normalizes remote config JSON from the API or localStorage into camelCase
13
+ * {@link RemoteConfig}. Accepts legacy snake_case payloads for backward compatibility.
14
+ */
15
+ declare const normalizeStoredRemoteConfig: (raw: unknown) => RemoteConfig;
9
16
  //#endregion
10
- export { getConfigURL };
17
+ export { getApiURL, getConfigURL, getOtelCollectorURL, normalizeStoredRemoteConfig };
11
18
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","names":[],"sources":["../../../src/managers/MXLConfigManager/utils.ts"],"mappings":";;;cAEa,YAAA,GACX,KAAA;EACA,SAAA;EAAA,UAAA;EAAA;AAAA,GAAqC,qBAAA,EACrC,YAAA"}
1
+ {"version":3,"file":"utils.d.ts","names":[],"sources":["../../../src/managers/MXLConfigManager/utils.ts"],"mappings":";;;cAMa,SAAA,GAAa,MAAA;AAAA,cAEb,mBAAA,GAAuB,gBAAA;AAAA,cAGvB,YAAA,GACX,KAAA;EACA,SAAA;EAAA,UAAA;EAAA;AAAA,GAAqC,qBAAA,EACrC,MAAA;;;;;cAwHW,2BAAA,GAA+B,GAAA,cAAe,YAAA"}
@@ -1,6 +1,68 @@
1
1
  //#region src/managers/MXLConfigManager/utils.ts
2
- const getConfigURL = (appId, { osVersion, appVersion, deviceId }, mxlConfigURL) => `${mxlConfigURL || `https://mxl-basket.apps.ocpthikadev01.safaricom.net`}/config?appId=${appId}&osVersion=${osVersion}&appVersion=${appVersion}&deviceId=${deviceId}`;
2
+ const getApiURL = (apiURL) => apiURL || "http://mxl-basket.apps.ocpthikadev01.safaricom.net";
3
+ const getOtelCollectorURL = (otelCollectorURL) => otelCollectorURL || "http://mxl-otel-collector.apps.ocpthikadev01.safaricom.net";
4
+ const getConfigURL = (appId, { osVersion, appVersion, deviceId }, apiURL) => `${getApiURL(apiURL)}/config?appId=${appId}&osVersion=${osVersion}&appVersion=${appVersion}&deviceId=${deviceId}`;
5
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
6
+ const readNumber = (record, camelKey, snakeKey) => {
7
+ const camelValue = record[camelKey];
8
+ if (typeof camelValue === "number") return camelValue;
9
+ const snakeValue = record[snakeKey];
10
+ if (typeof snakeValue === "number") return snakeValue;
11
+ };
12
+ const readBoolean = (record, camelKey, snakeKey) => {
13
+ const camelValue = record[camelKey];
14
+ if (typeof camelValue === "boolean") return camelValue;
15
+ const snakeValue = record[snakeKey];
16
+ if (typeof snakeValue === "boolean") return snakeValue;
17
+ };
18
+ const readString = (record, camelKey, snakeKey) => {
19
+ const camelValue = record[camelKey];
20
+ if (typeof camelValue === "string") return camelValue;
21
+ const snakeValue = record[snakeKey];
22
+ if (typeof snakeValue === "string") return snakeValue;
23
+ };
24
+ const normalizeSessionReplay = (raw) => {
25
+ if (!isRecord(raw)) return;
26
+ const replay = {};
27
+ const pctEnabled = readNumber(raw, "pctEnabled", "pct_enabled");
28
+ if (pctEnabled !== void 0) replay.pctEnabled = pctEnabled;
29
+ const sampleRate = readNumber(raw, "sampleRate", "sample_rate");
30
+ if (sampleRate !== void 0) replay.sampleRate = sampleRate;
31
+ const maskAllInputs = readBoolean(raw, "maskAllInputs", "mask_all_inputs");
32
+ if (maskAllInputs !== void 0) replay.maskAllInputs = maskAllInputs;
33
+ const maskAllText = readBoolean(raw, "maskAllText", "mask_all_text");
34
+ if (maskAllText !== void 0) replay.maskAllText = maskAllText;
35
+ const flushIntervalMs = readNumber(raw, "flushIntervalMs", "flush_interval_ms");
36
+ if (flushIntervalMs !== void 0) replay.flushIntervalMs = flushIntervalMs;
37
+ const omitRedundantInstrumentations = readBoolean(raw, "omitRedundantInstrumentations", "omit_redundant_instrumentations");
38
+ if (omitRedundantInstrumentations !== void 0) replay.omitRedundantInstrumentations = omitRedundantInstrumentations;
39
+ const debug = readBoolean(raw, "debug", "debug");
40
+ if (debug !== void 0) replay.debug = debug;
41
+ return Object.keys(replay).length > 0 ? replay : void 0;
42
+ };
43
+ /**
44
+ * Normalizes remote config JSON from the API or localStorage into camelCase
45
+ * {@link RemoteConfig}. Accepts legacy snake_case payloads for backward compatibility.
46
+ */
47
+ const normalizeStoredRemoteConfig = (raw) => {
48
+ if (!isRecord(raw)) throw new TypeError("Remote config must be an object");
49
+ const threshold = raw.threshold;
50
+ if (typeof threshold !== "number") throw new TypeError("Remote config threshold must be a number");
51
+ const normalized = { threshold };
52
+ const networkSpanForwardingRaw = raw.networkSpanForwarding ?? raw.network_span_forwarding;
53
+ if (isRecord(networkSpanForwardingRaw)) {
54
+ const pctEnabled = readNumber(networkSpanForwardingRaw, "pctEnabled", "pct_enabled");
55
+ if (pctEnabled !== void 0) normalized.networkSpanForwarding = { pctEnabled };
56
+ }
57
+ const emptySessionAvoidanceEnabledPct = readNumber(raw, "emptySessionAvoidanceEnabledPct", "empty_session_avoidance_enabled_pct");
58
+ if (emptySessionAvoidanceEnabledPct !== void 0) normalized.emptySessionAvoidanceEnabledPct = emptySessionAvoidanceEnabledPct;
59
+ const serviceName = readString(raw, "serviceName", "service_name");
60
+ if (serviceName !== void 0) normalized.serviceName = serviceName;
61
+ const sessionReplay = normalizeSessionReplay(raw.sessionReplay ?? raw.session_replay);
62
+ if (sessionReplay !== void 0) normalized.sessionReplay = sessionReplay;
63
+ return normalized;
64
+ };
3
65
  //#endregion
4
- export { getConfigURL };
66
+ export { getApiURL, getConfigURL, getOtelCollectorURL, normalizeStoredRemoteConfig };
5
67
 
6
68
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":[],"sources":["../../../src/managers/MXLConfigManager/utils.ts"],"sourcesContent":["import type { RemoteConfigURLParams } from './types';\n\nexport const getConfigURL = (\n appId: string,\n { osVersion, appVersion, deviceId }: RemoteConfigURLParams,\n mxlConfigURL?: string,\n): string =>\n `${mxlConfigURL || `https://mxl-basket.apps.ocpthikadev01.safaricom.net`}/config?appId=${appId}&osVersion=${osVersion}&appVersion=${appVersion}&deviceId=${deviceId}`;\n"],"mappings":";AAEA,MAAa,gBACX,OACA,EAAE,WAAW,YAAY,YACzB,iBAEA,GAAG,gBAAgB,sDAAsD,gBAAgB,MAAM,aAAa,UAAU,cAAc,WAAW,YAAY"}
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../../src/managers/MXLConfigManager/utils.ts"],"sourcesContent":["import type {\n RemoteConfig,\n RemoteConfigURLParams,\n RemoteSessionReplayConfig,\n} from './types';\n\nexport const getApiURL = (apiURL?: string): string =>\n apiURL || 'http://mxl-basket.apps.ocpthikadev01.safaricom.net';\nexport const getOtelCollectorURL = (otelCollectorURL?: string): string =>\n otelCollectorURL || 'http://mxl-otel-collector.apps.ocpthikadev01.safaricom.net';\n\nexport const getConfigURL = (\n appId: string,\n { osVersion, appVersion, deviceId }: RemoteConfigURLParams,\n apiURL?: string,\n): string =>\n `${getApiURL(apiURL)}/config?appId=${appId}&osVersion=${osVersion}&appVersion=${appVersion}&deviceId=${deviceId}`;\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst readNumber = (\n record: Record<string, unknown>,\n camelKey: string,\n snakeKey: string,\n): number | undefined => {\n const camelValue = record[camelKey];\n if (typeof camelValue === 'number') {\n return camelValue;\n }\n\n const snakeValue = record[snakeKey];\n if (typeof snakeValue === 'number') {\n return snakeValue;\n }\n\n return undefined;\n};\n\nconst readBoolean = (\n record: Record<string, unknown>,\n camelKey: string,\n snakeKey: string,\n): boolean | undefined => {\n const camelValue = record[camelKey];\n if (typeof camelValue === 'boolean') {\n return camelValue;\n }\n\n const snakeValue = record[snakeKey];\n if (typeof snakeValue === 'boolean') {\n return snakeValue;\n }\n\n return undefined;\n};\n\nconst readString = (\n record: Record<string, unknown>,\n camelKey: string,\n snakeKey: string,\n): string | undefined => {\n const camelValue = record[camelKey];\n if (typeof camelValue === 'string') {\n return camelValue;\n }\n\n const snakeValue = record[snakeKey];\n if (typeof snakeValue === 'string') {\n return snakeValue;\n }\n\n return undefined;\n};\n\nconst normalizeSessionReplay = (\n raw: unknown,\n): RemoteSessionReplayConfig | undefined => {\n if (!isRecord(raw)) {\n return undefined;\n }\n\n const replay: RemoteSessionReplayConfig = {};\n\n const pctEnabled = readNumber(raw, 'pctEnabled', 'pct_enabled');\n if (pctEnabled !== undefined) {\n replay.pctEnabled = pctEnabled;\n }\n\n const sampleRate = readNumber(raw, 'sampleRate', 'sample_rate');\n if (sampleRate !== undefined) {\n replay.sampleRate = sampleRate;\n }\n\n const maskAllInputs = readBoolean(raw, 'maskAllInputs', 'mask_all_inputs');\n if (maskAllInputs !== undefined) {\n replay.maskAllInputs = maskAllInputs;\n }\n\n const maskAllText = readBoolean(raw, 'maskAllText', 'mask_all_text');\n if (maskAllText !== undefined) {\n replay.maskAllText = maskAllText;\n }\n\n const flushIntervalMs = readNumber(\n raw,\n 'flushIntervalMs',\n 'flush_interval_ms',\n );\n if (flushIntervalMs !== undefined) {\n replay.flushIntervalMs = flushIntervalMs;\n }\n\n const omitRedundantInstrumentations = readBoolean(\n raw,\n 'omitRedundantInstrumentations',\n 'omit_redundant_instrumentations',\n );\n if (omitRedundantInstrumentations !== undefined) {\n replay.omitRedundantInstrumentations = omitRedundantInstrumentations;\n }\n\n const debug = readBoolean(raw, 'debug', 'debug');\n if (debug !== undefined) {\n replay.debug = debug;\n }\n\n return Object.keys(replay).length > 0 ? replay : undefined;\n};\n\n/**\n * Normalizes remote config JSON from the API or localStorage into camelCase\n * {@link RemoteConfig}. Accepts legacy snake_case payloads for backward compatibility.\n */\nexport const normalizeStoredRemoteConfig = (raw: unknown): RemoteConfig => {\n if (!isRecord(raw)) {\n throw new TypeError('Remote config must be an object');\n }\n\n const threshold = raw.threshold;\n if (typeof threshold !== 'number') {\n throw new TypeError('Remote config threshold must be a number');\n }\n\n const normalized: RemoteConfig = { threshold };\n\n const networkSpanForwardingRaw =\n raw.networkSpanForwarding ?? raw.network_span_forwarding;\n if (isRecord(networkSpanForwardingRaw)) {\n const pctEnabled = readNumber(\n networkSpanForwardingRaw,\n 'pctEnabled',\n 'pct_enabled',\n );\n if (pctEnabled !== undefined) {\n normalized.networkSpanForwarding = { pctEnabled };\n }\n }\n\n const emptySessionAvoidanceEnabledPct = readNumber(\n raw,\n 'emptySessionAvoidanceEnabledPct',\n 'empty_session_avoidance_enabled_pct',\n );\n if (emptySessionAvoidanceEnabledPct !== undefined) {\n normalized.emptySessionAvoidanceEnabledPct =\n emptySessionAvoidanceEnabledPct;\n }\n\n const serviceName = readString(raw, 'serviceName', 'service_name');\n if (serviceName !== undefined) {\n normalized.serviceName = serviceName;\n }\n\n const sessionReplay = normalizeSessionReplay(\n raw.sessionReplay ?? raw.session_replay,\n );\n if (sessionReplay !== undefined) {\n normalized.sessionReplay = sessionReplay;\n }\n\n return normalized;\n};\n"],"mappings":";AAMA,MAAa,aAAa,WACxB,UAAU;AACZ,MAAa,uBAAuB,qBAClC,oBAAoB;AAEtB,MAAa,gBACX,OACA,EAAE,WAAW,YAAY,YACzB,WAEA,GAAG,UAAU,OAAO,CAAC,gBAAgB,MAAM,aAAa,UAAU,cAAc,WAAW,YAAY;AAEzG,MAAM,YAAY,UAChB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,MAAM;AAEtE,MAAM,cACJ,QACA,UACA,aACuB;CACvB,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,SACxB,QAAO;CAGT,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,SACxB,QAAO;;AAMX,MAAM,eACJ,QACA,UACA,aACwB;CACxB,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,UACxB,QAAO;CAGT,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,UACxB,QAAO;;AAMX,MAAM,cACJ,QACA,UACA,aACuB;CACvB,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,SACxB,QAAO;CAGT,MAAM,aAAa,OAAO;AAC1B,KAAI,OAAO,eAAe,SACxB,QAAO;;AAMX,MAAM,0BACJ,QAC0C;AAC1C,KAAI,CAAC,SAAS,IAAI,CAChB;CAGF,MAAM,SAAoC,EAAE;CAE5C,MAAM,aAAa,WAAW,KAAK,cAAc,cAAc;AAC/D,KAAI,eAAe,KAAA,EACjB,QAAO,aAAa;CAGtB,MAAM,aAAa,WAAW,KAAK,cAAc,cAAc;AAC/D,KAAI,eAAe,KAAA,EACjB,QAAO,aAAa;CAGtB,MAAM,gBAAgB,YAAY,KAAK,iBAAiB,kBAAkB;AAC1E,KAAI,kBAAkB,KAAA,EACpB,QAAO,gBAAgB;CAGzB,MAAM,cAAc,YAAY,KAAK,eAAe,gBAAgB;AACpE,KAAI,gBAAgB,KAAA,EAClB,QAAO,cAAc;CAGvB,MAAM,kBAAkB,WACtB,KACA,mBACA,oBACD;AACD,KAAI,oBAAoB,KAAA,EACtB,QAAO,kBAAkB;CAG3B,MAAM,gCAAgC,YACpC,KACA,iCACA,kCACD;AACD,KAAI,kCAAkC,KAAA,EACpC,QAAO,gCAAgC;CAGzC,MAAM,QAAQ,YAAY,KAAK,SAAS,QAAQ;AAChD,KAAI,UAAU,KAAA,EACZ,QAAO,QAAQ;AAGjB,QAAO,OAAO,KAAK,OAAO,CAAC,SAAS,IAAI,SAAS,KAAA;;;;;;AAOnD,MAAa,+BAA+B,QAA+B;AACzE,KAAI,CAAC,SAAS,IAAI,CAChB,OAAM,IAAI,UAAU,kCAAkC;CAGxD,MAAM,YAAY,IAAI;AACtB,KAAI,OAAO,cAAc,SACvB,OAAM,IAAI,UAAU,2CAA2C;CAGjE,MAAM,aAA2B,EAAE,WAAW;CAE9C,MAAM,2BACJ,IAAI,yBAAyB,IAAI;AACnC,KAAI,SAAS,yBAAyB,EAAE;EACtC,MAAM,aAAa,WACjB,0BACA,cACA,cACD;AACD,MAAI,eAAe,KAAA,EACjB,YAAW,wBAAwB,EAAE,YAAY;;CAIrD,MAAM,kCAAkC,WACtC,KACA,mCACA,sCACD;AACD,KAAI,oCAAoC,KAAA,EACtC,YAAW,kCACT;CAGJ,MAAM,cAAc,WAAW,KAAK,eAAe,eAAe;AAClE,KAAI,gBAAgB,KAAA,EAClB,YAAW,cAAc;CAG3B,MAAM,gBAAgB,uBACpB,IAAI,iBAAiB,IAAI,eAC1B;AACD,KAAI,kBAAkB,KAAA,EACpB,YAAW,gBAAgB;AAG7B,QAAO"}
@@ -19,6 +19,14 @@ var MXLSDKFeaturesManager = class {
19
19
  const config = this._dynamicConfigManager.getConfig();
20
20
  return require_utils_isDeviceIdEnabled.isDeviceIdEnabled(this._deviceId, config.networkSpansForwardingThreshold);
21
21
  }
22
+ isSessionReplayEnabled() {
23
+ const pctEnabled = this._dynamicConfigManager.getConfig().replay?.pctEnabled ?? 100;
24
+ return require_utils_isDeviceIdEnabled.isDeviceIdEnabled(this._deviceId, pctEnabled);
25
+ }
26
+ isEmptySessionAvoidanceEnabled() {
27
+ const config = this._dynamicConfigManager.getConfig();
28
+ return require_utils_isDeviceIdEnabled.isDeviceIdEnabled(this._deviceId, config.emptySessionAvoidanceEnabledPct);
29
+ }
22
30
  };
23
31
  //#endregion
24
32
  exports.MXLSDKFeaturesManager = MXLSDKFeaturesManager;
@@ -1 +1 @@
1
- {"version":3,"file":"MXLSDKFeaturesManager.cjs","names":["isDeviceIdEnabled"],"sources":["../../../src/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.ts"],"sourcesContent":["import type { DynamicConfigManager } from '../../sdk/types';\nimport { isDeviceIdEnabled } from '../../utils/isDeviceIdEnabled';\nimport type { SDKFeaturesManager, SDKFeaturesManagerArgs } from './types';\n\nexport class MXLSDKFeaturesManager implements SDKFeaturesManager {\n private readonly _dynamicConfigManager: DynamicConfigManager;\n private readonly _deviceId: string;\n private readonly _blockNetworkSpanForwarding: boolean;\n\n public constructor({\n dynamicConfigManager,\n deviceId,\n blockNetworkSpanForwarding,\n }: SDKFeaturesManagerArgs) {\n this._dynamicConfigManager = dynamicConfigManager;\n this._deviceId = deviceId;\n this._blockNetworkSpanForwarding = blockNetworkSpanForwarding;\n }\n\n public isSDKEnabled(): boolean {\n const config = this._dynamicConfigManager.getConfig();\n\n return isDeviceIdEnabled(this._deviceId, config.samplingPct);\n }\n\n public isNetworkSpanForwardingEnabled(): boolean {\n if (this._blockNetworkSpanForwarding) {\n return false;\n }\n\n const config = this._dynamicConfigManager.getConfig();\n\n return isDeviceIdEnabled(\n this._deviceId,\n config.networkSpansForwardingThreshold,\n );\n }\n}\n"],"mappings":";;;AAIA,IAAa,wBAAb,MAAiE;CAC/D;CACA;CACA;CAEA,YAAmB,EACjB,sBACA,UACA,8BACyB;AACzB,OAAK,wBAAwB;AAC7B,OAAK,YAAY;AACjB,OAAK,8BAA8B;;CAGrC,eAA+B;EAC7B,MAAM,SAAS,KAAK,sBAAsB,WAAW;AAErD,SAAOA,gCAAAA,kBAAkB,KAAK,WAAW,OAAO,YAAY;;CAG9D,iCAAiD;AAC/C,MAAI,KAAK,4BACP,QAAO;EAGT,MAAM,SAAS,KAAK,sBAAsB,WAAW;AAErD,SAAOA,gCAAAA,kBACL,KAAK,WACL,OAAO,gCACR"}
1
+ {"version":3,"file":"MXLSDKFeaturesManager.cjs","names":["isDeviceIdEnabled"],"sources":["../../../src/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.ts"],"sourcesContent":["import type { DynamicConfigManager } from '../../sdk/types';\nimport { isDeviceIdEnabled } from '../../utils/isDeviceIdEnabled';\nimport type { SDKFeaturesManager, SDKFeaturesManagerArgs } from './types';\n\nexport class MXLSDKFeaturesManager implements SDKFeaturesManager {\n private readonly _dynamicConfigManager: DynamicConfigManager;\n private readonly _deviceId: string;\n private readonly _blockNetworkSpanForwarding: boolean;\n\n public constructor({\n dynamicConfigManager,\n deviceId,\n blockNetworkSpanForwarding,\n }: SDKFeaturesManagerArgs) {\n this._dynamicConfigManager = dynamicConfigManager;\n this._deviceId = deviceId;\n this._blockNetworkSpanForwarding = blockNetworkSpanForwarding;\n }\n\n public isSDKEnabled(): boolean {\n const config = this._dynamicConfigManager.getConfig();\n\n return isDeviceIdEnabled(this._deviceId, config.samplingPct);\n }\n\n public isNetworkSpanForwardingEnabled(): boolean {\n if (this._blockNetworkSpanForwarding) {\n return false;\n }\n\n const config = this._dynamicConfigManager.getConfig();\n\n return isDeviceIdEnabled(\n this._deviceId,\n config.networkSpansForwardingThreshold,\n );\n }\n\n public isSessionReplayEnabled(): boolean {\n const config = this._dynamicConfigManager.getConfig();\n const pctEnabled = config.replay?.pctEnabled ?? 100;\n\n return isDeviceIdEnabled(this._deviceId, pctEnabled);\n }\n\n public isEmptySessionAvoidanceEnabled(): boolean {\n const config = this._dynamicConfigManager.getConfig();\n\n return isDeviceIdEnabled(\n this._deviceId,\n config.emptySessionAvoidanceEnabledPct,\n );\n }\n}\n"],"mappings":";;;AAIA,IAAa,wBAAb,MAAiE;CAC/D;CACA;CACA;CAEA,YAAmB,EACjB,sBACA,UACA,8BACyB;AACzB,OAAK,wBAAwB;AAC7B,OAAK,YAAY;AACjB,OAAK,8BAA8B;;CAGrC,eAA+B;EAC7B,MAAM,SAAS,KAAK,sBAAsB,WAAW;AAErD,SAAOA,gCAAAA,kBAAkB,KAAK,WAAW,OAAO,YAAY;;CAG9D,iCAAiD;AAC/C,MAAI,KAAK,4BACP,QAAO;EAGT,MAAM,SAAS,KAAK,sBAAsB,WAAW;AAErD,SAAOA,gCAAAA,kBACL,KAAK,WACL,OAAO,gCACR;;CAGH,yBAAyC;EAEvC,MAAM,aADS,KAAK,sBAAsB,WACjB,CAAC,QAAQ,cAAc;AAEhD,SAAOA,gCAAAA,kBAAkB,KAAK,WAAW,WAAW;;CAGtD,iCAAiD;EAC/C,MAAM,SAAS,KAAK,sBAAsB,WAAW;AAErD,SAAOA,gCAAAA,kBACL,KAAK,WACL,OAAO,gCACR"}
@@ -12,6 +12,8 @@ declare class MXLSDKFeaturesManager implements SDKFeaturesManager {
12
12
  }: SDKFeaturesManagerArgs);
13
13
  isSDKEnabled(): boolean;
14
14
  isNetworkSpanForwardingEnabled(): boolean;
15
+ isSessionReplayEnabled(): boolean;
16
+ isEmptySessionAvoidanceEnabled(): boolean;
15
17
  }
16
18
  //#endregion
17
19
  export { MXLSDKFeaturesManager };
@@ -1 +1 @@
1
- {"version":3,"file":"MXLSDKFeaturesManager.d.cts","names":[],"sources":["../../../src/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.ts"],"mappings":";;;cAIa,qBAAA,YAAiC,kBAAA;EAAA,iBAC3B,qBAAA;EAAA,iBACA,SAAA;EAAA,iBACA,2BAAA;;IAGf,oBAAA;IACA,QAAA;IACA;EAAA,GACC,sBAAA;EAMI,YAAA,CAAA;EAMA,8BAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"MXLSDKFeaturesManager.d.cts","names":[],"sources":["../../../src/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.ts"],"mappings":";;;cAIa,qBAAA,YAAiC,kBAAA;EAAA,iBAC3B,qBAAA;EAAA,iBACA,SAAA;EAAA,iBACA,2BAAA;;IAGf,oBAAA;IACA,QAAA;IACA;EAAA,GACC,sBAAA;EAMI,YAAA,CAAA;EAMA,8BAAA,CAAA;EAaA,sBAAA,CAAA;EAOA,8BAAA,CAAA;AAAA"}
@@ -12,6 +12,8 @@ declare class MXLSDKFeaturesManager implements SDKFeaturesManager {
12
12
  }: SDKFeaturesManagerArgs);
13
13
  isSDKEnabled(): boolean;
14
14
  isNetworkSpanForwardingEnabled(): boolean;
15
+ isSessionReplayEnabled(): boolean;
16
+ isEmptySessionAvoidanceEnabled(): boolean;
15
17
  }
16
18
  //#endregion
17
19
  export { MXLSDKFeaturesManager };
@@ -1 +1 @@
1
- {"version":3,"file":"MXLSDKFeaturesManager.d.ts","names":[],"sources":["../../../src/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.ts"],"mappings":";;;cAIa,qBAAA,YAAiC,kBAAA;EAAA,iBAC3B,qBAAA;EAAA,iBACA,SAAA;EAAA,iBACA,2BAAA;;IAGf,oBAAA;IACA,QAAA;IACA;EAAA,GACC,sBAAA;EAMI,YAAA,CAAA;EAMA,8BAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"MXLSDKFeaturesManager.d.ts","names":[],"sources":["../../../src/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.ts"],"mappings":";;;cAIa,qBAAA,YAAiC,kBAAA;EAAA,iBAC3B,qBAAA;EAAA,iBACA,SAAA;EAAA,iBACA,2BAAA;;IAGf,oBAAA;IACA,QAAA;IACA;EAAA,GACC,sBAAA;EAMI,YAAA,CAAA;EAMA,8BAAA,CAAA;EAaA,sBAAA,CAAA;EAOA,8BAAA,CAAA;AAAA"}
@@ -18,6 +18,14 @@ var MXLSDKFeaturesManager = class {
18
18
  const config = this._dynamicConfigManager.getConfig();
19
19
  return isDeviceIdEnabled(this._deviceId, config.networkSpansForwardingThreshold);
20
20
  }
21
+ isSessionReplayEnabled() {
22
+ const pctEnabled = this._dynamicConfigManager.getConfig().replay?.pctEnabled ?? 100;
23
+ return isDeviceIdEnabled(this._deviceId, pctEnabled);
24
+ }
25
+ isEmptySessionAvoidanceEnabled() {
26
+ const config = this._dynamicConfigManager.getConfig();
27
+ return isDeviceIdEnabled(this._deviceId, config.emptySessionAvoidanceEnabledPct);
28
+ }
21
29
  };
22
30
  //#endregion
23
31
  export { MXLSDKFeaturesManager };
@@ -1 +1 @@
1
- {"version":3,"file":"MXLSDKFeaturesManager.js","names":[],"sources":["../../../src/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.ts"],"sourcesContent":["import type { DynamicConfigManager } from '../../sdk/types';\nimport { isDeviceIdEnabled } from '../../utils/isDeviceIdEnabled';\nimport type { SDKFeaturesManager, SDKFeaturesManagerArgs } from './types';\n\nexport class MXLSDKFeaturesManager implements SDKFeaturesManager {\n private readonly _dynamicConfigManager: DynamicConfigManager;\n private readonly _deviceId: string;\n private readonly _blockNetworkSpanForwarding: boolean;\n\n public constructor({\n dynamicConfigManager,\n deviceId,\n blockNetworkSpanForwarding,\n }: SDKFeaturesManagerArgs) {\n this._dynamicConfigManager = dynamicConfigManager;\n this._deviceId = deviceId;\n this._blockNetworkSpanForwarding = blockNetworkSpanForwarding;\n }\n\n public isSDKEnabled(): boolean {\n const config = this._dynamicConfigManager.getConfig();\n\n return isDeviceIdEnabled(this._deviceId, config.samplingPct);\n }\n\n public isNetworkSpanForwardingEnabled(): boolean {\n if (this._blockNetworkSpanForwarding) {\n return false;\n }\n\n const config = this._dynamicConfigManager.getConfig();\n\n return isDeviceIdEnabled(\n this._deviceId,\n config.networkSpansForwardingThreshold,\n );\n }\n}\n"],"mappings":";;AAIA,IAAa,wBAAb,MAAiE;CAC/D;CACA;CACA;CAEA,YAAmB,EACjB,sBACA,UACA,8BACyB;AACzB,OAAK,wBAAwB;AAC7B,OAAK,YAAY;AACjB,OAAK,8BAA8B;;CAGrC,eAA+B;EAC7B,MAAM,SAAS,KAAK,sBAAsB,WAAW;AAErD,SAAO,kBAAkB,KAAK,WAAW,OAAO,YAAY;;CAG9D,iCAAiD;AAC/C,MAAI,KAAK,4BACP,QAAO;EAGT,MAAM,SAAS,KAAK,sBAAsB,WAAW;AAErD,SAAO,kBACL,KAAK,WACL,OAAO,gCACR"}
1
+ {"version":3,"file":"MXLSDKFeaturesManager.js","names":[],"sources":["../../../src/managers/MXLSDKFeaturesManager/MXLSDKFeaturesManager.ts"],"sourcesContent":["import type { DynamicConfigManager } from '../../sdk/types';\nimport { isDeviceIdEnabled } from '../../utils/isDeviceIdEnabled';\nimport type { SDKFeaturesManager, SDKFeaturesManagerArgs } from './types';\n\nexport class MXLSDKFeaturesManager implements SDKFeaturesManager {\n private readonly _dynamicConfigManager: DynamicConfigManager;\n private readonly _deviceId: string;\n private readonly _blockNetworkSpanForwarding: boolean;\n\n public constructor({\n dynamicConfigManager,\n deviceId,\n blockNetworkSpanForwarding,\n }: SDKFeaturesManagerArgs) {\n this._dynamicConfigManager = dynamicConfigManager;\n this._deviceId = deviceId;\n this._blockNetworkSpanForwarding = blockNetworkSpanForwarding;\n }\n\n public isSDKEnabled(): boolean {\n const config = this._dynamicConfigManager.getConfig();\n\n return isDeviceIdEnabled(this._deviceId, config.samplingPct);\n }\n\n public isNetworkSpanForwardingEnabled(): boolean {\n if (this._blockNetworkSpanForwarding) {\n return false;\n }\n\n const config = this._dynamicConfigManager.getConfig();\n\n return isDeviceIdEnabled(\n this._deviceId,\n config.networkSpansForwardingThreshold,\n );\n }\n\n public isSessionReplayEnabled(): boolean {\n const config = this._dynamicConfigManager.getConfig();\n const pctEnabled = config.replay?.pctEnabled ?? 100;\n\n return isDeviceIdEnabled(this._deviceId, pctEnabled);\n }\n\n public isEmptySessionAvoidanceEnabled(): boolean {\n const config = this._dynamicConfigManager.getConfig();\n\n return isDeviceIdEnabled(\n this._deviceId,\n config.emptySessionAvoidanceEnabledPct,\n );\n }\n}\n"],"mappings":";;AAIA,IAAa,wBAAb,MAAiE;CAC/D;CACA;CACA;CAEA,YAAmB,EACjB,sBACA,UACA,8BACyB;AACzB,OAAK,wBAAwB;AAC7B,OAAK,YAAY;AACjB,OAAK,8BAA8B;;CAGrC,eAA+B;EAC7B,MAAM,SAAS,KAAK,sBAAsB,WAAW;AAErD,SAAO,kBAAkB,KAAK,WAAW,OAAO,YAAY;;CAG9D,iCAAiD;AAC/C,MAAI,KAAK,4BACP,QAAO;EAGT,MAAM,SAAS,KAAK,sBAAsB,WAAW;AAErD,SAAO,kBACL,KAAK,WACL,OAAO,gCACR;;CAGH,yBAAyC;EAEvC,MAAM,aADS,KAAK,sBAAsB,WACjB,CAAC,QAAQ,cAAc;AAEhD,SAAO,kBAAkB,KAAK,WAAW,WAAW;;CAGtD,iCAAiD;EAC/C,MAAM,SAAS,KAAK,sBAAsB,WAAW;AAErD,SAAO,kBACL,KAAK,WACL,OAAO,gCACR"}
@@ -9,6 +9,8 @@ interface SDKFeaturesManagerArgs {
9
9
  interface SDKFeaturesManager {
10
10
  isSDKEnabled: () => boolean;
11
11
  isNetworkSpanForwardingEnabled: () => boolean;
12
+ isSessionReplayEnabled: () => boolean;
13
+ isEmptySessionAvoidanceEnabled: () => boolean;
12
14
  }
13
15
  //#endregion
14
16
  export { SDKFeaturesManager, SDKFeaturesManagerArgs };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","names":[],"sources":["../../../src/managers/MXLSDKFeaturesManager/types.ts"],"mappings":";;;UACiB,sBAAA;EACf,QAAA;EACA,oBAAA,EAAsB,oBAAA;EACtB,0BAAA;AAAA;AAAA,UAGe,kBAAA;EACf,YAAA;EACA,8BAAA;AAAA"}
1
+ {"version":3,"file":"types.d.cts","names":[],"sources":["../../../src/managers/MXLSDKFeaturesManager/types.ts"],"mappings":";;;UACiB,sBAAA;EACf,QAAA;EACA,oBAAA,EAAsB,oBAAA;EACtB,0BAAA;AAAA;AAAA,UAGe,kBAAA;EACf,YAAA;EACA,8BAAA;EACA,sBAAA;EACA,8BAAA;AAAA"}
@@ -9,6 +9,8 @@ interface SDKFeaturesManagerArgs {
9
9
  interface SDKFeaturesManager {
10
10
  isSDKEnabled: () => boolean;
11
11
  isNetworkSpanForwardingEnabled: () => boolean;
12
+ isSessionReplayEnabled: () => boolean;
13
+ isEmptySessionAvoidanceEnabled: () => boolean;
12
14
  }
13
15
  //#endregion
14
16
  export { SDKFeaturesManager, SDKFeaturesManagerArgs };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/managers/MXLSDKFeaturesManager/types.ts"],"mappings":";;;UACiB,sBAAA;EACf,QAAA;EACA,oBAAA,EAAsB,oBAAA;EACtB,0BAAA;AAAA;AAAA,UAGe,kBAAA;EACf,YAAA;EACA,8BAAA;AAAA"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/managers/MXLSDKFeaturesManager/types.ts"],"mappings":";;;UACiB,sBAAA;EACf,QAAA;EACA,oBAAA,EAAsB,oBAAA;EACtB,0BAAA;AAAA;AAAA,UAGe,kBAAA;EACf,YAAA;EACA,8BAAA;EACA,sBAAA;EACA,8BAAA;AAAA"}