@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
@@ -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.0.1';
4
+ export const version = '26.0.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.0.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.0.1";
1
+ export declare const version = "26.0.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -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
@@ -29,12 +29,19 @@
29
29
  #import "RNFBPreferences.h"
30
30
 
31
31
  @implementation RNFBCrashlyticsModule
32
- #pragma mark -
33
- #pragma mark Module Setup
34
32
 
35
- RCT_EXPORT_MODULE();
33
+ RCT_EXPORT_MODULE(NativeRNFBTurboCrashlytics)
36
34
 
37
- - (NSDictionary *)constantsToExport {
35
+ + (BOOL)requiresMainQueueSetup {
36
+ return NO;
37
+ }
38
+
39
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
40
+ (const facebook::react::ObjCTurboModule::InitParams &)params {
41
+ return std::make_shared<facebook::react::NativeRNFBTurboCrashlyticsSpecJSI>(params);
42
+ }
43
+
44
+ - (NSDictionary *)crashlyticsConstantsDictionary {
38
45
  NSMutableDictionary *constants = [NSMutableDictionary new];
39
46
  constants[@"isCrashlyticsCollectionEnabled"] =
40
47
  @([RCTConvert BOOL:@([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled])]);
@@ -50,31 +57,29 @@ RCT_EXPORT_MODULE();
50
57
  return constants;
51
58
  }
52
59
 
53
- + (BOOL)requiresMainQueueSetup {
54
- return NO;
60
+ - (facebook::react::ModuleConstants<JS::NativeRNFBTurboCrashlytics::Constants::Builder>)
61
+ constantsToExport {
62
+ return [_RCTTypedModuleConstants newWithUnsafeDictionary:[self crashlyticsConstantsDictionary]];
55
63
  }
56
64
 
57
- #pragma mark -
58
- #pragma mark Firebase Crashlytics Methods
65
+ - (facebook::react::ModuleConstants<JS::NativeRNFBTurboCrashlytics::Constants::Builder>)
66
+ getConstants {
67
+ return [self constantsToExport];
68
+ }
59
69
 
60
- RCT_EXPORT_METHOD(checkForUnsentReports
61
- : (RCTPromiseResolveBlock)resolve rejecter
62
- : (RCTPromiseRejectBlock)reject) {
70
+ - (void)checkForUnsentReports:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
63
71
  [[FIRCrashlytics crashlytics] checkForUnsentReportsWithCompletion:^(BOOL unsentReports) {
64
72
  resolve([NSNumber numberWithBool:unsentReports]);
65
73
  }];
66
74
  }
67
75
 
68
- RCT_EXPORT_METHOD(crash) {
76
+ - (void)crash {
69
77
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
70
78
  if ([self isDebuggerAttached]) {
71
79
  RCTLog(
72
80
  @"Crashlytics - WARNING: Debugger detected. Crashlytics will not receive crash reports.");
73
81
  }
74
82
 
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
83
  int *p = 0;
79
84
  *p = 0;
80
85
  } else {
@@ -82,10 +87,9 @@ RCT_EXPORT_METHOD(crash) {
82
87
  }
83
88
  }
84
89
 
85
- RCT_EXPORT_METHOD(crashWithStackPromise
86
- : (NSDictionary *)jsErrorDict resolver
87
- : (RCTPromiseResolveBlock)resolve rejecter
88
- : (RCTPromiseRejectBlock)reject) {
90
+ - (void)crashWithStackPromise:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict
91
+ resolve:(RCTPromiseResolveBlock)resolve
92
+ reject:(RCTPromiseRejectBlock)reject {
89
93
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
90
94
  if ([self isDebuggerAttached]) {
91
95
  RCTLog(
@@ -93,9 +97,6 @@ RCT_EXPORT_METHOD(crashWithStackPromise
93
97
  }
94
98
  [self recordJavaScriptError:jsErrorDict];
95
99
 
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
100
  ELog(@"Crashlytics - Crash logged. Terminating app.");
100
101
  exit(0);
101
102
  } else {
@@ -104,42 +105,45 @@ RCT_EXPORT_METHOD(crashWithStackPromise
104
105
  resolve([NSNull null]);
105
106
  }
106
107
 
107
- RCT_EXPORT_METHOD(deleteUnsentReports) { [[FIRCrashlytics crashlytics] deleteUnsentReports]; }
108
+ - (void)deleteUnsentReports:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
109
+ [[FIRCrashlytics crashlytics] deleteUnsentReports];
110
+ resolve([NSNull null]);
111
+ }
108
112
 
109
- RCT_EXPORT_METHOD(didCrashOnPreviousExecution
110
- : (RCTPromiseResolveBlock)resolve rejecter
111
- : (RCTPromiseRejectBlock)reject) {
113
+ - (void)didCrashOnPreviousExecution:(RCTPromiseResolveBlock)resolve
114
+ reject:(RCTPromiseRejectBlock)reject {
112
115
  BOOL didCrash = [[FIRCrashlytics crashlytics] didCrashDuringPreviousExecution];
113
116
  resolve([NSNumber numberWithBool:didCrash]);
114
117
  }
115
118
 
116
- RCT_EXPORT_METHOD(log : (NSString *)message) { [[FIRCrashlytics crashlytics] log:message]; }
119
+ - (void)log:(NSString *)message {
120
+ [[FIRCrashlytics crashlytics] log:message];
121
+ }
117
122
 
118
- RCT_EXPORT_METHOD(logPromise
119
- : (NSString *)message resolver
120
- : (RCTPromiseResolveBlock)resolve rejecter
121
- : (RCTPromiseRejectBlock)reject) {
123
+ - (void)logPromise:(NSString *)message
124
+ resolve:(RCTPromiseResolveBlock)resolve
125
+ reject:(RCTPromiseRejectBlock)reject {
122
126
  [[FIRCrashlytics crashlytics] log:message];
123
127
  resolve([NSNull null]);
124
128
  }
125
129
 
126
- RCT_EXPORT_METHOD(sendUnsentReports) { [[FIRCrashlytics crashlytics] sendUnsentReports]; }
130
+ - (void)sendUnsentReports {
131
+ [[FIRCrashlytics crashlytics] sendUnsentReports];
132
+ }
127
133
 
128
- RCT_EXPORT_METHOD(setAttribute
129
- : (NSString *)key value
130
- : (NSString *)value resolver
131
- : (RCTPromiseResolveBlock)resolve rejecter
132
- : (RCTPromiseRejectBlock)reject) {
134
+ - (void)setAttribute:(NSString *)key
135
+ value:(NSString *)value
136
+ resolve:(RCTPromiseResolveBlock)resolve
137
+ reject:(RCTPromiseRejectBlock)reject {
133
138
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
134
139
  [[FIRCrashlytics crashlytics] setCustomValue:value forKey:key];
135
140
  }
136
141
  resolve([NSNull null]);
137
142
  }
138
143
 
139
- RCT_EXPORT_METHOD(setAttributes
140
- : (NSDictionary *)attributes resolver
141
- : (RCTPromiseResolveBlock)resolve rejecter
142
- : (RCTPromiseRejectBlock)reject) {
144
+ - (void)setAttributes:(NSDictionary *)attributes
145
+ resolve:(RCTPromiseResolveBlock)resolve
146
+ reject:(RCTPromiseRejectBlock)reject {
143
147
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
144
148
  NSArray *keys = [attributes allKeys];
145
149
 
@@ -150,52 +154,48 @@ RCT_EXPORT_METHOD(setAttributes
150
154
  resolve([NSNull null]);
151
155
  }
152
156
 
153
- RCT_EXPORT_METHOD(setUserId
154
- : (NSString *)userId resolver
155
- : (RCTPromiseResolveBlock)resolve rejecter
156
- : (RCTPromiseRejectBlock)reject) {
157
+ - (void)setUserId:(NSString *)userId
158
+ resolve:(RCTPromiseResolveBlock)resolve
159
+ reject:(RCTPromiseRejectBlock)reject {
157
160
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
158
161
  [[FIRCrashlytics crashlytics] setUserID:userId];
159
162
  }
160
163
  resolve([NSNull null]);
161
164
  }
162
165
 
163
- RCT_EXPORT_METHOD(recordError : (NSDictionary *)jsErrorDict) {
166
+ - (void)recordError:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict {
164
167
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
165
168
  [self recordJavaScriptError:jsErrorDict];
166
169
  }
167
170
  }
168
171
 
169
- RCT_EXPORT_METHOD(recordErrorPromise
170
- : (NSDictionary *)jsErrorDict resolver
171
- : (RCTPromiseResolveBlock)resolve rejecter
172
- : (RCTPromiseRejectBlock)reject) {
172
+ - (void)recordErrorPromise:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict
173
+ resolve:(RCTPromiseResolveBlock)resolve
174
+ reject:(RCTPromiseRejectBlock)reject {
173
175
  if ([RNFBCrashlyticsInitProvider isCrashlyticsCollectionEnabled]) {
174
176
  [self recordJavaScriptError:jsErrorDict];
175
177
  }
176
178
  resolve([NSNull null]);
177
179
  }
178
180
 
179
- RCT_EXPORT_METHOD(setCrashlyticsCollectionEnabled
180
- : (BOOL)enabled resolver
181
- : (RCTPromiseResolveBlock)resolve rejecter
182
- : (RCTPromiseRejectBlock)reject) {
181
+ - (void)setCrashlyticsCollectionEnabled:(BOOL)enabled
182
+ resolve:(RCTPromiseResolveBlock)resolve
183
+ reject:(RCTPromiseRejectBlock)reject {
183
184
  [[RNFBPreferences shared] setBooleanValue:@"crashlytics_auto_collection_enabled"
184
185
  boolValue:enabled];
185
186
  resolve([NSNull null]);
186
187
  }
187
188
 
188
- - (void)recordJavaScriptError:(NSDictionary *)jsErrorDict {
189
- NSString *message = jsErrorDict[@"message"];
190
- NSDictionary *stackFrames = jsErrorDict[@"frames"];
189
+ - (void)recordJavaScriptError:(JS::NativeRNFBTurboCrashlytics::JavaScriptErrorObject &)jsErrorDict {
190
+ NSString *message = jsErrorDict.message();
191
+ auto stackFrames = jsErrorDict.frames();
191
192
  NSMutableArray *stackTrace = [[NSMutableArray alloc] init];
192
- BOOL isUnhandledPromiseRejection = [jsErrorDict[@"isUnhandledRejection"] boolValue];
193
+ BOOL isUnhandledPromiseRejection = jsErrorDict.isUnhandledRejection();
193
194
 
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]];
195
+ for (const auto &stackFrame : stackFrames) {
196
+ FIRStackFrame *customFrame = [FIRStackFrame stackFrameWithSymbol:stackFrame.fn()
197
+ file:stackFrame.file()
198
+ line:(uint32_t)stackFrame.line()];
199
199
  [stackTrace addObject:customFrame];
200
200
  }
201
201
 
@@ -211,14 +211,6 @@ RCT_EXPORT_METHOD(setCrashlyticsCollectionEnabled
211
211
  [[FIRCrashlytics crashlytics] recordExceptionModel:exceptionModel];
212
212
  }
213
213
 
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
214
  - (BOOL)isDebuggerAttached {
223
215
  static BOOL debuggerIsAttached = NO;
224
216
 
@@ -231,7 +223,7 @@ RCT_EXPORT_METHOD(setCrashlyticsCollectionEnabled
231
223
  name[0] = CTL_KERN;
232
224
  name[1] = KERN_PROC;
233
225
  name[2] = KERN_PROC_PID;
234
- name[3] = getpid(); // from unistd.h, included by Foundation
226
+ name[3] = getpid();
235
227
 
236
228
  if (sysctl(name, 4, &info, &info_size, NULL, 0) == -1) {
237
229
  ELog(@"Crashlytics ERROR: Checking for a running debugger via sysctl() failed: %s",
@@ -7,7 +7,7 @@
7
7
  objects = {
8
8
 
9
9
  /* Begin PBXBuildFile section */
10
- 2744B98621F45429004F8E3F /* RNFBCrashlyticsModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 2744B98521F45429004F8E3F /* RNFBCrashlyticsModule.m */; };
10
+ 2744B98621F45429004F8E3F /* RNFBCrashlyticsModule.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2744B98521F45429004F8E3F /* RNFBCrashlyticsModule.mm */; };
11
11
  2748D82422371C1C00FC8DC8 /* RNFBCrashlyticsInitProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 2748D82322371C1C00FC8DC8 /* RNFBCrashlyticsInitProvider.m */; };
12
12
  C66637BB25FA560700DCAA51 /* RNFBCrashlyticsNativeHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = C66637BA25FA560700DCAA51 /* RNFBCrashlyticsNativeHelper.m */; };
13
13
  /* End PBXBuildFile section */
@@ -27,7 +27,7 @@
27
27
  /* Begin PBXFileReference section */
28
28
  2744B98221F45429004F8E3F /* libRNFBCrashlytics.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNFBCrashlytics.a; sourceTree = BUILT_PRODUCTS_DIR; };
29
29
  2744B98421F45429004F8E3F /* RNFBCrashlyticsModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RNFBCrashlyticsModule.h; path = RNFBCrashlytics/RNFBCrashlyticsModule.h; sourceTree = SOURCE_ROOT; };
30
- 2744B98521F45429004F8E3F /* RNFBCrashlyticsModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RNFBCrashlyticsModule.m; path = RNFBCrashlytics/RNFBCrashlyticsModule.m; sourceTree = SOURCE_ROOT; };
30
+ 2744B98521F45429004F8E3F /* RNFBCrashlyticsModule.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = RNFBCrashlyticsModule.mm; path = RNFBCrashlytics/RNFBCrashlyticsModule.mm; sourceTree = SOURCE_ROOT; };
31
31
  2748D82222371C0900FC8DC8 /* RNFBCrashlyticsInitProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNFBCrashlyticsInitProvider.h; sourceTree = "<group>"; };
32
32
  2748D82322371C1C00FC8DC8 /* RNFBCrashlyticsInitProvider.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNFBCrashlyticsInitProvider.m; sourceTree = "<group>"; };
33
33
  C66637BA25FA560700DCAA51 /* RNFBCrashlyticsNativeHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNFBCrashlyticsNativeHelper.m; sourceTree = "<group>"; };
@@ -57,7 +57,7 @@
57
57
  isa = PBXGroup;
58
58
  children = (
59
59
  2744B98421F45429004F8E3F /* RNFBCrashlyticsModule.h */,
60
- 2744B98521F45429004F8E3F /* RNFBCrashlyticsModule.m */,
60
+ 2744B98521F45429004F8E3F /* RNFBCrashlyticsModule.mm */,
61
61
  2748D82222371C0900FC8DC8 /* RNFBCrashlyticsInitProvider.h */,
62
62
  2748D82322371C1C00FC8DC8 /* RNFBCrashlyticsInitProvider.m */,
63
63
  C66637BD25FA561D00DCAA51 /* RNFBCrashlyticsNativeHelper.h */,
@@ -134,7 +134,7 @@
134
134
  files = (
135
135
  C66637BB25FA560700DCAA51 /* RNFBCrashlyticsNativeHelper.m in Sources */,
136
136
  2748D82422371C1C00FC8DC8 /* RNFBCrashlyticsInitProvider.m in Sources */,
137
- 2744B98621F45429004F8E3F /* RNFBCrashlyticsModule.m in Sources */,
137
+ 2744B98621F45429004F8E3F /* RNFBCrashlyticsModule.mm in Sources */,
138
138
  );
139
139
  runOnlyForDeploymentPostprocessing = 0;
140
140
  };
@@ -169,7 +169,7 @@
169
169
  );
170
170
  GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
171
171
  GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
172
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
172
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
173
173
  MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
174
174
  MTL_FAST_MATH = YES;
175
175
  OTHER_LDFLAGS = "-ObjC";
@@ -203,7 +203,7 @@
203
203
  GCC_C_LANGUAGE_STANDARD = gnu11;
204
204
  GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
205
205
  GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
206
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
206
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
207
207
  MTL_ENABLE_DEBUG_INFO = NO;
208
208
  MTL_FAST_MATH = YES;
209
209
  OTHER_LDFLAGS = "-ObjC";
@@ -264,7 +264,7 @@
264
264
  "$(SRCROOT)/../../../node_modules/react-native-firebase/ios/**",
265
265
  "$(SRCROOT)/../../../packages/app/ios/**",
266
266
  );
267
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
267
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
268
268
  LIBRARY_SEARCH_PATHS = "$(inherited)";
269
269
  MACH_O_TYPE = staticlib;
270
270
  OTHER_LDFLAGS = "$(inherited)";
@@ -322,7 +322,7 @@
322
322
  "$(SRCROOT)/../../../node_modules/react-native-firebase/ios/**",
323
323
  "$(SRCROOT)/../../../packages/app/ios/**",
324
324
  );
325
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
325
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
326
326
  LIBRARY_SEARCH_PATHS = "$(inherited)";
327
327
  MACH_O_TYPE = staticlib;
328
328
  ONLY_ACTIVE_ARCH = YES;
@@ -0,0 +1,25 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+
9
+ #import <Foundation/Foundation.h>
10
+
11
+ #if __has_include(<React-RCTAppDelegate/RCTDependencyProvider.h>)
12
+ #import <React-RCTAppDelegate/RCTDependencyProvider.h>
13
+ #elif __has_include(<React_RCTAppDelegate/RCTDependencyProvider.h>)
14
+ #import <React_RCTAppDelegate/RCTDependencyProvider.h>
15
+ #else
16
+ #import "RCTDependencyProvider.h"
17
+ #endif
18
+
19
+ NS_ASSUME_NONNULL_BEGIN
20
+
21
+ @interface RCTAppDependencyProvider : NSObject <RCTDependencyProvider>
22
+
23
+ @end
24
+
25
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,55 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #import "RCTAppDependencyProvider.h"
9
+ #import <ReactCodegen/RCTModulesConformingToProtocolsProvider.h>
10
+ #import <ReactCodegen/RCTThirdPartyComponentsProvider.h>
11
+
12
+ @implementation RCTAppDependencyProvider {
13
+ NSArray<NSString *> * _URLRequestHandlerClassNames;
14
+ NSArray<NSString *> * _imageDataDecoderClassNames;
15
+ NSArray<NSString *> * _imageURLLoaderClassNames;
16
+ NSDictionary<NSString *,Class<RCTComponentViewProtocol>> * _thirdPartyFabricComponents;
17
+ }
18
+
19
+ - (nonnull NSArray<NSString *> *)URLRequestHandlerClassNames {
20
+ static dispatch_once_t requestUrlToken;
21
+ dispatch_once(&requestUrlToken, ^{
22
+ self->_URLRequestHandlerClassNames = RCTModulesConformingToProtocolsProvider.URLRequestHandlerClassNames;
23
+ });
24
+
25
+ return _URLRequestHandlerClassNames;
26
+ }
27
+
28
+ - (nonnull NSArray<NSString *> *)imageDataDecoderClassNames {
29
+ static dispatch_once_t dataDecoderToken;
30
+ dispatch_once(&dataDecoderToken, ^{
31
+ _imageDataDecoderClassNames = RCTModulesConformingToProtocolsProvider.imageDataDecoderClassNames;
32
+ });
33
+
34
+ return _imageDataDecoderClassNames;
35
+ }
36
+
37
+ - (nonnull NSArray<NSString *> *)imageURLLoaderClassNames {
38
+ static dispatch_once_t urlLoaderToken;
39
+ dispatch_once(&urlLoaderToken, ^{
40
+ _imageURLLoaderClassNames = RCTModulesConformingToProtocolsProvider.imageURLLoaderClassNames;
41
+ });
42
+
43
+ return _imageURLLoaderClassNames;
44
+ }
45
+
46
+ - (nonnull NSDictionary<NSString *,Class<RCTComponentViewProtocol>> *)thirdPartyFabricComponents {
47
+ static dispatch_once_t nativeComponentsToken;
48
+ dispatch_once(&nativeComponentsToken, ^{
49
+ _thirdPartyFabricComponents = RCTThirdPartyComponentsProvider.thirdPartyFabricComponents;
50
+ });
51
+
52
+ return _thirdPartyFabricComponents;
53
+ }
54
+
55
+ @end