@react-native-firebase/app 26.4.0 → 27.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 (242) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +10 -27
  3. package/RNFBApp.podspec +13 -5
  4. package/android/build.gradle +3 -0
  5. package/android/src/main/java/io/invertase/firebase/common/RNFBHandleCollisionException.kt +29 -0
  6. package/android/src/main/java/io/invertase/firebase/common/RNFBHandleMap.kt +146 -0
  7. package/android/src/main/java/io/invertase/firebase/common/TaskExecutorService.kt +156 -0
  8. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebaseModule.kt +44 -0
  9. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebasePreferences.kt +100 -0
  10. package/android/src/reactnative/java/io/invertase/firebase/app/NativeRNFBTurboApp.kt +250 -0
  11. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseApp.kt +64 -0
  12. package/android/src/reactnative/java/io/invertase/firebase/app/{ReactNativeFirebaseAppInitProvider.java → ReactNativeFirebaseAppInitProvider.kt} +3 -4
  13. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackage.kt +47 -0
  14. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppRegistrar.kt +33 -0
  15. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java +1 -1
  16. package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.kt +185 -0
  17. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEvent.kt +35 -0
  18. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitter.kt +662 -0
  19. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseJSON.kt +103 -0
  20. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseMeta.kt +96 -0
  21. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseModule.kt +140 -0
  22. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebasePreferences.kt +109 -0
  23. package/android/src/reactnative/java/io/invertase/firebase/common/SharedUtils.kt +451 -0
  24. package/android/src/reactnative/java/io/invertase/firebase/interfaces/{ContextProvider.java → ContextProvider.kt} +8 -8
  25. package/android/src/reactnative/java/io/invertase/firebase/interfaces/{NativeError.java → NativeError.kt} +8 -8
  26. package/android/src/reactnative/java/io/invertase/firebase/interfaces/{NativeEvent.java → NativeEvent.kt} +6 -6
  27. package/android/src/reactnative/java/io/invertase/firebase/utils/NativeRNFBTurboUtils.kt +219 -0
  28. package/android/src/test/java/expo/core/ModuleRegistry.java +9 -0
  29. package/android/src/test/java/io/invertase/firebase/app/NativeRNFBTurboAppTest.java +182 -59
  30. package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppComponentsJavaCompatibilityTest.java +70 -0
  31. package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppJavaCompatibilityTest.java +60 -0
  32. package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackageTest.java +165 -0
  33. package/android/src/test/java/io/invertase/firebase/app/ReactNativeFirebaseAppTest.kt +167 -0
  34. package/android/src/test/java/io/invertase/firebase/common/RCTConvertFirebaseJavaCompatibilityTest.java +112 -0
  35. package/android/src/test/java/io/invertase/firebase/common/RCTConvertFirebaseTest.kt +317 -0
  36. package/android/src/test/java/io/invertase/firebase/common/RNFBHandleMapTest.kt +309 -0
  37. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterJavaCompatibilityTest.java +176 -0
  38. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterTest.java +143 -12
  39. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventTest.kt +61 -0
  40. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONJavaCompatibilityTest.java +85 -0
  41. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONTest.kt +296 -0
  42. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseMetaJavaCompatibilityTest.java +67 -0
  43. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseMetaTest.kt +246 -0
  44. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseModuleTest.kt +254 -0
  45. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebasePreferencesJavaCompatibilityTest.java +87 -0
  46. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebasePreferencesTest.kt +260 -0
  47. package/android/src/test/java/io/invertase/firebase/common/SharedUtilsJavaCompatibilityTest.java +255 -0
  48. package/android/src/test/java/io/invertase/firebase/common/SharedUtilsTest.kt +674 -0
  49. package/android/src/test/java/io/invertase/firebase/common/TaskExecutorServiceTest.kt +290 -0
  50. package/android/src/test/java/io/invertase/firebase/common/UniversalFirebaseModuleJavaCompatibilityTest.java +178 -0
  51. package/android/src/test/java/io/invertase/firebase/common/UniversalFirebasePreferencesJavaCompatibilityTest.java +99 -0
  52. package/android/src/test/java/io/invertase/firebase/common/UniversalFirebasePreferencesTest.kt +217 -0
  53. package/android/src/test/java/io/invertase/firebase/commoncompat/ReactNativeFirebaseModuleJavaCompatibilityTest.java +176 -0
  54. package/android/src/test/java/io/invertase/firebase/commoncompat/ReactNativeFirebaseModuleKotlinCompatibilityTest.kt +52 -0
  55. package/android/src/test/java/io/invertase/firebase/interfaces/InterfacesJavaCompatibilityTest.java +144 -0
  56. package/android/src/test/java/io/invertase/firebase/interfaces/NativeEventTest.kt +56 -0
  57. package/android/src/test/java/io/invertase/firebase/utils/NativeRNFBTurboUtilsTest.java +517 -21
  58. package/dist/module/FirebaseApp.js +10 -0
  59. package/dist/module/FirebaseApp.js.map +1 -1
  60. package/dist/module/common/deeps.js +3 -0
  61. package/dist/module/common/deeps.js.map +1 -1
  62. package/dist/module/internal/FirebaseModule.js.map +1 -1
  63. package/dist/module/internal/RNFBNativeEventEmitter.js +12 -1
  64. package/dist/module/internal/RNFBNativeEventEmitter.js.map +1 -1
  65. package/dist/module/internal/SharedEventEmitter.js +3 -1
  66. package/dist/module/internal/SharedEventEmitter.js.map +1 -1
  67. package/dist/module/internal/index.js +1 -0
  68. package/dist/module/internal/index.js.map +1 -1
  69. package/dist/module/internal/registry/app.js +7 -1
  70. package/dist/module/internal/registry/app.js.map +1 -1
  71. package/dist/module/types/app.js.map +1 -1
  72. package/dist/module/types/internal.js +2 -0
  73. package/dist/module/version.js +1 -1
  74. package/dist/typescript/lib/FirebaseApp.d.ts +7 -0
  75. package/dist/typescript/lib/FirebaseApp.d.ts.map +1 -1
  76. package/dist/typescript/lib/common/deeps.d.ts.map +1 -1
  77. package/dist/typescript/lib/internal/FirebaseModule.d.ts +2 -3
  78. package/dist/typescript/lib/internal/FirebaseModule.d.ts.map +1 -1
  79. package/dist/typescript/lib/internal/NativeModules.d.ts +4 -1
  80. package/dist/typescript/lib/internal/NativeModules.d.ts.map +1 -1
  81. package/dist/typescript/lib/internal/RNFBNativeEventEmitter.d.ts +2 -2
  82. package/dist/typescript/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -1
  83. package/dist/typescript/lib/internal/SharedEventEmitter.d.ts +3 -3
  84. package/dist/typescript/lib/internal/SharedEventEmitter.d.ts.map +1 -1
  85. package/dist/typescript/lib/internal/index.d.ts +1 -0
  86. package/dist/typescript/lib/internal/index.d.ts.map +1 -1
  87. package/dist/typescript/lib/internal/registry/app.d.ts.map +1 -1
  88. package/dist/typescript/lib/types/app.d.ts +10 -3
  89. package/dist/typescript/lib/types/app.d.ts.map +1 -1
  90. package/dist/typescript/lib/types/internal.d.ts +12 -0
  91. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  92. package/dist/typescript/lib/version.d.ts +1 -1
  93. package/firebase-schema.json +4 -0
  94. package/firebase_spm.rb +552 -96
  95. package/ios/RNFBApp/RCTConvert+FIRApp.h +2 -5
  96. package/ios/RNFBApp/RCTConvert+FIRApp.m +11 -6
  97. package/ios/RNFBApp/RCTConvert+FIROptions.h +2 -5
  98. package/ios/RNFBApp/RCTConvert+FIROptions.m +11 -10
  99. package/ios/RNFBApp/RCTConvertFIRApp.swift +86 -0
  100. package/ios/RNFBApp/RCTConvertFIROptions.swift +259 -0
  101. package/ios/RNFBApp/RNFBAppCustomAuthDomains.swift +63 -0
  102. package/ios/RNFBApp/RNFBAppInitializeOptionsMapper.swift +113 -0
  103. package/ios/RNFBApp/RNFBAppLogLevelMapper.swift +53 -0
  104. package/ios/RNFBApp/RNFBAppModule+CustomAuthDomain.m +35 -0
  105. package/ios/RNFBApp/RNFBAppModule.h +6 -2
  106. package/ios/RNFBApp/RNFBAppModule.mm +65 -228
  107. package/ios/RNFBApp/RNFBAppModuleFirebase.swift +439 -0
  108. package/ios/RNFBApp/RNFBAppModuleImplementation.h +68 -0
  109. package/ios/RNFBApp/RNFBAppModuleImplementation.m +195 -0
  110. package/ios/RNFBApp/RNFBHandleMap.m +27 -56
  111. package/ios/RNFBApp/RNFBHandleMapStorage.swift +90 -0
  112. package/ios/RNFBApp/RNFBInitializeAppArguments.swift +82 -0
  113. package/ios/RNFBApp/RNFBJSON.m +22 -38
  114. package/ios/RNFBApp/RNFBJSONImplementation.swift +71 -0
  115. package/ios/RNFBApp/RNFBMeta.m +24 -26
  116. package/ios/RNFBApp/RNFBMetaStorage.swift +76 -0
  117. package/ios/RNFBApp/RNFBNullSentinelDecoding.swift +135 -0
  118. package/ios/RNFBApp/RNFBNullSentinelInterceptor.h +30 -3
  119. package/ios/RNFBApp/RNFBNullSentinelInterceptor.m +28 -5
  120. package/ios/RNFBApp/RNFBPreferences.m +22 -20
  121. package/ios/RNFBApp/RNFBPreferencesStorage.swift +101 -0
  122. package/ios/RNFBApp/RNFBRCTEventEmitter.m +36 -93
  123. package/ios/RNFBApp/RNFBRCTEventEmitterCore.swift +161 -0
  124. package/ios/RNFBApp/RNFBSharedUtils.h +2 -5
  125. package/ios/RNFBApp/RNFBSharedUtils.m +109 -198
  126. package/ios/RNFBApp/RNFBSharedUtilsConfig.swift +72 -0
  127. package/ios/RNFBApp/RNFBSharedUtilsFIRApp.swift +271 -0
  128. package/ios/RNFBApp/RNFBSharedUtilsFormatting.swift +59 -0
  129. package/ios/RNFBApp/RNFBSharedUtilsPromiseRejection.swift +88 -0
  130. package/ios/RNFBApp/RNFBUtilsHelpers.swift +116 -0
  131. package/ios/RNFBApp/RNFBUtilsModule+Foundation.m +44 -0
  132. package/ios/RNFBApp/RNFBUtilsModule+PhotoAssets.m +47 -0
  133. package/ios/RNFBApp/RNFBUtilsModule.h +11 -1
  134. package/ios/RNFBApp/RNFBUtilsModule.mm +10 -85
  135. package/ios/RNFBApp/RNFBUtilsModuleImplementation.h +32 -0
  136. package/ios/RNFBApp/RNFBUtilsModuleImplementation.m +56 -0
  137. package/ios/RNFBApp/RNFBVersion.m +1 -1
  138. package/ios/RNFBApp.xcodeproj/project.pbxproj +100 -0
  139. package/ios/RNFBAppUnitTests/HostStubs/FirebaseCore/FIRApp.m +171 -0
  140. package/ios/RNFBAppUnitTests/HostStubs/FirebaseCore/FirebaseCore.h +78 -0
  141. package/ios/RNFBAppUnitTests/HostStubs/FirebaseInstallations/FIRInstallations.m +7 -0
  142. package/ios/RNFBAppUnitTests/HostStubs/FirebaseInstallations/FirebaseInstallations.h +8 -0
  143. package/ios/RNFBAppUnitTests/HostStubs/RNFBAppModuleHostStub.m +55 -0
  144. package/ios/RNFBAppUnitTests/HostStubs/RNFBAppTurboModules.h +89 -0
  145. package/ios/RNFBAppUnitTests/HostStubs/RNFBAppTurboModules.mm +30 -0
  146. package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridge.h +19 -0
  147. package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridge.m +32 -0
  148. package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridgeModule.h +19 -0
  149. package/ios/RNFBAppUnitTests/HostStubs/React/RCTConvert.h +28 -0
  150. package/ios/RNFBAppUnitTests/HostStubs/React/RCTConvert.m +23 -0
  151. package/ios/RNFBAppUnitTests/HostStubs/React/RCTEventEmitter.h +9 -0
  152. package/ios/RNFBAppUnitTests/HostStubs/React/RCTInvalidating.h +24 -0
  153. package/ios/RNFBAppUnitTests/HostStubs/React/RCTUtils.h +9 -0
  154. package/ios/RNFBAppUnitTests/HostStubs/module.modulemap +13 -0
  155. package/ios/RNFBAppUnitTests/RCTConvertFIRAppFacadeTests.m +61 -0
  156. package/ios/RNFBAppUnitTests/RCTConvertFIRAppTests.swift +73 -0
  157. package/ios/RNFBAppUnitTests/RCTConvertFIROptionsFacadeTests.m +57 -0
  158. package/ios/RNFBAppUnitTests/RCTConvertFIROptionsTests.swift +243 -0
  159. package/ios/RNFBAppUnitTests/RNFBAppCustomAuthDomainsFacadeTests.m +73 -0
  160. package/ios/RNFBAppUnitTests/RNFBAppCustomAuthDomainsTests.swift +70 -0
  161. package/ios/RNFBAppUnitTests/RNFBAppInitializeOptionsMapperTests.swift +190 -0
  162. package/ios/RNFBAppUnitTests/RNFBAppLogLevelFacadeTests.m +76 -0
  163. package/ios/RNFBAppUnitTests/RNFBAppLogLevelMapperTests.swift +59 -0
  164. package/ios/RNFBAppUnitTests/RNFBAppModuleFirebaseFacadeTests.m +215 -0
  165. package/ios/RNFBAppUnitTests/RNFBAppModuleFirebaseTests.swift +430 -0
  166. package/ios/RNFBAppUnitTests/RNFBAppModuleLifecycleTests.m +206 -0
  167. package/ios/RNFBAppUnitTests/RNFBAppModuleShellTests.mm +367 -0
  168. package/ios/RNFBAppUnitTests/RNFBAppUnitTests.xcodeproj/project.pbxproj +355 -2
  169. package/ios/RNFBAppUnitTests/RNFBFirebaseAppClientTests.swift +165 -0
  170. package/ios/RNFBAppUnitTests/RNFBHandleMapStorageTests.swift +121 -0
  171. package/ios/RNFBAppUnitTests/RNFBInitializeAppArgumentsTests.swift +256 -0
  172. package/ios/RNFBAppUnitTests/RNFBJSONImplementationTests.swift +126 -0
  173. package/ios/RNFBAppUnitTests/RNFBJSONTests.m +172 -0
  174. package/ios/RNFBAppUnitTests/RNFBMetaStorageTests.swift +106 -0
  175. package/ios/RNFBAppUnitTests/RNFBMetaTests.m +65 -0
  176. package/ios/RNFBAppUnitTests/RNFBNullSentinelDecodingTests.swift +286 -0
  177. package/ios/RNFBAppUnitTests/RNFBNullSentinelInterceptorTests.m +312 -0
  178. package/ios/RNFBAppUnitTests/RNFBPreferencesStorageTests.swift +105 -0
  179. package/ios/RNFBAppUnitTests/RNFBPreferencesTests.m +110 -0
  180. package/ios/RNFBAppUnitTests/RNFBRCTEventEmitterCoreTests.swift +163 -0
  181. package/ios/RNFBAppUnitTests/RNFBRCTEventEmitterFacadeTests.m +141 -0
  182. package/ios/RNFBAppUnitTests/RNFBSharedUtilsConfigFacadeTests.m +100 -0
  183. package/ios/RNFBAppUnitTests/RNFBSharedUtilsConfigTests.swift +234 -0
  184. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFIRAppFacadeTests.m +145 -0
  185. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFIRAppTests.swift +173 -0
  186. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFormattingFacadeTests.m +38 -0
  187. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFormattingTests.swift +82 -0
  188. package/ios/RNFBAppUnitTests/RNFBSharedUtilsNullSentinelTests.m +35 -0
  189. package/ios/RNFBAppUnitTests/RNFBSharedUtilsPromiseRejectionFacadeTests.m +107 -0
  190. package/ios/RNFBAppUnitTests/RNFBSharedUtilsPromiseRejectionTests.swift +133 -0
  191. package/ios/RNFBAppUnitTests/RNFBUtilsHelpersTests.swift +144 -0
  192. package/ios/RNFBAppUnitTests/RNFBUtilsModuleFacadeTests.m +72 -0
  193. package/ios/RNFBAppUnitTests/RNFBUtilsModuleShellTests.mm +282 -0
  194. package/ios/RNFBFirebase/Package.swift +53 -0
  195. package/ios/RNFBFirebase/Sources/RNFBFirebase/RNFBFirebase.swift +285 -0
  196. package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/Public/.gitkeep +0 -0
  197. package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/RNFBFirebaseBridge.m +169 -0
  198. package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/include/RNFBFirebaseBridge.h +52 -0
  199. package/ios/RNFBFirebaseUnitTests/RNFBAppDynamicFacadeTests.swift +240 -0
  200. package/{android/src/main/java/io/invertase/firebase/common/RNFBHandleCollisionException.java → ios/RNFBFirebaseUnitTests/RNFBFirebaseClientImport.swift} +23 -14
  201. package/ios/RNFBFirebaseUnitTests/RNFBFirebaseUnitTests.xcodeproj/project.pbxproj +588 -0
  202. package/ios/RNFBFirebaseUnitTests/RNFBFirebaseUnitTests.xcodeproj/xcshareddata/xcschemes/RNFBFirebaseUnitTests.xcscheme +83 -0
  203. package/ios_config.sh +50 -22
  204. package/lib/FirebaseApp.ts +10 -0
  205. package/lib/common/deeps.ts +3 -0
  206. package/lib/internal/FirebaseModule.ts +6 -3
  207. package/lib/internal/NativeModules.ts +4 -1
  208. package/lib/internal/RNFBNativeEventEmitter.ts +14 -5
  209. package/lib/internal/SharedEventEmitter.ts +5 -1
  210. package/lib/internal/index.ts +1 -0
  211. package/lib/internal/react-native-vendor-emitter.d.ts +11 -0
  212. package/lib/internal/registry/app.ts +7 -1
  213. package/lib/types/app.ts +10 -3
  214. package/lib/types/internal.ts +19 -0
  215. package/lib/version.ts +1 -1
  216. package/package.json +8 -8
  217. package/plugin/build/ios/appDelegate.js +2 -2
  218. package/plugin/build/ios/podfile.js +16 -16
  219. package/plugin/build/pluginConfig.d.ts +4 -2
  220. package/plugin/src/ios/appDelegate.ts +2 -2
  221. package/plugin/src/ios/podfile.ts +20 -23
  222. package/plugin/src/pluginConfig.ts +4 -2
  223. package/android/src/main/java/io/invertase/firebase/common/RNFBHandleMap.java +0 -150
  224. package/android/src/main/java/io/invertase/firebase/common/TaskExecutorService.java +0 -148
  225. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebaseModule.java +0 -62
  226. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebasePreferences.java +0 -91
  227. package/android/src/reactnative/java/io/invertase/firebase/app/NativeRNFBTurboApp.java +0 -224
  228. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseApp.java +0 -46
  229. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackage.java +0 -49
  230. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppRegistrar.java +0 -35
  231. package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.java +0 -192
  232. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEvent.java +0 -53
  233. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitter.java +0 -606
  234. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseJSON.java +0 -109
  235. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseMeta.java +0 -101
  236. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseModule.java +0 -146
  237. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebasePreferences.java +0 -96
  238. package/android/src/reactnative/java/io/invertase/firebase/common/SharedUtils.java +0 -441
  239. package/android/src/reactnative/java/io/invertase/firebase/utils/NativeRNFBTurboUtils.java +0 -223
  240. package/android/src/test/java/io/invertase/firebase/common/RNFBHandleMapTest.java +0 -275
  241. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONTest.java +0 -108
  242. package/android/src/test/java/io/invertase/firebase/common/TaskExecutorServiceTest.java +0 -97
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright (c) 2016-present Invertase Limited & Contributors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this library except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ #import "RNFBAppModule.h"
18
+
19
+ #if __has_include(<RNFBApp/RNFBApp-Swift.h>)
20
+ #import <RNFBApp/RNFBApp-Swift.h>
21
+ #elif __has_include("RNFBApp-Swift.h")
22
+ #import "RNFBApp-Swift.h"
23
+ #elif __has_include("RNFBHandleMapStorage-Swift.inc")
24
+ #import "RNFBHandleMapStorage-Swift.inc"
25
+ #else
26
+ #error "RNFBApp Swift interface not found"
27
+ #endif
28
+
29
+ @implementation RNFBAppModule (CustomAuthDomain)
30
+
31
+ + (NSString *)getCustomDomain:(NSString *)appName {
32
+ return [RNFBAppCustomAuthDomains getCustomDomain:appName];
33
+ }
34
+
35
+ @end
@@ -19,8 +19,12 @@
19
19
 
