react-native 0.76.0-rc.2 → 0.76.0-rc.3

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.
@@ -64,6 +64,9 @@ NS_ASSUME_NONNULL_BEGIN
64
64
  @property (nonatomic, strong, nullable) NSDictionary *initialProps;
65
65
  @property (nonatomic, strong, nonnull) RCTRootViewFactory *rootViewFactory;
66
66
 
67
+ /// If `automaticallyLoadReactNativeWindow` is set to `true`, the React Native window will be loaded automatically.
68
+ @property (nonatomic, assign) BOOL automaticallyLoadReactNativeWindow;
69
+
67
70
  @property (nonatomic, nullable) RCTSurfacePresenterBridgeAdapter *bridgeAdapter;
68
71
 
69
72
  /**
@@ -12,6 +12,7 @@
12
12
  #import <React/RCTSurfacePresenterBridgeAdapter.h>
13
13
  #import <React/RCTUtils.h>
14
14
  #import <ReactCommon/RCTHost.h>
15
+ #include <UIKit/UIKit.h>
15
16
  #import <objc/runtime.h>
16
17
  #import <react/featureflags/ReactNativeFeatureFlags.h>
17
18
  #import <react/featureflags/ReactNativeFeatureFlagsDefaults.h>
@@ -38,6 +39,14 @@
38
39
 
39
40
  @implementation RCTAppDelegate
40
41
 
42
+ - (instancetype)init
43
+ {
44
+ if (self = [super init]) {
45
+ _automaticallyLoadReactNativeWindow = YES;
46
+ }
47
+ return self;
48
+ }
49
+
41
50
  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
42
51
  {
43
52
  [self _setUpFeatureFlags];
@@ -47,23 +56,28 @@
47
56
  RCTAppSetupPrepareApp(application, self.turboModuleEnabled);
48
57
 
49
58
  self.rootViewFactory = [self createRCTRootViewFactory];
59
+ if (self.newArchEnabled || self.fabricEnabled) {
60
+ [RCTComponentViewFactory currentComponentViewFactory].thirdPartyFabricComponentsProvider = self;
61
+ }
50
62
 
63
+ if (self.automaticallyLoadReactNativeWindow) {
64
+ [self loadReactNativeWindow:launchOptions];
65
+ }
66
+
67
+ return YES;
68
+ }
69
+
70
+ - (void)loadReactNativeWindow:(NSDictionary *)launchOptions
71
+ {
51
72
  UIView *rootView = [self.rootViewFactory viewWithModuleName:self.moduleName
52
73
  initialProperties:self.initialProps
53
74
  launchOptions:launchOptions];
54
75
 
55
- if (self.newArchEnabled || self.fabricEnabled) {
56
- [RCTComponentViewFactory currentComponentViewFactory].thirdPartyFabricComponentsProvider = self;
57
- }
58
-
59
76
  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
60
77
  UIViewController *rootViewController = [self createRootViewController];
61
78
  [self setRootView:rootView toRootViewController:rootViewController];
62
- self.window.rootViewController = rootViewController;
63
- self.window.windowScene.delegate = self;
64
- [self.window makeKeyAndVisible];
65
-
66
- return YES;
79
+ _window.rootViewController = rootViewController;
80
+ [_window makeKeyAndVisible];
67
81
  }
68
82
 
69
83
  - (void)applicationDidEnterBackground:(UIApplication *)application
@@ -72,9 +72,10 @@ RCT_EXPORT_METHOD(readAsDataURL
72
72
  nil);
73
73
  } else {
74
74
  NSString *type = [RCTConvert NSString:blob[@"type"]];
75
- NSString *text = [NSString stringWithFormat:@"data:%@;base64,%@",
76
- type != nil && [type length] > 0 ? type : @"application/octet-stream",
77
- [data base64EncodedStringWithOptions:0]];
75
+ NSString *text = [NSString
76
+ stringWithFormat:@"data:%@;base64,%@",
77
+ ![type isEqual:[NSNull null]] && [type length] > 0 ? type : @"application/octet-stream",
78
+ [data base64EncodedStringWithOptions:0]];
78
79
 
79
80
  resolve(text);
80
81
  }
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {ViewStyleProp} from '../../StyleSheet/StyleSheet';
12
+ import type {DimensionsPayload} from '../../Utilities/NativeDeviceInfo';
12
13
  import type {
13
14
  ViewLayout,
14
15
  ViewLayoutEvent,
@@ -18,6 +19,7 @@ import type {KeyboardEvent, KeyboardMetrics} from './Keyboard';
18
19
 
19
20
  import LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';
20
21
  import StyleSheet from '../../StyleSheet/StyleSheet';
22
+ import Dimensions from '../../Utilities/Dimensions';
21
23
  import Platform from '../../Utilities/Platform';
22
24
  import {type EventSubscription} from '../../vendor/emitter/EventEmitter';
23
25
  import AccessibilityInfo from '../AccessibilityInfo/AccessibilityInfo';
@@ -66,6 +68,7 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
66
68
  viewRef: {current: React.ElementRef<typeof View> | null, ...};
67
69
  _initialFrameHeight: number = 0;
68
70
  _bottom: number = 0;
71
+ _windowWidth: number = Dimensions.get('window').width;
69
72
 
70
73
  constructor(props: Props) {
71
74
  super(props);
@@ -130,6 +133,10 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
130
133
  }
131
134
  };
132
135
 
136
+ _onDimensionsChange = ({window}: DimensionsPayload) => {
137
+ this._windowWidth = window?.width ?? 0;
138
+ };
139
+
133
140
  // Avoid unnecessary renders if the KeyboardAvoidingView is disabled.
134
141
  _setBottom = (value: number) => {
135
142
  const enabled = this.props.enabled ?? true;
@@ -145,6 +152,15 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
145
152
  return;
146
153
  }
147
154
 
155
+ if (
156
+ Platform.OS === 'ios' &&
157
+ this._windowWidth !== this._keyboardEvent.endCoordinates.width
158
+ ) {
159
+ // The keyboard is not the standard bottom-of-the-screen keyboard. For example, floating keyboard on iPadOS.
160
+ this._setBottom(0);
161
+ return;
162
+ }
163
+
148
164
  const {duration, easing, endCoordinates} = this._keyboardEvent;
149
165
  const height = await this._relativeKeyboardHeight(endCoordinates);
150
166
 
@@ -178,6 +194,7 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
178
194
  if (Platform.OS === 'ios') {
179
195
  this._subscriptions = [
180
196
  Keyboard.addListener('keyboardWillChangeFrame', this._onKeyboardChange),
197
+ Dimensions.addEventListener('change', this._onDimensionsChange),
181
198
  ];
182
199
  } else {
183
200
  this._subscriptions = [
@@ -17,7 +17,7 @@ const version: $ReadOnly<{
17
17
  major: 0,
18
18
  minor: 76,
19
19
  patch: 0,
20
- prerelease: 'rc.2',
20
+ prerelease: 'rc.3',
21
21
  };
22
22
 
23
23
  module.exports = {version};
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(76),
26
26
  RCTVersionPatch: @(0),
27
- RCTVersionPrerelease: @"rc.2",
27
+ RCTVersionPrerelease: @"rc.3",
28
28
  };
29
29
  });
30
30
  return __rnVersion;
@@ -49,6 +49,11 @@ using namespace facebook::react;
49
49
  [_refreshControl addTarget:self
50
50
  action:@selector(handleUIControlEventValueChanged)
51
51
  forControlEvents:UIControlEventValueChanged];
52
+
53
+ const auto &concreteProps = static_cast<const PullToRefreshViewProps &>(*_props);
54
+
55
+ _refreshControl.tintColor = RCTUIColorFromSharedColor(concreteProps.tintColor);
56
+ [self _updateProgressViewOffset:concreteProps.progressViewOffset];
52
57
  }
53
58
 
54
59
  #pragma mark - RCTComponentViewProtocol
@@ -78,6 +83,14 @@ using namespace facebook::react;
78
83
  }
79
84
  }
80
85
 
86
+ if (newConcreteProps.tintColor != oldConcreteProps.tintColor) {
87
+ _refreshControl.tintColor = RCTUIColorFromSharedColor(newConcreteProps.tintColor);
88
+ }
89
+
90
+ if (newConcreteProps.progressViewOffset != oldConcreteProps.progressViewOffset) {
91
+ [self _updateProgressViewOffset:newConcreteProps.progressViewOffset];
92
+ }
93
+
81
94
  BOOL needsUpdateTitle = NO;
82
95
 
83
96
  if (newConcreteProps.title != oldConcreteProps.title) {
@@ -102,6 +115,15 @@ using namespace facebook::react;
102
115
  static_cast<const PullToRefreshViewEventEmitter &>(*_eventEmitter).onRefresh({});
103
116
  }
104
117
 
118
+ - (void)_updateProgressViewOffset:(Float)progressViewOffset
119
+ {
120
+ _refreshControl.bounds = CGRectMake(
121
+ _refreshControl.bounds.origin.x,
122
+ -progressViewOffset,
123
+ _refreshControl.bounds.size.width,
124
+ _refreshControl.bounds.size.height);
125
+ }
126
+
105
127
  - (void)_updateTitle
106
128
  {
107
129
  const auto &concreteProps = static_cast<const PullToRefreshViewProps &>(*_props);
@@ -3314,6 +3314,15 @@ public final class com/facebook/react/modules/core/TimingModule : com/facebook/f
3314
3314
  public final class com/facebook/react/modules/core/TimingModule$Companion {
3315
3315
  }
3316
3316
 
3317
+ public final class com/facebook/react/modules/debug/DevMenuModule : com/facebook/fbreact/specs/NativeDevMenuSpec {
3318
+ public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;Lcom/facebook/react/devsupport/interfaces/DevSupportManager;)V
3319
+ public fun debugRemotely (Z)V
3320
+ public fun reload ()V
3321
+ public fun setHotLoadingEnabled (Z)V
3322
+ public fun setProfilingEnabled (Z)V
3323
+ public fun show ()V
3324
+ }
3325
+
3317
3326
  public final class com/facebook/react/modules/debug/DevSettingsModule : com/facebook/fbreact/specs/NativeDevSettingsSpec {
3318
3327
  public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;Lcom/facebook/react/devsupport/interfaces/DevSupportManager;)V
3319
3328
  public fun addListener (Ljava/lang/String;)V
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.76.0-rc.2
1
+ VERSION_NAME=0.76.0-rc.3
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
 
4
4
  android.useAndroidX=true
@@ -27,6 +27,7 @@ import com.facebook.react.modules.core.DeviceEventManagerModule;
27
27
  import com.facebook.react.modules.core.ExceptionsManagerModule;
28
28
  import com.facebook.react.modules.core.HeadlessJsTaskSupportModule;
29
29
  import com.facebook.react.modules.core.TimingModule;
30
+ import com.facebook.react.modules.debug.DevMenuModule;
30
31
  import com.facebook.react.modules.debug.DevSettingsModule;
31
32
  import com.facebook.react.modules.debug.SourceCodeModule;
32
33
  import com.facebook.react.modules.deviceinfo.DeviceInfoModule;
@@ -49,6 +50,7 @@ import java.util.Map;
49
50
  AndroidInfoModule.class,
50
51
  DeviceEventManagerModule.class,
51
52
  DeviceInfoModule.class,
53
+ DevMenuModule.class,
52
54
  DevSettingsModule.class,
53
55
  ExceptionsManagerModule.class,
54
56
  LogBoxModule.class,
@@ -108,6 +110,7 @@ class CoreModulesPackage extends BaseReactPackage implements ReactPackageLogger
108
110
  AndroidInfoModule.class,
109
111
  DeviceEventManagerModule.class,
110
112
  DeviceInfoModule.class,
113
+ DevMenuModule.class,
111
114
  DevSettingsModule.class,
112
115
  ExceptionsManagerModule.class,
113
116
  LogBoxModule.class,
@@ -142,6 +145,8 @@ class CoreModulesPackage extends BaseReactPackage implements ReactPackageLogger
142
145
  return new AndroidInfoModule(reactContext);
143
146
  case DeviceEventManagerModule.NAME:
144
147
  return new DeviceEventManagerModule(reactContext, mHardwareBackBtnHandler);
148
+ case DevMenuModule.NAME:
149
+ return new DevMenuModule(reactContext, mReactInstanceManager.getDevSupportManager());
145
150
  case DevSettingsModule.NAME:
146
151
  return new DevSettingsModule(reactContext, mReactInstanceManager.getDevSupportManager());
147
152
  case ExceptionsManagerModule.NAME:
@@ -289,10 +289,7 @@ public class ReactDelegate {
289
289
  // With Bridgeless enabled, create and start the surface
290
290
  if (ReactFeatureFlags.enableBridgelessArchitecture) {
291
291
  if (mReactSurface == null) {
292
- // Create a ReactSurface
293
292
  mReactSurface = mReactHost.createSurface(mActivity, appKey, mLaunchOptions);
294
- // Set main Activity's content view
295
- mActivity.setContentView(mReactSurface.getView());
296
293
  }
297
294
  mReactSurface.start();
298
295
  } else {
@@ -17,6 +17,7 @@ import android.view.ViewGroup;
17
17
  import androidx.annotation.NonNull;
18
18
  import androidx.annotation.Nullable;
19
19
  import androidx.fragment.app.Fragment;
20
+ import com.facebook.react.config.ReactFeatureFlags;
20
21
  import com.facebook.react.modules.core.PermissionAwareActivity;
21
22
  import com.facebook.react.modules.core.PermissionListener;
22
23
 
@@ -69,9 +70,15 @@ public class ReactFragment extends Fragment implements PermissionAwareActivity {
69
70
  if (mainComponentName == null) {
70
71
  throw new IllegalStateException("Cannot loadApp if component name is null");
71
72
  }
72
- mReactDelegate =
73
- new ReactDelegate(
74
- getActivity(), getReactNativeHost(), mainComponentName, launchOptions, fabricEnabled);
73
+ if (ReactFeatureFlags.enableBridgelessArchitecture) {
74
+ mReactDelegate =
75
+ new ReactDelegate(
76
+ getActivity(), getReactHost(), mainComponentName, launchOptions);
77
+ } else {
78
+ mReactDelegate =
79
+ new ReactDelegate(
80
+ getActivity(), getReactNativeHost(), mainComponentName, launchOptions, fabricEnabled);
81
+ }
75
82
  }
76
83
 
77
84
  /**
@@ -81,8 +88,34 @@ public class ReactFragment extends Fragment implements PermissionAwareActivity {
81
88
  * implement {@code ReactApplication} or you simply have a different mechanism for storing a
82
89
  * {@code ReactNativeHost}, e.g. as a static field somewhere.
83
90
  */
