@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,4 @@
1
+ import { Utils } from '../types/app';
2
+ declare const _default: Utils.Statics & (() => Utils.Module);
3
+ export default _default;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../lib/utils/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;wBAyEpB,KAAK,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC;AATrD,wBASsD"}
@@ -0,0 +1,2 @@
1
+ export declare const version = "23.8.1";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../lib/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,47 @@
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
+ #ifndef RNFBNullSentinelInterceptor_h
19
+ #define RNFBNullSentinelInterceptor_h
20
+
21
+ #import <Foundation/Foundation.h>
22
+
23
+ /**
24
+ * Intercepts TurboModule conversions to automatically decode null sentinels.
25
+ *
26
+ * iOS TurboModules strip null values from object properties during serialization.
27
+ * See: https://github.com/facebook/react-native/issues/52802
28
+ * The JavaScript side encodes nulls as sentinel objects,
29
+ * and this interceptor automatically converts them back to NSNull before they
30
+ * reach module implementation methods.
31
+ *
32
+ * This class uses method swizzling on RCTCxxConvert to intercept all TurboModule
33
+ * data conversion methods (JS_*Module_Spec*Data:), decoding sentinels before the
34
+ * data reaches the C++ bridging layer and ultimately your module methods.
35
+ */
36
+ @interface RNFBNullSentinelInterceptor : NSObject
37
+
38
+ /**
39
+ * Initializes the null sentinel interceptor.
40
+ * This swizzles RCTCxxConvert (TurboModule converter) to automatically decode null sentinels.
41
+ * Called automatically when the class is loaded via +load.
42
+ */
43
+ + (void)initialize;
44
+
45
+ @end
46
+
47
+ #endif
@@ -0,0 +1,74 @@
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 "RNFBNullSentinelInterceptor.h"
19
+ #import <objc/runtime.h>
20
+ #import "RNFBSharedUtils.h"
21
+
22
+ @implementation RNFBNullSentinelInterceptor
23
+
24
+ + (void)load {
25
+ static dispatch_once_t onceToken;
26
+ dispatch_once(&onceToken, ^{
27
+ [self swizzleRCTConvertMethods];
28
+ });
29
+ }
30
+
31
+ + (void)swizzleRCTConvertMethods {
32
+ // For TurboModules: Swizzle RCTCxxConvert to intercept all conversion methods
33
+ Class cxxConvertClass = NSClassFromString(@"RCTCxxConvert");
34
+ if (cxxConvertClass) {
35
+ [self swizzleTurboModuleConversions:cxxConvertClass];
36
+ }
37
+ }
38
+
39
+ + (void)swizzleTurboModuleConversions:(Class)cxxConvertClass {
40
+ // Get all methods from RCTCxxConvert
41
+ unsigned int methodCount = 0;
42
+ Method *methods = class_copyMethodList(object_getClass(cxxConvertClass), &methodCount);
43
+
44
+ for (unsigned int i = 0; i < methodCount; i++) {
45
+ Method method = methods[i];
46
+ SEL selector = method_getName(method);
47
+ NSString *selectorName = NSStringFromSelector(selector);
48
+
49
+ // Intercept TurboModule data conversion methods (they follow pattern:
50
+ // JS_NativeRNFBTurbo*_Spec*)
51
+ if ([selectorName hasPrefix:@"JS_NativeRNFBTurbo"] && [selectorName containsString:@"_Spec"]) {
52
+ // Create a swizzled version using IMP
53
+ IMP originalIMP = method_getImplementation(method);
54
+ const char *typeEncoding = method_getTypeEncoding(method);
55
+
56
+ // Replace with our wrapper that decodes nulls
57
+ IMP newIMP = imp_implementationWithBlock(^id(id self, id json) {
58
+ // Decode null sentinels before passing to original conversion
59
+ id decoded = [RNFBSharedUtils decodeNullSentinels:json];
60
+
61
+ // Call original implementation with decoded data
62
+ typedef id (*OriginalFunc)(id, SEL, id);
63
+ OriginalFunc originalFunc = (OriginalFunc)originalIMP;
64
+ return originalFunc(self, selector, decoded);
65
+ });
66
+
67
+ method_setImplementation(method, newIMP);
68
+ }
69
+ }
70
+
71
+ free(methods);
72
+ }
73
+
74
+ @end
@@ -60,6 +60,8 @@ extern NSString *const DEFAULT_APP_NAME;
60
60
 
