@sentry/react-native 8.5.0 → 8.7.0

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 (408) hide show
  1. package/RNSentry.podspec +1 -1
  2. package/android/build.gradle +2 -2
  3. package/android/expo-handler/build.gradle +20 -0
  4. package/android/expo-handler/src/main/java/io/sentry/react/expo/SentryExpoPackage.java +22 -0
  5. package/android/expo-handler/src/main/java/io/sentry/react/expo/SentryReactNativeHostHandler.java +48 -0
  6. package/android/expo-stubs/README.md +7 -0
  7. package/android/expo-stubs/build.gradle +23 -0
  8. package/android/expo-stubs/gradle/wrapper/gradle-wrapper.jar +0 -0
  9. package/android/expo-stubs/gradle/wrapper/gradle-wrapper.properties +7 -0
  10. package/android/expo-stubs/gradlew +251 -0
  11. package/android/expo-stubs/gradlew.bat +94 -0
  12. package/android/expo-stubs/settings.gradle +1 -0
  13. package/android/expo-stubs/src/main/java/expo/modules/core/interfaces/Package.java +11 -0
  14. package/android/expo-stubs/src/main/java/expo/modules/core/interfaces/ReactNativeHostHandler.java +7 -0
  15. package/android/libs/expo-stubs.jar +0 -0
  16. package/android/libs/replay-stubs.jar +0 -0
  17. package/android/replay-stubs/build.gradle +1 -1
  18. package/android/src/main/java/io/sentry/react/RNSentryFrameDelayCollector.java +128 -0
  19. package/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java +63 -11
  20. package/android/src/main/java/io/sentry/react/RNSentryVersion.java +1 -1
  21. package/android/src/newarch/java/io/sentry/react/RNSentryModule.java +6 -0
  22. package/android/src/oldarch/java/io/sentry/react/RNSentryModule.java +6 -0
  23. package/dist/js/NativeLogListener.d.ts.map +1 -1
  24. package/dist/js/NativeLogListener.js.map +1 -1
  25. package/dist/js/NativeRNSentry.d.ts +1 -0
  26. package/dist/js/NativeRNSentry.d.ts.map +1 -1
  27. package/dist/js/NativeRNSentry.js.map +1 -1
  28. package/dist/js/RNSentryReplayMaskNativeComponent.d.ts.map +1 -1
  29. package/dist/js/RNSentryReplayMaskNativeComponent.js +1 -2
  30. package/dist/js/RNSentryReplayMaskNativeComponent.js.map +1 -1
  31. package/dist/js/RNSentryReplayUnmaskNativeComponent.d.ts.map +1 -1
  32. package/dist/js/RNSentryReplayUnmaskNativeComponent.js +1 -2
  33. package/dist/js/RNSentryReplayUnmaskNativeComponent.js.map +1 -1
  34. package/dist/js/breadcrumb.d.ts.map +1 -1
  35. package/dist/js/breadcrumb.js.map +1 -1
  36. package/dist/js/client.d.ts.map +1 -1
  37. package/dist/js/client.js +1 -1
  38. package/dist/js/client.js.map +1 -1
  39. package/dist/js/feedback/FeedbackButton.d.ts +2 -1
  40. package/dist/js/feedback/FeedbackButton.d.ts.map +1 -1
  41. package/dist/js/feedback/FeedbackButton.js +5 -4
  42. package/dist/js/feedback/FeedbackButton.js.map +1 -1
  43. package/dist/js/feedback/{FeedbackWidget.d.ts → FeedbackForm.d.ts} +5 -5
  44. package/dist/js/feedback/FeedbackForm.d.ts.map +1 -0
  45. package/dist/js/feedback/{FeedbackWidget.js → FeedbackForm.js} +32 -30
  46. package/dist/js/feedback/FeedbackForm.js.map +1 -0
  47. package/dist/js/feedback/FeedbackForm.styles.d.ts +11 -0
  48. package/dist/js/feedback/FeedbackForm.styles.d.ts.map +1 -0
  49. package/dist/js/feedback/{FeedbackWidget.styles.js → FeedbackForm.styles.js} +1 -1
  50. package/dist/js/feedback/FeedbackForm.styles.js.map +1 -0
  51. package/dist/js/feedback/{FeedbackWidget.theme.d.ts → FeedbackForm.theme.d.ts} +7 -5
  52. package/dist/js/feedback/FeedbackForm.theme.d.ts.map +1 -0
  53. package/dist/js/feedback/{FeedbackWidget.theme.js → FeedbackForm.theme.js} +1 -1
  54. package/dist/js/feedback/FeedbackForm.theme.js.map +1 -0
  55. package/{ts3.8/dist/js/feedback/FeedbackWidget.types.d.ts → dist/js/feedback/FeedbackForm.types.d.ts} +305 -299
  56. package/dist/js/feedback/FeedbackForm.types.d.ts.map +1 -0
  57. package/dist/js/feedback/FeedbackForm.types.js +2 -0
  58. package/dist/js/feedback/FeedbackForm.types.js.map +1 -0
  59. package/dist/js/feedback/{FeedbackWidgetManager.d.ts → FeedbackFormManager.d.ts} +12 -4
  60. package/dist/js/feedback/FeedbackFormManager.d.ts.map +1 -0
  61. package/dist/js/feedback/{FeedbackWidgetManager.js → FeedbackFormManager.js} +22 -13
  62. package/dist/js/feedback/FeedbackFormManager.js.map +1 -0
  63. package/dist/js/feedback/{FeedbackWidgetProvider.d.ts → FeedbackFormProvider.d.ts} +10 -10
  64. package/dist/js/feedback/FeedbackFormProvider.d.ts.map +1 -0
  65. package/dist/js/feedback/{FeedbackWidgetProvider.js → FeedbackFormProvider.js} +18 -15
  66. package/dist/js/feedback/FeedbackFormProvider.js.map +1 -0
  67. package/dist/js/feedback/ScreenshotButton.d.ts +2 -2
  68. package/dist/js/feedback/ScreenshotButton.d.ts.map +1 -1
  69. package/dist/js/feedback/ScreenshotButton.js +6 -5
  70. package/dist/js/feedback/ScreenshotButton.js.map +1 -1
  71. package/dist/js/feedback/ShakeToReportBug.d.ts.map +1 -1
  72. package/dist/js/feedback/ShakeToReportBug.js.map +1 -1
  73. package/dist/js/feedback/defaults.d.ts +2 -2
  74. package/dist/js/feedback/defaults.d.ts.map +1 -1
  75. package/dist/js/feedback/defaults.js.map +1 -1
  76. package/dist/js/feedback/integration.d.ts +13 -13
  77. package/dist/js/feedback/integration.d.ts.map +1 -1
  78. package/dist/js/feedback/integration.js.map +1 -1
  79. package/dist/js/feedback/lazy.d.ts +5 -0
  80. package/dist/js/feedback/lazy.d.ts.map +1 -1
  81. package/dist/js/feedback/lazy.js +12 -0
  82. package/dist/js/feedback/lazy.js.map +1 -1
  83. package/dist/js/feedback/utils.d.ts.map +1 -1
  84. package/dist/js/feedback/utils.js +1 -0
  85. package/dist/js/feedback/utils.js.map +1 -1
  86. package/dist/js/index.d.ts +12 -3
  87. package/dist/js/index.d.ts.map +1 -1
  88. package/dist/js/index.js +12 -3
  89. package/dist/js/index.js.map +1 -1
  90. package/dist/js/integrations/appRegistry.d.ts.map +1 -1
  91. package/dist/js/integrations/appRegistry.js.map +1 -1
  92. package/dist/js/integrations/breadcrumbs.d.ts.map +1 -1
  93. package/dist/js/integrations/breadcrumbs.js +1 -1
  94. package/dist/js/integrations/breadcrumbs.js.map +1 -1
  95. package/dist/js/integrations/debugsymbolicator.d.ts.map +1 -1
  96. package/dist/js/integrations/debugsymbolicator.js +4 -5
  97. package/dist/js/integrations/debugsymbolicator.js.map +1 -1
  98. package/dist/js/integrations/debugsymbolicatorutils.d.ts.map +1 -1
  99. package/dist/js/integrations/debugsymbolicatorutils.js.map +1 -1
  100. package/dist/js/integrations/default.d.ts.map +1 -1
  101. package/dist/js/integrations/default.js +1 -2
  102. package/dist/js/integrations/default.js.map +1 -1
  103. package/dist/js/integrations/devicecontext.d.ts.map +1 -1
  104. package/dist/js/integrations/devicecontext.js +1 -1
  105. package/dist/js/integrations/devicecontext.js.map +1 -1
  106. package/dist/js/integrations/expoconstants.d.ts.map +1 -1
  107. package/dist/js/integrations/expoconstants.js.map +1 -1
  108. package/dist/js/integrations/expocontext.d.ts.map +1 -1
  109. package/dist/js/integrations/expocontext.js.map +1 -1
  110. package/dist/js/integrations/expoupdateslistener.d.ts.map +1 -1
  111. package/dist/js/integrations/expoupdateslistener.js +0 -1
  112. package/dist/js/integrations/expoupdateslistener.js.map +1 -1
  113. package/dist/js/integrations/graphql.d.ts.map +1 -1
  114. package/dist/js/integrations/graphql.js.map +1 -1
  115. package/dist/js/integrations/logEnricherIntegration.d.ts.map +1 -1
  116. package/dist/js/integrations/logEnricherIntegration.js +1 -1
  117. package/dist/js/integrations/logEnricherIntegration.js.map +1 -1
  118. package/dist/js/integrations/modulesloader.d.ts.map +1 -1
  119. package/dist/js/integrations/modulesloader.js.map +1 -1
  120. package/dist/js/integrations/nativelinkederrors.d.ts.map +1 -1
  121. package/dist/js/integrations/nativelinkederrors.js +1 -0
  122. package/dist/js/integrations/nativelinkederrors.js.map +1 -1
  123. package/dist/js/integrations/primitiveTagIntegration.d.ts.map +1 -1
  124. package/dist/js/integrations/primitiveTagIntegration.js.map +1 -1
  125. package/dist/js/integrations/reactnativeerrorhandlers.d.ts.map +1 -1
  126. package/dist/js/integrations/reactnativeerrorhandlers.js +2 -1
  127. package/dist/js/integrations/reactnativeerrorhandlers.js.map +1 -1
  128. package/dist/js/integrations/reactnativeerrorhandlersutils.d.ts.map +1 -1
  129. package/dist/js/integrations/reactnativeerrorhandlersutils.js +0 -5
  130. package/dist/js/integrations/reactnativeerrorhandlersutils.js.map +1 -1
  131. package/dist/js/integrations/reactnativeinfo.d.ts.map +1 -1
  132. package/dist/js/integrations/reactnativeinfo.js.map +1 -1
  133. package/dist/js/integrations/release.d.ts.map +1 -1
  134. package/dist/js/integrations/release.js +1 -1
  135. package/dist/js/integrations/release.js.map +1 -1
  136. package/dist/js/integrations/rewriteframes.d.ts.map +1 -1
  137. package/dist/js/integrations/rewriteframes.js.map +1 -1
  138. package/dist/js/integrations/screenshot.d.ts.map +1 -1
  139. package/dist/js/integrations/screenshot.js +1 -1
  140. package/dist/js/integrations/screenshot.js.map +1 -1
  141. package/dist/js/integrations/sdkinfo.d.ts.map +1 -1
  142. package/dist/js/integrations/sdkinfo.js.map +1 -1
  143. package/dist/js/integrations/spotlight.d.ts.map +1 -1
  144. package/dist/js/integrations/spotlight.js.map +1 -1
  145. package/dist/js/integrations/supabase.d.ts.map +1 -1
  146. package/dist/js/integrations/supabase.js.map +1 -1
  147. package/dist/js/integrations/viewhierarchy.d.ts.map +1 -1
  148. package/dist/js/integrations/viewhierarchy.js +1 -1
  149. package/dist/js/integrations/viewhierarchy.js.map +1 -1
  150. package/dist/js/misc.js.map +1 -1
  151. package/dist/js/options.d.ts +1 -1
  152. package/dist/js/options.d.ts.map +1 -1
  153. package/dist/js/options.js.map +1 -1
  154. package/dist/js/playground/examples.d.ts.map +1 -1
  155. package/dist/js/playground/examples.js.map +1 -1
  156. package/dist/js/playground/modal.d.ts +2 -2
  157. package/dist/js/playground/modal.d.ts.map +1 -1
  158. package/dist/js/playground/modal.js +5 -103
  159. package/dist/js/playground/modal.js.map +1 -1
  160. package/dist/js/playground/modal.styles.d.ts +100 -0
  161. package/dist/js/playground/modal.styles.d.ts.map +1 -0
  162. package/dist/js/playground/modal.styles.js +98 -0
  163. package/dist/js/playground/modal.styles.js.map +1 -0
  164. package/dist/js/profiling/cache.js +2 -2
  165. package/dist/js/profiling/cache.js.map +1 -1
  166. package/dist/js/profiling/convertHermesProfile.d.ts.map +1 -1
  167. package/dist/js/profiling/convertHermesProfile.js.map +1 -1
  168. package/dist/js/profiling/debugid.d.ts.map +1 -1
  169. package/dist/js/profiling/debugid.js.map +1 -1
  170. package/dist/js/profiling/hermes.d.ts.map +1 -1
  171. package/dist/js/profiling/hermes.js.map +1 -1
  172. package/dist/js/profiling/integration.d.ts.map +1 -1
  173. package/dist/js/profiling/integration.js.map +1 -1
  174. package/dist/js/profiling/types.d.ts.map +1 -1
  175. package/dist/js/profiling/types.js.map +1 -1
  176. package/dist/js/profiling/utils.d.ts.map +1 -1
  177. package/dist/js/profiling/utils.js +1 -1
  178. package/dist/js/profiling/utils.js.map +1 -1
  179. package/dist/js/replay/CustomMask.d.ts +1 -1
  180. package/dist/js/replay/CustomMask.d.ts.map +1 -1
  181. package/dist/js/replay/CustomMask.js +1 -1
  182. package/dist/js/replay/CustomMask.js.map +1 -1
  183. package/dist/js/replay/CustomMask.web.d.ts +1 -1
  184. package/dist/js/replay/CustomMask.web.d.ts.map +1 -1
  185. package/dist/js/replay/CustomMask.web.js +2 -2
  186. package/dist/js/replay/CustomMask.web.js.map +1 -1
  187. package/dist/js/replay/browserReplay.d.ts.map +1 -1
  188. package/dist/js/replay/browserReplay.js +0 -2
  189. package/dist/js/replay/browserReplay.js.map +1 -1
  190. package/dist/js/replay/mobilereplay.d.ts.map +1 -1
  191. package/dist/js/replay/mobilereplay.js +21 -2
  192. package/dist/js/replay/mobilereplay.js.map +1 -1
  193. package/dist/js/replay/networkUtils.d.ts +0 -1
  194. package/dist/js/replay/networkUtils.d.ts.map +1 -1
  195. package/dist/js/replay/networkUtils.js.map +1 -1
  196. package/dist/js/replay/xhrUtils.d.ts.map +1 -1
  197. package/dist/js/replay/xhrUtils.js.map +1 -1
  198. package/dist/js/scopeSync.d.ts.map +1 -1
  199. package/dist/js/scopeSync.js +1 -1
  200. package/dist/js/scopeSync.js.map +1 -1
  201. package/dist/js/sdk.d.ts +21 -0
  202. package/dist/js/sdk.d.ts.map +1 -1
  203. package/dist/js/sdk.js +42 -18
  204. package/dist/js/sdk.js.map +1 -1
  205. package/dist/js/tools/ModulesCollector.js +1 -1
  206. package/dist/js/tools/ModulesCollector.js.map +1 -1
  207. package/dist/js/tools/collectModules.js +0 -1
  208. package/dist/js/tools/collectModules.js.map +1 -1
  209. package/dist/js/tools/easBuildHooks.d.ts.map +1 -1
  210. package/dist/js/tools/easBuildHooks.js +13 -14
  211. package/dist/js/tools/easBuildHooks.js.map +1 -1
  212. package/dist/js/tools/enableLogger.js +1 -2
  213. package/dist/js/tools/enableLogger.js.map +1 -1
  214. package/dist/js/tools/metroMiddleware.d.ts.map +1 -1
  215. package/dist/js/tools/metroMiddleware.js.map +1 -1
  216. package/dist/js/tools/metroconfig.d.ts.map +1 -1
  217. package/dist/js/tools/metroconfig.js +10 -12
  218. package/dist/js/tools/metroconfig.js.map +1 -1
  219. package/dist/js/tools/sentryBabelTransformerUtils.d.ts.map +1 -1
  220. package/dist/js/tools/sentryBabelTransformerUtils.js +9 -10
  221. package/dist/js/tools/sentryBabelTransformerUtils.js.map +1 -1
  222. package/dist/js/tools/sentryMetroSerializer.d.ts.map +1 -1
  223. package/dist/js/tools/sentryMetroSerializer.js +6 -7
  224. package/dist/js/tools/sentryMetroSerializer.js.map +1 -1
  225. package/dist/js/tools/sentryOptionsSerializer.d.ts.map +1 -1
  226. package/dist/js/tools/sentryOptionsSerializer.js +3 -5
  227. package/dist/js/tools/sentryOptionsSerializer.js.map +1 -1
  228. package/dist/js/tools/sentryReleaseInjector.d.ts +1 -1
  229. package/dist/js/tools/sentryReleaseInjector.d.ts.map +1 -1
  230. package/dist/js/tools/sentryReleaseInjector.js.map +1 -1
  231. package/dist/js/tools/utils.d.ts.map +1 -1
  232. package/dist/js/tools/utils.js +7 -10
  233. package/dist/js/tools/utils.js.map +1 -1
  234. package/dist/js/tools/vendor/metro/countLines.d.ts.map +1 -1
  235. package/dist/js/tools/vendor/metro/utils.d.ts.map +1 -1
  236. package/dist/js/tools/vendor/metro/utils.js +5 -5
  237. package/dist/js/tools/vendor/metro/utils.js.map +1 -1
  238. package/dist/js/touchevents.d.ts.map +1 -1
  239. package/dist/js/touchevents.js +19 -19
  240. package/dist/js/touchevents.js.map +1 -1
  241. package/dist/js/tracing/expoAsset.js.map +1 -1
  242. package/dist/js/tracing/expoImage.d.ts.map +1 -1
  243. package/dist/js/tracing/expoImage.js +1 -1
  244. package/dist/js/tracing/expoImage.js.map +1 -1
  245. package/dist/js/tracing/expoRouter.d.ts.map +1 -1
  246. package/dist/js/tracing/expoRouter.js.map +1 -1
  247. package/dist/js/tracing/gesturetracing.d.ts.map +1 -1
  248. package/dist/js/tracing/gesturetracing.js.map +1 -1
  249. package/dist/js/tracing/integrations/appStart.d.ts +19 -1
  250. package/dist/js/tracing/integrations/appStart.d.ts.map +1 -1
  251. package/dist/js/tracing/integrations/appStart.js +144 -9
  252. package/dist/js/tracing/integrations/appStart.js.map +1 -1
  253. package/dist/js/tracing/integrations/nativeFrames.d.ts.map +1 -1
  254. package/dist/js/tracing/integrations/nativeFrames.js +47 -1
  255. package/dist/js/tracing/integrations/nativeFrames.js.map +1 -1
  256. package/dist/js/tracing/integrations/stalltracking.d.ts +1 -1
  257. package/dist/js/tracing/integrations/stalltracking.d.ts.map +1 -1
  258. package/dist/js/tracing/integrations/stalltracking.js +4 -2
  259. package/dist/js/tracing/integrations/stalltracking.js.map +1 -1
  260. package/dist/js/tracing/integrations/timeToDisplayIntegration.d.ts.map +1 -1
  261. package/dist/js/tracing/integrations/timeToDisplayIntegration.js +15 -15
  262. package/dist/js/tracing/integrations/timeToDisplayIntegration.js.map +1 -1
  263. package/dist/js/tracing/integrations/userInteraction.d.ts.map +1 -1
  264. package/dist/js/tracing/integrations/userInteraction.js.map +1 -1
  265. package/dist/js/tracing/onSpanEndUtils.d.ts.map +1 -1
  266. package/dist/js/tracing/onSpanEndUtils.js +43 -14
  267. package/dist/js/tracing/onSpanEndUtils.js.map +1 -1
  268. package/dist/js/tracing/reactnativenavigation.d.ts.map +1 -1
  269. package/dist/js/tracing/reactnativenavigation.js.map +1 -1
  270. package/dist/js/tracing/reactnativeprofiler.d.ts.map +1 -1
  271. package/dist/js/tracing/reactnativeprofiler.js +2 -2
  272. package/dist/js/tracing/reactnativeprofiler.js.map +1 -1
  273. package/dist/js/tracing/reactnativetracing.d.ts.map +1 -1
  274. package/dist/js/tracing/reactnativetracing.js +0 -1
  275. package/dist/js/tracing/reactnativetracing.js.map +1 -1
  276. package/dist/js/tracing/reactnavigation.d.ts +3 -0
  277. package/dist/js/tracing/reactnavigation.d.ts.map +1 -1
  278. package/dist/js/tracing/reactnavigation.js +6 -4
  279. package/dist/js/tracing/reactnavigation.js.map +1 -1
  280. package/dist/js/tracing/span.d.ts +2 -17
  281. package/dist/js/tracing/span.d.ts.map +1 -1
  282. package/dist/js/tracing/span.js +1 -1
  283. package/dist/js/tracing/span.js.map +1 -1
  284. package/dist/js/tracing/timeToDisplayFallback.d.ts.map +1 -1
  285. package/dist/js/tracing/timetodisplay.d.ts.map +1 -1
  286. package/dist/js/tracing/timetodisplay.js +42 -19
  287. package/dist/js/tracing/timetodisplay.js.map +1 -1
  288. package/dist/js/tracing/timetodisplaynative.d.ts +1 -1
  289. package/dist/js/tracing/timetodisplaynative.d.ts.map +1 -1
  290. package/dist/js/tracing/timetodisplaynative.js +5 -4
  291. package/dist/js/tracing/timetodisplaynative.js.map +1 -1
  292. package/dist/js/tracing/types.js.map +1 -1
  293. package/dist/js/tracing/utils.d.ts.map +1 -1
  294. package/dist/js/tracing/utils.js.map +1 -1
  295. package/dist/js/transports/encodePolyfill.d.ts +1 -1
  296. package/dist/js/transports/encodePolyfill.d.ts.map +1 -1
  297. package/dist/js/transports/encodePolyfill.js.map +1 -1
  298. package/dist/js/transports/native.d.ts.map +1 -1
  299. package/dist/js/transports/native.js.map +1 -1
  300. package/dist/js/utils/AsyncExpiringMap.js.map +1 -1
  301. package/dist/js/utils/encode.js.map +1 -1
  302. package/dist/js/utils/envelope.d.ts.map +1 -1
  303. package/dist/js/utils/envelope.js.map +1 -1
  304. package/dist/js/utils/environment.d.ts.map +1 -1
  305. package/dist/js/utils/environment.js.map +1 -1
  306. package/dist/js/utils/expomodules.d.ts.map +1 -1
  307. package/dist/js/utils/expomodules.js.map +1 -1
  308. package/dist/js/utils/fill.js +1 -1
  309. package/dist/js/utils/fill.js.map +1 -1
  310. package/dist/js/utils/ignorerequirecyclelogs.js.map +1 -1
  311. package/dist/js/utils/normalize.js +2 -2
  312. package/dist/js/utils/normalize.js.map +1 -1
  313. package/dist/js/utils/outcome.js.map +1 -1
  314. package/dist/js/utils/primitiveConverter.js.map +1 -1
  315. package/dist/js/utils/release.js.map +1 -1
  316. package/dist/js/utils/rnlibraries.d.ts.map +1 -1
  317. package/dist/js/utils/rnlibraries.js +1 -7
  318. package/dist/js/utils/rnlibraries.js.map +1 -1
  319. package/dist/js/utils/safe.d.ts.map +1 -1
  320. package/dist/js/utils/safe.js.map +1 -1
  321. package/dist/js/utils/span.d.ts.map +1 -1
  322. package/dist/js/utils/span.js.map +1 -1
  323. package/dist/js/utils/worldwide.d.ts +0 -1
  324. package/dist/js/utils/worldwide.d.ts.map +1 -1
  325. package/dist/js/utils/worldwide.js.map +1 -1
  326. package/dist/js/utils/xhr.d.ts +0 -1
  327. package/dist/js/utils/xhr.d.ts.map +1 -1
  328. package/dist/js/utils/xhr.js.map +1 -1
  329. package/dist/js/vendor/base64-js/fromByteArray.js +1 -1
  330. package/dist/js/vendor/base64-js/fromByteArray.js.map +1 -1
  331. package/dist/js/vendor/buffer/utf8ToBytes.js +1 -1
  332. package/dist/js/vendor/buffer/utf8ToBytes.js.map +1 -1
  333. package/dist/js/vendor/react-native/index.d.ts.map +1 -1
  334. package/dist/js/vendor/react-native/index.js.map +1 -1
  335. package/dist/js/version.d.ts +1 -1
  336. package/dist/js/version.js +1 -1
  337. package/dist/js/version.js.map +1 -1
  338. package/dist/js/wrapper.d.ts +1 -0
  339. package/dist/js/wrapper.d.ts.map +1 -1
  340. package/dist/js/wrapper.js +20 -9
  341. package/dist/js/wrapper.js.map +1 -1
  342. package/expo-module.config.json +7 -0
  343. package/ios/RNSentry.mm +18 -1
  344. package/ios/RNSentryReplay.mm +1 -1
  345. package/ios/RNSentrySDK.m +1 -1
  346. package/ios/RNSentryStart.m +4 -1
  347. package/ios/RNSentryTimeToDisplay.m +48 -32
  348. package/ios/RNSentryVersion.m +1 -1
  349. package/ios/SentryScreenFramesWrapper.h +2 -0
  350. package/ios/SentryScreenFramesWrapper.m +35 -0
  351. package/package.json +18 -22
  352. package/plugin/build/logger.js +1 -1
  353. package/plugin/build/utils.js +2 -0
  354. package/plugin/build/withSentry.js +1 -2
  355. package/plugin/build/withSentryAndroid.js +2 -0
  356. package/plugin/build/withSentryAndroidGradlePlugin.d.ts +1 -1
  357. package/plugin/build/withSentryAndroidGradlePlugin.js +1 -1
  358. package/plugin/build/withSentryIOS.js +1 -3
  359. package/scripts/eas-build-hook.js +0 -2
  360. package/scripts/expo-upload-sourcemaps.js +0 -1
  361. package/src/js/NativeRNSentry.ts +3 -0
  362. package/src/js/RNSentryReplayMaskNativeComponent.ts +2 -3
  363. package/src/js/RNSentryReplayUnmaskNativeComponent.ts +2 -3
  364. package/ts3.8/dist/js/NativeRNSentry.d.ts +1 -0
  365. package/ts3.8/dist/js/feedback/FeedbackButton.d.ts +2 -1
  366. package/ts3.8/dist/js/feedback/{FeedbackWidget.d.ts → FeedbackForm.d.ts} +5 -5
  367. package/ts3.8/dist/js/feedback/FeedbackForm.styles.d.ts +11 -0
  368. package/ts3.8/dist/js/feedback/{FeedbackWidget.theme.d.ts → FeedbackForm.theme.d.ts} +7 -5
  369. package/{dist/js/feedback/FeedbackWidget.types.d.ts → ts3.8/dist/js/feedback/FeedbackForm.types.d.ts} +305 -299
  370. package/ts3.8/dist/js/feedback/{FeedbackWidgetManager.d.ts → FeedbackFormManager.d.ts} +12 -4
  371. package/ts3.8/dist/js/feedback/{FeedbackWidgetProvider.d.ts → FeedbackFormProvider.d.ts} +10 -10
  372. package/ts3.8/dist/js/feedback/ScreenshotButton.d.ts +2 -2
  373. package/ts3.8/dist/js/feedback/defaults.d.ts +2 -2
  374. package/ts3.8/dist/js/feedback/integration.d.ts +13 -13
  375. package/ts3.8/dist/js/feedback/lazy.d.ts +5 -0
  376. package/ts3.8/dist/js/index.d.ts +12 -3
  377. package/ts3.8/dist/js/options.d.ts +1 -1
  378. package/ts3.8/dist/js/playground/modal.d.ts +2 -2
  379. package/ts3.8/dist/js/playground/modal.styles.d.ts +100 -0
  380. package/ts3.8/dist/js/replay/CustomMask.d.ts +1 -1
  381. package/ts3.8/dist/js/replay/CustomMask.web.d.ts +1 -1
  382. package/ts3.8/dist/js/replay/networkUtils.d.ts +0 -1
  383. package/ts3.8/dist/js/sdk.d.ts +21 -0
  384. package/ts3.8/dist/js/tracing/integrations/appStart.d.ts +19 -1
  385. package/ts3.8/dist/js/tracing/integrations/stalltracking.d.ts +1 -1
  386. package/ts3.8/dist/js/tracing/reactnavigation.d.ts +3 -0
  387. package/ts3.8/dist/js/tracing/span.d.ts +2 -17
  388. package/ts3.8/dist/js/tracing/timetodisplaynative.d.ts +1 -1
  389. package/ts3.8/dist/js/transports/encodePolyfill.d.ts +1 -1
  390. package/ts3.8/dist/js/utils/worldwide.d.ts +0 -1
  391. package/ts3.8/dist/js/utils/xhr.d.ts +0 -1
  392. package/ts3.8/dist/js/version.d.ts +1 -1
  393. package/ts3.8/dist/js/wrapper.d.ts +1 -0
  394. package/dist/js/feedback/FeedbackWidget.d.ts.map +0 -1
  395. package/dist/js/feedback/FeedbackWidget.js.map +0 -1
  396. package/dist/js/feedback/FeedbackWidget.styles.d.ts +0 -11
  397. package/dist/js/feedback/FeedbackWidget.styles.d.ts.map +0 -1
  398. package/dist/js/feedback/FeedbackWidget.styles.js.map +0 -1
  399. package/dist/js/feedback/FeedbackWidget.theme.d.ts.map +0 -1
  400. package/dist/js/feedback/FeedbackWidget.theme.js.map +0 -1
  401. package/dist/js/feedback/FeedbackWidget.types.d.ts.map +0 -1
  402. package/dist/js/feedback/FeedbackWidget.types.js +0 -2
  403. package/dist/js/feedback/FeedbackWidget.types.js.map +0 -1
  404. package/dist/js/feedback/FeedbackWidgetManager.d.ts.map +0 -1
  405. package/dist/js/feedback/FeedbackWidgetManager.js.map +0 -1
  406. package/dist/js/feedback/FeedbackWidgetProvider.d.ts.map +0 -1
  407. package/dist/js/feedback/FeedbackWidgetProvider.js.map +0 -1
  408. package/ts3.8/dist/js/feedback/FeedbackWidget.styles.d.ts +0 -11
