@multiplayer-app/session-recorder-react-native 1.0.1-beta.13 → 1.0.1-beta.15

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 (38) hide show
  1. package/android/src/main/java/com/sessionrecordernative/SessionRecorderNativeModule.kt +1 -9
  2. package/android/src/main/java/com/sessionrecordernative/SessionRecorderNativePackage.kt +1 -1
  3. package/ios/SessionRecorderNative.mm +0 -1
  4. package/ios/SessionRecorderNative.swift +0 -10
  5. package/lib/module/{SessionRecorderNativeSpec.js → NativeSessionRecorderModule.js} +1 -1
  6. package/lib/module/NativeSessionRecorderModule.js.map +1 -0
  7. package/lib/module/NativeSessionRecorderModuleSpec.js +5 -0
  8. package/lib/module/NativeSessionRecorderModuleSpec.js.map +1 -0
  9. package/lib/module/NativeSessionRecorderNative.js +5 -0
  10. package/lib/module/NativeSessionRecorderNative.js.map +1 -0
  11. package/lib/module/index.js +0 -3
  12. package/lib/module/index.js.map +1 -1
  13. package/lib/module/native/SessionRecorderNative.js +9 -12
  14. package/lib/module/native/SessionRecorderNative.js.map +1 -1
  15. package/lib/module/services/screenMaskingService.js +1 -1
  16. package/lib/module/services/screenMaskingService.js.map +1 -1
  17. package/lib/typescript/src/{SessionRecorderNativeSpec.d.ts → NativeSessionRecorderModule.d.ts} +13 -13
  18. package/lib/typescript/src/NativeSessionRecorderModule.d.ts.map +1 -0
  19. package/lib/typescript/src/NativeSessionRecorderModuleSpec.d.ts +25 -0
  20. package/lib/typescript/src/NativeSessionRecorderModuleSpec.d.ts.map +1 -0
  21. package/lib/typescript/src/NativeSessionRecorderNative.d.ts +25 -0
  22. package/lib/typescript/src/NativeSessionRecorderNative.d.ts.map +1 -0
  23. package/lib/typescript/src/index.d.ts +0 -1
  24. package/lib/typescript/src/index.d.ts.map +1 -1
  25. package/lib/typescript/src/native/SessionRecorderNative.d.ts +3 -1
  26. package/lib/typescript/src/native/SessionRecorderNative.d.ts.map +1 -1
  27. package/lib/typescript/src/services/screenMaskingService.d.ts +1 -1
  28. package/lib/typescript/src/services/screenMaskingService.d.ts.map +1 -1
  29. package/package.json +2 -2
  30. package/react-native.config.js +14 -0
  31. package/src/NativeSessionRecorderModule.ts +33 -0
  32. package/src/NativeSessionRecorderModuleSpec.ts +33 -0
  33. package/src/{SessionRecorderNativeSpec.ts → NativeSessionRecorderNative.ts} +13 -13
  34. package/src/index.ts +0 -2
  35. package/src/native/SessionRecorderNative.ts +11 -13
  36. package/src/services/screenMaskingService.ts +1 -3
  37. package/lib/module/SessionRecorderNativeSpec.js.map +0 -1
  38. package/lib/typescript/src/SessionRecorderNativeSpec.d.ts.map +0 -1
@@ -25,7 +25,7 @@ import com.facebook.react.module.annotations.ReactModule
25
25
 
26
26
  @ReactModule(name = SessionRecorderNativeModule.NAME)
27
27
  class SessionRecorderNativeModule(reactContext: ReactApplicationContext) :
28
- ReactContextBaseJavaModule(reactContext) {
28
+ ReactContextBaseJavaModule(reactContext) {
29
29
 
30
30
  override fun getName(): String {
31
31
  return NAME
@@ -43,7 +43,6 @@ class SessionRecorderNativeModule(reactContext: ReactApplicationContext) :
43
43
  // Gesture recording state
44
44
  private var isRecording = false
45
45
  private var rootView: ViewGroup? = null
46
- private var gestureCallback: Callback? = null
47
46
  private var originalWindowCallback: android.view.Window.Callback? = null
48
47
  private var initialTouchTime = 0L
49
48
  private var initialTouchX = 0f
@@ -126,11 +125,6 @@ class SessionRecorderNativeModule(reactContext: ReactApplicationContext) :
126
125
  promise.resolve(isRecording)
127
126
  }
128
127
 
129
- @ReactMethod
130
- fun setGestureCallback(callback: Callback) {
131
- this.gestureCallback = callback
132
- }
133
-
134
128
  @ReactMethod
135
129
  fun recordGesture(
136
130
  gestureType: String,
@@ -150,7 +144,6 @@ class SessionRecorderNativeModule(reactContext: ReactApplicationContext) :
150
144
  }
151
145
 
152
146
  sendEvent("onGestureDetected", gestureEvent)
153
- gestureCallback?.invoke(gestureEvent)
154
147
  }
155
148
 
156
149
  private fun setupGestureListener(activity: Activity) {
@@ -333,7 +326,6 @@ class SessionRecorderNativeModule(reactContext: ReactApplicationContext) :
333
326
  }
334
327
 
335
328
  sendEvent("onGestureDetected", gestureEvent)
336
- gestureCallback?.invoke(gestureEvent)
337
329
  }