61
61
  + (BOOL)getConfigBooleanValue:(NSString *)tag key:(NSString *)key defaultValue:(BOOL)defaultValue;
62
62
 
63
+ + (id)decodeNullSentinels:(id)value;
64
+
63
65
  @end
64
66
 
65
67
  #endif
@@ -164,4 +164,122 @@ static NSString *const RNFBErrorDomain = @"RNFBErrorDomain";
164
164
  return enabled;
165
165
  }
166
166
 
167
+ /**
168
+ * Decodes null sentinel objects back to NSNull values.
169
+ * Uses iterative stack-based traversal to avoid stack overflow on deeply nested structures.
170
+ *
171
+ * This reverses the encoding done on the JavaScript side where null values in object
172
+ * properties are replaced with {__rnfbNull: true} sentinel objects to survive iOS
173
+ * TurboModule serialization.
174
+ *
175
+ * Process:
176
+ * 1. Detects sentinel objects: dictionaries with single key "__rnfbNull" set to true
177
+ * 2. Replaces sentinels with NSNull in object properties and arrays
178
+ * 3. Preserves regular NSNull values that were in arrays (never encoded as sentinels)
179
+ * 4. Deep processes all nested objects and arrays using a stack-based iteration
180
+ *
181
+ * @param value - The value to decode (dictionary, array, or primitive)
182
+ * @return The decoded value with sentinels replaced by NSNull
183
+ */
184
+ + (id)decodeNullSentinels:(id)value {
185
+ // Non-container values are returned as-is
186
+ if (![value isKindOfClass:[NSDictionary class]] && ![value isKindOfClass:[NSArray class]]) {
187
+ return value;
188
+ }
189
+
190
+ // Helper to detect the sentinel
191
+ BOOL (^isNullSentinel)(NSDictionary *) = ^BOOL(NSDictionary *dict) {
192
+ id flag = dict[@"__rnfbNull"];
193
+ return (dict.count == 1 && flag != nil && [flag boolValue]);
194
+ };
195
+
196
+ // Helper to process a child element and add it to the parent container
197
+ void (^processChild)(id, id, id, BOOL, NSMutableArray *) =
198
+ ^void(id child, id parentMutable, id keyOrNil, BOOL isParentDict, NSMutableArray *stack) {
199
+ id processedValue = nil;
200
+
201
+ if ([child isKindOfClass:[NSDictionary class]]) {
202
+ NSDictionary *childDict = (NSDictionary *)child;
203
+
204
+ if (isNullSentinel(childDict)) {
205
+ // Replace sentinel with NSNull
206
+ processedValue = [NSNull null];
207
+ } else {
208
+ // Process nested dictionary
209
+ NSMutableDictionary *childMut =
210
+ [NSMutableDictionary dictionaryWithCapacity:childDict.count];
211
+ processedValue = childMut;
212
+ [stack addObject:@{@"original" : childDict, @"mutable" : childMut}];
213
+ }
214
+ } else if ([child isKindOfClass:[NSArray class]]) {
215
+ // Process nested array
216
+ NSArray *childArray = (NSArray *)child;
217
+ NSMutableArray *childMut = [NSMutableArray arrayWithCapacity:childArray.count];
218
+ processedValue = childMut;
219
+ [stack addObject:@{@"original" : childArray, @"mutable" : childMut}];
220
+ } else {
221
+ // Preserve primitive values
222
+ processedValue = child ?: [NSNull null];
223
+ }
224
+
225
+ // Add to parent container based on type
226
+ if (isParentDict) {
227
+ NSMutableDictionary *mutDict = (NSMutableDictionary *)parentMutable;
228
+ if (processedValue) {
229
+ mutDict[keyOrNil] = processedValue;
230
+ }
231
+ // NSDictionary can't store nil, and original code wouldn't see nil values either.
232
+ } else {
233
+ NSMutableArray *mutArray = (NSMutableArray *)parentMutable;
234
+ [mutArray addObject:processedValue];
235
+ }
236
+ };
237
+
238
+ // Root-level sentinel case
239
+ if ([value isKindOfClass:[NSDictionary class]] && isNullSentinel((NSDictionary *)value)) {
240
+ return [NSNull null];
241
+ }
242
+
243
+ id rootOriginal = value;
244
+ id rootMutable = nil;
245
+
246
+ if ([value isKindOfClass:[NSDictionary class]]) {
247
+ NSDictionary *dict = (NSDictionary *)value;
248
+ rootMutable = [NSMutableDictionary dictionaryWithCapacity:dict.count];
249
+ } else {
250
+ NSArray *array = (NSArray *)value;
251
+ rootMutable = [NSMutableArray arrayWithCapacity:array.count];
252
+ }
253
+
254
+ // Stack-based iteration to process nested structures without recursion
255
+ // Stack frames: { @"original": container, @"mutable": mutableContainer }
256
+ NSMutableArray<NSDictionary *> *stack = [NSMutableArray array];
257
+ [stack addObject:@{@"original" : rootOriginal, @"mutable" : rootMutable}];
258
+
259
+ while (stack.count > 0) {
260
+ NSDictionary *frame = [stack lastObject];
261
+ [stack removeLastObject];
262
+
263
+ id original = frame[@"original"];
264
+ id mutable = frame[@"mutable"];
265
+
266
+ if ([original isKindOfClass:[NSDictionary class]]) {
267
+ NSDictionary *origDict = (NSDictionary *)original;
268
+
269
+ for (id key in origDict) {
270
+ id child = origDict[key];
271
+ processChild(child, mutable, key, YES, stack);
272
+ }
273
+ } else if ([original isKindOfClass:[NSArray class]]) {
274
+ NSArray *origArray = (NSArray *)original;
275
+
276
+ for (id child in origArray) {
277
+ processChild(child, mutable, nil, NO, stack);
278
+ }
279
+ }
280
+ }
281
+
282
+ return rootMutable;
283
+ }
284
+
167
285
  @end
