@sentry/react-native 6.15.0 → 7.0.0-beta.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 (287) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java +11 -14
  3. package/android/src/main/java/io/sentry/react/RNSentryVersion.java +1 -1
  4. package/dist/js/NativeRNSentry.d.ts.map +1 -1
  5. package/dist/js/NativeRNSentry.js.map +1 -1
  6. package/dist/js/client.d.ts.map +1 -1
  7. package/dist/js/client.js +5 -1
  8. package/dist/js/client.js.map +1 -1
  9. package/dist/js/feedback/FeedbackButton.d.ts.map +1 -1
  10. package/dist/js/feedback/FeedbackButton.js +1 -1
  11. package/dist/js/feedback/FeedbackButton.js.map +1 -1
  12. package/dist/js/feedback/FeedbackWidget.d.ts +1 -1
  13. package/dist/js/feedback/FeedbackWidget.d.ts.map +1 -1
  14. package/dist/js/feedback/FeedbackWidget.js +60 -46
  15. package/dist/js/feedback/FeedbackWidget.js.map +1 -1
  16. package/dist/js/feedback/FeedbackWidget.styles.d.ts.map +1 -1
  17. package/dist/js/feedback/FeedbackWidget.styles.js.map +1 -1
  18. package/dist/js/feedback/FeedbackWidget.theme.d.ts.map +1 -1
  19. package/dist/js/feedback/FeedbackWidget.theme.js.map +1 -1
  20. package/dist/js/feedback/FeedbackWidget.types.d.ts +30 -30
  21. package/dist/js/feedback/FeedbackWidget.types.d.ts.map +1 -1
  22. package/dist/js/feedback/FeedbackWidget.types.js.map +1 -1
  23. package/dist/js/feedback/FeedbackWidgetManager.d.ts.map +1 -1
  24. package/dist/js/feedback/FeedbackWidgetManager.js +6 -3
  25. package/dist/js/feedback/FeedbackWidgetManager.js.map +1 -1
  26. package/dist/js/feedback/FeedbackWidgetProvider.d.ts.map +1 -1
  27. package/dist/js/feedback/FeedbackWidgetProvider.js +9 -10
  28. package/dist/js/feedback/FeedbackWidgetProvider.js.map +1 -1
  29. package/dist/js/feedback/ScreenshotButton.d.ts.map +1 -1
  30. package/dist/js/feedback/ScreenshotButton.js.map +1 -1
  31. package/dist/js/feedback/defaults.d.ts +1 -1
  32. package/dist/js/feedback/defaults.d.ts.map +1 -1
  33. package/dist/js/feedback/defaults.js.map +1 -1
  34. package/dist/js/feedback/integration.d.ts +1 -1
  35. package/dist/js/feedback/integration.d.ts.map +1 -1
  36. package/dist/js/feedback/integration.js +1 -1
  37. package/dist/js/feedback/integration.js.map +1 -1
  38. package/dist/js/feedback/lazy.d.ts.map +1 -1
  39. package/dist/js/feedback/lazy.js.map +1 -1
  40. package/dist/js/feedback/utils.d.ts.map +1 -1
  41. package/dist/js/feedback/utils.js +2 -2
  42. package/dist/js/feedback/utils.js.map +1 -1
  43. package/dist/js/index.d.ts +3 -3
  44. package/dist/js/index.d.ts.map +1 -1
  45. package/dist/js/index.js +2 -2
  46. package/dist/js/index.js.map +1 -1
  47. package/dist/js/integrations/appRegistry.d.ts.map +1 -1
  48. package/dist/js/integrations/appRegistry.js.map +1 -1
  49. package/dist/js/integrations/breadcrumbs.d.ts +47 -0
  50. package/dist/js/integrations/breadcrumbs.d.ts.map +1 -0
  51. package/dist/js/integrations/breadcrumbs.js +15 -0
  52. package/dist/js/integrations/breadcrumbs.js.map +1 -0
  53. package/dist/js/integrations/debugsymbolicator.d.ts.map +1 -1
  54. package/dist/js/integrations/debugsymbolicator.js +2 -1
  55. package/dist/js/integrations/debugsymbolicator.js.map +1 -1
  56. package/dist/js/integrations/debugsymbolicatorutils.d.ts.map +1 -1
  57. package/dist/js/integrations/debugsymbolicatorutils.js +12 -2
  58. package/dist/js/integrations/debugsymbolicatorutils.js.map +1 -1
  59. package/dist/js/integrations/default.d.ts.map +1 -1
  60. package/dist/js/integrations/default.js +9 -5
  61. package/dist/js/integrations/default.js.map +1 -1
  62. package/dist/js/integrations/devicecontext.d.ts.map +1 -1
  63. package/dist/js/integrations/devicecontext.js.map +1 -1
  64. package/dist/js/integrations/expocontext.d.ts.map +1 -1
  65. package/dist/js/integrations/expocontext.js.map +1 -1
  66. package/dist/js/integrations/exports.d.ts +2 -1
  67. package/dist/js/integrations/exports.d.ts.map +1 -1
  68. package/dist/js/integrations/exports.js +2 -1
  69. package/dist/js/integrations/exports.js.map +1 -1
  70. package/dist/js/integrations/modulesloader.d.ts.map +1 -1
  71. package/dist/js/integrations/modulesloader.js.map +1 -1
  72. package/dist/js/integrations/nativelinkederrors.d.ts.map +1 -1
  73. package/dist/js/integrations/nativelinkederrors.js +4 -3
  74. package/dist/js/integrations/nativelinkederrors.js.map +1 -1
  75. package/dist/js/integrations/reactnativeerrorhandlers.js +2 -1
  76. package/dist/js/integrations/reactnativeerrorhandlers.js.map +1 -1
  77. package/dist/js/integrations/reactnativeerrorhandlersutils.d.ts.map +1 -1
  78. package/dist/js/integrations/reactnativeerrorhandlersutils.js.map +1 -1
  79. package/dist/js/integrations/reactnativeinfo.d.ts.map +1 -1
  80. package/dist/js/integrations/reactnativeinfo.js.map +1 -1
  81. package/dist/js/integrations/release.d.ts.map +1 -1
  82. package/dist/js/integrations/release.js.map +1 -1
  83. package/dist/js/integrations/rewriteframes.d.ts.map +1 -1
  84. package/dist/js/integrations/rewriteframes.js.map +1 -1
  85. package/dist/js/integrations/screenshot.d.ts.map +1 -1
  86. package/dist/js/integrations/screenshot.js +3 -3
  87. package/dist/js/integrations/screenshot.js.map +1 -1
  88. package/dist/js/integrations/sdkinfo.d.ts.map +1 -1
  89. package/dist/js/integrations/sdkinfo.js.map +1 -1
  90. package/dist/js/integrations/spotlight.d.ts.map +1 -1
  91. package/dist/js/integrations/spotlight.js +8 -4
  92. package/dist/js/integrations/spotlight.js.map +1 -1
  93. package/dist/js/integrations/viewhierarchy.d.ts.map +1 -1
  94. package/dist/js/integrations/viewhierarchy.js +2 -1
  95. package/dist/js/integrations/viewhierarchy.js.map +1 -1
  96. package/dist/js/options.d.ts +8 -1
  97. package/dist/js/options.d.ts.map +1 -1
  98. package/dist/js/options.js.map +1 -1
  99. package/dist/js/profiling/cache.d.ts +1 -1
  100. package/dist/js/profiling/convertHermesProfile.d.ts.map +1 -1
  101. package/dist/js/profiling/convertHermesProfile.js +18 -5
  102. package/dist/js/profiling/convertHermesProfile.js.map +1 -1
  103. package/dist/js/profiling/debugid.d.ts.map +1 -1
  104. package/dist/js/profiling/debugid.js +9 -1
  105. package/dist/js/profiling/debugid.js.map +1 -1
  106. package/dist/js/profiling/hermes.d.ts +1 -1
  107. package/dist/js/profiling/hermes.d.ts.map +1 -1
  108. package/dist/js/profiling/hermes.js.map +1 -1
  109. package/dist/js/profiling/integration.d.ts.map +1 -1
  110. package/dist/js/profiling/integration.js +2 -1
  111. package/dist/js/profiling/integration.js.map +1 -1
  112. package/dist/js/profiling/types.d.ts.map +1 -1
  113. package/dist/js/profiling/types.js.map +1 -1
  114. package/dist/js/profiling/utils.d.ts.map +1 -1
  115. package/dist/js/profiling/utils.js +15 -17
  116. package/dist/js/profiling/utils.js.map +1 -1
  117. package/dist/js/replay/CustomMask.d.ts.map +1 -1
  118. package/dist/js/replay/CustomMask.js +1 -1
  119. package/dist/js/replay/CustomMask.js.map +1 -1
  120. package/dist/js/replay/browserReplay.d.ts +13 -1
  121. package/dist/js/replay/browserReplay.d.ts.map +1 -1
  122. package/dist/js/replay/browserReplay.js +26 -0
  123. package/dist/js/replay/browserReplay.js.map +1 -1
  124. package/dist/js/replay/mobilereplay.d.ts.map +1 -1
  125. package/dist/js/replay/mobilereplay.js +2 -7
  126. package/dist/js/replay/mobilereplay.js.map +1 -1
  127. package/dist/js/replay/networkUtils.d.ts.map +1 -1
  128. package/dist/js/replay/networkUtils.js +4 -11
  129. package/dist/js/replay/networkUtils.js.map +1 -1
  130. package/dist/js/replay/replayInterface.d.ts +52 -0
  131. package/dist/js/replay/replayInterface.d.ts.map +1 -0
  132. package/dist/js/replay/replayInterface.js +2 -0
  133. package/dist/js/replay/replayInterface.js.map +1 -0
  134. package/dist/js/replay/xhrUtils.d.ts.map +1 -1
  135. package/dist/js/replay/xhrUtils.js.map +1 -1
  136. package/dist/js/scopeSync.d.ts.map +1 -1
  137. package/dist/js/scopeSync.js +7 -1
  138. package/dist/js/scopeSync.js.map +1 -1
  139. package/dist/js/sdk.d.ts +1 -6
  140. package/dist/js/sdk.d.ts.map +1 -1
  141. package/dist/js/sdk.js +3 -16
  142. package/dist/js/sdk.js.map +1 -1
  143. package/dist/js/tools/ModulesCollector.js +1 -0
  144. package/dist/js/tools/ModulesCollector.js.map +1 -1
  145. package/dist/js/tools/collectModules.js +1 -0
  146. package/dist/js/tools/collectModules.js.map +1 -1
  147. package/dist/js/tools/enableLogger.js +1 -0
  148. package/dist/js/tools/enableLogger.js.map +1 -1
  149. package/dist/js/tools/metroMiddleware.js +2 -1
  150. package/dist/js/tools/metroMiddleware.js.map +1 -1
  151. package/dist/js/tools/metroconfig.d.ts.map +1 -1
  152. package/dist/js/tools/metroconfig.js +6 -4
  153. package/dist/js/tools/metroconfig.js.map +1 -1
  154. package/dist/js/tools/sentryBabelTransformer.js +1 -0
  155. package/dist/js/tools/sentryBabelTransformer.js.map +1 -1
  156. package/dist/js/tools/sentryBabelTransformerUtils.d.ts.map +1 -1
  157. package/dist/js/tools/sentryBabelTransformerUtils.js +2 -1
  158. package/dist/js/tools/sentryBabelTransformerUtils.js.map +1 -1
  159. package/dist/js/tools/sentryMetroSerializer.d.ts.map +1 -1
  160. package/dist/js/tools/sentryMetroSerializer.js +1 -0
  161. package/dist/js/tools/sentryMetroSerializer.js.map +1 -1
  162. package/dist/js/tools/utils.js +1 -0
  163. package/dist/js/tools/utils.js.map +1 -1
  164. package/dist/js/tools/vendor/expo/expoconfig.js +1 -0
  165. package/dist/js/tools/vendor/expo/expoconfig.js.map +1 -1
  166. package/dist/js/tools/vendor/metro/metroBabelTransformer.js +1 -0
  167. package/dist/js/tools/vendor/metro/metroBabelTransformer.js.map +1 -1
  168. package/dist/js/tools/vendor/metro/utils.d.ts.map +1 -1
  169. package/dist/js/tools/vendor/metro/utils.js +1 -0
  170. package/dist/js/tools/vendor/metro/utils.js.map +1 -1
  171. package/dist/js/touchevents.d.ts.map +1 -1
  172. package/dist/js/touchevents.js +4 -0
  173. package/dist/js/touchevents.js.map +1 -1
  174. package/dist/js/tracing/gesturetracing.d.ts.map +1 -1
  175. package/dist/js/tracing/gesturetracing.js.map +1 -1
  176. package/dist/js/tracing/integrations/appStart.d.ts +1 -1
  177. package/dist/js/tracing/integrations/appStart.d.ts.map +1 -1
  178. package/dist/js/tracing/integrations/appStart.js +10 -3
  179. package/dist/js/tracing/integrations/appStart.js.map +1 -1
  180. package/dist/js/tracing/integrations/nativeFrames.d.ts.map +1 -1
  181. package/dist/js/tracing/integrations/nativeFrames.js.map +1 -1
  182. package/dist/js/tracing/integrations/stalltracking.d.ts +1 -1
  183. package/dist/js/tracing/integrations/stalltracking.d.ts.map +1 -1
  184. package/dist/js/tracing/integrations/stalltracking.js.map +1 -1
  185. package/dist/js/tracing/integrations/timeToDisplayIntegration.d.ts.map +1 -1
  186. package/dist/js/tracing/integrations/timeToDisplayIntegration.js +14 -10
  187. package/dist/js/tracing/integrations/timeToDisplayIntegration.js.map +1 -1
  188. package/dist/js/tracing/integrations/userInteraction.d.ts.map +1 -1
  189. package/dist/js/tracing/integrations/userInteraction.js.map +1 -1
  190. package/dist/js/tracing/onSpanEndUtils.d.ts +1 -1
  191. package/dist/js/tracing/onSpanEndUtils.d.ts.map +1 -1
  192. package/dist/js/tracing/onSpanEndUtils.js +2 -1
  193. package/dist/js/tracing/onSpanEndUtils.js.map +1 -1
  194. package/dist/js/tracing/reactnativenavigation.d.ts.map +1 -1
  195. package/dist/js/tracing/reactnativenavigation.js +1 -1
  196. package/dist/js/tracing/reactnativenavigation.js.map +1 -1
  197. package/dist/js/tracing/reactnativeprofiler.d.ts +3 -1
  198. package/dist/js/tracing/reactnativeprofiler.d.ts.map +1 -1
  199. package/dist/js/tracing/reactnativeprofiler.js +2 -1
  200. package/dist/js/tracing/reactnativeprofiler.js.map +1 -1
  201. package/dist/js/tracing/reactnativetracing.d.ts.map +1 -1
  202. package/dist/js/tracing/reactnativetracing.js.map +1 -1
  203. package/dist/js/tracing/reactnavigation.d.ts.map +1 -1
  204. package/dist/js/tracing/reactnavigation.js +5 -4
  205. package/dist/js/tracing/reactnavigation.js.map +1 -1
  206. package/dist/js/tracing/span.d.ts.map +1 -1
  207. package/dist/js/tracing/span.js +5 -5
  208. package/dist/js/tracing/span.js.map +1 -1
  209. package/dist/js/tracing/timeToDisplayFallback.d.ts +1 -1
  210. package/dist/js/tracing/timeToDisplayFallback.d.ts.map +1 -1
  211. package/dist/js/tracing/timeToDisplayFallback.js.map +1 -1
  212. package/dist/js/tracing/timetodisplay.d.ts.map +1 -1
  213. package/dist/js/tracing/timetodisplay.js +13 -13
  214. package/dist/js/tracing/timetodisplay.js.map +1 -1
  215. package/dist/js/tracing/timetodisplaynative.d.ts.map +1 -1
  216. package/dist/js/tracing/timetodisplaynative.js.map +1 -1
  217. package/dist/js/tracing/utils.d.ts.map +1 -1
  218. package/dist/js/tracing/utils.js.map +1 -1
  219. package/dist/js/transports/encodePolyfill.d.ts +4 -0
  220. package/dist/js/transports/encodePolyfill.d.ts.map +1 -1
  221. package/dist/js/transports/encodePolyfill.js +17 -3
  222. package/dist/js/transports/encodePolyfill.js.map +1 -1
  223. package/dist/js/transports/native.d.ts.map +1 -1
  224. package/dist/js/transports/native.js.map +1 -1
  225. package/dist/js/utils/AsyncExpiringMap.d.ts.map +1 -1
  226. package/dist/js/utils/AsyncExpiringMap.js +8 -4
  227. package/dist/js/utils/AsyncExpiringMap.js.map +1 -1
  228. package/dist/js/utils/carrier.d.ts +5 -0
  229. package/dist/js/utils/carrier.d.ts.map +1 -0
  230. package/dist/js/utils/carrier.js +11 -0
  231. package/dist/js/utils/carrier.js.map +1 -0
  232. package/dist/js/utils/encode.d.ts +5 -0
  233. package/dist/js/utils/encode.d.ts.map +1 -0
  234. package/dist/js/utils/encode.js +13 -0
  235. package/dist/js/utils/encode.js.map +1 -0
  236. package/dist/js/utils/envelope.d.ts.map +1 -1
  237. package/dist/js/utils/envelope.js +1 -2
  238. package/dist/js/utils/envelope.js.map +1 -1
  239. package/dist/js/utils/environment.d.ts.map +1 -1
  240. package/dist/js/utils/environment.js +5 -6
  241. package/dist/js/utils/environment.js.map +1 -1
  242. package/dist/js/utils/rnlibraries.d.ts.map +1 -1
  243. package/dist/js/utils/rnlibraries.js.map +1 -1
  244. package/dist/js/utils/safe.d.ts.map +1 -1
  245. package/dist/js/utils/safe.js.map +1 -1
  246. package/dist/js/utils/worldwide.d.ts +3 -2
  247. package/dist/js/utils/worldwide.d.ts.map +1 -1
  248. package/dist/js/utils/worldwide.js.map +1 -1
  249. package/dist/js/vendor/base64-js/fromByteArray.d.ts.map +1 -1
  250. package/dist/js/vendor/base64-js/fromByteArray.js +6 -0
  251. package/dist/js/vendor/base64-js/fromByteArray.js.map +1 -1
  252. package/dist/js/version.d.ts +1 -1
  253. package/dist/js/version.d.ts.map +1 -1
  254. package/dist/js/version.js +1 -1
  255. package/dist/js/version.js.map +1 -1
  256. package/dist/js/wrapper.d.ts.map +1 -1
  257. package/dist/js/wrapper.js +10 -8
  258. package/dist/js/wrapper.js.map +1 -1
  259. package/ios/RNSentryVersion.m +1 -1
  260. package/package.json +9 -10
  261. package/plugin/build/withSentry.js +3 -3
  262. package/plugin/build/withSentryAndroidGradlePlugin.js +3 -3
  263. package/scripts/expo-upload-sourcemaps.js +2 -2
  264. package/src/js/NativeRNSentry.ts +0 -1
  265. package/ts3.8/dist/js/feedback/FeedbackWidget.d.ts +1 -1
  266. package/ts3.8/dist/js/feedback/FeedbackWidget.types.d.ts +30 -30
  267. package/ts3.8/dist/js/feedback/defaults.d.ts +1 -1
  268. package/ts3.8/dist/js/feedback/integration.d.ts +1 -1
  269. package/ts3.8/dist/js/index.d.ts +3 -3
  270. package/ts3.8/dist/js/integrations/breadcrumbs.d.ts +47 -0
  271. package/ts3.8/dist/js/integrations/exports.d.ts +2 -1
  272. package/ts3.8/dist/js/options.d.ts +8 -1
  273. package/ts3.8/dist/js/profiling/cache.d.ts +1 -1
  274. package/ts3.8/dist/js/profiling/hermes.d.ts +1 -1
  275. package/ts3.8/dist/js/replay/browserReplay.d.ts +13 -1
  276. package/ts3.8/dist/js/replay/replayInterface.d.ts +52 -0
  277. package/ts3.8/dist/js/sdk.d.ts +1 -6
  278. package/ts3.8/dist/js/tracing/integrations/appStart.d.ts +1 -1
  279. package/ts3.8/dist/js/tracing/integrations/stalltracking.d.ts +1 -1
  280. package/ts3.8/dist/js/tracing/onSpanEndUtils.d.ts +1 -1
  281. package/ts3.8/dist/js/tracing/reactnativeprofiler.d.ts +3 -1
  282. package/ts3.8/dist/js/tracing/timeToDisplayFallback.d.ts +1 -1
  283. package/ts3.8/dist/js/transports/encodePolyfill.d.ts +4 -0
  284. package/ts3.8/dist/js/utils/carrier.d.ts +5 -0
  285. package/ts3.8/dist/js/utils/encode.d.ts +5 -0
  286. package/ts3.8/dist/js/utils/worldwide.d.ts +3 -2
  287. package/ts3.8/dist/js/version.d.ts +1 -1