@@ -28,7 +28,6 @@ import com.facebook.react.bridge.WritableArray;
28
28
  import com.facebook.react.bridge.WritableMap;
29
29
  import com.facebook.react.bridge.WritableNativeArray;
30
30
  import com.facebook.react.bridge.WritableNativeMap;
31
- import io.sentry.Breadcrumb;
32
31
  import io.sentry.ILogger;
33
32
  import io.sentry.IScope;
34
33
  import io.sentry.ISentryExecutorService;
@@ -73,7 +72,6 @@ import java.net.URISyntaxException;
73
72
  import java.nio.charset.Charset;
74
73
  import java.util.ArrayList;
75
74
  import java.util.HashMap;
76
- import java.util.Iterator;
77
75
  import java.util.List;
78
76
  import java.util.Map;
79
77
  import java.util.Properties;
@@ -96,6 +94,7 @@ public class RNSentryModuleImpl {
96
94
  private final ReactApplicationContext reactApplicationContext;
97
95
  private final PackageInfo packageInfo;
98
96
  private FrameMetricsAggregator frameMetricsAggregator = null;
97
+ private final RNSentryFrameDelayCollector frameDelayCollector = new RNSentryFrameDelayCollector();
99
98
  private boolean androidXAvailable;
100
99
 
101
100
  @VisibleForTesting static long lastStartTimestampMs = -1;
@@ -381,6 +380,39 @@ public class RNSentryModuleImpl {
381
380
  }
382
381
  }
