@coralogix/browser 3.4.1 → 3.5.1

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 (46) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +54 -35
  3. package/index.esm.js +1 -1
  4. package/index.esm2.js +126 -56
  5. package/package.json +1 -3
  6. package/sessionRecorder.esm.js +5535 -1314
  7. package/src/constants.d.ts +1 -2
  8. package/src/cx-rrweb/rrweb/index.d.ts +4 -0
  9. package/src/cx-rrweb/rrweb/record/cross-origin-iframe-mirror.d.ts +14 -0
  10. package/src/cx-rrweb/rrweb/record/error-handler.d.ts +6 -0
  11. package/src/cx-rrweb/rrweb/record/iframe-manager.d.ts +34 -0
  12. package/src/cx-rrweb/rrweb/record/index.d.ts +10 -0
  13. package/src/cx-rrweb/rrweb/record/mutation.d.ts +50 -0
  14. package/src/cx-rrweb/rrweb/record/observer.d.ts +9 -0
  15. package/src/cx-rrweb/rrweb/record/observers/canvas/2d.d.ts +2 -0
  16. package/src/cx-rrweb/rrweb/record/observers/canvas/canvas-manager.d.ts +37 -0
  17. package/src/cx-rrweb/rrweb/record/observers/canvas/canvas.d.ts +2 -0
  18. package/src/cx-rrweb/rrweb/record/observers/canvas/serialize-args.d.ts +6 -0
  19. package/src/cx-rrweb/rrweb/record/observers/canvas/webgl.d.ts +2 -0
  20. package/src/cx-rrweb/rrweb/record/processed-node-manager.d.ts +8 -0
  21. package/src/cx-rrweb/rrweb/record/shadow-dom-manager.d.ts +26 -0
  22. package/src/cx-rrweb/rrweb/record/stylesheet-manager.d.ts +17 -0
  23. package/src/cx-rrweb/rrweb/record/workers/image-bitmap-data-url-worker.d.ts +6 -0
  24. package/src/cx-rrweb/rrweb/types.d.ts +102 -0
  25. package/src/cx-rrweb/rrweb/utils/base64.d.ts +1 -0
  26. package/src/cx-rrweb/rrweb/utils.d.ts +66 -0
  27. package/src/cx-rrweb/rrweb-plugin-console-record/error-stack-parser.d.ts +37 -0
  28. package/src/cx-rrweb/rrweb-plugin-console-record/index.d.ts +42 -0
  29. package/src/cx-rrweb/rrweb-plugin-console-record/stringify.d.ts +2 -0
  30. package/src/cx-rrweb/rrweb-snapshot/index.d.ts +4 -0
  31. package/src/cx-rrweb/rrweb-snapshot/snapshot.d.ts +76 -0
  32. package/src/cx-rrweb/rrweb-snapshot/types.d.ts +50 -0
  33. package/src/cx-rrweb/rrweb-snapshot/utils.d.ts +51 -0
  34. package/src/cx-rrweb/rrweb-types/index.d.ts +558 -0
  35. package/src/cx-rrweb/rrweb-utils/index.d.ts +43 -0
  36. package/src/instrumentations/CoralogixErrorInstrumentation.d.ts +4 -1
  37. package/src/otel/rum-span-attributes.types.d.ts +1 -0
  38. package/src/session/session-idle.d.ts +2 -0
  39. package/src/session/session.model.d.ts +3 -3
  40. package/src/session/sessionRecorder.d.ts +0 -3
  41. package/src/tools/cx-timers.d.ts +25 -0
  42. package/src/tools/global-keys.d.ts +2 -0
  43. package/src/types.d.ts +3 -1
  44. package/src/version.d.ts +1 -1
  45. package/src/tools/getZoneJsOriginalDom.d.ts +0 -1
  46. package/src/utils/zone-patch.d.ts +0 -10