@@ -54,5 +54,5 @@ android {
54
54
 
55
55
  dependencies {
56
56
  implementation 'com.facebook.react:react-native:+'
57
- api 'io.sentry:sentry-android:7.22.5'
57
+ api 'io.sentry:sentry-android:8.13.2'
58
58
  }
@@ -31,12 +31,12 @@ import com.facebook.react.bridge.WritableNativeArray;
31
31
  import com.facebook.react.bridge.WritableNativeMap;
32
32
  import com.facebook.react.common.JavascriptException;
33
33
  import io.sentry.Breadcrumb;
34
- import io.sentry.HubAdapter;
35
34
  import io.sentry.ILogger;
36
35
  import io.sentry.IScope;
37
36
  import io.sentry.ISentryExecutorService;
38
37
  import io.sentry.ISerializer;
39
38
  import io.sentry.Integration;
39
+ import io.sentry.ScopesAdapter;
40
40
  import io.sentry.Sentry;
41
41
  import io.sentry.SentryDate;
42
42
  import io.sentry.SentryDateProvider;
@@ -88,6 +88,7 @@ import java.util.Iterator;
88
88
  import java.util.List;
89
89
  import java.util.Map;
90
90
  import java.util.Properties;
91
+ import java.util.Set;
91
92
  import java.util.concurrent.CountDownLatch;
92
93
  import org.jetbrains.annotations.NotNull;
93
94
  import org.jetbrains.annotations.Nullable;
@@ -528,7 +529,7 @@ public class RNSentryModuleImpl {
528
529
  }
529
530
 
530
531
  public void captureReplay(boolean isHardCrash, Promise promise) {
531
- Sentry.getCurrentHub().getOptions().getReplayController().captureReplay(isHardCrash);
532
+ Sentry.getCurrentScopes().getOptions().getReplayController().captureReplay(isHardCrash);
532
533
  promise.resolve(getCurrentReplayId());
533
534
  }
534
535
 
@@ -624,7 +625,7 @@ public class RNSentryModuleImpl {
624
625
  return;
625
626
  }
626
627
 
627
- ISerializer serializer = HubAdapter.getInstance().getOptions().getSerializer();
628
+ ISerializer serializer = ScopesAdapter.getInstance().getOptions().getSerializer();
628
629
  final @Nullable byte[] bytes =
629
630
  JsonSerializationUtils.bytesFrom(serializer, logger, viewHierarchy);
630
631
  if (bytes == null) {
@@ -678,10 +679,6 @@ public class RNSentryModuleImpl {
678
679
  if (userKeys.hasKey("ip_address")) {
679
680
  userInstance.setIpAddress(userKeys.getString("ip_address"));
680
681
  }
681
-
682
- if (userKeys.hasKey("segment")) {
683
- userInstance.setSegment(userKeys.getString("segment"));
684
- }
685
682
  }
686
683
 
687
684
  if (userDataKeys != null) {
@@ -843,8 +840,7 @@ public class RNSentryModuleImpl {
843
840
  (int) SECONDS.toMicros(1) / profilingTracesHz,
844
841
  new SentryFrameMetricsCollector(reactApplicationContext, logger, buildInfo),
845
842
  executorService,
846
- logger,
847
- buildInfo);
843
+ logger);
848
844
  }
849
845
 
850
846
  public WritableMap startProfiling(boolean platformProfilers) {
@@ -868,7 +864,7 @@ public class RNSentryModuleImpl {
868
864
  }
869
865
 
870
866
  public WritableMap stopProfiling() {
871
- final boolean isDebug = HubAdapter.getInstance().getOptions().isDebug();
867
+ final boolean isDebug = ScopesAdapter.getInstance().getOptions().isDebug();
872
868
  final WritableMap result = new WritableNativeMap();
873
869
  File output = null;
874
870
  try {
@@ -954,7 +950,7 @@ public class RNSentryModuleImpl {
954
950
  }
955
951
 
956
952
  public void fetchNativeDeviceContexts(Promise promise) {
957
- final @NotNull SentryOptions options = HubAdapter.getInstance().getOptions();
953
+ final @NotNull SentryOptions options = ScopesAdapter.getInstance().getOptions();
958
954
  final @Nullable Context context = this.getReactApplicationContext().getApplicationContext();
959
955
  final @Nullable IScope currentScope = InternalSentrySdk.getCurrentScope();
960
956
  fetchNativeDeviceContexts(promise, options, context, currentScope);
@@ -991,7 +987,8 @@ public class RNSentryModuleImpl {
991
987
  }
992
988
 
993
989
  public void fetchNativeSdkInfo(Promise promise) {
994
- final @Nullable SdkVersion sdkVersion = HubAdapter.getInstance().getOptions().getSdkVersion();
990
+ final @Nullable SdkVersion sdkVersion =
991
+ ScopesAdapter.getInstance().getOptions().getSdkVersion();
995
992
  if (sdkVersion == null) {
996
993
  promise.resolve(null);
997
994
  } else {
@@ -1079,14 +1076,14 @@ public class RNSentryModuleImpl {
1079
1076
  if (eventSdk != null
1080
1077
  && "sentry.javascript.react-native".equals(eventSdk.getName())
1081
1078
  && sdk != null) {
1082
- List<SentryPackage> sentryPackages = sdk.getPackages();
1079
+ Set<SentryPackage> sentryPackages = sdk.getPackageSet();
1083
1080
  if (sentryPackages != null) {
1084
1081
  for (SentryPackage sentryPackage : sentryPackages) {
1085
1082
  eventSdk.addPackage(sentryPackage.getName(), sentryPackage.getVersion());
1086
1083
  }
1087
1084
  }
1088
1085
 
1089
- List<String> integrations = sdk.getIntegrations();
1086
+ Set<String> integrations = sdk.getIntegrationSet();
1090
1087
  if (integrations != null) {
1091
1088
  for (String integration : integrations) {
1092
1089
  eventSdk.addIntegration(integration);
@@ -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 = "6.15.0";
5
+ static final String REACT_NATIVE_SDK_PACKAGE_VERSION = "7.0.0-beta.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";
@@ -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;AA8JnD,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';\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 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 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}\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 segment?: 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":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA6JnD,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 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 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}\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 segment?: 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":"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,EAAE,UAAU,EAA+C,MAAM,cAAc,CAAC;AAMvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAS1D;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,UAAU,CAAC,wBAAwB,CAAC;IACzE,OAAO,CAAC,eAAe,CAAY;IAEnC;;;OAGG;gBACgB,OAAO,EAAE,wBAAwB;IAYpD;;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;IAOpC;;;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;IA6BtB;;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":"AACA,OAAO,KAAK,EAGV,QAAQ,EACR,KAAK,EACL,SAAS,EAET,aAAa,EACb,4BAA4B,EAC5B,YAAY,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,UAAU,EAIX,MAAM,cAAc,CAAC;AAKtB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAS1D;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,UAAU,CAAC,wBAAwB,CAAC;IACzE,OAAO,CAAC,eAAe,CAAY;IAEnC;;;OAGG;gBACgB,OAAO,EAAE,wBAAwB;IAiBpD;;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;IAOpC;;;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;IA6BtB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAShC;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAa9B"}
package/dist/js/client.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { eventFromException, eventFromMessage } from '@sentry/browser';
2
- import { BaseClient, dateTimestampInSeconds, logger, SentryError } from '@sentry/core';
2
+ import { addAutoIpAddressToSession, addAutoIpAddressToUser, BaseClient, dateTimestampInSeconds, logger, SentryError, } from '@sentry/core';
3
3
  import { Alert } from 'react-native';
4
4
  import { getDevServer } from './integrations/debugsymbolicatorutils';
5
5
  import { defaultSdkInfo } from './integrations/sdkinfo';
@@ -31,6 +31,10 @@ export class ReactNativeClient extends BaseClient {
31
31
  options.parentSpanIsAlwaysRootSpan === undefined ? true : options.parentSpanIsAlwaysRootSpan;
32
32
  super(options);
33
33
  this._outcomesBuffer = [];
34
+ if (options.sendDefaultPii === true) {
35
+ this.on('postprocessEvent', addAutoIpAddressToUser);
36
+ this.on('beforeSendSession', addAutoIpAddressToSession);
37
+ }
34
38
  }
35
39
  /**
36
40
  * @inheritDoc
@@ -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 { BaseClient, dateTimestampInSeconds, logger, SentryError } from '@sentry/core';\nimport { Alert } from 'react-native';\n\nimport { getDevServer } from './integrations/debugsymbolicatorutils';\nimport { defaultSdkInfo } from './integrations/sdkinfo';\nimport { getDefaultSidecarUrl } from './integrations/spotlight';\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\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 BaseClient<ReactNativeClientOptions> {\n private _outcomesBuffer: Outcome[];\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 = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || defaultSdkInfo;\n // We default this to true, as it is the safer scenario\n options.parentSpanIsAlwaysRootSpan =\n options.parentSpanIsAlwaysRootSpan === undefined ? true : options.parentSpanIsAlwaysRootSpan;\n super(options);\n\n this._outcomesBuffer = [];\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 // 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) as PromiseLike<boolean>;\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 logger.error('SentryError while sending event, keeping outcomes buffer:', reason);\n } else {\n logger.error('Error while sending event:', reason);\n }\n });\n } else {\n logger.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 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 })\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 logger.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 { 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 addAutoIpAddressToSession,\n addAutoIpAddressToUser,\n BaseClient,\n dateTimestampInSeconds,\n logger,\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 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\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 BaseClient<ReactNativeClientOptions> {\n private _outcomesBuffer: Outcome[];\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 = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || defaultSdkInfo;\n // We default this to true, as it is the safer scenario\n options.parentSpanIsAlwaysRootSpan =\n options.parentSpanIsAlwaysRootSpan === undefined ? true : options.parentSpanIsAlwaysRootSpan;\n super(options);\n\n this._outcomesBuffer = [];\n\n if (options.sendDefaultPii === true) {\n this.on('postprocessEvent', addAutoIpAddressToUser);\n this.on('beforeSendSession', addAutoIpAddressToSession);\n }\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 // 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) as PromiseLike<boolean>;\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 logger.error('SentryError while sending event, keeping outcomes buffer:', reason);\n } else {\n logger.error('Error while sending event:', reason);\n }\n });\n } else {\n logger.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 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 })\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 logger.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 +1 @@
1
- {"version":3,"file":"FeedbackButton.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/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,CAA0B;gBAE7B,KAAK,EAAE,mBAAmB;IAK7C;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAMhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAMnC;;OAEG;IACI,MAAM,IAAI,KAAK,CAAC,SAAS;CAoBjC"}
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"}
@@ -45,7 +45,7 @@ export class FeedbackButton extends React.Component {
45
45
  };
46
46
  return (React.createElement(TouchableOpacity, { style: styles.triggerButton, onPress: showFeedbackWidget, accessibilityLabel: text.triggerAriaLabel },
47
47
  React.createElement(Image, { source: { uri: feedbackIcon }, style: styles.triggerIcon }),
48
- React.createElement(Text, { style: styles.triggerText, testID: 'sentry-feedback-button' }, text.triggerLabel)));
48
+ React.createElement(Text, { style: styles.triggerText, testID: "sentry-feedback-button" }, text.triggerLabel)));
49
49
  }
50
50
  }
51
51
  //# sourceMappingURL=FeedbackButton.js.map
@@ -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;AAEzE,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,GAAG;YAClE,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAC,wBAAwB,IAAE,IAAI,CAAC,YAAY,CAAQ,CAC1E,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';\n\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;\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'>{text.triggerLabel}</Text>\n </TouchableOpacity>\n );\n }\n}\n"]}
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"]}
@@ -5,7 +5,7 @@ import type { FeedbackWidgetProps, FeedbackWidgetState } from './FeedbackWidget.
5
5
  * Implements a feedback form screen that sends feedback to Sentry using Sentry.captureFeedback.
6
6
  */
7
7
  export declare class FeedbackWidget extends React.Component<FeedbackWidgetProps, FeedbackWidgetState> {
8
- static defaultProps: Partial<FeedbackWidgetProps>;
8
+ static defaultProps: FeedbackWidgetProps;
9
9
  private static _savedState;
10
10
  private _themeListener;
11
11
  private _didSubmitForm;
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackWidget.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackWidget.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqB/B,OAAO,KAAK,EAA2D,mBAAmB,EAAE,mBAAmB,EAAkD,MAAM,wBAAwB,CAAC;AAMhM;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC3F,OAAc,YAAY,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAEvD;IAED,OAAO,CAAC,MAAM,CAAC,WAAW,CAOxB;IAEF,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAO,CAAC,cAAc,CAAkB;gBAErB,KAAK,EAAE,mBAAmB;IAuB7C;;OAEG;WACW,KAAK,IAAI,IAAI;IAWpB,oBAAoB,EAAE,MAAM,IAAI,CAmDrC;IAEK,uBAAuB,EAAE,MAAM,IAAI,CAmEzC;IAED;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAMhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAYnC;;OAEG;IACI,MAAM,IAAI,KAAK,CAAC,SAAS;IAkIhC,OAAO,CAAC,sBAAsB,CAgB7B;IAED,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,eAAe,CASrB;IAEF,OAAO,CAAC,cAAc,CAErB;CACF"}
1
+ {"version":3,"file":"FeedbackWidget.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackWidget.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,OAAO,KAAK,EAA2D,mBAAmB,EAAE,mBAAmB,EAAkD,MAAM,wBAAwB,CAAC;AAMhM;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC3F,OAAc,YAAY,sBAAwB;IAElD,OAAO,CAAC,MAAM,CAAC,WAAW,CAOxB;IAEF,OAAO,CAAC,cAAc,CAAsC;IAE5D,OAAO,CAAC,cAAc,CAAkB;gBAErB,KAAK,EAAE,mBAAmB;IAuB7C;;OAEG;WACW,KAAK,IAAI,IAAI;IAWpB,oBAAoB,EAAE,MAAM,IAAI,CAiErC;IAEK,uBAAuB,EAAE,MAAM,IAAI,CAuExC;IAEF;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAMhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAYnC;;OAEG;IACI,MAAM,IAAI,KAAK,CAAC,SAAS;IAgIhC,OAAO,CAAC,sBAAsB,CAkB5B;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,eAAe,CASrB;IAEF,OAAO,CAAC,cAAc,CAIpB;CACH"}
@@ -36,11 +36,15 @@ export class FeedbackWidget extends React.Component {
36
36
  const trimmedName = name === null || name === void 0 ? void 0 : name.trim();
37
37
  const trimmedEmail = email === null || email === void 0 ? void 0 : email.trim();
38
38
  const trimmedDescription = description === null || description === void 0 ? void 0 : description.trim();
39
- if ((this.props.isNameRequired && !trimmedName) || (this.props.isEmailRequired && !trimmedEmail) || !trimmedDescription) {
39
+ if ((this.props.isNameRequired && !trimmedName) ||
40
+ (this.props.isEmailRequired && !trimmedEmail) ||
41
+ !trimmedDescription) {
40
42
  feedbackAlertDialog(text.errorTitle, text.formError);
41
43
  return;
42
44
  }
43
- if (this.props.shouldValidateEmail && (this.props.isEmailRequired || trimmedEmail.length > 0) && !isValidEmail(trimmedEmail)) {
45
+ if (this.props.shouldValidateEmail &&
46
+ (this.props.isEmailRequired || trimmedEmail.length > 0) &&
47
+ !isValidEmail(trimmedEmail)) {
44
48
  feedbackAlertDialog(text.errorTitle, text.emailError);
45
49
  return;
46
50
  }
@@ -64,7 +68,12 @@ export class FeedbackWidget extends React.Component {
64
68
  this.setState({ isVisible: false });
65
69
  }
66
70
  captureFeedback(userFeedback, attachments ? { attachments } : undefined);
67
- onSubmitSuccess({ name: trimmedName, email: trimmedEmail, message: trimmedDescription, attachments: attachments });
71
+ onSubmitSuccess({
72
+ name: trimmedName,
73
+ email: trimmedEmail,
74
+ message: trimmedDescription,
75
+ attachments: attachments,
76
+ });
68
77
  feedbackAlertDialog(text.successMessageText, '');
69
78
  onFormSubmitted();
70
79
  this._didSubmitForm = true;
@@ -77,16 +86,17 @@ export class FeedbackWidget extends React.Component {
77
86
  }
78
87
  };
79
88
  this.onScreenshotButtonPress = () => __awaiter(this, void 0, void 0, function* () {
89
+ var _j, _k, _l, _m, _o;
80
90
  if (!this._hasScreenshot()) {
81
- const imagePickerConfiguration = this.props;
82
- if (imagePickerConfiguration.imagePicker) {
83
- const launchImageLibrary = imagePickerConfiguration.imagePicker.launchImageLibraryAsync
84
- // expo-image-picker library is available
85
- ? () => imagePickerConfiguration.imagePicker.launchImageLibraryAsync({ mediaTypes: ['images'], base64: isWeb() })
86
- // react-native-image-picker library is available
87
- : imagePickerConfiguration.imagePicker.launchImageLibrary
88
- ? () => imagePickerConfiguration.imagePicker.launchImageLibrary({ mediaType: 'photo', includeBase64: isWeb() })
89
- : null;
91
+ const { imagePicker } = this.props;
92
+ if (imagePicker) {
93
+ const launchImageLibrary = imagePicker.launchImageLibraryAsync
94
+ ? // expo-image-picker library is available
95
+ () => { var _a; return (_a = imagePicker.launchImageLibraryAsync) === null || _a === void 0 ? void 0 : _a.call(imagePicker, { mediaTypes: ['images'], base64: isWeb() }); }
96
+ : // react-native-image-picker library is available
97
+ imagePicker.launchImageLibrary
98
+ ? () => { var _a; return (_a = imagePicker.launchImageLibrary) === null || _a === void 0 ? void 0 : _a.call(imagePicker, { mediaType: 'photo', includeBase64: isWeb() }); }
99
+ : null;
90
100
  if (!launchImageLibrary) {
91
101
  logger.warn('No compatible image picker library found. Please provide a valid image picker library.');
92
102
  if (__DEV__) {
@@ -95,13 +105,13 @@ export class FeedbackWidget extends React.Component {
95
105
  return;
96
106
  }
97
107
  const result = yield launchImageLibrary();
98
- if (result.assets && result.assets.length > 0) {
108
+ if ((result === null || result === void 0 ? void 0 : result.assets) && result.assets.length > 0) {
99
109
  if (isWeb()) {
100
- const filename = result.assets[0].fileName;
101
- const imageUri = result.assets[0].uri;
102
- const base64 = result.assets[0].base64;
103
- const data = base64ToUint8Array(base64);
104
- if (data != null) {
110
+ const filename = (_j = result.assets[0]) === null || _j === void 0 ? void 0 : _j.fileName;
111
+ const imageUri = (_k = result.assets[0]) === null || _k === void 0 ? void 0 : _k.uri;
112
+ const base64 = (_l = result.assets[0]) === null || _l === void 0 ? void 0 : _l.base64;
113
+ const data = base64 ? base64ToUint8Array(base64) : undefined;
114
+ if (data) {
105
115
  this.setState({ filename, attachment: data, attachmentUri: imageUri });
106
116
  }
107
117
  else {
@@ -109,18 +119,21 @@ export class FeedbackWidget extends React.Component {
109
119
  }
110
120
  }
111
121
  else {
112
- const filename = result.assets[0].fileName;
113
- const imageUri = result.assets[0].uri;
114
- getDataFromUri(imageUri).then((data) => {
115
- if (data != null) {
116
- this.setState({ filename, attachment: data, attachmentUri: imageUri });
117
- }
118
- else {
119
- logger.error('Failed to read image data from uri:', imageUri);
120
- }
121
- }).catch((error) => {
122
- logger.error('Failed to read image data from uri:', imageUri, 'error: ', error);
123
- });
122
+ const filename = (_m = result.assets[0]) === null || _m === void 0 ? void 0 : _m.fileName;
123
+ const imageUri = (_o = result.assets[0]) === null || _o === void 0 ? void 0 : _o.uri;
124
+ imageUri &&
125
+ getDataFromUri(imageUri)
126
+ .then(data => {
127
+ if (data) {
128
+ this.setState({ filename, attachment: data, attachmentUri: imageUri });
129
+ }
130
+ else {
131
+ logger.error('Failed to read image data from uri:', imageUri);
132
+ }
133
+ })
134
+ .catch(error => {
135
+ logger.error('Failed to read image data from uri:', imageUri, 'error: ', error);
136
+ });
124
137
  }
125
138
  }
126
139
  }
@@ -128,7 +141,8 @@ export class FeedbackWidget extends React.Component {
128
141
  // Defaulting to the onAddScreenshot callback
129
142
  const { onAddScreenshot } = Object.assign(Object.assign({}, defaultConfiguration), this.props);
130
143
  onAddScreenshot((uri) => {
131
- getDataFromUri(uri).then((data) => {
144
+ getDataFromUri(uri)
145
+ .then(data => {
132
146
  if (data != null) {
133
147
  this.setState({ filename: 'feedback_screenshot', attachment: data, attachmentUri: uri });
134
148
  }
@@ -136,7 +150,7 @@ export class FeedbackWidget extends React.Component {
136
150
  logger.error('Failed to read image data from uri:', uri);
137
151
  }
138
152
  })
139
- .catch((error) => {
153
+ .catch(error => {
140
154
  logger.error('Failed to read image data from uri:', uri, 'error: ', error);
141
155
  });
142
156
  });
@@ -149,7 +163,8 @@ export class FeedbackWidget extends React.Component {
149
163
  this._setCapturedScreenshot = (screenshot) => {
150
164
  if (screenshot.data != null) {
151
165
  logger.debug('Setting captured screenshot:', screenshot.filename);
152
- NATIVE.encodeToBase64(screenshot.data).then((base64String) => {
166
+ NATIVE.encodeToBase64(screenshot.data)
167
+ .then(base64String => {
153
168
  if (base64String != null) {
154
169
  const dataUri = `data:${screenshot.contentType};base64,${base64String}`;
155
170
  this.setState({ filename: screenshot.filename, attachment: screenshot.data, attachmentUri: dataUri });
@@ -157,7 +172,8 @@ export class FeedbackWidget extends React.Component {
157
172
  else {
158
173
  logger.error('Failed to read image data from:', screenshot.filename);
159
174
  }
160
- }).catch((error) => {
175
+ })
176
+ .catch(error => {
161
177
  logger.error('Failed to read image data from:', screenshot.filename, 'error: ', error);
162
178
  });
163
179
  }
@@ -179,13 +195,13 @@ export class FeedbackWidget extends React.Component {
179
195
  };
180
196
  };
181
197
  this._hasScreenshot = () => {
182
- return this.state.filename !== undefined && this.state.attachment !== undefined && this.state.attachmentUri !== undefined;
198
+ return (this.state.filename !== undefined && this.state.attachment !== undefined && this.state.attachmentUri !== undefined);
183
199
  };
184
200
  const currentUser = {
185
201
  useSentryUser: {
186
202
  email: ((_b = (_a = this.props) === null || _a === void 0 ? void 0 : _a.useSentryUser) === null || _b === void 0 ? void 0 : _b.email) || ((_d = (_c = getCurrentScope()) === null || _c === void 0 ? void 0 : _c.getUser()) === null || _d === void 0 ? void 0 : _d.email) || '',
187
203
  name: ((_f = (_e = this.props) === null || _e === void 0 ? void 0 : _e.useSentryUser) === null || _f === void 0 ? void 0 : _f.name) || ((_h = (_g = getCurrentScope()) === null || _g === void 0 ? void 0 : _g.getUser()) === null || _h === void 0 ? void 0 : _h.name) || '',
188
- }
204
+ },
189
205
  };
190
206
  this.state = {
191
207
  isVisible: true,
@@ -268,28 +284,26 @@ export class FeedbackWidget extends React.Component {
268
284
  return (React.createElement(TouchableWithoutFeedback, { onPress: notWeb() ? Keyboard.dismiss : undefined, accessible: false, accessibilityElementsHidden: false },
269
285
  React.createElement(View, { style: styles.container },
270
286
  React.createElement(View, { style: styles.titleContainer },
271
- React.createElement(Text, { style: styles.title, testID: 'sentry-feedback-form-title' }, text.formTitle),
272
- config.showBranding && (React.createElement(Image, { source: { uri: sentryLogo }, style: styles.sentryLogo, testID: 'sentry-logo' }))),
287
+ React.createElement(Text, { style: styles.title, testID: "sentry-feedback-form-title" }, text.formTitle),
288
+ config.showBranding && (React.createElement(Image, { source: { uri: sentryLogo }, style: styles.sentryLogo, testID: "sentry-logo" }))),
273
289
  config.showName && (React.createElement(React.Fragment, null,
274
290
  React.createElement(Text, { style: styles.label },
275
291
  text.nameLabel,
276
292
  config.isNameRequired && ` ${text.isRequiredLabel}`),
277
- React.createElement(TextInput, { style: styles.input, testID: 'sentry-feedback-name-input', placeholder: text.namePlaceholder, value: name, onChangeText: (value) => this.setState({ name: value }) }))),
293
+ React.createElement(TextInput, { style: styles.input, testID: "sentry-feedback-name-input", placeholder: text.namePlaceholder, value: name, onChangeText: value => this.setState({ name: value }) }))),
278
294
  config.showEmail && (React.createElement(React.Fragment, null,
279
295
  React.createElement(Text, { style: styles.label },
280
296
  text.emailLabel,
281
297
  config.isEmailRequired && ` ${text.isRequiredLabel}`),
282
- React.createElement(TextInput, { style: styles.input, testID: 'sentry-feedback-email-input', placeholder: text.emailPlaceholder, keyboardType: 'email-address', value: email, onChangeText: (value) => this.setState({ email: value }) }))),
298
+ React.createElement(TextInput, { style: styles.input, testID: "sentry-feedback-email-input", placeholder: text.emailPlaceholder, keyboardType: 'email-address', value: email, onChangeText: value => this.setState({ email: value }) }))),
283
299
  React.createElement(Text, { style: styles.label },
284
300
  text.messageLabel,
285
301
  ` ${text.isRequiredLabel}`),
286
- React.createElement(TextInput, { style: [styles.input, styles.textArea], testID: 'sentry-feedback-message-input', placeholder: text.messagePlaceholder, value: description, onChangeText: (value) => this.setState({ description: value }), multiline: true }),
302
+ React.createElement(TextInput, { style: [styles.input, styles.textArea], testID: "sentry-feedback-message-input", placeholder: text.messagePlaceholder, value: description, onChangeText: value => this.setState({ description: value }), multiline: true }),
287
303
  (config.enableScreenshot || imagePickerConfiguration.imagePicker || this._hasScreenshot()) && (React.createElement(View, { style: styles.screenshotContainer },
288
304
  this.state.attachmentUri && (React.createElement(Image, { source: { uri: this.state.attachmentUri }, style: styles.screenshotThumbnail })),
289
305
  React.createElement(TouchableOpacity, { style: styles.screenshotButton, onPress: this.onScreenshotButtonPress },
290
- React.createElement(Text, { style: styles.screenshotText }, !this._hasScreenshot()
291
- ? text.addScreenshotButtonLabel
292
- : text.removeScreenshotButtonLabel)))),
306
+ React.createElement(Text, { style: styles.screenshotText }, !this._hasScreenshot() ? text.addScreenshotButtonLabel : text.removeScreenshotButtonLabel)))),
293
307
  notWeb() && config.enableTakeScreenshot && !this.state.attachmentUri && (React.createElement(TouchableOpacity, { style: styles.takeScreenshotButton, onPress: () => {
294
308
  hideFeedbackButton();
295
309
  onCancel();
@@ -297,12 +311,12 @@ export class FeedbackWidget extends React.Component {
297
311
  } },
298
312
  React.createElement(Text, { style: styles.takeScreenshotText }, text.captureScreenshotButtonLabel))),
299
313
  React.createElement(TouchableOpacity, { style: styles.submitButton, onPress: this.handleFeedbackSubmit },
300
- React.createElement(Text, { style: styles.submitText, testID: 'sentry-feedback-submit-button' }, text.submitButtonLabel)),
314
+ React.createElement(Text, { style: styles.submitText, testID: "sentry-feedback-submit-button" }, text.submitButtonLabel)),
301
315
  React.createElement(TouchableOpacity, { style: styles.cancelButton, onPress: onCancel },
302
316
  React.createElement(Text, { style: styles.cancelText }, text.cancelButtonLabel)))));
303
317
  }
304
318
  }
305
- FeedbackWidget.defaultProps = Object.assign({}, defaultConfiguration);
319
+ FeedbackWidget.defaultProps = defaultConfiguration;
306
320
  FeedbackWidget._savedState = {
307
321
  name: '',
308
322
  email: '',