@coralogix/browser 1.2.42 → 1.4.5

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 (90) hide show
  1. package/README.md +76 -0
  2. package/package.json +1 -1
  3. package/src/configuration.js +1 -1
  4. package/src/configuration.js.map +1 -1
  5. package/src/constants.d.ts +10 -4
  6. package/src/constants.js +12 -5
  7. package/src/constants.js.map +1 -1
  8. package/src/index.d.ts +2 -1
  9. package/src/index.js +38 -4
  10. package/src/index.js.map +1 -1
  11. package/src/instrumentations/CoralogixResourcesInstrumentation.d.ts +1 -0
  12. package/src/instrumentations/CoralogixResourcesInstrumentation.js +14 -16
  13. package/src/instrumentations/CoralogixResourcesInstrumentation.js.map +1 -1
  14. package/src/instrumentations/CoralogixWebVitalsInstrumentation.js +12 -2
  15. package/src/instrumentations/CoralogixWebVitalsInstrumentation.js.map +1 -1
  16. package/src/instrumentations/{CoralogixCustomMeasurementInstrumentation.d.ts → custom-measurements/CoralogixCustomMeasurementInstrumentation.d.ts} +2 -2
  17. package/src/instrumentations/{CoralogixCustomMeasurementInstrumentation.js → custom-measurements/CoralogixCustomMeasurementInstrumentation.js} +7 -4
  18. package/src/instrumentations/custom-measurements/CoralogixCustomMeasurementInstrumentation.js.map +1 -0
  19. package/src/instrumentations/custom-measurements/custom-measurements.types.d.ts +5 -0
  20. package/src/instrumentations/custom-measurements/custom-measurements.types.js +2 -0
  21. package/src/instrumentations/custom-measurements/custom-measurements.types.js.map +1 -0
  22. package/src/instrumentations/custom-measurements/index.d.ts +3 -0
  23. package/src/instrumentations/custom-measurements/index.js +4 -0
  24. package/src/instrumentations/custom-measurements/index.js.map +1 -0
  25. package/src/instrumentations/custom-measurements/timeMeasurementTracker.d.ts +9 -0
  26. package/src/instrumentations/custom-measurements/timeMeasurementTracker.js +38 -0
  27. package/src/instrumentations/custom-measurements/timeMeasurementTracker.js.map +1 -0
  28. package/src/instrumentations/memory-usage/CoralogixMemoryUsageInstrumentation.js +10 -6
  29. package/src/instrumentations/memory-usage/CoralogixMemoryUsageInstrumentation.js.map +1 -1
  30. package/src/instrumentations/memory-usage/index.d.ts +4 -0
  31. package/src/instrumentations/memory-usage/index.js +5 -0
  32. package/src/instrumentations/memory-usage/index.js.map +1 -0
  33. package/src/instrumentations/memory-usage/memory-usage-constants.d.ts +3 -0
  34. package/src/instrumentations/memory-usage/memory-usage-constants.js +4 -0
  35. package/src/instrumentations/memory-usage/memory-usage-constants.js.map +1 -0
  36. package/src/instrumentations/memory-usage/memory-usage.types.d.ts +25 -0
  37. package/src/instrumentations/memory-usage/memory-usage.types.js +2 -0
  38. package/src/instrumentations/memory-usage/memory-usage.types.js.map +1 -0
  39. package/src/instrumentations/memory-usage/memory-usage.utils.d.ts +2 -3
  40. package/src/instrumentations/memory-usage/memory-usage.utils.js +21 -3
  41. package/src/instrumentations/memory-usage/memory-usage.utils.js.map +1 -1
  42. package/src/instrumentations/{CoralogixFetchInstrumentation.d.ts → network/CoralogixFetchInstrumentation.d.ts} +5 -1
  43. package/src/instrumentations/network/CoralogixFetchInstrumentation.js +99 -0
  44. package/src/instrumentations/network/CoralogixFetchInstrumentation.js.map +1 -0
  45. package/src/instrumentations/{CoralogixXhrInstrumentation.d.ts → network/CoralogixXhrInstrumentation.d.ts} +4 -0
  46. package/src/instrumentations/network/CoralogixXhrInstrumentation.js +57 -0
  47. package/src/instrumentations/network/CoralogixXhrInstrumentation.js.map +1 -0
  48. package/src/instrumentations/network/HeadersManager.d.ts +5 -0
  49. package/src/instrumentations/network/HeadersManager.js +42 -0
  50. package/src/instrumentations/network/HeadersManager.js.map +1 -0
  51. package/src/instrumentations/network/NetworkDataManager.d.ts +11 -0
  52. package/src/instrumentations/network/NetworkDataManager.js +87 -0
  53. package/src/instrumentations/network/NetworkDataManager.js.map +1 -0
  54. package/src/instrumentations/network/constants.d.ts +6 -0
  55. package/src/instrumentations/network/constants.js +7 -0
  56. package/src/instrumentations/network/constants.js.map +1 -0
  57. package/src/instrumentations/screenshot/CoralogixScreenshotInstrumentation.d.ts +8 -0
  58. package/src/instrumentations/screenshot/CoralogixScreenshotInstrumentation.js +28 -0
  59. package/src/instrumentations/screenshot/CoralogixScreenshotInstrumentation.js.map +1 -0
  60. package/src/instrumentations/screenshot/screenshot.utils.d.ts +2 -0
  61. package/src/instrumentations/screenshot/screenshot.utils.js +3 -0
  62. package/src/instrumentations/screenshot/screenshot.utils.js.map +1 -0
  63. package/src/processors/CoralogixSnapshotSpanProcessor.js +3 -0
  64. package/src/processors/CoralogixSnapshotSpanProcessor.js.map +1 -1
  65. package/src/processors/CoralogixSpanMapProcessor.js +19 -6
  66. package/src/processors/CoralogixSpanMapProcessor.js.map +1 -1
  67. package/src/session/session.model.d.ts +3 -1
  68. package/src/session/sessionManager.js +4 -4
  69. package/src/session/sessionManager.js.map +1 -1
  70. package/src/session/sessionRecorder.d.ts +4 -0
  71. package/src/session/sessionRecorder.js +57 -29
  72. package/src/session/sessionRecorder.js.map +1 -1
  73. package/src/snapshot/snapshot.consts.js +1 -0
  74. package/src/snapshot/snapshot.consts.js.map +1 -1
  75. package/src/snapshot/snapshot.model.d.ts +1 -0
  76. package/src/types.d.ts +42 -7
  77. package/src/types.js +1 -0
  78. package/src/types.js.map +1 -1
  79. package/src/utils/all.js +5 -6
  80. package/src/utils/all.js.map +1 -1
  81. package/src/version.d.ts +1 -1
  82. package/src/version.js +1 -1
  83. package/src/version.js.map +1 -1
  84. package/src/workers/session-recording-worker.js +13 -4
  85. package/src/workers/session-recording-worker.js.map +1 -1
  86. package/src/instrumentations/CoralogixCustomMeasurementInstrumentation.js.map +0 -1
  87. package/src/instrumentations/CoralogixFetchInstrumentation.js +0 -30
  88. package/src/instrumentations/CoralogixFetchInstrumentation.js.map +0 -1
  89. package/src/instrumentations/CoralogixXhrInstrumentation.js +0 -27
  90. package/src/instrumentations/CoralogixXhrInstrumentation.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ import { CoralogixRumLabels } from '../../types';
