@react-native-firebase/crashlytics 25.0.1 → 26.0.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 (66) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/RNFBCrashlytics.podspec +10 -6
  3. package/android/build.gradle +23 -0
  4. package/android/src/main/java/io/invertase/firebase/crashlytics/{ReactNativeFirebaseCrashlyticsModule.java → NativeRNFBTurboCrashlytics.java} +44 -39
  5. package/android/src/main/java/io/invertase/firebase/crashlytics/ReactNativeFirebaseCrashlyticsPackage.java +1 -1
  6. package/android/src/main/java/io/invertase/firebase/crashlytics/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboCrashlyticsSpec.java +125 -0
  7. package/android/src/main/java/io/invertase/firebase/crashlytics/generated/jni/CMakeLists.txt +36 -0
  8. package/android/src/main/java/io/invertase/firebase/crashlytics/generated/jni/RNFBCrashlyticsTurboModules-generated.cpp +116 -0
  9. package/android/src/main/java/io/invertase/firebase/crashlytics/generated/jni/RNFBCrashlyticsTurboModules.h +31 -0
  10. package/android/src/main/java/io/invertase/firebase/crashlytics/generated/jni/react/renderer/components/RNFBCrashlyticsTurboModules/RNFBCrashlyticsTurboModulesJSI-generated.cpp +124 -0
  11. package/android/src/main/java/io/invertase/firebase/crashlytics/generated/jni/react/renderer/components/RNFBCrashlyticsTurboModules/RNFBCrashlyticsTurboModulesJSI.h +320 -0
  12. package/app.plugin.js +1 -1
  13. package/dist/module/handlers.js +7 -24
  14. package/dist/module/handlers.js.map +1 -1
  15. package/dist/module/index.js +125 -8
  16. package/dist/module/index.js.map +1 -1
  17. package/dist/module/types/crashlytics.js +1 -40
  18. package/dist/module/types/crashlytics.js.map +1 -1
  19. package/dist/module/types/internal.js +4 -0
  20. package/dist/module/types/internal.js.map +1 -0
  21. package/dist/module/version.js +1 -1
  22. package/dist/typescript/lib/handlers.d.ts.map +1 -1
  23. package/dist/typescript/lib/index.d.ts +19 -4
  24. package/dist/typescript/lib/index.d.ts.map +1 -1
  25. package/dist/typescript/lib/types/crashlytics.d.ts +0 -21
  26. package/dist/typescript/lib/types/crashlytics.d.ts.map +1 -1
  27. package/dist/typescript/lib/types/internal.d.ts +44 -0
  28. package/dist/typescript/lib/types/internal.d.ts.map +1 -0
  29. package/dist/typescript/lib/version.d.ts +1 -1
  30. package/ios/RNFBCrashlytics/RNFBCrashlyticsModule.h +2 -3
  31. package/ios/RNFBCrashlytics/{RNFBCrashlyticsModule.m → RNFBCrashlyticsModule.mm} +64 -72
  32. package/ios/RNFBCrashlytics.xcodeproj/project.pbxproj +8 -8
  33. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  34. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  35. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  36. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  37. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  38. package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
  39. package/ios/generated/RNFBCrashlyticsTurboModules/RNFBCrashlyticsTurboModules-generated.mm +148 -0
  40. package/ios/generated/RNFBCrashlyticsTurboModules/RNFBCrashlyticsTurboModules.h +214 -0
  41. package/ios/generated/RNFBCrashlyticsTurboModulesJSI-generated.cpp +124 -0
  42. package/ios/generated/RNFBCrashlyticsTurboModulesJSI.h +320 -0
  43. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  44. package/lib/handlers.ts +7 -26
  45. package/lib/index.ts +209 -7
  46. package/lib/types/crashlytics.ts +0 -30
  47. package/lib/types/internal.ts +59 -0
  48. package/lib/version.ts +1 -1
  49. package/package.json +30 -5
  50. package/plugin/build/app.plugin.d.ts +2 -0
  51. package/plugin/build/app.plugin.js +6 -0
  52. package/plugin/src/app.plugin.ts +3 -0
  53. package/plugin/tsconfig.tsbuildinfo +1 -1
  54. package/react-native.config.js +3 -28
  55. package/specs/NativeRNFBTurboCrashlytics.ts +41 -0
  56. package/typedoc.json +2 -3
  57. package/dist/module/modular.js +0 -241
  58. package/dist/module/modular.js.map +0 -1
  59. package/dist/module/namespaced.js +0 -135
  60. package/dist/module/namespaced.js.map +0 -1
  61. package/dist/typescript/lib/modular.d.ts +0 -193
  62. package/dist/typescript/lib/modular.d.ts.map +0 -1
  63. package/dist/typescript/lib/namespaced.d.ts +0 -12
  64. package/dist/typescript/lib/namespaced.d.ts.map +0 -1
  65. package/lib/modular.ts +0 -249
  66. package/lib/namespaced.ts +0 -206
