@multiplayer-app/session-recorder-react-native 1.0.1-beta.2 → 1.0.1-beta.4

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 (465) hide show
  1. package/LICENSE +1 -2
  2. package/README.md +216 -155
  3. package/SessionRecorderNative.podspec +9 -14
  4. package/android/build.gradle +21 -41
  5. package/android/gradle.properties +4 -4
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/java/com/multiplayer/sessionrecordernative/SessionRecorderNativeConfig.kt +52 -0
  8. package/android/src/main/java/com/multiplayer/sessionrecordernative/SessionRecorderNativeModule.kt +860 -0
  9. package/android/src/main/java/com/multiplayer/sessionrecordernative/SessionRecorderNativeModuleSpec.kt +51 -0
  10. package/android/src/main/java/com/multiplayer/sessionrecordernative/SessionRecorderNativePackage.kt +33 -0
  11. package/android/src/main/java/com/multiplayer/sessionrecordernative/model/TargetInfo.kt +9 -0
  12. package/android/src/main/java/com/multiplayer/sessionrecordernative/util/ViewUtils.kt +72 -0
  13. package/android/src/main/java/com/xxx/XxxModule.kt +23 -0
  14. package/ios/GestureTargetFinder.swift +50 -0
  15. package/ios/SessionRecorderNative.podspec +4 -2
  16. package/ios/SessionRecorderNative.swift +10 -1
  17. package/ios/SessionRecorderNativeSpec.swift +55 -0
  18. package/ios/Xxx.h +5 -0
  19. package/ios/Xxx.mm +21 -0
  20. package/lib/module/components/ScreenRecorderView/ScreenRecorderView.js +23 -0
  21. package/lib/module/components/ScreenRecorderView/ScreenRecorderView.js.map +1 -0
  22. package/lib/module/components/ScreenRecorderView/index.js +4 -0
  23. package/lib/module/components/ScreenRecorderView/index.js.map +1 -0
  24. package/lib/module/components/SessionRecorderWidget/ErrorBanner.js +64 -0
  25. package/lib/module/components/SessionRecorderWidget/ErrorBanner.js.map +1 -0
  26. package/lib/module/components/SessionRecorderWidget/FinalPopover.js +74 -0
  27. package/lib/module/components/SessionRecorderWidget/FinalPopover.js.map +1 -0
  28. package/lib/module/components/SessionRecorderWidget/FloatingButton.js +191 -0
  29. package/lib/module/components/SessionRecorderWidget/FloatingButton.js.map +1 -0
  30. package/lib/module/components/SessionRecorderWidget/InitialPopover.js +138 -0
  31. package/lib/module/components/SessionRecorderWidget/InitialPopover.js.map +1 -0
  32. package/lib/module/components/SessionRecorderWidget/ModalContainer.js +177 -0
  33. package/lib/module/components/SessionRecorderWidget/ModalContainer.js.map +1 -0
  34. package/lib/module/components/SessionRecorderWidget/ModalHeader.js +27 -0
  35. package/lib/module/components/SessionRecorderWidget/ModalHeader.js.map +1 -0
  36. package/lib/module/components/SessionRecorderWidget/SessionRecorderWidget.js +133 -0
  37. package/lib/module/components/SessionRecorderWidget/SessionRecorderWidget.js.map +1 -0
  38. package/lib/module/components/SessionRecorderWidget/icons.js +93 -0
  39. package/lib/module/components/SessionRecorderWidget/icons.js.map +1 -0
  40. package/lib/module/components/SessionRecorderWidget/index.js +5 -0
  41. package/lib/module/components/SessionRecorderWidget/index.js.map +1 -0
  42. package/lib/module/components/SessionRecorderWidget/styles.js +173 -0
  43. package/lib/module/components/SessionRecorderWidget/styles.js.map +1 -0
  44. package/lib/module/components/index.js +5 -0
  45. package/lib/module/components/index.js.map +1 -0
  46. package/lib/module/config/constants.js +42 -0
  47. package/lib/module/config/constants.js.map +1 -0
  48. package/lib/module/config/defaults.js +81 -0
  49. package/lib/module/config/defaults.js.map +1 -0
  50. package/lib/module/config/index.js +9 -0
  51. package/lib/module/config/index.js.map +1 -0
  52. package/lib/module/config/masking.js +35 -0
  53. package/lib/module/config/masking.js.map +1 -0
  54. package/lib/module/config/session-recorder.js +44 -0
  55. package/lib/module/config/session-recorder.js.map +1 -0
  56. package/lib/module/config/validators.js +28 -0
  57. package/lib/module/config/validators.js.map +1 -0
  58. package/lib/module/config/widget.js +35 -0
  59. package/lib/module/config/widget.js.map +1 -0
  60. package/lib/module/context/SessionRecorderContext.js +93 -0
  61. package/lib/module/context/SessionRecorderContext.js.map +1 -0
  62. package/lib/module/context/SessionRecorderStore.js +12 -0
  63. package/lib/module/context/SessionRecorderStore.js.map +1 -0
  64. package/lib/module/context/useSessionRecorderStore.js +20 -0
  65. package/lib/module/context/useSessionRecorderStore.js.map +1 -0
  66. package/lib/module/context/useStoreSelector.js +27 -0
  67. package/lib/module/context/useStoreSelector.js.map +1 -0
  68. package/lib/module/index.js +13 -0
  69. package/lib/module/index.js.map +1 -0
  70. package/lib/module/native/SessionRecorderNative.js +74 -0
  71. package/lib/module/native/SessionRecorderNative.js.map +1 -0
  72. package/lib/module/native/index.js +4 -0
  73. package/lib/module/native/index.js.map +1 -0
  74. package/lib/module/otel/helpers.js +218 -0
  75. package/lib/module/otel/helpers.js.map +1 -0
  76. package/lib/module/otel/index.js +95 -0
  77. package/lib/module/otel/index.js.map +1 -0
  78. package/lib/module/otel/instrumentations/index.js +102 -0
  79. package/lib/module/otel/instrumentations/index.js.map +1 -0
  80. package/lib/module/package.json +1 -0
  81. package/lib/module/patch/index.js +4 -0
  82. package/lib/module/patch/index.js.map +1 -0
  83. package/lib/module/patch/xhr.js +116 -0
  84. package/lib/module/patch/xhr.js.map +1 -0
  85. package/lib/module/recorder/eventExporter.js +130 -0
  86. package/lib/module/recorder/eventExporter.js.map +1 -0
  87. package/lib/module/recorder/gestureRecorder.js +641 -0
  88. package/lib/module/recorder/gestureRecorder.js.map +1 -0
  89. package/lib/module/recorder/index.js +168 -0
  90. package/lib/module/recorder/index.js.map +1 -0
  91. package/lib/module/recorder/navigationTracker.js +228 -0
  92. package/lib/module/recorder/navigationTracker.js.map +1 -0
  93. package/lib/module/recorder/screenRecorder.js +495 -0
  94. package/lib/module/recorder/screenRecorder.js.map +1 -0
  95. package/lib/module/services/api.service.js +149 -0
  96. package/lib/module/services/api.service.js.map +1 -0
  97. package/lib/module/services/network.service.js +178 -0
  98. package/lib/module/services/network.service.js.map +1 -0
  99. package/lib/module/services/screenMaskingService.js +107 -0
  100. package/lib/module/services/screenMaskingService.js.map +1 -0
  101. package/lib/module/services/storage.service.js +179 -0
  102. package/lib/module/services/storage.service.js.map +1 -0
  103. package/lib/module/session-recorder.js +541 -0
  104. package/lib/module/session-recorder.js.map +1 -0
  105. package/lib/module/types/configs.js +4 -0
  106. package/lib/module/types/configs.js.map +1 -0
  107. package/lib/module/types/expo-constants.d.js +2 -0
  108. package/lib/module/types/expo-constants.d.js.map +1 -0
  109. package/lib/module/types/index.js +11 -0
  110. package/lib/module/types/index.js.map +1 -0
  111. package/lib/module/types/session-recorder.js +68 -0
  112. package/lib/module/types/session-recorder.js.map +1 -0
  113. package/lib/module/types/session.js +9 -0
  114. package/lib/module/types/session.js.map +1 -0
  115. package/lib/module/utils/app-metadata.js +28 -0
  116. package/lib/module/utils/app-metadata.js.map +1 -0
  117. package/lib/module/utils/constants.optional.expo.js +6 -0
  118. package/lib/module/utils/constants.optional.expo.js.map +1 -0
  119. package/lib/module/utils/constants.optional.js +8 -0
  120. package/lib/module/utils/constants.optional.js.map +1 -0
  121. package/lib/module/utils/createStore.js +27 -0
  122. package/lib/module/utils/createStore.js.map +1 -0
  123. package/lib/module/utils/index.js +11 -0
  124. package/lib/module/utils/index.js.map +1 -0
  125. package/lib/module/utils/logger.js +193 -0
  126. package/lib/module/utils/logger.js.map +1 -0
  127. package/lib/module/utils/platform.js +340 -0
  128. package/lib/module/utils/platform.js.map +1 -0
  129. package/lib/module/utils/request-utils.js +58 -0
  130. package/lib/module/utils/request-utils.js.map +1 -0
  131. package/lib/module/utils/rrweb-events.js +276 -0
  132. package/lib/module/utils/rrweb-events.js.map +1 -0
  133. package/lib/module/utils/session.js +21 -0
  134. package/lib/module/utils/session.js.map +1 -0
  135. package/lib/module/utils/shallowEqual.js +17 -0
  136. package/lib/module/utils/shallowEqual.js.map +1 -0
  137. package/lib/module/utils/time.js +17 -0
  138. package/lib/module/utils/time.js.map +1 -0
  139. package/lib/module/utils/type-utils.js +69 -0
  140. package/lib/module/utils/type-utils.js.map +1 -0
  141. package/lib/module/version.js +4 -0
  142. package/lib/module/version.js.map +1 -0
  143. package/lib/typescript/package.json +1 -0
  144. package/lib/typescript/src/components/ScreenRecorderView/ScreenRecorderView.d.ts +6 -0
  145. package/lib/typescript/src/components/ScreenRecorderView/ScreenRecorderView.d.ts.map +1 -0
  146. package/lib/typescript/src/components/ScreenRecorderView/index.d.ts +2 -0
  147. package/lib/typescript/src/components/ScreenRecorderView/index.d.ts.map +1 -0
  148. package/{dist → lib/typescript/src}/components/SessionRecorderWidget/ErrorBanner.d.ts +1 -0
  149. package/lib/typescript/src/components/SessionRecorderWidget/ErrorBanner.d.ts.map +1 -0
  150. package/{dist → lib/typescript/src}/components/SessionRecorderWidget/FinalPopover.d.ts +2 -1
  151. package/lib/typescript/src/components/SessionRecorderWidget/FinalPopover.d.ts.map +1 -0
  152. package/{dist → lib/typescript/src}/components/SessionRecorderWidget/FloatingButton.d.ts +1 -0
  153. package/lib/typescript/src/components/SessionRecorderWidget/FloatingButton.d.ts.map +1 -0
  154. package/{dist → lib/typescript/src}/components/SessionRecorderWidget/InitialPopover.d.ts +2 -1
  155. package/lib/typescript/src/components/SessionRecorderWidget/InitialPopover.d.ts.map +1 -0
  156. package/{dist → lib/typescript/src}/components/SessionRecorderWidget/ModalContainer.d.ts +1 -0
  157. package/lib/typescript/src/components/SessionRecorderWidget/ModalContainer.d.ts.map +1 -0
  158. package/{dist → lib/typescript/src}/components/SessionRecorderWidget/ModalHeader.d.ts +1 -0
  159. package/lib/typescript/src/components/SessionRecorderWidget/ModalHeader.d.ts.map +1 -0
  160. package/{dist → lib/typescript/src}/components/SessionRecorderWidget/SessionRecorderWidget.d.ts +1 -0
  161. package/lib/typescript/src/components/SessionRecorderWidget/SessionRecorderWidget.d.ts.map +1 -0
  162. package/{dist → lib/typescript/src}/components/SessionRecorderWidget/icons.d.ts +1 -0
  163. package/lib/typescript/src/components/SessionRecorderWidget/icons.d.ts.map +1 -0
  164. package/lib/typescript/src/components/SessionRecorderWidget/index.d.ts +3 -0
  165. package/lib/typescript/src/components/SessionRecorderWidget/index.d.ts.map +1 -0
  166. package/{dist → lib/typescript/src}/components/SessionRecorderWidget/styles.d.ts +4 -3
  167. package/lib/typescript/src/components/SessionRecorderWidget/styles.d.ts.map +1 -0
  168. package/{dist → lib/typescript/src}/components/index.d.ts +1 -0
  169. package/lib/typescript/src/components/index.d.ts.map +1 -0
  170. package/{dist → lib/typescript/src}/config/constants.d.ts +1 -0
  171. package/lib/typescript/src/config/constants.d.ts.map +1 -0
  172. package/{dist → lib/typescript/src}/config/defaults.d.ts +2 -1
  173. package/lib/typescript/src/config/defaults.d.ts.map +1 -0
  174. package/{dist → lib/typescript/src}/config/index.d.ts +1 -0
  175. package/lib/typescript/src/config/index.d.ts.map +1 -0
  176. package/lib/typescript/src/config/masking.d.ts +3 -0
  177. package/lib/typescript/src/config/masking.d.ts.map +1 -0
  178. package/lib/typescript/src/config/session-recorder.d.ts +3 -0
  179. package/lib/typescript/src/config/session-recorder.d.ts.map +1 -0
  180. package/{dist → lib/typescript/src}/config/validators.d.ts +1 -0
  181. package/lib/typescript/src/config/validators.d.ts.map +1 -0
  182. package/{dist → lib/typescript/src}/config/widget.d.ts +2 -1
  183. package/lib/typescript/src/config/widget.d.ts.map +1 -0
  184. package/{dist → lib/typescript/src}/context/SessionRecorderContext.d.ts +3 -2
  185. package/lib/typescript/src/context/SessionRecorderContext.d.ts.map +1 -0
  186. package/{dist → lib/typescript/src}/context/SessionRecorderStore.d.ts +2 -1
  187. package/lib/typescript/src/context/SessionRecorderStore.d.ts.map +1 -0
  188. package/{dist → lib/typescript/src}/context/useSessionRecorderStore.d.ts +2 -1
  189. package/lib/typescript/src/context/useSessionRecorderStore.d.ts.map +1 -0
  190. package/{dist → lib/typescript/src}/context/useStoreSelector.d.ts +2 -1
  191. package/lib/typescript/src/context/useStoreSelector.d.ts.map +1 -0
  192. package/{dist → lib/typescript/src}/index.d.ts +1 -0
  193. package/lib/typescript/src/index.d.ts.map +1 -0
  194. package/{dist → lib/typescript/src}/native/SessionRecorderNative.d.ts +21 -3
  195. package/lib/typescript/src/native/SessionRecorderNative.d.ts.map +1 -0
  196. package/{dist → lib/typescript/src}/native/index.d.ts +1 -0
  197. package/lib/typescript/src/native/index.d.ts.map +1 -0
  198. package/{dist → lib/typescript/src}/otel/helpers.d.ts +3 -2
  199. package/lib/typescript/src/otel/helpers.d.ts.map +1 -0
  200. package/{dist → lib/typescript/src}/otel/index.d.ts +2 -2
  201. package/lib/typescript/src/otel/index.d.ts.map +1 -0
  202. package/{dist → lib/typescript/src}/otel/instrumentations/index.d.ts +2 -1
  203. package/lib/typescript/src/otel/instrumentations/index.d.ts.map +1 -0
  204. package/lib/typescript/src/patch/index.d.ts +2 -0
  205. package/lib/typescript/src/patch/index.d.ts.map +1 -0
  206. package/{dist → lib/typescript/src}/patch/xhr.d.ts +1 -0
  207. package/lib/typescript/src/patch/xhr.d.ts.map +1 -0
  208. package/{dist → lib/typescript/src}/recorder/eventExporter.d.ts +2 -1
  209. package/lib/typescript/src/recorder/eventExporter.d.ts.map +1 -0
  210. package/{dist → lib/typescript/src}/recorder/gestureRecorder.d.ts +3 -2
  211. package/lib/typescript/src/recorder/gestureRecorder.d.ts.map +1 -0
  212. package/{dist → lib/typescript/src}/recorder/index.d.ts +3 -2
  213. package/lib/typescript/src/recorder/index.d.ts.map +1 -0
  214. package/{dist → lib/typescript/src}/recorder/navigationTracker.d.ts +2 -1
  215. package/lib/typescript/src/recorder/navigationTracker.d.ts.map +1 -0
  216. package/{dist → lib/typescript/src}/recorder/screenRecorder.d.ts +4 -4
  217. package/lib/typescript/src/recorder/screenRecorder.d.ts.map +1 -0
  218. package/{dist → lib/typescript/src}/services/api.service.d.ts +2 -1
  219. package/lib/typescript/src/services/api.service.d.ts.map +1 -0
  220. package/{dist → lib/typescript/src}/services/network.service.d.ts +1 -0
  221. package/lib/typescript/src/services/network.service.d.ts.map +1 -0
  222. package/{dist → lib/typescript/src}/services/screenMaskingService.d.ts +2 -1
  223. package/lib/typescript/src/services/screenMaskingService.d.ts.map +1 -0
  224. package/{dist → lib/typescript/src}/services/storage.service.d.ts +2 -1
  225. package/lib/typescript/src/services/storage.service.d.ts.map +1 -0
  226. package/{dist → lib/typescript/src}/session-recorder.d.ts +3 -2
  227. package/lib/typescript/src/session-recorder.d.ts.map +1 -0
  228. package/{dist → lib/typescript/src}/types/configs.d.ts +3 -2
  229. package/lib/typescript/src/types/configs.d.ts.map +1 -0
  230. package/{dist → lib/typescript/src}/types/index.d.ts +1 -0
  231. package/lib/typescript/src/types/index.d.ts.map +1 -0
  232. package/{dist → lib/typescript/src}/types/session-recorder.d.ts +3 -2
  233. package/lib/typescript/src/types/session-recorder.d.ts.map +1 -0
  234. package/{dist → lib/typescript/src}/types/session.d.ts +1 -0
  235. package/lib/typescript/src/types/session.d.ts.map +1 -0
  236. package/{dist → lib/typescript/src}/utils/app-metadata.d.ts +1 -0
  237. package/lib/typescript/src/utils/app-metadata.d.ts.map +1 -0
  238. package/{dist → lib/typescript/src}/utils/constants.optional.d.ts +1 -0
  239. package/lib/typescript/src/utils/constants.optional.d.ts.map +1 -0
  240. package/{dist → lib/typescript/src}/utils/constants.optional.expo.d.ts +1 -0
  241. package/lib/typescript/src/utils/constants.optional.expo.d.ts.map +1 -0
  242. package/{dist → lib/typescript/src}/utils/createStore.d.ts +1 -0
  243. package/lib/typescript/src/utils/createStore.d.ts.map +1 -0
  244. package/{dist → lib/typescript/src}/utils/index.d.ts +1 -0
  245. package/lib/typescript/src/utils/index.d.ts.map +1 -0
  246. package/{dist → lib/typescript/src}/utils/logger.d.ts +1 -0
  247. package/lib/typescript/src/utils/logger.d.ts.map +1 -0
  248. package/{dist → lib/typescript/src}/utils/platform.d.ts +2 -1
  249. package/lib/typescript/src/utils/platform.d.ts.map +1 -0
  250. package/{dist → lib/typescript/src}/utils/request-utils.d.ts +1 -0
  251. package/lib/typescript/src/utils/request-utils.d.ts.map +1 -0
  252. package/{dist → lib/typescript/src}/utils/rrweb-events.d.ts +2 -1
  253. package/lib/typescript/src/utils/rrweb-events.d.ts.map +1 -0
  254. package/{dist → lib/typescript/src}/utils/session.d.ts +1 -0
  255. package/lib/typescript/src/utils/session.d.ts.map +1 -0
  256. package/{dist → lib/typescript/src}/utils/shallowEqual.d.ts +1 -0
  257. package/lib/typescript/src/utils/shallowEqual.d.ts.map +1 -0
  258. package/{dist → lib/typescript/src}/utils/time.d.ts +1 -0
  259. package/lib/typescript/src/utils/time.d.ts.map +1 -0
  260. package/{dist → lib/typescript/src}/utils/type-utils.d.ts +1 -0
  261. package/lib/typescript/src/utils/type-utils.d.ts.map +1 -0
  262. package/lib/typescript/src/version.d.ts +2 -0
  263. package/lib/typescript/src/version.d.ts.map +1 -0
  264. package/package.json +140 -39
  265. package/src/components/ScreenRecorderView/ScreenRecorderView.tsx +20 -0
  266. package/src/components/SessionRecorderWidget/ErrorBanner.tsx +58 -0
  267. package/src/components/SessionRecorderWidget/FinalPopover.tsx +96 -0
  268. package/src/components/SessionRecorderWidget/FloatingButton.tsx +176 -0
  269. package/src/components/SessionRecorderWidget/InitialPopover.tsx +167 -0
  270. package/src/components/SessionRecorderWidget/ModalContainer.tsx +189 -0
  271. package/src/components/SessionRecorderWidget/ModalHeader.tsx +24 -0
  272. package/src/components/SessionRecorderWidget/SessionRecorderWidget.tsx +136 -0
  273. package/src/components/SessionRecorderWidget/icons.tsx +52 -0
  274. package/{dist/components/SessionRecorderWidget/index.d.ts → src/components/SessionRecorderWidget/index.ts} +1 -0
  275. package/src/components/SessionRecorderWidget/styles.ts +169 -0
  276. package/src/components/index.ts +2 -0
  277. package/src/config/constants.ts +68 -0
  278. package/src/config/defaults.ts +101 -0
  279. package/src/config/index.ts +6 -0
  280. package/src/config/masking.ts +34 -0
  281. package/src/config/session-recorder.ts +59 -0
  282. package/src/config/validators.ts +31 -0
  283. package/src/config/widget.ts +38 -0
  284. package/src/context/SessionRecorderContext.tsx +138 -0
  285. package/src/context/SessionRecorderStore.ts +21 -0
  286. package/src/context/useSessionRecorderStore.ts +27 -0
  287. package/src/context/useStoreSelector.ts +34 -0
  288. package/src/index.ts +10 -0
  289. package/src/native/SessionRecorderNative.ts +164 -0
  290. package/src/native/index.ts +1 -0
  291. package/src/otel/helpers.ts +274 -0
  292. package/src/otel/index.ts +135 -0
  293. package/src/otel/instrumentations/index.ts +115 -0
  294. package/src/patch/index.ts +1 -0
  295. package/src/patch/xhr.ts +149 -0
  296. package/src/recorder/eventExporter.ts +155 -0
  297. package/src/recorder/gestureRecorder.ts +681 -0
  298. package/src/recorder/index.ts +190 -0
  299. package/src/recorder/navigationTracker.ts +245 -0
  300. package/src/recorder/screenRecorder.ts +549 -0
  301. package/src/services/api.service.ts +215 -0
  302. package/src/services/network.service.ts +182 -0
  303. package/src/services/screenMaskingService.ts +122 -0
  304. package/src/services/storage.service.ts +219 -0
  305. package/src/session-recorder.ts +591 -0
  306. package/src/types/configs.ts +96 -0
  307. package/src/types/expo-constants.d.ts +7 -0
  308. package/src/types/index.ts +29 -0
  309. package/src/types/session-recorder.ts +386 -0
  310. package/src/types/session.ts +65 -0
  311. package/src/utils/app-metadata.ts +31 -0
  312. package/src/utils/constants.optional.expo.ts +5 -0
  313. package/src/utils/constants.optional.ts +16 -0
  314. package/src/utils/createStore.ts +29 -0
  315. package/src/utils/index.ts +8 -0
  316. package/src/utils/logger.ts +216 -0
  317. package/src/utils/platform.ts +370 -0
  318. package/src/utils/request-utils.ts +61 -0
  319. package/src/utils/rrweb-events.ts +316 -0
  320. package/src/utils/session.ts +19 -0
  321. package/src/utils/shallowEqual.ts +14 -0
  322. package/src/utils/time.ts +17 -0
  323. package/src/utils/type-utils.ts +75 -0
  324. package/src/version.ts +1 -0
  325. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  326. package/android/gradle/wrapper/gradle-wrapper.properties +0 -7
  327. package/android/gradlew +0 -249
  328. package/android/gradlew.bat +0 -92
  329. package/copy-react-native-dist.sh +0 -56
  330. package/dist/components/ScreenRecorderView/ScreenRecorderView.d.ts +0 -5
  331. package/dist/components/ScreenRecorderView/ScreenRecorderView.js +0 -1
  332. package/dist/components/ScreenRecorderView/ScreenRecorderView.js.map +0 -1
  333. package/dist/components/ScreenRecorderView/index.js +0 -1
  334. package/dist/components/ScreenRecorderView/index.js.map +0 -1
  335. package/dist/components/SessionRecorderWidget/ErrorBanner.js +0 -1
  336. package/dist/components/SessionRecorderWidget/ErrorBanner.js.map +0 -1
  337. package/dist/components/SessionRecorderWidget/FinalPopover.js +0 -1
  338. package/dist/components/SessionRecorderWidget/FinalPopover.js.map +0 -1
  339. package/dist/components/SessionRecorderWidget/FloatingButton.js +0 -1
  340. package/dist/components/SessionRecorderWidget/FloatingButton.js.map +0 -1
  341. package/dist/components/SessionRecorderWidget/InitialPopover.js +0 -1
  342. package/dist/components/SessionRecorderWidget/InitialPopover.js.map +0 -1
  343. package/dist/components/SessionRecorderWidget/ModalContainer.js +0 -1
  344. package/dist/components/SessionRecorderWidget/ModalContainer.js.map +0 -1
  345. package/dist/components/SessionRecorderWidget/ModalHeader.js +0 -1
  346. package/dist/components/SessionRecorderWidget/ModalHeader.js.map +0 -1
  347. package/dist/components/SessionRecorderWidget/SessionRecorderWidget.js +0 -1
  348. package/dist/components/SessionRecorderWidget/SessionRecorderWidget.js.map +0 -1
  349. package/dist/components/SessionRecorderWidget/icons.js +0 -1
  350. package/dist/components/SessionRecorderWidget/icons.js.map +0 -1
  351. package/dist/components/SessionRecorderWidget/index.js +0 -1
  352. package/dist/components/SessionRecorderWidget/index.js.map +0 -1
  353. package/dist/components/SessionRecorderWidget/styles.js +0 -1
  354. package/dist/components/SessionRecorderWidget/styles.js.map +0 -1
  355. package/dist/components/index.js +0 -1
  356. package/dist/components/index.js.map +0 -1
  357. package/dist/config/constants.js +0 -1
  358. package/dist/config/constants.js.map +0 -1
  359. package/dist/config/defaults.js +0 -1
  360. package/dist/config/defaults.js.map +0 -1
  361. package/dist/config/index.js +0 -1
  362. package/dist/config/index.js.map +0 -1
  363. package/dist/config/masking.d.ts +0 -2
  364. package/dist/config/masking.js +0 -1
  365. package/dist/config/masking.js.map +0 -1
  366. package/dist/config/session-recorder.d.ts +0 -2
  367. package/dist/config/session-recorder.js +0 -1
  368. package/dist/config/session-recorder.js.map +0 -1
  369. package/dist/config/validators.js +0 -1
  370. package/dist/config/validators.js.map +0 -1
  371. package/dist/config/widget.js +0 -1
  372. package/dist/config/widget.js.map +0 -1
  373. package/dist/context/SessionRecorderContext.js +0 -1
  374. package/dist/context/SessionRecorderContext.js.map +0 -1
  375. package/dist/context/SessionRecorderStore.js +0 -1
  376. package/dist/context/SessionRecorderStore.js.map +0 -1
  377. package/dist/context/useSessionRecorderStore.js +0 -1
  378. package/dist/context/useSessionRecorderStore.js.map +0 -1
  379. package/dist/context/useStoreSelector.js +0 -1
  380. package/dist/context/useStoreSelector.js.map +0 -1
  381. package/dist/index.js +0 -1
  382. package/dist/index.js.map +0 -1
  383. package/dist/native/GestureRecorderNative.d.ts +0 -57
  384. package/dist/native/GestureRecorderNative.js +0 -1
  385. package/dist/native/GestureRecorderNative.js.map +0 -1
  386. package/dist/native/GestureRecorderNativeTurboSpec.d.ts +0 -31
  387. package/dist/native/GestureRecorderNativeTurboSpec.js +0 -1
  388. package/dist/native/GestureRecorderNativeTurboSpec.js.map +0 -1
  389. package/dist/native/SessionRecorderNative.js +0 -1
  390. package/dist/native/SessionRecorderNative.js.map +0 -1
  391. package/dist/native/SessionRecorderNativeTurboSpec.d.ts +0 -17
  392. package/dist/native/SessionRecorderNativeTurboSpec.js +0 -1
  393. package/dist/native/SessionRecorderNativeTurboSpec.js.map +0 -1
  394. package/dist/native/index.js +0 -1
  395. package/dist/native/index.js.map +0 -1
  396. package/dist/otel/helpers.js +0 -1
  397. package/dist/otel/helpers.js.map +0 -1
  398. package/dist/otel/index.js +0 -1
  399. package/dist/otel/index.js.map +0 -1
  400. package/dist/otel/instrumentations/index.js +0 -1
  401. package/dist/otel/instrumentations/index.js.map +0 -1
  402. package/dist/patch/index.d.ts +0 -1
  403. package/dist/patch/index.js +0 -1
  404. package/dist/patch/index.js.map +0 -1
  405. package/dist/patch/xhr.js +0 -1
  406. package/dist/patch/xhr.js.map +0 -1
  407. package/dist/recorder/eventExporter.js +0 -1
  408. package/dist/recorder/eventExporter.js.map +0 -1
  409. package/dist/recorder/gestureRecorder.js +0 -1
  410. package/dist/recorder/gestureRecorder.js.map +0 -1
  411. package/dist/recorder/index.js +0 -1
  412. package/dist/recorder/index.js.map +0 -1
  413. package/dist/recorder/navigationTracker.js +0 -1
  414. package/dist/recorder/navigationTracker.js.map +0 -1
  415. package/dist/recorder/screenRecorder.js +0 -1
  416. package/dist/recorder/screenRecorder.js.map +0 -1
  417. package/dist/services/api.service.js +0 -1
  418. package/dist/services/api.service.js.map +0 -1
  419. package/dist/services/network.service.js +0 -1
  420. package/dist/services/network.service.js.map +0 -1
  421. package/dist/services/screenMaskingService.js +0 -1
  422. package/dist/services/screenMaskingService.js.map +0 -1
  423. package/dist/services/storage.service.js +0 -1
  424. package/dist/services/storage.service.js.map +0 -1
  425. package/dist/session-recorder.js +0 -1
  426. package/dist/session-recorder.js.map +0 -1
  427. package/dist/types/configs.js +0 -1
  428. package/dist/types/configs.js.map +0 -1
  429. package/dist/types/index.js +0 -1
  430. package/dist/types/index.js.map +0 -1
  431. package/dist/types/session-recorder.js +0 -1
  432. package/dist/types/session-recorder.js.map +0 -1
  433. package/dist/types/session.js +0 -1
  434. package/dist/types/session.js.map +0 -1
  435. package/dist/utils/app-metadata.js +0 -1
  436. package/dist/utils/app-metadata.js.map +0 -1
  437. package/dist/utils/constants.optional.expo.js +0 -1
  438. package/dist/utils/constants.optional.expo.js.map +0 -1
  439. package/dist/utils/constants.optional.js +0 -1
  440. package/dist/utils/constants.optional.js.map +0 -1
  441. package/dist/utils/createStore.js +0 -1
  442. package/dist/utils/createStore.js.map +0 -1
  443. package/dist/utils/index.js +0 -1
  444. package/dist/utils/index.js.map +0 -1
  445. package/dist/utils/logger.js +0 -1
  446. package/dist/utils/logger.js.map +0 -1
  447. package/dist/utils/platform.js +0 -1
  448. package/dist/utils/platform.js.map +0 -1
  449. package/dist/utils/request-utils.js +0 -1
  450. package/dist/utils/request-utils.js.map +0 -1
  451. package/dist/utils/rrweb-events.js +0 -1
  452. package/dist/utils/rrweb-events.js.map +0 -1
  453. package/dist/utils/session.js +0 -1
  454. package/dist/utils/session.js.map +0 -1
  455. package/dist/utils/shallowEqual.js +0 -1
  456. package/dist/utils/shallowEqual.js.map +0 -1
  457. package/dist/utils/time.js +0 -1
  458. package/dist/utils/time.js.map +0 -1
  459. package/dist/utils/type-utils.js +0 -1
  460. package/dist/utils/type-utils.js.map +0 -1
  461. package/dist/version.d.ts +0 -1
  462. package/dist/version.js +0 -1
  463. package/dist/version.js.map +0 -1
  464. package/docs/AUTO_METADATA_DETECTION.md +0 -108
  465. /package/{dist/components/ScreenRecorderView/index.d.ts → src/components/ScreenRecorderView/index.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DebugSessionDataType"],"sourceRoot":"../../../src","sources":["types/session.ts"],"mappings":";;AA4DA,WAAYA,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Auto-generated app metadata
5
+ * This file is generated at build time to provide app metadata without developer intervention
6
+ */
7
+
8
+ // This file is automatically generated by the build process
9
+ // It extracts metadata from app.json, app.config.js, or package.json
10
+
11
+ // Auto-detected values from project configuration files
12
+ export const APP_METADATA = {
13
+ name: "@multiplayer-app/session-recorder-react-native",
14
+ version: "0.0.1",
15
+ bundleId: undefined,
16
+ buildNumber: undefined,
17
+ displayName: undefined
18
+ };
19
+
20
+ /**
21
+ * Get auto-detected app metadata
22
+ */
23
+ export function getAutoDetectedAppMetadata() {
24
+ return {
25
+ ...APP_METADATA
26
+ };
27
+ }
28
+ //# sourceMappingURL=app-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["APP_METADATA","name","version","bundleId","undefined","buildNumber","displayName","getAutoDetectedAppMetadata"],"sourceRoot":"../../../src","sources":["utils/app-metadata.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA;AACA;;AAUA;AACA,OAAO,MAAMA,YAAyB,GAAG;EACvCC,IAAI,EAAE,gDAAgD;EACtDC,OAAO,EAAE,OAAO;EAChBC,QAAQ,EAAEC,SAAS;EACnBC,WAAW,EAAED,SAAS;EACtBE,WAAW,EAAEF;AACf,CAAC;;AAED;AACA;AACA;AACA,OAAO,SAASG,0BAA0BA,CAAA,EAAgB;EACxD,OAAO;IAAE,GAAGP;EAAa,CAAC;AAC5B","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ // Expo variant: re-export expo-constants default to be consumed via the optional shim path
4
+ import Constants from 'expo-constants';
5
+ export default Constants;
6
+ //# sourceMappingURL=constants.optional.expo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Constants"],"sourceRoot":"../../../src","sources":["utils/constants.optional.expo.ts"],"mappings":";;AAAA;AACA,OAAOA,SAAS,MAAM,gBAAgB;AAGtC,eAAeA,SAAS","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ // Non-Expo fallback: export undefined to avoid bundling expo-constants in non-Expo apps
4
+ // Define a lightweight type that includes only the members we read.
5
+
6
+ const OptionalConstants = undefined;
7
+ export default OptionalConstants;
8
+ //# sourceMappingURL=constants.optional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OptionalConstants","undefined"],"sourceRoot":"../../../src","sources":["utils/constants.optional.ts"],"mappings":";;AAAA;AACA;;AAYA,MAAMA,iBAAwC,GAAGC,SAAS;AAE1D,eAAeD,iBAAiB","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ export function createStore(initialState) {
4
+ let state = initialState;
5
+ const listeners = new Set();
6
+ const getState = () => state;
7
+ const setState = partial => {
8
+ const prevState = state;
9
+ const nextState = typeof partial === 'function' ? partial(prevState) : {
10
+ ...prevState,
11
+ ...partial
12
+ };
13
+ if (Object.is(nextState, prevState)) return;
14
+ state = nextState;
15
+ listeners.forEach(l => l(state, prevState));
16
+ };
17
+ const subscribe = listener => {
18
+ listeners.add(listener);
19
+ return () => listeners.delete(listener);
20
+ };
21
+ return {
22
+ getState,
23
+ setState,
24
+ subscribe
25
+ };
26
+ }
27
+ //# sourceMappingURL=createStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createStore","initialState","state","listeners","Set","getState","setState","partial","prevState","nextState","Object","is","forEach","l","subscribe","listener","add","delete"],"sourceRoot":"../../../src","sources":["utils/createStore.ts"],"mappings":";;AAQA,OAAO,SAASA,WAAWA,CAAmBC,YAAe,EAAY;EACvE,IAAIC,KAAQ,GAAGD,YAAY;EAC3B,MAAME,SAAS,GAAG,IAAIC,GAAG,CAAc,CAAC;EAExC,MAAMC,QAAQ,GAAGA,CAAA,KAAMH,KAAK;EAE5B,MAAMI,QAA8B,GAAIC,OAAO,IAAK;IAClD,MAAMC,SAAS,GAAGN,KAAK;IACvB,MAAMO,SAAS,GAAG,OAAOF,OAAO,KAAK,UAAU,GAAIA,OAAO,CAAoBC,SAAS,CAAC,GAAG;MAAE,GAAGA,SAAS;MAAE,GAAGD;IAAQ,CAAM;IAC5H,IAAIG,MAAM,CAACC,EAAE,CAACF,SAAS,EAAED,SAAS,CAAC,EAAE;IACrCN,KAAK,GAAGO,SAAS;IACjBN,SAAS,CAACS,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACX,KAAK,EAAEM,SAAS,CAAC,CAAC;EAC/C,CAAC;EAED,MAAMM,SAAgC,GAAIC,QAAQ,IAAK;IACrDZ,SAAS,CAACa,GAAG,CAACD,QAAQ,CAAC;IACvB,OAAO,MAAMZ,SAAS,CAACc,MAAM,CAACF,QAAQ,CAAC;EACzC,CAAC;EAED,OAAO;IAAEV,QAAQ;IAAEC,QAAQ;IAAEQ;EAAU,CAAC;AAC1C","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ // Export all utility functions
4
+ export * from "./platform.js";
5
+ export * from "./session.js";
6
+ export * from "./time.js";
7
+ export * from "./type-utils.js";
8
+ export * from "./request-utils.js";
9
+ export * from "./rrweb-events.js";
10
+ export * from "./logger.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;AAAA;AACA,cAAc,eAAY;AAC1B,cAAc,cAAW;AACzB,cAAc,WAAQ;AACtB,cAAc,iBAAc;AAC5B,cAAc,oBAAiB;AAC/B,cAAc,mBAAgB;AAC9B,cAAc,aAAU","ignoreList":[]}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Centralized logger utility for the session recorder
5
+ * Provides consistent logging across all components
6
+ */
7
+
8
+ import { LogLevel } from "../types/index.js";
9
+ class Logger {
10
+ config = {
11
+ level: LogLevel.INFO,
12
+ enabled: true,
13
+ enablePrefix: true,
14
+ prefix: '[SessionRecorder]'
15
+ };
16
+ componentPrefixes = new Map([['ScreenRecorder', '📸'], ['NativeGestureRecorder', '👆'], ['SessionRecorderContext', '🎯'], ['EventExporter', '📤'], ['NavigationTracker', '📸'], ['RecorderReactNativeSDK', '📤'], ['DEBUGGER_LIB', '🔍']]);
17
+
18
+ /**
19
+ * Configure the logger
20
+ * @param config - Logger configuration
21
+ */
22
+ configure(config) {
23
+ this.config = {
24
+ ...this.config,
25
+ ...config
26
+ };
27
+ }
28
+
29
+ /**
30
+ * Set the log level
31
+ * @param level - Log level to set
32
+ */
33
+ setLevel(level) {
34
+ this.config.level = level;
35
+ }
36
+
37
+ /**
38
+ * Enable or disable console output
39
+ * @param enabled - Whether to enable console output
40
+ */
41
+ setConsoleEnabled(enabled) {
42
+ this.config.enabled = enabled;
43
+ }
44
+
45
+ /**
46
+ * Add or update a component prefix
47
+ * @param component - Component name
48
+ * @param emoji - Emoji prefix for the component
49
+ */
50
+ setComponentPrefix(component, emoji) {
51
+ this.componentPrefixes.set(component, emoji);
52
+ }
53
+
54
+ /**
55
+ * Get the formatted prefix for a component
56
+ * @param component - Component name
57
+ * @returns Formatted prefix string
58
+ */
59
+ getPrefix(component) {
60
+ if (!this.config.enablePrefix) return '';
61
+ const emoji = this.componentPrefixes.get(component) || '📝';
62
+ return `${this.config.prefix} ${emoji} [${component}]`;
63
+ }
64
+
65
+ /**
66
+ * Check if a log level should be output
67
+ * @param level - Log level to check
68
+ * @returns True if should output
69
+ */
70
+ shouldLog(level) {
71
+ return level >= this.config.level && this.config.enabled;
72
+ }
73
+
74
+ /**
75
+ * Format the log message
76
+ * @param component - Component name
77
+ * @param level - Log level
78
+ * @param message - Log message
79
+ * @param data - Additional data to log
80
+ * @returns Formatted log message
81
+ */
82
+ formatMessage(component, level, message, data) {
83
+ const prefix = this.getPrefix(component);
84
+ const levelName = LogLevel[level];
85
+ let formattedMessage = `${prefix} ${levelName} ${message}`;
86
+ if (data !== undefined) {
87
+ formattedMessage += ` ${JSON.stringify(data)}`;
88
+ }
89
+ return formattedMessage;
90
+ }
91
+
92
+ /**
93
+ * Log a debug message
94
+ * @param component - Component name
95
+ * @param message - Log message
96
+ * @param data - Additional data to log
97
+ */
98
+ debug(component, message, data) {
99
+ if (!this.shouldLog(LogLevel.DEBUG)) return;
100
+ const formattedMessage = this.formatMessage(component, LogLevel.DEBUG, message, data);
101
+ // eslint-disable-next-line no-console
102
+ console.log(formattedMessage);
103
+ }
104
+
105
+ /**
106
+ * Log an info message
107
+ * @param component - Component name
108
+ * @param message - Log message
109
+ * @param data - Additional data to log
110
+ */
111
+ info(component, message, data) {
112
+ if (!this.shouldLog(LogLevel.INFO)) return;
113
+ const formattedMessage = this.formatMessage(component, LogLevel.INFO, message, data);
114
+ // eslint-disable-next-line no-console
115
+ console.log(formattedMessage);
116
+ }
117
+
118
+ /**
119
+ * Log a warning message
120
+ * @param component - Component name
121
+ * @param message - Log message
122
+ * @param data - Additional data to log
123
+ */
124
+ warn(component, message, data) {
125
+ if (!this.shouldLog(LogLevel.WARN)) return;
126
+ const formattedMessage = this.formatMessage(component, LogLevel.WARN, message, data);
127
+ // eslint-disable-next-line no-console
128
+ console.warn(formattedMessage);
129
+ }
130
+
131
+ /**
132
+ * Log an error message
133
+ * @param component - Component name
134
+ * @param message - Log message
135
+ * @param data - Additional data to log
136
+ */
137
+ error(component, message, data) {
138
+ if (!this.shouldLog(LogLevel.ERROR)) return;
139
+ const formattedMessage = this.formatMessage(component, LogLevel.ERROR, message, data);
140
+ // eslint-disable-next-line no-console
141
+ console.error(formattedMessage);
142
+ }
143
+
144
+ /**
145
+ * Log a success message (info level with success emoji)
146
+ * @param component - Component name
147
+ * @param message - Log message
148
+ * @param data - Additional data to log
149
+ */
150
+ success(component, message, data) {
151
+ if (!this.shouldLog(LogLevel.INFO)) return;
152
+ const prefix = this.getPrefix(component);
153
+ const formattedMessage = `${prefix} ✅ ${message}`;
154
+ let fullMessage = formattedMessage;
155
+ if (data !== undefined) {
156
+ fullMessage += ` ${JSON.stringify(data)}`;
157
+ }
158
+
159
+ // eslint-disable-next-line no-console
160
+ console.log(fullMessage);
161
+ }
162
+
163
+ /**
164
+ * Log a failure message (error level with failure emoji)
165
+ * @param component - Component name
166
+ * @param message - Log message
167
+ * @param data - Additional data to log
168
+ */
169
+ failure(component, message, data) {
170
+ if (!this.shouldLog(LogLevel.ERROR)) return;
171
+ const prefix = this.getPrefix(component);
172
+ const formattedMessage = `${prefix} ❌ ${message}`;
173
+ let fullMessage = formattedMessage;
174
+ if (data !== undefined) {
175
+ fullMessage += ` ${JSON.stringify(data)}`;
176
+ }
177
+
178
+ // eslint-disable-next-line no-console
179
+ console.error(fullMessage);
180
+ }
181
+ }
182
+
183
+ // Export a singleton instance
184
+ export const logger = new Logger();
185
+
186
+ // Export convenience functions for common use cases
187
+ export const logDebug = (component, message, data) => logger.debug(component, message, data);
188
+ export const logInfo = (component, message, data) => logger.info(component, message, data);
189
+ export const logWarn = (component, message, data) => logger.warn(component, message, data);
190
+ export const logError = (component, message, data) => logger.error(component, message, data);
191
+ export const logSuccess = (component, message, data) => logger.success(component, message, data);
192
+ export const logFailure = (component, message, data) => logger.failure(component, message, data);
193
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["LogLevel","Logger","config","level","INFO","enabled","enablePrefix","prefix","componentPrefixes","Map","configure","setLevel","setConsoleEnabled","setComponentPrefix","component","emoji","set","getPrefix","get","shouldLog","formatMessage","message","data","levelName","formattedMessage","undefined","JSON","stringify","debug","DEBUG","console","log","info","warn","WARN","error","ERROR","success","fullMessage","failure","logger","logDebug","logInfo","logWarn","logError","logSuccess","logFailure"],"sourceRoot":"../../../src","sources":["utils/logger.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,340 @@
1
+ "use strict";
2
+
3
+ import OptionalConstants from "./constants.optional.js";
4
+ import { Platform, Dimensions, PixelRatio } from 'react-native';
5
+ import { version } from "../version.js";
6
+ import { getAutoDetectedAppMetadata } from "./app-metadata.js";
7
+
8
+ // Global app metadata configuration for non-Expo apps
9
+ let globalAppMetadata = {};
10
+
11
+ // Cache for auto-detected metadata to avoid repeated file reads
12
+ let autoDetectedMetadata = null;
13
+ export function detectPlatform() {
14
+ try {
15
+ // Check if we're in an Expo environment
16
+ const isExpo = !!OptionalConstants?.expoVersion;
17
+ if (isExpo) {
18
+ const expoVersion = OptionalConstants?.expoVersion;
19
+ const platform = OptionalConstants?.platform;
20
+ return {
21
+ isExpo: true,
22
+ isReactNative: true,
23
+ platform: platform?.ios ? 'ios' : platform?.android ? 'android' : 'unknown',
24
+ expoVersion,
25
+ deviceType: 'expo'
26
+ };
27
+ }
28
+
29
+ // Fallback to React Native detection
30
+ return {
31
+ isExpo: false,
32
+ isReactNative: true,
33
+ platform: Platform.OS,
34
+ platformVersion: Platform.Version?.toString(),
35
+ deviceType: Platform.OS
36
+ };
37
+ } catch (error) {
38
+ // Fallback for web or other environments
39
+ return {
40
+ isExpo: false,
41
+ isReactNative: false,
42
+ platform: 'unknown',
43
+ deviceType: 'unknown'
44
+ };
45
+ }
46
+ }
47
+ export function getPlatformAttributes() {
48
+ const platformInfo = detectPlatform();
49
+ const attributes = {
50
+ platform: platformInfo.isExpo ? 'expo' : 'react-native',
51
+ 'device.type': platformInfo.deviceType
52
+ };
53
+ if (platformInfo.platformVersion) {
54
+ attributes['platform.version'] = platformInfo.platformVersion;
55
+ }
56
+ if (platformInfo.expoVersion) {
57
+ attributes['expo.version'] = platformInfo.expoVersion;
58
+ }
59
+ return attributes;
60
+ }
61
+ export function isExpoEnvironment() {
62
+ return detectPlatform().isExpo;
63
+ }
64
+ export function isReactNativeEnvironment() {
65
+ return detectPlatform().isReactNative;
66
+ }
67
+
68
+ /**
69
+ * Configure app metadata for non-Expo React Native apps
70
+ * Call this function in your app initialization to provide app information
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * import { configureAppMetadata } from '@multiplayer-app/session-recorder-react-native'
75
+ *
76
+ * // In your App.tsx or index.js
77
+ * configureAppMetadata({
78
+ * name: 'My Awesome App',
79
+ * version: '1.2.3',
80
+ * bundleId: 'com.mycompany.myapp',
81
+ * buildNumber: '123',
82
+ * displayName: 'My App',
83
+ * })
84
+ * ```
85
+ */
86
+ export function configureAppMetadata(metadata) {
87
+ globalAppMetadata = {
88
+ ...globalAppMetadata,
89
+ ...metadata
90
+ };
91
+ }
92
+
93
+ /**
94
+ * Get configured app metadata
95
+ */
96
+ export function getConfiguredAppMetadata() {
97
+ return {
98
+ ...globalAppMetadata
99
+ };
100
+ }
101
+
102
+ /**
103
+ * Automatically detect app metadata from common configuration files
104
+ * This runs without developer intervention
105
+ */
106
+ function autoDetectAppMetadata() {
107
+ if (autoDetectedMetadata) {
108
+ return autoDetectedMetadata;
109
+ }
110
+ try {
111
+ // Get auto-detected metadata from build-time generated file
112
+ const autoMetadata = getAutoDetectedAppMetadata();
113
+
114
+ // Filter out undefined values
115
+ const metadata = {};
116
+ if (autoMetadata.name) metadata.name = autoMetadata.name;
117
+ if (autoMetadata.version) metadata.version = autoMetadata.version;
118
+ if (autoMetadata.bundleId) metadata.bundleId = autoMetadata.bundleId;
119
+ autoDetectedMetadata = metadata;
120
+ return metadata;
121
+ } catch (error) {
122
+ // Silently fail - this is optional auto-detection
123
+ autoDetectedMetadata = {};
124
+ return {};
125
+ }
126
+ }
127
+
128
+ /**
129
+ * Enhanced app metadata detection with automatic fallbacks
130
+ */
131
+ export function getAppMetadata() {
132
+ // Priority order:
133
+ // 1. Expo config (if available)
134
+ // 2. Manually configured metadata
135
+ // 3. Auto-detected metadata
136
+ // 4. Fallbacks
137
+
138
+ const expoMetadata = getExpoMetadata();
139
+ const configuredMetadata = getConfiguredAppMetadata();
140
+ const autoMetadata = autoDetectAppMetadata();
141
+ return {
142
+ name: expoMetadata.name || configuredMetadata.name || autoMetadata.name,
143
+ version: expoMetadata.version || configuredMetadata.version || autoMetadata.version,
144
+ bundleId: expoMetadata.bundleId || configuredMetadata.bundleId || autoMetadata.bundleId
145
+ };
146
+ }
147
+
148
+ /**
149
+ * Get metadata from Expo config
150
+ */
151
+ function getExpoMetadata() {
152
+ const expoConfig = OptionalConstants?.expoConfig;
153
+ if (!expoConfig) return {};
154
+ return {
155
+ name: expoConfig.name,
156
+ version: expoConfig.version,
157
+ bundleId: expoConfig.ios?.bundleIdentifier || expoConfig.android?.package
158
+ };
159
+ }
160
+ export const getNavigatorInfo = () => {
161
+ const platformInfo = detectPlatform();
162
+ const screenData = Dimensions.get('window');
163
+ const screenDataScreen = Dimensions.get('screen');
164
+ const pixelRatio = PixelRatio.get();
165
+
166
+ // Get device type based on screen dimensions
167
+ const getDeviceType = () => {
168
+ const {
169
+ width,
170
+ height
171
+ } = screenData;
172
+ const minDimension = Math.min(width, height);
173
+ const maxDimension = Math.max(width, height);
174
+
175
+ // Rough device type detection based on screen size
176
+ if (maxDimension >= 1024) {
177
+ return 'Tablet';
178
+ } else if (minDimension >= 600) {
179
+ return 'Large Phone';
180
+ } else {
181
+ return 'Phone';
182
+ }
183
+ };
184
+
185
+ // Get orientation
186
+ const getOrientation = () => {
187
+ const {
188
+ width,
189
+ height
190
+ } = screenData;
191
+ return width > height ? 'Landscape' : 'Portrait';
192
+ };
193
+
194
+ // Get OS version details
195
+ const getOSInfo = () => {
196
+ if (platformInfo.isExpo) {
197
+ const platform = OptionalConstants?.platform;
198
+ if (platform?.ios) {
199
+ return `iOS ${Platform.Version}`;
200
+ } else if (platform?.android) {
201
+ return `Android ${Platform.Version}`;
202
+ }
203
+ }
204
+ if (Platform.OS === 'ios') {
205
+ return `iOS ${Platform.Version}`;
206
+ } else if (Platform.OS === 'android') {
207
+ return `Android ${Platform.Version}`;
208
+ }
209
+ return `${Platform.OS} ${Platform.Version || 'Unknown'}`;
210
+ };
211
+
212
+ // Get device info string
213
+ const getDeviceInfo = () => {
214
+ const deviceType = getDeviceType();
215
+ const osInfo = getOSInfo();
216
+ return `${deviceType} - ${osInfo}`;
217
+ };
218
+
219
+ // Get browser/runtime info
220
+ const getBrowserInfo = () => {
221
+ if (platformInfo.isExpo) {
222
+ return `Expo ${platformInfo.expoVersion || 'Unknown'} - React Native`;
223
+ }
224
+ return 'React Native';
225
+ };
226
+
227
+ // Get screen size string
228
+ const getScreenSize = () => {
229
+ return `${Math.round(screenData.width)}x${Math.round(screenData.height)}`;
230
+ };
231
+ const metadata = getAppMetadata();
232
+ // Get app info with fallbacks for non-Expo apps
233
+ const getAppInfo = () => {
234
+ const appName = getAppName();
235
+ const appVersion = getAppVersion();
236
+ return `${appName} v${appVersion}`;
237
+ };
238
+
239
+ // Get app name with automatic detection
240
+ const getAppName = () => {
241
+ if (metadata.name) return metadata.name;
242
+
243
+ // Try configured display name as fallback
244
+ const configuredMetadata = getConfiguredAppMetadata();
245
+ if (configuredMetadata.displayName) return configuredMetadata.displayName;
246
+
247
+ // Final fallback
248
+ return 'React Native App';
249
+ };
250
+
251
+ // Get app version with automatic detection
252
+ const getAppVersion = () => {
253
+ if (metadata.version) return metadata.version;
254
+
255
+ // Final fallback
256
+ return 'Unknown';
257
+ };
258
+
259
+ // Get bundle ID with automatic detection
260
+ const getBundleId = () => {
261
+ if (metadata.bundleId) return metadata.bundleId;
262
+
263
+ // Fallback
264
+ return 'com.reactnative.app';
265
+ };
266
+
267
+ // Get build number with multiple fallback strategies
268
+ const getBuildNumber = () => {
269
+ // Try Expo config first
270
+ const expoBuildNumber = OptionalConstants?.expoConfig?.ios?.buildNumber || OptionalConstants?.expoConfig?.android?.versionCode;
271
+ if (expoBuildNumber) return expoBuildNumber.toString();
272
+
273
+ // Try configured metadata for non-Expo apps
274
+ const configuredMetadata = getConfiguredAppMetadata();
275
+ if (configuredMetadata.buildNumber) return configuredMetadata.buildNumber;
276
+
277
+ // Fallback
278
+ return '1';
279
+ };
280
+
281
+ // Get hardware info
282
+ const getHardwareInfo = () => {
283
+ const pixelRatioInfo = `Pixel Ratio: ${pixelRatio}`;
284
+ const screenDensity = PixelRatio.getFontScale();
285
+ return `${pixelRatioInfo}, Font Scale: ${screenDensity}`;
286
+ };
287
+ return {
288
+ // Core platform info
289
+ platform: platformInfo.isExpo ? 'expo' : 'react-native',
290
+ userAgent: getBrowserInfo(),
291
+ timestamp: new Date().toISOString(),
292
+ // Device and OS information
293
+ deviceInfo: getDeviceInfo(),
294
+ osInfo: getOSInfo(),
295
+ browserInfo: getBrowserInfo(),
296
+ // Screen information
297
+ screenSize: getScreenSize(),
298
+ pixelRatio: pixelRatio,
299
+ orientation: getOrientation(),
300
+ screenWidth: Math.round(screenData.width),
301
+ screenHeight: Math.round(screenData.height),
302
+ screenScale: pixelRatio,
303
+ // Device capabilities
304
+ hardwareConcurrency: 1,
305
+ // React Native doesn't expose CPU cores directly
306
+ cookiesEnabled: 'N/A',
307
+ // Not applicable in React Native
308
+
309
+ // App information
310
+ packageVersion: version,
311
+ appInfo: getAppInfo(),
312
+ appName: getAppName(),
313
+ appVersion: getAppVersion(),
314
+ bundleId: getBundleId(),
315
+ buildNumber: getBuildNumber(),
316
+ // Platform specific
317
+ platformType: platformInfo.platform,
318
+ platformVersion: platformInfo.platformVersion,
319
+ expoVersion: platformInfo.expoVersion,
320
+ deviceType: getDeviceType(),
321
+ // Performance and hardware
322
+ hardwareInfo: getHardwareInfo(),
323
+ // Screen details
324
+ screenDensity: PixelRatio.getFontScale(),
325
+ screenScaleFactor: pixelRatio,
326
+ windowWidth: Math.round(screenData.width),
327
+ windowHeight: Math.round(screenData.height),
328
+ fullScreenWidth: Math.round(screenDataScreen.width),
329
+ fullScreenHeight: Math.round(screenDataScreen.height),
330
+ // Environment info
331
+ isExpo: platformInfo.isExpo,
332
+ isReactNative: platformInfo.isReactNative,
333
+ environment: platformInfo.isExpo ? 'expo' : 'react-native',
334
+ // System type identifier (previously in system tags)
335
+ systemType: 'mobile'
336
+ // Additional platform attributes
337
+ // ...getPlatformAttributes(),
338
+ };
339
+ };
340
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OptionalConstants","Platform","Dimensions","PixelRatio","version","getAutoDetectedAppMetadata","globalAppMetadata","autoDetectedMetadata","detectPlatform","isExpo","expoVersion","platform","isReactNative","ios","android","deviceType","OS","platformVersion","Version","toString","error","getPlatformAttributes","platformInfo","attributes","isExpoEnvironment","isReactNativeEnvironment","configureAppMetadata","metadata","getConfiguredAppMetadata","autoDetectAppMetadata","autoMetadata","name","bundleId","getAppMetadata","expoMetadata","getExpoMetadata","configuredMetadata","expoConfig","bundleIdentifier","package","getNavigatorInfo","screenData","get","screenDataScreen","pixelRatio","getDeviceType","width","height","minDimension","Math","min","maxDimension","max","getOrientation","getOSInfo","getDeviceInfo","osInfo","getBrowserInfo","getScreenSize","round","getAppInfo","appName","getAppName","appVersion","getAppVersion","displayName","getBundleId","getBuildNumber","expoBuildNumber","buildNumber","versionCode","getHardwareInfo","pixelRatioInfo","screenDensity","getFontScale","userAgent","timestamp","Date","toISOString","deviceInfo","browserInfo","screenSize","orientation","screenWidth","screenHeight","screenScale","hardwareConcurrency","cookiesEnabled","packageVersion","appInfo","platformType","hardwareInfo","screenScaleFactor","windowWidth","windowHeight","fullScreenWidth","fullScreenHeight","environment","systemType"],"sourceRoot":"../../../src","sources":["utils/platform.ts"],"mappings":"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","ignoreList":[]}