2
+ import { MeasurementResult } from './custom-measurements.types';
3
+ export declare class TimeMeasurementTracker {
4
+ private measurements;
5
+ startMeasurement(key: string, labels?: CoralogixRumLabels): void;
6
+ getMeasurement(key: string): MeasurementResult | undefined;
7
+ private checkAndResetIfSessionExpired;
8
+ private logDebug;
9
+ }
@@ -0,0 +1,38 @@
1
+ import { getSdkConfig, getSessionManager } from '../../helpers';
2
+ export class TimeMeasurementTracker {
3
+ constructor() {
4
+ this.measurements = new Map();
5
+ }
6
+ startMeasurement(key, labels) {
7
+ this.checkAndResetIfSessionExpired();
8
+ if (this.measurements.has(key) || !key.trim()) {
9
+ this.logDebug(`Invalid or duplicate key: "${key}".`);
10
+ return;
11
+ }
12
+ this.measurements.set(key, { startTime: Date.now(), labels });
13
+ }
14
+ getMeasurement(key) {
15
+ this.checkAndResetIfSessionExpired();
16
+ if (!this.measurements.has(key) || !key.trim()) {
17
+ this.logDebug(`Invalid or duplicate key: "${key}".`);
18
+ return undefined;
19
+ }
20
+ const { startTime, labels } = this.measurements.get(key);
21
+ this.measurements.delete(key);
22
+ return {
23
+ duration: Date.now() - startTime,
24
+ labels,
25
+ };
26
+ }
27
+ checkAndResetIfSessionExpired() {
28
+ if (getSessionManager().isIdleActive) {
29
+ this.measurements.clear();
30
+ }
31
+ }
32
+ logDebug(message) {
33
+ if (getSdkConfig().debug) {
34
+ console.debug(`Coralogix Browser SDK - ${message}`);
35
+ }
36
+ }
37
+ }
38
+ //# sourceMappingURL=timeMeasurementTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeMeasurementTracker.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/custom-measurements/timeMeasurementTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAIhE,MAAM,OAAO,sBAAsB;IAAnC;QACU,iBAAY,GAAoC,IAAI,GAAG,EAAE,CAAC;IAuCpE,CAAC;IArCC,gBAAgB,CAAC,GAAW,EAAE,MAA2B;QACvD,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAAC;YACrD,OAAO;SACR;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;YAC9C,IAAI,CAAC,QAAQ,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAAC;YACrD,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAChC,MAAM;SACP,CAAC;IACJ,CAAC;IAEO,6BAA6B;QACnC,IAAI,iBAAiB,EAAE,CAAC,YAAY,EAAE;YACpC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC3B;IACH,CAAC;IAEO,QAAQ,CAAC,OAAe;QAC9B,IAAI,YAAY,EAAE,CAAC,KAAK,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;SACrD;IACH,CAAC;CACF"}
@@ -1,9 +1,10 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { InstrumentationBase, } from '@opentelemetry/instrumentation';
3
- import { MEMORY_USAGE_INSTRUMENTATION_NAME, MEMORY_USAGE_INSTRUMENTATION_VERSION, } from './memory-usage.utils';
3
+ import { MEMORY_USAGE_INSTRUMENTATION_NAME, MEMORY_USAGE_INSTRUMENTATION_VERSION, } from './memory-usage-constants';
4
4
  import { getSdkConfig } from '../../helpers';
