@react-native-firebase/app 23.7.0 → 23.8.1

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 (602) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/android/src/main/java/io/invertase/firebase/common/UniversalFirebaseModule.java +2 -2
  3. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java +1 -1
  4. package/dist/commonjs/FirebaseApp.js +85 -0
  5. package/dist/commonjs/FirebaseApp.js.map +1 -0
  6. package/dist/commonjs/common/Base64.js +106 -0
  7. package/dist/commonjs/common/Base64.js.map +1 -0
  8. package/dist/commonjs/common/MutatableParams.js +50 -0
  9. package/dist/commonjs/common/MutatableParams.js.map +1 -0
  10. package/dist/commonjs/common/ReferenceBase.js +49 -0
  11. package/dist/commonjs/common/ReferenceBase.js.map +1 -0
  12. package/dist/commonjs/common/deeps.js +82 -0
  13. package/dist/commonjs/common/deeps.js.map +1 -0
  14. package/dist/commonjs/common/id.js +88 -0
  15. package/dist/commonjs/common/id.js.map +1 -0
  16. package/dist/commonjs/common/index.js +799 -0
  17. package/dist/commonjs/common/index.js.map +1 -0
  18. package/dist/commonjs/common/path.js +133 -0
  19. package/dist/commonjs/common/path.js.map +1 -0
  20. package/dist/commonjs/common/promise.js +65 -0
  21. package/dist/commonjs/common/promise.js.map +1 -0
  22. package/dist/commonjs/common/serialize.js +48 -0
  23. package/dist/commonjs/common/serialize.js.map +1 -0
  24. package/dist/commonjs/common/unitTestUtils.js +54 -0
  25. package/dist/commonjs/common/unitTestUtils.js.map +1 -0
  26. package/dist/commonjs/common/validate.js +236 -0
  27. package/dist/commonjs/common/validate.js.map +1 -0
  28. package/dist/commonjs/index.js +42 -0
  29. package/dist/commonjs/index.js.map +1 -0
  30. package/dist/commonjs/internal/FirebaseModule.js +63 -0
  31. package/dist/commonjs/internal/FirebaseModule.js.map +1 -0
  32. package/dist/commonjs/internal/NativeFirebaseError.js +92 -0
  33. package/dist/commonjs/internal/NativeFirebaseError.js.map +1 -0
  34. package/dist/commonjs/internal/NativeModules.js +6 -0
  35. package/dist/commonjs/internal/NativeModules.js.map +1 -0
  36. package/dist/commonjs/internal/RNFBNativeEventEmitter.js +118 -0
  37. package/dist/commonjs/internal/RNFBNativeEventEmitter.js.map +1 -0
  38. package/dist/commonjs/internal/SharedEventEmitter.js +26 -0
  39. package/dist/commonjs/internal/SharedEventEmitter.js.map +1 -0
  40. package/dist/commonjs/internal/asyncStorage.js +83 -0
  41. package/dist/commonjs/internal/asyncStorage.js.map +1 -0
  42. package/dist/commonjs/internal/constants.js +27 -0
  43. package/dist/commonjs/internal/constants.js.map +1 -0
  44. package/dist/commonjs/internal/index.js +109 -0
  45. package/dist/commonjs/internal/index.js.map +1 -0
  46. package/dist/commonjs/internal/logger.js +256 -0
  47. package/dist/commonjs/internal/logger.js.map +1 -0
  48. package/dist/commonjs/internal/nativeModule.android.js +19 -0
  49. package/dist/commonjs/internal/nativeModule.android.js.map +1 -0
  50. package/dist/commonjs/internal/nativeModule.ios.js +19 -0
  51. package/dist/commonjs/internal/nativeModule.ios.js.map +1 -0
  52. package/dist/commonjs/internal/nativeModule.js +19 -0
  53. package/dist/commonjs/internal/nativeModule.js.map +1 -0
  54. package/dist/commonjs/internal/nativeModuleAndroidIos.js +51 -0
  55. package/dist/commonjs/internal/nativeModuleAndroidIos.js.map +1 -0
  56. package/dist/commonjs/internal/nativeModuleWeb.js +52 -0
  57. package/dist/commonjs/internal/nativeModuleWeb.js.map +1 -0
  58. package/dist/commonjs/internal/nullSerialization.js +162 -0
  59. package/dist/commonjs/internal/nullSerialization.js.map +1 -0
  60. package/dist/commonjs/internal/registry/app.js +238 -0
  61. package/dist/commonjs/internal/registry/app.js.map +1 -0
  62. package/dist/commonjs/internal/registry/namespace.js +269 -0
  63. package/dist/commonjs/internal/registry/namespace.js.map +1 -0
  64. package/dist/commonjs/internal/registry/nativeModule.js +224 -0
  65. package/dist/commonjs/internal/registry/nativeModule.js.map +1 -0
  66. package/dist/commonjs/internal/web/RNFBAppModule.js +273 -0
  67. package/dist/commonjs/internal/web/RNFBAppModule.js.map +1 -0
  68. package/dist/commonjs/internal/web/firebaseApp.js +17 -0
  69. package/dist/commonjs/internal/web/firebaseApp.js.map +1 -0
  70. package/dist/commonjs/internal/web/firebaseAppCheck.js +36 -0
  71. package/dist/commonjs/internal/web/firebaseAppCheck.js.map +1 -0
  72. package/dist/commonjs/internal/web/firebaseAuth.js +28 -0
  73. package/dist/commonjs/internal/web/firebaseAuth.js.map +1 -0
  74. package/dist/commonjs/internal/web/firebaseDatabase.js +28 -0
  75. package/dist/commonjs/internal/web/firebaseDatabase.js.map +1 -0
  76. package/dist/commonjs/internal/web/firebaseFirestore.js +28 -0
  77. package/dist/commonjs/internal/web/firebaseFirestore.js.map +1 -0
  78. package/dist/commonjs/internal/web/firebaseFunctions.js +28 -0
  79. package/dist/commonjs/internal/web/firebaseFunctions.js.map +1 -0
  80. package/dist/commonjs/internal/web/firebaseInstallations.js +36 -0
  81. package/dist/commonjs/internal/web/firebaseInstallations.js.map +1 -0
  82. package/dist/commonjs/internal/web/firebaseRemoteConfig.js +36 -0
  83. package/dist/commonjs/internal/web/firebaseRemoteConfig.js.map +1 -0
  84. package/dist/commonjs/internal/web/firebaseStorage.js +28 -0
  85. package/dist/commonjs/internal/web/firebaseStorage.js.map +1 -0
  86. package/dist/commonjs/internal/web/memidb/FDBCursor.js +479 -0
  87. package/dist/commonjs/internal/web/memidb/FDBCursor.js.map +1 -0
  88. package/dist/commonjs/internal/web/memidb/FDBCursorWithValue.js +19 -0
  89. package/dist/commonjs/internal/web/memidb/FDBCursorWithValue.js.map +1 -0
  90. package/dist/commonjs/internal/web/memidb/FDBDatabase.js +163 -0
  91. package/dist/commonjs/internal/web/memidb/FDBDatabase.js.map +1 -0
  92. package/dist/commonjs/internal/web/memidb/FDBFactory.js +264 -0
  93. package/dist/commonjs/internal/web/memidb/FDBFactory.js.map +1 -0
  94. package/dist/commonjs/internal/web/memidb/FDBIndex.js +191 -0
  95. package/dist/commonjs/internal/web/memidb/FDBIndex.js.map +1 -0
  96. package/dist/commonjs/internal/web/memidb/FDBKeyRange.js +78 -0
  97. package/dist/commonjs/internal/web/memidb/FDBKeyRange.js.map +1 -0
  98. package/dist/commonjs/internal/web/memidb/FDBObjectStore.js +383 -0
  99. package/dist/commonjs/internal/web/memidb/FDBObjectStore.js.map +1 -0
  100. package/dist/commonjs/internal/web/memidb/FDBOpenDBRequest.js +17 -0
  101. package/dist/commonjs/internal/web/memidb/FDBOpenDBRequest.js.map +1 -0
  102. package/dist/commonjs/internal/web/memidb/FDBRequest.js +41 -0
  103. package/dist/commonjs/internal/web/memidb/FDBRequest.js.map +1 -0
  104. package/dist/commonjs/internal/web/memidb/FDBTransaction.js +221 -0
  105. package/dist/commonjs/internal/web/memidb/FDBTransaction.js.map +1 -0
  106. package/dist/commonjs/internal/web/memidb/FDBVersionChangeEvent.js +20 -0
  107. package/dist/commonjs/internal/web/memidb/FDBVersionChangeEvent.js.map +1 -0
  108. package/dist/commonjs/internal/web/memidb/LICENSE +208 -0
  109. package/dist/commonjs/internal/web/memidb/index.js +45 -0
  110. package/dist/commonjs/internal/web/memidb/index.js.map +1 -0
  111. package/dist/commonjs/internal/web/memidb/lib/Database.js +38 -0
  112. package/dist/commonjs/internal/web/memidb/lib/Database.js.map +1 -0
  113. package/dist/commonjs/internal/web/memidb/lib/FakeDOMStringList.js +78 -0
  114. package/dist/commonjs/internal/web/memidb/lib/FakeDOMStringList.js.map +1 -0
  115. package/dist/commonjs/internal/web/memidb/lib/FakeEvent.js +45 -0
  116. package/dist/commonjs/internal/web/memidb/lib/FakeEvent.js.map +1 -0
  117. package/dist/commonjs/internal/web/memidb/lib/FakeEventTarget.js +111 -0
  118. package/dist/commonjs/internal/web/memidb/lib/FakeEventTarget.js.map +1 -0
  119. package/dist/commonjs/internal/web/memidb/lib/Index.js +164 -0
  120. package/dist/commonjs/internal/web/memidb/lib/Index.js.map +1 -0
  121. package/dist/commonjs/internal/web/memidb/lib/KeyGenerator.js +29 -0
  122. package/dist/commonjs/internal/web/memidb/lib/KeyGenerator.js.map +1 -0
  123. package/dist/commonjs/internal/web/memidb/lib/ObjectStore.js +180 -0
  124. package/dist/commonjs/internal/web/memidb/lib/ObjectStore.js.map +1 -0
  125. package/dist/commonjs/internal/web/memidb/lib/RecordStore.js +141 -0
  126. package/dist/commonjs/internal/web/memidb/lib/RecordStore.js.map +1 -0
  127. package/dist/commonjs/internal/web/memidb/lib/binarySearch.js +86 -0
  128. package/dist/commonjs/internal/web/memidb/lib/binarySearch.js.map +1 -0
  129. package/dist/commonjs/internal/web/memidb/lib/canInjectKey.js +30 -0
  130. package/dist/commonjs/internal/web/memidb/lib/canInjectKey.js.map +1 -0
  131. package/dist/commonjs/internal/web/memidb/lib/cmp.js +85 -0
  132. package/dist/commonjs/internal/web/memidb/lib/cmp.js.map +1 -0
  133. package/dist/commonjs/internal/web/memidb/lib/enforceRange.js +20 -0
  134. package/dist/commonjs/internal/web/memidb/lib/enforceRange.js.map +1 -0
  135. package/dist/commonjs/internal/web/memidb/lib/errors.js +95 -0
  136. package/dist/commonjs/internal/web/memidb/lib/errors.js.map +1 -0
  137. package/dist/commonjs/internal/web/memidb/lib/extractKey.js +46 -0
  138. package/dist/commonjs/internal/web/memidb/lib/extractKey.js.map +1 -0
  139. package/dist/commonjs/internal/web/memidb/lib/scheduling.js +37 -0
  140. package/dist/commonjs/internal/web/memidb/lib/scheduling.js.map +1 -0
  141. package/dist/commonjs/internal/web/memidb/lib/types.js +6 -0
  142. package/dist/commonjs/internal/web/memidb/lib/types.js.map +1 -0
  143. package/dist/commonjs/internal/web/memidb/lib/validateKeyPath.js +51 -0
  144. package/dist/commonjs/internal/web/memidb/lib/validateKeyPath.js.map +1 -0
  145. package/dist/commonjs/internal/web/memidb/lib/valueToKey.js +62 -0
  146. package/dist/commonjs/internal/web/memidb/lib/valueToKey.js.map +1 -0
  147. package/dist/commonjs/internal/web/memidb/lib/valueToKeyRange.js +26 -0
  148. package/dist/commonjs/internal/web/memidb/lib/valueToKeyRange.js.map +1 -0
  149. package/dist/commonjs/internal/web/structuredClone/index.js +239 -0
  150. package/dist/commonjs/internal/web/structuredClone/index.js.map +1 -0
  151. package/dist/commonjs/internal/web/utils.js +59 -0
  152. package/dist/commonjs/internal/web/utils.js.map +1 -0
  153. package/dist/commonjs/modular.js +190 -0
  154. package/dist/commonjs/modular.js.map +1 -0
  155. package/dist/commonjs/namespaced.js +35 -0
  156. package/dist/commonjs/namespaced.js.map +1 -0
  157. package/dist/commonjs/package.json +1 -0
  158. package/dist/commonjs/types/app.js +139 -0
  159. package/dist/commonjs/types/app.js.map +1 -0
  160. package/dist/commonjs/types/internal.js +6 -0
  161. package/dist/commonjs/types/internal.js.map +1 -0
  162. package/dist/commonjs/utils/UtilsStatics.js +59 -0
  163. package/dist/commonjs/utils/UtilsStatics.js.map +1 -0
  164. package/dist/commonjs/utils/index.js +94 -0
  165. package/dist/commonjs/utils/index.js.map +1 -0
  166. package/dist/commonjs/version.js +9 -0
  167. package/dist/commonjs/version.js.map +1 -0
  168. package/{lib → dist/module}/FirebaseApp.js +14 -14
  169. package/dist/module/FirebaseApp.js.map +1 -0
  170. package/dist/module/common/Base64.js +100 -0
  171. package/dist/module/common/Base64.js.map +1 -0
  172. package/{lib → dist/module}/common/MutatableParams.js +4 -6
  173. package/dist/module/common/MutatableParams.js.map +1 -0
  174. package/{lib → dist/module}/common/ReferenceBase.js +3 -2
  175. package/dist/module/common/ReferenceBase.js.map +1 -0
  176. package/{lib → dist/module}/common/deeps.js +5 -9
  177. package/dist/module/common/deeps.js.map +1 -0
  178. package/{lib → dist/module}/common/id.js +20 -11
  179. package/dist/module/common/id.js.map +1 -0
  180. package/dist/module/common/index.js +701 -0
  181. package/dist/module/common/index.js.map +1 -0
  182. package/{lib → dist/module}/common/path.js +4 -8
  183. package/dist/module/common/path.js.map +1 -0
  184. package/{lib → dist/module}/common/promise.js +21 -23
  185. package/dist/module/common/promise.js.map +1 -0
  186. package/dist/module/common/serialize.js +43 -0
  187. package/dist/module/common/serialize.js.map +1 -0
  188. package/dist/module/common/unitTestUtils.js +48 -0
  189. package/dist/module/common/unitTestUtils.js.map +1 -0
  190. package/{lib → dist/module}/common/validate.js +20 -16
  191. package/dist/module/common/validate.js.map +1 -0
  192. package/dist/module/index.js +22 -0
  193. package/dist/module/index.js.map +1 -0
  194. package/{lib → dist/module}/internal/FirebaseModule.js +6 -11
  195. package/dist/module/internal/FirebaseModule.js.map +1 -0
  196. package/{lib → dist/module}/internal/NativeFirebaseError.js +19 -24
  197. package/dist/module/internal/NativeFirebaseError.js.map +1 -0
  198. package/dist/module/internal/NativeModules.js +4 -0
  199. package/dist/module/internal/NativeModules.js.map +1 -0
  200. package/{lib → dist/module}/internal/RNFBNativeEventEmitter.js +30 -21
  201. package/dist/module/internal/RNFBNativeEventEmitter.js.map +1 -0
  202. package/dist/module/internal/SharedEventEmitter.js +22 -0
  203. package/dist/module/internal/SharedEventEmitter.js.map +1 -0
  204. package/dist/module/internal/asyncStorage.js +73 -0
  205. package/dist/module/internal/asyncStorage.js.map +1 -0
  206. package/dist/module/internal/constants.js +23 -0
  207. package/dist/module/internal/constants.js.map +1 -0
  208. package/dist/module/internal/index.js +30 -0
  209. package/dist/module/internal/index.js.map +1 -0
  210. package/{lib → dist/module}/internal/logger.js +65 -55
  211. package/dist/module/internal/logger.js.map +1 -0
  212. package/dist/module/internal/nativeModule.android.js +5 -0
  213. package/dist/module/internal/nativeModule.android.js.map +1 -0
  214. package/dist/module/internal/nativeModule.ios.js +5 -0
  215. package/dist/module/internal/nativeModule.ios.js.map +1 -0
  216. package/dist/module/internal/nativeModule.js +7 -0
  217. package/dist/module/internal/nativeModule.js.map +1 -0
  218. package/dist/module/internal/nativeModuleAndroidIos.js +46 -0
  219. package/dist/module/internal/nativeModuleAndroidIos.js.map +1 -0
  220. package/dist/module/internal/nativeModuleWeb.js +45 -0
  221. package/dist/module/internal/nativeModuleWeb.js.map +1 -0
  222. package/dist/module/internal/nullSerialization.js +158 -0
  223. package/dist/module/internal/nullSerialization.js.map +1 -0
  224. package/{lib → dist/module}/internal/registry/app.js +41 -79
  225. package/dist/module/internal/registry/app.js.map +1 -0
  226. package/dist/module/internal/registry/namespace.js +262 -0
  227. package/dist/module/internal/registry/namespace.js.map +1 -0
  228. package/{lib → dist/module}/internal/registry/nativeModule.js +46 -62
  229. package/dist/module/internal/registry/nativeModule.js.map +1 -0
  230. package/{lib → dist/module}/internal/web/RNFBAppModule.js +76 -67
  231. package/dist/module/internal/web/RNFBAppModule.js.map +1 -0
  232. package/dist/module/internal/web/firebaseApp.js +23 -0
  233. package/dist/module/internal/web/firebaseApp.js.map +1 -0
  234. package/dist/module/internal/web/firebaseAppCheck.js +26 -0
  235. package/dist/module/internal/web/firebaseAppCheck.js.map +1 -0
  236. package/dist/module/internal/web/firebaseAuth.js +24 -0
  237. package/dist/module/internal/web/firebaseAuth.js.map +1 -0
  238. package/dist/module/internal/web/firebaseDatabase.js +24 -0
  239. package/dist/module/internal/web/firebaseDatabase.js.map +1 -0
  240. package/dist/module/internal/web/firebaseFirestore.js +24 -0
  241. package/dist/module/internal/web/firebaseFirestore.js.map +1 -0
  242. package/dist/module/internal/web/firebaseFunctions.js +24 -0
  243. package/dist/module/internal/web/firebaseFunctions.js.map +1 -0
  244. package/dist/module/internal/web/firebaseInstallations.js +26 -0
  245. package/dist/module/internal/web/firebaseInstallations.js.map +1 -0
  246. package/dist/module/internal/web/firebaseRemoteConfig.js +26 -0
  247. package/dist/module/internal/web/firebaseRemoteConfig.js.map +1 -0
  248. package/dist/module/internal/web/firebaseStorage.js +24 -0
  249. package/dist/module/internal/web/firebaseStorage.js.map +1 -0
  250. package/dist/module/internal/web/memidb/FDBCursor.js +474 -0
  251. package/dist/module/internal/web/memidb/FDBCursor.js.map +1 -0
  252. package/dist/module/internal/web/memidb/FDBCursorWithValue.js +14 -0
  253. package/dist/module/internal/web/memidb/FDBCursorWithValue.js.map +1 -0
  254. package/dist/module/internal/web/memidb/FDBDatabase.js +158 -0
  255. package/dist/module/internal/web/memidb/FDBDatabase.js.map +1 -0
  256. package/dist/module/internal/web/memidb/FDBFactory.js +259 -0
  257. package/dist/module/internal/web/memidb/FDBFactory.js.map +1 -0
  258. package/dist/module/internal/web/memidb/FDBIndex.js +186 -0
  259. package/dist/module/internal/web/memidb/FDBIndex.js.map +1 -0
  260. package/dist/module/internal/web/memidb/FDBKeyRange.js +74 -0
  261. package/dist/module/internal/web/memidb/FDBKeyRange.js.map +1 -0
  262. package/dist/module/internal/web/memidb/FDBObjectStore.js +378 -0
  263. package/dist/module/internal/web/memidb/FDBObjectStore.js.map +1 -0
  264. package/dist/module/internal/web/memidb/FDBOpenDBRequest.js +12 -0
  265. package/dist/module/internal/web/memidb/FDBOpenDBRequest.js.map +1 -0
  266. package/dist/module/internal/web/memidb/FDBRequest.js +36 -0
  267. package/dist/module/internal/web/memidb/FDBRequest.js.map +1 -0
  268. package/dist/module/internal/web/memidb/FDBTransaction.js +216 -0
  269. package/dist/module/internal/web/memidb/FDBTransaction.js.map +1 -0
  270. package/dist/module/internal/web/memidb/FDBVersionChangeEvent.js +15 -0
  271. package/dist/module/internal/web/memidb/FDBVersionChangeEvent.js.map +1 -0
  272. package/dist/module/internal/web/memidb/LICENSE +208 -0
  273. package/dist/module/internal/web/memidb/index.js +41 -0
  274. package/dist/module/internal/web/memidb/index.js.map +1 -0
  275. package/dist/module/internal/web/memidb/lib/Database.js +35 -0
  276. package/dist/module/internal/web/memidb/lib/Database.js.map +1 -0
  277. package/dist/module/internal/web/memidb/lib/FakeDOMStringList.js +75 -0
  278. package/dist/module/internal/web/memidb/lib/FakeDOMStringList.js.map +1 -0
  279. package/dist/module/internal/web/memidb/lib/FakeEvent.js +41 -0
  280. package/dist/module/internal/web/memidb/lib/FakeEvent.js.map +1 -0
  281. package/dist/module/internal/web/memidb/lib/FakeEventTarget.js +107 -0
  282. package/dist/module/internal/web/memidb/lib/FakeEventTarget.js.map +1 -0
  283. package/dist/module/internal/web/memidb/lib/Index.js +160 -0
  284. package/dist/module/internal/web/memidb/lib/Index.js.map +1 -0
  285. package/dist/module/internal/web/memidb/lib/KeyGenerator.js +25 -0
  286. package/dist/module/internal/web/memidb/lib/KeyGenerator.js.map +1 -0
  287. package/dist/module/internal/web/memidb/lib/ObjectStore.js +175 -0
  288. package/dist/module/internal/web/memidb/lib/ObjectStore.js.map +1 -0
  289. package/dist/module/internal/web/memidb/lib/RecordStore.js +136 -0
  290. package/dist/module/internal/web/memidb/lib/RecordStore.js.map +1 -0
  291. package/dist/module/internal/web/memidb/lib/binarySearch.js +77 -0
  292. package/dist/module/internal/web/memidb/lib/binarySearch.js.map +1 -0
  293. package/dist/module/internal/web/memidb/lib/canInjectKey.js +26 -0
  294. package/dist/module/internal/web/memidb/lib/canInjectKey.js.map +1 -0
  295. package/dist/module/internal/web/memidb/lib/cmp.js +80 -0
  296. package/dist/module/internal/web/memidb/lib/cmp.js.map +1 -0
  297. package/dist/module/internal/web/memidb/lib/enforceRange.js +16 -0
  298. package/dist/module/internal/web/memidb/lib/enforceRange.js.map +1 -0
  299. package/dist/module/internal/web/memidb/lib/errors.js +81 -0
  300. package/dist/module/internal/web/memidb/lib/errors.js.map +1 -0
  301. package/dist/module/internal/web/memidb/lib/extractKey.js +42 -0
  302. package/dist/module/internal/web/memidb/lib/extractKey.js.map +1 -0
  303. package/dist/module/internal/web/memidb/lib/scheduling.js +32 -0
  304. package/dist/module/internal/web/memidb/lib/scheduling.js.map +1 -0
  305. package/dist/module/internal/web/memidb/lib/types.js +4 -0
  306. package/dist/module/internal/web/memidb/lib/types.js.map +1 -0
  307. package/dist/module/internal/web/memidb/lib/validateKeyPath.js +47 -0
  308. package/dist/module/internal/web/memidb/lib/validateKeyPath.js.map +1 -0
  309. package/dist/module/internal/web/memidb/lib/valueToKey.js +58 -0
  310. package/dist/module/internal/web/memidb/lib/valueToKey.js.map +1 -0
  311. package/dist/module/internal/web/memidb/lib/valueToKeyRange.js +22 -0
  312. package/dist/module/internal/web/memidb/lib/valueToKeyRange.js.map +1 -0
  313. package/dist/module/internal/web/structuredClone/index.js +235 -0
  314. package/dist/module/internal/web/structuredClone/index.js.map +1 -0
  315. package/{lib → dist/module}/internal/web/utils.js +24 -5
  316. package/dist/module/internal/web/utils.js.map +1 -0
  317. package/dist/module/modular.js +172 -0
  318. package/dist/module/modular.js.map +1 -0
  319. package/dist/module/namespaced.js +25 -0
  320. package/dist/module/namespaced.js.map +1 -0
  321. package/dist/module/package.json +1 -0
  322. package/dist/module/types/app.js +135 -0
  323. package/dist/module/types/app.js.map +1 -0
  324. package/dist/module/types/internal.js +4 -0
  325. package/dist/module/types/internal.js.map +1 -0
  326. package/dist/module/utils/UtilsStatics.js +55 -0
  327. package/dist/module/utils/UtilsStatics.js.map +1 -0
  328. package/{lib → dist/module}/utils/index.js +13 -15
  329. package/dist/module/utils/index.js.map +1 -0
  330. package/dist/module/version.js +5 -0
  331. package/dist/module/version.js.map +1 -0
  332. package/dist/typescript/commonjs/lib/FirebaseApp.d.ts +21 -0
  333. package/dist/typescript/commonjs/lib/FirebaseApp.d.ts.map +1 -0
  334. package/dist/typescript/commonjs/lib/common/Base64.d.ts +23 -0
  335. package/dist/typescript/commonjs/lib/common/Base64.d.ts.map +1 -0
  336. package/dist/typescript/commonjs/lib/common/MutatableParams.d.ts +10 -0
  337. package/dist/typescript/commonjs/lib/common/MutatableParams.d.ts.map +1 -0
  338. package/dist/typescript/commonjs/lib/common/ReferenceBase.d.ts +12 -0
  339. package/dist/typescript/commonjs/lib/common/ReferenceBase.d.ts.map +1 -0
  340. package/dist/typescript/commonjs/lib/common/deeps.d.ts +19 -0
  341. package/dist/typescript/commonjs/lib/common/deeps.d.ts.map +1 -0
  342. package/dist/typescript/commonjs/lib/common/id.d.ts +12 -0
  343. package/dist/typescript/commonjs/lib/common/id.d.ts.map +1 -0
  344. package/dist/typescript/commonjs/lib/common/index.d.ts +33 -0
  345. package/dist/typescript/commonjs/lib/common/index.d.ts.map +1 -0
  346. package/dist/typescript/commonjs/lib/common/path.d.ts +51 -0
  347. package/dist/typescript/commonjs/lib/common/path.d.ts.map +1 -0
  348. package/dist/typescript/commonjs/lib/common/promise.d.ts +12 -0
  349. package/dist/typescript/commonjs/lib/common/promise.d.ts.map +1 -0
  350. package/dist/typescript/commonjs/lib/common/serialize.d.ts +4 -0
  351. package/dist/typescript/commonjs/lib/common/serialize.d.ts.map +1 -0
  352. package/dist/typescript/commonjs/lib/common/unitTestUtils.d.ts +4 -0
  353. package/dist/typescript/commonjs/lib/common/unitTestUtils.d.ts.map +1 -0
  354. package/dist/typescript/commonjs/lib/common/validate.d.ts +100 -0
  355. package/dist/typescript/commonjs/lib/common/validate.d.ts.map +1 -0
  356. package/dist/typescript/commonjs/lib/index.d.ts +4 -0
  357. package/dist/typescript/commonjs/lib/index.d.ts.map +1 -0
  358. package/dist/typescript/commonjs/lib/internal/FirebaseModule.d.ts +17 -0
  359. package/dist/typescript/commonjs/lib/internal/FirebaseModule.d.ts.map +1 -0
  360. package/dist/typescript/commonjs/lib/internal/NativeFirebaseError.d.ts +20 -0
  361. package/dist/typescript/commonjs/lib/internal/NativeFirebaseError.d.ts.map +1 -0
  362. package/dist/typescript/commonjs/lib/internal/NativeModules.d.ts +83 -0
  363. package/dist/typescript/commonjs/lib/internal/NativeModules.d.ts.map +1 -0
  364. package/dist/typescript/commonjs/lib/internal/RNFBNativeEventEmitter.d.ts +13 -0
  365. package/dist/typescript/commonjs/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -0
  366. package/dist/typescript/commonjs/lib/internal/SharedEventEmitter.d.ts +4 -0
  367. package/dist/typescript/commonjs/lib/internal/SharedEventEmitter.d.ts.map +1 -0
  368. package/dist/typescript/commonjs/lib/internal/asyncStorage.d.ts +10 -0
  369. package/dist/typescript/commonjs/lib/internal/asyncStorage.d.ts.map +1 -0
  370. package/dist/typescript/commonjs/lib/internal/constants.d.ts +5 -0
  371. package/dist/typescript/commonjs/lib/internal/constants.d.ts.map +1 -0
  372. package/dist/typescript/commonjs/lib/internal/index.d.ts +12 -0
  373. package/dist/typescript/commonjs/lib/internal/index.d.ts.map +1 -0
  374. package/dist/typescript/commonjs/lib/internal/logger.d.ts +83 -0
  375. package/dist/typescript/commonjs/lib/internal/logger.d.ts.map +1 -0
  376. package/dist/typescript/commonjs/lib/internal/nativeModule.android.d.ts +3 -0
  377. package/dist/typescript/commonjs/lib/internal/nativeModule.android.d.ts.map +1 -0
  378. package/dist/typescript/commonjs/lib/internal/nativeModule.d.ts +3 -0
  379. package/dist/typescript/commonjs/lib/internal/nativeModule.d.ts.map +1 -0
  380. package/dist/typescript/commonjs/lib/internal/nativeModule.ios.d.ts +3 -0
  381. package/dist/typescript/commonjs/lib/internal/nativeModule.ios.d.ts.map +1 -0
  382. package/dist/typescript/commonjs/lib/internal/nativeModuleAndroidIos.d.ts +10 -0
  383. package/dist/typescript/commonjs/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -0
  384. package/dist/typescript/commonjs/lib/internal/nativeModuleWeb.d.ts +3 -0
  385. package/dist/typescript/commonjs/lib/internal/nativeModuleWeb.d.ts.map +1 -0
  386. package/dist/typescript/commonjs/lib/internal/nullSerialization.d.ts +16 -0
  387. package/dist/typescript/commonjs/lib/internal/nullSerialization.d.ts.map +1 -0
  388. package/dist/typescript/commonjs/lib/internal/registry/app.d.ts +47 -0
  389. package/dist/typescript/commonjs/lib/internal/registry/app.d.ts.map +1 -0
  390. package/dist/typescript/commonjs/lib/internal/registry/namespace.d.ts +26 -0
  391. package/dist/typescript/commonjs/lib/internal/registry/namespace.d.ts.map +1 -0
  392. package/dist/typescript/commonjs/lib/internal/registry/nativeModule.d.ts +17 -0
  393. package/dist/typescript/commonjs/lib/internal/registry/nativeModule.d.ts.map +1 -0
  394. package/dist/typescript/commonjs/lib/internal/web/RNFBAppModule.d.ts +139 -0
  395. package/dist/typescript/commonjs/lib/internal/web/RNFBAppModule.d.ts.map +1 -0
  396. package/dist/typescript/commonjs/lib/internal/web/firebaseApp.d.ts +2 -0
  397. package/dist/typescript/commonjs/lib/internal/web/firebaseApp.d.ts.map +1 -0
  398. package/{lib/internal/web/firebaseAppCheck.js → dist/typescript/commonjs/lib/internal/web/firebaseAppCheck.d.ts} +1 -2
  399. package/dist/typescript/commonjs/lib/internal/web/firebaseAppCheck.d.ts.map +1 -0
  400. package/dist/typescript/commonjs/lib/internal/web/firebaseAuth.d.ts +3 -0
  401. package/dist/typescript/commonjs/lib/internal/web/firebaseAuth.d.ts.map +1 -0
  402. package/dist/typescript/commonjs/lib/internal/web/firebaseDatabase.d.ts +3 -0
  403. package/dist/typescript/commonjs/lib/internal/web/firebaseDatabase.d.ts.map +1 -0
  404. package/dist/typescript/commonjs/lib/internal/web/firebaseFirestore.d.ts +3 -0
  405. package/dist/typescript/commonjs/lib/internal/web/firebaseFirestore.d.ts.map +1 -0
  406. package/dist/typescript/commonjs/lib/internal/web/firebaseFunctions.d.ts +3 -0
  407. package/dist/typescript/commonjs/lib/internal/web/firebaseFunctions.d.ts.map +1 -0
  408. package/{lib/internal/web/firebaseInstallations.js → dist/typescript/commonjs/lib/internal/web/firebaseInstallations.d.ts} +1 -2
  409. package/dist/typescript/commonjs/lib/internal/web/firebaseInstallations.d.ts.map +1 -0
  410. package/{lib/internal/web/firebaseRemoteConfig.js → dist/typescript/commonjs/lib/internal/web/firebaseRemoteConfig.d.ts} +1 -2
  411. package/dist/typescript/commonjs/lib/internal/web/firebaseRemoteConfig.d.ts.map +1 -0
  412. package/dist/typescript/commonjs/lib/internal/web/firebaseStorage.d.ts +3 -0
  413. package/dist/typescript/commonjs/lib/internal/web/firebaseStorage.d.ts.map +1 -0
  414. package/dist/typescript/commonjs/lib/internal/web/utils.d.ts +13 -0
  415. package/dist/typescript/commonjs/lib/internal/web/utils.d.ts.map +1 -0
  416. package/dist/typescript/commonjs/lib/modular.d.ts +95 -0
  417. package/dist/typescript/commonjs/lib/modular.d.ts.map +1 -0
  418. package/dist/typescript/commonjs/lib/namespaced.d.ts +5 -0
  419. package/dist/typescript/commonjs/lib/namespaced.d.ts.map +1 -0
  420. package/dist/typescript/commonjs/lib/types/app.d.ts +561 -0
  421. package/dist/typescript/commonjs/lib/types/app.d.ts.map +1 -0
  422. package/dist/typescript/commonjs/lib/types/internal.d.ts +101 -0
  423. package/dist/typescript/commonjs/lib/types/internal.d.ts.map +1 -0
  424. package/dist/typescript/commonjs/lib/utils/UtilsStatics.d.ts +4 -0
  425. package/dist/typescript/commonjs/lib/utils/UtilsStatics.d.ts.map +1 -0
  426. package/dist/typescript/commonjs/lib/utils/index.d.ts +4 -0
  427. package/dist/typescript/commonjs/lib/utils/index.d.ts.map +1 -0
  428. package/dist/typescript/commonjs/lib/version.d.ts +2 -0
  429. package/dist/typescript/commonjs/lib/version.d.ts.map +1 -0
  430. package/dist/typescript/commonjs/package.json +1 -0
  431. package/dist/typescript/module/lib/FirebaseApp.d.ts +21 -0
  432. package/dist/typescript/module/lib/FirebaseApp.d.ts.map +1 -0
  433. package/dist/typescript/module/lib/common/Base64.d.ts +23 -0
  434. package/dist/typescript/module/lib/common/Base64.d.ts.map +1 -0
  435. package/dist/typescript/module/lib/common/MutatableParams.d.ts +10 -0
  436. package/dist/typescript/module/lib/common/MutatableParams.d.ts.map +1 -0
  437. package/dist/typescript/module/lib/common/ReferenceBase.d.ts +12 -0
  438. package/dist/typescript/module/lib/common/ReferenceBase.d.ts.map +1 -0
  439. package/dist/typescript/module/lib/common/deeps.d.ts +19 -0
  440. package/dist/typescript/module/lib/common/deeps.d.ts.map +1 -0
  441. package/dist/typescript/module/lib/common/id.d.ts +12 -0
  442. package/dist/typescript/module/lib/common/id.d.ts.map +1 -0
  443. package/dist/typescript/module/lib/common/index.d.ts +33 -0
  444. package/dist/typescript/module/lib/common/index.d.ts.map +1 -0
  445. package/dist/typescript/module/lib/common/path.d.ts +51 -0
  446. package/dist/typescript/module/lib/common/path.d.ts.map +1 -0
  447. package/dist/typescript/module/lib/common/promise.d.ts +12 -0
  448. package/dist/typescript/module/lib/common/promise.d.ts.map +1 -0
  449. package/dist/typescript/module/lib/common/serialize.d.ts +4 -0
  450. package/dist/typescript/module/lib/common/serialize.d.ts.map +1 -0
  451. package/dist/typescript/module/lib/common/unitTestUtils.d.ts +4 -0
  452. package/dist/typescript/module/lib/common/unitTestUtils.d.ts.map +1 -0
  453. package/dist/typescript/module/lib/common/validate.d.ts +100 -0
  454. package/dist/typescript/module/lib/common/validate.d.ts.map +1 -0
  455. package/dist/typescript/module/lib/index.d.ts +4 -0
  456. package/dist/typescript/module/lib/index.d.ts.map +1 -0
  457. package/dist/typescript/module/lib/internal/FirebaseModule.d.ts +17 -0
  458. package/dist/typescript/module/lib/internal/FirebaseModule.d.ts.map +1 -0
  459. package/dist/typescript/module/lib/internal/NativeFirebaseError.d.ts +20 -0
  460. package/dist/typescript/module/lib/internal/NativeFirebaseError.d.ts.map +1 -0
  461. package/dist/typescript/module/lib/internal/NativeModules.d.ts +83 -0
  462. package/dist/typescript/module/lib/internal/NativeModules.d.ts.map +1 -0
  463. package/dist/typescript/module/lib/internal/RNFBNativeEventEmitter.d.ts +13 -0
  464. package/dist/typescript/module/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -0
  465. package/dist/typescript/module/lib/internal/SharedEventEmitter.d.ts +4 -0
  466. package/dist/typescript/module/lib/internal/SharedEventEmitter.d.ts.map +1 -0
  467. package/dist/typescript/module/lib/internal/asyncStorage.d.ts +10 -0
  468. package/dist/typescript/module/lib/internal/asyncStorage.d.ts.map +1 -0
  469. package/dist/typescript/module/lib/internal/constants.d.ts +5 -0
  470. package/dist/typescript/module/lib/internal/constants.d.ts.map +1 -0
  471. package/dist/typescript/module/lib/internal/index.d.ts +12 -0
  472. package/dist/typescript/module/lib/internal/index.d.ts.map +1 -0
  473. package/dist/typescript/module/lib/internal/logger.d.ts +83 -0
  474. package/dist/typescript/module/lib/internal/logger.d.ts.map +1 -0
  475. package/dist/typescript/module/lib/internal/nativeModule.android.d.ts +3 -0
  476. package/dist/typescript/module/lib/internal/nativeModule.android.d.ts.map +1 -0
  477. package/dist/typescript/module/lib/internal/nativeModule.d.ts +3 -0
  478. package/dist/typescript/module/lib/internal/nativeModule.d.ts.map +1 -0
  479. package/dist/typescript/module/lib/internal/nativeModule.ios.d.ts +3 -0
  480. package/dist/typescript/module/lib/internal/nativeModule.ios.d.ts.map +1 -0
  481. package/dist/typescript/module/lib/internal/nativeModuleAndroidIos.d.ts +10 -0
  482. package/dist/typescript/module/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -0
  483. package/dist/typescript/module/lib/internal/nativeModuleWeb.d.ts +3 -0
  484. package/dist/typescript/module/lib/internal/nativeModuleWeb.d.ts.map +1 -0
  485. package/dist/typescript/module/lib/internal/nullSerialization.d.ts +16 -0
  486. package/dist/typescript/module/lib/internal/nullSerialization.d.ts.map +1 -0
  487. package/dist/typescript/module/lib/internal/registry/app.d.ts +47 -0
  488. package/dist/typescript/module/lib/internal/registry/app.d.ts.map +1 -0
  489. package/dist/typescript/module/lib/internal/registry/namespace.d.ts +26 -0
  490. package/dist/typescript/module/lib/internal/registry/namespace.d.ts.map +1 -0
  491. package/dist/typescript/module/lib/internal/registry/nativeModule.d.ts +17 -0
  492. package/dist/typescript/module/lib/internal/registry/nativeModule.d.ts.map +1 -0
  493. package/dist/typescript/module/lib/internal/web/RNFBAppModule.d.ts +139 -0
  494. package/dist/typescript/module/lib/internal/web/RNFBAppModule.d.ts.map +1 -0
  495. package/dist/typescript/module/lib/internal/web/firebaseApp.d.ts +2 -0
  496. package/dist/typescript/module/lib/internal/web/firebaseApp.d.ts.map +1 -0
  497. package/dist/typescript/module/lib/internal/web/firebaseAppCheck.d.ts +5 -0
  498. package/dist/typescript/module/lib/internal/web/firebaseAppCheck.d.ts.map +1 -0
  499. package/dist/typescript/module/lib/internal/web/firebaseAuth.d.ts +3 -0
  500. package/dist/typescript/module/lib/internal/web/firebaseAuth.d.ts.map +1 -0
  501. package/dist/typescript/module/lib/internal/web/firebaseDatabase.d.ts +3 -0
  502. package/dist/typescript/module/lib/internal/web/firebaseDatabase.d.ts.map +1 -0
  503. package/dist/typescript/module/lib/internal/web/firebaseFirestore.d.ts +3 -0
  504. package/dist/typescript/module/lib/internal/web/firebaseFirestore.d.ts.map +1 -0
  505. package/dist/typescript/module/lib/internal/web/firebaseFunctions.d.ts +3 -0
  506. package/dist/typescript/module/lib/internal/web/firebaseFunctions.d.ts.map +1 -0
  507. package/dist/typescript/module/lib/internal/web/firebaseInstallations.d.ts +5 -0
  508. package/dist/typescript/module/lib/internal/web/firebaseInstallations.d.ts.map +1 -0
  509. package/dist/typescript/module/lib/internal/web/firebaseRemoteConfig.d.ts +5 -0
  510. package/dist/typescript/module/lib/internal/web/firebaseRemoteConfig.d.ts.map +1 -0
  511. package/dist/typescript/module/lib/internal/web/firebaseStorage.d.ts +3 -0
  512. package/dist/typescript/module/lib/internal/web/firebaseStorage.d.ts.map +1 -0
  513. package/dist/typescript/module/lib/internal/web/utils.d.ts +13 -0
  514. package/dist/typescript/module/lib/internal/web/utils.d.ts.map +1 -0
  515. package/dist/typescript/module/lib/modular.d.ts +95 -0
  516. package/dist/typescript/module/lib/modular.d.ts.map +1 -0
  517. package/dist/typescript/module/lib/namespaced.d.ts +5 -0
  518. package/dist/typescript/module/lib/namespaced.d.ts.map +1 -0
  519. package/dist/typescript/module/lib/types/app.d.ts +561 -0
  520. package/dist/typescript/module/lib/types/app.d.ts.map +1 -0
  521. package/dist/typescript/module/lib/types/internal.d.ts +101 -0
  522. package/dist/typescript/module/lib/types/internal.d.ts.map +1 -0
  523. package/dist/typescript/module/lib/utils/UtilsStatics.d.ts +4 -0
  524. package/dist/typescript/module/lib/utils/UtilsStatics.d.ts.map +1 -0
  525. package/dist/typescript/module/lib/utils/index.d.ts +4 -0
  526. package/dist/typescript/module/lib/utils/index.d.ts.map +1 -0
  527. package/dist/typescript/module/lib/version.d.ts +2 -0
  528. package/dist/typescript/module/lib/version.d.ts.map +1 -0
  529. package/dist/typescript/module/package.json +1 -0
  530. package/ios/RNFBApp/RNFBNullSentinelInterceptor.h +47 -0
  531. package/ios/RNFBApp/RNFBNullSentinelInterceptor.m +74 -0
  532. package/ios/RNFBApp/RNFBSharedUtils.h +2 -0
  533. package/ios/RNFBApp/RNFBSharedUtils.m +118 -0
  534. package/ios/RNFBApp/RNFBVersion.m +1 -1
  535. package/ios/RNFBApp.xcodeproj/project.pbxproj +6 -0
  536. package/lib/FirebaseApp.ts +98 -0
  537. package/lib/common/{Base64.js → Base64.ts} +19 -11
  538. package/lib/common/MutatableParams.ts +50 -0
  539. package/lib/common/ReferenceBase.ts +45 -0
  540. package/lib/common/deeps.ts +92 -0
  541. package/lib/common/id.ts +91 -0
  542. package/lib/common/{index.js → index.ts} +60 -38
  543. package/lib/common/path.ts +124 -0
  544. package/lib/common/promise.ts +68 -0
  545. package/lib/common/{serialize.js → serialize.ts} +3 -2
  546. package/lib/common/unitTestUtils.ts +5 -4
  547. package/lib/common/validate.ts +232 -0
  548. package/lib/index.ts +27 -0
  549. package/lib/internal/FirebaseModule.ts +78 -0
  550. package/lib/internal/NativeFirebaseError.ts +111 -0
  551. package/lib/internal/NativeModules.ts +116 -0
  552. package/lib/internal/RNFBNativeEventEmitter.ts +139 -0
  553. package/lib/internal/asyncStorage.ts +76 -0
  554. package/lib/internal/{constants.js → constants.ts} +3 -1
  555. package/lib/internal/global.d.ts +33 -0
  556. package/lib/internal/{index.js → index.ts} +2 -0
  557. package/lib/internal/logger.ts +270 -0
  558. package/lib/internal/nativeModuleAndroidIos.ts +55 -0
  559. package/lib/internal/nativeModuleWeb.ts +60 -0
  560. package/lib/internal/nullSerialization.ts +186 -0
  561. package/lib/internal/registry/app.ts +278 -0
  562. package/lib/internal/registry/{namespace.js → namespace.ts} +93 -54
  563. package/lib/internal/registry/nativeModule.ts +282 -0
  564. package/lib/internal/web/RNFBAppModule.ts +318 -0
  565. package/lib/internal/web/firebaseApp.ts +20 -0
  566. package/lib/internal/web/firebaseAppCheck.ts +23 -0
  567. package/lib/internal/web/firebaseAuth.ts +21 -0
  568. package/lib/internal/web/firebaseDatabase.ts +21 -0
  569. package/lib/internal/web/firebaseFirestore.ts +21 -0
  570. package/lib/internal/web/firebaseFunctions.ts +21 -0
  571. package/lib/internal/web/firebaseInstallations.ts +23 -0
  572. package/lib/internal/web/firebaseRemoteConfig.ts +23 -0
  573. package/lib/internal/web/firebaseStorage.ts +21 -0
  574. package/lib/internal/web/memidb/index.d.ts +21 -0
  575. package/lib/internal/web/memidb/lib/errors.js +17 -0
  576. package/lib/internal/web/utils.ts +57 -0
  577. package/lib/modular.ts +219 -0
  578. package/lib/{index.js → namespaced.ts} +2 -2
  579. package/lib/{index.d.ts → types/app.ts} +81 -40
  580. package/lib/types/internal.ts +142 -0
  581. package/lib/utils/{UtilsStatics.js → UtilsStatics.ts} +20 -12
  582. package/lib/utils/index.ts +94 -0
  583. package/lib/version.ts +2 -0
  584. package/package.json +99 -9
  585. package/tsconfig.json +10 -0
  586. package/lib/internal/asyncStorage.js +0 -47
  587. package/lib/internal/logger.d.ts +0 -85
  588. package/lib/internal/nativeModuleAndroidIos.js +0 -45
  589. package/lib/internal/nativeModuleWeb.js +0 -49
  590. package/lib/internal/web/firebaseApp.js +0 -3
  591. package/lib/internal/web/firebaseAuth.js +0 -4
  592. package/lib/internal/web/firebaseDatabase.js +0 -4
  593. package/lib/internal/web/firebaseFirestore.js +0 -4
  594. package/lib/internal/web/firebaseFunctions.js +0 -4
  595. package/lib/internal/web/firebaseStorage.js +0 -4
  596. package/lib/modular/index.d.ts +0 -131
  597. package/lib/modular/index.js +0 -150
  598. package/lib/version.js +0 -2
  599. /package/lib/internal/{SharedEventEmitter.js → SharedEventEmitter.ts} +0 -0
  600. /package/lib/internal/{nativeModule.android.js → nativeModule.android.ts} +0 -0
  601. /package/lib/internal/{nativeModule.ios.js → nativeModule.ios.ts} +0 -0
  602. /package/lib/internal/{nativeModule.js → nativeModule.ts} +0 -0