20
20
  @interface RNFBAppModule : NSObject
21
21
 
22
- + (NSString *)getCustomDomain:(NSString *)appName;
23
-
24
22
  - (void)setLogLevel:(NSString *)logLevel;
25
23
 
26
24
  @end
25
+
26
+ @interface RNFBAppModule (CustomAuthDomain)
27
+
28
+ + (NSString *)getCustomDomain:(NSString *)appName;
29
+
30
+ @end
@@ -15,41 +15,37 @@
15
15
  *
16
16
  */
17
17
 
18
- #if __has_include(<Firebase/Firebase.h>)
19
- #import <Firebase/Firebase.h>
20
- #elif __has_include(<FirebaseCore/FirebaseCore.h>)
21
- #import <FirebaseCore/FirebaseCore.h>
22
- #else
23
- @import FirebaseCore;
24
- #endif
25
18
  #import <React/RCTInvalidating.h>
26
- #import <React/RCTUtils.h>
27
19
 
28
- #import "RCTConvert+FIRApp.h"
29
20
  #import "RNFBAppModule.h"
21
+ #import "RNFBAppModuleImplementation.h"
30
22
  #import "RNFBAppTurboModules.h"
31
- #import "RNFBJSON.h"
32
- #import "RNFBMeta.h"
33
- #import "RNFBPreferences.h"
34
- #import "RNFBRCTEventEmitter.h"
35
- #import "RNFBSharedUtils.h"
36
- #import "RNFBVersion.h"
37
-
38
- #if __has_include(<FirebaseCore/FIRAppInternal.h>)
39
- #import <FirebaseCore/FIRAppInternal.h>
40
- #define REGISTER_LIB
23
+
24
+ #if defined(RNFB_DYNAMIC_FIREBASE_PROBE)
25
+ #if __has_include(<FirebaseCore/FirebaseCore.h>)
26
+ #error "FirebaseCore headers visible in RNFB dynamic probe"
27
+ #endif
28
+ #if __has_include(<FirebaseInstallations/FirebaseInstallations.h>)
29
+ #error "FirebaseInstallations headers visible in RNFB dynamic probe"
30
+ #endif
31
+ #if __has_feature(cxx_modules)
32
+ #error "C++ modules enabled in RNFB dynamic probe"
33
+ #endif
41
34
  #endif