5
5
  import { CoralogixEventType } from '../../types';
6
6
  import { CoralogixAttributes } from '../../constants';
7
+ import { mapMemoryUsageEntries } from './memory-usage.utils';
7
8
  export class CoralogixMemoryUsageInstrumentation extends InstrumentationBase {
8
9
  disable() {
9
10
  this.clearMeasurementsInterval();
@@ -24,11 +25,14 @@ export class CoralogixMemoryUsageInstrumentation extends InstrumentationBase {
24
25
  return __awaiter(this, void 0, void 0, function* () {
25
26
  try {
26
27
  const memoryUsage = yield performance.measureUserAgentSpecificMemory();
27
- const memoryUsageSpan = this.tracer.startSpan(MEMORY_USAGE_INSTRUMENTATION_NAME);
28
- memoryUsageSpan[CoralogixAttributes.EVENT_TYPE] =
29
- CoralogixEventType.MEMORY_USAGE;
30
- memoryUsageSpan[CoralogixAttributes.MEMORY_USAGE_CONTEXT] = memoryUsage;
31
- memoryUsageSpan.end();
28
+ const memoryUsageEntries = mapMemoryUsageEntries(memoryUsage);
29
+ for (const entry of memoryUsageEntries) {
30
+ const memoryUsageSpan = this.tracer.startSpan(MEMORY_USAGE_INSTRUMENTATION_NAME);
31
+ memoryUsageSpan[CoralogixAttributes.EVENT_TYPE] =
32
+ CoralogixEventType.MEMORY_USAGE;
33
+ memoryUsageSpan[CoralogixAttributes.MEMORY_USAGE_CONTEXT] = entry;
34
+ memoryUsageSpan.end();
35
+ }
32
36
  }
33
37
  catch (error) {
34
38
  console.warn('Memory usage measurement failed', error);
@@ -1 +1 @@
1
- {"version":3,"file":"CoralogixMemoryUsageInstrumentation.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/memory-usage/CoralogixMemoryUsageInstrumentation.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,iCAAiC,EACjC,oCAAoC,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAsB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,OAAO,mCAAoC,SAAQ,mBAAmB;IAMjE,OAAO;QACd,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAEQ,MAAM;QACb,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAES,IAAI,KAAU,CAAC;IAEzB,YAAY,MAA6B;QACvC,KAAK,CACH,iCAAiC,EACjC,oCAAoC,EACpC,MAAM,CACP,CAAC;QAlBI,wBAAmB,GACzB,YAAY,EAAE,CAAC,iBAAkB,CAAC,QAAS,CAAC;IAkB9C,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrE,CAAC;IAEa,kBAAkB;;YAC9B,IAAI;gBACF,MAAM,WAAW,GACf,MAAM,WAAW,CAAC,8BAA8B,EAAE,CAAC;gBAErD,MAAM,eAAe,GAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CACjD,iCAAiC,CAClC,CAAC;gBAEF,eAAe,CAAC,mBAAmB,CAAC,UAAU,CAAC;oBAC7C,kBAAkB,CAAC,YAAY,CAAC;gBAElC,eAAe,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,GAAG,WAAW,CAAC;gBAExE,eAAe,CAAC,GAAG,EAAE,CAAC;aACvB;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;gBACvD,IAAI,CAAC,yBAAyB,EAAE,CAAC;aAClC;QACH,CAAC;KAAA;IAEO,qBAAqB;QAC3B,IAAI,CAAC,SAAS,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAC/B,IAAI,CAAC,mBAAmB,CACzB,CAAC;IACJ,CAAC;IAEa,kBAAkB;;YAC9B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;KAAA;IAEO,yBAAyB;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9B;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"CoralogixMemoryUsageInstrumentation.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/memory-usage/CoralogixMemoryUsageInstrumentation.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,iCAAiC,EACjC,oCAAoC,GACrC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,OAAO,mCAAoC,SAAQ,mBAAmB;IAMjE,OAAO;QACd,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAEQ,MAAM;QACb,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAES,IAAI,KAAU,CAAC;IAEzB,YAAY,MAA6B;QACvC,KAAK,CACH,iCAAiC,EACjC,oCAAoC,EACpC,MAAM,CACP,CAAC;QAlBI,wBAAmB,GACzB,YAAY,EAAE,CAAC,iBAAkB,CAAC,QAAS,CAAC;IAkB9C,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrE,CAAC;IAEa,kBAAkB;;YAC9B,IAAI;gBACF,MAAM,WAAW,GACf,MAAM,WAAW,CAAC,8BAA8B,EAAE,CAAC;gBAErD,MAAM,kBAAkB,GACtB,qBAAqB,CAAC,WAAW,CAAC,CAAC;gBAErC,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE;oBACtC,MAAM,eAAe,GAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CACjD,iCAAiC,CAClC,CAAC;oBAEF,eAAe,CAAC,mBAAmB,CAAC,UAAU,CAAC;wBAC7C,kBAAkB,CAAC,YAAY,CAAC;oBAElC,eAAe,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC;oBAElE,eAAe,CAAC,GAAG,EAAE,CAAC;iBACvB;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;gBACvD,IAAI,CAAC,yBAAyB,EAAE,CAAC;aAClC;QACH,CAAC;KAAA;IAEO,qBAAqB;QAC3B,IAAI,CAAC,SAAS,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAC/B,IAAI,CAAC,mBAAmB,CACzB,CAAC;IACJ,CAAC;IAEa,kBAAkB;;YAC9B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;KAAA;IAEO,yBAAyB;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9B;IACH,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export * from './memory-usage-constants';
2
+ export * from './memory-usage.types';
3
+ export * from './memory-usage.utils';
4
+ export * from './CoralogixMemoryUsageInstrumentation';
@@ -0,0 +1,5 @@
1
+ export * from './memory-usage-constants';
2
+ export * from './memory-usage.types';
3
+ export * from './memory-usage.utils';
4
+ export * from './CoralogixMemoryUsageInstrumentation';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/memory-usage/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uCAAuC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const MEMORY_USAGE_INSTRUMENTATION_NAME = "memory_usage";
2
+ export declare const MEMORY_USAGE_INSTRUMENTATION_VERSION = "1.0.0";
3
+ export declare const MEMORY_USAGE_DEFAULT_INTERVAL = 300000;
@@ -0,0 +1,4 @@
1
+ export const MEMORY_USAGE_INSTRUMENTATION_NAME = 'memory_usage';
2
+ export const MEMORY_USAGE_INSTRUMENTATION_VERSION = '1.0.0';
3
+ export const MEMORY_USAGE_DEFAULT_INTERVAL = 300000; // 5 minutes;
4
+ //# sourceMappingURL=memory-usage-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-usage-constants.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/memory-usage/memory-usage-constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iCAAiC,GAAG,cAAc,CAAC;AAChE,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAO,CAAC;AAC5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAO,CAAC,CAAC,aAAa"}
@@ -0,0 +1,25 @@
1
+ export interface MemoryUsageContext {
2
+ breakdown: MemoryUsageBreakdown[];
3
+ bytes: number;
4
+ }
5
+ export interface MemoryUsageBreakdown {
6
+ bytes: number;
7
+ types: string[];
8
+ attribution: MemoryUsageAttribution[];
9
+ }
10
+ export interface MemoryUsageEntry {
11
+ bytes: number;
12
+ uuid: string;
13
+ isParent?: boolean;
14
+ attribution?: MemoryUsageAttribution[];
15
+ types?: string;
16
+ }
17
+ interface MemoryUsageAttribution {
18
+ url: string;
19
+ scope: string;
20
+ container?: {
21
+ id: string;
22
+ src: string;
23
+ };
24
+ }
25
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memory-usage.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-usage.types.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/memory-usage/memory-usage.types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,3 @@
1
- export declare const MEMORY_USAGE_INSTRUMENTATION_NAME = "memory_usage";
2
- export declare const MEMORY_USAGE_INSTRUMENTATION_VERSION = "1.0.0";
3
- export declare const MEMORY_USAGE_DEFAULT_INTERVAL = 300000;
1
+ import { MemoryUsageContext, MemoryUsageEntry } from './memory-usage.types';
4
2
  export declare function isMeasureUserAgentSpecificMemoryAllowed(): boolean;
3
+ export declare function mapMemoryUsageEntries(memoryUsage: MemoryUsageContext): MemoryUsageEntry[];
@@ -1,6 +1,4 @@
1
- export const MEMORY_USAGE_INSTRUMENTATION_NAME = 'memory_usage';
2
- export const MEMORY_USAGE_INSTRUMENTATION_VERSION = '1.0.0';
3
- export const MEMORY_USAGE_DEFAULT_INTERVAL = 300000; // 5 minutes;
1
+ import { generateUUID } from '../../utils';
4
2
  export function isMeasureUserAgentSpecificMemoryAllowed() {
5
3
  if (!window.crossOriginIsolated) {
6
4
  console.debug('Coralogix Browser SDK - measureUserAgentSpecificMemory() is only available in cross-origin-isolated pages.');
@@ -12,4 +10,24 @@ export function isMeasureUserAgentSpecificMemoryAllowed() {
12
10
  }
13
11
  return true;
14
12
  }
13
+ export function mapMemoryUsageEntries(memoryUsage) {
14
+ const uuid = generateUUID();
15
+ const parentEntry = {
16
+ uuid,
17
+ isParent: true,
18
+ bytes: memoryUsage.bytes,
19
+ };
20
+ const breakdownEntries = [];
21
+ for (const entry of memoryUsage.breakdown) {
22
+ if (entry.bytes > 0) {
23
+ breakdownEntries.push({
24
+ uuid,
25
+ bytes: entry.bytes,
26
+ attribution: entry.attribution,
27
+ types: entry.types.sort().join(', '),
28
+ });
29
+ }
30
+ }
31
+ return [parentEntry, ...breakdownEntries];
32
+ }
15
33
  //# sourceMappingURL=memory-usage.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-usage.utils.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/memory-usage/memory-usage.utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iCAAiC,GAAG,cAAc,CAAC;AAChE,MAAM,CAAC,MAAM,oCAAoC,GAAG,OAAO,CAAC;AAC5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAO,CAAC,CAAC,aAAa;AAEnE,MAAM,UAAU,uCAAuC;IACrD,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;QAC/B,OAAO,CAAC,KAAK,CACX,4GAA4G,CAC7G,CAAC;QACF,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,WAAW,CAAC,8BAA8B,EAAE;QAC/C,OAAO,CAAC,KAAK,CACX,2FAA2F,CAC5F,CAAC;QACF,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"memory-usage.utils.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/memory-usage/memory-usage.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,UAAU,uCAAuC;IACrD,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;QAC/B,OAAO,CAAC,KAAK,CACX,4GAA4G,CAC7G,CAAC;QACF,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAC,WAAW,CAAC,8BAA8B,EAAE;QAC/C,OAAO,CAAC,KAAK,CACX,2FAA2F,CAC5F,CAAC;QACF,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,WAA+B;IAE/B,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;IAE5B,MAAM,WAAW,GAAqB;QACpC,IAAI;QACJ,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,WAAW,CAAC,KAAK;KACzB,CAAC;IAEF,MAAM,gBAAgB,GAAuB,EAAE,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE;QACzC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE;YACnB,gBAAgB,CAAC,IAAI,CAAC;gBACpB,IAAI;gBACJ,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACrC,CAAC,CAAC;SACJ;KACF;IACD,OAAO,CAAC,WAAW,EAAE,GAAG,gBAAgB,CAAC,CAAC;AAC5C,CAAC"}
@@ -3,6 +3,10 @@ export declare enum FetchSource {
3
3
  FETCH = "fetch"
4
4
  }
5
5
  export declare class CoralogixFetchInstrumentation extends FetchInstrumentation {
6
+ private networkDataManager;
7
+ private headersManager;
6
8
  constructor(config: FetchInstrumentationConfig);
7
- enable(): void;
9
+ private setNetworkSpanAttributes;
10
+ private setRequestAttributes;
11
+ private setResponseAttributes;
8
12
  }
@@ -0,0 +1,99 @@
1
+ import { __awaiter } from "tslib";
2
+ import { FetchInstrumentation, } from '@opentelemetry/instrumentation-fetch';
3
+ import { CoralogixAttributes } from '../../constants';
4
+ import { CoralogixEventType } from '../../types';
5
+ import { CoralogixLogSeverity } from '../../types-external';
6
+ import { propagateTraceHeaderCorsUrls } from '../../otel/CoralogixPropgator';
7
+ import { isNetworkError } from '../../utils';
8
+ import { NetworkDataManager } from './NetworkDataManager';
9
+ import { getSdkConfig } from '../../helpers';
10
+ import { HeadersManager } from './HeadersManager';
11
+ import { NetworkInstrumentationAttributes } from './constants';
12
+ export var FetchSource;
13
+ (function (FetchSource) {
14
+ FetchSource["FETCH"] = "fetch";
15
+ })(FetchSource || (FetchSource = {}));
16
+ export class CoralogixFetchInstrumentation extends FetchInstrumentation {
17
+ constructor(config) {
18
+ propagateTraceHeaderCorsUrls(config);
19
+ config.applyCustomAttributesOnSpan = (span, request, result) => {
20
+ this.setNetworkSpanAttributes(span, request, result);
21
+ };
22
+ super(config);
23
+ this.networkDataManager = new NetworkDataManager();
24
+ this.headersManager = new HeadersManager();
25
+ }
26
+ setNetworkSpanAttributes(span, request, response) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ const { status } = response;
29
+ const { networkExtraConfig } = getSdkConfig();
30
+ const url = span.attributes['http.url'] ||
31
+ '';
32
+ const resolvedConfig = this.networkDataManager.resolveConfigForUrl(url, networkExtraConfig);
33
+ if (resolvedConfig) {
34
+ yield this.setRequestAttributes(span, request, resolvedConfig);
35
+ yield this.setResponseAttributes(span, response, resolvedConfig);
36
+ }
37
+ span.setAttributes({
38
+ [CoralogixAttributes.SEVERITY]: isNetworkError(status)
39
+ ? CoralogixLogSeverity.Error
40
+ : CoralogixLogSeverity.Info,
41
+ [CoralogixAttributes.EVENT_TYPE]: CoralogixEventType.NETWORK_REQUEST,
42
+ [CoralogixAttributes.SOURCE]: FetchSource.FETCH,
43
+ });
44
+ });
45
+ }
46
+ setRequestAttributes(span, request, networkExtraConfig) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ const { reqHeaders, collectReqPayload } = networkExtraConfig;
49
+ try {
50
+ const requestPayload = collectReqPayload
51
+ ? yield this.networkDataManager.stringifyRequestBody(request)
52
+ : undefined;
53
+ const sanitizedHeaders = (reqHeaders === null || reqHeaders === void 0 ? void 0 : reqHeaders.length)
54
+ ? this.headersManager.filterHeaders(request.headers, reqHeaders)
55
+ : undefined;
56
+ if (requestPayload)
57
+ span[NetworkInstrumentationAttributes.REQUEST_PAYLOAD] = requestPayload;
58
+ if (sanitizedHeaders === null || sanitizedHeaders === void 0 ? void 0 : sanitizedHeaders.size) {
59
+ span[NetworkInstrumentationAttributes.REQUEST_HEADERS] =
60
+ Object.fromEntries(sanitizedHeaders);
61
+ }
62
+ }
63
+ catch (error) {
64
+ if (getSdkConfig().debug) {
65
+ console.debug('Error setting request attributes on span:', error);
66
+ }
67
+ }
68
+ });
69
+ }
70
+ setResponseAttributes(span, result, networkExtraConfig) {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ const { resHeaders, collectResPayload } = networkExtraConfig;
73
+ if (result instanceof Response) {
74
+ try {
75
+ const responsePayload = collectResPayload
76
+ ? yield this.networkDataManager.stringifyResponseBody(result)
77
+ : undefined;
78
+ const sanitizedHeaders = (resHeaders === null || resHeaders === void 0 ? void 0 : resHeaders.length)
79
+ ? this.headersManager.filterHeaders(result.headers, resHeaders)
80
+ : undefined;
81
+ if (responsePayload) {
82
+ span[NetworkInstrumentationAttributes.RESPONSE_PAYLOAD] =
83
+ responsePayload;
84
+ }
85
+ if (sanitizedHeaders === null || sanitizedHeaders === void 0 ? void 0 : sanitizedHeaders.size) {
86
+ span[NetworkInstrumentationAttributes.RESPONSE_HEADERS] =
87
+ Object.fromEntries(sanitizedHeaders);
88
+ }
89
+ }
90
+ catch (error) {
91
+ if (getSdkConfig().debug) {
92
+ console.debug('Error setting request attributes on span:', error);
93
+ }
94
+ }
95
+ }
96
+ });
97
+ }
98
+ }
99
+ //# sourceMappingURL=CoralogixFetchInstrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoralogixFetchInstrumentation.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/network/CoralogixFetchInstrumentation.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,9 @@ export declare enum XHRSource {
3
3
  XHR = "xhr"
