@react-native-firebase/app 26.3.3 → 26.4.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 +27 -0
- package/RNFBApp.podspec +1 -1
- package/android/src/main/java/io/invertase/firebase/common/RNFBHandleCollisionException.java +31 -0
- package/android/src/main/java/io/invertase/firebase/common/RNFBHandleMap.java +150 -0
- package/android/src/main/java/io/invertase/firebase/common/TaskExecutorService.java +27 -3
- package/android/src/reactnative/java/io/invertase/firebase/app/NativeRNFBTurboApp.java +3 -1
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java +1 -1
- package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.java +3 -2
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseJSON.java +5 -3
- package/android/src/test/java/io/invertase/firebase/app/NativeRNFBTurboAppTest.java +26 -1
- package/android/src/test/java/io/invertase/firebase/common/RNFBHandleMapTest.java +275 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterTest.java +1 -1
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONTest.java +108 -0
- package/android/src/test/java/io/invertase/firebase/common/TaskExecutorServiceTest.java +97 -0
- package/android/src/test/java/io/invertase/firebase/utils/NativeRNFBTurboUtilsTest.java +0 -2
- package/dist/module/common/Base64.js +13 -21
- package/dist/module/common/Base64.js.map +1 -1
- package/dist/module/common/index.js +17 -9
- package/dist/module/common/index.js.map +1 -1
- package/dist/module/internal/asyncStorage.js +7 -11
- package/dist/module/internal/asyncStorage.js.map +1 -1
- package/dist/module/internal/logger.js +44 -40
- package/dist/module/internal/logger.js.map +1 -1
- package/dist/module/internal/nativeModuleAndroidIos.js +2 -29
- package/dist/module/internal/nativeModuleAndroidIos.js.map +1 -1
- package/dist/module/internal/nativeModuleDebug.js +74 -0
- package/dist/module/internal/nativeModuleDebug.js.map +1 -0
- package/dist/module/internal/nativeModuleWeb.js +9 -29
- package/dist/module/internal/nativeModuleWeb.js.map +1 -1
- package/dist/module/internal/registry/app.js +1 -1
- package/dist/module/internal/registry/app.js.map +1 -1
- package/dist/module/internal/registry/modular.js +2 -2
- package/dist/module/internal/registry/modular.js.map +1 -1
- package/dist/module/internal/registry/nativeModule.js +3 -3
- package/dist/module/internal/registry/nativeModule.js.map +1 -1
- package/dist/module/internal/web/RNFBAppModule.js +16 -15
- package/dist/module/internal/web/RNFBAppModule.js.map +1 -1
- package/dist/module/internal/web/memidb/lib/FakeEventTarget.js +3 -1
- package/dist/module/internal/web/memidb/lib/FakeEventTarget.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/lib/common/Base64.d.ts.map +1 -1
- package/dist/typescript/lib/common/index.d.ts.map +1 -1
- package/dist/typescript/lib/internal/asyncStorage.d.ts.map +1 -1
- package/dist/typescript/lib/internal/logger.d.ts.map +1 -1
- package/dist/typescript/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -1
- package/dist/typescript/lib/internal/nativeModuleDebug.d.ts +2 -0
- package/dist/typescript/lib/internal/nativeModuleDebug.d.ts.map +1 -0
- package/dist/typescript/lib/internal/nativeModuleWeb.d.ts.map +1 -1
- package/dist/typescript/lib/internal/web/RNFBAppModule.d.ts +7 -7
- package/dist/typescript/lib/internal/web/RNFBAppModule.d.ts.map +1 -1
- package/dist/typescript/lib/version.d.ts +1 -1
- package/firebase-schema.json +1 -1
- package/ios/RNFBApp/RNFBAppModule.mm +40 -14
- package/ios/RNFBApp/RNFBHandleMap.h +73 -0
- package/ios/RNFBApp/RNFBHandleMap.m +116 -0
- package/ios/RNFBApp/RNFBSharedUtils.m +3 -2
- package/ios/RNFBApp/RNFBVersion.m +1 -1
- package/ios/RNFBApp.xcodeproj/project.pbxproj +6 -0
- package/ios/RNFBAppUnitTests/RNFBAppUnitTests.xcodeproj/project.pbxproj +237 -0
- package/ios/RNFBAppUnitTests/RNFBAppUnitTests.xcodeproj/xcshareddata/xcschemes/RNFBAppUnitTests.xcscheme +69 -0
- package/ios/RNFBAppUnitTests/RNFBHandleMapTests.m +238 -0
- package/lib/common/Base64.ts +10 -16
- package/lib/common/index.ts +20 -9
- package/lib/internal/asyncStorage.ts +7 -11
- package/lib/internal/logger.ts +53 -43
- package/lib/internal/nativeModuleAndroidIos.ts +2 -40
- package/lib/internal/nativeModuleDebug.ts +97 -0
- package/lib/internal/nativeModuleWeb.ts +10 -40
- package/lib/internal/registry/app.ts +1 -1
- package/lib/internal/registry/modular.ts +2 -2
- package/lib/internal/registry/nativeModule.ts +3 -3
- package/lib/internal/web/RNFBAppModule.ts +16 -15
- package/lib/internal/web/memidb/lib/FakeEventTarget.js +3 -1
- package/lib/version.ts +1 -1
- package/package.json +3 -2
- package/plugin/build/ios/appDelegate.js +18 -8
- package/plugin/src/ios/appDelegate.ts +44 -14
package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterTest.java
CHANGED
|
@@ -65,7 +65,7 @@ import org.robolectric.shadows.ShadowLooper;
|
|
|
65
65
|
* require the Detox/Jet harness.
|
|
66
66
|
*/
|
|
67
67
|
@RunWith(RobolectricTestRunner.class)
|
|
68
|
-
@Config(
|
|
68
|
+
@Config(application = ReactNativeFirebaseEventEmitterTest.HostApplication.class)
|
|
69
69
|
public class ReactNativeFirebaseEventEmitterTest {
|
|
70
70
|
|
|
71
71
|
private static final String EVENT = "auth_state_changed";
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
package io.invertase.firebase.common;
|
|
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
|
+
import static org.junit.Assert.assertSame;
|
|
20
|
+
import static org.mockito.ArgumentMatchers.eq;
|
|
21
|
+
import static org.mockito.Mockito.mock;
|
|
22
|
+
import static org.mockito.Mockito.mockStatic;
|
|
23
|
+
import static org.mockito.Mockito.verifyNoInteractions;
|
|
24
|
+
import static org.mockito.Mockito.when;
|
|
25
|
+
|
|
26
|
+
import com.facebook.react.bridge.Arguments;
|
|
27
|
+
import com.facebook.react.bridge.WritableMap;
|
|
28
|
+
import java.lang.reflect.Field;
|
|
29
|
+
import java.util.Collections;
|
|
30
|
+
import java.util.List;
|
|
31
|
+
import org.json.JSONObject;
|
|
32
|
+
import org.junit.After;
|
|
33
|
+
import org.junit.Before;
|
|
34
|
+
import org.junit.Test;
|
|
35
|
+
import org.mockito.MockedStatic;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Plain JUnit4 + Mockito (AndroidTest-AD-1). Covers {@link ReactNativeFirebaseJSON#getAll()}.
|
|
39
|
+
* JSONObject is mocked because Android's org.json stubs are not available on the JVM.
|
|
40
|
+
*/
|
|
41
|
+
public class ReactNativeFirebaseJSONTest {
|
|
42
|
+
|
|
43
|
+
private ReactNativeFirebaseJSON json;
|
|
44
|
+
private Field jsonObjectField;
|
|
45
|
+
private Object originalJsonObject;
|
|
46
|
+
|
|
47
|
+
@Before
|
|
48
|
+
public void setUp() throws Exception {
|
|
49
|
+
json = ReactNativeFirebaseJSON.getSharedInstance();
|
|
50
|
+
jsonObjectField = ReactNativeFirebaseJSON.class.getDeclaredField("jsonObject");
|
|
51
|
+
jsonObjectField.setAccessible(true);
|
|
52
|
+
originalJsonObject = jsonObjectField.get(json);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@After
|
|
56
|
+
public void tearDown() throws Exception {
|
|
57
|
+
jsonObjectField.set(json, originalJsonObject);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@Test
|
|
61
|
+
public void getAllReturnsEmptyMapWhenJsonObjectIsNull() throws Exception {
|
|
62
|
+
WritableMap emptyMap = mock(WritableMap.class);
|
|
63
|
+
jsonObjectField.set(json, null);
|
|
64
|
+
|
|
65
|
+
try (MockedStatic<Arguments> arguments = mockStatic(Arguments.class)) {
|
|
66
|
+
arguments.when(Arguments::createMap).thenReturn(emptyMap);
|
|
67
|
+
|
|
68
|
+
assertSame(emptyMap, json.getAll());
|
|
69
|
+
verifyNoInteractions(emptyMap);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@Test
|
|
74
|
+
public void getAllReturnsEmptyMapForEmptyJsonObject() throws Exception {
|
|
75
|
+
WritableMap emptyMap = mock(WritableMap.class);
|
|
76
|
+
JSONObject jsonObject = mock(JSONObject.class);
|
|
77
|
+
when(jsonObject.keys()).thenReturn(Collections.emptyIterator());
|
|
78
|
+
jsonObjectField.set(json, jsonObject);
|
|
79
|
+
|
|
80
|
+
try (MockedStatic<Arguments> arguments = mockStatic(Arguments.class)) {
|
|
81
|
+
arguments.when(Arguments::createMap).thenReturn(emptyMap);
|
|
82
|
+
|
|
83
|
+
assertSame(emptyMap, json.getAll());
|
|
84
|
+
verifyNoInteractions(emptyMap);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@Test
|
|
89
|
+
public void getAllMapsNonEmptyJsonObjectEntries() throws Exception {
|
|
90
|
+
WritableMap writableMap = mock(WritableMap.class);
|
|
91
|
+
JSONObject jsonObject = mock(JSONObject.class);
|
|
92
|
+
when(jsonObject.keys()).thenReturn(List.of("analytics_auto_collection_enabled").iterator());
|
|
93
|
+
when(jsonObject.get("analytics_auto_collection_enabled")).thenReturn(false);
|
|
94
|
+
jsonObjectField.set(json, jsonObject);
|
|
95
|
+
|
|
96
|
+
try (MockedStatic<Arguments> arguments = mockStatic(Arguments.class);
|
|
97
|
+
MockedStatic<SharedUtils> sharedUtils = mockStatic(SharedUtils.class)) {
|
|
98
|
+
arguments.when(Arguments::createMap).thenReturn(writableMap);
|
|
99
|
+
|
|
100
|
+
assertSame(writableMap, json.getAll());
|
|
101
|
+
|
|
102
|
+
sharedUtils.verify(
|
|
103
|
+
() ->
|
|
104
|
+
SharedUtils.mapPutValue(
|
|
105
|
+
eq("analytics_auto_collection_enabled"), eq(false), eq(writableMap)));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
package io.invertase.firebase.common;
|
|
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 static org.junit.Assert.assertFalse;
|
|
21
|
+
import static org.junit.Assert.assertTrue;
|
|
22
|
+
import static org.mockito.ArgumentMatchers.anyInt;
|
|
23
|
+
import static org.mockito.ArgumentMatchers.anyString;
|
|
24
|
+
import static org.mockito.Mockito.mock;
|
|
25
|
+
import static org.mockito.Mockito.mockStatic;
|
|
26
|
+
import static org.mockito.Mockito.when;
|
|
27
|
+
|
|
28
|
+
import java.util.concurrent.CountDownLatch;
|
|
29
|
+
import java.util.concurrent.ExecutorService;
|
|
30
|
+
import java.util.concurrent.TimeUnit;
|
|
31
|
+
import java.util.concurrent.atomic.AtomicBoolean;
|
|
32
|
+
import org.junit.After;
|
|
33
|
+
import org.junit.Before;
|
|
34
|
+
import org.junit.Test;
|
|
35
|
+
import org.mockito.MockedStatic;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Plain JUnit4 + Mockito (AndroidTest-AD-1). Constructor reads pool sizing from {@link
|
|
39
|
+
* ReactNativeFirebaseJSON}; stub that away so we never touch Android's unmocked {@code
|
|
40
|
+
* org.json.JSONObject}.
|
|
41
|
+
*/
|
|
42
|
+
public class TaskExecutorServiceTest {
|
|
43
|
+
|
|
44
|
+
private MockedStatic<ReactNativeFirebaseJSON> jsonStatic;
|
|
45
|
+
|
|
46
|
+
@Before
|
|
47
|
+
public void setUp() {
|
|
48
|
+
ReactNativeFirebaseJSON json = mock(ReactNativeFirebaseJSON.class);
|
|
49
|
+
when(json.getIntValue(anyString(), anyInt())).thenAnswer(inv -> inv.getArgument(1));
|
|
50
|
+
jsonStatic = mockStatic(ReactNativeFirebaseJSON.class);
|
|
51
|
+
jsonStatic.when(ReactNativeFirebaseJSON::getSharedInstance).thenReturn(json);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@After
|
|
55
|
+
public void tearDown() {
|
|
56
|
+
jsonStatic.close();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@Test
|
|
60
|
+
public void transactionalExecutorRunsSubmittedWork() throws Exception {
|
|
61
|
+
TaskExecutorService service = new TaskExecutorService("TestTransactionalRuns");
|
|
62
|
+
ExecutorService executor = service.getTransactionalExecutor();
|
|
63
|
+
CountDownLatch latch = new CountDownLatch(1);
|
|
64
|
+
|
|
65
|
+
executor.execute(latch::countDown);
|
|
66
|
+
|
|
67
|
+
assertTrue("work submitted before shutdown runs", latch.await(5, TimeUnit.SECONDS));
|
|
68
|
+
service.shutdown();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@Test
|
|
72
|
+
public void transactionalExecutorDiscardsWorkSubmittedAfterShutdown() {
|
|
73
|
+
TaskExecutorService service = new TaskExecutorService("TestTransactionalShutdown");
|
|
74
|
+
ExecutorService executor = service.getTransactionalExecutor();
|
|
75
|
+
service.shutdown();
|
|
76
|
+
AtomicBoolean ran = new AtomicBoolean(false);
|
|
77
|
+
|
|
78
|
+
// Must not throw RejectedExecutionException - this is the crash path hit when a
|
|
79
|
+
// play-services Task completes after module invalidation has shut the executor down.
|
|
80
|
+
executor.execute(() -> ran.set(true));
|
|
81
|
+
|
|
82
|
+
assertFalse("work submitted after shutdown is discarded", ran.get());
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@Test
|
|
86
|
+
public void pooledExecutorDiscardsWorkSubmittedAfterShutdown() {
|
|
87
|
+
TaskExecutorService service = new TaskExecutorService("TestPooledShutdown");
|
|
88
|
+
ExecutorService executor = service.getExecutor(false, "");
|
|
89
|
+
service.shutdown();
|
|
90
|
+
AtomicBoolean ran = new AtomicBoolean(false);
|
|
91
|
+
|
|
92
|
+
// Exercises the executeInFallback handler's shutdown guard.
|
|
93
|
+
executor.execute(() -> ran.set(true));
|
|
94
|
+
|
|
95
|
+
assertFalse("work submitted after shutdown is discarded", ran.get());
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -36,14 +36,12 @@ import org.junit.Test;
|
|
|
36
36
|
import org.junit.runner.RunWith;
|
|
37
37
|
import org.robolectric.RobolectricTestRunner;
|
|
38
38
|
import org.robolectric.RuntimeEnvironment;
|
|
39
|
-
import org.robolectric.annotation.Config;
|
|
40
39
|
|
|
41
40
|
/**
|
|
42
41
|
* JVM coverage for {@link NativeRNFBTurboUtils} appVersion constant export branches (null, empty,
|
|
43
42
|
* package-manager failure).
|
|
44
43
|
*/
|
|
45
44
|
@RunWith(RobolectricTestRunner.class)
|
|
46
|
-
@Config(sdk = 34)
|
|
47
45
|
public class NativeRNFBTurboUtilsTest {
|
|
48
46
|
|
|
49
47
|
private ReactApplicationContext reactContext;
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
|
|
20
20
|
// @ts-expect-error - No type declarations available
|
|
21
21
|
import binaryToBase64 from 'react-native/Libraries/Utilities/binaryToBase64';
|
|
22
|
-
import { promiseDefer } from "./promise.js";
|
|
23
22
|
const CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
|
24
23
|
|
|
25
24
|
/**
|
|
@@ -63,26 +62,19 @@ function atob(input) {
|
|
|
63
62
|
*/
|
|
64
63
|
function fromData(data) {
|
|
65
64
|
if (data instanceof Blob) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
fileReader.onerror = event => {
|
|
82
|
-
fileReader?.abort();
|
|
83
|
-
reject?.(event);
|
|
84
|
-
};
|
|
85
|
-
return promise;
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
const fileReader = new FileReader();
|
|
67
|
+
fileReader.onloadend = () => {
|
|
68
|
+
if (fileReader.result) {
|
|
69
|
+
resolve({
|
|
70
|
+
string: fileReader.result,
|
|
71
|
+
format: 'data_url'
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
fileReader.onerror = event => reject(event);
|
|
76
|
+
fileReader.readAsDataURL(data);
|
|
77
|
+
});
|
|
86
78
|
}
|
|
87
79
|
if (data instanceof ArrayBuffer || data instanceof Uint8Array) {
|
|
88
80
|
return Promise.resolve({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["binaryToBase64","
|
|
1
|
+
{"version":3,"names":["binaryToBase64","CHARS","btoa","input","map","i","block","output","charAt","charCode","charCodeAt","Error","atob","bc","bs","buffer","str","replace","length","String","fromCharCode","indexOf","fromData","data","Blob","Promise","resolve","reject","fileReader","FileReader","onloadend","result","string","format","onerror","event","readAsDataURL","ArrayBuffer","Uint8Array"],"sourceRoot":"../../../lib","sources":["common/Base64.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,20 +26,28 @@ export * from "./validate.js";
|
|
|
26
26
|
export { default as Base64 } from "./Base64.js";
|
|
27
27
|
export { default as ReferenceBase } from "./ReferenceBase.js";
|
|
28
28
|
export function getDataUrlParts(dataUrlString) {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
if (!mediaType || !base64String) {
|
|
29
|
+
const match = /^data:([^,]*?)(;base64)?,([\s\S]*)$/.exec(dataUrlString);
|
|
30
|
+
if (!match) {
|
|
32
31
|
return {
|
|
33
32
|
base64String: undefined,
|
|
34
33
|
mediaType: undefined
|
|
35
34
|
};
|
|
36
35
|
}
|
|
37
|
-
mediaType =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
const mediaType = match[1] || undefined;
|
|
37
|
+
let base64String = match[3] ?? '';
|
|
38
|
+
try {
|
|
39
|
+
if (base64String.includes('%')) {
|
|
40
|
+
base64String = decodeURIComponent(base64String);
|
|
41
|
+
}
|
|
42
|
+
if (!match[2]) {
|
|
43
|
+
const binaryString = encodeURIComponent(base64String).replace(/%([0-9A-F]{2})/g, (_, hex) => String.fromCharCode(Number.parseInt(hex, 16)));
|
|
44
|
+
base64String = Base64.btoa(binaryString);
|
|
45
|
+
}
|
|
46
|
+
} catch (_) {
|
|
47
|
+
return {
|
|
48
|
+
base64String: undefined,
|
|
49
|
+
mediaType: undefined
|
|
50
|
+
};
|
|
43
51
|
}
|
|
44
52
|
return {
|
|
45
53
|
base64String,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Base64","isFunction","isObject","isString","default","ReferenceBase","getDataUrlParts","dataUrlString","
|
|
1
|
+
{"version":3,"names":["Platform","Base64","isFunction","isObject","isString","default","ReferenceBase","getDataUrlParts","dataUrlString","match","exec","base64String","undefined","mediaType","includes","decodeURIComponent","binaryString","encodeURIComponent","replace","_","hex","String","fromCharCode","Number","parseInt","btoa","once","fn","context","onceResult","ranOnce","onceInner","args","apply","isError","value","Object","prototype","toString","call","Error","hasOwnProperty","target","property","stripTrailingSlash","string","endsWith","slice","isIOS","OS","isAndroid","isOther","tryJSONParse","JSON","parse","tryJSONStringify","data","stringify","parseListenerOrObserver","listenerOrObserver","next","bind"],"sourceRoot":"../../../lib","sources":["common/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -28,11 +28,7 @@ const asyncStorageMemory = {
|
|
|
28
28
|
return Promise.resolve();
|
|
29
29
|
},
|
|
30
30
|
getItem(key) {
|
|
31
|
-
|
|
32
|
-
if (hasValue) {
|
|
33
|
-
return Promise.resolve(memoryStorage.get(key) || null);
|
|
34
|
-
}
|
|
35
|
-
return Promise.resolve(null);
|
|
31
|
+
return Promise.resolve(memoryStorage.get(key) ?? null);
|
|
36
32
|
},
|
|
37
33
|
removeItem(key) {
|
|
38
34
|
memoryStorage.delete(key);
|
|
@@ -57,17 +53,17 @@ export function isMemoryStorage() {
|
|
|
57
53
|
}
|
|
58
54
|
|
|
59
55
|
// Set an item in storage with the React Native Firebase prefix
|
|
60
|
-
export
|
|
61
|
-
return
|
|
56
|
+
export function setItem(key, value) {
|
|
57
|
+
return asyncStorage.setItem(prefix + key, value);
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
// Get an item from storage with the React Native Firebase prefix
|
|
65
|
-
export
|
|
66
|
-
return
|
|
61
|
+
export function getItem(key) {
|
|
62
|
+
return asyncStorage.getItem(prefix + key);
|
|
67
63
|
}
|
|
68
64
|
|
|
69
65
|
// Remove an item from storage with the React Native Firebase prefix
|
|
70
|
-
export
|
|
71
|
-
return
|
|
66
|
+
export function removeItem(key) {
|
|
67
|
+
return asyncStorage.removeItem(prefix + key);
|
|
72
68
|
}
|
|
73
69
|
//# sourceMappingURL=asyncStorage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memoryStorage","Map","prefix","asyncStorageMemory","setItem","key","value","set","Promise","resolve","getItem","
|
|
1
|
+
{"version":3,"names":["memoryStorage","Map","prefix","asyncStorageMemory","setItem","key","value","set","Promise","resolve","getItem","get","removeItem","delete","asyncStorage","getReactNativeAsyncStorageInternal","setReactNativeAsyncStorageInternal","asyncStorageInstance","isMemoryStorage"],"sourceRoot":"../../../lib","sources":["internal/asyncStorage.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA,OAAO,MAAMA,aAAa,GAAG,IAAIC,GAAG,CAAiB,CAAC;;AAEtD;AACA,OAAO,MAAMC,MAAM,GAAG,yBAAyB;AAE/C,MAAMC,kBAAsC,GAAG;EAC7CC,OAAOA,CAACC,GAAW,EAAEC,KAAa,EAAiB;IACjDN,aAAa,CAACO,GAAG,CAACF,GAAG,EAAEC,KAAK,CAAC;IAC7B,OAAOE,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B,CAAC;EACDC,OAAOA,CAACL,GAAW,EAA0B;IAC3C,OAAOG,OAAO,CAACC,OAAO,CAACT,aAAa,CAACW,GAAG,CAACN,GAAG,CAAC,IAAI,IAAI,CAAC;EACxD,CAAC;EACDO,UAAUA,CAACP,GAAW,EAAiB;IACrCL,aAAa,CAACa,MAAM,CAACR,GAAG,CAAC;IACzB,OAAOG,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;AACF,CAAC;AAED,IAAIK,YAAgC,GAAGX,kBAAkB;;AAEzD;AACA,OAAO,eAAeY,kCAAkCA,CAAA,EAAgC;EACtF,OAAOD,YAAY;AACrB;;AAEA;AACA,OAAO,SAASE,kCAAkCA,CAChDC,oBAAyC,EACnC;EACNH,YAAY,GAAGG,oBAAoB,IAAId,kBAAkB;AAC3D;;AAEA;AACA,OAAO,SAASe,eAAeA,CAAA,EAAY;EACzC,OAAOJ,YAAY,KAAKX,kBAAkB;AAC5C;;AAEA;AACA,OAAO,SAASC,OAAOA,CAACC,GAAW,EAAEC,KAAa,EAAiB;EACjE,OAAOQ,YAAY,CAACV,OAAO,CAACF,MAAM,GAAGG,GAAG,EAAEC,KAAK,CAAC;AAClD;;AAEA;AACA,OAAO,SAASI,OAAOA,CAACL,GAAW,EAA0B;EAC3D,OAAOS,YAAY,CAACJ,OAAO,CAACR,MAAM,GAAGG,GAAG,CAAC;AAC3C;;AAEA;AACA,OAAO,SAASO,UAAUA,CAACP,GAAW,EAAiB;EACrD,OAAOS,YAAY,CAACF,UAAU,CAACV,MAAM,GAAGG,GAAG,CAAC;AAC9C","ignoreList":[]}
|
|
@@ -98,6 +98,41 @@ const defaultLogHandler = (instance, logType, ...args) => {
|
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
100
|
const defaultLogLevel = LogLevel.INFO;
|
|
101
|
+
let currentLogLevel = defaultLogLevel;
|
|
102
|
+
let currentUserLogHandler = null;
|
|
103
|
+
function createUserLogHandler(logCallback, options) {
|
|
104
|
+
if (logCallback === null) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
const customLogLevel = options?.level ? levelStringToEnum[options.level] : null;
|
|
108
|
+
return (instance, level, ...args) => {
|
|
109
|
+
const message = args.map(arg => {
|
|
110
|
+
if (arg == null) {
|
|
111
|
+
return null;
|
|
112
|
+
} else if (typeof arg === 'string') {
|
|
113
|
+
return arg;
|
|
114
|
+
} else if (typeof arg === 'number' || typeof arg === 'boolean') {
|
|
115
|
+
return arg.toString();
|
|
116
|
+
} else if (arg instanceof Error) {
|
|
117
|
+
return arg.message;
|
|
118
|
+
} else {
|
|
119
|
+
try {
|
|
120
|
+
return JSON.stringify(arg);
|
|
121
|
+
} catch (_ignored) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}).filter(arg => arg).join(' ');
|
|
126
|
+
if (level >= (customLogLevel ?? instance.logLevel)) {
|
|
127
|
+
logCallback({
|
|
128
|
+
level: LogLevelReversed[level].toLowerCase(),
|
|
129
|
+
message,
|
|
130
|
+
args,
|
|
131
|
+
type: instance.name
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
}
|
|
101
136
|
|
|
102
137
|
/**
|
|
103
138
|
* A container for all of the Logger instances
|
|
@@ -108,9 +143,9 @@ export const instances = [];
|
|
|
108
143
|
* Logger class for Firebase
|
|
109
144
|
*/
|
|
110
145
|
export class Logger {
|
|
111
|
-
_logLevel =
|
|
146
|
+
_logLevel = currentLogLevel;
|
|
112
147
|
_logHandler = defaultLogHandler;
|
|
113
|
-
_userLogHandler =
|
|
148
|
+
_userLogHandler = currentUserLogHandler;
|
|
114
149
|
|
|
115
150
|
/**
|
|
116
151
|
* Gives you an instance of a Logger to capture messages according to
|
|
@@ -198,9 +233,11 @@ export class Logger {
|
|
|
198
233
|
* Sets the log level for all Logger instances
|
|
199
234
|
*/
|
|
200
235
|
export function setLogLevel(level) {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
236
|
+
const normalizedLevel = typeof level === 'string' ? levelStringToEnum[level] : level;
|
|
237
|
+
currentLogLevel = normalizedLevel;
|
|
238
|
+
for (const instance of instances) {
|
|
239
|
+
instance.setLogLevel(normalizedLevel);
|
|
240
|
+
}
|
|
204
241
|
}
|
|
205
242
|
|
|
206
243
|
// Alias for compatibility
|
|
@@ -210,42 +247,9 @@ export const setLogLevelInternal = setLogLevel;
|
|
|
210
247
|
* Sets a custom user log handler for all Logger instances
|
|
211
248
|
*/
|
|
212
249
|
export function setUserLogHandler(logCallback, options) {
|
|
250
|
+
currentUserLogHandler = createUserLogHandler(logCallback, options);
|
|
213
251
|
for (const instance of instances) {
|
|
214
|
-
|
|
215
|
-
if (options?.level) {
|
|
216
|
-
customLogLevel = levelStringToEnum[options.level];
|
|
217
|
-
}
|
|
218
|
-
if (logCallback === null) {
|
|
219
|
-
instance.userLogHandler = null;
|
|
220
|
-
} else {
|
|
221
|
-
instance.userLogHandler = (_instance, level, ...args) => {
|
|
222
|
-
const message = args.map(arg => {
|
|
223
|
-
if (arg == null) {
|
|
224
|
-
return null;
|
|
225
|
-
} else if (typeof arg === 'string') {
|
|
226
|
-
return arg;
|
|
227
|
-
} else if (typeof arg === 'number' || typeof arg === 'boolean') {
|
|
228
|
-
return arg.toString();
|
|
229
|
-
} else if (arg instanceof Error) {
|
|
230
|
-
return arg.message;
|
|
231
|
-
} else {
|
|
232
|
-
try {
|
|
233
|
-
return JSON.stringify(arg);
|
|
234
|
-
} catch (_ignored) {
|
|
235
|
-
return null;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}).filter(arg => arg).join(' ');
|
|
239
|
-
if (level >= (customLogLevel ?? _instance.logLevel)) {
|
|
240
|
-
logCallback({
|
|
241
|
-
level: LogLevelReversed[level].toLowerCase(),
|
|
242
|
-
message,
|
|
243
|
-
args,
|
|
244
|
-
type: _instance.name
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
}
|
|
252
|
+
instance.userLogHandler = currentUserLogHandler;
|
|
249
253
|
}
|
|
250
254
|
}
|
|
251
255
|
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LogLevel","reverseLogLevel","obj","reversed","key","value","Object","entries","LogLevelReversed","levelStringToEnum","debug","DEBUG","verbose","VERBOSE","info","INFO","warn","WARN","error","ERROR","silent","SILENT","ConsoleMethod","defaultLogHandler","instance","logType","args","logLevel","now","Date","toISOString","method","console","name","Error","defaultLogLevel","
|
|
1
|
+
{"version":3,"names":["LogLevel","reverseLogLevel","obj","reversed","key","value","Object","entries","LogLevelReversed","levelStringToEnum","debug","DEBUG","verbose","VERBOSE","info","INFO","warn","WARN","error","ERROR","silent","SILENT","ConsoleMethod","defaultLogHandler","instance","logType","args","logLevel","now","Date","toISOString","method","console","name","Error","defaultLogLevel","currentLogLevel","currentUserLogHandler","createUserLogHandler","logCallback","options","customLogLevel","level","message","map","arg","toString","JSON","stringify","_ignored","filter","join","toLowerCase","type","instances","Logger","_logLevel","_logHandler","_userLogHandler","constructor","push","val","TypeError","setLogLevel","logHandler","userLogHandler","log","normalizedLevel","setLogLevelInternal","setUserLogHandler"],"sourceRoot":"../../../lib","sources":["internal/logger.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
/* eslint-disable no-console */
|
|
4
3
|
import { TurboModuleRegistry } from 'react-native';
|
|
4
|
+
import { createNativeModuleDebugProxy } from "./nativeModuleDebug.js";
|
|
5
5
|
const DYNAMIC_CONSTANT_KEYS = new Set(['androidPlayServices']);
|
|
6
6
|
const memoizedModuleConstants = new Map();
|
|
7
7
|
const memoizedDebugProxies = new Map();
|
|
@@ -49,34 +49,7 @@ export function getReactNativeModule(moduleName) {
|
|
|
49
49
|
if (debugProxy) {
|
|
50
50
|
return debugProxy;
|
|
51
51
|
}
|
|
52
|
-
debugProxy =
|
|
53
|
-
ownKeys(target) {
|
|
54
|
-
const keys = [];
|
|
55
|
-
for (const key in target) {
|
|
56
|
-
keys.push(key);
|
|
57
|
-
}
|
|
58
|
-
return keys;
|
|
59
|
-
},
|
|
60
|
-
get: (_, name) => {
|
|
61
|
-
const prop = nativeModule[name];
|
|
62
|
-
if (typeof prop !== 'function') return prop;
|
|
63
|
-
return (...args) => {
|
|
64
|
-
console.debug(`[RNFB->Native][🔵] ${moduleName}.${String(name)} -> ${JSON.stringify(args)}`);
|
|
65
|
-
const result = prop.apply(nativeModule, args);
|
|
66
|
-
if (result && typeof result === 'object' && 'then' in result) {
|
|
67
|
-
return result.then(res => {
|
|
68
|
-
console.debug(`[RNFB<-Native][🟢] ${moduleName}.${String(name)} <- ${JSON.stringify(res)}`);
|
|
69
|
-
return res;
|
|
70
|
-
}, err => {
|
|
71
|
-
console.debug(`[RNFB<-Native][🔴] ${moduleName}.${String(name)} <- ${JSON.stringify(err)}`);
|
|
72
|
-
throw err;
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
console.debug(`[RNFB<-Native][🟢] ${moduleName}.${String(name)} <- ${JSON.stringify(result)}`);
|
|
76
|
-
return result;
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
});
|
|
52
|
+
debugProxy = createNativeModuleDebugProxy(moduleName, nativeModule);
|
|
80
53
|
memoizedDebugProxies.set(moduleName, debugProxy);
|
|
81
54
|
return debugProxy;
|
|
82
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","DYNAMIC_CONSTANT_KEYS","Set","memoizedModuleConstants","Map","memoizedDebugProxies","withTurboConstants","moduleName","module","getConstants","constants","get","call","set","descriptors","key","Object","keys","has","value","enumerable","writable","configurable","create","getReactNativeModule","turboModule","Error","nativeModule","globalThis","RNFBDebug","debugProxy","
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","createNativeModuleDebugProxy","DYNAMIC_CONSTANT_KEYS","Set","memoizedModuleConstants","Map","memoizedDebugProxies","withTurboConstants","moduleName","module","getConstants","constants","get","call","set","descriptors","key","Object","keys","has","value","enumerable","writable","configurable","create","getReactNativeModule","turboModule","Error","nativeModule","globalThis","RNFBDebug","debugProxy","setReactNativeModule"],"sourceRoot":"../../../lib","sources":["internal/nativeModuleAndroidIos.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,cAAc;AAClD,SAASC,4BAA4B,QAAQ,wBAAqB;AAElE,MAAMC,qBAAqB,GAAG,IAAIC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC;AAE9D,MAAMC,uBAAuB,GAAG,IAAIC,GAAG,CAAkC,CAAC;AAC1E,MAAMC,oBAAoB,GAAG,IAAID,GAAG,CAAkC,CAAC;AAEvE,SAASE,kBAAkBA,CACzBC,UAAkB,EAClBC,MAA2C,EACN;EACrC,IAAI,CAACA,MAAM,EAAE;IACX,OAAOA,MAAM;EACf;EAEA,MAAMC,YAAY,GAAGD,MAAM,CAACC,YAAY;EACxC,IAAI,OAAOA,YAAY,KAAK,UAAU,EAAE;IACtC,OAAOD,MAAM;EACf;EAEA,IAAIE,SAAS,GAAGP,uBAAuB,CAACQ,GAAG,CAACJ,UAAU,CAAC;EACvD,IAAI,CAACG,SAAS,EAAE;IACdA,SAAS,GAAID,YAAY,CAAmCG,IAAI,CAACJ,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9EL,uBAAuB,CAACU,GAAG,CAACN,UAAU,EAAEG,SAAS,CAAC;EACpD;EAEA,MAAMI,WAAkC,GAAG,CAAC,CAAC;EAC7C,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACP,SAAS,CAAC,EAAE;IACxC,IAAIT,qBAAqB,CAACiB,GAAG,CAACH,GAAG,CAAC,EAAE;MAClC;IACF;IACAD,WAAW,CAACC,GAAG,CAAC,GAAG;MACjBI,KAAK,EAAET,SAAS,CAACK,GAAG,CAAC;MACrBK,UAAU,EAAE,IAAI;MAChBC,QAAQ,EAAE,IAAI;MACdC,YAAY,EAAE;IAChB,CAAC;EACH;EAEA,OAAON,MAAM,CAACO,MAAM,CAACf,MAAM,EAAEM,WAAW,CAAC;AAC3C;;AAEA;AACA;AACA;AACA,OAAO,SAASU,oBAAoBA,CAACjB,UAAkB,EAA2B;EAChF,MAAMkB,WAAW,GAAG1B,mBAAmB,CAACY,GAAG,CAACJ,UAAU,CAAC;EACvD,IAAI,CAACkB,WAAW,EAAE;IAChB,MAAM,IAAIC,KAAK,CAAC,iBAAiBnB,UAAU,qBAAqB,CAAC;EACnE;EAEA,MAAMoB,YAAY,GAAGrB,kBAAkB,CACrCC,UAAU,EACVkB,WACF,CAA4B;EAE5B,IAAI,CAACG,UAAU,CAACC,SAAS,EAAE;IACzB,OAAOF,YAAY;EACrB;EAEA,IAAIG,UAAU,GAAGzB,oBAAoB,CAACM,GAAG,CAACJ,UAAU,CAAC;EACrD,IAAIuB,UAAU,EAAE;IACd,OAAOA,UAAU;EACnB;EAEAA,UAAU,GAAG9B,4BAA4B,CAACO,UAAU,EAAEoB,YAAY,CAAC;EACnEtB,oBAAoB,CAACQ,GAAG,CAACN,UAAU,EAAEuB,UAAU,CAAC;EAChD,OAAOA,UAAU;AACnB;AAEA,OAAO,SAASC,oBAAoBA,CAAA,EAAS;EAC3C;AAAA","ignoreList":[]}
|