@multiplayer-app/session-recorder-react-native 1.3.23 → 1.3.32

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 (49) hide show
  1. package/README.md +22 -13
  2. package/lib/module/config/defaults.js +2 -2
  3. package/lib/module/config/defaults.js.map +1 -1
  4. package/lib/module/config/session-recorder.js.map +1 -1
  5. package/lib/module/otel/CrashBufferSpanProcessor.js +14 -13
  6. package/lib/module/otel/CrashBufferSpanProcessor.js.map +1 -1
  7. package/lib/module/otel/index.js +85 -59
  8. package/lib/module/otel/index.js.map +1 -1
  9. package/lib/module/recorder/index.js +1 -1
  10. package/lib/module/recorder/index.js.map +1 -1
  11. package/lib/module/services/api.service.js.map +1 -1
  12. package/lib/module/services/crashBuffer.service.js +51 -19
  13. package/lib/module/services/crashBuffer.service.js.map +1 -1
  14. package/lib/module/services/socket.service.js +2 -2
  15. package/lib/module/services/socket.service.js.map +1 -1
  16. package/lib/module/session-recorder.js +29 -78
  17. package/lib/module/session-recorder.js.map +1 -1
  18. package/lib/module/types/session-recorder.js.map +1 -1
  19. package/lib/module/utils/rrweb-events.js +1 -1
  20. package/lib/module/utils/rrweb-events.js.map +1 -1
  21. package/lib/typescript/src/config/defaults.d.ts.map +1 -1
  22. package/lib/typescript/src/config/session-recorder.d.ts.map +1 -1
  23. package/lib/typescript/src/otel/CrashBufferSpanProcessor.d.ts +3 -4
  24. package/lib/typescript/src/otel/CrashBufferSpanProcessor.d.ts.map +1 -1
  25. package/lib/typescript/src/otel/index.d.ts +2 -3
  26. package/lib/typescript/src/otel/index.d.ts.map +1 -1
  27. package/lib/typescript/src/services/api.service.d.ts +2 -1
  28. package/lib/typescript/src/services/api.service.d.ts.map +1 -1
  29. package/lib/typescript/src/services/crashBuffer.service.d.ts +4 -23
  30. package/lib/typescript/src/services/crashBuffer.service.d.ts.map +1 -1
  31. package/lib/typescript/src/services/socket.service.d.ts +4 -1
  32. package/lib/typescript/src/services/socket.service.d.ts.map +1 -1
  33. package/lib/typescript/src/session-recorder.d.ts +0 -3
  34. package/lib/typescript/src/session-recorder.d.ts.map +1 -1
  35. package/lib/typescript/src/types/session-recorder.d.ts +6 -13
  36. package/lib/typescript/src/types/session-recorder.d.ts.map +1 -1
  37. package/lib/typescript/src/utils/rrweb-events.d.ts.map +1 -1
  38. package/package.json +2 -2
  39. package/src/config/defaults.ts +29 -29
  40. package/src/config/session-recorder.ts +8 -2
  41. package/src/otel/CrashBufferSpanProcessor.ts +17 -24
  42. package/src/otel/index.ts +110 -61
  43. package/src/recorder/index.ts +1 -1
  44. package/src/services/api.service.ts +2 -1
  45. package/src/services/crashBuffer.service.ts +73 -31
  46. package/src/services/socket.service.ts +5 -2
  47. package/src/session-recorder.ts +43 -98
  48. package/src/types/session-recorder.ts +15 -18
  49. package/src/utils/rrweb-events.ts +3 -3
package/README.md CHANGED
@@ -801,19 +801,22 @@ This is different from system-wide screen recording which would require permissi
801
801
 
802
802
  ### Optional Options
803
803
 
804
- | Option | Type | Default | Description |
805
- | ------------------------------ | ------- | ------- | -------------------------------------- |
806
- | `recordGestures` | boolean | true | Enable gesture recording |
807
- | `recordNavigation` | boolean | true | Enable navigation tracking |
808
- | `recordScreen` | boolean | true | Enable screen recording |
809
- | `sampleTraceRatio` | number | 0.15 | Trace sampling ratio (0.0-1.0) |
810
- | `captureBody` | boolean | true | Capture request/response bodies |
811
- | `captureHeaders` | boolean | true | Capture request/response headers |
812
- | `masking` | object | - | Data masking configuration |
813
- | `ignoreUrls` | array | [] | URLs to exclude from monitoring |
814
- | `propagateTraceHeaderCorsUrls` | array | [] | URLs for CORS trace header propagation |
815
- | `showContinuousRecording` | boolean | true | Show continuous recording option |
816
- | `widget` | object | - | Session widget configuration |
804
+ | Option | Type | Default | Description |
805
+ | ------------------------------ | ------- | --------- | --------------------------------------------------------- |
806
+ | `recordGestures` | boolean | true | Enable gesture recording |
807
+ | `recordNavigation` | boolean | true | Enable navigation tracking |
808
+ | `recordScreen` | boolean | true | Enable screen recording |
809
+ | `sampleTraceRatio` | number | 0.15 | Trace sampling ratio (0.0-1.0) |
810
+ | `buffering` | object | see below | Crash buffer (rolling window when no recording is active) |
811
+ | `captureBody` | boolean | true | Capture request/response bodies |
812
+ | `captureHeaders` | boolean | true | Capture request/response headers |
813
+ | `masking` | object | - | Data masking configuration |
814
+ | `ignoreUrls` | array | [] | URLs to exclude from monitoring |
815
+ | `propagateTraceHeaderCorsUrls` | array | [] | URLs for CORS trace header propagation |
816
+ | `showContinuousRecording` | boolean | true | Show continuous recording option |
817
+ | `widget` | object | - | Session widget configuration |
818
+
819
+ **Buffering** (`buffering.enabled: false`, `buffering.windowMinutes: 0.5` by default): when enabled, the SDK keeps a rolling window of recent events and traces even when no recording is active. The buffer is flushed into the session when the user starts a session or saves (e.g. on error).
817
820
 
818
821
  ## Advanced Configuration
819
822
 