4
4
  }
5
5
  export declare class CoralogixXhrInstrumentation extends XMLHttpRequestInstrumentation {
6
+ private networkDataManager;
7
+ private headersManager;
6
8
  constructor(config: XMLHttpRequestInstrumentationConfig);
9
+ private setNetworkSpanAttributes;
10
+ private setResponseAttributes;
7
11
  }
@@ -0,0 +1,57 @@
1
+ import { XMLHttpRequestInstrumentation, } from '@opentelemetry/instrumentation-xml-http-request';
2
+ import { CoralogixAttributes } from '../../constants';
3
+ import { CoralogixEventType } from '../../types';
4
+ import { CoralogixLogSeverity } from '../../types-external';
5
+ import { isNetworkError } from '../../utils';
6
+ import { propagateTraceHeaderCorsUrls } from '../../otel/CoralogixPropgator';
7
+ import { NetworkDataManager } from './NetworkDataManager';
8
+ import { getSdkConfig } from '../../helpers';
9
+ import { HeadersManager } from './HeadersManager';
10
+ import { NetworkInstrumentationAttributes } from './constants';
11
+ export var XHRSource;
12
+ (function (XHRSource) {
13
+ XHRSource["XHR"] = "xhr";
14
+ })(XHRSource || (XHRSource = {}));
15
+ export class CoralogixXhrInstrumentation extends XMLHttpRequestInstrumentation {
16
+ constructor(config) {
17
+ propagateTraceHeaderCorsUrls(config);
18
+ config.applyCustomAttributesOnSpan = (span, xhr) => {
19
+ this.setNetworkSpanAttributes(span, xhr);
20
+ };
21
+ super(config);
22
+ this.networkDataManager = new NetworkDataManager();
23
+ this.headersManager = new HeadersManager();
24
+ }
25
+ setNetworkSpanAttributes(span, xhr) {
26
+ const { status } = xhr;
27
+ const { networkExtraConfig } = getSdkConfig();
28
+ const resolvedConfig = this.networkDataManager.resolveConfigForUrl(xhr.responseURL, networkExtraConfig);
29
+ span.setAttributes({
30
+ [CoralogixAttributes.SEVERITY]: isNetworkError(status)
31
+ ? CoralogixLogSeverity.Error
32
+ : CoralogixLogSeverity.Info,
33
+ [CoralogixAttributes.EVENT_TYPE]: CoralogixEventType.NETWORK_REQUEST,
34
+ [CoralogixAttributes.SOURCE]: XHRSource.XHR,
35
+ });
36
+ if (resolvedConfig) {
37
+ this.setResponseAttributes(span, xhr, resolvedConfig);
38
+ }
39
+ }
40
+ setResponseAttributes(span, xhr, resolvedConfig) {
41
+ const { resHeaders, collectResPayload } = resolvedConfig;
42
+ const responsePayload = collectResPayload
43
+ ? this.networkDataManager.truncateIfExceedsLimit(xhr.responseText)
44
+ : undefined;
45
+ const sanitizedHeaders = (resHeaders === null || resHeaders === void 0 ? void 0 : resHeaders.length)
46
+ ? this.headersManager.filterHeaders(xhr.getAllResponseHeaders(), resHeaders)
47
+ : undefined;
48
+ if (responsePayload) {
49
+ span[NetworkInstrumentationAttributes.RESPONSE_PAYLOAD] = responsePayload;
50
+ }
51
+ if (sanitizedHeaders === null || sanitizedHeaders === void 0 ? void 0 : sanitizedHeaders.size) {
52
+ span[NetworkInstrumentationAttributes.RESPONSE_HEADERS] =
53
+ Object.fromEntries(sanitizedHeaders);
54
+ }
55
+ }
56
+ }
57
+ //# sourceMappingURL=CoralogixXhrInstrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoralogixXhrInstrumentation.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/network/CoralogixXhrInstrumentation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare class HeadersManager {
2
+ filterHeaders(headersInit: HeadersInit | string | undefined, allowedKeys?: string[]): Map<string, string>;
3
+ private normalizeHeaders;
4
+ private normalizeHeadersFromString;
5
+ }
@@ -0,0 +1,42 @@
1
+ export class HeadersManager {
2
+ filterHeaders(headersInit, allowedKeys = []) {
3
+ if (!headersInit) {
4
+ return new Map();
5
+ }
6
+ const normalized = this.normalizeHeaders(headersInit);
7
+ const filteredHeaders = new Map();
8
+ allowedKeys.forEach((headerKey) => {
9
+ const normalizedKey = headerKey.toLowerCase();
10
+ if (normalized.has(normalizedKey)) {
11
+ filteredHeaders.set(headerKey, normalized.get(normalizedKey));
12
+ }
13
+ });
14
+ return filteredHeaders;
15
+ }
16
+ normalizeHeaders(headersInit) {
17
+ if (typeof headersInit === 'string') {
18
+ return this.normalizeHeadersFromString(headersInit);
19
+ }
20
+ const headers = new Headers(headersInit);
21
+ const headersMap = new Map();
22
+ headers.forEach((value, key) => {
23
+ headersMap.set(key.toLowerCase(), value);
24
+ });
25
+ return headersMap;
26
+ }
27
+ normalizeHeadersFromString(headersString) {
28
+ const headerMap = new Map();
29
+ if (!headersString) {
30
+ return headerMap;
31
+ }
32
+ const lines = headersString.trim().split(/\r\n/);
33
+ lines.forEach((line) => {
34
+ const [key, value] = line.split(': ', 2);
35
+ if (key && value) {
36
+ headerMap.set(key.trim().toLowerCase(), value.trim());
37
+ }
38
+ });
39
+ return headerMap;
40
+ }
41
+ }
42
+ //# sourceMappingURL=HeadersManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadersManager.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/network/HeadersManager.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IACzB,aAAa,CACX,WAA6C,EAC7C,cAAwB,EAAE;QAE1B,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,IAAI,GAAG,EAAE,CAAC;SAClB;QAED,MAAM,UAAU,GAAwB,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC3E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAElD,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAChC,MAAM,aAAa,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAC9C,IAAI,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;gBACjC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC,CAAC;aAChE;QACH,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,gBAAgB,CACtB,WAAiC;QAEjC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACnC,OAAO,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;SACrD;QAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE7C,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC7B,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,0BAA0B,CAChC,aAAqB;QAErB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,GAAG,IAAI,KAAK,EAAE;gBAChB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;aACvD;QACH,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { NetworkExtraConfig } from '../../types';
2
+ export declare class NetworkDataManager {
3
+ private readonly responseBodyParsers;
4
+ private readonly requestBodySerializers;
5
+ resolveConfigForUrl(url: string, configs?: NetworkExtraConfig[]): NetworkExtraConfig | undefined;
6
+ stringifyRequestBody(request: Request | RequestInit): Promise<string | undefined>;
7
+ stringifyResponseBody(response: Response): Promise<string | undefined>;
8
+ truncateIfExceedsLimit(content: string): string | undefined;
9
+ private serializeRequestBody;
10
+ private serializeFormData;
11
+ }
@@ -0,0 +1,87 @@
1
+ import { __awaiter } from "tslib";
2
+ import { MAX_CHARACTERS } from '../../constants';
3
+ export class NetworkDataManager {
4
+ constructor() {
5
+ this.responseBodyParsers = new Map([
6
+ [MimeType.Json, (body) => __awaiter(this, void 0, void 0, function* () { return JSON.stringify(yield body.json()); })],
7
+ [MimeType.TextPlain, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
8
+ [MimeType.TextHtml, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
9
+ [MimeType.TextCss, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
10
+ [MimeType.TextJavascript, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
11
+ [MimeType.Xml, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
12
+ [MimeType.FormData, (body) => __awaiter(this, void 0, void 0, function* () { return yield body.text(); })],
13
+ ]);
14
+ this.requestBodySerializers = new Map([
15
+ [BodyType.String, (body) => __awaiter(this, void 0, void 0, function* () { return body; })],
16
+ [BodyType.Blob, (body) => __awaiter(this, void 0, void 0, function* () { return body.text(); })],
17
+ [
18
+ BodyType.FormData,
19
+ (body) => __awaiter(this, void 0, void 0, function* () { return this.serializeFormData(body); }),
20
+ ],
21
+ [
22
+ BodyType.URLSearchParams,
23
+ (body) => __awaiter(this, void 0, void 0, function* () { return body.toString(); }),
24
+ ],
25
+ [BodyType.JsonObject, (body) => __awaiter(this, void 0, void 0, function* () { return JSON.stringify(body); })],
26
+ ]);
27
+ }
28
+ resolveConfigForUrl(url, configs = []) {
29
+ return configs.find(({ url: configUrl }) => configUrl === url ||
30
+ (configUrl instanceof RegExp && configUrl.test(url)));
31
+ }
32
+ stringifyRequestBody(request) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ if (!(request === null || request === void 0 ? void 0 : request.body))
35
+ return '';
36
+ const bodyContent = yield this.serializeRequestBody(request.body);
37
+ return this.truncateIfExceedsLimit(bodyContent);
38
+ });
39
+ }
40
+ stringifyResponseBody(response) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ const contentType = response.headers.get('content-type') || '';
43
+ const mimeType = contentType.split(';')[0].trim();
44
+ const parser = this.responseBodyParsers.get(mimeType);
45
+ if (!parser)
46
+ return '';
47
+ const parsedContent = yield parser(response);
48
+ return this.truncateIfExceedsLimit(parsedContent);
49
+ });
50
+ }
51
+ truncateIfExceedsLimit(content) {
52
+ return content.length > MAX_CHARACTERS ? undefined : content;
53
+ }
54
+ serializeRequestBody(body) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ const handler = this.requestBodySerializers.get(body.constructor.name);
57
+ return handler ? yield handler(body) : '';
58
+ });
59
+ }
60
+ serializeFormData(formData) {
61
+ let result = '';
62
+ formData.forEach((value, key) => {
63
+ result += `${key}: ${value}\n`;
64
+ });
65
+ return result.trim();
66
+ }
67
+ }
68
+ var MimeType;
69
+ (function (MimeType) {
70
+ MimeType["Json"] = "application/json";
71
+ MimeType["TextPlain"] = "text/plain";
72
+ MimeType["TextHtml"] = "text/html";
73
+ MimeType["TextCss"] = "text/css";
74
+ MimeType["TextJavascript"] = "application/javascript";
75
+ MimeType["Xml"] = "application/xml";
76
+ MimeType["FormData"] = "multipart/form-data";
77
+ })(MimeType || (MimeType = {}));
78
+ var BodyType;
79
+ (function (BodyType) {
80
+ BodyType["String"] = "String";
81
+ BodyType["Blob"] = "Blob";
82
+ BodyType["FormData"] = "FormData";
83
+ BodyType["URLSearchParams"] = "URLSearchParams";
84
+ BodyType["JsonObject"] = "JsonObject";
85
+ BodyType["Unknown"] = "Unknown";
86
+ })(BodyType || (BodyType = {}));
87
+ //# sourceMappingURL=NetworkDataManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkDataManager.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/network/NetworkDataManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const NetworkInstrumentationAttributes: {
2
+ REQUEST_HEADERS: string;
3
+ RESPONSE_HEADERS: string;
4
+ RESPONSE_PAYLOAD: string;
5
+ REQUEST_PAYLOAD: string;
6
+ };
@@ -0,0 +1,7 @@
1
+ export const NetworkInstrumentationAttributes = {
2
+ REQUEST_HEADERS: 'request_headers',
3
+ RESPONSE_HEADERS: 'response_headers',
4
+ RESPONSE_PAYLOAD: 'response_payload',
5
+ REQUEST_PAYLOAD: 'request_payload',
6
+ };
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../libs/browser/src/instrumentations/network/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,eAAe,EAAE,iBAAiB;CACnC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { InstrumentationBase, InstrumentationConfig } from '@opentelemetry/instrumentation';
2
+ export declare class CoralogixScreenshotInstrumentation extends InstrumentationBase {
3
+ constructor(config: InstrumentationConfig);
4
+ protected init(): void;
5
+ disable(): void;
6
+ enable(): void;
7
+ screenshot(id: string, description?: string): void;
8
+ }