@react-native-firebase/app 26.3.3 → 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 (283) hide show
  1. package/CHANGELOG.md +75 -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 +208 -60
  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 +144 -13
  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 -23
  58. package/dist/module/FirebaseApp.js +10 -0
  59. package/dist/module/FirebaseApp.js.map +1 -1
  60. package/dist/module/common/Base64.js +13 -21
  61. package/dist/module/common/Base64.js.map +1 -1
  62. package/dist/module/common/deeps.js +3 -0
  63. package/dist/module/common/deeps.js.map +1 -1
  64. package/dist/module/common/index.js +17 -9
  65. package/dist/module/common/index.js.map +1 -1
  66. package/dist/module/internal/FirebaseModule.js.map +1 -1
  67. package/dist/module/internal/RNFBNativeEventEmitter.js +12 -1
  68. package/dist/module/internal/RNFBNativeEventEmitter.js.map +1 -1
  69. package/dist/module/internal/SharedEventEmitter.js +3 -1
  70. package/dist/module/internal/SharedEventEmitter.js.map +1 -1
  71. package/dist/module/internal/asyncStorage.js +7 -11
  72. package/dist/module/internal/asyncStorage.js.map +1 -1
  73. package/dist/module/internal/index.js +1 -0
  74. package/dist/module/internal/index.js.map +1 -1
  75. package/dist/module/internal/logger.js +44 -40
  76. package/dist/module/internal/logger.js.map +1 -1
  77. package/dist/module/internal/nativeModuleAndroidIos.js +2 -29
  78. package/dist/module/internal/nativeModuleAndroidIos.js.map +1 -1
  79. package/dist/module/internal/nativeModuleDebug.js +74 -0
  80. package/dist/module/internal/nativeModuleDebug.js.map +1 -0
  81. package/dist/module/internal/nativeModuleWeb.js +9 -29
  82. package/dist/module/internal/nativeModuleWeb.js.map +1 -1
  83. package/dist/module/internal/registry/app.js +8 -2
  84. package/dist/module/internal/registry/app.js.map +1 -1
  85. package/dist/module/internal/registry/modular.js +2 -2
  86. package/dist/module/internal/registry/modular.js.map +1 -1
  87. package/dist/module/internal/registry/nativeModule.js +3 -3
  88. package/dist/module/internal/registry/nativeModule.js.map +1 -1
  89. package/dist/module/internal/web/RNFBAppModule.js +16 -15
  90. package/dist/module/internal/web/RNFBAppModule.js.map +1 -1
  91. package/dist/module/internal/web/memidb/lib/FakeEventTarget.js +3 -1
  92. package/dist/module/internal/web/memidb/lib/FakeEventTarget.js.map +1 -1
  93. package/dist/module/types/app.js.map +1 -1
  94. package/dist/module/types/internal.js +2 -0
  95. package/dist/module/version.js +1 -1
  96. package/dist/typescript/lib/FirebaseApp.d.ts +7 -0
  97. package/dist/typescript/lib/FirebaseApp.d.ts.map +1 -1
  98. package/dist/typescript/lib/common/Base64.d.ts.map +1 -1
  99. package/dist/typescript/lib/common/deeps.d.ts.map +1 -1
  100. package/dist/typescript/lib/common/index.d.ts.map +1 -1
  101. package/dist/typescript/lib/internal/FirebaseModule.d.ts +2 -3
  102. package/dist/typescript/lib/internal/FirebaseModule.d.ts.map +1 -1
  103. package/dist/typescript/lib/internal/NativeModules.d.ts +4 -1
  104. package/dist/typescript/lib/internal/NativeModules.d.ts.map +1 -1
  105. package/dist/typescript/lib/internal/RNFBNativeEventEmitter.d.ts +2 -2
  106. package/dist/typescript/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -1
  107. package/dist/typescript/lib/internal/SharedEventEmitter.d.ts +3 -3
  108. package/dist/typescript/lib/internal/SharedEventEmitter.d.ts.map +1 -1
  109. package/dist/typescript/lib/internal/asyncStorage.d.ts.map +1 -1
  110. package/dist/typescript/lib/internal/index.d.ts +1 -0
  111. package/dist/typescript/lib/internal/index.d.ts.map +1 -1
  112. package/dist/typescript/lib/internal/logger.d.ts.map +1 -1
  113. package/dist/typescript/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -1
  114. package/dist/typescript/lib/internal/nativeModuleDebug.d.ts +2 -0
  115. package/dist/typescript/lib/internal/nativeModuleDebug.d.ts.map +1 -0
  116. package/dist/typescript/lib/internal/nativeModuleWeb.d.ts.map +1 -1
  117. package/dist/typescript/lib/internal/registry/app.d.ts.map +1 -1
  118. package/dist/typescript/lib/internal/web/RNFBAppModule.d.ts +7 -7
  119. package/dist/typescript/lib/internal/web/RNFBAppModule.d.ts.map +1 -1
  120. package/dist/typescript/lib/types/app.d.ts +10 -3
  121. package/dist/typescript/lib/types/app.d.ts.map +1 -1
  122. package/dist/typescript/lib/types/internal.d.ts +12 -0
  123. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  124. package/dist/typescript/lib/version.d.ts +1 -1
  125. package/firebase-schema.json +5 -1
  126. package/firebase_spm.rb +552 -96
  127. package/ios/RNFBApp/RCTConvert+FIRApp.h +2 -5
  128. package/ios/RNFBApp/RCTConvert+FIRApp.m +11 -6
  129. package/ios/RNFBApp/RCTConvert+FIROptions.h +2 -5
  130. package/ios/RNFBApp/RCTConvert+FIROptions.m +11 -10
  131. package/ios/RNFBApp/RCTConvertFIRApp.swift +86 -0
  132. package/ios/RNFBApp/RCTConvertFIROptions.swift +259 -0
  133. package/ios/RNFBApp/RNFBAppCustomAuthDomains.swift +63 -0
  134. package/ios/RNFBApp/RNFBAppInitializeOptionsMapper.swift +113 -0
  135. package/ios/RNFBApp/RNFBAppLogLevelMapper.swift +53 -0
  136. package/ios/RNFBApp/RNFBAppModule+CustomAuthDomain.m +35 -0
  137. package/ios/RNFBApp/RNFBAppModule.h +6 -2
  138. package/ios/RNFBApp/RNFBAppModule.mm +67 -204
  139. package/ios/RNFBApp/RNFBAppModuleFirebase.swift +439 -0
  140. package/ios/RNFBApp/RNFBAppModuleImplementation.h +68 -0
  141. package/ios/RNFBApp/RNFBAppModuleImplementation.m +195 -0
  142. package/ios/RNFBApp/RNFBHandleMap.h +73 -0
  143. package/ios/RNFBApp/RNFBHandleMap.m +87 -0
  144. package/ios/RNFBApp/RNFBHandleMapStorage.swift +90 -0
  145. package/ios/RNFBApp/RNFBInitializeAppArguments.swift +82 -0
  146. package/ios/RNFBApp/RNFBJSON.m +22 -38
  147. package/ios/RNFBApp/RNFBJSONImplementation.swift +71 -0
  148. package/ios/RNFBApp/RNFBMeta.m +24 -26
  149. package/ios/RNFBApp/RNFBMetaStorage.swift +76 -0
  150. package/ios/RNFBApp/RNFBNullSentinelDecoding.swift +135 -0
  151. package/ios/RNFBApp/RNFBNullSentinelInterceptor.h +30 -3
  152. package/ios/RNFBApp/RNFBNullSentinelInterceptor.m +28 -5
  153. package/ios/RNFBApp/RNFBPreferences.m +22 -20
  154. package/ios/RNFBApp/RNFBPreferencesStorage.swift +101 -0
  155. package/ios/RNFBApp/RNFBRCTEventEmitter.m +36 -93
  156. package/ios/RNFBApp/RNFBRCTEventEmitterCore.swift +161 -0
  157. package/ios/RNFBApp/RNFBSharedUtils.h +2 -5
  158. package/ios/RNFBApp/RNFBSharedUtils.m +109 -197
  159. package/ios/RNFBApp/RNFBSharedUtilsConfig.swift +72 -0
  160. package/ios/RNFBApp/RNFBSharedUtilsFIRApp.swift +271 -0
  161. package/ios/RNFBApp/RNFBSharedUtilsFormatting.swift +59 -0
  162. package/ios/RNFBApp/RNFBSharedUtilsPromiseRejection.swift +88 -0
  163. package/ios/RNFBApp/RNFBUtilsHelpers.swift +116 -0
  164. package/ios/RNFBApp/RNFBUtilsModule+Foundation.m +44 -0
  165. package/ios/RNFBApp/RNFBUtilsModule+PhotoAssets.m +47 -0
  166. package/ios/RNFBApp/RNFBUtilsModule.h +11 -1
  167. package/ios/RNFBApp/RNFBUtilsModule.mm +10 -85
  168. package/ios/RNFBApp/RNFBUtilsModuleImplementation.h +32 -0
  169. package/ios/RNFBApp/RNFBUtilsModuleImplementation.m +56 -0
  170. package/ios/RNFBApp/RNFBVersion.m +1 -1
  171. package/ios/RNFBApp.xcodeproj/project.pbxproj +106 -0
  172. package/ios/RNFBAppUnitTests/HostStubs/FirebaseCore/FIRApp.m +171 -0
  173. package/ios/RNFBAppUnitTests/HostStubs/FirebaseCore/FirebaseCore.h +78 -0
  174. package/ios/RNFBAppUnitTests/HostStubs/FirebaseInstallations/FIRInstallations.m +7 -0
  175. package/ios/RNFBAppUnitTests/HostStubs/FirebaseInstallations/FirebaseInstallations.h +8 -0
  176. package/ios/RNFBAppUnitTests/HostStubs/RNFBAppModuleHostStub.m +55 -0
  177. package/ios/RNFBAppUnitTests/HostStubs/RNFBAppTurboModules.h +89 -0
  178. package/ios/RNFBAppUnitTests/HostStubs/RNFBAppTurboModules.mm +30 -0
  179. package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridge.h +19 -0
  180. package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridge.m +32 -0
  181. package/ios/RNFBAppUnitTests/HostStubs/React/RCTBridgeModule.h +19 -0
  182. package/ios/RNFBAppUnitTests/HostStubs/React/RCTConvert.h +28 -0
  183. package/ios/RNFBAppUnitTests/HostStubs/React/RCTConvert.m +23 -0
  184. package/ios/RNFBAppUnitTests/HostStubs/React/RCTEventEmitter.h +9 -0
  185. package/ios/RNFBAppUnitTests/HostStubs/React/RCTInvalidating.h +24 -0
  186. package/ios/RNFBAppUnitTests/HostStubs/React/RCTUtils.h +9 -0
  187. package/ios/RNFBAppUnitTests/HostStubs/module.modulemap +13 -0
  188. package/ios/RNFBAppUnitTests/RCTConvertFIRAppFacadeTests.m +61 -0
  189. package/ios/RNFBAppUnitTests/RCTConvertFIRAppTests.swift +73 -0
  190. package/ios/RNFBAppUnitTests/RCTConvertFIROptionsFacadeTests.m +57 -0
  191. package/ios/RNFBAppUnitTests/RCTConvertFIROptionsTests.swift +243 -0
  192. package/ios/RNFBAppUnitTests/RNFBAppCustomAuthDomainsFacadeTests.m +73 -0
  193. package/ios/RNFBAppUnitTests/RNFBAppCustomAuthDomainsTests.swift +70 -0
  194. package/ios/RNFBAppUnitTests/RNFBAppInitializeOptionsMapperTests.swift +190 -0
  195. package/ios/RNFBAppUnitTests/RNFBAppLogLevelFacadeTests.m +76 -0
  196. package/ios/RNFBAppUnitTests/RNFBAppLogLevelMapperTests.swift +59 -0
  197. package/ios/RNFBAppUnitTests/RNFBAppModuleFirebaseFacadeTests.m +215 -0
  198. package/ios/RNFBAppUnitTests/RNFBAppModuleFirebaseTests.swift +430 -0
  199. package/ios/RNFBAppUnitTests/RNFBAppModuleLifecycleTests.m +206 -0
  200. package/ios/RNFBAppUnitTests/RNFBAppModuleShellTests.mm +367 -0
  201. package/ios/RNFBAppUnitTests/RNFBAppUnitTests.xcodeproj/project.pbxproj +590 -0
  202. package/ios/RNFBAppUnitTests/RNFBAppUnitTests.xcodeproj/xcshareddata/xcschemes/RNFBAppUnitTests.xcscheme +69 -0
  203. package/ios/RNFBAppUnitTests/RNFBFirebaseAppClientTests.swift +165 -0
  204. package/ios/RNFBAppUnitTests/RNFBHandleMapStorageTests.swift +121 -0
  205. package/ios/RNFBAppUnitTests/RNFBHandleMapTests.m +238 -0
  206. package/ios/RNFBAppUnitTests/RNFBInitializeAppArgumentsTests.swift +256 -0
  207. package/ios/RNFBAppUnitTests/RNFBJSONImplementationTests.swift +126 -0
  208. package/ios/RNFBAppUnitTests/RNFBJSONTests.m +172 -0
  209. package/ios/RNFBAppUnitTests/RNFBMetaStorageTests.swift +106 -0
  210. package/ios/RNFBAppUnitTests/RNFBMetaTests.m +65 -0
  211. package/ios/RNFBAppUnitTests/RNFBNullSentinelDecodingTests.swift +286 -0
  212. package/ios/RNFBAppUnitTests/RNFBNullSentinelInterceptorTests.m +312 -0
  213. package/ios/RNFBAppUnitTests/RNFBPreferencesStorageTests.swift +105 -0
  214. package/ios/RNFBAppUnitTests/RNFBPreferencesTests.m +110 -0
  215. package/ios/RNFBAppUnitTests/RNFBRCTEventEmitterCoreTests.swift +163 -0
  216. package/ios/RNFBAppUnitTests/RNFBRCTEventEmitterFacadeTests.m +141 -0
  217. package/ios/RNFBAppUnitTests/RNFBSharedUtilsConfigFacadeTests.m +100 -0
  218. package/ios/RNFBAppUnitTests/RNFBSharedUtilsConfigTests.swift +234 -0
  219. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFIRAppFacadeTests.m +145 -0
  220. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFIRAppTests.swift +173 -0
  221. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFormattingFacadeTests.m +38 -0
  222. package/ios/RNFBAppUnitTests/RNFBSharedUtilsFormattingTests.swift +82 -0
  223. package/ios/RNFBAppUnitTests/RNFBSharedUtilsNullSentinelTests.m +35 -0
  224. package/ios/RNFBAppUnitTests/RNFBSharedUtilsPromiseRejectionFacadeTests.m +107 -0
  225. package/ios/RNFBAppUnitTests/RNFBSharedUtilsPromiseRejectionTests.swift +133 -0
  226. package/ios/RNFBAppUnitTests/RNFBUtilsHelpersTests.swift +144 -0
  227. package/ios/RNFBAppUnitTests/RNFBUtilsModuleFacadeTests.m +72 -0
  228. package/ios/RNFBAppUnitTests/RNFBUtilsModuleShellTests.mm +282 -0
  229. package/ios/RNFBFirebase/Package.swift +53 -0
  230. package/ios/RNFBFirebase/Sources/RNFBFirebase/RNFBFirebase.swift +285 -0
  231. package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/Public/.gitkeep +0 -0
  232. package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/RNFBFirebaseBridge.m +169 -0
  233. package/ios/RNFBFirebase/Sources/RNFBFirebaseBridge/include/RNFBFirebaseBridge.h +52 -0
  234. package/ios/RNFBFirebaseUnitTests/RNFBAppDynamicFacadeTests.swift +240 -0
  235. package/{android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppRegistrar.java → ios/RNFBFirebaseUnitTests/RNFBFirebaseClientImport.swift} +22 -17
  236. package/ios/RNFBFirebaseUnitTests/RNFBFirebaseUnitTests.xcodeproj/project.pbxproj +588 -0
  237. package/ios/RNFBFirebaseUnitTests/RNFBFirebaseUnitTests.xcodeproj/xcshareddata/xcschemes/RNFBFirebaseUnitTests.xcscheme +83 -0
  238. package/ios_config.sh +50 -22
  239. package/lib/FirebaseApp.ts +10 -0
  240. package/lib/common/Base64.ts +10 -16
  241. package/lib/common/deeps.ts +3 -0
  242. package/lib/common/index.ts +20 -9
  243. package/lib/internal/FirebaseModule.ts +6 -3
  244. package/lib/internal/NativeModules.ts +4 -1
  245. package/lib/internal/RNFBNativeEventEmitter.ts +14 -5
  246. package/lib/internal/SharedEventEmitter.ts +5 -1
  247. package/lib/internal/asyncStorage.ts +7 -11
  248. package/lib/internal/index.ts +1 -0
  249. package/lib/internal/logger.ts +53 -43
  250. package/lib/internal/nativeModuleAndroidIos.ts +2 -40
  251. package/lib/internal/nativeModuleDebug.ts +97 -0
  252. package/lib/internal/nativeModuleWeb.ts +10 -40
  253. package/lib/internal/react-native-vendor-emitter.d.ts +11 -0
  254. package/lib/internal/registry/app.ts +8 -2
  255. package/lib/internal/registry/modular.ts +2 -2
  256. package/lib/internal/registry/nativeModule.ts +3 -3
  257. package/lib/internal/web/RNFBAppModule.ts +16 -15
  258. package/lib/internal/web/memidb/lib/FakeEventTarget.js +3 -1
  259. package/lib/types/app.ts +10 -3
  260. package/lib/types/internal.ts +19 -0
  261. package/lib/version.ts +1 -1
  262. package/package.json +9 -8
  263. package/plugin/build/ios/appDelegate.js +19 -9
  264. package/plugin/build/ios/podfile.js +16 -16
  265. package/plugin/build/pluginConfig.d.ts +4 -2
  266. package/plugin/src/ios/appDelegate.ts +45 -15
  267. package/plugin/src/ios/podfile.ts +20 -23
  268. package/plugin/src/pluginConfig.ts +4 -2
  269. package/android/src/main/java/io/invertase/firebase/common/TaskExecutorService.java +0 -124
  270. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebaseModule.java +0 -62
  271. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebasePreferences.java +0 -91
  272. package/android/src/reactnative/java/io/invertase/firebase/app/NativeRNFBTurboApp.java +0 -222
  273. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseApp.java +0 -46
  274. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackage.java +0 -49
  275. package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.java +0 -191
  276. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEvent.java +0 -53
  277. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitter.java +0 -606
  278. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseJSON.java +0 -107
  279. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseMeta.java +0 -101
  280. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseModule.java +0 -146
  281. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebasePreferences.java +0 -96
  282. package/android/src/reactnative/java/io/invertase/firebase/common/SharedUtils.java +0 -441
  283. package/android/src/reactnative/java/io/invertase/firebase/utils/NativeRNFBTurboUtils.java +0 -223