383
382
 
383
+ public void fetchNativeFramesDelay(
384
+ double startTimestampSeconds, double endTimestampSeconds, Promise promise) {
385
+ try {
386
+ // Convert wall-clock seconds to System.nanoTime() based nanos
387
+ long nowNanos = System.nanoTime();
388
+ double nowSeconds = System.currentTimeMillis() / 1e3;
389
+
390
+ double startOffsetSeconds = nowSeconds - startTimestampSeconds;
391
+ double endOffsetSeconds = nowSeconds - endTimestampSeconds;
392
+
393
+ if (startOffsetSeconds < 0
394
+ || endOffsetSeconds < 0
395
+ || (long) (startOffsetSeconds * 1e9) > nowNanos
396
+ || (long) (endOffsetSeconds * 1e9) > nowNanos) {
397
+ promise.resolve(null);
398
+ return;
399
+ }
400
+
401
+ long startNanos = nowNanos - (long) (startOffsetSeconds * 1e9);
402
+ long endNanos = nowNanos - (long) (endOffsetSeconds * 1e9);
403
+
404
+ double delaySeconds = frameDelayCollector.getFramesDelay(startNanos, endNanos);
405
+ if (delaySeconds >= 0) {
406
+ promise.resolve(delaySeconds);
407
+ } else {
408
+ promise.resolve(null);
409
+ }
410
+ } catch (Throwable ignored) { // NOPMD - We don't want to crash in any case
411
+ logger.log(SentryLevel.WARNING, "Error fetching native frames delay.");
412
+ promise.resolve(null);
413
+ }
414
+ }
415
+
384
416
  public void captureReplay(boolean isHardCrash, Promise promise) {
385
417
  Sentry.getCurrentScopes().getOptions().getReplayController().captureReplay(isHardCrash);
386
418
  promise.resolve(getCurrentReplayId());
@@ -695,6 +727,19 @@ public class RNSentryModuleImpl {
695
727
  } else {
696
728
  logger.log(SentryLevel.WARNING, "androidx.core' isn't available as a dependency.");
697
729
  }
730
+
731
+ try {
732
+ final SentryOptions options = Sentry.getCurrentScopes().getOptions();
733
+ if (options instanceof SentryAndroidOptions) {
734
+ final SentryFrameMetricsCollector collector =
735
+ ((SentryAndroidOptions) options).getFrameMetricsCollector();
736
+ if (frameDelayCollector.start(collector)) {
737
+ logger.log(SentryLevel.INFO, "RNSentryFrameDelayCollector installed.");
738
+ }
739
+ }
740
+ } catch (Throwable ignored) { // NOPMD - We don't want to crash in any case
741
+ logger.log(SentryLevel.WARNING, "Error starting RNSentryFrameDelayCollector.");
742
+ }
698
743
  }
699
744
 
700
745
  public void disableNativeFramesTracking() {
@@ -702,6 +747,7 @@ public class RNSentryModuleImpl {
702
747
  frameMetricsAggregator.stop();
703
748
  frameMetricsAggregator = null;
704
749
  }
750
+ frameDelayCollector.stop();
705
751
  }
706
752
 
