@react-native-firebase/crashlytics 25.1.0 → 26.1.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 (70) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/RNFBCrashlytics.podspec +22 -8
  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/RNFBCrashlyticsInitProvider.h +15 -6
  31. package/ios/RNFBCrashlytics/RNFBCrashlyticsInitProvider.m +24 -1
  32. package/ios/RNFBCrashlytics/RNFBCrashlyticsModule.h +2 -3
  33. package/ios/RNFBCrashlytics/{RNFBCrashlyticsModule.m → RNFBCrashlyticsModule.mm} +72 -72
  34. package/ios/RNFBCrashlytics/RNFBCrashlyticsNativeHelper.m +8 -0
  35. package/ios/RNFBCrashlytics.xcodeproj/project.pbxproj +8 -8
  36. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  37. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  38. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  39. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  40. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  41. package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
  42. package/ios/generated/RNFBCrashlyticsTurboModules/RNFBCrashlyticsTurboModules-generated.mm +148 -0
  43. package/ios/generated/RNFBCrashlyticsTurboModules/RNFBCrashlyticsTurboModules.h +214 -0
  44. package/ios/generated/RNFBCrashlyticsTurboModulesJSI-generated.cpp +124 -0
  45. package/ios/generated/RNFBCrashlyticsTurboModulesJSI.h +320 -0
  46. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  47. package/ios_config.sh +19 -2
  48. package/lib/handlers.ts +7 -26
  49. package/lib/index.ts +209 -7
  50. package/lib/types/crashlytics.ts +0 -30
  51. package/lib/types/internal.ts +59 -0
  52. package/lib/version.ts +1 -1
  53. package/package.json +30 -5
  54. package/plugin/build/app.plugin.d.ts +2 -0
  55. package/plugin/build/app.plugin.js +6 -0
  56. package/plugin/src/app.plugin.ts +3 -0
  57. package/plugin/tsconfig.tsbuildinfo +1 -1
  58. package/react-native.config.js +3 -28
  59. package/specs/NativeRNFBTurboCrashlytics.ts +41 -0
  60. package/typedoc.json +2 -3
  61. package/dist/module/modular.js +0 -241
  62. package/dist/module/modular.js.map +0 -1
  63. package/dist/module/namespaced.js +0 -135
  64. package/dist/module/namespaced.js.map +0 -1
  65. package/dist/typescript/lib/modular.d.ts +0 -193
  66. package/dist/typescript/lib/modular.d.ts.map +0 -1
  67. package/dist/typescript/lib/namespaced.d.ts +0 -12
  68. package/dist/typescript/lib/namespaced.d.ts.map +0 -1
  69. package/lib/modular.ts +0 -249
  70. package/lib/namespaced.ts +0 -206
