@multiplayer-app/session-recorder-react-native 1.3.37 → 2.0.17-alpha.10

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 (280) hide show
  1. package/package.json +4 -4
  2. package/src/NativeSessionRecorderModule.ts +4 -2
  3. package/src/NativeSessionRecorderModuleSpec.ts +4 -2
  4. package/src/NativeSessionRecorderNative.ts +1 -1
  5. package/src/index.ts +0 -1
  6. package/src/otel/instrumentations/index.ts +22 -22
  7. package/src/session-recorder.ts +4 -0
  8. package/src/types/configs.ts +1 -2
  9. package/lib/module/NativeSessionRecorderModule.js +0 -5
  10. package/lib/module/NativeSessionRecorderModule.js.map +0 -1
  11. package/lib/module/NativeSessionRecorderModuleSpec.js +0 -5
  12. package/lib/module/NativeSessionRecorderModuleSpec.js.map +0 -1
  13. package/lib/module/NativeSessionRecorderNative.js +0 -5
  14. package/lib/module/NativeSessionRecorderNative.js.map +0 -1
  15. package/lib/module/components/ErrorBoundary.js +0 -32
  16. package/lib/module/components/ErrorBoundary.js.map +0 -1
  17. package/lib/module/components/ScreenRecorderView/ScreenRecorderView.js +0 -23
  18. package/lib/module/components/ScreenRecorderView/ScreenRecorderView.js.map +0 -1
  19. package/lib/module/components/ScreenRecorderView/index.js +0 -4
  20. package/lib/module/components/ScreenRecorderView/index.js.map +0 -1
  21. package/lib/module/components/SessionRecorderWidget/ErrorBanner.js +0 -64
  22. package/lib/module/components/SessionRecorderWidget/ErrorBanner.js.map +0 -1
  23. package/lib/module/components/SessionRecorderWidget/FinalPopover.js +0 -74
  24. package/lib/module/components/SessionRecorderWidget/FinalPopover.js.map +0 -1
  25. package/lib/module/components/SessionRecorderWidget/FloatingButton.js +0 -191
  26. package/lib/module/components/SessionRecorderWidget/FloatingButton.js.map +0 -1
  27. package/lib/module/components/SessionRecorderWidget/InitialPopover.js +0 -138
  28. package/lib/module/components/SessionRecorderWidget/InitialPopover.js.map +0 -1
  29. package/lib/module/components/SessionRecorderWidget/ModalContainer.js +0 -177
  30. package/lib/module/components/SessionRecorderWidget/ModalContainer.js.map +0 -1
  31. package/lib/module/components/SessionRecorderWidget/ModalHeader.js +0 -27
  32. package/lib/module/components/SessionRecorderWidget/ModalHeader.js.map +0 -1
  33. package/lib/module/components/SessionRecorderWidget/SessionRecorderWidget.js +0 -133
  34. package/lib/module/components/SessionRecorderWidget/SessionRecorderWidget.js.map +0 -1
  35. package/lib/module/components/SessionRecorderWidget/icons.js +0 -93
  36. package/lib/module/components/SessionRecorderWidget/icons.js.map +0 -1
  37. package/lib/module/components/SessionRecorderWidget/index.js +0 -5
  38. package/lib/module/components/SessionRecorderWidget/index.js.map +0 -1
  39. package/lib/module/components/SessionRecorderWidget/styles.js +0 -173
  40. package/lib/module/components/SessionRecorderWidget/styles.js.map +0 -1
  41. package/lib/module/components/index.js +0 -6
  42. package/lib/module/components/index.js.map +0 -1
  43. package/lib/module/config/constants.js +0 -47
  44. package/lib/module/config/constants.js.map +0 -1
  45. package/lib/module/config/defaults.js +0 -87
  46. package/lib/module/config/defaults.js.map +0 -1
  47. package/lib/module/config/index.js +0 -9
  48. package/lib/module/config/index.js.map +0 -1
  49. package/lib/module/config/masking.js +0 -35
  50. package/lib/module/config/masking.js.map +0 -1
  51. package/lib/module/config/session-recorder.js +0 -50
  52. package/lib/module/config/session-recorder.js.map +0 -1
  53. package/lib/module/config/validators.js +0 -28
  54. package/lib/module/config/validators.js.map +0 -1
  55. package/lib/module/config/widget.js +0 -35
  56. package/lib/module/config/widget.js.map +0 -1
  57. package/lib/module/context/SessionRecorderContext.js +0 -100
  58. package/lib/module/context/SessionRecorderContext.js.map +0 -1
  59. package/lib/module/context/SessionRecorderStore.js +0 -12
  60. package/lib/module/context/SessionRecorderStore.js.map +0 -1
  61. package/lib/module/context/createStore.js +0 -27
  62. package/lib/module/context/createStore.js.map +0 -1
  63. package/lib/module/context/useSessionRecorderStore.js +0 -45
  64. package/lib/module/context/useSessionRecorderStore.js.map +0 -1
  65. package/lib/module/context/useStoreSelector.js +0 -27
  66. package/lib/module/context/useStoreSelector.js.map +0 -1
  67. package/lib/module/index.js +0 -14
  68. package/lib/module/index.js.map +0 -1
  69. package/lib/module/native/SessionRecorderNative.js +0 -76
  70. package/lib/module/native/SessionRecorderNative.js.map +0 -1
  71. package/lib/module/native/index.js +0 -4
  72. package/lib/module/native/index.js.map +0 -1
  73. package/lib/module/otel/CrashBufferSpanProcessor.js +0 -42
  74. package/lib/module/otel/CrashBufferSpanProcessor.js.map +0 -1
  75. package/lib/module/otel/helpers.js +0 -218
  76. package/lib/module/otel/helpers.js.map +0 -1
  77. package/lib/module/otel/index.js +0 -202
  78. package/lib/module/otel/index.js.map +0 -1
  79. package/lib/module/otel/instrumentations/index.js +0 -122
  80. package/lib/module/otel/instrumentations/index.js.map +0 -1
  81. package/lib/module/package.json +0 -1
  82. package/lib/module/patch/configs.js +0 -18
  83. package/lib/module/patch/configs.js.map +0 -1
  84. package/lib/module/patch/fetch.js +0 -222
  85. package/lib/module/patch/fetch.js.map +0 -1
  86. package/lib/module/patch/index.js +0 -6
  87. package/lib/module/patch/index.js.map +0 -1
  88. package/lib/module/patch/xhr.js +0 -100
  89. package/lib/module/patch/xhr.js.map +0 -1
  90. package/lib/module/recorder/gestureRecorder.js +0 -641
  91. package/lib/module/recorder/gestureRecorder.js.map +0 -1
  92. package/lib/module/recorder/index.js +0 -176
  93. package/lib/module/recorder/index.js.map +0 -1
  94. package/lib/module/recorder/navigationRecorder.js +0 -238
  95. package/lib/module/recorder/navigationRecorder.js.map +0 -1
  96. package/lib/module/recorder/screenRecorder.js +0 -527
  97. package/lib/module/recorder/screenRecorder.js.map +0 -1
  98. package/lib/module/services/api.service.js +0 -166
  99. package/lib/module/services/api.service.js.map +0 -1
  100. package/lib/module/services/crashBuffer.service.js +0 -280
  101. package/lib/module/services/crashBuffer.service.js.map +0 -1
  102. package/lib/module/services/network.service.js +0 -178
  103. package/lib/module/services/network.service.js.map +0 -1
  104. package/lib/module/services/screenRecordingService.js +0 -107
  105. package/lib/module/services/screenRecordingService.js.map +0 -1
  106. package/lib/module/services/socket.service.js +0 -186
  107. package/lib/module/services/socket.service.js.map +0 -1
  108. package/lib/module/services/storage.service.js +0 -178
  109. package/lib/module/services/storage.service.js.map +0 -1
  110. package/lib/module/session-recorder.js +0 -750
  111. package/lib/module/session-recorder.js.map +0 -1
  112. package/lib/module/types/configs.js +0 -4
  113. package/lib/module/types/configs.js.map +0 -1
  114. package/lib/module/types/expo-constants.d.js +0 -2
  115. package/lib/module/types/expo-constants.d.js.map +0 -1
  116. package/lib/module/types/index.js +0 -10
  117. package/lib/module/types/index.js.map +0 -1
  118. package/lib/module/types/session-recorder.js +0 -68
  119. package/lib/module/types/session-recorder.js.map +0 -1
  120. package/lib/module/utils/app-metadata.js +0 -28
  121. package/lib/module/utils/app-metadata.js.map +0 -1
  122. package/lib/module/utils/constants.optional.expo.js +0 -6
  123. package/lib/module/utils/constants.optional.expo.js.map +0 -1
  124. package/lib/module/utils/constants.optional.js +0 -8
  125. package/lib/module/utils/constants.optional.js.map +0 -1
  126. package/lib/module/utils/index.js +0 -11
  127. package/lib/module/utils/index.js.map +0 -1
  128. package/lib/module/utils/logger.js +0 -185
  129. package/lib/module/utils/logger.js.map +0 -1
  130. package/lib/module/utils/platform.js +0 -340
  131. package/lib/module/utils/platform.js.map +0 -1
  132. package/lib/module/utils/request-utils.js +0 -58
  133. package/lib/module/utils/request-utils.js.map +0 -1
  134. package/lib/module/utils/rrweb-events.js +0 -276
  135. package/lib/module/utils/rrweb-events.js.map +0 -1
  136. package/lib/module/utils/session.js +0 -21
  137. package/lib/module/utils/session.js.map +0 -1
  138. package/lib/module/utils/shallowEqual.js +0 -17
  139. package/lib/module/utils/shallowEqual.js.map +0 -1
  140. package/lib/module/utils/time.js +0 -17
  141. package/lib/module/utils/time.js.map +0 -1
  142. package/lib/module/utils/type-utils.js +0 -69
  143. package/lib/module/utils/type-utils.js.map +0 -1
  144. package/lib/module/version.js +0 -4
  145. package/lib/module/version.js.map +0 -1
  146. package/lib/typescript/package.json +0 -1
  147. package/lib/typescript/src/NativeSessionRecorderModule.d.ts +0 -25
  148. package/lib/typescript/src/NativeSessionRecorderModule.d.ts.map +0 -1
  149. package/lib/typescript/src/NativeSessionRecorderModuleSpec.d.ts +0 -25
  150. package/lib/typescript/src/NativeSessionRecorderModuleSpec.d.ts.map +0 -1
  151. package/lib/typescript/src/NativeSessionRecorderNative.d.ts +0 -25
  152. package/lib/typescript/src/NativeSessionRecorderNative.d.ts.map +0 -1
  153. package/lib/typescript/src/components/ErrorBoundary.d.ts +0 -16
  154. package/lib/typescript/src/components/ErrorBoundary.d.ts.map +0 -1
  155. package/lib/typescript/src/components/ScreenRecorderView/ScreenRecorderView.d.ts +0 -6
  156. package/lib/typescript/src/components/ScreenRecorderView/ScreenRecorderView.d.ts.map +0 -1
  157. package/lib/typescript/src/components/ScreenRecorderView/index.d.ts +0 -2
  158. package/lib/typescript/src/components/ScreenRecorderView/index.d.ts.map +0 -1
  159. package/lib/typescript/src/components/SessionRecorderWidget/ErrorBanner.d.ts +0 -8
  160. package/lib/typescript/src/components/SessionRecorderWidget/ErrorBanner.d.ts.map +0 -1
  161. package/lib/typescript/src/components/SessionRecorderWidget/FinalPopover.d.ts +0 -13
  162. package/lib/typescript/src/components/SessionRecorderWidget/FinalPopover.d.ts.map +0 -1
  163. package/lib/typescript/src/components/SessionRecorderWidget/FloatingButton.d.ts +0 -9
  164. package/lib/typescript/src/components/SessionRecorderWidget/FloatingButton.d.ts.map +0 -1
  165. package/lib/typescript/src/components/SessionRecorderWidget/InitialPopover.d.ts +0 -17
  166. package/lib/typescript/src/components/SessionRecorderWidget/InitialPopover.d.ts.map +0 -1
  167. package/lib/typescript/src/components/SessionRecorderWidget/ModalContainer.d.ts +0 -9
  168. package/lib/typescript/src/components/SessionRecorderWidget/ModalContainer.d.ts.map +0 -1
  169. package/lib/typescript/src/components/SessionRecorderWidget/ModalHeader.d.ts +0 -7
  170. package/lib/typescript/src/components/SessionRecorderWidget/ModalHeader.d.ts.map +0 -1
  171. package/lib/typescript/src/components/SessionRecorderWidget/SessionRecorderWidget.d.ts +0 -6
  172. package/lib/typescript/src/components/SessionRecorderWidget/SessionRecorderWidget.d.ts.map +0 -1
  173. package/lib/typescript/src/components/SessionRecorderWidget/icons.d.ts +0 -12
  174. package/lib/typescript/src/components/SessionRecorderWidget/icons.d.ts.map +0 -1
  175. package/lib/typescript/src/components/SessionRecorderWidget/index.d.ts +0 -3
  176. package/lib/typescript/src/components/SessionRecorderWidget/index.d.ts.map +0 -1
  177. package/lib/typescript/src/components/SessionRecorderWidget/styles.d.ts +0 -166
  178. package/lib/typescript/src/components/SessionRecorderWidget/styles.d.ts.map +0 -1
  179. package/lib/typescript/src/components/index.d.ts +0 -4
  180. package/lib/typescript/src/components/index.d.ts.map +0 -1
  181. package/lib/typescript/src/config/constants.d.ts +0 -22
  182. package/lib/typescript/src/config/constants.d.ts.map +0 -1
  183. package/lib/typescript/src/config/defaults.d.ts +0 -5
  184. package/lib/typescript/src/config/defaults.d.ts.map +0 -1
  185. package/lib/typescript/src/config/index.d.ts +0 -6
  186. package/lib/typescript/src/config/index.d.ts.map +0 -1
  187. package/lib/typescript/src/config/masking.d.ts +0 -3
  188. package/lib/typescript/src/config/masking.d.ts.map +0 -1
  189. package/lib/typescript/src/config/session-recorder.d.ts +0 -3
  190. package/lib/typescript/src/config/session-recorder.d.ts.map +0 -1
  191. package/lib/typescript/src/config/validators.d.ts +0 -11
  192. package/lib/typescript/src/config/validators.d.ts.map +0 -1
  193. package/lib/typescript/src/config/widget.d.ts +0 -10
  194. package/lib/typescript/src/config/widget.d.ts.map +0 -1
  195. package/lib/typescript/src/context/SessionRecorderContext.d.ts +0 -22
  196. package/lib/typescript/src/context/SessionRecorderContext.d.ts.map +0 -1
  197. package/lib/typescript/src/context/SessionRecorderStore.d.ts +0 -13
  198. package/lib/typescript/src/context/SessionRecorderStore.d.ts.map +0 -1
  199. package/lib/typescript/src/context/createStore.d.ts +0 -9
  200. package/lib/typescript/src/context/createStore.d.ts.map +0 -1
  201. package/lib/typescript/src/context/useSessionRecorderStore.d.ts +0 -29
  202. package/lib/typescript/src/context/useSessionRecorderStore.d.ts.map +0 -1
  203. package/lib/typescript/src/context/useStoreSelector.d.ts +0 -5
  204. package/lib/typescript/src/context/useStoreSelector.d.ts.map +0 -1
  205. package/lib/typescript/src/index.d.ts +0 -9
  206. package/lib/typescript/src/index.d.ts.map +0 -1
  207. package/lib/typescript/src/native/SessionRecorderNative.d.ts +0 -29
  208. package/lib/typescript/src/native/SessionRecorderNative.d.ts.map +0 -1
  209. package/lib/typescript/src/native/index.d.ts +0 -2
  210. package/lib/typescript/src/native/index.d.ts.map +0 -1
  211. package/lib/typescript/src/otel/CrashBufferSpanProcessor.d.ts +0 -17
  212. package/lib/typescript/src/otel/CrashBufferSpanProcessor.d.ts.map +0 -1
  213. package/lib/typescript/src/otel/helpers.d.ts +0 -46
  214. package/lib/typescript/src/otel/helpers.d.ts.map +0 -1
  215. package/lib/typescript/src/otel/index.d.ts +0 -33
  216. package/lib/typescript/src/otel/index.d.ts.map +0 -1
  217. package/lib/typescript/src/otel/instrumentations/index.d.ts +0 -5
  218. package/lib/typescript/src/otel/instrumentations/index.d.ts.map +0 -1
  219. package/lib/typescript/src/patch/configs.d.ts +0 -9
  220. package/lib/typescript/src/patch/configs.d.ts.map +0 -1
  221. package/lib/typescript/src/patch/fetch.d.ts +0 -2
  222. package/lib/typescript/src/patch/fetch.d.ts.map +0 -1
  223. package/lib/typescript/src/patch/index.d.ts +0 -4
  224. package/lib/typescript/src/patch/index.d.ts.map +0 -1
  225. package/lib/typescript/src/patch/xhr.d.ts +0 -2
  226. package/lib/typescript/src/patch/xhr.d.ts.map +0 -1
  227. package/lib/typescript/src/recorder/gestureRecorder.d.ts +0 -66
  228. package/lib/typescript/src/recorder/gestureRecorder.d.ts.map +0 -1
  229. package/lib/typescript/src/recorder/index.d.ts +0 -79
  230. package/lib/typescript/src/recorder/index.d.ts.map +0 -1
  231. package/lib/typescript/src/recorder/navigationRecorder.d.ts +0 -29
  232. package/lib/typescript/src/recorder/navigationRecorder.d.ts.map +0 -1
  233. package/lib/typescript/src/recorder/screenRecorder.d.ts +0 -127
  234. package/lib/typescript/src/recorder/screenRecorder.d.ts.map +0 -1
  235. package/lib/typescript/src/services/api.service.d.ts +0 -116
  236. package/lib/typescript/src/services/api.service.d.ts.map +0 -1
  237. package/lib/typescript/src/services/crashBuffer.service.d.ts +0 -27
  238. package/lib/typescript/src/services/crashBuffer.service.d.ts.map +0 -1
  239. package/lib/typescript/src/services/network.service.d.ts +0 -47
  240. package/lib/typescript/src/services/network.service.d.ts.map +0 -1
  241. package/lib/typescript/src/services/screenRecordingService.d.ts +0 -48
  242. package/lib/typescript/src/services/screenRecordingService.d.ts.map +0 -1
  243. package/lib/typescript/src/services/socket.service.d.ts +0 -44
  244. package/lib/typescript/src/services/socket.service.d.ts.map +0 -1
  245. package/lib/typescript/src/services/storage.service.d.ts +0 -47
  246. package/lib/typescript/src/services/storage.service.d.ts.map +0 -1
  247. package/lib/typescript/src/session-recorder.d.ts +0 -191
  248. package/lib/typescript/src/session-recorder.d.ts.map +0 -1
  249. package/lib/typescript/src/types/configs.d.ts +0 -92
  250. package/lib/typescript/src/types/configs.d.ts.map +0 -1
  251. package/lib/typescript/src/types/index.d.ts +0 -21
  252. package/lib/typescript/src/types/index.d.ts.map +0 -1
  253. package/lib/typescript/src/types/session-recorder.d.ts +0 -367
  254. package/lib/typescript/src/types/session-recorder.d.ts.map +0 -1
  255. package/lib/typescript/src/utils/app-metadata.d.ts +0 -17
  256. package/lib/typescript/src/utils/app-metadata.d.ts.map +0 -1
  257. package/lib/typescript/src/utils/constants.optional.d.ts +0 -22
  258. package/lib/typescript/src/utils/constants.optional.d.ts.map +0 -1
  259. package/lib/typescript/src/utils/constants.optional.expo.d.ts +0 -4
  260. package/lib/typescript/src/utils/constants.optional.expo.d.ts.map +0 -1
  261. package/lib/typescript/src/utils/index.d.ts +0 -8
  262. package/lib/typescript/src/utils/index.d.ts.map +0 -1
  263. package/lib/typescript/src/utils/logger.d.ts +0 -108
  264. package/lib/typescript/src/utils/logger.d.ts.map +0 -1
  265. package/lib/typescript/src/utils/platform.d.ts +0 -58
  266. package/lib/typescript/src/utils/platform.d.ts.map +0 -1
  267. package/lib/typescript/src/utils/request-utils.d.ts +0 -22
  268. package/lib/typescript/src/utils/request-utils.d.ts.map +0 -1
  269. package/lib/typescript/src/utils/rrweb-events.d.ts +0 -67
  270. package/lib/typescript/src/utils/rrweb-events.d.ts.map +0 -1
  271. package/lib/typescript/src/utils/session.d.ts +0 -7
  272. package/lib/typescript/src/utils/session.d.ts.map +0 -1
  273. package/lib/typescript/src/utils/shallowEqual.d.ts +0 -2
  274. package/lib/typescript/src/utils/shallowEqual.d.ts.map +0 -1
  275. package/lib/typescript/src/utils/time.d.ts +0 -5
  276. package/lib/typescript/src/utils/time.d.ts.map +0 -1
  277. package/lib/typescript/src/utils/type-utils.d.ts +0 -17
  278. package/lib/typescript/src/utils/type-utils.d.ts.map +0 -1
  279. package/lib/typescript/src/version.d.ts +0 -2
  280. package/lib/typescript/src/version.d.ts.map +0 -1