@@ -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,36 +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>
37
+
44
38
  @end
45
39
 
46
40
  @implementation RNFBAppModule
47
41
 
42
+ - (instancetype)init {
43
+ if ((self = [super init])) {
44
+ RNFBAppModuleInitialize();
45
+ }
46
+ return self;
47
+ }
48
+
48
49
  #pragma mark -
49
50
  #pragma mark Module Setup
50
51
 
@@ -56,253 +57,115 @@ RCT_EXPORT_MODULE(NativeRNFBTurboApp)
56
57
  }
57
58
 
58
59
  - (void)setBridge:(RCTBridge *)bridge {
59
- [RNFBRCTEventEmitter shared].bridge = bridge;
60
+ RNFBAppModuleSetBridge(bridge);
60
61
  }
61
62
 
62
63
  - (RCTBridge *)bridge {
63
- return [RNFBRCTEventEmitter shared].bridge;
64
- }
65
-
66
- - (id)init {
67
- if (self = [super init]) {
68
- #ifdef REGISTER_LIB
69
- static dispatch_once_t once;
70
- dispatch_once(&once, ^{
71
- [FIRApp registerLibrary:@"react-native-firebase" withVersion:[RNFBVersionString copy]];
72
- });
73
- #endif
74
- if ([[RNFBJSON shared] contains:@"app_log_level"]) {
75
- NSString *logLevel = [[RNFBJSON shared] getStringValue:@"app_log_level" defaultValue:@"info"];
76
- [self setLogLevel:logLevel];
77
- }
78
- }
79
-
80
- return self;
64
+ return RNFBAppModuleBridge();
81
65
  }