707
753
  public void getNewScreenTimeToDisplay(Promise promise) {
@@ -866,19 +912,25 @@ public class RNSentryModuleImpl {
866
912
  promise.resolve(null);
867
913
  return;
868
914
  }
869
- if (currentScope != null) {
870
- // Remove react-native breadcrumbs
871
- Iterator<Breadcrumb> breadcrumbsIterator = currentScope.getBreadcrumbs().iterator();
872
- while (breadcrumbsIterator.hasNext()) {
873
- Breadcrumb breadcrumb = breadcrumbsIterator.next();
874
- if ("react-native".equals(breadcrumb.getOrigin())) {
875
- breadcrumbsIterator.remove();
915
+
916
+ final @NotNull Map<String, Object> serialized =
917
+ InternalSentrySdk.serializeScope(context, (SentryAndroidOptions) options, currentScope);
918
+
919
+ final @Nullable Object serializedBreadcrumbs = serialized.get("breadcrumbs");
920
+ if (serializedBreadcrumbs instanceof List) {
921
+ final List<?> breadcrumbs = (List<?>) serializedBreadcrumbs;
922
+ List<Map<?, ?>> filtered = new ArrayList<>();
923
+ for (Object o : breadcrumbs) {
924
+ if (o instanceof Map) {
925
+ final Map<?, ?> breadcrumb = (Map<?, ?>) o;
926
+ if (!"react-native".equals(breadcrumb.get("origin"))) {
927
+ filtered.add(breadcrumb);
928
+ }
876
929
  }
877
930
  }
931
+ serialized.put("breadcrumbs", filtered);
878
932
  }
879
933
 
880
- final @NotNull Map<String, Object> serialized =
881
- InternalSentrySdk.serializeScope(context, (SentryAndroidOptions) options, currentScope);
882
934
  final @Nullable Object deviceContext = RNSentryMapConverter.convertToWritable(serialized);
883
935
  promise.resolve(deviceContext);
884
936
  }
@@ -2,7 +2,7 @@ package io.sentry.react;
2
2
 
3
3
  class RNSentryVersion {
4
4
  static final String REACT_NATIVE_SDK_PACKAGE_NAME = "npm:@sentry/react-native";
5
- static final String REACT_NATIVE_SDK_PACKAGE_VERSION = "8.5.0";
5
+ static final String REACT_NATIVE_SDK_PACKAGE_VERSION = "8.7.0";
6
6
  static final String NATIVE_SDK_NAME = "sentry.native.android.react-native";
7
7
  static final String ANDROID_SDK_NAME = "sentry.java.android.react-native";
8
8
  static final String REACT_NATIVE_SDK_NAME = "sentry.javascript.react-native";
@@ -67,6 +67,12 @@ public class RNSentryModule extends NativeRNSentrySpec {
67
67
  this.impl.fetchNativeFrames(promise);
68
68
  }
69
69
 
70
+ @Override
71
+ public void fetchNativeFramesDelay(
72
+ double startTimestampSeconds, double endTimestampSeconds, Promise promise) {
73
+ this.impl.fetchNativeFramesDelay(startTimestampSeconds, endTimestampSeconds, promise);
74
+ }
75
+
70
76
  @Override
71
77
  public void captureEnvelope(String rawBytes, ReadableMap options, Promise promise) {
72
78
  this.impl.captureEnvelope(rawBytes, options, promise);
@@ -67,6 +67,12 @@ public class RNSentryModule extends ReactContextBaseJavaModule {
67
67
  this.impl.fetchNativeFrames(promise);
68
68
  }
69
69
 
70
+ @ReactMethod
71
+ public void fetchNativeFramesDelay(
72
+ double startTimestampSeconds, double endTimestampSeconds, Promise promise) {
73
+ this.impl.fetchNativeFramesDelay(startTimestampSeconds, endTimestampSeconds, promise);
74
+ }
75
+
70
76
  @ReactMethod
71
77
  public void captureEnvelope(String rawBytes, ReadableMap options, Promise promise) {
72
78
  this.impl.captureEnvelope(rawBytes, options, promise);
@@ -1 +1 @@
1
- {"version":3,"file":"NativeLogListener.d.ts","sourceRoot":"","sources":["../../src/js/NativeLogListener.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CA4CxG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAiBjE"}
1
+ {"version":3,"file":"NativeLogListener.d.ts","sourceRoot":"","sources":["../../src/js/NativeLogListener.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMhD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CA4CxG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAiBjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"NativeLogListener.js","sourceRoot":"","sources":["../../src/js/NativeLogListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAuC;IAC5E,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE;QACtD,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACvE,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,QAAQ,EAAE,EAAE;QACd,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC/E,OAAO,SAAS,CAAC;KAClB;IAED,IAAI;QACF,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEpE,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CACvC,qBAAqB,EACrB,CAAC,KAA+D,EAAE,EAAE;;YAClE,MAAM,QAAQ,GAAmB;gBAC/B,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,MAAM;gBAC5B,SAAS,EAAE,MAAA,KAAK,CAAC,SAAS,mCAAI,QAAQ;gBACtC,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE;aAC7B,CAAC;YACF,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CACF,CAAC;QAEF,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAEtD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,OAAO,EAAE;gBACZ,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;aAC3C;QACH,CAAC,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,KAAK,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAmB;IACzD,MAAM,OAAO,GAAG,aAAa,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;IAE7D,QAAQ,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;QAC/B,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,SAAS;YACZ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb;YACE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,MAAM;KACT;AACH,CAAC","sourcesContent":["import { debug } from '@sentry/core';\nimport { NativeEventEmitter, NativeModules, Platform } from 'react-native';\nimport type { NativeLogEntry } from './options';\nimport { isExpoGo } from './utils/environment';\n\nconst NATIVE_LOG_EVENT_NAME = 'SentryNativeLog';\n\n/**\n * Sets up the native log listener that forwards logs from the native SDK to JS.\n * This only works when `debug: true` is set in Sentry options.\n *\n * @param callback - The callback to invoke when a native log is received.\n * @returns A function to remove the listener, or undefined if setup failed.\n */\nexport function setupNativeLogListener(callback: (log: NativeLogEntry) => void): (() => void) | undefined {\n if (Platform.OS !== 'ios' && Platform.OS !== 'android') {\n debug.log('Native log listener is only supported on iOS and Android.');\n return undefined;\n }\n\n if (isExpoGo()) {\n return undefined;\n }\n\n if (!NativeModules.RNSentry) {\n debug.warn('Could not set up native log listener: RNSentry module not found.');\n return undefined;\n }\n\n try {\n const eventEmitter = new NativeEventEmitter(NativeModules.RNSentry);\n\n const listener = eventEmitter.addListener(\n NATIVE_LOG_EVENT_NAME,\n (event: { level?: string; component?: string; message?: string }) => {\n const logEntry: NativeLogEntry = {\n level: event.level ?? 'info',\n component: event.component ?? 'Sentry',\n message: event.message ?? '',\n };\n callback(logEntry);\n },\n );\n\n debug.log('Native log listener set up successfully.');\n\n let removed = false;\n return () => {\n if (!removed) {\n listener.remove();\n removed = true;\n debug.log('Native log listener removed.');\n }\n };\n } catch (error) {\n debug.warn('Failed to set up native log listener:', error);\n return undefined;\n }\n}\n\n/**\n * Default handler for native logs that uses Sentry's debug logger.\n * This avoids interference with captureConsoleIntegration which would\n * otherwise capture these logs as breadcrumbs or events.\n */\nexport function defaultNativeLogHandler(log: NativeLogEntry): void {\n const message = `[Native] [${log.component}] ${log.message}`;\n\n switch (log.level.toLowerCase()) {\n case 'fatal':\n case 'error':\n debug.error(message);\n break;\n case 'warning':\n debug.warn(message);\n break;\n case 'info':\n case 'debug':\n default:\n debug.log(message);\n break;\n }\n}\n"]}
1
+ {"version":3,"file":"NativeLogListener.js","sourceRoot":"","sources":["../../src/js/NativeLogListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAI3E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAuC;IAC5E,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACvD,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,EAAE,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC/E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEpE,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CACvC,qBAAqB,EACrB,CAAC,KAA+D,EAAE,EAAE;;YAClE,MAAM,QAAQ,GAAmB;gBAC/B,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,MAAM;gBAC5B,SAAS,EAAE,MAAA,KAAK,CAAC,SAAS,mCAAI,QAAQ;gBACtC,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,mCAAI,EAAE;aAC7B,CAAC;YACF,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CACF,CAAC;QAEF,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QAEtD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAmB;IACzD,MAAM,OAAO,GAAG,aAAa,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;IAE7D,QAAQ,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QAChC,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,SAAS;YACZ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb;YACE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnB,MAAM;IACV,CAAC;AACH,CAAC","sourcesContent":["import { debug } from '@sentry/core';\nimport { NativeEventEmitter, NativeModules, Platform } from 'react-native';\n\nimport type { NativeLogEntry } from './options';\n\nimport { isExpoGo } from './utils/environment';\n\nconst NATIVE_LOG_EVENT_NAME = 'SentryNativeLog';\n\n/**\n * Sets up the native log listener that forwards logs from the native SDK to JS.\n * This only works when `debug: true` is set in Sentry options.\n *\n * @param callback - The callback to invoke when a native log is received.\n * @returns A function to remove the listener, or undefined if setup failed.\n */\nexport function setupNativeLogListener(callback: (log: NativeLogEntry) => void): (() => void) | undefined {\n if (Platform.OS !== 'ios' && Platform.OS !== 'android') {\n debug.log('Native log listener is only supported on iOS and Android.');\n return undefined;\n }\n\n if (isExpoGo()) {\n return undefined;\n }\n\n if (!NativeModules.RNSentry) {\n debug.warn('Could not set up native log listener: RNSentry module not found.');\n return undefined;\n }\n\n try {\n const eventEmitter = new NativeEventEmitter(NativeModules.RNSentry);\n\n const listener = eventEmitter.addListener(\n NATIVE_LOG_EVENT_NAME,\n (event: { level?: string; component?: string; message?: string }) => {\n const logEntry: NativeLogEntry = {\n level: event.level ?? 'info',\n component: event.component ?? 'Sentry',\n message: event.message ?? '',\n };\n callback(logEntry);\n },\n );\n\n debug.log('Native log listener set up successfully.');\n\n let removed = false;\n return () => {\n if (!removed) {\n listener.remove();\n removed = true;\n debug.log('Native log listener removed.');\n }\n };\n } catch (error) {\n debug.warn('Failed to set up native log listener:', error);\n return undefined;\n }\n}\n\n/**\n * Default handler for native logs that uses Sentry's debug logger.\n * This avoids interference with captureConsoleIntegration which would\n * otherwise capture these logs as breadcrumbs or events.\n */\nexport function defaultNativeLogHandler(log: NativeLogEntry): void {\n const message = `[Native] [${log.component}] ${log.message}`;\n\n switch (log.level.toLowerCase()) {\n case 'fatal':\n case 'error':\n debug.error(message);\n break;\n case 'warning':\n debug.warn(message);\n break;\n case 'info':\n case 'debug':\n default:\n debug.log(message);\n break;\n }\n}\n"]}
@@ -20,6 +20,7 @@ export interface Spec extends TurboModule {
20
20
  fetchNativeLogAttributes(): Promise<NativeDeviceContextsResponse | null>;
21
21
  fetchNativeAppStart(): Promise<NativeAppStartResponse | null>;
22
22
  fetchNativeFrames(): Promise<NativeFramesResponse | null>;
23
+ fetchNativeFramesDelay(startTimestampSeconds: number, endTimestampSeconds: number): Promise<number | null>;
23
24
  initNativeSdk(options: UnsafeObject): Promise<boolean>;
24
25
  setUser(defaultUserKeys: UnsafeObject | null, otherUserKeys: UnsafeObject | null): void;
25
26
  setContext(key: string, value: UnsafeObject | null): void;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeRNSentry.d.ts","sourceRoot":"","sources":["../../src/js/NativeRNSentry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NativeRNSentry.d.ts","sourceRoot":"","sources":["../../src/js/NativeRNSentry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NativeRNSentry.js","sourceRoot":"","sources":["../../src/js/NativeRNSentry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAiKnD,2DAA2D;AAC3D,eAAe,mBAAmB,CAAC,YAAY,CAAO,UAAU,CAAC,CAAC","sourcesContent":["import type { Package } from '@sentry/core';\nimport type { TurboModule } from 'react-native';\nimport { TurboModuleRegistry } from 'react-native';\nimport type { UnsafeObject } from './utils/rnlibrariesinterface';\n\n// There has to be only one interface and it has to be named `Spec`\n// Only extra allowed definitions are types (probably codegen bug)\nexport interface Spec extends TurboModule {\n addListener: (eventType: string) => void;\n removeListeners: (id: number) => void;\n getNewScreenTimeToDisplay(): Promise<number | undefined | null>;\n addBreadcrumb(breadcrumb: UnsafeObject): void;\n captureEnvelope(\n bytes: string,\n options: {\n hardCrashed: boolean;\n },\n ): Promise<boolean>;\n captureScreenshot(): Promise<NativeScreenshot[] | undefined | null>;\n clearBreadcrumbs(): void;\n crash(): void;\n closeNativeSdk(): Promise<void>;\n disableNativeFramesTracking(): void;\n fetchNativeRelease(): Promise<NativeReleaseResponse>;\n fetchNativeSdkInfo(): Promise<Package | null>;\n fetchNativeDeviceContexts(): Promise<NativeDeviceContextsResponse | null>;\n fetchNativeLogAttributes(): Promise<NativeDeviceContextsResponse | null>;\n fetchNativeAppStart(): Promise<NativeAppStartResponse | null>;\n fetchNativeFrames(): Promise<NativeFramesResponse | null>;\n initNativeSdk(options: UnsafeObject): Promise<boolean>;\n setUser(defaultUserKeys: UnsafeObject | null, otherUserKeys: UnsafeObject | null): void;\n setContext(key: string, value: UnsafeObject | null): void;\n setExtra(key: string, value: string): void;\n setTag(key: string, value: string): void;\n setAttribute(key: string, value: string): void;\n setAttributes(attributes: UnsafeObject): void;\n enableNativeFramesTracking(): void;\n fetchModules(): Promise<string | undefined | null>;\n fetchViewHierarchy(): Promise<number[] | undefined | null>;\n startProfiling(platformProfilers: boolean): { started?: boolean; error?: string };\n stopProfiling(): {\n profile?: string;\n nativeProfile?: UnsafeObject;\n androidProfile?: UnsafeObject;\n error?: string;\n };\n fetchNativePackageName(): string | undefined | null;\n fetchNativeStackFramesBy(instructionsAddr: number[]): NativeStackFrames | undefined | null;\n initNativeReactNavigationNewFrameTracking(): Promise<void>;\n captureReplay(isHardCrash: boolean): Promise<string | undefined | null>;\n getCurrentReplayId(): string | undefined | null;\n crashedLastRun(): Promise<boolean | undefined | null>;\n getDataFromUri(uri: string): Promise<number[]>;\n popTimeToDisplayFor(key: string): Promise<number | undefined | null>;\n setActiveSpanId(spanId: string): boolean;\n encodeToBase64(data: number[]): Promise<string | undefined | null>;\n enableShakeDetection(): void;\n disableShakeDetection(): void;\n}\n\nexport type NativeStackFrame = {\n platform: string;\n /**\n * The instruction address of this frame.\n * Formatted as hex with 0x prefix.\n */\n instruction_addr: string;\n package?: string;\n /**\n * The debug image address of this frame.\n * Formatted as hex with 0x prefix.\n */\n image_addr?: string;\n in_app?: boolean;\n /**\n * The symbol name of this frame.\n * If symbolicated locally.\n */\n function?: string;\n /**\n * The symbol address of this frame.\n * If symbolicated locally.\n * Formatted as hex with 0x prefix.\n */\n symbol_addr?: string;\n};\n\nexport type NativeDebugImage = {\n name?: string;\n type?: string;\n uuid?: string;\n debug_id?: string;\n image_addr?: string;\n image_size?: number;\n code_file?: string;\n image_vmaddr?: string;\n};\n\nexport type NativeStackFrames = {\n frames: NativeStackFrame[];\n debugMetaImages?: NativeDebugImage[];\n};\n\nexport type NativeAppStartResponse = {\n type: 'cold' | 'warm' | 'unknown';\n has_fetched: boolean;\n app_start_timestamp_ms?: number;\n spans: {\n description: string;\n start_timestamp_ms: number;\n end_timestamp_ms: number;\n }[];\n};\n\nexport type NativeFramesResponse = {\n totalFrames: number;\n slowFrames: number;\n frozenFrames: number;\n};\n\nexport type NativeReleaseResponse = {\n build: string;\n id: string;\n version: string;\n};\n\n/**\n * This type describes serialized scope from sentry-cocoa and sentry-android\n * https://github.com/getsentry/sentry-cocoa/blob/master/Sources/Sentry/SentryScope.m\n * https://github.com/getsentry/sentry-java/blob/a461f7e125b65240004e6162b341f383ce2e1394/sentry-android-core/src/main/java/io/sentry/android/core/InternalSentrySdk.java#L32\n */\nexport type NativeDeviceContextsResponse = {\n [key: string]: unknown;\n tags?: Record<string, string>;\n extra?: Record<string, unknown>;\n contexts?: Record<string, Record<string, unknown>>;\n user?: {\n userId?: string;\n email?: string;\n username?: string;\n ipAddress?: string;\n data?: Record<string, unknown>;\n };\n dist?: string;\n environment?: string;\n fingerprint?: string[];\n level?: string;\n breadcrumbs?: {\n level?: string;\n timestamp?: string;\n category?: string;\n type?: string;\n message?: string;\n data?: Record<string, unknown>;\n }[];\n};\n\nexport type NativeScreenshot = {\n data: number[];\n contentType: string;\n filename: string;\n};\n\n// The export must be here to pass codegen even if not used\nexport default TurboModuleRegistry.getEnforcing<Spec>('RNSentry');\n"]}
1
+ {"version":3,"file":"NativeRNSentry.js","sourceRoot":"","sources":["../../src/js/NativeRNSentry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAmKnD,2DAA2D;AAC3D,eAAe,mBAAmB,CAAC,YAAY,CAAO,UAAU,CAAC,CAAC","sourcesContent":["import type { Package } from '@sentry/core';\nimport type { TurboModule } from 'react-native';\n\nimport { TurboModuleRegistry } from 'react-native';\n\nimport type { UnsafeObject } from './utils/rnlibrariesinterface';\n\n// There has to be only one interface and it has to be named `Spec`\n// Only extra allowed definitions are types (probably codegen bug)\nexport interface Spec extends TurboModule {\n addListener: (eventType: string) => void;\n removeListeners: (id: number) => void;\n getNewScreenTimeToDisplay(): Promise<number | undefined | null>;\n addBreadcrumb(breadcrumb: UnsafeObject): void;\n captureEnvelope(\n bytes: string,\n options: {\n hardCrashed: boolean;\n },\n ): Promise<boolean>;\n captureScreenshot(): Promise<NativeScreenshot[] | undefined | null>;\n clearBreadcrumbs(): void;\n crash(): void;\n closeNativeSdk(): Promise<void>;\n disableNativeFramesTracking(): void;\n fetchNativeRelease(): Promise<NativeReleaseResponse>;\n fetchNativeSdkInfo(): Promise<Package | null>;\n fetchNativeDeviceContexts(): Promise<NativeDeviceContextsResponse | null>;\n fetchNativeLogAttributes(): Promise<NativeDeviceContextsResponse | null>;\n fetchNativeAppStart(): Promise<NativeAppStartResponse | null>;\n fetchNativeFrames(): Promise<NativeFramesResponse | null>;\n fetchNativeFramesDelay(startTimestampSeconds: number, endTimestampSeconds: number): Promise<number | null>;\n initNativeSdk(options: UnsafeObject): Promise<boolean>;\n setUser(defaultUserKeys: UnsafeObject | null, otherUserKeys: UnsafeObject | null): void;\n setContext(key: string, value: UnsafeObject | null): void;\n setExtra(key: string, value: string): void;\n setTag(key: string, value: string): void;\n setAttribute(key: string, value: string): void;\n setAttributes(attributes: UnsafeObject): void;\n enableNativeFramesTracking(): void;\n fetchModules(): Promise<string | undefined | null>;\n fetchViewHierarchy(): Promise<number[] | undefined | null>;\n startProfiling(platformProfilers: boolean): { started?: boolean; error?: string };\n stopProfiling(): {\n profile?: string;\n nativeProfile?: UnsafeObject;\n androidProfile?: UnsafeObject;\n error?: string;\n };\n fetchNativePackageName(): string | undefined | null;\n fetchNativeStackFramesBy(instructionsAddr: number[]): NativeStackFrames | undefined | null;\n initNativeReactNavigationNewFrameTracking(): Promise<void>;\n captureReplay(isHardCrash: boolean): Promise<string | undefined | null>;\n getCurrentReplayId(): string | undefined | null;\n crashedLastRun(): Promise<boolean | undefined | null>;\n getDataFromUri(uri: string): Promise<number[]>;\n popTimeToDisplayFor(key: string): Promise<number | undefined | null>;\n setActiveSpanId(spanId: string): boolean;\n encodeToBase64(data: number[]): Promise<string | undefined | null>;\n enableShakeDetection(): void;\n disableShakeDetection(): void;\n}\n\nexport type NativeStackFrame = {\n platform: string;\n /**\n * The instruction address of this frame.\n * Formatted as hex with 0x prefix.\n */\n instruction_addr: string;\n package?: string;\n /**\n * The debug image address of this frame.\n * Formatted as hex with 0x prefix.\n */\n image_addr?: string;\n in_app?: boolean;\n /**\n * The symbol name of this frame.\n * If symbolicated locally.\n */\n function?: string;\n /**\n * The symbol address of this frame.\n * If symbolicated locally.\n * Formatted as hex with 0x prefix.\n */\n symbol_addr?: string;\n};\n\nexport type NativeDebugImage = {\n name?: string;\n type?: string;\n uuid?: string;\n debug_id?: string;\n image_addr?: string;\n image_size?: number;\n code_file?: string;\n image_vmaddr?: string;\n};\n\nexport type NativeStackFrames = {\n frames: NativeStackFrame[];\n debugMetaImages?: NativeDebugImage[];\n};\n\nexport type NativeAppStartResponse = {\n type: 'cold' | 'warm' | 'unknown';\n has_fetched: boolean;\n app_start_timestamp_ms?: number;\n spans: {\n description: string;\n start_timestamp_ms: number;\n end_timestamp_ms: number;\n }[];\n};\n\nexport type NativeFramesResponse = {\n totalFrames: number;\n slowFrames: number;\n frozenFrames: number;\n};\n\nexport type NativeReleaseResponse = {\n build: string;\n id: string;\n version: string;\n};\n\n/**\n * This type describes serialized scope from sentry-cocoa and sentry-android\n * https://github.com/getsentry/sentry-cocoa/blob/master/Sources/Sentry/SentryScope.m\n * https://github.com/getsentry/sentry-java/blob/a461f7e125b65240004e6162b341f383ce2e1394/sentry-android-core/src/main/java/io/sentry/android/core/InternalSentrySdk.java#L32\n */\nexport type NativeDeviceContextsResponse = {\n [key: string]: unknown;\n tags?: Record<string, string>;\n extra?: Record<string, unknown>;\n contexts?: Record<string, Record<string, unknown>>;\n user?: {\n userId?: string;\n email?: string;\n username?: string;\n ipAddress?: string;\n data?: Record<string, unknown>;\n };\n dist?: string;\n environment?: string;\n fingerprint?: string[];\n level?: string;\n breadcrumbs?: {\n level?: string;\n timestamp?: string;\n category?: string;\n type?: string;\n message?: string;\n data?: Record<string, unknown>;\n }[];\n};\n\nexport type NativeScreenshot = {\n data: number[];\n contentType: string;\n filename: string;\n};\n\n// The export must be here to pass codegen even if not used\nexport default TurboModuleRegistry.getEnforcing<Spec>('RNSentry');\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RNSentryReplayMaskNativeComponent.d.ts","sourceRoot":"","sources":["../../src/js/RNSentryReplayMaskNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAO7D,MAAM,WAAW,WAAY,SAAQ,SAAS;CAAG;;AAEjD,wBAAuG"}
1
+ {"version":3,"file":"RNSentryReplayMaskNativeComponent.d.ts","sourceRoot":"","sources":["../../src/js/RNSentryReplayMaskNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM7D,MAAM,WAAW,WAAY,SAAQ,SAAS;CAAG;wBAE2B,aAAa,CAAC,WAAW,CAAC;AAAtG,wBAAuG"}
@@ -1,5 +1,4 @@
1
- // The default export exists in the file but eslint doesn't see it
2
- // eslint-disable-next-line import/default
1
+ // The default export exists in the file but the linter doesn't see it
3
2
  import { codegenNativeComponent } from 'react-native';
4
3
  export default codegenNativeComponent('RNSentryReplayMask');
5
4
  //# sourceMappingURL=RNSentryReplayMaskNativeComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RNSentryReplayMaskNativeComponent.js","sourceRoot":"","sources":["../../src/js/RNSentryReplayMaskNativeComponent.ts"],"names":[],"mappings":"AACA,kEAAkE;AAClE,0CAA0C;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAMtD,eAAe,sBAAsB,CAAc,oBAAoB,CAA+B,CAAC","sourcesContent":["import type { HostComponent, ViewProps } from 'react-native';\n// The default export exists in the file but eslint doesn't see it\n// eslint-disable-next-line import/default\nimport { codegenNativeComponent } from 'react-native';\n\n// If changed to type NativeProps = ViewProps, react native codegen will fail finding the NativeProps type\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface NativeProps extends ViewProps {}\n\nexport default codegenNativeComponent<NativeProps>('RNSentryReplayMask') as HostComponent<NativeProps>;\n"]}
1
+ {"version":3,"file":"RNSentryReplayMaskNativeComponent.js","sourceRoot":"","sources":["../../src/js/RNSentryReplayMaskNativeComponent.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAKtD,eAAe,sBAAsB,CAAc,oBAAoB,CAA+B,CAAC","sourcesContent":["import type { HostComponent, ViewProps } from 'react-native';\n\n// The default export exists in the file but the linter doesn't see it\nimport { codegenNativeComponent } from 'react-native';\n\n// If changed to type NativeProps = ViewProps, react native codegen will fail finding the NativeProps type\nexport interface NativeProps extends ViewProps {}\n\nexport default codegenNativeComponent<NativeProps>('RNSentryReplayMask') as HostComponent<NativeProps>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RNSentryReplayUnmaskNativeComponent.d.ts","sourceRoot":"","sources":["../../src/js/RNSentryReplayUnmaskNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAO7D,MAAM,WAAW,WAAY,SAAQ,SAAS;CAAG;;AAEjD,wBAAyG"}
1
+ {"version":3,"file":"RNSentryReplayUnmaskNativeComponent.d.ts","sourceRoot":"","sources":["../../src/js/RNSentryReplayUnmaskNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM7D,MAAM,WAAW,WAAY,SAAQ,SAAS;CAAG;wBAE6B,aAAa,CAAC,WAAW,CAAC;AAAxG,wBAAyG"}
@@ -1,5 +1,4 @@
1
- // The default export exists in the file but eslint doesn't see it
2
- // eslint-disable-next-line import/default
1
+ // The default export exists in the file but the linter doesn't see it
3
2
  import { codegenNativeComponent } from 'react-native';
4
3
  export default codegenNativeComponent('RNSentryReplayUnmask');
5
4
  //# sourceMappingURL=RNSentryReplayUnmaskNativeComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RNSentryReplayUnmaskNativeComponent.js","sourceRoot":"","sources":["../../src/js/RNSentryReplayUnmaskNativeComponent.ts"],"names":[],"mappings":"AACA,kEAAkE;AAClE,0CAA0C;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAMtD,eAAe,sBAAsB,CAAc,sBAAsB,CAA+B,CAAC","sourcesContent":["import type { HostComponent, ViewProps } from 'react-native';\n// The default export exists in the file but eslint doesn't see it\n// eslint-disable-next-line import/default\nimport { codegenNativeComponent } from 'react-native';\n\n// If changed to type NativeProps = ViewProps, react native codegen will fail finding the NativeProps type\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface NativeProps extends ViewProps {}\n\nexport default codegenNativeComponent<NativeProps>('RNSentryReplayUnmask') as HostComponent<NativeProps>;\n"]}
1
+ {"version":3,"file":"RNSentryReplayUnmaskNativeComponent.js","sourceRoot":"","sources":["../../src/js/RNSentryReplayUnmaskNativeComponent.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAKtD,eAAe,sBAAsB,CAAc,sBAAsB,CAA+B,CAAC","sourcesContent":["import type { HostComponent, ViewProps } from 'react-native';\n\n// The default export exists in the file but the linter doesn't see it\nimport { codegenNativeComponent } from 'react-native';\n\n// If changed to type NativeProps = ViewProps, react native codegen will fail finding the NativeProps type\nexport interface NativeProps extends ViewProps {}\n\nexport default codegenNativeComponent<NativeProps>('RNSentryReplayUnmask') as HostComponent<NativeProps>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../src/js/breadcrumb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG9D,eAAO,MAAM,wBAAwB,EAAE,aAAsB,CAAC;AAE9D,KAAK,mBAAmB,GAAG;KACxB,CAAC,IAAI,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO;CAC1C,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,mBAAmB,GAAG,UAAU,CA6B/E"}
1
+ {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../src/js/breadcrumb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI9D,eAAO,MAAM,wBAAwB,EAAE,aAAsB,CAAC;AAE9D,KAAK,mBAAmB,GAAG;KACxB,CAAC,IAAI,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO;CAC1C,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,mBAAmB,GAAG,UAAU,CA6B/E"}
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.js","sourceRoot":"","sources":["../../src/js/breadcrumb.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,wBAAwB,GAAkB,MAAM,CAAC;AAM9D;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA8B;IACjE,MAAM,UAAU,GAAe,EAAE,CAAC;IAElC,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;QACtC,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;KAClC;IACD,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE;QACvC,UAAU,CAAC,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC7D;IACD,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAC1C,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;KAC1C;IACD,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAC1C,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;KAC1C;IACD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE;QACzC,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;KACxC;IACD,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE;QACjE,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;KAClC;IACD,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE;QAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,qCAAqC;QACtG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;YAC5B,UAAU,CAAC,SAAS,GAAG,gBAAgB,CAAC;SACzC;KACF;IAED,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import type { Breadcrumb, SeverityLevel } from '@sentry/core';\nimport { severityLevelFromString } from '@sentry/core';\n\nexport const DEFAULT_BREADCRUMB_LEVEL: SeverityLevel = 'info';\n\ntype BreadcrumbCandidate = {\n [K in keyof Partial<Breadcrumb>]: unknown;\n};\n\n/**\n * Convert plain object to a valid Breadcrumb\n */\nexport function breadcrumbFromObject(candidate: BreadcrumbCandidate): Breadcrumb {\n const breadcrumb: Breadcrumb = {};\n\n if (typeof candidate.type === 'string') {\n breadcrumb.type = candidate.type;\n }\n if (typeof candidate.level === 'string') {\n breadcrumb.level = severityLevelFromString(candidate.level);\n }\n if (typeof candidate.event_id === 'string') {\n breadcrumb.event_id = candidate.event_id;\n }\n if (typeof candidate.category === 'string') {\n breadcrumb.category = candidate.category;\n }\n if (typeof candidate.message === 'string') {\n breadcrumb.message = candidate.message;\n }\n if (typeof candidate.data === 'object' && candidate.data !== null) {\n breadcrumb.data = candidate.data;\n }\n if (typeof candidate.timestamp === 'string') {\n const timestampSeconds = Date.parse(candidate.timestamp) / 1000; // breadcrumb timestamp is in seconds\n if (!isNaN(timestampSeconds)) {\n breadcrumb.timestamp = timestampSeconds;\n }\n }\n\n return breadcrumb;\n}\n"]}
1
+ {"version":3,"file":"breadcrumb.js","sourceRoot":"","sources":["../../src/js/breadcrumb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,MAAM,wBAAwB,GAAkB,MAAM,CAAC;AAM9D;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA8B;IACjE,MAAM,UAAU,GAAe,EAAE,CAAC;IAElC,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvC,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3C,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3C,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1C,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAClE,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,qCAAqC;QACtG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7B,UAAU,CAAC,SAAS,GAAG,gBAAgB,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC","sourcesContent":["import type { Breadcrumb, SeverityLevel } from '@sentry/core';\n\nimport { severityLevelFromString } from '@sentry/core';\n\nexport const DEFAULT_BREADCRUMB_LEVEL: SeverityLevel = 'info';\n\ntype BreadcrumbCandidate = {\n [K in keyof Partial<Breadcrumb>]: unknown;\n};\n\n/**\n * Convert plain object to a valid Breadcrumb\n */\nexport function breadcrumbFromObject(candidate: BreadcrumbCandidate): Breadcrumb {\n const breadcrumb: Breadcrumb = {};\n\n if (typeof candidate.type === 'string') {\n breadcrumb.type = candidate.type;\n }\n if (typeof candidate.level === 'string') {\n breadcrumb.level = severityLevelFromString(candidate.level);\n }\n if (typeof candidate.event_id === 'string') {\n breadcrumb.event_id = candidate.event_id;\n }\n if (typeof candidate.category === 'string') {\n breadcrumb.category = candidate.category;\n }\n if (typeof candidate.message === 'string') {\n breadcrumb.message = candidate.message;\n }\n if (typeof candidate.data === 'object' && candidate.data !== null) {\n breadcrumb.data = candidate.data;\n }\n if (typeof candidate.timestamp === 'string') {\n const timestampSeconds = Date.parse(candidate.timestamp) / 1000; // breadcrumb timestamp is in seconds\n if (!isNaN(timestampSeconds)) {\n breadcrumb.timestamp = timestampSeconds;\n }\n }\n\n return breadcrumb;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/js/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,QAAQ,EACR,KAAK,EACL,SAAS,EAET,aAAa,EACb,4BAA4B,EAC5B,YAAY,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,MAAM,EAIP,MAAM,cAAc,CAAC;AAMtB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAW1D;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,MAAM,CAAC,wBAAwB,CAAC;IACrE,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,oBAAoB,CAA4C;IACxE,OAAO,CAAC,wBAAwB,CAA2B;IAE3D;;;OAGG;gBACgB,OAAO,EAAE,wBAAwB;IAsDpD;;OAEG;IACI,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,GAAE,SAAc,GAAG,WAAW,CAAC,KAAK,CAAC;IAIvF;;OAEG;IACI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;IAIrG;;;OAGG;IACI,WAAW,IAAI,IAAI;IAI1B;;OAEG;IACI,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC;IAapC;;;OAGG;IACI,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAUxD;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC,4BAA4B,CAAC;IAiClF;;OAEG;IACI,IAAI,IAAI,IAAI;IAKnB;;;;OAIG;IACI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,IAAI;IAKtD;;;;OAIG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAKnD;;OAEG;IACH,OAAO,CAAC,cAAc;IAqCtB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAShC;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAa9B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/js/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,QAAQ,EACR,KAAK,EACL,SAAS,EAET,aAAa,EACb,4BAA4B,EAC5B,YAAY,EACb,MAAM,cAAc,CAAC;AAGtB,OAAO,EAGL,MAAM,EAIP,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAgB1D;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,MAAM,CAAC,wBAAwB,CAAC;IACrE,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,oBAAoB,CAA4C;IACxE,OAAO,CAAC,wBAAwB,CAA2B;IAE3D;;;OAGG;gBACgB,OAAO,EAAE,wBAAwB;IAsDpD;;OAEG;IACI,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,GAAE,SAAc,GAAG,WAAW,CAAC,KAAK,CAAC;IAIvF;;OAEG;IACI,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;IAIrG;;;OAGG;IACI,WAAW,IAAI,IAAI;IAI1B;;OAEG;IACI,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC;IAapC;;;OAGG;IACI,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAUxD;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC,4BAA4B,CAAC;IAiClF;;OAEG;IACI,IAAI,IAAI,IAAI;IAKnB;;;;OAIG;IACI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,IAAI;IAKtD;;;;OAIG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAKnD;;OAEG;IACH,OAAO,CAAC,cAAc;IAqCtB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAShC;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAa9B"}
package/dist/js/client.js CHANGED
@@ -103,7 +103,7 @@ export class ReactNativeClient extends Client {
103
103
  dsn: this.getDsn(),
104
104
  tunnel: undefined,
105
105
  });
106
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
106
+ // oxlint-disable-next-line typescript-eslint(no-floating-promises)
107
107
  this.sendEnvelope(envelope);
108
108
  }
109
109
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/js/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { eventFromException, eventFromMessage } from '@sentry/browser';\nimport type {\n ClientReportEnvelope,\n ClientReportItem,\n Envelope,\n Event,\n EventHint,\n Outcome,\n SeverityLevel,\n TransportMakeRequestResponse,\n UserFeedback,\n} from '@sentry/core';\nimport {\n _INTERNAL_flushLogsBuffer,\n addAutoIpAddressToSession,\n Client,\n dateTimestampInSeconds,\n debug,\n SentryError,\n} from '@sentry/core';\nimport { Alert } from 'react-native';\nimport { getDevServer } from './integrations/debugsymbolicatorutils';\nimport { defaultSdkInfo } from './integrations/sdkinfo';\nimport { getDefaultSidecarUrl } from './integrations/spotlight';\nimport { defaultNativeLogHandler, setupNativeLogListener } from './NativeLogListener';\nimport type { ReactNativeClientOptions } from './options';\nimport type { mobileReplayIntegration } from './replay/mobilereplay';\nimport { MOBILE_REPLAY_INTEGRATION_NAME } from './replay/mobilereplay';\nimport { createUserFeedbackEnvelope, items } from './utils/envelope';\nimport { ignoreRequireCycleLogs } from './utils/ignorerequirecyclelogs';\nimport { mergeOutcomes } from './utils/outcome';\nimport { ReactNativeLibraries } from './utils/rnlibraries';\nimport { NATIVE } from './wrapper';\n\nconst DEFAULT_FLUSH_INTERVAL = 5000;\n\n/**\n * The Sentry React Native SDK Client.\n *\n * @see ReactNativeClientOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class ReactNativeClient extends Client<ReactNativeClientOptions> {\n private _outcomesBuffer: Outcome[];\n private _logFlushIdleTimeout: ReturnType<typeof setTimeout> | undefined;\n private _removeNativeLogListener: (() => void) | undefined;\n\n /**\n * Creates a new React Native SDK instance.\n * @param options Configuration options for this SDK.\n */\n public constructor(options: ReactNativeClientOptions) {\n ignoreRequireCycleLogs(ReactNativeLibraries.ReactNativeVersion?.version);\n options._metadata = {\n ...options._metadata,\n sdk: {\n ...(options._metadata?.sdk || defaultSdkInfo),\n settings: {\n // Only allow IP inferral by Relay if sendDefaultPii is true\n infer_ip: options.sendDefaultPii ? 'auto' : 'never',\n ...options._metadata?.sdk?.settings,\n },\n },\n };\n\n // We default this to true, as it is the safer scenario\n options.parentSpanIsAlwaysRootSpan =\n options.parentSpanIsAlwaysRootSpan === undefined ? true : options.parentSpanIsAlwaysRootSpan;\n\n // enableLogs must be disabled before calling super() to avoid logs being captured.\n // This makes a copy of the user defined value, so we can restore it later for the native usaege.\n const originalEnableLogs = options.enableLogs;\n if (options.enableLogs && options.logsOrigin === 'native') {\n debug.log('disabling Sentry logs on JavaScript due to rule set by logsOrigin');\n options.enableLogs = false;\n }\n\n super(options);\n\n this._outcomesBuffer = [];\n\n if (options.sendDefaultPii === true) {\n this.on('beforeSendSession', addAutoIpAddressToSession);\n }\n\n if (options.enableLogs) {\n this.on('flush', () => {\n _INTERNAL_flushLogsBuffer(this);\n });\n\n this.on('afterCaptureLog', () => {\n if (this._logFlushIdleTimeout) {\n clearTimeout(this._logFlushIdleTimeout);\n }\n\n this._logFlushIdleTimeout = setTimeout(() => {\n _INTERNAL_flushLogsBuffer(this);\n }, DEFAULT_FLUSH_INTERVAL);\n });\n }\n\n // Restore original settings for enabling Native options.\n options.enableLogs = originalEnableLogs;\n }\n\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint: EventHint = {}): PromiseLike<Event> {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(message: string, level?: SeverityLevel, hint?: EventHint): PromiseLike<Event> {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * If native client is available it will trigger a native crash.\n * Use this only for testing purposes.\n */\n public nativeCrash(): void {\n NATIVE.nativeCrash();\n }\n\n /**\n * @inheritDoc\n */\n public close(): PromiseLike<boolean> {\n // Clean up native log listener\n if (this._removeNativeLogListener) {\n this._removeNativeLogListener();\n this._removeNativeLogListener = undefined;\n }\n\n // As super.close() flushes queued events, we wait for that to finish before closing the native SDK.\n return super.close().then((result: boolean) => {\n return NATIVE.closeNativeSdk().then(() => result);\n });\n }\n\n /**\n * Sends user feedback to Sentry.\n * @deprecated Use `Sentry.captureFeedback` instead.\n */\n public captureUserFeedback(feedback: UserFeedback): void {\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this._options._metadata,\n dsn: this.getDsn(),\n tunnel: undefined,\n });\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * @inheritdoc\n */\n public sendEnvelope(envelope: Envelope): PromiseLike<TransportMakeRequestResponse> {\n const outcomes = this._clearOutcomes();\n this._outcomesBuffer = mergeOutcomes(this._outcomesBuffer, outcomes);\n\n if (this._options.sendClientReports) {\n this._attachClientReportTo(this._outcomesBuffer, envelope as ClientReportEnvelope);\n }\n\n let shouldClearOutcomesBuffer = true;\n if (this._isEnabled() && this._transport && this._dsn) {\n this.emit('beforeEnvelope', envelope);\n\n this._transport.send(envelope).then(null, reason => {\n if (reason instanceof SentryError) {\n // SentryError is thrown by SyncPromise\n shouldClearOutcomesBuffer = false;\n // If this is called asynchronously we want the _outcomesBuffer to be cleared\n debug.error('SentryError while sending event, keeping outcomes buffer:', reason);\n } else {\n debug.error('Error while sending event:', reason);\n }\n });\n } else {\n debug.error('Transport disabled');\n }\n\n if (shouldClearOutcomesBuffer) {\n this._outcomesBuffer = []; // if send fails synchronously the _outcomesBuffer will stay intact\n }\n\n return Promise.resolve({});\n }\n\n /**\n * @inheritDoc\n */\n public init(): void {\n super.init();\n this._initNativeSdk();\n }\n\n /**\n * Register a hook on this client.\n *\n * (Generic method signature to allow for custom React Native Client events.)\n */\n public on(hook: string, callback: unknown): () => void {\n // @ts-expect-error on from the base class doesn't support generic types\n return super.on(hook, callback);\n }\n\n /**\n * Emit a hook that was previously registered via `on()`.\n *\n * (Generic method signature to allow for custom React Native Client events.)\n */\n public emit(hook: string, ...rest: unknown[]): void {\n // @ts-expect-error emit from the base class doesn't support generic types\n super.emit(hook, ...rest);\n }\n\n /**\n * Starts native client with dsn and options\n */\n private _initNativeSdk(): void {\n // Set up native log listener if debug is enabled\n if (this._options.debug) {\n const logHandler = this._options.onNativeLog ?? defaultNativeLogHandler;\n this._removeNativeLogListener = setupNativeLogListener(logHandler);\n }\n\n NATIVE.initNativeSdk({\n ...this._options,\n defaultSidecarUrl: getDefaultSidecarUrl(),\n devServerUrl: getDevServer()?.url || '',\n mobileReplayOptions:\n this._integrations[MOBILE_REPLAY_INTEGRATION_NAME] &&\n 'options' in this._integrations[MOBILE_REPLAY_INTEGRATION_NAME]\n ? (this._integrations[MOBILE_REPLAY_INTEGRATION_NAME] as ReturnType<typeof mobileReplayIntegration>).options\n : undefined,\n profilingOptions:\n this._options._experiments?.profilingOptions ?? this._options._experiments?.androidProfilingOptions,\n })\n .then(\n (result: boolean) => {\n return result;\n },\n () => {\n this._showCannotConnectDialog();\n return false;\n },\n )\n .then((didCallNativeInit: boolean) => {\n this._options.onReady?.({ didCallNativeInit });\n this.emit('afterInit');\n })\n .then(undefined, error => {\n debug.error('The OnReady callback threw an error: ', error);\n });\n }\n\n /**\n * If the user is in development mode, and the native nagger is enabled then it will show an alert.\n */\n private _showCannotConnectDialog(): void {\n if (__DEV__ && this._options.enableNativeNagger) {\n Alert.alert(\n 'Sentry',\n 'Warning, could not connect to Sentry native SDK.\\nIf you do not want to use the native component please pass `enableNative: false` in the options.\\nVisit: https://docs.sentry.io/platforms/react-native/ for more details.',\n );\n }\n }\n\n /**\n * Attaches a client report from outcomes to the envelope.\n */\n private _attachClientReportTo(outcomes: Outcome[], envelope: ClientReportEnvelope): void {\n if (outcomes.length > 0) {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: dateTimestampInSeconds(),\n discarded_events: outcomes,\n },\n ];\n\n envelope[items].push(clientReportItem);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/js/client.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ClientReportEnvelope,\n ClientReportItem,\n Envelope,\n Event,\n EventHint,\n Outcome,\n SeverityLevel,\n TransportMakeRequestResponse,\n UserFeedback,\n} from '@sentry/core';\n\nimport { eventFromException, eventFromMessage } from '@sentry/browser';\nimport {\n _INTERNAL_flushLogsBuffer,\n addAutoIpAddressToSession,\n Client,\n dateTimestampInSeconds,\n debug,\n SentryError,\n} from '@sentry/core';\nimport { Alert } from 'react-native';\n\nimport type { ReactNativeClientOptions } from './options';\nimport type { mobileReplayIntegration } from './replay/mobilereplay';\n\nimport { getDevServer } from './integrations/debugsymbolicatorutils';\nimport { defaultSdkInfo } from './integrations/sdkinfo';\nimport { getDefaultSidecarUrl } from './integrations/spotlight';\nimport { defaultNativeLogHandler, setupNativeLogListener } from './NativeLogListener';\nimport { MOBILE_REPLAY_INTEGRATION_NAME } from './replay/mobilereplay';\nimport { createUserFeedbackEnvelope, items } from './utils/envelope';\nimport { ignoreRequireCycleLogs } from './utils/ignorerequirecyclelogs';\nimport { mergeOutcomes } from './utils/outcome';\nimport { ReactNativeLibraries } from './utils/rnlibraries';\nimport { NATIVE } from './wrapper';\n\nconst DEFAULT_FLUSH_INTERVAL = 5000;\n\n/**\n * The Sentry React Native SDK Client.\n *\n * @see ReactNativeClientOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class ReactNativeClient extends Client<ReactNativeClientOptions> {\n private _outcomesBuffer: Outcome[];\n private _logFlushIdleTimeout: ReturnType<typeof setTimeout> | undefined;\n private _removeNativeLogListener: (() => void) | undefined;\n\n /**\n * Creates a new React Native SDK instance.\n * @param options Configuration options for this SDK.\n */\n public constructor(options: ReactNativeClientOptions) {\n ignoreRequireCycleLogs(ReactNativeLibraries.ReactNativeVersion?.version);\n options._metadata = {\n ...options._metadata,\n sdk: {\n ...(options._metadata?.sdk || defaultSdkInfo),\n settings: {\n // Only allow IP inferral by Relay if sendDefaultPii is true\n infer_ip: options.sendDefaultPii ? 'auto' : 'never',\n ...options._metadata?.sdk?.settings,\n },\n },\n };\n\n // We default this to true, as it is the safer scenario\n options.parentSpanIsAlwaysRootSpan =\n options.parentSpanIsAlwaysRootSpan === undefined ? true : options.parentSpanIsAlwaysRootSpan;\n\n // enableLogs must be disabled before calling super() to avoid logs being captured.\n // This makes a copy of the user defined value, so we can restore it later for the native usaege.\n const originalEnableLogs = options.enableLogs;\n if (options.enableLogs && options.logsOrigin === 'native') {\n debug.log('disabling Sentry logs on JavaScript due to rule set by logsOrigin');\n options.enableLogs = false;\n }\n\n super(options);\n\n this._outcomesBuffer = [];\n\n if (options.sendDefaultPii === true) {\n this.on('beforeSendSession', addAutoIpAddressToSession);\n }\n\n if (options.enableLogs) {\n this.on('flush', () => {\n _INTERNAL_flushLogsBuffer(this);\n });\n\n this.on('afterCaptureLog', () => {\n if (this._logFlushIdleTimeout) {\n clearTimeout(this._logFlushIdleTimeout);\n }\n\n this._logFlushIdleTimeout = setTimeout(() => {\n _INTERNAL_flushLogsBuffer(this);\n }, DEFAULT_FLUSH_INTERVAL);\n });\n }\n\n // Restore original settings for enabling Native options.\n options.enableLogs = originalEnableLogs;\n }\n\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint: EventHint = {}): PromiseLike<Event> {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(message: string, level?: SeverityLevel, hint?: EventHint): PromiseLike<Event> {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * If native client is available it will trigger a native crash.\n * Use this only for testing purposes.\n */\n public nativeCrash(): void {\n NATIVE.nativeCrash();\n }\n\n /**\n * @inheritDoc\n */\n public close(): PromiseLike<boolean> {\n // Clean up native log listener\n if (this._removeNativeLogListener) {\n this._removeNativeLogListener();\n this._removeNativeLogListener = undefined;\n }\n\n // As super.close() flushes queued events, we wait for that to finish before closing the native SDK.\n return super.close().then((result: boolean) => {\n return NATIVE.closeNativeSdk().then(() => result);\n });\n }\n\n /**\n * Sends user feedback to Sentry.\n * @deprecated Use `Sentry.captureFeedback` instead.\n */\n public captureUserFeedback(feedback: UserFeedback): void {\n const envelope = createUserFeedbackEnvelope(feedback, {\n metadata: this._options._metadata,\n dsn: this.getDsn(),\n tunnel: undefined,\n });\n // oxlint-disable-next-line typescript-eslint(no-floating-promises)\n this.sendEnvelope(envelope);\n }\n\n /**\n * @inheritdoc\n */\n public sendEnvelope(envelope: Envelope): PromiseLike<TransportMakeRequestResponse> {\n const outcomes = this._clearOutcomes();\n this._outcomesBuffer = mergeOutcomes(this._outcomesBuffer, outcomes);\n\n if (this._options.sendClientReports) {\n this._attachClientReportTo(this._outcomesBuffer, envelope as ClientReportEnvelope);\n }\n\n let shouldClearOutcomesBuffer = true;\n if (this._isEnabled() && this._transport && this._dsn) {\n this.emit('beforeEnvelope', envelope);\n\n this._transport.send(envelope).then(null, reason => {\n if (reason instanceof SentryError) {\n // SentryError is thrown by SyncPromise\n shouldClearOutcomesBuffer = false;\n // If this is called asynchronously we want the _outcomesBuffer to be cleared\n debug.error('SentryError while sending event, keeping outcomes buffer:', reason);\n } else {\n debug.error('Error while sending event:', reason);\n }\n });\n } else {\n debug.error('Transport disabled');\n }\n\n if (shouldClearOutcomesBuffer) {\n this._outcomesBuffer = []; // if send fails synchronously the _outcomesBuffer will stay intact\n }\n\n return Promise.resolve({});\n }\n\n /**\n * @inheritDoc\n */\n public init(): void {\n super.init();\n this._initNativeSdk();\n }\n\n /**\n * Register a hook on this client.\n *\n * (Generic method signature to allow for custom React Native Client events.)\n */\n public on(hook: string, callback: unknown): () => void {\n // @ts-expect-error on from the base class doesn't support generic types\n return super.on(hook, callback);\n }\n\n /**\n * Emit a hook that was previously registered via `on()`.\n *\n * (Generic method signature to allow for custom React Native Client events.)\n */\n public emit(hook: string, ...rest: unknown[]): void {\n // @ts-expect-error emit from the base class doesn't support generic types\n super.emit(hook, ...rest);\n }\n\n /**\n * Starts native client with dsn and options\n */\n private _initNativeSdk(): void {\n // Set up native log listener if debug is enabled\n if (this._options.debug) {\n const logHandler = this._options.onNativeLog ?? defaultNativeLogHandler;\n this._removeNativeLogListener = setupNativeLogListener(logHandler);\n }\n\n NATIVE.initNativeSdk({\n ...this._options,\n defaultSidecarUrl: getDefaultSidecarUrl(),\n devServerUrl: getDevServer()?.url || '',\n mobileReplayOptions:\n this._integrations[MOBILE_REPLAY_INTEGRATION_NAME] &&\n 'options' in this._integrations[MOBILE_REPLAY_INTEGRATION_NAME]\n ? (this._integrations[MOBILE_REPLAY_INTEGRATION_NAME] as ReturnType<typeof mobileReplayIntegration>).options\n : undefined,\n profilingOptions:\n this._options._experiments?.profilingOptions ?? this._options._experiments?.androidProfilingOptions,\n })\n .then(\n (result: boolean) => {\n return result;\n },\n () => {\n this._showCannotConnectDialog();\n return false;\n },\n )\n .then((didCallNativeInit: boolean) => {\n this._options.onReady?.({ didCallNativeInit });\n this.emit('afterInit');\n })\n .then(undefined, error => {\n debug.error('The OnReady callback threw an error: ', error);\n });\n }\n\n /**\n * If the user is in development mode, and the native nagger is enabled then it will show an alert.\n */\n private _showCannotConnectDialog(): void {\n if (__DEV__ && this._options.enableNativeNagger) {\n Alert.alert(\n 'Sentry',\n 'Warning, could not connect to Sentry native SDK.\\nIf you do not want to use the native component please pass `enableNative: false` in the options.\\nVisit: https://docs.sentry.io/platforms/react-native/ for more details.',\n );\n }\n }\n\n /**\n * Attaches a client report from outcomes to the envelope.\n */\n private _attachClientReportTo(outcomes: Outcome[], envelope: ClientReportEnvelope): void {\n if (outcomes.length > 0) {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: dateTimestampInSeconds(),\n discarded_events: outcomes,\n },\n ];\n\n envelope[items].push(clientReportItem);\n }\n }\n}\n"]}
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
- import type { FeedbackButtonProps } from './FeedbackWidget.types';
2
+ import type { FeedbackButtonProps } from './FeedbackForm.types';
3
3
  /**
4
4
  * @beta
5
+ * @deprecated The `FeedbackButton` component will be removed in a future major version.
5
6
  * Implements a feedback button that opens the FeedbackForm.
6
7
  */
7
8
  export declare class FeedbackButton extends React.Component<FeedbackButtonProps> {
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackButton.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,mBAAmB,EAAyD,MAAM,wBAAwB,CAAC;AAKzH;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC;IACtE,OAAO,CAAC,cAAc,CAAsC;gBAEzC,KAAK,EAAE,mBAAmB;IAK7C;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAMhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAMnC;;OAEG;IACI,MAAM,IAAI,KAAK,CAAC,SAAS;CAsBjC"}
1
+ {"version":3,"file":"FeedbackButton.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,mBAAmB,EAAyD,MAAM,sBAAsB,CAAC;AASvH;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC;IACtE,OAAO,CAAC,cAAc,CAAsC;gBAEzC,KAAK,EAAE,mBAAmB;IAK7C;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAMhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAMnC;;OAEG;IACI,MAAM,IAAI,KAAK,CAAC,SAAS;CAsBjC"}
@@ -1,13 +1,14 @@
1
1
  import * as React from 'react';
2
2
  import { Appearance, Image, Text, TouchableOpacity } from 'react-native';
3
3
  import { defaultButtonConfiguration } from './defaults';
4
- import { defaultButtonStyles } from './FeedbackWidget.styles';
5
- import { getTheme } from './FeedbackWidget.theme';
6
- import { showFeedbackWidget } from './FeedbackWidgetManager';
4
+ import { defaultButtonStyles } from './FeedbackForm.styles';
5
+ import { getTheme } from './FeedbackForm.theme';
6
+ import { showFeedbackForm } from './FeedbackFormManager';
7
7
  import { feedbackIcon } from './icons';
8
8
  import { lazyLoadFeedbackIntegration } from './lazy';
9
9
  /**
10
10
  * @beta
11
+ * @deprecated The `FeedbackButton` component will be removed in a future major version.
11
12
  * Implements a feedback button that opens the FeedbackForm.
12
13
  */
13
14
  export class FeedbackButton extends React.Component {
@@ -43,7 +44,7 @@ export class FeedbackButton extends React.Component {
43
44
  triggerText: Object.assign(Object.assign({}, defaultButtonStyles(theme).triggerText), (_b = this.props.styles) === null || _b === void 0 ? void 0 : _b.triggerText),
44
45
  triggerIcon: Object.assign(Object.assign({}, defaultButtonStyles(theme).triggerIcon), (_c = this.props.styles) === null || _c === void 0 ? void 0 : _c.triggerIcon),
45
46
  };
46
- return (React.createElement(TouchableOpacity, { style: styles.triggerButton, onPress: showFeedbackWidget, accessibilityLabel: text.triggerAriaLabel },
47
+ return (React.createElement(TouchableOpacity, { style: styles.triggerButton, onPress: showFeedbackForm, accessibilityLabel: text.triggerAriaLabel },
47
48
  React.createElement(Image, { source: { uri: feedbackIcon }, style: styles.triggerIcon }),
48
49
  React.createElement(Text, { style: styles.triggerText, testID: "sentry-feedback-button" }, text.triggerLabel)));
49
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackButton.js","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,QAAQ,CAAC;AAErD;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK,CAAC,SAA8B;IAGtE,YAAmB,KAA0B;QAC3C,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,2BAA2B,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,iBAAiB;QACtB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACtD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,oBAAoB;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;SAC9B;IACH,CAAC;IAED;;OAEG;IACI,MAAM;;QACX,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,mCAAyC,0BAA0B,GAAK,IAAI,CAAC,KAAK,CAAE,CAAC;QAC/F,MAAM,MAAM,GAAyB;YACnC,aAAa,kCAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,aAAa,GAAK,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,0CAAE,aAAa,CAAE;YACnG,WAAW,kCAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,WAAW,GAAK,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,0CAAE,WAAW,CAAE;YAC7F,WAAW,kCAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,WAAW,GAAK,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,0CAAE,WAAW,CAAE;SAC9F,CAAC;QAEF,OAAO,CACL,oBAAC,gBAAgB,IACf,KAAK,EAAE,MAAM,CAAC,aAAa,EAC3B,OAAO,EAAE,kBAAkB,EAC3B,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;YAEzC,oBAAC,KAAK,IAAC,MAAM,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,GAAI;YACnE,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAC,wBAAwB,IAC7D,IAAI,CAAC,YAAY,CACb,CACU,CACpB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import * as React from 'react';\nimport type { NativeEventSubscription} from 'react-native';\nimport { Appearance, Image, Text, TouchableOpacity } from 'react-native';\nimport { defaultButtonConfiguration } from './defaults';\nimport { defaultButtonStyles } from './FeedbackWidget.styles';\nimport { getTheme } from './FeedbackWidget.theme';\nimport type { FeedbackButtonProps, FeedbackButtonStyles, FeedbackButtonTextConfiguration } from './FeedbackWidget.types';\nimport { showFeedbackWidget } from './FeedbackWidgetManager';\nimport { feedbackIcon } from './icons';\nimport { lazyLoadFeedbackIntegration } from './lazy';\n\n/**\n * @beta\n * Implements a feedback button that opens the FeedbackForm.\n */\nexport class FeedbackButton extends React.Component<FeedbackButtonProps> {\n private _themeListener: NativeEventSubscription | undefined;\n\n public constructor(props: FeedbackButtonProps) {\n super(props);\n lazyLoadFeedbackIntegration();\n }\n\n /**\n * Adds a listener for theme changes.\n */\n public componentDidMount(): void {\n this._themeListener = Appearance.addChangeListener(() => {\n this.forceUpdate();\n });\n }\n\n /**\n * Removes the theme listener.\n */\n public componentWillUnmount(): void {\n if (this._themeListener) {\n this._themeListener.remove();\n }\n }\n\n /**\n * Renders the feedback button.\n */\n public render(): React.ReactNode {\n const theme = getTheme();\n const text: FeedbackButtonTextConfiguration = { ...defaultButtonConfiguration, ...this.props };\n const styles: FeedbackButtonStyles = {\n triggerButton: { ...defaultButtonStyles(theme).triggerButton, ...this.props.styles?.triggerButton },\n triggerText: { ...defaultButtonStyles(theme).triggerText, ...this.props.styles?.triggerText },\n triggerIcon: { ...defaultButtonStyles(theme).triggerIcon, ...this.props.styles?.triggerIcon },\n };\n\n return (\n <TouchableOpacity\n style={styles.triggerButton}\n onPress={showFeedbackWidget}\n accessibilityLabel={text.triggerAriaLabel}\n >\n <Image source={{ uri: feedbackIcon }} style={styles.triggerIcon} />\n <Text style={styles.triggerText} testID=\"sentry-feedback-button\">\n {text.triggerLabel}\n </Text>\n </TouchableOpacity>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"FeedbackButton.js","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,QAAQ,CAAC;AAErD;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK,CAAC,SAA8B;IAGtE,YAAmB,KAA0B;QAC3C,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,2BAA2B,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,iBAAiB;QACtB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACtD,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,oBAAoB;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACI,MAAM;;QACX,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,mCAAyC,0BAA0B,GAAK,IAAI,CAAC,KAAK,CAAE,CAAC;QAC/F,MAAM,MAAM,GAAyB;YACnC,aAAa,kCAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,aAAa,GAAK,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,0CAAE,aAAa,CAAE;YACnG,WAAW,kCAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,WAAW,GAAK,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,0CAAE,WAAW,CAAE;YAC7F,WAAW,kCAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,WAAW,GAAK,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,0CAAE,WAAW,CAAE;SAC9F,CAAC;QAEF,OAAO,CACL,oBAAC,gBAAgB,IACf,KAAK,EAAE,MAAM,CAAC,aAAa,EAC3B,OAAO,EAAE,gBAAgB,EACzB,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;YAEzC,oBAAC,KAAK,IAAC,MAAM,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,GAAI;YACnE,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAC,wBAAwB,IAC7D,IAAI,CAAC,YAAY,CACb,CACU,CACpB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { NativeEventSubscription } from 'react-native';\n\nimport * as React from 'react';\nimport { Appearance, Image, Text, TouchableOpacity } from 'react-native';\n\nimport type { FeedbackButtonProps, FeedbackButtonStyles, FeedbackButtonTextConfiguration } from './FeedbackForm.types';\n\nimport { defaultButtonConfiguration } from './defaults';\nimport { defaultButtonStyles } from './FeedbackForm.styles';\nimport { getTheme } from './FeedbackForm.theme';\nimport { showFeedbackForm } from './FeedbackFormManager';\nimport { feedbackIcon } from './icons';\nimport { lazyLoadFeedbackIntegration } from './lazy';\n\n/**\n * @beta\n * @deprecated The `FeedbackButton` component will be removed in a future major version.\n * Implements a feedback button that opens the FeedbackForm.\n */\nexport class FeedbackButton extends React.Component<FeedbackButtonProps> {\n private _themeListener: NativeEventSubscription | undefined;\n\n public constructor(props: FeedbackButtonProps) {\n super(props);\n lazyLoadFeedbackIntegration();\n }\n\n /**\n * Adds a listener for theme changes.\n */\n public componentDidMount(): void {\n this._themeListener = Appearance.addChangeListener(() => {\n this.forceUpdate();\n });\n }\n\n /**\n * Removes the theme listener.\n */\n public componentWillUnmount(): void {\n if (this._themeListener) {\n this._themeListener.remove();\n }\n }\n\n /**\n * Renders the feedback button.\n */\n public render(): React.ReactNode {\n const theme = getTheme();\n const text: FeedbackButtonTextConfiguration = { ...defaultButtonConfiguration, ...this.props };\n const styles: FeedbackButtonStyles = {\n triggerButton: { ...defaultButtonStyles(theme).triggerButton, ...this.props.styles?.triggerButton },\n triggerText: { ...defaultButtonStyles(theme).triggerText, ...this.props.styles?.triggerText },\n triggerIcon: { ...defaultButtonStyles(theme).triggerIcon, ...this.props.styles?.triggerIcon },\n };\n\n return (\n <TouchableOpacity\n style={styles.triggerButton}\n onPress={showFeedbackForm}\n accessibilityLabel={text.triggerAriaLabel}\n >\n <Image source={{ uri: feedbackIcon }} style={styles.triggerIcon} />\n <Text style={styles.triggerText} testID=\"sentry-feedback-button\">\n {text.triggerLabel}\n </Text>\n </TouchableOpacity>\n );\n }\n}\n"]}
@@ -1,15 +1,15 @@
1
1
  import * as React from 'react';
2
- import type { FeedbackWidgetProps, FeedbackWidgetState } from './FeedbackWidget.types';
2
+ import type { FeedbackFormProps, FeedbackFormState } from './FeedbackForm.types';
3
3
  /**
4
4
  * @beta
5
5
  * Implements a feedback form screen that sends feedback to Sentry using Sentry.captureFeedback.
6
6
  */
7
- export declare class FeedbackWidget extends React.Component<FeedbackWidgetProps, FeedbackWidgetState> {
8
- static defaultProps: FeedbackWidgetProps;
7
+ export declare class FeedbackForm extends React.Component<FeedbackFormProps, FeedbackFormState> {
8
+ static defaultProps: FeedbackFormProps;
9
9
  private static _savedState;
10
10
  private _themeListener;
11
11
  private _didSubmitForm;
12
- constructor(props: FeedbackWidgetProps);
12
+ constructor(props: FeedbackFormProps);
13
13
  /**
14
14
  * For testing purposes only.
15
15
  */
@@ -35,4 +35,4 @@ export declare class FeedbackWidget extends React.Component<FeedbackWidgetProps,
35
35
  private _getUser;
36
36
  private _showImageRetrievalDevelopmentNote;
37
37
  }
38
- //# sourceMappingURL=FeedbackWidget.d.ts.map
38
+ //# sourceMappingURL=FeedbackForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackForm.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackForm.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAGV,iBAAiB,EACjB,iBAAiB,EAGlB,MAAM,sBAAsB,CAAC;AAa9B;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IACrF,OAAc,YAAY,oBAAwB;IAElD,OAAO,CAAC,MAAM,CAAC,WAAW,CAOxB;IAEF,OAAO,CAAC,cAAc,CAAsC;IAE5D,OAAO,CAAC,cAAc,CAAkB;gBAErB,KAAK,EAAE,iBAAiB;IAuB3C;;OAEG;WACW,KAAK,IAAI,IAAI;IAWpB,oBAAoB,EAAE,MAAM,IAAI,CAiErC;IAEK,uBAAuB,EAAE,MAAM,IAAI,CA2ExC;IAEF;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAMhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAYnC;;OAEG;IACI,MAAM,IAAI,KAAK,CAAC,SAAS;IAsJhC,OAAO,CAAC,sBAAsB,CAkB5B;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,eAAe,CASrB;IAEF,OAAO,CAAC,cAAc,CAIpB;IAEF,OAAO,CAAC,QAAQ,CAUd;IAEF,OAAO,CAAC,kCAAkC,CAOxC;CACH"}