91
+ @Nullable
84
92
  protected ReactNativeHost getReactNativeHost() {
85
- return ((ReactApplication) getActivity().getApplication()).getReactNativeHost();
93
+ ReactApplication application = ((ReactApplication) getActivity().getApplication());
94
+ if (application != null) {
95
+ return application.getReactNativeHost();
96
+ } else {
97
+ return null;
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Get the {@link ReactHost} used by this app. By default, assumes {@link
103
+ * Activity#getApplication()} is an instance of {@link ReactApplication} and calls {@link
104
+ * ReactApplication#getReactHost()}. Override this method if your application class does not
105
+ * implement {@code ReactApplication} or you simply have a different mechanism for storing a
106
+ * {@code ReactHost}, e.g. as a static field somewhere.
107
+ *
108
+ * <p>If you're using Old Architecture/Bridge Mode, this method should return null as {@link
109
+ * ReactHost} is a Bridgeless-only concept.
110
+ */
111
+ @Nullable
112
+ protected ReactHost getReactHost() {
113
+ ReactApplication application = ((ReactApplication) getActivity().getApplication());
114
+ if (application != null) {
115
+ return application.getReactHost();
116
+ } else {
117
+ return null;
118
+ }
86
119
  }
87
120
 
88
121
  protected ReactDelegate getReactDelegate() {
@@ -0,0 +1,46 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ package com.facebook.react.modules.debug
9
+
10
+ import com.facebook.fbreact.specs.NativeDevMenuSpec
11
+ import com.facebook.react.bridge.ReactApplicationContext
12
+ import com.facebook.react.bridge.UiThreadUtil
13
+ import com.facebook.react.devsupport.interfaces.DevSupportManager
14
+ import com.facebook.react.module.annotations.ReactModule
15
+
16
+ /** Module that exposes the DevMenu to JS so that it can be used to programmatically open it. */
17
+ @ReactModule(name = NativeDevMenuSpec.NAME)
18
+ public class DevMenuModule(
19
+ reactContext: ReactApplicationContext?,
20
+ private val devSupportManager: DevSupportManager
21
+ ) : NativeDevMenuSpec(reactContext) {
22
+
23
+ override fun show() {
24
+ if (devSupportManager.devSupportEnabled) {
25
+ devSupportManager.showDevOptionsDialog()
26
+ }
27
+ }
28
+
29
+ override fun reload() {
30
+ if (devSupportManager.devSupportEnabled) {
31
+ UiThreadUtil.runOnUiThread { devSupportManager.handleReloadJS() }
32
+ }
33
+ }
34
+
35
+ override fun debugRemotely(enableDebug: Boolean) {
36
+ devSupportManager.setRemoteJSDebugEnabled(enableDebug)
37
+ }
38
+
39
+ override fun setProfilingEnabled(enabled: Boolean) {
40
+ // iOS only
41
+ }
42
+
43
+ override fun setHotLoadingEnabled(enabled: Boolean) {
44
+ devSupportManager.setHotModuleReplacementEnabled(enabled)
45
+ }
46
+ }
@@ -18,5 +18,5 @@ public class ReactNativeVersion {
18
18
  "major", 0,
19
19
  "minor", 76,
20
20
  "patch", 0,
21
- "prerelease", "rc.2");
21
+ "prerelease", "rc.3");
22
22
  }
@@ -23,6 +23,7 @@ import com.facebook.react.module.model.ReactModuleInfoProvider;
23
23
  import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
24
24
  import com.facebook.react.modules.core.DeviceEventManagerModule;
25
25
  import com.facebook.react.modules.core.ExceptionsManagerModule;
26
+ import com.facebook.react.modules.debug.DevMenuModule;
26
27
  import com.facebook.react.modules.debug.DevSettingsModule;
27
28
  import com.facebook.react.modules.debug.SourceCodeModule;
28
29
  import com.facebook.react.modules.deviceinfo.DeviceInfoModule;
@@ -35,6 +36,7 @@ import java.util.Map;
35
36
  nativeModules = {
36
37
  AndroidInfoModule.class,
37
38
  DeviceInfoModule.class,
39
+ DevMenuModule.class,
38
40
  DevSettingsModule.class,
39
41
  SourceCodeModule.class,
40
42
  LogBoxModule.class,
@@ -61,6 +63,8 @@ class CoreReactPackage extends BaseReactPackage {
61
63
  return new DeviceInfoModule(reactContext);
62
64
  case SourceCodeModule.NAME:
63
65
  return new SourceCodeModule(reactContext);
66
+ case DevMenuModule.NAME:
67
+ return new DevMenuModule(reactContext, mDevSupportManager);
64
68
  case DevSettingsModule.NAME:
65
69
  return new DevSettingsModule(reactContext, mDevSupportManager);
66
70
  case DeviceEventManagerModule.NAME:
@@ -108,6 +112,7 @@ class CoreReactPackage extends BaseReactPackage {
108
112
  AndroidInfoModule.class,
109
113
  DeviceInfoModule.class,
110
114
  SourceCodeModule.class,
115
+ DevMenuModule.class,
111
116
  DevSettingsModule.class,
112
117
  DeviceEventManagerModule.class,
113
118
  LogBoxModule.class,
@@ -446,7 +446,7 @@ public class TextLayoutManager {
446
446
  ? paragraphAttributes.getBoolean(PA_KEY_INCLUDE_FONT_PADDING)
447
447
  : DEFAULT_INCLUDE_FONT_PADDING;
448
448
  int hyphenationFrequency =
449
- TextAttributeProps.getTextBreakStrategy(
449
+ TextAttributeProps.getHyphenationFrequency(
450
450
  paragraphAttributes.getString(PA_KEY_HYPHENATION_FREQUENCY));
451
451
  boolean adjustFontSizeToFit =
452
452
  paragraphAttributes.contains(PA_KEY_ADJUST_FONT_SIZE_TO_FIT)
@@ -18,7 +18,7 @@ constexpr struct {
18
18
  int32_t Major = 0;
19
19
  int32_t Minor = 76;
20
20
  int32_t Patch = 0;
21
- std::string_view Prerelease = "rc.2";
21
+ std::string_view Prerelease = "rc.3";
22
22
  } ReactNativeVersion;
23
23
 
24
24
  } // namespace facebook::react
package/cli.js CHANGED
@@ -15,6 +15,7 @@ const chalk = require('chalk');
15
15
  const {get} = require('https');
16
16
  const semver = require('semver');
17
17
  const {URL} = require('url');
18
+ const {spawn} = require('child_process');
18
19
 
19
20
  const deprecated = () => {
20
21
  throw new Error(
@@ -200,6 +201,19 @@ async function main() {
200
201
  warnWithDeprecationSchedule();
201
202
  }
202
203
  warnWhenRunningInit();
204
+
205
+ const proc = spawn(
206
+ 'npx',
207
+ ['@react-native-community/cli', ...process.argv.slice(2)],
208
+ {
209
+ stdio: 'inherit',
210
+ },
211
+ );
212
+
213
+ const code = await new Promise(resolve => {
214
+ proc.on('exit', resolve);
215
+ });
216
+ process.exit(code);
203
217
  }
204
218
 
205
219
  try {
package/jest-preset.js CHANGED
@@ -15,11 +15,7 @@ module.exports = {
15
15
  platforms: ['android', 'ios', 'native'],
16
16
  },
17
17
  transform: {
18
- '^.+\\.(js)$': [
19
- 'babel-jest',
20
- {plugins: ['babel-plugin-syntax-hermes-parser']},
21
- ],
22
- '^.+\\.(ts|tsx)$': 'babel-jest',
18
+ '^.+\\.(js|ts|tsx)$': 'babel-jest',
23
19
  '^.+\\.(bmp|gif|jpg|jpeg|mp4|png|psd|svg|webp)$': require.resolve(
24
20
  './jest/assetFileTransformer.js',
25
21
  ),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.76.0-rc.2",
3
+ "version": "0.76.0-rc.3",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -109,13 +109,13 @@
109
109
  },
110
110
  "dependencies": {
111
111
  "@jest/create-cache-key-function": "^29.6.3",
112
- "@react-native/assets-registry": "0.76.0-rc.2",
113
- "@react-native/codegen": "0.76.0-rc.2",
114
- "@react-native/community-cli-plugin": "0.76.0-rc.2",
115
- "@react-native/gradle-plugin": "0.76.0-rc.2",
116
- "@react-native/js-polyfills": "0.76.0-rc.2",
117
- "@react-native/normalize-colors": "0.76.0-rc.2",
118
- "@react-native/virtualized-lists": "0.76.0-rc.2",
112
+ "@react-native/assets-registry": "0.76.0-rc.3",
113
+ "@react-native/codegen": "0.76.0-rc.3",
114
+ "@react-native/community-cli-plugin": "0.76.0-rc.3",
115
+ "@react-native/gradle-plugin": "0.76.0-rc.3",
116
+ "@react-native/js-polyfills": "0.76.0-rc.3",
117
+ "@react-native/normalize-colors": "0.76.0-rc.3",
118
+ "@react-native/virtualized-lists": "0.76.0-rc.3",
119
119
  "abort-controller": "^3.0.0",
120
120
  "anser": "^1.4.9",
121
121
  "ansi-regex": "^5.0.0",
@@ -131,8 +131,8 @@
131
131
  "jest-environment-node": "^29.6.3",
132
132
  "jsc-android": "^250231.0.0",
133
133
  "memoize-one": "^5.0.0",
134
- "metro-runtime": "^0.81.0-alpha.0",
135
- "metro-source-map": "^0.81.0-alpha.0",
134
+ "metro-runtime": "^0.81.0-alpha.2",
135
+ "metro-source-map": "^0.81.0-alpha.2",
136
136
  "mkdirp": "^0.5.1",
137
137
  "nullthrows": "^1.1.1",
138
138
  "pretty-format": "^29.7.0",
Binary file
Binary file
Binary file