@sentry/react-native 5.0.0-alpha.1 → 5.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/CHANGELOG.md +346 -1
  2. package/README.md +6 -0
  3. package/RNSentry.podspec +21 -4
  4. package/android/build.gradle +20 -2
  5. package/android/src/main/java/io/sentry/react/{RNSentryModule.java → RNSentryModuleImpl.java} +174 -114
  6. package/android/src/main/java/io/sentry/react/RNSentryPackage.java +35 -19
  7. package/android/src/newarch/java/io/sentry/react/RNSentryModule.java +119 -0
  8. package/android/src/oldarch/java/io/sentry/react/RNSentryModule.java +119 -0
  9. package/dist/js/NativeRNSentry.d.ts +52 -0
  10. package/dist/js/NativeRNSentry.d.ts.map +1 -0
  11. package/dist/js/NativeRNSentry.js +4 -0
  12. package/dist/js/NativeRNSentry.js.map +1 -0
  13. package/dist/js/client.d.ts +17 -4
  14. package/dist/js/client.d.ts.map +1 -1
  15. package/dist/js/client.js +90 -16
  16. package/dist/js/client.js.map +1 -1
  17. package/dist/js/index.d.ts +3 -3
  18. package/dist/js/index.d.ts.map +1 -1
  19. package/dist/js/index.js +2 -2
  20. package/dist/js/index.js.map +1 -1
  21. package/dist/js/integrations/debugsymbolicator.d.ts +9 -0
  22. package/dist/js/integrations/debugsymbolicator.d.ts.map +1 -1
  23. package/dist/js/integrations/debugsymbolicator.js +0 -2
  24. package/dist/js/integrations/debugsymbolicator.js.map +1 -1
  25. package/dist/js/integrations/index.d.ts +2 -0
  26. package/dist/js/integrations/index.d.ts.map +1 -1
  27. package/dist/js/integrations/index.js +2 -0
  28. package/dist/js/integrations/index.js.map +1 -1
  29. package/dist/js/integrations/modulesloader.d.ts +17 -0
  30. package/dist/js/integrations/modulesloader.d.ts.map +1 -0
  31. package/dist/js/integrations/modulesloader.js +33 -0
  32. package/dist/js/integrations/modulesloader.js.map +1 -0
  33. package/dist/js/integrations/reactnativeerrorhandlers.d.ts.map +1 -1
  34. package/dist/js/integrations/reactnativeerrorhandlers.js +6 -4
  35. package/dist/js/integrations/reactnativeerrorhandlers.js.map +1 -1
  36. package/dist/js/integrations/reactnativeinfo.d.ts +23 -0
  37. package/dist/js/integrations/reactnativeinfo.d.ts.map +1 -0
  38. package/dist/js/integrations/reactnativeinfo.js +43 -0
  39. package/dist/js/integrations/reactnativeinfo.js.map +1 -0
  40. package/dist/js/integrations/screenshot.d.ts +23 -0
  41. package/dist/js/integrations/screenshot.d.ts.map +1 -0
  42. package/dist/js/integrations/screenshot.js +39 -0
  43. package/dist/js/integrations/screenshot.js.map +1 -0
  44. package/dist/js/integrations/sdkinfo.d.ts +4 -1
  45. package/dist/js/integrations/sdkinfo.d.ts.map +1 -1
  46. package/dist/js/integrations/sdkinfo.js +13 -7
  47. package/dist/js/integrations/sdkinfo.js.map +1 -1
  48. package/dist/js/measurements.js +1 -1
  49. package/dist/js/measurements.js.map +1 -1
  50. package/dist/js/misc.d.ts +9 -0
  51. package/dist/js/misc.d.ts.map +1 -0
  52. package/dist/js/misc.js +17 -0
  53. package/dist/js/misc.js.map +1 -0
  54. package/dist/js/options.d.ts +45 -8
  55. package/dist/js/options.d.ts.map +1 -1
  56. package/dist/js/options.js.map +1 -1
  57. package/dist/js/scope.d.ts +10 -2
  58. package/dist/js/scope.d.ts.map +1 -1
  59. package/dist/js/scope.js +13 -1
  60. package/dist/js/scope.js.map +1 -1
  61. package/dist/js/sdk.d.ts +25 -0
  62. package/dist/js/sdk.d.ts.map +1 -1
  63. package/dist/js/sdk.js +85 -27
  64. package/dist/js/sdk.js.map +1 -1
  65. package/dist/js/tools/ModulesCollector.d.ts +17 -0
  66. package/dist/js/tools/ModulesCollector.d.ts.map +1 -0
  67. package/dist/js/tools/ModulesCollector.js +109 -0
  68. package/dist/js/tools/ModulesCollector.js.map +1 -0
  69. package/dist/js/tools/collectModules.d.ts +2 -0
  70. package/dist/js/tools/collectModules.d.ts.map +1 -0
  71. package/dist/js/tools/collectModules.js +11 -0
  72. package/dist/js/tools/collectModules.js.map +1 -0
  73. package/dist/js/touchevents.d.ts +4 -0
  74. package/dist/js/touchevents.d.ts.map +1 -1
  75. package/dist/js/touchevents.js.map +1 -1
  76. package/dist/js/tracing/nativeframes.js.map +1 -1
  77. package/dist/js/tracing/reactnativenavigation.d.ts +9 -0
  78. package/dist/js/tracing/reactnativenavigation.d.ts.map +1 -1
  79. package/dist/js/tracing/reactnativenavigation.js +20 -12
  80. package/dist/js/tracing/reactnativenavigation.js.map +1 -1
  81. package/dist/js/tracing/reactnativetracing.d.ts +15 -6
  82. package/dist/js/tracing/reactnativetracing.d.ts.map +1 -1
  83. package/dist/js/tracing/reactnativetracing.js +16 -9
  84. package/dist/js/tracing/reactnativetracing.js.map +1 -1
  85. package/dist/js/tracing/reactnavigation.d.ts +7 -1
  86. package/dist/js/tracing/reactnavigation.d.ts.map +1 -1
  87. package/dist/js/tracing/reactnavigation.js +31 -23
  88. package/dist/js/tracing/reactnavigation.js.map +1 -1
  89. package/dist/js/tracing/reactnavigationv4.d.ts +9 -9
  90. package/dist/js/tracing/reactnavigationv4.d.ts.map +1 -1
  91. package/dist/js/tracing/reactnavigationv4.js +27 -15
  92. package/dist/js/tracing/reactnavigationv4.js.map +1 -1
  93. package/dist/js/tracing/routingInstrumentation.d.ts +1 -1
  94. package/dist/js/tracing/routingInstrumentation.d.ts.map +1 -1
  95. package/dist/js/tracing/routingInstrumentation.js.map +1 -1
  96. package/dist/js/tracing/utils.d.ts +4 -3
  97. package/dist/js/tracing/utils.d.ts.map +1 -1
  98. package/dist/js/tracing/utils.js +7 -10
  99. package/dist/js/tracing/utils.js.map +1 -1
  100. package/dist/js/transports/TextEncoder.d.ts +3 -0
  101. package/dist/js/transports/TextEncoder.d.ts.map +1 -0
  102. package/dist/js/transports/TextEncoder.js +12 -0
  103. package/dist/js/transports/TextEncoder.js.map +1 -0
  104. package/dist/js/transports/native.d.ts +6 -1
  105. package/dist/js/transports/native.d.ts.map +1 -1
  106. package/dist/js/transports/native.js +6 -4
  107. package/dist/js/transports/native.js.map +1 -1
  108. package/dist/js/user.d.ts +6 -0
  109. package/dist/js/user.d.ts.map +1 -0
  110. package/dist/js/user.js +1 -0
  111. package/dist/js/user.js.map +1 -0
  112. package/dist/js/utils/envelope.d.ts +12 -0
  113. package/dist/js/utils/envelope.d.ts.map +1 -0
  114. package/dist/js/utils/envelope.js +21 -0
  115. package/dist/js/utils/envelope.js.map +1 -0
  116. package/dist/js/utils/environment.d.ts +7 -0
  117. package/dist/js/utils/environment.d.ts.map +1 -0
  118. package/dist/js/utils/environment.js +14 -0
  119. package/dist/js/utils/environment.js.map +1 -0
  120. package/dist/js/utils/outcome.d.ts +6 -0
  121. package/dist/js/utils/outcome.d.ts.map +1 -0
  122. package/dist/js/utils/outcome.js +19 -0
  123. package/dist/js/utils/outcome.js.map +1 -0
  124. package/dist/js/utils/safe.d.ts +18 -0
  125. package/dist/js/utils/safe.d.ts.map +1 -0
  126. package/dist/js/utils/safe.js +46 -0
  127. package/dist/js/utils/safe.js.map +1 -0
  128. package/dist/js/utils/worldwide.d.ts +13 -0
  129. package/dist/js/utils/worldwide.d.ts.map +1 -0
  130. package/dist/js/utils/worldwide.js +4 -0
  131. package/dist/js/utils/worldwide.js.map +1 -0
  132. package/dist/js/vendor/buffer/index.d.ts +2 -0
  133. package/dist/js/vendor/buffer/index.d.ts.map +1 -0
  134. package/dist/js/vendor/buffer/index.js +2 -0
  135. package/dist/js/vendor/buffer/index.js.map +1 -0
  136. package/dist/js/vendor/buffer/utf8ToBytes.d.ts +10 -0
  137. package/dist/js/vendor/buffer/utf8ToBytes.d.ts.map +1 -0
  138. package/dist/js/vendor/buffer/utf8ToBytes.js +82 -0
  139. package/dist/js/vendor/buffer/utf8ToBytes.js.map +1 -0
  140. package/dist/js/vendor/index.d.ts +2 -0
  141. package/dist/js/vendor/index.d.ts.map +1 -0
  142. package/dist/js/vendor/index.js +2 -0
  143. package/dist/js/vendor/index.js.map +1 -0
  144. package/dist/js/version.d.ts +2 -1
  145. package/dist/js/version.d.ts.map +1 -1
  146. package/dist/js/version.js +2 -1
  147. package/dist/js/version.js.map +1 -1
  148. package/dist/js/wrapper.d.ts +13 -4
  149. package/dist/js/wrapper.d.ts.map +1 -1
  150. package/dist/js/wrapper.js +126 -71
  151. package/dist/js/wrapper.js.map +1 -1
  152. package/ios/{RNSentry.m → RNSentry.mm} +98 -57
  153. package/package.json +31 -25
  154. package/sample-new-architecture/react-native.config.js +10 -0
  155. package/scripts/collect-modules.sh +43 -0
  156. package/sentry.gradle +57 -6
  157. package/src/js/NativeRNSentry.ts +66 -0
  158. package/dist/js/definitions.d.ts +0 -52
  159. package/dist/js/definitions.d.ts.map +0 -1
  160. package/dist/js/definitions.js +0 -1
  161. package/dist/js/definitions.js.map +0 -1
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@sentry/react-native",
3
3
  "homepage": "https://github.com/getsentry/sentry-react-native",