@@ -1,5 +1,7 @@
1
1
  import { InstrumentationBase, InstrumentationConfig } from '@opentelemetry/instrumentation';
2
- import { CoralogixRumLabels } from '../types';
2
+ import { CoralogixRumLabels, CxStackFrame } from '../types';
3
+ export declare const STACK_FRAME_LIMIT = 50;
4
+ export declare const STACK_LINE_LIMIT = 1024;
3
5
  export declare function extractMfePath(fileName: string): string | undefined;
4
6
  export declare const ERROR_INSTRUMENTATION_NAME = "errors";
5
7
  export declare const ErrorAttributes: {
@@ -19,6 +21,7 @@ export declare enum ErrorSource {
19
21
  interface CoralogixErrorInstrumentationConfig extends InstrumentationConfig {
20
22
  ignoreErrors?: Array<string | RegExp>;
21
23
  }
24
+ export declare function parseStackFrames(err: Error): CxStackFrame[];
22
25
  export declare class CoralogixErrorInstrumentation extends InstrumentationBase {
23
26
  constructor(config: CoralogixErrorInstrumentationConfig);
24
27
  protected init(): void;
@@ -6,6 +6,7 @@ export interface CxRumSpanAttributes extends Attributes {
6
6
  'cx_rum.environment'?: string;
7
7
  'cx_rum.version_metadata.app_name'?: string;
8
8
  'cx_rum.version_metadata.app_version'?: string;
9
+ 'cx_rum.session_context.session_id'?: string;
9
10
  'cx_rum.session_context.os'?: string;
10
11
  'cx_rum.session_context.osVersion'?: string;
11
12
  'cx_rum.session_context.browser'?: string;
@@ -6,6 +6,8 @@ interface SessionIdleConfig {
6
6
  export declare class SessionIdle {
7
7
  private idleConfig;
8
8
  private _isIdleActive;
9
+ private lastResetTime;
10
+ private readonly THROTTLE_MS;
9
11
  private stopCallbacks;
10
12
  constructor(idleConfig: SessionIdleConfig);
11
13
  get isIdleActive(): boolean;
@@ -1,7 +1,7 @@
1
- import { eventWithTime } from '@rrweb/types';
2
- import { SlimDOMOptions } from 'rrweb-snapshot';
1
+ import { eventWithTime } from '../cx-rrweb/rrweb-types';
2
+ import { SlimDOMOptions } from '../cx-rrweb/rrweb-snapshot';
3
3
  import { CoralogixEventType } from '../types';
4
- import { recordOptions } from 'rrweb';
4
+ import { recordOptions } from '../cx-rrweb/rrweb';
5
5
  export interface SessionRecordingConfig extends Omit<recordOptions<eventWithTime>, 'emit' | 'packFn' | 'plugins' | 'hooks' | 'slimDOMOptions'> {
6
6
  enable: boolean;
7
7
  autoStartSessionRecording: boolean;
@@ -3,7 +3,6 @@ import { SessionManager } from './sessionManager';
3
3
  export declare class SessionRecorder {
4
4
  private sessionWorker;
5
5
  private readonly isAutoStartRecording;
6
- private readonly maxMutations;
7
6
  private readonly onlySessionWithErrorMode;
8
7
  private readonly maxRecordTimeForSessionWithError;
9
8
  private recordEvents;
@@ -34,8 +33,6 @@ export declare class SessionRecorder {
34
33
  startRecording(): Promise<void>;
35
34
  screenshot(id: string): void;
36
35
  stopRecording(): void;
37
- private onMutation;
38
- private getMutationCount;
39
36
  private clearIntervals;
40
37
  private prepareRecordConfig;
41
38
  private handleRecordEvent;
@@ -0,0 +1,25 @@
1
+ export interface ZoneType {
2
+ root: ZoneType;
3
+ current: ZoneType;
4
+ name?: string;
5
+ __symbol__?: (name: string) => string;
6
+ run: <T>(fn: () => T) => T;
7
+ }
8
+ export interface WindowWithZone {
9
+ Zone?: ZoneType;
10
+ setTimeout: typeof setTimeout;
11
+ setInterval: typeof setInterval;
12
+ clearTimeout: typeof clearTimeout;
13
+ clearInterval: typeof clearInterval;
14
+ requestAnimationFrame: typeof requestAnimationFrame;
15
+ cancelAnimationFrame: typeof cancelAnimationFrame;
16
+ MutationObserver: typeof MutationObserver;
17
+ }
18
+ export declare function getZoneJsOriginalDom<Target, Name extends keyof Target & string>(target: Target, name: Name): Target[Name];
19
+ export declare function cxSetTimeout(callback: () => void, delay?: number): ReturnType<typeof setTimeout>;
20
+ export declare function cxSetInterval(callback: () => void, delay?: number): ReturnType<typeof setInterval>;
21
+ export declare function cxClearTimeout(id: ReturnType<typeof setTimeout>): void;
22
+ export declare function cxClearInterval(id: ReturnType<typeof setInterval>): void;
23
+ export declare function cxRequestAnimationFrame(callback: FrameRequestCallback): number;
24
+ export declare function cxCancelAnimationFrame(id: number): void;
25
+ export declare function createCxMutationObserver(callback: MutationCallback): MutationObserver;
@@ -0,0 +1,2 @@
1
+ export declare const SDK_CONFIG_KEY = "sdkConfig";
2
+ export declare const USER_AGENT_KEY = "userAgent";
package/src/types.d.ts CHANGED
@@ -138,6 +138,7 @@ export interface CoralogixBrowserSdkConfig {
138
138
  labels?: CoralogixRumLabels;
139
139
  ignoreUrls?: Array<string | RegExp>;
140
140
  ignoreErrors?: Array<string | RegExp>;
141
+ stackTraceLimit?: number;
141
142
  instrumentations?: CoralogixOtelWebOptionsInstrumentations;
142
143
  traceParentInHeader?: TraceHeaderConfiguration;
143
144
  environment?: string;
@@ -159,6 +160,7 @@ export interface CoralogixBrowserSdkConfig {
159
160
  supportMfe?: boolean;
160
161
  workerSupport?: boolean;
161
162
  tracesExporter?: (data: TraceExporterData) => void;
163
+ runOutsideAngularZone?: boolean;
162
164
  }
163
165
  export interface CoralogixOtelWebType extends SendLog {
164
166
  init: (options: CoralogixBrowserSdkConfig) => void;
@@ -228,7 +230,7 @@ export interface LongTaskContext extends Omit<PerformanceEntry, 'toJSON'> {
228
230
  export interface WebVitalsContext extends Metric {
229
231
  attribution?: MetricWithAttribution;
230
232
  }
231
- export interface ResourceContext extends Omit<PerformanceResourceTiming, 'toJSON'> {
233
+ export interface ResourceContext extends Omit<PerformanceResourceTiming, 'toJSON' | 'responseStatus'> {
232
234
  responseStatus?: number;
233
235
  deliveryType?: string;
234
236
  firstInterimResponseStart?: number;
package/src/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "3.4.1";
1
+ export declare const SDK_VERSION = "3.5.1";
@@ -1 +0,0 @@
1
- export declare function getZoneJsOriginalDom<Target, Name extends keyof Target & string>(target: Target, name: Name): Target[Name];
@@ -1,10 +0,0 @@
1
- export interface ZoneType {
2
- root: ZoneType;
3
- current: ZoneType;
4
- __symbol__?: (name: string) => string;
5
- run: <T>(fn: () => T) => T;
6
- }
7
- export declare function hasZoneJs(): boolean;
8
- export declare function isInRootZone(): boolean;
9
- export declare function runOutsideAngularZone<T>(fn: () => T): T;
10
- export declare function patchAsyncApisForZone(): (() => void) | undefined;