82
66
 
83
67
  - (void)invalidate {
84
- [[RNFBRCTEventEmitter shared] invalidate];
68
+ RNFBAppModuleInvalidate();
85
69
  }
86
70
 
87
71
  #pragma mark -
88
72
  #pragma mark Constants
89
73
 
90
- - (NSDictionary *)appConstantsDictionary {
91
- NSDictionary *firApps = [FIRApp allApps];
92
- NSMutableArray *appsArray = [NSMutableArray new];
93
- NSMutableDictionary *constants = [NSMutableDictionary new];
94
-
95
- for (id key in firApps) {
96
- [appsArray addObject:[RNFBSharedUtils firAppToDictionary:firApps[key]]];
97
- }
98
-
99
- constants[@"NATIVE_FIREBASE_APPS"] = appsArray;
100
- constants[@"FIREBASE_RAW_JSON"] = [[RNFBJSON shared] getRawJSON];
101
-
102
- return constants;
103
- }
104
-
105
74
  - (facebook::react::ModuleConstants<JS::NativeRNFBTurboApp::Constants>)constantsToExport {
106
- return [_RCTTypedModuleConstants newWithUnsafeDictionary:[self appConstantsDictionary]];
75
+ return [_RCTTypedModuleConstants newWithUnsafeDictionary:RNFBAppModuleConstantsDictionary()];
107
76
  }