338
330
 
339
331
  private fun createTapMetadata(): WritableMap {
@@ -25,7 +25,7 @@ class SessionRecorderNativePackage : BaseReactPackage() {
25
25
  false, // canOverrideExistingModule
26
26
  false, // needsEagerInit
27
27
  false, // isCxxModule
28
- true // isTurboModule
28
+ false // isTurboModule
29
29
  )
30
30
  moduleInfos
31
31
  }
@@ -17,7 +17,6 @@ RCT_EXTERN_METHOD(stopGestureRecording:(RCTPromiseResolveBlock)resolve
17
17
  reject:(RCTPromiseRejectBlock)reject)
18
18
  RCT_EXTERN_METHOD(isGestureRecordingActive:(RCTPromiseResolveBlock)resolve
19
19
  reject:(RCTPromiseRejectBlock)reject)
20
- RCT_EXTERN_METHOD(setGestureCallback:(RCTResponseSenderBlock)callback)
21
20
  RCT_EXTERN_METHOD(recordGesture:(NSString *)gestureType
22
21
  x:(nonnull NSNumber *)x
23
22
  y:(nonnull NSNumber *)y
@@ -120,7 +120,6 @@ class SessionRecorderNative: RCTEventEmitter, UIGestureRecognizerDelegate {
120
120
 
121
121
  // MARK: - Gesture recording state
122
122
  private var isRecording = false
123
- private var gestureCallback: RCTResponseSenderBlock?
124
123
  private var rootViewController: UIViewController?
125
124
 
126
125
  private var tapGestureRecognizer: UITapGestureRecognizer?
@@ -168,10 +167,6 @@ class SessionRecorderNative: RCTEventEmitter, UIGestureRecognizerDelegate {
168
167
  resolve(self.isRecording)
169
168
  }
170
169
 
171
- @objc func setGestureCallback(_ callback: @escaping RCTResponseSenderBlock) {
172
- self.gestureCallback = callback
173
- }
174
-
175
170
  @objc func recordGesture(_ gestureType: String, x: NSNumber, y: NSNumber, target: String?, metadata: NSDictionary?) {
176
171
  let gestureEvent: [String: Any] = [
177
172
  "type": gestureType,
@@ -183,7 +178,6 @@ class SessionRecorderNative: RCTEventEmitter, UIGestureRecognizerDelegate {
183
178
  ]
184
179
 
185
180
  self.sendEvent(withName: "onGestureDetected", body: gestureEvent)
186
- if let cb = gestureCallback { cb([gestureEvent]) }
187
181
  }
188
182
 
189
183
  private func updateConfiguration(from options: NSDictionary) {
@@ -653,7 +647,6 @@ class SessionRecorderNative: RCTEventEmitter, UIGestureRecognizerDelegate {
653
647
  ]
654
648
 
655
649
  self.sendEvent(withName: "onGestureDetected", body: gestureEvent)
656
- if let cb = gestureCallback { cb([gestureEvent]) }
657
650
  }
658
651
 
659
652
  @objc private func handlePan(_ gesture: UIPanGestureRecognizer) {
@@ -693,7 +686,6 @@ class SessionRecorderNative: RCTEventEmitter, UIGestureRecognizerDelegate {
693
686
  ]
694
687
 
695
688
  self.sendEvent(withName: "onGestureDetected", body: gestureEvent)
696
- if let cb = gestureCallback { cb([gestureEvent]) }
697
689
  }
698
690
 
699
691
  @objc private func handleLongPress(_ gesture: UILongPressGestureRecognizer) {
@@ -722,7 +714,6 @@ class SessionRecorderNative: RCTEventEmitter, UIGestureRecognizerDelegate {
722
714
  ]
723
715
 
724
716
  self.sendEvent(withName: "onGestureDetected", body: gestureEvent)
725
- if let cb = gestureCallback { cb([gestureEvent]) }
726
717
  }
727
718
 
728
719
  @objc private func handlePinch(_ gesture: UIPinchGestureRecognizer) {
@@ -753,7 +744,6 @@ class SessionRecorderNative: RCTEventEmitter, UIGestureRecognizerDelegate {
753
744
  ]
754
745
 
755
746
  self.sendEvent(withName: "onGestureDetected", body: gestureEvent)
756
- if let cb = gestureCallback { cb([gestureEvent]) }
757
747
  }
758
748
 
759
749
  // MARK: - UIGestureRecognizerDelegate
@@ -2,4 +2,4 @@
2
2
 
3
3
  import { TurboModuleRegistry } from 'react-native';
4
4
  export default TurboModuleRegistry.getEnforcing('SessionRecorderNative');
5
- //# sourceMappingURL=SessionRecorderNativeSpec.js.map
5
+ //# sourceMappingURL=NativeSessionRecorderModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeSessionRecorderModule.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AA+BlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,uBAAuB,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from 'react-native';
4
+ export default TurboModuleRegistry.getEnforcing('SessionRecorderNative');
5
+ //# sourceMappingURL=NativeSessionRecorderModuleSpec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeSessionRecorderModuleSpec.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AA+BlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,uBAAuB,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from 'react-native';
4
+ export default TurboModuleRegistry.getEnforcing('SessionRecorderNative');
5
+ //# sourceMappingURL=NativeSessionRecorderNative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeSessionRecorderNative.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AA+BlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,uBAAuB,CAAC","ignoreList":[]}
@@ -6,9 +6,6 @@ export * from '@multiplayer-app/session-recorder-common';
6
6
  export * from "./context/SessionRecorderContext.js";
7
7
  export * from "./context/useSessionRecorderStore.js";
8
8
 
9
- // Export TurboModule spec for codegen
10
- export * from "./SessionRecorderNativeSpec.js";
11
-
12
9
  // Export the class for type checking
13
10
  export { SessionRecorder };
14
11
  // Export the instance as default
@@ -1 +1 @@
1
- {"version":3,"names":["SessionRecorder"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,OAAO,kBAAS;AAChB,OAAOA,eAAe,MAAM,uBAAoB;AAChD,cAAc,0CAA0C;AACxD,cAAc,qCAAkC;AAChD,cAAc,sCAAmC;;AAEjD;AACA,cAAc,gCAA6B;;AAE3C;AACA,SAASA,eAAe;AACxB;AACA,eAAeA,eAAe","ignoreList":[]}
1
+ {"version":3,"names":["SessionRecorder"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,OAAO,kBAAS;AAChB,OAAOA,eAAe,MAAM,uBAAoB;AAChD,cAAc,0CAA0C;AACxD,cAAc,qCAAkC;AAChD,cAAc,sCAAmC;;AAGjD;AACA,SAASA,eAAe;AACxB;AACA,eAAeA,eAAe","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { Platform, NativeEventEmitter } from 'react-native';
4
- import SessionRecorderNative from "../SessionRecorderNativeSpec.js";
4
+ import SessionRecorderNative from "../NativeSessionRecorderModule.js";
5
5
 
6
6
  // Check if we're on web platform
7
7
  const isWeb = Platform.OS === 'web';
@@ -48,17 +48,6 @@ const SafeSessionRecorderNative = {
48
48
  }
49
49
  return SessionRecorderNative.isGestureRecordingActive();
50
50
  },
51
- setGestureCallback(callback) {
52
- if (isWeb || !SessionRecorderNative) {
53
- throw new Error('SessionRecorderNative is not available on web platform');
54
- }
55
- // Native side will also invoke callback if provided; also subscribe to events here
56
- try {
57
- SessionRecorderNative.setGestureCallback(callback);
58
- } catch {}
59
- eventEmitter?.removeAllListeners('onGestureDetected');
60
- eventEmitter?.addListener('onGestureDetected', callback);
61
- },
62
51
  recordGesture(gestureType, x, y, target, metadata) {
63
52
  if (isWeb || !SessionRecorderNative) {
64
53
  throw new Error('SessionRecorderNative is not available on web platform');
@@ -72,6 +61,14 @@ const SafeSessionRecorderNative = {
72
61
  // Required for RN event emitter contracts
73
62
  }
74
63
  };
64
+ // Helper function to set gesture callback using event emitter pattern
65
+ export function setGestureCallback(callback) {
66
+ if (isWeb || !SessionRecorderNative) {
67
+ throw new Error('SessionRecorderNative is not available on web platform');
68
+ }
69
+ eventEmitter?.removeAllListeners('onGestureDetected');
70
+ eventEmitter?.addListener('onGestureDetected', callback);
71
+ }
75
72
  export default SafeSessionRecorderNative;
76
73
 
77
74
  // Export event emitter for gesture events to maintain previous API
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","NativeEventEmitter","SessionRecorderNative","isWeb","OS","eventEmitter","console","warn","info","SafeSessionRecorderNative","captureAndMask","Error","captureAndMaskWithOptions","options","startGestureRecording","stopGestureRecording","isGestureRecordingActive","setGestureCallback","callback","removeAllListeners","addListener","recordGesture","gestureType","x","y","target","metadata","_eventName","removeListeners","_count","gestureEventEmitter"],"sourceRoot":"../../../src","sources":["native/SessionRecorderNative.ts"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,kBAAkB,QAAQ,cAAc;AAC3D,OAAOC,qBAAqB,MAA0C,iCAA8B;;AAGpG;AACA,MAAMC,KAAK,GAAGH,QAAQ,CAACI,EAAE,KAAK,KAAK;;AAEnC;AACA,IAAIC,YAAY,GAAG,IAAIJ,kBAAkB,CAACC,qBAA4B,CAAC;;AAGvE;AACA,IAAI,CAACA,qBAAqB,IAAI,CAACC,KAAK,EAAE;EACpCG,OAAO,CAACC,IAAI,CACV,+FACF,CAAC;AACH,CAAC,MAAM,IAAIJ,KAAK,EAAE;EAChBG,OAAO,CAACE,IAAI,CACV,wEACF,CAAC;AACH;;AAEA;AACA,MAAMC,yBAA+B,GAAG;EACtC,MAAMC,cAAcA,CAAA,EAAoB;IACtC,IAAIP,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,OAAOT,qBAAqB,CAACQ,cAAc,CAAC,CAAC;EAC/C,CAAC;EAED,MAAME,yBAAyBA,CAACC,OAAuB,EAAmB;IACxE,IAAIV,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,OAAOT,qBAAqB,CAACU,yBAAyB,CAACC,OAAO,CAAC;EACjE,CAAC;EAED,MAAMC,qBAAqBA,CAAA,EAAkB;IAC3C,IAAIX,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,OAAOT,qBAAqB,CAACY,qBAAqB,CAAC,CAAC;EACtD,CAAC;EAED,MAAMC,oBAAoBA,CAAA,EAAkB;IAC1C,IAAIZ,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,OAAOT,qBAAqB,CAACa,oBAAoB,CAAC,CAAC;EACrD,CAAC;EAED,MAAMC,wBAAwBA,CAAA,EAAqB;IACjD,IAAIb,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,OAAOT,qBAAqB,CAACc,wBAAwB,CAAC,CAAC;EACzD,CAAC;EAEDC,kBAAkBA,CAACC,QAA8B,EAAQ;IACvD,IAAIf,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA;IACA,IAAI;MACFT,qBAAqB,CAACe,kBAAkB,CAACC,QAAe,CAAC;IAC3D,CAAC,CAAC,MAAM,CAAE;IACVb,YAAY,EAAEc,kBAAkB,CAAC,mBAAmB,CAAC;IACrDd,YAAY,EAAEe,WAAW,CAAC,mBAAmB,EAAEF,QAAQ,CAAC;EAC1D,CAAC;EAEDG,aAAaA,CAACC,WAAmB,EAAEC,CAAS,EAAEC,CAAS,EAAEC,MAAe,EAAEC,QAAc,EAAQ;IAC9F,IAAIvB,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACAT,qBAAqB,CAACmB,aAAa,CAACC,WAAW,EAAEC,CAAC,EAAEC,CAAC,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EAC1E,CAAC;EAEDN,WAAWA,CAACO,UAAkB,EAAQ;IACpC;EAAA,CACD;EAEDC,eAAeA,CAACC,MAAc,EAAQ;IACpC;EAAA;AAEJ,CAAC;AA+BD,eAAepB,yBAAyB;;AAExC;AACA,OAAO,MAAMqB,mBAAmB,GAAGzB,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["Platform","NativeEventEmitter","SessionRecorderNative","isWeb","OS","eventEmitter","console","warn","info","SafeSessionRecorderNative","captureAndMask","Error","captureAndMaskWithOptions","options","startGestureRecording","stopGestureRecording","isGestureRecordingActive","recordGesture","gestureType","x","y","target","metadata","addListener","_eventName","removeListeners","_count","setGestureCallback","callback","removeAllListeners","gestureEventEmitter"],"sourceRoot":"../../../src","sources":["native/SessionRecorderNative.ts"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,kBAAkB,QAAQ,cAAc;AAC3D,OAAOC,qBAAqB,MAA0C,mCAAgC;;AAGtG;AACA,MAAMC,KAAK,GAAGH,QAAQ,CAACI,EAAE,KAAK,KAAK;;AAEnC;AACA,IAAIC,YAAY,GAAG,IAAIJ,kBAAkB,CAACC,qBAA4B,CAAC;;AAGvE;AACA,IAAI,CAACA,qBAAqB,IAAI,CAACC,KAAK,EAAE;EACpCG,OAAO,CAACC,IAAI,CACV,+FACF,CAAC;AACH,CAAC,MAAM,IAAIJ,KAAK,EAAE;EAChBG,OAAO,CAACE,IAAI,CACV,wEACF,CAAC;AACH;;AAEA;AACA,MAAMC,yBAA+B,GAAG;EACtC,MAAMC,cAAcA,CAAA,EAAoB;IACtC,IAAIP,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,OAAOT,qBAAqB,CAACQ,cAAc,CAAC,CAAC;EAC/C,CAAC;EAED,MAAME,yBAAyBA,CAACC,OAAuB,EAAmB;IACxE,IAAIV,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,OAAOT,qBAAqB,CAACU,yBAAyB,CAACC,OAAO,CAAC;EACjE,CAAC;EAED,MAAMC,qBAAqBA,CAAA,EAAkB;IAC3C,IAAIX,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,OAAOT,qBAAqB,CAACY,qBAAqB,CAAC,CAAC;EACtD,CAAC;EAED,MAAMC,oBAAoBA,CAAA,EAAkB;IAC1C,IAAIZ,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,OAAOT,qBAAqB,CAACa,oBAAoB,CAAC,CAAC;EACrD,CAAC;EAED,MAAMC,wBAAwBA,CAAA,EAAqB;IACjD,IAAIb,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,OAAOT,qBAAqB,CAACc,wBAAwB,CAAC,CAAC;EACzD,CAAC;EAEDC,aAAaA,CAACC,WAAmB,EAAEC,CAAS,EAAEC,CAAS,EAAEC,MAAe,EAAEC,QAAc,EAAQ;IAC9F,IAAInB,KAAK,IAAI,CAACD,qBAAqB,EAAE;MACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACAT,qBAAqB,CAACe,aAAa,CAACC,WAAW,EAAEC,CAAC,EAAEC,CAAC,EAAEC,MAAM,EAAEC,QAAQ,CAAC;EAC1E,CAAC;EAEDC,WAAWA,CAACC,UAAkB,EAAQ;IACpC;EAAA,CACD;EAEDC,eAAeA,CAACC,MAAc,EAAQ;IACpC;EAAA;AAEJ,CAAC;AA+BD;AACA,OAAO,SAASC,kBAAkBA,CAACC,QAA6C,EAAQ;EACtF,IAAIzB,KAAK,IAAI,CAACD,qBAAqB,EAAE;IACnC,MAAM,IAAIS,KAAK,CAAC,wDAAwD,CAAC;EAC3E;EACAN,YAAY,EAAEwB,kBAAkB,CAAC,mBAAmB,CAAC;EACrDxB,YAAY,EAAEkB,WAAW,CAAC,mBAAmB,EAAEK,QAAe,CAAC;AACjE;AAEA,eAAenB,yBAAyB;;AAExC;AACA,OAAO,MAAMqB,mBAAmB,GAAGzB,YAAY","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import SessionRecorderNative from "../SessionRecorderNativeSpec.js";
3
+ import SessionRecorderNative from "../native/SessionRecorderNative.js";
4
4
  import { logger } from "../utils/index.js";
5
5
  export class ScreenMaskingService {
6
6
  isAvailable = false;
@@ -1 +1 @@
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
+ {"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,16 +1,5 @@
1
1
  import type { TurboModule } from 'react-native';
2
- export interface Spec extends TurboModule {
3
- captureAndMask(): Promise<string>;
4
- captureAndMaskWithOptions(options: MaskingOptions): Promise<string>;
5
- startGestureRecording(): Promise<void>;
6
- stopGestureRecording(): Promise<void>;
7
- isGestureRecordingActive(): Promise<boolean>;
8
- setGestureCallback(callback: (event: any) => void): void;
9
- recordGesture(gestureType: string, x: number, y: number, target?: string, metadata?: any): void;
10
- addListener(eventName: string): void;
11
- removeListeners(count: number): void;
12
- }
13
- export interface MaskingOptions {
2
+ export type MaskingOptions = Readonly<{
14
3
  maskTextInputs?: boolean;
15
4
  maskImages?: boolean;
16
5
  maskButtons?: boolean;
@@ -19,7 +8,18 @@ export interface MaskingOptions {
19
8
  maskSandboxedViews?: boolean;
20
9
  quality?: number;
21
10
  scale?: number;
11
+ noCaptureLabel?: string;
12
+ }>;
13
+ export interface Spec extends TurboModule {
14
+ captureAndMask(): Promise<string>;
15
+ captureAndMaskWithOptions(options: MaskingOptions): Promise<string>;
16
+ startGestureRecording(): Promise<void>;
17
+ stopGestureRecording(): Promise<void>;
18
+ isGestureRecordingActive(): Promise<boolean>;
19
+ recordGesture(gestureType: string, x: number, y: number, target?: string, metadata?: Object): void;
20
+ addListener(eventName: string): void;
21
+ removeListeners(count: number): void;
22
22
  }
23
23
  declare const _default: Spec;
24
24
  export default _default;
25
- //# sourceMappingURL=SessionRecorderNativeSpec.d.ts.map
25
+ //# sourceMappingURL=NativeSessionRecorderModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSessionRecorderModule.d.ts","sourceRoot":"","sources":["../../../src/NativeSessionRecorderModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CAAC;IACR,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;wBAEiF,IAAI;AAAtF,wBAAuF"}
@@ -0,0 +1,25 @@
1
+ import type { TurboModule } from 'react-native';
2
+ export type MaskingOptions = Readonly<{
3
+ maskTextInputs?: boolean;
4
+ maskImages?: boolean;
5
+ maskButtons?: boolean;
6
+ maskLabels?: boolean;
7
+ maskWebViews?: boolean;
8
+ maskSandboxedViews?: boolean;
9
+ quality?: number;
10
+ scale?: number;
11
+ noCaptureLabel?: string;
12
+ }>;
13
+ export interface Spec extends TurboModule {
14
+ captureAndMask(): Promise<string>;
15
+ captureAndMaskWithOptions(options: MaskingOptions): Promise<string>;
16
+ startGestureRecording(): Promise<void>;
17
+ stopGestureRecording(): Promise<void>;
18
+ isGestureRecordingActive(): Promise<boolean>;
19
+ recordGesture(gestureType: string, x: number, y: number, target?: string, metadata?: Object): void;
20
+ addListener(eventName: string): void;
21
+ removeListeners(count: number): void;
22
+ }
23
+ declare const _default: Spec;
24
+ export default _default;
25
+ //# sourceMappingURL=NativeSessionRecorderModuleSpec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSessionRecorderModuleSpec.d.ts","sourceRoot":"","sources":["../../../src/NativeSessionRecorderModuleSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CAAC;IACR,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;wBAEiF,IAAI;AAAtF,wBAAuF"}
@@ -0,0 +1,25 @@
1
+ import type { TurboModule } from 'react-native';
2
+ export type MaskingOptions = Readonly<{
3
+ maskTextInputs?: boolean;
4
+ maskImages?: boolean;
5
+ maskButtons?: boolean;
6
+ maskLabels?: boolean;
7
+ maskWebViews?: boolean;
8
+ maskSandboxedViews?: boolean;
9
+ quality?: number;
10
+ scale?: number;
11
+ noCaptureLabel?: string;
12
+ }>;
13
+ export interface Spec extends TurboModule {
14
+ captureAndMask(): Promise<string>;
15
+ captureAndMaskWithOptions(options: MaskingOptions): Promise<string>;
16
+ startGestureRecording(): Promise<void>;
17
+ stopGestureRecording(): Promise<void>;
18
+ isGestureRecordingActive(): Promise<boolean>;
19
+ recordGesture(gestureType: string, x: number, y: number, target?: string, metadata?: Object): void;
20
+ addListener(eventName: string): void;
21
+ removeListeners(count: number): void;
22
+ }
23
+ declare const _default: Spec;
24
+ export default _default;
25
+ //# sourceMappingURL=NativeSessionRecorderNative.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSessionRecorderNative.d.ts","sourceRoot":"","sources":["../../../src/NativeSessionRecorderNative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CAAC;IACR,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;;AAED,wBAA+E"}
@@ -3,7 +3,6 @@ import SessionRecorder from './session-recorder';
3
3
  export * from '@multiplayer-app/session-recorder-common';
4
4
  export * from './context/SessionRecorderContext';
5
5
  export * from './context/useSessionRecorderStore';
6
- export * from './SessionRecorderNativeSpec';
7
6
  export { SessionRecorder };
8
7
  export default SessionRecorder;
9
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAC;AACjB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,6BAA6B,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAC;AACjB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAIlD,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,eAAe,eAAe,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { NativeEventEmitter } from 'react-native';
2
- import { type Spec } from '../SessionRecorderNativeSpec';
2
+ import { type MaskingOptions, type Spec } from '../NativeSessionRecorderModule';
3
3
  declare const SafeSessionRecorderNative: Spec;
4
4
  export interface NativeGestureEvent {
5
5
  type: 'tap' | 'pan_start' | 'pan_move' | 'pan_end' | 'long_press' | 'pinch' | 'swipe';
@@ -22,6 +22,8 @@ export interface NativeGestureEvent {
22
22
  distance?: number;
23
23
  };
24
24
  }
25
+ export declare function setGestureCallback(callback: (event: NativeGestureEvent) => void): void;
25
26
  export default SafeSessionRecorderNative;
26
27
  export declare const gestureEventEmitter: NativeEventEmitter<Readonly<Record<string, readonly Object[]>>>;
28
+ export type { MaskingOptions };
27
29
  //# sourceMappingURL=SessionRecorderNative.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SessionRecorderNative.d.ts","sourceRoot":"","sources":["../../../../src/native/SessionRecorderNative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAA8B,EAAuB,KAAK,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAsBrG,QAAA,MAAM,yBAAyB,EAAE,IA8DhC,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EACF,KAAK,GACL,WAAW,GACX,UAAU,GACV,SAAS,GACT,YAAY,GACZ,OAAO,GACP,OAAO,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,eAAe,yBAAyB,CAAC;AAGzC,eAAO,MAAM,mBAAmB,iEAAe,CAAC"}
1
+ {"version":3,"file":"SessionRecorderNative.d.ts","sourceRoot":"","sources":["../../../../src/native/SessionRecorderNative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAA8B,EAAE,KAAK,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAsBvG,QAAA,MAAM,yBAAyB,EAAE,IAkDhC,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EACF,KAAK,GACL,WAAW,GACX,UAAU,GACV,SAAS,GACT,YAAY,GACZ,OAAO,GACP,OAAO,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAGD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI,CAMtF;AAED,eAAe,yBAAyB,CAAC;AAGzC,eAAO,MAAM,mBAAmB,iEAAe,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type MaskingOptions } from '../SessionRecorderNativeSpec';
1
+ import { type MaskingOptions } from '../native/SessionRecorderNative';
2
2
  export interface ScreenMaskingConfig {
3
3
  /** Whether screen masking is enabled */
4
4
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"screenMaskingService.d.ts","sourceRoot":"","sources":["../../../../src/services/screenMaskingService.ts"],"names":[],"mappings":"AAAA,OAA8B,EAC5B,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AAGtC,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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplayer-app/session-recorder-react-native",
3
- "version": "1.0.1-beta.13",
3
+ "version": "1.0.1-beta.15",
4
4
  "description": "Multiplayer Fullstack Session Recorder for React Native",
5
5
  "author": {
6
6
  "name": "Multiplayer Software, Inc.",
@@ -196,7 +196,7 @@
196
196
  ]
197
197
  },
198
198
  "codegenConfig": {
199
- "name": "SessionRecorderNativeSpec",
199
+ "name": "NativeSessionRecorderModule",
200
200
  "type": "modules",
201
201
  "jsSrcsDir": "src",
202
202
  "android": {
@@ -0,0 +1,14 @@
1
+ module.exports = {
2
+ dependency: {
3
+ platforms: {
4
+ android: {
5
+ sourceDir: './android',
6
+ packageImportPath:
7
+ 'import com.sessionrecordernative.SessionRecorderNativePackage;',
8
+ },
9
+ ios: {
10
+ podspecPath: './SessionRecorderNative.podspec',
11
+ },
12
+ },
13
+ },
14
+ };
@@ -0,0 +1,33 @@
1
+ import type { TurboModule } from 'react-native';
2
+ import { TurboModuleRegistry } from 'react-native';
3
+
4
+ export type MaskingOptions = Readonly<{
5
+ maskTextInputs?: boolean;
6
+ maskImages?: boolean;
7
+ maskButtons?: boolean;
8
+ maskLabels?: boolean;
9
+ maskWebViews?: boolean;
10
+ maskSandboxedViews?: boolean;
11
+ quality?: number;
12
+ scale?: number;
13
+ noCaptureLabel?: string;
14
+ }>;
15
+
16
+ export interface Spec extends TurboModule {
17
+ captureAndMask(): Promise<string>;
18
+ captureAndMaskWithOptions(options: MaskingOptions): Promise<string>;
19
+ startGestureRecording(): Promise<void>;
20
+ stopGestureRecording(): Promise<void>;
21
+ isGestureRecordingActive(): Promise<boolean>;
22
+ recordGesture(
23
+ gestureType: string,
24
+ x: number,
25
+ y: number,
26
+ target?: string,
27
+ metadata?: Object,
28
+ ): void;
29
+ addListener(eventName: string): void;
30
+ removeListeners(count: number): void;
31
+ }
32
+
33
+ export default TurboModuleRegistry.getEnforcing<Spec>('SessionRecorderNative') as Spec;
@@ -0,0 +1,33 @@
1
+ import type { TurboModule } from 'react-native';
2
+ import { TurboModuleRegistry } from 'react-native';
3
+
4
+ export type MaskingOptions = Readonly<{
5
+ maskTextInputs?: boolean;
6
+ maskImages?: boolean;
7
+ maskButtons?: boolean;
8
+ maskLabels?: boolean;
9
+ maskWebViews?: boolean;
10
+ maskSandboxedViews?: boolean;
11
+ quality?: number;
12
+ scale?: number;
13
+ noCaptureLabel?: string;
14
+ }>;
15
+
16
+ export interface Spec extends TurboModule {
17
+ captureAndMask(): Promise<string>;
18
+ captureAndMaskWithOptions(options: MaskingOptions): Promise<string>;
19
+ startGestureRecording(): Promise<void>;
20
+ stopGestureRecording(): Promise<void>;
21
+ isGestureRecordingActive(): Promise<boolean>;
22
+ recordGesture(
23
+ gestureType: string,
24
+ x: number,
25
+ y: number,
26
+ target?: string,
27
+ metadata?: Object,
28
+ ): void;
29
+ addListener(eventName: string): void;
30
+ removeListeners(count: number): void;
31
+ }
32
+
33
+ export default TurboModuleRegistry.getEnforcing<Spec>('SessionRecorderNative') as Spec;
@@ -1,33 +1,33 @@
1
1
  import type { TurboModule } from 'react-native';
2
2
  import { TurboModuleRegistry } from 'react-native';
3
3
 
4
+ export type MaskingOptions = Readonly<{
5
+ maskTextInputs?: boolean;
6
+ maskImages?: boolean;
7
+ maskButtons?: boolean;
8
+ maskLabels?: boolean;
9
+ maskWebViews?: boolean;
10
+ maskSandboxedViews?: boolean;
11
+ quality?: number;
12
+ scale?: number;
13
+ noCaptureLabel?: string;
14
+ }>;
15
+
4
16
  export interface Spec extends TurboModule {
5
17
  captureAndMask(): Promise<string>;
6
18
  captureAndMaskWithOptions(options: MaskingOptions): Promise<string>;
7
19
  startGestureRecording(): Promise<void>;
8
20
  stopGestureRecording(): Promise<void>;
9
21
  isGestureRecordingActive(): Promise<boolean>;
10
- setGestureCallback(callback: (event: any) => void): void;
11
22
  recordGesture(
12
23
  gestureType: string,
13
24
  x: number,
14
25
  y: number,
15
26
  target?: string,
16
- metadata?: any,
27
+ metadata?: Object,
17
28
  ): void;
18
29
  addListener(eventName: string): void;
19
30
  removeListeners(count: number): void;
20
31
  }
21
32
 
22
- export interface MaskingOptions {
23
- maskTextInputs?: boolean;
24
- maskImages?: boolean;
25
- maskButtons?: boolean;
26
- maskLabels?: boolean;
27
- maskWebViews?: boolean;
28
- maskSandboxedViews?: boolean;
29
- quality?: number;
30
- scale?: number;
31
- }
32
-
33
33
  export default TurboModuleRegistry.getEnforcing<Spec>('SessionRecorderNative');
package/src/index.ts CHANGED
@@ -4,8 +4,6 @@ export * from '@multiplayer-app/session-recorder-common';
4
4
  export * from './context/SessionRecorderContext';
5
5
  export * from './context/useSessionRecorderStore';
6
6
 
7
- // Export TurboModule spec for codegen
8
- export * from './SessionRecorderNativeSpec';
9
7
 
10
8
  // Export the class for type checking
11
9
  export { SessionRecorder };
@@ -1,5 +1,5 @@
1
1
  import { Platform, NativeEventEmitter } from 'react-native';
2
- import SessionRecorderNative, { type MaskingOptions, type Spec } from '../SessionRecorderNativeSpec';
2
+ import SessionRecorderNative, { type MaskingOptions, type Spec } from '../NativeSessionRecorderModule';
3
3
 
4
4
 
5
5
  // Check if we're on web platform
@@ -57,18 +57,6 @@ const SafeSessionRecorderNative: Spec = {
57
57
  return SessionRecorderNative.isGestureRecordingActive();
58
58
  },
59
59
 
60
- setGestureCallback(callback: (event: any) => void): void {
61
- if (isWeb || !SessionRecorderNative) {
62
- throw new Error('SessionRecorderNative is not available on web platform');
63
- }
64
- // Native side will also invoke callback if provided; also subscribe to events here
65
- try {
66
- SessionRecorderNative.setGestureCallback(callback as any);
67
- } catch { }
68
- eventEmitter?.removeAllListeners('onGestureDetected');
69
- eventEmitter?.addListener('onGestureDetected', callback);
70
- },
71
-
72
60
  recordGesture(gestureType: string, x: number, y: number, target?: string, metadata?: any): void {
73
61
  if (isWeb || !SessionRecorderNative) {
74
62
  throw new Error('SessionRecorderNative is not available on web platform');
@@ -114,7 +102,17 @@ export interface NativeGestureEvent {
114
102
  };
115
103
  }
116
104
 
105
+ // Helper function to set gesture callback using event emitter pattern
106
+ export function setGestureCallback(callback: (event: NativeGestureEvent) => void): void {
107
+ if (isWeb || !SessionRecorderNative) {
108
+ throw new Error('SessionRecorderNative is not available on web platform');
109
+ }
110
+ eventEmitter?.removeAllListeners('onGestureDetected');
111
+ eventEmitter?.addListener('onGestureDetected', callback as any);
112
+ }
113
+
117
114
  export default SafeSessionRecorderNative;
118
115
 
119
116
  // Export event emitter for gesture events to maintain previous API
120
117
  export const gestureEventEmitter = eventEmitter;
118
+ export type { MaskingOptions };
@@ -1,6 +1,4 @@
1
- import SessionRecorderNative, {
2
- type MaskingOptions,
3
- } from '../SessionRecorderNativeSpec';
1
+ import SessionRecorderNative, { type MaskingOptions } from '../native/SessionRecorderNative';
4
2
  import { logger } from '../utils';
5
3
 
6
4
  export interface ScreenMaskingConfig {
@@ -1 +0,0 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["SessionRecorderNativeSpec.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AA+BlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,uBAAuB,CAAC","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRecorderNativeSpec.d.ts","sourceRoot":"","sources":["../../../src/SessionRecorderNativeSpec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACzD,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,GAAG,GACb,IAAI,CAAC;IACR,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;AAED,wBAA+E"}