@multiplayer-app/session-recorder-react-native 0.0.1-beta.2 → 0.0.1-beta.20

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 (242) hide show
  1. package/README.md +170 -12
  2. package/SessionRecorderNative.podspec +29 -0
  3. package/android/build.gradle +34 -0
  4. package/copy-react-native-dist.sh +34 -16
  5. package/dist/components/GestureCaptureWrapper/GestureCaptureWrapper.d.ts +1 -0
  6. package/dist/components/GestureCaptureWrapper/GestureCaptureWrapper.js +1 -1
  7. package/dist/components/GestureCaptureWrapper/GestureCaptureWrapper.js.map +1 -1
  8. package/dist/components/MaskableComponent.d.ts +22 -0
  9. package/dist/components/MaskableComponent.js +1 -0
  10. package/dist/components/MaskableComponent.js.map +1 -0
  11. package/dist/components/MaskableTextInput.d.ts +14 -0
  12. package/dist/components/MaskableTextInput.js +1 -0
  13. package/dist/components/MaskableTextInput.js.map +1 -0
  14. package/dist/components/ScreenRecorderView/ScreenRecorderView.js +1 -1
  15. package/dist/components/ScreenRecorderView/ScreenRecorderView.js.map +1 -1
  16. package/dist/components/SessionRecorderWidget/FinalPopover.d.ts +11 -0
  17. package/dist/components/SessionRecorderWidget/FinalPopover.js +1 -0
  18. package/dist/components/SessionRecorderWidget/FinalPopover.js.map +1 -0
  19. package/dist/components/SessionRecorderWidget/FloatingButton.d.ts +8 -0
  20. package/dist/components/SessionRecorderWidget/FloatingButton.js +1 -0
  21. package/dist/components/SessionRecorderWidget/FloatingButton.js.map +1 -0
  22. package/dist/components/SessionRecorderWidget/InitialPopover.d.ts +15 -0
  23. package/dist/components/SessionRecorderWidget/InitialPopover.js +1 -0
  24. package/dist/components/SessionRecorderWidget/InitialPopover.js.map +1 -0
  25. package/dist/components/SessionRecorderWidget/ModalContainer.d.ts +8 -0
  26. package/dist/components/SessionRecorderWidget/ModalContainer.js +1 -0
  27. package/dist/components/SessionRecorderWidget/ModalContainer.js.map +1 -0
  28. package/dist/components/SessionRecorderWidget/ModalHeader.d.ts +6 -0
  29. package/dist/components/SessionRecorderWidget/ModalHeader.js +1 -0
  30. package/dist/components/SessionRecorderWidget/ModalHeader.js.map +1 -0
  31. package/dist/components/SessionRecorderWidget/SessionRecorderWidget.d.ts +5 -0
  32. package/dist/components/SessionRecorderWidget/SessionRecorderWidget.js +1 -0
  33. package/dist/components/SessionRecorderWidget/SessionRecorderWidget.js.map +1 -0
  34. package/dist/components/SessionRecorderWidget/icons.d.ts +11 -0
  35. package/dist/components/SessionRecorderWidget/icons.js +1 -0
  36. package/dist/components/SessionRecorderWidget/icons.js.map +1 -0
  37. package/dist/components/SessionRecorderWidget/index.d.ts +2 -0
  38. package/dist/components/SessionRecorderWidget/index.js +1 -0
  39. package/dist/components/SessionRecorderWidget/index.js.map +1 -0
  40. package/dist/components/SessionRecorderWidget/styles.d.ts +165 -0
  41. package/dist/components/SessionRecorderWidget/styles.js +1 -0
  42. package/dist/components/SessionRecorderWidget/styles.js.map +1 -0
  43. package/dist/components/index.d.ts +2 -1
  44. package/dist/components/index.js +1 -1
  45. package/dist/components/index.js.map +1 -1
  46. package/dist/config/defaults.d.ts +4 -4
  47. package/dist/config/defaults.js +1 -1
  48. package/dist/config/defaults.js.map +1 -1
  49. package/dist/config/masking.d.ts +2 -2
  50. package/dist/config/masking.js +1 -1
  51. package/dist/config/masking.js.map +1 -1
  52. package/dist/config/session-recorder.js +1 -1
  53. package/dist/config/session-recorder.js.map +1 -1
  54. package/dist/config/validators.d.ts +1 -1
  55. package/dist/config/validators.js +1 -1
  56. package/dist/config/validators.js.map +1 -1
  57. package/dist/config/widget.d.ts +9 -0
  58. package/dist/config/widget.js +1 -0
  59. package/dist/config/widget.js.map +1 -0
  60. package/dist/context/SessionRecorderContext.d.ts +12 -3
  61. package/dist/context/SessionRecorderContext.js +1 -1
  62. package/dist/context/SessionRecorderContext.js.map +1 -1
  63. package/dist/context/SessionRecorderStore.d.ts +10 -0
  64. package/dist/context/SessionRecorderStore.js +1 -0
  65. package/dist/context/SessionRecorderStore.js.map +1 -0
  66. package/dist/context/useSessionRecorderStore.d.ts +8 -0
  67. package/dist/context/useSessionRecorderStore.js +1 -0
  68. package/dist/context/useSessionRecorderStore.js.map +1 -0
  69. package/dist/context/useStoreSelector.d.ts +4 -0
  70. package/dist/context/useStoreSelector.js +1 -0
  71. package/dist/context/useStoreSelector.js.map +1 -0
  72. package/dist/index.d.ts +1 -1
  73. package/dist/index.js +1 -1
  74. package/dist/index.js.map +1 -1
  75. package/dist/native/GestureRecorderNative.d.ts +57 -0
  76. package/dist/native/GestureRecorderNative.js +1 -0
  77. package/dist/native/GestureRecorderNative.js.map +1 -0
  78. package/dist/native/ScreenMasking.d.ts +21 -0
  79. package/dist/native/ScreenMasking.js +1 -0
  80. package/dist/native/ScreenMasking.js.map +1 -0
  81. package/dist/native/SessionRecorderNative.d.ts +33 -0
  82. package/dist/native/SessionRecorderNative.js +1 -0
  83. package/dist/native/SessionRecorderNative.js.map +1 -0
  84. package/dist/native/index.d.ts +2 -0
  85. package/dist/native/index.js +1 -0
  86. package/dist/native/index.js.map +1 -0
  87. package/dist/otel/index.js +1 -1
  88. package/dist/otel/index.js.map +1 -1
  89. package/dist/patch/xhr.js +1 -1
  90. package/dist/patch/xhr.js.map +1 -1
  91. package/dist/recorder/eventExporter.d.ts +4 -1
  92. package/dist/recorder/eventExporter.js +1 -1
  93. package/dist/recorder/eventExporter.js.map +1 -1
  94. package/dist/recorder/gestureRecorder.d.ts +28 -62
  95. package/dist/recorder/gestureRecorder.js +1 -1
  96. package/dist/recorder/gestureRecorder.js.map +1 -1
  97. package/dist/recorder/index.d.ts +2 -0
  98. package/dist/recorder/index.js +1 -1
  99. package/dist/recorder/index.js.map +1 -1
  100. package/dist/recorder/navigationTracker.d.ts +4 -19
  101. package/dist/recorder/navigationTracker.js +1 -1
  102. package/dist/recorder/navigationTracker.js.map +1 -1
  103. package/dist/recorder/screenRecorder.d.ts +11 -5
  104. package/dist/recorder/screenRecorder.js +1 -1
  105. package/dist/recorder/screenRecorder.js.map +1 -1
  106. package/dist/recorder/screenshotManager.d.ts +10 -0
  107. package/dist/recorder/screenshotManager.js +1 -0
  108. package/dist/recorder/screenshotManager.js.map +1 -0
  109. package/dist/services/api.service.d.ts +12 -3
  110. package/dist/services/api.service.js +1 -1
  111. package/dist/services/api.service.js.map +1 -1
  112. package/dist/services/screenMaskingService.d.ts +47 -0
  113. package/dist/services/screenMaskingService.js +1 -0
  114. package/dist/services/screenMaskingService.js.map +1 -0
  115. package/dist/services/storage.service.d.ts +18 -2
  116. package/dist/services/storage.service.js +1 -1
  117. package/dist/services/storage.service.js.map +1 -1
  118. package/dist/session-recorder.d.ts +10 -34
  119. package/dist/session-recorder.js +1 -1
  120. package/dist/session-recorder.js.map +1 -1
  121. package/dist/types/configs.d.ts +85 -0
  122. package/dist/types/configs.js +1 -0
  123. package/dist/types/configs.js.map +1 -0
  124. package/dist/types/index.d.ts +1 -0
  125. package/dist/types/index.js +1 -1
  126. package/dist/types/index.js.map +1 -1
  127. package/dist/types/session-recorder.d.ts +96 -132
  128. package/dist/types/session-recorder.js +1 -1
  129. package/dist/types/session-recorder.js.map +1 -1
  130. package/dist/utils/componentRegistry.d.ts +64 -0
  131. package/dist/utils/componentRegistry.js +1 -0
  132. package/dist/utils/componentRegistry.js.map +1 -0
  133. package/dist/utils/constants.optional.d.ts +21 -0
  134. package/dist/utils/constants.optional.expo.d.ts +3 -0
  135. package/dist/utils/constants.optional.expo.js +1 -0
  136. package/dist/utils/constants.optional.expo.js.map +1 -0
  137. package/dist/utils/constants.optional.js +1 -0
  138. package/dist/utils/constants.optional.js.map +1 -0
  139. package/dist/utils/createStore.d.ts +8 -0
  140. package/dist/utils/createStore.js +1 -0
  141. package/dist/utils/createStore.js.map +1 -0
  142. package/dist/utils/logger.d.ts +1 -1
  143. package/dist/utils/logger.js +1 -1
  144. package/dist/utils/logger.js.map +1 -1
  145. package/dist/utils/nativeModuleTest.d.ts +8 -0
  146. package/dist/utils/nativeModuleTest.js +1 -0
  147. package/dist/utils/nativeModuleTest.js.map +1 -0
  148. package/dist/utils/platform.d.ts +11 -0
  149. package/dist/utils/platform.js +1 -1
  150. package/dist/utils/platform.js.map +1 -1
  151. package/dist/utils/reactNativeHierarchyExtractor.d.ts +38 -0
  152. package/dist/utils/reactNativeHierarchyExtractor.js +1 -0
  153. package/dist/utils/reactNativeHierarchyExtractor.js.map +1 -0
  154. package/dist/utils/rrweb-events.d.ts +4 -3
  155. package/dist/utils/rrweb-events.js +1 -1
  156. package/dist/utils/rrweb-events.js.map +1 -1
  157. package/dist/utils/screenshotMasker.d.ts +96 -0
  158. package/dist/utils/screenshotMasker.js +1 -0
  159. package/dist/utils/screenshotMasker.js.map +1 -0
  160. package/dist/utils/session.d.ts +2 -1
  161. package/dist/utils/session.js +1 -1
  162. package/dist/utils/session.js.map +1 -1
  163. package/dist/utils/shallowEqual.d.ts +1 -0
  164. package/dist/utils/shallowEqual.js +1 -0
  165. package/dist/utils/shallowEqual.js.map +1 -0
  166. package/dist/utils/viewHierarchyTracker.d.ts +89 -0
  167. package/dist/utils/viewHierarchyTracker.js +1 -0
  168. package/dist/utils/viewHierarchyTracker.js.map +1 -0
  169. package/ios/GestureRecorderNative.m +21 -0
  170. package/ios/GestureRecorderNative.swift +316 -0
  171. package/ios/SessionRecorderNative.m +17 -0
  172. package/ios/SessionRecorderNative.podspec +26 -0
  173. package/ios/SessionRecorderNative.swift +599 -0
  174. package/package.json +13 -12
  175. package/react-native.config.js +12 -0
  176. package/RRWEB_INTEGRATION.md +0 -336
  177. package/VIEWSHOT_INTEGRATION_TEST.md +0 -123
  178. package/babel.config.js +0 -13
  179. package/dist/components/GestureCaptureWrapper.d.ts +0 -6
  180. package/dist/components/GestureCaptureWrapper.js +0 -1
  181. package/dist/components/GestureCaptureWrapper.js.map +0 -1
  182. package/dist/expo.d.ts +0 -7
  183. package/dist/expo.js +0 -1
  184. package/dist/expo.js.map +0 -1
  185. package/dist/otel/instrumentations/gestureInstrumentation.d.ts +0 -15
  186. package/dist/otel/instrumentations/gestureInstrumentation.js +0 -1
  187. package/dist/otel/instrumentations/gestureInstrumentation.js.map +0 -1
  188. package/dist/otel/instrumentations/reactNativeInstrumentation.d.ts +0 -8
  189. package/dist/otel/instrumentations/reactNativeInstrumentation.js +0 -1
  190. package/dist/otel/instrumentations/reactNativeInstrumentation.js.map +0 -1
  191. package/dist/otel/instrumentations/reactNavigationInstrumentation.d.ts +0 -13
  192. package/dist/otel/instrumentations/reactNavigationInstrumentation.js +0 -1
  193. package/dist/otel/instrumentations/reactNavigationInstrumentation.js.map +0 -1
  194. package/dist/recorder/gestureHandlerRecorder.d.ts +0 -19
  195. package/dist/recorder/gestureHandlerRecorder.js +0 -1
  196. package/dist/recorder/gestureHandlerRecorder.js.map +0 -1
  197. package/dist/types/rrweb.d.ts +0 -118
  198. package/dist/types/rrweb.js +0 -1
  199. package/dist/types/rrweb.js.map +0 -1
  200. package/scripts/generate-app-metadata.js +0 -173
  201. package/src/components/GestureCaptureWrapper/GestureCaptureWrapper.tsx +0 -86
  202. package/src/components/GestureCaptureWrapper/index.ts +0 -1
  203. package/src/components/ScreenRecorderView/ScreenRecorderView.tsx +0 -72
  204. package/src/components/ScreenRecorderView/index.ts +0 -1
  205. package/src/components/index.ts +0 -1
  206. package/src/config/constants.ts +0 -60
  207. package/src/config/defaults.ts +0 -82
  208. package/src/config/index.ts +0 -6
  209. package/src/config/masking.ts +0 -27
  210. package/src/config/session-recorder.ts +0 -55
  211. package/src/config/validators.ts +0 -31
  212. package/src/context/SessionRecorderContext.tsx +0 -75
  213. package/src/expo.ts +0 -11
  214. package/src/index.ts +0 -17
  215. package/src/otel/helpers.ts +0 -275
  216. package/src/otel/index.ts +0 -138
  217. package/src/otel/instrumentations/index.ts +0 -115
  218. package/src/patch/index.ts +0 -1
  219. package/src/patch/xhr.ts +0 -142
  220. package/src/recorder/eventExporter.ts +0 -141
  221. package/src/recorder/gestureRecorder.ts +0 -498
  222. package/src/recorder/index.ts +0 -179
  223. package/src/recorder/navigationTracker.ts +0 -449
  224. package/src/recorder/screenRecorder.ts +0 -498
  225. package/src/services/api.service.ts +0 -203
  226. package/src/services/storage.service.ts +0 -158
  227. package/src/session-recorder.ts +0 -600
  228. package/src/types/expo.d.ts +0 -23
  229. package/src/types/index.ts +0 -28
  230. package/src/types/session-recorder.ts +0 -423
  231. package/src/types/session.ts +0 -65
  232. package/src/utils/app-metadata.ts +0 -31
  233. package/src/utils/index.ts +0 -8
  234. package/src/utils/logger.ts +0 -225
  235. package/src/utils/platform.ts +0 -384
  236. package/src/utils/request-utils.ts +0 -61
  237. package/src/utils/rrweb-events.ts +0 -309
  238. package/src/utils/session.ts +0 -18
  239. package/src/utils/time.ts +0 -17
  240. package/src/utils/type-utils.ts +0 -75
  241. package/src/version.ts +0 -1
  242. package/tsconfig.json +0 -24