108
77
 
109
78
  - (facebook::react::ModuleConstants<JS::NativeRNFBTurboApp::Constants>)getConstants {
110
- return [self constantsToExport];
79
+ return [_RCTTypedModuleConstants newWithUnsafeDictionary:RNFBAppModuleConstantsDictionary()];
111
80
  }
112
81
 
113
- #pragma mark -
114
- #pragma mark META Methods
115
-
116
- - (void)metaGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
117
- resolve([RNFBMeta getAll]);
118
- }
119
-
120
- #pragma mark -
121
- #pragma mark JSON Methods
122
-
123
- - (void)jsonGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
124
- resolve([[RNFBJSON shared] getAll]);
82
+ + (BOOL)requiresMainQueueSetup {
83
+ return NO;
125
84
  }
126
85
 
127
86
  #pragma mark -
128
- #pragma mark Preference Methods
129
-
130
- - (void)preferencesSetBool:(NSString *)key
131
- value:(BOOL)value
132
- resolve:(RCTPromiseResolveBlock)resolve
133
- reject:(RCTPromiseRejectBlock)reject {
134
- [[RNFBPreferences shared] setBooleanValue:key boolValue:value];
135
- resolve([NSNull null]);
136
- }
87
+ #pragma mark Methods
137
88
 
138
- - (void)preferencesSetString:(NSString *)key
139
- value:(NSString *)value
140
- resolve:(RCTPromiseResolveBlock)resolve
141
- reject:(RCTPromiseRejectBlock)reject {
142
- [[RNFBPreferences shared] setStringValue:key stringValue:value];
143
- 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);
144
94
  }