package/CHANGELOG.md CHANGED
@@ -3,6 +3,26 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [26.0.0](https://github.com/invertase/react-native-firebase/compare/v25.1.0...v26.0.0) (2026-07-29)
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ - **crashlytics:** migrate crashlytics to TurboModules
11
+
12
+ ### Features
13
+
14
+ - **crashlytics:** migrate crashlytics to TurboModules ([122295e](https://github.com/invertase/react-native-firebase/commit/122295e0afa6b70f55f4934c98f60d559190a908))
15
+
16
+ ### Bug Fixes
17
+
18
+ - add codegen verify and spec-native parity tests ([49d9f1b](https://github.com/invertase/react-native-firebase/commit/49d9f1baba4fc83c1dd4983f582bbd7352d78809))
19
+ - add ResultT codegen type alias ([ff2d68f](https://github.com/invertase/react-native-firebase/commit/ff2d68ff8f73092f8ba3c75e007049dd31be822f))
20
+ - **ios:** set IPHONEOS_DEPLOYMENT_TARGET to 15.0, update platform support docs/conditionals ([#9108](https://github.com/invertase/react-native-firebase/issues/9108)) ([99d0899](https://github.com/invertase/react-native-firebase/commit/99d089908e3eec6155d73ecf05ff7274ad33c46e)), closes [#8882](https://github.com/invertase/react-native-firebase/issues/8882)
21
+
22
+ ## [25.1.0](https://github.com/invertase/react-native-firebase/compare/v25.0.1...v25.1.0) (2026-06-25)
23
+
24
+ **Note:** Version bump only for package @react-native-firebase/crashlytics
25
+
6
26
  ## [25.0.1](https://github.com/invertase/react-native-firebase/compare/v25.0.0...v25.0.1) (2026-06-23)
7
27
 
8
28
  **Note:** Version bump only for package @react-native-firebase/crashlytics
@@ -29,15 +29,19 @@ Pod::Spec.new do |s|
29
29
  s.ios.deployment_target = firebase_ios_target
30
30
  s.macos.deployment_target = firebase_macos_target
31
31
  s.tvos.deployment_target = firebase_tvos_target
32
- s.source_files = 'ios/**/*.{h,m}'
32
+ s.source_files = 'ios/**/*.{h,m,mm,cpp,swift}'
33
+ s.private_header_files = "ios/**/*.h"
34
+ s.exclude_files = 'ios/generated/RCTThirdPartyComponentsProvider.*', 'ios/generated/RCTAppDependencyProvider.*', 'ios/generated/RCTModuleProviders.*', 'ios/generated/RCTModulesConformingToProtocolsProvider.*', 'ios/generated/RCTUnstableModulesRequiringMainQueueSetupProvider.*'
35
+ s.pod_target_xcconfig = {
36
+ "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ios/generated/RNFBCrashlyticsTurboModules\" \"$(PODS_TARGET_SRCROOT)/ios/generated\"",
37
+ }
33
38
 
34
39
  s.dependency 'RNFBApp'
35
40
 
36
- # React Native dependencies
37
- if defined?(install_modules_dependencies()) != nil
38
- install_modules_dependencies(s);
39
- else
40
- s.dependency "React-Core"
41
+ install_modules_dependencies(s);
42
+
43
+ if defined?(ENV["RCT_NEW_ARCH_ENABLED"]) != nil && (ENV["RCT_NEW_ARCH_ENABLED"] == '0')
44
+ raise "#{s.name} requires New Architecture. Enable New Architecture to use this module"
41
45
  end
42
46
 
43
47
  if defined?($FirebaseSDKVersion)
@@ -82,6 +82,11 @@ android {
82
82
  targetCompatibility = JavaVersion.VERSION_11
83
83
  }
84
84
  }
85
+ sourceSets {
86
+ main {
87
+ java.excludes = ['**/generated/jni/**']
88
+ }
89
+ }
85
90
  }
86
91
 
87
92
  repositories {
@@ -100,3 +105,21 @@ ReactNative.shared.applyPackageVersion()
100
105
  ReactNative.shared.applyDefaultExcludes()
101
106
  ReactNative.module.applyAndroidVersions()
102
107
  ReactNative.module.applyReactNativeDependency("api")
108
+
109
+ def isNewArchitectureDisabled() {
110
+ return project.hasProperty("newArchEnabled") && project.newArchEnabled != "true"
111
+ }
112
+
113
+ if (isNewArchitectureDisabled()) {
114
+ def ANSI_RED = "\u001B[31m";
115
+ def ANSI_RESET = "\u001B[0m";
116
+
117
+ println("\n\n\n")
118
+ println(ANSI_RED + "**************************************************************************************************************")
119
+ println("\n\n\n")
120
+ println("New Architecture support is required for @react-native-firebase/crashlytics")
121
+ println("\n\n\n")
122
+ println("**************************************************************************************************************" + ANSI_RESET)
123
+ println("\n\n\n")
124
+ System.exit(1)
125
+ }
@@ -17,24 +17,46 @@ package io.invertase.firebase.crashlytics;
17
17
  *
18
18
  */
19
19
 
20
+ import static io.invertase.firebase.common.ReactNativeFirebaseModule.rejectPromiseWithCodeAndMessage;
21
+
20
22
  import android.os.Handler;
21
23
  import android.util.Log;
22
- import com.facebook.react.bridge.*;
24
+ import com.facebook.fbreact.specs.NativeRNFBTurboCrashlyticsSpec;
25
+ import com.facebook.react.bridge.Promise;
26
+ import com.facebook.react.bridge.ReactApplicationContext;
27
+ import com.facebook.react.bridge.ReadableArray;
28
+ import com.facebook.react.bridge.ReadableMap;
29
+ import com.facebook.react.bridge.ReadableMapKeySetIterator;
23
30
  import com.google.firebase.crashlytics.FirebaseCrashlytics;
24
- import io.invertase.firebase.common.ReactNativeFirebaseModule;
25
31
  import io.invertase.firebase.common.ReactNativeFirebasePreferences;
26
32
  import java.util.HashMap;
27
33
  import java.util.Map;
28
34
  import java.util.Objects;
29
35
 
30
- public class ReactNativeFirebaseCrashlyticsModule extends ReactNativeFirebaseModule {
36
+ public class NativeRNFBTurboCrashlytics extends NativeRNFBTurboCrashlyticsSpec {
31
37
  private static final String TAG = "Crashlytics";
32
38
 
33
- ReactNativeFirebaseCrashlyticsModule(ReactApplicationContext reactContext) {
34
- super(reactContext, TAG);
39
+ public NativeRNFBTurboCrashlytics(ReactApplicationContext reactContext) {
40
+ super(reactContext);
35
41
  }
36
42
 
37
- @ReactMethod
43
+ @Override
44
+ protected Map<String, Object> getTypedExportedConstants() {
45
+ final Map<String, Object> constants = new HashMap<>();
46
+ constants.put(
47
+ "isCrashlyticsCollectionEnabled",
48
+ ReactNativeFirebaseCrashlyticsInitProvider.isCrashlyticsCollectionEnabled());
49
+ constants.put(
50
+ "isErrorGenerationOnJSCrashEnabled",
51
+ ReactNativeFirebaseCrashlyticsInitProvider.isErrorGenerationOnJSCrashEnabled());
52
+ constants.put(
53
+ "isCrashlyticsJavascriptExceptionHandlerChainingEnabled",
54
+ ReactNativeFirebaseCrashlyticsInitProvider
55
+ .isCrashlyticsJavascriptExceptionHandlerChainingEnabled());
56
+ return constants;
57
+ }
58
+
59
+ @Override
38
60
  public void checkForUnsentReports(Promise promise) {
39
61
  FirebaseCrashlytics.getInstance()
40
62
  .checkForUnsentReports()
@@ -58,7 +80,7 @@ public class ReactNativeFirebaseCrashlyticsModule extends ReactNativeFirebaseMod
58
80
  });
59
81
  }
60
82
 
61
- @ReactMethod
83
+ @Override
62
84
  public void crashWithStackPromise(ReadableMap jsErrorMap, Promise promise) {
63
85
  if (ReactNativeFirebaseCrashlyticsInitProvider.isCrashlyticsCollectionEnabled()) {
64
86
  Exception e = recordJavaScriptError(jsErrorMap);
@@ -71,10 +93,9 @@ public class ReactNativeFirebaseCrashlyticsModule extends ReactNativeFirebaseMod
71
93
  promise.resolve(null);
72
94
  }
73
95
 
74
- @ReactMethod
96
+ @Override
75
97
  public void crash() {
76
98
  if (ReactNativeFirebaseCrashlyticsInitProvider.isCrashlyticsCollectionEnabled()) {
77
- // async task so as not to get caught by the React Native redbox handler in debug
78
99
  new Handler()
79
100
  .postDelayed(
80
101
  new Runnable() {
@@ -89,25 +110,25 @@ public class ReactNativeFirebaseCrashlyticsModule extends ReactNativeFirebaseMod
89
110
  }
90
111
  }
91
112
 
92
- @ReactMethod
93
- public void deleteUnsentReports() {
113
+ @Override
114
+ public void deleteUnsentReports(Promise promise) {
94
115
  FirebaseCrashlytics.getInstance().deleteUnsentReports();
116
+ promise.resolve(null);
95
117
  }
96
118
 
97
- @ReactMethod
119
+ @Override
98
120
  public void didCrashOnPreviousExecution(Promise promise) {
99
121
  promise.resolve(FirebaseCrashlytics.getInstance().didCrashOnPreviousExecution());
100
122
  }
101
123
 
102
- @ReactMethod
124
+ @Override
103
125
  public void log(String message) {
104
126
  if (ReactNativeFirebaseCrashlyticsInitProvider.isCrashlyticsCollectionEnabled()) {
105
127
  FirebaseCrashlytics.getInstance().log(message);
106
128
  }
107
129
  }
108
130
 
109
- // For internal use only.
110
- @ReactMethod
131
+ @Override
111
132
  public void logPromise(String message, Promise promise) {
112
133
  if (ReactNativeFirebaseCrashlyticsInitProvider.isCrashlyticsCollectionEnabled()) {
113
134
  FirebaseCrashlytics.getInstance().log(message);
@@ -115,7 +136,7 @@ public class ReactNativeFirebaseCrashlyticsModule extends ReactNativeFirebaseMod
115
136
  promise.resolve(null);
116
137
  }
117
138
 
118
- @ReactMethod
139
+ @Override
119
140
  public void setAttribute(String key, String value, Promise promise) {
120
141
  if (ReactNativeFirebaseCrashlyticsInitProvider.isCrashlyticsCollectionEnabled()) {
121
142
  FirebaseCrashlytics.getInstance().setCustomKey(key, value);
@@ -123,7 +144,7 @@ public class ReactNativeFirebaseCrashlyticsModule extends ReactNativeFirebaseMod
123
144
  promise.resolve(null);
124
145
  }
125
146
 
126
- @ReactMethod
147
+ @Override
127
148
  public void setAttributes(ReadableMap keyValuesMap, Promise promise) {
128
149
  if (ReactNativeFirebaseCrashlyticsInitProvider.isCrashlyticsCollectionEnabled()) {
129
150
  ReadableMapKeySetIterator iterator = keyValuesMap.keySetIterator();
@@ -139,12 +160,12 @@ public class ReactNativeFirebaseCrashlyticsModule extends ReactNativeFirebaseMod
139
160
  promise.resolve(null);
140
161
  }
141
162
 
142
- @ReactMethod
163
+ @Override
143
164
  public void sendUnsentReports() {
144
165
  FirebaseCrashlytics.getInstance().sendUnsentReports();
145
166
  }
146
167
 
147
- @ReactMethod
168
+ @Override
148
169
  public void setUserId(String userId, Promise promise) {
149
170
  if (ReactNativeFirebaseCrashlyticsInitProvider.isCrashlyticsCollectionEnabled()) {
150
171
  FirebaseCrashlytics.getInstance().setUserId(userId);
@@ -152,14 +173,14 @@ public class ReactNativeFirebaseCrashlyticsModule extends ReactNativeFirebaseMod
152
173
  promise.resolve(null);
153
174
  }
154
175
 
155
- @ReactMethod
156
- public void setCrashlyticsCollectionEnabled(Boolean enabled, Promise promise) {
176
+ @Override
177
+ public void setCrashlyticsCollectionEnabled(boolean enabled, Promise promise) {
157
178
  ReactNativeFirebasePreferences.getSharedInstance()
158
179
  .setBooleanValue(Constants.KEY_CRASHLYTICS_AUTO_COLLECTION_ENABLED, enabled);
159
180
  promise.resolve(null);
160
181
  }
161
182
 
162
- @ReactMethod
183
+ @Override
163
184
  public void recordError(ReadableMap jsErrorMap) {
164
185
  if (ReactNativeFirebaseCrashlyticsInitProvider.isCrashlyticsCollectionEnabled()) {
165
186
  recordJavaScriptError(jsErrorMap);
@@ -168,7 +189,7 @@ public class ReactNativeFirebaseCrashlyticsModule extends ReactNativeFirebaseMod
168
189
  }
169
190
  }
170
191
 
171
- @ReactMethod
192
+ @Override
172
193
  public void recordErrorPromise(ReadableMap jsErrorMap, Promise promise) {
173
194
  if (ReactNativeFirebaseCrashlyticsInitProvider.isCrashlyticsCollectionEnabled()) {
174
195
  recordJavaScriptError(jsErrorMap);
@@ -204,20 +225,4 @@ public class ReactNativeFirebaseCrashlyticsModule extends ReactNativeFirebaseMod
204
225
  FirebaseCrashlytics.getInstance().recordException(customException);
205
226
  return customException;
206
227
  }
207
-
208
- @Override
209
- public Map<String, Object> getConstants() {
210
- final Map<String, Object> constants = new HashMap<>();
211
- constants.put(
212
- "isCrashlyticsCollectionEnabled",
213
- ReactNativeFirebaseCrashlyticsInitProvider.isCrashlyticsCollectionEnabled());
214
- constants.put(
215
- "isErrorGenerationOnJSCrashEnabled",
216
- ReactNativeFirebaseCrashlyticsInitProvider.isErrorGenerationOnJSCrashEnabled());
217
- constants.put(
218
- "isCrashlyticsJavascriptExceptionHandlerChainingEnabled",
219
- ReactNativeFirebaseCrashlyticsInitProvider
220
- .isCrashlyticsJavascriptExceptionHandlerChainingEnabled());
221
- return constants;
222
- }
223
228
  }
@@ -30,7 +30,7 @@ public class ReactNativeFirebaseCrashlyticsPackage implements ReactPackage {
30
30
  @Override
31
31
  public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
32
32
  List<NativeModule> modules = new ArrayList<>();
33
- modules.add(new ReactNativeFirebaseCrashlyticsModule(reactContext));
33
+ modules.add(new NativeRNFBTurboCrashlytics(reactContext));
34
34
  return modules;
35
35
  }
36
36
 
@@ -0,0 +1,125 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateModuleJavaSpec.js
9
+ *
10
+ * @nolint
11
+ */
12
+
13
+ package com.facebook.fbreact.specs;
14
+
15
+ import com.facebook.proguard.annotations.DoNotStrip;
16
+ import com.facebook.react.bridge.Promise;
17
+ import com.facebook.react.bridge.ReactApplicationContext;
18
+ import com.facebook.react.bridge.ReactContextBaseJavaModule;
19
+ import com.facebook.react.bridge.ReactMethod;
20
+ import com.facebook.react.bridge.ReadableMap;
21
+ import com.facebook.react.common.build.ReactBuildConfig;
22
+ import com.facebook.react.turbomodule.core.interfaces.TurboModule;
23
+ import java.util.Arrays;
24
+ import java.util.HashSet;
25
+ import java.util.Map;
26
+ import java.util.Set;
27
+ import javax.annotation.Nonnull;
28
+ import javax.annotation.Nullable;
29
+
30
+ public abstract class NativeRNFBTurboCrashlyticsSpec extends ReactContextBaseJavaModule implements TurboModule {
31
+ public static final String NAME = "NativeRNFBTurboCrashlytics";
32
+
33
+ public NativeRNFBTurboCrashlyticsSpec(ReactApplicationContext reactContext) {
34
+ super(reactContext);
35
+ }
36
+
37
+ @Override
38
+ public @Nonnull String getName() {
39
+ return NAME;
40
+ }
41
+
42
+ protected abstract Map<String, Object> getTypedExportedConstants();
43
+
44
+ @Override
45
+ @DoNotStrip
46
+ public final @Nullable Map<String, Object> getConstants() {
47
+ Map<String, Object> constants = getTypedExportedConstants();
48
+ if (ReactBuildConfig.DEBUG || ReactBuildConfig.IS_INTERNAL_BUILD) {
49
+ Set<String> obligatoryFlowConstants = new HashSet<>(Arrays.asList(
50
+ "isCrashlyticsCollectionEnabled",
51
+ "isCrashlyticsJavascriptExceptionHandlerChainingEnabled",
52
+ "isErrorGenerationOnJSCrashEnabled"
53
+ ));
54
+ Set<String> optionalFlowConstants = new HashSet<>();
55
+ Set<String> undeclaredConstants = new HashSet<>(constants.keySet());
56
+ undeclaredConstants.removeAll(obligatoryFlowConstants);
57
+ undeclaredConstants.removeAll(optionalFlowConstants);
58
+ if (!undeclaredConstants.isEmpty()) {
59
+ throw new IllegalStateException(String.format("Native Module Flow doesn't declare constants: %s", undeclaredConstants));
60
+ }
61
+ undeclaredConstants = obligatoryFlowConstants;
62
+ undeclaredConstants.removeAll(constants.keySet());
63
+ if (!undeclaredConstants.isEmpty()) {
64
+ throw new IllegalStateException(String.format("Native Module doesn't fill in constants: %s", undeclaredConstants));
65
+ }
66
+ }
67
+ return constants;
68
+ }
69
+
70
+ @ReactMethod
71
+ @DoNotStrip
72
+ public abstract void checkForUnsentReports(Promise promise);
73
+
74
+ @ReactMethod
75
+ @DoNotStrip
76
+ public abstract void crash();
77
+
78
+ @ReactMethod
79
+ @DoNotStrip
80
+ public abstract void crashWithStackPromise(ReadableMap jsErrorDict, Promise promise);
81
+
82
+ @ReactMethod
83
+ @DoNotStrip
84
+ public abstract void deleteUnsentReports(Promise promise);
85
+
86
+ @ReactMethod
87
+ @DoNotStrip
88
+ public abstract void didCrashOnPreviousExecution(Promise promise);
89
+
90
+ @ReactMethod
91
+ @DoNotStrip
92
+ public abstract void log(String message);
93
+
94
+ @ReactMethod
95
+ @DoNotStrip
96
+ public abstract void logPromise(String message, Promise promise);
97
+
98
+ @ReactMethod
99
+ @DoNotStrip
100
+ public abstract void sendUnsentReports();
101
+
102
+ @ReactMethod
103
+ @DoNotStrip
104
+ public abstract void setAttribute(String key, String value, Promise promise);
105
+
106
+ @ReactMethod
107
+ @DoNotStrip
108
+ public abstract void setAttributes(ReadableMap attributes, Promise promise);
109
+
110
+ @ReactMethod
111
+ @DoNotStrip
112
+ public abstract void setUserId(String userId, Promise promise);
113
+
114
+ @ReactMethod
115
+ @DoNotStrip
116
+ public abstract void recordError(ReadableMap jsErrorDict);
117
+
118
+ @ReactMethod
119
+ @DoNotStrip
120
+ public abstract void recordErrorPromise(ReadableMap jsErrorDict, Promise promise);
121
+
122
+ @ReactMethod
123
+ @DoNotStrip
124
+ public abstract void setCrashlyticsCollectionEnabled(boolean enabled, Promise promise);
125
+ }
@@ -0,0 +1,36 @@
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ cmake_minimum_required(VERSION 3.13)
7
+ set(CMAKE_VERBOSE_MAKEFILE on)
8
+
9
+ file(GLOB react_codegen_SRCS CONFIGURE_DEPENDS *.cpp react/renderer/components/RNFBCrashlyticsTurboModules/*.cpp)
10
+
11
+ add_library(
12
+ react_codegen_RNFBCrashlyticsTurboModules
13
+ OBJECT
14
+ ${react_codegen_SRCS}
15
+ )
16
+
17
+ target_include_directories(react_codegen_RNFBCrashlyticsTurboModules PUBLIC . react/renderer/components/RNFBCrashlyticsTurboModules)
18
+
19
+ target_link_libraries(
20
+ react_codegen_RNFBCrashlyticsTurboModules
21
+ fbjni
22
+ jsi
23
+ # We need to link different libraries based on whether we are building rncore or not, that's necessary
24
+ # because we want to break a circular dependency between react_codegen_rncore and reactnative
25
+ reactnative
26
+ )
27
+
28
+ target_compile_options(
29
+ react_codegen_RNFBCrashlyticsTurboModules
30
+ PRIVATE
31
+ -DLOG_TAG=\"ReactNative\"
32
+ -fexceptions
33
+ -frtti
34
+ -std=c++20
35
+ -Wall
36
+ )
@@ -0,0 +1,116 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateModuleJniCpp.js
9
+ */
10
+
11
+ #include "RNFBCrashlyticsTurboModules.h"
12
+
13
+ namespace facebook::react {
14
+
15
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_getConstants(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
16
+ static jmethodID cachedMethodId = nullptr;
17
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, ObjectKind, "getConstants", "()Ljava/util/Map;", args, count, cachedMethodId);
18
+ }
19
+
20
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_checkForUnsentReports(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
21
+ static jmethodID cachedMethodId = nullptr;
22
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "checkForUnsentReports", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
23
+ }
24
+
25
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_crash(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
26
+ static jmethodID cachedMethodId = nullptr;
27
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "crash", "()V", args, count, cachedMethodId);
28
+ }
29
+
30
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_crashWithStackPromise(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
31
+ static jmethodID cachedMethodId = nullptr;
32
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "crashWithStackPromise", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
33
+ }
34
+
35
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_deleteUnsentReports(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
36
+ static jmethodID cachedMethodId = nullptr;
37
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "deleteUnsentReports", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
38
+ }
39
+
40
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_didCrashOnPreviousExecution(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
41
+ static jmethodID cachedMethodId = nullptr;
42
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "didCrashOnPreviousExecution", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
43
+ }
44
+
45
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_log(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
46
+ static jmethodID cachedMethodId = nullptr;
47
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "log", "(Ljava/lang/String;)V", args, count, cachedMethodId);
48
+ }
49
+
50
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_logPromise(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
51
+ static jmethodID cachedMethodId = nullptr;
52
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "logPromise", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
53
+ }
54
+
55
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_sendUnsentReports(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
56
+ static jmethodID cachedMethodId = nullptr;
57
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "sendUnsentReports", "()V", args, count, cachedMethodId);
58
+ }
59
+
60
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_setAttribute(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
61
+ static jmethodID cachedMethodId = nullptr;
62
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setAttribute", "(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
63
+ }
64
+
65
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_setAttributes(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
66
+ static jmethodID cachedMethodId = nullptr;
67
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setAttributes", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
68
+ }
69
+
70
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_setUserId(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
71
+ static jmethodID cachedMethodId = nullptr;
72
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setUserId", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
73
+ }
74
+
75
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_recordError(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
76
+ static jmethodID cachedMethodId = nullptr;
77
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "recordError", "(Lcom/facebook/react/bridge/ReadableMap;)V", args, count, cachedMethodId);
78
+ }
79
+
80
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_recordErrorPromise(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
81
+ static jmethodID cachedMethodId = nullptr;
82
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "recordErrorPromise", "(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
83
+ }
84
+
85
+ static facebook::jsi::Value __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_setCrashlyticsCollectionEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
86
+ static jmethodID cachedMethodId = nullptr;
87
+ return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setCrashlyticsCollectionEnabled", "(ZLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
88
+ }
89
+
90
+ NativeRNFBTurboCrashlyticsSpecJSI::NativeRNFBTurboCrashlyticsSpecJSI(const JavaTurboModule::InitParams &params)
91
+ : JavaTurboModule(params) {
92
+ methodMap_["getConstants"] = MethodMetadata {0, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_getConstants};
93
+ methodMap_["checkForUnsentReports"] = MethodMetadata {0, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_checkForUnsentReports};
94
+ methodMap_["crash"] = MethodMetadata {0, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_crash};
95
+ methodMap_["crashWithStackPromise"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_crashWithStackPromise};
96
+ methodMap_["deleteUnsentReports"] = MethodMetadata {0, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_deleteUnsentReports};
97
+ methodMap_["didCrashOnPreviousExecution"] = MethodMetadata {0, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_didCrashOnPreviousExecution};
98
+ methodMap_["log"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_log};
99
+ methodMap_["logPromise"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_logPromise};
100
+ methodMap_["sendUnsentReports"] = MethodMetadata {0, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_sendUnsentReports};
101
+ methodMap_["setAttribute"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_setAttribute};
102
+ methodMap_["setAttributes"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_setAttributes};
103
+ methodMap_["setUserId"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_setUserId};
104
+ methodMap_["recordError"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_recordError};
105
+ methodMap_["recordErrorPromise"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_recordErrorPromise};
106
+ methodMap_["setCrashlyticsCollectionEnabled"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboCrashlyticsSpecJSI_setCrashlyticsCollectionEnabled};
107
+ }
108
+
109
+ std::shared_ptr<TurboModule> RNFBCrashlyticsTurboModules_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params) {
110
+ if (moduleName == "NativeRNFBTurboCrashlytics") {
111
+ return std::make_shared<NativeRNFBTurboCrashlyticsSpecJSI>(params);
112
+ }
113
+ return nullptr;
114
+ }
115
+
116
+ } // namespace facebook::react
@@ -0,0 +1,31 @@
1
+
2
+ /**
3
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
+ *
5
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
6
+ * once the code is regenerated.
7
+ *
8
+ * @generated by codegen project: GenerateModuleJniH.js
9
+ */
10
+
11
+ #pragma once
12
+
13
+ #include <ReactCommon/JavaTurboModule.h>
14
+ #include <ReactCommon/TurboModule.h>
15
+ #include <jsi/jsi.h>
16
+
17
+ namespace facebook::react {
18
+
19
+ /**
20
+ * JNI C++ class for module 'NativeRNFBTurboCrashlytics'
21
+ */
22
+ class JSI_EXPORT NativeRNFBTurboCrashlyticsSpecJSI : public JavaTurboModule {
23
+ public:
24
+ NativeRNFBTurboCrashlyticsSpecJSI(const JavaTurboModule::InitParams &params);
25
+ };
26
+
27
+
28
+ JSI_EXPORT
29
+ std::shared_ptr<TurboModule> RNFBCrashlyticsTurboModules_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params);
30
+
31
+ } // namespace facebook::react