@@ -18,4 +18,4 @@
18
18
  #import <React/RCTVersion.h>
19
19
 
20
20
  // generated file - do not modify or commit
21
- NSString* const RNFBVersionString = @"23.7.0";
21
+ NSString* const RNFBVersionString = @"23.8.1";
@@ -17,6 +17,7 @@
17
17
  2748D8202237018600FC8DC8 /* RNFBMeta.m in Sources */ = {isa = PBXBuildFile; fileRef = 2748D81F2237018600FC8DC8 /* RNFBMeta.m */; };
18
18
  4D97BAD423042F2700077358 /* RNFBUtilsModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D97BAD323042F2700077358 /* RNFBUtilsModule.m */; };
19
19
  DAA1F28522FCF6AD00F4DEC1 /* RNFBVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = DAA1F28422FCF6AD00F4DEC1 /* RNFBVersion.m */; };
20
+ RNFB00001A2025011100000001 /* RNFBNullSentinelInterceptor.m in Sources */ = {isa = PBXBuildFile; fileRef = RNFB00001A2025011100000002 /* RNFBNullSentinelInterceptor.m */; };
20
21
  /* End PBXBuildFile section */
21
22
 
22
23
  /* Begin PBXCopyFilesBuildPhase section */
@@ -53,6 +54,8 @@
53
54
  4D97BAD323042F2700077358 /* RNFBUtilsModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNFBUtilsModule.m; sourceTree = "<group>"; };
54
55
  DAA1F28422FCF6AD00F4DEC1 /* RNFBVersion.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNFBVersion.m; sourceTree = "<group>"; };
55
56
  DAA1F28622FCF6C200F4DEC1 /* RNFBVersion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNFBVersion.h; sourceTree = "<group>"; };
57
+ RNFB00001A2025011100000002 /* RNFBNullSentinelInterceptor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNFBNullSentinelInterceptor.m; sourceTree = "<group>"; };
58
+ RNFB00001A2025011100000003 /* RNFBNullSentinelInterceptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNFBNullSentinelInterceptor.h; sourceTree = "<group>"; };
56
59
  /* End PBXFileReference section */
