@multiplayer-app/session-recorder-react-native 1.3.34 → 1.3.36

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 (47) hide show
  1. package/ios/SessionRecorderNative.swift +4 -2
  2. package/lib/module/config/defaults.js +2 -1
  3. package/lib/module/config/defaults.js.map +1 -1
  4. package/lib/module/config/session-recorder.js +2 -1
  5. package/lib/module/config/session-recorder.js.map +1 -1
  6. package/lib/module/recorder/index.js +14 -9
  7. package/lib/module/recorder/index.js.map +1 -1
  8. package/lib/module/recorder/{navigationTracker.js → navigationRecorder.js} +16 -6
  9. package/lib/module/recorder/navigationRecorder.js.map +1 -0
  10. package/lib/module/recorder/screenRecorder.js +53 -10
  11. package/lib/module/recorder/screenRecorder.js.map +1 -1
  12. package/lib/module/services/api.service.js +50 -55
  13. package/lib/module/services/api.service.js.map +1 -1
  14. package/lib/module/services/socket.service.js +3 -1
  15. package/lib/module/services/socket.service.js.map +1 -1
  16. package/lib/module/session-recorder.js.map +1 -1
  17. package/lib/module/types/session-recorder.js.map +1 -1
  18. package/lib/typescript/src/config/defaults.d.ts.map +1 -1
  19. package/lib/typescript/src/config/session-recorder.d.ts.map +1 -1
  20. package/lib/typescript/src/recorder/index.d.ts +3 -3
  21. package/lib/typescript/src/recorder/index.d.ts.map +1 -1
  22. package/lib/typescript/src/recorder/{navigationTracker.d.ts → navigationRecorder.d.ts} +2 -2
  23. package/lib/typescript/src/recorder/navigationRecorder.d.ts.map +1 -0
  24. package/lib/typescript/src/recorder/screenRecorder.d.ts +10 -0
  25. package/lib/typescript/src/recorder/screenRecorder.d.ts.map +1 -1
  26. package/lib/typescript/src/services/api.service.d.ts +9 -8
  27. package/lib/typescript/src/services/api.service.d.ts.map +1 -1
  28. package/lib/typescript/src/services/socket.service.d.ts +1 -0
  29. package/lib/typescript/src/services/socket.service.d.ts.map +1 -1
  30. package/lib/typescript/src/session-recorder.d.ts.map +1 -1
  31. package/lib/typescript/src/types/configs.d.ts +6 -0
  32. package/lib/typescript/src/types/configs.d.ts.map +1 -1
  33. package/lib/typescript/src/types/session-recorder.d.ts +2 -0
  34. package/lib/typescript/src/types/session-recorder.d.ts.map +1 -1
  35. package/package.json +2 -2
  36. package/src/config/defaults.ts +1 -0
  37. package/src/config/session-recorder.ts +4 -0
  38. package/src/recorder/index.ts +25 -12
  39. package/src/recorder/{navigationTracker.ts → navigationRecorder.ts} +17 -5
  40. package/src/recorder/screenRecorder.ts +69 -18
  41. package/src/services/api.service.ts +58 -70
  42. package/src/services/socket.service.ts +3 -2
  43. package/src/session-recorder.ts +2 -0
  44. package/src/types/configs.ts +6 -0
  45. package/src/types/session-recorder.ts +2 -0
  46. package/lib/module/recorder/navigationTracker.js.map +0 -1
  47. package/lib/typescript/src/recorder/navigationTracker.d.ts.map +0 -1
