@react-native-firebase/app 25.1.0 → 26.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/RNFBApp.podspec +7 -13
- package/android/build.gradle +25 -6
- package/android/src/reactnative/java/io/invertase/firebase/app/{ReactNativeFirebaseAppModule.java → NativeRNFBTurboApp.java} +81 -45
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseAppPackage.java +3 -3
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java +2 -2
- package/android/src/reactnative/java/io/invertase/firebase/app/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboAppSpec.java +136 -0
- package/android/src/reactnative/java/io/invertase/firebase/app/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboUtilsSpec.java +94 -0
- package/android/src/reactnative/java/io/invertase/firebase/app/generated/jni/CMakeLists.txt +36 -0
- package/android/src/reactnative/java/io/invertase/firebase/app/generated/jni/RNFBAppTurboModules-generated.cpp +170 -0
- package/android/src/reactnative/java/io/invertase/firebase/app/generated/jni/RNFBAppTurboModules.h +39 -0
- package/android/src/reactnative/java/io/invertase/firebase/app/generated/jni/react/renderer/components/RNFBAppTurboModules/RNFBAppTurboModulesJSI-generated.cpp +187 -0
- package/android/src/reactnative/java/io/invertase/firebase/app/generated/jni/react/renderer/components/RNFBAppTurboModules/RNFBAppTurboModulesJSI.h +606 -0
- package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.java +3 -3
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitter.java +475 -20
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseMeta.java +8 -0
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebasePreferences.java +8 -0
- package/android/src/reactnative/java/io/invertase/firebase/utils/{ReactNativeFirebaseUtilsModule.java → NativeRNFBTurboUtils.java} +57 -40
- package/android/src/test/java/io/invertase/firebase/app/NativeRNFBTurboAppTest.java +400 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterTest.java +1823 -0
- package/app.plugin.js +1 -1
- package/dist/module/FirebaseApp.js +0 -9
- package/dist/module/FirebaseApp.js.map +1 -1
- package/dist/module/common/index.js +0 -645
- package/dist/module/common/index.js.map +1 -1
- package/dist/module/common/unitTestUtils.js +18 -54
- package/dist/module/common/unitTestUtils.js.map +1 -1
- package/dist/module/index.js +0 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/internal/RNFBNativeEventEmitter.js +12 -6
- package/dist/module/internal/RNFBNativeEventEmitter.js.map +1 -1
- package/dist/module/internal/constants.js +2 -2
- package/dist/module/internal/constants.js.map +1 -1
- package/dist/module/internal/index.js +1 -1
- package/dist/module/internal/index.js.map +1 -1
- package/dist/module/internal/nativeModuleAndroidIos.js +50 -10
- package/dist/module/internal/nativeModuleAndroidIos.js.map +1 -1
- package/dist/module/internal/nativeModuleWeb.js +12 -4
- package/dist/module/internal/nativeModuleWeb.js.map +1 -1
- package/dist/module/internal/registry/app.js +20 -12
- package/dist/module/internal/registry/app.js.map +1 -1
- package/dist/module/internal/registry/modular.js +73 -0
- package/dist/module/internal/registry/modular.js.map +1 -0
- package/dist/module/internal/registry/nativeModule.js +116 -95
- package/dist/module/internal/registry/nativeModule.js.map +1 -1
- package/dist/module/modular.js +44 -37
- package/dist/module/modular.js.map +1 -1
- package/dist/module/types/app.js +0 -3
- package/dist/module/types/app.js.map +1 -1
- package/dist/module/types/internal.js +0 -2
- package/dist/module/utils/UtilsStatics.js +2 -2
- package/dist/module/utils/UtilsStatics.js.map +1 -1
- package/dist/module/utils/index.js +21 -17
- package/dist/module/utils/index.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/lib/FirebaseApp.d.ts +1 -2
- package/dist/typescript/lib/FirebaseApp.d.ts.map +1 -1
- package/dist/typescript/lib/common/index.d.ts +0 -8
- package/dist/typescript/lib/common/index.d.ts.map +1 -1
- package/dist/typescript/lib/common/unitTestUtils.d.ts +1 -4
- package/dist/typescript/lib/common/unitTestUtils.d.ts.map +1 -1
- package/dist/typescript/lib/index.d.ts +0 -1
- package/dist/typescript/lib/index.d.ts.map +1 -1
- package/dist/typescript/lib/internal/NativeFirebaseError.d.ts +1 -1
- package/dist/typescript/lib/internal/NativeFirebaseError.d.ts.map +1 -1
- package/dist/typescript/lib/internal/RNFBNativeEventEmitter.d.ts.map +1 -1
- package/dist/typescript/lib/internal/constants.d.ts +2 -3
- package/dist/typescript/lib/internal/constants.d.ts.map +1 -1
- package/dist/typescript/lib/internal/index.d.ts +1 -1
- package/dist/typescript/lib/internal/index.d.ts.map +1 -1
- package/dist/typescript/lib/internal/nativeModuleAndroidIos.d.ts +2 -6
- package/dist/typescript/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -1
- package/dist/typescript/lib/internal/nativeModuleWeb.d.ts.map +1 -1
- package/dist/typescript/lib/internal/registry/app.d.ts +2 -2
- package/dist/typescript/lib/internal/registry/app.d.ts.map +1 -1
- package/dist/typescript/lib/internal/registry/modular.d.ts +22 -0
- package/dist/typescript/lib/internal/registry/modular.d.ts.map +1 -0
- package/dist/typescript/lib/internal/registry/nativeModule.d.ts +3 -11
- package/dist/typescript/lib/internal/registry/nativeModule.d.ts.map +1 -1
- package/dist/typescript/lib/modular.d.ts +21 -7
- package/dist/typescript/lib/modular.d.ts.map +1 -1
- package/dist/typescript/lib/types/app.d.ts +4 -4
- package/dist/typescript/lib/types/app.d.ts.map +1 -1
- package/dist/typescript/lib/types/internal.d.ts +1 -33
- package/dist/typescript/lib/types/internal.d.ts.map +1 -1
- package/dist/typescript/lib/utils/index.d.ts +7 -3
- package/dist/typescript/lib/utils/index.d.ts.map +1 -1
- package/dist/typescript/lib/version.d.ts +1 -1
- package/firebase-schema.json +5 -1
- package/ios/RNFBApp/RNFBAppModule.h +1 -3
- package/ios/RNFBApp/{RNFBAppModule.m → RNFBAppModule.mm} +74 -77
- package/ios/RNFBApp/RNFBUtilsModule.h +1 -3
- package/ios/RNFBApp/{RNFBUtilsModule.m → RNFBUtilsModule.mm} +68 -25
- package/ios/RNFBApp/RNFBVersion.m +1 -1
- package/ios/RNFBApp.xcodeproj/project.pbxproj +12 -12
- package/ios/generated/RCTAppDependencyProvider.h +25 -0
- package/ios/generated/RCTAppDependencyProvider.mm +55 -0
- package/ios/generated/RCTModuleProviders.h +16 -0
- package/ios/generated/RCTModuleProviders.mm +52 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
- package/ios/generated/RCTUnstableModulesRequiringMainQueueSetupProvider.h +14 -0
- package/ios/generated/RCTUnstableModulesRequiringMainQueueSetupProvider.mm +19 -0
- package/ios/generated/RNFBAppTurboModules/RNFBAppTurboModules-generated.mm +210 -0
- package/ios/generated/RNFBAppTurboModules/RNFBAppTurboModules.h +399 -0
- package/ios/generated/RNFBAppTurboModulesJSI-generated.cpp +187 -0
- package/ios/generated/RNFBAppTurboModulesJSI.h +606 -0
- package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
- package/ios/generated/ReactCodegen.podspec +111 -0
- package/lib/FirebaseApp.ts +1 -10
- package/lib/common/index.ts +0 -742
- package/lib/common/unitTestUtils.ts +17 -73
- package/lib/index.ts +0 -1
- package/lib/internal/NativeFirebaseError.ts +1 -1
- package/lib/internal/RNFBNativeEventEmitter.ts +12 -6
- package/lib/internal/constants.ts +3 -25
- package/lib/internal/global.d.ts +0 -4
- package/lib/internal/index.ts +1 -1
- package/lib/internal/nativeModuleAndroidIos.ts +69 -12
- package/lib/internal/nativeModuleWeb.ts +11 -5
- package/lib/internal/registry/app.ts +24 -22
- package/lib/internal/registry/modular.ts +97 -0
- package/lib/internal/registry/nativeModule.ts +136 -107
- package/lib/modular.ts +47 -72
- package/lib/types/app.ts +6 -11
- package/lib/types/internal.ts +1 -46
- package/lib/utils/UtilsStatics.ts +2 -2
- package/lib/utils/index.ts +24 -18
- package/lib/version.ts +1 -1
- package/package.json +41 -3
- package/plugin/build/app.plugin.d.ts +2 -0
- package/plugin/build/app.plugin.js +6 -0
- package/plugin/src/app.plugin.ts +3 -0
- package/plugin/tsconfig.tsbuildinfo +1 -1
- package/react-native.config.js +2 -0
- package/specs/NativeRNFBTurboApp.ts +57 -0
- package/specs/NativeRNFBTurboUtils.ts +34 -0
- package/typedoc.json +1 -2
- package/dist/module/internal/registry/namespace.js +0 -262
- package/dist/module/internal/registry/namespace.js.map +0 -1
- package/dist/module/namespaced.js +0 -25
- package/dist/module/namespaced.js.map +0 -1
- package/dist/typescript/lib/internal/registry/namespace.d.ts +0 -26
- package/dist/typescript/lib/internal/registry/namespace.d.ts.map +0 -1
- package/dist/typescript/lib/namespaced.d.ts +0 -5
- package/dist/typescript/lib/namespaced.d.ts.map +0 -1
- package/lib/internal/registry/namespace.ts +0 -338
- package/lib/namespaced.ts +0 -24
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this library except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { DEFAULT_APP_NAME } from "../constants.js";
|
|
21
|
+
import { addOnAppDestroy, getApp } from "./app.js";
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Constructor signature shared by every {@link FirebaseModule} subclass.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
// app.name -> instanceKey -> module instance
|
|
28
|
+
const MODULAR_INSTANCES = {};
|
|
29
|
+
let destroyHookRegistered = false;
|
|
30
|
+
function ensureDestroyHook() {
|
|
31
|
+
if (destroyHookRegistered) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
destroyHookRegistered = true;
|
|
35
|
+
addOnAppDestroy(app => {
|
|
36
|
+
delete MODULAR_INSTANCES[app.name];
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Builds (and memoises per app) a Firebase service instance for the modular API.
|
|
42
|
+
*
|
|
43
|
+
* Each module's `index.ts` defines its own `ModuleClass` and `ModuleConfig` and calls this from
|
|
44
|
+
* `getX(app?)`.
|
|
45
|
+
*
|
|
46
|
+
* @param ModuleClass - The module's `FirebaseModule` subclass.
|
|
47
|
+
* @param config - Static `ModuleConfig` for the module (namespace, native module name, support flags).
|
|
48
|
+
* @param app - The `FirebaseApp` to use; defaults to the default app.
|
|
49
|
+
* @param customUrlOrRegion - Optional URL/region/databaseId for modules that support it.
|
|
50
|
+
* @returns The memoised module instance for that app + key.
|
|
51
|
+
*/
|
|
52
|
+
export function getOrCreateModularInstance(ModuleClass, config, app, customUrlOrRegion) {
|
|
53
|
+
ensureDestroyHook();
|
|
54
|
+
const _app = getApp(app?.name);
|
|
55
|
+
const {
|
|
56
|
+
namespace,
|
|
57
|
+
hasMultiAppSupport
|
|
58
|
+
} = config;
|
|
59
|
+
|
|
60
|
+
// Modules such as analytics only run on the default app.
|
|
61
|
+
if (!hasMultiAppSupport && _app.name !== DEFAULT_APP_NAME) {
|
|
62
|
+
throw new Error([`You attempted to call "${namespace}" with a secondary Firebase App but; ${namespace} does not support multiple Firebase Apps.`, '', `Ensure you access ${namespace} from the default application only.`].join('\r\n'));
|
|
63
|
+
}
|
|
64
|
+
const key = customUrlOrRegion ? `${customUrlOrRegion}:${namespace}` : namespace;
|
|
65
|
+
if (!MODULAR_INSTANCES[_app.name]) {
|
|
66
|
+
MODULAR_INSTANCES[_app.name] = {};
|
|
67
|
+
}
|
|
68
|
+
if (!MODULAR_INSTANCES[_app.name][key]) {
|
|
69
|
+
MODULAR_INSTANCES[_app.name][key] = new ModuleClass(_app, Object.assign({}, config), customUrlOrRegion);
|
|
70
|
+
}
|
|
71
|
+
return MODULAR_INSTANCES[_app.name][key];
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=modular.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_APP_NAME","addOnAppDestroy","getApp","MODULAR_INSTANCES","destroyHookRegistered","ensureDestroyHook","app","name","getOrCreateModularInstance","ModuleClass","config","customUrlOrRegion","_app","namespace","hasMultiAppSupport","Error","join","key","Object","assign"],"sourceRoot":"../../../../lib","sources":["internal/registry/modular.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,gBAAgB,QAAQ,iBAAc;AAI/C,SAASC,eAAe,EAAEC,MAAM,QAAQ,UAAO;;AAE/C;AACA;AACA;;AAOA;AACA,MAAMC,iBAAiE,GAAG,CAAC,CAAC;AAE5E,IAAIC,qBAAqB,GAAG,KAAK;AACjC,SAASC,iBAAiBA,CAAA,EAAS;EACjC,IAAID,qBAAqB,EAAE;IACzB;EACF;EACAA,qBAAqB,GAAG,IAAI;EAC5BH,eAAe,CAACK,GAAG,IAAI;IACrB,OAAOH,iBAAiB,CAACG,GAAG,CAACC,IAAI,CAAC;EACpC,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CACxCC,WAAkC,EAClCC,MAAoB,EACpBJ,GAAqC,EACrCK,iBAAiC,EAC9B;EACHN,iBAAiB,CAAC,CAAC;EAEnB,MAAMO,IAAI,GAAGV,MAAM,CAACI,GAAG,EAAEC,IAAI,CAAC;EAE9B,MAAM;IAAEM,SAAS;IAAEC;EAAmB,CAAC,GAAGJ,MAAM;;EAEhD;EACA,IAAI,CAACI,kBAAkB,IAAIF,IAAI,CAACL,IAAI,KAAKP,gBAAgB,EAAE;IACzD,MAAM,IAAIe,KAAK,CACb,CACE,0BAA0BF,SAAS,wCAAwCA,SAAS,2CAA2C,EAC/H,EAAE,EACF,qBAAqBA,SAAS,qCAAqC,CACpE,CAACG,IAAI,CAAC,MAAM,CACf,CAAC;EACH;EAEA,MAAMC,GAAG,GAAGN,iBAAiB,GAAG,GAAGA,iBAAiB,IAAIE,SAAS,EAAE,GAAGA,SAAS;EAE/E,IAAI,CAACV,iBAAiB,CAACS,IAAI,CAACL,IAAI,CAAC,EAAE;IACjCJ,iBAAiB,CAACS,IAAI,CAACL,IAAI,CAAC,GAAG,CAAC,CAAC;EACnC;EAEA,IAAI,CAACJ,iBAAiB,CAACS,IAAI,CAACL,IAAI,CAAC,CAAEU,GAAG,CAAC,EAAE;IACvCd,iBAAiB,CAACS,IAAI,CAACL,IAAI,CAAC,CAAEU,GAAG,CAAC,GAAG,IAAIR,WAAW,CAClDG,IAAI,EACJM,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAET,MAAM,CAAC,EACzBC,iBACF,CAAC;EACH;EAEA,OAAOR,iBAAiB,CAACS,IAAI,CAACL,IAAI,CAAC,CAAEU,GAAG,CAAC;AAC3C","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* limitations under the License.
|
|
17
17
|
*
|
|
18
18
|
*/
|
|
19
|
-
import { APP_NATIVE_MODULE } from "../constants.js";
|
|
19
|
+
import { APP_NATIVE_MODULE, UTILS_NATIVE_MODULE } from "../constants.js";
|
|
20
20
|
import NativeFirebaseError from "../NativeFirebaseError.js";
|
|
21
21
|
import RNFBNativeEventEmitter from "../RNFBNativeEventEmitter.js";
|
|
22
22
|
import SharedEventEmitter from "../SharedEventEmitter.js";
|
|
@@ -25,6 +25,7 @@ import { isAndroid, isIOS } from "../../common/index.js";
|
|
|
25
25
|
import { encodeNullValues } from "../nullSerialization.js";
|
|
26
26
|
const NATIVE_MODULE_REGISTRY = {};
|
|
27
27
|
const NATIVE_MODULE_EVENT_SUBSCRIPTIONS = {};
|
|
28
|
+
let staticUtilsModule = null;
|
|
28
29
|
function nativeModuleKey(module) {
|
|
29
30
|
return `${module._customUrlOrRegion || ''}:${module.app.name}:${module._config.namespace}`;
|
|
30
31
|
}
|
|
@@ -32,17 +33,10 @@ function nativeModuleKey(module) {
|
|
|
32
33
|
/**
|
|
33
34
|
* Wraps a native module method to provide
|
|
34
35
|
* auto prepended args and custom Error classes.
|
|
35
|
-
*
|
|
36
|
-
* @param namespace
|
|
37
|
-
* @param method
|
|
38
|
-
* @param argToPrepend
|
|
39
|
-
* @returns {Function}
|
|
40
36
|
*/
|
|
41
37
|
function nativeModuleMethodWrapped(namespace, method, argToPrepend, isTurboModule) {
|
|
42
38
|
return (...args) => {
|
|
43
|
-
//
|
|
44
|
-
// the limitation where null values in object properties get stripped during serialization
|
|
45
|
-
// See: https://github.com/facebook/react-native/issues/52802
|
|
39
|
+
// Per-call encodeNullValues walk is intentional: args may differ on every invocation.
|
|
46
40
|
const processedArgs = isIOS && isTurboModule ? args.map(arg => encodeNullValues(arg)) : args;
|
|
47
41
|
const allArgs = [...argToPrepend, ...processedArgs];
|
|
48
42
|
const possiblePromise = method(...allArgs);
|
|
@@ -55,37 +49,89 @@ function nativeModuleMethodWrapped(namespace, method, argToPrepend, isTurboModul
|
|
|
55
49
|
}
|
|
56
50
|
|
|
57
51
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* @param namespace
|
|
61
|
-
* @param NativeModule - Raw native module from React Native
|
|
62
|
-
* @param argToPrepend
|
|
52
|
+
* NewArch-AD-14 / NewArch-AD-14a: routing composite Proxy — lazy wrap+bind on first access per method.
|
|
63
53
|
*/
|
|
64
|
-
function
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
54
|
+
function createRoutingCompositeProxy(namespace, hosts, isTurboModule) {
|
|
55
|
+
const routingMap = {};
|
|
56
|
+
const memoizedMethods = {};
|
|
57
|
+
const memoizedConstants = {};
|
|
58
|
+
for (const {
|
|
59
|
+
module,
|
|
60
|
+
argToPrepend
|
|
61
|
+
} of hosts) {
|
|
62
|
+
if (!module) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
for (const key in module) {
|
|
66
|
+
if (key === 'constructor' || key === 'getConstants') {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
routingMap[key] = {
|
|
70
|
+
host: module,
|
|
71
|
+
key,
|
|
72
|
+
argToPrepend
|
|
73
|
+
};
|
|
74
|
+
}
|
|
68
75
|
}
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
const target = Object.create(null);
|
|
77
|
+
return new Proxy(target, {
|
|
78
|
+
get(_target, name) {
|
|
79
|
+
if (typeof name !== 'string' || !(name in routingMap)) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
const route = routingMap[name];
|
|
83
|
+
if (!route) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
const value = route.host[route.key];
|
|
87
|
+
if (typeof value !== 'function') {
|
|
88
|
+
if (!(name in memoizedConstants)) {
|
|
89
|
+
memoizedConstants[name] = value;
|
|
90
|
+
}
|
|
91
|
+
return memoizedConstants[name];
|
|
92
|
+
}
|
|
93
|
+
if (!memoizedMethods[name]) {
|
|
94
|
+
memoizedMethods[name] = nativeModuleMethodWrapped(namespace, value.bind(route.host), route.argToPrepend, isTurboModule);
|
|
95
|
+
}
|
|
96
|
+
return memoizedMethods[name];
|
|
97
|
+
},
|
|
98
|
+
has(_target, name) {
|
|
99
|
+
return typeof name === 'string' && name in routingMap;
|
|
100
|
+
},
|
|
101
|
+
ownKeys() {
|
|
102
|
+
return Object.keys(routingMap);
|
|
103
|
+
},
|
|
104
|
+
getOwnPropertyDescriptor(_target, name) {
|
|
105
|
+
if (typeof name !== 'string' || !(name in routingMap)) {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
configurable: true
|
|
111
|
+
};
|
|
112
|
+
},
|
|
113
|
+
set() {
|
|
114
|
+
return false;
|
|
79
115
|
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* NewArch-AD-14a N=1: single-host routing composite (TurboModule by default).
|
|
121
|
+
*/
|
|
122
|
+
function createSingleHostComposite(namespace, moduleName, argToPrepend = [], isTurboModule = true) {
|
|
123
|
+
const nativeModule = getReactNativeModule(moduleName);
|
|
124
|
+
if (!nativeModule) {
|
|
125
|
+
throw new Error(getMissingModuleHelpText(namespace));
|
|
80
126
|
}
|
|
81
|
-
return
|
|
127
|
+
return createRoutingCompositeProxy(namespace, [{
|
|
128
|
+
module: nativeModule,
|
|
129
|
+
argToPrepend
|
|
130
|
+
}], isTurboModule);
|
|
82
131
|
}
|
|
83
132
|
|
|
84
133
|
/**
|
|
85
134
|
* Initialises and wraps all the native module methods.
|
|
86
|
-
*
|
|
87
|
-
* @param module
|
|
88
|
-
* @returns {*}
|
|
89
135
|
*/
|
|
90
136
|
function initialiseNativeModule(module) {
|
|
91
137
|
const config = module._config;
|
|
@@ -99,31 +145,37 @@ function initialiseNativeModule(module) {
|
|
|
99
145
|
disablePrependCustomUrlOrRegion,
|
|
100
146
|
turboModule
|
|
101
147
|
} = config;
|
|
102
|
-
const multiModuleRoot = {};
|
|
103
148
|
const isTurboModule = !!turboModule;
|
|
104
149
|
const multiModule = Array.isArray(nativeModuleName);
|
|
105
150
|
const nativeModuleNames = multiModule ? nativeModuleName : [nativeModuleName];
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
151
|
+
const argToPrepend = [];
|
|
152
|
+
if (hasMultiAppSupport) {
|
|
153
|
+
argToPrepend.push(module.app.name);
|
|
154
|
+
}
|
|
155
|
+
if (hasCustomUrlOrRegionSupport && !disablePrependCustomUrlOrRegion) {
|
|
156
|
+
argToPrepend.push(module._customUrlOrRegion);
|
|
157
|
+
}
|
|
158
|
+
let composite;
|
|
159
|
+
if (!multiModule) {
|
|
160
|
+
const moduleName = nativeModuleNames[0];
|
|
161
|
+
if (!moduleName) {
|
|
114
162
|
throw new Error(getMissingModuleHelpText(namespace));
|
|
115
163
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
164
|
+
composite = createSingleHostComposite(namespace, moduleName, argToPrepend, isTurboModule);
|
|
165
|
+
} else {
|
|
166
|
+
const hosts = [];
|
|
167
|
+
for (let i = 0; i < nativeModuleNames.length; i++) {
|
|
168
|
+
const moduleName = nativeModuleNames[i];
|
|
169
|
+
if (!moduleName) continue;
|
|
170
|
+
const nativeModule = getReactNativeModule(moduleName);
|
|
171
|
+
if (nativeModule) {
|
|
172
|
+
hosts.push({
|
|
173
|
+
module: nativeModule,
|
|
174
|
+
argToPrepend
|
|
175
|
+
});
|
|
176
|
+
}
|
|
125
177
|
}
|
|
126
|
-
|
|
178
|
+
composite = createRoutingCompositeProxy(namespace, hosts, isTurboModule);
|
|
127
179
|
}
|
|
128
180
|
if (nativeEvents && Array.isArray(nativeEvents) && nativeEvents.length) {
|
|
129
181
|
for (let i = 0, len = nativeEvents.length; i < len; i++) {
|
|
@@ -133,45 +185,24 @@ function initialiseNativeModule(module) {
|
|
|
133
185
|
}
|
|
134
186
|
}
|
|
135
187
|
}
|
|
136
|
-
|
|
137
|
-
NATIVE_MODULE_REGISTRY[key] = multiModuleRoot;
|
|
188
|
+
NATIVE_MODULE_REGISTRY[key] = composite;
|
|
138
189
|
return NATIVE_MODULE_REGISTRY[key];
|
|
139
190
|
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Subscribe to a native event for js side distribution by appName
|
|
143
|
-
* React Native events are hard set at compile - cant do dynamic event names
|
|
144
|
-
* so we use a single event send it to js and js then internally can prefix it
|
|
145
|
-
* and distribute dynamically.
|
|
146
|
-
*
|
|
147
|
-
* @param eventName
|
|
148
|
-
* @private
|
|
149
|
-
*/
|
|
150
191
|
function subscribeToNativeModuleEvent(eventName) {
|
|
151
192
|
if (!NATIVE_MODULE_EVENT_SUBSCRIPTIONS[eventName]) {
|
|
152
193
|
RNFBNativeEventEmitter.addListener(eventName, (...args) => {
|
|
153
194
|
const event = args[0];
|
|
154
195
|
if (event.appName && event.databaseId) {
|
|
155
|
-
// Firestore requires both appName and databaseId to prefix
|
|
156
196
|
SharedEventEmitter.emit(`${event.appName}-${event.databaseId}-${eventName}`, event);
|
|
157
197
|
} else if (event.appName) {
|
|
158
|
-
// native event has an appName property - auto prefix and internally emit
|
|
159
198
|
SharedEventEmitter.emit(`${event.appName}-${eventName}`, event);
|
|
160
199
|
} else {
|
|
161
|
-
// standard event - no need to prefix
|
|
162
200
|
SharedEventEmitter.emit(eventName, event);
|
|
163
201
|
}
|
|
164
202
|
});
|
|
165
203
|
NATIVE_MODULE_EVENT_SUBSCRIPTIONS[eventName] = true;
|
|
166
204
|
}
|
|
167
205
|
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* Help text for integrating the native counter parts for each firebase module.
|
|
171
|
-
*
|
|
172
|
-
* @param namespace
|
|
173
|
-
* @returns {string}
|
|
174
|
-
*/
|
|
175
206
|
function getMissingModuleHelpText(namespace) {
|
|
176
207
|
const snippet = `firebase.${namespace}()`;
|
|
177
208
|
if (isIOS || isAndroid) {
|
|
@@ -179,14 +210,6 @@ function getMissingModuleHelpText(namespace) {
|
|
|
179
210
|
}
|
|
180
211
|
return `You attempted to use a Firebase module that's not installed on your project by calling ${snippet}.` + `\r\n\r\nEnsure you have installed the npm package '@react-native-firebase/${namespace}' and` + ' have imported it in your project.';
|
|
181
212
|
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Gets a wrapped native module instance for the provided firebase module.
|
|
185
|
-
* Will attempt to create a new instance if non previously created.
|
|
186
|
-
*
|
|
187
|
-
* @param module
|
|
188
|
-
* @returns {*}
|
|
189
|
-
*/
|
|
190
213
|
export function getNativeModule(module) {
|
|
191
214
|
const key = nativeModuleKey(module);
|
|
192
215
|
if (NATIVE_MODULE_REGISTRY[key]) {
|
|
@@ -194,24 +217,22 @@ export function getNativeModule(module) {
|
|
|
194
217
|
}
|
|
195
218
|
return initialiseNativeModule(module);
|
|
196
219
|
}
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Custom wrapped app module as it does not have it's own FirebaseModule based class.
|
|
200
|
-
*
|
|
201
|
-
* @returns {*}
|
|
202
|
-
*/
|
|
203
220
|
export function getAppModule() {
|
|
204
221
|
if (NATIVE_MODULE_REGISTRY[APP_NATIVE_MODULE]) {
|
|
205
222
|
return NATIVE_MODULE_REGISTRY[APP_NATIVE_MODULE];
|
|
206
223
|
}
|
|
207
|
-
|
|
208
|
-
const nativeModule = getReactNativeModule(APP_NATIVE_MODULE);
|
|
209
|
-
if (!nativeModule) {
|
|
210
|
-
throw new Error(getMissingModuleHelpText(namespace));
|
|
211
|
-
}
|
|
212
|
-
NATIVE_MODULE_REGISTRY[APP_NATIVE_MODULE] = nativeModuleWrapped(namespace, nativeModule, [],
|
|
213
|
-
// TODO: change to true when we use TurboModules for app package
|
|
214
|
-
false);
|
|
224
|
+
NATIVE_MODULE_REGISTRY[APP_NATIVE_MODULE] = createSingleHostComposite('app', APP_NATIVE_MODULE);
|
|
215
225
|
return NATIVE_MODULE_REGISTRY[APP_NATIVE_MODULE];
|
|
216
226
|
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Memoized wrapped utils surface for static path-constant reads (NewArch-AD-18 E5).
|
|
230
|
+
*/
|
|
231
|
+
export function getStaticUtilsModule() {
|
|
232
|
+
if (staticUtilsModule) {
|
|
233
|
+
return staticUtilsModule;
|
|
234
|
+
}
|
|
235
|
+
staticUtilsModule = createSingleHostComposite('utils', UTILS_NATIVE_MODULE);
|
|
236
|
+
return staticUtilsModule;
|
|
237
|
+
}
|
|
217
238
|
//# sourceMappingURL=nativeModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["APP_NATIVE_MODULE","NativeFirebaseError","RNFBNativeEventEmitter","SharedEventEmitter","getReactNativeModule","isAndroid","isIOS","encodeNullValues","NATIVE_MODULE_REGISTRY","NATIVE_MODULE_EVENT_SUBSCRIPTIONS","nativeModuleKey","module","_customUrlOrRegion","app","name","_config","namespace","nativeModuleMethodWrapped","method","argToPrepend","isTurboModule","args","processedArgs","map","arg","allArgs","possiblePromise","jsStack","Error","stack","catch","nativeError","Promise","reject","
|
|
1
|
+
{"version":3,"names":["APP_NATIVE_MODULE","UTILS_NATIVE_MODULE","NativeFirebaseError","RNFBNativeEventEmitter","SharedEventEmitter","getReactNativeModule","isAndroid","isIOS","encodeNullValues","NATIVE_MODULE_REGISTRY","NATIVE_MODULE_EVENT_SUBSCRIPTIONS","staticUtilsModule","nativeModuleKey","module","_customUrlOrRegion","app","name","_config","namespace","nativeModuleMethodWrapped","method","argToPrepend","isTurboModule","args","processedArgs","map","arg","allArgs","possiblePromise","jsStack","Error","stack","catch","nativeError","Promise","reject","createRoutingCompositeProxy","hosts","routingMap","memoizedMethods","memoizedConstants","key","host","target","Object","create","Proxy","get","_target","undefined","route","value","bind","has","ownKeys","keys","getOwnPropertyDescriptor","enumerable","configurable","set","createSingleHostComposite","moduleName","nativeModule","getMissingModuleHelpText","initialiseNativeModule","config","nativeEvents","nativeModuleName","hasMultiAppSupport","hasCustomUrlOrRegionSupport","disablePrependCustomUrlOrRegion","turboModule","multiModule","Array","isArray","nativeModuleNames","push","composite","i","length","len","eventName","subscribeToNativeModuleEvent","addListener","event","appName","databaseId","emit","snippet","getNativeModule","getAppModule","getStaticUtilsModule"],"sourceRoot":"../../../../lib","sources":["internal/registry/nativeModule.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/module/modular.js
CHANGED
|
@@ -17,29 +17,26 @@
|
|
|
17
17
|
*
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
import {
|
|
20
|
+
import { getUtils as getUtilsImpl } from "./utils/index.js";
|
|
21
|
+
import UtilsStatics from "./utils/UtilsStatics.js";
|
|
21
22
|
import { deleteApp as deleteAppCompat, getApp as getAppCompat, getApps as getAppsCompat, initializeApp as initializeAppCompat, setLogLevel as setLogLevelCompat, setReactNativeAsyncStorage as setReactNativeAsyncStorageCompat } from "./internal/registry/app.js";
|
|
22
23
|
import { setUserLogHandler } from "./internal/logger.js";
|
|
23
24
|
import { version as sdkVersion } from "./version.js";
|
|
24
|
-
import {
|
|
25
|
-
import { APP_NATIVE_MODULE } from "./internal/constants.js";
|
|
25
|
+
import { getAppModule } from "./internal/registry/nativeModule.js";
|
|
26
26
|
/**
|
|
27
27
|
* Renders this app unusable and frees the resources of all associated services.
|
|
28
28
|
* @param app - The app to delete.
|
|
29
29
|
* @returns Promise<void>
|
|
30
30
|
*/
|
|
31
31
|
export function deleteApp(app) {
|
|
32
|
-
return deleteAppCompat
|
|
33
|
-
// @ts-expect-error - Extra arg used by deprecation proxy to detect modular calls
|
|
34
|
-
MODULAR_DEPRECATION_ARG);
|
|
32
|
+
return deleteAppCompat(app.name, app._nativeInitialized);
|
|
35
33
|
}
|
|
36
34
|
|
|
37
35
|
/**
|
|
38
36
|
* Registers a library's name and version for platform logging purposes.
|
|
39
|
-
*
|
|
40
|
-
* @
|
|
41
|
-
*
|
|
42
|
-
* @returns Promise<void>
|
|
37
|
+
*
|
|
38
|
+
* @remarks **Web only.** Always throws on React Native Firebase — native SDK version registration
|
|
39
|
+
* is handled by the Firebase iOS/Android SDKs.
|
|
43
40
|
*/
|
|
44
41
|
export function registerVersion(_libraryKeyOrName, _version, _variant) {
|
|
45
42
|
throw new Error('registerVersion is only supported on Web');
|
|
@@ -60,21 +57,22 @@ export function onLog(logCallback, options) {
|
|
|
60
57
|
* @returns An array of all initialized Firebase apps.
|
|
61
58
|
*/
|
|
62
59
|
export function getApps() {
|
|
63
|
-
return getAppsCompat
|
|
64
|
-
// @ts-expect-error - Extra arg used by deprecation proxy to detect modular calls
|
|
65
|
-
MODULAR_DEPRECATION_ARG);
|
|
60
|
+
return getAppsCompat();
|
|
66
61
|
}
|
|
67
62
|
|
|
68
63
|
/**
|
|
69
64
|
* Initializes a Firebase app with the provided options and name.
|
|
65
|
+
*
|
|
66
|
+
* @remarks On React Native Firebase this is **async** (`Promise<FirebaseApp>`) because secondary
|
|
67
|
+
* app creation crosses the native bridge. The default app is still configured from native
|
|
68
|
+
* `GoogleService-Info.plist` / `google-services.json` at launch.
|
|
69
|
+
*
|
|
70
70
|
* @param options - Options to configure the services used in the app.
|
|
71
71
|
* @param configOrName - The optional name of the app, or config for the app to initialize (a name of '[DEFAULT]' will be used if omitted).
|
|
72
72
|
* @returns The initialized Firebase app.
|
|
73
73
|
*/
|
|
74
74
|
export function initializeApp(options, configOrName) {
|
|
75
|
-
return initializeAppCompat
|
|
76
|
-
// @ts-expect-error - Extra arg used by deprecation proxy to detect modular calls
|
|
77
|
-
MODULAR_DEPRECATION_ARG);
|
|
75
|
+
return initializeAppCompat(options, configOrName);
|
|
78
76
|
}
|
|
79
77
|
|
|
80
78
|
/**
|
|
@@ -83,9 +81,7 @@ export function initializeApp(options, configOrName) {
|
|
|
83
81
|
* @returns The requested Firebase app instance.
|
|
84
82
|
*/
|
|
85
83
|
export function getApp(name) {
|
|
86
|
-
return getAppCompat
|
|
87
|
-
// @ts-expect-error - Extra arg used by deprecation proxy to detect modular calls
|
|
88
|
-
MODULAR_DEPRECATION_ARG);
|
|
84
|
+
return getAppCompat(name);
|
|
89
85
|
}
|
|
90
86
|
|
|
91
87
|
/**
|
|
@@ -94,9 +90,7 @@ export function getApp(name) {
|
|
|
94
90
|
* @returns void
|
|
95
91
|
*/
|
|
96
92
|
export function setLogLevel(logLevel) {
|
|
97
|
-
return setLogLevelCompat
|
|
98
|
-
// @ts-expect-error - Extra arg used by deprecation proxy to detect modular calls
|
|
99
|
-
MODULAR_DEPRECATION_ARG);
|
|
93
|
+
return setLogLevelCompat(logLevel);
|
|
100
94
|
}
|
|
101
95
|
|
|
102
96
|
/**
|
|
@@ -106,9 +100,7 @@ export function setLogLevel(logLevel) {
|
|
|
106
100
|
* This is required if you want to persist things like Auth sessions, Analytics device IDs, etc.
|
|
107
101
|
*/
|
|
108
102
|
export function setReactNativeAsyncStorage(asyncStorage) {
|
|
109
|
-
return setReactNativeAsyncStorageCompat
|
|
110
|
-
// @ts-expect-error - Extra arg used by deprecation proxy to detect modular calls
|
|
111
|
-
MODULAR_DEPRECATION_ARG);
|
|
103
|
+
return setReactNativeAsyncStorageCompat(asyncStorage);
|
|
112
104
|
}
|
|
113
105
|
|
|
114
106
|
/**
|
|
@@ -116,8 +108,7 @@ export function setReactNativeAsyncStorage(asyncStorage) {
|
|
|
116
108
|
* @returns map of key / value pairs containing native meta data
|
|
117
109
|
*/
|
|
118
110
|
export function metaGetAll() {
|
|
119
|
-
|
|
120
|
-
return RNFBAppModule.metaGetAll();
|
|
111
|
+
return getAppModule().metaGetAll();
|
|
121
112
|
}
|
|
122
113
|
|
|
123
114
|
/**
|
|
@@ -125,8 +116,7 @@ export function metaGetAll() {
|
|
|
125
116
|
* @returns map of key / value pairs containing native firebase.json constants
|
|
126
117
|
*/
|
|
127
118
|
export function jsonGetAll() {
|
|
128
|
-
|
|
129
|
-
return RNFBAppModule.jsonGetAll();
|
|
119
|
+
return getAppModule().jsonGetAll();
|
|
130
120
|
}
|
|
131
121
|
|
|
132
122
|
/**
|
|
@@ -134,8 +124,7 @@ export function jsonGetAll() {
|
|
|
134
124
|
* @returns Promise<void>
|
|
135
125
|
*/
|
|
136
126
|
export function preferencesClearAll() {
|
|
137
|
-
|
|
138
|
-
return RNFBAppModule.preferencesClearAll();
|
|
127
|
+
return getAppModule().preferencesClearAll();
|
|
139
128
|
}
|
|
140
129
|
|
|
141
130
|
/**
|
|
@@ -143,8 +132,7 @@ export function preferencesClearAll() {
|
|
|
143
132
|
* @returns map of key / value pairs containing native preferences data
|
|
144
133
|
*/
|
|
145
134
|
export function preferencesGetAll() {
|
|
146
|
-
|
|
147
|
-
return RNFBAppModule.preferencesGetAll();
|
|
135
|
+
return getAppModule().preferencesGetAll();
|
|
148
136
|
}
|
|
149
137
|
|
|
150
138
|
/**
|
|
@@ -154,8 +142,7 @@ export function preferencesGetAll() {
|
|
|
154
142
|
* @returns Promise<void>
|
|
155
143
|
*/
|
|
156
144
|
export function preferencesSetBool(key, value) {
|
|
157
|
-
|
|
158
|
-
return RNFBAppModule.preferencesSetBool(key, value);
|
|
145
|
+
return getAppModule().preferencesSetBool(key, value);
|
|
159
146
|
}
|
|
160
147
|
|
|
161
148
|
/**
|
|
@@ -165,8 +152,28 @@ export function preferencesSetBool(key, value) {
|
|
|
165
152
|
* @returns Promise<void>
|
|
166
153
|
*/
|
|
167
154
|
export function preferencesSetString(key, value) {
|
|
168
|
-
|
|
169
|
-
return RNFBAppModule.preferencesSetString(key, value);
|
|
155
|
+
return getAppModule().preferencesSetString(key, value);
|
|
170
156
|
}
|
|
171
157
|
export const SDK_VERSION = sdkVersion;
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Returns the {@link Utils.Module} instance for the default or given {@link ReactNativeFirebase.FirebaseApp}.
|
|
161
|
+
*
|
|
162
|
+
* @param app - The Firebase app to use. When omitted, the default app is used.
|
|
163
|
+
*/
|
|
164
|
+
export function getUtils(app) {
|
|
165
|
+
return getUtilsImpl(app);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Native device file paths for use with file-based APIs such as Storage `putFile` or `writeToFile`.
|
|
170
|
+
*/
|
|
171
|
+
export const FilePath = new Proxy({}, {
|
|
172
|
+
get(_target, prop) {
|
|
173
|
+
if (typeof prop === 'string') {
|
|
174
|
+
return UtilsStatics.FilePath[prop];
|
|
175
|
+
}
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
});
|
|
172
179
|
//# sourceMappingURL=modular.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["getUtils","getUtilsImpl","UtilsStatics","deleteApp","deleteAppCompat","getApp","getAppCompat","getApps","getAppsCompat","initializeApp","initializeAppCompat","setLogLevel","setLogLevelCompat","setReactNativeAsyncStorage","setReactNativeAsyncStorageCompat","setUserLogHandler","version","sdkVersion","getAppModule","app","name","_nativeInitialized","registerVersion","_libraryKeyOrName","_version","_variant","Error","onLog","logCallback","options","configOrName","logLevel","asyncStorage","metaGetAll","jsonGetAll","preferencesClearAll","preferencesGetAll","preferencesSetBool","key","value","preferencesSetString","SDK_VERSION","FilePath","Proxy","get","_target","prop","undefined"],"sourceRoot":"../../lib","sources":["modular.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,QAAQ,IAAIC,YAAY,QAAQ,kBAAS;AAClD,OAAOC,YAAY,MAAM,yBAAsB;AAC/C,SACEC,SAAS,IAAIC,eAAe,EAC5BC,MAAM,IAAIC,YAAY,EACtBC,OAAO,IAAIC,aAAa,EACxBC,aAAa,IAAIC,mBAAmB,EACpCC,WAAW,IAAIC,iBAAiB,EAChCC,0BAA0B,IAAIC,gCAAgC,QACzD,4BAAyB;AAChC,SAASC,iBAAiB,QAAQ,sBAAmB;AACrD,SAASC,OAAO,IAAIC,UAAU,QAAQ,cAAW;AACjD,SAASC,YAAY,QAAQ,qCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA,OAAO,SAASf,SAASA,CAACgB,GAAoC,EAAiB;EAC7E,OAAOf,eAAe,CAACe,GAAG,CAACC,IAAI,EAAGD,GAAG,CAASE,kBAAkB,CAAC;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAC7BC,iBAAyB,EACzBC,QAAgB,EAChBC,QAAiB,EACX;EACN,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,KAAKA,CAACC,WAA+B,EAAEC,OAAoB,EAAQ;EACjFd,iBAAiB,CAACa,WAAW,EAAEC,OAAO,CAAC;AACzC;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAAStB,OAAOA,CAAA,EAAsC;EAC3D,OAAOC,aAAa,CAAC,CAAC;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAC3BoB,OAA+C,EAC/CC,YAA6D,EACnB;EAC1C,OAAOpB,mBAAmB,CAACmB,OAAO,EAAEC,YAAY,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASzB,MAAMA,CAACe,IAAa,EAAmC;EACrE,OAAOd,YAAY,CAACc,IAAI,CAAC;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAST,WAAWA,CAACoB,QAA4C,EAAQ;EAC9E,OAAOnB,iBAAiB,CAACmB,QAAQ,CAAC;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASlB,0BAA0BA,CACxCmB,YAAyD,EACnD;EACN,OAAOlB,gCAAgC,CAACkB,YAAY,CAAC;AACvD;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAAA,EAAiD;EACzE,OAAOf,YAAY,CAAC,CAAC,CAACe,UAAU,CAAC,CAAC;AACpC;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAAA,EAAiD;EACzE,OAAOhB,YAAY,CAAC,CAAC,CAACgB,UAAU,CAAC,CAAC;AACpC;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAAA,EAAkB;EACnD,OAAOjB,YAAY,CAAC,CAAC,CAACiB,mBAAmB,CAAC,CAAC;AAC7C;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAiD;EAChF,OAAOlB,YAAY,CAAC,CAAC,CAACkB,iBAAiB,CAAC,CAAC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,GAAW,EAAEC,KAAc,EAAiB;EAC7E,OAAOrB,YAAY,CAAC,CAAC,CAACmB,kBAAkB,CAACC,GAAG,EAAEC,KAAK,CAAC;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAACF,GAAW,EAAEC,KAAa,EAAiB;EAC9E,OAAOrB,YAAY,CAAC,CAAC,CAACsB,oBAAoB,CAACF,GAAG,EAAEC,KAAK,CAAC;AACxD;AAEA,OAAO,MAAME,WAAmB,GAAGxB,UAAU;;AAE7C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASjB,QAAQA,CAACmB,GAAqC,EAAgB;EAC5E,OAAOlB,YAAY,CAACkB,GAAG,CAAC;AAC1B;;AAEA;AACA;AACA;AACA,OAAO,MAAMuB,QAAwB,GAAG,IAAIC,KAAK,CAAC,CAAC,CAAC,EAAoB;EACtEC,GAAGA,CAACC,OAAO,EAAEC,IAAqB,EAAE;IAClC,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MAC5B,OAAO5C,YAAY,CAACwC,QAAQ,CAACI,IAAI,CAAyB;IAC5D;IACA,OAAOC,SAAS;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
|
package/dist/module/types/app.js
CHANGED
|
@@ -25,13 +25,10 @@ export let ReactNativeFirebase;
|
|
|
25
25
|
/**
|
|
26
26
|
* Base interface for FirebaseApp containing core properties and methods.
|
|
27
27
|
* The concrete FirebaseApp class implements this interface.
|
|
28
|
-
* Module-specific methods (auth(), analytics(), etc.) are added to FirebaseApp via declaration merging.
|
|
29
28
|
*/
|
|
30
29
|
|
|
31
30
|
/**
|
|
32
31
|
* Full FirebaseApp interface that extends the base interface.
|
|
33
|
-
* Module-specific methods (auth(), analytics(), etc.) are added here via declaration merging
|
|
34
|
-
* from individual package .d.ts files.
|
|
35
32
|
*/
|
|
36
33
|
|
|
37
34
|
/**
|