4
4
  "repository": "https://github.com/getsentry/sentry-react-native",
5
- "version": "5.0.0-alpha.1",
5
+ "version": "5.0.0-alpha.10",
6
6
  "description": "Official Sentry SDK for react-native",
7
7
  "typings": "dist/js/index.d.ts",
8
8
  "types": "dist/js/index.d.ts",
@@ -11,8 +11,10 @@
11
11
  },
12
12
  "main": "dist/js/index.js",
13
13
  "scripts": {
14
- "build": "tsc -p tsconfig.build.json",
15
- "build:watch": "tsc -p tsconfig.build.json -w --preserveWatchOutput",
14
+ "build": "yarn build:sdk && yarn build:tools",
15
+ "build:sdk": "tsc -p tsconfig.build.json",
16
+ "build:sdk:watch": "tsc -p tsconfig.build.json -w --preserveWatchOutput",
17
+ "build:tools": "tsc -p tsconfig.build.tools.json",
16
18
  "clean": "rimraf dist coverage",
17
19
  "test": "jest",
18
20
  "lint": "eslint .",
@@ -36,36 +38,36 @@
36
38
  "When bumping make sure to update the version of react, i.e: https://github.com/facebook/react-native/blob/v0.56.0/package.json"
37
39
  ],
38
40
  "peerDependencies": {
39
- "react": ">=16.4.1",
40
- "react-native": ">=0.56.0"
41
+ "react": ">=17.0.0",
42
+ "react-native": ">=0.70.0"
41
43
  },