42
35
 
43
36
  @interface RNFBAppModule () <NativeRNFBTurboAppSpec, RCTInvalidating>
44
37
 
45
- + (void)setCustomDomain:(nullable NSString *)authDomain forAppName:(NSString *)appName;
46
-
47
38
  @end
48
39
 
49
- static NSMutableDictionary<NSString *, NSString *> *customAuthDomains;
50
-
51
40
  @implementation RNFBAppModule
52
41
 
42
+ - (instancetype)init {
43
+ if ((self = [super init])) {
44
+ RNFBAppModuleInitialize();
45
+ }
46
+ return self;
47
+ }
48
+
53
49
  #pragma mark -
54
50
  #pragma mark Module Setup
55
51
 
@@ -61,274 +57,115 @@ RCT_EXPORT_MODULE(NativeRNFBTurboApp)
61
57
  }
62
58
 
63
59
  - (void)setBridge:(RCTBridge *)bridge {
64
- [RNFBRCTEventEmitter shared].bridge = bridge;
60
+ RNFBAppModuleSetBridge(bridge);
65
61
  }
66
62
 
67
63
  - (RCTBridge *)bridge {
68
- return [RNFBRCTEventEmitter shared].bridge;
69
- }
70
-
71
- - (id)init {
72
- if (self = [super init]) {
73
- #ifdef REGISTER_LIB
74
- static dispatch_once_t once;
75
- dispatch_once(&once, ^{
76
- [FIRApp registerLibrary:@"react-native-firebase" withVersion:[RNFBVersionString copy]];
77
- });
78
- #endif
79
- if ([[RNFBJSON shared] contains:@"app_log_level"]) {
80
- NSString *logLevel = [[RNFBJSON shared] getStringValue:@"app_log_level" defaultValue:@"info"];
81
- [self setLogLevel:logLevel];
82
- }
83
- }
84
-
85
- return self;
64
+ return RNFBAppModuleBridge();
86
65
  }