@@ -69,7 +69,8 @@ class SessionRecorderNative: RCTEventEmitter, UIGestureRecognizerDelegate {
69
69
 
70
70
  let renderer = UIGraphicsImageRenderer(size: window.bounds.size, format: rendererFormat)
71
71
  let image = renderer.image { _ in
72
- window.drawHierarchy(in: window.bounds, afterScreenUpdates: false)
72
+ // Wait for the latest committed frame; `false` can capture a blank pre-render frame.
73
+ window.drawHierarchy(in: window.bounds, afterScreenUpdates: true)
73
74
  }
74
75
 
75
76
  // Apply masking to sensitive elements
@@ -122,7 +123,8 @@ class SessionRecorderNative: RCTEventEmitter, UIGestureRecognizerDelegate {
122
123
 
123
124
  let renderer = UIGraphicsImageRenderer(size: window.bounds.size, format: rendererFormat)
124
125
  let image = renderer.image { _ in
125
- window.drawHierarchy(in: window.bounds, afterScreenUpdates: false)
126
+ // Wait for the latest committed frame; `false` can capture a blank pre-render frame.
127
+ window.drawHierarchy(in: window.bounds, afterScreenUpdates: true)
126
128
  }
127
129
 
128
130
  // Apply masking with custom options
@@ -80,7 +80,8 @@ export const BASE_CONFIG = {
80
80
  useWebsocket: true,
81
81
  buffering: {
82
82
  enabled: false,
83
- windowMinutes: 0.5
83
+ windowMinutes: 0.5,
84
+ snapshotIntervalMs: 20000
84
85
  }
85
86
  };
86
87
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SessionRecorderSdk","MULTIPLAYER_BASE_API_URL","MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL","LogLevel","WidgetButtonPlacement","OTEL_MP_SAMPLE_TRACE_RATIO","DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE","mask","sensitiveFields","sensitiveHeaders","DEFAULT_MASKING_CONFIG","isContentMaskingEnabled","maskBody","maskHeaders","maskBodyFieldsList","maskHeadersList","headersToInclude","headersToExclude","maskImages","maskLabels","maskButtons","maskWebViews","maskTextInputs","maskSandboxedViews","DEFAULT_WIDGET_TEXT_CONFIG","initialTitleWithContinuous","initialTitleWithoutContinuous","initialDescriptionWithContinuous","initialDescriptionWithoutContinuous","continuousRecordingLabel","startRecordingButtonText","finalTitle","finalDescription","commentPlaceholder","saveButtonText","cancelButtonText","continuousOverlayTitle","continuousOverlayDescription","saveLastSnapshotButtonText","submitDialogTitle","submitDialogSubtitle","submitDialogCommentLabel","submitDialogCommentPlaceholder","submitDialogSubmitText","submitDialogCancelText","BASE_CONFIG","apiKey","version","application","environment","showContinuousRecording","widget","enabled","button","visible","placement","bottomRight","textOverrides","apiBaseUrl","exporterEndpoint","schemifyDocSpanPayload","ignoreUrls","propagateTraceHeaderCorsUrls","sampleTraceRatio","maxCapturingHttpPayloadSize","captureBody","captureHeaders","masking","recordScreen","recordGestures","recordNavigation","logger","level","INFO","useWebsocket","buffering","windowMinutes"],"sourceRoot":"../../../src","sources":["config/defaults.ts"],"mappings":";;AAAA,SACEA,kBAAkB,EAClBC,wBAAwB,EACxBC,iDAAiD,QAC5C,0CAA0C;AACjD,SACEC,QAAQ,EACRC,qBAAqB,QAEhB,mBAAU;AACjB,SACEC,0BAA0B,EAC1BC,uCAAuC,QAClC,gBAAa;AAEpB,MAAM;EAAEC,IAAI;EAAEC,eAAe;EAAEC;AAAiB,CAAC,GAAGT,kBAAkB;AAEtE,OAAO,MAAMU,sBAAyD,GAAG;EACvEC,uBAAuB,EAAE,IAAI;EAC7BC,QAAQ,EAAEL,IAAI,CAACC,eAAe,CAAC;EAC/BK,WAAW,EAAEN,IAAI,CAACE,gBAAgB,CAAC;EACnCK,kBAAkB,EAAEN,eAAe;EACnCO,eAAe,EAAEN,gBAAgB;EACjCO,gBAAgB,EAAE,EAAE;EACpBC,gBAAgB,EAAE,EAAE;EACpB;EACAC,UAAU,EAAE,KAAK;EACjBC,UAAU,EAAE,KAAK;EACjBC,WAAW,EAAE,KAAK;EAClBC,YAAY,EAAE,KAAK;EACnBC,cAAc,EAAE,KAAK;EACrBC,kBAAkB,EAAE;AACtB,CAAC;AAED,OAAO,MAAMC,0BAA6E,GACxF;EACEC,0BAA0B,EAAE,uBAAuB;EACnDC,6BAA6B,EAAE,uBAAuB;EACtDC,gCAAgC,EAC9B,kEAAkE;EACpEC,mCAAmC,EACjC,kEAAkE;EACpEC,wBAAwB,EAAE,sBAAsB;EAChDC,wBAAwB,EAAE,iBAAiB;EAC3CC,UAAU,EAAE,iBAAiB;EAC7BC,gBAAgB,EACd,0FAA0F;EAC5FC,kBAAkB,EAAE,kBAAkB;EACtCC,cAAc,EAAE,kBAAkB;EAClCC,gBAAgB,EAAE,kBAAkB;EACpCC,sBAAsB,EAAE,mCAAmC;EAC3DC,4BAA4B,EAC1B,mOAAmO;EACrOC,0BAA0B,EAAE,gBAAgB;EAC5CC,iBAAiB,EAAE,gBAAgB;EACnCC,oBAAoB,EAClB,iJAAiJ;EACnJC,wBAAwB,EAAE,+CAA+C;EACzEC,8BAA8B,EAAE,kBAAkB;EAClDC,sBAAsB,EAAE,MAAM;EAC9BC,sBAAsB,EAAE;AAC1B,CAAC;AAEH,OAAO,MAAMC,WAAmC,GAAG;EACjDC,MAAM,EAAE,EAAE;EAEVC,OAAO,EAAE,EAAE;EACXC,WAAW,EAAE,EAAE;EACfC,WAAW,EAAE,EAAE;EAEfC,uBAAuB,EAAE,IAAI;EAE7BC,MAAM,EAAE;IACNC,OAAO,EAAE,IAAI;IACbC,MAAM,EAAE;MACNC,OAAO,EAAE,IAAI;MACbC,SAAS,EAAEnD,qBAAqB,CAACoD;IACnC,CAAC;IACDC,aAAa,EAAEjC;EACjB,CAAC;EAEDkC,UAAU,EAAEzD,wBAAwB;EACpC0D,gBAAgB,EAAEzD,iDAAiD;EAEnE0D,sBAAsB,EAAE,IAAI;EAE5BC,UAAU,EAAE,EAAE;EACdC,4BAA4B,EAAE,EAAE;EAEhCC,gBAAgB,EAAE1D,0BAA0B;EAC5C2D,2BAA2B,EAAE1D,uCAAuC;EAEpE2D,WAAW,EAAE,IAAI;EACjBC,cAAc,EAAE,IAAI;EACpBC,OAAO,EAAEzD,sBAAsB;EAE/B0D,YAAY,EAAE,IAAI;EAClBC,cAAc,EAAE,IAAI;EACpBC,gBAAgB,EAAE,IAAI;EAEtBC,MAAM,EAAE;IACNnB,OAAO,EAAE,KAAK;IACdoB,KAAK,EAAErE,QAAQ,CAACsE;EAClB,CAAC;EAEDC,YAAY,EAAE,IAAI;EAElBC,SAAS,EAAE;IACTvB,OAAO,EAAE,KAAK;IACdwB,aAAa,EAAE;EACjB;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["SessionRecorderSdk","MULTIPLAYER_BASE_API_URL","MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL","LogLevel","WidgetButtonPlacement","OTEL_MP_SAMPLE_TRACE_RATIO","DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE","mask","sensitiveFields","sensitiveHeaders","DEFAULT_MASKING_CONFIG","isContentMaskingEnabled","maskBody","maskHeaders","maskBodyFieldsList","maskHeadersList","headersToInclude","headersToExclude","maskImages","maskLabels","maskButtons","maskWebViews","maskTextInputs","maskSandboxedViews","DEFAULT_WIDGET_TEXT_CONFIG","initialTitleWithContinuous","initialTitleWithoutContinuous","initialDescriptionWithContinuous","initialDescriptionWithoutContinuous","continuousRecordingLabel","startRecordingButtonText","finalTitle","finalDescription","commentPlaceholder","saveButtonText","cancelButtonText","continuousOverlayTitle","continuousOverlayDescription","saveLastSnapshotButtonText","submitDialogTitle","submitDialogSubtitle","submitDialogCommentLabel","submitDialogCommentPlaceholder","submitDialogSubmitText","submitDialogCancelText","BASE_CONFIG","apiKey","version","application","environment","showContinuousRecording","widget","enabled","button","visible","placement","bottomRight","textOverrides","apiBaseUrl","exporterEndpoint","schemifyDocSpanPayload","ignoreUrls","propagateTraceHeaderCorsUrls","sampleTraceRatio","maxCapturingHttpPayloadSize","captureBody","captureHeaders","masking","recordScreen","recordGestures","recordNavigation","logger","level","INFO","useWebsocket","buffering","windowMinutes","snapshotIntervalMs"],"sourceRoot":"../../../src","sources":["config/defaults.ts"],"mappings":";;AAAA,SACEA,kBAAkB,EAClBC,wBAAwB,EACxBC,iDAAiD,QAC5C,0CAA0C;AACjD,SACEC,QAAQ,EACRC,qBAAqB,QAEhB,mBAAU;AACjB,SACEC,0BAA0B,EAC1BC,uCAAuC,QAClC,gBAAa;AAEpB,MAAM;EAAEC,IAAI;EAAEC,eAAe;EAAEC;AAAiB,CAAC,GAAGT,kBAAkB;AAEtE,OAAO,MAAMU,sBAAyD,GAAG;EACvEC,uBAAuB,EAAE,IAAI;EAC7BC,QAAQ,EAAEL,IAAI,CAACC,eAAe,CAAC;EAC/BK,WAAW,EAAEN,IAAI,CAACE,gBAAgB,CAAC;EACnCK,kBAAkB,EAAEN,eAAe;EACnCO,eAAe,EAAEN,gBAAgB;EACjCO,gBAAgB,EAAE,EAAE;EACpBC,gBAAgB,EAAE,EAAE;EACpB;EACAC,UAAU,EAAE,KAAK;EACjBC,UAAU,EAAE,KAAK;EACjBC,WAAW,EAAE,KAAK;EAClBC,YAAY,EAAE,KAAK;EACnBC,cAAc,EAAE,KAAK;EACrBC,kBAAkB,EAAE;AACtB,CAAC;AAED,OAAO,MAAMC,0BAA6E,GACxF;EACEC,0BAA0B,EAAE,uBAAuB;EACnDC,6BAA6B,EAAE,uBAAuB;EACtDC,gCAAgC,EAC9B,kEAAkE;EACpEC,mCAAmC,EACjC,kEAAkE;EACpEC,wBAAwB,EAAE,sBAAsB;EAChDC,wBAAwB,EAAE,iBAAiB;EAC3CC,UAAU,EAAE,iBAAiB;EAC7BC,gBAAgB,EACd,0FAA0F;EAC5FC,kBAAkB,EAAE,kBAAkB;EACtCC,cAAc,EAAE,kBAAkB;EAClCC,gBAAgB,EAAE,kBAAkB;EACpCC,sBAAsB,EAAE,mCAAmC;EAC3DC,4BAA4B,EAC1B,mOAAmO;EACrOC,0BAA0B,EAAE,gBAAgB;EAC5CC,iBAAiB,EAAE,gBAAgB;EACnCC,oBAAoB,EAClB,iJAAiJ;EACnJC,wBAAwB,EAAE,+CAA+C;EACzEC,8BAA8B,EAAE,kBAAkB;EAClDC,sBAAsB,EAAE,MAAM;EAC9BC,sBAAsB,EAAE;AAC1B,CAAC;AAEH,OAAO,MAAMC,WAAmC,GAAG;EACjDC,MAAM,EAAE,EAAE;EAEVC,OAAO,EAAE,EAAE;EACXC,WAAW,EAAE,EAAE;EACfC,WAAW,EAAE,EAAE;EAEfC,uBAAuB,EAAE,IAAI;EAE7BC,MAAM,EAAE;IACNC,OAAO,EAAE,IAAI;IACbC,MAAM,EAAE;MACNC,OAAO,EAAE,IAAI;MACbC,SAAS,EAAEnD,qBAAqB,CAACoD;IACnC,CAAC;IACDC,aAAa,EAAEjC;EACjB,CAAC;EAEDkC,UAAU,EAAEzD,wBAAwB;EACpC0D,gBAAgB,EAAEzD,iDAAiD;EAEnE0D,sBAAsB,EAAE,IAAI;EAE5BC,UAAU,EAAE,EAAE;EACdC,4BAA4B,EAAE,EAAE;EAEhCC,gBAAgB,EAAE1D,0BAA0B;EAC5C2D,2BAA2B,EAAE1D,uCAAuC;EAEpE2D,WAAW,EAAE,IAAI;EACjBC,cAAc,EAAE,IAAI;EACpBC,OAAO,EAAEzD,sBAAsB;EAE/B0D,YAAY,EAAE,IAAI;EAClBC,cAAc,EAAE,IAAI;EACpBC,gBAAgB,EAAE,IAAI;EAEtBC,MAAM,EAAE;IACNnB,OAAO,EAAE,KAAK;IACdoB,KAAK,EAAErE,QAAQ,CAACsE;EAClB,CAAC;EAEDC,YAAY,EAAE,IAAI;EAElBC,SAAS,EAAE;IACTvB,OAAO,EAAE,KAAK;IACdwB,aAAa,EAAE,GAAG;IAClBC,kBAAkB,EAAE;EACtB;AACF,CAAC","ignoreList":[]}
@@ -42,7 +42,8 @@ export const getSessionRecorderConfig = c => {
42
42
  useWebsocket: isValidBoolean(c.useWebsocket, BASE_CONFIG.useWebsocket),
43
43
  buffering: {
44
44
  enabled: isValidBoolean(c.buffering?.enabled, BASE_CONFIG.buffering.enabled),
45
- windowMinutes: isValidNumber(c.buffering?.windowMinutes, BASE_CONFIG.buffering.windowMinutes)
45
+ windowMinutes: isValidNumber(c.buffering?.windowMinutes, BASE_CONFIG.buffering.windowMinutes),
46
+ snapshotIntervalMs: isValidNumber(c.buffering?.snapshotIntervalMs, BASE_CONFIG.buffering.snapshotIntervalMs)
46
47
  }
47
48
  };
48
49
  };
