@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.
Files changed (77) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/RNFBApp.podspec +1 -1
  3. package/android/src/main/java/io/invertase/firebase/common/RNFBHandleCollisionException.java +31 -0
  4. package/android/src/main/java/io/invertase/firebase/common/RNFBHandleMap.java +150 -0
  5. package/android/src/main/java/io/invertase/firebase/common/TaskExecutorService.java +27 -3
  6. package/android/src/reactnative/java/io/invertase/firebase/app/NativeRNFBTurboApp.java +3 -1
  7. package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java +1 -1
  8. package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.java +3 -2
  9. package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseJSON.java +5 -3
  10. package/android/src/test/java/io/invertase/firebase/app/NativeRNFBTurboAppTest.java +26 -1
  11. package/android/src/test/java/io/invertase/firebase/common/RNFBHandleMapTest.java +275 -0
  12. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterTest.java +1 -1
  13. package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONTest.java +108 -0
  14. package/android/src/test/java/io/invertase/firebase/common/TaskExecutorServiceTest.java +97 -0
  15. package/android/src/test/java/io/invertase/firebase/utils/NativeRNFBTurboUtilsTest.java +0 -2
  16. package/dist/module/common/Base64.js +13 -21
  17. package/dist/module/common/Base64.js.map +1 -1
  18. package/dist/module/common/index.js +17 -9
  19. package/dist/module/common/index.js.map +1 -1
  20. package/dist/module/internal/asyncStorage.js +7 -11
  21. package/dist/module/internal/asyncStorage.js.map +1 -1
  22. package/dist/module/internal/logger.js +44 -40
  23. package/dist/module/internal/logger.js.map +1 -1
  24. package/dist/module/internal/nativeModuleAndroidIos.js +2 -29
  25. package/dist/module/internal/nativeModuleAndroidIos.js.map +1 -1
  26. package/dist/module/internal/nativeModuleDebug.js +74 -0
  27. package/dist/module/internal/nativeModuleDebug.js.map +1 -0
  28. package/dist/module/internal/nativeModuleWeb.js +9 -29
  29. package/dist/module/internal/nativeModuleWeb.js.map +1 -1
  30. package/dist/module/internal/registry/app.js +1 -1
  31. package/dist/module/internal/registry/app.js.map +1 -1
  32. package/dist/module/internal/registry/modular.js +2 -2
  33. package/dist/module/internal/registry/modular.js.map +1 -1
  34. package/dist/module/internal/registry/nativeModule.js +3 -3
  35. package/dist/module/internal/registry/nativeModule.js.map +1 -1
  36. package/dist/module/internal/web/RNFBAppModule.js +16 -15
  37. package/dist/module/internal/web/RNFBAppModule.js.map +1 -1
  38. package/dist/module/internal/web/memidb/lib/FakeEventTarget.js +3 -1
  39. package/dist/module/internal/web/memidb/lib/FakeEventTarget.js.map +1 -1
  40. package/dist/module/version.js +1 -1
  41. package/dist/typescript/lib/common/Base64.d.ts.map +1 -1
  42. package/dist/typescript/lib/common/index.d.ts.map +1 -1
  43. package/dist/typescript/lib/internal/asyncStorage.d.ts.map +1 -1
  44. package/dist/typescript/lib/internal/logger.d.ts.map +1 -1
  45. package/dist/typescript/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -1
  46. package/dist/typescript/lib/internal/nativeModuleDebug.d.ts +2 -0
  47. package/dist/typescript/lib/internal/nativeModuleDebug.d.ts.map +1 -0
  48. package/dist/typescript/lib/internal/nativeModuleWeb.d.ts.map +1 -1
  49. package/dist/typescript/lib/internal/web/RNFBAppModule.d.ts +7 -7
  50. package/dist/typescript/lib/internal/web/RNFBAppModule.d.ts.map +1 -1
  51. package/dist/typescript/lib/version.d.ts +1 -1
  52. package/firebase-schema.json +1 -1
  53. package/ios/RNFBApp/RNFBAppModule.mm +40 -14
  54. package/ios/RNFBApp/RNFBHandleMap.h +73 -0
  55. package/ios/RNFBApp/RNFBHandleMap.m +116 -0
  56. package/ios/RNFBApp/RNFBSharedUtils.m +3 -2
  57. package/ios/RNFBApp/RNFBVersion.m +1 -1
  58. package/ios/RNFBApp.xcodeproj/project.pbxproj +6 -0
  59. package/ios/RNFBAppUnitTests/RNFBAppUnitTests.xcodeproj/project.pbxproj +237 -0
  60. package/ios/RNFBAppUnitTests/RNFBAppUnitTests.xcodeproj/xcshareddata/xcschemes/RNFBAppUnitTests.xcscheme +69 -0
  61. package/ios/RNFBAppUnitTests/RNFBHandleMapTests.m +238 -0
  62. package/lib/common/Base64.ts +10 -16
  63. package/lib/common/index.ts +20 -9
  64. package/lib/internal/asyncStorage.ts +7 -11
  65. package/lib/internal/logger.ts +53 -43
  66. package/lib/internal/nativeModuleAndroidIos.ts +2 -40
  67. package/lib/internal/nativeModuleDebug.ts +97 -0
  68. package/lib/internal/nativeModuleWeb.ts +10 -40
  69. package/lib/internal/registry/app.ts +1 -1
  70. package/lib/internal/registry/modular.ts +2 -2
  71. package/lib/internal/registry/nativeModule.ts +3 -3
  72. package/lib/internal/web/RNFBAppModule.ts +16 -15
  73. package/lib/internal/web/memidb/lib/FakeEventTarget.js +3 -1
  74. package/lib/version.ts +1 -1
  75. package/package.json +3 -2
  76. package/plugin/build/ios/appDelegate.js +18 -8
  77. package/plugin/src/ios/appDelegate.ts +44 -14