87
66
 
88
67
  - (void)invalidate {
89
- [[RNFBRCTEventEmitter shared] invalidate];
68
+ RNFBAppModuleInvalidate();
90
69
  }
91
70
 
92
71
  #pragma mark -
93
72
  #pragma mark Constants
94
73
 
95
- - (NSDictionary *)appConstantsDictionary {
96
- NSDictionary *firApps = [FIRApp allApps];
97
- NSMutableArray *appsArray = [NSMutableArray new];
98
- NSMutableDictionary *constants = [NSMutableDictionary new];
99
-
100
- for (id key in firApps) {
101
- [appsArray addObject:[RNFBSharedUtils firAppToDictionary:firApps[key]]];
102
- }
103
-
104
- constants[@"NATIVE_FIREBASE_APPS"] = appsArray;
105
- constants[@"FIREBASE_RAW_JSON"] = [[RNFBJSON shared] getRawJSON];
106
-
107
- return constants;
108
- }
109
-
110
74
  - (facebook::react::ModuleConstants<JS::NativeRNFBTurboApp::Constants>)constantsToExport {
111
- return [_RCTTypedModuleConstants newWithUnsafeDictionary:[self appConstantsDictionary]];
75
+ return [_RCTTypedModuleConstants newWithUnsafeDictionary:RNFBAppModuleConstantsDictionary()];
112
76
  }