42
44
  "dependencies": {
43
- "@sentry/browser": "7.7.0",
44
- "@sentry/cli": "1.74.4",
45
- "@sentry/core": "7.7.0",
46
- "@sentry/hub": "7.7.0",
47
- "@sentry/integrations": "7.7.0",
48
- "@sentry/react": "7.7.0",
49
- "@sentry/tracing": "7.7.0",
50
- "@sentry/types": "7.7.0",
51
- "@sentry/utils": "7.7.0",
52
- "@sentry/wizard": "2.0.0"
45
+ "@sentry/browser": "7.21.1",
46
+ "@sentry/cli": "2.10.0",
47
+ "@sentry/core": "7.21.1",
48
+ "@sentry/hub": "7.21.1",
49
+ "@sentry/integrations": "7.21.1",
50
+ "@sentry/react": "7.21.1",
51
+ "@sentry/tracing": "7.21.1",
52
+ "@sentry/types": "7.21.1",
53
+ "@sentry/utils": "7.21.1"
53
54
  },
54
55
  "devDependencies": {
55
- "@sentry-internal/eslint-config-sdk": "7.7.0",
56
- "@sentry-internal/eslint-plugin-sdk": "7.7.0",
56
+ "@sentry-internal/eslint-config-sdk": "7.21.1",
57
+ "@sentry-internal/eslint-plugin-sdk": "7.21.1",
57
58
  "@sentry/typescript": "^5.20.1",
59
+ "@sentry/wizard": "2.2.0",
58
60
  "@types/jest": "^26.0.15",
59
- "@types/react": "^16.9.49",
60
- "@types/react-native": "^0.66.11",
61
+ "@types/react": "^18.0.25",
62
+ "@types/react-native": "^0.70.6",
61
63
  "babel-jest": "^26.1.0",
62
64
  "eslint": "^7.6.0",
63
65
  "eslint-plugin-react": "^7.20.6",
64
66
  "eslint-plugin-react-native": "^3.8.1",
65
67
  "jest": "^24.9.0",
66
68
  "prettier": "^2.0.5",
67
- "react": ">=16.4.1",
68
- "react-native": ">=0.56.0",
69
+ "react": "^18.2.0",
70
+ "react-native": "^0.70.5",
69
71
  "replace-in-file": "^6.0.0",
70
72
  "rimraf": "^3.0.0",
71
73
  "ts-jest": "^24.3.0",
@@ -82,10 +84,6 @@
82
84
  "jest": {
83
85
  "collectCoverage": true,
84
86
  "preset": "react-native",
85
- "transform": {
86
- "^.+\\.(tsx)$": "<rootDir>/node_modules/react-native/jest/preprocessor.js",
87
- "^.+\\.(ts|tsx)$": "ts-jest"
88
- },
89
87
  "globals": {
90
88
  "__DEV__": true,
91
89
  "ts-jest": {
@@ -105,5 +103,13 @@
105
103
  "testMatch": [
106
104
  "**/*.test.(ts|tsx)"
107
105
  ]
106
+ },
107
+ "codegenConfig": {
108
+ "name": "RNSentrySpec",
109
+ "type": "modules",
110
+ "jsSrcsDir": "src",
111
+ "android": {
112
+ "javaPackageName": "io.sentry.react"
113
+ }
108
114
  }
109
115
  }
@@ -0,0 +1,10 @@
1
+ // Without this config the codegen fails
2
+ // because it can find @sentry/react-native
3
+ // in the dependencies
4
+ module.exports = {
5
+ dependencies: {
6
+ RNSentry: {
7
+ root: '../',
8
+ },
9
+ },
10
+ };
@@ -0,0 +1,43 @@
1
+ #!/bin/bash
2
+
3
+ # Print commands before executing them (useful for troubleshooting)
4
+ set -x
5
+
6
+ if [[ "$CONFIGURATION" = *Debug* ]]; then
7
+ echo "Debug build. Modules are not collected."
8
+ exit 0
9
+ fi
10
+
11
+ if [[ -z "$CONFIGURATION_BUILD_DIR" ]]; then
12
+ echo "Missing env CONFIGURATION_BUILD_DIR" 1>&2
13
+ exit 1
14
+ fi
15
+
16
+ if [[ -z "$UNLOCALIZED_RESOURCES_FOLDER_PATH" ]]; then
17
+ echo "Missing env UNLOCALIZED_RESOURCES_FOLDER_PATH" 1>&2
18
+ exit 1
19
+ fi
20
+
21
+ if [[ -z "$DERIVED_FILE_DIR" ]]; then
22
+ echo "Missing env DERIVED_FILE_DIR" 1>&2
23
+ exit 1
24
+ fi
25
+
26
+ nodePath="node"
27
+ thisFilePath=$(dirname $0)
28
+ collectModulesScript="$thisFilePath/../dist/js/tools/collectModules.js"
29
+
30
+ destination="$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH"
31
+ modulesOutput="$destination/modules.json"
32
+ if [[ -z "$SOURCE_MAP_PATH" ]]; then
33
+ sourceMap="$DERIVED_FILE_DIR/main.jsbundle.map"
34
+ else
35
+ sourceMap="$SOURCE_MAP_PATH"
36
+ fi
37
+ if [[ -z "$MODULES_PATHS" ]]; then
38
+ modulesPaths="$PWD/../node_modules"
39
+ else
40
+ modulesPaths="$MODULES_PATHS"
41
+ fi
42
+
43
+ $nodePath "$collectModulesScript" "$sourceMap" "$modulesOutput" "$modulesPaths"
package/sentry.gradle CHANGED
@@ -41,6 +41,8 @@ gradle.projectsEvaluated {
41
41
  def bundleOutput
42
42
  def props = bundleTask.getProperties()
43
43
  def reactRoot = props.get("workingDir")
44
+ def modulesOutput = "$reactRoot/android/app/src/main/assets/modules.json"
45
+ def modulesTask = null
44
46
 
45
47
  (shouldCleanUp, bundleOutput, sourcemapOutput) = forceSourceMapOutputFromBundleTask(bundleTask)
46
48
 
@@ -60,6 +62,7 @@ gradle.projectsEvaluated {
60
62
  def previousCliTask = null
61
63
 
62
64
  def nameCleanup = "${bundleTask.name}_SentryUploadCleanUp"
65
+ def nameModulesCleanup = "${bundleTask.name}_SentryCollectModulesCleanUp"
63
66
  // Upload the source map several times if necessary: once for each release and versionCode.
64
67
  currentVariants.each { key, currentVariant ->
65
68
  variant = currentVariant[0]
@@ -68,18 +71,18 @@ gradle.projectsEvaluated {
68
71
 
69
72
  try {
70
73
  if (versionCode instanceof String) {
71
- versionCode = Integer.parseInt(versionCode);
74
+ versionCode = Integer.parseInt(versionCode)
75
+ versionCode = Math.abs(versionCode)
72
76
  }
73
77
  } catch (NumberFormatException e) {
74
- project.logger.info("versionCode: '$versionCode' isn't an Integer, but it must be.")
78
+ project.logger.info("versionCode: '$versionCode' isn't an Integer, using the plain value.")
75
79
  }
76
80
 
77
- def absVersionCode = Math.abs(versionCode)
78
-
79
81
  // The Sentry server distinguishes source maps by release (`--release` in the command
80
82
  // below) and distribution identifier (`--dist` below). Give the task a unique name
81
83
  // based on where we're uploading to.
82
- def nameCliTask = "${bundleTask.name}_SentryUpload_${releaseName}_${absVersionCode}"
84
+ def nameCliTask = "${bundleTask.name}_SentryUpload_${releaseName}_${versionCode}"
85
+ def nameModulesTask = "${bundleTask.name}_SentryCollectModules_${releaseName}_${versionCode}"
83
86
 
84
87
  // If several outputs have the same releaseName and versionCode, we'd do the exact same
85
88
  // upload for each of them. No need to repeat.
@@ -154,6 +157,34 @@ gradle.projectsEvaluated {
154
157
  enabled true
155
158
  }
156
159
 
160
+ modulesTask = tasks.create(nameModulesTask, Exec) {
161
+ description = "collect javascript modules from bundle source map"
162
+ group = 'sentry.io'
163
+
164
+ workingDir reactRoot
165
+
166
+ def collectModulesScript = config.collectModulesScript
167
+ ? file(config.collectModulesScript).getAbsolutePath()
168
+ : "$reactRoot/node_modules/@sentry/react-native/dist/js/tools/collectModules.js"
169
+ def modulesPaths = config.modulesPaths
170
+ ? config.modulesPaths.join(',')
171
+ : "$reactRoot/node_modules"
172
+ def args = ["node",
173
+ collectModulesScript,
174
+ sourcemapOutput,
175
+ modulesOutput,
176
+ modulesPaths
177
+ ]
178
+
179
+ project.logger.info("Sentry-CollectModules arguments: ${args}")
180
+ commandLine(*args)
181
+
182
+ def skip = config.skipCollectModules
183
+ ? config.skipCollectModules == true
184
+ : false
185
+ enabled !skip
186
+ }
187
+
157
188
  // chain the upload tasks so they run sequentially in order to run
158
189
  // the cliCleanUpTask after the final upload task is run
159
190
  if (previousCliTask != null) {
@@ -162,6 +193,25 @@ gradle.projectsEvaluated {
162
193
  bundleTask.finalizedBy cliTask
163
194
  }
164
195
  previousCliTask = cliTask
196
+ cliTask.finalizedBy modulesTask
197
+ }
198
+
199
+ def modulesCleanUpTask = tasks.create(name: nameModulesCleanup, type: Delete) {
200
+ description = "clean up collected modules generated file"
201
+ group = 'sentry.io'
202
+
203
+ delete modulesOutput
204
+ }
205
+
206
+ def variantTaskName = variant.replaceAll("[\\s\\-()]", "") // variant is dev-release beta-release etc.
207
+ // task.name could be packageDev-debugRelease but in that case currentVariants == null
208
+ // because of the regex in `extractCurrentVariants` and this code doesn't run
209
+ def packageTasks = tasks.findAll {
210
+ task -> "package${variantTaskName}".equalsIgnoreCase(task.name) && task.enabled
211
+ }
212
+ packageTasks.each { packageTask ->
213
+ packageTask.dependsOn modulesTask
214
+ packageTask.finalizedBy modulesCleanUpTask
165
215
  }
166
216
 
167
217
  /** Delete sourcemap files */
@@ -170,7 +220,8 @@ gradle.projectsEvaluated {
170
220
  group = 'sentry.io'
171
221
 
172
222
  delete sourcemapOutput
173
- delete "$buildDir/intermediates/assets/release/index.android.bundle.map" // react native default bundle dir
223
+ delete "$buildDir/intermediates/assets/release/index.android.bundle.map"
224
+ // react native default bundle dir
174
225
  }
175
226
 
176
227
  // register clean task extension
@@ -0,0 +1,66 @@
1
+ import { Package } from '@sentry/types';
2
+ import { TurboModule, TurboModuleRegistry } from 'react-native';
3
+ import type { UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
4
+
5
+ // There has to be only one interface and it has to be named `Spec`
6
+ // Only extra allowed definitions are types (probably codegen bug)
7
+ export interface Spec extends TurboModule {
8
+ addBreadcrumb(breadcrumb: UnsafeObject): void;
9
+ captureEnvelope(
10
+ bytes: number[],
11
+ options: {
12
+ store: boolean,
13
+ },
14
+ ): Promise<boolean>;
15
+ captureScreenshot(): Promise<NativeScreenshot[]>;
16
+ clearBreadcrumbs(): void;
17
+ crash(): void;
18
+ closeNativeSdk(): Promise<void>;
19
+ disableNativeFramesTracking(): void;
20
+ fetchNativeRelease(): Promise<NativeReleaseResponse>;
21
+ fetchNativeSdkInfo(): Promise<Package>;
22
+ fetchNativeDeviceContexts(): Promise<NativeDeviceContextsResponse>;
23
+ fetchNativeAppStart(): Promise<NativeAppStartResponse | null>;
24
+ fetchNativeFrames(): Promise<NativeFramesResponse | null>;
25
+ initNativeSdk(options: UnsafeObject): Promise<boolean>;
26
+ setUser(
27
+ defaultUserKeys: UnsafeObject | null,
28
+ otherUserKeys: UnsafeObject | null
29
+ ): void;
30
+ setContext(key: string, value: UnsafeObject | null): void;
31
+ setExtra(key: string, value: string): void;
32
+ setTag(key: string, value: string): void;
33
+ enableNativeFramesTracking(): void;
34
+ fetchModules(): Promise<string | undefined | null>;
35
+ }
36
+
37
+ export type NativeAppStartResponse = {
38
+ isColdStart: boolean;
39
+ appStartTime: number;
40
+ didFetchAppStart: boolean;
41
+ };
42
+
43
+ export type NativeFramesResponse = {
44
+ totalFrames: number;
45
+ slowFrames: number;
46
+ frozenFrames: number;
47
+ };
48
+
49
+ export type NativeReleaseResponse = {
50
+ build: string;
51
+ id: string;
52
+ version: string;
53
+ };
54
+
55
+ export type NativeDeviceContextsResponse = {
56
+ [key: string]: Record<string, unknown>;
57
+ };
58
+
59
+ export type NativeScreenshot = {
60
+ data: number[];
61
+ contentType: string;
62
+ filename: string;
63
+ }
64
+
65
+ // The export must be here to pass codegen even if not used
66
+ export default TurboModuleRegistry.getEnforcing<Spec>('RNSentry');
@@ -1,52 +0,0 @@
1
- import { Breadcrumb, Package } from '@sentry/types';
2
- import { ReactNativeOptions } from './options';
3
- export declare type NativeAppStartResponse = {
4
- isColdStart: boolean;
5
- appStartTime: number;
6
- didFetchAppStart: boolean;
7
- };
8
- export declare type NativeFramesResponse = {
9
- totalFrames: number;
10
- slowFrames: number;
11
- frozenFrames: number;
12
- };
13
- export declare type NativeReleaseResponse = {
14
- build: string;
15
- id: string;
16
- version: string;
17
- };
18
- export declare type NativeDeviceContextsResponse = {
19
- [key: string]: Record<string, unknown>;
20
- };
21
- interface SerializedObject {
22
- [key: string]: string;
23
- }
24
- export interface SentryNativeBridgeModule {
25
- nativeClientAvailable: boolean;
26
- addBreadcrumb(breadcrumb: Breadcrumb): void;
27
- captureEnvelope(payload: string | {
28
- header: Record<string, unknown>;
29
- payload: Record<string, unknown>;
30
- }): PromiseLike<boolean>;
31
- clearBreadcrumbs(): void;
32
- crash(): void;
33
- closeNativeSdk(): PromiseLike<void>;
34
- disableNativeFramesTracking(): void;
35
- fetchNativeRelease(): Promise<{
36
- build: string;
37
- id: string;
38
- version: string;
39
- }>;
40
- fetchNativeSdkInfo(): PromiseLike<Package>;
41
- fetchNativeDeviceContexts(): PromiseLike<NativeDeviceContextsResponse>;
42
- fetchNativeAppStart(): PromiseLike<NativeAppStartResponse | null>;
43
- fetchNativeFrames(): PromiseLike<NativeFramesResponse | null>;
44
- getStringBytesLength(str: string): Promise<number>;
45
- initNativeSdk(options: ReactNativeOptions): Promise<boolean>;
46
- setUser(defaultUserKeys: SerializedObject | null, otherUserKeys: SerializedObject | null): void;
47
- setContext(key: string, value: SerializedObject | null): void;
48
- setExtra(key: string, value: string): void;
49
- setTag(key: string, value: string): void;
50
- }
51
- export {};
52
- //# sourceMappingURL=definitions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/js/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,oBAAY,sBAAsB,GAAG;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,4BAA4B,GAAG;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,CAAC;AAEF,UAAU,gBAAgB;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,qBAAqB,EAAE,OAAO,CAAC;IAE/B,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5C,eAAe,CACb,OAAO,EACH,MAAM,GACN;QACE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,GACJ,WAAW,CAAC,OAAO,CAAC,CAAC;IACxB,gBAAgB,IAAI,IAAI,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,cAAc,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,2BAA2B,IAAI,IAAI,CAAC;IACpC,kBAAkB,IAAI,OAAO,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,kBAAkB,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,yBAAyB,IAAI,WAAW,CAAC,4BAA4B,CAAC,CAAC;IACvE,mBAAmB,IAAI,WAAW,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAClE,iBAAiB,IAAI,WAAW,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC9D,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,OAAO,CACL,eAAe,EAAE,gBAAgB,GAAG,IAAI,EACxC,aAAa,EAAE,gBAAgB,GAAG,IAAI,GACrC,IAAI,CAAC;IACR,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=definitions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/js/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import { Breadcrumb, Package } from '@sentry/types';\n\nimport { ReactNativeOptions } from './options';\n\nexport type NativeAppStartResponse = {\n isColdStart: boolean;\n appStartTime: number;\n didFetchAppStart: boolean;\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\nexport type NativeDeviceContextsResponse = {\n [key: string]: Record<string, unknown>;\n};\n\ninterface SerializedObject {\n [key: string]: string;\n}\n\nexport interface SentryNativeBridgeModule {\n nativeClientAvailable: boolean;\n\n addBreadcrumb(breadcrumb: Breadcrumb): void;\n captureEnvelope(\n payload:\n | string\n | {\n header: Record<string, unknown>;\n payload: Record<string, unknown>;\n }\n ): PromiseLike<boolean>;\n clearBreadcrumbs(): void;\n crash(): void;\n closeNativeSdk(): PromiseLike<void>;\n disableNativeFramesTracking(): void;\n fetchNativeRelease(): Promise<{\n build: string;\n id: string;\n version: string;\n }>;\n fetchNativeSdkInfo(): PromiseLike<Package>;\n fetchNativeDeviceContexts(): PromiseLike<NativeDeviceContextsResponse>;\n fetchNativeAppStart(): PromiseLike<NativeAppStartResponse | null>;\n fetchNativeFrames(): PromiseLike<NativeFramesResponse | null>;\n getStringBytesLength(str: string): Promise<number>;\n initNativeSdk(options: ReactNativeOptions): Promise<boolean>;\n setUser(\n defaultUserKeys: SerializedObject | null,\n otherUserKeys: SerializedObject | null\n ): void;\n setContext(key: string, value: SerializedObject | null): void;\n setExtra(key: string, value: string): void;\n setTag(key: string, value: string): void;\n}\n"]}