@@ -1 +1 @@
1
- {"version":3,"names":["default"],"sourceRoot":"../../lib","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAGA;AACA,cAAc,cAAW;;AAEzB;AACA,cAAc,iBAAc;AAC5B,SAASA,OAAO,QAAQ,iBAAc","ignoreList":[]}
1
+ {"version":3,"names":["isBoolean","isError","isObject","isString","FirebaseModule","getOrCreateModularInstance","StackTrace","createNativeErrorObj","setGlobalErrorHandler","setOnUnhandledPromiseRejectionHandler","version","nativeModuleName","FirebaseCrashlyticsModule","constructor","app","config","customUrlOrRegion","native","_isCrashlyticsCollectionEnabled","isCrashlyticsCollectionEnabled","checkForUnsentReports","Error","crash","deleteUnsentReports","didCrashOnPreviousExecution","log","message","setAttribute","name","value","setAttributes","object","setUserId","userId","recordError","error","jsErrorName","fromError","offline","then","stackFrames","recordErrorPromise","catch","console","warn","sendUnsentReports","setCrashlyticsCollectionEnabled","enabled","namespace","nativeEvents","hasMultiAppSupport","hasCustomUrlOrRegionSupport","turboModule","SDK_VERSION","getCrashlytics","crashlytics","attributes"],"sourceRoot":"../../lib","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,43 +1,4 @@
1
1
  "use strict";
2
2
 
3
- /*
4
- * Copyright (c) 2016-present Invertase Limited & Contributors
5
- *
6
- * Licensed under the Apache License, Version 2.0 (the "License");
7
- * you may not use this library except in compliance with the License.
8
- * You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing, software
13
- * distributed under the License is distributed on an "AS IS" BASIS,
14
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- * See the License for the specific language governing permissions and
16
- * limitations under the License.
17
- *
18
- */
19
- // ============ Module Interface ============
20
- /**
21
- * Crashlytics module instance - returned from firebase.crashlytics() or firebase.app().crashlytics()
22
- */
23
- // ============ Statics Interface ============
24
- /**
25
- * Static properties available on firebase.crashlytics
26
- */
27
- /**
28
- * FirebaseApp type with crashlytics() method.
29
- * @deprecated Import FirebaseApp from '@react-native-firebase/app' instead.
30
- * The crashlytics() method is added via module augmentation.
31
- */
32
- // ============ Module Augmentation ============
33
- /* eslint-disable @typescript-eslint/no-namespace */
34
- /* eslint-enable @typescript-eslint/no-namespace */
35
- // ============ Backwards Compatibility Namespace - to be removed with namespaced exports ============
36
- /**
37
- * @deprecated Use the exported types directly instead.
38
- * FirebaseCrashlyticsTypes namespace is kept for backwards compatibility.
39
- */
40
- /* eslint-disable @typescript-eslint/no-namespace */
41
- export let FirebaseCrashlyticsTypes;
42
- /* eslint-enable @typescript-eslint/no-namespace */
3
+ export {};
43
4
  //# sourceMappingURL=crashlytics.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FirebaseCrashlyticsTypes"],"sourceRoot":"../../../lib","sources":["types/crashlytics.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AAEA;AACA;AACA;AA4FA;AAEA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AAGA;AAEA;AAWA;AACA;AAGA;AACA;AACA;AACA;AACA;AAAA,WACiBA,wBAAwB;AAKzC","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../lib","sources":["types/crashlytics.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../lib","sources":["types/internal.ts"],"mappings":"","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
3
  // Generated by genversion.
4
- export const version = '25.1.0';
4
+ export const version = '26.1.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../lib/handlers.ts"],"names":[],"mappings":"AAqBA,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,eAAO,MAAM,UAAU,+CAA+C,CAAC;AAEvE,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,UAAU,YAAY;IACpB,8BAA8B,EAAE,OAAO,CAAC;IACxC,iCAAiC,EAAE,OAAO,CAAC;IAC3C,sDAAsD,EAAE,OAAO,CAAC;IAChE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,UAAU,CAAC,UAAU,EAAE,EACpC,oBAAoB,EAAE,OAAO,EAC7B,WAAW,CAAC,EAAE,MAAM,GACnB,cAAc,CA2ChB;AAED,eAAO,MAAM,qBAAqB,0CAGF,OAAO,UAAU,OAAO,kBA0EtD,CAAC;AAEH,eAAO,MAAM,qCAAqC,wCAChB,MAAM,SAAS,KAAK,kBAiBpD,CAAC"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../lib/handlers.ts"],"names":[],"mappings":"AAqBA,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,eAAO,MAAM,UAAU,+CAA+C,CAAC;AAEvE,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,UAAU,YAAY;IACpB,8BAA8B,EAAE,OAAO,CAAC;IACxC,iCAAiC,EAAE,OAAO,CAAC;IAC3C,sDAAsD,EAAE,OAAO,CAAC;IAChE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,UAAU,CAAC,UAAU,EAAE,EACpC,oBAAoB,EAAE,OAAO,EAC7B,WAAW,CAAC,EAAE,MAAM,GACnB,cAAc,CA2ChB;AAED,eAAO,MAAM,qBAAqB,0CAGF,OAAO,UAAU,OAAO,kBAuDtD,CAAC;AAEH,eAAO,MAAM,qCAAqC,wCAChB,MAAM,SAAS,KAAK,kBAiBpD,CAAC"}
@@ -1,5 +1,20 @@
1
- export type { Crashlytics, FirebaseCrashlyticsTypes } from './types/crashlytics';
2
- export * from './modular';
3
- export * from './namespaced';
4
- export { default } from './namespaced';
1
+ import type { FirebaseApp } from '@react-native-firebase/app';
2
+ import './types/internal';
3
+ import type { Crashlytics } from './types/crashlytics';
4
+ export declare const SDK_VERSION = "26.1.0";
5
+ export declare function getCrashlytics(app?: FirebaseApp): Crashlytics;
6
+ export declare function checkForUnsentReports(crashlytics: Crashlytics): Promise<boolean>;
7
+ export declare function deleteUnsentReports(crashlytics: Crashlytics): Promise<void>;
8
+ export declare function didCrashOnPreviousExecution(crashlytics: Crashlytics): Promise<boolean>;
9
+ export declare function crash(crashlytics: Crashlytics): void;
10
+ export declare function log(crashlytics: Crashlytics, message: string): void;
11
+ export declare function recordError(crashlytics: Crashlytics, error: Error, jsErrorName?: string): void;
12
+ export declare function sendUnsentReports(crashlytics: Crashlytics): void;
13
+ export declare function setUserId(crashlytics: Crashlytics, userId: string): Promise<null>;
14
+ export declare function setAttribute(crashlytics: Crashlytics, name: string, value: string): Promise<null>;
15
+ export declare function setAttributes(crashlytics: Crashlytics, attributes: {
16
+ [key: string]: string;
17
+ }): Promise<null>;
18
+ export declare function setCrashlyticsCollectionEnabled(crashlytics: Crashlytics, enabled: boolean): Promise<null>;
19
+ export type { Crashlytics } from './types/crashlytics';
5
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AAkBA,YAAY,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAGjF,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAY9D,OAAO,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAiIvD,eAAO,MAAM,WAAW,WAAU,CAAC;AAEnC,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,WAAW,CAM7D;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhF;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAEtF;AAED,wBAAgB,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAEpD;AAED,wBAAgB,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnE;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAE9F;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAEhE;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjF;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjG;AAED,wBAAgB,aAAa,CAC3B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GACpC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
@@ -91,27 +91,6 @@ export interface Statics {
91
91
  /**
92
92
  * FirebaseApp type with crashlytics() method.
93
93
  * @deprecated Import FirebaseApp from '@react-native-firebase/app' instead.
94
- * The crashlytics() method is added via module augmentation.
95
94
  */
96
95
  export type FirebaseApp = ReactNativeFirebase.FirebaseApp;
97
- declare module '@react-native-firebase/app' {
98
- namespace ReactNativeFirebase {
99
- interface Module {
100
- crashlytics: FirebaseModuleWithStaticsAndApp<Crashlytics, Statics>;
101
- }
102
- interface FirebaseApp {
103
- crashlytics(): Crashlytics;
104
- }
105
- }
106
- }
107
- type _Statics = Statics;
108
- /**
109
- * @deprecated Use the exported types directly instead.
110
- * FirebaseCrashlyticsTypes namespace is kept for backwards compatibility.
111
- */
112
- export declare namespace FirebaseCrashlyticsTypes {
113
- type Module = Crashlytics;
114
- type Statics = _Statics;
115
- }
116
- export {};
117
96
  //# sourceMappingURL=crashlytics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crashlytics.d.ts","sourceRoot":"","sources":["../../../../lib/types/crashlytics.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,mBAAmB,CAAC,cAAc;IACrE,qDAAqD;IACrD,GAAG,EAAE,mBAAmB,CAAC,WAAW,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC;IAEjD;;;;;OAKG;IACH,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;OAEG;IACH,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtD;;;OAGG;IACH,iBAAiB,IAAI,IAAI,CAAC;IAE1B;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;;;OAMG;IACH,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAID;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC;AAK1D,OAAO,QAAQ,4BAA4B,CAAC;IAC1C,UAAU,mBAAmB,CAAC;QAC5B,UAAU,MAAM;YACd,WAAW,EAAE,+BAA+B,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;SACpE;QACD,UAAU,WAAW;YACnB,WAAW,IAAI,WAAW,CAAC;SAC5B;KACF;CACF;AAGD,KAAK,QAAQ,GAAG,OAAO,CAAC;AAExB;;;GAGG;AAEH,yBAAiB,wBAAwB,CAAC;IAExC,KAAY,MAAM,GAAG,WAAW,CAAC;IACjC,KAAY,OAAO,GAAG,QAAQ,CAAC;CAChC"}
1
+ {"version":3,"file":"crashlytics.d.ts","sourceRoot":"","sources":["../../../../lib/types/crashlytics.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,mBAAmB,CAAC,cAAc;IACrE,qDAAqD;IACrD,GAAG,EAAE,mBAAmB,CAAC,WAAW,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC;IAEjD;;;;;OAKG;IACH,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;OAEG;IACH,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtD;;;OAGG;IACH,iBAAiB,IAAI,IAAI,CAAC;IAE1B;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;;;OAMG;IACH,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAID;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { Crashlytics } from './crashlytics';
2
+ export interface NativeRNFBTurboCrashlytics {
3
+ isCrashlyticsCollectionEnabled: boolean;
4
+ isErrorGenerationOnJSCrashEnabled: boolean;
5
+ isCrashlyticsJavascriptExceptionHandlerChainingEnabled: boolean;
6
+ checkForUnsentReports(): Promise<boolean>;
7
+ crash(): void;
8
+ deleteUnsentReports(): Promise<void>;
9
+ didCrashOnPreviousExecution(): Promise<boolean>;
10
+ log(message: string): void;
11
+ setAttribute(name: string, value: string): Promise<null>;
12
+ setAttributes(object: {
13
+ [key: string]: string;
14
+ }): Promise<null>;
15
+ setUserId(userId: string): Promise<null>;
16
+ recordError(errorObj: unknown): void;
17
+ sendUnsentReports(): void;
18
+ setCrashlyticsCollectionEnabled(enabled: boolean): Promise<null>;
19
+ logPromise(message: string): Promise<void>;
20
+ recordErrorPromise(errorObj: unknown): Promise<void>;
21
+ crashWithStackPromise(errorObj: unknown): Promise<void>;
22
+ }
23
+ declare module '@react-native-firebase/app/dist/module/internal/NativeModules' {
24
+ interface ReactNativeFirebaseNativeModules {
25
+ NativeRNFBTurboCrashlytics: NativeRNFBTurboCrashlytics;
26
+ }
27
+ }
28
+ export interface CrashlyticsInternal extends Crashlytics {
29
+ checkForUnsentReports(): Promise<boolean>;
30
+ crash(): void;
31
+ deleteUnsentReports(): Promise<void>;
32
+ didCrashOnPreviousExecution(): Promise<boolean>;
33
+ log(message: string): void;
34
+ recordError(error: Error, jsErrorName?: string): void;
35
+ sendUnsentReports(): void;
36
+ setUserId(userId: string): Promise<null>;
37
+ setAttribute(name: string, value: string): Promise<null>;
38
+ setAttributes(attributes: {
39
+ [key: string]: string;
40
+ }): Promise<null>;
41
+ setCrashlyticsCollectionEnabled(enabled: boolean): Promise<null>;
42
+ readonly native: NativeRNFBTurboCrashlytics;
43
+ }
44
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../lib/types/internal.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,8BAA8B,EAAE,OAAO,CAAC;IACxC,iCAAiC,EAAE,OAAO,CAAC;IAC3C,sDAAsD,EAAE,OAAO,CAAC;IAChE,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK,IAAI,IAAI,CAAC;IACd,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,aAAa,CAAC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,OAAO,QAAQ,+DAA+D,CAAC;IAC7E,UAAU,gCAAgC;QACxC,0BAA0B,EAAE,0BAA0B,CAAC;KACxD;CACF;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK,IAAI,IAAI,CAAC;IACd,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,iBAAiB,IAAI,IAAI,CAAC;IAC1B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,aAAa,CAAC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,+BAA+B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;CAC7C"}
@@ -1,2 +1,2 @@
1
- export declare const version = "25.1.0";
1
+ export declare const version = "26.1.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -15,10 +15,23 @@
15
15
  *
16
16
  */
17
17
 
18
- #import <FirebaseCoreExtension/FIRLibrary.h>
19
18
  #import <Foundation/Foundation.h>
20
19
 
21
- @interface RNFBCrashlyticsInitProvider : NSObject <FIRLibrary>
20
+ // This header is intentionally Firebase-free. It's imported by
21
+ // RNFBCrashlyticsModule.mm (Objective-C++), which only ever calls the three
22
+ // plain BOOL class methods below. The `<FIRLibrary>` conformance and
23
+ // `+componentsToRegister` (which needs `FIRComponent`/`FIRLibrary` from
24
+ // FirebaseCoreExtension) are declared privately in RNFBCrashlyticsInitProvider.m
25
+ // instead -- they're only invoked by Firebase's own component/DI runtime via
26
+ // reflection, never called directly by RNFB code, so they don't need to be
27
+ // visible here. This avoids `FirebaseCoreExtension/FIRLibrary.h` (whose
28
+ // `__has_include` check is unreliable under this repo's hybrid SPM+CocoaPods
29
+ // setup, since FirebaseCoreExtension is only a transitive SPM dependency and
30
+ // can't be declared as its own SPM product -- see
31
+ // okf-bundle/ios-spm-native-imports.md) ever being parsed from a `.mm` file,
32
+ // which is what previously failed with "use of '@import' when C++ modules are
33
+ // disabled".
34
+ @interface RNFBCrashlyticsInitProvider : NSObject
22
35
 
23
36
  + (BOOL)isCrashlyticsCollectionEnabled;
24
37
 
@@ -26,8 +39,4 @@
26
39
 
27
40
  + (BOOL)isCrashlyticsJavascriptExceptionHandlerChainingEnabled;
28
41
 
29
- /// Returns one or more FIRComponents that will be registered in
30
- /// FIRApp and participate in dependency resolution and injection.
31
- + (NSArray<FIRComponent *> *)componentsToRegister;
32
-
33
42
  @end
@@ -16,13 +16,27 @@
16
16
  */
17
17
 
18
18
  #import "RNFBCrashlyticsInitProvider.h"
19
+ #if __has_include(<Firebase/Firebase.h>)
19
20
  #import <Firebase/Firebase.h>
21
+ #elif __has_include(<FirebaseCore/FirebaseCore.h>)
22
+ #import <FirebaseCore/FirebaseCore.h>
23
+ #else
24
+ @import FirebaseCore;
25
+ #endif
26
+ #if __has_include(<FirebaseCoreExtension/FIRAppInternal.h>)
20
27
  #import <FirebaseCoreExtension/FIRAppInternal.h>
21
28
  #import <FirebaseCoreExtension/FIRComponent.h>
22
29
  #import <FirebaseCoreExtension/FIRComponentContainer.h>
23
30
  #import <FirebaseCoreExtension/FIRComponentType.h>
24
31
  #import <FirebaseCoreExtension/FIRLibrary.h>
32
+ #else
33
+ @import FirebaseCoreExtension;
34
+ #endif
35
+ #if __has_include(<FirebaseCrashlytics/FIRCrashlytics.h>)
25
36
  #import <FirebaseCrashlytics/FIRCrashlytics.h>
37
+ #else
38
+ @import FirebaseCrashlytics;
39
+ #endif
26
40
  #import "RNFBJSON.h"
27
41
  #import "RNFBMeta.h"
28
42
  #import "RNFBPreferences.h"
@@ -46,8 +60,17 @@ NSString *const KEY_CRASHLYTICS_JAVASCRIPT_EXCEPTION_HANDLER_CHAINING_ENABLED =
46
60
  @protocol FIRCrashlyticsInstanceProvider <NSObject>
47
61
  @end
48
62
 
49
- /// Privately conform to the protocol for component registration.
63
+ /// Privately conform to the protocol for component registration. `<FIRLibrary>` and
64
+ /// `+componentsToRegister` live here rather than in RNFBCrashlyticsInitProvider.h because
65
+ /// they're only invoked by Firebase's own component/DI runtime via reflection, never by RNFB
66
+ /// code directly -- keeping them out of the public header keeps it Firebase-free (see header
67
+ /// comment and okf-bundle/ios-spm-native-imports.md).
50
68
  @interface RNFBCrashlyticsInitProvider () <RNFBCrashlyticsInitProviderProtocol, FIRLibrary>
69
+
70
+ /// Returns one or more FIRComponents that will be registered in
71
+ /// FIRApp and participate in dependency resolution and injection.
72
+ + (NSArray<FIRComponent *> *)componentsToRegister;
73
+
51
74
  @end
52
75
 
53
76
  @implementation RNFBCrashlyticsInitProvider
@@ -16,9 +16,8 @@
16
16
  */
17
17
 
18
18
  #import <Foundation/Foundation.h>
19
+ #import "RNFBCrashlyticsTurboModules.h"
19
20
 
20
- #import <React/RCTBridgeModule.h>
21
-
22
- @interface RNFBCrashlyticsModule : NSObject <RCTBridgeModule>
21
+ @interface RNFBCrashlyticsModule : NSObject <NativeRNFBTurboCrashlyticsSpec>
23
22
 
24
23
  @end
@@ -22,19 +22,34 @@
22
22
  #import <React/RCTLog.h>
23
23
  #import <React/RCTUtils.h>
24
24
 
25
+ #if __has_include(<Firebase/Firebase.h>)
25
26
  #import <Firebase/Firebase.h>
27
+ #elif __has_include(<FirebaseCrashlytics/FirebaseCrashlytics.h>)
28
+ #import <FirebaseCore/FirebaseCore.h>
29
+ #import <FirebaseCrashlytics/FirebaseCrashlytics.h>
30
+ #else
31
+ @import FirebaseCore;
32
+ @import FirebaseCrashlytics;
33
+ #endif
26
34
  #import "RNFBApp/RNFBSharedUtils.h"
27
35
  #import "RNFBCrashlyticsInitProvider.h"
28
36
  #import "RNFBCrashlyticsModule.h"
29
37
  #import "RNFBPreferences.h"
30
38
 
31
39
  @implementation RNFBCrashlyticsModule
32
- #pragma mark -
33
- #pragma mark Module Setup
34
40
 
35
- RCT_EXPORT_MODULE();
41
+ RCT_EXPORT_MODULE(NativeRNFBTurboCrashlytics)
36
42
 
37
- - (NSDictionary *)constantsToExport {
43
+ + (BOOL)requiresMainQueueSetup {
44
+ return NO;
45
+ }
46
+
47
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
48
+ (const facebook::react::ObjCTurboModule::InitParams &)params {
49
+ return std::make_shared<facebook::react::NativeRNFBTurboCrashlyticsSpecJSI>(params);
50
+ }
51
+
52
+ - (NSDictionary *)crashlyticsConstantsDictionary {
38
53
  NSMutableDictionary *constants = [NSMutableDictionary new];
39
54
  constants[@"isCrashlyticsCollectionEnabled"] =
40
55
  @([RCTConvert BOOL:@([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled])]);
@@ -50,31 +65,29 @@ RCT_EXPORT_MODULE();
50
65
  return constants;
51
66
  }
52
67
 
53
- + (BOOL)requiresMainQueueSetup {
54
- return NO;
68
+ - (facebook::react::ModuleConstants<JS::NativeRNFBTurboCrashlytics::Constants::Builder>)
69
+ constantsToExport {
70
+ return [_RCTTypedModuleConstants newWithUnsafeDictionary:[self crashlyticsConstantsDictionary]];
55
71
  }
56
72
 
57
- #pragma mark -
58
- #pragma mark Firebase Crashlytics Methods
73
+ - (facebook::react::ModuleConstants<JS::NativeRNFBTurboCrashlytics::Constants::Builder>)
74
+ getConstants {
75
+ return [self constantsToExport];
76
+ }
59
77
 
60
- RCT_EXPORT_METHOD(checkForUnsentReports
61
- : (RCTPromiseResolveBlock)resolve rejecter
62
- : (RCTPromiseRejectBlock)reject) {
78
+ - (void)checkForUnsentReports:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
63
79
  [[FIRCrashlytics crashlytics] checkForUnsentReportsWithCompletion:^(BOOL unsentReports) {
64
80
  resolve([NSNumber numberWithBool:unsentReports]);
65
81
  }];
66
82
  }
67
83
 
68
- RCT_EXPORT_METHOD(crash) {
84
+ - (void)crash {
69
85
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
70
86
  if ([self isDebuggerAttached]) {
71
87
  RCTLog(
72
88
  @"Crashlytics - WARNING: Debugger detected. Crashlytics will not receive crash reports.");
73
89
  }
74
90
 
75
- // https://firebase.google.com/docs/crashlytics/test-implementation?platform=ios recommends
76
- // using "@[][1]" to crash, but that gets caught by react-native and shown as a red box for
77
- // debug builds. Raise SIGSEGV here to generate a hard crash.
78
91
  int *p = 0;
79
92
  *p = 0;
80
93
  } else {
@@ -82,10 +95,9 @@ RCT_EXPORT_METHOD(crash) {
82
95
  }
83
96
  }
84
97
 
85
- RCT_EXPORT_METHOD(crashWithStackPromise
86
- : (NSDictionary *)jsErrorDict resolver
87
- : (RCTPromiseResolveBlock)resolve rejecter
88
- : (RCTPromiseRejectBlock)reject) {
98
+ - (void)crashWithStackPromise:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict
99
+ resolve:(RCTPromiseResolveBlock)resolve
100
+ reject:(RCTPromiseRejectBlock)reject {
89
101
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
90
102
  if ([self isDebuggerAttached]) {
91
103
  RCTLog(
@@ -93,9 +105,6 @@ RCT_EXPORT_METHOD(crashWithStackPromise
93
105
  }
94
106
  [self recordJavaScriptError:jsErrorDict];
95
107
 
96
- // This is strongly discouraged by Apple as "it will appear as though your app has crashed".
97
- // Coincidentally, we are *in* a crash handler and have logged a crash report.
98
- // It seems like the one place calling exit cleanly is valid.
99
108
  ELog(@"Crashlytics - Crash logged. Terminating app.");
100
109
  exit(0);
101
110
  } else {
@@ -104,42 +113,45 @@ RCT_EXPORT_METHOD(crashWithStackPromise
104
113
  resolve([NSNull null]);
105
114
  }
106
115
 
107
- RCT_EXPORT_METHOD(deleteUnsentReports) { [[FIRCrashlytics crashlytics] deleteUnsentReports]; }
116
+ - (void)deleteUnsentReports:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
117
+ [[FIRCrashlytics crashlytics] deleteUnsentReports];
118
+ resolve([NSNull null]);
119
+ }
108
120
 
109
- RCT_EXPORT_METHOD(didCrashOnPreviousExecution
110
- : (RCTPromiseResolveBlock)resolve rejecter
111
- : (RCTPromiseRejectBlock)reject) {
121
+ - (void)didCrashOnPreviousExecution:(RCTPromiseResolveBlock)resolve
122
+ reject:(RCTPromiseRejectBlock)reject {
112
123
  BOOL didCrash = [[FIRCrashlytics crashlytics] didCrashDuringPreviousExecution];
113
124
  resolve([NSNumber numberWithBool:didCrash]);
114
125
  }
115
126
 
116
- RCT_EXPORT_METHOD(log : (NSString *)message) { [[FIRCrashlytics crashlytics] log:message]; }
127
+ - (void)log:(NSString *)message {
128
+ [[FIRCrashlytics crashlytics] log:message];
129
+ }
117
130
 
118
- RCT_EXPORT_METHOD(logPromise
119
- : (NSString *)message resolver
120
- : (RCTPromiseResolveBlock)resolve rejecter
121
- : (RCTPromiseRejectBlock)reject) {
131
+ - (void)logPromise:(NSString *)message
132
+ resolve:(RCTPromiseResolveBlock)resolve
133
+ reject:(RCTPromiseRejectBlock)reject {
122
134
  [[FIRCrashlytics crashlytics] log:message];
123
135
  resolve([NSNull null]);
124
136
  }
125
137
 
126
- RCT_EXPORT_METHOD(sendUnsentReports) { [[FIRCrashlytics crashlytics] sendUnsentReports]; }
138
+ - (void)sendUnsentReports {
139
+ [[FIRCrashlytics crashlytics] sendUnsentReports];
140
+ }
127
141
 
128
- RCT_EXPORT_METHOD(setAttribute
129
- : (NSString *)key value
130
- : (NSString *)value resolver
131
- : (RCTPromiseResolveBlock)resolve rejecter
132
- : (RCTPromiseRejectBlock)reject) {
142
+ - (void)setAttribute:(NSString *)key
143
+ value:(NSString *)value
144
+ resolve:(RCTPromiseResolveBlock)resolve
145
+ reject:(RCTPromiseRejectBlock)reject {
133
146
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
134
147
  [[FIRCrashlytics crashlytics] setCustomValue:value forKey:key];
135
148
  }
136
149
  resolve([NSNull null]);
137
150
  }
138
151
 
139
- RCT_EXPORT_METHOD(setAttributes
140
- : (NSDictionary *)attributes resolver
141
- : (RCTPromiseResolveBlock)resolve rejecter
142
- : (RCTPromiseRejectBlock)reject) {
152
+ - (void)setAttributes:(NSDictionary *)attributes
153
+ resolve:(RCTPromiseResolveBlock)resolve
154
+ reject:(RCTPromiseRejectBlock)reject {
143
155
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
144
156
  NSArray *keys = [attributes allKeys];
145
157
 
@@ -150,52 +162,48 @@ RCT_EXPORT_METHOD(setAttributes
150
162
  resolve([NSNull null]);
151
163
  }
152
164
 
153
- RCT_EXPORT_METHOD(setUserId
154
- : (NSString *)userId resolver
155
- : (RCTPromiseResolveBlock)resolve rejecter
156
- : (RCTPromiseRejectBlock)reject) {
165
+ - (void)setUserId:(NSString *)userId
166
+ resolve:(RCTPromiseResolveBlock)resolve
167
+ reject:(RCTPromiseRejectBlock)reject {
157
168
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
158
169
  [[FIRCrashlytics crashlytics] setUserID:userId];
159
170
  }
160
171
  resolve([NSNull null]);
161
172
  }
162
173
 
163
- RCT_EXPORT_METHOD(recordError : (NSDictionary *)jsErrorDict) {
174
+ - (void)recordError:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict {
164
175
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
165
176
  [self recordJavaScriptError:jsErrorDict];
166
177
  }
167
178
  }
168
179
 
169
- RCT_EXPORT_METHOD(recordErrorPromise
170
- : (NSDictionary *)jsErrorDict resolver
171
- : (RCTPromiseResolveBlock)resolve rejecter
172
- : (RCTPromiseRejectBlock)reject) {
180
+ - (void)recordErrorPromise:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict
181
+ resolve:(RCTPromiseResolveBlock)resolve
182
+ reject:(RCTPromiseRejectBlock)reject {
173
183
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
174
184
  [self recordJavaScriptError:jsErrorDict];
175
185
  }
176
186
  resolve([NSNull null]);
177
187
  }
178
188
 
179
- RCT_EXPORT_METHOD(setCrashlyticsCollectionEnabled
180
- : (BOOL)enabled resolver
181
- : (RCTPromiseResolveBlock)resolve rejecter
182
- : (RCTPromiseRejectBlock)reject) {
189
+ - (void)setCrashlyticsCollectionEnabled:(BOOL)enabled
190
+ resolve:(RCTPromiseResolveBlock)resolve
191
+ reject:(RCTPromiseRejectBlock)reject {
183
192
  [[RNFBPreferences shared] setBooleanValue:@"crashlytics_auto_collection_enabled"
184
193
  boolValue:enabled];
185
194
  resolve([NSNull null]);
186
195
  }
187
196
 
188
- - (void)recordJavaScriptError:(NSDictionary *)jsErrorDict {
189
- NSString *message = jsErrorDict[@"message"];
190
- NSDictionary *stackFrames = jsErrorDict[@"frames"];
197
+ - (void)recordJavaScriptError:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict {
198
+ NSString *message = jsErrorDict.message();
199
+ auto stackFrames = jsErrorDict.frames();
191
200
  NSMutableArray *stackTrace = [[NSMutableArray alloc] init];
192
- BOOL isUnhandledPromiseRejection = [jsErrorDict[@"isUnhandledRejection"] boolValue];
201
+ BOOL isUnhandledPromiseRejection = jsErrorDict.isUnhandledRejection();
193
202
 
194
- for (NSDictionary *stackFrame in stackFrames) {
195
- FIRStackFrame *customFrame =
196
- [FIRStackFrame stackFrameWithSymbol:stackFrame[@"fn"]
197
- file:stackFrame[@"file"]
198
- line:(uint32_t)[stackFrame[@"line"] intValue]];
203
+ for (const auto &stackFrame : stackFrames) {
204
+ FIRStackFrame *customFrame = [FIRStackFrame stackFrameWithSymbol:stackFrame.fn()
205
+ file:stackFrame.file()
206
+ line:(uint32_t)stackFrame.line()];
199
207
  [stackTrace addObject:customFrame];
200
208
  }
201
209
 
@@ -211,14 +219,6 @@ RCT_EXPORT_METHOD(setCrashlyticsCollectionEnabled
211
219
  [[FIRCrashlytics crashlytics] recordExceptionModel:exceptionModel];
212
220
  }
213
221
 
214
- /**
215
- * Check if the debugger is attached
216
- *
217
- * Taken from
218
- * https://github.com/plausiblelabs/plcrashreporter/blob/2dd862ce049e6f43feb355308dfc710f3af54c4d/Source/Crash%20Demo/main.m#L96
219
- *
220
- * @return `YES` if the debugger is attached to the current process, `NO` otherwise
221
- */
222
222
  - (BOOL)isDebuggerAttached {
223
223
  static BOOL debuggerIsAttached = NO;
224
224
 
@@ -231,7 +231,7 @@ RCT_EXPORT_METHOD(setCrashlyticsCollectionEnabled
231
231
  name[0] = CTL_KERN;
232
232
  name[1] = KERN_PROC;
233
233
  name[2] = KERN_PROC_PID;
234
- name[3] = getpid(); // from unistd.h, included by Foundation
234
+ name[3] = getpid();
235
235
 
236
236
  if (sysctl(name, 4, &info, &info_size, NULL, 0) == -1) {
237
237
  ELog(@"Crashlytics ERROR: Checking for a running debugger via sysctl() failed: %s",
@@ -17,7 +17,15 @@
17
17
  */
18
18
 
19
19
  #import "RNFBCrashlyticsNativeHelper.h"
20
+ #if __has_include(<Firebase/Firebase.h>)
20
21
  #import <Firebase/Firebase.h>
22
+ #elif __has_include(<FirebaseCrashlytics/FirebaseCrashlytics.h>)
23
+ #import <FirebaseCore/FirebaseCore.h>
24
+ #import <FirebaseCrashlytics/FirebaseCrashlytics.h>
25
+ #else
26
+ @import FirebaseCore;
27
+ @import FirebaseCrashlytics;
28
+ #endif
21
29
 
22
30
  @implementation RNFBCrashlyticsNativeHelper
23
31