113
77
 
114
78
  - (facebook::react::ModuleConstants<JS::NativeRNFBTurboApp::Constants>)getConstants {
115
- return [self constantsToExport];
79
+ return [_RCTTypedModuleConstants newWithUnsafeDictionary:RNFBAppModuleConstantsDictionary()];
116
80
  }
117
81
 
118
- #pragma mark -
119
- #pragma mark META Methods
120
-
121
- - (void)metaGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
122
- resolve([RNFBMeta getAll]);
123
- }
124
-
125
- #pragma mark -
126
- #pragma mark JSON Methods
127
-
128
- - (void)jsonGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
129
- resolve([[RNFBJSON shared] getAll]);
82
+ + (BOOL)requiresMainQueueSetup {
83
+ return NO;
130
84
  }
131
85
 
132
86
  #pragma mark -
133
- #pragma mark Preference Methods
134
-
135
- - (void)preferencesSetBool:(NSString *)key
136
- value:(BOOL)value
137
- resolve:(RCTPromiseResolveBlock)resolve
138
- reject:(RCTPromiseRejectBlock)reject {
139
- [[RNFBPreferences shared] setBooleanValue:key boolValue:value];
140
- resolve([NSNull null]);
141
- }
87
+ #pragma mark Methods
142
88
 
143
- - (void)preferencesSetString:(NSString *)key
144
- value:(NSString *)value
145
- resolve:(RCTPromiseResolveBlock)resolve
146
- reject:(RCTPromiseRejectBlock)reject {
147
- [[RNFBPreferences shared] setStringValue:key stringValue:value];
148
- resolve([NSNull null]);
89
+ - (void)initializeApp:(NSDictionary *)options
90
+ appConfig:(NSDictionary *)appConfig
91
+ resolve:(RCTPromiseResolveBlock)resolve
92
+ reject:(RCTPromiseRejectBlock)reject {
93
+ RNFBAppModuleInitializeApp(options, appConfig, resolve, reject);
149
94
  }
150
95
 
151
- - (void)preferencesGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
152
- resolve([[RNFBPreferences shared] getAll]);
96
+ - (void)setAutomaticDataCollectionEnabled:(NSString *)appName enabled:(BOOL)enabled {
97
+ RNFBAppModuleSetAutomaticDataCollectionEnabled(appName, enabled);
153
98
  }
154
99
 
155
- - (void)preferencesClearAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
156
- [[RNFBPreferences shared] clearAll];
157
- resolve([NSNull null]);
100
+ - (void)deleteApp:(NSString *)appName
101
+ resolve:(RCTPromiseResolveBlock)resolve
102
+ reject:(RCTPromiseRejectBlock)reject {
103
+ RNFBAppModuleDeleteApp(appName, resolve, reject);
158
104
  }
159
105
 
160
- #pragma mark -
161
- #pragma mark Event Methods
162
-
163
106
  - (void)eventsNotifyReady:(BOOL)ready {
164
- [[RNFBRCTEventEmitter shared] notifyJsReady:ready];
107
+ RNFBAppModuleEventsNotifyReady(ready);
165
108
  }
166
109
 
167
110
  - (void)eventsGetListeners:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
168
- resolve([[RNFBRCTEventEmitter shared] getListenersDictionary]);
111
+ RNFBAppModuleEventsGetListeners(resolve, reject);
169
112
  }
