@react-native-firebase/app 23.6.0 → 23.8.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 (672) hide show
  1. package/dist/commonjs/FirebaseApp.js +85 -0
  2. package/dist/commonjs/FirebaseApp.js.map +1 -0
  3. package/dist/commonjs/common/Base64.js +106 -0
  4. package/dist/commonjs/common/Base64.js.map +1 -0
  5. package/dist/commonjs/common/MutatableParams.js +50 -0
  6. package/dist/commonjs/common/MutatableParams.js.map +1 -0
  7. package/dist/commonjs/common/ReferenceBase.js +49 -0
  8. package/dist/commonjs/common/ReferenceBase.js.map +1 -0
  9. package/dist/commonjs/common/deeps.js +82 -0
  10. package/dist/commonjs/common/deeps.js.map +1 -0
  11. package/dist/commonjs/common/id.js +88 -0
  12. package/dist/commonjs/common/id.js.map +1 -0
  13. package/dist/commonjs/common/index.js +799 -0
  14. package/dist/commonjs/common/index.js.map +1 -0
  15. package/dist/commonjs/common/path.js +133 -0
  16. package/dist/commonjs/common/path.js.map +1 -0
  17. package/dist/commonjs/common/promise.js +65 -0
  18. package/dist/commonjs/common/promise.js.map +1 -0
  19. package/dist/commonjs/common/serialize.js +48 -0
  20. package/dist/commonjs/common/serialize.js.map +1 -0
  21. package/dist/commonjs/common/unitTestUtils.js +54 -0
  22. package/dist/commonjs/common/unitTestUtils.js.map +1 -0
  23. package/dist/commonjs/common/validate.js +236 -0
  24. package/dist/commonjs/common/validate.js.map +1 -0
  25. package/dist/commonjs/index.js +42 -0
  26. package/dist/commonjs/index.js.map +1 -0
  27. package/dist/commonjs/internal/FirebaseModule.js +63 -0
  28. package/dist/commonjs/internal/FirebaseModule.js.map +1 -0
  29. package/dist/commonjs/internal/NativeFirebaseError.js +92 -0
  30. package/dist/commonjs/internal/NativeFirebaseError.js.map +1 -0
  31. package/dist/commonjs/internal/NativeModules.js +6 -0
  32. package/dist/commonjs/internal/NativeModules.js.map +1 -0
  33. package/dist/commonjs/internal/RNFBNativeEventEmitter.js +118 -0
  34. package/dist/commonjs/internal/RNFBNativeEventEmitter.js.map +1 -0
  35. package/dist/commonjs/internal/SharedEventEmitter.js +26 -0
  36. package/dist/commonjs/internal/SharedEventEmitter.js.map +1 -0
  37. package/dist/commonjs/internal/asyncStorage.js +83 -0
  38. package/dist/commonjs/internal/asyncStorage.js.map +1 -0
  39. package/dist/commonjs/internal/constants.js +27 -0
  40. package/dist/commonjs/internal/constants.js.map +1 -0
  41. package/dist/commonjs/internal/index.js +109 -0
  42. package/dist/commonjs/internal/index.js.map +1 -0
  43. package/dist/commonjs/internal/logger.js +256 -0
  44. package/dist/commonjs/internal/logger.js.map +1 -0
  45. package/dist/commonjs/internal/nativeModule.android.js +19 -0
  46. package/dist/commonjs/internal/nativeModule.android.js.map +1 -0
  47. package/dist/commonjs/internal/nativeModule.ios.js +19 -0
  48. package/dist/commonjs/internal/nativeModule.ios.js.map +1 -0
  49. package/dist/commonjs/internal/nativeModule.js +19 -0
  50. package/dist/commonjs/internal/nativeModule.js.map +1 -0
  51. package/dist/commonjs/internal/nativeModuleAndroidIos.js +51 -0
  52. package/dist/commonjs/internal/nativeModuleAndroidIos.js.map +1 -0
  53. package/dist/commonjs/internal/nativeModuleWeb.js +52 -0
  54. package/dist/commonjs/internal/nativeModuleWeb.js.map +1 -0
  55. package/dist/commonjs/internal/nullSerialization.js +162 -0
  56. package/dist/commonjs/internal/nullSerialization.js.map +1 -0
  57. package/dist/commonjs/internal/registry/app.js +238 -0
  58. package/dist/commonjs/internal/registry/app.js.map +1 -0
  59. package/dist/commonjs/internal/registry/namespace.js +269 -0
  60. package/dist/commonjs/internal/registry/namespace.js.map +1 -0
  61. package/dist/commonjs/internal/registry/nativeModule.js +224 -0
  62. package/dist/commonjs/internal/registry/nativeModule.js.map +1 -0
  63. package/dist/commonjs/internal/web/RNFBAppModule.js +273 -0
  64. package/dist/commonjs/internal/web/RNFBAppModule.js.map +1 -0
  65. package/dist/commonjs/internal/web/firebaseApp.js +17 -0
  66. package/dist/commonjs/internal/web/firebaseApp.js.map +1 -0
  67. package/dist/commonjs/internal/web/firebaseAppCheck.js +36 -0
  68. package/dist/commonjs/internal/web/firebaseAppCheck.js.map +1 -0
  69. package/dist/commonjs/internal/web/firebaseAuth.js +28 -0
  70. package/dist/commonjs/internal/web/firebaseAuth.js.map +1 -0
  71. package/dist/commonjs/internal/web/firebaseDatabase.js +28 -0
  72. package/dist/commonjs/internal/web/firebaseDatabase.js.map +1 -0
  73. package/dist/commonjs/internal/web/firebaseFirestore.js +28 -0
  74. package/dist/commonjs/internal/web/firebaseFirestore.js.map +1 -0
  75. package/dist/commonjs/internal/web/firebaseFunctions.js +28 -0
  76. package/dist/commonjs/internal/web/firebaseFunctions.js.map +1 -0
  77. package/dist/commonjs/internal/web/firebaseInstallations.js +36 -0
  78. package/dist/commonjs/internal/web/firebaseInstallations.js.map +1 -0
  79. package/dist/commonjs/internal/web/firebaseRemoteConfig.js +36 -0
  80. package/dist/commonjs/internal/web/firebaseRemoteConfig.js.map +1 -0
  81. package/dist/commonjs/internal/web/firebaseStorage.js +28 -0
  82. package/dist/commonjs/internal/web/firebaseStorage.js.map +1 -0
  83. package/dist/commonjs/internal/web/memidb/FDBCursor.js +479 -0
  84. package/dist/commonjs/internal/web/memidb/FDBCursor.js.map +1 -0
  85. package/dist/commonjs/internal/web/memidb/FDBCursorWithValue.js +19 -0
  86. package/dist/commonjs/internal/web/memidb/FDBCursorWithValue.js.map +1 -0
  87. package/dist/commonjs/internal/web/memidb/FDBDatabase.js +163 -0
  88. package/dist/commonjs/internal/web/memidb/FDBDatabase.js.map +1 -0
  89. package/dist/commonjs/internal/web/memidb/FDBFactory.js +264 -0
  90. package/dist/commonjs/internal/web/memidb/FDBFactory.js.map +1 -0
  91. package/dist/commonjs/internal/web/memidb/FDBIndex.js +191 -0
  92. package/dist/commonjs/internal/web/memidb/FDBIndex.js.map +1 -0
  93. package/dist/commonjs/internal/web/memidb/FDBKeyRange.js +78 -0
  94. package/dist/commonjs/internal/web/memidb/FDBKeyRange.js.map +1 -0
  95. package/dist/commonjs/internal/web/memidb/FDBObjectStore.js +383 -0
  96. package/dist/commonjs/internal/web/memidb/FDBObjectStore.js.map +1 -0
  97. package/dist/commonjs/internal/web/memidb/FDBOpenDBRequest.js +17 -0
  98. package/dist/commonjs/internal/web/memidb/FDBOpenDBRequest.js.map +1 -0
  99. package/dist/commonjs/internal/web/memidb/FDBRequest.js +41 -0
  100. package/dist/commonjs/internal/web/memidb/FDBRequest.js.map +1 -0
  101. package/dist/commonjs/internal/web/memidb/FDBTransaction.js +221 -0
  102. package/dist/commonjs/internal/web/memidb/FDBTransaction.js.map +1 -0
  103. package/dist/commonjs/internal/web/memidb/FDBVersionChangeEvent.js +20 -0
  104. package/dist/commonjs/internal/web/memidb/FDBVersionChangeEvent.js.map +1 -0
  105. package/dist/commonjs/internal/web/memidb/LICENSE +208 -0
  106. package/dist/commonjs/internal/web/memidb/index.js +45 -0
  107. package/dist/commonjs/internal/web/memidb/index.js.map +1 -0
  108. package/dist/commonjs/internal/web/memidb/lib/Database.js +38 -0
  109. package/dist/commonjs/internal/web/memidb/lib/Database.js.map +1 -0
  110. package/dist/commonjs/internal/web/memidb/lib/FakeDOMStringList.js +78 -0
  111. package/dist/commonjs/internal/web/memidb/lib/FakeDOMStringList.js.map +1 -0
  112. package/dist/commonjs/internal/web/memidb/lib/FakeEvent.js +45 -0
  113. package/dist/commonjs/internal/web/memidb/lib/FakeEvent.js.map +1 -0
  114. package/dist/commonjs/internal/web/memidb/lib/FakeEventTarget.js +111 -0
  115. package/dist/commonjs/internal/web/memidb/lib/FakeEventTarget.js.map +1 -0
  116. package/dist/commonjs/internal/web/memidb/lib/Index.js +164 -0
  117. package/dist/commonjs/internal/web/memidb/lib/Index.js.map +1 -0
  118. package/dist/commonjs/internal/web/memidb/lib/KeyGenerator.js +29 -0
  119. package/dist/commonjs/internal/web/memidb/lib/KeyGenerator.js.map +1 -0
  120. package/dist/commonjs/internal/web/memidb/lib/ObjectStore.js +180 -0
  121. package/dist/commonjs/internal/web/memidb/lib/ObjectStore.js.map +1 -0
  122. package/dist/commonjs/internal/web/memidb/lib/RecordStore.js +141 -0
  123. package/dist/commonjs/internal/web/memidb/lib/RecordStore.js.map +1 -0
  124. package/dist/commonjs/internal/web/memidb/lib/binarySearch.js +86 -0
  125. package/dist/commonjs/internal/web/memidb/lib/binarySearch.js.map +1 -0
  126. package/dist/commonjs/internal/web/memidb/lib/canInjectKey.js +30 -0
  127. package/dist/commonjs/internal/web/memidb/lib/canInjectKey.js.map +1 -0
  128. package/dist/commonjs/internal/web/memidb/lib/cmp.js +85 -0
  129. package/dist/commonjs/internal/web/memidb/lib/cmp.js.map +1 -0
  130. package/dist/commonjs/internal/web/memidb/lib/enforceRange.js +20 -0
  131. package/dist/commonjs/internal/web/memidb/lib/enforceRange.js.map +1 -0
  132. package/dist/commonjs/internal/web/memidb/lib/errors.js +95 -0
  133. package/dist/commonjs/internal/web/memidb/lib/errors.js.map +1 -0
  134. package/dist/commonjs/internal/web/memidb/lib/extractKey.js +46 -0
  135. package/dist/commonjs/internal/web/memidb/lib/extractKey.js.map +1 -0
  136. package/dist/commonjs/internal/web/memidb/lib/scheduling.js +37 -0
  137. package/dist/commonjs/internal/web/memidb/lib/scheduling.js.map +1 -0
  138. package/dist/commonjs/internal/web/memidb/lib/types.js +6 -0
  139. package/dist/commonjs/internal/web/memidb/lib/types.js.map +1 -0
  140. package/dist/commonjs/internal/web/memidb/lib/validateKeyPath.js +51 -0
  141. package/dist/commonjs/internal/web/memidb/lib/validateKeyPath.js.map +1 -0
  142. package/dist/commonjs/internal/web/memidb/lib/valueToKey.js +62 -0
  143. package/dist/commonjs/internal/web/memidb/lib/valueToKey.js.map +1 -0
  144. package/dist/commonjs/internal/web/memidb/lib/valueToKeyRange.js +26 -0
  145. package/dist/commonjs/internal/web/memidb/lib/valueToKeyRange.js.map +1 -0
  146. package/dist/commonjs/internal/web/structuredClone/index.js +239 -0
  147. package/dist/commonjs/internal/web/structuredClone/index.js.map +1 -0
  148. package/dist/commonjs/internal/web/utils.js +59 -0
  149. package/dist/commonjs/internal/web/utils.js.map +1 -0
  150. package/dist/commonjs/modular.js +190 -0
  151. package/dist/commonjs/modular.js.map +1 -0
  152. package/{android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppRegistrar.java → dist/commonjs/namespaced.js} +17 -17
  153. package/dist/commonjs/namespaced.js.map +1 -0
  154. package/dist/commonjs/package.json +1 -0
  155. package/dist/commonjs/types/app.js +139 -0
  156. package/dist/commonjs/types/app.js.map +1 -0
  157. package/dist/commonjs/types/internal.js +6 -0
  158. package/dist/commonjs/types/internal.js.map +1 -0
  159. package/dist/commonjs/utils/UtilsStatics.js +59 -0
  160. package/dist/commonjs/utils/UtilsStatics.js.map +1 -0
  161. package/dist/commonjs/utils/index.js +94 -0
  162. package/dist/commonjs/utils/index.js.map +1 -0
  163. package/dist/commonjs/version.js +9 -0
  164. package/dist/commonjs/version.js.map +1 -0
  165. package/{lib → dist/module}/FirebaseApp.js +14 -14
  166. package/dist/module/FirebaseApp.js.map +1 -0
  167. package/dist/module/common/Base64.js +100 -0
  168. package/dist/module/common/Base64.js.map +1 -0
  169. package/{lib → dist/module}/common/MutatableParams.js +4 -6
  170. package/dist/module/common/MutatableParams.js.map +1 -0
  171. package/{lib → dist/module}/common/ReferenceBase.js +3 -2
  172. package/dist/module/common/ReferenceBase.js.map +1 -0
  173. package/{lib → dist/module}/common/deeps.js +5 -9
  174. package/dist/module/common/deeps.js.map +1 -0
  175. package/{lib → dist/module}/common/id.js +20 -11
  176. package/dist/module/common/id.js.map +1 -0
  177. package/dist/module/common/index.js +701 -0
  178. package/dist/module/common/index.js.map +1 -0
  179. package/{lib → dist/module}/common/path.js +4 -8
  180. package/dist/module/common/path.js.map +1 -0
  181. package/{lib → dist/module}/common/promise.js +21 -23
  182. package/dist/module/common/promise.js.map +1 -0
  183. package/dist/module/common/serialize.js +43 -0
  184. package/dist/module/common/serialize.js.map +1 -0
  185. package/dist/module/common/unitTestUtils.js +48 -0
  186. package/dist/module/common/unitTestUtils.js.map +1 -0
  187. package/{lib → dist/module}/common/validate.js +20 -16
  188. package/dist/module/common/validate.js.map +1 -0
  189. package/{ios/RNFBApp/RNFBVersion.m → dist/module/index.js} +6 -5
  190. package/dist/module/index.js.map +1 -0
  191. package/{lib → dist/module}/internal/FirebaseModule.js +6 -11
  192. package/dist/module/internal/FirebaseModule.js.map +1 -0
  193. package/{lib → dist/module}/internal/NativeFirebaseError.js +19 -24
  194. package/dist/module/internal/NativeFirebaseError.js.map +1 -0
  195. package/dist/module/internal/NativeModules.js +4 -0
  196. package/dist/module/internal/NativeModules.js.map +1 -0
  197. package/{lib → dist/module}/internal/RNFBNativeEventEmitter.js +30 -21
  198. package/dist/module/internal/RNFBNativeEventEmitter.js.map +1 -0
  199. package/{android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java → dist/module/internal/SharedEventEmitter.js} +5 -5
  200. package/dist/module/internal/SharedEventEmitter.js.map +1 -0
  201. package/dist/module/internal/asyncStorage.js +73 -0
  202. package/dist/module/internal/asyncStorage.js.map +1 -0
  203. package/dist/module/internal/constants.js +23 -0
  204. package/dist/module/internal/constants.js.map +1 -0
  205. package/dist/module/internal/index.js +30 -0
  206. package/dist/module/internal/index.js.map +1 -0
  207. package/{lib → dist/module}/internal/logger.js +65 -55
  208. package/dist/module/internal/logger.js.map +1 -0
  209. package/dist/module/internal/nativeModule.android.js +5 -0
  210. package/dist/module/internal/nativeModule.android.js.map +1 -0
  211. package/dist/module/internal/nativeModule.ios.js +5 -0
  212. package/dist/module/internal/nativeModule.ios.js.map +1 -0
  213. package/dist/module/internal/nativeModule.js +7 -0
  214. package/dist/module/internal/nativeModule.js.map +1 -0
  215. package/dist/module/internal/nativeModuleAndroidIos.js +46 -0
  216. package/dist/module/internal/nativeModuleAndroidIos.js.map +1 -0
  217. package/dist/module/internal/nativeModuleWeb.js +45 -0
  218. package/dist/module/internal/nativeModuleWeb.js.map +1 -0
  219. package/dist/module/internal/nullSerialization.js +158 -0
  220. package/dist/module/internal/nullSerialization.js.map +1 -0
  221. package/{lib → dist/module}/internal/registry/app.js +41 -79
  222. package/dist/module/internal/registry/app.js.map +1 -0
  223. package/dist/module/internal/registry/namespace.js +262 -0
  224. package/dist/module/internal/registry/namespace.js.map +1 -0
  225. package/{lib → dist/module}/internal/registry/nativeModule.js +46 -62
  226. package/dist/module/internal/registry/nativeModule.js.map +1 -0
  227. package/{lib → dist/module}/internal/web/RNFBAppModule.js +76 -67
  228. package/dist/module/internal/web/RNFBAppModule.js.map +1 -0
  229. package/{android/src/reactnative/java/io/invertase/firebase/interfaces/NativeEvent.java → dist/module/internal/web/firebaseApp.js} +5 -10
  230. package/dist/module/internal/web/firebaseApp.js.map +1 -0
  231. package/{android/src/reactnative/java/io/invertase/firebase/interfaces/NativeError.java → dist/module/internal/web/firebaseAppCheck.js} +8 -14
  232. package/dist/module/internal/web/firebaseAppCheck.js.map +1 -0
  233. package/dist/module/internal/web/firebaseAuth.js +24 -0
  234. package/dist/module/internal/web/firebaseAuth.js.map +1 -0
  235. package/dist/module/internal/web/firebaseDatabase.js +24 -0
  236. package/dist/module/internal/web/firebaseDatabase.js.map +1 -0
  237. package/dist/module/internal/web/firebaseFirestore.js +24 -0
  238. package/dist/module/internal/web/firebaseFirestore.js.map +1 -0
  239. package/dist/module/internal/web/firebaseFunctions.js +24 -0
  240. package/dist/module/internal/web/firebaseFunctions.js.map +1 -0
  241. package/dist/module/internal/web/firebaseInstallations.js +26 -0
  242. package/dist/module/internal/web/firebaseInstallations.js.map +1 -0
  243. package/{android/src/reactnative/java/io/invertase/firebase/interfaces/ContextProvider.java → dist/module/internal/web/firebaseRemoteConfig.js} +8 -12
  244. package/dist/module/internal/web/firebaseRemoteConfig.js.map +1 -0
  245. package/dist/module/internal/web/firebaseStorage.js +24 -0
  246. package/dist/module/internal/web/firebaseStorage.js.map +1 -0
  247. package/dist/module/internal/web/memidb/FDBCursor.js +474 -0
  248. package/dist/module/internal/web/memidb/FDBCursor.js.map +1 -0
  249. package/dist/module/internal/web/memidb/FDBCursorWithValue.js +14 -0
  250. package/dist/module/internal/web/memidb/FDBCursorWithValue.js.map +1 -0
  251. package/dist/module/internal/web/memidb/FDBDatabase.js +158 -0
  252. package/dist/module/internal/web/memidb/FDBDatabase.js.map +1 -0
  253. package/dist/module/internal/web/memidb/FDBFactory.js +259 -0
  254. package/dist/module/internal/web/memidb/FDBFactory.js.map +1 -0
  255. package/dist/module/internal/web/memidb/FDBIndex.js +186 -0
  256. package/dist/module/internal/web/memidb/FDBIndex.js.map +1 -0
  257. package/dist/module/internal/web/memidb/FDBKeyRange.js +74 -0
  258. package/dist/module/internal/web/memidb/FDBKeyRange.js.map +1 -0
  259. package/dist/module/internal/web/memidb/FDBObjectStore.js +378 -0
  260. package/dist/module/internal/web/memidb/FDBObjectStore.js.map +1 -0
  261. package/dist/module/internal/web/memidb/FDBOpenDBRequest.js +12 -0
  262. package/dist/module/internal/web/memidb/FDBOpenDBRequest.js.map +1 -0
  263. package/dist/module/internal/web/memidb/FDBRequest.js +36 -0
  264. package/dist/module/internal/web/memidb/FDBRequest.js.map +1 -0
  265. package/dist/module/internal/web/memidb/FDBTransaction.js +216 -0
  266. package/dist/module/internal/web/memidb/FDBTransaction.js.map +1 -0
  267. package/dist/module/internal/web/memidb/FDBVersionChangeEvent.js +15 -0
  268. package/dist/module/internal/web/memidb/FDBVersionChangeEvent.js.map +1 -0
  269. package/dist/module/internal/web/memidb/LICENSE +208 -0
  270. package/dist/module/internal/web/memidb/index.js +41 -0
  271. package/dist/module/internal/web/memidb/index.js.map +1 -0
  272. package/dist/module/internal/web/memidb/lib/Database.js +35 -0
  273. package/dist/module/internal/web/memidb/lib/Database.js.map +1 -0
  274. package/dist/module/internal/web/memidb/lib/FakeDOMStringList.js +75 -0
  275. package/dist/module/internal/web/memidb/lib/FakeDOMStringList.js.map +1 -0
  276. package/dist/module/internal/web/memidb/lib/FakeEvent.js +41 -0
  277. package/dist/module/internal/web/memidb/lib/FakeEvent.js.map +1 -0
  278. package/dist/module/internal/web/memidb/lib/FakeEventTarget.js +107 -0
  279. package/dist/module/internal/web/memidb/lib/FakeEventTarget.js.map +1 -0
  280. package/dist/module/internal/web/memidb/lib/Index.js +160 -0
  281. package/dist/module/internal/web/memidb/lib/Index.js.map +1 -0
  282. package/dist/module/internal/web/memidb/lib/KeyGenerator.js +25 -0
  283. package/dist/module/internal/web/memidb/lib/KeyGenerator.js.map +1 -0
  284. package/dist/module/internal/web/memidb/lib/ObjectStore.js +175 -0
  285. package/dist/module/internal/web/memidb/lib/ObjectStore.js.map +1 -0
  286. package/dist/module/internal/web/memidb/lib/RecordStore.js +136 -0
  287. package/dist/module/internal/web/memidb/lib/RecordStore.js.map +1 -0
  288. package/dist/module/internal/web/memidb/lib/binarySearch.js +77 -0
  289. package/dist/module/internal/web/memidb/lib/binarySearch.js.map +1 -0
  290. package/dist/module/internal/web/memidb/lib/canInjectKey.js +26 -0
  291. package/dist/module/internal/web/memidb/lib/canInjectKey.js.map +1 -0
  292. package/dist/module/internal/web/memidb/lib/cmp.js +80 -0
  293. package/dist/module/internal/web/memidb/lib/cmp.js.map +1 -0
  294. package/dist/module/internal/web/memidb/lib/enforceRange.js +16 -0
  295. package/dist/module/internal/web/memidb/lib/enforceRange.js.map +1 -0
  296. package/dist/module/internal/web/memidb/lib/errors.js +81 -0
  297. package/dist/module/internal/web/memidb/lib/errors.js.map +1 -0
  298. package/dist/module/internal/web/memidb/lib/extractKey.js +42 -0
  299. package/dist/module/internal/web/memidb/lib/extractKey.js.map +1 -0
  300. package/dist/module/internal/web/memidb/lib/scheduling.js +32 -0
  301. package/dist/module/internal/web/memidb/lib/scheduling.js.map +1 -0
  302. package/dist/module/internal/web/memidb/lib/types.js +4 -0
  303. package/dist/module/internal/web/memidb/lib/types.js.map +1 -0
  304. package/dist/module/internal/web/memidb/lib/validateKeyPath.js +47 -0
  305. package/dist/module/internal/web/memidb/lib/validateKeyPath.js.map +1 -0
  306. package/dist/module/internal/web/memidb/lib/valueToKey.js +58 -0
  307. package/dist/module/internal/web/memidb/lib/valueToKey.js.map +1 -0
  308. package/dist/module/internal/web/memidb/lib/valueToKeyRange.js +22 -0
  309. package/dist/module/internal/web/memidb/lib/valueToKeyRange.js.map +1 -0
  310. package/dist/module/internal/web/structuredClone/index.js +235 -0
  311. package/dist/module/internal/web/structuredClone/index.js.map +1 -0
  312. package/{lib → dist/module}/internal/web/utils.js +24 -5
  313. package/dist/module/internal/web/utils.js.map +1 -0
  314. package/dist/module/modular.js +172 -0
  315. package/dist/module/modular.js.map +1 -0
  316. package/dist/module/namespaced.js +25 -0
  317. package/dist/module/namespaced.js.map +1 -0
  318. package/dist/module/package.json +1 -0
  319. package/dist/module/types/app.js +135 -0
  320. package/dist/module/types/app.js.map +1 -0
  321. package/dist/module/types/internal.js +4 -0
  322. package/dist/module/types/internal.js.map +1 -0
  323. package/dist/module/utils/UtilsStatics.js +55 -0
  324. package/dist/module/utils/UtilsStatics.js.map +1 -0
  325. package/{lib → dist/module}/utils/index.js +13 -15
  326. package/dist/module/utils/index.js.map +1 -0
  327. package/dist/module/version.js +5 -0
  328. package/dist/module/version.js.map +1 -0
  329. package/dist/typescript/commonjs/lib/FirebaseApp.d.ts +21 -0
  330. package/dist/typescript/commonjs/lib/FirebaseApp.d.ts.map +1 -0
  331. package/dist/typescript/commonjs/lib/common/Base64.d.ts +23 -0
  332. package/dist/typescript/commonjs/lib/common/Base64.d.ts.map +1 -0
  333. package/dist/typescript/commonjs/lib/common/MutatableParams.d.ts +10 -0
  334. package/dist/typescript/commonjs/lib/common/MutatableParams.d.ts.map +1 -0
  335. package/dist/typescript/commonjs/lib/common/ReferenceBase.d.ts +12 -0
  336. package/dist/typescript/commonjs/lib/common/ReferenceBase.d.ts.map +1 -0
  337. package/dist/typescript/commonjs/lib/common/deeps.d.ts +19 -0
  338. package/dist/typescript/commonjs/lib/common/deeps.d.ts.map +1 -0
  339. package/dist/typescript/commonjs/lib/common/id.d.ts +12 -0
  340. package/dist/typescript/commonjs/lib/common/id.d.ts.map +1 -0
  341. package/dist/typescript/commonjs/lib/common/index.d.ts +33 -0
  342. package/dist/typescript/commonjs/lib/common/index.d.ts.map +1 -0
  343. package/dist/typescript/commonjs/lib/common/path.d.ts +51 -0
  344. package/dist/typescript/commonjs/lib/common/path.d.ts.map +1 -0
  345. package/dist/typescript/commonjs/lib/common/promise.d.ts +12 -0
  346. package/dist/typescript/commonjs/lib/common/promise.d.ts.map +1 -0
  347. package/dist/typescript/commonjs/lib/common/serialize.d.ts +4 -0
  348. package/dist/typescript/commonjs/lib/common/serialize.d.ts.map +1 -0
  349. package/dist/typescript/commonjs/lib/common/unitTestUtils.d.ts +4 -0
  350. package/dist/typescript/commonjs/lib/common/unitTestUtils.d.ts.map +1 -0
  351. package/dist/typescript/commonjs/lib/common/validate.d.ts +100 -0
  352. package/dist/typescript/commonjs/lib/common/validate.d.ts.map +1 -0
  353. package/dist/typescript/commonjs/lib/index.d.ts +4 -0
  354. package/dist/typescript/commonjs/lib/index.d.ts.map +1 -0
  355. package/dist/typescript/commonjs/lib/internal/FirebaseModule.d.ts +17 -0
  356. package/dist/typescript/commonjs/lib/internal/FirebaseModule.d.ts.map +1 -0
  357. package/dist/typescript/commonjs/lib/internal/NativeFirebaseError.d.ts +20 -0
  358. package/dist/typescript/commonjs/lib/internal/NativeFirebaseError.d.ts.map +1 -0
  359. package/dist/typescript/commonjs/lib/internal/NativeModules.d.ts +83 -0
  360. package/dist/typescript/commonjs/lib/internal/NativeModules.d.ts.map +1 -0
  361. package/dist/typescript/commonjs/lib/internal/RNFBNativeEventEmitter.d.ts +13 -0
  362. package/dist/typescript/commonjs/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -0
  363. package/dist/typescript/commonjs/lib/internal/SharedEventEmitter.d.ts +4 -0
  364. package/dist/typescript/commonjs/lib/internal/SharedEventEmitter.d.ts.map +1 -0
  365. package/dist/typescript/commonjs/lib/internal/asyncStorage.d.ts +10 -0
  366. package/dist/typescript/commonjs/lib/internal/asyncStorage.d.ts.map +1 -0
  367. package/dist/typescript/commonjs/lib/internal/constants.d.ts +5 -0
  368. package/dist/typescript/commonjs/lib/internal/constants.d.ts.map +1 -0
  369. package/dist/typescript/commonjs/lib/internal/index.d.ts +12 -0
  370. package/dist/typescript/commonjs/lib/internal/index.d.ts.map +1 -0
  371. package/dist/typescript/commonjs/lib/internal/logger.d.ts +83 -0
  372. package/dist/typescript/commonjs/lib/internal/logger.d.ts.map +1 -0
  373. package/dist/typescript/commonjs/lib/internal/nativeModule.android.d.ts +3 -0
  374. package/dist/typescript/commonjs/lib/internal/nativeModule.android.d.ts.map +1 -0
  375. package/dist/typescript/commonjs/lib/internal/nativeModule.d.ts +3 -0
  376. package/dist/typescript/commonjs/lib/internal/nativeModule.d.ts.map +1 -0
  377. package/dist/typescript/commonjs/lib/internal/nativeModule.ios.d.ts +3 -0
  378. package/dist/typescript/commonjs/lib/internal/nativeModule.ios.d.ts.map +1 -0
  379. package/dist/typescript/commonjs/lib/internal/nativeModuleAndroidIos.d.ts +10 -0
  380. package/dist/typescript/commonjs/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -0
  381. package/dist/typescript/commonjs/lib/internal/nativeModuleWeb.d.ts +3 -0
  382. package/dist/typescript/commonjs/lib/internal/nativeModuleWeb.d.ts.map +1 -0
  383. package/dist/typescript/commonjs/lib/internal/nullSerialization.d.ts +16 -0
  384. package/dist/typescript/commonjs/lib/internal/nullSerialization.d.ts.map +1 -0
  385. package/dist/typescript/commonjs/lib/internal/registry/app.d.ts +47 -0
  386. package/dist/typescript/commonjs/lib/internal/registry/app.d.ts.map +1 -0
  387. package/dist/typescript/commonjs/lib/internal/registry/namespace.d.ts +26 -0
  388. package/dist/typescript/commonjs/lib/internal/registry/namespace.d.ts.map +1 -0
  389. package/dist/typescript/commonjs/lib/internal/registry/nativeModule.d.ts +17 -0
  390. package/dist/typescript/commonjs/lib/internal/registry/nativeModule.d.ts.map +1 -0
  391. package/dist/typescript/commonjs/lib/internal/web/RNFBAppModule.d.ts +139 -0
  392. package/dist/typescript/commonjs/lib/internal/web/RNFBAppModule.d.ts.map +1 -0
  393. package/dist/typescript/commonjs/lib/internal/web/firebaseApp.d.ts +2 -0
  394. package/dist/typescript/commonjs/lib/internal/web/firebaseApp.d.ts.map +1 -0
  395. package/{lib/internal/web/firebaseAppCheck.js → dist/typescript/commonjs/lib/internal/web/firebaseAppCheck.d.ts} +1 -2
  396. package/dist/typescript/commonjs/lib/internal/web/firebaseAppCheck.d.ts.map +1 -0
  397. package/dist/typescript/commonjs/lib/internal/web/firebaseAuth.d.ts +3 -0
  398. package/dist/typescript/commonjs/lib/internal/web/firebaseAuth.d.ts.map +1 -0
  399. package/dist/typescript/commonjs/lib/internal/web/firebaseDatabase.d.ts +3 -0
  400. package/dist/typescript/commonjs/lib/internal/web/firebaseDatabase.d.ts.map +1 -0
  401. package/dist/typescript/commonjs/lib/internal/web/firebaseFirestore.d.ts +3 -0
  402. package/dist/typescript/commonjs/lib/internal/web/firebaseFirestore.d.ts.map +1 -0
  403. package/dist/typescript/commonjs/lib/internal/web/firebaseFunctions.d.ts +3 -0
  404. package/dist/typescript/commonjs/lib/internal/web/firebaseFunctions.d.ts.map +1 -0
  405. package/{lib/internal/web/firebaseInstallations.js → dist/typescript/commonjs/lib/internal/web/firebaseInstallations.d.ts} +1 -2
  406. package/dist/typescript/commonjs/lib/internal/web/firebaseInstallations.d.ts.map +1 -0
  407. package/{lib/internal/web/firebaseRemoteConfig.js → dist/typescript/commonjs/lib/internal/web/firebaseRemoteConfig.d.ts} +1 -2
  408. package/dist/typescript/commonjs/lib/internal/web/firebaseRemoteConfig.d.ts.map +1 -0
  409. package/dist/typescript/commonjs/lib/internal/web/firebaseStorage.d.ts +3 -0
  410. package/dist/typescript/commonjs/lib/internal/web/firebaseStorage.d.ts.map +1 -0
  411. package/dist/typescript/commonjs/lib/internal/web/utils.d.ts +13 -0
  412. package/dist/typescript/commonjs/lib/internal/web/utils.d.ts.map +1 -0
  413. package/dist/typescript/commonjs/lib/modular.d.ts +95 -0
  414. package/dist/typescript/commonjs/lib/modular.d.ts.map +1 -0
  415. package/dist/typescript/commonjs/lib/namespaced.d.ts +5 -0
  416. package/dist/typescript/commonjs/lib/namespaced.d.ts.map +1 -0
  417. package/dist/typescript/commonjs/lib/types/app.d.ts +561 -0
  418. package/dist/typescript/commonjs/lib/types/app.d.ts.map +1 -0
  419. package/dist/typescript/commonjs/lib/types/internal.d.ts +101 -0
  420. package/dist/typescript/commonjs/lib/types/internal.d.ts.map +1 -0
  421. package/dist/typescript/commonjs/lib/utils/UtilsStatics.d.ts +4 -0
  422. package/dist/typescript/commonjs/lib/utils/UtilsStatics.d.ts.map +1 -0
  423. package/dist/typescript/commonjs/lib/utils/index.d.ts +4 -0
  424. package/dist/typescript/commonjs/lib/utils/index.d.ts.map +1 -0
  425. package/dist/typescript/commonjs/lib/version.d.ts +2 -0
  426. package/dist/typescript/commonjs/lib/version.d.ts.map +1 -0
  427. package/dist/typescript/commonjs/package.json +1 -0
  428. package/dist/typescript/module/lib/FirebaseApp.d.ts +21 -0
  429. package/dist/typescript/module/lib/FirebaseApp.d.ts.map +1 -0
  430. package/dist/typescript/module/lib/common/Base64.d.ts +23 -0
  431. package/dist/typescript/module/lib/common/Base64.d.ts.map +1 -0
  432. package/dist/typescript/module/lib/common/MutatableParams.d.ts +10 -0
  433. package/dist/typescript/module/lib/common/MutatableParams.d.ts.map +1 -0
  434. package/dist/typescript/module/lib/common/ReferenceBase.d.ts +12 -0
  435. package/dist/typescript/module/lib/common/ReferenceBase.d.ts.map +1 -0
  436. package/dist/typescript/module/lib/common/deeps.d.ts +19 -0
  437. package/dist/typescript/module/lib/common/deeps.d.ts.map +1 -0
  438. package/dist/typescript/module/lib/common/id.d.ts +12 -0
  439. package/dist/typescript/module/lib/common/id.d.ts.map +1 -0
  440. package/dist/typescript/module/lib/common/index.d.ts +33 -0
  441. package/dist/typescript/module/lib/common/index.d.ts.map +1 -0
  442. package/dist/typescript/module/lib/common/path.d.ts +51 -0
  443. package/dist/typescript/module/lib/common/path.d.ts.map +1 -0
  444. package/dist/typescript/module/lib/common/promise.d.ts +12 -0
  445. package/dist/typescript/module/lib/common/promise.d.ts.map +1 -0
  446. package/dist/typescript/module/lib/common/serialize.d.ts +4 -0
  447. package/dist/typescript/module/lib/common/serialize.d.ts.map +1 -0
  448. package/dist/typescript/module/lib/common/unitTestUtils.d.ts +4 -0
  449. package/dist/typescript/module/lib/common/unitTestUtils.d.ts.map +1 -0
  450. package/dist/typescript/module/lib/common/validate.d.ts +100 -0
  451. package/dist/typescript/module/lib/common/validate.d.ts.map +1 -0
  452. package/dist/typescript/module/lib/index.d.ts +4 -0
  453. package/dist/typescript/module/lib/index.d.ts.map +1 -0
  454. package/dist/typescript/module/lib/internal/FirebaseModule.d.ts +17 -0
  455. package/dist/typescript/module/lib/internal/FirebaseModule.d.ts.map +1 -0
  456. package/dist/typescript/module/lib/internal/NativeFirebaseError.d.ts +20 -0
  457. package/dist/typescript/module/lib/internal/NativeFirebaseError.d.ts.map +1 -0
  458. package/dist/typescript/module/lib/internal/NativeModules.d.ts +83 -0
  459. package/dist/typescript/module/lib/internal/NativeModules.d.ts.map +1 -0
  460. package/dist/typescript/module/lib/internal/RNFBNativeEventEmitter.d.ts +13 -0
  461. package/dist/typescript/module/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -0
  462. package/dist/typescript/module/lib/internal/SharedEventEmitter.d.ts +4 -0
  463. package/dist/typescript/module/lib/internal/SharedEventEmitter.d.ts.map +1 -0
  464. package/dist/typescript/module/lib/internal/asyncStorage.d.ts +10 -0
  465. package/dist/typescript/module/lib/internal/asyncStorage.d.ts.map +1 -0
  466. package/dist/typescript/module/lib/internal/constants.d.ts +5 -0
  467. package/dist/typescript/module/lib/internal/constants.d.ts.map +1 -0
  468. package/dist/typescript/module/lib/internal/index.d.ts +12 -0
  469. package/dist/typescript/module/lib/internal/index.d.ts.map +1 -0
  470. package/dist/typescript/module/lib/internal/logger.d.ts +83 -0
  471. package/dist/typescript/module/lib/internal/logger.d.ts.map +1 -0
  472. package/dist/typescript/module/lib/internal/nativeModule.android.d.ts +3 -0
  473. package/dist/typescript/module/lib/internal/nativeModule.android.d.ts.map +1 -0
  474. package/dist/typescript/module/lib/internal/nativeModule.d.ts +3 -0
  475. package/dist/typescript/module/lib/internal/nativeModule.d.ts.map +1 -0
  476. package/dist/typescript/module/lib/internal/nativeModule.ios.d.ts +3 -0
  477. package/dist/typescript/module/lib/internal/nativeModule.ios.d.ts.map +1 -0
  478. package/dist/typescript/module/lib/internal/nativeModuleAndroidIos.d.ts +10 -0
  479. package/dist/typescript/module/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -0
  480. package/dist/typescript/module/lib/internal/nativeModuleWeb.d.ts +3 -0
  481. package/dist/typescript/module/lib/internal/nativeModuleWeb.d.ts.map +1 -0
  482. package/dist/typescript/module/lib/internal/nullSerialization.d.ts +16 -0
  483. package/dist/typescript/module/lib/internal/nullSerialization.d.ts.map +1 -0
  484. package/dist/typescript/module/lib/internal/registry/app.d.ts +47 -0
  485. package/dist/typescript/module/lib/internal/registry/app.d.ts.map +1 -0
  486. package/dist/typescript/module/lib/internal/registry/namespace.d.ts +26 -0
  487. package/dist/typescript/module/lib/internal/registry/namespace.d.ts.map +1 -0
  488. package/dist/typescript/module/lib/internal/registry/nativeModule.d.ts +17 -0
  489. package/dist/typescript/module/lib/internal/registry/nativeModule.d.ts.map +1 -0
  490. package/dist/typescript/module/lib/internal/web/RNFBAppModule.d.ts +139 -0
  491. package/dist/typescript/module/lib/internal/web/RNFBAppModule.d.ts.map +1 -0
  492. package/dist/typescript/module/lib/internal/web/firebaseApp.d.ts +2 -0
  493. package/dist/typescript/module/lib/internal/web/firebaseApp.d.ts.map +1 -0
  494. package/dist/typescript/module/lib/internal/web/firebaseAppCheck.d.ts +5 -0
  495. package/dist/typescript/module/lib/internal/web/firebaseAppCheck.d.ts.map +1 -0
  496. package/dist/typescript/module/lib/internal/web/firebaseAuth.d.ts +3 -0
  497. package/dist/typescript/module/lib/internal/web/firebaseAuth.d.ts.map +1 -0
  498. package/dist/typescript/module/lib/internal/web/firebaseDatabase.d.ts +3 -0
  499. package/dist/typescript/module/lib/internal/web/firebaseDatabase.d.ts.map +1 -0
  500. package/dist/typescript/module/lib/internal/web/firebaseFirestore.d.ts +3 -0
  501. package/dist/typescript/module/lib/internal/web/firebaseFirestore.d.ts.map +1 -0
  502. package/dist/typescript/module/lib/internal/web/firebaseFunctions.d.ts +3 -0
  503. package/dist/typescript/module/lib/internal/web/firebaseFunctions.d.ts.map +1 -0
  504. package/dist/typescript/module/lib/internal/web/firebaseInstallations.d.ts +5 -0
  505. package/dist/typescript/module/lib/internal/web/firebaseInstallations.d.ts.map +1 -0
  506. package/dist/typescript/module/lib/internal/web/firebaseRemoteConfig.d.ts +5 -0
  507. package/dist/typescript/module/lib/internal/web/firebaseRemoteConfig.d.ts.map +1 -0
  508. package/dist/typescript/module/lib/internal/web/firebaseStorage.d.ts +3 -0
  509. package/dist/typescript/module/lib/internal/web/firebaseStorage.d.ts.map +1 -0
  510. package/dist/typescript/module/lib/internal/web/utils.d.ts +13 -0
  511. package/dist/typescript/module/lib/internal/web/utils.d.ts.map +1 -0
  512. package/dist/typescript/module/lib/modular.d.ts +95 -0
  513. package/dist/typescript/module/lib/modular.d.ts.map +1 -0
  514. package/dist/typescript/module/lib/namespaced.d.ts +5 -0
  515. package/dist/typescript/module/lib/namespaced.d.ts.map +1 -0
  516. package/dist/typescript/module/lib/types/app.d.ts +561 -0
  517. package/dist/typescript/module/lib/types/app.d.ts.map +1 -0
  518. package/dist/typescript/module/lib/types/internal.d.ts +101 -0
  519. package/dist/typescript/module/lib/types/internal.d.ts.map +1 -0
  520. package/dist/typescript/module/lib/utils/UtilsStatics.d.ts +4 -0
  521. package/dist/typescript/module/lib/utils/UtilsStatics.d.ts.map +1 -0
  522. package/dist/typescript/module/lib/utils/index.d.ts +4 -0
  523. package/dist/typescript/module/lib/utils/index.d.ts.map +1 -0
  524. package/dist/typescript/module/lib/version.d.ts +2 -0
  525. package/dist/typescript/module/lib/version.d.ts.map +1 -0
  526. package/dist/typescript/module/package.json +1 -0
  527. package/lib/FirebaseApp.ts +98 -0
  528. package/lib/common/{Base64.js → Base64.ts} +19 -11
  529. package/lib/common/MutatableParams.ts +50 -0
  530. package/lib/common/ReferenceBase.ts +45 -0
  531. package/lib/common/deeps.ts +92 -0
  532. package/lib/common/id.ts +91 -0
  533. package/lib/common/{index.js → index.ts} +60 -38
  534. package/lib/common/path.ts +124 -0
  535. package/lib/common/promise.ts +68 -0
  536. package/lib/common/{serialize.js → serialize.ts} +3 -2
  537. package/lib/common/unitTestUtils.ts +5 -4
  538. package/lib/common/validate.ts +232 -0
  539. package/lib/index.ts +27 -0
  540. package/lib/internal/FirebaseModule.ts +78 -0
  541. package/lib/internal/NativeFirebaseError.ts +111 -0
  542. package/lib/internal/NativeModules.ts +116 -0
  543. package/lib/internal/RNFBNativeEventEmitter.ts +139 -0
  544. package/lib/internal/asyncStorage.ts +76 -0
  545. package/lib/internal/{constants.js → constants.ts} +3 -1
  546. package/{ios/RNFBApp/RCTConvert+FIRApp.m → lib/internal/global.d.ts} +14 -12
  547. package/lib/internal/{index.js → index.ts} +2 -0
  548. package/lib/internal/logger.ts +270 -0
  549. package/lib/internal/nativeModuleAndroidIos.ts +55 -0
  550. package/lib/internal/nativeModuleWeb.ts +60 -0
  551. package/lib/internal/nullSerialization.ts +186 -0
  552. package/lib/internal/registry/app.ts +278 -0
  553. package/lib/internal/registry/{namespace.js → namespace.ts} +93 -54
  554. package/lib/internal/registry/nativeModule.ts +282 -0
  555. package/lib/internal/web/RNFBAppModule.ts +318 -0
  556. package/{ios/RNFBApp/RCTConvert+FIRApp.h → lib/internal/web/firebaseApp.ts} +4 -7
  557. package/lib/internal/web/firebaseAppCheck.ts +23 -0
  558. package/lib/internal/web/firebaseAuth.ts +21 -0
  559. package/lib/internal/web/firebaseDatabase.ts +21 -0
  560. package/{android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppInitProvider.java → lib/internal/web/firebaseFirestore.ts} +4 -5
  561. package/lib/internal/web/firebaseFunctions.ts +21 -0
  562. package/lib/internal/web/firebaseInstallations.ts +23 -0
  563. package/lib/internal/web/firebaseRemoteConfig.ts +23 -0
  564. package/lib/internal/web/firebaseStorage.ts +21 -0
  565. package/{ios/RNFBApp/RNFBVersion.h → lib/internal/web/memidb/index.d.ts} +5 -4
  566. package/lib/internal/web/memidb/lib/errors.js +17 -0
  567. package/lib/internal/web/utils.ts +57 -0
  568. package/lib/modular.ts +219 -0
  569. package/lib/{index.js → namespaced.ts} +2 -2
  570. package/lib/{index.d.ts → types/app.ts} +81 -40
  571. package/lib/types/internal.ts +142 -0
  572. package/lib/utils/{UtilsStatics.js → UtilsStatics.ts} +20 -12
  573. package/lib/utils/index.ts +94 -0
  574. package/lib/version.ts +2 -0
  575. package/package.json +106 -9
  576. package/CHANGELOG.md +0 -1521
  577. package/RNFBApp.podspec +0 -49
  578. package/android/.editorconfig +0 -10
  579. package/android/build.gradle +0 -129
  580. package/android/firebase-json.gradle +0 -73
  581. package/android/gradle.properties +0 -2
  582. package/android/lint.xml +0 -5
  583. package/android/settings.gradle +0 -1
  584. package/android/src/main/AndroidManifest.xml +0 -24
  585. package/android/src/main/java/io/invertase/firebase/app/.gitkeep +0 -0
  586. package/android/src/main/java/io/invertase/firebase/common/TaskExecutorService.java +0 -124
  587. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebaseModule.java +0 -62
  588. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebasePreferences.java +0 -91
  589. package/android/src/main/java/io/invertase/firebase/interfaces/.gitkeep +0 -0
  590. package/android/src/reactnative/AndroidManifest.xml +0 -2
  591. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseApp.java +0 -46
  592. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppModule.java +0 -186
  593. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackage.java +0 -49
  594. package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.java +0 -191
  595. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEvent.java +0 -53
  596. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitter.java +0 -151
  597. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseInitProvider.java +0 -78
  598. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseJSON.java +0 -107
  599. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseMeta.java +0 -93
  600. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseModule.java +0 -146
  601. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebasePreferences.java +0 -88
  602. package/android/src/reactnative/java/io/invertase/firebase/common/SharedUtils.java +0 -440
  603. package/android/src/reactnative/java/io/invertase/firebase/utils/ReactNativeFirebaseUtilsModule.java +0 -191
  604. package/app.plugin.js +0 -1
  605. package/firebase-schema.json +0 -149
  606. package/firebase_json.rb +0 -72
  607. package/ios/RNFBApp/RCTConvert+FIROptions.h +0 -23
  608. package/ios/RNFBApp/RCTConvert+FIROptions.m +0 -36
  609. package/ios/RNFBApp/RNFBAppModule.h +0 -28
  610. package/ios/RNFBApp/RNFBAppModule.m +0 -305
  611. package/ios/RNFBApp/RNFBJSON.h +0 -36
  612. package/ios/RNFBApp/RNFBJSON.m +0 -99
  613. package/ios/RNFBApp/RNFBMeta.h +0 -30
  614. package/ios/RNFBApp/RNFBMeta.m +0 -61
  615. package/ios/RNFBApp/RNFBPreferences.h +0 -44
  616. package/ios/RNFBApp/RNFBPreferences.m +0 -94
  617. package/ios/RNFBApp/RNFBRCTEventEmitter.h +0 -73
  618. package/ios/RNFBApp/RNFBRCTEventEmitter.m +0 -151
  619. package/ios/RNFBApp/RNFBSharedUtils.h +0 -65
  620. package/ios/RNFBApp/RNFBSharedUtils.m +0 -167
  621. package/ios/RNFBApp/RNFBUtilsModule.h +0 -30
  622. package/ios/RNFBApp/RNFBUtilsModule.m +0 -100
  623. package/ios/RNFBApp.xcodeproj/project.pbxproj +0 -405
  624. package/ios/RNFBApp.xcodeproj/xcshareddata/IDETemplateMacros.plist +0 -24
  625. package/ios_config.sh +0 -269
  626. package/lib/internal/asyncStorage.js +0 -47
  627. package/lib/internal/logger.d.ts +0 -85
  628. package/lib/internal/nativeModuleAndroidIos.js +0 -45
  629. package/lib/internal/nativeModuleWeb.js +0 -49
  630. package/lib/internal/web/firebaseApp.js +0 -3
  631. package/lib/internal/web/firebaseAuth.js +0 -4
  632. package/lib/internal/web/firebaseDatabase.js +0 -4
  633. package/lib/internal/web/firebaseFirestore.js +0 -4
  634. package/lib/internal/web/firebaseFunctions.js +0 -4
  635. package/lib/internal/web/firebaseStorage.js +0 -4
  636. package/lib/modular/index.d.ts +0 -131
  637. package/lib/modular/index.js +0 -150
  638. package/lib/version.js +0 -2
  639. package/plugin/build/android/applyPlugin.d.ts +0 -6
  640. package/plugin/build/android/applyPlugin.js +0 -29
  641. package/plugin/build/android/buildscriptDependency.d.ts +0 -6
  642. package/plugin/build/android/buildscriptDependency.js +0 -31
  643. package/plugin/build/android/constants.d.ts +0 -4
  644. package/plugin/build/android/constants.js +0 -8
  645. package/plugin/build/android/copyGoogleServices.d.ts +0 -5
  646. package/plugin/build/android/copyGoogleServices.js +0 -33
  647. package/plugin/build/android/index.d.ts +0 -4
  648. package/plugin/build/android/index.js +0 -9
  649. package/plugin/build/index.d.ts +0 -3
  650. package/plugin/build/index.js +0 -21
  651. package/plugin/build/ios/appDelegate.d.ts +0 -6
  652. package/plugin/build/ios/appDelegate.js +0 -116
  653. package/plugin/build/ios/googleServicesPlist.d.ts +0 -7
  654. package/plugin/build/ios/googleServicesPlist.js +0 -42
  655. package/plugin/build/ios/index.d.ts +0 -3
  656. package/plugin/build/ios/index.js +0 -7
  657. package/plugin/src/android/applyPlugin.ts +0 -30
  658. package/plugin/src/android/buildscriptDependency.ts +0 -33
  659. package/plugin/src/android/constants.ts +0 -7
  660. package/plugin/src/android/copyGoogleServices.ts +0 -36
  661. package/plugin/src/android/index.ts +0 -5
  662. package/plugin/src/index.ts +0 -27
  663. package/plugin/src/ios/appDelegate.ts +0 -140
  664. package/plugin/src/ios/googleServicesPlist.ts +0 -55
  665. package/plugin/src/ios/index.ts +0 -4
  666. package/plugin/tsconfig.json +0 -9
  667. package/plugin/tsconfig.tsbuildinfo +0 -1
  668. package/react-native.config.js +0 -19
  669. /package/lib/internal/{SharedEventEmitter.js → SharedEventEmitter.ts} +0 -0
  670. /package/lib/internal/{nativeModule.android.js → nativeModule.android.ts} +0 -0
  671. /package/lib/internal/{nativeModule.ios.js → nativeModule.ios.ts} +0 -0
  672. /package/lib/internal/{nativeModule.js → nativeModule.ts} +0 -0
