@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.
- package/CHANGELOG.md +16 -0
- package/android/src/main/java/io/invertase/firebase/common/UniversalFirebaseModule.java +2 -2
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java +1 -1
- package/dist/commonjs/FirebaseApp.js +85 -0
- package/dist/commonjs/FirebaseApp.js.map +1 -0
- package/dist/commonjs/common/Base64.js +106 -0
- package/dist/commonjs/common/Base64.js.map +1 -0
- package/dist/commonjs/common/MutatableParams.js +50 -0
- package/dist/commonjs/common/MutatableParams.js.map +1 -0
- package/dist/commonjs/common/ReferenceBase.js +49 -0
- package/dist/commonjs/common/ReferenceBase.js.map +1 -0
- package/dist/commonjs/common/deeps.js +82 -0
- package/dist/commonjs/common/deeps.js.map +1 -0
- package/dist/commonjs/common/id.js +88 -0
- package/dist/commonjs/common/id.js.map +1 -0
- package/dist/commonjs/common/index.js +799 -0
- package/dist/commonjs/common/index.js.map +1 -0
- package/dist/commonjs/common/path.js +133 -0
- package/dist/commonjs/common/path.js.map +1 -0
- package/dist/commonjs/common/promise.js +65 -0
- package/dist/commonjs/common/promise.js.map +1 -0
- package/dist/commonjs/common/serialize.js +48 -0
- package/dist/commonjs/common/serialize.js.map +1 -0
- package/dist/commonjs/common/unitTestUtils.js +54 -0
- package/dist/commonjs/common/unitTestUtils.js.map +1 -0
- package/dist/commonjs/common/validate.js +236 -0
- package/dist/commonjs/common/validate.js.map +1 -0
- package/dist/commonjs/index.js +42 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/internal/FirebaseModule.js +63 -0
- package/dist/commonjs/internal/FirebaseModule.js.map +1 -0
- package/dist/commonjs/internal/NativeFirebaseError.js +92 -0
- package/dist/commonjs/internal/NativeFirebaseError.js.map +1 -0
- package/dist/commonjs/internal/NativeModules.js +6 -0
- package/dist/commonjs/internal/NativeModules.js.map +1 -0
- package/dist/commonjs/internal/RNFBNativeEventEmitter.js +118 -0
- package/dist/commonjs/internal/RNFBNativeEventEmitter.js.map +1 -0
- package/dist/commonjs/internal/SharedEventEmitter.js +26 -0
- package/dist/commonjs/internal/SharedEventEmitter.js.map +1 -0
- package/dist/commonjs/internal/asyncStorage.js +83 -0
- package/dist/commonjs/internal/asyncStorage.js.map +1 -0
- package/dist/commonjs/internal/constants.js +27 -0
- package/dist/commonjs/internal/constants.js.map +1 -0
- package/dist/commonjs/internal/index.js +109 -0
- package/dist/commonjs/internal/index.js.map +1 -0
- package/dist/commonjs/internal/logger.js +256 -0
- package/dist/commonjs/internal/logger.js.map +1 -0
- package/dist/commonjs/internal/nativeModule.android.js +19 -0
- package/dist/commonjs/internal/nativeModule.android.js.map +1 -0
- package/dist/commonjs/internal/nativeModule.ios.js +19 -0
- package/dist/commonjs/internal/nativeModule.ios.js.map +1 -0
- package/dist/commonjs/internal/nativeModule.js +19 -0
- package/dist/commonjs/internal/nativeModule.js.map +1 -0
- package/dist/commonjs/internal/nativeModuleAndroidIos.js +51 -0
- package/dist/commonjs/internal/nativeModuleAndroidIos.js.map +1 -0
- package/dist/commonjs/internal/nativeModuleWeb.js +52 -0
- package/dist/commonjs/internal/nativeModuleWeb.js.map +1 -0
- package/dist/commonjs/internal/nullSerialization.js +162 -0
- package/dist/commonjs/internal/nullSerialization.js.map +1 -0
- package/dist/commonjs/internal/registry/app.js +238 -0
- package/dist/commonjs/internal/registry/app.js.map +1 -0
- package/dist/commonjs/internal/registry/namespace.js +269 -0
- package/dist/commonjs/internal/registry/namespace.js.map +1 -0
- package/dist/commonjs/internal/registry/nativeModule.js +224 -0
- package/dist/commonjs/internal/registry/nativeModule.js.map +1 -0
- package/dist/commonjs/internal/web/RNFBAppModule.js +273 -0
- package/dist/commonjs/internal/web/RNFBAppModule.js.map +1 -0
- package/dist/commonjs/internal/web/firebaseApp.js +17 -0
- package/dist/commonjs/internal/web/firebaseApp.js.map +1 -0
- package/dist/commonjs/internal/web/firebaseAppCheck.js +36 -0
- package/dist/commonjs/internal/web/firebaseAppCheck.js.map +1 -0
- package/dist/commonjs/internal/web/firebaseAuth.js +28 -0
- package/dist/commonjs/internal/web/firebaseAuth.js.map +1 -0
- package/dist/commonjs/internal/web/firebaseDatabase.js +28 -0
- package/dist/commonjs/internal/web/firebaseDatabase.js.map +1 -0
- package/dist/commonjs/internal/web/firebaseFirestore.js +28 -0
- package/dist/commonjs/internal/web/firebaseFirestore.js.map +1 -0
- package/dist/commonjs/internal/web/firebaseFunctions.js +28 -0
- package/dist/commonjs/internal/web/firebaseFunctions.js.map +1 -0
- package/dist/commonjs/internal/web/firebaseInstallations.js +36 -0
- package/dist/commonjs/internal/web/firebaseInstallations.js.map +1 -0
- package/dist/commonjs/internal/web/firebaseRemoteConfig.js +36 -0
- package/dist/commonjs/internal/web/firebaseRemoteConfig.js.map +1 -0
- package/dist/commonjs/internal/web/firebaseStorage.js +28 -0
- package/dist/commonjs/internal/web/firebaseStorage.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/FDBCursor.js +479 -0
- package/dist/commonjs/internal/web/memidb/FDBCursor.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/FDBCursorWithValue.js +19 -0
- package/dist/commonjs/internal/web/memidb/FDBCursorWithValue.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/FDBDatabase.js +163 -0
- package/dist/commonjs/internal/web/memidb/FDBDatabase.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/FDBFactory.js +264 -0
- package/dist/commonjs/internal/web/memidb/FDBFactory.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/FDBIndex.js +191 -0
- package/dist/commonjs/internal/web/memidb/FDBIndex.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/FDBKeyRange.js +78 -0
- package/dist/commonjs/internal/web/memidb/FDBKeyRange.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/FDBObjectStore.js +383 -0
- package/dist/commonjs/internal/web/memidb/FDBObjectStore.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/FDBOpenDBRequest.js +17 -0
- package/dist/commonjs/internal/web/memidb/FDBOpenDBRequest.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/FDBRequest.js +41 -0
- package/dist/commonjs/internal/web/memidb/FDBRequest.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/FDBTransaction.js +221 -0
- package/dist/commonjs/internal/web/memidb/FDBTransaction.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/FDBVersionChangeEvent.js +20 -0
- package/dist/commonjs/internal/web/memidb/FDBVersionChangeEvent.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/LICENSE +208 -0
- package/dist/commonjs/internal/web/memidb/index.js +45 -0
- package/dist/commonjs/internal/web/memidb/index.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/Database.js +38 -0
- package/dist/commonjs/internal/web/memidb/lib/Database.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/FakeDOMStringList.js +78 -0
- package/dist/commonjs/internal/web/memidb/lib/FakeDOMStringList.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/FakeEvent.js +45 -0
- package/dist/commonjs/internal/web/memidb/lib/FakeEvent.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/FakeEventTarget.js +111 -0
- package/dist/commonjs/internal/web/memidb/lib/FakeEventTarget.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/Index.js +164 -0
- package/dist/commonjs/internal/web/memidb/lib/Index.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/KeyGenerator.js +29 -0
- package/dist/commonjs/internal/web/memidb/lib/KeyGenerator.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/ObjectStore.js +180 -0
- package/dist/commonjs/internal/web/memidb/lib/ObjectStore.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/RecordStore.js +141 -0
- package/dist/commonjs/internal/web/memidb/lib/RecordStore.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/binarySearch.js +86 -0
- package/dist/commonjs/internal/web/memidb/lib/binarySearch.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/canInjectKey.js +30 -0
- package/dist/commonjs/internal/web/memidb/lib/canInjectKey.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/cmp.js +85 -0
- package/dist/commonjs/internal/web/memidb/lib/cmp.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/enforceRange.js +20 -0
- package/dist/commonjs/internal/web/memidb/lib/enforceRange.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/errors.js +95 -0
- package/dist/commonjs/internal/web/memidb/lib/errors.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/extractKey.js +46 -0
- package/dist/commonjs/internal/web/memidb/lib/extractKey.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/scheduling.js +37 -0
- package/dist/commonjs/internal/web/memidb/lib/scheduling.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/types.js +6 -0
- package/dist/commonjs/internal/web/memidb/lib/types.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/validateKeyPath.js +51 -0
- package/dist/commonjs/internal/web/memidb/lib/validateKeyPath.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/valueToKey.js +62 -0
- package/dist/commonjs/internal/web/memidb/lib/valueToKey.js.map +1 -0
- package/dist/commonjs/internal/web/memidb/lib/valueToKeyRange.js +26 -0
- package/dist/commonjs/internal/web/memidb/lib/valueToKeyRange.js.map +1 -0
- package/dist/commonjs/internal/web/structuredClone/index.js +239 -0
- package/dist/commonjs/internal/web/structuredClone/index.js.map +1 -0
- package/dist/commonjs/internal/web/utils.js +59 -0
- package/dist/commonjs/internal/web/utils.js.map +1 -0
- package/dist/commonjs/modular.js +190 -0
- package/dist/commonjs/modular.js.map +1 -0
- package/dist/commonjs/namespaced.js +35 -0
- package/dist/commonjs/namespaced.js.map +1 -0
- package/dist/commonjs/package.json +1 -0
- package/dist/commonjs/types/app.js +139 -0
- package/dist/commonjs/types/app.js.map +1 -0
- package/dist/commonjs/types/internal.js +6 -0
- package/dist/commonjs/types/internal.js.map +1 -0
- package/dist/commonjs/utils/UtilsStatics.js +59 -0
- package/dist/commonjs/utils/UtilsStatics.js.map +1 -0
- package/dist/commonjs/utils/index.js +94 -0
- package/dist/commonjs/utils/index.js.map +1 -0
- package/dist/commonjs/version.js +9 -0
- package/dist/commonjs/version.js.map +1 -0
- package/{lib → dist/module}/FirebaseApp.js +14 -14
- package/dist/module/FirebaseApp.js.map +1 -0
- package/dist/module/common/Base64.js +100 -0
- package/dist/module/common/Base64.js.map +1 -0
- package/{lib → dist/module}/common/MutatableParams.js +4 -6
- package/dist/module/common/MutatableParams.js.map +1 -0
- package/{lib → dist/module}/common/ReferenceBase.js +3 -2
- package/dist/module/common/ReferenceBase.js.map +1 -0
- package/{lib → dist/module}/common/deeps.js +5 -9
- package/dist/module/common/deeps.js.map +1 -0
- package/{lib → dist/module}/common/id.js +20 -11
- package/dist/module/common/id.js.map +1 -0
- package/dist/module/common/index.js +701 -0
- package/dist/module/common/index.js.map +1 -0
- package/{lib → dist/module}/common/path.js +4 -8
- package/dist/module/common/path.js.map +1 -0
- package/{lib → dist/module}/common/promise.js +21 -23
- package/dist/module/common/promise.js.map +1 -0
- package/dist/module/common/serialize.js +43 -0
- package/dist/module/common/serialize.js.map +1 -0
- package/dist/module/common/unitTestUtils.js +48 -0
- package/dist/module/common/unitTestUtils.js.map +1 -0
- package/{lib → dist/module}/common/validate.js +20 -16
- package/dist/module/common/validate.js.map +1 -0
- package/dist/module/index.js +22 -0
- package/dist/module/index.js.map +1 -0
- package/{lib → dist/module}/internal/FirebaseModule.js +6 -11
- package/dist/module/internal/FirebaseModule.js.map +1 -0
- package/{lib → dist/module}/internal/NativeFirebaseError.js +19 -24
- package/dist/module/internal/NativeFirebaseError.js.map +1 -0
- package/dist/module/internal/NativeModules.js +4 -0
- package/dist/module/internal/NativeModules.js.map +1 -0
- package/{lib → dist/module}/internal/RNFBNativeEventEmitter.js +30 -21
- package/dist/module/internal/RNFBNativeEventEmitter.js.map +1 -0
- package/dist/module/internal/SharedEventEmitter.js +22 -0
- package/dist/module/internal/SharedEventEmitter.js.map +1 -0
- package/dist/module/internal/asyncStorage.js +73 -0
- package/dist/module/internal/asyncStorage.js.map +1 -0
- package/dist/module/internal/constants.js +23 -0
- package/dist/module/internal/constants.js.map +1 -0
- package/dist/module/internal/index.js +30 -0
- package/dist/module/internal/index.js.map +1 -0
- package/{lib → dist/module}/internal/logger.js +65 -55
- package/dist/module/internal/logger.js.map +1 -0
- package/dist/module/internal/nativeModule.android.js +5 -0
- package/dist/module/internal/nativeModule.android.js.map +1 -0
- package/dist/module/internal/nativeModule.ios.js +5 -0
- package/dist/module/internal/nativeModule.ios.js.map +1 -0
- package/dist/module/internal/nativeModule.js +7 -0
- package/dist/module/internal/nativeModule.js.map +1 -0
- package/dist/module/internal/nativeModuleAndroidIos.js +46 -0
- package/dist/module/internal/nativeModuleAndroidIos.js.map +1 -0
- package/dist/module/internal/nativeModuleWeb.js +45 -0
- package/dist/module/internal/nativeModuleWeb.js.map +1 -0
- package/dist/module/internal/nullSerialization.js +158 -0
- package/dist/module/internal/nullSerialization.js.map +1 -0
- package/{lib → dist/module}/internal/registry/app.js +41 -79
- package/dist/module/internal/registry/app.js.map +1 -0
- package/dist/module/internal/registry/namespace.js +262 -0
- package/dist/module/internal/registry/namespace.js.map +1 -0
- package/{lib → dist/module}/internal/registry/nativeModule.js +46 -62
- package/dist/module/internal/registry/nativeModule.js.map +1 -0
- package/{lib → dist/module}/internal/web/RNFBAppModule.js +76 -67
- package/dist/module/internal/web/RNFBAppModule.js.map +1 -0
- package/dist/module/internal/web/firebaseApp.js +23 -0
- package/dist/module/internal/web/firebaseApp.js.map +1 -0
- package/dist/module/internal/web/firebaseAppCheck.js +26 -0
- package/dist/module/internal/web/firebaseAppCheck.js.map +1 -0
- package/dist/module/internal/web/firebaseAuth.js +24 -0
- package/dist/module/internal/web/firebaseAuth.js.map +1 -0
- package/dist/module/internal/web/firebaseDatabase.js +24 -0
- package/dist/module/internal/web/firebaseDatabase.js.map +1 -0
- package/dist/module/internal/web/firebaseFirestore.js +24 -0
- package/dist/module/internal/web/firebaseFirestore.js.map +1 -0
- package/dist/module/internal/web/firebaseFunctions.js +24 -0
- package/dist/module/internal/web/firebaseFunctions.js.map +1 -0
- package/dist/module/internal/web/firebaseInstallations.js +26 -0
- package/dist/module/internal/web/firebaseInstallations.js.map +1 -0
- package/dist/module/internal/web/firebaseRemoteConfig.js +26 -0
- package/dist/module/internal/web/firebaseRemoteConfig.js.map +1 -0
- package/dist/module/internal/web/firebaseStorage.js +24 -0
- package/dist/module/internal/web/firebaseStorage.js.map +1 -0
- package/dist/module/internal/web/memidb/FDBCursor.js +474 -0
- package/dist/module/internal/web/memidb/FDBCursor.js.map +1 -0
- package/dist/module/internal/web/memidb/FDBCursorWithValue.js +14 -0
- package/dist/module/internal/web/memidb/FDBCursorWithValue.js.map +1 -0
- package/dist/module/internal/web/memidb/FDBDatabase.js +158 -0
- package/dist/module/internal/web/memidb/FDBDatabase.js.map +1 -0
- package/dist/module/internal/web/memidb/FDBFactory.js +259 -0
- package/dist/module/internal/web/memidb/FDBFactory.js.map +1 -0
- package/dist/module/internal/web/memidb/FDBIndex.js +186 -0
- package/dist/module/internal/web/memidb/FDBIndex.js.map +1 -0
- package/dist/module/internal/web/memidb/FDBKeyRange.js +74 -0
- package/dist/module/internal/web/memidb/FDBKeyRange.js.map +1 -0
- package/dist/module/internal/web/memidb/FDBObjectStore.js +378 -0
- package/dist/module/internal/web/memidb/FDBObjectStore.js.map +1 -0
- package/dist/module/internal/web/memidb/FDBOpenDBRequest.js +12 -0
- package/dist/module/internal/web/memidb/FDBOpenDBRequest.js.map +1 -0
- package/dist/module/internal/web/memidb/FDBRequest.js +36 -0
- package/dist/module/internal/web/memidb/FDBRequest.js.map +1 -0
- package/dist/module/internal/web/memidb/FDBTransaction.js +216 -0
- package/dist/module/internal/web/memidb/FDBTransaction.js.map +1 -0
- package/dist/module/internal/web/memidb/FDBVersionChangeEvent.js +15 -0
- package/dist/module/internal/web/memidb/FDBVersionChangeEvent.js.map +1 -0
- package/dist/module/internal/web/memidb/LICENSE +208 -0
- package/dist/module/internal/web/memidb/index.js +41 -0
- package/dist/module/internal/web/memidb/index.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/Database.js +35 -0
- package/dist/module/internal/web/memidb/lib/Database.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/FakeDOMStringList.js +75 -0
- package/dist/module/internal/web/memidb/lib/FakeDOMStringList.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/FakeEvent.js +41 -0
- package/dist/module/internal/web/memidb/lib/FakeEvent.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/FakeEventTarget.js +107 -0
- package/dist/module/internal/web/memidb/lib/FakeEventTarget.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/Index.js +160 -0
- package/dist/module/internal/web/memidb/lib/Index.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/KeyGenerator.js +25 -0
- package/dist/module/internal/web/memidb/lib/KeyGenerator.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/ObjectStore.js +175 -0
- package/dist/module/internal/web/memidb/lib/ObjectStore.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/RecordStore.js +136 -0
- package/dist/module/internal/web/memidb/lib/RecordStore.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/binarySearch.js +77 -0
- package/dist/module/internal/web/memidb/lib/binarySearch.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/canInjectKey.js +26 -0
- package/dist/module/internal/web/memidb/lib/canInjectKey.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/cmp.js +80 -0
- package/dist/module/internal/web/memidb/lib/cmp.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/enforceRange.js +16 -0
- package/dist/module/internal/web/memidb/lib/enforceRange.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/errors.js +81 -0
- package/dist/module/internal/web/memidb/lib/errors.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/extractKey.js +42 -0
- package/dist/module/internal/web/memidb/lib/extractKey.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/scheduling.js +32 -0
- package/dist/module/internal/web/memidb/lib/scheduling.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/types.js +4 -0
- package/dist/module/internal/web/memidb/lib/types.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/validateKeyPath.js +47 -0
- package/dist/module/internal/web/memidb/lib/validateKeyPath.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/valueToKey.js +58 -0
- package/dist/module/internal/web/memidb/lib/valueToKey.js.map +1 -0
- package/dist/module/internal/web/memidb/lib/valueToKeyRange.js +22 -0
- package/dist/module/internal/web/memidb/lib/valueToKeyRange.js.map +1 -0
- package/dist/module/internal/web/structuredClone/index.js +235 -0
- package/dist/module/internal/web/structuredClone/index.js.map +1 -0
- package/{lib → dist/module}/internal/web/utils.js +24 -5
- package/dist/module/internal/web/utils.js.map +1 -0
- package/dist/module/modular.js +172 -0
- package/dist/module/modular.js.map +1 -0
- package/dist/module/namespaced.js +25 -0
- package/dist/module/namespaced.js.map +1 -0
- package/dist/module/package.json +1 -0
- package/dist/module/types/app.js +135 -0
- package/dist/module/types/app.js.map +1 -0
- package/dist/module/types/internal.js +4 -0
- package/dist/module/types/internal.js.map +1 -0
- package/dist/module/utils/UtilsStatics.js +55 -0
- package/dist/module/utils/UtilsStatics.js.map +1 -0
- package/{lib → dist/module}/utils/index.js +13 -15
- package/dist/module/utils/index.js.map +1 -0
- package/dist/module/version.js +5 -0
- package/dist/module/version.js.map +1 -0
- package/dist/typescript/commonjs/lib/FirebaseApp.d.ts +21 -0
- package/dist/typescript/commonjs/lib/FirebaseApp.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/common/Base64.d.ts +23 -0
- package/dist/typescript/commonjs/lib/common/Base64.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/common/MutatableParams.d.ts +10 -0
- package/dist/typescript/commonjs/lib/common/MutatableParams.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/common/ReferenceBase.d.ts +12 -0
- package/dist/typescript/commonjs/lib/common/ReferenceBase.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/common/deeps.d.ts +19 -0
- package/dist/typescript/commonjs/lib/common/deeps.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/common/id.d.ts +12 -0
- package/dist/typescript/commonjs/lib/common/id.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/common/index.d.ts +33 -0
- package/dist/typescript/commonjs/lib/common/index.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/common/path.d.ts +51 -0
- package/dist/typescript/commonjs/lib/common/path.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/common/promise.d.ts +12 -0
- package/dist/typescript/commonjs/lib/common/promise.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/common/serialize.d.ts +4 -0
- package/dist/typescript/commonjs/lib/common/serialize.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/common/unitTestUtils.d.ts +4 -0
- package/dist/typescript/commonjs/lib/common/unitTestUtils.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/common/validate.d.ts +100 -0
- package/dist/typescript/commonjs/lib/common/validate.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/index.d.ts +4 -0
- package/dist/typescript/commonjs/lib/index.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/FirebaseModule.d.ts +17 -0
- package/dist/typescript/commonjs/lib/internal/FirebaseModule.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/NativeFirebaseError.d.ts +20 -0
- package/dist/typescript/commonjs/lib/internal/NativeFirebaseError.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/NativeModules.d.ts +83 -0
- package/dist/typescript/commonjs/lib/internal/NativeModules.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/RNFBNativeEventEmitter.d.ts +13 -0
- package/dist/typescript/commonjs/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/SharedEventEmitter.d.ts +4 -0
- package/dist/typescript/commonjs/lib/internal/SharedEventEmitter.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/asyncStorage.d.ts +10 -0
- package/dist/typescript/commonjs/lib/internal/asyncStorage.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/constants.d.ts +5 -0
- package/dist/typescript/commonjs/lib/internal/constants.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/index.d.ts +12 -0
- package/dist/typescript/commonjs/lib/internal/index.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/logger.d.ts +83 -0
- package/dist/typescript/commonjs/lib/internal/logger.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/nativeModule.android.d.ts +3 -0
- package/dist/typescript/commonjs/lib/internal/nativeModule.android.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/nativeModule.d.ts +3 -0
- package/dist/typescript/commonjs/lib/internal/nativeModule.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/nativeModule.ios.d.ts +3 -0
- package/dist/typescript/commonjs/lib/internal/nativeModule.ios.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/nativeModuleAndroidIos.d.ts +10 -0
- package/dist/typescript/commonjs/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/nativeModuleWeb.d.ts +3 -0
- package/dist/typescript/commonjs/lib/internal/nativeModuleWeb.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/nullSerialization.d.ts +16 -0
- package/dist/typescript/commonjs/lib/internal/nullSerialization.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/registry/app.d.ts +47 -0
- package/dist/typescript/commonjs/lib/internal/registry/app.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/registry/namespace.d.ts +26 -0
- package/dist/typescript/commonjs/lib/internal/registry/namespace.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/registry/nativeModule.d.ts +17 -0
- package/dist/typescript/commonjs/lib/internal/registry/nativeModule.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/web/RNFBAppModule.d.ts +139 -0
- package/dist/typescript/commonjs/lib/internal/web/RNFBAppModule.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseApp.d.ts +2 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseApp.d.ts.map +1 -0
- package/{lib/internal/web/firebaseAppCheck.js → dist/typescript/commonjs/lib/internal/web/firebaseAppCheck.d.ts} +1 -2
- package/dist/typescript/commonjs/lib/internal/web/firebaseAppCheck.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseAuth.d.ts +3 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseAuth.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseDatabase.d.ts +3 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseDatabase.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseFirestore.d.ts +3 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseFirestore.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseFunctions.d.ts +3 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseFunctions.d.ts.map +1 -0
- package/{lib/internal/web/firebaseInstallations.js → dist/typescript/commonjs/lib/internal/web/firebaseInstallations.d.ts} +1 -2
- package/dist/typescript/commonjs/lib/internal/web/firebaseInstallations.d.ts.map +1 -0
- package/{lib/internal/web/firebaseRemoteConfig.js → dist/typescript/commonjs/lib/internal/web/firebaseRemoteConfig.d.ts} +1 -2
- package/dist/typescript/commonjs/lib/internal/web/firebaseRemoteConfig.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseStorage.d.ts +3 -0
- package/dist/typescript/commonjs/lib/internal/web/firebaseStorage.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/internal/web/utils.d.ts +13 -0
- package/dist/typescript/commonjs/lib/internal/web/utils.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/modular.d.ts +95 -0
- package/dist/typescript/commonjs/lib/modular.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/namespaced.d.ts +5 -0
- package/dist/typescript/commonjs/lib/namespaced.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/types/app.d.ts +561 -0
- package/dist/typescript/commonjs/lib/types/app.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/types/internal.d.ts +101 -0
- package/dist/typescript/commonjs/lib/types/internal.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/utils/UtilsStatics.d.ts +4 -0
- package/dist/typescript/commonjs/lib/utils/UtilsStatics.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/utils/index.d.ts +4 -0
- package/dist/typescript/commonjs/lib/utils/index.d.ts.map +1 -0
- package/dist/typescript/commonjs/lib/version.d.ts +2 -0
- package/dist/typescript/commonjs/lib/version.d.ts.map +1 -0
- package/dist/typescript/commonjs/package.json +1 -0
- package/dist/typescript/module/lib/FirebaseApp.d.ts +21 -0
- package/dist/typescript/module/lib/FirebaseApp.d.ts.map +1 -0
- package/dist/typescript/module/lib/common/Base64.d.ts +23 -0
- package/dist/typescript/module/lib/common/Base64.d.ts.map +1 -0
- package/dist/typescript/module/lib/common/MutatableParams.d.ts +10 -0
- package/dist/typescript/module/lib/common/MutatableParams.d.ts.map +1 -0
- package/dist/typescript/module/lib/common/ReferenceBase.d.ts +12 -0
- package/dist/typescript/module/lib/common/ReferenceBase.d.ts.map +1 -0
- package/dist/typescript/module/lib/common/deeps.d.ts +19 -0
- package/dist/typescript/module/lib/common/deeps.d.ts.map +1 -0
- package/dist/typescript/module/lib/common/id.d.ts +12 -0
- package/dist/typescript/module/lib/common/id.d.ts.map +1 -0
- package/dist/typescript/module/lib/common/index.d.ts +33 -0
- package/dist/typescript/module/lib/common/index.d.ts.map +1 -0
- package/dist/typescript/module/lib/common/path.d.ts +51 -0
- package/dist/typescript/module/lib/common/path.d.ts.map +1 -0
- package/dist/typescript/module/lib/common/promise.d.ts +12 -0
- package/dist/typescript/module/lib/common/promise.d.ts.map +1 -0
- package/dist/typescript/module/lib/common/serialize.d.ts +4 -0
- package/dist/typescript/module/lib/common/serialize.d.ts.map +1 -0
- package/dist/typescript/module/lib/common/unitTestUtils.d.ts +4 -0
- package/dist/typescript/module/lib/common/unitTestUtils.d.ts.map +1 -0
- package/dist/typescript/module/lib/common/validate.d.ts +100 -0
- package/dist/typescript/module/lib/common/validate.d.ts.map +1 -0
- package/dist/typescript/module/lib/index.d.ts +4 -0
- package/dist/typescript/module/lib/index.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/FirebaseModule.d.ts +17 -0
- package/dist/typescript/module/lib/internal/FirebaseModule.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/NativeFirebaseError.d.ts +20 -0
- package/dist/typescript/module/lib/internal/NativeFirebaseError.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/NativeModules.d.ts +83 -0
- package/dist/typescript/module/lib/internal/NativeModules.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/RNFBNativeEventEmitter.d.ts +13 -0
- package/dist/typescript/module/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/SharedEventEmitter.d.ts +4 -0
- package/dist/typescript/module/lib/internal/SharedEventEmitter.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/asyncStorage.d.ts +10 -0
- package/dist/typescript/module/lib/internal/asyncStorage.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/constants.d.ts +5 -0
- package/dist/typescript/module/lib/internal/constants.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/index.d.ts +12 -0
- package/dist/typescript/module/lib/internal/index.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/logger.d.ts +83 -0
- package/dist/typescript/module/lib/internal/logger.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/nativeModule.android.d.ts +3 -0
- package/dist/typescript/module/lib/internal/nativeModule.android.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/nativeModule.d.ts +3 -0
- package/dist/typescript/module/lib/internal/nativeModule.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/nativeModule.ios.d.ts +3 -0
- package/dist/typescript/module/lib/internal/nativeModule.ios.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/nativeModuleAndroidIos.d.ts +10 -0
- package/dist/typescript/module/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/nativeModuleWeb.d.ts +3 -0
- package/dist/typescript/module/lib/internal/nativeModuleWeb.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/nullSerialization.d.ts +16 -0
- package/dist/typescript/module/lib/internal/nullSerialization.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/registry/app.d.ts +47 -0
- package/dist/typescript/module/lib/internal/registry/app.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/registry/namespace.d.ts +26 -0
- package/dist/typescript/module/lib/internal/registry/namespace.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/registry/nativeModule.d.ts +17 -0
- package/dist/typescript/module/lib/internal/registry/nativeModule.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/web/RNFBAppModule.d.ts +139 -0
- package/dist/typescript/module/lib/internal/web/RNFBAppModule.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/web/firebaseApp.d.ts +2 -0
- package/dist/typescript/module/lib/internal/web/firebaseApp.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/web/firebaseAppCheck.d.ts +5 -0
- package/dist/typescript/module/lib/internal/web/firebaseAppCheck.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/web/firebaseAuth.d.ts +3 -0
- package/dist/typescript/module/lib/internal/web/firebaseAuth.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/web/firebaseDatabase.d.ts +3 -0
- package/dist/typescript/module/lib/internal/web/firebaseDatabase.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/web/firebaseFirestore.d.ts +3 -0
- package/dist/typescript/module/lib/internal/web/firebaseFirestore.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/web/firebaseFunctions.d.ts +3 -0
- package/dist/typescript/module/lib/internal/web/firebaseFunctions.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/web/firebaseInstallations.d.ts +5 -0
- package/dist/typescript/module/lib/internal/web/firebaseInstallations.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/web/firebaseRemoteConfig.d.ts +5 -0
- package/dist/typescript/module/lib/internal/web/firebaseRemoteConfig.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/web/firebaseStorage.d.ts +3 -0
- package/dist/typescript/module/lib/internal/web/firebaseStorage.d.ts.map +1 -0
- package/dist/typescript/module/lib/internal/web/utils.d.ts +13 -0
- package/dist/typescript/module/lib/internal/web/utils.d.ts.map +1 -0
- package/dist/typescript/module/lib/modular.d.ts +95 -0
- package/dist/typescript/module/lib/modular.d.ts.map +1 -0
- package/dist/typescript/module/lib/namespaced.d.ts +5 -0
- package/dist/typescript/module/lib/namespaced.d.ts.map +1 -0
- package/dist/typescript/module/lib/types/app.d.ts +561 -0
- package/dist/typescript/module/lib/types/app.d.ts.map +1 -0
- package/dist/typescript/module/lib/types/internal.d.ts +101 -0
- package/dist/typescript/module/lib/types/internal.d.ts.map +1 -0
- package/dist/typescript/module/lib/utils/UtilsStatics.d.ts +4 -0
- package/dist/typescript/module/lib/utils/UtilsStatics.d.ts.map +1 -0
- package/dist/typescript/module/lib/utils/index.d.ts +4 -0
- package/dist/typescript/module/lib/utils/index.d.ts.map +1 -0
- package/dist/typescript/module/lib/version.d.ts +2 -0
- package/dist/typescript/module/lib/version.d.ts.map +1 -0
- package/dist/typescript/module/package.json +1 -0
- package/ios/RNFBApp/RNFBNullSentinelInterceptor.h +47 -0
- package/ios/RNFBApp/RNFBNullSentinelInterceptor.m +74 -0
- package/ios/RNFBApp/RNFBSharedUtils.h +2 -0
- package/ios/RNFBApp/RNFBSharedUtils.m +118 -0
- package/ios/RNFBApp/RNFBVersion.m +1 -1
- package/ios/RNFBApp.xcodeproj/project.pbxproj +6 -0
- package/lib/FirebaseApp.ts +98 -0
- package/lib/common/{Base64.js → Base64.ts} +19 -11
- package/lib/common/MutatableParams.ts +50 -0
- package/lib/common/ReferenceBase.ts +45 -0
- package/lib/common/deeps.ts +92 -0
- package/lib/common/id.ts +91 -0
- package/lib/common/{index.js → index.ts} +60 -38
- package/lib/common/path.ts +124 -0
- package/lib/common/promise.ts +68 -0
- package/lib/common/{serialize.js → serialize.ts} +3 -2
- package/lib/common/unitTestUtils.ts +5 -4
- package/lib/common/validate.ts +232 -0
- package/lib/index.ts +27 -0
- package/lib/internal/FirebaseModule.ts +78 -0
- package/lib/internal/NativeFirebaseError.ts +111 -0
- package/lib/internal/NativeModules.ts +116 -0
- package/lib/internal/RNFBNativeEventEmitter.ts +139 -0
- package/lib/internal/asyncStorage.ts +76 -0
- package/lib/internal/{constants.js → constants.ts} +3 -1
- package/lib/internal/global.d.ts +33 -0
- package/lib/internal/{index.js → index.ts} +2 -0
- package/lib/internal/logger.ts +270 -0
- package/lib/internal/nativeModuleAndroidIos.ts +55 -0
- package/lib/internal/nativeModuleWeb.ts +60 -0
- package/lib/internal/nullSerialization.ts +186 -0
- package/lib/internal/registry/app.ts +278 -0
- package/lib/internal/registry/{namespace.js → namespace.ts} +93 -54
- package/lib/internal/registry/nativeModule.ts +282 -0
- package/lib/internal/web/RNFBAppModule.ts +318 -0
- package/lib/internal/web/firebaseApp.ts +20 -0
- package/lib/internal/web/firebaseAppCheck.ts +23 -0
- package/lib/internal/web/firebaseAuth.ts +21 -0
- package/lib/internal/web/firebaseDatabase.ts +21 -0
- package/lib/internal/web/firebaseFirestore.ts +21 -0
- package/lib/internal/web/firebaseFunctions.ts +21 -0
- package/lib/internal/web/firebaseInstallations.ts +23 -0
- package/lib/internal/web/firebaseRemoteConfig.ts +23 -0
- package/lib/internal/web/firebaseStorage.ts +21 -0
- package/lib/internal/web/memidb/index.d.ts +21 -0
- package/lib/internal/web/memidb/lib/errors.js +17 -0
- package/lib/internal/web/utils.ts +57 -0
- package/lib/modular.ts +219 -0
- package/lib/{index.js → namespaced.ts} +2 -2
- package/lib/{index.d.ts → types/app.ts} +81 -40
- package/lib/types/internal.ts +142 -0
- package/lib/utils/{UtilsStatics.js → UtilsStatics.ts} +20 -12
- package/lib/utils/index.ts +94 -0
- package/lib/version.ts +2 -0
- package/package.json +99 -9
- package/tsconfig.json +10 -0
- package/lib/internal/asyncStorage.js +0 -47
- package/lib/internal/logger.d.ts +0 -85
- package/lib/internal/nativeModuleAndroidIos.js +0 -45
- package/lib/internal/nativeModuleWeb.js +0 -49
- package/lib/internal/web/firebaseApp.js +0 -3
- package/lib/internal/web/firebaseAuth.js +0 -4
- package/lib/internal/web/firebaseDatabase.js +0 -4
- package/lib/internal/web/firebaseFirestore.js +0 -4
- package/lib/internal/web/firebaseFunctions.js +0 -4
- package/lib/internal/web/firebaseStorage.js +0 -4
- package/lib/modular/index.d.ts +0 -131
- package/lib/modular/index.js +0 -150
- package/lib/version.js +0 -2
- /package/lib/internal/{SharedEventEmitter.js → SharedEventEmitter.ts} +0 -0
- /package/lib/internal/{nativeModule.android.js → nativeModule.android.ts} +0 -0
- /package/lib/internal/{nativeModule.ios.js → nativeModule.ios.ts} +0 -0
- /package/lib/internal/{nativeModule.js → nativeModule.ts} +0 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this library except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { Platform } from 'react-native';
|
|
19
|
+
|
|
20
|
+
const AlphaNumericUnderscore = /^[a-zA-Z0-9_]+$/;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Validates that all key-value pairs in an object are strings.
|
|
24
|
+
*/
|
|
25
|
+
export function objectKeyValuesAreStrings(object: unknown): boolean {
|
|
26
|
+
if (!isObject(object)) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const entries = Object.entries(object);
|
|
31
|
+
|
|
32
|
+
for (let i = 0; i < entries.length; i++) {
|
|
33
|
+
const [key, value] = entries[i]!;
|
|
34
|
+
if (!isString(key) || !isString(value)) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Simple is null check.
|
|
44
|
+
*
|
|
45
|
+
* @param value
|
|
46
|
+
* @returns {boolean}
|
|
47
|
+
*/
|
|
48
|
+
export function isNull(value: unknown): value is null {
|
|
49
|
+
return value === null;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Simple is object check.
|
|
54
|
+
*
|
|
55
|
+
* @param value
|
|
56
|
+
* @returns {boolean}
|
|
57
|
+
*/
|
|
58
|
+
export function isObject(value: unknown): value is Record<string, unknown> {
|
|
59
|
+
return value ? typeof value === 'object' && !Array.isArray(value) && !isNull(value) : false;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Simple is date check
|
|
64
|
+
* https://stackoverflow.com/a/44198641
|
|
65
|
+
* @param value
|
|
66
|
+
* @returns {boolean}
|
|
67
|
+
*/
|
|
68
|
+
export function isDate(value: unknown): value is Date {
|
|
69
|
+
// use the global isNaN() and not Number.isNaN() since it will validate an Invalid Date
|
|
70
|
+
return value &&
|
|
71
|
+
Object.prototype.toString.call(value) === '[object Date]' &&
|
|
72
|
+
!isNaN(value as number)
|
|
73
|
+
? true
|
|
74
|
+
: false;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Simple is function check
|
|
79
|
+
*
|
|
80
|
+
* @param value
|
|
81
|
+
* @returns {*|boolean}
|
|
82
|
+
*/
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
84
|
+
export function isFunction(value: unknown): value is Function {
|
|
85
|
+
return value ? typeof value === 'function' : false;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Simple is string check
|
|
90
|
+
* @param value
|
|
91
|
+
* @return {boolean}
|
|
92
|
+
*/
|
|
93
|
+
export function isString(value: unknown): value is string {
|
|
94
|
+
return typeof value === 'string';
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Simple is number check
|
|
99
|
+
* @param value
|
|
100
|
+
* @return {boolean}
|
|
101
|
+
*/
|
|
102
|
+
export function isNumber(value: unknown): value is number {
|
|
103
|
+
return typeof value === 'number';
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Simple is phone number check for E.164 format
|
|
108
|
+
* @param value
|
|
109
|
+
* @return {boolean}
|
|
110
|
+
*/
|
|
111
|
+
export function isE164PhoneNumber(value: unknown): boolean {
|
|
112
|
+
if (!isString(value)) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
const PHONE_NUMBER = /^\+[1-9]\d{1,14}$/; // E.164
|
|
116
|
+
return PHONE_NUMBER.test(value);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Simple finite check
|
|
121
|
+
* @param value
|
|
122
|
+
* @returns {boolean}
|
|
123
|
+
*/
|
|
124
|
+
export function isFinite(value: unknown): boolean {
|
|
125
|
+
return Number.isFinite(value);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Simple integer check
|
|
130
|
+
* @param value
|
|
131
|
+
* @returns {boolean}
|
|
132
|
+
*/
|
|
133
|
+
export function isInteger(value: unknown): boolean {
|
|
134
|
+
return Number.isInteger(value);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Simple is boolean check
|
|
139
|
+
*
|
|
140
|
+
* @param value
|
|
141
|
+
* @return {boolean}
|
|
142
|
+
*/
|
|
143
|
+
export function isBoolean(value: unknown): value is boolean {
|
|
144
|
+
return typeof value === 'boolean';
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
*
|
|
149
|
+
* @param value
|
|
150
|
+
* @returns {arg is Array<unknown>}
|
|
151
|
+
*/
|
|
152
|
+
export function isArray(value: unknown): value is Array<unknown> {
|
|
153
|
+
return Array.isArray(value);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
*
|
|
158
|
+
* @param value
|
|
159
|
+
* @returns {boolean}
|
|
160
|
+
*/
|
|
161
|
+
export function isUndefined(value: unknown): value is undefined {
|
|
162
|
+
return typeof value === 'undefined';
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* /^[a-zA-Z0-9_]+$/
|
|
167
|
+
*
|
|
168
|
+
* @param value
|
|
169
|
+
* @returns {boolean}
|
|
170
|
+
*/
|
|
171
|
+
export function isAlphaNumericUnderscore(value: unknown): boolean {
|
|
172
|
+
if (!isString(value)) {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
return AlphaNumericUnderscore.test(value);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* URL test
|
|
180
|
+
* @param url
|
|
181
|
+
* @returns {boolean}
|
|
182
|
+
*/
|
|
183
|
+
const IS_VALID_URL_REGEX = /^(http|https):\/\/[^ "]+$/;
|
|
184
|
+
export function isValidUrl(url: unknown): boolean {
|
|
185
|
+
if (!isString(url)) {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
return IS_VALID_URL_REGEX.test(url);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Array includes
|
|
193
|
+
*
|
|
194
|
+
* @param value
|
|
195
|
+
* @param oneOf
|
|
196
|
+
* @returns {boolean}
|
|
197
|
+
*/
|
|
198
|
+
export function isOneOf(value: unknown, oneOf: unknown[] = []): boolean {
|
|
199
|
+
if (!isArray(oneOf)) {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
return oneOf.includes(value);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export function noop(): void {
|
|
206
|
+
// noop-🐈
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
export function validateOptionalNativeDependencyExists(
|
|
210
|
+
firebaseJsonKey: string,
|
|
211
|
+
apiName: string,
|
|
212
|
+
nativeFnExists: boolean,
|
|
213
|
+
): void {
|
|
214
|
+
if (nativeFnExists) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
let errorMessage =
|
|
218
|
+
"You attempted to use an optional API that's not enabled natively. \n\n To enable ";
|
|
219
|
+
|
|
220
|
+
errorMessage += apiName;
|
|
221
|
+
errorMessage += ` please set the 'react-native' -> '${firebaseJsonKey}' key to true in your firebase.json file`;
|
|
222
|
+
|
|
223
|
+
if (Platform.OS === 'android') {
|
|
224
|
+
errorMessage += ' and rebuild your Android app.';
|
|
225
|
+
} else {
|
|
226
|
+
errorMessage +=
|
|
227
|
+
', re-run pod install and rebuild your iOS app. ' +
|
|
228
|
+
"If you're not using Pods then make sure you've have downloaded the necessary Firebase iOS SDK dependencies for this API.";
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
throw new Error(errorMessage);
|
|
232
|
+
}
|
package/lib/index.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this library except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
export { firebase, utils, default } from './namespaced';
|
|
19
|
+
export * from './modular';
|
|
20
|
+
export type {
|
|
21
|
+
ReactNativeFirebase,
|
|
22
|
+
Utils,
|
|
23
|
+
FirebaseApp,
|
|
24
|
+
LogCallbackParams,
|
|
25
|
+
LogCallback,
|
|
26
|
+
LogOptions,
|
|
27
|
+
} from './types/app';
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this library except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { getAppModule, getNativeModule } from './registry/nativeModule';
|
|
19
|
+
import SharedEventEmitter from './SharedEventEmitter';
|
|
20
|
+
import type { ReactNativeFirebase } from '../types/app';
|
|
21
|
+
import type { FirebaseJsonConfig, ModuleConfig } from '../types/internal';
|
|
22
|
+
import type { ReactNativeFirebaseNativeModules } from './NativeModules';
|
|
23
|
+
import type EventEmitter from 'react-native/Libraries/vendor/emitter/EventEmitter';
|
|
24
|
+
|
|
25
|
+
let firebaseJson: FirebaseJsonConfig | null = null;
|
|
26
|
+
|
|
27
|
+
export default class FirebaseModule<
|
|
28
|
+
NativeModuleName extends keyof ReactNativeFirebaseNativeModules = any,
|
|
29
|
+
> {
|
|
30
|
+
_app: ReactNativeFirebase.FirebaseAppBase;
|
|
31
|
+
_nativeModule: ReactNativeFirebaseNativeModules[NativeModuleName] | null;
|
|
32
|
+
_customUrlOrRegion: string | null;
|
|
33
|
+
_config: ModuleConfig;
|
|
34
|
+
|
|
35
|
+
constructor(
|
|
36
|
+
app: ReactNativeFirebase.FirebaseAppBase,
|
|
37
|
+
config: ModuleConfig,
|
|
38
|
+
customUrlOrRegion?: string | null,
|
|
39
|
+
) {
|
|
40
|
+
this._app = app;
|
|
41
|
+
this._nativeModule = null;
|
|
42
|
+
this._customUrlOrRegion = customUrlOrRegion || null;
|
|
43
|
+
this._config = Object.assign({}, config);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
get app(): ReactNativeFirebase.FirebaseApp {
|
|
47
|
+
return this._app as unknown as ReactNativeFirebase.FirebaseApp;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
get firebaseJson(): FirebaseJsonConfig {
|
|
51
|
+
if (firebaseJson) {
|
|
52
|
+
return firebaseJson;
|
|
53
|
+
}
|
|
54
|
+
firebaseJson = JSON.parse(getAppModule().FIREBASE_RAW_JSON);
|
|
55
|
+
return firebaseJson as FirebaseJsonConfig;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
get emitter(): EventEmitter {
|
|
59
|
+
return SharedEventEmitter;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
eventNameForApp(...args: Array<string | number>): string {
|
|
63
|
+
return `${this.app.name}-${args.join('-')}`;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
get native(): ReactNativeFirebaseNativeModules[NativeModuleName] {
|
|
67
|
+
if (this._nativeModule) {
|
|
68
|
+
return this._nativeModule;
|
|
69
|
+
}
|
|
70
|
+
this._nativeModule = getNativeModule(
|
|
71
|
+
this,
|
|
72
|
+
) as unknown as ReactNativeFirebaseNativeModules[NativeModuleName];
|
|
73
|
+
return this._nativeModule;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Instance of checks don't work once compiled
|
|
78
|
+
(FirebaseModule as any).__extended__ = {};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this library except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import type { NativeErrorUserInfo, NativeError } from '../types/internal';
|
|
19
|
+
|
|
20
|
+
export default class NativeFirebaseError extends Error {
|
|
21
|
+
readonly namespace!: string;
|
|
22
|
+
readonly code!: string;
|
|
23
|
+
readonly jsStack!: string;
|
|
24
|
+
readonly userInfo!: NativeErrorUserInfo;
|
|
25
|
+
readonly customData: any;
|
|
26
|
+
readonly operationType!: string | null;
|
|
27
|
+
readonly nativeErrorCode!: string | number | null;
|
|
28
|
+
readonly nativeErrorMessage!: string | null;
|
|
29
|
+
|
|
30
|
+
static fromEvent(
|
|
31
|
+
errorEvent: NativeErrorUserInfo,
|
|
32
|
+
namespace: string,
|
|
33
|
+
stack?: string,
|
|
34
|
+
): NativeFirebaseError {
|
|
35
|
+
return new NativeFirebaseError(
|
|
36
|
+
{ userInfo: errorEvent },
|
|
37
|
+
stack || new Error().stack!,
|
|
38
|
+
namespace,
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
constructor(nativeError: NativeError, jsStack: string, namespace: string) {
|
|
43
|
+
super();
|
|
44
|
+
const { userInfo } = nativeError;
|
|
45
|
+
|
|
46
|
+
Object.defineProperty(this, 'namespace', {
|
|
47
|
+
enumerable: false,
|
|
48
|
+
value: namespace,
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
Object.defineProperty(this, 'code', {
|
|
52
|
+
enumerable: false,
|
|
53
|
+
value: `${this.namespace}/${userInfo.code || 'unknown'}`,
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
Object.defineProperty(this, 'message', {
|
|
57
|
+
enumerable: false,
|
|
58
|
+
value: `[${this.code}] ${userInfo.message || nativeError.message}`,
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
Object.defineProperty(this, 'jsStack', {
|
|
62
|
+
enumerable: false,
|
|
63
|
+
value: jsStack,
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
Object.defineProperty(this, 'userInfo', {
|
|
67
|
+
enumerable: false,
|
|
68
|
+
value: userInfo,
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// Needed for MFA processing of errors on web
|
|
72
|
+
Object.defineProperty(this, 'customData', {
|
|
73
|
+
enumerable: false,
|
|
74
|
+
value: nativeError.customData || null,
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
// Needed for MFA processing of errors on web
|
|
78
|
+
Object.defineProperty(this, 'operationType', {
|
|
79
|
+
enumerable: false,
|
|
80
|
+
value: nativeError.operationType || null,
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
Object.defineProperty(this, 'nativeErrorCode', {
|
|
84
|
+
enumerable: false,
|
|
85
|
+
value: userInfo.nativeErrorCode || null,
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
Object.defineProperty(this, 'nativeErrorMessage', {
|
|
89
|
+
enumerable: false,
|
|
90
|
+
value: userInfo.nativeErrorMessage || null,
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
this.stack = NativeFirebaseError.getStackWithMessage(
|
|
94
|
+
`NativeFirebaseError: ${this.message}`,
|
|
95
|
+
this.jsStack,
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
// Unused
|
|
99
|
+
// this.nativeStackIOS = nativeError.nativeStackIOS;
|
|
100
|
+
// this.nativeStackAndroid = nativeError.nativeStackAndroid;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Build a stack trace that includes JS stack prior to calling the native method.
|
|
105
|
+
*
|
|
106
|
+
* @returns {string}
|
|
107
|
+
*/
|
|
108
|
+
static getStackWithMessage(message: string, jsStack: string): string {
|
|
109
|
+
return [message, ...jsStack.split('\n').slice(2, 13)].join('\n');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this library except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import type { ReactNativeFirebase } from '../types/app';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Base type for all React Native Firebase native modules.
|
|
22
|
+
* Each package can extend this interface via module augmentation to add their own native methods.
|
|
23
|
+
*/
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
25
|
+
export interface ReactNativeFirebaseNativeModules {
|
|
26
|
+
// Base interface - packages will augment this
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Interface for wrapped native modules returned by getAppModule() and getNativeModule()
|
|
31
|
+
* This represents the native module after wrapping with error handling
|
|
32
|
+
*/
|
|
33
|
+
export interface WrappedNativeModule {
|
|
34
|
+
[key: string]: unknown;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* App Module native methods that are always available
|
|
39
|
+
*/
|
|
40
|
+
export interface RNFBAppModuleInterface {
|
|
41
|
+
// Constants
|
|
42
|
+
NATIVE_FIREBASE_APPS: Array<{
|
|
43
|
+
appConfig: ReactNativeFirebase.FirebaseAppConfig;
|
|
44
|
+
options: ReactNativeFirebase.FirebaseAppOptions;
|
|
45
|
+
}>;
|
|
46
|
+
FIREBASE_RAW_JSON: string;
|
|
47
|
+
|
|
48
|
+
// Methods
|
|
49
|
+
initializeApp(
|
|
50
|
+
options: ReactNativeFirebase.FirebaseAppOptions,
|
|
51
|
+
appConfig: ReactNativeFirebase.FirebaseAppConfig,
|
|
52
|
+
): Promise<void>;
|
|
53
|
+
deleteApp(name: string): Promise<void>;
|
|
54
|
+
setLogLevel(logLevel: string): void;
|
|
55
|
+
metaGetAll(): Promise<{ [key: string]: string | boolean }>;
|
|
56
|
+
jsonGetAll(): Promise<{ [key: string]: string | boolean }>;
|
|
57
|
+
preferencesClearAll(): Promise<void>;
|
|
58
|
+
preferencesGetAll(): Promise<{ [key: string]: string | boolean }>;
|
|
59
|
+
preferencesSetBool(key: string, value: boolean): Promise<void>;
|
|
60
|
+
preferencesSetString(key: string, value: string): Promise<void>;
|
|
61
|
+
setAutomaticDataCollectionEnabled(name: string, enabled: boolean): void;
|
|
62
|
+
|
|
63
|
+
// Event emitter methods
|
|
64
|
+
eventsNotifyReady(ready: boolean): void;
|
|
65
|
+
eventsAddListener(eventType: string): void;
|
|
66
|
+
eventsRemoveListener(eventType: string, removeAll: boolean): void;
|
|
67
|
+
|
|
68
|
+
// React Native EventEmitter compatibility
|
|
69
|
+
addListener?: (eventName: string) => void;
|
|
70
|
+
removeListeners?: (count: number) => void;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Utils Module native methods (from the app package)
|
|
75
|
+
*/
|
|
76
|
+
export interface RNFBUtilsModuleInterface {
|
|
77
|
+
// Android-only properties and methods
|
|
78
|
+
isRunningInTestLab: boolean;
|
|
79
|
+
androidPlayServices: {
|
|
80
|
+
isAvailable: boolean;
|
|
81
|
+
status: number;
|
|
82
|
+
hasResolution: boolean;
|
|
83
|
+
isUserResolvableError: boolean;
|
|
84
|
+
error: string | undefined;
|
|
85
|
+
};
|
|
86
|
+
androidGetPlayServicesStatus(): Promise<{
|
|
87
|
+
isAvailable: boolean;
|
|
88
|
+
status: number;
|
|
89
|
+
hasResolution: boolean;
|
|
90
|
+
isUserResolvableError: boolean;
|
|
91
|
+
error: string | undefined;
|
|
92
|
+
}>;
|
|
93
|
+
androidPromptForPlayServices(): Promise<void>;
|
|
94
|
+
androidMakePlayServicesAvailable(): Promise<void>;
|
|
95
|
+
androidResolutionForPlayServices(): Promise<void>;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Augment the base interface with app package's native modules
|
|
99
|
+
declare module './NativeModules' {
|
|
100
|
+
interface ReactNativeFirebaseNativeModules {
|
|
101
|
+
RNFBUtilsModule: RNFBUtilsModuleInterface;
|
|
102
|
+
RNFBAppModule: RNFBAppModuleInterface;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Helper type to get a specific native module type by name
|
|
108
|
+
*/
|
|
109
|
+
export type GetNativeModule<T extends keyof ReactNativeFirebaseNativeModules> =
|
|
110
|
+
ReactNativeFirebaseNativeModules[T];
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Union type of all available native module types
|
|
114
|
+
*/
|
|
115
|
+
export type AnyNativeModule =
|
|
116
|
+
ReactNativeFirebaseNativeModules[keyof ReactNativeFirebaseNativeModules];
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this library except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { type EmitterSubscription, NativeEventEmitter } from 'react-native';
|
|
19
|
+
import { getReactNativeModule } from './nativeModule';
|
|
20
|
+
import type { RNFBAppModuleInterface } from './NativeModules';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Type for the eventsNotifyReady native method
|
|
24
|
+
*/
|
|
25
|
+
type EventsNotifyReadyMethod = (ready: boolean) => void;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Type for the eventsAddListener native method
|
|
29
|
+
*/
|
|
30
|
+
type EventsAddListenerMethod = (eventType: string) => void;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Type for the eventsRemoveListener native method
|
|
34
|
+
*/
|
|
35
|
+
type EventsRemoveListenerMethod = (eventType: string, removeAll: boolean) => void;
|
|
36
|
+
|
|
37
|
+
class RNFBNativeEventEmitter extends NativeEventEmitter {
|
|
38
|
+
ready: boolean;
|
|
39
|
+
|
|
40
|
+
constructor() {
|
|
41
|
+
const RNFBAppModule = getReactNativeModule('RNFBAppModule');
|
|
42
|
+
if (!RNFBAppModule) {
|
|
43
|
+
throw new Error(
|
|
44
|
+
'Native module RNFBAppModule not found. Re-check module install, linking, configuration, build and install steps.',
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
// Cast to any for NativeEventEmitter constructor which expects React Native's NativeModule type
|
|
48
|
+
super(RNFBAppModule as any);
|
|
49
|
+
this.ready = false;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
addListener(
|
|
53
|
+
eventType: string,
|
|
54
|
+
listener: (...args: unknown[]) => unknown,
|
|
55
|
+
context?: object,
|
|
56
|
+
): EmitterSubscription {
|
|
57
|
+
const RNFBAppModule = getReactNativeModule(
|
|
58
|
+
'RNFBAppModule',
|
|
59
|
+
) as unknown as RNFBAppModuleInterface;
|
|
60
|
+
if (!this.ready) {
|
|
61
|
+
(RNFBAppModule.eventsNotifyReady as EventsNotifyReadyMethod)(true);
|
|
62
|
+
this.ready = true;
|
|
63
|
+
}
|
|
64
|
+
(RNFBAppModule.eventsAddListener as EventsAddListenerMethod)(eventType);
|
|
65
|
+
if (globalThis.RNFBDebug) {
|
|
66
|
+
// eslint-disable-next-line no-console
|
|
67
|
+
console.debug(`[RNFB-->Event][👂] ${eventType} -> listening`);
|
|
68
|
+
}
|
|
69
|
+
const listenerDebugger = (...args: unknown[]) => {
|
|
70
|
+
if (globalThis.RNFBDebug) {
|
|
71
|
+
// eslint-disable-next-line no-console
|
|
72
|
+
console.debug(`[RNFB<--Event][📣] ${eventType} <-`, JSON.stringify(args[0]));
|
|
73
|
+
// Possible leaking test if events are still being received after the test.
|
|
74
|
+
// This is not super accurate but it's better than nothing, e.g. if doing setup/teardown
|
|
75
|
+
// logic outside of a test this may cause false positives.
|
|
76
|
+
if (globalThis.RNFBTest && !globalThis.RNFBDebugInTestLeakDetection) {
|
|
77
|
+
// eslint-disable-next-line no-console
|
|
78
|
+
console.debug(
|
|
79
|
+
`[TEST--->Leak][💡] Possible leaking test detected! An event (☝️) ` +
|
|
80
|
+
`was received outside of any running tests which may indicates that some ` +
|
|
81
|
+
`listeners/event subscriptions that have not been unsubscribed from in your ` +
|
|
82
|
+
`test code. The last test that ran was: "${globalThis.RNFBDebugLastTest}".`,
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return listener(...args);
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
let subscription = super.addListener(`rnfb_${eventType}`, listenerDebugger, context);
|
|
90
|
+
|
|
91
|
+
// React Native 0.65+ altered EventEmitter:
|
|
92
|
+
// - removeSubscription is gone
|
|
93
|
+
// - addListener returns an unsubscriber instead of a more complex object with eventType etc
|
|
94
|
+
|
|
95
|
+
// make sure eventType for backwards compatibility just in case
|
|
96
|
+
(subscription as any).eventType = `rnfb_${eventType}`;
|
|
97
|
+
|
|
98
|
+
// New style is to return a remove function on the object, just in case people call that,
|
|
99
|
+
// we will modify it to do our native unsubscription then call the original
|
|
100
|
+
const originalRemove = subscription.remove;
|
|
101
|
+
const newRemove = () => {
|
|
102
|
+
const module = getReactNativeModule('RNFBAppModule') as unknown as RNFBAppModuleInterface;
|
|
103
|
+
(module.eventsRemoveListener as EventsRemoveListenerMethod)(eventType, false);
|
|
104
|
+
const superClass = Object.getPrototypeOf(Object.getPrototypeOf(this));
|
|
105
|
+
if (superClass.removeSubscription != null) {
|
|
106
|
+
// This is for RN <= 0.64 - 65 and greater no longer have removeSubscription
|
|
107
|
+
superClass.removeSubscription(subscription);
|
|
108
|
+
} else if (originalRemove != null) {
|
|
109
|
+
// This is for RN >= 0.65
|
|
110
|
+
originalRemove();
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
subscription.remove = newRemove;
|
|
114
|
+
return subscription;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
removeAllListeners(eventType: string): void {
|
|
118
|
+
const RNFBAppModule = getReactNativeModule(
|
|
119
|
+
'RNFBAppModule',
|
|
120
|
+
) as unknown as RNFBAppModuleInterface;
|
|
121
|
+
(RNFBAppModule.eventsRemoveListener as EventsRemoveListenerMethod)(eventType, true);
|
|
122
|
+
super.removeAllListeners(`rnfb_${eventType}`);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// This is likely no longer ever called, but it is here for backwards compatibility with RN <= 0.64
|
|
126
|
+
removeSubscription(subscription: EmitterSubscription & { eventType?: string }): void {
|
|
127
|
+
const RNFBAppModule = getReactNativeModule(
|
|
128
|
+
'RNFBAppModule',
|
|
129
|
+
) as unknown as RNFBAppModuleInterface;
|
|
130
|
+
const eventType = subscription.eventType?.replace('rnfb_', '') || '';
|
|
131
|
+
(RNFBAppModule.eventsRemoveListener as EventsRemoveListenerMethod)(eventType, false);
|
|
132
|
+
const superClass = Object.getPrototypeOf(Object.getPrototypeOf(this));
|
|
133
|
+
if (superClass.removeSubscription) {
|
|
134
|
+
superClass.removeSubscription(subscription);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export default new RNFBNativeEventEmitter();
|