170
113
 
171
114
  - (void)eventsPing:(NSString *)eventName
172
115
  eventBody:(NSDictionary *)eventBody
173
116
  resolve:(RCTPromiseResolveBlock)resolve
174
117
  reject:(RCTPromiseRejectBlock)reject {
175
- [[RNFBRCTEventEmitter shared] sendEventWithName:eventName body:eventBody];
176
- resolve(eventBody);
118
+ RNFBAppModuleEventsPing(eventName, eventBody, resolve, reject);
177
119
  }
178
120
 
179
121
  - (void)eventsAddListener:(NSString *)eventName {
180
- [[RNFBRCTEventEmitter shared] addListener:eventName];
122
+ RNFBAppModuleEventsAddListener(eventName);
181
123
  }
182
124
 
183
125
  - (void)eventsRemoveListener:(NSString *)eventName all:(BOOL)all {
184
- [[RNFBRCTEventEmitter shared] removeListeners:eventName all:all];
126
+ RNFBAppModuleEventsRemoveListener(eventName, all);
185
127
  }
186
128
 
187
- #pragma mark -
188
- #pragma mark Events Unused
189
-
190
129
  - (void)addListener:(NSString *)eventName {
191
- // Keep: Required for RN built in Event Emitter Calls.
130
+ RNFBAppModuleAddListener(eventName);
192
131
  }
