@multiplayer-app/session-recorder-react-native 1.3.4 → 1.3.6
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/android/src/main/java/com/sessionrecordernative/SessionRecorderNativeModule.kt +193 -65
- package/ios/SessionRecorderNative.swift +218 -130
- package/lib/module/config/defaults.js +1 -1
- package/lib/module/config/defaults.js.map +1 -1
- package/lib/module/patch/fetch.js +4 -15
- package/lib/module/patch/fetch.js.map +1 -1
- package/lib/module/recorder/screenRecorder.js +24 -35
- package/lib/module/recorder/screenRecorder.js.map +1 -1
- package/lib/module/services/{screenMaskingService.js → screenRecordingService.js} +12 -12
- package/lib/module/services/screenRecordingService.js.map +1 -0
- package/lib/typescript/src/recorder/screenRecorder.d.ts +2 -6
- package/lib/typescript/src/recorder/screenRecorder.d.ts.map +1 -1
- package/lib/typescript/src/services/{screenMaskingService.d.ts → screenRecordingService.d.ts} +8 -8
- package/lib/typescript/src/services/screenRecordingService.d.ts.map +1 -0
- package/package.json +4 -3
- package/src/config/defaults.ts +1 -1
- package/src/patch/fetch.ts +4 -17
- package/src/recorder/screenRecorder.ts +30 -47
- package/src/services/{screenMaskingService.ts → screenRecordingService.ts} +16 -16
- package/lib/module/services/screenMaskingService.js.map +0 -1
- package/lib/typescript/src/services/screenMaskingService.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import SessionRecorderNative, { type MaskingOptions } from '../native/SessionRecorderNative';
|
|
2
2
|
import { logger } from '../utils';
|
|
3
3
|
|
|
4
|
-
export interface
|
|
4
|
+
export interface ScreenRecordingConfig {
|
|
5
5
|
/** Whether screen masking is enabled */
|
|
6
6
|
enabled: boolean;
|
|
7
7
|
/** Whether to mask text inputs (UITextField, UITextView, React Native text components) */
|
|
@@ -18,12 +18,12 @@ export interface ScreenMaskingConfig {
|
|
|
18
18
|
maskSandboxedViews?: boolean;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
export class
|
|
22
|
-
private config:
|
|
21
|
+
export class ScreenRecordingService {
|
|
22
|
+
private config: ScreenRecordingConfig;
|
|
23
23
|
private isAvailable: boolean = false;
|
|
24
24
|
|
|
25
25
|
constructor(
|
|
26
|
-
config:
|
|
26
|
+
config: ScreenRecordingConfig = {
|
|
27
27
|
enabled: true,
|
|
28
28
|
maskTextInputs: true,
|
|
29
29
|
maskImages: false,
|
|
@@ -49,20 +49,20 @@ export class ScreenMaskingService {
|
|
|
49
49
|
) {
|
|
50
50
|
this.isAvailable = true;
|
|
51
51
|
logger.info(
|
|
52
|
-
'
|
|
52
|
+
'ScreenRecordingService',
|
|
53
53
|
'Screen masking native module is available'
|
|
54
54
|
);
|
|
55
55
|
} else {
|
|
56
56
|
this.isAvailable = false;
|
|
57
57
|
logger.warn(
|
|
58
|
-
'
|
|
58
|
+
'ScreenRecordingService',
|
|
59
59
|
'Screen masking native module is not available - auto-linking may still be in progress'
|
|
60
60
|
);
|
|
61
61
|
}
|
|
62
62
|
} catch (error) {
|
|
63
63
|
this.isAvailable = false;
|
|
64
64
|
logger.error(
|
|
65
|
-
'
|
|
65
|
+
'ScreenRecordingService',
|
|
66
66
|
'Error checking screen masking availability:',
|
|
67
67
|
error
|
|
68
68
|
);
|
|
@@ -75,7 +75,7 @@ export class ScreenMaskingService {
|
|
|
75
75
|
async captureMaskedScreen(options: MaskingOptions): Promise<string | null> {
|
|
76
76
|
if (!this.isAvailable || !this.config.enabled) {
|
|
77
77
|
logger.warn(
|
|
78
|
-
'
|
|
78
|
+
'ScreenRecordingService',
|
|
79
79
|
'Screen masking is not available or disabled'
|
|
80
80
|
);
|
|
81
81
|
return null;
|
|
@@ -91,7 +91,7 @@ export class ScreenMaskingService {
|
|
|
91
91
|
return maskedImageBase64;
|
|
92
92
|
} catch (error) {
|
|
93
93
|
logger.error(
|
|
94
|
-
'
|
|
94
|
+
'ScreenRecordingService',
|
|
95
95
|
'Failed to capture masked screen:',
|
|
96
96
|
error
|
|
97
97
|
);
|
|
@@ -105,7 +105,7 @@ export class ScreenMaskingService {
|
|
|
105
105
|
async captureMaskedScreenBasic(): Promise<string | null> {
|
|
106
106
|
if (!this.isAvailable || !this.config.enabled) {
|
|
107
107
|
logger.warn(
|
|
108
|
-
'
|
|
108
|
+
'ScreenRecordingService',
|
|
109
109
|
'Screen masking is not available or disabled'
|
|
110
110
|
);
|
|
111
111
|
return null;
|
|
@@ -116,7 +116,7 @@ export class ScreenMaskingService {
|
|
|
116
116
|
return maskedImageBase64;
|
|
117
117
|
} catch (error) {
|
|
118
118
|
logger.error(
|
|
119
|
-
'
|
|
119
|
+
'ScreenRecordingService',
|
|
120
120
|
'Failed to capture masked screen (basic):',
|
|
121
121
|
error
|
|
122
122
|
);
|
|
@@ -127,25 +127,25 @@ export class ScreenMaskingService {
|
|
|
127
127
|
/**
|
|
128
128
|
* Update the masking configuration
|
|
129
129
|
*/
|
|
130
|
-
updateConfig(config: Partial<
|
|
130
|
+
updateConfig(config: Partial<ScreenRecordingConfig>): void {
|
|
131
131
|
this.config = { ...this.config, ...config };
|
|
132
|
-
logger.info('
|
|
132
|
+
logger.info('ScreenRecordingService', 'Screen masking configuration updated');
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
/**
|
|
136
136
|
* Check if screen masking is available
|
|
137
137
|
*/
|
|
138
|
-
|
|
138
|
+
isScreenRecordingAvailable(): boolean {
|
|
139
139
|
return this.isAvailable && this.config.enabled;
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
/**
|
|
143
143
|
* Get the current configuration
|
|
144
144
|
*/
|
|
145
|
-
getConfig():
|
|
145
|
+
getConfig(): ScreenRecordingConfig {
|
|
146
146
|
return { ...this.config };
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
// Create a singleton instance
|
|
151
|
-
export const
|
|
151
|
+
export const screenRecordingService = new ScreenRecordingService();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["SessionRecorderNative","logger","ScreenMaskingService","isAvailable","constructor","config","enabled","maskTextInputs","maskImages","maskButtons","maskLabels","maskWebViews","maskSandboxedViews","checkAvailability","captureAndMask","info","warn","error","captureMaskedScreen","options","maskingOptions","maskedImageBase64","captureAndMaskWithOptions","captureMaskedScreenBasic","updateConfig","isScreenMaskingAvailable","getConfig","screenMaskingService"],"sourceRoot":"../../../src","sources":["services/screenMaskingService.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"screenMaskingService.d.ts","sourceRoot":"","sources":["../../../../src/services/screenMaskingService.ts"],"names":[],"mappings":"AAAA,OAA8B,EAAE,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAG7F,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,0FAA0F;IAC1F,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0FAA0F;IAC1F,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAkB;gBAGnC,MAAM,GAAE,mBAQP;IAMH;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA2B1E;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsBxD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAKxD;;OAEG;IACH,wBAAwB,IAAI,OAAO;IAInC;;OAEG;IACH,SAAS,IAAI,mBAAmB;CAGjC;AAGD,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}
|