@@ -0,0 +1,278 @@
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 {
19
+ isIOS,
20
+ isOther,
21
+ isNull,
22
+ warnIfNotModularCall,
23
+ isObject,
24
+ isFunction,
25
+ isString,
26
+ isUndefined,
27
+ } from '../../common';
28
+ import FirebaseApp from '../../FirebaseApp';
29
+ import { DEFAULT_APP_NAME } from '../constants';
30
+ import { setReactNativeAsyncStorageInternal } from '../asyncStorage';
31
+ import { getAppModule } from './nativeModule';
32
+ import { setLogLevelInternal } from '../logger';
33
+ import type { ReactNativeFirebase } from '../../types/app';
34
+
35
+ type FirebaseAppConfig = ReactNativeFirebase.FirebaseAppConfig;
36
+ type FirebaseAppOptions = ReactNativeFirebase.FirebaseAppOptions;
37
+ type ReactNativeAsyncStorage = ReactNativeFirebase.ReactNativeAsyncStorage;
38
+
39
+ const APP_REGISTRY: Record<string, FirebaseApp> = {};
40
+ let onAppCreateFn: ((app: FirebaseApp) => void) | null = null;
41
+ let onAppDestroyFn: ((app: FirebaseApp) => void) | null = null;
42
+ let initializedNativeApps = false;
43
+
44
+ /**
45
+ * This was needed to avoid metro require cycles...
46
+ * @param fn
47
+ */
48
+ export function setOnAppCreate(fn: (app: FirebaseApp) => void): void {
49
+ onAppCreateFn = fn;
50
+ }
51
+
52
+ /**
53
+ * This was needed to avoid metro require cycles...
54
+ * @param fn
55
+ */
56
+ export function setOnAppDestroy(fn: (app: FirebaseApp) => void): void {
57
+ onAppDestroyFn = fn;
58
+ }
59
+
60
+ /**
61
+ * Initializes all apps that were created natively (android/ios),
62
+ * e.g. the Default firebase app from plist/json google services file.
63
+ */
64
+ export function initializeNativeApps(): void {
65
+ const nativeModule = getAppModule();
66
+ const { NATIVE_FIREBASE_APPS } = nativeModule;
67
+
68
+ if (NATIVE_FIREBASE_APPS && NATIVE_FIREBASE_APPS.length) {
69
+ for (let i = 0; i < NATIVE_FIREBASE_APPS.length; i++) {
70
+ const nativeApp = NATIVE_FIREBASE_APPS[i];
71
+ if (!nativeApp) continue;
72
+ const { appConfig, options } = nativeApp;
73
+ const name = appConfig.name as string;
74
+ APP_REGISTRY[name] = new FirebaseApp(
75
+ options as FirebaseAppOptions,
76
+ appConfig as FirebaseAppConfig,
77
+ true,
78
+ deleteApp.bind(null, name, true),
79
+ );
80
+ onAppCreateFn?.(APP_REGISTRY[name]);
81
+ }
82
+ }
83
+
84
+ initializedNativeApps = true;
85
+ }
86
+
87
+ /**
88
+ * Get an app by name; or the default app.
89
+ *
90
+ * On first call of this method it will initialize any
91
+ * natively created apps in JS. This makes this 'lazy load'.
92
+ *
93
+ * @param name
94
+ */
95
+ export function getApp(name: string = DEFAULT_APP_NAME): ReactNativeFirebase.FirebaseApp {
96
+ warnIfNotModularCall(arguments, 'getApp()');
97
+ if (!initializedNativeApps) {
98
+ initializeNativeApps();
99
+ }
100
+ const app = APP_REGISTRY[name];
101
+
102
+ if (!app) {
103
+ throw new Error(`No Firebase App '${name}' has been created - call firebase.initializeApp()`);
104
+ }
105
+
106
+ return app as unknown as ReactNativeFirebase.FirebaseApp;
107
+ }
108
+
109
+ /**
110
+ * Gets all app instances, used for `firebase.apps`
111
+ */
112
+ export function getApps(): ReactNativeFirebase.FirebaseApp[] {
113
+ warnIfNotModularCall(arguments, 'getApps()');
114
+ if (!initializedNativeApps) {
115
+ initializeNativeApps();
116
+ }
117
+ return Object.values(APP_REGISTRY) as unknown as ReactNativeFirebase.FirebaseApp[];
118
+ }
119
+
120
+ /**
121
+ *
122
+ * @param options
123
+ * @param configOrName
124
+ */
125
+ export function initializeApp(
126
+ options: Partial<FirebaseAppOptions> = {},
127
+ configOrName?: string | FirebaseAppConfig,
128
+ ): Promise<ReactNativeFirebase.FirebaseApp> {
129
+ warnIfNotModularCall(arguments, 'initializeApp()');
130
+ let appConfig: FirebaseAppConfig = configOrName as FirebaseAppConfig;
131
+
132
+ if (!isObject(configOrName) || isNull(configOrName)) {
133
+ appConfig = {
134
+ name: configOrName as string,
135
+ automaticResourceManagement: false,
136
+ automaticDataCollectionEnabled: true,
137
+ };
138
+ }
139
+
140
+ if (isUndefined(appConfig.name)) {
141
+ appConfig.name = DEFAULT_APP_NAME;
142
+ }
143
+
144
+ const { name } = appConfig;
145
+
146
+ if (!name || !isString(name)) {
147
+ return Promise.reject(new Error(`Illegal App name: '${name}'`));
148
+ }
149
+
150
+ if (APP_REGISTRY[name]) {
151
+ return Promise.reject(new Error(`Firebase App named '${name}' already exists`));
152
+ }
153
+
154
+ // VALIDATE OPTIONS
155
+ if (!isObject(options)) {
156
+ return Promise.reject(
157
+ new Error(`firebase.initializeApp(options, <- expects an Object but got '${typeof options}'`),
158
+ );
159
+ }
160
+
161
+ if (!isString(options.apiKey)) {
162
+ return Promise.reject(new Error("Missing or invalid FirebaseOptions property 'apiKey'."));
163
+ }
164
+
165
+ if (!isString(options.appId)) {
166
+ return Promise.reject(new Error("Missing or invalid FirebaseOptions property 'appId'."));
167
+ }
168
+
169
+ // TODO - make required only if database module exists - init app on native ios&android needs changing also
170
+ if (!isString(options.databaseURL)) {
171
+ return Promise.reject(new Error("Missing or invalid FirebaseOptions property 'databaseURL'."));
172
+ }
173
+
174
+ // TODO - make required only if messaging/notifications module exists - init app on native ios&android needs changing also
175
+ if (!isString(options.messagingSenderId)) {
176
+ return Promise.reject(
177
+ new Error("Missing or invalid FirebaseOptions property 'messagingSenderId'."),
178
+ );
179
+ }
180
+
181
+ if (!isString(options.projectId)) {
182
+ return Promise.reject(new Error("Missing or invalid FirebaseOptions property 'projectId'."));
183
+ }
184
+
185
+ // TODO - make required only if database module exists - init app on native ios&android needs changing also
186
+ if (!isString(options.storageBucket)) {
187
+ return Promise.reject(
188
+ new Error("Missing or invalid FirebaseOptions property 'storageBucket'."),
189
+ );
190
+ }
191
+
192
+ const app = new FirebaseApp(
193
+ options as FirebaseAppOptions,
194
+ appConfig,
195
+ false,
196
+ deleteApp.bind(null, name, true),
197
+ );
198
+
199
+ // Note these initialization actions with side effects are performed prior to knowledge of
200
+ // successful initialization in the native code. Native code *may* throw an error.
201
+ APP_REGISTRY[name] = app;
202
+ onAppCreateFn?.(APP_REGISTRY[name]);
203
+
204
+ return getAppModule()
205
+ .initializeApp(options as FirebaseAppOptions, appConfig)
206
+ .then(() => {
207
+ app._initialized = true;
208
+ return app as unknown as ReactNativeFirebase.FirebaseApp;
209
+ })
210
+ .catch((e: any) => {
211
+ // we need to clean the app entry from registry as the app does not actually exist
212
+ // There are still possible side effects from `onAppCreateFn` to consider but as existing
213
+ // code may rely on that function running prior to native create, re-ordering it is a semantic change
214
+ // and will be avoided
215
+ delete APP_REGISTRY[name];
216
+
217
+ // Now allow calling code to handle the initialization issue
218
+ throw e;
219
+ });
220
+ }
221
+
222
+ export function setLogLevel(logLevel: ReactNativeFirebase.LogLevelString): void {
223
+ warnIfNotModularCall(arguments, 'setLogLevel()');
224
+ if (!['error', 'warn', 'info', 'debug', 'verbose'].includes(logLevel)) {
225
+ throw new Error('LogLevel must be one of "error", "warn", "info", "debug", "verbose"');
226
+ }
227
+ // This is setting LogLevel for VertexAI which does not wrap around native SDK
228
+ setLogLevelInternal(logLevel);
229
+
230
+ if (isIOS || isOther) {
231
+ getAppModule().setLogLevel(logLevel);
232
+ }
233
+ }
234
+
235
+ export function setReactNativeAsyncStorage(asyncStorage: ReactNativeAsyncStorage): void {
236
+ warnIfNotModularCall(arguments, 'setReactNativeAsyncStorage()');
237
+
238
+ if (!isObject(asyncStorage)) {
239
+ throw new Error("setReactNativeAsyncStorage(*) 'asyncStorage' must be an object.");
240
+ }
241
+
242
+ if (!isFunction(asyncStorage.setItem)) {
243
+ throw new Error("setReactNativeAsyncStorage(*) 'asyncStorage.setItem' must be a function.");
244
+ }
245
+
246
+ if (!isFunction(asyncStorage.getItem)) {
247
+ throw new Error("setReactNativeAsyncStorage(*) 'asyncStorage.getItem' must be a function.");
248
+ }
249
+
250
+ if (!isFunction(asyncStorage.removeItem)) {
251
+ throw new Error("setReactNativeAsyncStorage(*) 'asyncStorage.removeItem' must be a function.");
252
+ }
253
+
254
+ setReactNativeAsyncStorageInternal(asyncStorage as any);
255
+ }
256
+
257
+ /**
258
+ *
259
+ */
260
+ export function deleteApp(name: string, nativeInitialized: boolean): Promise<void> {
261
+ if (name === DEFAULT_APP_NAME && nativeInitialized) {
262
+ return Promise.reject(new Error('Unable to delete the default native firebase app instance.'));
263
+ }
264
+
265
+ const app = APP_REGISTRY[name];
266
+
267
+ if (app === undefined) {
268
+ throw new Error(`Firebase App named '${name}' already deleted`);
269
+ }
270
+
271
+ const nativeModule = getAppModule();
272
+
273
+ return nativeModule.deleteApp(name).then(() => {
274
+ (app as any)._deleted = true;
275
+ onAppDestroyFn?.(app);
276
+ delete APP_REGISTRY[name];
277
+ });
278
+ }
@@ -17,9 +17,10 @@
17
17
 