145
95
 
146
- - (void)preferencesGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
147
- resolve([[RNFBPreferences shared] getAll]);
96
+ - (void)setAutomaticDataCollectionEnabled:(NSString *)appName enabled:(BOOL)enabled {
97
+ RNFBAppModuleSetAutomaticDataCollectionEnabled(appName, enabled);
148
98
  }
149
99
 
150
- - (void)preferencesClearAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
151
- [[RNFBPreferences shared] clearAll];
152
- resolve([NSNull null]);
100
+ - (void)deleteApp:(NSString *)appName
101
+ resolve:(RCTPromiseResolveBlock)resolve
102
+ reject:(RCTPromiseRejectBlock)reject {
103
+ RNFBAppModuleDeleteApp(appName, resolve, reject);
153
104
  }
154
105
 
155
- #pragma mark -
156
- #pragma mark Event Methods
157
-
158
106
  - (void)eventsNotifyReady:(BOOL)ready {
159
- [[RNFBRCTEventEmitter shared] notifyJsReady:ready];
107
+ RNFBAppModuleEventsNotifyReady(ready);
160
108
  }
161
109
 
162
110
  - (void)eventsGetListeners:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
163
- resolve([[RNFBRCTEventEmitter shared] getListenersDictionary]);
111
+ RNFBAppModuleEventsGetListeners(resolve, reject);
164
112
  }