57
60
 
58
61
  /* Begin PBXFrameworksBuildPhase section */
@@ -97,6 +100,8 @@
97
100
  DAA1F28622FCF6C200F4DEC1 /* RNFBVersion.h */,
98
101
  4D97BAD223042F0800077358 /* RNFBUtilsModule.h */,
99
102
  4D97BAD323042F2700077358 /* RNFBUtilsModule.m */,
103
+ RNFB00001A2025011100000003 /* RNFBNullSentinelInterceptor.h */,
104
+ RNFB00001A2025011100000002 /* RNFBNullSentinelInterceptor.m */,
100
105
  );
101
106
  path = RNFBApp;
102
107
  sourceTree = "<group>";
@@ -178,6 +183,7 @@
178
183
  2744B99121F46140004F8E3F /* RNFBRCTEventEmitter.m in Sources */,
179
184
  2744B9A421F48A4F004F8E3F /* RCTConvert+FIROptions.m in Sources */,
180
185
  2748D8152236426300FC8DC8 /* RNFBJSON.m in Sources */,
186
+ RNFB00001A2025011100000001 /* RNFBNullSentinelInterceptor.m in Sources */,
181
187
  );
182
188
  runOnlyForDeploymentPostprocessing = 0;
183
189
  };
@@ -0,0 +1,98 @@
1
+ /*
2
+ * Copyright (c) 2016-present Invertase Limited & Contributors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this library except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ *
16
+ */
17
+ import { warnIfNotModularCall } from './common';
18
+ import { getAppModule } from './internal/registry/nativeModule';
19
+ import type { ReactNativeFirebase, Utils } from './types/app';
20
+
21
+ export default class FirebaseApp implements ReactNativeFirebase.FirebaseAppBase {
22
+ private _name: string;
23
+ private _deleted: boolean;
24
+ private _deleteApp: () => Promise<void>;
25
+ private _options: ReactNativeFirebase.FirebaseAppOptions;
26
+ private _automaticDataCollectionEnabled: boolean;
27
+ _initialized: boolean;
28
+ _nativeInitialized: boolean;
29
+
30
+ constructor(
31
+ options: ReactNativeFirebase.FirebaseAppOptions,
32
+ appConfig: ReactNativeFirebase.FirebaseAppConfig,
33
+ fromNative: boolean,
34
+ deleteApp: () => Promise<void>,
35
+ ) {
36
+ const { name = '[DEFAULT]', automaticDataCollectionEnabled } = appConfig;
37
+
38
+ this._name = name;
39
+ this._deleted = false;
40
+ this._deleteApp = deleteApp;
41
+ this._options = Object.assign({}, options);
42
+ this._automaticDataCollectionEnabled = !!automaticDataCollectionEnabled;
43
+
44
+ if (fromNative) {
45
+ this._initialized = true;
46
+ this._nativeInitialized = true;
47
+ } else {
48
+ this._initialized = false;
49
+ this._nativeInitialized = false;
50
+ }
51
+ }
52
+
53
+ get name(): string {
54
+ return this._name;
55
+ }
56
+
57
+ get options(): ReactNativeFirebase.FirebaseAppOptions {
58
+ return Object.assign({}, this._options);
59
+ }
60
+
61
+ get automaticDataCollectionEnabled(): boolean {
62
+ return this._automaticDataCollectionEnabled;
63
+ }
64
+
65
+ set automaticDataCollectionEnabled(enabled: boolean) {
66
+ this._checkDestroyed();
67
+ getAppModule().setAutomaticDataCollectionEnabled(this.name, enabled);
68
+ this._automaticDataCollectionEnabled = enabled;
69
+ }
70
+
71
+ private _checkDestroyed(): void {
72
+ if (this._deleted) {
73
+ throw new Error(`Firebase App named '${this._name}' already deleted`);
74
+ }
75
+ }
76
+
77
+ extendApp(extendedProps: Record<string, unknown>): void {
78
+ warnIfNotModularCall(arguments);
79
+ this._checkDestroyed();
80
+ Object.assign(this, extendedProps);
81
+ }
82
+
83
+ delete(): Promise<void> {
84
+ warnIfNotModularCall(arguments, 'deleteApp()');
85
+ this._checkDestroyed();
86
+ return this._deleteApp();
87
+ }
88
+
89
+ toString(): string {
90
+ warnIfNotModularCall(arguments, '.name property');
91
+ return this.name;
92
+ }
93
+
94
+ // For backward compatibility - utils method added by registry
95
+ utils(): Utils.Module {
96
+ throw new Error('utils() should be added by registry');
97
+ }
98
+ }
@@ -15,6 +15,7 @@
15
15
  *