193
132
 
194
133
  - (void)removeListeners:(double)count {
195
- // Keep: Required for RN built in Event Emitter Calls.
134
+ RNFBAppModuleRemoveListeners(count);
196
135
  }
197
136
 
198
- #pragma mark -
199
- #pragma mark Firebase App Methods
200
-
201
- - (void)initializeApp:(NSDictionary *)options
202
- appConfig:(NSDictionary *)appConfig
203
- resolve:(RCTPromiseResolveBlock)resolve
204
- reject:(RCTPromiseRejectBlock)reject {
205
- RCTUnsafeExecuteOnMainQueueSync(^{
206
- FIRApp *firApp;
207
- NSString *appName = [appConfig valueForKey:@"name"];
208
- NSString *authDomain = [options valueForKey:@"authDomain"];
209
- NSString *jsAppName = (appName.length > 0) ? appName : DEFAULT_APP_DISPLAY_NAME;
210
- BOOL isDefaultApp = !appName || [appName isEqualToString:DEFAULT_APP_DISPLAY_NAME];
211
-
212
- NSString *appId = [options valueForKey:@"appId"];
213
- NSString *messagingSenderId = [options valueForKey:@"messagingSenderId"];
214
- FIROptions *firOptions = [[FIROptions alloc] initWithGoogleAppID:appId
215
- GCMSenderID:messagingSenderId];
216
- firOptions.APIKey = [options valueForKey:@"apiKey"];
217
- firOptions.projectID = [options valueForKey:@"projectId"];
218
- if (![[options valueForKey:@"databaseURL"] isEqual:[NSNull null]]) {
219
- firOptions.databaseURL = [options valueForKey:@"databaseURL"];
220
- }
221
- if (![[options valueForKey:@"storageBucket"] isEqual:[NSNull null]]) {
222
- firOptions.storageBucket = [options valueForKey:@"storageBucket"];
223
- }
224
- if (![[options valueForKey:@"iosBundleId"] isEqual:[NSNull null]]) {
225
- firOptions.bundleID = [options valueForKey:@"iosBundleId"];
226
- }
227
- if (![[options valueForKey:@"iosClientId"] isEqual:[NSNull null]]) {
228
- firOptions.clientID = [options valueForKey:@"iosClientId"];
229
- }
230
- if (![[options valueForKey:@"appGroupId"] isEqual:[NSNull null]]) {
231
- firOptions.appGroupID = [options valueForKey:@"appGroupId"];
232
- }
233
-
234
- @try {
235
- if (isDefaultApp) {
236
- // Native bootstrap often already called [FIRApp configure]. Still accept a JS/bridge
237
- // initializeApp for the default app so customAuthDomains can be keyed by [DEFAULT].
238
- if ([FIRApp defaultApp] != nil) {
239
- firApp = [FIRApp defaultApp];
240
- } else {
241
- [FIRApp configureWithOptions:firOptions];
242
- firApp = [FIRApp defaultApp];
243
- }
244
- } else {
245
- [FIRApp configureWithName:appName options:firOptions];
246
- firApp = [FIRApp appNamed:appName];
247
- }
248
- } @catch (NSException *exception) {
249
- return [RNFBSharedUtils rejectPromiseWithExceptionDict:reject exception:exception];
250
- }
251
-
252
- // Store under the JS bridge app name ([DEFAULT]), never native __FIRAPP_DEFAULT.
253
- [RNFBAppModule setCustomDomain:authDomain forAppName:jsAppName];
254
-
255
- firApp.dataCollectionDefaultEnabled =
256
- (BOOL)[appConfig valueForKey:@"automaticDataCollectionEnabled"];
257
-
258
- resolve([RNFBSharedUtils firAppToDictionary:firApp]);
259
- });
137
+ - (void)metaGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
138
+ RNFBAppModuleMetaGetAll(resolve, reject);
260
139
  }