@@ -832,6 +835,12 @@ SessionRecorder.init({
832
835
  recordNavigation: true,
833
836
  recordScreen: true, // Captures app UI automatically
834
837
 
838
+ // Crash buffer: rolling window when no recording is active (flushed when session starts/saves)
839
+ buffering: {
840
+ enabled: true,
841
+ windowMinutes: 1, // default: 1
842
+ },
843
+
835
844
  // Network monitoring
836
845
  // NOTE: if frontend domain doesn't match to backend one, set backend domain to `propagateTraceHeaderCorsUrls` parameter
837
846
  propagateTraceHeaderCorsUrls: [
@@ -79,8 +79,8 @@ export const BASE_CONFIG = {
79
79
  },
80
80
  useWebsocket: true,
81
81
  buffering: {
82
- enabled: true,
83
- windowMinutes: 1
82
+ enabled: false,
83
+ windowMinutes: 0.5
84
84
  }
85
85
  };
86
86
  //# 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,GAC1F;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;AAED,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,IAAI;IACbwB,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"],"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 +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"],"sourceRoot":"../../../src","sources":["config/session-recorder.ts"],"mappings":"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","ignoreList":[]}
@@ -1,29 +1,31 @@
1
1
  "use strict";
2
2
 
3
- import { MULTIPLAYER_TRACE_SESSION_CACHE_PREFIX, MULTIPLAYER_TRACE_CONTINUOUS_SESSION_CACHE_PREFIX } from '@multiplayer-app/session-recorder-common';
4
- import { TraceFlags } from '@opentelemetry/api';
3
+ import { MULTIPLAYER_TRACE_SESSION_CACHE_PREFIX } from '@multiplayer-app/session-recorder-common';
5
4
  /**
6
5
  * Implementation of the {@link SpanProcessor} that batches spans exported by
7
6
  * the SDK then pushes them to the exporter pipeline.
8
7
  */
9
8
  export class CrashBufferSpanProcessor {
10
- constructor(_exporter, _crashBuffer, _serializeSpan) {
11
- this._exporter = _exporter;
9
+ constructor(_crashBuffer, _serializeSpan) {
12
10
  this._crashBuffer = _crashBuffer;
13
11
  this._serializeSpan = _serializeSpan;
14
12
  }
15
13
  forceFlush() {
16
- return this._exporter.forceFlush();
14
+ return Promise.resolve();
17
15
  }
18
16
  onStart(_span, _parentContext) {
19
- return this._exporter.onStart(_span, _parentContext);
17
+ return;
20
18
  }
21
19
  onEnd(span) {
22
- const traceId = span.spanContext().traceId;
23
- if ((span.spanContext().traceFlags & TraceFlags.SAMPLED) === 0) {
24
- return;
25
- }
26
- if (traceId.startsWith(MULTIPLAYER_TRACE_SESSION_CACHE_PREFIX) || traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_SESSION_CACHE_PREFIX)) {
20
+ const _spanContext = span.spanContext();
21
+ const traceId = _spanContext.traceId;
22
+
23
+ // // Never buffer/export unsampled spans.
24
+ // if ((_spanContext.traceFlags & TraceFlags.SAMPLED) === 0) {
25
+ // return
26
+ // }
27
+
28
+ if (traceId.startsWith(MULTIPLAYER_TRACE_SESSION_CACHE_PREFIX)) {
27
29
  if (this._crashBuffer) {
28
30
  this._crashBuffer.appendSpans([{
29
31
  ts: span.startTime[0] * 1000 + span.startTime[1] / 1000000,
@@ -32,10 +34,9 @@ export class CrashBufferSpanProcessor {
32
34
  }
33
35
  return;
34
36
  }
35
- this._exporter.onEnd(span);
36
37
  }
37
38
  shutdown() {
38
- return this._exporter.shutdown();
39
+ return Promise.resolve();
39
40
  }
40
41
  }
41
42
  //# sourceMappingURL=CrashBufferSpanProcessor.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MULTIPLAYER_TRACE_SESSION_CACHE_PREFIX","MULTIPLAYER_TRACE_CONTINUOUS_SESSION_CACHE_PREFIX","TraceFlags","CrashBufferSpanProcessor","constructor","_exporter","_crashBuffer","_serializeSpan","forceFlush","onStart","_span","_parentContext","onEnd","span","traceId","spanContext","traceFlags","SAMPLED","startsWith","appendSpans","ts","startTime","shutdown"],"sourceRoot":"../../../src","sources":["otel/CrashBufferSpanProcessor.ts"],"mappings":";;AAAA,SACEA,sCAAsC,EACtCC,iDAAiD,QAC5C,0CAA0C;AAEjD,SAAuBC,UAAU,QAAQ,oBAAoB;AAQ7D;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,CAA0B;EAC7DC,WAAWA,CACQC,SAA6B,EAC7BC,YAAqC,EACrCC,cAA2C,EAC5D;IAAA,KAHiBF,SAA6B,GAA7BA,SAA6B;IAAA,KAC7BC,YAAqC,GAArCA,YAAqC;IAAA,KACrCC,cAA2C,GAA3CA,cAA2C;EAC3D;EAEHC,UAAUA,CAAA,EAAkB;IAC1B,OAAO,IAAI,CAACH,SAAS,CAACG,UAAU,CAAC,CAAC;EACpC;EAEAC,OAAOA,CAACC,KAAW,EAAEC,cAAuB,EAAQ;IAClD,OAAO,IAAI,CAACN,SAAS,CAACI,OAAO,CAACC,KAAK,EAAEC,cAAc,CAAC;EACtD;EAEAC,KAAKA,CAACC,IAAkB,EAAQ;IAC9B,MAAMC,OAAO,GAAGD,IAAI,CAACE,WAAW,CAAC,CAAC,CAACD,OAAO;IAE1C,IAAI,CAACD,IAAI,CAACE,WAAW,CAAC,CAAC,CAACC,UAAU,GAAGd,UAAU,CAACe,OAAO,MAAM,CAAC,EAAE;MAC9D;IACF;IAEA,IACEH,OAAO,CAACI,UAAU,CAAClB,sCAAsC,CAAC,IAC1Dc,OAAO,CAACI,UAAU,CAACjB,iDAAiD,CAAC,EACrE;MACA,IAAI,IAAI,CAACK,YAAY,EAAE;QACrB,IAAI,CAACA,YAAY,CAACa,WAAW,CAAC,CAC5B;UACEC,EAAE,EAAEP,IAAI,CAACQ,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGR,IAAI,CAACQ,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO;UAC1DR,IAAI,EAAE,IAAI,CAACN,cAAc,CAACM,IAAI;QAChC,CAAC,CACF,CAAC;MACJ;MACA;IACF;IAEA,IAAI,CAACR,SAAS,CAACO,KAAK,CAACC,IAAI,CAAC;EAC5B;EAEAS,QAAQA,CAAA,EAAkB;IACxB,OAAO,IAAI,CAACjB,SAAS,CAACiB,QAAQ,CAAC,CAAC;EAClC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["MULTIPLAYER_TRACE_SESSION_CACHE_PREFIX","CrashBufferSpanProcessor","constructor","_crashBuffer","_serializeSpan","forceFlush","Promise","resolve","onStart","_span","_parentContext","onEnd","span","_spanContext","spanContext","traceId","startsWith","appendSpans","ts","startTime","shutdown"],"sourceRoot":"../../../src","sources":["otel/CrashBufferSpanProcessor.ts"],"mappings":";;AAMA,SAASA,sCAAsC,QAAQ,0CAA0C;AAGjG;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,CAA0B;EAC7DC,WAAWA,CACQC,YAAqC,EACrCC,cAA2C,EAC5D;IAAA,KAFiBD,YAAqC,GAArCA,YAAqC;IAAA,KACrCC,cAA2C,GAA3CA,cAA2C;EAC3D;EAEHC,UAAUA,CAAA,EAAkB;IAC1B,OAAOC,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;EAEAC,OAAOA,CAACC,KAAW,EAAEC,cAAuB,EAAQ;IAClD;EACF;EAEAC,KAAKA,CAACC,IAAkB,EAAQ;IAC9B,MAAMC,YAAY,GAAGD,IAAI,CAACE,WAAW,CAAC,CAAC;IAEvC,MAAMC,OAAO,GAAGF,YAAY,CAACE,OAAO;;IAEpC;IACA;IACA;IACA;;IAEA,IAAIA,OAAO,CAACC,UAAU,CAAChB,sCAAsC,CAAC,EAAE;MAC9D,IAAI,IAAI,CAACG,YAAY,EAAE;QACrB,IAAI,CAACA,YAAY,CAACc,WAAW,CAAC,CAC5B;UACEC,EAAE,EAAEN,IAAI,CAACO,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGP,IAAI,CAACO,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO;UAC1DP,IAAI,EAAE,IAAI,CAACR,cAAc,CAACQ,IAAI;QAChC,CAAC,CACF,CAAC;MACJ;MACA;IACF;EACF;EAEAQ,QAAQA,CAAA,EAAkB;IACxB,OAAOd,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;AACF","ignoreList":[]}
@@ -2,13 +2,12 @@
2
2
 
3
3
  import { resourceFromAttributes } from '@opentelemetry/resources';
4
4
  import { W3CTraceContextPropagator } from '@opentelemetry/core';
5
- import { AlwaysOnSampler, BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
5
+ import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
6
6
  import * as SemanticAttributes from '@opentelemetry/semantic-conventions';
7
7
  import { registerInstrumentations } from '@opentelemetry/instrumentation';
8
- import { SessionType, SessionRecorderSdk, SessionRecorderIdGenerator, SessionRecorderBrowserTraceExporter, ATTR_MULTIPLAYER_SESSION_ID, MULTIPLAYER_TRACE_CLIENT_ID_LENGTH } from '@multiplayer-app/session-recorder-common';
8
+ import { SessionType, SessionRecorderSdk, SessionRecorderIdGenerator, SessionRecorderBrowserTraceExporter, ATTR_MULTIPLAYER_SESSION_ID, MULTIPLAYER_TRACE_CLIENT_ID_LENGTH, SessionRecorderTraceIdRatioBasedSampler } from '@multiplayer-app/session-recorder-common';
9
9
  import { getInstrumentations } from "./instrumentations/index.js";
10
10
  import { getExporterEndpoint } from "./helpers.js";
11
- import { trace, SpanStatusCode, context } from '@opentelemetry/api';
12
11
  import { getPlatformAttributes } from "../utils/platform.js";
13
12
  import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
14
13
  import { CrashBufferSpanProcessor } from "./CrashBufferSpanProcessor.js";
@@ -39,17 +38,18 @@ export class TracerReactNativeSDK {
39
38
  apiKey: options.apiKey,
40
39
  url: getExporterEndpoint(options.exporterEndpoint)
41
40
  });
42
- this.batchSpanProcessor = new BatchSpanProcessor(this.exporter);
41
+ const resourceAttributes = resourceFromAttributes({
42
+ [SemanticAttributes.SEMRESATTRS_SERVICE_NAME]: application,
43
+ [SemanticAttributes.SEMRESATTRS_SERVICE_VERSION]: version,
44
+ [SemanticAttributes.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT]: environment,
45
+ ...getPlatformAttributes()
46
+ });
47
+ SessionRecorderSdk.setResourceAttributes(resourceAttributes.attributes);
43
48
  this.tracerProvider = new WebTracerProvider({
44
- resource: resourceFromAttributes({
45
- [SemanticAttributes.SEMRESATTRS_SERVICE_NAME]: application,
46
- [SemanticAttributes.SEMRESATTRS_SERVICE_VERSION]: version,
47
- [SemanticAttributes.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT]: environment,
48
- ...getPlatformAttributes()
49
- }),
49
+ resource: resourceAttributes,
50
50
  idGenerator: this.idGenerator,
51
- sampler: new AlwaysOnSampler(),
52
- spanProcessors: [this._getSpanSessionIdProcessor(), new CrashBufferSpanProcessor(this.batchSpanProcessor, this.crashBuffer, this.exporter.serializeSpan.bind(this.exporter))]
51
+ sampler: new SessionRecorderTraceIdRatioBasedSampler(this.config.sampleTraceRatio),
52
+ spanProcessors: [this._getSpanSessionIdProcessor(), new BatchSpanProcessor(this.exporter), new CrashBufferSpanProcessor(this.crashBuffer, this.exporter.serializeSpan)]
53
53
  });
54
54
  this.tracerProvider.register({
55
55
  propagator: new W3CTraceContextPropagator()
@@ -69,25 +69,18 @@ export class TracerReactNativeSDK {
69
69
  }
70
70
  }
71
71
  async exportTraces(spans) {
72
- if (this.batchSpanProcessor) {
73
- spans.map(span => {
74
- this.batchSpanProcessor?.onEnd(span);
75
- });
72
+ if (!this.exporter) {
73
+ throw new Error('Trace exporter not initialized');
74
+ }
75
+ if (!spans || spans.length === 0) {
76
76
  return Promise.resolve();
77
77
  }
78
- throw new Error('Buffer span processor not initialized');
79
- }
80
- _getSpanSessionIdProcessor() {
81
- return {
82
- onStart: span => {
83
- if (this.sessionId) {
84
- span.setAttribute(ATTR_MULTIPLAYER_SESSION_ID, this.sessionId);
85
- }
86
- },
87
- onEnd: () => {},
88
- shutdown: () => Promise.resolve(),
89
- forceFlush: () => Promise.resolve()
90
- };
78
+ const readableSpans = spans.map(s => TracerReactNativeSDK._toReadableSpanLike(s));
79
+ return new Promise(resolve => {
80
+ this.exporter?.exportBuffer(readableSpans, result => {
81
+ resolve(result);
82
+ });
83
+ });
91
84
  }
92
85
  start(sessionId, sessionType) {
93
86
  if (!this.tracerProvider) {
@@ -115,37 +108,19 @@ export class TracerReactNativeSDK {
115
108
  */
116
109
  captureException(error, errorInfo) {
117
110
  if (!error) return;
118
- // Prefer attaching to the active span to keep correlation intact
119
- try {
120
- const activeSpan = trace.getSpan(context.active());
121
- if (activeSpan) {
122
- this._recordException(activeSpan, error, errorInfo);
123
- return;
124
- }
125
- } catch (_ignored) {}
126
-
127
- // Fallback: create a short-lived span to hold the exception details
128
- try {
129
- const tracer = trace.getTracer('exception');
130
- const span = tracer.startSpan(error.name || 'Error');
131
- this._recordException(span, error, errorInfo);
132
- span.end();
133
- } catch (_ignored) {}
111
+ SessionRecorderSdk.captureException(error, errorInfo);
134
112
  }
135
- _recordException(span, error, errorInfo) {
136
- span.recordException(error);
137
- span.setStatus({
138
- code: SpanStatusCode.ERROR,
139
- message: error.message
140
- });
141
- span.setAttribute('exception.type', error.name || 'Error');
142
- span.setAttribute('exception.message', error.message);
143
- span.setAttribute('exception.stacktrace', error.stack || '');
144
- if (errorInfo) {
145
- Object.entries(errorInfo).forEach(([key, value]) => {
146
- span.setAttribute(`error_info.${key}`, value);
147
- });
148
- }
113
+ _getSpanSessionIdProcessor() {
114
+ return {
115
+ onStart: span => {
116
+ if (this.sessionId) {
117
+ span.setAttribute(ATTR_MULTIPLAYER_SESSION_ID, this.sessionId);
118
+ }
119
+ },
120
+ onEnd: () => {},
121
+ shutdown: () => Promise.resolve(),
122
+ forceFlush: () => Promise.resolve()
123
+ };
149
124
  }
150
125
  _registerGlobalErrorHandlers() {
151
126
  if (this.globalErrorHandlerRegistered) return;
@@ -172,5 +147,56 @@ export class TracerReactNativeSDK {
172
147
  this.globalErrorHandlerRegistered = true;
173
148
  }
174
149
  }
150
+ static _toReadableSpanLike(span) {
151
+ if (span && typeof span.spanContext === 'function' && span.instrumentationScope) {
152
+ return span;
153
+ }
154
+ const spanContext = typeof span?.spanContext === 'function' ? span.spanContext() : span?._spanContext;
155
+ const normalizedCtx = spanContext || {
156
+ traceId: span?.traceId,
157
+ spanId: span?.spanId,
158
+ traceFlags: span?.traceFlags,
159
+ traceState: span?.traceState
160
+ };
161
+ const instrumentationScope = span?.instrumentationScope || span?.instrumentationLibrary || {
162
+ name: 'multiplayer-buffer',
163
+ version: undefined,
164
+ schemaUrl: undefined
165
+ };
166
+ const normalizedScope = {
167
+ name: instrumentationScope?.name || 'multiplayer-buffer',
168
+ version: instrumentationScope?.version,
169
+ schemaUrl: instrumentationScope?.schemaUrl
170
+ };
171
+ const resource = span?.resource || {
172
+ attributes: {},
173
+ asyncAttributesPending: false
174
+ };
175
+ const parentSpanId = span?.parentSpanId;
176
+ return {
177
+ name: span?.name || '',
178
+ kind: span?.kind,
179
+ spanContext: () => normalizedCtx,
180
+ parentSpanContext: parentSpanId ? {
181
+ traceId: normalizedCtx?.traceId,
182
+ spanId: parentSpanId,
183
+ traceFlags: normalizedCtx?.traceFlags,
184
+ traceState: normalizedCtx?.traceState
185
+ } : undefined,
186
+ startTime: span?.startTime,
187
+ endTime: span?.endTime ?? span?.startTime,
188
+ duration: span?.duration,
189
+ status: span?.status,
190
+ attributes: span?.attributes || {},
191
+ links: span?.links || [],
192
+ events: span?.events || [],
193
+ ended: typeof span?.ended === 'boolean' ? span.ended : true,
194
+ droppedAttributesCount: span?.droppedAttributesCount || 0,
195
+ droppedEventsCount: span?.droppedEventsCount || 0,
196
+ droppedLinksCount: span?.droppedLinksCount || 0,
197
+ resource,
198
+ instrumentationScope: normalizedScope
199
+ };
200
+ }
175
201
  }
176
202
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["resourceFromAttributes","W3CTraceContextPropagator","AlwaysOnSampler","BatchSpanProcessor","SemanticAttributes","registerInstrumentations","SessionType","SessionRecorderSdk","SessionRecorderIdGenerator","SessionRecorderBrowserTraceExporter","ATTR_MULTIPLAYER_SESSION_ID","MULTIPLAYER_TRACE_CLIENT_ID_LENGTH","getInstrumentations","getExporterEndpoint","trace","SpanStatusCode","context","getPlatformAttributes","WebTracerProvider","CrashBufferSpanProcessor","clientIdGenerator","getIdGenerator","TracerReactNativeSDK","clientId","sessionId","globalErrorHandlerRegistered","constructor","_setSessionId","sessionType","MANUAL","idGenerator","Error","setSessionId","init","options","config","application","version","environment","SESSION_CACHE","exporter","apiKey","url","exporterEndpoint","batchSpanProcessor","tracerProvider","resource","SEMRESATTRS_SERVICE_NAME","SEMRESATTRS_SERVICE_VERSION","SEMRESATTRS_DEPLOYMENT_ENVIRONMENT","sampler","spanProcessors","_getSpanSessionIdProcessor","crashBuffer","serializeSpan","bind","register","propagator","instrumentations","_registerGlobalErrorHandlers","setCrashBuffer","windowMs","Number","isFinite","setDefaultWindowMs","exportTraces","spans","map","span","onEnd","Promise","resolve","onStart","setAttribute","shutdown","forceFlush","start","stop","setApiKey","captureException","error","errorInfo","activeSpan","getSpan","active","_recordException","_ignored","tracer","getTracer","startSpan","name","end","recordException","setStatus","code","ERROR","message","stack","Object","entries","forEach","key","value","ErrorUtilsRef","global","ErrorUtils","setGlobalHandler","previous","getGlobalHandler","isFatal","err","String","_e"],"sourceRoot":"../../../src","sources":["otel/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["resourceFromAttributes","W3CTraceContextPropagator","BatchSpanProcessor","SemanticAttributes","registerInstrumentations","SessionType","SessionRecorderSdk","SessionRecorderIdGenerator","SessionRecorderBrowserTraceExporter","ATTR_MULTIPLAYER_SESSION_ID","MULTIPLAYER_TRACE_CLIENT_ID_LENGTH","SessionRecorderTraceIdRatioBasedSampler","getInstrumentations","getExporterEndpoint","getPlatformAttributes","WebTracerProvider","CrashBufferSpanProcessor","clientIdGenerator","getIdGenerator","TracerReactNativeSDK","clientId","sessionId","globalErrorHandlerRegistered","constructor","_setSessionId","sessionType","MANUAL","idGenerator","Error","setSessionId","init","options","config","application","version","environment","SESSION_CACHE","exporter","apiKey","url","exporterEndpoint","resourceAttributes","SEMRESATTRS_SERVICE_NAME","SEMRESATTRS_SERVICE_VERSION","SEMRESATTRS_DEPLOYMENT_ENVIRONMENT","setResourceAttributes","attributes","tracerProvider","resource","sampler","sampleTraceRatio","spanProcessors","_getSpanSessionIdProcessor","crashBuffer","serializeSpan","register","propagator","instrumentations","_registerGlobalErrorHandlers","setCrashBuffer","windowMs","Number","isFinite","setDefaultWindowMs","exportTraces","spans","length","Promise","resolve","readableSpans","map","s","_toReadableSpanLike","exportBuffer","result","start","stop","setApiKey","captureException","error","errorInfo","onStart","span","setAttribute","onEnd","shutdown","forceFlush","ErrorUtilsRef","global","ErrorUtils","setGlobalHandler","previous","getGlobalHandler","isFatal","err","String","message","_e","spanContext","instrumentationScope","_spanContext","normalizedCtx","traceId","spanId","traceFlags","traceState","instrumentationLibrary","name","undefined","schemaUrl","normalizedScope","asyncAttributesPending","parentSpanId","kind","parentSpanContext","startTime","endTime","duration","status","links","events","ended","droppedAttributesCount","droppedEventsCount","droppedLinksCount"],"sourceRoot":"../../../src","sources":["otel/index.ts"],"mappings":";;AAAA,SAASA,sBAAsB,QAAQ,0BAA0B;AACjE,SACEC,yBAAyB,QAEpB,qBAAqB;AAC5B,SACEC,kBAAkB,QAEb,+BAA+B;AACtC,OAAO,KAAKC,kBAAkB,MAAM,qCAAqC;AACzE,SAASC,wBAAwB,QAAQ,gCAAgC;AACzE,SACEC,WAAW,EACXC,kBAAkB,EAClBC,0BAA0B,EAC1BC,mCAAmC,EACnCC,2BAA2B,EAC3BC,kCAAkC,EAClCC,uCAAuC,QAClC,0CAA0C;AAEjD,SAASC,mBAAmB,QAAQ,6BAAoB;AACxD,SAASC,mBAAmB,QAAQ,cAAW;AAE/C,SAASC,qBAAqB,QAAQ,sBAAmB;AACzD,SAASC,iBAAiB,QAAQ,8BAA8B;AAEhE,SAASC,wBAAwB,QAAQ,+BAA4B;AAErE,MAAMC,iBAAiB,GAAGX,kBAAkB,CAACY,cAAc,CACzDR,kCACF,CAAC;AAED,OAAO,MAAMS,oBAAoB,CAAC;EAChCC,QAAQ,GAAG,EAAE;EAILC,SAAS,GAAG,EAAE;EAGdC,4BAA4B,GAAG,KAAK;EAG5CC,WAAWA,CAAA,EAAG,CAAC;EAEPC,aAAaA,CACnBH,SAAiB,EACjBI,WAAwB,GAAGpB,WAAW,CAACqB,MAAM,EAC7C;IACA,IAAI,CAACL,SAAS,GAAGA,SAAS;IAE1B,IAAI,CAAC,IAAI,CAACM,WAAW,EAAE;MACrB,MAAM,IAAIC,KAAK,CAAC,8BAA8B,CAAC;IACjD;IAEA,IAAI,CAACD,WAAW,CAACE,YAAY,CAACR,SAAS,EAAEI,WAAW,EAAE,IAAI,CAACL,QAAQ,CAAC;EACtE;EAEAU,IAAIA,CAACC,OAAgC,EAAQ;IAC3C,IAAI,CAACC,MAAM,GAAGD,OAAO;IACrB,IAAI,CAACX,QAAQ,GAAGH,iBAAiB,CAAC,CAAC;IAEnC,MAAM;MAAEgB,WAAW;MAAEC,OAAO;MAAEC;IAAY,CAAC,GAAG,IAAI,CAACH,MAAM;IAEzD,IAAI,CAACL,WAAW,GAAG,IAAIpB,0BAA0B,CAAC,CAAC;IAEnD,IAAI,CAACiB,aAAa,CAAC,EAAE,EAAEnB,WAAW,CAAC+B,aAAa,CAAC;IAEjD,IAAI,CAACC,QAAQ,GAAG,IAAI7B,mCAAmC,CAAC;MACtD8B,MAAM,EAAEP,OAAO,CAACO,MAAM;MACtBC,GAAG,EAAE1B,mBAAmB,CAACkB,OAAO,CAACS,gBAAgB;IACnD,CAAC,CAAC;IAEF,MAAMC,kBAAkB,GAAGzC,sBAAsB,CAAC;MAChD,CAACG,kBAAkB,CAACuC,wBAAwB,GAAGT,WAAW;MAC1D,CAAC9B,kBAAkB,CAACwC,2BAA2B,GAAGT,OAAO;MACzD,CAAC/B,kBAAkB,CAACyC,kCAAkC,GAAGT,WAAW;MACpE,GAAGrB,qBAAqB,CAAC;IAC3B,CAAC,CAAC;IAEFR,kBAAkB,CAACuC,qBAAqB,CAACJ,kBAAkB,CAACK,UAAU,CAAC;IAEvE,IAAI,CAACC,cAAc,GAAG,IAAIhC,iBAAiB,CAAC;MAC1CiC,QAAQ,EAAEP,kBAAkB;MAC5Bd,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BsB,OAAO,EAAE,IAAItC,uCAAuC,CAClD,IAAI,CAACqB,MAAM,CAACkB,gBACd,CAAC;MACDC,cAAc,EAAE,CACd,IAAI,CAACC,0BAA0B,CAAC,CAAC,EACjC,IAAIlD,kBAAkB,CAAC,IAAI,CAACmC,QAAQ,CAAC,EACrC,IAAIrB,wBAAwB,CAC1B,IAAI,CAACqC,WAAW,EAChB,IAAI,CAAChB,QAAQ,CAACiB,aAChB,CAAC;IAEL,CAAC,CAAC;IAEF,IAAI,CAACP,cAAc,CAACQ,QAAQ,CAAC;MAC3BC,UAAU,EAAE,IAAIvD,yBAAyB,CAAC;IAC5C,CAAC,CAAC;;IAEF;IACAG,wBAAwB,CAAC;MACvB2C,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCU,gBAAgB,EAAE7C,mBAAmB,CAAC,IAAI,CAACoB,MAAM;IACnD,CAAC,CAAC;IAEF,IAAI,CAAC0B,4BAA4B,CAAC,CAAC;EACrC;EAEAC,cAAcA,CACZN,WAA2C,EAC3CO,QAAiB,EACX;IACN,IAAI,CAACP,WAAW,GAAGA,WAAW;IAC9B,IACEA,WAAW,IACX,OAAOO,QAAQ,KAAK,QAAQ,IAC5BC,MAAM,CAACC,QAAQ,CAACF,QAAQ,CAAC,EACzB;MACAP,WAAW,CAACU,kBAAkB,CAACH,QAAQ,CAAC;IAC1C;EACF;EAEA,MAAMI,YAAYA,CAChBC,KAAqB,EACqB;IAC1C,IAAI,CAAC,IAAI,CAAC5B,QAAQ,EAAE;MAClB,MAAM,IAAIT,KAAK,CAAC,gCAAgC,CAAC;IACnD;IACA,IAAI,CAACqC,KAAK,IAAIA,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;MAChC,OAAOC,OAAO,CAACC,OAAO,CAAC,CAAC;IAC1B;IAEA,MAAMC,aAAa,GAAGJ,KAAK,CAACK,GAAG,CAAEC,CAAM,IACrCpD,oBAAoB,CAACqD,mBAAmB,CAACD,CAAC,CAC5C,CAAC;IAED,OAAO,IAAIJ,OAAO,CAAEC,OAAO,IAAK;MAC9B,IAAI,CAAC/B,QAAQ,EAAEoC,YAAY,CAACJ,aAAa,EAAGK,MAAM,IAAK;QACrDN,OAAO,CAACM,MAAM,CAAC;MACjB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEAC,KAAKA,CAACtD,SAAiB,EAAEI,WAAwB,EAAQ;IACvD,IAAI,CAAC,IAAI,CAACsB,cAAc,EAAE;MACxB,MAAM,IAAInB,KAAK,CACb,4DACF,CAAC;IACH;IAEA,IAAI,CAACJ,aAAa,CAACH,SAAS,EAAEI,WAAW,CAAC;EAC5C;EAEAmD,IAAIA,CAAA,EAAS;IACX,IAAI,CAAC,IAAI,CAAC7B,cAAc,EAAE;MACxB,MAAM,IAAInB,KAAK,CACb,4DACF,CAAC;IACH;IAEA,IAAI,CAACJ,aAAa,CAAC,EAAE,EAAEnB,WAAW,CAAC+B,aAAa,CAAC;EACnD;EAEAyC,SAASA,CAACvC,MAAc,EAAQ;IAC9B,IAAI,CAAC,IAAI,CAACD,QAAQ,EAAE;MAClB,MAAM,IAAIT,KAAK,CACb,gEACF,CAAC;IACH;IAEA,IAAI,CAACS,QAAQ,CAACwC,SAAS,CAACvC,MAAM,CAAC;EACjC;;EAEA;AACF;AACA;AACA;AACA;EACEwC,gBAAgBA,CAACC,KAAY,EAAEC,SAA+B,EAAQ;IACpE,IAAI,CAACD,KAAK,EAAE;IACZzE,kBAAkB,CAACwE,gBAAgB,CAACC,KAAK,EAAEC,SAAS,CAAC;EACvD;EAEQ5B,0BAA0BA,CAAA,EAAG;IACnC,OAAO;MACL6B,OAAO,EAAGC,IAAS,IAAK;QACtB,IAAI,IAAI,CAAC7D,SAAS,EAAE;UAClB6D,IAAI,CAACC,YAAY,CAAC1E,2BAA2B,EAAE,IAAI,CAACY,SAAS,CAAC;QAChE;MACF,CAAC;MACD+D,KAAK,EAAEA,CAAA,KAAM,CAAC,CAAC;MACfC,QAAQ,EAAEA,CAAA,KAAMlB,OAAO,CAACC,OAAO,CAAC,CAAC;MACjCkB,UAAU,EAAEA,CAAA,KAAMnB,OAAO,CAACC,OAAO,CAAC;IACpC,CAAC;EACH;EAEQV,4BAA4BA,CAAA,EAAS;IAC3C,IAAI,IAAI,CAACpC,4BAA4B,EAAE;;IAEvC;IACA;IACA,MAAMiE,aAAkB,GAAIC,MAAM,CAASC,UAAU;IACrD,IAAIF,aAAa,IAAI,OAAOA,aAAa,CAACG,gBAAgB,KAAK,UAAU,EAAE;MACzE,MAAMC,QAAQ,GAAGJ,aAAa,CAACK,gBAAgB,GAAG,CAAC;MACnDL,aAAa,CAACG,gBAAgB,CAAC,CAACX,KAAU,EAAEc,OAAiB,KAAK;QAChE,IAAI;UACF,MAAMC,GAAG,GACPf,KAAK,YAAYnD,KAAK,GAClBmD,KAAK,GACL,IAAInD,KAAK,CAACmE,MAAM,CAAChB,KAAK,EAAEiB,OAAO,IAAIjB,KAAK,CAAC,CAAC;UAChD,IAAI,CAACD,gBAAgB,CAACgB,GAAG,CAAC;QAC5B,CAAC,SAAS;UACR,IAAI,OAAOH,QAAQ,KAAK,UAAU,EAAE;YAClC,IAAI;cACFA,QAAQ,CAACZ,KAAK,EAAEc,OAAO,CAAC;YAC1B,CAAC,CAAC,OAAOI,EAAE,EAAE;cACX;YAAA;UAEJ;QACF;MACF,CAAC,CAAC;MACF,IAAI,CAAC3E,4BAA4B,GAAG,IAAI;IAC1C;EACF;EAEA,OAAekD,mBAAmBA,CAACU,IAAS,EAAgB;IAC1D,IACEA,IAAI,IACJ,OAAOA,IAAI,CAACgB,WAAW,KAAK,UAAU,IACtChB,IAAI,CAACiB,oBAAoB,EACzB;MACA,OAAOjB,IAAI;IACb;IAEA,MAAMgB,WAAW,GACf,OAAOhB,IAAI,EAAEgB,WAAW,KAAK,UAAU,GACnChB,IAAI,CAACgB,WAAW,CAAC,CAAC,GAClBhB,IAAI,EAAEkB,YAAY;IACxB,MAAMC,aAAa,GACjBH,WAAW,IACV;MACCI,OAAO,EAAEpB,IAAI,EAAEoB,OAAO;MACtBC,MAAM,EAAErB,IAAI,EAAEqB,MAAM;MACpBC,UAAU,EAAEtB,IAAI,EAAEsB,UAAU;MAC5BC,UAAU,EAAEvB,IAAI,EAAEuB;IACpB,CAAS;IAEX,MAAMN,oBAAoB,GACxBjB,IAAI,EAAEiB,oBAAoB,IAC1BjB,IAAI,EAAEwB,sBAAsB,IAC3B;MACCC,IAAI,EAAE,oBAAoB;MAC1BzE,OAAO,EAAE0E,SAAS;MAClBC,SAAS,EAAED;IACb,CAAS;IAEX,MAAME,eAAe,GAAG;MACtBH,IAAI,EAAER,oBAAoB,EAAEQ,IAAI,IAAI,oBAAoB;MACxDzE,OAAO,EAAEiE,oBAAoB,EAAEjE,OAAO;MACtC2E,SAAS,EAAEV,oBAAoB,EAAEU;IACnC,CAAC;IAED,MAAM7D,QAAQ,GAAGkC,IAAI,EAAElC,QAAQ,IAAI;MACjCF,UAAU,EAAE,CAAC,CAAC;MACdiE,sBAAsB,EAAE;IAC1B,CAAC;IACD,MAAMC,YAAY,GAAG9B,IAAI,EAAE8B,YAAY;IAEvC,OAAO;MACLL,IAAI,EAAEzB,IAAI,EAAEyB,IAAI,IAAI,EAAE;MACtBM,IAAI,EAAE/B,IAAI,EAAE+B,IAAI;MAChBf,WAAW,EAAEA,CAAA,KAAMG,aAAa;MAChCa,iBAAiB,EAAEF,YAAY,GAC1B;QACCV,OAAO,EAAED,aAAa,EAAEC,OAAO;QAC/BC,MAAM,EAAES,YAAY;QACpBR,UAAU,EAAEH,aAAa,EAAEG,UAAU;QACrCC,UAAU,EAAEJ,aAAa,EAAEI;MAC7B,CAAC,GACDG,SAAS;MACbO,SAAS,EAAEjC,IAAI,EAAEiC,SAAS;MAC1BC,OAAO,EAAElC,IAAI,EAAEkC,OAAO,IAAIlC,IAAI,EAAEiC,SAAS;MACzCE,QAAQ,EAAEnC,IAAI,EAAEmC,QAAQ;MACxBC,MAAM,EAAEpC,IAAI,EAAEoC,MAAM;MACpBxE,UAAU,EAAEoC,IAAI,EAAEpC,UAAU,IAAI,CAAC,CAAC;MAClCyE,KAAK,EAAErC,IAAI,EAAEqC,KAAK,IAAI,EAAE;MACxBC,MAAM,EAAEtC,IAAI,EAAEsC,MAAM,IAAI,EAAE;MAC1BC,KAAK,EAAE,OAAOvC,IAAI,EAAEuC,KAAK,KAAK,SAAS,GAAGvC,IAAI,CAACuC,KAAK,GAAG,IAAI;MAC3DC,sBAAsB,EAAExC,IAAI,EAAEwC,sBAAsB,IAAI,CAAC;MACzDC,kBAAkB,EAAEzC,IAAI,EAAEyC,kBAAkB,IAAI,CAAC;MACjDC,iBAAiB,EAAE1C,IAAI,EAAE0C,iBAAiB,IAAI,CAAC;MAC/C5E,QAAQ;MACRmD,oBAAoB,EAAEW;IACxB,CAAC;EACH;AACF","ignoreList":[]}
@@ -24,7 +24,7 @@ export class RecorderReactNativeSDK {
24
24
  this.socketService = socketService;
25
25
  this.crashBuffer = crashBuffer;
26
26
  this.bufferingEnabled = Boolean(buffering?.enabled);
27
- this.bufferWindowMs = Math.max(10_000, buffering?.windowMs || 1 * 60 * 1000);
27
+ this.bufferWindowMs = Math.max(10_000, buffering?.windowMs || 0.5 * 60 * 1000);
28
28
  this.screenRecorder.init(config, this);
29
29
  this.navigationTracker.init(config, this.screenRecorder);
30
30
  this.gestureRecorder.init(config, this, this.screenRecorder);
@@ -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":["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 +1 @@
1
- {"version":3,"names":["ApiService","baseUrl","constructor","config","apiKey","apiBaseUrl","exporterEndpoint","init","updateConfigs","setApiKey","createErrorSession","request","signal","makeRequest","updateSessionAttributes","sessionId","requestBody","exportEvents","path","method","body","url","params","JSON","stringify","headers","response","fetch","ok","Error","statusText","status","json","error","name","message","startSession","res","stopSession","cancelSession","startContinuousDebugSession","saveContinuousDebugSession","stopContinuousDebugSession","checkRemoteSession"],"sourceRoot":"../../../src","sources":["services/api.service.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ApiService","baseUrl","constructor","config","apiKey","apiBaseUrl","exporterEndpoint","init","updateConfigs","setApiKey","createErrorSession","request","signal","makeRequest","updateSessionAttributes","sessionId","requestBody","exportEvents","path","method","body","url","params","JSON","stringify","headers","response","fetch","ok","Error","statusText","status","json","error","name","message","startSession","res","stopSession","cancelSession","startContinuousDebugSession","saveContinuousDebugSession","stopContinuousDebugSession","checkRemoteSession"],"sourceRoot":"../../../src","sources":["services/api.service.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { Platform } from 'react-native';
4
+ import { EventType } from '@rrweb/types';
4
5
  import { SpanStatusCode } from '@opentelemetry/api';
5
6
 
6
7
  // Safe import for AsyncStorage with web fallback
@@ -32,7 +33,8 @@ export class CrashBufferService {
32
33
  indexLoaded = false;
33
34
  lastPruneAt = 0;
34
35
  opChain = Promise.resolve();
35
- defaultWindowMs = 1 * 60 * 1000;
36
+ defaultWindowMs = 0.5 * 60 * 1000;
37
+ lastSeenEventTs = 0;
36
38
  listeners = new Map();
37
39
  static getInstance() {
38
40
  if (!CrashBufferService.instance) {
@@ -73,7 +75,16 @@ export class CrashBufferService {
73
75
  });
74
76
  }
75
77
  async appendEvent(payload, windowMs) {
76
- return this.appendRecord('rrweb', payload.ts, payload, windowMs ?? this.defaultWindowMs);
78
+ const ts = payload?.ts ?? Date.now();
79
+ this.lastSeenEventTs = Math.max(this.lastSeenEventTs, ts);
80
+ const rawEventType = payload?.event?.eventType ?? payload?.event?.type;
81
+ const isFullSnapshot = Boolean(payload.isFullSnapshot) || rawEventType === EventType.FullSnapshot;
82
+ const record = {
83
+ ...payload,
84
+ ts,
85
+ isFullSnapshot
86
+ };
87
+ return this.appendRecord('rrweb', record.ts, record, windowMs ?? this.defaultWindowMs);
77
88
  }
78
89
  async appendSpans(payload, windowMs) {
79
90
  if (!payload.length) return;
@@ -113,7 +124,7 @@ export class CrashBufferService {
113
124
  });
114
125
  }
115
126
  setDefaultWindowMs(windowMs) {
116
- this.defaultWindowMs = Math.max(10_000, windowMs || 1 * 60 * 1000);
127
+ this.defaultWindowMs = Math.max(10_000, windowMs || 0.5 * 60 * 1000);
117
128
  }
118
129
  on(event, listener) {
119
130
  const set = this.listeners.get(event) || new Set();
@@ -205,29 +216,49 @@ export class CrashBufferService {
205
216
  // ignore
206
217
  }
207
218
  }
208
- const rrwebEvents = [];
209
- const otelSpans = [];
219
+ const allEvents = [];
220
+ const allSpans = [];
210
221
  for (const e of entries.sort((a, b) => a.ts - b.ts)) {
211
222
  const key = `${RECORD_PREFIX}${e.id}`;
212
223
  const payload = byKey.get(key);
213
224
  if (!payload) continue;
214
- if (e.kind === 'rrweb') rrwebEvents.push(payload);
215
- if (e.kind === 'span') otelSpans.push(payload);
225
+ if (e.kind === 'rrweb') allEvents.push(payload);
226
+ if (e.kind === 'span') allSpans.push(payload);
216
227
  }
217
- let attrs = null;
218
- try {
219
- const raw = AsyncStorage ? await AsyncStorage.getItem(ATTRS_KEY) : null;
220
- attrs = raw ? JSON.parse(raw) : null;
221
- } catch (_e) {
222
- attrs = null;
228
+
229
+ // Mirror browser semantics:
230
+ // - Ensure the rrweb stream starts at Meta -> FullSnapshot (or is empty).
231
+ // - Only include spans from the replayable window onward.
232
+ const eventsSorted = allEvents.slice().sort((a, b) => a.ts - b.ts);
233
+ const firstSnapshotIdx = eventsSorted.findIndex(e => {
234
+ const t = e?.event?.eventType ?? e?.event?.type;
235
+ return t === EventType.FullSnapshot;
236
+ });
237
+ if (firstSnapshotIdx < 0) {
238
+ return {
239
+ events: [],
240
+ spans: [],
241
+ startedAt: fromTs,
242
+ stoppedAt: toTs
243
+ };
244
+ }
245
+ let startIdx = firstSnapshotIdx;
246
+ for (let i = firstSnapshotIdx - 1; i >= 0; i--) {
247
+ const t = eventsSorted[i]?.event?.eventType ?? eventsSorted[i]?.event?.type;
248
+ if (t === EventType.Meta) {
249
+ startIdx = i;
250
+ break;
251
+ }
223
252
  }
253
+ const rrwebEvents = eventsSorted.slice(startIdx);
254
+ const firstEvent = rrwebEvents[0];
255
+ const replayStartedAt = typeof firstEvent?.ts === 'number' ? firstEvent.ts : fromTs;
256
+ const otelSpans = allSpans.filter(s => typeof s?.ts === 'number' && s.ts >= replayStartedAt).sort((a, b) => a.ts - b.ts);
224
257
  return {
225
- rrwebEvents,
226
- otelSpans,
227
- attrs,
228
- windowMs: effectiveWindowMs,
229
- fromTs,
230
- toTs
258
+ spans: otelSpans,
259
+ events: rrwebEvents,
260
+ stoppedAt: toTs,
261
+ startedAt: replayStartedAt
231
262
  };
232
263
  });
233
264
  }
@@ -237,6 +268,7 @@ export class CrashBufferService {
237
268
  await this.ensureIndexLoaded();
238
269
  const keys = this.index.map(e => `${RECORD_PREFIX}${e.id}`);
239
270
  this.index = [];
271
+ this.lastSeenEventTs = 0;
240
272
  try {
241
273
  await AsyncStorage.multiRemove([INDEX_KEY, ATTRS_KEY, ...keys]);
242
274
  } catch (_e) {