@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
@@ -34,7 +34,10 @@ export declare class SocketService extends Observable<SocketServiceEvents> {
34
34
  send(event: any): void;
35
35
  subscribeToSession(session: ISession): void;
36
36
  unsubscribeFromSession(stopSession?: boolean): void;
37
- setUser(userAttributes: IUserAttributes | null): void;
37
+ setUser(data: {
38
+ userAttributes: IUserAttributes | null;
39
+ clientId?: string;
40
+ }): void;
38
41
  close(): Promise<void>;
39
42
  }
40
43
  //# sourceMappingURL=socket.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"socket.service.d.ts","sourceRoot":"","sources":["../../../../src/services/socket.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,EAIrB,8BAA8B,EAC9B,6BAA6B,EAE7B,yBAAyB,EAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,eAAe,EAErB,MAAM,0CAA0C,CAAC;AAIlD,MAAM,MAAM,mBAAmB,GAC3B,OAAO,qBAAqB,GAC5B,OAAO,oBAAoB,GAC3B,OAAO,8BAA8B,GACrC,OAAO,6BAA6B,GACpC,OAAO,yBAAyB,CAAC;AAErC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,aAAc,SAAQ,UAAU,CAAC,mBAAmB,CAAC;IAChE,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAuB;;IAWtC;;;OAGG;IACI,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAc/C;;;OAGG;IACI,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IA0BjE,OAAO,CAAC,eAAe;IAyDvB,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,UAAU;IAWX,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAItB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAe3C,sBAAsB,CAAC,WAAW,CAAC,EAAE,OAAO;IAW5C,OAAO,CAAC,cAAc,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IAIrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB9B"}