261
140
 
262
- + (NSString *)getCustomDomain:(NSString *)appName {
263
- @synchronized(self) {
264
- DLog(@"authDomains: %@", customAuthDomains);
265
- return customAuthDomains[appName];
266
- }
141
+ - (void)jsonGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
142
+ RNFBAppModuleJSONGetAll(resolve, reject);
267
143
  }
268
144
 
269
- + (void)setCustomDomain:(nullable NSString *)authDomain forAppName:(NSString *)appName {
270
- @synchronized(self) {
271
- if (authDomain != nil) {
272
- DLog(@"RNFBAuth app: %@ customAuthDomain: %@", appName, authDomain);
273
- if (customAuthDomains == nil) {
274
- customAuthDomains = [[NSMutableDictionary alloc] init];
275
- }
276
- customAuthDomains[appName] = authDomain;
277
- } else {
278
- [customAuthDomains removeObjectForKey:appName];
279
- }
280
- }
145
+ - (void)preferencesSetBool:(NSString *)key
146
+ value:(BOOL)value
147
+ resolve:(RCTPromiseResolveBlock)resolve
148
+ reject:(RCTPromiseRejectBlock)reject {
149
+ RNFBAppModulePreferencesSetBool(key, value, resolve, reject);
281
150
  }
282
151
 
283
- - (void)setLogLevel:(NSString *)logLevel {
284
- int level = FIRLoggerLevelError;
285
- if ([logLevel isEqualToString:@"verbose"]) {
286
- level = FIRLoggerLevelDebug;
287
- } else if ([logLevel isEqualToString:@"debug"]) {
288
- level = FIRLoggerLevelDebug;
289
- } else if ([logLevel isEqualToString:@"info"]) {
290
- level = FIRLoggerLevelInfo;
291
- } else if ([logLevel isEqualToString:@"warn"]) {
292
- level = FIRLoggerLevelWarning;
293
- }
294
- DLog(@"RNFBSetLogLevel: setting level to %d from %@.", level, logLevel);
295
- [[FIRConfiguration sharedInstance] setLoggerLevel:(FIRLoggerLevel)level];
152
+ - (void)preferencesSetString:(NSString *)key
153
+ value:(NSString *)value
154
+ resolve:(RCTPromiseResolveBlock)resolve
155
+ reject:(RCTPromiseRejectBlock)reject {
156
+ RNFBAppModulePreferencesSetString(key, value, resolve, reject);
296
157
  }
297
158
 
298
- - (void)setAutomaticDataCollectionEnabled:(NSString *)appName enabled:(BOOL)enabled {
299
- FIRApp *firApp = [RCTConvert firAppFromString:appName];
300
- if (firApp) {
301
- firApp.dataCollectionDefaultEnabled = enabled;
302
- }
159
+ - (void)preferencesGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
160
+ RNFBAppModulePreferencesGetAll(resolve, reject);
303
161
  }
304
162
 
305
- - (void)deleteApp:(NSString *)appName
306
- resolve:(RCTPromiseResolveBlock)resolve
307
- reject:(RCTPromiseRejectBlock)reject {
308
- FIRApp *firApp = [RCTConvert firAppFromString:appName];
309
- if (!firApp) {
310
- return resolve([NSNull null]);
311
- }
312
-
313
- [firApp deleteApp:^(BOOL success) {
314
- if (success) {
315
- [RNFBAppModule setCustomDomain:nil forAppName:appName];
316
- resolve([NSNull null]);
317
- } else {
318
- [firApp deleteApp:^(BOOL success2) {
319
- if (success2) {
320
- [RNFBAppModule setCustomDomain:nil forAppName:appName];
321
- resolve([NSNull null]);
322
- } else {
323
- reject(@"app/delete-app-failed", @"Failed to delete the specified app.", nil);
324
- }
325
- }];
326
- }
327
- }];
163
+ - (void)preferencesClearAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
164
+ RNFBAppModulePreferencesClearAll(resolve, reject);
328
165
  }
329
166
 
330
- + (BOOL)requiresMainQueueSetup {
331
- return NO;
167
+ - (void)setLogLevel:(NSString *)logLevel {
168
+ RNFBAppModuleSetLogLevel(logLevel);
332
169
  }
333
170
 
334
171
  @end