@@ -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(sdk = 34, application = ReactNativeFirebaseEventEmitterTest.HostApplication.class)
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
- const fileReader = new FileReader();
67
- const {
68
- resolve,
69
- reject,
70
- promise
71
- } = promiseDefer();
72
- fileReader.readAsDataURL(data);
73
- fileReader.onloadend = () => {
74
- if (fileReader?.result) {
75
- resolve?.({
76
- string: fileReader.result,
77
- format: 'data_url'
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","promiseDefer","CHARS","btoa","input","map","i","block","output","charAt","charCode","charCodeAt","Error","atob","bc","bs","buffer","str","replace","length","String","fromCharCode","indexOf","fromData","data","Blob","fileReader","FileReader","resolve","reject","promise","readAsDataURL","onloadend","result","string","format","onerror","event","abort","ArrayBuffer","Uint8Array","Promise"],"sourceRoot":"../../../lib","sources":["common/Base64.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAOA,cAAc,MAAM,iDAAiD;AAC5E,SAASC,YAAY,QAAQ,cAAW;AAExC,MAAMC,KAAK,GAAG,mEAAmE;;AAEjF;AACA;AACA;AACA,SAASC,IAAIA,CAACC,KAAa,EAAU;EACnC,IAAIC,GAAG;EACP,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,KAAK,GAAG,CAAC;EACb,IAAIC,MAAM,GAAG,EAAE;EAEf,KACED,KAAK,GAAG,CAAC,EAAED,CAAC,GAAG,CAAC,EAAED,GAAG,GAAGH,KAAK,EAC7BE,KAAK,CAACK,MAAM,CAACH,CAAC,GAAG,CAAC,CAAC,KAAMD,GAAG,GAAG,GAAG,EAAGC,CAAC,GAAG,CAAC,CAAC,EAC3CE,MAAM,IAAIH,GAAG,CAACI,MAAM,CAAC,EAAE,GAAIF,KAAK,IAAK,CAAC,GAAID,CAAC,GAAG,CAAC,GAAI,CAAG,CAAC,EACvD;IACA,MAAMI,QAAQ,GAAGN,KAAK,CAACO,UAAU,CAAEL,CAAC,IAAI,CAAC,GAAG,CAAE,CAAC;IAE/C,IAAII,QAAQ,GAAG,IAAI,EAAE;MACnB,MAAM,IAAIE,KAAK,CACb,4GACF,CAAC;IACH;IAEAL,KAAK,GAAIA,KAAK,IAAI,CAAC,GAAIG,QAAQ;EACjC;EAEA,OAAOF,MAAM;AACf;;AAEA;AACA;AACA;AACA,SAASK,IAAIA,CAACT,KAAa,EAAU;EACnC,IAAIE,CAAC,GAAG,CAAC;EACT,IAAIQ,EAAE,GAAG,CAAC;EACV,IAAIC,EAAE,GAAG,CAAC;EACV,IAAIC,MAAuB;EAC3B,IAAIR,MAAM,GAAG,EAAE;EAEf,MAAMS,GAAG,GAAGb,KAAK,CAACc,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;EAEtC,IAAID,GAAG,CAACE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;IACxB,MAAM,IAAIP,KAAK,CACb,qFACF,CAAC;EACH;EAEA,KACEE,EAAE,GAAG,CAAC,EAAEC,EAAE,GAAG,CAAC,EAAET,CAAC,GAAG,CAAC,EACpBU,MAAM,GAAGC,GAAG,CAACR,MAAM,CAACH,CAAC,EAAE,CAAC,EACzB,CAACU,MAAM,KAAMD,EAAE,GAAGD,EAAE,GAAG,CAAC,GAAGC,EAAE,GAAG,EAAE,GAAIC,MAAiB,GAAGA,MAAM,EAAGF,EAAE,EAAE,GAAG,CAAC,CAAC,GACvEN,MAAM,IAAIY,MAAM,CAACC,YAAY,CAAC,GAAG,GAAIN,EAAE,KAAM,CAAC,CAAC,GAAGD,EAAE,GAAI,CAAC,CAAE,CAAC,GAC7D,CAAC,EACL;IACAE,MAAM,GAAGd,KAAK,CAACoB,OAAO,CAACN,MAAM,CAAC;EAChC;EAEA,OAAOR,MAAM;AACf;AAOA;AACA;AACA;AACA,SAASe,QAAQA,CAACC,IAAqC,EAAyB;EAC9E,IAAIA,IAAI,YAAYC,IAAI,EAAE;IACxB,MAAMC,UAAU,GAAG,IAAIC,UAAU,CAAC,CAAC;IACnC,MAAM;MAAEC,OAAO;MAAEC,MAAM;MAAEC;IAAQ,CAAC,GAAG7B,YAAY,CAAe,CAAC;IAEjEyB,UAAU,CAACK,aAAa,CAACP,IAAI,CAAC;IAE9BE,UAAU,CAACM,SAAS,GAAG,MAAM;MAC3B,IAAIN,UAAU,EAAEO,MAAM,EAAE;QACtBL,OAAO,GAAG;UAAEM,MAAM,EAAER,UAAU,CAACO,MAAM;UAAEE,MAAM,EAAE;QAAW,CAAC,CAAC;MAC9D;IACF,CAAC;IAEDT,UAAU,CAACU,OAAO,GAAGC,KAAK,IAAI;MAC5BX,UAAU,EAAEY,KAAK,CAAC,CAAC;MACnBT,MAAM,GAAGQ,KAAK,CAAC;IACjB,CAAC;IAED,OAAOP,OAAO;EAChB;EAEA,IAAIN,IAAI,YAAYe,WAAW,IAAIf,IAAI,YAAYgB,UAAU,EAAE;IAC7D,OAAOC,OAAO,CAACb,OAAO,CAAC;MACrBM,MAAM,EAAElC,cAAc,CAACwB,IAAI,CAAC;MAC5BW,MAAM,EAAE;IACV,CAAC,CAAC;EACJ;EAEA,MAAM,IAAIvB,KAAK,CAAC,yDAAyD,CAAC;AAC5E;AAEA,eAAe;EACbT,IAAI;EACJU,IAAI;EACJU;AACF,CAAC","ignoreList":[]}
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 isBase64 = dataUrlString.includes(';base64');
30
- let [mediaType, base64String] = dataUrlString.split(',');
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 = mediaType.replace('data:', '').replace(';base64', '');
38
- if (base64String && base64String.includes('%')) {
39
- base64String = decodeURIComponent(base64String);
40
- }
41
- if (!isBase64) {
42
- base64String = Base64.btoa(base64String);
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","isBase64","includes","mediaType","base64String","split","undefined","replace","decodeURIComponent","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":[]}
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
- const hasValue = memoryStorage.has(key);
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 async function setItem(key, value) {
61
- return await asyncStorage.setItem(prefix + key, value);
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 async function getItem(key) {
66
- return await asyncStorage.getItem(prefix + key);
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 async function removeItem(key) {
71
- return await asyncStorage.removeItem(prefix + key);
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","hasValue","has","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,MAAMM,QAAQ,GAAGX,aAAa,CAACY,GAAG,CAACP,GAAG,CAAC;IACvC,IAAIM,QAAQ,EAAE;MACZ,OAAOH,OAAO,CAACC,OAAO,CAACT,aAAa,CAACa,GAAG,CAACR,GAAG,CAAC,IAAI,IAAI,CAAC;IACxD;IACA,OAAOG,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAC9B,CAAC;EACDK,UAAUA,CAACT,GAAW,EAAiB;IACrCL,aAAa,CAACe,MAAM,CAACV,GAAG,CAAC;IACzB,OAAOG,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;AACF,CAAC;AAED,IAAIO,YAAgC,GAAGb,kBAAkB;;AAEzD;AACA,OAAO,eAAec,kCAAkCA,CAAA,EAAgC;EACtF,OAAOD,YAAY;AACrB;;AAEA;AACA,OAAO,SAASE,kCAAkCA,CAChDC,oBAAyC,EACnC;EACNH,YAAY,GAAGG,oBAAoB,IAAIhB,kBAAkB;AAC3D;;AAEA;AACA,OAAO,SAASiB,eAAeA,CAAA,EAAY;EACzC,OAAOJ,YAAY,KAAKb,kBAAkB;AAC5C;;AAEA;AACA,OAAO,eAAeC,OAAOA,CAACC,GAAW,EAAEC,KAAa,EAAiB;EACvE,OAAO,MAAMU,YAAY,CAACZ,OAAO,CAACF,MAAM,GAAGG,GAAG,EAAEC,KAAK,CAAC;AACxD;;AAEA;AACA,OAAO,eAAeI,OAAOA,CAACL,GAAW,EAA0B;EACjE,OAAO,MAAMW,YAAY,CAACN,OAAO,CAACR,MAAM,GAAGG,GAAG,CAAC;AACjD;;AAEA;AACA,OAAO,eAAeS,UAAUA,CAACT,GAAW,EAAiB;EAC3D,OAAO,MAAMW,YAAY,CAACF,UAAU,CAACZ,MAAM,GAAGG,GAAG,CAAC;AACpD","ignoreList":[]}
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 = defaultLogLevel;
146
+ _logLevel = currentLogLevel;
112
147
  _logHandler = defaultLogHandler;
113
- _userLogHandler = null;
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
- instances.forEach(inst => {
202
- inst.setLogLevel(level);
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
- let customLogLevel = null;
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","instances","Logger","_logLevel","_logHandler","_userLogHandler","constructor","push","val","TypeError","setLogLevel","logHandler","userLogHandler","log","level","forEach","inst","setLogLevelInternal","setUserLogHandler","logCallback","options","customLogLevel","_instance","message","map","arg","toString","JSON","stringify","_ignored","filter","join","toLowerCase","type"],"sourceRoot":"../../../lib","sources":["internal/logger.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,QAAQ,0BAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;;AASpB;AACA,MAAMC,eAAe,GAAIC,GAAoB,IAA6B;EACxE,MAAMC,QAAgC,GAAG,CAAC,CAAC;EAC3C,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,GAAG,CAAC,EAAE;IAC9C,IAAI,OAAOG,KAAK,KAAK,QAAQ,EAAE;MAC7BF,QAAQ,CAACE,KAAK,CAAC,GAAGD,GAAG;IACvB;EACF;EACA,OAAOD,QAAQ;AACjB,CAAC;AAED,MAAMK,gBAAgB,GAAGP,eAAe,CAACD,QAAQ,CAAC;AAMlD,MAAMS,iBAAoC,GAAG;EAC3CC,KAAK,EAAEV,QAAQ,CAACW,KAAK;EACrBC,OAAO,EAAEZ,QAAQ,CAACa,OAAO;EACzBC,IAAI,EAAEd,QAAQ,CAACe,IAAI;EACnBC,IAAI,EAAEhB,QAAQ,CAACiB,IAAI;EACnBC,KAAK,EAAElB,QAAQ,CAACmB,KAAK;EACrBC,MAAM,EAAEpB,QAAQ,CAACqB;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,aAAkE,GAAG;EACzE,CAACtB,QAAQ,CAACW,KAAK,GAAG,KAAK;EACvB,CAACX,QAAQ,CAACa,OAAO,GAAG,KAAK;EACzB,CAACb,QAAQ,CAACe,IAAI,GAAG,MAAM;EACvB,CAACf,QAAQ,CAACiB,IAAI,GAAG,MAAM;EACvB,CAACjB,QAAQ,CAACmB,KAAK,GAAG,OAAO;EACzB,CAACnB,QAAQ,CAACqB,MAAM,GAAG,OAAO,CAAE;AAC9B,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA,MAAME,iBAA6B,GAAGA,CAACC,QAAQ,EAAEC,OAAO,EAAE,GAAGC,IAAI,KAAK;EACpE,IAAID,OAAO,GAAGD,QAAQ,CAACG,QAAQ,EAAE;IAC/B;EACF;EACA,MAAMC,GAAG,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EACpC,MAAMC,MAAM,GAAGT,aAAa,CAACG,OAAO,CAAC;EACrC,IAAIM,MAAM,EAAE;IACV;IACCC,OAAO,CAASD,MAAM,CAAC,CAAC,IAAIH,GAAG,MAAMJ,QAAQ,CAACS,IAAI,GAAG,EAAE,GAAGP,IAAI,CAAC;EAClE,CAAC,MAAM;IACL,MAAM,IAAIQ,KAAK,CAAC,8DAA8DT,OAAO,GAAG,CAAC;EAC3F;AACF,CAAC;AAED,MAAMU,eAAe,GAAGnC,QAAQ,CAACe,IAAI;;AAErC;AACA;AACA;AACA,OAAO,MAAMqB,SAAmB,GAAG,EAAE;;AAErC;AACA;AACA;AACA,OAAO,MAAMC,MAAM,CAAC;EAEVC,SAAS,GAAaH,eAAe;EACrCI,WAAW,GAAehB,iBAAiB;EAC3CiB,eAAe,GAAsB,IAAI;;EAEjD;AACF;AACA;AACA;AACA;AACA;EACEC,WAAWA,CAACR,IAAY,EAAE;IACxB;AACJ;AACA;IACI,IAAI,CAACA,IAAI,GAAGA,IAAI;IAChBG,SAAS,CAACM,IAAI,CAAC,IAAI,CAAC;EACtB;;EAEA;AACF;AACA;EACE,IAAIf,QAAQA,CAAA,EAAa;IACvB,OAAO,IAAI,CAACW,SAAS;EACvB;EAEA,IAAIX,QAAQA,CAACgB,GAAa,EAAE;IAC1B,IAAI,EAAEA,GAAG,IAAI3C,QAAQ,CAAC,EAAE;MACtB,MAAM,IAAI4C,SAAS,CAAC,kBAAkBD,GAAG,4BAA4B,CAAC;IACxE;IACA,IAAI,CAACL,SAAS,GAAGK,GAAG;EACtB;;EAEA;EACAE,WAAWA,CAACF,GAA8B,EAAQ;IAChD,IAAI,CAACL,SAAS,GAAG,OAAOK,GAAG,KAAK,QAAQ,GAAGlC,iBAAiB,CAACkC,GAAG,CAAC,GAAGA,GAAG;EACzE;;EAEA;AACF;AACA;AACA;EACE,IAAIG,UAAUA,CAAA,EAAe;IAC3B,OAAO,IAAI,CAACP,WAAW;EACzB;EAEA,IAAIO,UAAUA,CAACH,GAAe,EAAE;IAC9B,IAAI,OAAOA,GAAG,KAAK,UAAU,EAAE;MAC7B,MAAM,IAAIC,SAAS,CAAC,mDAAmD,CAAC;IAC1E;IACA,IAAI,CAACL,WAAW,GAAGI,GAAG;EACxB;;EAEA;AACF;AACA;EACE,IAAII,cAAcA,CAAA,EAAsB;IACtC,OAAO,IAAI,CAACP,eAAe;EAC7B;EAEA,IAAIO,cAAcA,CAACJ,GAAsB,EAAE;IACzC,IAAI,CAACH,eAAe,GAAGG,GAAG;EAC5B;;EAEA;AACF;AACA;;EAEEjC,KAAKA,CAAC,GAAGgB,IAAe,EAAQ;IAC9B,IAAI,CAACc,eAAe,IAAI,IAAI,CAACA,eAAe,CAAC,IAAI,EAAExC,QAAQ,CAACW,KAAK,EAAE,GAAGe,IAAI,CAAC;IAC3E,IAAI,CAACa,WAAW,CAAC,IAAI,EAAEvC,QAAQ,CAACW,KAAK,EAAE,GAAGe,IAAI,CAAC;EACjD;EAEAsB,GAAGA,CAAC,GAAGtB,IAAe,EAAQ;IAC5B,IAAI,CAACc,eAAe,IAAI,IAAI,CAACA,eAAe,CAAC,IAAI,EAAExC,QAAQ,CAACa,OAAO,EAAE,GAAGa,IAAI,CAAC;IAC7E,IAAI,CAACa,WAAW,CAAC,IAAI,EAAEvC,QAAQ,CAACa,OAAO,EAAE,GAAGa,IAAI,CAAC;EACnD;EAEAZ,IAAIA,CAAC,GAAGY,IAAe,EAAQ;IAC7B,IAAI,CAACc,eAAe,IAAI,IAAI,CAACA,eAAe,CAAC,IAAI,EAAExC,QAAQ,CAACe,IAAI,EAAE,GAAGW,IAAI,CAAC;IAC1E,IAAI,CAACa,WAAW,CAAC,IAAI,EAAEvC,QAAQ,CAACe,IAAI,EAAE,GAAGW,IAAI,CAAC;EAChD;EAEAV,IAAIA,CAAC,GAAGU,IAAe,EAAQ;IAC7B,IAAI,CAACc,eAAe,IAAI,IAAI,CAACA,eAAe,CAAC,IAAI,EAAExC,QAAQ,CAACiB,IAAI,EAAE,GAAGS,IAAI,CAAC;IAC1E,IAAI,CAACa,WAAW,CAAC,IAAI,EAAEvC,QAAQ,CAACiB,IAAI,EAAE,GAAGS,IAAI,CAAC;EAChD;EAEAR,KAAKA,CAAC,GAAGQ,IAAe,EAAQ;IAC9B,IAAI,CAACc,eAAe,IAAI,IAAI,CAACA,eAAe,CAAC,IAAI,EAAExC,QAAQ,CAACmB,KAAK,EAAE,GAAGO,IAAI,CAAC;IAC3E,IAAI,CAACa,WAAW,CAAC,IAAI,EAAEvC,QAAQ,CAACmB,KAAK,EAAE,GAAGO,IAAI,CAAC;EACjD;AACF;;AAEA;AACA;AACA;AACA,OAAO,SAASmB,WAAWA,CAACI,KAAgC,EAAQ;EAClEb,SAAS,CAACc,OAAO,CAACC,IAAI,IAAI;IACxBA,IAAI,CAACN,WAAW,CAACI,KAAK,CAAC;EACzB,CAAC,CAAC;AACJ;;AAEA;AACA,OAAO,MAAMG,mBAAmB,GAAGP,WAAW;;AAE9C;AACA;AACA;AACA,OAAO,SAASQ,iBAAiBA,CAACC,WAA+B,EAAEC,OAAoB,EAAQ;EAC7F,KAAK,MAAM/B,QAAQ,IAAIY,SAAS,EAAE;IAChC,IAAIoB,cAA+B,GAAG,IAAI;IAC1C,IAAID,OAAO,EAAEN,KAAK,EAAE;MAClBO,cAAc,GAAG/C,iBAAiB,CAAC8C,OAAO,CAACN,KAAK,CAAC;IACnD;IACA,IAAIK,WAAW,KAAK,IAAI,EAAE;MACxB9B,QAAQ,CAACuB,cAAc,GAAG,IAAI;IAChC,CAAC,MAAM;MACLvB,QAAQ,CAACuB,cAAc,GAAG,CAACU,SAAS,EAAER,KAAK,EAAE,GAAGvB,IAAI,KAAK;QACvD,MAAMgC,OAAO,GAAGhC,IAAI,CACjBiC,GAAG,CAACC,GAAG,IAAI;UACV,IAAIA,GAAG,IAAI,IAAI,EAAE;YACf,OAAO,IAAI;UACb,CAAC,MAAM,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;YAClC,OAAOA,GAAG;UACZ,CAAC,MAAM,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAI,OAAOA,GAAG,KAAK,SAAS,EAAE;YAC9D,OAAOA,GAAG,CAACC,QAAQ,CAAC,CAAC;UACvB,CAAC,MAAM,IAAID,GAAG,YAAY1B,KAAK,EAAE;YAC/B,OAAO0B,GAAG,CAACF,OAAO;UACpB,CAAC,MAAM;YACL,IAAI;cACF,OAAOI,IAAI,CAACC,SAAS,CAACH,GAAG,CAAC;YAC5B,CAAC,CAAC,OAAOI,QAAQ,EAAE;cACjB,OAAO,IAAI;YACb;UACF;QACF,CAAC,CAAC,CACDC,MAAM,CAACL,GAAG,IAAIA,GAAG,CAAC,CAClBM,IAAI,CAAC,GAAG,CAAC;QACZ,IAAIjB,KAAK,KAAKO,cAAc,IAAIC,SAAS,CAAC9B,QAAQ,CAAC,EAAE;UACnD2B,WAAW,CAAC;YACVL,KAAK,EAAEzC,gBAAgB,CAACyC,KAAK,CAAC,CAAEkB,WAAW,CAAC,CAAmB;YAC/DT,OAAO;YACPhC,IAAI;YACJ0C,IAAI,EAAEX,SAAS,CAACxB;UAClB,CAAC,CAAC;QACJ;MACF,CAAC;IACH;EACF;AACF","ignoreList":[]}
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 = new Proxy(nativeModule, {
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","Proxy","ownKeys","target","push","_","name","prop","args","console","debug","String","JSON","stringify","result","apply","then","res","err","setReactNativeModule"],"sourceRoot":"../../../lib","sources":["internal/nativeModuleAndroidIos.ts"],"mappings":"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","ignoreList":[]}
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":[]}