16
16
  */
17
17
 
18
+ // @ts-expect-error - No type declarations available
18
19
  import binaryToBase64 from 'react-native/Libraries/Utilities/binaryToBase64';
19
20
  import { promiseDefer } from './promise';
20
21
 
@@ -23,7 +24,7 @@ const CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
23
24
  /**
24
25
  * window.btoa
25
26
  */
26
- function btoa(input) {
27
+ function btoa(input: string): string {
27
28
  let map;
28
29
  let i = 0;
29
30
  let block = 0;
@@ -51,11 +52,11 @@ function btoa(input) {
51
52
  /**
52
53
  * window.atob
53
54
  */
54
- function atob(input) {
55
+ function atob(input: string): string {
55
56
  let i = 0;
56
57
  let bc = 0;
57
58
  let bs = 0;
58
- let buffer;
59
+ let buffer: number | string;
59
60
  let output = '';
60
61
 
61
62
  const str = input.replace(/[=]+$/, '');
@@ -69,7 +70,7 @@ function atob(input) {
69
70
  for (
70
71
  bc = 0, bs = 0, i = 0;
71
72
  (buffer = str.charAt(i++));
72
- ~buffer && ((bs = bc % 4 ? bs * 64 + buffer : buffer), bc++ % 4)
73
+ ~buffer && ((bs = bc % 4 ? bs * 64 + (buffer as number) : buffer), bc++ % 4)
73
74
  ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))
74
75
  : 0
75
76
  ) {
@@ -79,23 +80,30 @@ function atob(input) {
79
80
  return output;
80
81
  }
81
82
 
83
+ export interface Base64Result {
84
+ string: string | ArrayBuffer | null;
85
+ format: 'data_url' | 'base64';
86
+ }
87
+
82
88
  /**
83
89
  * Converts a Blob, ArrayBuffer or Uint8Array to a base64 string.
84
90
  */
85
- function fromData(data) {
91
+ function fromData(data: Blob | ArrayBuffer | Uint8Array): Promise<Base64Result> {
86
92
  if (data instanceof Blob) {
87
93
  const fileReader = new FileReader();
88
- const { resolve, reject, promise } = promiseDefer();
94
+ const { resolve, reject, promise } = promiseDefer<Base64Result>();
89
95
 
90
96
  fileReader.readAsDataURL(data);
91
97
 
92
- fileReader.onloadend = function onloadend() {
93
- resolve({ string: fileReader.result, format: 'data_url' });
98
+ fileReader.onloadend = () => {
99
+ if (fileReader?.result) {
100
+ resolve?.({ string: fileReader.result, format: 'data_url' });
101
+ }
94
102
  };
95
103
 
96
- fileReader.onerror = function onerror(event) {
97
- fileReader.abort();
98
- reject(event);
104
+ fileReader.onerror = event => {
105
+ fileReader?.abort();
106
+ reject?.(event);
99
107
  };
100
108
 
101
109
  return promise;
@@ -0,0 +1,50 @@
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 { deepGet, deepSet } from './deeps';
19
+
20
+ export default class MutatableParams {
21
+ _mutatableParams: Record<string, unknown>;
22
+ _parentInstance: MutatableParams;
23
+
24
+ constructor(parentInstance?: MutatableParams) {
25
+ if (parentInstance) {
26
+ this._mutatableParams = parentInstance._mutatableParams;
27
+ this._parentInstance = parentInstance;
28
+ } else {
29
+ this._mutatableParams = {};
30
+ this._parentInstance = this;
31
+ }
32
+ }
33
+
34
+ set(param: string, value: unknown): MutatableParams {
35
+ deepSet(this._mutatableParams, param, value);
36
+ return this._parentInstance;
37
+ }
38
+
39
+ get<T = unknown>(param: string): T | undefined {
40
+ return deepGet<T>(this._mutatableParams, param, '.');
41
+ }
42
+
43
+ toJSON(): Record<string, unknown> {
44
+ return Object.assign({}, this._mutatableParams);
45
+ }
46
+
47
+ validate(): void {
48
+ // do nothing
49
+ }
50
+ }
@@ -0,0 +1,45 @@
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 default class ReferenceBase {
19
+ path: string;
20
+
21
+ constructor(_path: string) {
22
+ let path = _path;
23
+
24
+ if (path) {
25
+ path = path.length > 1 && path.endsWith('/') ? path.substring(0, path.length - 1) : path;
26
+ if (path.startsWith('/') && path.length > 1) {
27
+ path = path.substring(1, path.length);
28
+ }
29
+ } else {
30
+ path = '/';
31
+ }
32
+
33
+ this.path = path;
34
+ }
35
+
36
+ /**
37
+ * The last part of a Reference's path (after the last '/')
38
+ * The key of a root Reference is null.
39
+ * @type {String}
40
+ * {@link https://firebase.google.com/docs/reference/js/firebase.database.Reference#key}
41
+ */
42
+ get key(): string | null {
43
+ return this.path === '/' ? null : this.path.substring(this.path.lastIndexOf('/') + 1);
44
+ }
45
+ }
@@ -0,0 +1,92 @@
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 { isArray, isObject } from './validate';
19
+
20
+ /**
21
+ * Deep get a value from an object.
22
+ * @website https://github.com/Salakar/deeps
23
+ * @param object
24
+ * @param path
25
+ * @param joiner
26
+ * @returns {*}
27
+ */
28
+ export function deepGet<T = unknown>(
29
+ object: Record<string, unknown> | unknown[],
30
+ path: string,
31
+ joiner: string = '/',
32
+ ): T | undefined {
33
+ if (!isObject(object) && !Array.isArray(object)) {
34
+ return undefined;
35
+ }
36
+ const keys = path.split(joiner);
37
+
38
+ let i = 0;
39
+ let tmp: unknown = object;
40
+ const len = keys.length;
41
+
42
+ while (i < len) {
43
+ const key = keys[i++]!;
44
+ if (!tmp || !Object.hasOwnProperty.call(tmp, key)) {
45
+ return undefined;
46
+ }
47
+ tmp = (tmp as Record<string, unknown>)[key];
48
+ }
49
+
50
+ return tmp as T;
51
+ }
52
+
53
+ /**
54
+ * Deep set a value
55
+ * @param object
56
+ * @param path
57
+ * @param value
58
+ * @param initPaths
59
+ * @param joiner
60
+ */
61
+ export function deepSet(
62
+ object: Record<string, unknown>,
63
+ path: string,
64
+ value: unknown,
65
+ initPaths: boolean = true,
66
+ joiner: string = '.',
67
+ ): boolean {
68
+ if (!isObject(object)) {
69
+ return false;
70
+ }
71
+ const keys = path.split(joiner);
72
+
73
+ let i = 0;
74
+ let _object: unknown = object;
75
+ const len = keys.length - 1;
76
+
77
+ while (i < len) {
78
+ const key = keys[i++]!;
79
+ if (initPaths && !Object.hasOwnProperty.call(object, key)) {
80
+ (_object as Record<string, unknown>)[key] = {};
81
+ }
82
+ _object = (_object as Record<string, unknown>)[key];
83
+ }
84
+
85
+ if (isObject(_object) || (isArray(_object) && !Number.isNaN(keys[i]))) {
86
+ (_object as Record<string, unknown>)[keys[i]!] = value;
87
+ } else {
88
+ return false;
89
+ }
90
+
91
+ return true;
92
+ }