165
113
 
166
114
  - (void)eventsPing:(NSString *)eventName
167
115
  eventBody:(NSDictionary *)eventBody
168
116
  resolve:(RCTPromiseResolveBlock)resolve
169
117
  reject:(RCTPromiseRejectBlock)reject {
170
- [[RNFBRCTEventEmitter shared] sendEventWithName:eventName body:eventBody];
171
- resolve(eventBody);
118
+ RNFBAppModuleEventsPing(eventName, eventBody, resolve, reject);
172
119
  }
173
120
 
174
121
  - (void)eventsAddListener:(NSString *)eventName {
175
- [[RNFBRCTEventEmitter shared] addListener:eventName];
122
+ RNFBAppModuleEventsAddListener(eventName);
176
123
  }
177
124
 
178
125
  - (void)eventsRemoveListener:(NSString *)eventName all:(BOOL)all {
179
- [[RNFBRCTEventEmitter shared] removeListeners:eventName all:all];
126
+ RNFBAppModuleEventsRemoveListener(eventName, all);
180
127
  }
181
128
 
182
- #pragma mark -
183
- #pragma mark Events Unused
184
-
185
129
  - (void)addListener:(NSString *)eventName {
186
- // Keep: Required for RN built in Event Emitter Calls.
130
+ RNFBAppModuleAddListener(eventName);
187
131
  }