@@ -1,107 +0,0 @@
1
- "use strict";
2
-
3
- import SessionRecorderNative from "../native/SessionRecorderNative.js";
4
- import { logger } from "../utils/index.js";
5
- export class ScreenRecordingService {
6
- isAvailable = false;
7
- constructor(config = {
8
- enabled: true,
9
- maskTextInputs: true,
10
- maskImages: false,
11
- maskButtons: false,
12
- maskLabels: false,
13
- maskWebViews: false,
14
- maskSandboxedViews: false
15
- }) {
16
- this.config = config;
17
- this.checkAvailability();
18
- }
19
-
20
- /**
21
- * Check if the native masking module is available
22
- */
23
- checkAvailability() {
24
- try {
25
- // Try to access the native module to check if it's available
26
- if (SessionRecorderNative && typeof SessionRecorderNative.captureAndMask === 'function') {
27
- this.isAvailable = true;
28
- logger.info('ScreenRecordingService', 'Screen masking native module is available');
29
- } else {
30
- this.isAvailable = false;
31
- logger.warn('ScreenRecordingService', 'Screen masking native module is not available - auto-linking may still be in progress');
32
- }
33
- } catch (error) {
34
- this.isAvailable = false;
35
- logger.error('ScreenRecordingService', 'Error checking screen masking availability:', error);
36
- }
37
- }
38
-
39
- /**
40
- * Capture screen with masking applied
41
- */
42
- async captureMaskedScreen(options) {
43
- if (!this.isAvailable || !this.config.enabled) {
44
- logger.warn('ScreenRecordingService', 'Screen masking is not available or disabled');
45
- return null;
46
- }
47
- try {
48
- const maskingOptions = {
49
- ...this.config,
50
- ...options
51
- };
52
- const maskedImageBase64 = await SessionRecorderNative.captureAndMaskWithOptions(maskingOptions);
53
- return maskedImageBase64;
54
- } catch (error) {
55
- logger.error('ScreenRecordingService', 'Failed to capture masked screen:', error);
56
- return null;
57
- }
58
- }
59
-
60
- /**
61
- * Capture screen with basic masking (no custom options)
62
- */
63
- async captureMaskedScreenBasic() {
64
- if (!this.isAvailable || !this.config.enabled) {
65
- logger.warn('ScreenRecordingService', 'Screen masking is not available or disabled');
66
- return null;
67
- }
68
- try {
69
- const maskedImageBase64 = await SessionRecorderNative.captureAndMask();
70
- return maskedImageBase64;
71
- } catch (error) {
72
- logger.error('ScreenRecordingService', 'Failed to capture masked screen (basic):', error);
73
- return null;
74
- }
75
- }
76
-
77
- /**
78
- * Update the masking configuration
79
- */
80
- updateConfig(config) {
81
- this.config = {
82
- ...this.config,
83
- ...config
84
- };
85
- logger.info('ScreenRecordingService', 'Screen masking configuration updated');
86
- }
87
-
88
- /**
89
- * Check if screen masking is available
90
- */
91
- isScreenRecordingAvailable() {
92
- return this.isAvailable && this.config.enabled;
93
- }
94
-
95
- /**
96
- * Get the current configuration
97
- */
98
- getConfig() {
99
- return {
100
- ...this.config
101
- };
102
- }
103
- }
104
-
105
- // Create a singleton instance
106
- export const screenRecordingService = new ScreenRecordingService();
107
- //# sourceMappingURL=screenRecordingService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["SessionRecorderNative","logger","ScreenRecordingService","isAvailable","constructor","config","enabled","maskTextInputs","maskImages","maskButtons","maskLabels","maskWebViews","maskSandboxedViews","checkAvailability","captureAndMask","info","warn","error","captureMaskedScreen","options","maskingOptions","maskedImageBase64","captureAndMaskWithOptions","captureMaskedScreenBasic","updateConfig","isScreenRecordingAvailable","getConfig","screenRecordingService"],"sourceRoot":"../../../src","sources":["services/screenRecordingService.ts"],"mappings":"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","ignoreList":[]}
@@ -1,186 +0,0 @@
1
- "use strict";
2
-
3
- import io from 'socket.io-client';
4
- import { Observable } from 'lib0/observable';
5
- import { logger } from "../utils/index.js";
6
- import { SESSION_ADD_EVENT, SESSION_AUTO_CREATED, SESSION_STOPPED_EVENT, SESSION_SUBSCRIBE_EVENT, SESSION_UNSUBSCRIBE_EVENT, SOCKET_SET_USER_EVENT, REMOTE_SESSION_RECORDING_START, REMOTE_SESSION_RECORDING_STOP, SESSION_STARTED_EVENT, SESSION_SAVE_BUFFER_EVENT } from "../config/index.js";
7
- import { ATTR_MULTIPLAYER_SESSION_CLIENT_ID } from '@multiplayer-app/session-recorder-common';
8
- const MAX_RECONNECTION_ATTEMPTS = 2;
9
- export class SocketService extends Observable {
10
- socket = null;
11
- queue = [];
12
- isConnecting = false;
13
- isConnected = false;
14
- attempts = 0;
15
- sessionId = null;
16
- isInitialized = false;
17
- constructor() {
18
- super();
19
- this.options = {
20
- apiKey: '',
21
- socketUrl: '',
22
- keepAlive: false
23
- };
24
- }
25
-
26
- /**
27
- * Initialize the socket service
28
- * @param config - Socket service configuration
29
- */
30
- init(config) {
31
- this.options = {
32
- ...this.options,
33
- ...config
34
- };
35
- this.isInitialized = true;
36
- if (this.options.keepAlive && this.options.socketUrl && this.options.apiKey) {
37
- this._initConnection();
38
- }
39
- }
40
-
41
- /**
42
- * Update the socket service configuration
43
- * @param config - Partial configuration to update
44
- */
45
- updateConfigs(config) {
46
- // If any config changed, reconnect if connected
47
- const hasChanges = Object.keys(config).some(key => {
48
- const typedKey = key;
49
- return config[typedKey] !== undefined && config[typedKey] !== this.options[typedKey];
50
- });
51
- if (hasChanges) {
52
- this.options = {
53
- ...this.options,
54
- ...config
55
- };
56
- if (this.socket?.connected) {
57
- this.close().then(() => {
58
- if (this.options.keepAlive && this.options.socketUrl && this.options.apiKey) {
59
- this._initConnection();
60
- }
61
- });
62
- }
63
- }
64
- }
65
- _initConnection() {
66
- if (this.isConnecting || this.isConnected || !this.isInitialized) return;
67
- this.attempts++;
68
- this.isConnecting = true;
69
- this.socket = io(this.options.socketUrl, {
70
- path: '/v0/radar/ws',
71
- auth: {
72
- 'x-api-key': this.options.apiKey,
73
- ...(this.options.clientId ? {
74
- [ATTR_MULTIPLAYER_SESSION_CLIENT_ID]: this.options.clientId
75
- } : {})
76
- },
77
- reconnectionAttempts: 2,
78
- transports: ['websocket']
79
- });
80
- this.socket.on('ready', () => {
81
- this.isConnecting = false;
82
- this.isConnected = true;
83
- logger.info('SocketService', 'Connected to server');
84
- this.flushQueue();
85
- });
86
- this.socket.on('disconnect', _err => {
87
- this.isConnecting = false;
88
- this.isConnected = false;
89
- logger.info('SocketService', 'Disconnected from server');
90
- });
91
- this.socket.on('connect_error', err => {
92
- this.isConnecting = false;
93
- this.isConnected = false;
94
- this.checkReconnectionAttempts();
95
- logger.error('SocketService', 'Error connecting to server', err);
96
- });
97
- this.socket.on(SESSION_STOPPED_EVENT, data => {
98
- this.emit(SESSION_STOPPED_EVENT, [data]);
99
- });
100
- this.socket.on(SESSION_AUTO_CREATED, data => {
101
- this.emit(SESSION_AUTO_CREATED, [data]);
102
- });
103
- this.socket.on(REMOTE_SESSION_RECORDING_START, data => {
104
- this.emit(REMOTE_SESSION_RECORDING_START, [data]);
105
- });
106
- this.socket.on(REMOTE_SESSION_RECORDING_STOP, data => {
107
- this.emit(REMOTE_SESSION_RECORDING_STOP, [data]);
108
- });
109
- this.socket.on(SESSION_SAVE_BUFFER_EVENT, data => {
110
- this.emit(SESSION_SAVE_BUFFER_EVENT, [data]);
111
- });
112
- }
113
- checkReconnectionAttempts() {
114
- if (this.attempts >= MAX_RECONNECTION_ATTEMPTS) {
115
- this.flushQueue();
116
- }
117
- }
118
- emitSocketEvent(name, data) {
119
- if (this.socket && this.isConnected) {
120
- this.socket.emit(name, data);
121
- } else {
122
- this.queue.push({
123
- data,
124
- name
125
- });
126
- this._initConnection();
127
- }
128
- }
129
- flushQueue() {
130
- while (this.queue.length > 0 && this.isConnected) {
131
- const event = this.queue.shift();
132
- if (!event) continue;
133
- if (this.socket && this.isConnected) {
134
- this.socket.emit(event.name, event.data);
135
- }
136
- }
137
- }
138
- send(event) {
139
- this.emitSocketEvent(SESSION_ADD_EVENT, event);
140
- }
141
- subscribeToSession(session) {
142
- this.sessionId = session.shortId || session._id;
143
- const payload = {
144
- projectId: session.project,
145
- workspaceId: session.workspace,
146
- debugSessionId: this.sessionId,
147
- sessionType: session.creationType
148
- };
149
- this.emitSocketEvent(SESSION_SUBSCRIBE_EVENT, payload);
150
- // use long id instead of short id
151
- this.emitSocketEvent(SESSION_STARTED_EVENT, {
152
- debugSessionId: session._id
153
- });
154
- }
155
- unsubscribeFromSession(stopSession) {
156
- if (this.sessionId) {
157
- this.emitSocketEvent(SESSION_UNSUBSCRIBE_EVENT, {
158
- debugSessionId: this.sessionId
159
- });
160
- if (stopSession) {
161
- this.emitSocketEvent(SESSION_STOPPED_EVENT, {});
162
- }
163
- }
164
- }
165
- setUser(data) {
166
- this.emitSocketEvent(SOCKET_SET_USER_EVENT, data);
167
- }
168
- close() {
169
- return new Promise(resolve => {
170
- if (this.socket?.connected) {
171
- setTimeout(() => {
172
- this.unsubscribeFromSession();
173
- this.attempts = 0;
174
- this.isConnected = false;
175
- this.isConnecting = false;
176
- this.socket?.disconnect();
177
- this.socket = null;
178
- resolve();
179
- }, 500);
180
- } else {
181
- resolve();
182
- }
183
- });
184
- }
185
- }
186
- //# sourceMappingURL=socket.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["io","Observable","logger","SESSION_ADD_EVENT","SESSION_AUTO_CREATED","SESSION_STOPPED_EVENT","SESSION_SUBSCRIBE_EVENT","SESSION_UNSUBSCRIBE_EVENT","SOCKET_SET_USER_EVENT","REMOTE_SESSION_RECORDING_START","REMOTE_SESSION_RECORDING_STOP","SESSION_STARTED_EVENT","SESSION_SAVE_BUFFER_EVENT","ATTR_MULTIPLAYER_SESSION_CLIENT_ID","MAX_RECONNECTION_ATTEMPTS","SocketService","socket","queue","isConnecting","isConnected","attempts","sessionId","isInitialized","constructor","options","apiKey","socketUrl","keepAlive","init","config","_initConnection","updateConfigs","hasChanges","Object","keys","some","key","typedKey","undefined","connected","close","then","path","auth","clientId","reconnectionAttempts","transports","on","info","flushQueue","_err","err","checkReconnectionAttempts","error","data","emit","emitSocketEvent","name","push","length","event","shift","send","subscribeToSession","session","shortId","_id","payload","projectId","project","workspaceId","workspace","debugSessionId","sessionType","creationType","unsubscribeFromSession","stopSession","setUser","Promise","resolve","setTimeout","disconnect"],"sourceRoot":"../../../src","sources":["services/socket.service.ts"],"mappings":"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","ignoreList":[]}
@@ -1,178 +0,0 @@
1
- "use strict";
2
-
3
- import { Platform } from 'react-native';
4
- import { logger } from "../utils/index.js";
5
- // Safe import for AsyncStorage with web fallback
6
- let AsyncStorage = null;
7
- const isWeb = Platform.OS === 'web';
8
- if (!isWeb) {
9
- try {
10
- AsyncStorage = require('@react-native-async-storage/async-storage').default;
11
- } catch (error) {
12
- console.warn('AsyncStorage not available:', error);
13
- }
14
- } else {
15
- // Web fallback using localStorage
16
- AsyncStorage = {
17
- getItem: _key => Promise.resolve(null),
18
- // Simplified for web
19
- setItem: (_key, _value) => Promise.resolve(undefined),
20
- removeItem: _key => Promise.resolve(undefined),
21
- multiRemove: _keys => Promise.resolve(undefined)
22
- };
23
- }
24
- export class StorageService {
25
- static SESSION_ID_KEY = 'session_id';
26
- static SESSION_TYPE_KEY = 'session_type';
27
- static SESSION_STATE_KEY = 'session_state';
28
- static SESSION_OBJECT_KEY = 'session_object';
29
- static FLOATING_BUTTON_POSITION_KEY = 'floating_button_position';
30
- static cache = {
31
- sessionId: null,
32
- sessionType: null,
33
- sessionState: null,
34
- sessionObject: null,
35
- floatingButtonPosition: null
36
- };
37
- static cacheInitialized = false;
38
- static instance = null;
39
- static positionSaveTimeout = null;
40
- constructor() {
41
- // Private constructor for singleton
42
- }
43
- static getInstance() {
44
- if (!StorageService.instance) {
45
- StorageService.instance = new StorageService();
46
- StorageService.initialize();
47
- }
48
- return StorageService.instance;
49
- }
50
- static async initializeCache() {
51
- if (StorageService.cacheInitialized) return;
52
- try {
53
- const [sessionId, sessionType, sessionState, sessionObject, floatingButtonPosition] = await Promise.all([AsyncStorage.getItem(StorageService.SESSION_ID_KEY), AsyncStorage.getItem(StorageService.SESSION_TYPE_KEY), AsyncStorage.getItem(StorageService.SESSION_STATE_KEY), AsyncStorage.getItem(StorageService.SESSION_OBJECT_KEY), AsyncStorage.getItem(StorageService.FLOATING_BUTTON_POSITION_KEY)]);
54
- StorageService.cache = {
55
- sessionId,
56
- sessionType: sessionType,
57
- sessionState: sessionState,
58
- sessionObject: sessionObject ? JSON.parse(sessionObject) : null,
59
- floatingButtonPosition: floatingButtonPosition ? JSON.parse(floatingButtonPosition) : null
60
- };
61
- StorageService.cacheInitialized = true;
62
- } catch (error) {
63
- // Failed to initialize cache - silently continue
64
- StorageService.cacheInitialized = true; // Mark as initialized to prevent retries
65
- }
66
- }
67
- saveSessionId(sessionId) {
68
- try {
69
- StorageService.cache.sessionId = sessionId;
70
- AsyncStorage.setItem(StorageService.SESSION_ID_KEY, sessionId).catch(_error => {
71
- // Failed to persist session ID - silently continue
72
- });
73
- } catch (error) {
74
- // Failed to save session ID - silently continue
75
- throw error;
76
- }
77
- }
78
- getSessionId() {
79
- return StorageService.cache.sessionId;
80
- }
81
- saveSessionType(sessionType) {
82
- try {
83
- StorageService.cache.sessionType = sessionType;
84
- AsyncStorage.setItem(StorageService.SESSION_TYPE_KEY, sessionType).catch(_error => {
85
- // Failed to persist session type - silently continue
86
- });
87
- } catch (error) {
88
- // Failed to save session type - silently continue
89
- throw error;
90
- }
91
- }
92
- getSessionType() {
93
- return StorageService.cache.sessionType;
94
- }
95
- saveSessionState(state) {
96
- try {
97
- StorageService.cache.sessionState = state;
98
- AsyncStorage.setItem(StorageService.SESSION_STATE_KEY, state).catch(_error => {
99
- // Failed to persist session state - silently continue
100
- });
101
- } catch (error) {
102
- // Failed to save session state - silently continue
103
- throw error;
104
- }
105
- }
106
- getSessionState() {
107
- return StorageService.cache.sessionState;
108
- }
109
- saveSessionObject(session) {
110
- try {
111
- StorageService.cache.sessionObject = session;
112
- AsyncStorage.setItem(StorageService.SESSION_OBJECT_KEY, JSON.stringify(session)).catch(_error => {
113
- // Failed to persist session object - silently continue
114
- });
115
- } catch (error) {
116
- // Failed to save session object - silently continue
117
- throw error;
118
- }
119
- }
120
- getSessionObject() {
121
- return StorageService.cache.sessionObject;
122
- }
123
- clearSessionData() {
124
- try {
125
- // Clear cache immediately
126
- StorageService.cache = {
127
- ...StorageService.cache,
128
- sessionId: null,
129
- sessionType: null,
130
- sessionState: null,
131
- sessionObject: null
132
- };
133
-
134
- // Clear persistent storage asynchronously
135
- AsyncStorage.multiRemove([StorageService.SESSION_ID_KEY, StorageService.SESSION_TYPE_KEY, StorageService.SESSION_STATE_KEY, StorageService.SESSION_OBJECT_KEY]).catch(_error => {
136
- // Failed to clear session data from storage - silently continue
137
- });
138
- } catch (error) {
139
- // Failed to clear session data - silently continue
140
- throw error;
141
- }
142
- }
143
- getAllSessionData() {
144
- return {
145
- sessionId: StorageService.cache.sessionId,
146
- sessionType: StorageService.cache.sessionType,
147
- sessionState: StorageService.cache.sessionState,
148
- sessionObject: StorageService.cache.sessionObject
149
- };
150
- }
151
- saveFloatingButtonPosition(position) {
152
- try {
153
- StorageService.cache.floatingButtonPosition = position;
154
-
155
- // Debounce AsyncStorage writes to avoid excessive I/O
156
- if (StorageService.positionSaveTimeout) {
157
- clearTimeout(StorageService.positionSaveTimeout);
158
- }
159
- StorageService.positionSaveTimeout = setTimeout(() => {
160
- AsyncStorage.setItem(StorageService.FLOATING_BUTTON_POSITION_KEY, JSON.stringify(position)).catch(error => {
161
- logger.error('StorageService', 'Failed to persist floating button position', error);
162
- });
163
- }, 100); // 100ms debounce
164
- } catch (error) {
165
- logger.error('StorageService', 'Failed to save floating button position', error);
166
- throw error;
167
- }
168
- }
169
- getFloatingButtonPosition() {
170
- return StorageService.cache.floatingButtonPosition;
171
- }
172
-
173
- // Initialize cache on first use - call this method when the service is first used
174
- static async initialize() {
175
- await StorageService.initializeCache();
176
- }
177
- }
178
- //# sourceMappingURL=storage.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Platform","logger","AsyncStorage","isWeb","OS","require","default","error","console","warn","getItem","_key","Promise","resolve","setItem","_value","undefined","removeItem","multiRemove","_keys","StorageService","SESSION_ID_KEY","SESSION_TYPE_KEY","SESSION_STATE_KEY","SESSION_OBJECT_KEY","FLOATING_BUTTON_POSITION_KEY","cache","sessionId","sessionType","sessionState","sessionObject","floatingButtonPosition","cacheInitialized","instance","positionSaveTimeout","constructor","getInstance","initialize","initializeCache","all","JSON","parse","saveSessionId","catch","_error","getSessionId","saveSessionType","getSessionType","saveSessionState","state","getSessionState","saveSessionObject","session","stringify","getSessionObject","clearSessionData","getAllSessionData","saveFloatingButtonPosition","position","clearTimeout","setTimeout","getFloatingButtonPosition"],"sourceRoot":"../../../src","sources":["services/storage.service.ts"],"mappings":"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","ignoreList":[]}