@@ -1,158 +0,0 @@
1
- import AsyncStorage from '@react-native-async-storage/async-storage'
2
- import { SessionType } from '@multiplayer-app/session-recorder-common'
3
- import { ISession, SessionState } from '../types'
4
-
5
- interface CacheData {
6
- sessionId: string | null
7
- sessionType: SessionType | null
8
- sessionState: SessionState | null
9
- sessionObject: ISession | null
10
- }
11
-
12
- export class StorageService {
13
- private static readonly SESSION_ID_KEY = 'session_id'
14
- private static readonly SESSION_TYPE_KEY = 'session_type'
15
- private static readonly SESSION_STATE_KEY = 'session_state'
16
- private static readonly SESSION_OBJECT_KEY = 'session_object'
17
-
18
- private static cache: CacheData = {
19
- sessionId: null,
20
- sessionType: null,
21
- sessionState: null,
22
- sessionObject: null,
23
- }
24
-
25
- private static cacheInitialized = false
26
-
27
- constructor() {
28
- StorageService.initialize()
29
- }
30
-
31
- private static async initializeCache(): Promise<void> {
32
- if (StorageService.cacheInitialized) return
33
-
34
- try {
35
- const [sessionId, sessionType, sessionState, sessionObject] = await Promise.all([
36
- AsyncStorage.getItem(StorageService.SESSION_ID_KEY),
37
- AsyncStorage.getItem(StorageService.SESSION_TYPE_KEY),
38
- AsyncStorage.getItem(StorageService.SESSION_STATE_KEY),
39
- AsyncStorage.getItem(StorageService.SESSION_OBJECT_KEY),
40
- ])
41
-
42
- StorageService.cache = {
43
- sessionId,
44
- sessionType: sessionType as SessionType | null,
45
- sessionState: sessionState as SessionState | null,
46
- sessionObject: sessionObject ? JSON.parse(sessionObject) : null,
47
- }
48
- StorageService.cacheInitialized = true
49
- } catch (error) {
50
- // Failed to initialize cache - silently continue
51
- StorageService.cacheInitialized = true // Mark as initialized to prevent retries
52
- }
53
- }
54
-
55
- saveSessionId(sessionId: string): void {
56
- try {
57
- StorageService.cache.sessionId = sessionId
58
- AsyncStorage.setItem(StorageService.SESSION_ID_KEY, sessionId).catch(error => {
59
- // Failed to persist session ID - silently continue
60
- })
61
- } catch (error) {
62
- // Failed to save session ID - silently continue
63
- throw error
64
- }
65
- }
66
-
67
- getSessionId(): string | null {
68
- return StorageService.cache.sessionId
69
- }
70
-
71
- saveSessionType(sessionType: SessionType): void {
72
- try {
73
- StorageService.cache.sessionType = sessionType
74
- AsyncStorage.setItem(StorageService.SESSION_TYPE_KEY, sessionType).catch(error => {
75
- // Failed to persist session type - silently continue
76
- })
77
- } catch (error) {
78
- // Failed to save session type - silently continue
79
- throw error
80
- }
81
- }
82
-
83
- getSessionType(): SessionType | null {
84
- return StorageService.cache.sessionType
85
- }
86
-
87
- saveSessionState(state: SessionState): void {
88
- try {
89
- StorageService.cache.sessionState = state
90
-
91
- AsyncStorage.setItem(StorageService.SESSION_STATE_KEY, state).catch(error => {
92
- // Failed to persist session state - silently continue
93
- })
94
- } catch (error) {
95
- // Failed to save session state - silently continue
96
- throw error
97
- }
98
- }
99
-
100
- getSessionState(): SessionState | null {
101
- return StorageService.cache.sessionState
102
- }
103
-
104
- saveSessionObject(session: ISession): void {
105
- try {
106
- StorageService.cache.sessionObject = session
107
- AsyncStorage.setItem(StorageService.SESSION_OBJECT_KEY, JSON.stringify(session)).catch(error => {
108
- // Failed to persist session object - silently continue
109
- })
110
- } catch (error) {
111
- // Failed to save session object - silently continue
112
- throw error
113
- }
114
- }
115
-
116
- getSessionObject(): ISession | null {
117
- return StorageService.cache.sessionObject
118
- }
119
-
120
- clearSessionData(): void {
121
- try {
122
- // Clear cache immediately
123
- StorageService.cache = {
124
- sessionId: null,
125
- sessionType: null,
126
- sessionState: null,
127
- sessionObject: null,
128
- }
129
-
130
- // Clear persistent storage asynchronously
131
- AsyncStorage.multiRemove([
132
- StorageService.SESSION_ID_KEY,
133
- StorageService.SESSION_TYPE_KEY,
134
- StorageService.SESSION_STATE_KEY,
135
- StorageService.SESSION_OBJECT_KEY,
136
- ]).catch(error => {
137
- // Failed to clear session data from storage - silently continue
138
- })
139
- } catch (error) {
140
- // Failed to clear session data - silently continue
141
- throw error
142
- }
143
- }
144
-
145
- getAllSessionData(): CacheData {
146
- return {
147
- sessionId: StorageService.cache.sessionId,
148
- sessionType: StorageService.cache.sessionType,
149
- sessionState: StorageService.cache.sessionState,
150
- sessionObject: StorageService.cache.sessionObject,
151
- }
152
- }
153
-
154
- // Initialize cache on first use - call this method when the service is first used
155
- static async initialize(): Promise<void> {
156
- await StorageService.initializeCache()
157
- }
158
- }