18
18
  import { isString, createDeprecationProxy } from '../../common';
19
19
  import FirebaseApp from '../../FirebaseApp';
20
- import SDK_VERSION from '../../version';
21
- import { DEFAULT_APP_NAME, KNOWN_NAMESPACES } from '../constants';
20
+ import { version as SDK_VERSION } from '../../version';
21
+ import { DEFAULT_APP_NAME, KNOWN_NAMESPACES, type KnownNamespace } from '../constants';
22
22
  import FirebaseModule from '../FirebaseModule';
23
+ import type { ModuleGetter, FirebaseRoot, NamespaceConfig } from '../../types/internal';
23
24
  import {
24
25
  getApp,
25
26
  getApps,
@@ -31,12 +32,12 @@ import {
31
32
  } from './app';
32
33
 
33
34
  // firebase.X
34
- let FIREBASE_ROOT = null;
35
+ let FIREBASE_ROOT: FirebaseRoot | null = null;
35
36
 
36
- const NAMESPACE_REGISTRY = {};
37
- const APP_MODULE_INSTANCE = {};
38
- const MODULE_GETTER_FOR_APP = {};
39
- const MODULE_GETTER_FOR_ROOT = {};
37
+ const NAMESPACE_REGISTRY: Record<string, NamespaceConfig | undefined> = {};
38
+ const APP_MODULE_INSTANCE: Record<string, Record<string, FirebaseModule<any>>> = {};
39
+ const MODULE_GETTER_FOR_APP: Record<string, Record<string, ModuleGetter>> = {};
40
+ const MODULE_GETTER_FOR_ROOT: Record<string, ModuleGetter> = {};
40
41
 
41
42
  /**
42
43
  * Attaches module namespace getters on every newly created app.
@@ -46,10 +47,12 @@ const MODULE_GETTER_FOR_ROOT = {};
46
47
  setOnAppCreate(app => {
47
48
  for (let i = 0; i < KNOWN_NAMESPACES.length; i++) {
48
49
  const moduleNamespace = KNOWN_NAMESPACES[i];
49
- Object.defineProperty(app, moduleNamespace, {
50
- enumerable: false,
51
- get: firebaseAppModuleProxy.bind(null, app, moduleNamespace),
52
- });
50
+ if (moduleNamespace) {
51
+ Object.defineProperty(app, moduleNamespace, {
52
+ enumerable: false,
53
+ get: firebaseAppModuleProxy.bind(null, app, moduleNamespace),
54
+ });
55
+ }
53
56
  }
54
57
  });
55
58
 
@@ -70,17 +73,20 @@ setOnAppDestroy(app => {
70
73
  * @param moduleNamespace
71
74
  * @returns {*}
72
75
  */
73
- function getOrCreateModuleForApp(app, moduleNamespace) {
74
- if (MODULE_GETTER_FOR_APP[app.name] && MODULE_GETTER_FOR_APP[app.name][moduleNamespace]) {
75
- return MODULE_GETTER_FOR_APP[app.name][moduleNamespace];
76
+ function getOrCreateModuleForApp(app: FirebaseApp, moduleNamespace: KnownNamespace): ModuleGetter {
77
+ if (MODULE_GETTER_FOR_APP[app.name] && MODULE_GETTER_FOR_APP[app.name]?.[moduleNamespace]) {
78
+ return MODULE_GETTER_FOR_APP[app.name]![moduleNamespace]!;
76
79
  }
77
80
 
78
81
  if (!MODULE_GETTER_FOR_APP[app.name]) {
79
82
  MODULE_GETTER_FOR_APP[app.name] = {};
80
83
  }
81
84
 
82
- const { hasCustomUrlOrRegionSupport, hasMultiAppSupport, ModuleClass } =
83
- NAMESPACE_REGISTRY[moduleNamespace];
85
+ const config = NAMESPACE_REGISTRY[moduleNamespace];
86
+ if (!config) {
87
+ throw new Error(`Module namespace '${moduleNamespace}' is not registered.`);
88
+ }
89
+ const { hasCustomUrlOrRegionSupport, hasMultiAppSupport, ModuleClass } = config;
84
90
 
85
91
  // modules such as analytics only run on the default app
86
92
  if (!hasMultiAppSupport && app.name !== DEFAULT_APP_NAME) {
@@ -94,7 +100,7 @@ function getOrCreateModuleForApp(app, moduleNamespace) {
94
100
  }
95
101
 
96
102
  // e.g. firebase.storage(customUrlOrRegion), firebase.functions(customUrlOrRegion), firebase.firestore(databaseId), firebase.database(url)
97
- function firebaseModuleWithArgs(customUrlOrRegionOrDatabaseId) {
103
+ function firebaseModuleWithArgs(customUrlOrRegionOrDatabaseId?: string): FirebaseModule<any> {
98
104
  if (customUrlOrRegionOrDatabaseId !== undefined) {
99
105
  if (!hasCustomUrlOrRegionSupport) {
100
106
  // TODO throw Module does not support arguments error
@@ -113,19 +119,24 @@ function getOrCreateModuleForApp(app, moduleNamespace) {
113
119
  APP_MODULE_INSTANCE[app.name] = {};
114
120
  }
115
121
 
116
- if (!APP_MODULE_INSTANCE[app.name][key]) {
122
+ if (!APP_MODULE_INSTANCE[app.name]?.[key]) {
123
+ const moduleConfig = NAMESPACE_REGISTRY[moduleNamespace];
124
+ if (!moduleConfig) {
125
+ throw new Error(`Module namespace '${moduleNamespace}' is not registered.`);
126
+ }
117
127
  const module = createDeprecationProxy(
118
- new ModuleClass(app, NAMESPACE_REGISTRY[moduleNamespace], customUrlOrRegionOrDatabaseId),
119
- );
128
+ new ModuleClass(app, moduleConfig, customUrlOrRegionOrDatabaseId),
129
+ ) as unknown as FirebaseModule<any>;
120
130
 
121
- APP_MODULE_INSTANCE[app.name][key] = module;
131
+ APP_MODULE_INSTANCE[app.name]![key] = module;
122
132
  }
123
133
 
124
- return APP_MODULE_INSTANCE[app.name][key];
134
+ return APP_MODULE_INSTANCE[app.name]![key]!;
125
135
  }
126
136
 
127
- MODULE_GETTER_FOR_APP[app.name][moduleNamespace] = firebaseModuleWithArgs;
128
- return MODULE_GETTER_FOR_APP[app.name][moduleNamespace];
137
+ MODULE_GETTER_FOR_APP[app.name]![moduleNamespace] =
138
+ firebaseModuleWithArgs as unknown as ModuleGetter;
139
+ return MODULE_GETTER_FOR_APP[app.name]![moduleNamespace]!;
129
140
  }
130
141
 
131
142
  /**
@@ -133,18 +144,29 @@ function getOrCreateModuleForApp(app, moduleNamespace) {
133
144
  * @param moduleNamespace
134
145
  * @returns {*}
135
146
  */
136
- function getOrCreateModuleForRoot(moduleNamespace) {
147
+ function getOrCreateModuleForRoot(moduleNamespace: KnownNamespace): ModuleGetter {
137
148
  if (MODULE_GETTER_FOR_ROOT[moduleNamespace]) {
138
149
  return MODULE_GETTER_FOR_ROOT[moduleNamespace];
139
150
  }
140
151
 
141
- const { statics, hasMultiAppSupport, ModuleClass } = NAMESPACE_REGISTRY[moduleNamespace];
152
+ const config = NAMESPACE_REGISTRY[moduleNamespace];
153
+ if (!config) {
154
+ throw new Error(`Module namespace '${moduleNamespace}' is not registered.`);
155
+ }
156
+ const { statics, hasMultiAppSupport, ModuleClass } = config;
142
157
 
143
158
  // e.g. firebase.storage(app)
144
- function firebaseModuleWithApp(app) {
159
+ function firebaseModuleWithApp(app?: FirebaseApp): FirebaseModule<any> {
145
160
  const _app = app || getApp();
146
161
 
147
- if (!(_app instanceof FirebaseApp)) {
162
+ // Duck-type check for FirebaseApp (checking for required properties)
163
+ if (
164
+ !_app ||
165
+ typeof _app !== 'object' ||
166
+ !('name' in _app) ||
167
+ !('options' in _app) ||
168
+ typeof _app.name !== 'string'
169
+ ) {
148
170
  throw new Error(
149
171
  [
150
172
  `"firebase.${moduleNamespace}(app)" arg expects a FirebaseApp instance or undefined.`,
@@ -169,22 +191,28 @@ function getOrCreateModuleForRoot(moduleNamespace) {
169
191
  APP_MODULE_INSTANCE[_app.name] = {};
170
192
  }
171
193
 
172
- if (!APP_MODULE_INSTANCE[_app.name][moduleNamespace]) {
194
+ if (!APP_MODULE_INSTANCE[_app.name]?.[moduleNamespace]) {
195
+ const moduleConfig = NAMESPACE_REGISTRY[moduleNamespace];
196
+ if (!moduleConfig) {
197
+ throw new Error(`Module namespace '${moduleNamespace}' is not registered.`);
198
+ }
173
199
  const module = createDeprecationProxy(
174
- new ModuleClass(_app, NAMESPACE_REGISTRY[moduleNamespace]),
175
- );
176
- APP_MODULE_INSTANCE[_app.name][moduleNamespace] = module;
200
+ new ModuleClass(_app, moduleConfig),
201
+ ) as unknown as FirebaseModule<any>;
202
+ APP_MODULE_INSTANCE[_app.name]![moduleNamespace] = module;
177
203
  }
178
204
 
179
- return APP_MODULE_INSTANCE[_app.name][moduleNamespace];
205
+ return APP_MODULE_INSTANCE[_app.name]![moduleNamespace]!;
180
206
  }
181
207
 
182
208
  Object.assign(firebaseModuleWithApp, statics || {});
183
209
  // Object.freeze(firebaseModuleWithApp);
184
210
  // Wrap around statics, e.g. firebase.firestore.FieldValue, removed freeze as it stops proxy working. it is deprecated anyway
185
- MODULE_GETTER_FOR_ROOT[moduleNamespace] = createDeprecationProxy(firebaseModuleWithApp);
211
+ MODULE_GETTER_FOR_ROOT[moduleNamespace] = createDeprecationProxy(
212
+ firebaseModuleWithApp,
213
+ ) as unknown as ModuleGetter;
186
214
 
187
- return MODULE_GETTER_FOR_ROOT[moduleNamespace];
215
+ return MODULE_GETTER_FOR_ROOT[moduleNamespace]!;
188
216
  }
189
217
 
190
218
  /**
@@ -193,12 +221,15 @@ function getOrCreateModuleForRoot(moduleNamespace) {
193
221
  * @param moduleNamespace
194
222
  * @returns {*}
195
223
  */
196
- function firebaseRootModuleProxy(_firebaseNamespace, moduleNamespace) {
224
+ function firebaseRootModuleProxy(
225
+ _firebaseNamespace: FirebaseRoot,
226
+ moduleNamespace: string,
227
+ ): ModuleGetter {
197
228
  if (NAMESPACE_REGISTRY[moduleNamespace]) {
198
- return getOrCreateModuleForRoot(moduleNamespace);
229
+ return getOrCreateModuleForRoot(moduleNamespace as KnownNamespace);
199
230
  }
200
231
 
201
- moduleWithDashes = moduleNamespace
232
+ const moduleWithDashes = moduleNamespace
202
233
  .split(/(?=[A-Z])/)
203
234
  .join('-')
204
235
  .toLowerCase();
@@ -218,13 +249,14 @@ function firebaseRootModuleProxy(_firebaseNamespace, moduleNamespace) {
218
249
  * @param moduleNamespace
219
250
  * @returns {*}
220
251
  */
221
- export function firebaseAppModuleProxy(app, moduleNamespace) {
252
+ export function firebaseAppModuleProxy(app: FirebaseApp, moduleNamespace: string): ModuleGetter {
222
253
  if (NAMESPACE_REGISTRY[moduleNamespace]) {
223
- app._checkDestroyed();
224
- return getOrCreateModuleForApp(app, moduleNamespace);
254
+ // Call private _checkDestroyed method
255
+ (app as unknown as { _checkDestroyed: () => void })._checkDestroyed();
256
+ return getOrCreateModuleForApp(app, moduleNamespace as KnownNamespace);
225
257
  }
226
258
 
227
- moduleWithDashes = moduleNamespace
259
+ const moduleWithDashes = moduleNamespace
228
260
  .split(/(?=[A-Z])/)
229
261
  .join('-')
230
262
  .toLowerCase();
@@ -242,8 +274,9 @@ export function firebaseAppModuleProxy(app, moduleNamespace) {
242
274
  *
243
275
  * @returns {*}
244
276
  */
245
- export function createFirebaseRoot() {
246
- FIREBASE_ROOT = {
277
+ export function createFirebaseRoot(): FirebaseRoot {
278
+ // Create partial root object - module namespaces like 'utils' are added dynamically below
279
+ const root = {
247
280
  initializeApp,
248
281
  setReactNativeAsyncStorage,
249
282
  get app() {
@@ -254,24 +287,27 @@ export function createFirebaseRoot() {
254
287
  },
255
288
  SDK_VERSION,
256
289
  setLogLevel,
257
- };
290
+ } as FirebaseRoot;
258
291
 
259
292
  for (let i = 0; i < KNOWN_NAMESPACES.length; i++) {
260
293
  const namespace = KNOWN_NAMESPACES[i];
261
- Object.defineProperty(FIREBASE_ROOT, namespace, {
262
- enumerable: false,
263
- get: firebaseRootModuleProxy.bind(null, FIREBASE_ROOT, namespace),
264
- });
294
+ if (namespace) {
295
+ Object.defineProperty(root, namespace, {
296
+ enumerable: false,
297
+ get: firebaseRootModuleProxy.bind(null, root, namespace),
298
+ });
299
+ }
265
300
  }
266
301
 
267
- return FIREBASE_ROOT;
302
+ FIREBASE_ROOT = root;
303
+ return root;
268
304
  }
269
305
 
270
306
  /**
271
307
  *
272
308
  * @returns {*}
273
309
  */
274
- export function getFirebaseRoot() {
310
+ export function getFirebaseRoot(): FirebaseRoot {
275
311
  if (FIREBASE_ROOT) {
276
312
  return FIREBASE_ROOT;
277
313
  }
@@ -283,17 +319,20 @@ export function getFirebaseRoot() {
283
319
  * @param options
284
320
  * @returns {*}
285
321
  */
286
- export function createModuleNamespace(options = {}) {
322
+ export function createModuleNamespace(options: NamespaceConfig): ModuleGetter {
287
323
  const { namespace, ModuleClass } = options;
288
324
 
289
325
  if (!NAMESPACE_REGISTRY[namespace]) {
290
326
  // validation only for internal / module dev usage
291
- if (FirebaseModule.__extended__ !== ModuleClass.__extended__) {
327
+ const firebaseModuleExtended = (FirebaseModule as unknown as { __extended__: object })
328
+ .__extended__;
329
+ const moduleClassExtended = (ModuleClass as unknown as { __extended__: object }).__extended__;
330
+ if (firebaseModuleExtended !== moduleClassExtended) {
292
331
  throw new Error('INTERNAL ERROR: ModuleClass must be an instance of FirebaseModule.');
293
332
  }
294
333
 
295
334
  NAMESPACE_REGISTRY[namespace] = Object.assign({}, options);
296
335
  }
297
336
 
298
- return getFirebaseRoot()[namespace];
337
+ return getFirebaseRoot()[namespace] as ModuleGetter;
299
338
  }