From 1a15bdd1bae3a903869875156b22dfc4d2106abb Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Fri, 26 Dec 2025 11:46:50 +0530
Subject: [PATCH 01/30] update @react-native-community/template nearest to
nightly 0.82.0-nightly-20250902-9731e8ebc
---
packages/@rnw-scripts/integrate-rn/package.json | 2 +-
vnext/Scripts/creaternwapp.cmd | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/@rnw-scripts/integrate-rn/package.json b/packages/@rnw-scripts/integrate-rn/package.json
index bb1cd23e8a2..08abbf7530a 100644
--- a/packages/@rnw-scripts/integrate-rn/package.json
+++ b/packages/@rnw-scripts/integrate-rn/package.json
@@ -20,7 +20,7 @@
"integrate-rn": "./bin.js"
},
"dependencies": {
- "@react-native-community/template": "0.82.0-nightly-2025819-246871d",
+ "@react-native-community/template": "0.82.0-nightly-202591-d2a0bee",
"@react-native-windows/find-repo-root": "^0.0.0-canary.99",
"@react-native-windows/fs": "^0.0.0-canary.70",
"@react-native-windows/package-utils": "^0.0.0-canary.96",
diff --git a/vnext/Scripts/creaternwapp.cmd b/vnext/Scripts/creaternwapp.cmd
index d7b32ccb0af..5004b096c24 100644
--- a/vnext/Scripts/creaternwapp.cmd
+++ b/vnext/Scripts/creaternwapp.cmd
@@ -117,7 +117,7 @@ if not "x%RN_VERSION:nightly=%"=="x%RN_VERSION%" (
REM Do not change, this makes sure we always get a nightly template when still consuming a nightly RN and NOT a later "stable" template that may have been released
REM set RNCLI_TEMPLATE=--template "@react-native-community/template@^%RN_VERSION:~0,4%.0-"
REM Windows we need to manually update this with every integration #15124
- set RNCLI_TEMPLATE=--template "@react-native-community/template@0.82.0-nightly-2025819-246871d"
+ set RNCLI_TEMPLATE=--template "@react-native-community/template@0.82.0-nightly-202591-d2a0bee"
)
@echo creaternwapp.cmd: Creating base RN app project with: npx --yes @react-native-community/cli@%RNCLI_VERSION% init %APP_NAME% --version %RN_VERSION% %RNCLI_TEMPLATE% --verbose --skip-install --install-pods false --skip-git-init true
From 4217248098f9c086b02f9f81450e245141d1d1bf Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Fri, 26 Dec 2025 12:00:07 +0530
Subject: [PATCH 02/30] Commits with conflicts
---
.../react-native-win32-tester/overrides.json | 2 +-
.../react-native-win32-tester/package.json | 4 +-
.../react-native-win32/.flowconfig | 7 +-
.../react-native-win32/overrides.json | 14 +-
.../react-native-win32/package.json | 32 +-
.../Components/TextInput/TextInput.win32.js | 9 +
.../TextInput/TextInputState.win32.js | 2 +-
.../src-win/Libraries/Image/Image.win32.js | 20 +
.../src-win/Libraries/Text/Text.win32.js | 32 ++
.../animated/NativeAnimatedHelper.win32.js | 6 +-
.../automation-channel/package.json | 2 +-
.../tester/overrides.json | 4 +-
.../@react-native-windows/tester/package.json | 6 +-
.../Text/TextSharedExamples.windows.js | 14 +-
.../@react-native/monorepo/overrides.json | 4 +-
packages/@react-native/monorepo/package.json | 9 +-
packages/@react-native/tester/overrides.json | 26 +-
packages/@react-native/tester/package.json | 2 +-
.../babel-react-native-config/package.json | 6 +-
.../@rnw-scripts/eslint-config/package.json | 2 +-
.../metro-dev-config/package.json | 4 +-
.../@rnw-scripts/promote-release/package.json | 2 +-
packages/e2e-test-app-fabric/package.json | 8 +-
packages/playground/package.json | 8 +-
.../src/e2etest/FileSystemRepository.test.ts | 4 +-
.../src/test/OverrideFactory.test.ts | 10 +-
packages/sample-app-fabric/package.json | 10 +-
packages/sample-custom-component/package.json | 8 +-
vnext/.flowconfig | 7 +-
.../cxxreact/NativeToJsBridge.cpp | 4 +-
.../jsi/jsi/test/testlib.cpp | 110 ++++++
.../components/view/AccessibilityPrimitives.h | 32 +-
.../view/accessibilityPropsConversions.h | 56 +++
.../renderer/components/view/conversions.h | 4 +-
.../react/renderer/imagemanager/primitives.h | 18 +-
vnext/overrides.json | 30 +-
vnext/package.json | 32 +-
.../ScrollView/ScrollView.windows.js | 14 +-
.../Components/TextInput/TextInput.windows.js | 9 +
.../TextInput/TextInputState.windows.js | 2 +-
.../src-win/Libraries/Image/Image.windows.js | 10 +-
vnext/src-win/Libraries/Text/Text.windows.js | 29 ++
vnext/src-win/index.windows.js.flow | 1 +
.../ReactNativeFeatureFlagsBase.js | 8 +-
yarn.lock | 344 +++++++-----------
45 files changed, 584 insertions(+), 383 deletions(-)
diff --git a/packages/@office-iss/react-native-win32-tester/overrides.json b/packages/@office-iss/react-native-win32-tester/overrides.json
index 3474af7afbd..cabcb17484a 100644
--- a/packages/@office-iss/react-native-win32-tester/overrides.json
+++ b/packages/@office-iss/react-native-win32-tester/overrides.json
@@ -5,7 +5,7 @@
"excludePatterns": [
"src/js/examples-win32/**"
],
- "baseVersion": "0.82.0-nightly-20250821-0ef21bf8a",
+ "baseVersion": "0.82.0-nightly-20250902-9731e8ebc",
"overrides": [
{
"type": "patch",
diff --git a/packages/@office-iss/react-native-win32-tester/package.json b/packages/@office-iss/react-native-win32-tester/package.json
index 3bd78cb93e6..26a7aca6191 100644
--- a/packages/@office-iss/react-native-win32-tester/package.json
+++ b/packages/@office-iss/react-native-win32-tester/package.json
@@ -19,7 +19,7 @@
"peerDependencies": {
"@office-iss/react-native-win32": "^0.0.0-canary.303",
"react": "19.1.0",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a"
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc"
},
"devDependencies": {
"@office-iss/react-native-win32": "^0.0.0-canary.303",
@@ -30,7 +30,7 @@
"@types/node": "^22.14.0",
"eslint": "^8.19.0",
"just-scripts": "^1.3.3",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-platform-override": "0.0.0-canary.1017",
"typescript": "5.0.4"
},
diff --git a/packages/@office-iss/react-native-win32/.flowconfig b/packages/@office-iss/react-native-win32/.flowconfig
index 2aaec77e9de..9e3be1dca3e 100644
--- a/packages/@office-iss/react-native-win32/.flowconfig
+++ b/packages/@office-iss/react-native-win32/.flowconfig
@@ -150,7 +150,10 @@ module.system.haste.module_ref_prefix=m#
react.runtime=automatic
-experimental.error_code_migration=new
+experimental.only_support_flow_fixme_and_expected_error=true
+experimental.require_suppression_with_error_code=true
+experimental.invariant_subtyping_error_message_improvement=true
+experimental.natural_inference.local_object_literals.followup_fix=true
ban_spread_key_props=true
@@ -177,4 +180,4 @@ untyped-import
untyped-type-import
[version]
-^0.279.0
+^0.280.0
diff --git a/packages/@office-iss/react-native-win32/overrides.json b/packages/@office-iss/react-native-win32/overrides.json
index 97482dbd72b..08a01083799 100644
--- a/packages/@office-iss/react-native-win32/overrides.json
+++ b/packages/@office-iss/react-native-win32/overrides.json
@@ -7,13 +7,13 @@
"**/__snapshots__/**",
"src-win/rntypes/**"
],
- "baseVersion": "0.82.0-nightly-20250821-0ef21bf8a",
+ "baseVersion": "0.82.0-nightly-20250902-9731e8ebc",
"overrides": [
{
"type": "derived",
"file": ".flowconfig",
"baseFile": ".flowconfig",
- "baseHash": "56b1b6a6ecee3c54f2c63eadd6bf5d67b11f5cd9"
+ "baseHash": "c8bd25d4aa75328a2484c5c7b0b768c188a50b52"
},
{
"type": "derived",
@@ -114,13 +114,13 @@
"type": "derived",
"file": "src-win/Libraries/Components/TextInput/TextInput.win32.js",
"baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js",
- "baseHash": "ed5d48ce62056182bf81dfa2d22d511d611d5201"
+ "baseHash": "547fa57cd844cece1f4401b93be75b2edd2a757f"
},
{
"type": "patch",
"file": "src-win/Libraries/Components/TextInput/TextInputState.win32.js",
"baseFile": "packages/react-native/Libraries/Components/TextInput/TextInputState.js",
- "baseHash": "6ed06ca68066b0cdbaa28a2e5f1fe1b6d9d62f63"
+ "baseHash": "e310687c98b6de40bfe9d939639de566a91fca85"
},
{
"type": "platform",
@@ -236,7 +236,7 @@
"type": "derived",
"file": "src-win/Libraries/Image/Image.win32.js",
"baseFile": "packages/react-native/Libraries/Image/Image.ios.js",
- "baseHash": "5d62f4a6c4edfe3007eb3b80704a1dfb68e5ff8a",
+ "baseHash": "be81d302b8f2d64ddf7a52bd30fbcb47d18741b5",
"issue": 4320
},
{
@@ -425,7 +425,7 @@
"type": "derived",
"file": "src-win/Libraries/Text/Text.win32.js",
"baseFile": "packages/react-native/Libraries/Text/Text.js",
- "baseHash": "14367e55fca8889783f7dea94ec2c09205960c3c"
+ "baseHash": "59bf5757acc083a749a38173b3610529b27ef4fb"
},
{
"type": "derived",
@@ -497,7 +497,7 @@
"type": "patch",
"file": "src-win/src/private/animated/NativeAnimatedHelper.win32.js",
"baseFile": "packages/react-native/src/private/animated/NativeAnimatedHelper.js",
- "baseHash": "c3fdc3d1e9879c6fe03a1a5caad7b02b386ddcde",
+ "baseHash": "14407780e54e66515159aed1a51cee154b1d5339",
"issue": 11041
},
{
diff --git a/packages/@office-iss/react-native-win32/package.json b/packages/@office-iss/react-native-win32/package.json
index 4d80a087a9d..f241d148c71 100644
--- a/packages/@office-iss/react-native-win32/package.json
+++ b/packages/@office-iss/react-native-win32/package.json
@@ -30,19 +30,19 @@
"@react-native-community/cli-platform-android": "20.0.0",
"@react-native-community/cli-platform-ios": "20.0.0",
"@react-native/assets": "1.0.0",
- "@react-native/assets-registry": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/codegen": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/community-cli-plugin": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/gradle-plugin": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/js-polyfills": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/normalize-colors": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/virtualized-lists": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/assets-registry": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/codegen": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/community-cli-plugin": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/gradle-plugin": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/js-polyfills": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/normalize-colors": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/virtualized-lists": "0.82.0-nightly-20250902-9731e8ebc",
"abort-controller": "^3.0.0",
"anser": "^1.4.9",
"ansi-regex": "^5.0.0",
"art": "^0.10.0",
"babel-jest": "^29.7.0",
- "babel-plugin-syntax-hermes-parser": "0.28.1",
+ "babel-plugin-syntax-hermes-parser": "0.32.0",
"base64-js": "^1.5.1",
"chalk": "^4.0.0",
"commander": "^12.0.0",
@@ -52,14 +52,14 @@
"invariant": "^2.2.4",
"jest-environment-node": "^29.7.0",
"memoize-one": "^5.0.0",
- "metro-runtime": "^0.82.2",
- "metro-source-map": "^0.82.2",
+ "metro-runtime": "^0.83.1",
+ "metro-source-map": "^0.83.1",
"mkdirp": "^0.5.1",
"nullthrows": "^1.1.1",
"pretty-format": "^29.7.0",
"promise": "^8.3.0",
"react-clone-referenced-element": "^1.0.1",
- "react-devtools-core": "^6.1.1",
+ "react-devtools-core": "^6.1.5",
"react-refresh": "^0.14.0",
"regenerator-runtime": "^0.13.2",
"scheduler": "0.26.0",
@@ -72,7 +72,7 @@
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/eslint-parser": "^7.25.1",
- "@react-native/metro-config": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/metro-config": "0.82.0-nightly-20250902-9731e8ebc",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.38",
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.42",
@@ -88,14 +88,14 @@
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
"react": "19.1.0",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-platform-override": "0.0.0-canary.1017",
"typescript": "5.0.4"
},
"peerDependencies": {
- "@types/react": "^19.1.0",
- "react": "^19.1.0",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a"
+ "@types/react": "^19.1.1",
+ "react": "^19.1.1",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc"
},
"beachball": {
"defaultNpmTag": "canary",
diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/TextInput/TextInput.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/TextInput/TextInput.win32.js
index 43cbc3cd51b..dcde270eca5 100644
--- a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/TextInput/TextInput.win32.js
+++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/TextInput/TextInput.win32.js
@@ -785,6 +785,9 @@ function InternalTextInput(props: TextInputProps): React.Node {
flattenedStyle.paddingVertical == null &&
flattenedStyle.paddingTop == null));
+ const _accessibilityElementsHidden =
+ props['aria-hidden'] ?? props.accessibilityElementsHidden;
+
textInput = (
+=======
{analyticTag => {
return (
@@ -219,6 +238,7 @@ let BaseImage: AbstractImageIOS = ({
);
}}
+>>>>>>> Override
);
}}
diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Text/Text.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Text/Text.win32.js
index c93440f92e9..43e1dae81ae 100644
--- a/packages/@office-iss/react-native-win32/src-win/Libraries/Text/Text.win32.js
+++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Text/Text.win32.js
@@ -51,6 +51,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
'aria-checked': ariaChecked,
'aria-disabled': ariaDisabled,
'aria-expanded': ariaExpanded,
+ 'aria-hidden': ariaHidden,
'aria-label': ariaLabel,
'aria-selected': ariaSelected,
// #[ Win32
@@ -163,6 +164,13 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
_accessibilityState.disabled = _disabled;
}
+ if (ariaHidden !== undefined) {
+ processedProps.accessibilityElementsHidden = ariaHidden;
+ if (ariaHidden === true) {
+ processedProps.importantForAccessibility = 'no-hide-descendants';
+ }
+ }
+
const _accessible = Platform.select({
ios: accessible !== false,
android:
@@ -367,6 +375,8 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
) = ({
ref: forwardedRef,
accessible,
+ accessibilityElementsHidden,
+ importantForAccessibility,
accessibilityLabel,
accessibilityState,
allowFontScaling,
@@ -374,6 +384,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
'aria-checked': ariaChecked,
'aria-disabled': ariaDisabled,
'aria-expanded': ariaExpanded,
+ 'aria-hidden': ariaHidden,
'aria-label': ariaLabel,
'aria-selected': ariaSelected,
//#[ Win32
@@ -471,6 +482,13 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
const _accessibilityStateDisabled = _accessibilityState?.disabled;
const _disabled = disabled ?? _accessibilityStateDisabled;
+ let _accessibilityElementsHidden =
+ ariaHidden ?? accessibilityElementsHidden;
+ let _importantForAccessibility = importantForAccessibility;
+ if (ariaHidden === true) {
+ _importantForAccessibility = 'no-hide-descendants';
+ }
+
const isPressable =
(onPress != null ||
onLongPress != null ||
@@ -539,8 +557,12 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
ref={forwardedRef}
textProps={{
...restProps,
+ accessibilityElementsHidden: _accessibilityElementsHidden,
accessibilityLabel: _accessibilityLabel,
accessibilityState: _accessibilityState,
+<<<<<<< Upstream
+ importantForAccessibility: _importantForAccessibility,
+=======
// #[ Win32
accessibilityControls: _accessibilityControls,
accessibilityDescribedBy: _accessibilityDescribedBy,
@@ -549,6 +571,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
accessibilityPositionInSet: _accessibilityPositionInSet,
accessibilitySetSize: _accessibilitySetSize,
// #] Win32
+>>>>>>> Override
nativeID: _nativeID,
numberOfLines: _numberOfLines,
selectable: _selectable,
@@ -578,8 +601,12 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
return (
>>>>>> Override
nativeID={_nativeID}
numberOfLines={_numberOfLines}
ref={forwardedRef}
@@ -627,12 +655,14 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
ref={forwardedRef}
textProps={{
...restProps,
+ accessibilityElementsHidden: _accessibilityElementsHidden,
accessibilityLabel: _accessibilityLabel,
accessibilityState: _accessibilityState,
accessible: _accessible,
allowFontScaling: allowFontScaling !== false,
disabled: _disabled,
ellipsizeMode: ellipsizeMode ?? 'tail',
+ importantForAccessibility: _importantForAccessibility,
nativeID: _nativeID,
numberOfLines: _numberOfLines,
selectable: _selectable,
@@ -660,12 +690,14 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
nativeText = (
void,
createAnimatedNode(tag: number, config: AnimatedNodeConfig): void {
- NativeOperations.createAnimatedNode(tag, config);
+ if (config.disableBatchingForNativeCreate) {
+ NativeAnimatedModule?.createAnimatedNode(tag, config);
+ } else {
+ NativeOperations.createAnimatedNode(tag, config);
+ }
},
updateAnimatedNodeConfig(tag: number, config: AnimatedNodeConfig): void {
diff --git a/packages/@react-native-windows/automation-channel/package.json b/packages/@react-native-windows/automation-channel/package.json
index b393e223b51..98082fb3d57 100644
--- a/packages/@react-native-windows/automation-channel/package.json
+++ b/packages/@react-native-windows/automation-channel/package.json
@@ -32,7 +32,7 @@
"just-scripts": "^1.3.2",
"prettier": "2.8.8",
"react": "19.1.0",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-windows": "^0.0.0-canary.1024",
"typescript": "5.0.4"
},
diff --git a/packages/@react-native-windows/tester/overrides.json b/packages/@react-native-windows/tester/overrides.json
index 0be760796ab..19a2a15dc7e 100644
--- a/packages/@react-native-windows/tester/overrides.json
+++ b/packages/@react-native-windows/tester/overrides.json
@@ -5,7 +5,7 @@
"excludePatterns": [
"src/js/examples-win/**"
],
- "baseVersion": "0.82.0-nightly-20250821-0ef21bf8a",
+ "baseVersion": "0.82.0-nightly-20250902-9731e8ebc",
"overrides": [
{
"type": "copy",
@@ -117,7 +117,7 @@
"type": "patch",
"file": "src/js/examples/Text/TextSharedExamples.windows.js",
"baseFile": "packages/rn-tester/js/examples/Text/TextSharedExamples.js",
- "baseHash": "2f043ce1ae7f2f82c0a913247da51777dd53979b",
+ "baseHash": "da71056f942bf857b29702890d81f65cf49dc17e",
"issue": 15125
},
{
diff --git a/packages/@react-native-windows/tester/package.json b/packages/@react-native-windows/tester/package.json
index 816404be67e..0d4ea136c93 100644
--- a/packages/@react-native-windows/tester/package.json
+++ b/packages/@react-native-windows/tester/package.json
@@ -19,13 +19,13 @@
"peerDependencies": {
"@react-native-picker/picker": "2.11.0",
"react": "19.1.0",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-windows": "^0.0.0-canary.1024",
"react-native-xaml": "^0.0.80"
},
"devDependencies": {
- "@react-native/tester": "0.82.0-main",
"@react-native/new-app-screen": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/tester": "0.82.0-main",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.38",
"@rnw-scripts/just-task": "2.3.58",
@@ -33,7 +33,7 @@
"@types/node": "^22.14.0",
"eslint": "^8.19.0",
"just-scripts": "^1.3.3",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-platform-override": "0.0.0-canary.1017",
"react-native-windows": "^0.0.0-canary.1024",
"typescript": "5.0.4"
diff --git a/packages/@react-native-windows/tester/src/js/examples/Text/TextSharedExamples.windows.js b/packages/@react-native-windows/tester/src/js/examples/Text/TextSharedExamples.windows.js
index f4e1224f370..9ed9b4a1833 100644
--- a/packages/@react-native-windows/tester/src/js/examples/Text/TextSharedExamples.windows.js
+++ b/packages/@react-native-windows/tester/src/js/examples/Text/TextSharedExamples.windows.js
@@ -28,11 +28,15 @@ function InlineView(props: {
Child
Child
- {props !== null && props.long === true && (
-
- aaaa a aaaa aaaaaa aaa a a a aaaaa sdsds dsdSAD asd ASDasd ASDas
-
- )}
+ {
+ /* $FlowFixMe[invalid-compare] Error discovered during Constant
+ * Condition roll out. See https://fburl.com/workplace/5whu3i34. */
+ props !== null && props.long === true && (
+
+ aaaa a aaaa aaaaaa aaa a a a aaaaa sdsds dsdSAD asd ASDasd ASDas
+
+ )
+ }
);
diff --git a/packages/@react-native/monorepo/overrides.json b/packages/@react-native/monorepo/overrides.json
index f12f34f8531..be46ac1fa01 100644
--- a/packages/@react-native/monorepo/overrides.json
+++ b/packages/@react-native/monorepo/overrides.json
@@ -1,11 +1,11 @@
{
- "baseVersion": "0.82.0-nightly-20250821-0ef21bf8a",
+ "baseVersion": "0.82.0-nightly-20250902-9731e8ebc",
"overrides": [
{
"type": "patch",
"file": "package.json",
"baseFile": "package.json",
- "baseHash": "72cf43d108893a4e22658d5f187c6c49d6b38608"
+ "baseHash": "8b94d93c1a98029715186bcb5286ea56beae0ed0"
}
]
}
\ No newline at end of file
diff --git a/packages/@react-native/monorepo/package.json b/packages/@react-native/monorepo/package.json
index 3ae8d2270eb..b0cd6bf5291 100644
--- a/packages/@react-native/monorepo/package.json
+++ b/packages/@react-native/monorepo/package.json
@@ -48,8 +48,8 @@
"@babel/preset-flow": "^7.24.7",
"@jest/create-cache-key-function": "^29.7.0",
"@microsoft/api-extractor": "^7.52.2",
- "@react-native/metro-babel-transformer": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/metro-config": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/metro-babel-transformer": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/metro-config": "0.82.0-nightly-20250902-9731e8ebc",
"@tsconfig/node22": "22.0.2",
"@types/react": "^19.1.0",
"@typescript-eslint/parser": "^8.36.0",
@@ -74,7 +74,7 @@
"eslint-plugin-redundant-undefined": "^0.4.0",
"eslint-plugin-relay": "^1.8.3",
"flow-api-translator": "0.32.0",
- "flow-bin": "^0.279.0",
+ "flow-bin": "^0.280.0",
"glob": "^7.1.1",
"hermes-eslint": "0.32.0",
"hermes-transform": "0.32.0",
@@ -83,13 +83,12 @@
"jest": "^29.7.0",
"jest-config": "^29.7.0",
"jest-diff": "^29.7.0",
- "jest-junit": "^10.0.0",
+ "jest-junit": "^16.0.0",
"jest-snapshot": "^29.7.0",
"markdownlint-cli2": "^0.17.2",
"markdownlint-rule-relative-links": "^3.0.0",
"memfs": "^4.7.7",
"metro-babel-register": "^0.83.1",
- "metro-transform-plugins": "^0.83.1",
"metro-memory-fs": "^0.82.4",
"metro-transform-plugins": "^0.83.1",
"micromatch": "^4.0.4",
diff --git a/packages/@react-native/tester/overrides.json b/packages/@react-native/tester/overrides.json
index 45cfc02f80f..1804de23d83 100644
--- a/packages/@react-native/tester/overrides.json
+++ b/packages/@react-native/tester/overrides.json
@@ -1,5 +1,5 @@
{
- "baseVersion": "0.82.0-nightly-20250821-0ef21bf8a",
+ "baseVersion": "0.82.0-nightly-20250902-9731e8ebc",
"overrides": [
{
"type": "copy",
@@ -19,7 +19,7 @@
"type": "copy",
"directory": "js/examples/Accessibility",
"baseDirectory": "packages/rn-tester/js/examples/Accessibility",
- "baseHash": "8e5f2a1d2ceeaafedf6756e97de0ac696672026a",
+ "baseHash": "86160c9bb592cce9ef577052157e809549fb18d7",
"issue": 4054
},
{
@@ -47,7 +47,7 @@
"type": "copy",
"directory": "js/examples/Animated",
"baseDirectory": "packages/rn-tester/js/examples/Animated",
- "baseHash": "8746a19c501f6c4cf769f45301b39ba04918ca8c",
+ "baseHash": "882028b4cd050fb338e0abd2d91116a5d374c644",
"issue": 4054
},
{
@@ -61,7 +61,7 @@
"type": "copy",
"directory": "js/examples/Appearance",
"baseDirectory": "packages/rn-tester/js/examples/Appearance",
- "baseHash": "e50957281c2d2c69ac0cf9b7fbba52bfcb4b2acc",
+ "baseHash": "2f8b7443fee23e06736f638575fcace2e31dffad",
"issue": 4054
},
{
@@ -138,21 +138,21 @@
"type": "copy",
"directory": "js/examples/DrawerLayoutAndroid",
"baseDirectory": "packages/rn-tester/js/examples/DrawerLayoutAndroid",
- "baseHash": "631085563b9f193a0b8e55c4b3125cccab3ac315",
+ "baseHash": "6c0cb892ffc283ad7f3dff057de76490b146883e",
"issue": 4054
},
{
"type": "copy",
"directory": "js/examples/Experimental",
"baseDirectory": "packages/rn-tester/js/examples/Experimental",
- "baseHash": "9ab384bedf0c2b3027fa0af54ecc8f3744ed9ae7",
+ "baseHash": "3ae2ed4d6120dea8b317822395530f4edddcf6f1",
"issue": 4054
},
{
"type": "copy",
"directory": "js/examples/Filter",
"baseDirectory": "packages/rn-tester/js/examples/Filter",
- "baseHash": "e0e677e9e81362e663857e0a3c3216d45035f0b1",
+ "baseHash": "9eb2dab1c611cfd1587a234ec834f59030da9054",
"issue": 4054
},
{
@@ -229,7 +229,7 @@
"type": "copy",
"directory": "js/examples/MixBlendMode",
"baseDirectory": "packages/rn-tester/js/examples/MixBlendMode",
- "baseHash": "68c9b90a61a76a63d2fe8f79df7fefd7d2320e37",
+ "baseHash": "0bbc09055f5bd015afdc67dea786a8d17dff2bc5",
"issue": 4054
},
{
@@ -312,7 +312,7 @@
"type": "copy",
"directory": "js/examples/PointerEvents",
"baseDirectory": "packages/rn-tester/js/examples/PointerEvents",
- "baseHash": "b494881c44a0922313a3d1737cb7bca96231273b",
+ "baseHash": "b3be0035ef4bc7b03957039ea46ae99c9d98130e",
"issue": 4054
},
{
@@ -326,7 +326,7 @@
"type": "copy",
"directory": "js/examples/Pressable",
"baseDirectory": "packages/rn-tester/js/examples/Pressable",
- "baseHash": "c9f130fc8a2b9878459742dfb0877aabc5dd4ffb",
+ "baseHash": "6d19102d1ce919fa22d32c3a68d5a38e2c7aa1fb",
"issue": 4054
},
{
@@ -424,7 +424,7 @@
"type": "copy",
"directory": "js/examples/Text",
"baseDirectory": "packages/rn-tester/js/examples/Text",
- "baseHash": "a569a3f8074d7300060c5c5ed70f2fb6806f928c",
+ "baseHash": "3c104a4709628d576c22ed0962ae685e715b67a9",
"issue": 4054
},
{
@@ -508,7 +508,7 @@
"type": "copy",
"directory": "js/examples/TurboModule",
"baseDirectory": "packages/rn-tester/js/examples/TurboModule",
- "baseHash": "d4b5116060834b4b8117b75a357a9e7fc81fda29",
+ "baseHash": "a8bfe0455074efa565db330bf2600e88f69f437b",
"issue": 4054
},
{
@@ -542,7 +542,7 @@
"type": "copy",
"directory": "js/examples/XHR",
"baseDirectory": "packages/rn-tester/js/examples/XHR",
- "baseHash": "51ff285f97ad22e79fe3e679a933b4949d92f62b",
+ "baseHash": "532af8d0cdedc7cb51ce89a99e566f1687bd4682",
"issue": 4054
},
{
diff --git a/packages/@react-native/tester/package.json b/packages/@react-native/tester/package.json
index 0296e088ba0..b5f1696e8dd 100644
--- a/packages/@react-native/tester/package.json
+++ b/packages/@react-native/tester/package.json
@@ -64,4 +64,4 @@
"listr2": "^6.4.1",
"rxjs": "npm:@react-native-community/rxjs@6.5.4-custom"
}
-}
\ No newline at end of file
+}
diff --git a/packages/@rnw-scripts/babel-react-native-config/package.json b/packages/@rnw-scripts/babel-react-native-config/package.json
index eeba29d7cf9..568176391c8 100644
--- a/packages/@rnw-scripts/babel-react-native-config/package.json
+++ b/packages/@rnw-scripts/babel-react-native-config/package.json
@@ -11,16 +11,16 @@
},
"dependencies": {
"@babel/core": "^7.25.2",
- "@react-native/babel-preset": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/babel-preset": "0.82.0-nightly-20250902-9731e8ebc",
"babel-plugin-transform-flow-enums": "^0.0.2"
},
"devDependencies": {
"@babel/core": "^7.25.2",
- "@react-native/babel-preset": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/babel-preset": "0.82.0-nightly-20250902-9731e8ebc",
"eslint": "^8.19.0",
"prettier": "2.8.8"
},
"engines": {
"node": ">= 22"
}
-}
\ No newline at end of file
+}
diff --git a/packages/@rnw-scripts/eslint-config/package.json b/packages/@rnw-scripts/eslint-config/package.json
index bea44902e8e..ae79cb8f9fe 100644
--- a/packages/@rnw-scripts/eslint-config/package.json
+++ b/packages/@rnw-scripts/eslint-config/package.json
@@ -29,4 +29,4 @@
"engines": {
"node": ">= 22"
}
-}
\ No newline at end of file
+}
diff --git a/packages/@rnw-scripts/metro-dev-config/package.json b/packages/@rnw-scripts/metro-dev-config/package.json
index f2677a55f52..9569eb8f116 100644
--- a/packages/@rnw-scripts/metro-dev-config/package.json
+++ b/packages/@rnw-scripts/metro-dev-config/package.json
@@ -17,7 +17,7 @@
"lint:fix": "rnw-scripts lint:fix"
},
"dependencies": {
- "@react-native/metro-config": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/metro-config": "0.82.0-nightly-20250902-9731e8ebc",
"@rnx-kit/metro-config": "^2.1.2",
"@rnx-kit/metro-plugin-duplicates-checker": "^3.0.2",
"@rnx-kit/metro-serializer": "^2.0.3",
@@ -33,4 +33,4 @@
"engines": {
"node": ">= 22"
}
-}
\ No newline at end of file
+}
diff --git a/packages/@rnw-scripts/promote-release/package.json b/packages/@rnw-scripts/promote-release/package.json
index e0ffc108d38..52cac8a12a2 100644
--- a/packages/@rnw-scripts/promote-release/package.json
+++ b/packages/@rnw-scripts/promote-release/package.json
@@ -24,8 +24,8 @@
"@react-native-windows/package-utils": "^0.0.0-canary.96",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
- "minimatch": "^10.0.3",
"chalk": "^4.1.0",
+ "minimatch": "^10.0.3",
"simple-git": "^3.3.0",
"source-map-support": "^0.5.19",
"yargs": "^16.2.0"
diff --git a/packages/e2e-test-app-fabric/package.json b/packages/e2e-test-app-fabric/package.json
index 112a9c65262..3775648eec0 100644
--- a/packages/e2e-test-app-fabric/package.json
+++ b/packages/e2e-test-app-fabric/package.json
@@ -16,11 +16,11 @@
"dependencies": {
"@react-native-windows/automation-channel": "0.0.0-canary.1024",
"@react-native-windows/tester": "0.0.1",
- "@types/react": "^19.1.0",
+ "@types/react": "^19.1.1",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
- "react": "^19.1.0",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a",
+ "react": "^19.1.1",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-windows": "^0.0.0-canary.1024"
},
"devDependencies": {
@@ -32,7 +32,7 @@
"@react-native-community/cli": "20.0.0",
"@react-native-windows/automation": "0.0.0-canary.1024",
"@react-native-windows/automation-commands": "0.0.0-canary.1024",
- "@react-native/metro-config": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/metro-config": "0.82.0-nightly-20250902-9731e8ebc",
"@rnw-scripts/babel-node-config": "2.3.3",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.38",
diff --git a/packages/playground/package.json b/packages/playground/package.json
index 51d6186dd98..6b37b1e96f3 100644
--- a/packages/playground/package.json
+++ b/packages/playground/package.json
@@ -11,18 +11,18 @@
"dependencies": {
"@react-native-picker/picker": "^2.5.1",
"@react-native-windows/tester": "0.0.1",
- "@types/react": "^19.1.0",
+ "@types/react": "^19.1.1",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
- "react": "^19.1.0",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a",
+ "react": "^19.1.1",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-windows": "^0.0.0-canary.1024"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/runtime": "^7.20.0",
"@react-native-community/cli": "20.0.0",
- "@react-native/metro-config": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/metro-config": "0.82.0-nightly-20250902-9731e8ebc",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.38",
"@rnw-scripts/just-task": "2.3.58",
diff --git a/packages/react-native-platform-override/src/e2etest/FileSystemRepository.test.ts b/packages/react-native-platform-override/src/e2etest/FileSystemRepository.test.ts
index 42085af1023..b35a79663fd 100644
--- a/packages/react-native-platform-override/src/e2etest/FileSystemRepository.test.ts
+++ b/packages/react-native-platform-override/src/e2etest/FileSystemRepository.test.ts
@@ -119,7 +119,7 @@ test('deleteFile - Exists', async () => {
test('deleteFile - Does Not Exist', async () => {
await usingFiles(['0.59.9/Icon-60@2x.conflict.png'], async repo => {
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
- expect(repo.deleteFile('nope')).rejects.toThrow();
+
+ await expect(repo.deleteFile('nope')).rejects.toThrow();
});
});
diff --git a/packages/react-native-platform-override/src/test/OverrideFactory.test.ts b/packages/react-native-platform-override/src/test/OverrideFactory.test.ts
index d6bbccfbd7f..792c2b2eaa1 100644
--- a/packages/react-native-platform-override/src/test/OverrideFactory.test.ts
+++ b/packages/react-native-platform-override/src/test/OverrideFactory.test.ts
@@ -116,9 +116,9 @@ test.each([]>[
testCall(factory.createDerivedOverride, ['nope.windows.js', 'foo.js', 1245]),
testCall(factory.createPatchOverride, ['nope.windows.js', 'foo.js', 1245]),
testCall(factory.createDirectoryCopyOverride, ['nope', 'bar', 1245]),
-])('%s - No Override', (_, fn, params) => {
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
- expect(fn.apply(params)).rejects.toThrow();
+])('%s - No Override', async (_, fn, params) => {
+
+ await expect(fn.apply(params)).rejects.toThrow();
});
test.each([]>[
@@ -127,6 +127,6 @@ test.each([]>[
testCall(factory.createPatchOverride, ['foo.windows.js', 'nope.js', 1245]),
testCall(factory.createDirectoryCopyOverride, ['src-win/bar', 'nope', 1245]),
])('%s - No Base', (_, fn, params) => {
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
- expect(fn.apply(params)).rejects.toThrow();
+
+ await expect(fn.apply(params)).rejects.toThrow();
});
diff --git a/packages/sample-app-fabric/package.json b/packages/sample-app-fabric/package.json
index 067125a0bf7..d08a88a7be5 100644
--- a/packages/sample-app-fabric/package.json
+++ b/packages/sample-app-fabric/package.json
@@ -12,12 +12,12 @@
"bundle": "rnw-scripts prepareBundle && npx @react-native-community/cli bundle --platform windows --entry-file App.tsx --bundle-output windows/SampleAppFabric/Bundle/app.windows.bundle --assets-dest windows/SampleAppFabric/Bundle"
},
"dependencies": {
- "@types/react": "^19.1.0",
+ "@react-native/new-app-screen": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@types/react": "^19.1.1",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
- "@react-native/new-app-screen": "0.82.0-nightly-20250821-0ef21bf8a",
- "react": "^19.1.0",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a",
+ "react": "^19.1.1",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-windows": "^0.0.0-canary.1024"
},
"devDependencies": {
@@ -28,7 +28,7 @@
"@babel/runtime": "^7.20.0",
"@jest/globals": "^29.7.0",
"@react-native-community/cli": "20.0.0",
- "@react-native/metro-config": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/metro-config": "0.82.0-nightly-20250902-9731e8ebc",
"@rnw-scripts/babel-node-config": "2.3.3",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.38",
diff --git a/packages/sample-custom-component/package.json b/packages/sample-custom-component/package.json
index 7343d97335e..f75c21268e2 100644
--- a/packages/sample-custom-component/package.json
+++ b/packages/sample-custom-component/package.json
@@ -20,9 +20,9 @@
}
},
"dependencies": {
- "@types/react": "^19.1.0",
- "react": "^19.1.0",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@types/react": "^19.1.1",
+ "react": "^19.1.1",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-windows": "^0.0.0-canary.1024"
},
"devDependencies": {
@@ -32,7 +32,7 @@
"@babel/preset-typescript": "^7.8.3",
"@babel/runtime": "^7.20.0",
"@react-native-community/cli": "20.0.0",
- "@react-native/metro-config": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/metro-config": "0.82.0-nightly-20250902-9731e8ebc",
"@rnw-scripts/babel-node-config": "2.3.3",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.38",
diff --git a/vnext/.flowconfig b/vnext/.flowconfig
index 284d2c557db..a5422e42613 100644
--- a/vnext/.flowconfig
+++ b/vnext/.flowconfig
@@ -149,7 +149,10 @@ module.system.haste.module_ref_prefix=m#
react.runtime=automatic
-experimental.error_code_migration=new
+experimental.only_support_flow_fixme_and_expected_error=true
+experimental.require_suppression_with_error_code=true
+experimental.invariant_subtyping_error_message_improvement=true
+experimental.natural_inference.local_object_literals.followup_fix=true
ban_spread_key_props=true
sharedmemory.hash_table_pow=21
@@ -175,4 +178,4 @@ untyped-import
untyped-type-import
[version]
-^0.279.0
+^0.280.0
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp
index b7faf36aadd..f106bd43881 100644
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp
@@ -37,7 +37,9 @@ using fbsystrace::FbSystraceAsyncFlow;
namespace facebook::react {
// This class manages calls from JS to native code.
-class JsToNativeBridge : public react::ExecutorDelegate {
+class [[deprecated(
+ "This API will be removed along with the legacy architecture.")]] JsToNativeBridge
+ : public react::ExecutorDelegate {
public:
JsToNativeBridge(
std::shared_ptr registry,
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp
index f22efae8c00..b8b9427403d 100644
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp
@@ -176,6 +176,57 @@ TEST_P(JSITest, ObjectTest) {
Array names = obj.getPropertyNames(rt);
EXPECT_EQ(names.size(rt), 1);
EXPECT_EQ(names.getValueAtIndex(rt, 0).getString(rt).utf8(rt), "a");
+
+ // This Runtime Decorator is used to test the default implementation of
+ // Runtime::has/get/setProperty with Value overload
+ class RD : public RuntimeDecorator {
+ public:
+ explicit RD(Runtime& rt) : RuntimeDecorator(rt) {}
+
+ Value getProperty(const Object& object, const Value& name) override {
+ return Runtime::getProperty(object, name);
+ }
+
+ bool hasProperty(const Object& object, const Value& name) override {
+ return Runtime::hasProperty(object, name);
+ }
+
+ void setPropertyValue(
+ const Object& object,
+ const Value& name,
+ const Value& value) override {
+ Runtime::setPropertyValue(object, name, value);
+ }
+ };
+
+ RD rd = RD(rt);
+
+ obj = eval("const obj = {}; obj;").getObject(rd);
+ auto propVal = Value(123);
+ obj.setProperty(rd, propVal, 456);
+ EXPECT_TRUE(obj.hasProperty(rd, propVal));
+ auto getRes = obj.getProperty(rd, propVal);
+ EXPECT_EQ(getRes.getNumber(), 456);
+
+ /// The property is non-writable so it should fail
+ obj = eval(
+ "Object.defineProperty(obj, '456', {"
+ " value: 10,"
+ " writable: false,});")
+ .getObject(rd);
+ auto unwritableProp = Value(456);
+ EXPECT_THROW(obj.setProperty(rd, unwritableProp, 1), JSError);
+
+ auto badObjKey = eval(
+ "var badObj = {"
+ " toString: function() {"
+ " throw new Error('something went wrong');"
+ " }"
+ "};"
+ "badObj;");
+ EXPECT_THROW(obj.setProperty(rd, badObjKey, 123), JSError);
+ EXPECT_THROW(obj.hasProperty(rd, badObjKey), JSError);
+ EXPECT_THROW(obj.getProperty(rd, badObjKey), JSError);
}
TEST_P(JSITest, HostObjectTest) {
@@ -1858,6 +1909,65 @@ TEST_P(JSITest, CastInterface) {
EXPECT_TRUE(ptr == nullptr);
}
+TEST_P(JSITest, DeleteProperty) {
+ // This Runtime Decorator is used to test the default implementation of
+ // Runtime::deleteProperty
+ class RD : public RuntimeDecorator {
+ public:
+ explicit RD(Runtime& rt) : RuntimeDecorator(rt) {}
+
+ void deleteProperty(const Object& object, const PropNameID& name) override {
+ Runtime::deleteProperty(object, name);
+ }
+ void deleteProperty(const Object& object, const String& name) override {
+ Runtime::deleteProperty(object, name);
+ }
+ void deleteProperty(const Object& object, const Value& name) override {
+ Runtime::deleteProperty(object, name);
+ }
+ };
+ RD rd = RD(rt);
+ auto obj = eval("obj = {1:2, foo: 'bar', 3: 4, salt:'pepper'}").getObject(rd);
+
+ auto prop = PropNameID::forAscii(rd, "1");
+ auto hasRes = obj.hasProperty(rd, prop);
+ EXPECT_TRUE(hasRes);
+ obj.deleteProperty(rd, prop);
+ hasRes = obj.hasProperty(rd, prop);
+ EXPECT_FALSE(hasRes);
+
+ auto str = String::createFromAscii(rd, "foo");
+ hasRes = obj.hasProperty(rd, str);
+ EXPECT_TRUE(hasRes);
+ obj.deleteProperty(rd, str);
+ hasRes = obj.hasProperty(rd, str);
+ EXPECT_FALSE(hasRes);
+
+ auto valProp = Value(3);
+ hasRes = obj.hasProperty(rd, "3");
+ EXPECT_TRUE(hasRes);
+ obj.deleteProperty(rd, valProp);
+ auto getRes = obj.getProperty(rd, "3");
+ EXPECT_TRUE(getRes.isUndefined());
+
+ hasRes = obj.hasProperty(rd, "salt");
+ EXPECT_TRUE(hasRes);
+ obj.deleteProperty(rd, "salt");
+ hasRes = obj.hasProperty(rd, "salt");
+ EXPECT_FALSE(hasRes);
+
+ obj = eval(
+ "const obj = {};"
+ "Object.defineProperty(obj, 'prop', {"
+ " value: 10,"
+ " configurable: false,});"
+ "obj;")
+ .getObject(rd);
+ EXPECT_THROW(obj.deleteProperty(rd, "prop"), JSError);
+ hasRes = obj.hasProperty(rd, "prop");
+ EXPECT_TRUE(hasRes);
+}
+
INSTANTIATE_TEST_CASE_P(
Runtimes,
JSITest,
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h
index c9089203482..c6ef8077c95 100644
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h
@@ -12,8 +12,6 @@
#include
#include
-#include
-
namespace facebook::react {
enum class AccessibilityTraits : uint32_t {
@@ -55,27 +53,6 @@ struct AccessibilityAction {
std::optional label{};
};
-inline std::string toString(const AccessibilityAction& accessibilityAction) {
- std::string result = accessibilityAction.name;
- if (accessibilityAction.label.has_value()) {
- result += ": '" + accessibilityAction.label.value() + "'";
- }
- return result;
-}
-
-inline std::string toString(
- std::vector accessibilityActions) {
- std::string result = "[";
- for (size_t i = 0; i < accessibilityActions.size(); i++) {
- result += toString(accessibilityActions[i]);
- if (i < accessibilityActions.size() - 1) {
- result += ", ";
- }
- }
- result += "]";
- return result;
-}
-
inline static bool operator==(
const AccessibilityAction& lhs,
const AccessibilityAction& rhs) {
@@ -113,6 +90,8 @@ constexpr bool operator!=(
return !(rhs == lhs);
}
+<<<<<<< Upstream
+=======
#if RN_DEBUG_STRING_CONVERTIBLE
inline std::string toString(AccessibilityState::CheckedState state) {
switch (state) {
@@ -145,6 +124,7 @@ inline std::string toString(const AccessibilityState& accessibilityState) {
}
#endif
+>>>>>>> Override
struct AccessibilityLabelledBy {
std::vector value{};
};
@@ -194,6 +174,9 @@ enum class AccessibilityLiveRegion : uint8_t {
Assertive,
};
+<<<<<<< Upstream
+enum class AccessibilityRole : uint8_t {
+=======
inline std::string toString(
const AccessibilityLiveRegion& accessibilityLiveRegion) {
switch (accessibilityLiveRegion) {
@@ -216,6 +199,7 @@ inline std::string toString(
}
enum class AccessibilityRole {
+>>>>>>> Override
None,
Button,
Dropdownlist,
@@ -258,7 +242,7 @@ enum class AccessibilityRole {
Iconmenu,
};
-enum class Role {
+enum class Role : uint8_t {
Alert,
Alertdialog,
Application,
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h
index 7a0e32cce40..ef6b4ffc676 100644
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h
@@ -14,6 +14,7 @@
#include
#include
#include
+#include
#include
@@ -796,4 +797,59 @@ inline void fromRawValue(
result = Role::None;
}
+inline std::string toString(AccessibilityLiveRegion accessibilityLiveRegion) {
+ switch (accessibilityLiveRegion) {
+ case AccessibilityLiveRegion::None:
+ return "none";
+ case AccessibilityLiveRegion::Polite:
+ return "polite";
+ case AccessibilityLiveRegion::Assertive:
+ return "assertive";
+ }
+}
+
+#if RN_DEBUG_STRING_CONVERTIBLE
+inline std::string toString(AccessibilityState::CheckedState state) {
+ switch (state) {
+ case AccessibilityState::Unchecked:
+ return "Unchecked";
+ case AccessibilityState::Checked:
+ return "Checked";
+ case AccessibilityState::Mixed:
+ return "Mixed";
+ case AccessibilityState::None:
+ return "None";
+ }
+}
+
+inline std::string toString(const AccessibilityAction& accessibilityAction) {
+ std::string result = accessibilityAction.name;
+ if (accessibilityAction.label.has_value()) {
+ result += ": '" + accessibilityAction.label.value() + "'";
+ }
+ return result;
+}
+
+inline std::string toString(
+ std::vector accessibilityActions) {
+ std::string result = "[";
+ for (size_t i = 0; i < accessibilityActions.size(); i++) {
+ result += toString(accessibilityActions[i]);
+ if (i < accessibilityActions.size() - 1) {
+ result += ", ";
+ }
+ }
+ result += "]";
+ return result;
+}
+
+inline std::string toString(const AccessibilityState& accessibilityState) {
+ return "{disabled:" + toString(accessibilityState.disabled) +
+ ",selected:" + toString(accessibilityState.selected) +
+ ",checked:" + toString(accessibilityState.checked) +
+ ",busy:" + toString(accessibilityState.busy) +
+ ",expanded:" + toString(accessibilityState.expanded) + "}";
+}
+#endif
+
} // namespace facebook::react
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h
index fd8ce3b6344..01d0275fb5b 100644
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h
@@ -848,7 +848,7 @@ inline void fromRawValue(
react_native_expect(false);
}
-inline std::string toString(const PointerEventsMode& value) {
+inline std::string toString(PointerEventsMode value) {
switch (value) {
case PointerEventsMode::Auto:
return "auto";
@@ -1571,4 +1571,4 @@ inline std::string toString(const Transform& transform) {
return result;
}
-} // namespace facebook::react
\ No newline at end of file
+} // namespace facebook::react
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h
index 1647ae96eb1..420046fdb50 100644
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h
@@ -95,7 +95,7 @@ class ImageSource {
#if RN_DEBUG_STRING_CONVERTIBLE
SharedDebugStringConvertibleList getDebugProps(
- const std::string prefix) const {
+ const std::string& prefix) const {
ImageSource imageSource{};
SharedDebugStringConvertibleList headersList;
@@ -170,13 +170,13 @@ inline folly::dynamic toDynamic(const ImageSource& imageSource) {
using ImageSources = std::vector;
-enum class ImageResizeMode {
- Cover,
- Contain,
- Stretch,
- Center,
- Repeat,
- None,
+enum class ImageResizeMode : int8_t {
+ Cover = 0,
+ Contain = 1,
+ Stretch = 2,
+ Center = 3,
+ Repeat = 4,
+ None = 5,
};
class ImageErrorInfo {
@@ -186,4 +186,4 @@ class ImageErrorInfo {
std::vector> httpResponseHeaders{};
};
-} // namespace facebook::react
\ No newline at end of file
+} // namespace facebook::react
diff --git a/vnext/overrides.json b/vnext/overrides.json
index 9aca1c98ea7..1db59f5a4d3 100644
--- a/vnext/overrides.json
+++ b/vnext/overrides.json
@@ -8,13 +8,13 @@
"**/__snapshots__/**",
"src-win/rntypes/**"
],
- "baseVersion": "0.82.0-nightly-20250821-0ef21bf8a",
+ "baseVersion": "0.82.0-nightly-20250902-9731e8ebc",
"overrides": [
{
"type": "derived",
"file": ".flowconfig",
"baseFile": ".flowconfig",
- "baseHash": "56b1b6a6ecee3c54f2c63eadd6bf5d67b11f5cd9"
+ "baseHash": "c8bd25d4aa75328a2484c5c7b0b768c188a50b52"
},
{
"type": "derived",
@@ -65,7 +65,7 @@
"type": "patch",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp",
"baseFile": "packages/react-native/ReactCommon/cxxreact/NativeToJsBridge.cpp",
- "baseHash": "1e4d9b9053dd74a3bea6719c98d8511de0ff8f73",
+ "baseHash": "fc88341abd157a9a36561be8b6d297bcc8125c6f",
"issue": 13172
},
{
@@ -79,7 +79,7 @@
"type": "patch",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp",
"baseFile": "packages/react-native/ReactCommon/jsi/jsi/test/testlib.cpp",
- "baseHash": "80c95f0c0635f68a77e8a61380484389d771bf9e",
+ "baseHash": "fb38db987176918ac2158c74ed5473018d4acab5",
"issue": 12210
},
{
@@ -177,19 +177,19 @@
"type": "derived",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h",
"baseFile": "packages/react-native/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h",
- "baseHash": "ba36ba3603cf0325982afd08475c08d07cb9d231"
+ "baseHash": "ad6263ebaa34f1753daccc09d19bf2328cde48fa"
},
{
"type": "derived",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h",
"baseFile": "packages/react-native/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h",
- "baseHash": "4b2822199233e660f36c01df18fbbff7799968cc"
+ "baseHash": "98a8417b1730c370d796caf93d2832f659d29ee2"
},
{
"type": "patch",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h",
"baseFile": "packages/react-native/ReactCommon/react/renderer/components/view/conversions.h",
- "baseHash": "3487b9dcde51614425687a31b10923c67a2f1d52",
+ "baseHash": "8a845d31a2588668f47d61a3307bf045e2379e03",
"issue": 14698
},
{
@@ -203,7 +203,7 @@
"type": "patch",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h",
"baseFile": "packages/react-native/ReactCommon/react/renderer/imagemanager/primitives.h",
- "baseHash": "74cee7804fa62964c9ecc3fafd475d09b0ed6375",
+ "baseHash": "660ea2d03bb421337ecbcde0971607a64922bf27",
"issue": 15263
},
{
@@ -223,7 +223,7 @@
"type": "derived",
"file": "src-win/index.windows.js.flow",
"baseFile": "packages/react-native/index.js.flow",
- "baseHash": "40517b790cce30b4f7fbb230efabccd98a917be8"
+ "baseHash": "b3bfc5cc82b448bbfc5b87e0b6e2b4d11f3edde0"
},
{
"type": "platform",
@@ -387,7 +387,7 @@
"type": "derived",
"file": "src-win/Libraries/Components/ScrollView/ScrollView.windows.js",
"baseFile": "packages/react-native/Libraries/Components/ScrollView/ScrollView.js",
- "baseHash": "34777aa89308a95d5d04bea192451451b3786e4e"
+ "baseHash": "297988d11942a8a287f0578363c50ce129fe7605"
},
{
"type": "derived",
@@ -411,13 +411,13 @@
"type": "patch",
"file": "src-win/Libraries/Components/TextInput/TextInput.windows.js",
"baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js",
- "baseHash": "ed5d48ce62056182bf81dfa2d22d511d611d5201"
+ "baseHash": "547fa57cd844cece1f4401b93be75b2edd2a757f"
},
{
"type": "patch",
"file": "src-win/Libraries/Components/TextInput/TextInputState.windows.js",
"baseFile": "packages/react-native/Libraries/Components/TextInput/TextInputState.js",
- "baseHash": "6ed06ca68066b0cdbaa28a2e5f1fe1b6d9d62f63"
+ "baseHash": "e310687c98b6de40bfe9d939639de566a91fca85"
},
{
"type": "derived",
@@ -519,7 +519,7 @@
"type": "patch",
"file": "src-win/Libraries/Image/Image.windows.js",
"baseFile": "packages/react-native/Libraries/Image/Image.ios.js",
- "baseHash": "5d62f4a6c4edfe3007eb3b80704a1dfb68e5ff8a",
+ "baseHash": "be81d302b8f2d64ddf7a52bd30fbcb47d18741b5",
"issue": 4590
},
{
@@ -628,7 +628,7 @@
"type": "derived",
"file": "src-win/Libraries/Text/Text.windows.js",
"baseFile": "packages/react-native/Libraries/Text/Text.js",
- "baseHash": "14367e55fca8889783f7dea94ec2c09205960c3c"
+ "baseHash": "59bf5757acc083a749a38173b3610529b27ef4fb"
},
{
"type": "derived",
@@ -678,7 +678,7 @@
"type": "patch",
"file": "src-win/src/private/featureflags/ReactNativeFeatureFlagsBase.js",
"baseFile": "packages/react-native/src/private/featureflags/ReactNativeFeatureFlagsBase.js",
- "baseHash": "b3f30f3392ed9acd6918007eba024968f372eb95"
+ "baseHash": "7f9ec3ffc3b96bb213039323d5f35d623cde89d7"
},
{
"type": "patch",
diff --git a/vnext/package.json b/vnext/package.json
index b2d1728749b..46dbfcb7bb2 100644
--- a/vnext/package.json
+++ b/vnext/package.json
@@ -28,19 +28,19 @@
"@react-native-community/cli-platform-ios": "20.0.0",
"@react-native-windows/cli": "0.0.0-canary.281",
"@react-native/assets": "1.0.0",
- "@react-native/assets-registry": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/codegen": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/community-cli-plugin": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/gradle-plugin": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/js-polyfills": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/normalize-colors": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/virtualized-lists": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/assets-registry": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/codegen": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/community-cli-plugin": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/gradle-plugin": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/js-polyfills": "0.82.0-nightly-20250902-9731e8ebc",
"@react-native/new-app-screen": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/normalize-colors": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/virtualized-lists": "0.82.0-nightly-20250902-9731e8ebc",
"abort-controller": "^3.0.0",
"anser": "^1.4.9",
"ansi-regex": "^5.0.0",
"babel-jest": "^29.7.0",
- "babel-plugin-syntax-hermes-parser": "0.28.1",
+ "babel-plugin-syntax-hermes-parser": "0.32.0",
"base64-js": "^1.5.1",
"chalk": "^4.0.0",
"commander": "^12.0.0",
@@ -50,13 +50,13 @@
"invariant": "^2.2.4",
"jest-environment-node": "^29.7.0",
"memoize-one": "^5.0.0",
- "metro-runtime": "^0.82.2",
- "metro-source-map": "^0.82.2",
+ "metro-runtime": "^0.83.1",
+ "metro-source-map": "^0.83.1",
"mkdirp": "^0.5.1",
"nullthrows": "^1.1.1",
"pretty-format": "^29.7.0",
"promise": "^8.3.0",
- "react-devtools-core": "^6.1.1",
+ "react-devtools-core": "^6.1.5",
"react-refresh": "^0.14.0",
"regenerator-runtime": "^0.13.2",
"scheduler": "0.26.0",
@@ -69,7 +69,7 @@
},
"devDependencies": {
"@react-native-windows/codegen": "0.0.0-canary.128",
- "@react-native/metro-config": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/metro-config": "0.82.0-nightly-20250902-9731e8ebc",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.38",
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.42",
@@ -84,15 +84,15 @@
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
"react": "19.1.0",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-platform-override": "0.0.0-canary.1017",
"react-refresh": "^0.14.0",
"typescript": "5.0.4"
},
"peerDependencies": {
- "@types/react": "^19.1.0",
- "react": "^19.1.0",
- "react-native": "0.82.0-nightly-20250821-0ef21bf8a"
+ "@types/react": "^19.1.1",
+ "react": "^19.1.1",
+ "react-native": "0.82.0-nightly-20250902-9731e8ebc"
},
"beachball": {
"defaultNpmTag": "canary",
diff --git a/vnext/src-win/Libraries/Components/ScrollView/ScrollView.windows.js b/vnext/src-win/Libraries/Components/ScrollView/ScrollView.windows.js
index 895f7c14e84..344fbb119b2 100644
--- a/vnext/src-win/Libraries/Components/ScrollView/ScrollView.windows.js
+++ b/vnext/src-win/Libraries/Components/ScrollView/ScrollView.windows.js
@@ -31,6 +31,7 @@ import {
VScrollContentViewNativeComponent,
VScrollViewNativeComponent,
} from '../../../src/private/components/scrollview/VScrollViewNativeComponents';
+import * as ReactNativeFeatureFlags from '../../../src/private/featureflags/ReactNativeFeatureFlags';
import AnimatedImplementation from '../../Animated/AnimatedImplementation';
import FrameRateLogger from '../../Interaction/FrameRateLogger';
import {findNodeHandle} from '../../ReactNative/RendererProxy';
@@ -1503,7 +1504,7 @@ class ScrollView extends React.Component {
keyboardNeverPersistTaps &&
this._keyboardIsDismissible() &&
e.target != null &&
- // $FlowFixMe Error supressed during the migration of HostInstance to ReactNativeElement
+ // $FlowFixMe[incompatible-type] Error supressed during the migration of HostInstance to ReactNativeElement
!TextInputState.isTextInput(e.target)
) {
return true;
@@ -1754,8 +1755,11 @@ class ScrollView extends React.Component {
const baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;
- const {experimental_endDraggingSensitivityMultiplier, ...otherProps} =
- this.props;
+ const {
+ experimental_endDraggingSensitivityMultiplier,
+ maintainVisibleContentPosition,
+ ...otherProps
+ } = this.props;
const props = {
...otherProps,
accessible, // [Windows]
@@ -1809,6 +1813,10 @@ class ScrollView extends React.Component {
this.props.snapToInterval != null ||
this.props.snapToOffsets != null,
}),
+ maintainVisibleContentPosition:
+ ReactNativeFeatureFlags.disableMaintainVisibleContentPosition()
+ ? undefined
+ : this.props.maintainVisibleContentPosition,
};
const {decelerationRate} = this.props;
diff --git a/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js b/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js
index ae79b077f14..2fa7d26a1b5 100644
--- a/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js
+++ b/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js
@@ -801,6 +801,9 @@ function InternalTextInput(props: TextInputProps): React.Node {
flattenedStyle.paddingVertical == null &&
flattenedStyle.paddingTop == null));
+ const _accessibilityElementsHidden =
+ props['aria-hidden'] ?? props.accessibilityElementsHidden;
+
textInput = (
>>>>>> Override
src,
...restProps
} = props;
@@ -177,6 +181,10 @@ let BaseImage: AbstractImageIOS = ({
ariaMultiselectable ?? props.accessibilityState?.multiselectable, // Windows
required: ariaRequired ?? props.accessibilityState?.required, // Windows
};
+
+ // In order for `aria-hidden` to work on iOS we must set `accessible` to false (`accessibilityElementsHidden` is not enough).
+ const accessible =
+ ariaHidden !== true && (props.alt !== undefined ? true : props.accessible);
const accessibilityLabel = props['aria-label'] ?? props.accessibilityLabel;
const accessibilityLevel = ariaLevel ?? props.accessibilityLevel; // Windows
const accessibilityPosInSet = ariaPosinset ?? props.accessibilityPosInSet; // Windows
@@ -191,7 +199,7 @@ let BaseImage: AbstractImageIOS = ({
>>>>>> Override
nativeID: _nativeID,
numberOfLines: _numberOfLines,
selectable: _selectable,
@@ -559,8 +582,10 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
return (
void> = [];
export type Getter = () => T;
-// This defines the types for the overrides object, whose methods also receive
-// the default value as a parameter.
+// This defines the types for the overrides object, whose methods can return
+// null or undefined to fallback to the default value.
export type OverridesFor = Partial<{
- [key in keyof T]: (ReturnType) => ReturnType,
+ [key in keyof T]: Getter>,
}>;
function createGetter(
@@ -61,7 +61,7 @@ export function createJavaScriptFlagGetter<
configName,
() => {
accessedFeatureFlags.add(configName);
- return overrides?.[configName]?.(defaultValue);
+ return overrides?.[configName]?.();
},
defaultValue,
);
diff --git a/yarn.lock b/yarn.lock
index 861a24ad019..47eead780ef 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1515,15 +1515,6 @@
slash "^3.0.0"
write-file-atomic "^4.0.2"
-"@jest/types@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59"
- integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==
- dependencies:
- "@types/istanbul-lib-coverage" "^2.0.0"
- "@types/istanbul-reports" "^1.1.1"
- "@types/yargs" "^13.0.0"
-
"@jest/types@^29.2.1", "@jest/types@^29.6.3":
version "29.6.3"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
@@ -2056,38 +2047,38 @@
prompts "^2.4.2"
semver "^7.5.2"
-"@react-native-community/template@0.82.0-nightly-2025819-246871d":
- version "0.82.0-nightly-2025819-246871d"
- resolved "https://registry.yarnpkg.com/@react-native-community/template/-/template-0.82.0-nightly-2025819-246871d.tgz#8918a9b6539674b0e3f9d7d480d89a13220f301c"
- integrity sha512-6RAgRgppsp3Ev/8TSbky0OaEVOG2oNxoE2ngvvy24JD1jGgFiuueoTCYLOe3y4BS/S+OUslpxm3HDQ+7UNwobw==
+"@react-native-community/template@0.82.0-nightly-202591-d2a0bee":
+ version "0.82.0-nightly-202591-d2a0bee"
+ resolved "https://registry.yarnpkg.com/@react-native-community/template/-/template-0.82.0-nightly-202591-d2a0bee.tgz#4df504a068d88c2f8244c9a08564dadbcd3521cc"
+ integrity sha512-F4upHwTAUlS1rNDWgThVMwg65tOaDub9ejILsOKQTh3NldLjYZKAIGkOeTDXKHoQf/nJg3mM37H0JXD0dBpr+g==
"@react-native-picker/picker@^2.5.1":
version "2.11.4"
resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.11.4.tgz#7fb09506ee00a82989125cc03e8495204c8afc01"
integrity sha512-Kf8h1AMnBo54b1fdiVylP2P/iFcZqzpMYcglC28EEFB1DEnOjsNr6Ucqc+3R9e91vHxEDnhZFbYDmAe79P2gjA==
-"@react-native/assets-registry@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.82.0-nightly-20250821-0ef21bf8a.tgz#470ff457049c9c4df0d7818267f3801a72c6c089"
- integrity sha512-1RjTFqwcVQ45V7YiNSRRNKpVB+Lxv2yabaX8m9n2xoHyKaLiyfzPlbygtxLnQ6LFu48m9GlW7F43AnwTYJ2/Ag==
+"@react-native/assets-registry@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.82.0-nightly-20250902-9731e8ebc.tgz#d32973e28c8b43020e2d5bc08849dec1a1201943"
+ integrity sha512-qhFstF5wk9PuuG7fiKkeWLMcYlySHv4ZvC6SQ3Z9BgXFWJ4dotlzSPlrAkUw4bXgiReneJeZBULt1ebp+gFmsA==
"@react-native/assets@1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e"
integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==
-"@react-native/babel-plugin-codegen@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.82.0-nightly-20250821-0ef21bf8a.tgz#a81adfd453898792d1d16cdc3e9988cec0ec1de7"
- integrity sha512-ogh+m1Sc++mZgoKdhg3+nm+JPYP+czamwnLl1LRo/D4oLZUl6mndrrsjI3IkG8F4dqqU0cnOEPfYOM78EX/QbA==
+"@react-native/babel-plugin-codegen@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.82.0-nightly-20250902-9731e8ebc.tgz#edfa387a4ef877de317ec541fb0e06515a3efe8d"
+ integrity sha512-k9QuLjH2W2GWgcqXSbTXN1ARYilCVyK/Q+nUOjc8T4tgZXbIrQtY39WwiWMBjFjT8a2nQ149pXJBvx5ofDdKSw==
dependencies:
"@babel/traverse" "^7.25.3"
- "@react-native/codegen" "0.82.0-nightly-20250821-0ef21bf8a"
+ "@react-native/codegen" "0.82.0-nightly-20250902-9731e8ebc"
-"@react-native/babel-preset@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.82.0-nightly-20250821-0ef21bf8a.tgz#718349d55f2e45b6c1d7a6f78ff8d75bc66045b5"
- integrity sha512-f8YSO5kBPQOu/zTGrTVO738GsNvmLQIlDojzDtiVAanUq+vhEU4OTKnp9hzQiE1ke6I0u5lPdUBbPcGprnJRWw==
+"@react-native/babel-preset@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.82.0-nightly-20250902-9731e8ebc.tgz#e3fd413c57c605ac5c310493ce3b4ebf2f616cff"
+ integrity sha512-OSz7AhSyU+2uvnzFKqG7loADGzoB99jy9s+HHru5LsfQJOOL8b9f+GMS+QQHjCFH+ZDRFm8RxOwEUS4+zWjbwg==
dependencies:
"@babel/core" "^7.25.2"
"@babel/plugin-proposal-export-default-from" "^7.24.7"
@@ -2130,15 +2121,15 @@
"@babel/plugin-transform-typescript" "^7.25.2"
"@babel/plugin-transform-unicode-regex" "^7.24.7"
"@babel/template" "^7.25.0"
- "@react-native/babel-plugin-codegen" "0.82.0-nightly-20250821-0ef21bf8a"
+ "@react-native/babel-plugin-codegen" "0.82.0-nightly-20250902-9731e8ebc"
babel-plugin-syntax-hermes-parser "0.32.0"
babel-plugin-transform-flow-enums "^0.0.2"
react-refresh "^0.14.0"
-"@react-native/codegen@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.82.0-nightly-20250821-0ef21bf8a.tgz#3100f275799c9de20b3f551ccc6b3acbf4278d2a"
- integrity sha512-FvfGFe+YcLlACsCecRhbnRy+MJxi5PKj7HwHjY4MX9X9r0p/wDGHFl6TQx9qjvuhz5gIjsAac8xqHZA0e6kLNA==
+"@react-native/codegen@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.82.0-nightly-20250902-9731e8ebc.tgz#52e72820e246810722bdd8023faa11d050bd2bb0"
+ integrity sha512-/4109+jSEN7hmzXgeHRDyNUN80mAsrSo77AKlAYbxqcwc8YZpnPyrdiovkljwt8mZb1g2e5mlhMKno+jy4YDOw==
dependencies:
"@babel/core" "^7.25.2"
"@babel/parser" "^7.25.3"
@@ -2148,12 +2139,12 @@
nullthrows "^1.1.1"
yargs "^17.6.2"
-"@react-native/community-cli-plugin@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.82.0-nightly-20250821-0ef21bf8a.tgz#7ea3bd81c4d06b579ff3bdf47c2c272a85ad0bca"
- integrity sha512-j0jF5sdfsa7RGUYAZHwOn7iEynNqtjPNtp0ahie7K+Nz7Spk5oJyJa+l0BrgKojf8pgsa0aJCAPLZlfumgYDEQ==
+"@react-native/community-cli-plugin@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.82.0-nightly-20250902-9731e8ebc.tgz#f4c9f93a0320efdc8df3b48767cb9be182c3b44e"
+ integrity sha512-9dNiDrNbhjCwfL41j/bssacSRhIvAsYDQWC28guK9ybliJOH/NDMZeURm2vxzbUgW+9Nd5XyibQvwqrDzm108w==
dependencies:
- "@react-native/dev-middleware" "0.82.0-nightly-20250821-0ef21bf8a"
+ "@react-native/dev-middleware" "0.82.0-nightly-20250902-9731e8ebc"
debug "^4.4.0"
invariant "^2.2.4"
metro "^0.83.1"
@@ -2161,18 +2152,27 @@
metro-core "^0.83.1"
semver "^7.1.3"
-"@react-native/debugger-frontend@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.82.0-nightly-20250821-0ef21bf8a.tgz#14cfd036c3272024ba891af9f810e0164a63f5f8"
- integrity sha512-lvt1tWojeO3v9tFVSgG9IE9SRB2FI45MRUBOEIIdXmGh9Uexr74Vv6/mdJG1MI7jBtbuzWxXuHMvVx6SNGoy8A==
+"@react-native/debugger-frontend@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.82.0-nightly-20250902-9731e8ebc.tgz#dc4c2529d9efc1acc74bae7c2f66145224955d63"
+ integrity sha512-gyiq14NihG87sAdaz5fU3wTfSpBUElSZPaud5vMuuEJYyaqve3DWJ3cdMf3qsHBoWJBO9c52hDptUgfEN6Rujw==
-"@react-native/dev-middleware@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.82.0-nightly-20250821-0ef21bf8a.tgz#5a7e2f1d7db2ad01fcae741250b94f099424b902"
- integrity sha512-3YLEVxrzPObRxfKDiNIPxY7GtGA3DS5tdOrEJ/IMJq9BWvXtuz1wJgdmrMqEGWqNtox8Qidvo6sEx3qjqmGK/w==
+"@react-native/debugger-shell@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/debugger-shell/-/debugger-shell-0.82.0-nightly-20250902-9731e8ebc.tgz#683c040dfb44e3d83e68f001b20c7f3fb04e9626"
+ integrity sha512-tGQiYs6ok9M6qUfV6bRqweLk9FAiEvt7G3ZQlOEuQKMntLFJRi2uXRUJKyMN6nU/aOKDtSqyR3g+KHEZEajCOg==
+ dependencies:
+ cross-spawn "^7.0.6"
+ fb-dotslash "0.5.8"
+
+"@react-native/dev-middleware@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.82.0-nightly-20250902-9731e8ebc.tgz#b7d97ab775484219527272c2096063761faa2d05"
+ integrity sha512-g+WFt0XJOQPGQIVSqTNTPpyeKhna5O2nJwXNdELrQhSSgGEpqIN1E7hVKyNlfz8CEMpNabLRNFRnzRvoblRBmw==
dependencies:
"@isaacs/ttlcache" "^1.4.1"
- "@react-native/debugger-frontend" "0.82.0-nightly-20250821-0ef21bf8a"
+ "@react-native/debugger-frontend" "0.82.0-nightly-20250902-9731e8ebc"
+ "@react-native/debugger-shell" "0.82.0-nightly-20250902-9731e8ebc"
chrome-launcher "^0.15.2"
chromium-edge-launcher "^0.2.0"
connect "^3.6.5"
@@ -2206,33 +2206,33 @@
resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.82.0-nightly-20250821-0ef21bf8a.tgz#c0803ac1560ce01c0138fb8b5cbedb9c91a7a816"
integrity sha512-XIiwVWJ/LHVHRoms7KKRiKbeQGMqKFrWTZX8IOlqgD6gSTjiUdlIqM7e2qh/K9xUbrj6SVb4cuy4e9GcZqvOug==
-"@react-native/gradle-plugin@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.82.0-nightly-20250821-0ef21bf8a.tgz#6b2609a6029d344e0e2c544ea9e1d51189c68fa2"
- integrity sha512-TylXcT+p7YyUUMLhI+zEmdoUoLwanYKBesr6USHwYLtUBloj06PNfv8WTQyGjqduDeYPddJtT5hoqFFjeGFUKg==
+"@react-native/gradle-plugin@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.82.0-nightly-20250902-9731e8ebc.tgz#52d99deba629dfbb2e2c1cbfc15e7f822ff3ee01"
+ integrity sha512-75FxlXhgMveGuTc8X1PMOT6GdUB2ETkT3vPbq1bAqSLrU6CIrWiHEgvD67nc5LBp7oMZbUhZzCryHDM/GuQolg==
-"@react-native/js-polyfills@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.82.0-nightly-20250821-0ef21bf8a.tgz#81ffc8d40f5ccb9cf22b4951a83ef390d78be371"
- integrity sha512-p03ZeiLg0wtqyIqUn+G9oucGtvhwZkLLlzXqhvzhAad8AXRPiCTZ+QutZ8+TQ3DF3hQ1a11csF8FoaEEiB1MSQ==
+"@react-native/js-polyfills@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.82.0-nightly-20250902-9731e8ebc.tgz#a4b8961d40a42c8a6aac9a3b28165872e82392a3"
+ integrity sha512-up8CyVI0Q3fguePSbLsibn0hEfB6gFbVWR+6VlaSH7D18oTXoOucQYM61KMdzPPfZ4jvvQaiaumdEF5MlITrqA==
-"@react-native/metro-babel-transformer@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.82.0-nightly-20250821-0ef21bf8a.tgz#2d5353fe16f88d896531631f6a8c1a973d204471"
- integrity sha512-5gsdzKs3vGAM9etlL2LZhG3pFal1k68dWPTe2deqZ9t1SGLY1TELkKUOYPiC8fNYAyiA3Vn0D9dp412d70IHng==
+"@react-native/metro-babel-transformer@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.82.0-nightly-20250902-9731e8ebc.tgz#a6f315af73bc4a9caad05d06d073e7c00cf0b7e3"
+ integrity sha512-A9Wei+qTkvGnl5WyOjSFJSNAxwgTmvErBVoyFStXjKRPUPXltw1FwpVt4ipbTo64LHtuTpTl4Rw7aPX8gTBoSA==
dependencies:
"@babel/core" "^7.25.2"
- "@react-native/babel-preset" "0.82.0-nightly-20250821-0ef21bf8a"
+ "@react-native/babel-preset" "0.82.0-nightly-20250902-9731e8ebc"
hermes-parser "0.32.0"
nullthrows "^1.1.1"
-"@react-native/metro-config@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.82.0-nightly-20250821-0ef21bf8a.tgz#6c80c5b700dd8b57169f0cafa59e5bda91706162"
- integrity sha512-Ll0xNwdhxpVFgRVOentXcJMdTHKB6aXdp3n19MToE8LRlSBdS+WgREHngW44hym6Mvkc0NJd6EP1vV0IgFO7Dw==
+"@react-native/metro-config@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.82.0-nightly-20250902-9731e8ebc.tgz#39bfcb4d5535613eccebdf0efb4d1e0402f35855"
+ integrity sha512-RNe+zznTozFP75TsahC7Dspi858s+3whyjsb8wSUV7ZFhZh8Pr0SU8tA6Xa2S9PkOqMG6TeMCUIPZz5qEnYEkw==
dependencies:
- "@react-native/js-polyfills" "0.82.0-nightly-20250821-0ef21bf8a"
- "@react-native/metro-babel-transformer" "0.82.0-nightly-20250821-0ef21bf8a"
+ "@react-native/js-polyfills" "0.82.0-nightly-20250902-9731e8ebc"
+ "@react-native/metro-babel-transformer" "0.82.0-nightly-20250902-9731e8ebc"
metro-config "^0.83.1"
metro-runtime "^0.83.1"
@@ -2241,10 +2241,10 @@
resolved "https://registry.yarnpkg.com/@react-native/new-app-screen/-/new-app-screen-0.82.0-nightly-20250821-0ef21bf8a.tgz#f7b64f7bd93945bdea0d597d973b11d079bbceb9"
integrity sha512-IcNqFAgsUTEt/GxJDW7PaoOS2Sn3iTQijnPGCIBkmlo/PBlnOzOZOXT6nz58aVdWYbHVh9+WTuItv/dpeKgzMg==
-"@react-native/normalize-colors@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.82.0-nightly-20250821-0ef21bf8a.tgz#558b417cc5845773406b6dbc79f13db2c52e0d42"
- integrity sha512-zBRmdPPDeDIafNgLFVoozFaADp1zmUgf16fg42VZBSPTVwrHBfnqL4HOBk/W9+qVrwpu62+HOBei56iUls/FqQ==
+"@react-native/normalize-colors@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.82.0-nightly-20250902-9731e8ebc.tgz#8e97a0b1111d2df29fa625303caf2be342309ab1"
+ integrity sha512-jOBxfHsLoxfKv2KafbeJXMNqfppJOGXIQ1RyqMeqYEbLtr3IG43FI+eJNqjGUEEMineS+1bLZEW2Dj3pgqCACg==
"@react-native/popup-menu-android@0.82.0-nightly-20250821-0ef21bf8a":
version "0.82.0-nightly-20250821-0ef21bf8a"
@@ -2253,10 +2253,10 @@
dependencies:
nullthrows "^1.1.1"
-"@react-native/virtualized-lists@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.82.0-nightly-20250821-0ef21bf8a.tgz#6cada9138a9b83caf00ddc842a58a9e9934d129f"
- integrity sha512-EQw7KgmtJBhdFCiqTqtXNDNJ7H3hsIEOmgoS9RMIzIJlVnvGuOlkv0rqJylOIgglz9TXb/OxVOOcn4hb1V2srw==
+"@react-native/virtualized-lists@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.82.0-nightly-20250902-9731e8ebc.tgz#5ac8dd28dd04c6c753893c344e2c08f2ca6cdc25"
+ integrity sha512-mrAf+bOkKk0XeEYr3N83hdEzjuI3J35cc4R1YGoTmF5sR3jVbMMq11luAi1+fjeMiLJ13xOHlWlgY3exR+dAnA==
dependencies:
invariant "^2.2.4"
nullthrows "^1.1.1"
@@ -2716,14 +2716,6 @@
dependencies:
"@types/istanbul-lib-coverage" "*"
-"@types/istanbul-reports@^1.1.1":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2"
- integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==
- dependencies:
- "@types/istanbul-lib-coverage" "*"
- "@types/istanbul-lib-report" "*"
-
"@types/istanbul-reports@^3.0.0":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54"
@@ -2885,7 +2877,7 @@
dependencies:
"@types/react" "*"
-"@types/react@*", "@types/react@^19.0.0", "@types/react@^19.1.0":
+"@types/react@*", "@types/react@^19.0.0", "@types/react@^19.1.0", "@types/react@^19.1.1":
version "19.2.7"
resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.7.tgz#84e62c0f23e8e4e5ac2cadcea1ffeacccae7f62f"
integrity sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==
@@ -3009,13 +3001,6 @@
dependencies:
"@types/yargs-parser" "*"
-"@types/yargs@^13.0.0":
- version "13.0.12"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092"
- integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==
- dependencies:
- "@types/yargs-parser" "*"
-
"@types/yargs@^16.0.0":
version "16.0.11"
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.11.tgz#de958fb62e77fc383fa6cd8066eabdd13da88f04"
@@ -3632,11 +3617,6 @@ ansi-fragments@^0.2.1:
slice-ansi "^2.0.0"
strip-ansi "^5.0.0"
-ansi-regex@^4.0.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed"
- integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==
-
ansi-regex@^5.0.0, ansi-regex@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
@@ -4073,13 +4053,6 @@ babel-plugin-replace-ts-export-assignment@^0.0.2:
resolved "https://registry.yarnpkg.com/babel-plugin-replace-ts-export-assignment/-/babel-plugin-replace-ts-export-assignment-0.0.2.tgz#927a30ba303fcf271108980a8d4f80a693e1d53f"
integrity sha512-BiTEG2Ro+O1spuheL5nB289y37FFmz0ISE6GjpNCG2JuA/WNcuEHSYw01+vN8quGf208sID3FnZFDwVyqX18YQ==
-babel-plugin-syntax-hermes-parser@0.28.1:
- version "0.28.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.28.1.tgz#9e80a774ddb8038307a62316486669c668fb3568"
- integrity sha512-meT17DOuUElMNsL5LZN56d+KBp22hb0EfxWfuPUeoSi54e40v1W4C2V36P75FpsH9fVEfDKpw5Nnkahc8haSsQ==
- dependencies:
- hermes-parser "0.28.1"
-
babel-plugin-syntax-hermes-parser@0.32.0:
version "0.32.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.32.0.tgz#06f7452bf91adf6cafd7c98e7467404d4eb65cec"
@@ -6046,6 +6019,11 @@ fastq@^1.6.0:
dependencies:
reusify "^1.0.4"
+fb-dotslash@0.5.8:
+ version "0.5.8"
+ resolved "https://registry.yarnpkg.com/fb-dotslash/-/fb-dotslash-0.5.8.tgz#c5ef3dacd75e1ddb2197c367052464ddde0115f5"
+ integrity sha512-XHYLKk9J4BupDxi9bSEhkfss0m+Vr9ChTrjhf9l2iw3jB5C7BnY4GVPoMcqbrTutsKJso6yj2nAB6BI/F2oZaA==
+
fb-watchman@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
@@ -6215,6 +6193,11 @@ flow-bin@^0.279.0:
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.279.0.tgz#06e502a51d735083d715ef769f43bdcb0fc2bb61"
integrity sha512-Xf0T82atOcEf5auHvJfUF+wWIxieBuUJZBu2hlAizdhAzwqSJic74ZLaL6N5SsE0SY9PxPf3Z/lBU7iRpRa9Lw==
+flow-bin@^0.280.0:
+ version "0.280.0"
+ resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.280.0.tgz#73db532b4ea072a20a47277a38c0ab9f4f4600e6"
+ integrity sha512-7WHDjleRd6KDggSYovdrNSz1xMM9HKSI3ajHF3xMmWaETxx3SHnl60cclW6mPm3z+0FUVQSr7XFLiGSW3Zkq7Q==
+
flow-enums-runtime@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz#5bb0cd1b0a3e471330f4d109039b7eba5cb3e787"
@@ -6751,11 +6734,6 @@ hermes-estree@0.23.1:
resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.23.1.tgz#d0bac369a030188120ee7024926aabe5a9f84fdb"
integrity sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==
-hermes-estree@0.28.1:
- version "0.28.1"
- resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.28.1.tgz#631e6db146b06e62fc1c630939acf4a3c77d1b24"
- integrity sha512-w3nxl/RGM7LBae0v8LH2o36+8VqwOZGv9rX1wyoWT6YaKZLqpJZ0YQ5P0LVr3tuRpf7vCx0iIG4i/VmBJejxTQ==
-
hermes-estree@0.32.0:
version "0.32.0"
resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.32.0.tgz#bb7da6613ab8e67e334a1854ea1e209f487d307b"
@@ -6775,13 +6753,6 @@ hermes-parser@0.23.1:
dependencies:
hermes-estree "0.23.1"
-hermes-parser@0.28.1:
- version "0.28.1"
- resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.28.1.tgz#17b9e6377f334b6870a1f6da2e123fdcd0b605ac"
- integrity sha512-nf8o+hE8g7UJWParnccljHumE9Vlq8F7MqIdeahl+4x0tvCUJYRrT0L7h0MMg/X9YJmkNwsfbaNNrzPtFXOscg==
- dependencies:
- hermes-estree "0.28.1"
-
hermes-parser@0.32.0:
version "0.32.0"
resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.32.0.tgz#7916984ef6fdce62e7415d354cf35392061cd303"
@@ -7639,11 +7610,6 @@ jest-environment-node@^29.7.0:
jest-mock "^29.7.0"
jest-util "^29.7.0"
-jest-get-type@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e"
- integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==
-
jest-get-type@^29.6.3:
version "29.6.3"
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
@@ -7668,17 +7634,6 @@ jest-haste-map@^29.7.0:
optionalDependencies:
fsevents "^2.3.2"
-jest-junit@^10.0.0:
- version "10.0.0"
- resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-10.0.0.tgz#c94b91c24920a327c9d2a075e897b2dba4af494b"
- integrity sha512-dbOVRyxHprdSpwSAR9/YshLwmnwf+RSl5hf0kCGlhAcEeZY9aRqo4oNmaT0tLC16Zy9D0zekDjWkjHGjXlglaQ==
- dependencies:
- jest-validate "^24.9.0"
- mkdirp "^0.5.1"
- strip-ansi "^5.2.0"
- uuid "^3.3.3"
- xml "^1.0.1"
-
jest-junit@^13.0.0:
version "13.2.0"
resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-13.2.0.tgz#66eeb86429aafac8c1745a70f44ace185aacb943"
@@ -7689,6 +7644,16 @@ jest-junit@^13.0.0:
uuid "^8.3.2"
xml "^1.0.1"
+jest-junit@^16.0.0:
+ version "16.0.0"
+ resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-16.0.0.tgz#d838e8c561cf9fdd7eb54f63020777eee4136785"
+ integrity sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==
+ dependencies:
+ mkdirp "^1.0.4"
+ strip-ansi "^6.0.1"
+ uuid "^8.3.2"
+ xml "^1.0.1"
+
jest-leak-detector@^29.7.0:
version "29.7.0"
resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728"
@@ -7857,18 +7822,6 @@ jest-util@^29.7.0:
graceful-fs "^4.2.9"
picomatch "^2.2.3"
-jest-validate@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab"
- integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==
- dependencies:
- "@jest/types" "^24.9.0"
- camelcase "^5.3.1"
- chalk "^2.0.1"
- jest-get-type "^24.9.0"
- leven "^3.1.0"
- pretty-format "^24.9.0"
-
jest-validate@^29.7.0:
version "29.7.0"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c"
@@ -8767,30 +8720,6 @@ metro-runtime@0.83.3, metro-runtime@^0.83.1:
"@babel/runtime" "^7.25.0"
flow-enums-runtime "^0.0.6"
-metro-runtime@^0.82.2:
- version "0.82.5"
- resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.82.5.tgz#97840760e4cee49f08948dd918dbeba08dd0d0ec"
- integrity sha512-rQZDoCUf7k4Broyw3Ixxlq5ieIPiR1ULONdpcYpbJQ6yQ5GGEyYjtkztGD+OhHlw81LCR2SUAoPvtTus2WDK5g==
- dependencies:
- "@babel/runtime" "^7.25.0"
- flow-enums-runtime "^0.0.6"
-
-metro-source-map@0.82.5, metro-source-map@^0.82.2:
- version "0.82.5"
- resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.82.5.tgz#85e2e9672bff6d6cefb3b65b96fcc69f929c69c6"
- integrity sha512-wH+awTOQJVkbhn2SKyaw+0cd+RVSCZ3sHVgyqJFQXIee/yLs3dZqKjjeKKhhVeudgjXo7aE/vSu/zVfcQEcUfw==
- dependencies:
- "@babel/traverse" "^7.25.3"
- "@babel/traverse--for-generate-function-map" "npm:@babel/traverse@^7.25.3"
- "@babel/types" "^7.25.2"
- flow-enums-runtime "^0.0.6"
- invariant "^2.2.4"
- metro-symbolicate "0.82.5"
- nullthrows "^1.1.1"
- ob1 "0.82.5"
- source-map "^0.5.6"
- vlq "^1.0.0"
-
metro-source-map@0.83.3, metro-source-map@^0.83.1:
version "0.83.3"
resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.83.3.tgz#04bb464f7928ea48bcdfd18912c8607cf317c898"
@@ -8807,18 +8736,6 @@ metro-source-map@0.83.3, metro-source-map@^0.83.1:
source-map "^0.5.6"
vlq "^1.0.0"
-metro-symbolicate@0.82.5:
- version "0.82.5"
- resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.82.5.tgz#b53255cad11f1e6795f319ca4b41857bfe295d65"
- integrity sha512-1u+07gzrvYDJ/oNXuOG1EXSvXZka/0JSW1q2EYBWerVKMOhvv9JzDGyzmuV7hHbF2Hg3T3S2uiM36sLz1qKsiw==
- dependencies:
- flow-enums-runtime "^0.0.6"
- invariant "^2.2.4"
- metro-source-map "0.82.5"
- nullthrows "^1.1.1"
- source-map "^0.5.6"
- vlq "^1.0.0"
-
metro-symbolicate@0.83.3:
version "0.83.3"
resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.83.3.tgz#67af03950f0dfe19a7c059e3983e39a31e95d03a"
@@ -9576,13 +9493,6 @@ nullthrows@^1.1.1:
resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==
-ob1@0.82.5:
- version "0.82.5"
- resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.82.5.tgz#a2860e39385f4602bc2666c46f331b7531b94a8b"
- integrity sha512-QyQQ6e66f+Ut/qUVjEce0E/wux5nAGLXYZDn1jr15JWstHsCH3l6VVrg8NKDptW9NEiBXKOJeGF/ydxeSDF3IQ==
- dependencies:
- flow-enums-runtime "^0.0.6"
-
ob1@0.83.3:
version "0.83.3"
resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.83.3.tgz#2208e20c9070e9beff3ad067f2db458fa6b07014"
@@ -10150,16 +10060,6 @@ prettier@3.6.2:
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393"
integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==
-pretty-format@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9"
- integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==
- dependencies:
- "@jest/types" "^24.9.0"
- ansi-regex "^4.0.0"
- ansi-styles "^3.2.0"
- react-is "^16.8.4"
-
pretty-format@^29.0.0, pretty-format@^29.7.0:
version "29.7.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
@@ -10359,7 +10259,7 @@ react-clone-referenced-element@^1.0.1:
resolved "https://registry.yarnpkg.com/react-clone-referenced-element/-/react-clone-referenced-element-1.1.1.tgz#8d76727dc0459788e461741e804a512d20757381"
integrity sha512-LZBPvQV8W0B5dFzXFu+D3Tpil8YHS8tO00iFsfXcTLdtpuH7XyvaHqHcoz4hd4uNPQCZ30fceh+s7mLznzMXvg==
-react-devtools-core@^6.1.1, react-devtools-core@^6.1.5:
+react-devtools-core@^6.1.5:
version "6.1.5"
resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-6.1.5.tgz#c5eca79209dab853a03b2158c034c5166975feee"
integrity sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==
@@ -10367,7 +10267,7 @@ react-devtools-core@^6.1.1, react-devtools-core@^6.1.5:
shell-quote "^1.6.1"
ws "^7"
-react-is@^16.13.1, react-is@^16.8.4:
+react-is@^16.13.1:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -10382,19 +10282,44 @@ react-is@^19.0.0, react-is@^19.1.1:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.2.1.tgz#712fa6ee30c8398dc34260017325dad92b9224c5"
integrity sha512-L7BnWgRbMwzMAubQcS7sXdPdNLmKlucPlopgAzx7FtYbksWZgEWiuYM5x9T6UqS2Ne0rsgQTq5kY2SGqpzUkYA==
-react-native@0.82.0-nightly-20250821-0ef21bf8a:
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.82.0-nightly-20250821-0ef21bf8a.tgz#6a3c4d980e5e7fec2f6a2535778dfd655e43bf66"
- integrity sha512-jLY46ORgaGXgk4ndJPiK02OIqQqShdtr09bjZ43w0FH6cUlhPENT9lri8zZZ9HuWsyhOkG6JiIce7BBLBf0wvA==
+react-native-platform-override@0.0.0-canary.1016:
+ version "0.0.0-canary.1016"
+ resolved "https://registry.yarnpkg.com/react-native-platform-override/-/react-native-platform-override-0.0.0-canary.1016.tgz#6b6e66a2fb8e9c3295a7daa11987cd73dec616b7"
+ integrity sha512-PZPVmP0isrxjhtMgfRYpkgrbPPd8FejOLIB9KqVknAfCQT+Lgwh5mtl2JZQbtxaoyAzXZj71g493PSRFbcM3vw==
+ dependencies:
+ "@react-native-windows/fs" "^0.0.0-canary.70"
+ "@react-native-windows/package-utils" "^0.0.0-canary.96"
+ "@typescript-eslint/eslint-plugin" "^7.1.1"
+ "@typescript-eslint/parser" "^7.1.1"
+ async "^3.2.3"
+ chalk "^4.1.0"
+ fp-ts "^2.5.0"
+ globby "^11.1.0"
+ inquirer "^7.1.0"
+ io-ts "^2.1.1"
+ isutf8 "^3.0.0"
+ lodash "^4.17.15"
+ node-fetch "^2.6.7"
+ ora "^3.4.0"
+ semver "^7.3.2"
+ simple-git "^3.3.0"
+ source-map-support "^0.5.19"
+ upath "^1.2.0"
+ yargs "^16.2.0"
+
+react-native@0.82.0-nightly-20250902-9731e8ebc:
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.82.0-nightly-20250902-9731e8ebc.tgz#770f757718c1ab4430ca9777768bb1052fccaa20"
+ integrity sha512-++DWuJklDLbbAz+kdFTinjvNK5tUBevZKbUxwsyw3nA6DgPbgS/N+VdQyrpYSqevXkAzcOKvDLVIX41cS9DOSw==
dependencies:
"@jest/create-cache-key-function" "^29.7.0"
- "@react-native/assets-registry" "0.82.0-nightly-20250821-0ef21bf8a"
- "@react-native/codegen" "0.82.0-nightly-20250821-0ef21bf8a"
- "@react-native/community-cli-plugin" "0.82.0-nightly-20250821-0ef21bf8a"
- "@react-native/gradle-plugin" "0.82.0-nightly-20250821-0ef21bf8a"
- "@react-native/js-polyfills" "0.82.0-nightly-20250821-0ef21bf8a"
- "@react-native/normalize-colors" "0.82.0-nightly-20250821-0ef21bf8a"
- "@react-native/virtualized-lists" "0.82.0-nightly-20250821-0ef21bf8a"
+ "@react-native/assets-registry" "0.82.0-nightly-20250902-9731e8ebc"
+ "@react-native/codegen" "0.82.0-nightly-20250902-9731e8ebc"
+ "@react-native/community-cli-plugin" "0.82.0-nightly-20250902-9731e8ebc"
+ "@react-native/gradle-plugin" "0.82.0-nightly-20250902-9731e8ebc"
+ "@react-native/js-polyfills" "0.82.0-nightly-20250902-9731e8ebc"
+ "@react-native/normalize-colors" "0.82.0-nightly-20250902-9731e8ebc"
+ "@react-native/virtualized-lists" "0.82.0-nightly-20250902-9731e8ebc"
abort-controller "^3.0.0"
anser "^1.4.9"
ansi-regex "^5.0.0"
@@ -10443,7 +10368,7 @@ react-test-renderer@19.1.1:
react-is "^19.1.1"
scheduler "^0.26.0"
-react@19.1.0, react@19.1.1, react@^19.1.0:
+react@19.1.0, react@19.1.1, react@^19.1.1:
version "19.1.1"
resolved "https://registry.yarnpkg.com/react/-/react-19.1.1.tgz#06d9149ec5e083a67f9a1e39ce97b06a03b644af"
integrity sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==
@@ -12056,11 +11981,6 @@ utils-merge@1.0.1:
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
-uuid@^3.3.3:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
- integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
-
uuid@^8.0.0, uuid@^8.3.0, uuid@^8.3.2:
version "8.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
From bb50808b9f7e63da8af5511bf4b2faf064add19f Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Fri, 26 Dec 2025 12:20:47 +0530
Subject: [PATCH 03/30] conflict resolution
---
.../src-win/Libraries/Image/Image.win32.js | 17 +-----
.../src-win/Libraries/Text/Text.win32.js | 6 --
.../components/view/AccessibilityPrimitives.h | 60 -------------------
.../src-win/Libraries/Image/Image.windows.js | 3 -
vnext/src-win/Libraries/Text/Text.windows.js | 3 -
5 files changed, 1 insertion(+), 88 deletions(-)
diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Image/Image.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Image/Image.win32.js
index 3602f6cec91..38d730572f8 100644
--- a/packages/@office-iss/react-native-win32/src-win/Libraries/Image/Image.win32.js
+++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Image/Image.win32.js
@@ -206,27 +206,13 @@ let BaseImage: AbstractImageIOS = ({
// Win32]
return (
-<<<<<<< Upstream
-
-=======
{analyticTag => {
return (
->>>>>>> Override
);
}}
diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Text/Text.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Text/Text.win32.js
index 43e1dae81ae..8c4346e56c4 100644
--- a/packages/@office-iss/react-native-win32/src-win/Libraries/Text/Text.win32.js
+++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Text/Text.win32.js
@@ -560,9 +560,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
accessibilityElementsHidden: _accessibilityElementsHidden,
accessibilityLabel: _accessibilityLabel,
accessibilityState: _accessibilityState,
-<<<<<<< Upstream
importantForAccessibility: _importantForAccessibility,
-=======
// #[ Win32
accessibilityControls: _accessibilityControls,
accessibilityDescribedBy: _accessibilityDescribedBy,
@@ -571,7 +569,6 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
accessibilityPositionInSet: _accessibilityPositionInSet,
accessibilitySetSize: _accessibilitySetSize,
// #] Win32
->>>>>>> Override
nativeID: _nativeID,
numberOfLines: _numberOfLines,
selectable: _selectable,
@@ -604,9 +601,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
accessibilityElementsHidden={_accessibilityElementsHidden}
accessibilityLabel={_accessibilityLabel}
accessibilityState={_accessibilityState}
-<<<<<<< Upstream
importantForAccessibility={_importantForAccessibility}
-=======
// #[ Win32
accessibilityControls={_accessibilityControls}
accessibilityDescribedBy={_accessibilityDescribedBy}
@@ -615,7 +610,6 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
accessibilityPositionInSet={_accessibilityPositionInSet}
accessibilitySetSize={_accessibilitySetSize}
// #] Win32
->>>>>>> Override
nativeID={_nativeID}
numberOfLines={_numberOfLines}
ref={forwardedRef}
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h
index c6ef8077c95..3c2eb2fc187 100644
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h
@@ -90,41 +90,6 @@ constexpr bool operator!=(
return !(rhs == lhs);
}
-<<<<<<< Upstream
-=======
-#if RN_DEBUG_STRING_CONVERTIBLE
-inline std::string toString(AccessibilityState::CheckedState state) {
- switch (state) {
- case AccessibilityState::Unchecked:
- return "Unchecked";
- case AccessibilityState::Checked:
- return "Checked";
- case AccessibilityState::Mixed:
- return "Mixed";
- case AccessibilityState::None:
- return "None";
-//#[Windows
-#if defined(_MSC_VER)
- default:
- __assume(0);
-#elif defined(__GNUC__) || defined(__clang__)
- default:
- __builtin_unreachable();
-#endif
-// 15379 #Windows]
- }
-}
-
-inline std::string toString(const AccessibilityState& accessibilityState) {
- return "{disabled:" + toString(accessibilityState.disabled) +
- ",selected:" + toString(accessibilityState.selected) +
- ",checked:" + toString(accessibilityState.checked) +
- ",busy:" + toString(accessibilityState.busy) +
- ",expanded:" + toString(accessibilityState.expanded) + "}";
-}
-#endif
-
->>>>>>> Override
struct AccessibilityLabelledBy {
std::vector value{};
};
@@ -174,32 +139,7 @@ enum class AccessibilityLiveRegion : uint8_t {
Assertive,
};
-<<<<<<< Upstream
enum class AccessibilityRole : uint8_t {
-=======
-inline std::string toString(
- const AccessibilityLiveRegion& accessibilityLiveRegion) {
- switch (accessibilityLiveRegion) {
- case AccessibilityLiveRegion::None:
- return "none";
- case AccessibilityLiveRegion::Polite:
- return "polite";
- case AccessibilityLiveRegion::Assertive:
- return "assertive";
-//#[Windows
-#if defined(_MSC_VER)
- default:
- __assume(0);
-#elif defined(__GNUC__) || defined(__clang__)
- default:
- __builtin_unreachable();
-#endif
-// 15379 #Windows]
- }
-}
-
-enum class AccessibilityRole {
->>>>>>> Override
None,
Button,
Dropdownlist,
diff --git a/vnext/src-win/Libraries/Image/Image.windows.js b/vnext/src-win/Libraries/Image/Image.windows.js
index 55d863ef29c..8e663181faf 100644
--- a/vnext/src-win/Libraries/Image/Image.windows.js
+++ b/vnext/src-win/Libraries/Image/Image.windows.js
@@ -155,9 +155,7 @@ let BaseImage: AbstractImageIOS = ({
'aria-disabled': ariaDisabled,
'aria-expanded': ariaExpanded,
'aria-selected': ariaSelected,
-<<<<<<< Upstream
'aria-hidden': ariaHidden,
-=======
'aria-readonly': ariaReadOnly, // Windows
'aria-multiselectable': ariaMultiselectable, // Windows
'aria-required': ariaRequired, // Windows,
@@ -165,7 +163,6 @@ let BaseImage: AbstractImageIOS = ({
'aria-posinset': ariaPosinset, // Windows
'aria-setsize': ariaSetsize, // Windows
height,
->>>>>>> Override
src,
...restProps
} = props;
diff --git a/vnext/src-win/Libraries/Text/Text.windows.js b/vnext/src-win/Libraries/Text/Text.windows.js
index 5f23bf20f78..381732d96d5 100644
--- a/vnext/src-win/Libraries/Text/Text.windows.js
+++ b/vnext/src-win/Libraries/Text/Text.windows.js
@@ -543,16 +543,13 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
accessibilityElementsHidden: _accessibilityElementsHidden,
accessibilityLabel: _accessibilityLabel,
accessibilityState: _accessibilityState,
-<<<<<<< Upstream
importantForAccessibility: _importantForAccessibility,
-=======
// #[Windows
accessibilityLevel: _accessibilityLevel, // Windows
accessibilityPosInSet: _accessibilityPosInSet, // Windows
accessibilitySetSize: _accessibilitySetSize, // Windows
ellipsizeMode: ellipsizeMode ?? 'tail', // Windows
// #]Windows
->>>>>>> Override
nativeID: _nativeID,
numberOfLines: _numberOfLines,
selectable: _selectable,
From cde12172d3b37f7c6a162a928d9eb8b3c7addb92 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Fri, 26 Dec 2025 12:26:26 +0530
Subject: [PATCH 04/30] Update dependencies to latest nightly versions
---
packages/@react-native-windows/tester/package.json | 4 ++--
packages/@react-native/tester/package.json | 6 +++---
packages/@rnw-scripts/eslint-config/package.json | 4 ++--
packages/sample-app-fabric/package.json | 4 ++--
vnext/package.json | 4 ++--
5 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/packages/@react-native-windows/tester/package.json b/packages/@react-native-windows/tester/package.json
index 0d4ea136c93..4d1a53e5e54 100644
--- a/packages/@react-native-windows/tester/package.json
+++ b/packages/@react-native-windows/tester/package.json
@@ -24,7 +24,7 @@
"react-native-xaml": "^0.0.80"
},
"devDependencies": {
- "@react-native/new-app-screen": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/new-app-screen": "0.82.0-nightly-20250902-9731e8ebc",
"@react-native/tester": "0.82.0-main",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.38",
@@ -41,4 +41,4 @@
"engines": {
"node": ">= 22"
}
-}
+}
\ No newline at end of file
diff --git a/packages/@react-native/tester/package.json b/packages/@react-native/tester/package.json
index b5f1696e8dd..5e2088877aa 100644
--- a/packages/@react-native/tester/package.json
+++ b/packages/@react-native/tester/package.json
@@ -26,8 +26,8 @@
"e2e-test-ios": "./scripts/maestro-test-ios.sh"
},
"dependencies": {
- "@react-native/new-app-screen": "0.82.0-nightly-20250821-0ef21bf8a",
- "@react-native/popup-menu-android": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/new-app-screen": "0.82.0-nightly-20250902-9731e8ebc",
+ "@react-native/popup-menu-android": "0.82.0-nightly-20250902-9731e8ebc",
"flow-enums-runtime": "^0.0.6",
"invariant": "^2.2.4",
"nullthrows": "^1.1.1"
@@ -64,4 +64,4 @@
"listr2": "^6.4.1",
"rxjs": "npm:@react-native-community/rxjs@6.5.4-custom"
}
-}
+}
\ No newline at end of file
diff --git a/packages/@rnw-scripts/eslint-config/package.json b/packages/@rnw-scripts/eslint-config/package.json
index ae79cb8f9fe..81020ccddf7 100644
--- a/packages/@rnw-scripts/eslint-config/package.json
+++ b/packages/@rnw-scripts/eslint-config/package.json
@@ -13,7 +13,7 @@
"@babel/core": "^7.25.2",
"@babel/eslint-parser": "^7.25.1",
"@microsoft/eslint-plugin-sdl": "^0.2.0",
- "@react-native/eslint-config": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/eslint-config": "0.82.0-nightly-20250902-9731e8ebc",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-ft-flow": "^2.0.1",
"hermes-eslint": "0.23.1"
@@ -29,4 +29,4 @@
"engines": {
"node": ">= 22"
}
-}
+}
\ No newline at end of file
diff --git a/packages/sample-app-fabric/package.json b/packages/sample-app-fabric/package.json
index d08a88a7be5..ef7ee737cd2 100644
--- a/packages/sample-app-fabric/package.json
+++ b/packages/sample-app-fabric/package.json
@@ -12,7 +12,7 @@
"bundle": "rnw-scripts prepareBundle && npx @react-native-community/cli bundle --platform windows --entry-file App.tsx --bundle-output windows/SampleAppFabric/Bundle/app.windows.bundle --assets-dest windows/SampleAppFabric/Bundle"
},
"dependencies": {
- "@react-native/new-app-screen": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/new-app-screen": "0.82.0-nightly-20250902-9731e8ebc",
"@types/react": "^19.1.1",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
@@ -49,4 +49,4 @@
"engines": {
"node": ">=18"
}
-}
+}
\ No newline at end of file
diff --git a/vnext/package.json b/vnext/package.json
index 46dbfcb7bb2..18b3cb2ba86 100644
--- a/vnext/package.json
+++ b/vnext/package.json
@@ -33,7 +33,7 @@
"@react-native/community-cli-plugin": "0.82.0-nightly-20250902-9731e8ebc",
"@react-native/gradle-plugin": "0.82.0-nightly-20250902-9731e8ebc",
"@react-native/js-polyfills": "0.82.0-nightly-20250902-9731e8ebc",
- "@react-native/new-app-screen": "0.82.0-nightly-20250821-0ef21bf8a",
+ "@react-native/new-app-screen": "0.82.0-nightly-20250902-9731e8ebc",
"@react-native/normalize-colors": "0.82.0-nightly-20250902-9731e8ebc",
"@react-native/virtualized-lists": "0.82.0-nightly-20250902-9731e8ebc",
"abort-controller": "^3.0.0",
@@ -150,4 +150,4 @@
"engines": {
"node": ">= 22"
}
-}
+}
\ No newline at end of file
From 5c7e4a370b4edd84dc08c06a38af23b9208cc61b Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Fri, 26 Dec 2025 12:38:55 +0530
Subject: [PATCH 05/30] rn-tester updated files
---
.../Accessibility/AccessibilityExample.js | 94 ++++++++++++++++++-
.../Animated/TransformStylesExample.js | 1 +
.../examples/Appearance/AppearanceExample.js | 7 +-
.../DrawerLayoutAndroidExample.js | 4 +-
.../ManyPointersPropertiesExample.js | 2 +-
.../PointerEventSupport.js | 7 +-
.../W3CPointerEventsEventfulView.js | 3 +-
.../js/examples/Filter/FilterExample.js | 2 +-
.../MixBlendMode/MixBlendModeExample.js | 2 +-
.../PointerEvents/PointerEventsExample.js | 4 +-
.../Pressable/PressableExampleFbInternal.js | 2 +-
.../js/examples/Text/TextSharedExamples.js | 14 ++-
.../NativeCxxModuleExampleExample.js | 2 +-
.../tester/js/examples/XHR/XHRExampleFetch.js | 16 +++-
14 files changed, 138 insertions(+), 22 deletions(-)
diff --git a/packages/@react-native/tester/js/examples/Accessibility/AccessibilityExample.js b/packages/@react-native/tester/js/examples/Accessibility/AccessibilityExample.js
index 71906a96d54..2be1048de48 100644
--- a/packages/@react-native/tester/js/examples/Accessibility/AccessibilityExample.js
+++ b/packages/@react-native/tester/js/examples/Accessibility/AccessibilityExample.js
@@ -30,6 +30,7 @@ import {
ScrollView,
StyleSheet,
Switch,
+ Text,
TextInput,
TouchableNativeFeedback,
TouchableOpacity,
@@ -1330,7 +1331,7 @@ function SetAccessibilityFocusExample(props: {}): React.Node {
return (
- {/* $FlowFixMe[incompatible-type */}
+ {/* $FlowFixMe[incompatible-type] */}
SetAccessibilityFocus on native element. This should get focus after
clicking the button!
@@ -2136,6 +2137,91 @@ function LabelCooptingExample(): React.Node {
);
}
+function AriaHiddenExample(): React.Node {
+ const [ariaHidden, setAriaHidden] = useState(false);
+
+ return (
+
+
+
+ Enable aria-hidden
+
+ setAriaHidden(!ariaHidden)}
+ accessibilityLabel="Enable aria-hidden"
+ />
+
+
+
+
+
+ View with Text content
+
+
+ Regular Text
+
+
+
+
+
+ console.log('Pressed')}
+ aria-label={
+ ariaHidden ? 'This should be hidden' : 'This should be accessible'
+ }
+ style={styles.button}>
+ Pressable with text content
+
+
+
+
+ );
+}
+
exports.title = 'Accessibility';
exports.documentationURL = 'https://reactnative.dev/docs/accessibilityinfo';
exports.description = 'Examples of using Accessibility APIs.';
@@ -2251,4 +2337,10 @@ exports.examples = [
return ;
},
},
+ {
+ title: 'aria-hidden',
+ render(): React.MixedElement {
+ return ;
+ },
+ },
] as Array;
diff --git a/packages/@react-native/tester/js/examples/Animated/TransformStylesExample.js b/packages/@react-native/tester/js/examples/Animated/TransformStylesExample.js
index df5f7b63ffb..4168e877a57 100644
--- a/packages/@react-native/tester/js/examples/Animated/TransformStylesExample.js
+++ b/packages/@react-native/tester/js/examples/Animated/TransformStylesExample.js
@@ -82,6 +82,7 @@ function AnimatedTransformStyleExample(): React.Node {
const [properties, setProperties] = useState(transformProperties);
const [useNativeDriver, setUseNativeDriver] = useState(false);
const onToggle = (property: string) =>
+ // $FlowFixMe[incompatible-type]
setProperties({
...properties,
[property]: {
diff --git a/packages/@react-native/tester/js/examples/Appearance/AppearanceExample.js b/packages/@react-native/tester/js/examples/Appearance/AppearanceExample.js
index 427653514f6..c95d77150ec 100644
--- a/packages/@react-native/tester/js/examples/Appearance/AppearanceExample.js
+++ b/packages/@react-native/tester/js/examples/Appearance/AppearanceExample.js
@@ -136,7 +136,7 @@ const ColorShowcase = (props: {themeName: string}) => (
const ToggleNativeAppearance = () => {
const [nativeColorScheme, setNativeColorScheme] =
- useState(null);
+ useState('unspecified');
const colorScheme = useColorScheme();
useEffect(() => {
@@ -155,7 +155,10 @@ const ToggleNativeAppearance = () => {
title="Set to dark"
onPress={() => setNativeColorScheme('dark')}
/>
-
);
};
diff --git a/packages/@react-native/tester/js/examples/DrawerLayoutAndroid/DrawerLayoutAndroidExample.js b/packages/@react-native/tester/js/examples/DrawerLayoutAndroid/DrawerLayoutAndroidExample.js
index c0360008167..5e70b342aa4 100644
--- a/packages/@react-native/tester/js/examples/DrawerLayoutAndroid/DrawerLayoutAndroidExample.js
+++ b/packages/@react-native/tester/js/examples/DrawerLayoutAndroid/DrawerLayoutAndroidExample.js
@@ -40,7 +40,7 @@ const Drawer = () => {
I'm in the Drawer!
drawer.current.closeDrawer()}
/>
@@ -69,7 +69,7 @@ const Drawer = () => {
drawer.current.openDrawer()}
/>
diff --git a/packages/@react-native/tester/js/examples/Experimental/Compatibility/ManyPointersPropertiesExample.js b/packages/@react-native/tester/js/examples/Experimental/Compatibility/ManyPointersPropertiesExample.js
index 1628c6bef70..edda7691b56 100644
--- a/packages/@react-native/tester/js/examples/Experimental/Compatibility/ManyPointersPropertiesExample.js
+++ b/packages/@react-native/tester/js/examples/Experimental/Compatibility/ManyPointersPropertiesExample.js
@@ -57,7 +57,7 @@ function ManyPointersPropertiesExample(): React.Node {
{Object.entries(data).map(
- //$FlowFixMe can't supply generic for Object.entries
+ //$FlowFixMe[incompatible-type] can't supply generic for Object.entries
([key, evt]: [string, PointerEvent['nativeEvent']]) => (
PointerID: {evt.pointerId}
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventSupport.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventSupport.js
index b6ea36061a1..4481baf9e9d 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventSupport.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventSupport.js
@@ -121,7 +121,8 @@ export function check_PointerEvent(
harness.test(
({assert_true}) => {
assert_true(
- // $FlowFixMe
+ // $FlowFixMe[invalid-computed-prop]
+ // $FlowFixMe[prop-missing]
idl_type_check[type](nativeEvent[name]),
name + ' attribute of type ' + type,
);
@@ -132,7 +133,7 @@ export function check_PointerEvent(
' IDL type ' +
type +
' (JS type was ' +
- // $FlowFixMe
+ // $FlowFixMe[prop-missing]
typeof nativeEvent[name] +
')',
{skip},
@@ -142,7 +143,7 @@ export function check_PointerEvent(
if (value !== undefined) {
harness.test(
({assert_equals}) => {
- // $FlowFixMe
+ // $FlowFixMe[prop-missing]
assert_equals(nativeEvent[name], value, name + ' attribute value');
},
pointerTestName + '.' + name + ' value is ' + String(value) + '.',
diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventsEventfulView.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventsEventfulView.js
index 3dd61de4d4c..a5a6153ee5d 100644
--- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventsEventfulView.js
+++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventsEventfulView.js
@@ -70,7 +70,8 @@ export default function EventfulView(props: {
const eventLog =
(eventName: string, handler: ?(e: PointerEvent) => void) =>
(event: PointerEvent) => {
- // $FlowFixMe Using private property
+ // $FlowFixMe[incompatible-use]
+ // $FlowFixMe[prop-missing] Using private property
log(`${name} - ${eventName} - target: ${event.target._nativeTag}`);
handler?.(event);
};
diff --git a/packages/@react-native/tester/js/examples/Filter/FilterExample.js b/packages/@react-native/tester/js/examples/Filter/FilterExample.js
index 987e1da5623..19e185b499a 100644
--- a/packages/@react-native/tester/js/examples/Filter/FilterExample.js
+++ b/packages/@react-native/tester/js/examples/Filter/FilterExample.js
@@ -35,7 +35,7 @@ function StaticViewAndImage(props: Props): React.Node {
Hello world!
- {/* $FlowFixMe - ImageStyle is not compatible with ViewStyle */}
+ {/* $FlowFixMe[incompatible-use] - ImageStyle is not compatible with ViewStyle */}
- {/* $FlowFixMe - ImageStyle is not compatible with ViewStyle */}
+ {/* $FlowFixMe[incompatible-use] - ImageStyle is not compatible with ViewStyle */}
{
};
handleLog = (msg: string) => {
- // $FlowFixMe
+ // $FlowFixMe[cannot-write]
this.state.log = this.state.log.concat([msg]);
};
@@ -44,7 +44,7 @@ class ExampleBox extends React.Component {
* happens.
*/
handleTouchCapture = () => {
- // $FlowFixMe
+ // $FlowFixMe[cannot-write]
this.state.log = this.state.log.concat(['---']);
};
diff --git a/packages/@react-native/tester/js/examples/Pressable/PressableExampleFbInternal.js b/packages/@react-native/tester/js/examples/Pressable/PressableExampleFbInternal.js
index aa09fc9aa70..6120acdd433 100644
--- a/packages/@react-native/tester/js/examples/Pressable/PressableExampleFbInternal.js
+++ b/packages/@react-native/tester/js/examples/Pressable/PressableExampleFbInternal.js
@@ -8,5 +8,5 @@
* @format
*/
-// $FlowFixMe
+// $FlowFixMe[unclear-type]
export const examples: Array = [];
diff --git a/packages/@react-native/tester/js/examples/Text/TextSharedExamples.js b/packages/@react-native/tester/js/examples/Text/TextSharedExamples.js
index e45fac6545c..fb483463394 100644
--- a/packages/@react-native/tester/js/examples/Text/TextSharedExamples.js
+++ b/packages/@react-native/tester/js/examples/Text/TextSharedExamples.js
@@ -28,11 +28,15 @@ function InlineView(props: {
Child
Child
- {props !== null && props.long === true && (
-
- aaaa a aaaa aaaaaa aaa a a a aaaaa sdsds dsdSAD asd ASDasd ASDas
-
- )}
+ {
+ /* $FlowFixMe[invalid-compare] Error discovered during Constant
+ * Condition roll out. See https://fburl.com/workplace/5whu3i34. */
+ props !== null && props.long === true && (
+
+ aaaa a aaaa aaaaaa aaa a a a aaaaa sdsds dsdSAD asd ASDasd ASDas
+
+ )
+ }
);
diff --git a/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js b/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js
index fb7e1f398e6..cfd512be703 100644
--- a/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js
+++ b/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js
@@ -313,7 +313,7 @@ class NativeCxxModuleExampleExample extends React.Component<{}, State> {
style={[styles.column, styles.button]}
onPress={() =>
Object.keys(this._tests).forEach(item =>
- // $FlowFixMe
+ // $FlowFixMe[incompatible-type]
this._setResult(item, this._tests[item]()),
)
}>
diff --git a/packages/@react-native/tester/js/examples/XHR/XHRExampleFetch.js b/packages/@react-native/tester/js/examples/XHR/XHRExampleFetch.js
index 5e349813830..2fecacc9800 100644
--- a/packages/@react-native/tester/js/examples/XHR/XHRExampleFetch.js
+++ b/packages/@react-native/tester/js/examples/XHR/XHRExampleFetch.js
@@ -24,6 +24,7 @@ import {
class XHRExampleFetch extends React.Component {
responseURL: ?string;
responseHeaders: ?Object;
+ intervalId: ?IntervalID;
constructor(props: any) {
super(props);
@@ -32,6 +33,14 @@ class XHRExampleFetch extends React.Component {
};
this.responseURL = null;
this.responseHeaders = null;
+ this.intervalId = null;
+ }
+
+ componentWillUnmount() {
+ if (this.intervalId != null) {
+ clearInterval(this.intervalId);
+ this.intervalId = null;
+ }
}
submit(uri: string) {
@@ -68,6 +77,11 @@ class XHRExampleFetch extends React.Component {
}
startRepeatedlyFetch() {
+ // Clear any existing interval first
+ if (this.intervalId != null) {
+ clearInterval(this.intervalId);
+ }
+
const doRequest = () => {
const url =
'https://microsoftedge.github.io/Demos/json-dummy-data/5MB-min.json';
@@ -83,7 +97,7 @@ class XHRExampleFetch extends React.Component {
})
.catch(error => console.error(error));
};
- setInterval(doRequest, 500);
+ this.intervalId = setInterval(doRequest, 500);
}
render(): React.Node {
From e8d1fed08d8f46c6a620510b82a867c18767bc00 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Fri, 26 Dec 2025 12:46:42 +0530
Subject: [PATCH 06/30] solve react-native-platform-override script failure
---
.../src/e2etest/FileSystemRepository.test.ts | 1 -
.../src/test/OverrideFactory.test.ts | 4 +---
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/packages/react-native-platform-override/src/e2etest/FileSystemRepository.test.ts b/packages/react-native-platform-override/src/e2etest/FileSystemRepository.test.ts
index b35a79663fd..d923a227cdc 100644
--- a/packages/react-native-platform-override/src/e2etest/FileSystemRepository.test.ts
+++ b/packages/react-native-platform-override/src/e2etest/FileSystemRepository.test.ts
@@ -119,7 +119,6 @@ test('deleteFile - Exists', async () => {
test('deleteFile - Does Not Exist', async () => {
await usingFiles(['0.59.9/Icon-60@2x.conflict.png'], async repo => {
-
await expect(repo.deleteFile('nope')).rejects.toThrow();
});
});
diff --git a/packages/react-native-platform-override/src/test/OverrideFactory.test.ts b/packages/react-native-platform-override/src/test/OverrideFactory.test.ts
index 792c2b2eaa1..3069d46def5 100644
--- a/packages/react-native-platform-override/src/test/OverrideFactory.test.ts
+++ b/packages/react-native-platform-override/src/test/OverrideFactory.test.ts
@@ -117,7 +117,6 @@ test.each([]>[
testCall(factory.createPatchOverride, ['nope.windows.js', 'foo.js', 1245]),
testCall(factory.createDirectoryCopyOverride, ['nope', 'bar', 1245]),
])('%s - No Override', async (_, fn, params) => {
-
await expect(fn.apply(params)).rejects.toThrow();
});
@@ -126,7 +125,6 @@ test.each([]>[
testCall(factory.createDerivedOverride, ['foo.windows.js', 'nope.js', 1245]),
testCall(factory.createPatchOverride, ['foo.windows.js', 'nope.js', 1245]),
testCall(factory.createDirectoryCopyOverride, ['src-win/bar', 'nope', 1245]),
-])('%s - No Base', (_, fn, params) => {
-
+])('%s - No Base', async (_, fn, params) => {
await expect(fn.apply(params)).rejects.toThrow();
});
From bf1b74fe20f1aacc56147222ab3c825dcafa75a3 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Mon, 5 Jan 2026 14:01:13 +0530
Subject: [PATCH 07/30] remove deprecated legacy apis for 0.82
---
vnext/Desktop.UnitTests/InstanceMocks.cpp | 2 -
vnext/Microsoft.ReactNative/ABICxxModule.cpp | 49 ------
vnext/Microsoft.ReactNative/ABICxxModule.h | 33 ----
.../Base/CxxReactIncludes.h | 3 -
.../IReactModuleBuilder.cpp | 154 ++----------------
.../IReactModuleBuilder.h | 11 --
.../Microsoft.ReactNative.vcxproj | 5 +-
.../Modules/DevSettingsModule.h | 1 -
.../Modules/LinkingManagerModule.cpp | 3 -
.../Microsoft.ReactNative/Modules/Timing.cpp | 1 -
.../NativeModulesProvider.cpp | 47 ------
.../NativeModulesProvider.h | 22 ---
vnext/Microsoft.ReactNative/ReactHost/React.h | 8 -
.../ReactHost/ReactInstanceWin.cpp | 7 +-
.../ReactHost/ReactInstanceWin.h | 2 -
.../ReactHost/ReactNativeHeaders.h | 5 -
.../Microsoft.ReactNative/ReactNativeHost.cpp | 5 +-
vnext/Microsoft.ReactNative/ReactNativeHost.h | 1 -
.../ReactPackageBuilder.cpp | 9 +-
.../ReactPackageBuilder.h | 3 -
vnext/Microsoft.ReactNative/Views/DevMenu.h | 1 -
vnext/ReactCommon/ReactCommon.vcxproj | 38 +----
...imeSamplingProfileTraceEventSerializer.cpp | 9 +-
vnext/Shared/BatchingMessageQueueThread.h | 15 --
vnext/Shared/DevServerHelper.h | 2 +-
vnext/Shared/DevSettings.h | 8 +-
vnext/Shared/DevSupportManager.cpp | 1 -
vnext/Shared/IDevSupportManager.h | 4 -
vnext/Shared/JSI/JSExecutorFactoryDelegate.h | 10 --
.../Shared/JSI/JSExecutorFactorySettings.cpp | 28 ----
vnext/Shared/JSI/JSExecutorFactorySettings.h | 17 --
vnext/Shared/Logging.cpp | 6 +-
vnext/Shared/Modules/CxxModuleUtilities.cpp | 8 -
vnext/Shared/Modules/CxxModuleUtilities.h | 8 -
vnext/Shared/NativeModuleProvider.h | 36 ----
vnext/Shared/OInstance.cpp | 10 +-
vnext/Shared/Shared.vcxitems | 28 +---
.../Shared/Threading/BatchingQueueThread.cpp | 126 --------------
vnext/Shared/Threading/BatchingQueueThread.h | 55 -------
.../Threading/MessageQueueThreadFactory.cpp | 6 -
.../Threading/MessageQueueThreadFactory.h | 4 -
41 files changed, 53 insertions(+), 738 deletions(-)
diff --git a/vnext/Desktop.UnitTests/InstanceMocks.cpp b/vnext/Desktop.UnitTests/InstanceMocks.cpp
index 6b20cf75ab4..fce4281b00a 100644
--- a/vnext/Desktop.UnitTests/InstanceMocks.cpp
+++ b/vnext/Desktop.UnitTests/InstanceMocks.cpp
@@ -1,7 +1,5 @@
#include "InstanceMocks.h"
-#include
-
using namespace facebook::react;
using folly::dynamic;
diff --git a/vnext/Microsoft.ReactNative/ABICxxModule.cpp b/vnext/Microsoft.ReactNative/ABICxxModule.cpp
index d9fd5fcc24e..fc36ab244fa 100644
--- a/vnext/Microsoft.ReactNative/ABICxxModule.cpp
+++ b/vnext/Microsoft.ReactNative/ABICxxModule.cpp
@@ -1,51 +1,2 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-
-#include "pch.h"
-#include "ABICxxModule.h"
-#include "DynamicWriter.h"
-
-using namespace facebook::xplat::module;
-
-namespace winrt::Microsoft::ReactNative {
-
-ABICxxModule::ABICxxModule(
- winrt::Windows::Foundation::IInspectable const &nativeModule,
- std::string &&name,
- std::vector &&constantProviders,
- std::vector &&methods) noexcept
- : m_nativeModule{nativeModule},
- m_name{std::move(name)},
- m_constantProviders(std::move(constantProviders)),
- m_methods(std::move(methods)) {}
-
-std::string ABICxxModule::getName() noexcept {
- return m_name;
-}
-
-std::map ABICxxModule::getConstants() noexcept {
- std::map result;
-
- IJSValueWriter argWriter = winrt::make();
- argWriter.WriteObjectBegin();
- for (auto &constWriter : m_constantProviders) {
- constWriter(argWriter);
- }
- argWriter.WriteObjectEnd();
-
- folly::dynamic constants = argWriter.as()->TakeValue();
- if (constants.isObject()) {
- for (auto &item : constants.items()) {
- result[item.first.asString()] = std::move(item.second);
- }
- }
-
- return result;
-}
-
-std::vector ABICxxModule::getMethods() noexcept {
- auto result = std::move(m_methods);
- return result;
-}
-
-} // namespace winrt::Microsoft::ReactNative
diff --git a/vnext/Microsoft.ReactNative/ABICxxModule.h b/vnext/Microsoft.ReactNative/ABICxxModule.h
index 5f7068469cf..ccc824cef09 100644
--- a/vnext/Microsoft.ReactNative/ABICxxModule.h
+++ b/vnext/Microsoft.ReactNative/ABICxxModule.h
@@ -1,38 +1,5 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-//
-// The ABICxxModule implements the CxxModule interface and wraps up the ABI-safe
-// NativeModule.
-//
-
#pragma once
-#include "DynamicReader.h"
-#include "DynamicWriter.h"
-#include "ReactHost/React.h"
-#include "cxxreact/CxxModule.h"
-#include "winrt/Microsoft.ReactNative.h"
-
-namespace winrt::Microsoft::ReactNative {
-
-struct ABICxxModule : facebook::xplat::module::CxxModule {
- ABICxxModule(
- winrt::Windows::Foundation::IInspectable const &nativeModule,
- std::string &&name,
- std::vector &&constantProviders,
- std::vector &&methods) noexcept;
-
- public: // CxxModule implementation
- std::string getName() noexcept override;
- std::map getConstants() noexcept override;
- std::vector getMethods() noexcept override;
-
- private:
- winrt::Windows::Foundation::IInspectable m_nativeModule; // just to keep native module alive
- std::string m_name;
- std::vector m_constantProviders;
- std::vector m_methods;
-};
-
-} // namespace winrt::Microsoft::ReactNative
diff --git a/vnext/Microsoft.ReactNative/Base/CxxReactIncludes.h b/vnext/Microsoft.ReactNative/Base/CxxReactIncludes.h
index 24c7f0c8bfb..d0b1a6a780a 100644
--- a/vnext/Microsoft.ReactNative/Base/CxxReactIncludes.h
+++ b/vnext/Microsoft.ReactNative/Base/CxxReactIncludes.h
@@ -7,10 +7,7 @@
#include "FollyIncludes.h"
-#include
-#include
#include
-#include
#include
#include
#include
diff --git a/vnext/Microsoft.ReactNative/IReactModuleBuilder.cpp b/vnext/Microsoft.ReactNative/IReactModuleBuilder.cpp
index 162c6ce6e53..ebf6ebd2ad9 100644
--- a/vnext/Microsoft.ReactNative/IReactModuleBuilder.cpp
+++ b/vnext/Microsoft.ReactNative/IReactModuleBuilder.cpp
@@ -4,67 +4,10 @@
#include "pch.h"
#include "IReactModuleBuilder.h"
#include
-#include
-#include "DynamicWriter.h"
-#include "ReactHost/MsoUtils.h"
-
-using namespace facebook::xplat::module;
+#include
namespace winrt::Microsoft::ReactNative {
-#ifdef DEBUG
-// Starting with RNW 0.64, native modules are called on the JS thread.
-// Modules will usually call Windows APIs, and those APIs might expect to be called in the UI thread.
-// Developers can dispatch work to the UI thread via reactContext.UIDispatcher().Post(). When they fail to do so,
-// cppwinrt will grab the failure HRESULT (RPC_E_WRONG_THREAD), convert it to a C++ exception, and throw it.
-// However, native module methods are noexcept, meaning the CRT will call std::terminate and not propagate exceptions up
-// the stack. Developers are then left with a crashing app and no good way to debug it. To improve developers'
-// experience, we can replace the terminate handler temporarily while we call out to the native method. In the terminate
-// handler, we can inspect the exception that was thrown and give an error message before going down.
-struct TerminateExceptionGuard final {
- TerminateExceptionGuard() {
- m_oldHandler = std::get_terminate();
- std::set_terminate([]() {
- auto ex = std::current_exception();
- if (ex) {
- try {
- std::rethrow_exception(ex);
- } catch (const winrt::hresult_error &hr) {
- wchar_t buf[1024] = {};
- StringCchPrintf(
- buf,
- std::size(buf),
- L"An unhandled exception (0x%x) occurred in a native module. "
- L"The exception message was:\n\n%s",
- hr.code(),
- hr.message().c_str());
- auto messageBox = reinterpret_cast(
- GetProcAddress(GetModuleHandle(L"ext-ms-win-ntuser-dialogbox-l1-1-0.dll"), "MessageBoxW"));
- if (hr.code() == RPC_E_WRONG_THREAD) {
- StringCchCat(
- buf,
- std::size(buf),
- L"\n\nIt's likely that the native module called a Windows API that needs to be called from the UI thread. "
- L"For more information, see https://aka.ms/RNW-UIAPI");
- }
- messageBox(nullptr, buf, L"Unhandled exception in native module", MB_ICONERROR | MB_OK);
- } catch (...) {
- }
- }
- });
- }
- ~TerminateExceptionGuard() {
- std::set_terminate(m_oldHandler);
- }
-
- private:
- std::terminate_handler m_oldHandler;
-};
-#define REACT_TERMINATE_GUARD(x) TerminateExceptionGuard x
-#else
-#define REACT_TERMINATE_GUARD(x)
-#endif
-
//===========================================================================
// ReactModuleBuilder implementation
//===========================================================================
@@ -84,91 +27,26 @@ void ReactModuleBuilder::AddConstantProvider(ConstantProviderDelegate const &con
}
void ReactModuleBuilder::AddMethod(
- hstring const &name,
- MethodReturnType returnType,
- MethodDelegate const &method) noexcept {
- CxxModule::Method cxxMethod(
- to_string(name), [method](folly::dynamic args, CxxModule::Callback resolve, CxxModule::Callback reject) noexcept {
- auto argReader = make(args);
- auto resultWriter = make();
- auto resolveCallback = MakeMethodResultCallback(std::move(resolve));
- auto rejectCallback = MakeMethodResultCallback(std::move(reject));
-
- REACT_TERMINATE_GUARD(term);
-
- method(argReader, resultWriter, resolveCallback, rejectCallback);
- });
-
- switch (returnType) {
- case MethodReturnType::Callback:
- cxxMethod.callbacks = 1;
- cxxMethod.isPromise = false;
- break;
- case MethodReturnType::TwoCallbacks:
- cxxMethod.callbacks = 2;
- cxxMethod.isPromise = false;
- break;
- case MethodReturnType::Promise:
- cxxMethod.callbacks = 2;
- cxxMethod.isPromise = true;
- break;
- default:
- cxxMethod.callbacks = 0;
- cxxMethod.isPromise = false;
- }
-
- m_methods.push_back(std::move(cxxMethod));
+ hstring const & /*name*/,
+ MethodReturnType /*returnType*/,
+ MethodDelegate const & /*method*/) noexcept {
+ // This method previously built CxxModule::Method for legacy module registration.
+ // With New Architecture, use TurboModules instead.
+ assert(false && "Legacy module registration removed. Use packageBuilder.AddTurboModule() instead of packageBuilder.AddModule().");
+ std::terminate();
}
-void ReactModuleBuilder::AddSyncMethod(hstring const &name, SyncMethodDelegate const &method) noexcept {
- CxxModule::Method cxxMethod(
- to_string(name),
- [method](folly::dynamic args) noexcept {
- auto argReader = make(args);
- auto resultWriter = make();
- method(argReader, resultWriter);
- return get_self(resultWriter)->TakeValue();
- },
- CxxModule::SyncTag);
-
- m_methods.push_back(std::move(cxxMethod));
+void ReactModuleBuilder::AddSyncMethod(hstring const & /*name*/, SyncMethodDelegate const & /*method*/) noexcept {
+ // This method previously built CxxModule::Method for legacy sync method registration.
+ // With New Architecture, use TurboModules instead.
+ assert(false && "Legacy module registration removed. Use packageBuilder.AddTurboModule() instead of packageBuilder.AddModule().");
+ std::terminate();
}
void ReactModuleBuilder::AddEventEmitter(hstring const &, EventEmitterInitializerDelegate const &) {
- throw std::runtime_error(
- "This module requires that it is registered as a TurboModule. If the module is being manually registered ensure you are using packageBuilder.AddTurboModule instead of packageBuilder.AddModule.");
-}
-
-/*static*/ MethodResultCallback ReactModuleBuilder::MakeMethodResultCallback(CxxModule::Callback &&callback) noexcept {
- if (callback) {
- return [callback = std::move(callback)](const IJSValueWriter &outputWriter) noexcept {
- if (outputWriter) {
- folly::dynamic argArray = outputWriter.as()->TakeValue();
- callback(std::vector(argArray.begin(), argArray.end()));
- } else {
- callback(std::vector{});
- }
- };
- }
-
- return {};
-}
-
-std::unique_ptr ReactModuleBuilder::MakeCxxModule(
- std::string const &name,
- IInspectable const &nativeModule) noexcept {
- for (auto &initializer : m_initializers) {
- initializer(m_reactContext);
- }
- for (auto &initializer : m_jsiinitializers) {
- initializer(
- m_reactContext,
- winrt::get_self(m_reactContext)
- ->GetInner()
- .JsiRuntime());
- }
- return std::make_unique(
- nativeModule, Mso::Copy(name), Mso::Copy(m_constantProviders), Mso::Copy(m_methods));
+ // This method required TurboModule registration.
+ assert(false && "This module requires TurboModule registration. Use packageBuilder.AddTurboModule() instead of packageBuilder.AddModule().");
+ std::terminate();
}
} // namespace winrt::Microsoft::ReactNative
diff --git a/vnext/Microsoft.ReactNative/IReactModuleBuilder.h b/vnext/Microsoft.ReactNative/IReactModuleBuilder.h
index 17fdf22ecca..e2e83432ba4 100644
--- a/vnext/Microsoft.ReactNative/IReactModuleBuilder.h
+++ b/vnext/Microsoft.ReactNative/IReactModuleBuilder.h
@@ -2,7 +2,6 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-#include "ABICxxModule.h"
#include "winrt/Microsoft.ReactNative.h"
namespace winrt::Microsoft::ReactNative {
@@ -18,21 +17,11 @@ struct ReactModuleBuilder : winrt::implements MakeCxxModule(
- std::string const &name,
- IInspectable const &nativeModule) noexcept;
-
- private:
- static MethodResultCallback MakeMethodResultCallback(
- facebook::xplat::module::CxxModule::Callback &&callback) noexcept;
-
private:
IReactContext m_reactContext;
std::vector m_initializers;
std::vector m_jsiinitializers;
std::vector m_constantProviders;
- std::vector m_methods;
};
} // namespace winrt::Microsoft::ReactNative
diff --git a/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj b/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj
index f72f867ded9..59bee023584 100644
--- a/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj
+++ b/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj
@@ -183,7 +183,6 @@
-
@@ -253,7 +252,6 @@
-
@@ -332,7 +330,6 @@
-
@@ -367,7 +364,7 @@
-
+
Create
diff --git a/vnext/Microsoft.ReactNative/Modules/DevSettingsModule.h b/vnext/Microsoft.ReactNative/Modules/DevSettingsModule.h
index 92a04b2f717..0d2517a6dfc 100644
--- a/vnext/Microsoft.ReactNative/Modules/DevSettingsModule.h
+++ b/vnext/Microsoft.ReactNative/Modules/DevSettingsModule.h
@@ -2,7 +2,6 @@
// Licensed under the MIT License.
#pragma once
-#include
#include
#include "codegen/NativeDevSettingsSpec.g.h"
diff --git a/vnext/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp b/vnext/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp
index cb29f0c6c5c..b25f58f93fa 100644
--- a/vnext/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp
+++ b/vnext/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp
@@ -8,9 +8,6 @@
#include "LinkingManagerModule.h"
#include "Unicode.h"
-#include
-#include
-
#if _MSC_VER <= 1913
// VC 19 (2015-2017.6) cannot optimize co_await/cppwinrt usage
#pragma optimize("", off)
diff --git a/vnext/Microsoft.ReactNative/Modules/Timing.cpp b/vnext/Microsoft.ReactNative/Modules/Timing.cpp
index b243b3f416f..77275f75090 100644
--- a/vnext/Microsoft.ReactNative/Modules/Timing.cpp
+++ b/vnext/Microsoft.ReactNative/Modules/Timing.cpp
@@ -12,7 +12,6 @@
#include
-using namespace facebook::xplat;
using namespace folly;
namespace winrt {
using namespace Windows::Foundation;
diff --git a/vnext/Microsoft.ReactNative/NativeModulesProvider.cpp b/vnext/Microsoft.ReactNative/NativeModulesProvider.cpp
index f547792ecb0..fc36ab244fa 100644
--- a/vnext/Microsoft.ReactNative/NativeModulesProvider.cpp
+++ b/vnext/Microsoft.ReactNative/NativeModulesProvider.cpp
@@ -1,49 +1,2 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-
-#include "pch.h"
-#include "NativeModulesProvider.h"
-#include "ABICxxModule.h"
-#include "IReactContext.h"
-#include "IReactModuleBuilder.h"
-#include "Threading/MessageQueueThreadFactory.h"
-
-#include
-
-#include "ReactHost/MsoUtils.h"
-
-using namespace winrt;
-using namespace Windows::Foundation;
-
-namespace winrt::Microsoft::ReactNative {
-/*-------------------------------------------------------------------------------
- NativeModulesProvider::GetModules
--------------------------------------------------------------------------------*/
-std::vector NativeModulesProvider::GetModules(
- Mso::CntPtr const &reactContext,
- std::shared_ptr const &defaultQueueThread) {
- std::vector modules;
-
- auto winrtReactContext = winrt::make(Mso::Copy(reactContext));
-
- for (auto &entry : m_moduleProviders) {
- modules.emplace_back(
- entry.first,
- [moduleName = entry.first, moduleProvider = entry.second, winrtReactContext]() noexcept {
- IReactModuleBuilder moduleBuilder = winrt::make(winrtReactContext);
- auto providedModule = moduleProvider(moduleBuilder);
- return moduleBuilder.as()->MakeCxxModule(moduleName, providedModule);
- },
- defaultQueueThread);
- }
-
- return modules;
-}
-
-void NativeModulesProvider::AddModuleProvider(
- winrt::hstring const &moduleName,
- ReactModuleProvider const &moduleProvider) noexcept {
- m_moduleProviders.emplace(to_string(moduleName), moduleProvider);
-}
-
-} // namespace winrt::Microsoft::ReactNative
diff --git a/vnext/Microsoft.ReactNative/NativeModulesProvider.h b/vnext/Microsoft.ReactNative/NativeModulesProvider.h
index 9e048a437b8..a00530bead4 100644
--- a/vnext/Microsoft.ReactNative/NativeModulesProvider.h
+++ b/vnext/Microsoft.ReactNative/NativeModulesProvider.h
@@ -1,25 +1,3 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
#pragma once
-
-#include
-#include
-#include "ReactHost/React.h"
-
-namespace winrt::Microsoft::ReactNative {
-
-class NativeModulesProvider final : public Mso::React::NativeModuleProvider2 {
- public:
- virtual std::vector GetModules(
- Mso::CntPtr const &reactContext,
- std::shared_ptr const &defaultQueueThread) override;
-
- public:
- void AddModuleProvider(winrt::hstring const &moduleName, ReactModuleProvider const &moduleProvider) noexcept;
-
- private:
- std::map m_moduleProviders;
- IReactPackageBuilder m_packageBuilder;
-};
-
-} // namespace winrt::Microsoft::ReactNative
diff --git a/vnext/Microsoft.ReactNative/ReactHost/React.h b/vnext/Microsoft.ReactNative/ReactHost/React.h
index 113c2d7740b..643003b6d37 100644
--- a/vnext/Microsoft.ReactNative/ReactHost/React.h
+++ b/vnext/Microsoft.ReactNative/ReactHost/React.h
@@ -14,7 +14,6 @@
#include "errorCode/errorCode.h"
#include "future/future.h"
-#include
#include
#ifdef CORE_ABI
@@ -154,12 +153,6 @@ struct ReactDevOptions {
std::string SourceBundleModuleName;
};
-struct NativeModuleProvider2 {
- virtual std::vector GetModules(
- Mso::CntPtr const &reactContext,
- std::shared_ptr const &defaultQueueThread) = 0;
-};
-
//! A simple struct that describes the basic properties/needs of an SDX. Whenever a new SDX is
//! getting hosted in React, properties here will be used to construct the SDX.
struct ReactOptions {
@@ -167,7 +160,6 @@ struct ReactOptions {
winrt::Microsoft::ReactNative::IReactNotificationService Notifications;
- std::shared_ptr ModuleProvider;
std::shared_ptr TurboModuleProvider;
std::shared_ptr UriImageManager;
diff --git a/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp b/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp
index 8d42df77eae..06521822e9c 100644
--- a/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp
+++ b/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp
@@ -44,7 +44,6 @@
#include "MoveOnCopy.h"
#include "MsoUtils.h"
#include "NativeModules.h"
-#include "NativeModulesProvider.h"
#include "ReactCoreInjection.h"
#include "ReactErrorProvider.h"
#include "RedBox.h"
@@ -231,9 +230,8 @@ void ReactInstanceWin::InstanceCrashHandler(int fileDescriptor) noexcept {
void ReactInstanceWin::LoadModules(
const std::shared_ptr &devSettings,
- const std::shared_ptr &nativeModulesProvider,
const std::shared_ptr &turboModulesProvider) noexcept {
- auto registerTurboModule = [this, &nativeModulesProvider, &turboModulesProvider](
+ auto registerTurboModule = [this, &turboModulesProvider](
const wchar_t *name, const ReactModuleProvider &provider) noexcept {
turboModulesProvider->AddModuleProvider(name, provider, false);
};
@@ -488,8 +486,7 @@ void ReactInstanceWin::InitializeBridgeless() noexcept {
if (devSettings->useFastRefresh || devSettings->liveReloadCallback) {
Microsoft::ReactNative::PackagerConnection::CreateOrReusePackagerConnection(*devSettings);
}
- // null moduleProvider since native modules are not supported in bridgeless
- LoadModules(devSettings, nullptr, m_options.TurboModuleProvider);
+ LoadModules(devSettings, m_options.TurboModuleProvider);
auto jsMessageThread = std::make_shared();
m_jsMessageThread.Exchange(jsMessageThread);
diff --git a/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h b/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h
index 1c21a988fc5..d0b789ba02a 100644
--- a/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h
+++ b/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h
@@ -20,7 +20,6 @@
#include
namespace winrt::Microsoft::ReactNative {
-class NativeModulesProvider;
class TurboModulesProvider;
} // namespace winrt::Microsoft::ReactNative
@@ -90,7 +89,6 @@ class ReactInstanceWin final : public Mso::ActiveObject
Mso::VoidFunctor &&updateUI) noexcept;
void LoadModules(
const std::shared_ptr &devSettings,
- const std::shared_ptr &nativeModulesProvider,
const std::shared_ptr &turboModulesProvider) noexcept;
void Initialize() noexcept override;
~ReactInstanceWin() noexcept override;
diff --git a/vnext/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h b/vnext/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h
index 96f2f8ccdff..45dfdd0b903 100644
--- a/vnext/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h
+++ b/vnext/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h
@@ -24,16 +24,11 @@
#if defined(MS_TARGET_APPLE) || (MS_TARGET_ANDROID)
#undef _WIN32
-
-// Following headers are not present in Win nuget.
-#include
#else
// Following are Windows specific headers
#include
#endif
-#include
-#include
#include
#pragma pop_macro("_WIN32")
diff --git a/vnext/Microsoft.ReactNative/ReactNativeHost.cpp b/vnext/Microsoft.ReactNative/ReactNativeHost.cpp
index a7b03a1388d..f7bb6b22558 100644
--- a/vnext/Microsoft.ReactNative/ReactNativeHost.cpp
+++ b/vnext/Microsoft.ReactNative/ReactNativeHost.cpp
@@ -82,8 +82,6 @@ ReactNativeHostProperty() noexcept {
}
IAsyncAction ReactNativeHost::ReloadInstance() noexcept {
- auto modulesProvider = std::make_shared();
-
auto turboModulesProvider = std::make_shared();
auto uriImageManager =
@@ -95,7 +93,7 @@ IAsyncAction ReactNativeHost::ReloadInstance() noexcept {
ReactPropertyBag(m_instanceSettings.Properties()), componentregistry);
m_packageBuilder =
- make(modulesProvider, turboModulesProvider, componentregistry, uriImageManager);
+ make(turboModulesProvider, componentregistry, uriImageManager);
winrt::Microsoft::ReactNative::Composition::implementation::RegisterWindowsModalHostNativeComponent(m_packageBuilder);
@@ -151,7 +149,6 @@ IAsyncAction ReactNativeHost::ReloadInstance() noexcept {
reactOptions.SetEnableDefaultCrashHandler(m_instanceSettings.EnableDefaultCrashHandler());
reactOptions.SetJsiEngine(static_cast(m_instanceSettings.JSIEngineOverride()));
- reactOptions.ModuleProvider = modulesProvider;
reactOptions.TurboModuleProvider = turboModulesProvider;
reactOptions.UriImageManager = uriImageManager;
diff --git a/vnext/Microsoft.ReactNative/ReactNativeHost.h b/vnext/Microsoft.ReactNative/ReactNativeHost.h
index d133e8bd883..0973eb794f0 100644
--- a/vnext/Microsoft.ReactNative/ReactNativeHost.h
+++ b/vnext/Microsoft.ReactNative/ReactNativeHost.h
@@ -5,7 +5,6 @@
#include "ReactNativeHost.g.h"
-#include "NativeModulesProvider.h"
#include "ReactHost/React.h"
#include "ReactInstanceSettings.h"
#include "ReactPropertyBag.h"
diff --git a/vnext/Microsoft.ReactNative/ReactPackageBuilder.cpp b/vnext/Microsoft.ReactNative/ReactPackageBuilder.cpp
index cb7dee518ab..eb92907b30c 100644
--- a/vnext/Microsoft.ReactNative/ReactPackageBuilder.cpp
+++ b/vnext/Microsoft.ReactNative/ReactPackageBuilder.cpp
@@ -13,18 +13,19 @@ namespace winrt::Microsoft::ReactNative {
//===========================================================================
ReactPackageBuilder::ReactPackageBuilder(
- std::shared_ptr const &modulesProvider,
std::shared_ptr const &turboModulesProvider,
std::shared_ptr<::Microsoft::ReactNative::WindowsComponentDescriptorRegistry> const &componentRegistry,
std::shared_ptr const
&uriImageManager) noexcept
- : m_modulesProvider{modulesProvider},
- m_turboModulesProvider{turboModulesProvider},
+ : m_turboModulesProvider{turboModulesProvider},
m_componentRegistry{componentRegistry},
m_uriImageManager{uriImageManager} {}
void ReactPackageBuilder::AddModule(hstring const &moduleName, ReactModuleProvider const &moduleProvider) noexcept {
- m_modulesProvider->AddModuleProvider(moduleName, moduleProvider);
+ // AddModule previously registered CxxModule-based modules via NativeModulesProvider.
+ // Now it forwards to AddTurboModule for backward compatibility.
+ // Modules registered this way will work as TurboModules.
+ m_turboModulesProvider->AddModuleProvider(moduleName, moduleProvider, true);
}
void ReactPackageBuilder::AddTurboModule(
diff --git a/vnext/Microsoft.ReactNative/ReactPackageBuilder.h b/vnext/Microsoft.ReactNative/ReactPackageBuilder.h
index c7790b1312e..42dfff59bf7 100644
--- a/vnext/Microsoft.ReactNative/ReactPackageBuilder.h
+++ b/vnext/Microsoft.ReactNative/ReactPackageBuilder.h
@@ -4,7 +4,6 @@
#include
#include
-#include "NativeModulesProvider.h"
#include "TurboModulesProvider.h"
#include "winrt/Microsoft.ReactNative.Composition.h"
#include "winrt/Microsoft.ReactNative.h"
@@ -13,7 +12,6 @@ namespace winrt::Microsoft::ReactNative {
struct ReactPackageBuilder : winrt::implements {
ReactPackageBuilder(
- std::shared_ptr const &modulesProvider,
std::shared_ptr const &turboModulesProvider,
std::shared_ptr<::Microsoft::ReactNative::WindowsComponentDescriptorRegistry> const &componentRegistry,
std::shared_ptr const
@@ -28,7 +26,6 @@ struct ReactPackageBuilder : winrt::implements m_modulesProvider;
std::shared_ptr m_turboModulesProvider;
std::shared_ptr<::Microsoft::ReactNative::WindowsComponentDescriptorRegistry> m_componentRegistry;
std::shared_ptr m_uriImageManager;
diff --git a/vnext/Microsoft.ReactNative/Views/DevMenu.h b/vnext/Microsoft.ReactNative/Views/DevMenu.h
index 71c8b6755ca..5ca566ad1b9 100644
--- a/vnext/Microsoft.ReactNative/Views/DevMenu.h
+++ b/vnext/Microsoft.ReactNative/Views/DevMenu.h
@@ -2,7 +2,6 @@
// Licensed under the MIT License.
#pragma once
-#include
#include
#include
diff --git a/vnext/ReactCommon/ReactCommon.vcxproj b/vnext/ReactCommon/ReactCommon.vcxproj
index 939d810f849..b14f1c38061 100644
--- a/vnext/ReactCommon/ReactCommon.vcxproj
+++ b/vnext/ReactCommon/ReactCommon.vcxproj
@@ -92,27 +92,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -136,20 +117,15 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.cpp b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.cpp
index 87d1335e1fe..cebc7185f95 100644
--- a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.cpp
+++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/tracing/RuntimeSamplingProfileTraceEventSerializer.cpp
@@ -237,7 +237,8 @@ RuntimeSamplingProfileTraceEventSerializer::serializeAndDispatch(
const std::function&
dispatchCallback,
uint16_t traceEventChunkSize,
- uint16_t profileChunkSize) {
+ uint16_t profileChunkSize,
+ uint16_t maxUniqueNodesPerChunk) {
for (auto&& profile : profiles) {
serializeAndDispatch(
std::move(profile),
@@ -245,7 +246,8 @@ RuntimeSamplingProfileTraceEventSerializer::serializeAndDispatch(
tracingStartTime,
dispatchCallback,
traceEventChunkSize,
- profileChunkSize);
+ profileChunkSize,
+ maxUniqueNodesPerChunk);
}
}
@@ -257,7 +259,8 @@ RuntimeSamplingProfileTraceEventSerializer::serializeAndDispatch(
const std::function&
dispatchCallback,
uint16_t traceEventChunkSize,
- uint16_t profileChunkSize) {
+ uint16_t profileChunkSize,
+ uint16_t maxUniqueNodesPerChunk) {
auto samples = std::move(profile.samples);
if (samples.empty()) {
return;
diff --git a/vnext/Shared/BatchingMessageQueueThread.h b/vnext/Shared/BatchingMessageQueueThread.h
index 36b37db0474..ccc824cef09 100644
--- a/vnext/Shared/BatchingMessageQueueThread.h
+++ b/vnext/Shared/BatchingMessageQueueThread.h
@@ -3,18 +3,3 @@
#pragma once
-#include
-
-namespace facebook {
-namespace react {
-
-class Instance;
-
-class BatchingMessageQueueThread : public MessageQueueThread {
- public:
- virtual void onBatchComplete() = 0;
- virtual void decoratedNativeCallInvokerReady(std::weak_ptr wkInstance) noexcept = 0;
-};
-
-} // namespace react
-} // namespace facebook
diff --git a/vnext/Shared/DevServerHelper.h b/vnext/Shared/DevServerHelper.h
index e61b0c89452..7e2ec5d707f 100644
--- a/vnext/Shared/DevServerHelper.h
+++ b/vnext/Shared/DevServerHelper.h
@@ -3,8 +3,8 @@
#pragma once
-#include
#include "Utils.h"
+#include
namespace facebook {
namespace react {
diff --git a/vnext/Shared/DevSettings.h b/vnext/Shared/DevSettings.h
index df5420969b7..942cc6b4d8a 100644
--- a/vnext/Shared/DevSettings.h
+++ b/vnext/Shared/DevSettings.h
@@ -2,8 +2,6 @@
// Licensed under the MIT License.
#pragma once
-
-#include "JSI/JSExecutorFactoryDelegate.h"
#include "Logging.h"
#include
@@ -28,7 +26,7 @@ class HostTarget;
} // namespace jsinspector_modern
enum class JSIEngineOverride : int32_t {
- Default = 0, // No JSI, will use the legacy ExecutorFactory
+ Default = 3, // Now defaults to Hermes (New Architecture)
Hermes = 3, // Use the JSIExecutorFactory with Hermes
V8 = 4, // Use the JSIExecutorFactory with V8
@@ -74,9 +72,7 @@ struct DevSettings {
/// reentrancy.
std::shared_ptr jsiRuntimeHolder;
- /// A function that can be called with the current Instance to get
- /// a JSExecutorFactory. This can be used to bypass the ABI JSI.
- JSExecutorFactoryDelegate jsExecutorFactoryDelegate{nullptr};
+ // LEGACY REMOVED: jsExecutorFactoryDelegate - No longer needed with New Architecture
// Until the ABI story is addressed we'll use this instead of the above for
// the purposes of selecting a JSI Runtime to use.
diff --git a/vnext/Shared/DevSupportManager.cpp b/vnext/Shared/DevSupportManager.cpp
index ddb16934bb9..b485fc1b304 100644
--- a/vnext/Shared/DevSupportManager.cpp
+++ b/vnext/Shared/DevSupportManager.cpp
@@ -30,7 +30,6 @@
#pragma warning(push)
#pragma warning(disable : 4068 4251 4101 4804 4309)
-#include
#include
#pragma warning(pop)
diff --git a/vnext/Shared/IDevSupportManager.h b/vnext/Shared/IDevSupportManager.h
index c9c2f9c7341..2541b4c7eac 100644
--- a/vnext/Shared/IDevSupportManager.h
+++ b/vnext/Shared/IDevSupportManager.h
@@ -3,7 +3,6 @@
#pragma once
-#include
#include
#include
#include
@@ -11,9 +10,6 @@
namespace facebook {
namespace react {
-using JSECreator =
- std::function(std::shared_ptr, std::shared_ptr)>;
-
struct DevSettings;
struct IDevSupportManager {
diff --git a/vnext/Shared/JSI/JSExecutorFactoryDelegate.h b/vnext/Shared/JSI/JSExecutorFactoryDelegate.h
index 1d677b5cb3a..fc36ab244fa 100644
--- a/vnext/Shared/JSI/JSExecutorFactoryDelegate.h
+++ b/vnext/Shared/JSI/JSExecutorFactoryDelegate.h
@@ -1,12 +1,2 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-
-#include
-#include
-
-namespace facebook::react {
-class CallInvoker;
-class JSExecutorFactory;
-using JSExecutorFactoryDelegate =
- std::function(std::shared_ptr const &callInvoker)>;
-} // namespace facebook::react
diff --git a/vnext/Shared/JSI/JSExecutorFactorySettings.cpp b/vnext/Shared/JSI/JSExecutorFactorySettings.cpp
index 456c331ef60..fc36ab244fa 100644
--- a/vnext/Shared/JSI/JSExecutorFactorySettings.cpp
+++ b/vnext/Shared/JSI/JSExecutorFactorySettings.cpp
@@ -1,30 +1,2 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-
-#include "JSExecutorFactorySettings.h"
-
-namespace Microsoft::JSI::JSExecutorFactorySettings {
-
-winrt::Microsoft::ReactNative::ReactPropertyId<
- winrt::Microsoft::ReactNative::ReactNonAbiValue>
-JSExecutorFactoryDelegateProperty() noexcept {
- winrt::Microsoft::ReactNative::ReactPropertyId<
- winrt::Microsoft::ReactNative::ReactNonAbiValue>
- propId{L"ReactNative.JSI", L"JSExecutorFactory"};
- return propId;
-}
-void SetJSExecutorFactoryDelegate(
- winrt::Microsoft::ReactNative::ReactPropertyBag properties,
- facebook::react::JSExecutorFactoryDelegate const &value) noexcept {
- properties.Set(JSExecutorFactoryDelegateProperty(), value);
-}
-
-const facebook::react::JSExecutorFactoryDelegate GetJSExecutorFactoryDelegate(
- winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept {
- const auto jsExecutorFactoryDelegate = properties.Get(JSExecutorFactoryDelegateProperty());
- if (!jsExecutorFactoryDelegate)
- return nullptr;
- return jsExecutorFactoryDelegate.Value();
-}
-
-} // namespace Microsoft::JSI::JSExecutorFactorySettings
diff --git a/vnext/Shared/JSI/JSExecutorFactorySettings.h b/vnext/Shared/JSI/JSExecutorFactorySettings.h
index 22230829d80..6565a70113d 100644
--- a/vnext/Shared/JSI/JSExecutorFactorySettings.h
+++ b/vnext/Shared/JSI/JSExecutorFactorySettings.h
@@ -2,20 +2,3 @@
// Licensed under the MIT License.
#pragma once
-
-#include "JSExecutorFactoryDelegate.h"
-#include "ReactPropertyBag.h"
-
-namespace facebook::react {
-class JSExecutorFactory;
-}
-
-namespace Microsoft::JSI::JSExecutorFactorySettings {
-
-void SetJSExecutorFactoryDelegate(
- winrt::Microsoft::ReactNative::ReactPropertyBag properties,
- facebook::react::JSExecutorFactoryDelegate const &value) noexcept;
-const facebook::react::JSExecutorFactoryDelegate GetJSExecutorFactoryDelegate(
- winrt::Microsoft::ReactNative::ReactPropertyBag properties) noexcept;
-
-} // namespace Microsoft::JSI::JSExecutorFactorySettings
diff --git a/vnext/Shared/Logging.cpp b/vnext/Shared/Logging.cpp
index c8d44044109..904caabaa5e 100644
--- a/vnext/Shared/Logging.cpp
+++ b/vnext/Shared/Logging.cpp
@@ -5,7 +5,7 @@
#include "Logging.h"
-#include
+// LEGACY REMOVED: ReactMarker.h - ReactMarker is no longer used in New Architecture
#include
namespace facebook {
@@ -19,13 +19,11 @@ void LogHook(RCTLogLevel logLevel, const char *message) {
g_nativeLogHook(logLevel, message);
}
-void logMarker(const ReactMarker::ReactMarkerId /*id*/, const char * /*tag*/) {}
+void logMarker(int /*id*/, const char * /*tag*/) {}
} // end anonymous namespace
void InitializeLogging(NativeLoggingHook &&hook) {
g_nativeLogHook = std::move(hook);
-
- ReactMarker::logTaggedMarkerImpl = logMarker;
}
} // namespace react
diff --git a/vnext/Shared/Modules/CxxModuleUtilities.cpp b/vnext/Shared/Modules/CxxModuleUtilities.cpp
index 6eb64e8b4b5..a398a00d65b 100644
--- a/vnext/Shared/Modules/CxxModuleUtilities.cpp
+++ b/vnext/Shared/Modules/CxxModuleUtilities.cpp
@@ -7,18 +7,10 @@
namespace msrn = winrt::Microsoft::ReactNative;
-using facebook::react::Instance;
using folly::dynamic;
-using std::string;
-using std::weak_ptr;
namespace Microsoft::React::Modules {
-void SendEvent(weak_ptr weakReactInstance, string &&eventName, dynamic &&args) {
- if (auto instance = weakReactInstance.lock()) {
- instance->callJSFunction("RCTDeviceEventEmitter", "emit", dynamic::array(std::move(eventName), std::move(args)));
- }
-}
void SendEvent(
msrn::ReactContext const &reactContext,
diff --git a/vnext/Shared/Modules/CxxModuleUtilities.h b/vnext/Shared/Modules/CxxModuleUtilities.h
index 019f0969fc6..b55a39f6343 100644
--- a/vnext/Shared/Modules/CxxModuleUtilities.h
+++ b/vnext/Shared/Modules/CxxModuleUtilities.h
@@ -6,9 +6,6 @@
// Folly
#include
-// React Native
-#include
-
// React Native Windows
#include
@@ -18,11 +15,6 @@
namespace Microsoft::React::Modules {
-void SendEvent(
- std::weak_ptr weakReactInstance,
- std::string &&eventName,
- folly::dynamic &&args);
-
void SendEvent(
winrt::Microsoft::ReactNative::ReactContext const &reactContext,
std::wstring_view &&eventName,
diff --git a/vnext/Shared/NativeModuleProvider.h b/vnext/Shared/NativeModuleProvider.h
index 0883a1c5d63..6565a70113d 100644
--- a/vnext/Shared/NativeModuleProvider.h
+++ b/vnext/Shared/NativeModuleProvider.h
@@ -1,40 +1,4 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-// public header
-
#pragma once
-
-#include
-#include
-#include
-#include
-
-namespace facebook {
-namespace react {
-class MessageQueueThread;
-}
-} // namespace facebook
-namespace facebook {
-namespace xplat {
-namespace module {
-class CxxModule;
-}
-} // namespace xplat
-} // namespace facebook
-
-namespace facebook {
-namespace react {
-
-using NativeModuleDescription = std::tuple<
- std::string,
- std::function()>, // CxxModule::Provider
- std::shared_ptr>;
-
-struct NativeModuleProvider {
- virtual std::vector GetModules(
- const std::shared_ptr &defaultQueueThread) = 0;
-};
-
-} // namespace react
-} // namespace facebook
diff --git a/vnext/Shared/OInstance.cpp b/vnext/Shared/OInstance.cpp
index fa76cbca9ae..caaa081c8e6 100644
--- a/vnext/Shared/OInstance.cpp
+++ b/vnext/Shared/OInstance.cpp
@@ -2,18 +2,11 @@
// Licensed under the MIT License.
#include "pch.h"
-
-#include
-#include
-#include
#include
-#include
#include
-#include
#include
#include
#include
-#include
#include
#include "OInstance.h"
#include "Unicode.h"
@@ -21,7 +14,6 @@
#include "JSI/RuntimeHolder.h"
#include
-#include
#if (defined(_MSC_VER) && (defined(WINRT)))
#include
@@ -356,6 +348,6 @@ std::unique_ptr JsBigStringFromPath(
namespace facebook::react {
-void logMarker(const facebook::react::ReactMarker::ReactMarkerId /*id*/, const char * /*tag*/) {}
+void logMarker(int /*id*/, const char * /*tag*/) {}
} // namespace facebook::react
diff --git a/vnext/Shared/Shared.vcxitems b/vnext/Shared/Shared.vcxitems
index abe332df2a6..3bc56654fd0 100644
--- a/vnext/Shared/Shared.vcxitems
+++ b/vnext/Shared/Shared.vcxitems
@@ -154,7 +154,6 @@
true
-
@@ -174,7 +173,6 @@
-
@@ -270,7 +268,7 @@
$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\ReactInstanceSettings.idl
-
+
$(MSBuildThisFileDirectory)..\Microsoft.ReactNative\ReactCoreInjection.idl
@@ -312,8 +310,6 @@
-
-
@@ -340,7 +336,6 @@
-
@@ -355,14 +350,12 @@
-
-
@@ -381,17 +374,16 @@
-
-
+
-
+
-
+
@@ -400,8 +392,6 @@
-
-
@@ -486,7 +476,7 @@
-
+
@@ -497,13 +487,13 @@
-
+
-
+
@@ -547,12 +537,12 @@
-
+
-
+
diff --git a/vnext/Shared/Threading/BatchingQueueThread.cpp b/vnext/Shared/Threading/BatchingQueueThread.cpp
index c6e43f68c70..fc36ab244fa 100644
--- a/vnext/Shared/Threading/BatchingQueueThread.cpp
+++ b/vnext/Shared/Threading/BatchingQueueThread.cpp
@@ -1,128 +1,2 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
-
-#include "pch.h"
-#include "Threading/BatchingQueueThread.h"
-#include
-#include
-#include
-#include
-
-using namespace facebook::react;
-
-namespace Microsoft::ReactNative {
-
-BatchingQueueCallInvoker::BatchingQueueCallInvoker(
- std::shared_ptr const &queueThread)
- : m_queueThread(queueThread) {}
-
-void BatchingQueueCallInvoker::invokeAsync(
- const std::string &methodName,
- facebook::react::NativeMethodCallFunc &&func) noexcept {
- EnsureQueue();
- m_taskQueue->emplace_back(std::move(func));
-
-// #define TRACK_UI_CALLS
-#ifdef TRACK_UI_CALLS
- char buffer[1024];
- static uint32_t cCalls = 0;
- _snprintf_s(buffer, _countof(buffer), _TRUNCATE, "BatchingUIMessageQueueThread Calls: %u\r\n", ++cCalls);
- OutputDebugStringA(buffer);
-#endif
-}
-
-void BatchingQueueCallInvoker::EnsureQueue() noexcept {
- if (!m_taskQueue) {
- m_taskQueue = std::make_shared();
- m_taskQueue->reserve(2048);
- }
-}
-
-void BatchingQueueCallInvoker::PostBatch() noexcept {
- if (m_taskQueue) {
- m_queueThread->runOnQueue([taskQueue{std::move(m_taskQueue)}]() noexcept {
- TraceSection s1("BatchingQueueCallInvoker::PostBatch");
- for (auto &task : *taskQueue) {
- TraceSection s2("BatchingQueueCallInvoker::PostBatch::Task");
- task();
- task = nullptr;
- }
- });
- }
-}
-
-void BatchingQueueCallInvoker::onBatchComplete() noexcept {
- PostBatch();
-}
-
-void BatchingQueueCallInvoker::quitSynchronous() noexcept {
- PostBatch();
- m_queueThread->quitSynchronous();
-}
-
-void BatchingQueueCallInvoker::invokeSync(
- const std::string &methodName,
- facebook::react::NativeMethodCallFunc &&func) noexcept {
- assert(false && "Not supported");
- std::terminate();
-}
-
-BatchingQueueThread::BatchingQueueThread(
- std::shared_ptr const &queueThread) noexcept {
- m_batchingQueueCallInvoker = std::make_shared(queueThread);
- m_callInvoker = m_batchingQueueCallInvoker;
-}
-
-// Called from the JS thread, once the instance has had a chance to setup the NativeToJsBridge and calls to
-// getDecoratedNativeCallInvoker will work.
-void BatchingQueueThread::decoratedNativeCallInvokerReady(
- std::weak_ptr wkInstance) noexcept {
- std::scoped_lock lck(m_mutex);
- if (auto instance = wkInstance.lock()) {
- // When items were queued in the undecoratedNativeCallInvoker it will not have called
- // recordTurboModuleAsyncMethodCall. Calling invokeAsync on the decoratedNativeCallInvoker
- // ensures that the queue is properly flushed, on the next batch complete
- auto decoratedCallInvoker = instance->getDecoratedNativeMethodCallInvoker(m_callInvoker);
- decoratedCallInvoker->invokeAsync("decoratedNativeCallInvokerReady", [decoratedCallInvoker, wkInstance, this] {
- if (auto instance = wkInstance.lock()) {
- std::scoped_lock lckQuitting(m_mutexQuitting);
-
- // If we are shutting down, then then the mutex is being held in quitSynchronous
- // Which is waiting for this task to complete, so we cannot take the mutex if quitSynchronous
- // is running. -- and since we are shutting down anyway, we can just skip this work.
- if (!m_quitting) {
- std::scoped_lock lck(m_mutex);
- m_callInvoker = decoratedCallInvoker;
- }
- }
- });
- }
-}
-
-BatchingQueueThread::~BatchingQueueThread() noexcept {}
-
-void BatchingQueueThread::runOnQueue(std::function &&func) noexcept {
- std::scoped_lock lck(m_mutex);
- m_callInvoker->invokeAsync("runOnQueue", std::move(func));
-}
-
-void BatchingQueueThread::onBatchComplete() noexcept {
- std::scoped_lock lck(m_mutex);
- m_batchingQueueCallInvoker->onBatchComplete();
-}
-
-void BatchingQueueThread::runOnQueueSync(std::function && /*func*/) noexcept {
- assert(false && "Not supported");
- std::terminate();
-}
-
-void BatchingQueueThread::quitSynchronous() noexcept {
- {
- std::scoped_lock lckQuitting(m_mutexQuitting);
- m_quitting = true;
- }
- std::scoped_lock lck(m_mutex);
- m_batchingQueueCallInvoker->quitSynchronous();
-}
-
-} // namespace Microsoft::ReactNative
diff --git a/vnext/Shared/Threading/BatchingQueueThread.h b/vnext/Shared/Threading/BatchingQueueThread.h
index bacf5442561..6565a70113d 100644
--- a/vnext/Shared/Threading/BatchingQueueThread.h
+++ b/vnext/Shared/Threading/BatchingQueueThread.h
@@ -2,58 +2,3 @@
// Licensed under the MIT License.
#pragma once
-
-#include
-#include
-#include
-
-namespace facebook::react {
-class Instance;
-}
-
-namespace Microsoft::ReactNative {
-
-struct BatchingQueueCallInvoker : facebook::react::NativeMethodCallInvoker {
- BatchingQueueCallInvoker(std::shared_ptr const &queueThread);
-
- void invokeAsync(const std::string &methodName, facebook::react::NativeMethodCallFunc &&func) noexcept override;
- void EnsureQueue() noexcept;
- void onBatchComplete() noexcept;
- void quitSynchronous() noexcept;
- void PostBatch() noexcept;
- void invokeSync(const std::string &methodName, facebook::react::NativeMethodCallFunc &&func) noexcept override;
-
- private:
- std::shared_ptr m_queueThread;
-
- using WorkItemQueue = std::vector>;
- std::shared_ptr m_taskQueue;
-};
-
-// Executes the function on the provided UI Dispatcher
-struct BatchingQueueThread final : facebook::react::BatchingMessageQueueThread {
- BatchingQueueThread(std::shared_ptr const &queueThread) noexcept;
- ~BatchingQueueThread() noexcept override;
-
- BatchingQueueThread() = delete;
- BatchingQueueThread(const BatchingQueueThread &other) = delete;
-
- void decoratedNativeCallInvokerReady(std::weak_ptr wkInstance) noexcept override;
-
- public: // facebook::react::MessageQueueThread
- void runOnQueue(std::function &&func) noexcept override;
- void runOnQueueSync(std::function &&func) noexcept override;
- void quitSynchronous() noexcept override;
-
- public: // facebook::react::BatchingMessageQueueThread
- void onBatchComplete() noexcept override;
-
- private:
- std::mutex m_mutex;
- std::mutex m_mutexQuitting;
- bool m_quitting{false};
- std::shared_ptr m_callInvoker;
- std::shared_ptr m_batchingQueueCallInvoker;
-};
-
-} // namespace Microsoft::ReactNative
diff --git a/vnext/Shared/Threading/MessageQueueThreadFactory.cpp b/vnext/Shared/Threading/MessageQueueThreadFactory.cpp
index 9cb79410eb1..947118f4122 100644
--- a/vnext/Shared/Threading/MessageQueueThreadFactory.cpp
+++ b/vnext/Shared/Threading/MessageQueueThreadFactory.cpp
@@ -2,7 +2,6 @@
// Licensed under the MIT License.
#include "MessageQueueThreadFactory.h"
-#include "BatchingQueueThread.h"
#include "MessageDispatchQueue.h"
namespace Microsoft::ReactNative {
@@ -18,9 +17,4 @@ std::shared_ptr MakeUIQueueThread() noexcep
return messageThread;
}
-std::shared_ptr MakeBatchingQueueThread(
- std::shared_ptr const &queueThread) noexcept {
- return std::make_shared(queueThread);
-}
-
} // namespace Microsoft::ReactNative
diff --git a/vnext/Shared/Threading/MessageQueueThreadFactory.h b/vnext/Shared/Threading/MessageQueueThreadFactory.h
index 00ff7c3219e..ba118d9c575 100644
--- a/vnext/Shared/Threading/MessageQueueThreadFactory.h
+++ b/vnext/Shared/Threading/MessageQueueThreadFactory.h
@@ -3,7 +3,6 @@
#pragma once
-#include
#include
namespace Microsoft::ReactNative {
@@ -12,7 +11,4 @@ std::shared_ptr MakeJSQueueThread() noexcep
std::shared_ptr MakeUIQueueThread() noexcept;
-std::shared_ptr MakeBatchingQueueThread(
- std::shared_ptr const &queueThread) noexcept;
-
} // namespace Microsoft::ReactNative
From 675f749bfad0e24f086f1fe1815cc1f2fc22bcf6 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Mon, 5 Jan 2026 14:02:22 +0530
Subject: [PATCH 08/30] update yarn.lock
---
yarn.lock | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 47eead780ef..c2090e9f602 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2183,14 +2183,14 @@
serve-static "^1.16.2"
ws "^6.2.3"
-"@react-native/eslint-config@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/eslint-config/-/eslint-config-0.82.0-nightly-20250821-0ef21bf8a.tgz#a8c87acf70e9bb54a45ddb3b751bb48a2496a8f2"
- integrity sha512-uJCn1kD8dWPazEqutSdlmla2Or82Gz9MOlBQsdSlj8NC6Xuq3GS+ODgmRzZULiKGrEwQeRZlx2si3MXxM7c33g==
+"@react-native/eslint-config@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/eslint-config/-/eslint-config-0.82.0-nightly-20250902-9731e8ebc.tgz#3fc55b38acbdf34476ad905333e9288a2f344e95"
+ integrity sha512-QqWr0dsHEN2MpZhJ2cLBE+aRRFbw1mwQMvDj9bhxnBTSk5iFwRT5/OnLChwBIRuqGwGdlydmKgsOzhIHaVRDOA==
dependencies:
"@babel/core" "^7.25.2"
"@babel/eslint-parser" "^7.25.1"
- "@react-native/eslint-plugin" "0.82.0-nightly-20250821-0ef21bf8a"
+ "@react-native/eslint-plugin" "0.82.0-nightly-20250902-9731e8ebc"
"@typescript-eslint/eslint-plugin" "^8.36.0"
"@typescript-eslint/parser" "^8.36.0"
eslint-config-prettier "^8.5.0"
@@ -2201,10 +2201,10 @@
eslint-plugin-react-hooks "^5.2.0"
eslint-plugin-react-native "^4.0.0"
-"@react-native/eslint-plugin@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.82.0-nightly-20250821-0ef21bf8a.tgz#c0803ac1560ce01c0138fb8b5cbedb9c91a7a816"
- integrity sha512-XIiwVWJ/LHVHRoms7KKRiKbeQGMqKFrWTZX8IOlqgD6gSTjiUdlIqM7e2qh/K9xUbrj6SVb4cuy4e9GcZqvOug==
+"@react-native/eslint-plugin@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.82.0-nightly-20250902-9731e8ebc.tgz#90bb4b23ffad05d9c16ab4440c65121667b9d370"
+ integrity sha512-yzE+AALmiSAL1xpUS+3ULi4H8SBvm/PkkBW99xvCS0lPlkm+0fl1TL50V6tEU6tMd/Pm8mOxVferi9WyiXIo5w==
"@react-native/gradle-plugin@0.82.0-nightly-20250902-9731e8ebc":
version "0.82.0-nightly-20250902-9731e8ebc"
@@ -2236,20 +2236,20 @@
metro-config "^0.83.1"
metro-runtime "^0.83.1"
-"@react-native/new-app-screen@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/new-app-screen/-/new-app-screen-0.82.0-nightly-20250821-0ef21bf8a.tgz#f7b64f7bd93945bdea0d597d973b11d079bbceb9"
- integrity sha512-IcNqFAgsUTEt/GxJDW7PaoOS2Sn3iTQijnPGCIBkmlo/PBlnOzOZOXT6nz58aVdWYbHVh9+WTuItv/dpeKgzMg==
+"@react-native/new-app-screen@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/new-app-screen/-/new-app-screen-0.82.0-nightly-20250902-9731e8ebc.tgz#c726a7858e331d7c99e10d014351404605bf2bb2"
+ integrity sha512-mMURaNdPIzsfDD+x5olyIjAT5VbWR0aMPaXlieuSxk9bn6VIbnvYjZg1iAGg7wyyKqQvDKejqhLfejUpa4irfg==
"@react-native/normalize-colors@0.82.0-nightly-20250902-9731e8ebc":
version "0.82.0-nightly-20250902-9731e8ebc"
resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.82.0-nightly-20250902-9731e8ebc.tgz#8e97a0b1111d2df29fa625303caf2be342309ab1"
integrity sha512-jOBxfHsLoxfKv2KafbeJXMNqfppJOGXIQ1RyqMeqYEbLtr3IG43FI+eJNqjGUEEMineS+1bLZEW2Dj3pgqCACg==
-"@react-native/popup-menu-android@0.82.0-nightly-20250821-0ef21bf8a":
- version "0.82.0-nightly-20250821-0ef21bf8a"
- resolved "https://registry.yarnpkg.com/@react-native/popup-menu-android/-/popup-menu-android-0.82.0-nightly-20250821-0ef21bf8a.tgz#661faf5ac6dcb565166725f5690c992edbda0ead"
- integrity sha512-IwER2Qt1UuOcMUlV1DpTSP9Sb6hCflkruepgZOhsoVGu0QIhQjPF07d/dHvh32P2xcuGDGl00HTazd7yGgIaAg==
+"@react-native/popup-menu-android@0.82.0-nightly-20250902-9731e8ebc":
+ version "0.82.0-nightly-20250902-9731e8ebc"
+ resolved "https://registry.yarnpkg.com/@react-native/popup-menu-android/-/popup-menu-android-0.82.0-nightly-20250902-9731e8ebc.tgz#6b07c3ac041df2102ee759c7d3cb545115b817c9"
+ integrity sha512-iVXonklFA+0FoU6MPap3ec/414JlgiNIi2F0000JSqU0pHXlfpCRNKLI+BWTz6shsgSFXyGjr/qx0cB9Lnc0wg==
dependencies:
nullthrows "^1.1.1"
From 3fa7483169565490d5a5c5c9a0275a9948c57454 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Mon, 5 Jan 2026 14:30:35 +0530
Subject: [PATCH 09/30] Change files
---
...-native-win32-f7d5204f-dcc6-4c1d-b6db-7d2a1849f482.json | 7 +++++++
...ation-channel-21df16a0-f870-4fc4-8644-b56b57256209.json | 7 +++++++
...form-override-5061d65b-2f4a-4d69-934d-82f667928e73.json | 7 +++++++
...ative-windows-81739c25-76ad-40a1-a491-21e99c301dab.json | 7 +++++++
4 files changed, 28 insertions(+)
create mode 100644 change/@office-iss-react-native-win32-f7d5204f-dcc6-4c1d-b6db-7d2a1849f482.json
create mode 100644 change/@react-native-windows-automation-channel-21df16a0-f870-4fc4-8644-b56b57256209.json
create mode 100644 change/react-native-platform-override-5061d65b-2f4a-4d69-934d-82f667928e73.json
create mode 100644 change/react-native-windows-81739c25-76ad-40a1-a491-21e99c301dab.json
diff --git a/change/@office-iss-react-native-win32-f7d5204f-dcc6-4c1d-b6db-7d2a1849f482.json b/change/@office-iss-react-native-win32-f7d5204f-dcc6-4c1d-b6db-7d2a1849f482.json
new file mode 100644
index 00000000000..daeec213f8a
--- /dev/null
+++ b/change/@office-iss-react-native-win32-f7d5204f-dcc6-4c1d-b6db-7d2a1849f482.json
@@ -0,0 +1,7 @@
+{
+ "type": "prerelease",
+ "comment": "integrate 0.82.0-nightly-20250902-9731e8ebc\u0002",
+ "packageName": "@office-iss/react-native-win32",
+ "email": "74712637+iamAbhi-916@users.noreply.github.com",
+ "dependentChangeType": "patch"
+}
diff --git a/change/@react-native-windows-automation-channel-21df16a0-f870-4fc4-8644-b56b57256209.json b/change/@react-native-windows-automation-channel-21df16a0-f870-4fc4-8644-b56b57256209.json
new file mode 100644
index 00000000000..558178090eb
--- /dev/null
+++ b/change/@react-native-windows-automation-channel-21df16a0-f870-4fc4-8644-b56b57256209.json
@@ -0,0 +1,7 @@
+{
+ "type": "prerelease",
+ "comment": "integrate 0.82.0-nightly-20250902-9731e8ebc",
+ "packageName": "@react-native-windows/automation-channel",
+ "email": "74712637+iamAbhi-916@users.noreply.github.com",
+ "dependentChangeType": "patch"
+}
diff --git a/change/react-native-platform-override-5061d65b-2f4a-4d69-934d-82f667928e73.json b/change/react-native-platform-override-5061d65b-2f4a-4d69-934d-82f667928e73.json
new file mode 100644
index 00000000000..214f08f4142
--- /dev/null
+++ b/change/react-native-platform-override-5061d65b-2f4a-4d69-934d-82f667928e73.json
@@ -0,0 +1,7 @@
+{
+ "type": "prerelease",
+ "comment": "integrate 0.82.0-nightly-20250902-9731e8ebc",
+ "packageName": "react-native-platform-override",
+ "email": "74712637+iamAbhi-916@users.noreply.github.com",
+ "dependentChangeType": "patch"
+}
diff --git a/change/react-native-windows-81739c25-76ad-40a1-a491-21e99c301dab.json b/change/react-native-windows-81739c25-76ad-40a1-a491-21e99c301dab.json
new file mode 100644
index 00000000000..f2aadcdff94
--- /dev/null
+++ b/change/react-native-windows-81739c25-76ad-40a1-a491-21e99c301dab.json
@@ -0,0 +1,7 @@
+{
+ "type": "prerelease",
+ "comment": "integrate 0.82.0-nightly-20250902-9731e8ebc",
+ "packageName": "react-native-windows",
+ "email": "74712637+iamAbhi-916@users.noreply.github.com",
+ "dependentChangeType": "patch"
+}
From dcb12122325700be87781c4a82c68ca72c71f907 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Mon, 5 Jan 2026 14:31:31 +0530
Subject: [PATCH 10/30] updated yarn.lock
---
yarn.lock | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/yarn.lock b/yarn.lock
index d2c6974c7f5..7dc6697a472 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2057,6 +2057,28 @@
resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.11.4.tgz#7fb09506ee00a82989125cc03e8495204c8afc01"
integrity sha512-Kf8h1AMnBo54b1fdiVylP2P/iFcZqzpMYcglC28EEFB1DEnOjsNr6Ucqc+3R9e91vHxEDnhZFbYDmAe79P2gjA==
+"@react-native-windows/automation-channel@0.0.0-canary.1024":
+ version "0.0.0-canary.1024"
+ resolved "https://registry.yarnpkg.com/@react-native-windows/automation-channel/-/automation-channel-0.0.0-canary.1024.tgz#6aaaa72354b591c54fc314743bcfad94d3a86fc1"
+ integrity sha512-ZUPhy1SChjBtBC4kfrDfkDdmm7QUWUTkSdlwLz3UXQW9ZtexxvL2JYB0kgvKxkwwbWUkppGfIh+eeMlZissAOg==
+ dependencies:
+ "@typescript-eslint/eslint-plugin" "^7.1.1"
+ "@typescript-eslint/parser" "^7.1.1"
+ jsonrpc-lite "^2.2.0"
+
+"@react-native-windows/automation@0.0.0-canary.1024":
+ version "0.0.0-canary.1024"
+ resolved "https://registry.yarnpkg.com/@react-native-windows/automation/-/automation-0.0.0-canary.1024.tgz#8d997a9801bcc295f4a9f3694a809d7a79937986"
+ integrity sha512-Q75ohedgnlEKNjRjr+2+leHZFI5zMWhwoe5gSAL05c2bcnJMb0ijqkWtiYb+RvQhktYYtMmCgrDlNfGRlmUhOQ==
+ dependencies:
+ "@react-native-windows/automation-channel" "0.0.0-canary.1024"
+ "@react-native-windows/fs" "^0.0.0-canary.70"
+ "@typescript-eslint/eslint-plugin" "^7.1.1"
+ "@typescript-eslint/parser" "^7.1.1"
+ chalk "^4.1.2"
+ readline-sync "1.4.10"
+ webdriverio "^6.9.0"
+
"@react-native/assets-registry@0.82.0-nightly-20250902-9731e8ebc":
version "0.82.0-nightly-20250902-9731e8ebc"
resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.82.0-nightly-20250902-9731e8ebc.tgz#d32973e28c8b43020e2d5bc08849dec1a1201943"
@@ -2236,6 +2258,11 @@
metro-config "^0.83.1"
metro-runtime "^0.83.1"
+"@react-native/new-app-screen@0.82.0-nightly-20250821-0ef21bf8a":
+ version "0.82.0-nightly-20250821-0ef21bf8a"
+ resolved "https://registry.yarnpkg.com/@react-native/new-app-screen/-/new-app-screen-0.82.0-nightly-20250821-0ef21bf8a.tgz#f7b64f7bd93945bdea0d597d973b11d079bbceb9"
+ integrity sha512-IcNqFAgsUTEt/GxJDW7PaoOS2Sn3iTQijnPGCIBkmlo/PBlnOzOZOXT6nz58aVdWYbHVh9+WTuItv/dpeKgzMg==
+
"@react-native/new-app-screen@0.82.0-nightly-20250902-9731e8ebc":
version "0.82.0-nightly-20250902-9731e8ebc"
resolved "https://registry.yarnpkg.com/@react-native/new-app-screen/-/new-app-screen-0.82.0-nightly-20250902-9731e8ebc.tgz#c726a7858e331d7c99e10d014351404605bf2bb2"
From e778a9a575dbcdb076f7a313dd7ccccbfe963446 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Mon, 5 Jan 2026 14:39:38 +0530
Subject: [PATCH 11/30] yarn lint:fix and format
---
vnext/Microsoft.ReactNative/ABICxxModule.h | 1 -
vnext/Microsoft.ReactNative/IReactModuleBuilder.cpp | 12 +++++++++---
vnext/Microsoft.ReactNative/ReactNativeHost.cpp | 3 +--
vnext/Shared/BatchingMessageQueueThread.h | 1 -
vnext/Shared/DevServerHelper.h | 2 +-
vnext/Shared/Modules/CxxModuleUtilities.cpp | 1 -
vnext/Shared/OInstance.cpp | 2 +-
7 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/vnext/Microsoft.ReactNative/ABICxxModule.h b/vnext/Microsoft.ReactNative/ABICxxModule.h
index ccc824cef09..6565a70113d 100644
--- a/vnext/Microsoft.ReactNative/ABICxxModule.h
+++ b/vnext/Microsoft.ReactNative/ABICxxModule.h
@@ -2,4 +2,3 @@
// Licensed under the MIT License.
#pragma once
-
diff --git a/vnext/Microsoft.ReactNative/IReactModuleBuilder.cpp b/vnext/Microsoft.ReactNative/IReactModuleBuilder.cpp
index ebf6ebd2ad9..07b291a3ff2 100644
--- a/vnext/Microsoft.ReactNative/IReactModuleBuilder.cpp
+++ b/vnext/Microsoft.ReactNative/IReactModuleBuilder.cpp
@@ -32,20 +32,26 @@ void ReactModuleBuilder::AddMethod(
MethodDelegate const & /*method*/) noexcept {
// This method previously built CxxModule::Method for legacy module registration.
// With New Architecture, use TurboModules instead.
- assert(false && "Legacy module registration removed. Use packageBuilder.AddTurboModule() instead of packageBuilder.AddModule().");
+ assert(
+ false &&
+ "Legacy module registration removed. Use packageBuilder.AddTurboModule() instead of packageBuilder.AddModule().");
std::terminate();
}
void ReactModuleBuilder::AddSyncMethod(hstring const & /*name*/, SyncMethodDelegate const & /*method*/) noexcept {
// This method previously built CxxModule::Method for legacy sync method registration.
// With New Architecture, use TurboModules instead.
- assert(false && "Legacy module registration removed. Use packageBuilder.AddTurboModule() instead of packageBuilder.AddModule().");
+ assert(
+ false &&
+ "Legacy module registration removed. Use packageBuilder.AddTurboModule() instead of packageBuilder.AddModule().");
std::terminate();
}
void ReactModuleBuilder::AddEventEmitter(hstring const &, EventEmitterInitializerDelegate const &) {
// This method required TurboModule registration.
- assert(false && "This module requires TurboModule registration. Use packageBuilder.AddTurboModule() instead of packageBuilder.AddModule().");
+ assert(
+ false &&
+ "This module requires TurboModule registration. Use packageBuilder.AddTurboModule() instead of packageBuilder.AddModule().");
std::terminate();
}
diff --git a/vnext/Microsoft.ReactNative/ReactNativeHost.cpp b/vnext/Microsoft.ReactNative/ReactNativeHost.cpp
index f7bb6b22558..86841052b00 100644
--- a/vnext/Microsoft.ReactNative/ReactNativeHost.cpp
+++ b/vnext/Microsoft.ReactNative/ReactNativeHost.cpp
@@ -92,8 +92,7 @@ IAsyncAction ReactNativeHost::ReloadInstance() noexcept {
::Microsoft::ReactNative::WindowsComponentDescriptorRegistry::AddToProperties(
ReactPropertyBag(m_instanceSettings.Properties()), componentregistry);
- m_packageBuilder =
- make(turboModulesProvider, componentregistry, uriImageManager);
+ m_packageBuilder = make(turboModulesProvider, componentregistry, uriImageManager);
winrt::Microsoft::ReactNative::Composition::implementation::RegisterWindowsModalHostNativeComponent(m_packageBuilder);
diff --git a/vnext/Shared/BatchingMessageQueueThread.h b/vnext/Shared/BatchingMessageQueueThread.h
index ccc824cef09..6565a70113d 100644
--- a/vnext/Shared/BatchingMessageQueueThread.h
+++ b/vnext/Shared/BatchingMessageQueueThread.h
@@ -2,4 +2,3 @@
// Licensed under the MIT License.
#pragma once
-
diff --git a/vnext/Shared/DevServerHelper.h b/vnext/Shared/DevServerHelper.h
index 7e2ec5d707f..bbcd53e4376 100644
--- a/vnext/Shared/DevServerHelper.h
+++ b/vnext/Shared/DevServerHelper.h
@@ -3,8 +3,8 @@
#pragma once
-#include "Utils.h"
#include
+#include "Utils.h"
namespace facebook {
namespace react {
diff --git a/vnext/Shared/Modules/CxxModuleUtilities.cpp b/vnext/Shared/Modules/CxxModuleUtilities.cpp
index a398a00d65b..f94f9457abb 100644
--- a/vnext/Shared/Modules/CxxModuleUtilities.cpp
+++ b/vnext/Shared/Modules/CxxModuleUtilities.cpp
@@ -11,7 +11,6 @@ using folly::dynamic;
namespace Microsoft::React::Modules {
-
void SendEvent(
msrn::ReactContext const &reactContext,
std::wstring_view &&eventName,
diff --git a/vnext/Shared/OInstance.cpp b/vnext/Shared/OInstance.cpp
index caaa081c8e6..b2bc7fa13fe 100644
--- a/vnext/Shared/OInstance.cpp
+++ b/vnext/Shared/OInstance.cpp
@@ -2,13 +2,13 @@
// Licensed under the MIT License.
#include "pch.h"
+#include "OInstance.h"
#include
#include
#include
#include
#include
#include
-#include "OInstance.h"
#include "Unicode.h"
#include "JSI/RuntimeHolder.h"
From 65fd8b3be95c1dcc87347d61be917143d223e63e Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Mon, 5 Jan 2026 16:11:45 +0530
Subject: [PATCH 12/30] fix legacy apis import
---
vnext/Desktop/ABI/TestController.cpp | 2 --
1 file changed, 2 deletions(-)
diff --git a/vnext/Desktop/ABI/TestController.cpp b/vnext/Desktop/ABI/TestController.cpp
index e581bfdfea0..88e0ffb7716 100644
--- a/vnext/Desktop/ABI/TestController.cpp
+++ b/vnext/Desktop/ABI/TestController.cpp
@@ -89,10 +89,8 @@ msrn::IReactModuleBuilder TestController::CreateReactModuleBuilder(msrn::IReactC
}
msrn::IReactPackageBuilder TestController::CreateReactPackageBuilder() {
- auto nativeModulesProvider = std::make_shared();
auto turboModulesProvider = std::make_shared();
return make(
- nativeModulesProvider,
turboModulesProvider,
std::shared_ptr<::Microsoft::ReactNative::WindowsComponentDescriptorRegistry>{},
std::shared_ptr{});
From d17771ea82b3e30ede7a66b8a79f3d32b4dfd44c Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Mon, 5 Jan 2026 16:34:25 +0530
Subject: [PATCH 13/30] lint:fix
---
packages/@office-iss/react-native-win32/.flowconfig | 5 -----
packages/@office-iss/react-native-win32/package.json | 2 +-
vnext/package.json | 2 +-
yarn.lock | 10 ----------
4 files changed, 2 insertions(+), 17 deletions(-)
diff --git a/packages/@office-iss/react-native-win32/.flowconfig b/packages/@office-iss/react-native-win32/.flowconfig
index 9e3be1dca3e..1f7153bd66d 100644
--- a/packages/@office-iss/react-native-win32/.flowconfig
+++ b/packages/@office-iss/react-native-win32/.flowconfig
@@ -150,11 +150,6 @@ module.system.haste.module_ref_prefix=m#
react.runtime=automatic
-experimental.only_support_flow_fixme_and_expected_error=true
-experimental.require_suppression_with_error_code=true
-experimental.invariant_subtyping_error_message_improvement=true
-experimental.natural_inference.local_object_literals.followup_fix=true
-
ban_spread_key_props=true
sharedmemory.hash_table_pow=21
diff --git a/packages/@office-iss/react-native-win32/package.json b/packages/@office-iss/react-native-win32/package.json
index aee1ab28abe..541bfc33820 100644
--- a/packages/@office-iss/react-native-win32/package.json
+++ b/packages/@office-iss/react-native-win32/package.json
@@ -83,7 +83,7 @@
"@types/prop-types": "15.7.1",
"@types/react": "^19.0.0",
"eslint": "^8.19.0",
- "flow-bin": "^0.278.0",
+ "flow-bin": "^0.280.0",
"jscodeshift": "^0.14.0",
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
diff --git a/vnext/package.json b/vnext/package.json
index ffaef154f34..5f249f3d827 100644
--- a/vnext/package.json
+++ b/vnext/package.json
@@ -79,7 +79,7 @@
"@types/node": "^22.14.0",
"@types/react": "^19.1.0",
"eslint": "^8.19.0",
- "flow-bin": "^0.279.0",
+ "flow-bin": "^0.280.0",
"jscodeshift": "^0.14.0",
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
diff --git a/yarn.lock b/yarn.lock
index 7dc6697a472..597ea086fb6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6210,16 +6210,6 @@ flow-api-translator@0.32.0:
hermes-transform "0.32.0"
typescript "5.3.2"
-flow-bin@^0.278.0:
- version "0.278.0"
- resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.278.0.tgz#ad1828d60ffe09d4d1ccb2817ef3eb5f79d98f9a"
- integrity sha512-RQgeri43x9zRpMfB9cqAhlXOgDjWd8OU7X6wpxjT5VUS8EotLCAeNKhafLFxvYuaPwUctQ6JnuxykVL6M46ycQ==
-
-flow-bin@^0.279.0:
- version "0.279.0"
- resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.279.0.tgz#06e502a51d735083d715ef769f43bdcb0fc2bb61"
- integrity sha512-Xf0T82atOcEf5auHvJfUF+wWIxieBuUJZBu2hlAizdhAzwqSJic74ZLaL6N5SsE0SY9PxPf3Z/lBU7iRpRa9Lw==
-
flow-bin@^0.280.0:
version "0.280.0"
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.280.0.tgz#73db532b4ea072a20a47277a38c0ab9f4f4600e6"
From ccc1b5e93f47d4ef8bde40e18887bc059a58d88e Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Tue, 6 Jan 2026 11:00:17 +0530
Subject: [PATCH 14/30] added back instance.cpp
---
vnext/ReactCommon/ReactCommon.vcxproj | 1 +
1 file changed, 1 insertion(+)
diff --git a/vnext/ReactCommon/ReactCommon.vcxproj b/vnext/ReactCommon/ReactCommon.vcxproj
index b14f1c38061..48c551daa66 100644
--- a/vnext/ReactCommon/ReactCommon.vcxproj
+++ b/vnext/ReactCommon/ReactCommon.vcxproj
@@ -120,6 +120,7 @@
+
From 19d6165bba9d2e030d770ca7f8d6d8b641f7090e Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Tue, 6 Jan 2026 11:48:46 +0530
Subject: [PATCH 15/30] lint fixes
---
.../Components/TextInput/TextInput.windows.js | 8 ++++----
.../Libraries/Components/View/View.windows.js | 14 ++++++++------
.../Libraries/Image/AssetSourceResolver.windows.js | 2 +-
.../Libraries/Pressability/Pressability.windows.js | 8 ++++----
.../ReactNative/PaperUIManager.windows.js | 8 ++++----
5 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js b/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js
index 2fa7d26a1b5..3f533e7a58a 100644
--- a/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js
+++ b/vnext/src-win/Libraries/Components/TextInput/TextInput.windows.js
@@ -657,7 +657,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
const eventPhase = Object.freeze({Capturing: 1, Bubbling: 3});
const _keyDown = (event: KeyEvent) => {
if (props.keyDownEvents && event.isPropagationStopped() !== true) {
- // $FlowFixMe - keyDownEvents was already checked to not be undefined
+ // $FlowFixMe[incompatible-type] - keyDownEvents was already checked to not be undefined
for (const el of props.keyDownEvents) {
if (
event.nativeEvent.code === el.code &&
@@ -676,7 +676,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
const _keyUp = (event: KeyEvent) => {
if (props.keyUpEvents && event.isPropagationStopped() !== true) {
- // $FlowFixMe - keyDownEvents was already checked to not be undefined
+ // $FlowFixMe[incompatible-type] - keyUpEvents was already checked to not be undefined
for (const el of props.keyUpEvents) {
if (
event.nativeEvent.code === el.code &&
@@ -695,7 +695,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
const _keyDownCapture = (event: KeyEvent) => {
if (props.keyDownEvents && event.isPropagationStopped() !== true) {
- // $FlowFixMe - keyDownEvents was already checked to not be undefined
+ // $FlowFixMe[incompatible-type] - keyDownEvents was already checked to not be undefined
for (const el of props.keyDownEvents) {
if (
event.nativeEvent.code === el.code &&
@@ -714,7 +714,7 @@ function InternalTextInput(props: TextInputProps): React.Node {
const _keyUpCapture = (event: KeyEvent) => {
if (props.keyUpEvents && event.isPropagationStopped() !== true) {
- // $FlowFixMe - keyDownEvents was already checked to not be undefined
+ // $FlowFixMe[incompatible-type] - keyUpEvents was already checked to not be undefined
for (const el of props.keyUpEvents) {
if (
event.nativeEvent.code === el.code &&
diff --git a/vnext/src-win/Libraries/Components/View/View.windows.js b/vnext/src-win/Libraries/Components/View/View.windows.js
index fe006fa2698..065eaf32c90 100644
--- a/vnext/src-win/Libraries/Components/View/View.windows.js
+++ b/vnext/src-win/Libraries/Components/View/View.windows.js
@@ -20,8 +20,10 @@ import type {KeyEvent} from '../../Types/CoreEventTypes';
// Windows]
// [Windows
-// $FlowFixMe - children typing
-const childrenWithImportantForAccessibility = children => {
+// $FlowFixMe[recursive-definition] - children typing
+const childrenWithImportantForAccessibility: (
+ children: any, // $FlowFixMe[unclear-type]
+) => any = children => { // $FlowFixMe[unclear-type]
if (children == null) {
return children;
}
@@ -187,7 +189,7 @@ component View(
const keydownLocal = otherProps.onKeyDown;
processedProps.onKeyDown = event => {
if (otherProps.keyDownEvents && event.isPropagationStopped() !== true) {
- // $FlowFixMe - keyDownEvents was already checked to not be undefined
+ // $FlowFixMe[incompatible-type] - keyDownEvents was already checked to not be undefined
for (const el of otherProps.keyDownEvents) {
if (
event.nativeEvent.code === el.code &&
@@ -209,7 +211,7 @@ component View(
const keyupLocal = otherProps.onKeyUp;
processedProps.onKeyUp = event => {
if (otherProps.keyUpEvents && event.isPropagationStopped() !== true) {
- // $FlowFixMe - keyUpEvents was already checked to not be undefined
+ // $FlowFixMe[incompatible-type] - keyUpEvents was already checked to not be undefined
for (const el of otherProps.keyUpEvents) {
if (
event.nativeEvent.code === el.code &&
@@ -231,7 +233,7 @@ component View(
const keydownCaptureLocal = otherProps.onKeyDownCapture;
processedProps.onKeyDownCapture = event => {
if (otherProps.keyDownEvents && event.isPropagationStopped() !== true) {
- // $FlowFixMe - keyDownEvents was already checked to not be undefined
+ // $FlowFixMe[incompatible-type] - keyDownEvents was already checked to not be undefined
for (const el of otherProps.keyDownEvents) {
if (
event.nativeEvent.code === el.code &&
@@ -253,7 +255,7 @@ component View(
const keyupCaptureLocal = otherProps.onKeyUpCapture;
processedProps.onKeyUpCapture = event => {
if (otherProps.keyUpEvents && event.isPropagationStopped() !== true) {
- // $FlowFixMe - keyUpEvents was already checked to not be undefined
+ // $FlowFixMe[incompatible-type] - keyUpEvents was already checked to not be undefined
for (const el of otherProps.keyUpEvents) {
if (
event.nativeEvent.code === el.code &&
diff --git a/vnext/src-win/Libraries/Image/AssetSourceResolver.windows.js b/vnext/src-win/Libraries/Image/AssetSourceResolver.windows.js
index 418596933a2..0dd198fa770 100644
--- a/vnext/src-win/Libraries/Image/AssetSourceResolver.windows.js
+++ b/vnext/src-win/Libraries/Image/AssetSourceResolver.windows.js
@@ -58,7 +58,7 @@ function getBasePath(asset: PackagerAsset, local: boolean) {
const safePath = basePath.replace(/\.\.\//g, '_');
// If this asset was created with saveAssetPlugin, then we should shorten the path
// This conditional allow compat of bundles which might have been created without the saveAssetPlugin
- // $FlowFixMe: __useShortPath not part of public type
+ // $FlowFixMe[prop-missing][sketchy-null-mixed]: __useShortPath not part of public type
if (asset.__useShortPath) {
return ensureShortPath(safePath);
}
diff --git a/vnext/src-win/Libraries/Pressability/Pressability.windows.js b/vnext/src-win/Libraries/Pressability/Pressability.windows.js
index 71718c27f9b..8672de56917 100644
--- a/vnext/src-win/Libraries/Pressability/Pressability.windows.js
+++ b/vnext/src-win/Libraries/Pressability/Pressability.windows.js
@@ -603,9 +603,9 @@ export default class Pressability {
this._isKeyDown
) {
const {onPressOut, onPress} = this._config;
- // $FlowFixMe: PressEvents don't mesh with keyboarding APIs. Keep legacy behavior of passing KeyEvents instead
+ // $FlowFixMe[incompatible-type]: PressEvents don't mesh with keyboarding APIs. Keep legacy behavior of passing KeyEvents instead
onPressOut && onPressOut(event);
- // $FlowFixMe: PressEvents don't mesh with keyboarding APIs. Keep legacy behavior of passing KeyEvents instead
+ // $FlowFixMe[incompatible-type]: PressEvents don't mesh with keyboarding APIs. Keep legacy behavior of passing KeyEvents instead
onPress && onPress(event);
}
// Native windows app clears the key pressed state when another key press interrupts the current
@@ -624,7 +624,7 @@ export default class Pressability {
) {
const {onPressIn} = this._config;
this._isKeyDown = true;
- // $FlowFixMe: PressEvents don't mesh with keyboarding APIs. Keep legacy behavior of passing KeyEvents instead
+ // $FlowFixMe[incompatible-type]: PressEvents don't mesh with keyboarding APIs. Keep legacy behavior of passing KeyEvents instead
onPressIn && onPressIn(event);
}
},
@@ -789,7 +789,7 @@ export default class Pressability {
}
// [Windows]
- // $FlowFixMe - button typing
+ // $FlowFixMe[missing-local-annot] - button typing
_isDefaultPressButton(button): boolean {
return !button; // Treat 0 or undefined as default press
}
diff --git a/vnext/src-win/Libraries/ReactNative/PaperUIManager.windows.js b/vnext/src-win/Libraries/ReactNative/PaperUIManager.windows.js
index 6e41e4fdefa..1043fe4a844 100644
--- a/vnext/src-win/Libraries/ReactNative/PaperUIManager.windows.js
+++ b/vnext/src-win/Libraries/ReactNative/PaperUIManager.windows.js
@@ -111,12 +111,12 @@ for (const propName of Object.getOwnPropertyNames(
* and run Flow. */
//const UIManagerJS = {
// ...NativeUIManager,
-// $FlowFixMe
+// $FlowFixMe[cannot-write]
UIManagerJS.getConstants = getConstants;
// },
-// $FlowFixMe
+// $FlowFixMe[cannot-write]
UIManagerJS.getViewManagerConfig = getViewManagerConfig;
-// $FlowFixMe
+// $FlowFixMe[cannot-write]
UIManagerJS.hasViewManagerConfig = (viewManagerName: string) =>
getViewManagerConfig(viewManagerName) != null;
@@ -130,7 +130,7 @@ UIManagerJS.hasViewManagerConfig = (viewManagerName: string) =>
// getViewManagerConfig is implemented on the JSI object, so we don't
// need to hook this unless we are running in webdebugger
if (!global.nativeCallSyncHook)
- // $FlowFixMe
+ // $FlowFixMe[prop-missing]
NativeUIManager.getViewManagerConfig = UIManagerJS.getViewManagerConfig;
function lazifyViewManagerConfig(viewName: string) {
From bd551497a2992b272c3d4120886cbb7512a788e6 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Tue, 6 Jan 2026 12:27:11 +0530
Subject: [PATCH 16/30] lock update
---
.../Libraries/Components/View/View.windows.js | 6 ++---
yarn.lock | 22 -------------------
2 files changed, 3 insertions(+), 25 deletions(-)
diff --git a/vnext/src-win/Libraries/Components/View/View.windows.js b/vnext/src-win/Libraries/Components/View/View.windows.js
index 065eaf32c90..fcca468e8a2 100644
--- a/vnext/src-win/Libraries/Components/View/View.windows.js
+++ b/vnext/src-win/Libraries/Components/View/View.windows.js
@@ -20,10 +20,10 @@ import type {KeyEvent} from '../../Types/CoreEventTypes';
// Windows]
// [Windows
-// $FlowFixMe[recursive-definition] - children typing
+// $FlowFixMe[recursive-definition][unclear-type] - children typing
const childrenWithImportantForAccessibility: (
- children: any, // $FlowFixMe[unclear-type]
-) => any = children => { // $FlowFixMe[unclear-type]
+ children: any,
+) => any = children => {
if (children == null) {
return children;
}
diff --git a/yarn.lock b/yarn.lock
index 7720d6856c5..c46a0696d8e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2069,28 +2069,6 @@
resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.11.4.tgz#7fb09506ee00a82989125cc03e8495204c8afc01"
integrity sha512-Kf8h1AMnBo54b1fdiVylP2P/iFcZqzpMYcglC28EEFB1DEnOjsNr6Ucqc+3R9e91vHxEDnhZFbYDmAe79P2gjA==
-"@react-native-windows/automation-channel@0.0.0-canary.1024":
- version "0.0.0-canary.1024"
- resolved "https://registry.yarnpkg.com/@react-native-windows/automation-channel/-/automation-channel-0.0.0-canary.1024.tgz#6aaaa72354b591c54fc314743bcfad94d3a86fc1"
- integrity sha512-ZUPhy1SChjBtBC4kfrDfkDdmm7QUWUTkSdlwLz3UXQW9ZtexxvL2JYB0kgvKxkwwbWUkppGfIh+eeMlZissAOg==
- dependencies:
- "@typescript-eslint/eslint-plugin" "^7.1.1"
- "@typescript-eslint/parser" "^7.1.1"
- jsonrpc-lite "^2.2.0"
-
-"@react-native-windows/automation@0.0.0-canary.1024":
- version "0.0.0-canary.1024"
- resolved "https://registry.yarnpkg.com/@react-native-windows/automation/-/automation-0.0.0-canary.1024.tgz#8d997a9801bcc295f4a9f3694a809d7a79937986"
- integrity sha512-Q75ohedgnlEKNjRjr+2+leHZFI5zMWhwoe5gSAL05c2bcnJMb0ijqkWtiYb+RvQhktYYtMmCgrDlNfGRlmUhOQ==
- dependencies:
- "@react-native-windows/automation-channel" "0.0.0-canary.1024"
- "@react-native-windows/fs" "^0.0.0-canary.70"
- "@typescript-eslint/eslint-plugin" "^7.1.1"
- "@typescript-eslint/parser" "^7.1.1"
- chalk "^4.1.2"
- readline-sync "1.4.10"
- webdriverio "^6.9.0"
-
"@react-native/assets-registry@0.82.0-nightly-20250902-9731e8ebc":
version "0.82.0-nightly-20250902-9731e8ebc"
resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.82.0-nightly-20250902-9731e8ebc.tgz#d32973e28c8b43020e2d5bc08849dec1a1201943"
From 9fb535e0285883ba95b39018d26ff2ba7b876d53 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Tue, 6 Jan 2026 13:28:58 +0530
Subject: [PATCH 17/30] build issues
---
vnext/ReactCommon/ReactCommon.vcxproj | 1 +
vnext/src-win/Libraries/Components/View/View.windows.js | 7 ++++---
.../src-win/Libraries/Image/AssetSourceResolver.windows.js | 2 +-
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/vnext/ReactCommon/ReactCommon.vcxproj b/vnext/ReactCommon/ReactCommon.vcxproj
index 48c551daa66..b0117c2d078 100644
--- a/vnext/ReactCommon/ReactCommon.vcxproj
+++ b/vnext/ReactCommon/ReactCommon.vcxproj
@@ -121,6 +121,7 @@
+
diff --git a/vnext/src-win/Libraries/Components/View/View.windows.js b/vnext/src-win/Libraries/Components/View/View.windows.js
index fcca468e8a2..295b430a65e 100644
--- a/vnext/src-win/Libraries/Components/View/View.windows.js
+++ b/vnext/src-win/Libraries/Components/View/View.windows.js
@@ -20,10 +20,11 @@ import type {KeyEvent} from '../../Types/CoreEventTypes';
// Windows]
// [Windows
-// $FlowFixMe[recursive-definition][unclear-type] - children typing
+// $FlowFixMe[recursive-definition] - children typing
const childrenWithImportantForAccessibility: (
- children: any,
-) => any = children => {
+ children: any, // $FlowFixMe[unclear-type]
+) => any = // $FlowFixMe[unclear-type]
+ children => {
if (children == null) {
return children;
}
diff --git a/vnext/src-win/Libraries/Image/AssetSourceResolver.windows.js b/vnext/src-win/Libraries/Image/AssetSourceResolver.windows.js
index 0dd198fa770..ca4c67684b9 100644
--- a/vnext/src-win/Libraries/Image/AssetSourceResolver.windows.js
+++ b/vnext/src-win/Libraries/Image/AssetSourceResolver.windows.js
@@ -59,7 +59,7 @@ function getBasePath(asset: PackagerAsset, local: boolean) {
// If this asset was created with saveAssetPlugin, then we should shorten the path
// This conditional allow compat of bundles which might have been created without the saveAssetPlugin
// $FlowFixMe[prop-missing][sketchy-null-mixed]: __useShortPath not part of public type
- if (asset.__useShortPath) {
+ if (asset.__useShortPath === true) {
return ensureShortPath(safePath);
}
return safePath;
From 34c606606a17e3887a0c483657e83585f6a18ccf Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Tue, 6 Jan 2026 14:00:17 +0530
Subject: [PATCH 18/30] lint:fix
---
vnext/src-win/Libraries/Components/View/View.windows.js | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/vnext/src-win/Libraries/Components/View/View.windows.js b/vnext/src-win/Libraries/Components/View/View.windows.js
index 295b430a65e..065eaf32c90 100644
--- a/vnext/src-win/Libraries/Components/View/View.windows.js
+++ b/vnext/src-win/Libraries/Components/View/View.windows.js
@@ -23,8 +23,7 @@ import type {KeyEvent} from '../../Types/CoreEventTypes';
// $FlowFixMe[recursive-definition] - children typing
const childrenWithImportantForAccessibility: (
children: any, // $FlowFixMe[unclear-type]
-) => any = // $FlowFixMe[unclear-type]
- children => {
+) => any = children => { // $FlowFixMe[unclear-type]
if (children == null) {
return children;
}
From 4dd3ea992b430a8bc2133f8954f8aa0bdabcfd4a Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Tue, 6 Jan 2026 14:24:45 +0530
Subject: [PATCH 19/30] prettier fix using yarn prettier
--plugin=prettier-plugin-hermes-parser --write
---
vnext/src-win/Libraries/Components/View/View.windows.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/vnext/src-win/Libraries/Components/View/View.windows.js b/vnext/src-win/Libraries/Components/View/View.windows.js
index 065eaf32c90..7b430aacca2 100644
--- a/vnext/src-win/Libraries/Components/View/View.windows.js
+++ b/vnext/src-win/Libraries/Components/View/View.windows.js
@@ -23,7 +23,8 @@ import type {KeyEvent} from '../../Types/CoreEventTypes';
// $FlowFixMe[recursive-definition] - children typing
const childrenWithImportantForAccessibility: (
children: any, // $FlowFixMe[unclear-type]
-) => any = children => { // $FlowFixMe[unclear-type]
+) => any = children => {
+ // $FlowFixMe[unclear-type]
if (children == null) {
return children;
}
From 6df2c3794bc4b6c2e9081ec94eb51b5de6b1bb71 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Tue, 6 Jan 2026 15:01:14 +0530
Subject: [PATCH 20/30] lint fix
---
vnext/src-win/Libraries/Components/View/View.windows.js | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/vnext/src-win/Libraries/Components/View/View.windows.js b/vnext/src-win/Libraries/Components/View/View.windows.js
index 7b430aacca2..80d0fe8971b 100644
--- a/vnext/src-win/Libraries/Components/View/View.windows.js
+++ b/vnext/src-win/Libraries/Components/View/View.windows.js
@@ -22,9 +22,10 @@ import type {KeyEvent} from '../../Types/CoreEventTypes';
// [Windows
// $FlowFixMe[recursive-definition] - children typing
const childrenWithImportantForAccessibility: (
- children: any, // $FlowFixMe[unclear-type]
+ // $FlowFixMe[unclear-type] - children typing requires any
+ children: any,
+ // $FlowFixMe[unclear-type] - return type requires any
) => any = children => {
- // $FlowFixMe[unclear-type]
if (children == null) {
return children;
}
From cf1e9188c391c0411205657bbdcd8feb5d851fc4 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Tue, 6 Jan 2026 15:37:58 +0530
Subject: [PATCH 21/30] build issues
---
vnext/ReactCommon/ReactCommon.vcxproj | 2 ++
1 file changed, 2 insertions(+)
diff --git a/vnext/ReactCommon/ReactCommon.vcxproj b/vnext/ReactCommon/ReactCommon.vcxproj
index b0117c2d078..406557a6635 100644
--- a/vnext/ReactCommon/ReactCommon.vcxproj
+++ b/vnext/ReactCommon/ReactCommon.vcxproj
@@ -122,6 +122,8 @@
+
+
From 9e1cd668058d4b1b65a70a4c81117cc3f507c908 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Tue, 6 Jan 2026 22:37:22 +0530
Subject: [PATCH 22/30] build issues
---
vnext/Desktop.UnitTests/React.Windows.Desktop.UnitTests.vcxproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/vnext/Desktop.UnitTests/React.Windows.Desktop.UnitTests.vcxproj b/vnext/Desktop.UnitTests/React.Windows.Desktop.UnitTests.vcxproj
index 462e30f9661..051ff6b2402 100644
--- a/vnext/Desktop.UnitTests/React.Windows.Desktop.UnitTests.vcxproj
+++ b/vnext/Desktop.UnitTests/React.Windows.Desktop.UnitTests.vcxproj
@@ -101,7 +101,7 @@
-
+
From 1057ec13e4c801e406074298887fa5bdb6e05662 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Wed, 7 Jan 2026 11:32:05 +0530
Subject: [PATCH 23/30] build issues
---
vnext/Desktop.UnitTests/InstanceMocks.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/vnext/Desktop.UnitTests/InstanceMocks.h b/vnext/Desktop.UnitTests/InstanceMocks.h
index 8b2556a471f..bc6d1f7c043 100644
--- a/vnext/Desktop.UnitTests/InstanceMocks.h
+++ b/vnext/Desktop.UnitTests/InstanceMocks.h
@@ -7,6 +7,7 @@
#include
#include
#include
+#include
#include
namespace Microsoft::React::Test {
From a5a7dc02ccb3eaa7c33f2519f28fabd37f7b2a36 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Wed, 7 Jan 2026 12:29:13 +0530
Subject: [PATCH 24/30] build issues
---
vnext/IntegrationTests/React.Windows.IntegrationTests.vcxproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/vnext/IntegrationTests/React.Windows.IntegrationTests.vcxproj b/vnext/IntegrationTests/React.Windows.IntegrationTests.vcxproj
index c510469c488..da08f967b0a 100644
--- a/vnext/IntegrationTests/React.Windows.IntegrationTests.vcxproj
+++ b/vnext/IntegrationTests/React.Windows.IntegrationTests.vcxproj
@@ -77,7 +77,7 @@
-
+
From 7ab13e24dfb7f9b69c0ad35aaf374d22f2cdb580 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Wed, 7 Jan 2026 13:19:40 +0530
Subject: [PATCH 25/30] build issues
---
.../React.Windows.Desktop.IntegrationTests.vcxproj | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/vnext/Desktop.IntegrationTests/React.Windows.Desktop.IntegrationTests.vcxproj b/vnext/Desktop.IntegrationTests/React.Windows.Desktop.IntegrationTests.vcxproj
index 8a1072b78f0..d2b8219f915 100644
--- a/vnext/Desktop.IntegrationTests/React.Windows.Desktop.IntegrationTests.vcxproj
+++ b/vnext/Desktop.IntegrationTests/React.Windows.Desktop.IntegrationTests.vcxproj
@@ -113,8 +113,8 @@
-
-
+
+
From 7dd720d41ef2f8769abee7362c9e39c8cbdd35f3 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Wed, 7 Jan 2026 14:30:57 +0530
Subject: [PATCH 26/30] delete empty files ( legacy)
---
vnext/Microsoft.ReactNative/ABICxxModule.cpp | 2 --
vnext/Microsoft.ReactNative/ABICxxModule.h | 4 ----
vnext/Microsoft.ReactNative/NativeModulesProvider.cpp | 2 --
vnext/Microsoft.ReactNative/NativeModulesProvider.h | 3 ---
vnext/Shared/BatchingMessageQueueThread.h | 4 ----
vnext/Shared/JSI/JSExecutorFactoryDelegate.h | 2 --
vnext/Shared/JSI/JSExecutorFactorySettings.cpp | 2 --
vnext/Shared/JSI/JSExecutorFactorySettings.h | 4 ----
vnext/Shared/NativeModuleProvider.h | 4 ----
vnext/Shared/Threading/BatchingQueueThread.cpp | 2 --
vnext/Shared/Threading/BatchingQueueThread.h | 4 ----
11 files changed, 33 deletions(-)
delete mode 100644 vnext/Microsoft.ReactNative/ABICxxModule.cpp
delete mode 100644 vnext/Microsoft.ReactNative/ABICxxModule.h
delete mode 100644 vnext/Microsoft.ReactNative/NativeModulesProvider.cpp
delete mode 100644 vnext/Microsoft.ReactNative/NativeModulesProvider.h
delete mode 100644 vnext/Shared/BatchingMessageQueueThread.h
delete mode 100644 vnext/Shared/JSI/JSExecutorFactoryDelegate.h
delete mode 100644 vnext/Shared/JSI/JSExecutorFactorySettings.cpp
delete mode 100644 vnext/Shared/JSI/JSExecutorFactorySettings.h
delete mode 100644 vnext/Shared/NativeModuleProvider.h
delete mode 100644 vnext/Shared/Threading/BatchingQueueThread.cpp
delete mode 100644 vnext/Shared/Threading/BatchingQueueThread.h
diff --git a/vnext/Microsoft.ReactNative/ABICxxModule.cpp b/vnext/Microsoft.ReactNative/ABICxxModule.cpp
deleted file mode 100644
index fc36ab244fa..00000000000
--- a/vnext/Microsoft.ReactNative/ABICxxModule.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
diff --git a/vnext/Microsoft.ReactNative/ABICxxModule.h b/vnext/Microsoft.ReactNative/ABICxxModule.h
deleted file mode 100644
index 6565a70113d..00000000000
--- a/vnext/Microsoft.ReactNative/ABICxxModule.h
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
-
-#pragma once
diff --git a/vnext/Microsoft.ReactNative/NativeModulesProvider.cpp b/vnext/Microsoft.ReactNative/NativeModulesProvider.cpp
deleted file mode 100644
index fc36ab244fa..00000000000
--- a/vnext/Microsoft.ReactNative/NativeModulesProvider.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
diff --git a/vnext/Microsoft.ReactNative/NativeModulesProvider.h b/vnext/Microsoft.ReactNative/NativeModulesProvider.h
deleted file mode 100644
index a00530bead4..00000000000
--- a/vnext/Microsoft.ReactNative/NativeModulesProvider.h
+++ /dev/null
@@ -1,3 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
-#pragma once
diff --git a/vnext/Shared/BatchingMessageQueueThread.h b/vnext/Shared/BatchingMessageQueueThread.h
deleted file mode 100644
index 6565a70113d..00000000000
--- a/vnext/Shared/BatchingMessageQueueThread.h
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
-
-#pragma once
diff --git a/vnext/Shared/JSI/JSExecutorFactoryDelegate.h b/vnext/Shared/JSI/JSExecutorFactoryDelegate.h
deleted file mode 100644
index fc36ab244fa..00000000000
--- a/vnext/Shared/JSI/JSExecutorFactoryDelegate.h
+++ /dev/null
@@ -1,2 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
diff --git a/vnext/Shared/JSI/JSExecutorFactorySettings.cpp b/vnext/Shared/JSI/JSExecutorFactorySettings.cpp
deleted file mode 100644
index fc36ab244fa..00000000000
--- a/vnext/Shared/JSI/JSExecutorFactorySettings.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
diff --git a/vnext/Shared/JSI/JSExecutorFactorySettings.h b/vnext/Shared/JSI/JSExecutorFactorySettings.h
deleted file mode 100644
index 6565a70113d..00000000000
--- a/vnext/Shared/JSI/JSExecutorFactorySettings.h
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
-
-#pragma once
diff --git a/vnext/Shared/NativeModuleProvider.h b/vnext/Shared/NativeModuleProvider.h
deleted file mode 100644
index 6565a70113d..00000000000
--- a/vnext/Shared/NativeModuleProvider.h
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
-
-#pragma once
diff --git a/vnext/Shared/Threading/BatchingQueueThread.cpp b/vnext/Shared/Threading/BatchingQueueThread.cpp
deleted file mode 100644
index fc36ab244fa..00000000000
--- a/vnext/Shared/Threading/BatchingQueueThread.cpp
+++ /dev/null
@@ -1,2 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
diff --git a/vnext/Shared/Threading/BatchingQueueThread.h b/vnext/Shared/Threading/BatchingQueueThread.h
deleted file mode 100644
index 6565a70113d..00000000000
--- a/vnext/Shared/Threading/BatchingQueueThread.h
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright (c) Microsoft Corporation.
-// Licensed under the MIT License.
-
-#pragma once
From 0035bb8f9c02092b8e98c8e75cad17cad9473875 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Wed, 7 Jan 2026 14:35:09 +0530
Subject: [PATCH 27/30] remove includes for deleted headers
---
vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp | 1 -
vnext/Shared/OInstance.cpp | 1 -
2 files changed, 2 deletions(-)
diff --git a/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp b/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp
index 06521822e9c..19e19f15a18 100644
--- a/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp
+++ b/vnext/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp
@@ -31,7 +31,6 @@
#include "IReactContext.h"
#include "IReactDispatcher.h"
#include "IReactNotificationService.h"
-#include "JSI/JSExecutorFactorySettings.h"
#include "JsiApi.h"
#include "Modules/DevSettingsModule.h"
#include "Modules/ExceptionsManager.h"
diff --git a/vnext/Shared/OInstance.cpp b/vnext/Shared/OInstance.cpp
index b2bc7fa13fe..c7f4c057320 100644
--- a/vnext/Shared/OInstance.cpp
+++ b/vnext/Shared/OInstance.cpp
@@ -19,7 +19,6 @@
#include
#endif
-#include
#include
#include
#include
From 6f508a715b98753f142a164891653bdc537b3475 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Wed, 7 Jan 2026 15:41:41 +0530
Subject: [PATCH 28/30] remove filters for deleted files( legacy )
---
vnext/Desktop/React.Windows.Desktop.vcxproj | 1 -
.../React.Windows.Desktop.vcxproj.filters | 1 -
.../Microsoft.ReactNative.vcxproj.filters | 3 ---
vnext/ReactCommon/ReactCommon.vcxproj.filters | 3 ---
vnext/Scripts/OfficeReact.Win32.nuspec | 2 --
vnext/Shared/Shared.vcxitems.filters | 22 -------------------
6 files changed, 32 deletions(-)
diff --git a/vnext/Desktop/React.Windows.Desktop.vcxproj b/vnext/Desktop/React.Windows.Desktop.vcxproj
index 99c72f88ca9..8b1c4f33bc9 100644
--- a/vnext/Desktop/React.Windows.Desktop.vcxproj
+++ b/vnext/Desktop/React.Windows.Desktop.vcxproj
@@ -167,7 +167,6 @@
ABI\TestController.idl
-
diff --git a/vnext/Desktop/React.Windows.Desktop.vcxproj.filters b/vnext/Desktop/React.Windows.Desktop.vcxproj.filters
index c3d0b42f974..6f65cce5ea5 100644
--- a/vnext/Desktop/React.Windows.Desktop.vcxproj.filters
+++ b/vnext/Desktop/React.Windows.Desktop.vcxproj.filters
@@ -68,7 +68,6 @@
Source Files
-
Source Files
diff --git a/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters b/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters
index 48c7c78f62f..44030e2c2f2 100644
--- a/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters
+++ b/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters
@@ -5,7 +5,6 @@
-
@@ -161,7 +160,6 @@
-
Base
@@ -171,7 +169,6 @@
-
Pch
diff --git a/vnext/ReactCommon/ReactCommon.vcxproj.filters b/vnext/ReactCommon/ReactCommon.vcxproj.filters
index 9c6610d6e16..c11a39f09be 100644
--- a/vnext/ReactCommon/ReactCommon.vcxproj.filters
+++ b/vnext/ReactCommon/ReactCommon.vcxproj.filters
@@ -272,9 +272,6 @@
cxxreact
-
- cxxreact
-
cxxreact
diff --git a/vnext/Scripts/OfficeReact.Win32.nuspec b/vnext/Scripts/OfficeReact.Win32.nuspec
index 97e932df01e..a93e7d7f83c 100644
--- a/vnext/Scripts/OfficeReact.Win32.nuspec
+++ b/vnext/Scripts/OfficeReact.Win32.nuspec
@@ -54,12 +54,10 @@
-
-
diff --git a/vnext/Shared/Shared.vcxitems.filters b/vnext/Shared/Shared.vcxitems.filters
index 56f4cb4b29a..cc51eed036d 100644
--- a/vnext/Shared/Shared.vcxitems.filters
+++ b/vnext/Shared/Shared.vcxitems.filters
@@ -37,9 +37,6 @@
Source Files
-
- Source Files\Threading
-
Source Files\Threading
@@ -55,9 +52,6 @@
Source Files
-
- Source Files\JSI
-
Source Files\Modules
@@ -206,7 +200,6 @@
-
@@ -475,9 +468,6 @@
Header Files
-
- Header Files
-
Header Files
@@ -514,9 +504,6 @@
Header Files
-
- Header Files
-
Header Files
@@ -544,9 +531,6 @@
Header Files
-
- Header Files\Threading
-
Header Files\Threading
@@ -562,12 +546,6 @@
Header Files\JSI
-
- Header Files\JSI
-
-
- Header Files\JSI
-
Header Files\JSI
From 0eeefe3c353f8f671f7535cfa993e68e5abac073 Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Mon, 12 Jan 2026 11:21:41 +0530
Subject: [PATCH 29/30] remove legacy comments
---
vnext/Shared/DevSettings.h | 2 --
vnext/Shared/Logging.cpp | 1 -
2 files changed, 3 deletions(-)
diff --git a/vnext/Shared/DevSettings.h b/vnext/Shared/DevSettings.h
index 942cc6b4d8a..adb4427ff55 100644
--- a/vnext/Shared/DevSettings.h
+++ b/vnext/Shared/DevSettings.h
@@ -72,8 +72,6 @@ struct DevSettings {
/// reentrancy.
std::shared_ptr jsiRuntimeHolder;
- // LEGACY REMOVED: jsExecutorFactoryDelegate - No longer needed with New Architecture
-
// Until the ABI story is addressed we'll use this instead of the above for
// the purposes of selecting a JSI Runtime to use.
JSIEngineOverride jsiEngineOverride{JSIEngineOverride::Default};
diff --git a/vnext/Shared/Logging.cpp b/vnext/Shared/Logging.cpp
index 904caabaa5e..a9b7a1c46a7 100644
--- a/vnext/Shared/Logging.cpp
+++ b/vnext/Shared/Logging.cpp
@@ -5,7 +5,6 @@
#include "Logging.h"
-// LEGACY REMOVED: ReactMarker.h - ReactMarker is no longer used in New Architecture
#include
namespace facebook {
From 03a7280a5063c278e7c674e2f2d0e0dd545b189d Mon Sep 17 00:00:00 2001
From: Abhijeet Jha <74712637+iamAbhi-916@users.noreply.github.com>
Date: Tue, 13 Jan 2026 14:10:56 +0530
Subject: [PATCH 30/30] update react to 19.1.1
---
packages/@office-iss/react-native-win32-tester/package.json | 2 +-
packages/@office-iss/react-native-win32/package.json | 2 +-
packages/@react-native-windows/automation-channel/package.json | 2 +-
packages/@react-native-windows/tester/package.json | 2 +-
vnext/package.json | 2 +-
yarn.lock | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/packages/@office-iss/react-native-win32-tester/package.json b/packages/@office-iss/react-native-win32-tester/package.json
index e6c88a28926..1be1959f793 100644
--- a/packages/@office-iss/react-native-win32-tester/package.json
+++ b/packages/@office-iss/react-native-win32-tester/package.json
@@ -18,7 +18,7 @@
},
"peerDependencies": {
"@office-iss/react-native-win32": "^0.0.0-canary.304",
- "react": "19.1.0",
+ "react": "19.1.1",
"react-native": "0.82.0-nightly-20250902-9731e8ebc"
},
"devDependencies": {
diff --git a/packages/@office-iss/react-native-win32/package.json b/packages/@office-iss/react-native-win32/package.json
index 541bfc33820..721cec57373 100644
--- a/packages/@office-iss/react-native-win32/package.json
+++ b/packages/@office-iss/react-native-win32/package.json
@@ -87,7 +87,7 @@
"jscodeshift": "^0.14.0",
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
- "react": "19.1.0",
+ "react": "19.1.1",
"react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-platform-override": "0.0.0-canary.1018",
"typescript": "5.0.4"
diff --git a/packages/@react-native-windows/automation-channel/package.json b/packages/@react-native-windows/automation-channel/package.json
index 83366bfa368..8ff88045647 100644
--- a/packages/@react-native-windows/automation-channel/package.json
+++ b/packages/@react-native-windows/automation-channel/package.json
@@ -31,7 +31,7 @@
"eslint": "^8.19.0",
"just-scripts": "^1.3.2",
"prettier": "2.8.8",
- "react": "19.1.0",
+ "react": "19.1.1",
"react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-windows": "^0.0.0-canary.1028",
"typescript": "5.0.4"
diff --git a/packages/@react-native-windows/tester/package.json b/packages/@react-native-windows/tester/package.json
index 51fd6c3390b..b05b941b611 100644
--- a/packages/@react-native-windows/tester/package.json
+++ b/packages/@react-native-windows/tester/package.json
@@ -18,7 +18,7 @@
},
"peerDependencies": {
"@react-native-picker/picker": "2.11.0",
- "react": "19.1.0",
+ "react": "19.1.1",
"react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-windows": "^0.0.0-canary.1028",
"react-native-xaml": "^0.0.80"
diff --git a/vnext/package.json b/vnext/package.json
index 044d4715eba..ebff7cd1f85 100644
--- a/vnext/package.json
+++ b/vnext/package.json
@@ -83,7 +83,7 @@
"jscodeshift": "^0.14.0",
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
- "react": "19.1.0",
+ "react": "19.1.1",
"react-native": "0.82.0-nightly-20250902-9731e8ebc",
"react-native-platform-override": "0.0.0-canary.1018",
"react-refresh": "^0.14.0",
diff --git a/yarn.lock b/yarn.lock
index d71acd59138..be70a405939 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10515,7 +10515,7 @@ react-test-renderer@19.1.1:
react-is "^19.1.1"
scheduler "^0.26.0"
-react@19.1.0, react@19.1.1, react@^19.1.1:
+react@19.1.1, react@^19.1.1:
version "19.1.1"
resolved "https://registry.yarnpkg.com/react/-/react-19.1.1.tgz#06d9149ec5e083a67f9a1e39ce97b06a03b644af"
integrity sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==