@multiplayer-app/session-recorder-react-native 1.3.16 → 1.3.21
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.
- package/lib/module/config/constants.js +3 -0
- package/lib/module/config/constants.js.map +1 -1
- package/lib/module/config/defaults.js +5 -1
- package/lib/module/config/defaults.js.map +1 -1
- package/lib/module/config/session-recorder.js +5 -1
- package/lib/module/config/session-recorder.js.map +1 -1
- package/lib/module/otel/CrashBufferSpanProcessor.js +41 -0
- package/lib/module/otel/CrashBufferSpanProcessor.js.map +1 -0
- package/lib/module/otel/index.js +28 -9
- package/lib/module/otel/index.js.map +1 -1
- package/lib/module/recorder/index.js +15 -1
- package/lib/module/recorder/index.js.map +1 -1
- package/lib/module/services/api.service.js +24 -2
- package/lib/module/services/api.service.js.map +1 -1
- package/lib/module/services/crashBuffer.service.js +248 -0
- package/lib/module/services/crashBuffer.service.js.map +1 -0
- package/lib/module/services/socket.service.js +9 -2
- package/lib/module/services/socket.service.js.map +1 -1
- package/lib/module/session-recorder.js +152 -6
- package/lib/module/session-recorder.js.map +1 -1
- package/lib/module/types/session-recorder.js.map +1 -1
- package/lib/typescript/src/config/constants.d.ts +1 -0
- package/lib/typescript/src/config/constants.d.ts.map +1 -1
- package/lib/typescript/src/config/defaults.d.ts.map +1 -1
- package/lib/typescript/src/config/session-recorder.d.ts.map +1 -1
- package/lib/typescript/src/otel/CrashBufferSpanProcessor.d.ts +18 -0
- package/lib/typescript/src/otel/CrashBufferSpanProcessor.d.ts.map +1 -0
- package/lib/typescript/src/otel/index.d.ts +8 -0
- package/lib/typescript/src/otel/index.d.ts.map +1 -1
- package/lib/typescript/src/recorder/index.d.ts +8 -1
- package/lib/typescript/src/recorder/index.d.ts.map +1 -1
- package/lib/typescript/src/services/api.service.d.ts +27 -2
- package/lib/typescript/src/services/api.service.d.ts.map +1 -1
- package/lib/typescript/src/services/crashBuffer.service.d.ts +46 -0
- package/lib/typescript/src/services/crashBuffer.service.d.ts.map +1 -0
- package/lib/typescript/src/services/socket.service.d.ts +4 -3
- package/lib/typescript/src/services/socket.service.d.ts.map +1 -1
- package/lib/typescript/src/session-recorder.d.ts +8 -0
- package/lib/typescript/src/session-recorder.d.ts.map +1 -1
- package/lib/typescript/src/types/session-recorder.d.ts +18 -0
- package/lib/typescript/src/types/session-recorder.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/config/constants.ts +3 -0
- package/src/config/defaults.ts +5 -0
- package/src/config/session-recorder.ts +5 -0
- package/src/otel/CrashBufferSpanProcessor.ts +61 -0
- package/src/otel/index.ts +90 -34
- package/src/recorder/index.ts +30 -3
- package/src/services/api.service.ts +68 -13
- package/src/services/crashBuffer.service.ts +327 -0
- package/src/services/socket.service.ts +36 -22
- package/src/session-recorder.ts +226 -19
- package/src/types/session-recorder.ts +18 -0
|
@@ -12,6 +12,9 @@ export const SESSION_SUBSCRIBE_EVENT = 'debug-session:subscribe';
|
|
|
12
12
|
export const SESSION_UNSUBSCRIBE_EVENT = 'debug-session:unsubscribe';
|
|
13
13
|
export const SESSION_AUTO_CREATED = 'debug-session:auto-created';
|
|
14
14
|
export const SESSION_ADD_EVENT = 'debug-session:rrweb:add-event';
|
|
15
|
+
|
|
16
|
+
// Backend-triggered flush of client-side crash buffer
|
|
17
|
+
export const SESSION_SAVE_BUFFER_EVENT = 'debug-session:save-buffer';
|
|
15
18
|
export const DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE = 100000;
|
|
16
19
|
export const SESSION_RESPONSE = 'multiplayer-debug-session-response';
|
|
17
20
|
export const REMOTE_SESSION_RECORDING_START = 'remote-session-recording:start';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OTEL_MP_SAMPLE_TRACE_RATIO","SESSION_ID_PROP_NAME","SESSION_SHORT_ID_PROP_NAME","SESSION_STATE_PROP_NAME","SESSION_TYPE_PROP_NAME","SESSION_PROP_NAME","SESSION_STARTED_EVENT","SESSION_STOPPED_EVENT","SESSION_SUBSCRIBE_EVENT","SESSION_UNSUBSCRIBE_EVENT","SESSION_AUTO_CREATED","SESSION_ADD_EVENT","DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE","SESSION_RESPONSE","REMOTE_SESSION_RECORDING_START","REMOTE_SESSION_RECORDING_STOP","SOCKET_SET_USER_EVENT","CONTINUOUS_DEBUGGING_TIMEOUT","DEBUG_SESSION_MAX_DURATION_SECONDS","OTEL_IGNORE_URLS"],"sourceRoot":"../../../src","sources":["config/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,0BAA0B,GAAG,IAAI;AAE9C,OAAO,MAAMC,oBAAoB,GAAG,wBAAwB;AAE5D,OAAO,MAAMC,0BAA0B,GAAG,8BAA8B;AAExE,OAAO,MAAMC,uBAAuB,GAAG,2BAA2B;AAElE,OAAO,MAAMC,sBAAsB,GAAG,0BAA0B;AAEhE,OAAO,MAAMC,iBAAiB,GAAG,0BAA0B;AAE3D,OAAO,MAAMC,qBAAqB,GAAG,uBAAuB;AAE5D,OAAO,MAAMC,qBAAqB,GAAG,uBAAuB;AAE5D,OAAO,MAAMC,uBAAuB,GAAG,yBAAyB;AAEhE,OAAO,MAAMC,yBAAyB,GAAG,2BAA2B;AAEpE,OAAO,MAAMC,oBAAoB,GAAG,4BAA4B;AAEhE,OAAO,MAAMC,iBAAiB,GAAG,+BAA+B;
|
|
1
|
+
{"version":3,"names":["OTEL_MP_SAMPLE_TRACE_RATIO","SESSION_ID_PROP_NAME","SESSION_SHORT_ID_PROP_NAME","SESSION_STATE_PROP_NAME","SESSION_TYPE_PROP_NAME","SESSION_PROP_NAME","SESSION_STARTED_EVENT","SESSION_STOPPED_EVENT","SESSION_SUBSCRIBE_EVENT","SESSION_UNSUBSCRIBE_EVENT","SESSION_AUTO_CREATED","SESSION_ADD_EVENT","SESSION_SAVE_BUFFER_EVENT","DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE","SESSION_RESPONSE","REMOTE_SESSION_RECORDING_START","REMOTE_SESSION_RECORDING_STOP","SOCKET_SET_USER_EVENT","CONTINUOUS_DEBUGGING_TIMEOUT","DEBUG_SESSION_MAX_DURATION_SECONDS","OTEL_IGNORE_URLS"],"sourceRoot":"../../../src","sources":["config/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,0BAA0B,GAAG,IAAI;AAE9C,OAAO,MAAMC,oBAAoB,GAAG,wBAAwB;AAE5D,OAAO,MAAMC,0BAA0B,GAAG,8BAA8B;AAExE,OAAO,MAAMC,uBAAuB,GAAG,2BAA2B;AAElE,OAAO,MAAMC,sBAAsB,GAAG,0BAA0B;AAEhE,OAAO,MAAMC,iBAAiB,GAAG,0BAA0B;AAE3D,OAAO,MAAMC,qBAAqB,GAAG,uBAAuB;AAE5D,OAAO,MAAMC,qBAAqB,GAAG,uBAAuB;AAE5D,OAAO,MAAMC,uBAAuB,GAAG,yBAAyB;AAEhE,OAAO,MAAMC,yBAAyB,GAAG,2BAA2B;AAEpE,OAAO,MAAMC,oBAAoB,GAAG,4BAA4B;AAEhE,OAAO,MAAMC,iBAAiB,GAAG,+BAA+B;;AAEhE;AACA,OAAO,MAAMC,yBAAyB,GAAG,2BAA2B;AAEpE,OAAO,MAAMC,uCAAuC,GAAG,MAAM;AAE7D,OAAO,MAAMC,gBAAgB,GAAG,oCAAoC;AAEpE,OAAO,MAAMC,8BAA8B,GAAG,gCAAgC;AAE9E,OAAO,MAAMC,6BAA6B,GAAG,+BAA+B;AAE5E,OAAO,MAAMC,qBAAqB,GAAG,iBAAiB;AAEtD,OAAO,MAAMC,4BAA4B,GAAG,KAAK,CAAC,CAAC;;AAEnD,OAAO,MAAMC,kCAAkC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;;AAEhE;AACA;AACA;;AAEA;AACA,OAAO,MAAMC,gBAAgB,GAAG;AAC9B;AACA,gBAAgB;AAChB;AACA,0CAA0C,EAC1C,gDAAgD,EAChD,kDAAkD;AAElD;AACA,qDAAqD,EACrD,2DAA2D,EAC3D,6DAA6D;AAE7D;AACA,gDAAgD;AAEhD;AACA,+CAA+C,EAC/C,8CAA8C,EAC9C,6CAA6C,EAC7C,4DAA4D,EAC5D,4DAA4D,EAC5D;;AAEA;AACA;AAAA,CACD","ignoreList":[]}
|
|
@@ -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"],"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;
|
|
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":[]}
|
|
@@ -39,7 +39,11 @@ export const getSessionRecorderConfig = c => {
|
|
|
39
39
|
masking: getMaskingConfig(c.masking),
|
|
40
40
|
widget: getWidgetConfig(c.widget),
|
|
41
41
|
logger: getLoggerConfig(c.logger),
|
|
42
|
-
useWebsocket: isValidBoolean(c.useWebsocket, BASE_CONFIG.useWebsocket)
|
|
42
|
+
useWebsocket: isValidBoolean(c.useWebsocket, BASE_CONFIG.useWebsocket),
|
|
43
|
+
buffering: {
|
|
44
|
+
enabled: isValidBoolean(c.buffering?.enabled, BASE_CONFIG.buffering.enabled),
|
|
45
|
+
windowMinutes: isValidNumber(c.buffering?.windowMinutes, BASE_CONFIG.buffering.windowMinutes)
|
|
46
|
+
}
|
|
43
47
|
};
|
|
44
48
|
};
|
|
45
49
|
//# sourceMappingURL=session-recorder.js.map
|
|
@@ -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"],"sourceRoot":"../../../src","sources":["config/session-recorder.ts"],"mappings":"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
|
|
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":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
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';
|
|
5
|
+
/**
|
|
6
|
+
* Implementation of the {@link SpanProcessor} that batches spans exported by
|
|
7
|
+
* the SDK then pushes them to the exporter pipeline.
|
|
8
|
+
*/
|
|
9
|
+
export class CrashBufferSpanProcessor {
|
|
10
|
+
constructor(_exporter, _crashBuffer, _serializeSpan) {
|
|
11
|
+
this._exporter = _exporter;
|
|
12
|
+
this._crashBuffer = _crashBuffer;
|
|
13
|
+
this._serializeSpan = _serializeSpan;
|
|
14
|
+
}
|
|
15
|
+
forceFlush() {
|
|
16
|
+
return this._exporter.forceFlush();
|
|
17
|
+
}
|
|
18
|
+
onStart(_span, _parentContext) {
|
|
19
|
+
return this._exporter.onStart(_span, _parentContext);
|
|
20
|
+
}
|
|
21
|
+
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)) {
|
|
27
|
+
if (this._crashBuffer) {
|
|
28
|
+
this._crashBuffer.appendSpans([{
|
|
29
|
+
ts: span.startTime[0] * 1000 + span.startTime[1] / 1000000,
|
|
30
|
+
span: this._serializeSpan(span)
|
|
31
|
+
}]);
|
|
32
|
+
}
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this._exporter.onEnd(span);
|
|
36
|
+
}
|
|
37
|
+
shutdown() {
|
|
38
|
+
return this._exporter.shutdown();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=CrashBufferSpanProcessor.js.map
|
|
@@ -0,0 +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":[]}
|
package/lib/module/otel/index.js
CHANGED
|
@@ -2,25 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
import { resourceFromAttributes } from '@opentelemetry/resources';
|
|
4
4
|
import { W3CTraceContextPropagator } from '@opentelemetry/core';
|
|
5
|
-
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
5
|
+
import { AlwaysOnSampler, 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,
|
|
8
|
+
import { SessionType, SessionRecorderSdk, SessionRecorderIdGenerator, SessionRecorderBrowserTraceExporter, ATTR_MULTIPLAYER_SESSION_ID, MULTIPLAYER_TRACE_CLIENT_ID_LENGTH } from '@multiplayer-app/session-recorder-common';
|
|
9
9
|
import { getInstrumentations } from "./instrumentations/index.js";
|
|
10
10
|
import { getExporterEndpoint } from "./helpers.js";
|
|
11
11
|
import { trace, SpanStatusCode, context } from '@opentelemetry/api';
|
|
12
12
|
import { getPlatformAttributes } from "../utils/platform.js";
|
|
13
13
|
import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
|
|
14
|
+
import { CrashBufferSpanProcessor } from "./CrashBufferSpanProcessor.js";
|
|
14
15
|
export class TracerReactNativeSDK {
|
|
16
|
+
clientId = '';
|
|
15
17
|
sessionId = '';
|
|
16
18
|
globalErrorHandlerRegistered = false;
|
|
17
19
|
constructor() {}
|
|
18
20
|
_setSessionId(sessionId, sessionType = SessionType.MANUAL) {
|
|
19
21
|
this.sessionId = sessionId;
|
|
20
|
-
this.idGenerator?.setSessionId(sessionId, sessionType);
|
|
22
|
+
this.idGenerator?.setSessionId(sessionId, sessionType, this.clientId);
|
|
21
23
|
}
|
|
22
24
|
init(options) {
|
|
23
25
|
this.config = options;
|
|
26
|
+
const clientIdGenerator = SessionRecorderSdk.getIdGenerator(MULTIPLAYER_TRACE_CLIENT_ID_LENGTH);
|
|
27
|
+
this.clientId = clientIdGenerator();
|
|
24
28
|
const {
|
|
25
29
|
application,
|
|
26
30
|
version,
|
|
@@ -31,6 +35,7 @@ export class TracerReactNativeSDK {
|
|
|
31
35
|
apiKey: options.apiKey,
|
|
32
36
|
url: getExporterEndpoint(options.exporterEndpoint)
|
|
33
37
|
});
|
|
38
|
+
this.batchSpanProcessor = new BatchSpanProcessor(this.exporter);
|
|
34
39
|
this.tracerProvider = new WebTracerProvider({
|
|
35
40
|
resource: resourceFromAttributes({
|
|
36
41
|
[SemanticAttributes.SEMRESATTRS_SERVICE_NAME]: application,
|
|
@@ -39,8 +44,8 @@ export class TracerReactNativeSDK {
|
|
|
39
44
|
...getPlatformAttributes()
|
|
40
45
|
}),
|
|
41
46
|
idGenerator: this.idGenerator,
|
|
42
|
-
sampler: new
|
|
43
|
-
spanProcessors: [this._getSpanSessionIdProcessor(), new
|
|
47
|
+
sampler: new AlwaysOnSampler(),
|
|
48
|
+
spanProcessors: [this._getSpanSessionIdProcessor(), new CrashBufferSpanProcessor(this.batchSpanProcessor, this.crashBuffer, this.exporter.serializeSpan.bind(this.exporter))]
|
|
44
49
|
});
|
|
45
50
|
this.tracerProvider.register({
|
|
46
51
|
propagator: new W3CTraceContextPropagator()
|
|
@@ -53,15 +58,27 @@ export class TracerReactNativeSDK {
|
|
|
53
58
|
});
|
|
54
59
|
this._registerGlobalErrorHandlers();
|
|
55
60
|
}
|
|
61
|
+
setCrashBuffer(crashBuffer, windowMs) {
|
|
62
|
+
this.crashBuffer = crashBuffer;
|
|
63
|
+
if (crashBuffer && typeof windowMs === 'number' && Number.isFinite(windowMs)) {
|
|
64
|
+
crashBuffer.setDefaultWindowMs(windowMs);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async exportTraces(spans) {
|
|
68
|
+
if (this.batchSpanProcessor) {
|
|
69
|
+
spans.map(span => {
|
|
70
|
+
this.batchSpanProcessor?.onEnd(span);
|
|
71
|
+
});
|
|
72
|
+
return Promise.resolve();
|
|
73
|
+
}
|
|
74
|
+
throw new Error('Buffer span processor not initialized');
|
|
75
|
+
}
|
|
56
76
|
_getSpanSessionIdProcessor() {
|
|
57
77
|
return {
|
|
58
78
|
onStart: span => {
|
|
59
79
|
if (this.sessionId) {
|
|
60
80
|
span.setAttribute(ATTR_MULTIPLAYER_SESSION_ID, this.sessionId);
|
|
61
81
|
}
|
|
62
|
-
// Add React Native specific attributes
|
|
63
|
-
span.setAttribute('platform', 'react-native');
|
|
64
|
-
span.setAttribute('timestamp', Date.now());
|
|
65
82
|
},
|
|
66
83
|
onEnd: () => {},
|
|
67
84
|
shutdown: () => Promise.resolve(),
|
|
@@ -150,7 +167,9 @@ export class TracerReactNativeSDK {
|
|
|
150
167
|
if (typeof previous === 'function') {
|
|
151
168
|
try {
|
|
152
169
|
previous(error, isFatal);
|
|
153
|
-
} catch (_e) {
|
|
170
|
+
} catch (_e) {
|
|
171
|
+
/* ignore */
|
|
172
|
+
}
|
|
154
173
|
}
|
|
155
174
|
}
|
|
156
175
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["resourceFromAttributes","W3CTraceContextPropagator","BatchSpanProcessor","SemanticAttributes","registerInstrumentations","SessionType","
|
|
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","TracerReactNativeSDK","clientId","sessionId","globalErrorHandlerRegistered","constructor","_setSessionId","sessionType","MANUAL","idGenerator","setSessionId","init","options","config","clientIdGenerator","getIdGenerator","application","version","environment","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","Error","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":[]}
|
|
@@ -10,6 +10,8 @@ import { NavigationTracker } from "./navigationTracker.js";
|
|
|
10
10
|
export class RecorderReactNativeSDK {
|
|
11
11
|
isRecording = false;
|
|
12
12
|
recordedEvents = [];
|
|
13
|
+
bufferingEnabled = false;
|
|
14
|
+
bufferWindowMs = 2 * 60 * 1000;
|
|
13
15
|
sessionId = null;
|
|
14
16
|
sessionType = SessionType.MANUAL;
|
|
15
17
|
constructor() {
|
|
@@ -17,9 +19,12 @@ export class RecorderReactNativeSDK {
|
|
|
17
19
|
this.gestureRecorder = new GestureRecorder();
|
|
18
20
|
this.navigationTracker = new NavigationTracker();
|
|
19
21
|
}
|
|
20
|
-
init(config, socketService) {
|
|
22
|
+
init(config, socketService, crashBuffer, buffering) {
|
|
21
23
|
this.config = config;
|
|
22
24
|
this.socketService = socketService;
|
|
25
|
+
this.crashBuffer = crashBuffer;
|
|
26
|
+
this.bufferingEnabled = Boolean(buffering?.enabled);
|
|
27
|
+
this.bufferWindowMs = Math.max(10_000, buffering?.windowMs || 1 * 60 * 1000);
|
|
23
28
|
this.screenRecorder.init(config, this);
|
|
24
29
|
this.navigationTracker.init(config, this.screenRecorder);
|
|
25
30
|
this.gestureRecorder.init(config, this, this.screenRecorder);
|
|
@@ -71,6 +76,15 @@ export class RecorderReactNativeSDK {
|
|
|
71
76
|
if (!this.isRecording) {
|
|
72
77
|
return;
|
|
73
78
|
}
|
|
79
|
+
|
|
80
|
+
// Buffer-only mode (no active debug session): persist locally.
|
|
81
|
+
if (!this.sessionId && this.crashBuffer && this.bufferingEnabled) {
|
|
82
|
+
void this.crashBuffer.appendEvent({
|
|
83
|
+
ts: event.timestamp,
|
|
84
|
+
event
|
|
85
|
+
}, this.bufferWindowMs);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
74
88
|
if (this.socketService) {
|
|
75
89
|
logger.debug('RecorderReactNativeSDK', 'Sending to socket service', event);
|
|
76
90
|
// Skip packing to avoid blob creation issues in Hermes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SessionType","logger","ScreenRecorder","GestureRecorder","NavigationTracker","RecorderReactNativeSDK","isRecording","recordedEvents","sessionId","sessionType","MANUAL","constructor","screenRecorder","gestureRecorder","navigationTracker","init","config","socketService","start","Error","recordScreen","recordGestures","recordNavigation","stop","close","setNavigationRef","ref","setViewShotRef","recordEvent","event","debug","send","eventType","type","
|
|
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":[]}
|
|
@@ -42,6 +42,28 @@ export class ApiService {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Create a new error span session
|
|
47
|
+
* @param request - Session create error span request data
|
|
48
|
+
* @param signal - Optional AbortSignal for request cancellation
|
|
49
|
+
*/
|
|
50
|
+
async createErrorSession(request, signal) {
|
|
51
|
+
return this.makeRequest('/debug-sessions/error-span/start', 'POST', request, signal);
|
|
52
|
+
}
|
|
53
|
+
async updateSessionAttributes(sessionId, requestBody, signal) {
|
|
54
|
+
return this.makeRequest(`/debug-sessions/${sessionId}`, 'PATCH', requestBody, signal);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Export events to the session debugger API
|
|
59
|
+
* @param sessionId - ID of the session to export events
|
|
60
|
+
* @param requestBody - Request body containing events
|
|
61
|
+
* @param signal - Optional AbortSignal for request cancellation
|
|
62
|
+
*/
|
|
63
|
+
async exportEvents(sessionId, requestBody, signal) {
|
|
64
|
+
return this.makeRequest(`/debug-sessions/${sessionId}/rrweb-events`, 'POST', requestBody, signal);
|
|
65
|
+
}
|
|
66
|
+
|
|
45
67
|
/**
|
|
46
68
|
* Make a request to the session debugger API
|
|
47
69
|
* @param path - API endpoint path (relative to the base URL)
|
|
@@ -140,8 +162,8 @@ export class ApiService {
|
|
|
140
162
|
}
|
|
141
163
|
|
|
142
164
|
/**
|
|
143
|
-
|
|
144
|
-
|
|
165
|
+
* Check debug session should be started remotely
|
|
166
|
+
*/
|
|
145
167
|
async checkRemoteSession(requestBody, signal) {
|
|
146
168
|
return this.makeRequest('/remote-debug-session/check', 'POST', requestBody, signal);
|
|
147
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ApiService","baseUrl","constructor","config","apiKey","apiBaseUrl","exporterEndpoint","init","updateConfigs","setApiKey","makeRequest","path","method","body","
|
|
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":[]}
|