188
132
 
189
133
  - (void)removeListeners:(double)count {
190
- // Keep: Required for RN built in Event Emitter Calls.
134
+ RNFBAppModuleRemoveListeners(count);
191
135
  }
192
136
 
193
- #pragma mark -
194
- #pragma mark Firebase App Methods
195
-
196
- - (void)initializeApp:(NSDictionary *)options
197
- appConfig:(NSDictionary *)appConfig
198
- resolve:(RCTPromiseResolveBlock)resolve
199
- reject:(RCTPromiseRejectBlock)reject {
200
- RCTUnsafeExecuteOnMainQueueSync(^{
201
- FIRApp *firApp;
202
- NSString *appName = [appConfig valueForKey:@"name"];
203
-
204
- NSString *appId = [options valueForKey:@"appId"];
205
- NSString *messagingSenderId = [options valueForKey:@"messagingSenderId"];
206
- FIROptions *firOptions = [[FIROptions alloc] initWithGoogleAppID:appId
207
- GCMSenderID:messagingSenderId];
208
- firOptions.APIKey = [options valueForKey:@"apiKey"];
209
- firOptions.projectID = [options valueForKey:@"projectId"];
210
- if (![[options valueForKey:@"databaseURL"] isEqual:[NSNull null]]) {
211
- firOptions.databaseURL = [options valueForKey:@"databaseURL"];
212
- }
213
- if (![[options valueForKey:@"storageBucket"] isEqual:[NSNull null]]) {
214
- firOptions.storageBucket = [options valueForKey:@"storageBucket"];
215
- }
216
- if (![[options valueForKey:@"iosBundleId"] isEqual:[NSNull null]]) {
217
- firOptions.bundleID = [options valueForKey:@"iosBundleId"];
218
- }
219
- if (![[options valueForKey:@"iosClientId"] isEqual:[NSNull null]]) {
220
- firOptions.clientID = [options valueForKey:@"iosClientId"];
221
- }
222
- if (![[options valueForKey:@"appGroupId"] isEqual:[NSNull null]]) {
223
- firOptions.appGroupID = [options valueForKey:@"appGroupId"];
224
- }
225
-
226
- if ([options valueForKey:@"authDomain"] != nil) {
227
- DLog(@"RNFBAuth app: %@ customAuthDomain: %@", appName, [options valueForKey:@"authDomain"]);
228
- if (customAuthDomains == nil) {
229
- customAuthDomains = [[NSMutableDictionary alloc] init];
230
- }
231
- customAuthDomains[appName] = [options valueForKey:@"authDomain"];
232
- }
233
- @try {
234
- if (!appName || [appName isEqualToString:DEFAULT_APP_DISPLAY_NAME]) {
235
- [FIRApp configureWithOptions:firOptions];
236
- firApp = [FIRApp defaultApp];
237
- } else {
238
- [FIRApp configureWithName:appName options:firOptions];
239
- firApp = [FIRApp appNamed:appName];
240
- }
241
- } @catch (NSException *exception) {
242
- return [RNFBSharedUtils rejectPromiseWithExceptionDict:reject exception:exception];
243
- }
244
-
245
- firApp.dataCollectionDefaultEnabled =
246
- (BOOL)[appConfig valueForKey:@"automaticDataCollectionEnabled"];
247
-
248
- resolve([RNFBSharedUtils firAppToDictionary:firApp]);
249
- });
137
+ - (void)metaGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
138
+ RNFBAppModuleMetaGetAll(resolve, reject);
250
139
  }
