@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,166 +0,0 @@
1
- "use strict";
2
-
3
- export class ApiService {
4
- baseUrl = 'https://api.multiplayer.app';
5
- constructor() {
6
- this.config = {
7
- apiKey: '',
8
- apiBaseUrl: '',
9
- exporterEndpoint: ''
10
- };
11
- }
12
- init(config) {
13
- this.config = {
14
- ...this.config,
15
- ...config
16
- };
17
- if (config.apiBaseUrl) {
18
- this.baseUrl = config.apiBaseUrl;
19
- }
20
- }
21
-
22
- /**
23
- * Update the API service configuration
24
- * @param config - Partial configuration to update
25
- */
26
- updateConfigs(config) {
27
- if (this.config) {
28
- this.config = {
29
- ...this.config,
30
- ...config
31
- };
32
- }
33
- }
34
-
35
- /**
36
- * Set the API key
37
- * @param apiKey - The API key to set
38
- */
39
- setApiKey(apiKey) {
40
- if (this.config) {
41
- this.config.apiKey = apiKey;
42
- }
43
- }
44
-
45
- /**
46
- * Create a new error span session
47
- * @param request - Session create error span request data
48
- * @param signal - Optional AbortSignal for request cancellation
49
- */
50
- createErrorSession(request, signal) {
51
- return this.makeRequest('/debug-sessions/error-span/start', 'POST', request, signal);
52
- }
53
- updateSessionAttributes(sessionId, requestBody, signal) {
54
- return this.makeRequest(`/debug-sessions/${sessionId}`, 'PATCH', requestBody, signal);
55
- }
56
-
57
- /**
58
- * Export events to the session debugger API
59
- * @param sessionId - ID of the session to export events
60
- * @param requestBody - Request body containing events
61
- * @param signal - Optional AbortSignal for request cancellation
62
- */
63
- exportEvents(sessionId, requestBody, signal) {
64
- return this.makeRequest(`/debug-sessions/${sessionId}/rrweb-events`, 'POST', requestBody, signal);
65
- }
66
-
67
- /**
68
- * Start a new debug session
69
- * @param request - Session start request data
70
- * @param signal - Optional AbortSignal for request cancellation
71
- */
72
- startSession(request, signal) {
73
- return this.makeRequest('/debug-sessions/start', 'POST', request, signal);
74
- }
75
-
76
- /**
77
- * Stop an active debug session
78
- * @param sessionId - ID of the session to stop
79
- * @param request - Session stop request data
80
- */
81
- stopSession(sessionId, request) {
82
- return this.makeRequest(`/debug-sessions/${sessionId}/stop`, 'PATCH', request);
83
- }
84
-
85
- /**
86
- * Cancel an active debug session
87
- * @param sessionId - ID of the session to cancel
88
- */
89
- cancelSession(sessionId) {
90
- return this.makeRequest(`/debug-sessions/${sessionId}/cancel`, 'DELETE');
91
- }
92
-
93
- /**
94
- * Start a new continuous debug session
95
- * @param request - Session start request data
96
- * @param signal - Optional AbortSignal for request cancellation
97
- */
98
- startContinuousDebugSession(request, signal) {
99
- return this.makeRequest('/continuous-debug-sessions/start', 'POST', request, signal);
100
- }
101
-
102
- /**
103
- * Save a continuous debug session
104
- * @param sessionId - ID of the session to save
105
- * @param request - Session save request data
106
- * @param signal - Optional AbortSignal for request cancellation
107
- */
108
- saveContinuousDebugSession(sessionId, request, signal) {
109
- return this.makeRequest(`/continuous-debug-sessions/${sessionId}/save`, 'POST', request, signal);
110
- }
111
-
112
- /**
113
- * Stop an active continuous debug session
114
- * @param sessionId - ID of the session to stop
115
- */
116
- stopContinuousDebugSession(sessionId) {
117
- return this.makeRequest(`/continuous-debug-sessions/${sessionId}/cancel`, 'DELETE');
118
- }
119
-
120
- /**
121
- * Check debug session should be started remotely
122
- */
123
- checkRemoteSession(requestBody, signal) {
124
- return this.makeRequest('/remote-debug-session/check', 'POST', requestBody, signal);
125
- }
126
-
127
- /**
128
- * Make a request to the session debugger API
129
- * @param path - API endpoint path (relative to the base URL)
130
- * @param method - HTTP method (GET, POST, PATCH, etc.)
131
- * @param body - request payload
132
- * @param signal - AbortSignal to set request's signal
133
- */
134
- async makeRequest(path, method, body, signal) {
135
- const url = `${this.baseUrl}/v0/radar${path}`;
136
- const params = {
137
- method,
138
- body: body ? JSON.stringify(body) : null,
139
- headers: {
140
- 'Content-Type': 'application/json',
141
- ...(this.config?.apiKey && {
142
- 'X-Api-Key': this.config.apiKey
143
- })
144
- }
145
- };
146
- try {
147
- const response = await fetch(url, {
148
- ...params,
149
- signal
150
- });
151
- if (!response.ok) {
152
- throw new Error('Network response was not ok: ' + response.statusText);
153
- }
154
- if (response.status === 204) {
155
- return null;
156
- }
157
- return await response.json();
158
- } catch (error) {
159
- if (error?.name === 'AbortError') {
160
- throw new Error('Request aborted');
161
- }
162
- throw new Error('Error making request: ' + error.message);
163
- }
164
- }
165
- }
166
- //# sourceMappingURL=api.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["ApiService","baseUrl","constructor","config","apiKey","apiBaseUrl","exporterEndpoint","init","updateConfigs","setApiKey","createErrorSession","request","signal","makeRequest","updateSessionAttributes","sessionId","requestBody","exportEvents","startSession","stopSession","cancelSession","startContinuousDebugSession","saveContinuousDebugSession","stopContinuousDebugSession","checkRemoteSession","path","method","body","url","params","JSON","stringify","headers","response","fetch","ok","Error","statusText","status","json","error","name","message"],"sourceRoot":"../../../src","sources":["services/api.service.ts"],"mappings":"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","ignoreList":[]}
@@ -1,280 +0,0 @@
1
- "use strict";
2
-
3
- import { Platform } from 'react-native';
4
- import { EventType } from '@rrweb/types';
5
- import { SpanStatusCode } from '@opentelemetry/api';
6
-
7
- // Safe import for AsyncStorage with web fallback
8
- let AsyncStorage = null;
9
- const isWeb = Platform.OS === 'web';
10
- if (!isWeb) {
11
- try {
12
- AsyncStorage = require('@react-native-async-storage/async-storage').default;
13
- } catch (_error) {
14
- AsyncStorage = null;
15
- }
16
- } else {
17
- AsyncStorage = {
18
- getItem: _key => Promise.resolve(null),
19
- setItem: (_key, _value) => Promise.resolve(undefined),
20
- removeItem: _key => Promise.resolve(undefined),
21
- multiRemove: _keys => Promise.resolve(undefined),
22
- multiGet: _keys => Promise.resolve([]),
23
- multiSet: _pairs => Promise.resolve(undefined)
24
- };
25
- }
26
- const INDEX_KEY = 'mp_crash_buffer_index_v1';
27
- const ATTRS_KEY = 'mp_crash_buffer_attrs_v1';
28
- const RECORD_PREFIX = 'mp_crash_buffer_rec_v1:';
29
- const randomId = () => `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
30
- export class CrashBufferService {
31
- static instance = null;
32
- index = [];
33
- indexLoaded = false;
34
- lastPruneAt = 0;
35
- opChain = Promise.resolve();
36
- defaultWindowMs = 0.5 * 60 * 1000;
37
- lastSeenEventTs = 0;
38
- listeners = new Map();
39
- static getInstance() {
40
- if (!CrashBufferService.instance) {
41
- CrashBufferService.instance = new CrashBufferService();
42
- }
43
- return CrashBufferService.instance;
44
- }
45
- enqueue(fn) {
46
- const next = this.opChain.then(fn, fn);
47
- // Preserve chain, but don't leak rejections.
48
- this.opChain = next.then(() => undefined, () => undefined);
49
- return next;
50
- }
51
- async ensureIndexLoaded() {
52
- if (this.indexLoaded) return;
53
- if (!AsyncStorage) {
54
- this.indexLoaded = true;
55
- this.index = [];
56
- return;
57
- }
58
- try {
59
- const raw = await AsyncStorage.getItem(INDEX_KEY);
60
- this.index = raw ? JSON.parse(raw) : [];
61
- } catch (_e) {
62
- this.index = [];
63
- } finally {
64
- this.indexLoaded = true;
65
- }
66
- }
67
- async setAttrs(attrs) {
68
- return this.enqueue(async () => {
69
- if (!AsyncStorage) return;
70
- try {
71
- await AsyncStorage.setItem(ATTRS_KEY, JSON.stringify(attrs || null));
72
- } catch (_e) {
73
- // best-effort
74
- }
75
- });
76
- }
77
- async appendEvent(payload, windowMs) {
78
- const ts = payload?.ts ?? Date.now();
79
- this.lastSeenEventTs = Math.max(this.lastSeenEventTs, ts);
80
- const rawEventType = payload?.event?.eventType ?? payload?.event?.type;
81
- const isFullSnapshot = Boolean(payload.isFullSnapshot) || rawEventType === EventType.FullSnapshot;
82
- const record = {
83
- ...payload,
84
- ts,
85
- isFullSnapshot
86
- };
87
- return this.appendRecord('rrweb', record.ts, record, windowMs ?? this.defaultWindowMs);
88
- }
89
- async appendSpans(payload, windowMs) {
90
- if (!payload.length) return;
91
- const effectiveWindowMs = windowMs ?? this.defaultWindowMs;
92
- return this.enqueue(async () => {
93
- if (!AsyncStorage) return;
94
- await this.ensureIndexLoaded();
95
- const pairs = [];
96
- let errorEvent = null;
97
- for (const p of payload) {
98
- const id = randomId();
99
- const key = `${RECORD_PREFIX}${id}`;
100
- const entry = {
101
- id,
102
- ts: p.ts,
103
- kind: 'span'
104
- };
105
- this.index.push(entry);
106
- pairs.push([key, JSON.stringify(p)]);
107
- if (!errorEvent && p?.span?.status?.code === SpanStatusCode.ERROR) {
108
- errorEvent = {
109
- ts: p.ts,
110
- span: p.span
111
- };
112
- }
113
- }
114
- try {
115
- await AsyncStorage.multiSet(pairs);
116
- await AsyncStorage.setItem(INDEX_KEY, JSON.stringify(this.index));
117
- } catch (_e) {
118
- // best-effort
119
- }
120
- this.pruneSoon(effectiveWindowMs);
121
- if (errorEvent) {
122
- this._emit('error-span-appended', errorEvent);
123
- }
124
- });
125
- }
126
- setDefaultWindowMs(windowMs) {
127
- this.defaultWindowMs = Math.max(10_000, windowMs || 0.5 * 60 * 1000);
128
- }
129
- on(event, listener) {
130
- const set = this.listeners.get(event) || new Set();
131
- set.add(listener);
132
- this.listeners.set(event, set);
133
- return () => this.off(event, listener);
134
- }
135
- off(event, listener) {
136
- const set = this.listeners.get(event);
137
- if (!set) return;
138
- set.delete(listener);
139
- if (set.size === 0) this.listeners.delete(event);
140
- }
141
- _emit(event, payload) {
142
- const set = this.listeners.get(event);
143
- if (!set || set.size === 0) return;
144
- for (const fn of Array.from(set)) {
145
- try {
146
- fn(payload);
147
- } catch (_e) {
148
- // never throw into app code
149
- }
150
- }
151
- }
152
- async appendRecord(kind, ts, payload, windowMs) {
153
- return this.enqueue(async () => {
154
- if (!AsyncStorage) return;
155
- await this.ensureIndexLoaded();
156
- const id = randomId();
157
- const key = `${RECORD_PREFIX}${id}`;
158
- const entry = {
159
- id,
160
- ts,
161
- kind
162
- };
163
- this.index.push(entry);
164
- try {
165
- await AsyncStorage.setItem(key, JSON.stringify(payload));
166
- await AsyncStorage.setItem(INDEX_KEY, JSON.stringify(this.index));
167
- } catch (_e) {
168
- // best-effort
169
- }
170
- this.pruneSoon(windowMs);
171
- });
172
- }
173
- pruneSoon(windowMs) {
174
- const now = Date.now();
175
- if (now - this.lastPruneAt < 2000) return;
176
- this.lastPruneAt = now;
177
- const cutoff = Math.max(0, now - windowMs);
178
- void this.pruneOlderThan(cutoff);
179
- }
180
- async pruneOlderThan(cutoffTs) {
181
- return this.enqueue(async () => {
182
- if (!AsyncStorage) return;
183
- await this.ensureIndexLoaded();
184
- const toRemove = this.index.filter(e => e.ts < cutoffTs);
185
- if (toRemove.length === 0) return;
186
- const removeKeys = toRemove.map(e => `${RECORD_PREFIX}${e.id}`);
187
- this.index = this.index.filter(e => e.ts >= cutoffTs);
188
- try {
189
- await AsyncStorage.multiRemove(removeKeys);
190
- await AsyncStorage.setItem(INDEX_KEY, JSON.stringify(this.index));
191
- } catch (_e) {
192
- // best-effort
193
- }
194
- });
195
- }
196
- async snapshot(windowMs, now = Date.now()) {
197
- return this.enqueue(async () => {
198
- await this.ensureIndexLoaded();
199
- const effectiveWindowMs = windowMs ?? this.defaultWindowMs;
200
- const toTs = now;
201
- const fromTs = Math.max(0, toTs - effectiveWindowMs);
202
- const entries = this.index.filter(e => e.ts >= fromTs && e.ts <= toTs);
203
- const keys = entries.map(e => `${RECORD_PREFIX}${e.id}`);
204
- let pairs = [];
205
- try {
206
- pairs = AsyncStorage ? await AsyncStorage.multiGet(keys) : [];
207
- } catch (_e) {
208
- pairs = [];
209
- }
210
- const byKey = new Map();
211
- for (const [k, v] of pairs) {
212
- if (!v) continue;
213
- try {
214
- byKey.set(k, JSON.parse(v));
215
- } catch (_e) {
216
- // ignore
217
- }
218
- }
219
- const allEvents = [];
220
- const allSpans = [];
221
- for (const e of entries.sort((a, b) => a.ts - b.ts)) {
222
- const key = `${RECORD_PREFIX}${e.id}`;
223
- const payload = byKey.get(key);
224
- if (!payload) continue;
225
- if (e.kind === 'rrweb') allEvents.push(payload);
226
- if (e.kind === 'span') allSpans.push(payload);
227
- }
228
-
229
- // Mirror browser semantics:
230
- // - Ensure the rrweb stream starts at Meta -> FullSnapshot (or is empty).
231
- // - Only include spans from the replayable window onward.
232
- const eventsSorted = allEvents.slice().sort((a, b) => a.ts - b.ts);
233
- const firstSnapshotIdx = eventsSorted.findIndex(e => {
234
- const t = e?.event?.eventType ?? e?.event?.type;
235
- return t === EventType.FullSnapshot;
236
- });
237
- if (firstSnapshotIdx < 0) {
238
- return {
239
- events: [],
240
- spans: [],
241
- startedAt: fromTs,
242
- stoppedAt: toTs
243
- };
244
- }
245
- let startIdx = firstSnapshotIdx;
246
- for (let i = firstSnapshotIdx - 1; i >= 0; i--) {
247
- const t = eventsSorted[i]?.event?.eventType ?? eventsSorted[i]?.event?.type;
248
- if (t === EventType.Meta) {
249
- startIdx = i;
250
- break;
251
- }
252
- }
253
- const rrwebEvents = eventsSorted.slice(startIdx);
254
- const firstEvent = rrwebEvents[0];
255
- const replayStartedAt = typeof firstEvent?.ts === 'number' ? firstEvent.ts : fromTs;
256
- const otelSpans = allSpans.filter(s => typeof s?.ts === 'number' && s.ts >= replayStartedAt).sort((a, b) => a.ts - b.ts);
257
- return {
258
- spans: otelSpans,
259
- events: rrwebEvents,
260
- stoppedAt: toTs,
261
- startedAt: replayStartedAt
262
- };
263
- });
264
- }
265
- async clear() {
266
- return this.enqueue(async () => {
267
- if (!AsyncStorage) return;
268
- await this.ensureIndexLoaded();
269
- const keys = this.index.map(e => `${RECORD_PREFIX}${e.id}`);
270
- this.index = [];
271
- this.lastSeenEventTs = 0;
272
- try {
273
- await AsyncStorage.multiRemove([INDEX_KEY, ATTRS_KEY, ...keys]);
274
- } catch (_e) {
275
- // best-effort
276
- }
277
- });
278
- }
279
- }
280
- //# sourceMappingURL=crashBuffer.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Platform","EventType","SpanStatusCode","AsyncStorage","isWeb","OS","require","default","_error","getItem","_key","Promise","resolve","setItem","_value","undefined","removeItem","multiRemove","_keys","multiGet","multiSet","_pairs","INDEX_KEY","ATTRS_KEY","RECORD_PREFIX","randomId","Date","now","toString","Math","random","slice","CrashBufferService","instance","index","indexLoaded","lastPruneAt","opChain","defaultWindowMs","lastSeenEventTs","listeners","Map","getInstance","enqueue","fn","next","then","ensureIndexLoaded","raw","JSON","parse","_e","setAttrs","attrs","stringify","appendEvent","payload","windowMs","ts","max","rawEventType","event","eventType","type","isFullSnapshot","Boolean","FullSnapshot","record","appendRecord","appendSpans","length","effectiveWindowMs","pairs","errorEvent","p","id","key","entry","kind","push","span","status","code","ERROR","pruneSoon","_emit","setDefaultWindowMs","on","listener","set","get","Set","add","off","delete","size","Array","from","cutoff","pruneOlderThan","cutoffTs","toRemove","filter","e","removeKeys","map","snapshot","toTs","fromTs","entries","keys","byKey","k","v","allEvents","allSpans","sort","a","b","eventsSorted","firstSnapshotIdx","findIndex","t","events","spans","startedAt","stoppedAt","startIdx","i","Meta","rrwebEvents","firstEvent","replayStartedAt","otelSpans","s","clear"],"sourceRoot":"../../../src","sources":["services/crashBuffer.service.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,SAAS,QAAQ,cAAc;AAWxC,SAASC,cAAc,QAAQ,oBAAoB;;AAEnD;AACA,IAAIC,YAAiB,GAAG,IAAI;AAC5B,MAAMC,KAAK,GAAGJ,QAAQ,CAACK,EAAE,KAAK,KAAK;AAEnC,IAAI,CAACD,KAAK,EAAE;EACV,IAAI;IACFD,YAAY,GAAGG,OAAO,CAAC,2CAA2C,CAAC,CAACC,OAAO;EAC7E,CAAC,CAAC,OAAOC,MAAM,EAAE;IACfL,YAAY,GAAG,IAAI;EACrB;AACF,CAAC,MAAM;EACLA,YAAY,GAAG;IACbM,OAAO,EAAGC,IAAY,IAAKC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;IAChDC,OAAO,EAAEA,CAACH,IAAY,EAAEI,MAAc,KAAKH,OAAO,CAACC,OAAO,CAACG,SAAS,CAAC;IACrEC,UAAU,EAAGN,IAAY,IAAKC,OAAO,CAACC,OAAO,CAACG,SAAS,CAAC;IACxDE,WAAW,EAAGC,KAAe,IAAKP,OAAO,CAACC,OAAO,CAACG,SAAS,CAAC;IAC5DI,QAAQ,EAAGD,KAAe,IAAKP,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC;IAClDQ,QAAQ,EAAGC,MAA+B,IAAKV,OAAO,CAACC,OAAO,CAACG,SAAS;EAC1E,CAAC;AACH;AAUA,MAAMO,SAAS,GAAG,0BAA0B;AAC5C,MAAMC,SAAS,GAAG,0BAA0B;AAC5C,MAAMC,aAAa,GAAG,yBAAyB;AAE/C,MAAMC,QAAQ,GAAGA,CAAA,KACf,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,IAAIC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACF,QAAQ,CAAC,EAAE,CAAC,CAACG,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAEzE,OAAO,MAAMC,kBAAkB,CAAwB;EACrD,OAAeC,QAAQ,GAA8B,IAAI;EAEjDC,KAAK,GAAiB,EAAE;EACxBC,WAAW,GAAG,KAAK;EACnBC,WAAW,GAAG,CAAC;EACfC,OAAO,GAAiB1B,OAAO,CAACC,OAAO,CAAC,CAAC;EACzC0B,eAAe,GAAW,GAAG,GAAG,EAAE,GAAG,IAAI;EACzCC,eAAe,GAAW,CAAC;EAE3BC,SAAS,GAAG,IAAIC,GAAG,CAGzB,CAAC;EAEH,OAAOC,WAAWA,CAAA,EAAuB;IACvC,IAAI,CAACV,kBAAkB,CAACC,QAAQ,EAAE;MAChCD,kBAAkB,CAACC,QAAQ,GAAG,IAAID,kBAAkB,CAAC,CAAC;IACxD;IACA,OAAOA,kBAAkB,CAACC,QAAQ;EACpC;EAEQU,OAAOA,CAAIC,EAAoB,EAAc;IACnD,MAAMC,IAAI,GAAG,IAAI,CAACR,OAAO,CAACS,IAAI,CAACF,EAAE,EAAEA,EAAE,CAAC;IACtC;IACA,IAAI,CAACP,OAAO,GAAGQ,IAAI,CAACC,IAAI,CACtB,MAAM/B,SAAS,EACf,MAAMA,SACR,CAAC;IACD,OAAO8B,IAAI;EACb;EAEA,MAAcE,iBAAiBA,CAAA,EAAkB;IAC/C,IAAI,IAAI,CAACZ,WAAW,EAAE;IACtB,IAAI,CAAChC,YAAY,EAAE;MACjB,IAAI,CAACgC,WAAW,GAAG,IAAI;MACvB,IAAI,CAACD,KAAK,GAAG,EAAE;MACf;IACF;IACA,IAAI;MACF,MAAMc,GAAG,GAAG,MAAM7C,YAAY,CAACM,OAAO,CAACa,SAAS,CAAC;MACjD,IAAI,CAACY,KAAK,GAAGc,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACF,GAAG,CAAC,GAAG,EAAE;IACzC,CAAC,CAAC,OAAOG,EAAE,EAAE;MACX,IAAI,CAACjB,KAAK,GAAG,EAAE;IACjB,CAAC,SAAS;MACR,IAAI,CAACC,WAAW,GAAG,IAAI;IACzB;EACF;EAEA,MAAMiB,QAAQA,CAACC,KAAU,EAAiB;IACxC,OAAO,IAAI,CAACV,OAAO,CAAC,YAAY;MAC9B,IAAI,CAACxC,YAAY,EAAE;MACnB,IAAI;QACF,MAAMA,YAAY,CAACU,OAAO,CAACU,SAAS,EAAE0B,IAAI,CAACK,SAAS,CAACD,KAAK,IAAI,IAAI,CAAC,CAAC;MACtE,CAAC,CAAC,OAAOF,EAAE,EAAE;QACX;MAAA;IAEJ,CAAC,CAAC;EACJ;EAEA,MAAMI,WAAWA,CACfC,OAAqC,EACrCC,QAAiB,EACF;IACf,MAAMC,EAAE,GAAGF,OAAO,EAAEE,EAAE,IAAIhC,IAAI,CAACC,GAAG,CAAC,CAAC;IACpC,IAAI,CAACY,eAAe,GAAGV,IAAI,CAAC8B,GAAG,CAAC,IAAI,CAACpB,eAAe,EAAEmB,EAAE,CAAC;IAEzD,MAAME,YAAY,GACfJ,OAAO,EAAUK,KAAK,EAAEC,SAAS,IAAKN,OAAO,EAAUK,KAAK,EAAEE,IAAI;IACrE,MAAMC,cAAc,GAClBC,OAAO,CAACT,OAAO,CAACQ,cAAc,CAAC,IAC/BJ,YAAY,KAAK3D,SAAS,CAACiE,YAAY;IAEzC,MAAMC,MAAoC,GAAG;MAC3C,GAAGX,OAAO;MACVE,EAAE;MACFM;IACF,CAAC;IAED,OAAO,IAAI,CAACI,YAAY,CACtB,OAAO,EACPD,MAAM,CAACT,EAAE,EACTS,MAAM,EACNV,QAAQ,IAAI,IAAI,CAACnB,eACnB,CAAC;EACH;EAEA,MAAM+B,WAAWA,CACfb,OAAwC,EACxCC,QAAiB,EACF;IACf,IAAI,CAACD,OAAO,CAACc,MAAM,EAAE;IACrB,MAAMC,iBAAiB,GAAGd,QAAQ,IAAI,IAAI,CAACnB,eAAe;IAC1D,OAAO,IAAI,CAACK,OAAO,CAAC,YAAY;MAC9B,IAAI,CAACxC,YAAY,EAAE;MACnB,MAAM,IAAI,CAAC4C,iBAAiB,CAAC,CAAC;MAE9B,MAAMyB,KAA8B,GAAG,EAAE;MACzC,IAAIC,UAAoD,GAAG,IAAI;MAC/D,KAAK,MAAMC,CAAC,IAAIlB,OAAO,EAAE;QACvB,MAAMmB,EAAE,GAAGlD,QAAQ,CAAC,CAAC;QACrB,MAAMmD,GAAG,GAAG,GAAGpD,aAAa,GAAGmD,EAAE,EAAE;QACnC,MAAME,KAAiB,GAAG;UAAEF,EAAE;UAAEjB,EAAE,EAAEgB,CAAC,CAAChB,EAAE;UAAEoB,IAAI,EAAE;QAAO,CAAC;QACxD,IAAI,CAAC5C,KAAK,CAAC6C,IAAI,CAACF,KAAK,CAAC;QACtBL,KAAK,CAACO,IAAI,CAAC,CAACH,GAAG,EAAE3B,IAAI,CAACK,SAAS,CAACoB,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAACD,UAAU,IAAIC,CAAC,EAAEM,IAAI,EAAEC,MAAM,EAAEC,IAAI,KAAKhF,cAAc,CAACiF,KAAK,EAAE;UACjEV,UAAU,GAAG;YAAEf,EAAE,EAAEgB,CAAC,CAAChB,EAAE;YAAEsB,IAAI,EAAEN,CAAC,CAACM;UAAK,CAAC;QACzC;MACF;MAEA,IAAI;QACF,MAAM7E,YAAY,CAACiB,QAAQ,CAACoD,KAAK,CAAC;QAClC,MAAMrE,YAAY,CAACU,OAAO,CAACS,SAAS,EAAE2B,IAAI,CAACK,SAAS,CAAC,IAAI,CAACpB,KAAK,CAAC,CAAC;MACnE,CAAC,CAAC,OAAOiB,EAAE,EAAE;QACX;MAAA;MAGF,IAAI,CAACiC,SAAS,CAACb,iBAAiB,CAAC;MAEjC,IAAIE,UAAU,EAAE;QACd,IAAI,CAACY,KAAK,CAAC,qBAAqB,EAAEZ,UAAU,CAAC;MAC/C;IACF,CAAC,CAAC;EACJ;EAEAa,kBAAkBA,CAAC7B,QAAgB,EAAQ;IACzC,IAAI,CAACnB,eAAe,GAAGT,IAAI,CAAC8B,GAAG,CAAC,MAAM,EAAEF,QAAQ,IAAI,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;EACtE;EAEA8B,EAAEA,CACA1B,KAAQ,EACR2B,QAAmD,EACvC;IACZ,MAAMC,GAAG,GAAG,IAAI,CAACjD,SAAS,CAACkD,GAAG,CAAC7B,KAAK,CAAC,IAAI,IAAI8B,GAAG,CAAC,CAAC;IAClDF,GAAG,CAACG,GAAG,CAACJ,QAAe,CAAC;IACxB,IAAI,CAAChD,SAAS,CAACiD,GAAG,CAAC5B,KAAK,EAAE4B,GAAU,CAAC;IACrC,OAAO,MAAM,IAAI,CAACI,GAAG,CAAChC,KAAK,EAAE2B,QAAe,CAAC;EAC/C;EAEAK,GAAGA,CACDhC,KAAQ,EACR2B,QAAmD,EAC7C;IACN,MAAMC,GAAG,GAAG,IAAI,CAACjD,SAAS,CAACkD,GAAG,CAAC7B,KAAK,CAAC;IACrC,IAAI,CAAC4B,GAAG,EAAE;IACVA,GAAG,CAACK,MAAM,CAACN,QAAe,CAAC;IAC3B,IAAIC,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE,IAAI,CAACvD,SAAS,CAACsD,MAAM,CAACjC,KAAK,CAAC;EAClD;EAEQwB,KAAKA,CACXxB,KAAQ,EACRL,OAA+B,EACzB;IACN,MAAMiC,GAAG,GAAG,IAAI,CAACjD,SAAS,CAACkD,GAAG,CAAC7B,KAAK,CAAC;IACrC,IAAI,CAAC4B,GAAG,IAAIA,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE;IAC5B,KAAK,MAAMnD,EAAE,IAAIoD,KAAK,CAACC,IAAI,CAACR,GAAG,CAAC,EAAE;MAChC,IAAI;QACD7C,EAAE,CAASY,OAAO,CAAC;MACtB,CAAC,CAAC,OAAOL,EAAE,EAAE;QACX;MAAA;IAEJ;EACF;EAEA,MAAciB,YAAYA,CACxBU,IAAgB,EAChBpB,EAAU,EACVF,OAAY,EACZC,QAAgB,EACD;IACf,OAAO,IAAI,CAACd,OAAO,CAAC,YAAY;MAC9B,IAAI,CAACxC,YAAY,EAAE;MACnB,MAAM,IAAI,CAAC4C,iBAAiB,CAAC,CAAC;MAE9B,MAAM4B,EAAE,GAAGlD,QAAQ,CAAC,CAAC;MACrB,MAAMmD,GAAG,GAAG,GAAGpD,aAAa,GAAGmD,EAAE,EAAE;MACnC,MAAME,KAAiB,GAAG;QAAEF,EAAE;QAAEjB,EAAE;QAAEoB;MAAK,CAAC;MAC1C,IAAI,CAAC5C,KAAK,CAAC6C,IAAI,CAACF,KAAK,CAAC;MAEtB,IAAI;QACF,MAAM1E,YAAY,CAACU,OAAO,CAAC+D,GAAG,EAAE3B,IAAI,CAACK,SAAS,CAACE,OAAO,CAAC,CAAC;QACxD,MAAMrD,YAAY,CAACU,OAAO,CAACS,SAAS,EAAE2B,IAAI,CAACK,SAAS,CAAC,IAAI,CAACpB,KAAK,CAAC,CAAC;MACnE,CAAC,CAAC,OAAOiB,EAAE,EAAE;QACX;MAAA;MAGF,IAAI,CAACiC,SAAS,CAAC3B,QAAQ,CAAC;IAC1B,CAAC,CAAC;EACJ;EAEQ2B,SAASA,CAAC3B,QAAgB,EAAE;IAClC,MAAM9B,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,CAAC;IACtB,IAAIA,GAAG,GAAG,IAAI,CAACS,WAAW,GAAG,IAAI,EAAE;IACnC,IAAI,CAACA,WAAW,GAAGT,GAAG;IACtB,MAAMuE,MAAM,GAAGrE,IAAI,CAAC8B,GAAG,CAAC,CAAC,EAAEhC,GAAG,GAAG8B,QAAQ,CAAC;IAC1C,KAAK,IAAI,CAAC0C,cAAc,CAACD,MAAM,CAAC;EAClC;EAEA,MAAMC,cAAcA,CAACC,QAAgB,EAAiB;IACpD,OAAO,IAAI,CAACzD,OAAO,CAAC,YAAY;MAC9B,IAAI,CAACxC,YAAY,EAAE;MACnB,MAAM,IAAI,CAAC4C,iBAAiB,CAAC,CAAC;MAC9B,MAAMsD,QAAQ,GAAG,IAAI,CAACnE,KAAK,CAACoE,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAAC7C,EAAE,GAAG0C,QAAQ,CAAC;MAC1D,IAAIC,QAAQ,CAAC/B,MAAM,KAAK,CAAC,EAAE;MAE3B,MAAMkC,UAAU,GAAGH,QAAQ,CAACI,GAAG,CAAEF,CAAC,IAAK,GAAG/E,aAAa,GAAG+E,CAAC,CAAC5B,EAAE,EAAE,CAAC;MACjE,IAAI,CAACzC,KAAK,GAAG,IAAI,CAACA,KAAK,CAACoE,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAAC7C,EAAE,IAAI0C,QAAQ,CAAC;MAEvD,IAAI;QACF,MAAMjG,YAAY,CAACc,WAAW,CAACuF,UAAU,CAAC;QAC1C,MAAMrG,YAAY,CAACU,OAAO,CAACS,SAAS,EAAE2B,IAAI,CAACK,SAAS,CAAC,IAAI,CAACpB,KAAK,CAAC,CAAC;MACnE,CAAC,CAAC,OAAOiB,EAAE,EAAE;QACX;MAAA;IAEJ,CAAC,CAAC;EACJ;EAEA,MAAMuD,QAAQA,CACZjD,QAAiB,EACjB9B,GAAW,GAAGD,IAAI,CAACC,GAAG,CAAC,CAAC,EACM;IAC9B,OAAO,IAAI,CAACgB,OAAO,CAAC,YAAY;MAC9B,MAAM,IAAI,CAACI,iBAAiB,CAAC,CAAC;MAC9B,MAAMwB,iBAAiB,GAAGd,QAAQ,IAAI,IAAI,CAACnB,eAAe;MAC1D,MAAMqE,IAAI,GAAGhF,GAAG;MAChB,MAAMiF,MAAM,GAAG/E,IAAI,CAAC8B,GAAG,CAAC,CAAC,EAAEgD,IAAI,GAAGpC,iBAAiB,CAAC;MACpD,MAAMsC,OAAO,GAAG,IAAI,CAAC3E,KAAK,CAACoE,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAAC7C,EAAE,IAAIkD,MAAM,IAAIL,CAAC,CAAC7C,EAAE,IAAIiD,IAAI,CAAC;MACxE,MAAMG,IAAI,GAAGD,OAAO,CAACJ,GAAG,CAAEF,CAAC,IAAK,GAAG/E,aAAa,GAAG+E,CAAC,CAAC5B,EAAE,EAAE,CAAC;MAE1D,IAAIH,KAAqC,GAAG,EAAE;MAC9C,IAAI;QACFA,KAAK,GAAGrE,YAAY,GAAG,MAAMA,YAAY,CAACgB,QAAQ,CAAC2F,IAAI,CAAC,GAAG,EAAE;MAC/D,CAAC,CAAC,OAAO3D,EAAE,EAAE;QACXqB,KAAK,GAAG,EAAE;MACZ;MAEA,MAAMuC,KAAK,GAAG,IAAItE,GAAG,CAAc,CAAC;MACpC,KAAK,MAAM,CAACuE,CAAC,EAAEC,CAAC,CAAC,IAAIzC,KAAK,EAAE;QAC1B,IAAI,CAACyC,CAAC,EAAE;QACR,IAAI;UACFF,KAAK,CAACtB,GAAG,CAACuB,CAAC,EAAE/D,IAAI,CAACC,KAAK,CAAC+D,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,OAAO9D,EAAE,EAAE;UACX;QAAA;MAEJ;MAEA,MAAM+D,SAAyC,GAAG,EAAE;MACpD,MAAMC,QAAsC,GAAG,EAAE;MAEjD,KAAK,MAAMZ,CAAC,IAAIM,OAAO,CAACO,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAAC3D,EAAE,GAAG4D,CAAC,CAAC5D,EAAE,CAAC,EAAE;QACnD,MAAMkB,GAAG,GAAG,GAAGpD,aAAa,GAAG+E,CAAC,CAAC5B,EAAE,EAAE;QACrC,MAAMnB,OAAO,GAAGuD,KAAK,CAACrB,GAAG,CAACd,GAAG,CAAC;QAC9B,IAAI,CAACpB,OAAO,EAAE;QACd,IAAI+C,CAAC,CAACzB,IAAI,KAAK,OAAO,EAAEoC,SAAS,CAACnC,IAAI,CAACvB,OAAO,CAAC;QAC/C,IAAI+C,CAAC,CAACzB,IAAI,KAAK,MAAM,EAAEqC,QAAQ,CAACpC,IAAI,CAACvB,OAAO,CAAC;MAC/C;;MAEA;MACA;MACA;MACA,MAAM+D,YAAY,GAAGL,SAAS,CAACnF,KAAK,CAAC,CAAC,CAACqF,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAAC3D,EAAE,GAAG4D,CAAC,CAAC5D,EAAE,CAAC;MAClE,MAAM8D,gBAAgB,GAAGD,YAAY,CAACE,SAAS,CAAElB,CAAC,IAAK;QACrD,MAAMmB,CAAC,GAAInB,CAAC,EAAU1C,KAAK,EAAEC,SAAS,IAAKyC,CAAC,EAAU1C,KAAK,EAAEE,IAAI;QACjE,OAAO2D,CAAC,KAAKzH,SAAS,CAACiE,YAAY;MACrC,CAAC,CAAC;MAEF,IAAIsD,gBAAgB,GAAG,CAAC,EAAE;QACxB,OAAO;UACLG,MAAM,EAAE,EAAE;UACVC,KAAK,EAAE,EAAE;UACTC,SAAS,EAAEjB,MAAM;UACjBkB,SAAS,EAAEnB;QACb,CAAC;MACH;MAEA,IAAIoB,QAAQ,GAAGP,gBAAgB;MAC/B,KAAK,IAAIQ,CAAC,GAAGR,gBAAgB,GAAG,CAAC,EAAEQ,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QAC9C,MAAMN,CAAC,GACJH,YAAY,CAACS,CAAC,CAAC,EAAUnE,KAAK,EAAEC,SAAS,IACzCyD,YAAY,CAACS,CAAC,CAAC,EAAUnE,KAAK,EAAEE,IAAI;QACvC,IAAI2D,CAAC,KAAKzH,SAAS,CAACgI,IAAI,EAAE;UACxBF,QAAQ,GAAGC,CAAC;UACZ;QACF;MACF;MAEA,MAAME,WAAW,GAAGX,YAAY,CAACxF,KAAK,CAACgG,QAAQ,CAAC;MAChD,MAAMI,UAAU,GAAGD,WAAW,CAAC,CAAC,CAAC;MACjC,MAAME,eAAe,GACnB,OAAOD,UAAU,EAAEzE,EAAE,KAAK,QAAQ,GAAGyE,UAAU,CAACzE,EAAE,GAAGkD,MAAM;MAE7D,MAAMyB,SAAS,GAAGlB,QAAQ,CACvBb,MAAM,CAAEgC,CAAC,IAAK,OAAOA,CAAC,EAAE5E,EAAE,KAAK,QAAQ,IAAI4E,CAAC,CAAC5E,EAAE,IAAI0E,eAAe,CAAC,CACnEhB,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAAC3D,EAAE,GAAG4D,CAAC,CAAC5D,EAAE,CAAC;MAE9B,OAAO;QACLkE,KAAK,EAAES,SAAS;QAChBV,MAAM,EAAEO,WAAW;QACnBJ,SAAS,EAAEnB,IAAI;QACfkB,SAAS,EAAEO;MACb,CAAC;IACH,CAAC,CAAC;EACJ;EAEA,MAAMG,KAAKA,CAAA,EAAkB;IAC3B,OAAO,IAAI,CAAC5F,OAAO,CAAC,YAAY;MAC9B,IAAI,CAACxC,YAAY,EAAE;MACnB,MAAM,IAAI,CAAC4C,iBAAiB,CAAC,CAAC;MAC9B,MAAM+D,IAAI,GAAG,IAAI,CAAC5E,KAAK,CAACuE,GAAG,CAAEF,CAAC,IAAK,GAAG/E,aAAa,GAAG+E,CAAC,CAAC5B,EAAE,EAAE,CAAC;MAC7D,IAAI,CAACzC,KAAK,GAAG,EAAE;MACf,IAAI,CAACK,eAAe,GAAG,CAAC;MACxB,IAAI;QACF,MAAMpC,YAAY,CAACc,WAAW,CAAC,CAACK,SAAS,EAAEC,SAAS,EAAE,GAAGuF,IAAI,CAAC,CAAC;MACjE,CAAC,CAAC,OAAO3D,EAAE,EAAE;QACX;MAAA;IAEJ,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
@@ -1,178 +0,0 @@
1
- "use strict";
2
-
3
- import { Platform } from 'react-native';
4
- import { logger } from "../utils/index.js";
5
- import { sessionRecorderStore } from "../context/SessionRecorderStore.js";
6
-
7
- // Safe import for NetInfo with web fallback
8
- let NetInfo = null;
9
- const isWeb = Platform.OS === 'web';
10
- if (!isWeb) {
11
- try {
12
- NetInfo = require('@react-native-community/netinfo').default;
13
- } catch (error) {
14
- console.warn('NetInfo not available:', error);
15
- }
16
- } else {
17
- // Web fallback using navigator.onLine
18
- NetInfo = {
19
- fetch: () => Promise.resolve({
20
- isConnected: true,
21
- // Default to connected for web
22
- type: 'unknown',
23
- isInternetReachable: true
24
- }),
25
- addEventListener: _callback => {
26
- // Return a no-op function for web
27
- return () => {};
28
- }
29
- };
30
- }
31
- export class NetworkService {
32
- static instance = null;
33
- _isOnline = true;
34
- unsubscribe = null;
35
- callbacks = [];
36
- constructor() {
37
- // Private constructor for singleton
38
- }
39
- static getInstance() {
40
- if (!NetworkService.instance) {
41
- NetworkService.instance = new NetworkService();
42
- }
43
- return NetworkService.instance;
44
- }
45
-
46
- /**
47
- * Initialize network monitoring
48
- */
49
- async init() {
50
- try {
51
- // Get initial network state
52
- const initialState = await NetInfo.fetch();
53
- this._isOnline = initialState.isConnected ?? true;
54
-
55
- // Update store with initial state
56
- sessionRecorderStore.setState({
57
- isOnline: this._isOnline
58
- });
59
-
60
- // Notify callbacks
61
- this.notifyCallbacks({
62
- isConnected: this._isOnline,
63
- type: initialState.type,
64
- isInternetReachable: initialState.isInternetReachable
65
- });
66
-
67
- // Listen for network state changes
68
- this.unsubscribe = NetInfo.addEventListener(state => {
69
- const wasOnline = this._isOnline;
70
- this._isOnline = state.isConnected ?? true;
71
-
72
- // Update store
73
- sessionRecorderStore.setState({
74
- isOnline: this._isOnline
75
- });
76
-
77
- // Notify callbacks
78
- this.notifyCallbacks({
79
- isConnected: this._isOnline,
80
- type: state.type,
81
- isInternetReachable: state.isInternetReachable
82
- });
83
-
84
- // Log state changes
85
- if (wasOnline && !this._isOnline) {
86
- logger.info('NetworkService', 'Network went offline');
87
- } else if (!wasOnline && this._isOnline) {
88
- logger.info('NetworkService', 'Network came back online');
89
- }
90
- });
91
- logger.info('NetworkService', 'Network monitoring initialized');
92
- } catch (error) {
93
- logger.error('NetworkService', 'Failed to initialize network monitoring', error);
94
- }
95
- }
96
-
97
- /**
98
- * Get current network state
99
- */
100
- getCurrentState() {
101
- return {
102
- isConnected: this._isOnline,
103
- type: null,
104
- // We don't store this in the service
105
- isInternetReachable: null // We don't store this in the service
106
- };
107
- }
108
-
109
- /**
110
- * Check if device is online
111
- */
112
- isOnline() {
113
- return this._isOnline;
114
- }
115
-
116
- /**
117
- * Add callback for network state changes
118
- */
119
- addCallback(callback) {
120
- this.callbacks.push(callback);
121
- }
122
-
123
- /**
124
- * Remove callback for network state changes
125
- */
126
- removeCallback(callback) {
127
- this.callbacks = this.callbacks.filter(cb => cb !== callback);
128
- }
129
-
130
- /**
131
- * Notify all callbacks of network state change
132
- */
133
- notifyCallbacks(state) {
134
- this.callbacks.forEach(callback => {
135
- try {
136
- callback(state);
137
- } catch (error) {
138
- logger.error('NetworkService', 'Error in network state callback', error);
139
- }
140
- });
141
- }
142
-
143
- /**
144
- * Cleanup network monitoring
145
- */
146
- cleanup() {
147
- if (this.unsubscribe) {
148
- this.unsubscribe();
149
- this.unsubscribe = null;
150
- }
151
- this.callbacks = [];
152
- logger.info('NetworkService', 'Network monitoring cleaned up');
153
- }
154
-
155
- /**
156
- * Force refresh network state
157
- */
158
- async refresh() {
159
- try {
160
- const state = await NetInfo.fetch();
161
- this._isOnline = state.isConnected ?? true;
162
- sessionRecorderStore.setState({
163
- isOnline: this._isOnline
164
- });
165
- const networkState = {
166
- isConnected: this._isOnline,
167
- type: state.type,
168
- isInternetReachable: state.isInternetReachable
169
- };
170
- this.notifyCallbacks(networkState);
171
- return networkState;
172
- } catch (error) {
173
- logger.error('NetworkService', 'Failed to refresh network state', error);
174
- throw error;
175
- }
176
- }
177
- }
178
- //# sourceMappingURL=network.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Platform","logger","sessionRecorderStore","NetInfo","isWeb","OS","require","default","error","console","warn","fetch","Promise","resolve","isConnected","type","isInternetReachable","addEventListener","_callback","NetworkService","instance","_isOnline","unsubscribe","callbacks","constructor","getInstance","init","initialState","setState","isOnline","notifyCallbacks","state","wasOnline","info","getCurrentState","addCallback","callback","push","removeCallback","filter","cb","forEach","cleanup","refresh","networkState"],"sourceRoot":"../../../src","sources":["services/network.service.ts"],"mappings":"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","ignoreList":[]}