@@ -1 +1 @@
1
- {"version":3,"names":["LogLevel","BASE_CONFIG","getMaskingConfig","isValidString","isValidNumber","isValidBoolean","isValidArray","getWidgetConfig","getLoggerConfig","config","logger","level","INFO","enabled","getSessionRecorderConfig","c","apiKey","version","application","environment","exporterEndpoint","apiBaseUrl","showContinuousRecording","ignoreUrls","sampleTraceRatio","propagateTraceHeaderCorsUrls","schemifyDocSpanPayload","maxCapturingHttpPayloadSize","captureBody","captureHeaders","recordScreen","recordGestures","recordNavigation","masking","widget","useWebsocket","buffering","windowMinutes"],"sourceRoot":"../../../src","sources":["config/session-recorder.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["LogLevel","BASE_CONFIG","getMaskingConfig","isValidString","isValidNumber","isValidBoolean","isValidArray","getWidgetConfig","getLoggerConfig","config","logger","level","INFO","enabled","getSessionRecorderConfig","c","apiKey","version","application","environment","exporterEndpoint","apiBaseUrl","showContinuousRecording","ignoreUrls","sampleTraceRatio","propagateTraceHeaderCorsUrls","schemifyDocSpanPayload","maxCapturingHttpPayloadSize","captureBody","captureHeaders","recordScreen","recordGestures","recordNavigation","masking","widget","useWebsocket","buffering","windowMinutes","snapshotIntervalMs"],"sourceRoot":"../../../src","sources":["config/session-recorder.ts"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ import { EventType } from '@rrweb/types';
3
4
  import { SessionType } from '@multiplayer-app/session-recorder-common';
4
- // import { pack } from '@rrweb/packer' // Removed to avoid blob creation issues in Hermes
5
-
6
5
  import { logger } from "../utils/index.js";
7
6
  import { ScreenRecorder } from "./screenRecorder.js";
8
7
  import { GestureRecorder } from "./gestureRecorder.js";
9
- import { NavigationTracker } from "./navigationTracker.js";
8
+ import { NavigationRecorder } from "./navigationRecorder.js";
10
9
  export class RecorderReactNativeSDK {
11
10
  isRecording = false;
12
11
  recordedEvents = [];
@@ -17,7 +16,7 @@ export class RecorderReactNativeSDK {
17
16
  constructor() {
18
17
  this.screenRecorder = new ScreenRecorder();
19
18
  this.gestureRecorder = new GestureRecorder();
20
- this.navigationTracker = new NavigationTracker();
19
+ this.navigationRecorder = new NavigationRecorder();
21
20
  }
22
21
  init(config, socketService, crashBuffer, buffering) {
23
22
  this.config = config;
@@ -26,7 +25,7 @@ export class RecorderReactNativeSDK {
26
25
  this.bufferingEnabled = Boolean(buffering?.enabled);
27
26
  this.bufferWindowMs = Math.max(10_000, buffering?.windowMs || 0.5 * 60 * 1000);
28
27
  this.screenRecorder.init(config, this);
29
- this.navigationTracker.init(config, this.screenRecorder);
28
+ this.navigationRecorder.init(config, this.screenRecorder);
30
29
  this.gestureRecorder.init(config, this, this.screenRecorder);
31
30
  }
32
31
  start(sessionId, sessionType) {
@@ -40,24 +39,25 @@ export class RecorderReactNativeSDK {
40
39
  // Emit recording started meta event
41
40
 
42
41
  if (this.config.recordScreen) {
42
+ this.screenRecorder.setBufferOnlyMode(!sessionId && this.bufferingEnabled);
43
43
  this.screenRecorder.start();
44
44
  }
45
45
  if (this.config.recordGestures) {
46
46
  this.gestureRecorder.start();
47
47
  }
48
48
  if (this.config.recordNavigation) {
49
- this.navigationTracker.start();
49
+ this.navigationRecorder.start();
50
50
  }
51
51
  }
52
52
  stop() {
53
53
  this.isRecording = false;
54
54
  this.gestureRecorder.stop();
55
- this.navigationTracker.stop();
55
+ this.navigationRecorder.stop();
56
56
  this.screenRecorder.stop();
57
57
  this.socketService?.close();
58
58
  }
59
59
  setNavigationRef(ref) {
60
- this.navigationTracker.setNavigationRef(ref);
60
+ this.navigationRecorder.setNavigationRef(ref);
61
61
  }
62
62
 
63
63
  /**
@@ -81,7 +81,12 @@ export class RecorderReactNativeSDK {
81
81
  if (!this.sessionId && this.crashBuffer && this.bufferingEnabled) {
82
82
  void this.crashBuffer.appendEvent({
83
83
  ts: event.timestamp,
84
- event
84
+ isFullSnapshot: event.type === EventType.FullSnapshot,
85
+ event: {
86
+ event: event,
87
+ eventType: event.type,
88
+ timestamp: event.timestamp
89
+ }
85
90
  }, this.bufferWindowMs);
86
91
  return;
87
92
  }
@@ -1 +1 @@
1
- {"version":3,"names":["SessionType","logger","ScreenRecorder","GestureRecorder","NavigationTracker","RecorderReactNativeSDK","isRecording","recordedEvents","bufferingEnabled","bufferWindowMs","sessionId","sessionType","MANUAL","constructor","screenRecorder","gestureRecorder","navigationTracker","init","config","socketService","crashBuffer","buffering","Boolean","enabled","Math","max","windowMs","start","Error","recordScreen","recordGestures","recordNavigation","stop","close","setNavigationRef","ref","setViewShotRef","recordEvent","event","appendEvent","ts","timestamp","debug","send","eventType","type","debugSessionId","debugSessionType","recordTouchStart","x","y","target","pressure","recordTouchMove","recordTouchEnd","getRecordedEvents","clearRecordedEvents","getRecordingStats","totalEvents","length"],"sourceRoot":"../../../src","sources":["recorder/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["EventType","SessionType","logger","ScreenRecorder","GestureRecorder","NavigationRecorder","RecorderReactNativeSDK","isRecording","recordedEvents","bufferingEnabled","bufferWindowMs","sessionId","sessionType","MANUAL","constructor","screenRecorder","gestureRecorder","navigationRecorder","init","config","socketService","crashBuffer","buffering","Boolean","enabled","Math","max","windowMs","start","Error","recordScreen","setBufferOnlyMode","recordGestures","recordNavigation","stop","close","setNavigationRef","ref","setViewShotRef","recordEvent","event","appendEvent","ts","timestamp","isFullSnapshot","type","FullSnapshot","eventType","debug","send","debugSessionId","debugSessionType","recordTouchStart","x","y","target","pressure","recordTouchMove","recordTouchEnd","getRecordedEvents","clearRecordedEvents","getRecordingStats","totalEvents","length"],"sourceRoot":"../../../src","sources":["recorder/index.ts"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { trace, SpanStatusCode } from '@opentelemetry/api';
4
4
  import { logger } from "../utils/index.js";
5
- export class NavigationTracker {
5
+ export class NavigationRecorder {
6
6
  isRecording = false;
7
7
  navigationRef = null;
8
8
  navigationListeners = new Map();
@@ -14,19 +14,27 @@ export class NavigationTracker {
14
14
  init(config, screenRecorder) {
15
15
  this.config = config;
16
16
  this.screenRecorder = screenRecorder;
17
- logger.info('NavigationTracker', 'Navigation tracker initialized', {
17
+ logger.info('NavigationRecorder', 'Navigation tracker initialized', {
18
18
  config: this.config,
19
19
  screenRecorder: this.screenRecorder
20
20
  });
21
21
  }
22
22
  setNavigationRef(ref) {
23
+ if (this.navigationRef === ref) {
24
+ return;
25
+ }
26
+
27
+ // Clean up listeners attached to the previous ref before switching.
28
+ if (this.isRecording && this.navigationRef) {
29
+ this._removeNavigationListener();
30
+ }
23
31
  this.navigationRef = ref;
24
32
  if (this.isRecording) {
25
33
  this._setupNavigationListener();
26
34
  }
27
35
  }
28
36
  start() {
29
- logger.info('NavigationTracker', 'Navigation tracking started');
37
+ logger.info('NavigationRecorder', 'Navigation tracking started');
30
38
  this.isRecording = true;
31
39
  this.navigationStack = [];
32
40
  this.navigationStartTime = Date.now();
@@ -46,6 +54,8 @@ export class NavigationTracker {
46
54
  this._setupNavigationListener();
47
55
  }
48
56
  _setupNavigationListener() {
57
+ // Ensure we never accumulate duplicate listeners across restarts.
58
+ this._removeNavigationListener();
49
59
  if (!this.navigationRef) {
50
60
  // Navigation ref not set - silently continue
51
61
  return;
@@ -86,8 +96,8 @@ export class NavigationTracker {
86
96
  try {
87
97
  // Remove all listeners
88
98
  this.navigationListeners.forEach((listener, _) => {
89
- if (listener && typeof listener.remove === 'function') {
90
- listener.remove();
99
+ if (listener && typeof listener === 'function') {
100
+ listener();
91
101
  }
92
102
  });
93
103
  this.navigationListeners.clear();
@@ -225,4 +235,4 @@ export class NavigationTracker {
225
235
  return Date.now() - this.navigationStartTime;
226
236
  }
227
237
  }
228
- //# sourceMappingURL=navigationTracker.js.map
238
+ //# sourceMappingURL=navigationRecorder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["trace","SpanStatusCode","logger","NavigationRecorder","isRecording","navigationRef","navigationListeners","Map","currentRoute","navigationStack","navigationStartTime","init","config","screenRecorder","info","setNavigationRef","ref","_removeNavigationListener","_setupNavigationListener","start","Date","now","stop","pause","resume","stateListener","addListener","e","_recordNavigationEvent","data","focusListener","blurListener","beforeRemoveListener","set","error","forEach","listener","_","clear","_getFriendlyRouteTitle","current","getCurrentRoute","titleFromParams","params","title","name","raw","withoutGroups","replace","lastSegment","split","filter","Boolean","slice","join","withoutParams","trim","spaced","titleCase","map","w","charAt","toUpperCase","eventType","event","type","timestamp","metadata","navigationDuration","stackDepth","length","friendlyTitle","routeName","key","_updateNavigationStack","routeKey","friendlyRouteName","_recordOpenTelemetrySpan","push","index","indexOf","splice","span","getTracer","startSpan","attributes","setAttribute","JSON","stringify","Object","entries","value","String","setStatus","code","OK","end","getNavigationStack","getNavigationDepth","isRecordingEnabled","getNavigationDuration"],"sourceRoot":"../../../src","sources":["recorder/navigationRecorder.ts"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,8 @@ import { screenRecordingService } from "../services/screenRecordingService.js";
7
7
  const isWeb = Platform.OS === 'web';
8
8
  export class ScreenRecorder {
9
9
  isRecording = false;
10
+ isBufferOnlyMode = false;
11
+ needsFullSnapshot = true;
10
12
  events = [];
11
13
  captureCount = 0;
12
14
  maxCaptures = 100; // Limit captures to prevent memory issues
@@ -37,34 +39,50 @@ export class ScreenRecorder {
37
39
  }
38
40
  start() {
39
41
  this.isRecording = true;
42
+ this.needsFullSnapshot = true;
40
43
  this.events = [];
41
44
  this.captureCount = 0;
42
45
  this.lastScreenCapture = null;
43
46
  this.lastScreenHash = null;
44
47
  this.currentImageNodeId = null; // Reset image node ID for new session
45
48
  logger.info('ScreenRecorder', 'Screen recording started');
46
- // Emit screen recording started meta event
47
-
48
- this.recordEvent(createRecordingMetaEvent());
49
49
  this._startPeriodicCapture();
50
-
50
+ this._startBufferSnapshotInterval();
51
51
  // Capture initial screen immediately
52
52
  this._captureScreen();
53
-
54
- // Screen recording started
55
53
  }
56
54
  stop() {
57
55
  this.isRecording = false;
58
56
  this._stopPeriodicCapture();
57
+ this._stopBufferSnapshotInterval();
59
58
  // Screen recording stopped
60
59
  }
61
60
  pause() {
62
61
  this.isRecording = false;
63
62
  this._stopPeriodicCapture();
63
+ this._stopBufferSnapshotInterval();
64
64
  }
65
65
  resume() {
66
66
  this.isRecording = true;
67
- // this._startPeriodicCapture()
67
+ this._startPeriodicCapture();
68
+ this._startBufferSnapshotInterval();
69
+ }
70
+
71
+ /**
72
+ * Enables behavior specific to crash-buffer-only mode.
73
+ * In this mode we periodically force a full snapshot anchor for replayability.
74
+ */
75
+ setBufferOnlyMode(enabled) {
76
+ this.isBufferOnlyMode = enabled;
77
+ if (!enabled) {
78
+ this.needsFullSnapshot = false;
79
+ this._stopBufferSnapshotInterval();
80
+ return;
81
+ }
82
+ this.needsFullSnapshot = true;
83
+ if (this.isRecording) {
84
+ this._startBufferSnapshotInterval();
85
+ }
68
86
  }
69
87
  _getScreenDimensions() {
70
88
  try {
@@ -93,6 +111,25 @@ export class ScreenRecorder {
93
111
  this.captureInterval = undefined;
94
112
  }
95
113
  }
114
+ _startBufferSnapshotInterval() {
115
+ this._stopBufferSnapshotInterval();
116
+ if (!this.isBufferOnlyMode) {
117
+ return;
118
+ }
119
+ const configuredInterval = this.config?.buffering?.snapshotIntervalMs || 20000;
120
+ const intervalMs = Math.max(5000, configuredInterval);
121
+ this.bufferSnapshotInterval = setInterval(() => {
122
+ // Force a fresh full snapshot anchor in buffer-only mode.
123
+ this.needsFullSnapshot = true;
124
+ void this._captureScreen();
125
+ }, intervalMs);
126
+ }
127
+ _stopBufferSnapshotInterval() {
128
+ if (this.bufferSnapshotInterval) {
129
+ clearInterval(this.bufferSnapshotInterval);
130
+ this.bufferSnapshotInterval = undefined;
131
+ }
132
+ }
96
133
  async _captureScreen(timestamp) {
97
134
  if (!this.isRecording || this.captureCount >= this.maxCaptures) return;
98
135
  try {
@@ -101,16 +138,19 @@ export class ScreenRecorder {
101
138
  // Check if screen has changed by comparing with previous capture
102
139
  const hasChanged = this.enableChangeDetection ? this._hasScreenChanged(base64Image) : true;
103
140
  if (hasChanged) {
104
- // Use incremental snapshot if we have an existing image node, otherwise create full snapshot
105
- if (this.currentImageNodeId !== null && this.lastScreenCapture) {
141
+ // Keep replay segments anchored: buffer-only mode can force a full snapshot.
142
+ const shouldEmitFullSnapshot = this.needsFullSnapshot || this.currentImageNodeId === null || !this.lastScreenCapture;
143
+ if (!shouldEmitFullSnapshot) {
106
144
  const success = this.updateScreenWithIncrementalSnapshot(base64Image, timestamp);
107
145
  if (!success) {
108
146
  // Fallback to full snapshot if incremental update fails
109
147
  this._createAndEmitFullSnapshotEvent(base64Image, timestamp);
148
+ this.needsFullSnapshot = false;
110
149
  }
111
150
  } else {
112
- // First capture or no existing image node - create full snapshot
151
+ // First capture, forced anchor, or no existing image node.
113
152
  this._createAndEmitFullSnapshotEvent(base64Image, timestamp);
153
+ this.needsFullSnapshot = false;
114
154
  }
115
155
  this.lastScreenCapture = base64Image;
116
156
  this.lastScreenHash = this._generateScreenHash(base64Image);
@@ -171,6 +211,9 @@ export class ScreenRecorder {
171
211
  _createAndEmitFullSnapshotEvent(base64Image, timestamp) {
172
212
  if (!this.screenDimensions) return;
173
213
 
214
+ // Keep replay anchors valid: each full snapshot is explicitly preceded by meta.
215
+ this.recordEvent(createRecordingMetaEvent());
216
+
174
217
  // Use the new createFullSnapshot method
175
218
  const fullSnapshotEvent = this.createFullSnapshot(base64Image, timestamp);
176
219
  this.recordEvent(fullSnapshotEvent);
@@ -1 +1 @@
1
- {"version":3,"names":["trace","SpanStatusCode","Dimensions","Platform","createRecordingMetaEvent","createFullSnapshotEvent","createIncrementalSnapshotWithImageUpdate","createIncrementalSnapshotUtil","generateScreenHash","logger","screenRecordingService","isWeb","OS","ScreenRecorder","isRecording","events","captureCount","maxCaptures","captureQuality","captureScale","captureFormat","screenDimensions","nodeIdCounter","lastScreenCapture","lastScreenHash","enableChangeDetection","hashSampleSize","currentImageNodeId","viewShotRef","init","config","eventRecorder","_getScreenDimensions","recordingConfig","enabled","masking","updateConfig","start","info","recordEvent","_startPeriodicCapture","_captureScreen","stop","_stopPeriodicCapture","pause","resume","get","error","width","height","captureInterval","clearInterval","setInterval","undefined","timestamp","base64Image","_captureScreenBase64","hasChanged","_hasScreenChanged","success","updateScreenWithIncrementalSnapshot","_createAndEmitFullSnapshotEvent","_generateScreenHash","_recordScreenCaptureError","warn","isScreenRecordingAvailable","recordingImage","captureMaskedScreen","quality","scale","fullSnapshotEvent","createFullSnapshot","Error","current","incrementalEvent","forceFullSnapshot","currentBase64","currentHash","_sendEvent","_event","_recordOpenTelemetrySpan","event","span","getTracer","startSpan","type","attributes","metadata","Object","entries","forEach","key","value","setAttribute","String","setStatus","code","OK","end","name","message","Date","now","ERROR","recordException","spanError","setCaptureInterval","intervalMs","setCaptureQuality","Math","max","min","setCaptureFormat","format","setMaxCaptures","setChangeDetection","setHashSampleSize","size","recordScreenPerformance","screenName","loadTime","performance","push","recordScreenError","errorType","errorMessage","getEvents","clearEvents","getScreenStats","stats","totalCaptures","totalEvents","length","averageCaptureTime","successRate","captureTimes","map","captureTime","filter","time","reduce","a","b","successfulCaptures","dataUrl","isRecordingEnabled","getConfiguration","shutdown","setViewShotRef","ref","forceCapture"],"sourceRoot":"../../../src","sources":["recorder/screenRecorder.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["trace","SpanStatusCode","Dimensions","Platform","createRecordingMetaEvent","createFullSnapshotEvent","createIncrementalSnapshotWithImageUpdate","createIncrementalSnapshotUtil","generateScreenHash","logger","screenRecordingService","isWeb","OS","ScreenRecorder","isRecording","isBufferOnlyMode","needsFullSnapshot","events","captureCount","maxCaptures","captureQuality","captureScale","captureFormat","screenDimensions","nodeIdCounter","lastScreenCapture","lastScreenHash","enableChangeDetection","hashSampleSize","currentImageNodeId","viewShotRef","init","config","eventRecorder","_getScreenDimensions","recordingConfig","enabled","masking","updateConfig","start","info","_startPeriodicCapture","_startBufferSnapshotInterval","_captureScreen","stop","_stopPeriodicCapture","_stopBufferSnapshotInterval","pause","resume","setBufferOnlyMode","get","error","width","height","captureInterval","clearInterval","setInterval","undefined","configuredInterval","buffering","snapshotIntervalMs","intervalMs","Math","max","bufferSnapshotInterval","timestamp","base64Image","_captureScreenBase64","hasChanged","_hasScreenChanged","shouldEmitFullSnapshot","success","updateScreenWithIncrementalSnapshot","_createAndEmitFullSnapshotEvent","_generateScreenHash","_recordScreenCaptureError","warn","isScreenRecordingAvailable","recordingImage","captureMaskedScreen","quality","scale","recordEvent","fullSnapshotEvent","createFullSnapshot","Error","current","incrementalEvent","forceFullSnapshot","currentBase64","currentHash","_sendEvent","_event","_recordOpenTelemetrySpan","event","span","getTracer","startSpan","type","attributes","metadata","Object","entries","forEach","key","value","setAttribute","String","setStatus","code","OK","end","name","message","Date","now","ERROR","recordException","spanError","setCaptureInterval","setCaptureQuality","min","setCaptureFormat","format","setMaxCaptures","setChangeDetection","setHashSampleSize","size","recordScreenPerformance","screenName","loadTime","performance","push","recordScreenError","errorType","errorMessage","getEvents","clearEvents","getScreenStats","stats","totalCaptures","totalEvents","length","averageCaptureTime","successRate","captureTimes","map","captureTime","filter","time","reduce","a","b","successfulCaptures","dataUrl","isRecordingEnabled","getConfiguration","shutdown","setViewShotRef","ref","forceCapture"],"sourceRoot":"../../../src","sources":["recorder/screenRecorder.ts"],"mappings":"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","ignoreList":[]}
@@ -47,10 +47,10 @@ export class ApiService {
47
47
  * @param request - Session create error span request data
48
48
  * @param signal - Optional AbortSignal for request cancellation
49
49
  */
50
- async createErrorSession(request, signal) {
50
+ createErrorSession(request, signal) {
51
51
  return this.makeRequest('/debug-sessions/error-span/start', 'POST', request, signal);
52
52
  }
53
- async updateSessionAttributes(sessionId, requestBody, signal) {
53
+ updateSessionAttributes(sessionId, requestBody, signal) {
54
54
  return this.makeRequest(`/debug-sessions/${sessionId}`, 'PATCH', requestBody, signal);
55
55
  }
56
56
 
@@ -60,61 +60,17 @@ export class ApiService {
60
60
  * @param requestBody - Request body containing events
61
61
  * @param signal - Optional AbortSignal for request cancellation
62
62
  */
63
- async exportEvents(sessionId, requestBody, signal) {
63
+ exportEvents(sessionId, requestBody, signal) {
64
64
  return this.makeRequest(`/debug-sessions/${sessionId}/rrweb-events`, 'POST', requestBody, signal);
65
65
  }
66
66
 
67
- /**
68
- * Make a request to the session debugger API
69
- * @param path - API endpoint path (relative to the base URL)
70
- * @param method - HTTP method (GET, POST, PATCH, etc.)
71
- * @param body - request payload
72
- * @param signal - AbortSignal to set request's signal
73
- */
74
- async makeRequest(path, method, body, signal) {
75
- const url = `${this.baseUrl}/v0/radar${path}`;
76
- const params = {
77
- method,
78
- body: body ? JSON.stringify(body) : null,
79
- headers: {
80
- 'Content-Type': 'application/json',
81
- ...(this.config?.apiKey && {
82
- 'X-Api-Key': this.config.apiKey
83
- })
84
- }
85
- };
86
- try {
87
- const response = await fetch(url, {
88
- ...params,
89
- signal
90
- });
91
- if (!response.ok) {
92
- throw new Error('Network response was not ok: ' + response.statusText);
93
- }
94
- if (response.status === 204) {
95
- return null;
96
- }
97
- return await response.json();
98
- } catch (error) {
99
- if (error?.name === 'AbortError') {
100
- throw new Error('Request aborted');
101
- }
102
- throw new Error('Error making request: ' + error.message);
103
- }
104
- }
105
-
106
67
  /**
107
68
  * Start a new debug session
108
69
  * @param request - Session start request data
109
70
  * @param signal - Optional AbortSignal for request cancellation
110
71
  */
111
- async startSession(request, signal) {
112
- try {
113
- const res = await this.makeRequest('/debug-sessions/start', 'POST', request, signal);
114
- return res;
115
- } catch (error) {
116
- throw error;
117
- }
72
+ startSession(request, signal) {
73
+ return this.makeRequest('/debug-sessions/start', 'POST', request, signal);
118
74
  }
119
75
 
120
76
  /**
@@ -122,7 +78,7 @@ export class ApiService {
122
78
  * @param sessionId - ID of the session to stop
123
79
  * @param request - Session stop request data
124
80
  */
125
- async stopSession(sessionId, request) {
81
+ stopSession(sessionId, request) {
126
82
  return this.makeRequest(`/debug-sessions/${sessionId}/stop`, 'PATCH', request);
127
83
  }
128
84
 
@@ -130,7 +86,7 @@ export class ApiService {
130
86
  * Cancel an active debug session
131
87
  * @param sessionId - ID of the session to cancel
132
88
  */
133
- async cancelSession(sessionId) {
89
+ cancelSession(sessionId) {
134
90
  return this.makeRequest(`/debug-sessions/${sessionId}/cancel`, 'DELETE');
135
91
  }
136
92
 
@@ -139,7 +95,7 @@ export class ApiService {
139
95
  * @param request - Session start request data
140
96
  * @param signal - Optional AbortSignal for request cancellation
141
97
  */
142
- async startContinuousDebugSession(request, signal) {
98
+ startContinuousDebugSession(request, signal) {
143
99
  return this.makeRequest('/continuous-debug-sessions/start', 'POST', request, signal);
144
100
  }
145
101
 
@@ -149,7 +105,7 @@ export class ApiService {
149
105
  * @param request - Session save request data
150
106
  * @param signal - Optional AbortSignal for request cancellation
151
107
  */
152
- async saveContinuousDebugSession(sessionId, request, signal) {
108
+ saveContinuousDebugSession(sessionId, request, signal) {
153
109
  return this.makeRequest(`/continuous-debug-sessions/${sessionId}/save`, 'POST', request, signal);
154
110
  }
155
111
 
@@ -157,15 +113,54 @@ export class ApiService {
157
113
  * Stop an active continuous debug session
158
114
  * @param sessionId - ID of the session to stop
159
115
  */
160
- async stopContinuousDebugSession(sessionId) {
116
+ stopContinuousDebugSession(sessionId) {
161
117
  return this.makeRequest(`/continuous-debug-sessions/${sessionId}/cancel`, 'DELETE');
162
118
  }
163
119
 
164
120
  /**
165
121
  * Check debug session should be started remotely
166
122
  */
167
- async checkRemoteSession(requestBody, signal) {
123
+ checkRemoteSession(requestBody, signal) {
168
124
  return this.makeRequest('/remote-debug-session/check', 'POST', requestBody, signal);
169
125
  }
126
+
127
+ /**
128
+ * Make a request to the session debugger API
129
+ * @param path - API endpoint path (relative to the base URL)
130
+ * @param method - HTTP method (GET, POST, PATCH, etc.)
131
+ * @param body - request payload
132
+ * @param signal - AbortSignal to set request's signal
133
+ */
134
+ async makeRequest(path, method, body, signal) {
135
+ const url = `${this.baseUrl}/v0/radar${path}`;
136
+ const params = {
137
+ method,
138
+ body: body ? JSON.stringify(body) : null,
139
+ headers: {
140
+ 'Content-Type': 'application/json',
141
+ ...(this.config?.apiKey && {
142
+ 'X-Api-Key': this.config.apiKey
143
+ })
144
+ }
145
+ };
146
+ try {
147
+ const response = await fetch(url, {
148
+ ...params,
149
+ signal
150
+ });
151
+ if (!response.ok) {
152
+ throw new Error('Network response was not ok: ' + response.statusText);
153
+ }
154
+ if (response.status === 204) {
155
+ return null;
156
+ }
157
+ return await response.json();
158
+ } catch (error) {
159
+ if (error?.name === 'AbortError') {
160
+ throw new Error('Request aborted');
161
+ }
162
+ throw new Error('Error making request: ' + error.message);
163
+ }
164
+ }
170
165
  }
171
166
  //# sourceMappingURL=api.service.js.map