251
140
 
252
- static NSMutableDictionary<NSString *, NSString *> *customAuthDomains;
253
-
254
- + (NSString *)getCustomDomain:(NSString *)appName {
255
- DLog(@"authDomains: %@", customAuthDomains);
256
- return customAuthDomains[appName];
141
+ - (void)jsonGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
142
+ RNFBAppModuleJSONGetAll(resolve, reject);
257
143
  }
258
144
 
259
- - (void)setLogLevel:(NSString *)logLevel {
260
- int level = FIRLoggerLevelError;
261
- if ([logLevel isEqualToString:@"verbose"]) {
262
- level = FIRLoggerLevelDebug;
263
- } else if ([logLevel isEqualToString:@"debug"]) {
264
- level = FIRLoggerLevelDebug;
265
- } else if ([logLevel isEqualToString:@"info"]) {
266
- level = FIRLoggerLevelInfo;
267
- } else if ([logLevel isEqualToString:@"warn"]) {
268
- level = FIRLoggerLevelWarning;
269
- }
270
- DLog(@"RNFBSetLogLevel: setting level to %d from %@.", level, logLevel);
271
- [[FIRConfiguration sharedInstance] setLoggerLevel:(FIRLoggerLevel)level];
145
+ - (void)preferencesSetBool:(NSString *)key
146
+ value:(BOOL)value
147
+ resolve:(RCTPromiseResolveBlock)resolve
148
+ reject:(RCTPromiseRejectBlock)reject {
149
+ RNFBAppModulePreferencesSetBool(key, value, resolve, reject);
272
150
  }
273
151
 
274
- - (void)setAutomaticDataCollectionEnabled:(NSString *)appName enabled:(BOOL)enabled {
275
- FIRApp *firApp = [RCTConvert firAppFromString:appName];
276
- if (firApp) {
277
- firApp.dataCollectionDefaultEnabled = enabled;
278
- }
152
+ - (void)preferencesSetString:(NSString *)key
153
+ value:(NSString *)value
154
+ resolve:(RCTPromiseResolveBlock)resolve
155
+ reject:(RCTPromiseRejectBlock)reject {
156
+ RNFBAppModulePreferencesSetString(key, value, resolve, reject);
279
157
  }
280
158
 
281
- - (void)deleteApp:(NSString *)appName
282
- resolve:(RCTPromiseResolveBlock)resolve
283
- reject:(RCTPromiseRejectBlock)reject {
284
- FIRApp *firApp = [RCTConvert firAppFromString:appName];
285
- if (!firApp) {
286
- return resolve([NSNull null]);
287
- }
159
+ - (void)preferencesGetAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
160
+ RNFBAppModulePreferencesGetAll(resolve, reject);
161
+ }
288
162
 
289
- [firApp deleteApp:^(BOOL success) {
290
- if (success) {
291
- resolve([NSNull null]);
292
- } else {
293
- [firApp deleteApp:^(BOOL success2) {
294
- if (success2) {
295
- resolve([NSNull null]);
296
- } else {
297
- reject(@"app/delete-app-failed", @"Failed to delete the specified app.", nil);
298
- }
299
- }];
300
- }
301
- }];
163
+ - (void)preferencesClearAll:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
164
+ RNFBAppModulePreferencesClearAll(resolve, reject);
302
165
  }
303
166
 
304
- + (BOOL)requiresMainQueueSetup {
305
- return NO;
167
+ - (void)setLogLevel:(NSString *)logLevel {
168
+ RNFBAppModuleSetLogLevel(logLevel);
306
169
  }
307
170
 
308
171
  @end