@@ -0,0 +1,232 @@
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
+
18
+ import { Platform } from 'react-native';
19
+
20
+ const AlphaNumericUnderscore = /^[a-zA-Z0-9_]+$/;
21
+
22
+ /**
23
+ * Validates that all key-value pairs in an object are strings.
24
+ */
25
+ export function objectKeyValuesAreStrings(object: unknown): boolean {
26
+ if (!isObject(object)) {
27
+ return false;
28
+ }
29
+
30
+ const entries = Object.entries(object);
31
+
32
+ for (let i = 0; i < entries.length; i++) {
33
+ const [key, value] = entries[i]!;
34
+ if (!isString(key) || !isString(value)) {
35
+ return false;
36
+ }
37
+ }
38
+
39
+ return true;
40
+ }
41
+
42
+ /**
43
+ * Simple is null check.
44
+ *
45
+ * @param value
46
+ * @returns {boolean}
47
+ */
48
+ export function isNull(value: unknown): value is null {
49
+ return value === null;
50
+ }
51
+
52
+ /**
53
+ * Simple is object check.
54
+ *
55
+ * @param value
56
+ * @returns {boolean}
57
+ */
58
+ export function isObject(value: unknown): value is Record<string, unknown> {
59
+ return value ? typeof value === 'object' && !Array.isArray(value) && !isNull(value) : false;
60
+ }
61
+
62
+ /**
63
+ * Simple is date check
64
+ * https://stackoverflow.com/a/44198641
65
+ * @param value
66
+ * @returns {boolean}
67
+ */
68
+ export function isDate(value: unknown): value is Date {
69
+ // use the global isNaN() and not Number.isNaN() since it will validate an Invalid Date
70
+ return value &&
71
+ Object.prototype.toString.call(value) === '[object Date]' &&
72
+ !isNaN(value as number)
73
+ ? true
74
+ : false;
75
+ }
76
+
77
+ /**
78
+ * Simple is function check
79
+ *
80
+ * @param value
81
+ * @returns {*|boolean}
82
+ */
83
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
84
+ export function isFunction(value: unknown): value is Function {
85
+ return value ? typeof value === 'function' : false;
86
+ }
87
+
88
+ /**
89
+ * Simple is string check
90
+ * @param value
91
+ * @return {boolean}
92
+ */
93
+ export function isString(value: unknown): value is string {
94
+ return typeof value === 'string';
95
+ }
96
+
97
+ /**
98
+ * Simple is number check
99
+ * @param value
100
+ * @return {boolean}
101
+ */
102
+ export function isNumber(value: unknown): value is number {
103
+ return typeof value === 'number';
104
+ }
105
+
106
+ /**
107
+ * Simple is phone number check for E.164 format
108
+ * @param value
109
+ * @return {boolean}
110
+ */
111
+ export function isE164PhoneNumber(value: unknown): boolean {
112
+ if (!isString(value)) {
113
+ return false;
114
+ }
115
+ const PHONE_NUMBER = /^\+[1-9]\d{1,14}$/; // E.164
116
+ return PHONE_NUMBER.test(value);
117
+ }
118
+
119
+ /**
120
+ * Simple finite check
121
+ * @param value
122
+ * @returns {boolean}
123
+ */
124
+ export function isFinite(value: unknown): boolean {
125
+ return Number.isFinite(value);
126
+ }
127
+
128
+ /**
129
+ * Simple integer check
130
+ * @param value
131
+ * @returns {boolean}
132
+ */
133
+ export function isInteger(value: unknown): boolean {
134
+ return Number.isInteger(value);
135
+ }
136
+
137
+ /**
138
+ * Simple is boolean check
139
+ *
140
+ * @param value
141
+ * @return {boolean}
142
+ */
143
+ export function isBoolean(value: unknown): value is boolean {
144
+ return typeof value === 'boolean';
145
+ }
146
+
147
+ /**
148
+ *
149
+ * @param value
150
+ * @returns {arg is Array<unknown>}
151
+ */
152
+ export function isArray(value: unknown): value is Array<unknown> {
153
+ return Array.isArray(value);
154
+ }
155
+
156
+ /**
157
+ *
158
+ * @param value
159
+ * @returns {boolean}
160
+ */
161
+ export function isUndefined(value: unknown): value is undefined {
162
+ return typeof value === 'undefined';
163
+ }
164
+
165
+ /**
166
+ * /^[a-zA-Z0-9_]+$/
167
+ *
168
+ * @param value
169
+ * @returns {boolean}
170
+ */
171
+ export function isAlphaNumericUnderscore(value: unknown): boolean {
172
+ if (!isString(value)) {
173
+ return false;
174
+ }
175
+ return AlphaNumericUnderscore.test(value);
176
+ }
177
+
178
+ /**
179
+ * URL test
180
+ * @param url
181
+ * @returns {boolean}
182
+ */
183
+ const IS_VALID_URL_REGEX = /^(http|https):\/\/[^ "]+$/;
184
+ export function isValidUrl(url: unknown): boolean {
185
+ if (!isString(url)) {
186
+ return false;
187
+ }
188
+ return IS_VALID_URL_REGEX.test(url);
189
+ }
190
+
191
+ /**
192
+ * Array includes
193
+ *
194
+ * @param value
195
+ * @param oneOf
196
+ * @returns {boolean}
197
+ */
198
+ export function isOneOf(value: unknown, oneOf: unknown[] = []): boolean {
199
+ if (!isArray(oneOf)) {
200
+ return false;
201
+ }
202
+ return oneOf.includes(value);
203
+ }
204
+
205
+ export function noop(): void {
206
+ // noop-🐈
207
+ }
208
+
209
+ export function validateOptionalNativeDependencyExists(
210
+ firebaseJsonKey: string,
211
+ apiName: string,
212
+ nativeFnExists: boolean,
213
+ ): void {
214
+ if (nativeFnExists) {
215
+ return;
216
+ }
217
+ let errorMessage =
218
+ "You attempted to use an optional API that's not enabled natively. \n\n To enable ";
219
+
220
+ errorMessage += apiName;
221
+ errorMessage += ` please set the 'react-native' -> '${firebaseJsonKey}' key to true in your firebase.json file`;
222
+
223
+ if (Platform.OS === 'android') {
224
+ errorMessage += ' and rebuild your Android app.';
225
+ } else {
226
+ errorMessage +=
227
+ ', re-run pod install and rebuild your iOS app. ' +
228
+ "If you're not using Pods then make sure you've have downloaded the necessary Firebase iOS SDK dependencies for this API.";
229
+ }
230
+
231
+ throw new Error(errorMessage);
232
+ }
package/lib/index.ts ADDED
@@ -0,0 +1,27 @@
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
+
18
+ export { firebase, utils, default } from './namespaced';
19
+ export * from './modular';
20
+ export type {
21
+ ReactNativeFirebase,
22
+ Utils,
23
+ FirebaseApp,
24
+ LogCallbackParams,
25
+ LogCallback,
26
+ LogOptions,
27
+ } from './types/app';
@@ -0,0 +1,78 @@
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
+
18
+ import { getAppModule, getNativeModule } from './registry/nativeModule';
19
+ import SharedEventEmitter from './SharedEventEmitter';
20
+ import type { ReactNativeFirebase } from '../types/app';
21
+ import type { FirebaseJsonConfig, ModuleConfig } from '../types/internal';
22
+ import type { ReactNativeFirebaseNativeModules } from './NativeModules';
23
+ import type EventEmitter from 'react-native/Libraries/vendor/emitter/EventEmitter';
24
+
25
+ let firebaseJson: FirebaseJsonConfig | null = null;
26
+
27
+ export default class FirebaseModule<
28
+ NativeModuleName extends keyof ReactNativeFirebaseNativeModules = any,
29
+ > {
30
+ _app: ReactNativeFirebase.FirebaseAppBase;
31
+ _nativeModule: ReactNativeFirebaseNativeModules[NativeModuleName] | null;
32
+ _customUrlOrRegion: string | null;
33
+ _config: ModuleConfig;
34
+
35
+ constructor(
36
+ app: ReactNativeFirebase.FirebaseAppBase,
37
+ config: ModuleConfig,
38
+ customUrlOrRegion?: string | null,
39
+ ) {
40
+ this._app = app;
41
+ this._nativeModule = null;
42
+ this._customUrlOrRegion = customUrlOrRegion || null;
43
+ this._config = Object.assign({}, config);
44
+ }
45
+
46
+ get app(): ReactNativeFirebase.FirebaseApp {
47
+ return this._app as unknown as ReactNativeFirebase.FirebaseApp;
48
+ }
49
+
50
+ get firebaseJson(): FirebaseJsonConfig {
51
+ if (firebaseJson) {
52
+ return firebaseJson;
53
+ }
54
+ firebaseJson = JSON.parse(getAppModule().FIREBASE_RAW_JSON);
55
+ return firebaseJson as FirebaseJsonConfig;
56
+ }
57
+
58
+ get emitter(): EventEmitter {
59
+ return SharedEventEmitter;
60
+ }
61
+
62
+ eventNameForApp(...args: Array<string | number>): string {
63
+ return `${this.app.name}-${args.join('-')}`;
64
+ }
65
+
66
+ get native(): ReactNativeFirebaseNativeModules[NativeModuleName] {
67
+ if (this._nativeModule) {
68
+ return this._nativeModule;
69
+ }
70
+ this._nativeModule = getNativeModule(
71
+ this,
72
+ ) as unknown as ReactNativeFirebaseNativeModules[NativeModuleName];
73
+ return this._nativeModule;
74
+ }
75
+ }
76
+
77
+ // Instance of checks don't work once compiled
78
+ (FirebaseModule as any).__extended__ = {};
@@ -0,0 +1,111 @@
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
+
18
+ import type { NativeErrorUserInfo, NativeError } from '../types/internal';
19
+
20
+ export default class NativeFirebaseError extends Error {
21
+ readonly namespace!: string;
22
+ readonly code!: string;
23
+ readonly jsStack!: string;
24
+ readonly userInfo!: NativeErrorUserInfo;
25
+ readonly customData: any;
26
+ readonly operationType!: string | null;
27
+ readonly nativeErrorCode!: string | number | null;
28
+ readonly nativeErrorMessage!: string | null;
29
+
30
+ static fromEvent(
31
+ errorEvent: NativeErrorUserInfo,
32
+ namespace: string,
33
+ stack?: string,
34
+ ): NativeFirebaseError {
35
+ return new NativeFirebaseError(
36
+ { userInfo: errorEvent },
37
+ stack || new Error().stack!,
38
+ namespace,
39
+ );
40
+ }
41
+
42
+ constructor(nativeError: NativeError, jsStack: string, namespace: string) {
43
+ super();
44
+ const { userInfo } = nativeError;
45
+
46
+ Object.defineProperty(this, 'namespace', {
47
+ enumerable: false,
48
+ value: namespace,
49
+ });
50
+
51
+ Object.defineProperty(this, 'code', {
52
+ enumerable: false,
53
+ value: `${this.namespace}/${userInfo.code || 'unknown'}`,
54
+ });
55
+
56
+ Object.defineProperty(this, 'message', {
57
+ enumerable: false,
58
+ value: `[${this.code}] ${userInfo.message || nativeError.message}`,
59
+ });
60
+
61
+ Object.defineProperty(this, 'jsStack', {
62
+ enumerable: false,
63
+ value: jsStack,
64
+ });
65
+
66
+ Object.defineProperty(this, 'userInfo', {
67
+ enumerable: false,
68
+ value: userInfo,
69
+ });
70
+
71
+ // Needed for MFA processing of errors on web
72
+ Object.defineProperty(this, 'customData', {
73
+ enumerable: false,
74
+ value: nativeError.customData || null,
75
+ });
76
+
77
+ // Needed for MFA processing of errors on web
78
+ Object.defineProperty(this, 'operationType', {
79
+ enumerable: false,
80
+ value: nativeError.operationType || null,
81
+ });
82
+
83
+ Object.defineProperty(this, 'nativeErrorCode', {
84
+ enumerable: false,
85
+ value: userInfo.nativeErrorCode || null,
86
+ });
87
+
88
+ Object.defineProperty(this, 'nativeErrorMessage', {
89
+ enumerable: false,
90
+ value: userInfo.nativeErrorMessage || null,
91
+ });
92
+
93
+ this.stack = NativeFirebaseError.getStackWithMessage(
94
+ `NativeFirebaseError: ${this.message}`,
95
+ this.jsStack,
96
+ );
97
+
98
+ // Unused
99
+ // this.nativeStackIOS = nativeError.nativeStackIOS;
100
+ // this.nativeStackAndroid = nativeError.nativeStackAndroid;
101
+ }
102
+
103
+ /**
104
+ * Build a stack trace that includes JS stack prior to calling the native method.
105
+ *
106
+ * @returns {string}
107
+ */
108
+ static getStackWithMessage(message: string, jsStack: string): string {
109
+ return [message, ...jsStack.split('\n').slice(2, 13)].join('\n');
110
+ }
111
+ }
@@ -0,0 +1,116 @@
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
+
18
+ import type { ReactNativeFirebase } from '../types/app';
19
+
20
+ /**
21
+ * Base type for all React Native Firebase native modules.
22
+ * Each package can extend this interface via module augmentation to add their own native methods.
23
+ */
24
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
25
+ export interface ReactNativeFirebaseNativeModules {
26
+ // Base interface - packages will augment this
27
+ }
28
+
29
+ /**
30
+ * Interface for wrapped native modules returned by getAppModule() and getNativeModule()
31
+ * This represents the native module after wrapping with error handling
32
+ */
33
+ export interface WrappedNativeModule {
34
+ [key: string]: unknown;
35
+ }
36
+
37
+ /**
38
+ * App Module native methods that are always available
39
+ */
40
+ export interface RNFBAppModuleInterface {
41
+ // Constants
42
+ NATIVE_FIREBASE_APPS: Array<{
43
+ appConfig: ReactNativeFirebase.FirebaseAppConfig;
44
+ options: ReactNativeFirebase.FirebaseAppOptions;
45
+ }>;
46
+ FIREBASE_RAW_JSON: string;
47
+
48
+ // Methods
49
+ initializeApp(
50
+ options: ReactNativeFirebase.FirebaseAppOptions,
51
+ appConfig: ReactNativeFirebase.FirebaseAppConfig,
52
+ ): Promise<void>;
53
+ deleteApp(name: string): Promise<void>;
54
+ setLogLevel(logLevel: string): void;
55
+ metaGetAll(): Promise<{ [key: string]: string | boolean }>;
56
+ jsonGetAll(): Promise<{ [key: string]: string | boolean }>;
57
+ preferencesClearAll(): Promise<void>;
58
+ preferencesGetAll(): Promise<{ [key: string]: string | boolean }>;
59
+ preferencesSetBool(key: string, value: boolean): Promise<void>;
60
+ preferencesSetString(key: string, value: string): Promise<void>;
61
+ setAutomaticDataCollectionEnabled(name: string, enabled: boolean): void;
62
+
63
+ // Event emitter methods
64
+ eventsNotifyReady(ready: boolean): void;
65
+ eventsAddListener(eventType: string): void;
66
+ eventsRemoveListener(eventType: string, removeAll: boolean): void;
67
+
68
+ // React Native EventEmitter compatibility
69
+ addListener?: (eventName: string) => void;
70
+ removeListeners?: (count: number) => void;
71
+ }
72
+
73
+ /**
74
+ * Utils Module native methods (from the app package)
75
+ */
76
+ export interface RNFBUtilsModuleInterface {
77
+ // Android-only properties and methods
78
+ isRunningInTestLab: boolean;
79
+ androidPlayServices: {
80
+ isAvailable: boolean;
81
+ status: number;
82
+ hasResolution: boolean;
83
+ isUserResolvableError: boolean;
84
+ error: string | undefined;
85
+ };
86
+ androidGetPlayServicesStatus(): Promise<{
87
+ isAvailable: boolean;
88
+ status: number;
89
+ hasResolution: boolean;
90
+ isUserResolvableError: boolean;
91
+ error: string | undefined;
92
+ }>;
93
+ androidPromptForPlayServices(): Promise<void>;
94
+ androidMakePlayServicesAvailable(): Promise<void>;
95
+ androidResolutionForPlayServices(): Promise<void>;
96
+ }
97
+
98
+ // Augment the base interface with app package's native modules
99
+ declare module './NativeModules' {
100
+ interface ReactNativeFirebaseNativeModules {
101
+ RNFBUtilsModule: RNFBUtilsModuleInterface;
102
+ RNFBAppModule: RNFBAppModuleInterface;
103
+ }
104
+ }
105
+
106
+ /**
107
+ * Helper type to get a specific native module type by name
108
+ */
109
+ export type GetNativeModule<T extends keyof ReactNativeFirebaseNativeModules> =
110
+ ReactNativeFirebaseNativeModules[T];
111
+
112
+ /**
113
+ * Union type of all available native module types
114
+ */
115
+ export type AnyNativeModule =
116
+ ReactNativeFirebaseNativeModules[keyof ReactNativeFirebaseNativeModules];
@@ -0,0 +1,139 @@
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
+
18
+ import { type EmitterSubscription, NativeEventEmitter } from 'react-native';
19
+ import { getReactNativeModule } from './nativeModule';
20
+ import type { RNFBAppModuleInterface } from './NativeModules';
21
+
22
+ /**
23
+ * Type for the eventsNotifyReady native method
24
+ */
25
+ type EventsNotifyReadyMethod = (ready: boolean) => void;
26
+
27
+ /**
28
+ * Type for the eventsAddListener native method
29
+ */
30
+ type EventsAddListenerMethod = (eventType: string) => void;
31
+
32
+ /**
33
+ * Type for the eventsRemoveListener native method
34
+ */
35
+ type EventsRemoveListenerMethod = (eventType: string, removeAll: boolean) => void;
36
+
37
+ class RNFBNativeEventEmitter extends NativeEventEmitter {
38
+ ready: boolean;
39
+
40
+ constructor() {
41
+ const RNFBAppModule = getReactNativeModule('RNFBAppModule');
42
+ if (!RNFBAppModule) {
43
+ throw new Error(
44
+ 'Native module RNFBAppModule not found. Re-check module install, linking, configuration, build and install steps.',
45
+ );
46
+ }
47
+ // Cast to any for NativeEventEmitter constructor which expects React Native's NativeModule type
48
+ super(RNFBAppModule as any);
49
+ this.ready = false;
50
+ }
51
+
52
+ addListener(
53
+ eventType: string,
54
+ listener: (...args: unknown[]) => unknown,
55
+ context?: object,
56
+ ): EmitterSubscription {
57
+ const RNFBAppModule = getReactNativeModule(
58
+ 'RNFBAppModule',
59
+ ) as unknown as RNFBAppModuleInterface;
60
+ if (!this.ready) {
61
+ (RNFBAppModule.eventsNotifyReady as EventsNotifyReadyMethod)(true);
62
+ this.ready = true;
63
+ }
64
+ (RNFBAppModule.eventsAddListener as EventsAddListenerMethod)(eventType);
65
+ if (globalThis.RNFBDebug) {
66
+ // eslint-disable-next-line no-console
67
+ console.debug(`[RNFB-->Event][👂] ${eventType} -> listening`);
68
+ }
69
+ const listenerDebugger = (...args: unknown[]) => {
70
+ if (globalThis.RNFBDebug) {
71
+ // eslint-disable-next-line no-console
72
+ console.debug(`[RNFB<--Event][📣] ${eventType} <-`, JSON.stringify(args[0]));
73
+ // Possible leaking test if events are still being received after the test.
74
+ // This is not super accurate but it's better than nothing, e.g. if doing setup/teardown
75
+ // logic outside of a test this may cause false positives.
76
+ if (globalThis.RNFBTest && !globalThis.RNFBDebugInTestLeakDetection) {
77
+ // eslint-disable-next-line no-console
78
+ console.debug(
79
+ `[TEST--->Leak][💡] Possible leaking test detected! An event (☝️) ` +
80
+ `was received outside of any running tests which may indicates that some ` +
81
+ `listeners/event subscriptions that have not been unsubscribed from in your ` +
82
+ `test code. The last test that ran was: "${globalThis.RNFBDebugLastTest}".`,
83
+ );
84
+ }
85
+ }
86
+ return listener(...args);
87
+ };
88
+
89
+ let subscription = super.addListener(`rnfb_${eventType}`, listenerDebugger, context);
90
+
91
+ // React Native 0.65+ altered EventEmitter:
92
+ // - removeSubscription is gone
93
+ // - addListener returns an unsubscriber instead of a more complex object with eventType etc
94
+
95
+ // make sure eventType for backwards compatibility just in case
96
+ (subscription as any).eventType = `rnfb_${eventType}`;
97
+
98
+ // New style is to return a remove function on the object, just in case people call that,
99
+ // we will modify it to do our native unsubscription then call the original
100
+ const originalRemove = subscription.remove;
101
+ const newRemove = () => {
102
+ const module = getReactNativeModule('RNFBAppModule') as unknown as RNFBAppModuleInterface;
103
+ (module.eventsRemoveListener as EventsRemoveListenerMethod)(eventType, false);
104
+ const superClass = Object.getPrototypeOf(Object.getPrototypeOf(this));
105
+ if (superClass.removeSubscription != null) {
106
+ // This is for RN <= 0.64 - 65 and greater no longer have removeSubscription
107
+ superClass.removeSubscription(subscription);
108
+ } else if (originalRemove != null) {
109
+ // This is for RN >= 0.65
110
+ originalRemove();
111
+ }
112
+ };
113
+ subscription.remove = newRemove;
114
+ return subscription;
115
+ }
116
+
117
+ removeAllListeners(eventType: string): void {
118
+ const RNFBAppModule = getReactNativeModule(
119
+ 'RNFBAppModule',
120
+ ) as unknown as RNFBAppModuleInterface;
121
+ (RNFBAppModule.eventsRemoveListener as EventsRemoveListenerMethod)(eventType, true);
122
+ super.removeAllListeners(`rnfb_${eventType}`);
123
+ }
124
+
125
+ // This is likely no longer ever called, but it is here for backwards compatibility with RN <= 0.64
126
+ removeSubscription(subscription: EmitterSubscription & { eventType?: string }): void {
127
+ const RNFBAppModule = getReactNativeModule(
128
+ 'RNFBAppModule',
129
+ ) as unknown as RNFBAppModuleInterface;
130
+ const eventType = subscription.eventType?.replace('rnfb_', '') || '';
131
+ (RNFBAppModule.eventsRemoveListener as EventsRemoveListenerMethod)(eventType, false);
132
+ const superClass = Object.getPrototypeOf(Object.getPrototypeOf(this));
133
+ if (superClass.removeSubscription) {
134
+ superClass.removeSubscription(subscription);
135
+ }
136
+ }
137
+ }
138
+
139
+ export default new RNFBNativeEventEmitter();