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