1
+ {"version":3,"file":"socket.service.d.ts","sourceRoot":"","sources":["../../../../src/services/socket.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,EAIrB,8BAA8B,EAC9B,6BAA6B,EAE7B,yBAAyB,EAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,eAAe,EAErB,MAAM,0CAA0C,CAAC;AAIlD,MAAM,MAAM,mBAAmB,GAC3B,OAAO,qBAAqB,GAC5B,OAAO,oBAAoB,GAC3B,OAAO,8BAA8B,GACrC,OAAO,6BAA6B,GACpC,OAAO,yBAAyB,CAAC;AAErC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,aAAc,SAAQ,UAAU,CAAC,mBAAmB,CAAC;IAChE,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAuB;;IAWtC;;;OAGG;IACI,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAc/C;;;OAGG;IACI,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IA0BjE,OAAO,CAAC,eAAe;IAyDvB,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,UAAU;IAWX,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAItB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAe3C,sBAAsB,CAAC,WAAW,CAAC,EAAE,OAAO;IAW5C,OAAO,CAAC,IAAI,EAAE;QACnB,cAAc,EAAE,eAAe,GAAG,IAAI,CAAC;QACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI;IAID,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB9B"}
@@ -55,9 +55,6 @@ declare class SessionRecorder extends Observable<SessionRecorderEvents> implemen
55
55
  * Capture an exception manually and send it as an error trace.
56
56
  */
57
57
  captureException(error: unknown, errorInfo?: Record<string, any>): void;
58
- flushBuffer(payload?: {
59
- reason?: string;
60
- }): Promise<any>;
61
58
  private _flushBuffer;
62
59
  private _createExceptionSession;
63
60
  private _loadStoredSessionData;
@@ -1 +1 @@
1
- {"version":3,"file":"session-recorder.d.ts","sourceRoot":"","sources":["../../../src/session-recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-recorder.d.ts","sourceRoot":"","sources":["../../../src/session-recorder.ts"],"names":[],"mappings":"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"}
@@ -135,10 +135,10 @@ export interface SessionRecorderOptions {
135
135
  enabled?: boolean;
136
136
  };
137
137
  /**
138
- * @description
139
- * If true, webSocket will be used to manage remote recording sessions.
140
- * @default true
141
- */
138
+ * @description
139
+ * If true, webSocket will be used to manage remote recording sessions.
140
+ * @default true
141
+ */
142
142
  useWebsocket?: boolean;
143
143
  /**
144
144
  * (Optional) Client-side crash buffer configuration.
@@ -146,9 +146,9 @@ export interface SessionRecorderOptions {
146
146
  * even if the user did not start a manual/continuous recording.
147
147
  */
148
148
  buffering?: {
149
- /** Enable/disable buffering. @default true */
149
+ /** Enable/disable buffering. @default false */
150
150
  enabled?: boolean;
151
- /** Rolling window size (minutes). @default 1 */
151
+ /** Rolling window size (minutes). @default 0.5 */
152
152
  windowMinutes?: number;
153
153
  };
154
154
  }
@@ -314,13 +314,6 @@ export interface ISessionRecorder {
314
314
  * Capture an exception and send it as an error trace
315
315
  */
316
316
  captureException(error: unknown, errorInfo?: Record<string, any>): void;
317
- /**
318
- * Flush the local crash buffer by creating a debug session and uploading buffered data.
319
- * No-op if a live recording is currently active.
320
- */
321
- flushBuffer(payload?: {
322
- reason?: string;
323
- }): Promise<any>;
324
317
  }
325
318
  /**
326
319
  * Interface representing screen capture events
@@ -1 +1 @@
1
- {"version":3,"file":"session-recorder.d.ts","sourceRoot":"","sources":["../../../../src/types/session-recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-recorder.d.ts","sourceRoot":"","sources":["../../../../src/types/session-recorder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rrweb-events.d.ts","sourceRoot":"","sources":["../../../../src/utils/rrweb-events.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,oBAAoB,EAG1B,MAAM,cAAc,CAAC;AAGtB;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,aAAa,CAcxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,YAAQ,EAC7B,aAAa,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAClC,SAAS,CAAC,EAAE,MAAM,GACjB,aAAa,CA2Ff;AAED;;;;;;GAMG;AACH,wBAAgB,wCAAwC,CACtD,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,MAAc,EAC7B,SAAS,CAAC,EAAE,MAAM,GACjB,aAAa,CAqBf;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,YAAQ,EAC7B,MAAM,EAAE,MAAM,GACb,oBAAoB,CAatB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,oBAAoB,EAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC,oBAAoB,CAkEtB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,MAAY,GACvB,MAAM,CAaR;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQ9C"}
1
+ {"version":3,"file":"rrweb-events.d.ts","sourceRoot":"","sources":["../../../../src/utils/rrweb-events.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AAGtB;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,aAAa,CAcxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,YAAQ,EAC7B,aAAa,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAClC,SAAS,CAAC,EAAE,MAAM,GACjB,aAAa,CA2Ff;AAED;;;;;;GAMG;AACH,wBAAgB,wCAAwC,CACtD,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,MAAc,EAC7B,SAAS,CAAC,EAAE,MAAM,GACjB,aAAa,CAqBf;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,YAAQ,EAC7B,MAAM,EAAE,MAAM,GACb,oBAAoB,CAatB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,oBAAoB,EAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC,oBAAoB,CAkEtB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,MAAY,GACvB,MAAM,CAaR;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQ9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplayer-app/session-recorder-react-native",
3
- "version": "1.3.23",
3
+ "version": "1.3.32",
4
4
  "description": "Multiplayer Fullstack Session Recorder for React Native",
5
5
  "author": {
6
6
  "name": "Multiplayer Software, Inc.",
@@ -108,7 +108,7 @@
108
108
  "typescript": "^5.9.2"
109
109
  },
110
110
  "dependencies": {
111
- "@multiplayer-app/session-recorder-common": "1.3.23",
111
+ "@multiplayer-app/session-recorder-common": "1.3.32",
112
112
  "@opentelemetry/core": "2.0.1",
113
113
  "@opentelemetry/exporter-trace-otlp-http": "0.203.0",
114
114
  "@opentelemetry/instrumentation": "0.203.0",
@@ -33,33 +33,33 @@ export const DEFAULT_MASKING_CONFIG: SessionRecorderConfigs['masking'] = {
33
33
  };
34
34
 
35
35
  export const DEFAULT_WIDGET_TEXT_CONFIG: SessionRecorderConfigs['widget']['textOverrides'] =
36
- {
37
- initialTitleWithContinuous: 'Encountered an issue?',
38
- initialTitleWithoutContinuous: 'Encountered an issue?',
39
- initialDescriptionWithContinuous:
40
- 'Record your session so we can see the problem and fix it faster.',
41
- initialDescriptionWithoutContinuous:
42
- 'Record your session so we can see the problem and fix it faster.',
43
- continuousRecordingLabel: 'Continuous recording',
44
- startRecordingButtonText: 'Start recording',
45
- finalTitle: 'Done recording?',
46
- finalDescription:
47
- 'You can also add a quick note with extra context, expectations, or questions. Thank you!',
48
- commentPlaceholder: 'Add a message...',
49
- saveButtonText: 'Submit recording',
50
- cancelButtonText: 'Cancel recording',
51
- continuousOverlayTitle: 'Save time, skip the reproductions',
52
- continuousOverlayDescription:
53
- 'We keep a rolling record of your recent activity. If something doesn’t work as expected, just save the recording and continue working. No need to worry about exceptions and errors - we automatically save recordings for those!',
54
- saveLastSnapshotButtonText: 'Save recording',
55
- submitDialogTitle: 'Save recording',
56
- submitDialogSubtitle:
57
- 'This full-stack session recording will be saved directly to your selected Multiplayer project. All data is automatically correlated end-to-end.',
58
- submitDialogCommentLabel: 'You can also add context, comments, or notes.',
59
- submitDialogCommentPlaceholder: 'Add a message...',
60
- submitDialogSubmitText: 'Save',
61
- submitDialogCancelText: 'Cancel',
62
- };
36
+ {
37
+ initialTitleWithContinuous: 'Encountered an issue?',
38
+ initialTitleWithoutContinuous: 'Encountered an issue?',
39
+ initialDescriptionWithContinuous:
40
+ 'Record your session so we can see the problem and fix it faster.',
41
+ initialDescriptionWithoutContinuous:
42
+ 'Record your session so we can see the problem and fix it faster.',
43
+ continuousRecordingLabel: 'Continuous recording',
44
+ startRecordingButtonText: 'Start recording',
45
+ finalTitle: 'Done recording?',
46
+ finalDescription:
47
+ 'You can also add a quick note with extra context, expectations, or questions. Thank you!',
48
+ commentPlaceholder: 'Add a message...',
49
+ saveButtonText: 'Submit recording',
50
+ cancelButtonText: 'Cancel recording',
51
+ continuousOverlayTitle: 'Save time, skip the reproductions',
52
+ continuousOverlayDescription:
53
+ 'We keep a rolling record of your recent activity. If something doesn’t work as expected, just save the recording and continue working. No need to worry about exceptions and errors - we automatically save recordings for those!',
54
+ saveLastSnapshotButtonText: 'Save recording',
55
+ submitDialogTitle: 'Save recording',
56
+ submitDialogSubtitle:
57
+ 'This full-stack session recording will be saved directly to your selected Multiplayer project. All data is automatically correlated end-to-end.',
58
+ submitDialogCommentLabel: 'You can also add context, comments, or notes.',
59
+ submitDialogCommentPlaceholder: 'Add a message...',
60
+ submitDialogSubmitText: 'Save',
61
+ submitDialogCancelText: 'Cancel',
62
+ };
63
63
 
64
64
  export const BASE_CONFIG: SessionRecorderConfigs = {
65
65
  apiKey: '',
@@ -106,7 +106,7 @@ export const BASE_CONFIG: SessionRecorderConfigs = {
106
106
  useWebsocket: true,
107
107
 
108
108
  buffering: {
109
- enabled: true,
110
- windowMinutes: 1,
109
+ enabled: false,
110
+ windowMinutes: 0.5,
111
111
  },
112
112
  };
@@ -87,8 +87,14 @@ export const getSessionRecorderConfig = (
87
87
  useWebsocket: isValidBoolean(c.useWebsocket, BASE_CONFIG.useWebsocket),
88
88
 
89
89
  buffering: {
90
- enabled: isValidBoolean(c.buffering?.enabled, BASE_CONFIG.buffering.enabled),
91
- windowMinutes: isValidNumber(c.buffering?.windowMinutes, BASE_CONFIG.buffering.windowMinutes),
90
+ enabled: isValidBoolean(
91
+ c.buffering?.enabled,
92
+ BASE_CONFIG.buffering.enabled
93
+ ),
94
+ windowMinutes: isValidNumber(
95
+ c.buffering?.windowMinutes,
96
+ BASE_CONFIG.buffering.windowMinutes
97
+ ),
92
98
  },
93
99
  };
94
100
  };
@@ -1,15 +1,11 @@
1
+ import { type Context } from '@opentelemetry/api';
1
2
  import {
2
- MULTIPLAYER_TRACE_SESSION_CACHE_PREFIX,
3
- MULTIPLAYER_TRACE_CONTINUOUS_SESSION_CACHE_PREFIX,
4
- } from '@multiplayer-app/session-recorder-common';
5
- import type { CrashBuffer } from '@multiplayer-app/session-recorder-common';
6
- import { type Context, TraceFlags } from '@opentelemetry/api';
7
- import type {
8
- Span,
9
- SpanProcessor,
10
- BatchSpanProcessor,
11
- ReadableSpan,
3
+ type ReadableSpan,
4
+ type SpanProcessor,
5
+ type Span,
12
6
  } from '@opentelemetry/sdk-trace-base';
7
+ import { MULTIPLAYER_TRACE_SESSION_CACHE_PREFIX } from '@multiplayer-app/session-recorder-common';
8
+ import type { CrashBuffer } from '@multiplayer-app/session-recorder-common';
13
9
 
14
10
  /**
15
11
  * Implementation of the {@link SpanProcessor} that batches spans exported by
@@ -17,30 +13,29 @@ import type {
17
13
  */
18
14
  export class CrashBufferSpanProcessor implements SpanProcessor {
19
15
  constructor(
20
- private readonly _exporter: BatchSpanProcessor,
21
16
  private readonly _crashBuffer: CrashBuffer | undefined,
22
17
  private readonly _serializeSpan: (span: ReadableSpan) => any
23
18
  ) {}
24
19
 
25
20
  forceFlush(): Promise<void> {
26
- return this._exporter.forceFlush();
21
+ return Promise.resolve();
27
22
  }
28
23
 
29
24
  onStart(_span: Span, _parentContext: Context): void {
30
- return this._exporter.onStart(_span, _parentContext);
25
+ return;
31
26
  }
32
27
 
33
28
  onEnd(span: ReadableSpan): void {
34
- const traceId = span.spanContext().traceId;
29
+ const _spanContext = span.spanContext();
35
30
 
36
- if ((span.spanContext().traceFlags & TraceFlags.SAMPLED) === 0) {
37
- return;
38
- }
31
+ const traceId = _spanContext.traceId;
32
+
33
+ // // Never buffer/export unsampled spans.
34
+ // if ((_spanContext.traceFlags & TraceFlags.SAMPLED) === 0) {
35
+ // return
36
+ // }
39
37
 
40
- if (
41
- traceId.startsWith(MULTIPLAYER_TRACE_SESSION_CACHE_PREFIX) ||
42
- traceId.startsWith(MULTIPLAYER_TRACE_CONTINUOUS_SESSION_CACHE_PREFIX)
43
- ) {
38
+ if (traceId.startsWith(MULTIPLAYER_TRACE_SESSION_CACHE_PREFIX)) {
44
39
  if (this._crashBuffer) {
45
40
  this._crashBuffer.appendSpans([
46
41
  {
@@ -51,11 +46,9 @@ export class CrashBufferSpanProcessor implements SpanProcessor {
51
46
  }
52
47
  return;
53
48
  }
54
-
55
- this._exporter.onEnd(span);
56
49
  }
57
50
 
58
51
  shutdown(): Promise<void> {
59
- return this._exporter.shutdown();
52
+ return Promise.resolve();
60
53
  }
61
54
  }
package/src/otel/index.ts CHANGED
@@ -4,7 +4,6 @@ import {
4
4
  type ExportResult,
5
5
  } from '@opentelemetry/core';
6
6
  import {
7
- AlwaysOnSampler,
8
7
  BatchSpanProcessor,
9
8
  type ReadableSpan,
10
9
  } from '@opentelemetry/sdk-trace-base';
@@ -17,11 +16,11 @@ import {
17
16
  SessionRecorderBrowserTraceExporter,
18
17
  ATTR_MULTIPLAYER_SESSION_ID,
19
18
  MULTIPLAYER_TRACE_CLIENT_ID_LENGTH,
19
+ SessionRecorderTraceIdRatioBasedSampler,
20
20
  } from '@multiplayer-app/session-recorder-common';
21
21
  import { type TracerReactNativeConfig } from '../types';
22
22
  import { getInstrumentations } from './instrumentations';
23
23
  import { getExporterEndpoint } from './helpers';
24
- import { trace, SpanStatusCode, context, type Span } from '@opentelemetry/api';
25
24
 
26
25
  import { getPlatformAttributes } from '../utils/platform';
27
26
  import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
@@ -40,7 +39,6 @@ export class TracerReactNativeSDK {
40
39
  private sessionId = '';
41
40
  private idGenerator?: SessionRecorderIdGenerator;
42
41
  private exporter?: SessionRecorderBrowserTraceExporter;
43
- private batchSpanProcessor?: BatchSpanProcessor;
44
42
  private globalErrorHandlerRegistered = false;
45
43
  private crashBuffer?: CrashBufferService;
46
44
 
@@ -74,23 +72,27 @@ export class TracerReactNativeSDK {
74
72
  url: getExporterEndpoint(options.exporterEndpoint),
75
73
  });
76
74
 
77
- this.batchSpanProcessor = new BatchSpanProcessor(this.exporter);
75
+ const resourceAttributes = resourceFromAttributes({
76
+ [SemanticAttributes.SEMRESATTRS_SERVICE_NAME]: application,
77
+ [SemanticAttributes.SEMRESATTRS_SERVICE_VERSION]: version,
78
+ [SemanticAttributes.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT]: environment,
79
+ ...getPlatformAttributes(),
80
+ });
81
+
82
+ SessionRecorderSdk.setResourceAttributes(resourceAttributes.attributes);
78
83
 
79
84
  this.tracerProvider = new WebTracerProvider({
80
- resource: resourceFromAttributes({
81
- [SemanticAttributes.SEMRESATTRS_SERVICE_NAME]: application,
82
- [SemanticAttributes.SEMRESATTRS_SERVICE_VERSION]: version,
83
- [SemanticAttributes.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT]: environment,
84
- ...getPlatformAttributes(),
85
- }),
85
+ resource: resourceAttributes,
86
86
  idGenerator: this.idGenerator,
87
- sampler: new AlwaysOnSampler(),
87
+ sampler: new SessionRecorderTraceIdRatioBasedSampler(
88
+ this.config.sampleTraceRatio
89
+ ),
88
90
  spanProcessors: [
89
91
  this._getSpanSessionIdProcessor(),
92
+ new BatchSpanProcessor(this.exporter),
90
93
  new CrashBufferSpanProcessor(
91
- this.batchSpanProcessor,
92
94
  this.crashBuffer,
93
- this.exporter.serializeSpan.bind(this.exporter)
95
+ this.exporter.serializeSpan
94
96
  ),
95
97
  ],
96
98
  });
@@ -125,27 +127,22 @@ export class TracerReactNativeSDK {
125
127
  async exportTraces(
126
128
  spans: ReadableSpan[]
127
129
  ): Promise<ExportResult | undefined | void> {
128
- if (this.batchSpanProcessor) {
129
- spans.map((span) => {
130
- this.batchSpanProcessor?.onEnd(span);
131
- });
130
+ if (!this.exporter) {
131
+ throw new Error('Trace exporter not initialized');
132
+ }
133
+ if (!spans || spans.length === 0) {
132
134
  return Promise.resolve();
133
135
  }
134
136
 
135
- throw new Error('Buffer span processor not initialized');
136
- }
137
+ const readableSpans = spans.map((s: any) =>
138
+ TracerReactNativeSDK._toReadableSpanLike(s)
139
+ );
137
140
 
138
- private _getSpanSessionIdProcessor() {
139
- return {
140
- onStart: (span: any) => {
141
- if (this.sessionId) {
142
- span.setAttribute(ATTR_MULTIPLAYER_SESSION_ID, this.sessionId);
143
- }
144
- },
145
- onEnd: () => {},
146
- shutdown: () => Promise.resolve(),
147
- forceFlush: () => Promise.resolve(),
148
- };
141
+ return new Promise((resolve) => {
142
+ this.exporter?.exportBuffer(readableSpans, (result) => {
143
+ resolve(result);
144
+ });
145
+ });
149
146
  }
150
147
 
151
148
  start(sessionId: string, sessionType: SessionType): void {
@@ -185,39 +182,20 @@ export class TracerReactNativeSDK {
185
182
  */
186
183
  captureException(error: Error, errorInfo?: Record<string, any>): void {
187
184
  if (!error) return;
188
- // Prefer attaching to the active span to keep correlation intact
189
- try {
190
- const activeSpan = trace.getSpan(context.active());
191
- if (activeSpan) {
192
- this._recordException(activeSpan, error, errorInfo);
193
- return;
194
- }
195
- } catch (_ignored) {}
196
-
197
- // Fallback: create a short-lived span to hold the exception details
198
- try {
199
- const tracer = trace.getTracer('exception');
200
- const span = tracer.startSpan(error.name || 'Error');
201
- this._recordException(span, error, errorInfo);
202
- span.end();
203
- } catch (_ignored) {}
185
+ SessionRecorderSdk.captureException(error, errorInfo);
204
186
  }
205
187
 
206
- private _recordException(
207
- span: Span,
208
- error: Error,
209
- errorInfo?: Record<string, any>
210
- ): void {
211
- span.recordException(error);
212
- span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
213
- span.setAttribute('exception.type', error.name || 'Error');
214
- span.setAttribute('exception.message', error.message);
215
- span.setAttribute('exception.stacktrace', error.stack || '');
216
- if (errorInfo) {
217
- Object.entries(errorInfo).forEach(([key, value]) => {
218
- span.setAttribute(`error_info.${key}`, value);
219
- });
220
- }
188
+ private _getSpanSessionIdProcessor() {
189
+ return {
190
+ onStart: (span: any) => {
191
+ if (this.sessionId) {
192
+ span.setAttribute(ATTR_MULTIPLAYER_SESSION_ID, this.sessionId);
193
+ }
194
+ },
195
+ onEnd: () => {},
196
+ shutdown: () => Promise.resolve(),
197
+ forceFlush: () => Promise.resolve(),
198
+ };
221
199
  }
222
200
 
223
201
  private _registerGlobalErrorHandlers(): void {
@@ -248,4 +226,75 @@ export class TracerReactNativeSDK {
248
226
  this.globalErrorHandlerRegistered = true;
249
227
  }
250
228
  }
229
+
230
+ private static _toReadableSpanLike(span: any): ReadableSpan {
231
+ if (
232
+ span &&
233
+ typeof span.spanContext === 'function' &&
234
+ span.instrumentationScope
235
+ ) {
236
+ return span as ReadableSpan;
237
+ }
238
+
239
+ const spanContext =
240
+ typeof span?.spanContext === 'function'
241
+ ? span.spanContext()
242
+ : span?._spanContext;
243
+ const normalizedCtx =
244
+ spanContext ||
245
+ ({
246
+ traceId: span?.traceId,
247
+ spanId: span?.spanId,
248
+ traceFlags: span?.traceFlags,
249
+ traceState: span?.traceState,
250
+ } as any);
251
+
252
+ const instrumentationScope =
253
+ span?.instrumentationScope ||
254
+ span?.instrumentationLibrary ||
255
+ ({
256
+ name: 'multiplayer-buffer',
257
+ version: undefined,
258
+ schemaUrl: undefined,
259
+ } as any);
260
+
261
+ const normalizedScope = {
262
+ name: instrumentationScope?.name || 'multiplayer-buffer',
263
+ version: instrumentationScope?.version,
264
+ schemaUrl: instrumentationScope?.schemaUrl,
265
+ };
266
+
267
+ const resource = span?.resource || {
268
+ attributes: {},
269
+ asyncAttributesPending: false,
270
+ };
271
+ const parentSpanId = span?.parentSpanId;
272
+
273
+ return {
274
+ name: span?.name || '',
275
+ kind: span?.kind,
276
+ spanContext: () => normalizedCtx,
277
+ parentSpanContext: parentSpanId
278
+ ? ({
279
+ traceId: normalizedCtx?.traceId,
280
+ spanId: parentSpanId,
281
+ traceFlags: normalizedCtx?.traceFlags,
282
+ traceState: normalizedCtx?.traceState,
283
+ } as any)
284
+ : undefined,
285
+ startTime: span?.startTime,
286
+ endTime: span?.endTime ?? span?.startTime,
287
+ duration: span?.duration,
288
+ status: span?.status,
289
+ attributes: span?.attributes || {},
290
+ links: span?.links || [],
291
+ events: span?.events || [],
292
+ ended: typeof span?.ended === 'boolean' ? span.ended : true,
293
+ droppedAttributesCount: span?.droppedAttributesCount || 0,
294
+ droppedEventsCount: span?.droppedEventsCount || 0,
295
+ droppedLinksCount: span?.droppedLinksCount || 0,
296
+ resource,
297
+ instrumentationScope: normalizedScope as any,
298
+ } as any;
299
+ }
251
300
  }
@@ -40,7 +40,7 @@ export class RecorderReactNativeSDK implements EventRecorder {
40
40
  this.bufferingEnabled = Boolean(buffering?.enabled);
41
41
  this.bufferWindowMs = Math.max(
42
42
  10_000,
43
- buffering?.windowMs || 1 * 60 * 1000
43
+ buffering?.windowMs || 0.5 * 60 * 1000
44
44
  );
45
45
  this.screenRecorder.init(config, this);
46
46
  this.navigationTracker.init(config, this.screenRecorder);
@@ -93,7 +93,8 @@ export class ApiService {
93
93
  async updateSessionAttributes(
94
94
  sessionId: string,
95
95
  requestBody: {
96
- name?: string;
96
+ startedAt?: string;
97
+ stoppedAt?: string;
97
98
  userAttributes?: IUserAttributes;
98
99
  sessionAttributes?: ISessionAttributes;
99
100
  resourceAttributes?: IResourceAttributes;