diff --git a/change/@office-iss-react-native-win32-2d07f553-9add-4253-9cc5-4ca4e0d15886.json b/change/@office-iss-react-native-win32-2d07f553-9add-4253-9cc5-4ca4e0d15886.json new file mode 100644 index 00000000000..9c0f06c6caa --- /dev/null +++ b/change/@office-iss-react-native-win32-2d07f553-9add-4253-9cc5-4ca4e0d15886.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "integrate rn nightly 0.77.0-nightly-20241001-223e98cc4", + "packageName": "@office-iss/react-native-win32", + "email": "tatianakapos@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@react-native-windows-automation-channel-fb4516ce-25c4-411e-a799-9faa152a9fba.json b/change/@react-native-windows-automation-channel-fb4516ce-25c4-411e-a799-9faa152a9fba.json new file mode 100644 index 00000000000..56e17f70350 --- /dev/null +++ b/change/@react-native-windows-automation-channel-fb4516ce-25c4-411e-a799-9faa152a9fba.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "integrate rn nightly 0.77.0-nightly-20241001-223e98cc4", + "packageName": "@react-native-windows/automation-channel", + "email": "tatianakapos@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@react-native-windows-codegen-ffddf935-ed21-45ac-997f-85379ec7afd0.json b/change/@react-native-windows-codegen-ffddf935-ed21-45ac-997f-85379ec7afd0.json new file mode 100644 index 00000000000..487c2bd442b --- /dev/null +++ b/change/@react-native-windows-codegen-ffddf935-ed21-45ac-997f-85379ec7afd0.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "0.77.0-nightly-20241001-223e98cc4", + "packageName": "@react-native-windows/codegen", + "email": "tatianakapos@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@rnw-scripts-integrate-rn-f35c1fab-4437-4fe8-afd7-645bea940939.json b/change/@rnw-scripts-integrate-rn-f35c1fab-4437-4fe8-afd7-645bea940939.json new file mode 100644 index 00000000000..e568334a9aa --- /dev/null +++ b/change/@rnw-scripts-integrate-rn-f35c1fab-4437-4fe8-afd7-645bea940939.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "integrate rn nightly 0.77.0-nightly-20241001-223e98cc4", + "packageName": "@rnw-scripts/integrate-rn", + "email": "tatianakapos@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/react-native-windows-cfd2a167-6d85-4883-82f6-0828a66802ff.json b/change/react-native-windows-cfd2a167-6d85-4883-82f6-0828a66802ff.json new file mode 100644 index 00000000000..7f8597d47a0 --- /dev/null +++ b/change/react-native-windows-cfd2a167-6d85-4883-82f6-0828a66802ff.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "integrate rn nightly 0.77.0-nightly-20241001-223e98cc4", + "packageName": "react-native-windows", + "email": "tatianakapos@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/packages/@office-iss/react-native-win32-tester/overrides.json b/packages/@office-iss/react-native-win32-tester/overrides.json index 1b7f9151ced..cd1e8057f2d 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.77.0-nightly-20240921-1747f57c6", + "baseVersion": "0.77.0-nightly-20241001-223e98cc4", "overrides": [ { "type": "patch", @@ -42,7 +42,7 @@ "type": "derived", "file": "src/js/utils/RNTesterList.win32.js", "baseFile": "packages/rn-tester/js/utils/RNTesterList.android.js", - "baseHash": "b40cdc34295381fbd40d38ade093cc0d198edd13" + "baseHash": "a4a186470316624bcd693e7f8b67739f87e5729c" } ] } \ No newline at end of file diff --git a/packages/@office-iss/react-native-win32-tester/package.json b/packages/@office-iss/react-native-win32-tester/package.json index 92c0656800a..1e6bbf8a37e 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.266", "react": "18.0.0", - "react-native": "0.77.0-nightly-20240921-1747f57c6" + "react-native": "0.77.0-nightly-20241001-223e98cc4" }, "devDependencies": { "@office-iss/react-native-win32": "^0.0.0-canary.266", @@ -30,7 +30,7 @@ "@types/node": "^18.0.0", "eslint": "^8.19.0", "just-scripts": "^1.3.3", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-platform-override": "^1.9.48", "typescript": "5.0.4" }, diff --git a/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js b/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js index e57a1408610..60d70f1486d 100644 --- a/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js +++ b/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js @@ -10,7 +10,7 @@ 'use strict'; -import type {RNTesterModuleInfo} from '../types/RNTesterTypes'; +import type {RNTesterModuleInfo, RNTesterModule} from '../types/RNTesterTypes'; import ReactNativeFeatureFlags from 'react-native/Libraries/ReactNative/ReactNativeFeatureFlags'; @@ -368,9 +368,16 @@ if (ReactNativeFeatureFlags.shouldEmitW3CPointerEvents()) { }); } -const Modules: any = {}; +const Playgrounds: Array = [ + { + key: 'PlaygroundExample', + module: require('../examples/Playground/PlaygroundExample'), + }, +]; + +const Modules: {[key: string]: RNTesterModule} = {}; -APIs.concat(Components).forEach(Example => { +[...APIs, ...Components, ...Playgrounds].forEach(Example => { Modules[Example.key] = Example.module; }); diff --git a/packages/@office-iss/react-native-win32/.flowconfig b/packages/@office-iss/react-native-win32/.flowconfig index ef2889a84b8..882f242db28 100644 --- a/packages/@office-iss/react-native-win32/.flowconfig +++ b/packages/@office-iss/react-native-win32/.flowconfig @@ -160,4 +160,4 @@ untyped-import untyped-type-import [version] -^0.246.0 +^0.247.1 diff --git a/packages/@office-iss/react-native-win32/overrides.json b/packages/@office-iss/react-native-win32/overrides.json index 5259c7fe796..71ae1200e19 100644 --- a/packages/@office-iss/react-native-win32/overrides.json +++ b/packages/@office-iss/react-native-win32/overrides.json @@ -7,19 +7,19 @@ "**/__snapshots__/**", "src-win/rntypes/**" ], - "baseVersion": "0.77.0-nightly-20240921-1747f57c6", + "baseVersion": "0.77.0-nightly-20241001-223e98cc4", "overrides": [ { "type": "derived", "file": ".flowconfig", "baseFile": ".flowconfig", - "baseHash": "3fbaf9dcd4027fa382894d06f330d0c68ceff9fb" + "baseHash": "0ef50a705dc56608e4a8bd11d3b0d3daedfc0012" }, { "type": "derived", "file": "src-win/index.win32.js", "baseFile": "packages/react-native/index.js", - "baseHash": "da5d9e79c8c14c56ba00f73c8514c06e6fffe8ed" + "baseHash": "70b04f859a60e3752e6937b9fc294ffee30e6366" }, { "type": "platform", @@ -74,7 +74,7 @@ "type": "copy", "file": "src-win/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js", "baseFile": "packages/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js", - "baseHash": "09f143fc3f2ee80463764e1c2b3f23107d501a4c", + "baseHash": "b9a6866d03ca389af38734ffed24199505b05402", "issue": 4378 }, { @@ -136,7 +136,7 @@ "type": "patch", "file": "src-win/Libraries/Components/Touchable/Touchable.win32.js", "baseFile": "packages/react-native/Libraries/Components/Touchable/Touchable.js", - "baseHash": "27e19d3bf49ff28629fdad544aad04939c2ce030", + "baseHash": "b06bb9da5282d7559f283a7d535797a0417808a6", "issue": 0 }, { @@ -224,12 +224,6 @@ "baseHash": "453c4da8036736aefbd950bb7c90603859933f4e", "issue": 5170 }, - { - "type": "copy", - "file": "src-win/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js", - "baseFile": "packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js", - "baseHash": "1c9eb481e8ed077fa650e3ea34837e2a31310366" - }, { "type": "platform", "file": "src-win/Libraries/Image/assetPaths.js" @@ -337,7 +331,7 @@ "type": "derived", "file": "src-win/Libraries/NativeComponent/BaseViewConfig.win32.js", "baseFile": "packages/react-native/Libraries/NativeComponent/BaseViewConfig.ios.js", - "baseHash": "0b4642542c2865c5cd3d542a82b295a1aca21c1a" + "baseHash": "af602af3c3acc6521f5535f2fe14bfe08cf1b5e9" }, { "type": "copy", @@ -529,6 +523,12 @@ "file": "src-win/src/private/specs/modules/NativePlatformConstantsWin.js", "baseFile": "packages/react-native/src/private/specs/modules/NativePlatformConstantsAndroid.js", "baseHash": "fa0f34a2de33b641bd63863629087644796d8b59" + }, + { + "type": "copy", + "file": "src-win/src/private/reactdevtools/ReactDevToolsSettingsManager.win32.js", + "baseFile": "packages/react-native/src/private/reactdevtools/ReactDevToolsSettingsManager.android.js", + "baseHash": "df41b76dc3d2df9455fae588748261d7b0a22d01" } ] } \ No newline at end of file diff --git a/packages/@office-iss/react-native-win32/package.json b/packages/@office-iss/react-native-win32/package.json index f28cab7d0ac..1e7ac0daf36 100644 --- a/packages/@office-iss/react-native-win32/package.json +++ b/packages/@office-iss/react-native-win32/package.json @@ -30,13 +30,13 @@ "@react-native-community/cli-platform-android": "15.0.0-alpha.2", "@react-native-community/cli-platform-ios": "15.0.0-alpha.2", "@react-native/assets": "1.0.0", - "@react-native/assets-registry": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/codegen": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/community-cli-plugin": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/gradle-plugin": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/js-polyfills": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/normalize-colors": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/virtualized-lists": "0.77.0-nightly-20240921-1747f57c6", + "@react-native/assets-registry": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/codegen": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/community-cli-plugin": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/gradle-plugin": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/js-polyfills": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/normalize-colors": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/virtualized-lists": "0.77.0-nightly-20241001-223e98cc4", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", @@ -60,7 +60,7 @@ "pretty-format": "^29.7.0", "promise": "^8.3.0", "react-clone-referenced-element": "^1.0.1", - "react-devtools-core": "^5.3.1", + "react-devtools-core": "^6.0.0", "react-refresh": "^0.14.0", "react-shallow-renderer": "^16.15.0", "regenerator-runtime": "^0.13.2", @@ -90,14 +90,14 @@ "just-scripts": "^1.3.3", "prettier": "2.8.8", "react": "19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-platform-override": "^1.9.48", "typescript": "5.0.4" }, "peerDependencies": { "@types/react": "^18.2.6", "react": "^19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6" + "react-native": "0.77.0-nightly-20241001-223e98cc4" }, "beachball": { "defaultNpmTag": "canary", diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js index 3e519526096..66f0e06f75f 100644 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js @@ -5,8 +5,10 @@ * LICENSE file in the root directory of this source tree. * * @format + * @flow strict-local */ 'use strict'; -module.exports = require('../UnimplementedViews/UnimplementedView'); +module.exports = + require('../UnimplementedViews/UnimplementedView') as $FlowFixMe; diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/Touchable/Touchable.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/Touchable/Touchable.win32.js index 24f417fe3f8..bc1d76b8777 100644 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/Touchable/Touchable.win32.js +++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/Touchable/Touchable.win32.js @@ -718,13 +718,17 @@ const TouchableMixin = { return; } this.state.touchable.positionOnActivate && + // $FlowFixMe[prop-missing] Position.release(this.state.touchable.positionOnActivate); this.state.touchable.dimensionsOnActivate && + // $FlowFixMe[prop-missing] BoundingDimensions.release(this.state.touchable.dimensionsOnActivate); + // $FlowFixMe[prop-missing] this.state.touchable.positionOnActivate = Position.getPooled( globalX, globalY, ); + // $FlowFixMe[prop-missing] this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled( w, h, diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js deleted file mode 100644 index f5399c48e19..00000000000 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @flow strict-local - * @format - */ - -import DevSettings from '../Utilities/DevSettings'; -import NativeDevToolsSettingsManager from './NativeDevToolsSettingsManager'; - -module.exports = { - setConsolePatchSettings(newSettings: string) { - NativeDevToolsSettingsManager?.setConsolePatchSettings(newSettings); - }, - getConsolePatchSettings(): ?string { - return NativeDevToolsSettingsManager?.getConsolePatchSettings(); - }, - setProfilingSettings(newSettings: string) { - if (NativeDevToolsSettingsManager?.setProfilingSettings != null) { - NativeDevToolsSettingsManager.setProfilingSettings(newSettings); - } - }, - getProfilingSettings(): ?string { - if (NativeDevToolsSettingsManager?.getProfilingSettings != null) { - return NativeDevToolsSettingsManager.getProfilingSettings(); - } - return null; - }, - reload(): void { - DevSettings?.reload(); - }, -}; diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/NativeComponent/BaseViewConfig.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/NativeComponent/BaseViewConfig.win32.js index a9c5a4b179e..807a4882263 100644 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/NativeComponent/BaseViewConfig.win32.js +++ b/packages/@office-iss/react-native-win32/src-win/Libraries/NativeComponent/BaseViewConfig.win32.js @@ -228,7 +228,7 @@ const validAttributesForNonEventProps = { boxShadow: { process: require('../StyleSheet/processBoxShadow').default, }, - experimental_mixBlendMode: true, + mixBlendMode: true, isolation: true, borderTopWidth: true, diff --git a/packages/@office-iss/react-native-win32/src-win/index.win32.js b/packages/@office-iss/react-native-win32/src-win/index.win32.js index 496d56fad88..57190433431 100644 --- a/packages/@office-iss/react-native-win32/src-win/index.win32.js +++ b/packages/@office-iss/react-native-win32/src-win/index.win32.js @@ -85,6 +85,7 @@ import typeof UTFSequence from './Libraries/UTFSequence'; import typeof * as Appearance from './Libraries/Utilities/Appearance'; import typeof BackHandler from './Libraries/Utilities/BackHandler'; import typeof DeviceInfo from './Libraries/Utilities/DeviceInfo'; +import typeof DevMenu from './src/private/devmenu/DevMenu'; import typeof DevSettings from './Libraries/Utilities/DevSettings'; import typeof Dimensions from './Libraries/Utilities/Dimensions'; import typeof PixelRatio from './Libraries/Utilities/PixelRatio'; @@ -240,6 +241,9 @@ module.exports = { get DeviceInfo(): DeviceInfo { return require('./Libraries/Utilities/DeviceInfo'); }, + get DevMenu(): DevMenu { + return require('./src/private/devmenu/DevMenu'); + }, get DevSettings(): DevSettings { return require('./Libraries/Utilities/DevSettings'); }, diff --git a/packages/@office-iss/react-native-win32/src-win/src/private/reactdevtools/ReactDevToolsSettingsManager.win32.js b/packages/@office-iss/react-native-win32/src-win/src/private/reactdevtools/ReactDevToolsSettingsManager.win32.js new file mode 100644 index 00000000000..e80d4c32b44 --- /dev/null +++ b/packages/@office-iss/react-native-win32/src-win/src/private/reactdevtools/ReactDevToolsSettingsManager.win32.js @@ -0,0 +1,20 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict-local + * @format + */ + +import NativeReactDevToolsSettingsManager from '../specs/modules/NativeReactDevToolsSettingsManager'; + +module.exports = { + setGlobalHookSettings(settings: string) { + NativeReactDevToolsSettingsManager?.setGlobalHookSettings(settings); + }, + getGlobalHookSettings(): ?string { + return NativeReactDevToolsSettingsManager?.getGlobalHookSettings(); + }, +}; diff --git a/packages/@react-native-windows/automation-channel/package.json b/packages/@react-native-windows/automation-channel/package.json index 3d4cbb94e62..6874188ac82 100644 --- a/packages/@react-native-windows/automation-channel/package.json +++ b/packages/@react-native-windows/automation-channel/package.json @@ -31,7 +31,7 @@ "just-scripts": "^1.3.2", "prettier": "2.8.8", "react": "19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-windows": "^0.0.0-canary.876", "typescript": "5.0.4" }, diff --git a/packages/@react-native-windows/codegen/src/generators/ValidateMethods.ts b/packages/@react-native-windows/codegen/src/generators/ValidateMethods.ts index 018cfc8f9e2..e447bc4475e 100644 --- a/packages/@react-native-windows/codegen/src/generators/ValidateMethods.ts +++ b/packages/@react-native-windows/codegen/src/generators/ValidateMethods.ts @@ -33,6 +33,7 @@ function getPossibleMethodSignatures( ): string[] { const args = translateArgs(funcType.params, aliases, baseAliasName, options); if (funcType.returnTypeAnnotation.type === 'PromiseTypeAnnotation') { + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (funcType.returnTypeAnnotation.elementType) { args.push( `::React::ReactPromise<${translateImplReturnType( @@ -120,6 +121,7 @@ function renderProperties( ); if (funcType.returnTypeAnnotation.type === 'PromiseTypeAnnotation') { + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (funcType.returnTypeAnnotation.elementType) { traversedArgs.push( `Promise<${translateSpecReturnType( diff --git a/packages/@react-native-windows/tester/overrides.json b/packages/@react-native-windows/tester/overrides.json index 00bed539a10..3158780f461 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.77.0-nightly-20240921-1747f57c6", + "baseVersion": "0.77.0-nightly-20241001-223e98cc4", "overrides": [ { "type": "derived", @@ -91,7 +91,7 @@ "type": "derived", "file": "src/js/utils/RNTesterList.windows.js", "baseFile": "packages/rn-tester/js/utils/RNTesterList.android.js", - "baseHash": "b40cdc34295381fbd40d38ade093cc0d198edd13" + "baseHash": "a4a186470316624bcd693e7f8b67739f87e5729c" } ] } \ No newline at end of file diff --git a/packages/@react-native-windows/tester/package.json b/packages/@react-native-windows/tester/package.json index e0b548b171c..506d9c4def3 100644 --- a/packages/@react-native-windows/tester/package.json +++ b/packages/@react-native-windows/tester/package.json @@ -19,7 +19,7 @@ "peerDependencies": { "@react-native-picker/picker": "2.4.10", "react": "18.0.0", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-windows": "^0.0.0-canary.876", "react-native-xaml": "^0.0.78" }, @@ -32,7 +32,7 @@ "@types/node": "^18.0.0", "eslint": "^8.19.0", "just-scripts": "^1.3.3", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-platform-override": "^1.9.48", "react-native-windows": "^0.0.0-canary.876", "typescript": "5.0.4" diff --git a/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js b/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js index 645d5208f97..19ce898a2ae 100644 --- a/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js +++ b/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js @@ -7,7 +7,7 @@ 'use strict'; -import type {RNTesterModuleInfo} from '../types/RNTesterTypes'; +import type {RNTesterModuleInfo, RNTesterModule} from '../types/RNTesterTypes'; import ReactNativeFeatureFlags from 'react-native/Libraries/ReactNative/ReactNativeFeatureFlags'; @@ -458,9 +458,16 @@ if (ReactNativeFeatureFlags.shouldEmitW3CPointerEvents()) { }); } -const Modules: any = {}; +const Playgrounds: Array = [ + { + key: 'PlaygroundExample', + module: require('../examples/Playground/PlaygroundExample'), + }, +]; + +const Modules: {[key: string]: RNTesterModule} = {}; -APIs.concat(Components).forEach(Example => { +[...APIs, ...Components, ...Playgrounds].forEach(Example => { Modules[Example.key] = Example.module; }); diff --git a/packages/@react-native/monorepo/overrides.json b/packages/@react-native/monorepo/overrides.json index 278b36f46e7..3a38334a234 100644 --- a/packages/@react-native/monorepo/overrides.json +++ b/packages/@react-native/monorepo/overrides.json @@ -1,11 +1,11 @@ { - "baseVersion": "0.77.0-nightly-20240921-1747f57c6", + "baseVersion": "0.77.0-nightly-20241001-223e98cc4", "overrides": [ { "type": "patch", "file": "package.json", "baseFile": "package.json", - "baseHash": "ab40e80bdf6092942567dd11861dbc9911cd95b7" + "baseHash": "1b61755d61f22eee2f822bd8709ab5ebe503b940" } ] } \ No newline at end of file diff --git a/packages/@react-native/monorepo/package.json b/packages/@react-native/monorepo/package.json index 2fa6d794ad1..2634eda0d5a 100644 --- a/packages/@react-native/monorepo/package.json +++ b/packages/@react-native/monorepo/package.json @@ -47,8 +47,8 @@ "@definitelytyped/dtslint": "^0.0.127", "@jest/create-cache-key-function": "^29.6.3", "@pkgjs/parseargs": "^0.11.0", - "@react-native/metro-babel-transformer": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/metro-config": "0.77.0-nightly-20240921-1747f57c6", + "@react-native/metro-babel-transformer": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/metro-config": "0.77.0-nightly-20241001-223e98cc4", "@tsconfig/node18": "1.0.1", "@types/react": "^18.2.6", "@typescript-eslint/parser": "^7.1.1", @@ -57,7 +57,6 @@ "babel-plugin-syntax-hermes-parser": "0.23.1", "babel-plugin-transform-define": "^2.1.4", "babel-plugin-transform-flow-enums": "^0.0.2", - "babel-preset-fbjs": "^3.4.0", "chalk": "^4.0.0", "clang-format": "^1.8.0", "connect": "^3.6.5", @@ -76,7 +75,7 @@ "eslint-plugin-redundant-undefined": "^0.4.0", "eslint-plugin-relay": "^1.8.3", "flow-api-translator": "0.23.1", - "flow-bin": "^0.246.0", + "flow-bin": "^0.247.1", "glob": "^7.1.1", "hermes-eslint": "0.23.1", "hermes-transform": "0.23.1", @@ -86,6 +85,7 @@ "jscodeshift": "^0.14.0", "metro-babel-register": "^0.80.10", "metro-memory-fs": "^0.80.10", + "metro-transform-plugins": "^0.80.10", "micromatch": "^4.0.4", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", diff --git a/packages/@react-native/tester/js/RNTesterAppShared.js b/packages/@react-native/tester/js/RNTesterAppShared.js index 336fc9d9839..a40cbc8c237 100644 --- a/packages/@react-native/tester/js/RNTesterAppShared.js +++ b/packages/@react-native/tester/js/RNTesterAppShared.js @@ -8,8 +8,9 @@ * @flow */ -import type {RNTesterModuleInfo} from './types/RNTesterTypes'; +import type {RNTesterModuleInfo, ScreenTypes} from './types/RNTesterTypes'; +import {title as PlaygroundTitle} from './examples/Playground/PlaygroundExample'; import RNTesterModuleContainer from './components/RNTesterModuleContainer'; import RNTesterModuleList from './components/RNTesterModuleList'; import RNTesterNavBar, {navBarHeight} from './components/RNTesterNavbar'; @@ -127,11 +128,22 @@ const RNTesterApp = ({ ); const handleNavBarPress = React.useCallback( - (args: {screen: string}) => { - dispatch({ - type: RNTesterNavigationActionsType.NAVBAR_PRESS, - data: {screen: args.screen}, - }); + (args: {screen: ScreenTypes}) => { + if (args.screen === 'playgrounds') { + dispatch({ + type: RNTesterNavigationActionsType.NAVBAR_OPEN_MODULE_PRESS, + data: { + key: 'PlaygroundExample', + title: PlaygroundTitle, + screen: args.screen, + }, + }); + } else { + dispatch({ + type: RNTesterNavigationActionsType.NAVBAR_PRESS, + data: {screen: args.screen}, + }); + } }, [dispatch], ); diff --git a/packages/@react-native/tester/js/assets/bottom-nav-playgrounds-icon-dark.png b/packages/@react-native/tester/js/assets/bottom-nav-playgrounds-icon-dark.png new file mode 100644 index 00000000000..b027c5abbb0 Binary files /dev/null and b/packages/@react-native/tester/js/assets/bottom-nav-playgrounds-icon-dark.png differ diff --git a/packages/@react-native/tester/js/assets/bottom-nav-playgrounds-icon-light.png b/packages/@react-native/tester/js/assets/bottom-nav-playgrounds-icon-light.png new file mode 100644 index 00000000000..23377fb9299 Binary files /dev/null and b/packages/@react-native/tester/js/assets/bottom-nav-playgrounds-icon-light.png differ diff --git a/packages/@react-native/tester/js/components/RNTesterNavbar.js b/packages/@react-native/tester/js/components/RNTesterNavbar.js index 2f0621e4a34..3b112b14970 100644 --- a/packages/@react-native/tester/js/components/RNTesterNavbar.js +++ b/packages/@react-native/tester/js/components/RNTesterNavbar.js @@ -9,11 +9,14 @@ */ import type {RNTesterTheme} from './RNTesterTheme'; +import type {ScreenTypes} from '../types/RNTesterTypes'; import {RNTesterThemeContext} from './RNTesterTheme'; import * as React from 'react'; import {Image, Pressable, StyleSheet, Text, View} from 'react-native'; +type NavBarOnPressHandler = ({screen: ScreenTypes}) => void; + /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's * LTI update could not be added via codemod */ const NavbarButton = ({ @@ -54,7 +57,7 @@ const ComponentTab = ({ handleNavBarPress, theme, }: $TEMPORARY$object<{ - handleNavBarPress: (data: {screen: string}) => void, + handleNavBarPress: NavBarOnPressHandler, isComponentActive: boolean, theme: RNTesterTheme, }>) => ( @@ -70,12 +73,33 @@ const ComponentTab = ({ /> ); +const PlaygroundTab = ({ + isComponentActive, + handleNavBarPress, + theme, +}: $TEMPORARY$object<{ + handleNavBarPress: NavBarOnPressHandler, + isComponentActive: boolean, + theme: RNTesterTheme, +}>) => ( + handleNavBarPress({screen: 'playgrounds'})} + activeImage={theme.NavBarPlaygroundActiveIcon} + inactiveImage={theme.NavBarPlaygroundInactiveIcon} + isActive={isComponentActive} + theme={theme} + iconStyle={styles.componentIcon} + /> +); + const APITab = ({ isAPIActive, handleNavBarPress, theme, }: $TEMPORARY$object<{ - handleNavBarPress: (data: {screen: string}) => void, + handleNavBarPress: NavBarOnPressHandler, isAPIActive: boolean, theme: RNTesterTheme, }>) => ( @@ -92,7 +116,7 @@ const APITab = ({ ); type Props = $ReadOnly<{| - handleNavBarPress: (data: {screen: string}) => void, + handleNavBarPress: NavBarOnPressHandler, screen: string, isExamplePageOpen: boolean, |}>; @@ -106,6 +130,7 @@ const RNTesterNavbar = ({ const isAPIActive = screen === 'apis' && !isExamplePageOpen; const isComponentActive = screen === 'components' && !isExamplePageOpen; + const isPlaygroundActive = screen === 'playgrounds'; return ( @@ -115,6 +140,11 @@ const RNTesterNavbar = ({ handleNavBarPress={handleNavBarPress} theme={theme} /> + { max: 100, }}> - Fake Slider + Fake Slider {this.state.current} { accessibilityValue={{text: this.state.textualValue}}> - Equalizer + Equalizer {this.state.textualValue} @@ -1335,7 +1335,7 @@ class FakeSliderExampleForAccessibilityValue extends React.Component< aria-valuetext={'slider aria value text'} aria-valuenow={this.state.current}> - Fake Slider + Fake Slider {this.state.current} - Equalizer + Equalizer {this.state.textualValue} diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouch.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouch.js index 69d448082c8..627d913990e 100644 --- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouch.js +++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventClickTouch.js @@ -33,11 +33,6 @@ function checkClickEventProperties( assert_equals(event.nativeEvent.tiltX, 0, 'default tiltX is 0'); assert_equals(event.nativeEvent.tiltY, 0, 'default tiltY is 0'); assert_equals(event.nativeEvent.twist, 0, 'default twist is 0'); - assert_equals( - event.nativeEvent.isPrimary, - false, - 'default isPrimary is false', - ); } function PointerEventClickTouchTestCase(props: PlatformTestComponentBaseProps) { diff --git a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerOverOut.js b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerOverOut.js index 5358381de5d..6ffc64c010f 100644 --- a/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerOverOut.js +++ b/packages/@react-native/tester/js/examples/Experimental/W3CPointerEventPlatformTests/PointerEventPointerOverOut.js @@ -26,7 +26,7 @@ function getNativeTagFromHostElement( } if (elem != null) { // $FlowExpectedError - accessing non-public property - return elem._nativeTag; + return elem.__nativeTag; } return undefined; } diff --git a/packages/@react-native/tester/js/examples/Modal/ModalOnShow.js b/packages/@react-native/tester/js/examples/Modal/ModalOnShow.js index 8ef9764794a..ae4315cc440 100644 --- a/packages/@react-native/tester/js/examples/Modal/ModalOnShow.js +++ b/packages/@react-native/tester/js/examples/Modal/ModalOnShow.js @@ -11,13 +11,14 @@ import type {RNTesterModuleExample} from '../../types/RNTesterTypes'; import * as React from 'react'; +import {useState} from 'react'; import {Modal, Pressable, StyleSheet, Text, View} from 'react-native'; function ModalOnShowOnDismiss(): React.Node { - const [modalShowComponent, setModalShowComponent] = React.useState(true); - const [modalVisible, setModalVisible] = React.useState(false); - const [onShowCount, setOnShowCount] = React.useState(0); - const [onDismissCount, setOnDismissCount] = React.useState(0); + const [modalShowComponent, setModalShowComponent] = useState(true); + const [modalVisible, setModalVisible] = useState(false); + const [onShowCount, setOnShowCount] = useState(0); + const [onDismissCount, setOnDismissCount] = useState(0); return ( @@ -27,10 +28,10 @@ function ModalOnShowOnDismiss(): React.Node { transparent={true} visible={modalVisible} onShow={() => { - setOnShowCount(onShowCount + 1); + setOnShowCount(showCount => showCount + 1); }} onDismiss={() => { - setOnDismissCount(onDismissCount + 1); + setOnDismissCount(dismissCount => dismissCount + 1); }} onRequestClose={() => { setModalVisible(false); diff --git a/packages/@react-native/tester/js/examples/Modal/ModalPresentation.js b/packages/@react-native/tester/js/examples/Modal/ModalPresentation.js index d800fd70317..872fbb59a7f 100644 --- a/packages/@react-native/tester/js/examples/Modal/ModalPresentation.js +++ b/packages/@react-native/tester/js/examples/Modal/ModalPresentation.js @@ -15,6 +15,7 @@ import type {Props as ModalProps} from 'react-native/Libraries/Modal/Modal'; import RNTOption from '../../components/RNTOption'; import * as React from 'react'; +import {useCallback, useState} from 'react'; import {Modal, Platform, StyleSheet, Switch, Text, View} from 'react-native'; const RNTesterButton = require('../../components/RNTesterButton'); @@ -37,19 +38,19 @@ const supportedOrientations = [ const backdropColors = ['red', 'blue', undefined]; function ModalPresentation() { - const onDismiss = React.useCallback(() => { + const onDismiss = useCallback(() => { alert('onDismiss'); }, []); - const onShow = React.useCallback(() => { + const onShow = useCallback(() => { alert('onShow'); }, []); - const onRequestClose = React.useCallback(() => { + const onRequestClose = useCallback(() => { console.log('onRequestClose'); }, []); - const [props, setProps] = React.useState({ + const [props, setProps] = useState({ animationType: 'none', transparent: false, hardwareAccelerated: false, @@ -72,11 +73,12 @@ function ModalPresentation() { const statusBarTranslucent = props.statusBarTranslucent; const backdropColor = props.backdropColor; - const [currentOrientation, setCurrentOrientation] = React.useState('unknown'); + const [currentOrientation, setCurrentOrientation] = useState('unknown'); - /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's - * LTI update could not be added via codemod */ - const onOrientationChange = event => + type OrientationChangeEvent = Parameters< + $NonMaybeType['onOrientationChange']>, + >[0]; + const onOrientationChange = (event: OrientationChangeEvent) => setCurrentOrientation(event.nativeEvent.orientation); const controls = ( @@ -220,9 +222,9 @@ function ModalPresentation() { {backdropColors.map(type => ( setProps(prev => ({ diff --git a/packages/@react-native/tester/js/examples/Performance/PerformanceApiExample.js b/packages/@react-native/tester/js/examples/Performance/PerformanceApiExample.js index 2129b8624c5..d051b1e6b9e 100644 --- a/packages/@react-native/tester/js/examples/Performance/PerformanceApiExample.js +++ b/packages/@react-native/tester/js/examples/Performance/PerformanceApiExample.js @@ -167,7 +167,7 @@ function PerformanceObserverEventTimingExample(): React.Node { setEntries(newEntries); }); - observer.observe({entryTypes: ['event']}); + observer.observe({type: 'event'}); return () => observer.disconnect(); }, []); diff --git a/packages/@react-native/tester/js/examples/Playground/PlaygroundExample.js b/packages/@react-native/tester/js/examples/Playground/PlaygroundExample.js new file mode 100644 index 00000000000..a39b613cc75 --- /dev/null +++ b/packages/@react-native/tester/js/examples/Playground/PlaygroundExample.js @@ -0,0 +1,18 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + * @flow strict-local + */ + +import type {RNTesterModuleExample} from '../../types/RNTesterTypes'; + +import Playground from './RNTesterPlayground'; + +export const title = Playground.title; +export const framework = 'React'; +export const description = 'Test out new features and ideas.'; +export const examples: Array = [Playground]; diff --git a/packages/@react-native/tester/js/examples/Playground/RNTesterPlayground.js b/packages/@react-native/tester/js/examples/Playground/RNTesterPlayground.js new file mode 100644 index 00000000000..01613e09377 --- /dev/null +++ b/packages/@react-native/tester/js/examples/Playground/RNTesterPlayground.js @@ -0,0 +1,35 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict-local + * @format + * @oncall react_native + */ + +import type {RNTesterModuleExample} from '../../types/RNTesterTypes'; + +import * as React from 'react'; +import {StyleSheet, Text, View} from 'react-native'; + +function Playground() { + return ( + + Edit "RNTesterPlayground.js" to change this file + + ); +} + +const styles = StyleSheet.create({ + container: { + padding: 10, + }, +}); + +export default ({ + title: 'Playground', + name: 'playground', + render: (): React.Node => , +}: RNTesterModuleExample); diff --git a/packages/@react-native/tester/js/types/RNTesterTypes.js b/packages/@react-native/tester/js/types/RNTesterTypes.js index 53500cc1fa0..1e24f41da47 100644 --- a/packages/@react-native/tester/js/types/RNTesterTypes.js +++ b/packages/@react-native/tester/js/types/RNTesterTypes.js @@ -53,7 +53,7 @@ export type ExamplesList = $ReadOnly<{| apis: $ReadOnlyArray>, |}>; -export type ScreenTypes = 'components' | 'apis' | null; +export type ScreenTypes = 'components' | 'apis' | 'playgrounds' | null; export type ComponentList = null | {components: string[], apis: string[]}; diff --git a/packages/@react-native/tester/js/utils/RNTesterList.android.js b/packages/@react-native/tester/js/utils/RNTesterList.android.js index 1255a790266..d18ba489cf9 100644 --- a/packages/@react-native/tester/js/utils/RNTesterList.android.js +++ b/packages/@react-native/tester/js/utils/RNTesterList.android.js @@ -10,7 +10,7 @@ 'use strict'; -import type {RNTesterModuleInfo} from '../types/RNTesterTypes'; +import type {RNTesterModuleInfo, RNTesterModule} from '../types/RNTesterTypes'; import ReactNativeFeatureFlags from 'react-native/Libraries/ReactNative/ReactNativeFeatureFlags'; @@ -367,9 +367,16 @@ if (ReactNativeFeatureFlags.shouldEmitW3CPointerEvents()) { }); } -const Modules: any = {}; +const Playgrounds: Array = [ + { + key: 'PlaygroundExample', + module: require('../examples/Playground/PlaygroundExample'), + }, +]; + +const Modules: {[key: string]: RNTesterModule} = {}; -APIs.concat(Components).forEach(Example => { +[...APIs, ...Components, ...Playgrounds].forEach(Example => { Modules[Example.key] = Example.module; }); diff --git a/packages/@react-native/tester/js/utils/RNTesterList.ios.js b/packages/@react-native/tester/js/utils/RNTesterList.ios.js index 26de3590131..056e06c0da4 100644 --- a/packages/@react-native/tester/js/utils/RNTesterList.ios.js +++ b/packages/@react-native/tester/js/utils/RNTesterList.ios.js @@ -10,7 +10,7 @@ 'use strict'; -import type {RNTesterModuleInfo} from '../types/RNTesterTypes'; +import type {RNTesterModuleInfo, RNTesterModule} from '../types/RNTesterTypes'; import ReactNativeFeatureFlags from 'react-native/Libraries/ReactNative/ReactNativeFeatureFlags'; @@ -347,10 +347,16 @@ if (ReactNativeFeatureFlags.shouldEmitW3CPointerEvents()) { }); } -const Modules: {...} = {}; +const Playgrounds: Array = [ + { + key: 'PlaygroundExample', + module: require('../examples/Playground/PlaygroundExample'), + }, +]; + +const Modules: {[key: string]: RNTesterModule} = {}; -APIs.concat(Components).forEach(Example => { - // $FlowFixMe[prop-missing] +[...APIs, ...Components, ...Playgrounds].forEach(Example => { Modules[Example.key] = Example.module; }); diff --git a/packages/@react-native/tester/js/utils/RNTesterList.js.flow b/packages/@react-native/tester/js/utils/RNTesterList.js.flow index 70d7ed59fac..1beaa5559b0 100644 --- a/packages/@react-native/tester/js/utils/RNTesterList.js.flow +++ b/packages/@react-native/tester/js/utils/RNTesterList.js.flow @@ -10,10 +10,10 @@ 'use strict'; -import type {RNTesterModuleInfo} from '../types/RNTesterTypes'; +import type {RNTesterModuleInfo, RNTesterModule} from '../types/RNTesterTypes'; declare const APIs: Array; declare const Components: Array; -declare const Modules: {...}; +declare const Modules: {[key: string]: RNTesterModule}; module.exports = {APIs, Components, Modules}; diff --git a/packages/@react-native/tester/js/utils/RNTesterNavigationReducer.js b/packages/@react-native/tester/js/utils/RNTesterNavigationReducer.js index 4f0f5c335c0..637ad0dd552 100644 --- a/packages/@react-native/tester/js/utils/RNTesterNavigationReducer.js +++ b/packages/@react-native/tester/js/utils/RNTesterNavigationReducer.js @@ -19,6 +19,7 @@ export const RNTesterNavigationActionsType = { MODULE_CARD_PRESS: 'MODULE_CARD_PRESS', EXAMPLE_CARD_PRESS: 'EXAMPLE_CARD_PRESS', EXAMPLE_OPEN_URL_REQUEST: 'EXAMPLE_OPEN_URL_REQUEST', + NAVBAR_OPEN_MODULE_PRESS: 'NAVBAR_OPEN_MODULE_PRESS', }; const getUpdatedRecentlyUsed = ({ @@ -77,6 +78,16 @@ export const RNTesterNavigationReducer = ( hadDeepLink: false, }; + case RNTesterNavigationActionsType.NAVBAR_OPEN_MODULE_PRESS: + return { + ...state, + activeModuleKey: key, + activeModuleTitle: title, + activeModuleExampleKey: null, + screen, + hadDeepLink: true, + }; + case RNTesterNavigationActionsType.MODULE_CARD_PRESS: return { ...state, @@ -99,7 +110,6 @@ export const RNTesterNavigationReducer = ( case RNTesterNavigationActionsType.BACK_BUTTON_PRESS: // Go back to module or list. - // If there was a deeplink navigation, pressing Back should bring us back to the root. return { ...state, activeModuleExampleKey: null, @@ -112,6 +122,8 @@ export const RNTesterNavigationReducer = ( ? state.activeModuleTitle : null, hadDeepLink: false, + // If there was a deeplink navigation, pressing Back should bring us back to the root. + screen: state.hadDeepLink ? 'components' : state.screen, }; case RNTesterNavigationActionsType.EXAMPLE_OPEN_URL_REQUEST: @@ -121,6 +133,7 @@ export const RNTesterNavigationReducer = ( activeModuleTitle: title, activeModuleExampleKey: exampleKey, hadDeepLink: true, + screen: 'components', }; default: diff --git a/packages/@react-native/tester/js/utils/testerStateUtils.js b/packages/@react-native/tester/js/utils/testerStateUtils.js index 596af29acfe..df8137bc58e 100644 --- a/packages/@react-native/tester/js/utils/testerStateUtils.js +++ b/packages/@react-native/tester/js/utils/testerStateUtils.js @@ -21,6 +21,7 @@ import RNTesterList from './RNTesterList'; export const Screens = { COMPONENTS: 'components', APIS: 'apis', + PLAYGROUNDS: 'playgrounds', }; export const initialNavigationState: RNTesterNavigationState = { diff --git a/packages/@react-native/tester/overrides.json b/packages/@react-native/tester/overrides.json index 76e1f47b6ef..6751f4c9d46 100644 --- a/packages/@react-native/tester/overrides.json +++ b/packages/@react-native/tester/overrides.json @@ -1,26 +1,25 @@ { - "baseVersion": "0.77.0-nightly-20240921-1747f57c6", + "baseVersion": "0.77.0-nightly-20241001-223e98cc4", "overrides": [ { "type": "copy", "directory": "js/assets", "baseDirectory": "packages/rn-tester/js/assets", - "baseHash": "3954798e183a6a0c617006accae280058fe17cc0", + "baseHash": "0231cc3333fc491c6530739c43f7837c7cff7aeb", "issue": 4054 }, { "type": "copy", "directory": "js/components", "baseDirectory": "packages/rn-tester/js/components", - "baseVersion": "0.77.0-nightly-20240915-afb40e9f2", - "baseHash": "c3668e7f1197c559d18ff6cb16078f53636ddc29", + "baseHash": "8d837becbbb8ef21afef3533a8f8b0a2c0f8fab1", "issue": 4054 }, { "type": "copy", "directory": "js/examples/Accessibility", "baseDirectory": "packages/rn-tester/js/examples/Accessibility", - "baseHash": "d48d32375e4ebcd408446d44e01fe61db412b7af", + "baseHash": "8679456302662e4ce453c6bb41740a8739d3b5f0", "issue": 4054 }, { @@ -125,14 +124,13 @@ "type": "copy", "directory": "js/examples/Experimental", "baseDirectory": "packages/rn-tester/js/examples/Experimental", - "baseHash": "9ea6f20b9ff5c97433b40acfc6986d2136385cb9", + "baseHash": "42ede921918c1af679048a0b7f6d575db40c1008", "issue": 4054 }, { "type": "copy", "directory": "js/examples/Filter", "baseDirectory": "packages/rn-tester/js/examples/Filter", - "baseVersion": "0.77.0-nightly-20240915-afb40e9f2", "baseHash": "0bc04c6ee9f9c427da85915be91c0d49aeede435", "issue": 4054 }, @@ -147,7 +145,6 @@ "type": "copy", "directory": "js/examples/Image", "baseDirectory": "packages/rn-tester/js/examples/Image", - "baseVersion": "0.77.0-nightly-20240915-afb40e9f2", "baseHash": "52c008e059a1385dc9a49b5f773ca1f1f4389b61", "issue": 4054 }, @@ -211,8 +208,7 @@ "type": "copy", "directory": "js/examples/Modal", "baseDirectory": "packages/rn-tester/js/examples/Modal", - "baseVersion": "0.77.0-nightly-20240918-bebd6531b", - "baseHash": "2a676165a58a182d633eede14add631af3cc134f", + "baseHash": "e4cbd489c88782d6d22aa7cbd404bf4e522b480c", "issue": 4054 }, { @@ -261,7 +257,7 @@ "type": "copy", "directory": "js/examples/Performance", "baseDirectory": "packages/rn-tester/js/examples/Performance", - "baseHash": "4791deacfc17c1b7c2ff8a8360ef9b8eaa4ebd01", + "baseHash": "137f30e3d9a29dc4f0076d8e479b8daffdb79f08", "issue": 0 }, { @@ -285,6 +281,13 @@ "baseHash": "e14899179e3865d327637b8f94810ded5ba50bed", "issue": 4054 }, + { + "type": "copy", + "directory": "js/examples/Playground", + "baseDirectory": "packages/rn-tester/js/examples/Playground", + "baseHash": "e47040a1660aa6acaf06e912226c0e2a78dd7760", + "issue": 4054 + }, { "type": "copy", "directory": "js/examples/PointerEvents", @@ -394,7 +397,6 @@ "type": "copy", "directory": "js/examples/Text", "baseDirectory": "packages/rn-tester/js/examples/Text", - "baseVersion": "0.77.0-nightly-20240915-afb40e9f2", "baseHash": "528bba6e7f5938ec8c81c54471962883047e68f3", "issue": 4054 }, @@ -402,7 +404,6 @@ "type": "copy", "directory": "js/examples/TextInput", "baseDirectory": "packages/rn-tester/js/examples/TextInput", - "baseVersion": "0.77.0-nightly-20240915-afb40e9f2", "baseHash": "517045664204290fb29333ce7919cb6855d8c33f", "issue": 4054 }, @@ -494,49 +495,49 @@ "type": "copy", "file": "js/RNTesterAppShared.js", "baseFile": "packages/rn-tester/js/RNTesterAppShared.js", - "baseHash": "c223f5c49318864f20db4f9eaaeaadd011709dc2", + "baseHash": "35879ef481ba3effb60335603c75431881815e5a", "issue": 4054 }, { "type": "copy", "directory": "js/types", "baseDirectory": "packages/rn-tester/js/types", - "baseHash": "789c5ff543590fece7ea04ed41d6818f5dbe15d2", + "baseHash": "58bc903a52118f55221b2bd1dd6692b47e79d7b3", "issue": 4054 }, { "type": "patch", "file": "js/utils/RNTesterList.android.js", "baseFile": "packages/rn-tester/js/utils/RNTesterList.android.js", - "baseHash": "b40cdc34295381fbd40d38ade093cc0d198edd13", + "baseHash": "a4a186470316624bcd693e7f8b67739f87e5729c", "issue": 13228 }, { "type": "patch", "file": "js/utils/RNTesterList.ios.js", "baseFile": "packages/rn-tester/js/utils/RNTesterList.ios.js", - "baseHash": "daf237a083cd8489ef43b7e4f33cfdcaeb547a6e", + "baseHash": "b9ccfa9c1cfa826b64b4de56e373f1d8b9a6856b", "issue": 13228 }, { "type": "copy", "file": "js/utils/RNTesterList.js.flow", "baseFile": "packages/rn-tester/js/utils/RNTesterList.js.flow", - "baseHash": "15670e7e3a42f775809785937036f8e1b3aa73fb", + "baseHash": "84d6c18587c04a647cb7f0d482f0578af9cdb113", "issue": 4054 }, { "type": "copy", "file": "js/utils/RNTesterNavigationReducer.js", "baseFile": "packages/rn-tester/js/utils/RNTesterNavigationReducer.js", - "baseHash": "cbd55678b272dc752f436064c83bad186d98a4c9", + "baseHash": "1a56665b80cb979c919ece7c5725272f0464ac9e", "issue": 4054 }, { "type": "copy", "file": "js/utils/testerStateUtils.js", "baseFile": "packages/rn-tester/js/utils/testerStateUtils.js", - "baseHash": "1c633595e5c08d5fbab0ae3225b1ca54fbd190c7", + "baseHash": "7fa1afc9bd4225b55aa36135193a86138c6269a6", "issue": 4054 }, { diff --git a/packages/@rnw-scripts/babel-react-native-config/babel.config.js b/packages/@rnw-scripts/babel-react-native-config/babel.config.js index 28960bdad83..85daab11e15 100644 --- a/packages/@rnw-scripts/babel-react-native-config/babel.config.js +++ b/packages/@rnw-scripts/babel-react-native-config/babel.config.js @@ -11,7 +11,6 @@ module.exports = () => ({ 'module:@react-native/babel-preset', ], plugins: [ - "babel-plugin-syntax-hermes-parser", "babel-plugin-transform-flow-enums", ] }); diff --git a/packages/@rnw-scripts/babel-react-native-config/package.json b/packages/@rnw-scripts/babel-react-native-config/package.json index 5f71ac8b318..4562368224c 100644 --- a/packages/@rnw-scripts/babel-react-native-config/package.json +++ b/packages/@rnw-scripts/babel-react-native-config/package.json @@ -11,12 +11,12 @@ }, "dependencies": { "@babel/core": "^7.25.2", - "@react-native/babel-preset": "0.76.0-nightly-20240701-9f6cb21ed", + "@react-native/babel-preset": "0.77.0-nightly-20241001-223e98cc4", "babel-plugin-transform-flow-enums": "^0.0.2" }, "devDependencies": { "@babel/core": "^7.25.2", - "@react-native/babel-preset": "0.76.0-nightly-20240701-9f6cb21ed", + "@react-native/babel-preset": "0.77.0-nightly-20241001-223e98cc4", "eslint": "^8.19.0", "prettier": "2.8.8" }, diff --git a/packages/@rnw-scripts/integrate-rn/src/runCommand.ts b/packages/@rnw-scripts/integrate-rn/src/runCommand.ts index 6215bf421b9..4f01ae20be5 100644 --- a/packages/@rnw-scripts/integrate-rn/src/runCommand.ts +++ b/packages/@rnw-scripts/integrate-rn/src/runCommand.ts @@ -15,6 +15,7 @@ export default async function runCommand( command: string, opts: ExecOptions = {}, ): Promise<{stdout: string; stderr: string}> { + opts.maxBuffer = 10 * 1024 * 1024; // 10 MB if (!opts.cwd) { opts.cwd = await findRepoRoot(); } diff --git a/packages/e2e-test-app-fabric/package.json b/packages/e2e-test-app-fabric/package.json index 271b24a23aa..9e445900ca0 100644 --- a/packages/e2e-test-app-fabric/package.json +++ b/packages/e2e-test-app-fabric/package.json @@ -20,7 +20,7 @@ "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "react": "^19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-windows": "^0.0.0-canary.876" }, "devDependencies": { diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/HomeUIADump.test.ts.snap b/packages/e2e-test-app-fabric/test/__snapshots__/HomeUIADump.test.ts.snap index 933668a67cd..596b368e838 100644 --- a/packages/e2e-test-app-fabric/test/__snapshots__/HomeUIADump.test.ts.snap +++ b/packages/e2e-test-app-fabric/test/__snapshots__/HomeUIADump.test.ts.snap @@ -53,21 +53,21 @@ exports[`Home UIA Tree Dump APIs Tab 1`] = ` }, "Comment": "apis-tab", "Offset": "0, 0, 0", - "Size": "499, 65", + "Size": "333, 65", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "499, 65", + "Size": "333, 65", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "499, 65", + "Size": "333, 65", "Visual Type": "SpriteVisual", "__Children": [ { - "Offset": "235, 13, 0", + "Offset": "151, 13, 0", "Size": "30, 20", "Visual Type": "SpriteVisual", "__Children": [ @@ -84,7 +84,7 @@ exports[`Home UIA Tree Dump APIs Tab 1`] = ` ], }, { - "Offset": "236, 33, 0", + "Offset": "153, 33, 0", "Size": "27, 19", "Visual Type": "SpriteVisual", "__Children": [ @@ -1146,17 +1146,17 @@ exports[`Home UIA Tree Dump Components Tab 1`] = ` }, "Comment": "components-tab", "Offset": "0, 0, 0", - "Size": "499, 65", + "Size": "333, 65", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "499, 65", + "Size": "333, 65", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "499, 65", + "Size": "333, 65", "Visual Type": "SpriteVisual", "__Children": [ { @@ -1200,7 +1200,7 @@ exports[`Home UIA Tree Dump Components Tab 1`] = ` "Visual Type": "SpriteVisual", }, { - "Offset": "240, 14, 0", + "Offset": "156, 14, 0", "Size": "20, 20", "Visual Type": "SpriteVisual", "__Children": [ @@ -1217,13 +1217,13 @@ exports[`Home UIA Tree Dump Components Tab 1`] = ` ], }, { - "Offset": "209, 34, 0", - "Size": "81, 19", + "Offset": "126, 34, 0", + "Size": "80, 19", "Visual Type": "SpriteVisual", "__Children": [ { "Offset": "0, 0, 0", - "Size": "81, 19", + "Size": "80, 19", "Visual Type": "SpriteVisual", }, { diff --git a/packages/e2e-test-app/package.json b/packages/e2e-test-app/package.json index 3cbce0b39ad..5b10666e93d 100644 --- a/packages/e2e-test-app/package.json +++ b/packages/e2e-test-app/package.json @@ -20,7 +20,7 @@ "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "react": "^19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-windows": "^0.0.0-canary.876", "react-native-xaml": "^0.0.78" }, diff --git a/packages/integration-test-app/package.json b/packages/integration-test-app/package.json index 2486ef5d168..477f42e0daa 100644 --- a/packages/integration-test-app/package.json +++ b/packages/integration-test-app/package.json @@ -17,7 +17,7 @@ "@typescript-eslint/parser": "^5.21.0", "chai": "^4.2.0", "react": "^19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-windows": "^0.0.0-canary.876" }, "devDependencies": { diff --git a/packages/playground/package.json b/packages/playground/package.json index 34b3efe8fd5..e9c18892c41 100644 --- a/packages/playground/package.json +++ b/packages/playground/package.json @@ -16,7 +16,7 @@ "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "react": "^19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-windows": "^0.0.0-canary.876" }, "devDependencies": { diff --git a/packages/sample-app-fabric/package.json b/packages/sample-app-fabric/package.json index 8c092aff935..8352553203d 100644 --- a/packages/sample-app-fabric/package.json +++ b/packages/sample-app-fabric/package.json @@ -16,7 +16,7 @@ "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "react": "^19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-windows": "^0.0.0-canary.876" }, "devDependencies": { diff --git a/packages/sample-apps/package.json b/packages/sample-apps/package.json index 034b29f54b8..fd616675704 100644 --- a/packages/sample-apps/package.json +++ b/packages/sample-apps/package.json @@ -16,7 +16,7 @@ "@typescript-eslint/eslint-plugin": "^5.30.5", "@typescript-eslint/parser": "^5.57.1", "react": "^19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-windows": "^0.0.0-canary.876" }, "devDependencies": { diff --git a/packages/sample-custom-component/package.json b/packages/sample-custom-component/package.json index 3e5ee94a7d8..d008a9b0d2b 100644 --- a/packages/sample-custom-component/package.json +++ b/packages/sample-custom-component/package.json @@ -21,7 +21,7 @@ "dependencies": { "@types/react": "^18.2.6", "react": "^19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-windows": "^0.0.0-canary.876" }, "devDependencies": { diff --git a/vnext/.flowconfig b/vnext/.flowconfig index 6471deaf7da..80cd3de9256 100644 --- a/vnext/.flowconfig +++ b/vnext/.flowconfig @@ -154,4 +154,4 @@ untyped-import untyped-type-import [version] -^0.246.0 +^0.247.1 diff --git a/vnext/Microsoft.ReactNative.Managed.IntegrationTests/packages.lock.json b/vnext/Microsoft.ReactNative.Managed.IntegrationTests/packages.lock.json index 8c6f4dc9432..9151904fbb4 100644 --- a/vnext/Microsoft.ReactNative.Managed.IntegrationTests/packages.lock.json +++ b/vnext/Microsoft.ReactNative.Managed.IntegrationTests/packages.lock.json @@ -44,21 +44,6 @@ "resolved": "13.0.1", "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" }, - "boost": { - "type": "Transitive", - "resolved": "1.83.0", - "contentHash": "cy53VNMzysEMvhBixDe8ujPk67Fcj3v6FPHQnH91NYJNLHpc6jxa2xq9ruCaaJjE4M3YrGSHDi4uUSTGBWw6EQ==" - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" - }, - "Microsoft.JavaScript.Hermes": { - "type": "Transitive", - "resolved": "0.1.23", - "contentHash": "cA9t1GjY4Yo0JD1AfA//e1lOwk48hLANfuX6GXrikmEBNZVr2TIX5ONJt5tqCnpZyLz6xGiPDgTfFNKbSfb21g==" - }, "Microsoft.Net.Native.Compiler": { "type": "Transitive", "resolved": "2.2.7-rel-27913-00", @@ -90,33 +75,6 @@ "resolved": "1.0.1", "contentHash": "rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==" }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" - }, - "Microsoft.SourceLink.GitHub": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "1.1.1", - "Microsoft.SourceLink.Common": "1.1.1" - } - }, - "Microsoft.UI.Xaml": { - "type": "Transitive", - "resolved": "2.8.0", - "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==", - "dependencies": { - "Microsoft.Web.WebView2": "1.0.1264.42" - } - }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "NETStandard.Library": { "type": "Transitive", "resolved": "2.0.3", @@ -312,10 +270,7 @@ } }, "common": { - "type": "Project", - "dependencies": { - "boost": "[1.83.0, )" - } + "type": "Project" }, "fmt": { "type": "Project" @@ -323,7 +278,6 @@ "folly": { "type": "Project", "dependencies": { - "boost": "[1.83.0, )", "fmt": "[1.0.0, )" } }, @@ -332,11 +286,7 @@ "dependencies": { "Common": "[1.0.0, )", "Folly": "[1.0.0, )", - "Microsoft.JavaScript.Hermes": "[0.1.23, )", - "Microsoft.SourceLink.GitHub": "[1.1.1, )", - "Microsoft.UI.Xaml": "[2.8.0, )", - "ReactCommon": "[1.0.0, )", - "boost": "[1.83.0, )" + "ReactCommon": "[1.0.0, )" } }, "microsoft.reactnative.managed": { @@ -349,8 +299,7 @@ "reactcommon": { "type": "Project", "dependencies": { - "Folly": "[1.0.0, )", - "boost": "[1.83.0, )" + "Folly": "[1.0.0, )" } } }, @@ -368,11 +317,6 @@ "runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.any.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -565,11 +509,6 @@ "runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.aot.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -796,11 +735,6 @@ "runtime.win10-arm64-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.aot.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -1027,11 +961,6 @@ "runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.any.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -1224,11 +1153,6 @@ "runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.aot.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -1455,11 +1379,6 @@ "runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.any.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -1652,11 +1571,6 @@ "runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.aot.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", diff --git a/vnext/Microsoft.ReactNative.Managed.UnitTests/packages.lock.json b/vnext/Microsoft.ReactNative.Managed.UnitTests/packages.lock.json index 8c6f4dc9432..9151904fbb4 100644 --- a/vnext/Microsoft.ReactNative.Managed.UnitTests/packages.lock.json +++ b/vnext/Microsoft.ReactNative.Managed.UnitTests/packages.lock.json @@ -44,21 +44,6 @@ "resolved": "13.0.1", "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" }, - "boost": { - "type": "Transitive", - "resolved": "1.83.0", - "contentHash": "cy53VNMzysEMvhBixDe8ujPk67Fcj3v6FPHQnH91NYJNLHpc6jxa2xq9ruCaaJjE4M3YrGSHDi4uUSTGBWw6EQ==" - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" - }, - "Microsoft.JavaScript.Hermes": { - "type": "Transitive", - "resolved": "0.1.23", - "contentHash": "cA9t1GjY4Yo0JD1AfA//e1lOwk48hLANfuX6GXrikmEBNZVr2TIX5ONJt5tqCnpZyLz6xGiPDgTfFNKbSfb21g==" - }, "Microsoft.Net.Native.Compiler": { "type": "Transitive", "resolved": "2.2.7-rel-27913-00", @@ -90,33 +75,6 @@ "resolved": "1.0.1", "contentHash": "rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==" }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" - }, - "Microsoft.SourceLink.GitHub": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "1.1.1", - "Microsoft.SourceLink.Common": "1.1.1" - } - }, - "Microsoft.UI.Xaml": { - "type": "Transitive", - "resolved": "2.8.0", - "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==", - "dependencies": { - "Microsoft.Web.WebView2": "1.0.1264.42" - } - }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "NETStandard.Library": { "type": "Transitive", "resolved": "2.0.3", @@ -312,10 +270,7 @@ } }, "common": { - "type": "Project", - "dependencies": { - "boost": "[1.83.0, )" - } + "type": "Project" }, "fmt": { "type": "Project" @@ -323,7 +278,6 @@ "folly": { "type": "Project", "dependencies": { - "boost": "[1.83.0, )", "fmt": "[1.0.0, )" } }, @@ -332,11 +286,7 @@ "dependencies": { "Common": "[1.0.0, )", "Folly": "[1.0.0, )", - "Microsoft.JavaScript.Hermes": "[0.1.23, )", - "Microsoft.SourceLink.GitHub": "[1.1.1, )", - "Microsoft.UI.Xaml": "[2.8.0, )", - "ReactCommon": "[1.0.0, )", - "boost": "[1.83.0, )" + "ReactCommon": "[1.0.0, )" } }, "microsoft.reactnative.managed": { @@ -349,8 +299,7 @@ "reactcommon": { "type": "Project", "dependencies": { - "Folly": "[1.0.0, )", - "boost": "[1.83.0, )" + "Folly": "[1.0.0, )" } } }, @@ -368,11 +317,6 @@ "runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.any.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -565,11 +509,6 @@ "runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.aot.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -796,11 +735,6 @@ "runtime.win10-arm64-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.aot.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -1027,11 +961,6 @@ "runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.any.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -1224,11 +1153,6 @@ "runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.aot.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -1455,11 +1379,6 @@ "runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.any.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", @@ -1652,11 +1571,6 @@ "runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.aot.System.Globalization": { "type": "Transitive", "resolved": "4.0.11", diff --git a/vnext/Microsoft.ReactNative.Managed/packages.lock.json b/vnext/Microsoft.ReactNative.Managed/packages.lock.json index f1810230b0d..341160c0838 100644 --- a/vnext/Microsoft.ReactNative.Managed/packages.lock.json +++ b/vnext/Microsoft.ReactNative.Managed/packages.lock.json @@ -24,21 +24,11 @@ "Microsoft.SourceLink.Common": "1.1.1" } }, - "boost": { - "type": "Transitive", - "resolved": "1.83.0", - "contentHash": "cy53VNMzysEMvhBixDe8ujPk67Fcj3v6FPHQnH91NYJNLHpc6jxa2xq9ruCaaJjE4M3YrGSHDi4uUSTGBWw6EQ==" - }, "Microsoft.Build.Tasks.Git": { "type": "Transitive", "resolved": "1.1.1", "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" }, - "Microsoft.JavaScript.Hermes": { - "type": "Transitive", - "resolved": "0.1.23", - "contentHash": "cA9t1GjY4Yo0JD1AfA//e1lOwk48hLANfuX6GXrikmEBNZVr2TIX5ONJt5tqCnpZyLz6xGiPDgTfFNKbSfb21g==" - }, "Microsoft.Net.Native.Compiler": { "type": "Transitive", "resolved": "2.2.7-rel-27913-00", @@ -70,19 +60,6 @@ "resolved": "1.1.1", "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" }, - "Microsoft.UI.Xaml": { - "type": "Transitive", - "resolved": "2.8.0", - "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==", - "dependencies": { - "Microsoft.Web.WebView2": "1.0.1264.42" - } - }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "NETStandard.Library": { "type": "Transitive", "resolved": "2.0.3", @@ -159,10 +136,7 @@ "contentHash": "qF6RRZKaflI+LR1YODNyWYjq5YoX8IJ2wx5y8O+AW2xO+1t/Q6Mm+jQ38zJbWnmXbrcOqUYofn7Y3/KC6lTLBQ==" }, "common": { - "type": "Project", - "dependencies": { - "boost": "[1.83.0, )" - } + "type": "Project" }, "fmt": { "type": "Project" @@ -170,7 +144,6 @@ "folly": { "type": "Project", "dependencies": { - "boost": "[1.83.0, )", "fmt": "[1.0.0, )" } }, @@ -179,18 +152,13 @@ "dependencies": { "Common": "[1.0.0, )", "Folly": "[1.0.0, )", - "Microsoft.JavaScript.Hermes": "[0.1.23, )", - "Microsoft.SourceLink.GitHub": "[1.1.1, )", - "Microsoft.UI.Xaml": "[2.8.0, )", - "ReactCommon": "[1.0.0, )", - "boost": "[1.83.0, )" + "ReactCommon": "[1.0.0, )" } }, "reactcommon": { "type": "Project", "dependencies": { - "Folly": "[1.0.0, )", - "boost": "[1.83.0, )" + "Folly": "[1.0.0, )" } } }, @@ -208,11 +176,6 @@ "runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform": { "type": "Transitive", "resolved": "6.2.9", @@ -233,11 +196,6 @@ "runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform": { "type": "Transitive", "resolved": "6.2.9", @@ -258,11 +216,6 @@ "runtime.win10-arm64-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.win10-arm64-aot.Microsoft.NETCore.UniversalWindowsPlatform": { "type": "Transitive", "resolved": "6.2.9", @@ -283,11 +236,6 @@ "runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform": { "type": "Transitive", "resolved": "6.2.9", @@ -308,11 +256,6 @@ "runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform": { "type": "Transitive", "resolved": "6.2.9", @@ -333,11 +276,6 @@ "runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform": { "type": "Transitive", "resolved": "6.2.9", @@ -358,11 +296,6 @@ "runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform": "6.2.9" } }, - "Microsoft.Web.WebView2": { - "type": "Transitive", - "resolved": "1.0.1264.42", - "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" - }, "runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform": { "type": "Transitive", "resolved": "6.2.9", diff --git a/vnext/ReactCommon/ReactCommon.vcxproj b/vnext/ReactCommon/ReactCommon.vcxproj index 01ce9424ec7..e9aece14f08 100644 --- a/vnext/ReactCommon/ReactCommon.vcxproj +++ b/vnext/ReactCommon/ReactCommon.vcxproj @@ -168,6 +168,10 @@ + + + + Create diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/performance/timeline/PerformanceEntryReporter.cpp b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/performance/timeline/PerformanceEntryReporter.cpp new file mode 100644 index 00000000000..81d6685154b --- /dev/null +++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/performance/timeline/PerformanceEntryReporter.cpp @@ -0,0 +1,213 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#include "PerformanceEntryReporter.h" + +#include + +namespace facebook::react { + +std::shared_ptr& +PerformanceEntryReporter::getInstance() { + static auto instance = std::make_shared(); + return instance; +} + +PerformanceEntryReporter::PerformanceEntryReporter() + : observerRegistry_(std::make_unique()) {} + +DOMHighResTimeStamp PerformanceEntryReporter::getCurrentTimeStamp() const { + return timeStampProvider_ != nullptr ? timeStampProvider_() + : JSExecutor::performanceNow(); +} + +uint32_t PerformanceEntryReporter::getDroppedEntriesCount( + PerformanceEntryType type) const noexcept { + return (uint32_t)getBuffer(type).droppedEntriesCount; // [Windows #13939] +} + +void PerformanceEntryReporter::mark( + const std::string& name, + const std::optional& startTime) { + const auto entry = PerformanceEntry{ + .name = name, + .entryType = PerformanceEntryType::MARK, + .startTime = startTime ? *startTime : getCurrentTimeStamp()}; + + { + std::lock_guard lock(buffersMutex_); + markBuffer_.add(entry); + } + + observerRegistry_->queuePerformanceEntry(entry); +} + +void PerformanceEntryReporter::clearEntries( + std::optional entryType, + std::optional entryName) { + std::lock_guard lock(buffersMutex_); + + // Clear all entry types + if (!entryType) { + if (entryName.has_value()) { + markBuffer_.clear(*entryName); + measureBuffer_.clear(*entryName); + eventBuffer_.clear(*entryName); + longTaskBuffer_.clear(*entryName); + } else { + markBuffer_.clear(); + measureBuffer_.clear(); + eventBuffer_.clear(); + longTaskBuffer_.clear(); + } + return; + } + + auto& buffer = getBufferRef(*entryType); + if (entryName.has_value()) { + buffer.clear(*entryName); + } else { + buffer.clear(); + } +} + +std::vector PerformanceEntryReporter::getEntries() const { + std::vector res; + // Collect all entry types + for (int i = 1; i <= NUM_PERFORMANCE_ENTRY_TYPES; i++) { + getBuffer(static_cast(i)).getEntries(res); + } + return res; +} + +std::vector PerformanceEntryReporter::getEntriesByType( + PerformanceEntryType entryType) const { + std::vector res; + getEntriesByType(entryType, res); + return res; +} + +void PerformanceEntryReporter::getEntriesByType( + PerformanceEntryType entryType, + std::vector& target) const { + getBuffer(entryType).getEntries(target); +} + +std::vector PerformanceEntryReporter::getEntriesByName( + std::string_view entryName) const { + std::vector res; + // Collect all entry types + for (int i = 1; i <= NUM_PERFORMANCE_ENTRY_TYPES; i++) { + getBuffer(static_cast(i)).getEntries(entryName, res); + } + return res; +} + +std::vector PerformanceEntryReporter::getEntriesByName( + std::string_view entryName, + PerformanceEntryType entryType) const { + std::vector res; + getBuffer(entryType).getEntries(entryName, res); + return res; +} + +void PerformanceEntryReporter::measure( + const std::string_view& name, + DOMHighResTimeStamp startTime, + DOMHighResTimeStamp endTime, + const std::optional& duration, + const std::optional& startMark, + const std::optional& endMark) { + DOMHighResTimeStamp startTimeVal = + startMark ? getMarkTime(*startMark) : startTime; + DOMHighResTimeStamp endTimeVal = endMark ? getMarkTime(*endMark) : endTime; + + if (!endMark && endTime < startTimeVal) { + // The end time is not specified, take the current time, according to the + // standard + endTimeVal = getCurrentTimeStamp(); + } + + DOMHighResTimeStamp durationVal = + duration ? *duration : endTimeVal - startTimeVal; + + const auto entry = PerformanceEntry{ + .name = std::string(name), + .entryType = PerformanceEntryType::MEASURE, + .startTime = startTimeVal, + .duration = durationVal}; + + { + std::lock_guard lock(buffersMutex_); + measureBuffer_.add(entry); + } + + observerRegistry_->queuePerformanceEntry(entry); +} + +DOMHighResTimeStamp PerformanceEntryReporter::getMarkTime( + const std::string& markName) const { + std::lock_guard lock(buffersMutex_); + + if (auto it = markBuffer_.find(markName); it) { + return it->startTime; + } else { + return 0.0; + } +} + +void PerformanceEntryReporter::logEventEntry( + std::string name, + DOMHighResTimeStamp startTime, + DOMHighResTimeStamp duration, + DOMHighResTimeStamp processingStart, + DOMHighResTimeStamp processingEnd, + uint32_t interactionId) { + eventCounts_[name]++; + + const auto entry = PerformanceEntry{ + .name = std::move(name), + .entryType = PerformanceEntryType::EVENT, + .startTime = startTime, + .duration = duration, + .processingStart = processingStart, + .processingEnd = processingEnd, + .interactionId = interactionId}; + + { + std::lock_guard lock(buffersMutex_); + + if (entry.duration < eventBuffer_.durationThreshold) { + // The entries duration is lower than the desired reporting threshold, + // skip + return; + } + + eventBuffer_.add(entry); + } + + observerRegistry_->queuePerformanceEntry(entry); +} + +void PerformanceEntryReporter::logLongTaskEntry( + DOMHighResTimeStamp startTime, + DOMHighResTimeStamp duration) { + const auto entry = PerformanceEntry{ + .name = std::string{"self"}, + .entryType = PerformanceEntryType::LONGTASK, + .startTime = startTime, + .duration = duration}; + + { + std::lock_guard lock(buffersMutex_); + longTaskBuffer_.add(entry); + } + + observerRegistry_->queuePerformanceEntry(entry); +} + +} // namespace facebook::react diff --git a/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/performance/timeline/PerformanceEntryReporter.h b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/performance/timeline/PerformanceEntryReporter.h new file mode 100644 index 00000000000..83179e18e73 --- /dev/null +++ b/vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/performance/timeline/PerformanceEntryReporter.h @@ -0,0 +1,159 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#pragma once + +#include +#include +#include +#include +#include "PerformanceEntryCircularBuffer.h" +#include "PerformanceEntryKeyedBuffer.h" +#include "PerformanceObserverRegistry.h" + +namespace facebook::react { + +constexpr size_t EVENT_BUFFER_SIZE = 150; +constexpr size_t LONG_TASK_BUFFER_SIZE = 200; + +constexpr DOMHighResTimeStamp LONG_TASK_DURATION_THRESHOLD_MS = 50.0; + +class PerformanceEntryReporter { + public: + PerformanceEntryReporter(); + + // NOTE: This class is not thread safe, make sure that the calls are made from + // the same thread. + // TODO: Consider passing it as a parameter to the corresponding modules at + // creation time instead of having the singleton. + static std::shared_ptr& getInstance(); + + PerformanceObserverRegistry& getObserverRegistry() { + return *observerRegistry_; + } + + uint32_t getDroppedEntriesCount(PerformanceEntryType type) const noexcept; + + /* + * DOM Performance (High Resolution Time) + * https://www.w3.org/TR/hr-time-3/#dom-performance + */ + // https://www.w3.org/TR/hr-time-3/#now-method + DOMHighResTimeStamp getCurrentTimeStamp() const; + + void setTimeStampProvider(std::function provider) { + timeStampProvider_ = std::move(provider); + } + + // https://www.w3.org/TR/performance-timeline/#getentries-method + // https://www.w3.org/TR/performance-timeline/#getentriesbytype-method + // https://www.w3.org/TR/performance-timeline/#getentriesbyname-method + std::vector getEntries() const; + std::vector getEntriesByType( + PerformanceEntryType entryType) const; + void getEntriesByType( + PerformanceEntryType entryType, + std::vector& target) const; + std::vector getEntriesByName( + std::string_view entryName) const; + std::vector getEntriesByName( + std::string_view entryName, + PerformanceEntryType entryType) const; + + void logEventEntry( + std::string name, + double startTime, + double duration, + double processingStart, + double processingEnd, + uint32_t interactionId); + + void logLongTaskEntry(double startTime, double duration); + + /* + * Event Timing API functions + * https://www.w3.org/TR/event-timing/ + */ + // https://www.w3.org/TR/event-timing/#dom-performance-eventcounts + const std::unordered_map& getEventCounts() const { + return eventCounts_; + } + + /* + * User Timing Level 3 functions + * https://w3c.github.io/user-timing/ + */ + // https://w3c.github.io/user-timing/#mark-method + void mark( + const std::string& name, + const std::optional& startTime = std::nullopt); + + // https://w3c.github.io/user-timing/#measure-method + void measure( + const std::string_view& name, + double startTime, + double endTime, + const std::optional& duration = std::nullopt, + const std::optional& startMark = std::nullopt, + const std::optional& endMark = std::nullopt); + + // https://w3c.github.io/user-timing/#clearmarks-method + // https://w3c.github.io/user-timing/#clearmeasures-method + void clearEntries( + std::optional entryType = std::nullopt, + std::optional entryName = std::nullopt); + + private: + std::unique_ptr observerRegistry_; + + mutable std::mutex buffersMutex_; + PerformanceEntryCircularBuffer eventBuffer_{EVENT_BUFFER_SIZE}; + PerformanceEntryCircularBuffer longTaskBuffer_{LONG_TASK_BUFFER_SIZE}; + PerformanceEntryKeyedBuffer markBuffer_; + PerformanceEntryKeyedBuffer measureBuffer_; + + std::unordered_map eventCounts_; + + std::function timeStampProvider_ = nullptr; + + double getMarkTime(const std::string& markName) const; + + inline PerformanceEntryBuffer& getBufferRef(PerformanceEntryType entryType) { + switch (entryType) { + case PerformanceEntryType::EVENT: + return eventBuffer_; + case PerformanceEntryType::MARK: + return markBuffer_; + case PerformanceEntryType::MEASURE: + return measureBuffer_; + case PerformanceEntryType::LONGTASK: + return longTaskBuffer_; + case PerformanceEntryType::_NEXT: + throw std::logic_error("Cannot get buffer for _NEXT entry type"); + } + throw std::logic_error("Unhandled PerformanceEntryType: "); // [Windows #13939] + } + + const inline PerformanceEntryBuffer& getBuffer( + PerformanceEntryType entryType) const { + switch (entryType) { + case PerformanceEntryType::EVENT: + return eventBuffer_; + case PerformanceEntryType::MARK: + return markBuffer_; + case PerformanceEntryType::MEASURE: + return measureBuffer_; + case PerformanceEntryType::LONGTASK: + return longTaskBuffer_; + case PerformanceEntryType::_NEXT: + throw std::logic_error("Cannot get buffer for _NEXT entry type"); + } + throw std::logic_error("Unhandled PerformanceEntryType"); // [Windows #13939] + } +}; + +} // namespace facebook::react diff --git a/vnext/Shared/Shared.vcxitems b/vnext/Shared/Shared.vcxitems index 00bff89a92d..3232bbcd76c 100644 --- a/vnext/Shared/Shared.vcxitems +++ b/vnext/Shared/Shared.vcxitems @@ -661,6 +661,10 @@ + + + + diff --git a/vnext/codegen/NativeDevToolsSettingsManagerSpec.g.h b/vnext/codegen/NativeDevToolsSettingsManagerSpec.g.h deleted file mode 100644 index bd96ca414a2..00000000000 --- a/vnext/codegen/NativeDevToolsSettingsManagerSpec.g.h +++ /dev/null @@ -1,52 +0,0 @@ - -/* - * This file is auto-generated from a NativeModule spec file in js. - * - * This is a C++ Spec class that should be used with MakeTurboModuleProvider to register native modules - * in a way that also verifies at compile time that the native module matches the interface required - * by the TurboModule JS spec. - */ -#pragma once - -#include -#include - -namespace Microsoft::ReactNativeSpecs { - - -struct DevToolsSettingsManagerSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { - static constexpr auto methods = std::tuple{ - Method{0, L"setConsolePatchSettings"}, - SyncMethod() noexcept>{1, L"getConsolePatchSettings"}, - Method{2, L"setProfilingSettings"}, - SyncMethod() noexcept>{3, L"getProfilingSettings"}, - }; - - template - static constexpr void ValidateModule() noexcept { - constexpr auto methodCheckResults = CheckMethods(); - - REACT_SHOW_METHOD_SPEC_ERRORS( - 0, - "setConsolePatchSettings", - " REACT_METHOD(setConsolePatchSettings) void setConsolePatchSettings(std::string newConsolePatchSettings) noexcept { /* implementation */ }\n" - " REACT_METHOD(setConsolePatchSettings) static void setConsolePatchSettings(std::string newConsolePatchSettings) noexcept { /* implementation */ }\n"); - REACT_SHOW_METHOD_SPEC_ERRORS( - 1, - "getConsolePatchSettings", - " REACT_SYNC_METHOD(getConsolePatchSettings) std::optional getConsolePatchSettings() noexcept { /* implementation */ }\n" - " REACT_SYNC_METHOD(getConsolePatchSettings) static std::optional getConsolePatchSettings() noexcept { /* implementation */ }\n"); - REACT_SHOW_METHOD_SPEC_ERRORS( - 2, - "setProfilingSettings", - " REACT_METHOD(setProfilingSettings) void setProfilingSettings(std::string newProfilingSettings) noexcept { /* implementation */ }\n" - " REACT_METHOD(setProfilingSettings) static void setProfilingSettings(std::string newProfilingSettings) noexcept { /* implementation */ }\n"); - REACT_SHOW_METHOD_SPEC_ERRORS( - 3, - "getProfilingSettings", - " REACT_SYNC_METHOD(getProfilingSettings) std::optional getProfilingSettings() noexcept { /* implementation */ }\n" - " REACT_SYNC_METHOD(getProfilingSettings) static std::optional getProfilingSettings() noexcept { /* implementation */ }\n"); - } -}; - -} // namespace Microsoft::ReactNativeSpecs diff --git a/vnext/codegen/NativePerformanceObserverSpec.g.h b/vnext/codegen/NativePerformanceObserverSpec.g.h index af070ff45ea..6a5c20db639 100644 --- a/vnext/codegen/NativePerformanceObserverSpec.g.h +++ b/vnext/codegen/NativePerformanceObserverSpec.g.h @@ -13,6 +13,13 @@ namespace Microsoft::ReactNativeSpecs { +struct PerformanceObserverSpec_PerformanceObserverInit { + std::optional> entryTypes; + std::optional type; + std::optional buffered; + std::optional durationThreshold; +}; + struct PerformanceObserverSpec_RawPerformanceEntry { std::string name; double entryType; @@ -23,11 +30,16 @@ struct PerformanceObserverSpec_RawPerformanceEntry { std::optional interactionId; }; -struct PerformanceObserverSpec_GetPendingEntriesResult { - std::vector entries; - double droppedEntriesCount; -}; +inline winrt::Microsoft::ReactNative::FieldMap GetStructInfo(PerformanceObserverSpec_PerformanceObserverInit*) noexcept { + winrt::Microsoft::ReactNative::FieldMap fieldMap { + {L"entryTypes", &PerformanceObserverSpec_PerformanceObserverInit::entryTypes}, + {L"type", &PerformanceObserverSpec_PerformanceObserverInit::type}, + {L"buffered", &PerformanceObserverSpec_PerformanceObserverInit::buffered}, + {L"durationThreshold", &PerformanceObserverSpec_PerformanceObserverInit::durationThreshold}, + }; + return fieldMap; +} inline winrt::Microsoft::ReactNative::FieldMap GetStructInfo(PerformanceObserverSpec_RawPerformanceEntry*) noexcept { winrt::Microsoft::ReactNative::FieldMap fieldMap { @@ -42,27 +54,17 @@ inline winrt::Microsoft::ReactNative::FieldMap GetStructInfo(PerformanceObserver return fieldMap; } -inline winrt::Microsoft::ReactNative::FieldMap GetStructInfo(PerformanceObserverSpec_GetPendingEntriesResult*) noexcept { - winrt::Microsoft::ReactNative::FieldMap fieldMap { - {L"entries", &PerformanceObserverSpec_GetPendingEntriesResult::entries}, - {L"droppedEntriesCount", &PerformanceObserverSpec_GetPendingEntriesResult::droppedEntriesCount}, - }; - return fieldMap; -} - struct PerformanceObserverSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { static constexpr auto methods = std::tuple{ - Method{0, L"startReporting"}, - Method{1, L"stopReporting"}, - Method, bool) noexcept>{2, L"setIsBuffered"}, - SyncMethod{3, L"popPendingEntries"}, - Method) noexcept>{4, L"setOnPerformanceEntryCallback"}, - Method{5, L"logRawEntry"}, - SyncMethod<::React::JSValueArray() noexcept>{6, L"getEventCounts"}, - Method{7, L"setDurationThreshold"}, - Method{8, L"clearEntries"}, - SyncMethod(double, std::string) noexcept>{9, L"getEntries"}, - SyncMethod() noexcept>{10, L"getSupportedPerformanceEntryTypes"}, + SyncMethod<::React::JSValueArray() noexcept>{0, L"getEventCounts"}, + SyncMethod<(Callback<>) noexcept>{1, L"createObserver"}, + SyncMethod{2, L"getDroppedEntriesCount"}, + Method{3, L"observe"}, + Method{4, L"disconnect"}, + SyncMethod(, bool) noexcept>{5, L"takeRecords"}, + Method{6, L"clearEntries"}, + SyncMethod(double, std::string) noexcept>{7, L"getEntries"}, + SyncMethod() noexcept>{8, L"getSupportedPerformanceEntryTypes"}, }; template @@ -71,56 +73,46 @@ struct PerformanceObserverSpec : winrt::Microsoft::ReactNative::TurboModuleSpec REACT_SHOW_METHOD_SPEC_ERRORS( 0, - "startReporting", - " REACT_METHOD(startReporting) void startReporting(double entryType) noexcept { /* implementation */ }\n" - " REACT_METHOD(startReporting) static void startReporting(double entryType) noexcept { /* implementation */ }\n"); + "getEventCounts", + " REACT_SYNC_METHOD(getEventCounts) ::React::JSValueArray getEventCounts() noexcept { /* implementation */ }\n" + " REACT_SYNC_METHOD(getEventCounts) static ::React::JSValueArray getEventCounts() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 1, - "stopReporting", - " REACT_METHOD(stopReporting) void stopReporting(double entryType) noexcept { /* implementation */ }\n" - " REACT_METHOD(stopReporting) static void stopReporting(double entryType) noexcept { /* implementation */ }\n"); + "createObserver", + " REACT_SYNC_METHOD(createObserver) createObserver(std::function const & callback) noexcept { /* implementation */ }\n" + " REACT_SYNC_METHOD(createObserver) static createObserver(std::function const & callback) noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 2, - "setIsBuffered", - " REACT_METHOD(setIsBuffered) void setIsBuffered(std::vector const & entryTypes, bool isBuffered) noexcept { /* implementation */ }\n" - " REACT_METHOD(setIsBuffered) static void setIsBuffered(std::vector const & entryTypes, bool isBuffered) noexcept { /* implementation */ }\n"); + "getDroppedEntriesCount", + " REACT_SYNC_METHOD(getDroppedEntriesCount) double getDroppedEntriesCount( observer) noexcept { /* implementation */ }\n" + " REACT_SYNC_METHOD(getDroppedEntriesCount) static double getDroppedEntriesCount( observer) noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 3, - "popPendingEntries", - " REACT_SYNC_METHOD(popPendingEntries) PerformanceObserverSpec_GetPendingEntriesResult popPendingEntries() noexcept { /* implementation */ }\n" - " REACT_SYNC_METHOD(popPendingEntries) static PerformanceObserverSpec_GetPendingEntriesResult popPendingEntries() noexcept { /* implementation */ }\n"); + "observe", + " REACT_METHOD(observe) void observe( observer, PerformanceObserverSpec_PerformanceObserverInit && options) noexcept { /* implementation */ }\n" + " REACT_METHOD(observe) static void observe( observer, PerformanceObserverSpec_PerformanceObserverInit && options) noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 4, - "setOnPerformanceEntryCallback", - " REACT_METHOD(setOnPerformanceEntryCallback) void setOnPerformanceEntryCallback(std::function const & callback) noexcept { /* implementation */ }\n" - " REACT_METHOD(setOnPerformanceEntryCallback) static void setOnPerformanceEntryCallback(std::function const & callback) noexcept { /* implementation */ }\n"); + "disconnect", + " REACT_METHOD(disconnect) void disconnect( observer) noexcept { /* implementation */ }\n" + " REACT_METHOD(disconnect) static void disconnect( observer) noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 5, - "logRawEntry", - " REACT_METHOD(logRawEntry) void logRawEntry(PerformanceObserverSpec_RawPerformanceEntry && entry) noexcept { /* implementation */ }\n" - " REACT_METHOD(logRawEntry) static void logRawEntry(PerformanceObserverSpec_RawPerformanceEntry && entry) noexcept { /* implementation */ }\n"); + "takeRecords", + " REACT_SYNC_METHOD(takeRecords) std::vector takeRecords( observer, bool sort) noexcept { /* implementation */ }\n" + " REACT_SYNC_METHOD(takeRecords) static std::vector takeRecords( observer, bool sort) noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 6, - "getEventCounts", - " REACT_SYNC_METHOD(getEventCounts) ::React::JSValueArray getEventCounts() noexcept { /* implementation */ }\n" - " REACT_SYNC_METHOD(getEventCounts) static ::React::JSValueArray getEventCounts() noexcept { /* implementation */ }\n"); - REACT_SHOW_METHOD_SPEC_ERRORS( - 7, - "setDurationThreshold", - " REACT_METHOD(setDurationThreshold) void setDurationThreshold(double entryType, double durationThreshold) noexcept { /* implementation */ }\n" - " REACT_METHOD(setDurationThreshold) static void setDurationThreshold(double entryType, double durationThreshold) noexcept { /* implementation */ }\n"); - REACT_SHOW_METHOD_SPEC_ERRORS( - 8, "clearEntries", " REACT_METHOD(clearEntries) void clearEntries(double entryType, std::string entryName) noexcept { /* implementation */ }\n" " REACT_METHOD(clearEntries) static void clearEntries(double entryType, std::string entryName) noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 9, + 7, "getEntries", " REACT_SYNC_METHOD(getEntries) std::vector getEntries(double entryType, std::string entryName) noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(getEntries) static std::vector getEntries(double entryType, std::string entryName) noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 10, + 8, "getSupportedPerformanceEntryTypes", " REACT_SYNC_METHOD(getSupportedPerformanceEntryTypes) std::vector getSupportedPerformanceEntryTypes() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(getSupportedPerformanceEntryTypes) static std::vector getSupportedPerformanceEntryTypes() noexcept { /* implementation */ }\n"); diff --git a/vnext/codegen/NativeReactDevToolsSettingsManagerSpec.g.h b/vnext/codegen/NativeReactDevToolsSettingsManagerSpec.g.h new file mode 100644 index 00000000000..428ce90cc2d --- /dev/null +++ b/vnext/codegen/NativeReactDevToolsSettingsManagerSpec.g.h @@ -0,0 +1,40 @@ + +/* + * This file is auto-generated from a NativeModule spec file in js. + * + * This is a C++ Spec class that should be used with MakeTurboModuleProvider to register native modules + * in a way that also verifies at compile time that the native module matches the interface required + * by the TurboModule JS spec. + */ +#pragma once + +#include +#include + +namespace Microsoft::ReactNativeSpecs { + + +struct ReactDevToolsSettingsManagerSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { + static constexpr auto methods = std::tuple{ + Method{0, L"setGlobalHookSettings"}, + SyncMethod() noexcept>{1, L"getGlobalHookSettings"}, + }; + + template + static constexpr void ValidateModule() noexcept { + constexpr auto methodCheckResults = CheckMethods(); + + REACT_SHOW_METHOD_SPEC_ERRORS( + 0, + "setGlobalHookSettings", + " REACT_METHOD(setGlobalHookSettings) void setGlobalHookSettings(std::string settings) noexcept { /* implementation */ }\n" + " REACT_METHOD(setGlobalHookSettings) static void setGlobalHookSettings(std::string settings) noexcept { /* implementation */ }\n"); + REACT_SHOW_METHOD_SPEC_ERRORS( + 1, + "getGlobalHookSettings", + " REACT_SYNC_METHOD(getGlobalHookSettings) std::optional getGlobalHookSettings() noexcept { /* implementation */ }\n" + " REACT_SYNC_METHOD(getGlobalHookSettings) static std::optional getGlobalHookSettings() noexcept { /* implementation */ }\n"); + } +}; + +} // namespace Microsoft::ReactNativeSpecs diff --git a/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h b/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h index dc56cf10d61..693abe85f8a 100644 --- a/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h +++ b/vnext/codegen/NativeReactNativeFeatureFlagsSpec.g.h @@ -23,50 +23,51 @@ struct ReactNativeFeatureFlagsSpec : winrt::Microsoft::ReactNative::TurboModuleS SyncMethod{4, L"destroyFabricSurfacesInReactInstanceManager"}, SyncMethod{5, L"enableAlignItemsBaselineOnFabricIOS"}, SyncMethod{6, L"enableAndroidLineHeightCentering"}, - SyncMethod{7, L"enableAndroidMixBlendModeProp"}, - SyncMethod{8, L"enableBackgroundStyleApplicator"}, + SyncMethod{7, L"enableBackgroundStyleApplicator"}, + SyncMethod{8, L"enableBridgelessArchitecture"}, SyncMethod{9, L"enableCleanTextInputYogaNode"}, SyncMethod{10, L"enableDeletionOfUnmountedViews"}, SyncMethod{11, L"enableEagerRootViewAttachment"}, SyncMethod{12, L"enableEventEmitterRetentionDuringGesturesOnAndroid"}, SyncMethod{13, L"enableFabricLogs"}, - SyncMethod{14, L"enableFabricRendererExclusively"}, - SyncMethod{15, L"enableGranularShadowTreeStateReconciliation"}, - SyncMethod{16, L"enableIOSViewClipToPaddingBox"}, - SyncMethod{17, L"enableLayoutAnimationsOnIOS"}, - SyncMethod{18, L"enableLongTaskAPI"}, - SyncMethod{19, L"enableMicrotasks"}, - SyncMethod{20, L"enablePreciseSchedulingForPremountItemsOnAndroid"}, - SyncMethod{21, L"enablePropsUpdateReconciliationAndroid"}, - SyncMethod{22, L"enableReportEventPaintTime"}, - SyncMethod{23, L"enableSynchronousStateUpdates"}, - SyncMethod{24, L"enableTextPreallocationOptimisation"}, - SyncMethod{25, L"enableUIConsistency"}, - SyncMethod{26, L"enableViewRecycling"}, - SyncMethod{27, L"excludeYogaFromRawProps"}, - SyncMethod{28, L"fetchImagesInViewPreallocation"}, - SyncMethod{29, L"fixMappingOfEventPrioritiesBetweenFabricAndReact"}, - SyncMethod{30, L"fixMountingCoordinatorReportedPendingTransactionsOnAndroid"}, - SyncMethod{31, L"forceBatchingMountItemsOnAndroid"}, - SyncMethod{32, L"fuseboxEnabledDebug"}, - SyncMethod{33, L"fuseboxEnabledRelease"}, - SyncMethod{34, L"initEagerTurboModulesOnNativeModulesQueueAndroid"}, - SyncMethod{35, L"lazyAnimationCallbacks"}, - SyncMethod{36, L"loadVectorDrawablesOnImages"}, - SyncMethod{37, L"removeNestedCallsToDispatchMountItemsOnAndroid"}, - SyncMethod{38, L"setAndroidLayoutDirection"}, - SyncMethod{39, L"traceTurboModulePromiseRejectionsOnAndroid"}, - SyncMethod{40, L"useFabricInterop"}, - SyncMethod{41, L"useImmediateExecutorInAndroidBridgeless"}, - SyncMethod{42, L"useModernRuntimeScheduler"}, - SyncMethod{43, L"useNativeViewConfigsInBridgelessMode"}, - SyncMethod{44, L"useNewReactImageViewBackgroundDrawing"}, - SyncMethod{45, L"useOptimisedViewPreallocationOnAndroid"}, - SyncMethod{46, L"useOptimizedEventBatchingOnAndroid"}, - SyncMethod{47, L"useRuntimeShadowNodeReferenceUpdate"}, - SyncMethod{48, L"useRuntimeShadowNodeReferenceUpdateOnLayout"}, - SyncMethod{49, L"useStateAlignmentMechanism"}, + SyncMethod{14, L"enableFabricRenderer"}, + SyncMethod{15, L"enableFabricRendererExclusively"}, + SyncMethod{16, L"enableGranularShadowTreeStateReconciliation"}, + SyncMethod{17, L"enableIOSViewClipToPaddingBox"}, + SyncMethod{18, L"enableLayoutAnimationsOnIOS"}, + SyncMethod{19, L"enableLongTaskAPI"}, + SyncMethod{20, L"enableMicrotasks"}, + SyncMethod{21, L"enablePreciseSchedulingForPremountItemsOnAndroid"}, + SyncMethod{22, L"enablePropsUpdateReconciliationAndroid"}, + SyncMethod{23, L"enableReportEventPaintTime"}, + SyncMethod{24, L"enableSynchronousStateUpdates"}, + SyncMethod{25, L"enableTextPreallocationOptimisation"}, + SyncMethod{26, L"enableUIConsistency"}, + SyncMethod{27, L"enableViewRecycling"}, + SyncMethod{28, L"excludeYogaFromRawProps"}, + SyncMethod{29, L"fetchImagesInViewPreallocation"}, + SyncMethod{30, L"fixMappingOfEventPrioritiesBetweenFabricAndReact"}, + SyncMethod{31, L"fixMountingCoordinatorReportedPendingTransactionsOnAndroid"}, + SyncMethod{32, L"forceBatchingMountItemsOnAndroid"}, + SyncMethod{33, L"fuseboxEnabledDebug"}, + SyncMethod{34, L"fuseboxEnabledRelease"}, + SyncMethod{35, L"initEagerTurboModulesOnNativeModulesQueueAndroid"}, + SyncMethod{36, L"lazyAnimationCallbacks"}, + SyncMethod{37, L"loadVectorDrawablesOnImages"}, + SyncMethod{38, L"removeNestedCallsToDispatchMountItemsOnAndroid"}, + SyncMethod{39, L"setAndroidLayoutDirection"}, + SyncMethod{40, L"traceTurboModulePromiseRejectionsOnAndroid"}, + SyncMethod{41, L"useFabricInterop"}, + SyncMethod{42, L"useImmediateExecutorInAndroidBridgeless"}, + SyncMethod{43, L"useModernRuntimeScheduler"}, + SyncMethod{44, L"useNativeViewConfigsInBridgelessMode"}, + SyncMethod{45, L"useNewReactImageViewBackgroundDrawing"}, + SyncMethod{46, L"useOptimisedViewPreallocationOnAndroid"}, + SyncMethod{47, L"useOptimizedEventBatchingOnAndroid"}, + SyncMethod{48, L"useRuntimeShadowNodeReferenceUpdate"}, + SyncMethod{49, L"useRuntimeShadowNodeReferenceUpdateOnLayout"}, SyncMethod{50, L"useTurboModuleInterop"}, + SyncMethod{51, L"useTurboModules"}, }; template @@ -110,14 +111,14 @@ struct ReactNativeFeatureFlagsSpec : winrt::Microsoft::ReactNative::TurboModuleS " REACT_SYNC_METHOD(enableAndroidLineHeightCentering) static bool enableAndroidLineHeightCentering() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 7, - "enableAndroidMixBlendModeProp", - " REACT_SYNC_METHOD(enableAndroidMixBlendModeProp) bool enableAndroidMixBlendModeProp() noexcept { /* implementation */ }\n" - " REACT_SYNC_METHOD(enableAndroidMixBlendModeProp) static bool enableAndroidMixBlendModeProp() noexcept { /* implementation */ }\n"); - REACT_SHOW_METHOD_SPEC_ERRORS( - 8, "enableBackgroundStyleApplicator", " REACT_SYNC_METHOD(enableBackgroundStyleApplicator) bool enableBackgroundStyleApplicator() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableBackgroundStyleApplicator) static bool enableBackgroundStyleApplicator() noexcept { /* implementation */ }\n"); + REACT_SHOW_METHOD_SPEC_ERRORS( + 8, + "enableBridgelessArchitecture", + " REACT_SYNC_METHOD(enableBridgelessArchitecture) bool enableBridgelessArchitecture() noexcept { /* implementation */ }\n" + " REACT_SYNC_METHOD(enableBridgelessArchitecture) static bool enableBridgelessArchitecture() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 9, "enableCleanTextInputYogaNode", @@ -145,189 +146,194 @@ struct ReactNativeFeatureFlagsSpec : winrt::Microsoft::ReactNative::TurboModuleS " REACT_SYNC_METHOD(enableFabricLogs) static bool enableFabricLogs() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 14, + "enableFabricRenderer", + " REACT_SYNC_METHOD(enableFabricRenderer) bool enableFabricRenderer() noexcept { /* implementation */ }\n" + " REACT_SYNC_METHOD(enableFabricRenderer) static bool enableFabricRenderer() noexcept { /* implementation */ }\n"); + REACT_SHOW_METHOD_SPEC_ERRORS( + 15, "enableFabricRendererExclusively", " REACT_SYNC_METHOD(enableFabricRendererExclusively) bool enableFabricRendererExclusively() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableFabricRendererExclusively) static bool enableFabricRendererExclusively() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 15, + 16, "enableGranularShadowTreeStateReconciliation", " REACT_SYNC_METHOD(enableGranularShadowTreeStateReconciliation) bool enableGranularShadowTreeStateReconciliation() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableGranularShadowTreeStateReconciliation) static bool enableGranularShadowTreeStateReconciliation() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 16, + 17, "enableIOSViewClipToPaddingBox", " REACT_SYNC_METHOD(enableIOSViewClipToPaddingBox) bool enableIOSViewClipToPaddingBox() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableIOSViewClipToPaddingBox) static bool enableIOSViewClipToPaddingBox() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 17, + 18, "enableLayoutAnimationsOnIOS", " REACT_SYNC_METHOD(enableLayoutAnimationsOnIOS) bool enableLayoutAnimationsOnIOS() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableLayoutAnimationsOnIOS) static bool enableLayoutAnimationsOnIOS() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 18, + 19, "enableLongTaskAPI", " REACT_SYNC_METHOD(enableLongTaskAPI) bool enableLongTaskAPI() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableLongTaskAPI) static bool enableLongTaskAPI() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 19, + 20, "enableMicrotasks", " REACT_SYNC_METHOD(enableMicrotasks) bool enableMicrotasks() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableMicrotasks) static bool enableMicrotasks() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 20, + 21, "enablePreciseSchedulingForPremountItemsOnAndroid", " REACT_SYNC_METHOD(enablePreciseSchedulingForPremountItemsOnAndroid) bool enablePreciseSchedulingForPremountItemsOnAndroid() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enablePreciseSchedulingForPremountItemsOnAndroid) static bool enablePreciseSchedulingForPremountItemsOnAndroid() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 21, + 22, "enablePropsUpdateReconciliationAndroid", " REACT_SYNC_METHOD(enablePropsUpdateReconciliationAndroid) bool enablePropsUpdateReconciliationAndroid() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enablePropsUpdateReconciliationAndroid) static bool enablePropsUpdateReconciliationAndroid() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 22, + 23, "enableReportEventPaintTime", " REACT_SYNC_METHOD(enableReportEventPaintTime) bool enableReportEventPaintTime() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableReportEventPaintTime) static bool enableReportEventPaintTime() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 23, + 24, "enableSynchronousStateUpdates", " REACT_SYNC_METHOD(enableSynchronousStateUpdates) bool enableSynchronousStateUpdates() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableSynchronousStateUpdates) static bool enableSynchronousStateUpdates() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 24, + 25, "enableTextPreallocationOptimisation", " REACT_SYNC_METHOD(enableTextPreallocationOptimisation) bool enableTextPreallocationOptimisation() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableTextPreallocationOptimisation) static bool enableTextPreallocationOptimisation() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 25, + 26, "enableUIConsistency", " REACT_SYNC_METHOD(enableUIConsistency) bool enableUIConsistency() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableUIConsistency) static bool enableUIConsistency() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 26, + 27, "enableViewRecycling", " REACT_SYNC_METHOD(enableViewRecycling) bool enableViewRecycling() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(enableViewRecycling) static bool enableViewRecycling() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 27, + 28, "excludeYogaFromRawProps", " REACT_SYNC_METHOD(excludeYogaFromRawProps) bool excludeYogaFromRawProps() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(excludeYogaFromRawProps) static bool excludeYogaFromRawProps() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 28, + 29, "fetchImagesInViewPreallocation", " REACT_SYNC_METHOD(fetchImagesInViewPreallocation) bool fetchImagesInViewPreallocation() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(fetchImagesInViewPreallocation) static bool fetchImagesInViewPreallocation() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 29, + 30, "fixMappingOfEventPrioritiesBetweenFabricAndReact", " REACT_SYNC_METHOD(fixMappingOfEventPrioritiesBetweenFabricAndReact) bool fixMappingOfEventPrioritiesBetweenFabricAndReact() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(fixMappingOfEventPrioritiesBetweenFabricAndReact) static bool fixMappingOfEventPrioritiesBetweenFabricAndReact() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 30, + 31, "fixMountingCoordinatorReportedPendingTransactionsOnAndroid", " REACT_SYNC_METHOD(fixMountingCoordinatorReportedPendingTransactionsOnAndroid) bool fixMountingCoordinatorReportedPendingTransactionsOnAndroid() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(fixMountingCoordinatorReportedPendingTransactionsOnAndroid) static bool fixMountingCoordinatorReportedPendingTransactionsOnAndroid() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 31, + 32, "forceBatchingMountItemsOnAndroid", " REACT_SYNC_METHOD(forceBatchingMountItemsOnAndroid) bool forceBatchingMountItemsOnAndroid() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(forceBatchingMountItemsOnAndroid) static bool forceBatchingMountItemsOnAndroid() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 32, + 33, "fuseboxEnabledDebug", " REACT_SYNC_METHOD(fuseboxEnabledDebug) bool fuseboxEnabledDebug() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(fuseboxEnabledDebug) static bool fuseboxEnabledDebug() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 33, + 34, "fuseboxEnabledRelease", " REACT_SYNC_METHOD(fuseboxEnabledRelease) bool fuseboxEnabledRelease() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(fuseboxEnabledRelease) static bool fuseboxEnabledRelease() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 34, + 35, "initEagerTurboModulesOnNativeModulesQueueAndroid", " REACT_SYNC_METHOD(initEagerTurboModulesOnNativeModulesQueueAndroid) bool initEagerTurboModulesOnNativeModulesQueueAndroid() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(initEagerTurboModulesOnNativeModulesQueueAndroid) static bool initEagerTurboModulesOnNativeModulesQueueAndroid() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 35, + 36, "lazyAnimationCallbacks", " REACT_SYNC_METHOD(lazyAnimationCallbacks) bool lazyAnimationCallbacks() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(lazyAnimationCallbacks) static bool lazyAnimationCallbacks() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 36, + 37, "loadVectorDrawablesOnImages", " REACT_SYNC_METHOD(loadVectorDrawablesOnImages) bool loadVectorDrawablesOnImages() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(loadVectorDrawablesOnImages) static bool loadVectorDrawablesOnImages() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 37, + 38, "removeNestedCallsToDispatchMountItemsOnAndroid", " REACT_SYNC_METHOD(removeNestedCallsToDispatchMountItemsOnAndroid) bool removeNestedCallsToDispatchMountItemsOnAndroid() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(removeNestedCallsToDispatchMountItemsOnAndroid) static bool removeNestedCallsToDispatchMountItemsOnAndroid() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 38, + 39, "setAndroidLayoutDirection", " REACT_SYNC_METHOD(setAndroidLayoutDirection) bool setAndroidLayoutDirection() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(setAndroidLayoutDirection) static bool setAndroidLayoutDirection() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 39, + 40, "traceTurboModulePromiseRejectionsOnAndroid", " REACT_SYNC_METHOD(traceTurboModulePromiseRejectionsOnAndroid) bool traceTurboModulePromiseRejectionsOnAndroid() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(traceTurboModulePromiseRejectionsOnAndroid) static bool traceTurboModulePromiseRejectionsOnAndroid() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 40, + 41, "useFabricInterop", " REACT_SYNC_METHOD(useFabricInterop) bool useFabricInterop() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(useFabricInterop) static bool useFabricInterop() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 41, + 42, "useImmediateExecutorInAndroidBridgeless", " REACT_SYNC_METHOD(useImmediateExecutorInAndroidBridgeless) bool useImmediateExecutorInAndroidBridgeless() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(useImmediateExecutorInAndroidBridgeless) static bool useImmediateExecutorInAndroidBridgeless() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 42, + 43, "useModernRuntimeScheduler", " REACT_SYNC_METHOD(useModernRuntimeScheduler) bool useModernRuntimeScheduler() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(useModernRuntimeScheduler) static bool useModernRuntimeScheduler() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 43, + 44, "useNativeViewConfigsInBridgelessMode", " REACT_SYNC_METHOD(useNativeViewConfigsInBridgelessMode) bool useNativeViewConfigsInBridgelessMode() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(useNativeViewConfigsInBridgelessMode) static bool useNativeViewConfigsInBridgelessMode() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 44, + 45, "useNewReactImageViewBackgroundDrawing", " REACT_SYNC_METHOD(useNewReactImageViewBackgroundDrawing) bool useNewReactImageViewBackgroundDrawing() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(useNewReactImageViewBackgroundDrawing) static bool useNewReactImageViewBackgroundDrawing() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 45, + 46, "useOptimisedViewPreallocationOnAndroid", " REACT_SYNC_METHOD(useOptimisedViewPreallocationOnAndroid) bool useOptimisedViewPreallocationOnAndroid() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(useOptimisedViewPreallocationOnAndroid) static bool useOptimisedViewPreallocationOnAndroid() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 46, + 47, "useOptimizedEventBatchingOnAndroid", " REACT_SYNC_METHOD(useOptimizedEventBatchingOnAndroid) bool useOptimizedEventBatchingOnAndroid() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(useOptimizedEventBatchingOnAndroid) static bool useOptimizedEventBatchingOnAndroid() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 47, + 48, "useRuntimeShadowNodeReferenceUpdate", " REACT_SYNC_METHOD(useRuntimeShadowNodeReferenceUpdate) bool useRuntimeShadowNodeReferenceUpdate() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(useRuntimeShadowNodeReferenceUpdate) static bool useRuntimeShadowNodeReferenceUpdate() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( - 48, + 49, "useRuntimeShadowNodeReferenceUpdateOnLayout", " REACT_SYNC_METHOD(useRuntimeShadowNodeReferenceUpdateOnLayout) bool useRuntimeShadowNodeReferenceUpdateOnLayout() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(useRuntimeShadowNodeReferenceUpdateOnLayout) static bool useRuntimeShadowNodeReferenceUpdateOnLayout() noexcept { /* implementation */ }\n"); - REACT_SHOW_METHOD_SPEC_ERRORS( - 49, - "useStateAlignmentMechanism", - " REACT_SYNC_METHOD(useStateAlignmentMechanism) bool useStateAlignmentMechanism() noexcept { /* implementation */ }\n" - " REACT_SYNC_METHOD(useStateAlignmentMechanism) static bool useStateAlignmentMechanism() noexcept { /* implementation */ }\n"); REACT_SHOW_METHOD_SPEC_ERRORS( 50, "useTurboModuleInterop", " REACT_SYNC_METHOD(useTurboModuleInterop) bool useTurboModuleInterop() noexcept { /* implementation */ }\n" " REACT_SYNC_METHOD(useTurboModuleInterop) static bool useTurboModuleInterop() noexcept { /* implementation */ }\n"); + REACT_SHOW_METHOD_SPEC_ERRORS( + 51, + "useTurboModules", + " REACT_SYNC_METHOD(useTurboModules) bool useTurboModules() noexcept { /* implementation */ }\n" + " REACT_SYNC_METHOD(useTurboModules) static bool useTurboModules() noexcept { /* implementation */ }\n"); } }; diff --git a/vnext/codegen/react/components/rnwcore/ComponentDescriptors.h b/vnext/codegen/react/components/rnwcore/ComponentDescriptors.h index ad44b516d18..45b7b5ea904 100644 --- a/vnext/codegen/react/components/rnwcore/ComponentDescriptors.h +++ b/vnext/codegen/react/components/rnwcore/ComponentDescriptors.h @@ -18,7 +18,6 @@ namespace facebook::react { using ActivityIndicatorViewComponentDescriptor = ConcreteComponentDescriptor; using AndroidDrawerLayoutComponentDescriptor = ConcreteComponentDescriptor; -using AndroidHorizontalScrollContentViewComponentDescriptor = ConcreteComponentDescriptor; using AndroidSwipeRefreshLayoutComponentDescriptor = ConcreteComponentDescriptor; using DebuggingOverlayComponentDescriptor = ConcreteComponentDescriptor; using PullToRefreshViewComponentDescriptor = ConcreteComponentDescriptor; diff --git a/vnext/codegen/react/components/rnwcore/ShadowNodes.cpp b/vnext/codegen/react/components/rnwcore/ShadowNodes.cpp index 4a65acee57e..dccefb1d478 100644 --- a/vnext/codegen/react/components/rnwcore/ShadowNodes.cpp +++ b/vnext/codegen/react/components/rnwcore/ShadowNodes.cpp @@ -14,7 +14,6 @@ namespace facebook::react { extern const char ActivityIndicatorViewComponentName[] = "ActivityIndicatorView"; extern const char AndroidDrawerLayoutComponentName[] = "AndroidDrawerLayout"; -extern const char AndroidHorizontalScrollContentViewComponentName[] = "AndroidHorizontalScrollContentView"; extern const char AndroidSwipeRefreshLayoutComponentName[] = "AndroidSwipeRefreshLayout"; extern const char DebuggingOverlayComponentName[] = "DebuggingOverlay"; extern const char PullToRefreshViewComponentName[] = "PullToRefreshView"; diff --git a/vnext/codegen/react/components/rnwcore/ShadowNodes.h b/vnext/codegen/react/components/rnwcore/ShadowNodes.h index 36679679a33..2c7c94720cf 100644 --- a/vnext/codegen/react/components/rnwcore/ShadowNodes.h +++ b/vnext/codegen/react/components/rnwcore/ShadowNodes.h @@ -40,17 +40,6 @@ using AndroidDrawerLayoutShadowNode = ConcreteViewShadowNode< AndroidDrawerLayoutEventEmitter, AndroidDrawerLayoutState>; -JSI_EXPORT extern const char AndroidHorizontalScrollContentViewComponentName[]; - -/* - * `ShadowNode` for component. - */ -using AndroidHorizontalScrollContentViewShadowNode = ConcreteViewShadowNode< - AndroidHorizontalScrollContentViewComponentName, - AndroidHorizontalScrollContentViewProps, - AndroidHorizontalScrollContentViewEventEmitter, - AndroidHorizontalScrollContentViewState>; - JSI_EXPORT extern const char AndroidSwipeRefreshLayoutComponentName[]; /* diff --git a/vnext/codegen/react/components/rnwcore/States.h b/vnext/codegen/react/components/rnwcore/States.h index bb428bfc1a2..df8b9e54057 100644 --- a/vnext/codegen/react/components/rnwcore/States.h +++ b/vnext/codegen/react/components/rnwcore/States.h @@ -38,18 +38,6 @@ class AndroidDrawerLayoutState { #endif }; -class AndroidHorizontalScrollContentViewState { -public: - AndroidHorizontalScrollContentViewState() = default; - -#ifdef ANDROID - AndroidHorizontalScrollContentViewState(AndroidHorizontalScrollContentViewState const &previousState, folly::dynamic data){}; - folly::dynamic getDynamic() const { - return {}; - }; -#endif -}; - class AndroidSwipeRefreshLayoutState { public: AndroidSwipeRefreshLayoutState() = default; diff --git a/vnext/codegen/rnwcoreJSI-generated.cpp b/vnext/codegen/rnwcoreJSI-generated.cpp index 436d0409102..3197f255aae 100644 --- a/vnext/codegen/rnwcoreJSI-generated.cpp +++ b/vnext/codegen/rnwcoreJSI-generated.cpp @@ -46,13 +46,13 @@ static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableA rt ); } -static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableAndroidMixBlendModeProp(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - return static_cast(&turboModule)->enableAndroidMixBlendModeProp( +static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableBackgroundStyleApplicator(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->enableBackgroundStyleApplicator( rt ); } -static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableBackgroundStyleApplicator(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - return static_cast(&turboModule)->enableBackgroundStyleApplicator( +static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableBridgelessArchitecture(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->enableBridgelessArchitecture( rt ); } @@ -81,6 +81,11 @@ static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableF rt ); } +static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableFabricRenderer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->enableFabricRenderer( + rt + ); +} static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableFabricRendererExclusively(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { return static_cast(&turboModule)->enableFabricRendererExclusively( rt @@ -256,13 +261,13 @@ static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useRunt rt ); } -static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useStateAlignmentMechanism(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - return static_cast(&turboModule)->useStateAlignmentMechanism( +static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useTurboModuleInterop(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->useTurboModuleInterop( rt ); } -static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useTurboModuleInterop(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - return static_cast(&turboModule)->useTurboModuleInterop( +static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useTurboModules(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->useTurboModules( rt ); } @@ -276,13 +281,14 @@ NativeReactNativeFeatureFlagsCxxSpecJSI::NativeReactNativeFeatureFlagsCxxSpecJSI methodMap_["destroyFabricSurfacesInReactInstanceManager"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_destroyFabricSurfacesInReactInstanceManager}; methodMap_["enableAlignItemsBaselineOnFabricIOS"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableAlignItemsBaselineOnFabricIOS}; methodMap_["enableAndroidLineHeightCentering"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableAndroidLineHeightCentering}; - methodMap_["enableAndroidMixBlendModeProp"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableAndroidMixBlendModeProp}; methodMap_["enableBackgroundStyleApplicator"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableBackgroundStyleApplicator}; + methodMap_["enableBridgelessArchitecture"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableBridgelessArchitecture}; methodMap_["enableCleanTextInputYogaNode"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableCleanTextInputYogaNode}; methodMap_["enableDeletionOfUnmountedViews"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableDeletionOfUnmountedViews}; methodMap_["enableEagerRootViewAttachment"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableEagerRootViewAttachment}; methodMap_["enableEventEmitterRetentionDuringGesturesOnAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableEventEmitterRetentionDuringGesturesOnAndroid}; methodMap_["enableFabricLogs"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableFabricLogs}; + methodMap_["enableFabricRenderer"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableFabricRenderer}; methodMap_["enableFabricRendererExclusively"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableFabricRendererExclusively}; methodMap_["enableGranularShadowTreeStateReconciliation"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableGranularShadowTreeStateReconciliation}; methodMap_["enableIOSViewClipToPaddingBox"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableIOSViewClipToPaddingBox}; @@ -318,8 +324,8 @@ NativeReactNativeFeatureFlagsCxxSpecJSI::NativeReactNativeFeatureFlagsCxxSpecJSI methodMap_["useOptimizedEventBatchingOnAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useOptimizedEventBatchingOnAndroid}; methodMap_["useRuntimeShadowNodeReferenceUpdate"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useRuntimeShadowNodeReferenceUpdate}; methodMap_["useRuntimeShadowNodeReferenceUpdateOnLayout"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useRuntimeShadowNodeReferenceUpdateOnLayout}; - methodMap_["useStateAlignmentMechanism"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useStateAlignmentMechanism}; methodMap_["useTurboModuleInterop"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useTurboModuleInterop}; + methodMap_["useTurboModules"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_useTurboModules}; } static jsi::Value __hostFunction_NativeAccessibilityInfoCxxSpecJSI_isReduceMotionEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { static_cast(&turboModule)->isReduceMotionEnabled( @@ -1306,40 +1312,6 @@ NativeDevSettingsCxxSpecJSI::NativeDevSettingsCxxSpecJSI(std::shared_ptr(&turboModule)->setConsolePatchSettings( - rt, - count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt) - ); - return jsi::Value::undefined(); -} -static jsi::Value __hostFunction_NativeDevToolsSettingsManagerCxxSpecJSI_getConsolePatchSettings(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - auto result = static_cast(&turboModule)->getConsolePatchSettings( - rt - ); - return result ? jsi::Value(std::move(*result)) : jsi::Value::null(); -} -static jsi::Value __hostFunction_NativeDevToolsSettingsManagerCxxSpecJSI_setProfilingSettings(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - static_cast(&turboModule)->setProfilingSettings( - rt, - count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt) - ); - return jsi::Value::undefined(); -} -static jsi::Value __hostFunction_NativeDevToolsSettingsManagerCxxSpecJSI_getProfilingSettings(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - auto result = static_cast(&turboModule)->getProfilingSettings( - rt - ); - return result ? jsi::Value(std::move(*result)) : jsi::Value::null(); -} - -NativeDevToolsSettingsManagerCxxSpecJSI::NativeDevToolsSettingsManagerCxxSpecJSI(std::shared_ptr jsInvoker) - : TurboModule("DevToolsSettingsManager", jsInvoker) { - methodMap_["setConsolePatchSettings"] = MethodMetadata {1, __hostFunction_NativeDevToolsSettingsManagerCxxSpecJSI_setConsolePatchSettings}; - methodMap_["getConsolePatchSettings"] = MethodMetadata {0, __hostFunction_NativeDevToolsSettingsManagerCxxSpecJSI_getConsolePatchSettings}; - methodMap_["setProfilingSettings"] = MethodMetadata {1, __hostFunction_NativeDevToolsSettingsManagerCxxSpecJSI_setProfilingSettings}; - methodMap_["getProfilingSettings"] = MethodMetadata {0, __hostFunction_NativeDevToolsSettingsManagerCxxSpecJSI_getProfilingSettings}; -} static jsi::Value __hostFunction_NativeDialogManagerAndroidCxxSpecJSI_getConstants(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { return static_cast(&turboModule)->getConstants( rt @@ -2202,6 +2174,25 @@ NativePushNotificationManagerIOSCxxSpecJSI::NativePushNotificationManagerIOSCxxS methodMap_["addListener"] = MethodMetadata {1, __hostFunction_NativePushNotificationManagerIOSCxxSpecJSI_addListener}; methodMap_["removeListeners"] = MethodMetadata {1, __hostFunction_NativePushNotificationManagerIOSCxxSpecJSI_removeListeners}; } +static jsi::Value __hostFunction_NativeReactDevToolsSettingsManagerCxxSpecJSI_setGlobalHookSettings(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + static_cast(&turboModule)->setGlobalHookSettings( + rt, + count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt) + ); + return jsi::Value::undefined(); +} +static jsi::Value __hostFunction_NativeReactDevToolsSettingsManagerCxxSpecJSI_getGlobalHookSettings(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + auto result = static_cast(&turboModule)->getGlobalHookSettings( + rt + ); + return result ? jsi::Value(std::move(*result)) : jsi::Value::null(); +} + +NativeReactDevToolsSettingsManagerCxxSpecJSI::NativeReactDevToolsSettingsManagerCxxSpecJSI(std::shared_ptr jsInvoker) + : TurboModule("ReactDevToolsSettingsManager", jsInvoker) { + methodMap_["setGlobalHookSettings"] = MethodMetadata {1, __hostFunction_NativeReactDevToolsSettingsManagerCxxSpecJSI_setGlobalHookSettings}; + methodMap_["getGlobalHookSettings"] = MethodMetadata {0, __hostFunction_NativeReactDevToolsSettingsManagerCxxSpecJSI_getGlobalHookSettings}; +} static jsi::Value __hostFunction_NativeRedBoxCxxSpecJSI_setExtraData(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { static_cast(&turboModule)->setExtraData( rt, @@ -3087,59 +3078,44 @@ NativePerformanceCxxSpecJSI::NativePerformanceCxxSpecJSI(std::shared_ptr(&turboModule)->startReporting( - rt, - count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber() +static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_getEventCounts(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->getEventCounts( + rt ); - return jsi::Value::undefined(); } -static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_stopReporting(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - static_cast(&turboModule)->stopReporting( +static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_createObserver(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->createObserver( rt, - count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber() + count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt).asFunction(rt) ); - return jsi::Value::undefined(); } -static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_setIsBuffered(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - static_cast(&turboModule)->setIsBuffered( +static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_getDroppedEntriesCount(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->getDroppedEntriesCount( rt, - count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt).asArray(rt), - count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asBool() - ); - return jsi::Value::undefined(); -} -static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_popPendingEntries(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - return static_cast(&turboModule)->popPendingEntries( - rt + count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : jsi::Value(rt, args[0]) ); } -static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_setOnPerformanceEntryCallback(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - static_cast(&turboModule)->setOnPerformanceEntryCallback( +static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_observe(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + static_cast(&turboModule)->observe( rt, - count <= 0 || args[0].isUndefined() ? std::nullopt : std::make_optional(args[0].asObject(rt).asFunction(rt)) + count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : jsi::Value(rt, args[0]), + count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asObject(rt) ); return jsi::Value::undefined(); } -static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_logRawEntry(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - static_cast(&turboModule)->logRawEntry( +static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_disconnect(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + static_cast(&turboModule)->disconnect( rt, - count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt) + count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : jsi::Value(rt, args[0]) ); return jsi::Value::undefined(); } -static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_getEventCounts(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - return static_cast(&turboModule)->getEventCounts( - rt - ); -} -static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_setDurationThreshold(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - static_cast(&turboModule)->setDurationThreshold( +static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_takeRecords(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->takeRecords( rt, - count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(), - count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber() + count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : jsi::Value(rt, args[0]), + count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asBool() ); - return jsi::Value::undefined(); } static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_clearEntries(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { static_cast(&turboModule)->clearEntries( @@ -3164,14 +3140,12 @@ static jsi::Value __hostFunction_NativePerformanceObserverCxxSpecJSI_getSupporte NativePerformanceObserverCxxSpecJSI::NativePerformanceObserverCxxSpecJSI(std::shared_ptr jsInvoker) : TurboModule("NativePerformanceObserverCxx", jsInvoker) { - methodMap_["startReporting"] = MethodMetadata {1, __hostFunction_NativePerformanceObserverCxxSpecJSI_startReporting}; - methodMap_["stopReporting"] = MethodMetadata {1, __hostFunction_NativePerformanceObserverCxxSpecJSI_stopReporting}; - methodMap_["setIsBuffered"] = MethodMetadata {2, __hostFunction_NativePerformanceObserverCxxSpecJSI_setIsBuffered}; - methodMap_["popPendingEntries"] = MethodMetadata {0, __hostFunction_NativePerformanceObserverCxxSpecJSI_popPendingEntries}; - methodMap_["setOnPerformanceEntryCallback"] = MethodMetadata {1, __hostFunction_NativePerformanceObserverCxxSpecJSI_setOnPerformanceEntryCallback}; - methodMap_["logRawEntry"] = MethodMetadata {1, __hostFunction_NativePerformanceObserverCxxSpecJSI_logRawEntry}; methodMap_["getEventCounts"] = MethodMetadata {0, __hostFunction_NativePerformanceObserverCxxSpecJSI_getEventCounts}; - methodMap_["setDurationThreshold"] = MethodMetadata {2, __hostFunction_NativePerformanceObserverCxxSpecJSI_setDurationThreshold}; + methodMap_["createObserver"] = MethodMetadata {1, __hostFunction_NativePerformanceObserverCxxSpecJSI_createObserver}; + methodMap_["getDroppedEntriesCount"] = MethodMetadata {1, __hostFunction_NativePerformanceObserverCxxSpecJSI_getDroppedEntriesCount}; + methodMap_["observe"] = MethodMetadata {2, __hostFunction_NativePerformanceObserverCxxSpecJSI_observe}; + methodMap_["disconnect"] = MethodMetadata {1, __hostFunction_NativePerformanceObserverCxxSpecJSI_disconnect}; + methodMap_["takeRecords"] = MethodMetadata {2, __hostFunction_NativePerformanceObserverCxxSpecJSI_takeRecords}; methodMap_["clearEntries"] = MethodMetadata {2, __hostFunction_NativePerformanceObserverCxxSpecJSI_clearEntries}; methodMap_["getEntries"] = MethodMetadata {2, __hostFunction_NativePerformanceObserverCxxSpecJSI_getEntries}; methodMap_["getSupportedPerformanceEntryTypes"] = MethodMetadata {0, __hostFunction_NativePerformanceObserverCxxSpecJSI_getSupportedPerformanceEntryTypes}; diff --git a/vnext/codegen/rnwcoreJSI.h b/vnext/codegen/rnwcoreJSI.h index 8797849f456..7936fcc7984 100644 --- a/vnext/codegen/rnwcoreJSI.h +++ b/vnext/codegen/rnwcoreJSI.h @@ -27,13 +27,14 @@ namespace facebook::react { virtual bool destroyFabricSurfacesInReactInstanceManager(jsi::Runtime &rt) = 0; virtual bool enableAlignItemsBaselineOnFabricIOS(jsi::Runtime &rt) = 0; virtual bool enableAndroidLineHeightCentering(jsi::Runtime &rt) = 0; - virtual bool enableAndroidMixBlendModeProp(jsi::Runtime &rt) = 0; virtual bool enableBackgroundStyleApplicator(jsi::Runtime &rt) = 0; + virtual bool enableBridgelessArchitecture(jsi::Runtime &rt) = 0; virtual bool enableCleanTextInputYogaNode(jsi::Runtime &rt) = 0; virtual bool enableDeletionOfUnmountedViews(jsi::Runtime &rt) = 0; virtual bool enableEagerRootViewAttachment(jsi::Runtime &rt) = 0; virtual bool enableEventEmitterRetentionDuringGesturesOnAndroid(jsi::Runtime &rt) = 0; virtual bool enableFabricLogs(jsi::Runtime &rt) = 0; + virtual bool enableFabricRenderer(jsi::Runtime &rt) = 0; virtual bool enableFabricRendererExclusively(jsi::Runtime &rt) = 0; virtual bool enableGranularShadowTreeStateReconciliation(jsi::Runtime &rt) = 0; virtual bool enableIOSViewClipToPaddingBox(jsi::Runtime &rt) = 0; @@ -69,8 +70,8 @@ namespace facebook::react { virtual bool useOptimizedEventBatchingOnAndroid(jsi::Runtime &rt) = 0; virtual bool useRuntimeShadowNodeReferenceUpdate(jsi::Runtime &rt) = 0; virtual bool useRuntimeShadowNodeReferenceUpdateOnLayout(jsi::Runtime &rt) = 0; - virtual bool useStateAlignmentMechanism(jsi::Runtime &rt) = 0; virtual bool useTurboModuleInterop(jsi::Runtime &rt) = 0; + virtual bool useTurboModules(jsi::Runtime &rt) = 0; }; @@ -153,14 +154,6 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule { return bridging::callFromJs( rt, &T::enableAndroidLineHeightCentering, jsInvoker_, instance_); } - bool enableAndroidMixBlendModeProp(jsi::Runtime &rt) override { - static_assert( - bridging::getParameterCount(&T::enableAndroidMixBlendModeProp) == 1, - "Expected enableAndroidMixBlendModeProp(...) to have 1 parameters"); - - return bridging::callFromJs( - rt, &T::enableAndroidMixBlendModeProp, jsInvoker_, instance_); - } bool enableBackgroundStyleApplicator(jsi::Runtime &rt) override { static_assert( bridging::getParameterCount(&T::enableBackgroundStyleApplicator) == 1, @@ -169,6 +162,14 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule { return bridging::callFromJs( rt, &T::enableBackgroundStyleApplicator, jsInvoker_, instance_); } + bool enableBridgelessArchitecture(jsi::Runtime &rt) override { + static_assert( + bridging::getParameterCount(&T::enableBridgelessArchitecture) == 1, + "Expected enableBridgelessArchitecture(...) to have 1 parameters"); + + return bridging::callFromJs( + rt, &T::enableBridgelessArchitecture, jsInvoker_, instance_); + } bool enableCleanTextInputYogaNode(jsi::Runtime &rt) override { static_assert( bridging::getParameterCount(&T::enableCleanTextInputYogaNode) == 1, @@ -209,6 +210,14 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule { return bridging::callFromJs( rt, &T::enableFabricLogs, jsInvoker_, instance_); } + bool enableFabricRenderer(jsi::Runtime &rt) override { + static_assert( + bridging::getParameterCount(&T::enableFabricRenderer) == 1, + "Expected enableFabricRenderer(...) to have 1 parameters"); + + return bridging::callFromJs( + rt, &T::enableFabricRenderer, jsInvoker_, instance_); + } bool enableFabricRendererExclusively(jsi::Runtime &rt) override { static_assert( bridging::getParameterCount(&T::enableFabricRendererExclusively) == 1, @@ -489,14 +498,6 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule { return bridging::callFromJs( rt, &T::useRuntimeShadowNodeReferenceUpdateOnLayout, jsInvoker_, instance_); } - bool useStateAlignmentMechanism(jsi::Runtime &rt) override { - static_assert( - bridging::getParameterCount(&T::useStateAlignmentMechanism) == 1, - "Expected useStateAlignmentMechanism(...) to have 1 parameters"); - - return bridging::callFromJs( - rt, &T::useStateAlignmentMechanism, jsInvoker_, instance_); - } bool useTurboModuleInterop(jsi::Runtime &rt) override { static_assert( bridging::getParameterCount(&T::useTurboModuleInterop) == 1, @@ -505,6 +506,14 @@ class JSI_EXPORT NativeReactNativeFeatureFlagsCxxSpec : public TurboModule { return bridging::callFromJs( rt, &T::useTurboModuleInterop, jsInvoker_, instance_); } + bool useTurboModules(jsi::Runtime &rt) override { + static_assert( + bridging::getParameterCount(&T::useTurboModules) == 1, + "Expected useTurboModules(...) to have 1 parameters"); + + return bridging::callFromJs( + rt, &T::useTurboModules, jsInvoker_, instance_); + } private: friend class NativeReactNativeFeatureFlagsCxxSpec; @@ -3052,83 +3061,6 @@ class JSI_EXPORT NativeDevSettingsCxxSpec : public TurboModule { }; - class JSI_EXPORT NativeDevToolsSettingsManagerCxxSpecJSI : public TurboModule { -protected: - NativeDevToolsSettingsManagerCxxSpecJSI(std::shared_ptr jsInvoker); - -public: - virtual void setConsolePatchSettings(jsi::Runtime &rt, jsi::String newConsolePatchSettings) = 0; - virtual std::optional getConsolePatchSettings(jsi::Runtime &rt) = 0; - virtual void setProfilingSettings(jsi::Runtime &rt, jsi::String newProfilingSettings) = 0; - virtual std::optional getProfilingSettings(jsi::Runtime &rt) = 0; - -}; - -template -class JSI_EXPORT NativeDevToolsSettingsManagerCxxSpec : public TurboModule { -public: - jsi::Value get(jsi::Runtime &rt, const jsi::PropNameID &propName) override { - return delegate_.get(rt, propName); - } - - static constexpr std::string_view kModuleName = "DevToolsSettingsManager"; - -protected: - NativeDevToolsSettingsManagerCxxSpec(std::shared_ptr jsInvoker) - : TurboModule(std::string{NativeDevToolsSettingsManagerCxxSpec::kModuleName}, jsInvoker), - delegate_(reinterpret_cast(this), jsInvoker) {} - - -private: - class Delegate : public NativeDevToolsSettingsManagerCxxSpecJSI { - public: - Delegate(T *instance, std::shared_ptr jsInvoker) : - NativeDevToolsSettingsManagerCxxSpecJSI(std::move(jsInvoker)), instance_(instance) { - - } - - void setConsolePatchSettings(jsi::Runtime &rt, jsi::String newConsolePatchSettings) override { - static_assert( - bridging::getParameterCount(&T::setConsolePatchSettings) == 2, - "Expected setConsolePatchSettings(...) to have 2 parameters"); - - return bridging::callFromJs( - rt, &T::setConsolePatchSettings, jsInvoker_, instance_, std::move(newConsolePatchSettings)); - } - std::optional getConsolePatchSettings(jsi::Runtime &rt) override { - static_assert( - bridging::getParameterCount(&T::getConsolePatchSettings) == 1, - "Expected getConsolePatchSettings(...) to have 1 parameters"); - - return bridging::callFromJs>( - rt, &T::getConsolePatchSettings, jsInvoker_, instance_); - } - void setProfilingSettings(jsi::Runtime &rt, jsi::String newProfilingSettings) override { - static_assert( - bridging::getParameterCount(&T::setProfilingSettings) == 2, - "Expected setProfilingSettings(...) to have 2 parameters"); - - return bridging::callFromJs( - rt, &T::setProfilingSettings, jsInvoker_, instance_, std::move(newProfilingSettings)); - } - std::optional getProfilingSettings(jsi::Runtime &rt) override { - static_assert( - bridging::getParameterCount(&T::getProfilingSettings) == 1, - "Expected getProfilingSettings(...) to have 1 parameters"); - - return bridging::callFromJs>( - rt, &T::getProfilingSettings, jsInvoker_, instance_); - } - - private: - friend class NativeDevToolsSettingsManagerCxxSpec; - T *instance_; - }; - - Delegate delegate_; -}; - - #pragma mark - NativeDialogManagerAndroidDialogOptions @@ -6141,6 +6073,65 @@ class JSI_EXPORT NativePushNotificationManagerIOSCxxSpec : public TurboModule { }; + class JSI_EXPORT NativeReactDevToolsSettingsManagerCxxSpecJSI : public TurboModule { +protected: + NativeReactDevToolsSettingsManagerCxxSpecJSI(std::shared_ptr jsInvoker); + +public: + virtual void setGlobalHookSettings(jsi::Runtime &rt, jsi::String settings) = 0; + virtual std::optional getGlobalHookSettings(jsi::Runtime &rt) = 0; + +}; + +template +class JSI_EXPORT NativeReactDevToolsSettingsManagerCxxSpec : public TurboModule { +public: + jsi::Value get(jsi::Runtime &rt, const jsi::PropNameID &propName) override { + return delegate_.get(rt, propName); + } + + static constexpr std::string_view kModuleName = "ReactDevToolsSettingsManager"; + +protected: + NativeReactDevToolsSettingsManagerCxxSpec(std::shared_ptr jsInvoker) + : TurboModule(std::string{NativeReactDevToolsSettingsManagerCxxSpec::kModuleName}, jsInvoker), + delegate_(reinterpret_cast(this), jsInvoker) {} + + +private: + class Delegate : public NativeReactDevToolsSettingsManagerCxxSpecJSI { + public: + Delegate(T *instance, std::shared_ptr jsInvoker) : + NativeReactDevToolsSettingsManagerCxxSpecJSI(std::move(jsInvoker)), instance_(instance) { + + } + + void setGlobalHookSettings(jsi::Runtime &rt, jsi::String settings) override { + static_assert( + bridging::getParameterCount(&T::setGlobalHookSettings) == 2, + "Expected setGlobalHookSettings(...) to have 2 parameters"); + + return bridging::callFromJs( + rt, &T::setGlobalHookSettings, jsInvoker_, instance_, std::move(settings)); + } + std::optional getGlobalHookSettings(jsi::Runtime &rt) override { + static_assert( + bridging::getParameterCount(&T::getGlobalHookSettings) == 1, + "Expected getGlobalHookSettings(...) to have 1 parameters"); + + return bridging::callFromJs>( + rt, &T::getGlobalHookSettings, jsInvoker_, instance_); + } + + private: + friend class NativeReactDevToolsSettingsManagerCxxSpec; + T *instance_; + }; + + Delegate delegate_; +}; + + class JSI_EXPORT NativeRedBoxCxxSpecJSI : public TurboModule { protected: NativeRedBoxCxxSpecJSI(std::shared_ptr jsInvoker); @@ -8315,19 +8306,21 @@ class JSI_EXPORT NativePerformanceCxxSpec : public TurboModule { -#pragma mark - NativePerformanceObserverGetPendingEntriesResult +#pragma mark - NativePerformanceObserverPerformanceObserverInit -template -struct NativePerformanceObserverGetPendingEntriesResult { - P0 entries; - P1 droppedEntriesCount; - bool operator==(const NativePerformanceObserverGetPendingEntriesResult &other) const { - return entries == other.entries && droppedEntriesCount == other.droppedEntriesCount; +template +struct NativePerformanceObserverPerformanceObserverInit { + P0 entryTypes; + P1 type; + P2 buffered; + P3 durationThreshold; + bool operator==(const NativePerformanceObserverPerformanceObserverInit &other) const { + return entryTypes == other.entryTypes && type == other.type && buffered == other.buffered && durationThreshold == other.durationThreshold; } }; template -struct NativePerformanceObserverGetPendingEntriesResultBridging { +struct NativePerformanceObserverPerformanceObserverInitBridging { static T types; static T fromJs( @@ -8335,17 +8328,27 @@ struct NativePerformanceObserverGetPendingEntriesResultBridging { const jsi::Object &value, const std::shared_ptr &jsInvoker) { T result{ - bridging::fromJs(rt, value.getProperty(rt, "entries"), jsInvoker), - bridging::fromJs(rt, value.getProperty(rt, "droppedEntriesCount"), jsInvoker)}; + bridging::fromJs(rt, value.getProperty(rt, "entryTypes"), jsInvoker), + bridging::fromJs(rt, value.getProperty(rt, "type"), jsInvoker), + bridging::fromJs(rt, value.getProperty(rt, "buffered"), jsInvoker), + bridging::fromJs(rt, value.getProperty(rt, "durationThreshold"), jsInvoker)}; return result; } #ifdef DEBUG - static jsi::Array entriesToJs(jsi::Runtime &rt, decltype(types.entries) value) { + static jsi::Array entryTypesToJs(jsi::Runtime &rt, decltype(types.entryTypes) value) { + return bridging::toJs(rt, value); + } + + static double typeToJs(jsi::Runtime &rt, decltype(types.type) value) { return bridging::toJs(rt, value); } - static double droppedEntriesCountToJs(jsi::Runtime &rt, decltype(types.droppedEntriesCount) value) { + static bool bufferedToJs(jsi::Runtime &rt, decltype(types.buffered) value) { + return bridging::toJs(rt, value); + } + + static double durationThresholdToJs(jsi::Runtime &rt, decltype(types.durationThreshold) value) { return bridging::toJs(rt, value); } #endif @@ -8355,8 +8358,18 @@ struct NativePerformanceObserverGetPendingEntriesResultBridging { const T &value, const std::shared_ptr &jsInvoker) { auto result = facebook::jsi::Object(rt); - result.setProperty(rt, "entries", bridging::toJs(rt, value.entries, jsInvoker)); - result.setProperty(rt, "droppedEntriesCount", bridging::toJs(rt, value.droppedEntriesCount, jsInvoker)); + if (value.entryTypes) { + result.setProperty(rt, "entryTypes", bridging::toJs(rt, value.entryTypes.value(), jsInvoker)); + } + if (value.type) { + result.setProperty(rt, "type", bridging::toJs(rt, value.type.value(), jsInvoker)); + } + if (value.buffered) { + result.setProperty(rt, "buffered", bridging::toJs(rt, value.buffered.value(), jsInvoker)); + } + if (value.durationThreshold) { + result.setProperty(rt, "durationThreshold", bridging::toJs(rt, value.durationThreshold.value(), jsInvoker)); + } return result; } }; @@ -8455,14 +8468,12 @@ class JSI_EXPORT NativePerformanceObserverCxxSpecJSI : public TurboModule { NativePerformanceObserverCxxSpecJSI(std::shared_ptr jsInvoker); public: - virtual void startReporting(jsi::Runtime &rt, double entryType) = 0; - virtual void stopReporting(jsi::Runtime &rt, double entryType) = 0; - virtual void setIsBuffered(jsi::Runtime &rt, jsi::Array entryTypes, bool isBuffered) = 0; - virtual jsi::Object popPendingEntries(jsi::Runtime &rt) = 0; - virtual void setOnPerformanceEntryCallback(jsi::Runtime &rt, std::optional callback) = 0; - virtual void logRawEntry(jsi::Runtime &rt, jsi::Object entry) = 0; virtual jsi::Array getEventCounts(jsi::Runtime &rt) = 0; - virtual void setDurationThreshold(jsi::Runtime &rt, double entryType, double durationThreshold) = 0; + virtual jsi::Value createObserver(jsi::Runtime &rt, jsi::Function callback) = 0; + virtual double getDroppedEntriesCount(jsi::Runtime &rt, jsi::Value observer) = 0; + virtual void observe(jsi::Runtime &rt, jsi::Value observer, jsi::Object options) = 0; + virtual void disconnect(jsi::Runtime &rt, jsi::Value observer) = 0; + virtual jsi::Array takeRecords(jsi::Runtime &rt, jsi::Value observer, bool sort) = 0; virtual void clearEntries(jsi::Runtime &rt, std::optional entryType, std::optional entryName) = 0; virtual jsi::Array getEntries(jsi::Runtime &rt, std::optional entryType, std::optional entryName) = 0; virtual jsi::Array getSupportedPerformanceEntryTypes(jsi::Runtime &rt) = 0; @@ -8492,69 +8503,53 @@ class JSI_EXPORT NativePerformanceObserverCxxSpec : public TurboModule { } - void startReporting(jsi::Runtime &rt, double entryType) override { - static_assert( - bridging::getParameterCount(&T::startReporting) == 2, - "Expected startReporting(...) to have 2 parameters"); - - return bridging::callFromJs( - rt, &T::startReporting, jsInvoker_, instance_, std::move(entryType)); - } - void stopReporting(jsi::Runtime &rt, double entryType) override { + jsi::Array getEventCounts(jsi::Runtime &rt) override { static_assert( - bridging::getParameterCount(&T::stopReporting) == 2, - "Expected stopReporting(...) to have 2 parameters"); + bridging::getParameterCount(&T::getEventCounts) == 1, + "Expected getEventCounts(...) to have 1 parameters"); - return bridging::callFromJs( - rt, &T::stopReporting, jsInvoker_, instance_, std::move(entryType)); + return bridging::callFromJs( + rt, &T::getEventCounts, jsInvoker_, instance_); } - void setIsBuffered(jsi::Runtime &rt, jsi::Array entryTypes, bool isBuffered) override { + jsi::Value createObserver(jsi::Runtime &rt, jsi::Function callback) override { static_assert( - bridging::getParameterCount(&T::setIsBuffered) == 3, - "Expected setIsBuffered(...) to have 3 parameters"); + bridging::getParameterCount(&T::createObserver) == 2, + "Expected createObserver(...) to have 2 parameters"); - return bridging::callFromJs( - rt, &T::setIsBuffered, jsInvoker_, instance_, std::move(entryTypes), std::move(isBuffered)); + return bridging::callFromJs( + rt, &T::createObserver, jsInvoker_, instance_, std::move(callback)); } - jsi::Object popPendingEntries(jsi::Runtime &rt) override { + double getDroppedEntriesCount(jsi::Runtime &rt, jsi::Value observer) override { static_assert( - bridging::getParameterCount(&T::popPendingEntries) == 1, - "Expected popPendingEntries(...) to have 1 parameters"); + bridging::getParameterCount(&T::getDroppedEntriesCount) == 2, + "Expected getDroppedEntriesCount(...) to have 2 parameters"); - return bridging::callFromJs( - rt, &T::popPendingEntries, jsInvoker_, instance_); + return bridging::callFromJs( + rt, &T::getDroppedEntriesCount, jsInvoker_, instance_, std::move(observer)); } - void setOnPerformanceEntryCallback(jsi::Runtime &rt, std::optional callback) override { + void observe(jsi::Runtime &rt, jsi::Value observer, jsi::Object options) override { static_assert( - bridging::getParameterCount(&T::setOnPerformanceEntryCallback) == 2, - "Expected setOnPerformanceEntryCallback(...) to have 2 parameters"); + bridging::getParameterCount(&T::observe) == 3, + "Expected observe(...) to have 3 parameters"); return bridging::callFromJs( - rt, &T::setOnPerformanceEntryCallback, jsInvoker_, instance_, std::move(callback)); + rt, &T::observe, jsInvoker_, instance_, std::move(observer), std::move(options)); } - void logRawEntry(jsi::Runtime &rt, jsi::Object entry) override { + void disconnect(jsi::Runtime &rt, jsi::Value observer) override { static_assert( - bridging::getParameterCount(&T::logRawEntry) == 2, - "Expected logRawEntry(...) to have 2 parameters"); + bridging::getParameterCount(&T::disconnect) == 2, + "Expected disconnect(...) to have 2 parameters"); return bridging::callFromJs( - rt, &T::logRawEntry, jsInvoker_, instance_, std::move(entry)); + rt, &T::disconnect, jsInvoker_, instance_, std::move(observer)); } - jsi::Array getEventCounts(jsi::Runtime &rt) override { + jsi::Array takeRecords(jsi::Runtime &rt, jsi::Value observer, bool sort) override { static_assert( - bridging::getParameterCount(&T::getEventCounts) == 1, - "Expected getEventCounts(...) to have 1 parameters"); + bridging::getParameterCount(&T::takeRecords) == 3, + "Expected takeRecords(...) to have 3 parameters"); return bridging::callFromJs( - rt, &T::getEventCounts, jsInvoker_, instance_); - } - void setDurationThreshold(jsi::Runtime &rt, double entryType, double durationThreshold) override { - static_assert( - bridging::getParameterCount(&T::setDurationThreshold) == 3, - "Expected setDurationThreshold(...) to have 3 parameters"); - - return bridging::callFromJs( - rt, &T::setDurationThreshold, jsInvoker_, instance_, std::move(entryType), std::move(durationThreshold)); + rt, &T::takeRecords, jsInvoker_, instance_, std::move(observer), std::move(sort)); } void clearEntries(jsi::Runtime &rt, std::optional entryType, std::optional entryName) override { static_assert( diff --git a/vnext/overrides.json b/vnext/overrides.json index f0f874220b1..e9c13f29b08 100644 --- a/vnext/overrides.json +++ b/vnext/overrides.json @@ -8,13 +8,13 @@ "**/__snapshots__/**", "src-win/rntypes/**" ], - "baseVersion": "0.77.0-nightly-20240921-1747f57c6", + "baseVersion": "0.77.0-nightly-20241001-223e98cc4", "overrides": [ { "type": "derived", "file": ".flowconfig", "baseFile": ".flowconfig", - "baseHash": "3fbaf9dcd4027fa382894d06f330d0c68ceff9fb" + "baseHash": "0ef50a705dc56608e4a8bd11d3b0d3daedfc0012" }, { "type": "derived", @@ -182,6 +182,20 @@ "baseHash": "aa60f41597ea70b11c1f0ec68f1c0b8d2b327df3", "issue": 12195 }, + { + "type": "patch", + "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/performance/timeline/PerformanceEntryReporter.cpp", + "baseFile": "packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp", + "baseHash": "2b13190288dfb30dc4fe0631c9e64d73e1e2baea", + "issue": 13939 + }, + { + "type": "patch", + "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/performance/timeline/PerformanceEntryReporter.h", + "baseFile": "packages/react-native/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h", + "baseHash": "e21188b830c8dd5700fb21901ce9d9532d2986ca", + "issue": 13939 + }, { "type": "patch", "file": "ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp", @@ -228,7 +242,7 @@ "type": "derived", "file": "src-win/index.windows.js", "baseFile": "packages/react-native/index.js", - "baseHash": "da5d9e79c8c14c56ba00f73c8514c06e6fffe8ed" + "baseHash": "70b04f859a60e3752e6937b9fc294ffee30e6366" }, { "type": "platform", @@ -404,7 +418,7 @@ "type": "patch", "file": "src-win/Libraries/Components/Touchable/Touchable.windows.js", "baseFile": "packages/react-native/Libraries/Components/Touchable/Touchable.js", - "baseHash": "27e19d3bf49ff28629fdad544aad04939c2ce030", + "baseHash": "b06bb9da5282d7559f283a7d535797a0417808a6", "issue": 0 }, { @@ -469,12 +483,6 @@ "baseHash": "14662281c97222b45893308b744a7dc7c2000801", "issue": 12704 }, - { - "type": "copy", - "file": "src-win/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js", - "baseFile": "packages/react-native/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js", - "baseHash": "1c9eb481e8ed077fa650e3ea34837e2a31310366" - }, { "type": "platform", "file": "src-win/Libraries/Image/assetPaths.js" @@ -527,7 +535,7 @@ "type": "derived", "file": "src-win/Libraries/NativeComponent/BaseViewConfig.windows.js", "baseFile": "packages/react-native/Libraries/NativeComponent/BaseViewConfig.ios.js", - "baseHash": "0b4642542c2865c5cd3d542a82b295a1aca21c1a" + "baseHash": "af602af3c3acc6521f5535f2fe14bfe08cf1b5e9" }, { "type": "derived", @@ -639,6 +647,12 @@ "file": "src-win/src/private/specs/modules/NativePlatformConstantsWindows.js", "baseFile": "packages/react-native/src/private/specs/modules/NativePlatformConstantsAndroid.js", "baseHash": "fa0f34a2de33b641bd63863629087644796d8b59" + }, + { + "type": "copy", + "file": "src-win/src/private/reactdevtools/ReactDevToolsSettingsManager.windows.js", + "baseFile": "packages/react-native/src/private/reactdevtools/ReactDevToolsSettingsManager.android.js", + "baseHash": "df41b76dc3d2df9455fae588748261d7b0a22d01" } ] } \ No newline at end of file diff --git a/vnext/package.json b/vnext/package.json index 5e5892e5016..ddd8d38d7c1 100644 --- a/vnext/package.json +++ b/vnext/package.json @@ -28,13 +28,13 @@ "@react-native-community/cli-platform-ios": "15.0.0-alpha.2", "@react-native-windows/cli": "0.0.0-canary.240", "@react-native/assets": "1.0.0", - "@react-native/assets-registry": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/codegen": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/community-cli-plugin": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/gradle-plugin": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/js-polyfills": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/normalize-colors": "0.77.0-nightly-20240921-1747f57c6", - "@react-native/virtualized-lists": "0.77.0-nightly-20240921-1747f57c6", + "@react-native/assets-registry": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/codegen": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/community-cli-plugin": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/gradle-plugin": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/js-polyfills": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/normalize-colors": "0.77.0-nightly-20241001-223e98cc4", + "@react-native/virtualized-lists": "0.77.0-nightly-20241001-223e98cc4", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", @@ -56,7 +56,7 @@ "nullthrows": "^1.1.1", "pretty-format": "^29.7.0", "promise": "^8.3.0", - "react-devtools-core": "^5.3.1", + "react-devtools-core": "^6.0.0", "react-refresh": "^0.14.0", "react-shallow-renderer": "^16.15.0", "regenerator-runtime": "^0.13.2", @@ -86,7 +86,7 @@ "just-scripts": "^1.3.3", "prettier": "2.8.8", "react": "19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6", + "react-native": "0.77.0-nightly-20241001-223e98cc4", "react-native-platform-override": "^1.9.48", "react-refresh": "^0.14.0", "typescript": "5.0.4" @@ -94,7 +94,7 @@ "peerDependencies": { "@types/react": "^18.2.6", "react": "^19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20240921-1747f57c6" + "react-native": "0.77.0-nightly-20241001-223e98cc4" }, "beachball": { "defaultNpmTag": "canary", diff --git a/vnext/src-win/Libraries/Components/Touchable/Touchable.windows.js b/vnext/src-win/Libraries/Components/Touchable/Touchable.windows.js index 24f417fe3f8..bc1d76b8777 100644 --- a/vnext/src-win/Libraries/Components/Touchable/Touchable.windows.js +++ b/vnext/src-win/Libraries/Components/Touchable/Touchable.windows.js @@ -718,13 +718,17 @@ const TouchableMixin = { return; } this.state.touchable.positionOnActivate && + // $FlowFixMe[prop-missing] Position.release(this.state.touchable.positionOnActivate); this.state.touchable.dimensionsOnActivate && + // $FlowFixMe[prop-missing] BoundingDimensions.release(this.state.touchable.dimensionsOnActivate); + // $FlowFixMe[prop-missing] this.state.touchable.positionOnActivate = Position.getPooled( globalX, globalY, ); + // $FlowFixMe[prop-missing] this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled( w, h, diff --git a/vnext/src-win/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js b/vnext/src-win/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js deleted file mode 100644 index f5399c48e19..00000000000 --- a/vnext/src-win/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - * @flow strict-local - * @format - */ - -import DevSettings from '../Utilities/DevSettings'; -import NativeDevToolsSettingsManager from './NativeDevToolsSettingsManager'; - -module.exports = { - setConsolePatchSettings(newSettings: string) { - NativeDevToolsSettingsManager?.setConsolePatchSettings(newSettings); - }, - getConsolePatchSettings(): ?string { - return NativeDevToolsSettingsManager?.getConsolePatchSettings(); - }, - setProfilingSettings(newSettings: string) { - if (NativeDevToolsSettingsManager?.setProfilingSettings != null) { - NativeDevToolsSettingsManager.setProfilingSettings(newSettings); - } - }, - getProfilingSettings(): ?string { - if (NativeDevToolsSettingsManager?.getProfilingSettings != null) { - return NativeDevToolsSettingsManager.getProfilingSettings(); - } - return null; - }, - reload(): void { - DevSettings?.reload(); - }, -}; diff --git a/vnext/src-win/Libraries/NativeComponent/BaseViewConfig.windows.js b/vnext/src-win/Libraries/NativeComponent/BaseViewConfig.windows.js index e00bb5b109d..e6b84072710 100644 --- a/vnext/src-win/Libraries/NativeComponent/BaseViewConfig.windows.js +++ b/vnext/src-win/Libraries/NativeComponent/BaseViewConfig.windows.js @@ -248,7 +248,7 @@ const validAttributesForNonEventProps = { boxShadow: { process: require('../StyleSheet/processBoxShadow').default, }, - experimental_mixBlendMode: true, + mixBlendMode: true, isolation: true, borderTopWidth: true, diff --git a/vnext/src-win/index.windows.js b/vnext/src-win/index.windows.js index eb0095f0685..d006c60f854 100644 --- a/vnext/src-win/index.windows.js +++ b/vnext/src-win/index.windows.js @@ -87,6 +87,7 @@ import typeof UTFSequence from './Libraries/UTFSequence'; import typeof * as Appearance from './Libraries/Utilities/Appearance'; import typeof BackHandler from './Libraries/Utilities/BackHandler'; import typeof DeviceInfo from './Libraries/Utilities/DeviceInfo'; +import typeof DevMenu from './src/private/devmenu/DevMenu'; import typeof DevSettings from './Libraries/Utilities/DevSettings'; import typeof Dimensions from './Libraries/Utilities/Dimensions'; import typeof PixelRatio from './Libraries/Utilities/PixelRatio'; @@ -237,6 +238,9 @@ module.exports = { get DeviceInfo(): DeviceInfo { return require('./Libraries/Utilities/DeviceInfo'); }, + get DevMenu(): DevMenu { + return require('./src/private/devmenu/DevMenu'); + }, get DevSettings(): DevSettings { return require('./Libraries/Utilities/DevSettings'); }, diff --git a/vnext/src-win/src/private/reactdevtools/ReactDevToolsSettingsManager.windows.js b/vnext/src-win/src/private/reactdevtools/ReactDevToolsSettingsManager.windows.js new file mode 100644 index 00000000000..e80d4c32b44 --- /dev/null +++ b/vnext/src-win/src/private/reactdevtools/ReactDevToolsSettingsManager.windows.js @@ -0,0 +1,20 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict-local + * @format + */ + +import NativeReactDevToolsSettingsManager from '../specs/modules/NativeReactDevToolsSettingsManager'; + +module.exports = { + setGlobalHookSettings(settings: string) { + NativeReactDevToolsSettingsManager?.setGlobalHookSettings(settings); + }, + getGlobalHookSettings(): ?string { + return NativeReactDevToolsSettingsManager?.getGlobalHookSettings(); + }, +}; diff --git a/yarn.lock b/yarn.lock index bf6ac0aaae9..e9483eec19a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -49,7 +49,7 @@ "@babel/highlight" "^7.25.7" picocolors "^1.0.0" -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.7", "@babel/compat-data@^7.25.8": +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.7", "@babel/compat-data@^7.25.8": version "7.25.8" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.8.tgz#0376e83df5ab0eb0da18885c0140041f0747a402" integrity sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA== @@ -116,7 +116,7 @@ "@babel/traverse" "^7.25.7" "@babel/types" "^7.25.7" -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.7": +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.7": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz#11260ac3322dda0ef53edfae6e97b961449f5fa4" integrity sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A== @@ -406,7 +406,7 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/traverse" "^7.25.7" -"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0": +"@babel/plugin-proposal-class-properties@^7.13.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -438,17 +438,6 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-object-rest-spread@^7.0.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - "@babel/plugin-proposal-optional-chaining@^7.13.12": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" @@ -477,7 +466,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -505,7 +494,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.24.7": +"@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz#d1759e84dd4b437cf9fae69b4c06c41d7625bfb7" integrity sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw== @@ -540,7 +529,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.24.7", "@babel/plugin-syntax-jsx@^7.25.7", "@babel/plugin-syntax-jsx@^7.7.2": +"@babel/plugin-syntax-jsx@^7.24.7", "@babel/plugin-syntax-jsx@^7.25.7", "@babel/plugin-syntax-jsx@^7.7.2": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz#5352d398d11ea5e7ef330c854dea1dae0bf18165" integrity sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw== @@ -568,7 +557,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -643,7 +632,7 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/helper-remap-async-to-generator" "^7.25.7" -"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.25.7": +"@babel/plugin-transform-block-scoped-functions@^7.25.7": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz#e0b8843d5571719a2f1bf7e284117a3379fcc17c" integrity sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ== @@ -693,7 +682,7 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/template" "^7.25.7" -"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.20.0", "@babel/plugin-transform-destructuring@^7.24.8", "@babel/plugin-transform-destructuring@^7.25.7": +"@babel/plugin-transform-destructuring@^7.20.0", "@babel/plugin-transform-destructuring@^7.24.8", "@babel/plugin-transform-destructuring@^7.25.7": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz#f6f26a9feefb5aa41fd45b6f5838901b5333d560" integrity sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA== @@ -745,7 +734,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.20.0", "@babel/plugin-transform-flow-strip-types@^7.24.7", "@babel/plugin-transform-flow-strip-types@^7.25.2": +"@babel/plugin-transform-flow-strip-types@^7.20.0", "@babel/plugin-transform-flow-strip-types@^7.24.7", "@babel/plugin-transform-flow-strip-types@^7.25.2": version "7.25.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz#b3aa251db44959b7a7c82abcd6b4225dec7d2258" integrity sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg== @@ -791,7 +780,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.25.7": +"@babel/plugin-transform-member-expression-literals@^7.25.7": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz#0a36c3fbd450cc9e6485c507f005fa3d1bc8fca5" integrity sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw== @@ -871,7 +860,7 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/plugin-transform-parameters" "^7.25.7" -"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.25.7": +"@babel/plugin-transform-object-super@^7.25.7": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz#582a9cea8cf0a1e02732be5b5a703a38dedf5661" integrity sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA== @@ -894,7 +883,7 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.24.7", "@babel/plugin-transform-parameters@^7.25.7": +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.24.7", "@babel/plugin-transform-parameters@^7.25.7": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz#80c38b03ef580f6d6bffe1c5254bb35986859ac7" integrity sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ== @@ -918,7 +907,7 @@ "@babel/helper-create-class-features-plugin" "^7.25.7" "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.25.7": +"@babel/plugin-transform-property-literals@^7.25.7": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz#a8612b4ea4e10430f00012ecf0155662c7d6550d" integrity sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw== @@ -1029,7 +1018,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.25.7": +"@babel/plugin-transform-template-literals@^7.25.7": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz#e566c581bb16d8541dd8701093bb3457adfce16b" integrity sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA== @@ -1220,20 +1209,7 @@ "@babel/parser" "^7.25.7" "@babel/types" "^7.25.7" -"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3": - version "7.25.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.7.tgz#83e367619be1cab8e4f2892ef30ba04c26a40fa8" - integrity sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg== - dependencies: - "@babel/code-frame" "^7.25.7" - "@babel/generator" "^7.25.7" - "@babel/parser" "^7.25.7" - "@babel/template" "^7.25.7" - "@babel/types" "^7.25.7" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/traverse@^7.11.5", "@babel/traverse@^7.20.0", "@babel/traverse@^7.23.2", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.3", "@babel/traverse@^7.25.7": +"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3", "@babel/traverse@^7.11.5", "@babel/traverse@^7.20.0", "@babel/traverse@^7.23.2", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.3", "@babel/traverse@^7.25.7": version "7.25.7" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.7.tgz#83e367619be1cab8e4f2892ef30ba04c26a40fa8" integrity sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg== @@ -2211,10 +2187,10 @@ resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.8.1.tgz#0dcfba3ee9e981a384fe2105ca21477ce2d63dc8" integrity sha512-iFhsKQzRh/z3GlmvJWSjJJ4333FdLE/PhXxlGlYllE7sFf+UTzziVY+ajatuJ+R5zDw2AxfJV4v/3tAzUJb0/A== -"@react-native/assets-registry@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.77.0-nightly-20240921-1747f57c6.tgz#66a7af14d795ea6fede53d5c1b10e06691755b23" - integrity sha512-ECcA2V0h+xYx4gQO17kpM5TEFRzoaQJf0H8AuO+8HDicij090c7r5sLdNt/YDK5TGaHFviG55r98v6oTTh4NDQ== +"@react-native/assets-registry@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.77.0-nightly-20241001-223e98cc4.tgz#175bc712b2c62a70aa8c787a9e835c47d02b2be3" + integrity sha512-JNFow49Ev7EXZP5vri2oAK4Ag9vj3tEzV0ovApdCEGFsV6ncagvIQreyaE2OffjpaorVDBfVtqITu0NXPdqqBw== "@react-native/assets@1.0.0": version "1.0.0" @@ -2235,13 +2211,13 @@ dependencies: "@react-native/codegen" "0.76.0-nightly-20240901-305b4357e" -"@react-native/babel-plugin-codegen@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.77.0-nightly-20240921-1747f57c6.tgz#fa10cc0ab23b26a7b251b91d81d62fad3022cad3" - integrity sha512-sR4b+aXb3Y2qqoGSrGQoEX8As7ddtendmlhNvufz4UCkkQJvYm4MxxhjuhqmzF0G6f6m65ZWDPAQx0UTrGXZuQ== +"@react-native/babel-plugin-codegen@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.77.0-nightly-20241001-223e98cc4.tgz#bcfd0859769858e1700268a850107d427b70885d" + integrity sha512-5QIgXDz9QyPoV/T7Qe2BHDgETappHJ0N9eGqqmkdeatccAz6gMWUDSWvbLYE4htFcLv20QfKDGaURwFLLAWy4A== dependencies: "@babel/traverse" "^7.25.3" - "@react-native/codegen" "0.77.0-nightly-20240921-1747f57c6" + "@react-native/codegen" "0.77.0-nightly-20241001-223e98cc4" "@react-native/babel-preset@0.76.0-nightly-20240701-9f6cb21ed": version "0.76.0-nightly-20240701-9f6cb21ed" @@ -2345,16 +2321,15 @@ babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" -"@react-native/babel-preset@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.77.0-nightly-20240921-1747f57c6.tgz#4465693bb38594909ba0a840368b0430932eaff7" - integrity sha512-NQhjIhzDDwQqEWZh8qjYQhNmRf9NQUDzOrg4jBYUuGl3opUOhUzl5wStrGBXV/F8ICw064Nizp+xvFuBkfDT1w== +"@react-native/babel-preset@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.77.0-nightly-20241001-223e98cc4.tgz#1cf70719350d6e5298b11f336573ff7812779944" + integrity sha512-HASYRXXSpLn8SogsPn/mI9sW/MDOkbwCXaIXK6AkJArwC2MYlfI1WkAEr/AU3nR7F+w5Nx9+1k1k118NiaraNQ== dependencies: "@babel/core" "^7.25.2" "@babel/plugin-proposal-export-default-from" "^7.24.7" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-default-from" "^7.24.7" - "@babel/plugin-syntax-flow" "^7.24.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-transform-arrow-functions" "^7.24.7" @@ -2392,7 +2367,8 @@ "@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.77.0-nightly-20240921-1747f57c6" + "@react-native/babel-plugin-codegen" "0.77.0-nightly-20241001-223e98cc4" + babel-plugin-syntax-hermes-parser "^0.23.1" babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" @@ -2423,10 +2399,10 @@ nullthrows "^1.1.1" yargs "^17.6.2" -"@react-native/codegen@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.77.0-nightly-20240921-1747f57c6.tgz#3708d4c505c8026da1ad49d366706375eb9dcff7" - integrity sha512-TO68IkZZDMBBRpIa/Ly1jdCDwZNEb+9oUkMvHRiDRuWp3WH5dDSYvvIP344cvdFyhbNKwITPL+Q7OhxijfK4Bg== +"@react-native/codegen@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.77.0-nightly-20241001-223e98cc4.tgz#e98bbe7b0caddfa98373321c4f24cbbec8630fb0" + integrity sha512-FPTNkSULaP3kXfaXVr6cdS6Ax0fw1nwzXBo7huNQT12oAIPaYSGHepB9mVMij2n/btTEhZwyP2SrFkDMSAFmKw== dependencies: "@babel/parser" "^7.25.3" glob "^7.1.1" @@ -2436,13 +2412,13 @@ nullthrows "^1.1.1" yargs "^17.6.2" -"@react-native/community-cli-plugin@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.77.0-nightly-20240921-1747f57c6.tgz#0161bca5def35d75a14351029e0984668ccd914e" - integrity sha512-0fioVIMz1W9H9otK9ZImB16nhwgoDz9hmsiUmfgD0BLl7aELad7vRMSNuOD6C0ceyjPh8LVRSaTrbjFSJX1d+w== +"@react-native/community-cli-plugin@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.77.0-nightly-20241001-223e98cc4.tgz#503f3ebdf4e70cf5d98e6d9e41d1a2cb7f69c1e5" + integrity sha512-xei9DNMB3wSy5RIhSLOb2WcpzDuePZ6xJRgOOMa9zWX71Ojs2DECq4bm2ddl+ItNhHawUxpeI7c9RbIwaAerMQ== dependencies: - "@react-native/dev-middleware" "0.77.0-nightly-20240921-1747f57c6" - "@react-native/metro-babel-transformer" "0.77.0-nightly-20240921-1747f57c6" + "@react-native/dev-middleware" "0.77.0-nightly-20241001-223e98cc4" + "@react-native/metro-babel-transformer" "0.77.0-nightly-20241001-223e98cc4" chalk "^4.0.0" execa "^5.1.1" metro "^0.81.0-alpha.0" @@ -2451,18 +2427,18 @@ node-fetch "^2.2.0" readline "^1.3.0" -"@react-native/debugger-frontend@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.77.0-nightly-20240921-1747f57c6.tgz#cd1ba8d66031d5f4fe5943bc10b87c5499f7278b" - integrity sha512-hLpi5WVBHANhr2Fr9yjp+azjT60OHL0pG2QXDAWtLAHMuNCCkqCft6KiYogp6FZp/ijb8LnoW0b1Zel957CeKQ== +"@react-native/debugger-frontend@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.77.0-nightly-20241001-223e98cc4.tgz#680c06f6c8fbdad8abefa556af3903bbe39add3a" + integrity sha512-TSB7Er/Ym9br+zaLr4Z+OlbAFpRvCy2DHt6gw11vBLfCGNVtOo6G6MxP9vl5o/Pz67nKdqrn1lKwLjgZyQtJgw== -"@react-native/dev-middleware@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.77.0-nightly-20240921-1747f57c6.tgz#aff58f0ccadff53ec3c963632affbbc3bdb87263" - integrity sha512-yFnldcfJf6TAiw8AxNgk6scvcvyeqHj1MM+O1r/wxN2cuZQIGqSzsUGlqxyp5uwkD4Eau2e5dylOKuSKY6xS1g== +"@react-native/dev-middleware@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.77.0-nightly-20241001-223e98cc4.tgz#3e75849d102f8782fce854976cfead8369a006aa" + integrity sha512-qZDZEn1p1R2RotOedxoKMlS6xOWQ0XuhgTEsTITdYM53cdYoom7z6K/dy0ruGpAMl4+DT6n1H+7UUiPFoygqUg== dependencies: "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "0.77.0-nightly-20240921-1747f57c6" + "@react-native/debugger-frontend" "0.77.0-nightly-20241001-223e98cc4" chrome-launcher "^0.15.2" chromium-edge-launcher "^0.2.0" connect "^3.6.5" @@ -2496,10 +2472,10 @@ resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.76.0-nightly-20240701-9f6cb21ed.tgz#d64bb11c33665943e7ac80c92182659a3f20d3a4" integrity sha512-M6jRQHL5v+xXEd5ChLqJc/isVmUaSiHiZpodUlu2bGnWTRNxTzx5Ohamp1r9xZGK+bqQ6+J+AQhOUpsCX+K1Lg== -"@react-native/gradle-plugin@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.77.0-nightly-20240921-1747f57c6.tgz#2c9764c14c497cde36baa55c85db0021e711b709" - integrity sha512-HogL9HGAgx3SwVndx6ZDOIauKWx0EtqY0G2KLL59QxtB14hg7Z6b3XplpdR9l0dsT+BMFopsggf/t0ic+pvJ/w== +"@react-native/gradle-plugin@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.77.0-nightly-20241001-223e98cc4.tgz#4d77353b084d9a5df8921f0823d7ec8cfd8b3ad8" + integrity sha512-mBvoFa6Ge0racPuC7HQ6SZYkjvBvqj5S2g7FDCc8AMKYSE0FcO9TUUKcdpz+Vl6n7kiqTqaYi6IMLs+2VoU9Jw== "@react-native/js-polyfills@0.76.0-nightly-20240701-9f6cb21ed": version "0.76.0-nightly-20240701-9f6cb21ed" @@ -2511,10 +2487,10 @@ resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.76.0-nightly-20240901-305b4357e.tgz#f7526bc704517ea5af23053fce55988243fd7e35" integrity sha512-+yllZ6rN9vFPVYfqgTd2lPPQmVkvE6yL+rqZZwXCXGS9YTC9Td0H9aQ1a6VloqpXPs4qe5LSEKNHcCXY37lhjQ== -"@react-native/js-polyfills@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.77.0-nightly-20240921-1747f57c6.tgz#7878714657d576e5a5e3759eade39a712b28bf4b" - integrity sha512-hDVYLuWomWMV0SIySyHhOemeR6Syt57AIuLuOOZhG8DRZ9dzTW2h5gTMkepU/p4zNAWRY93QcDlccRp5xGGiBQ== +"@react-native/js-polyfills@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.77.0-nightly-20241001-223e98cc4.tgz#15cee5ac825a6e3c3b53dc3d19f4ea51f4a00b94" + integrity sha512-2Gj943BCVsVfkSUCEs3wUtOT5u1lYm05dLW7giIKd6CLgCKwcLqBdVV8xyEDzh+pr1uEv/QkvGWzgdOgidxDtA== "@react-native/metro-babel-transformer@0.76.0-nightly-20240701-9f6cb21ed": version "0.76.0-nightly-20240701-9f6cb21ed" @@ -2536,13 +2512,13 @@ hermes-parser "0.23.1" nullthrows "^1.1.1" -"@react-native/metro-babel-transformer@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.77.0-nightly-20240921-1747f57c6.tgz#b9380afca88b4a5b1c65d73d7df957c251a13c7d" - integrity sha512-lS1rgWWT5DSOtY6YRbPEZuPAE52LD3CO1IJRsHkYabHmOAeEjVIRGtZldP210DrWS5a8cKM2ATtbo06PSn3XNQ== +"@react-native/metro-babel-transformer@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.77.0-nightly-20241001-223e98cc4.tgz#4f41db5432679a816045c3a9ca52d899258e238a" + integrity sha512-EwX4Gbuy3F74QpqXbyNPS04C9mmguH+1N73XijPiFhQiTLftX6y/m+hg4LbJ2sIFa5TOYQTyvCD4AR4DqIUpCA== dependencies: "@babel/core" "^7.25.2" - "@react-native/babel-preset" "0.77.0-nightly-20240921-1747f57c6" + "@react-native/babel-preset" "0.77.0-nightly-20241001-223e98cc4" hermes-parser "0.23.1" nullthrows "^1.1.1" @@ -2566,20 +2542,20 @@ metro-config "^0.80.10" metro-runtime "^0.80.10" -"@react-native/metro-config@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.77.0-nightly-20240921-1747f57c6.tgz#38502aa2ec559b3365dc4f1332a20a09b6b73226" - integrity sha512-YWbwD5WmzoPz3aLfsvwOiw6NTuYv4C6bK+Zp654PdPdh5br43K/+KOWYUSdcyzTbZvyVDGJ881ORGtDwLVjChQ== +"@react-native/metro-config@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.77.0-nightly-20241001-223e98cc4.tgz#5f94d73afde10af757818698c097d8846abc9b86" + integrity sha512-s4hPnmy/dRg6D85s0Nlhf7H1x5dptYNPM5B2XnvBO/9vlu+/63k7t3BB9JA7MEA/MXEHKPKTxXuvubs5yhyP9w== dependencies: - "@react-native/js-polyfills" "0.77.0-nightly-20240921-1747f57c6" - "@react-native/metro-babel-transformer" "0.77.0-nightly-20240921-1747f57c6" + "@react-native/js-polyfills" "0.77.0-nightly-20241001-223e98cc4" + "@react-native/metro-babel-transformer" "0.77.0-nightly-20241001-223e98cc4" metro-config "^0.81.0-alpha.0" metro-runtime "^0.81.0-alpha.0" -"@react-native/normalize-colors@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.77.0-nightly-20240921-1747f57c6.tgz#1b25279d3e5072dda91be970d020e3ecd3d32683" - integrity sha512-VLd4Qego8EmYk56TOBo/dZKY1FyFKUSgsBkwTYBfHCKZfixA9iA8xw3HAIPdGwlv5GyRG331pvR1diKupxXHZg== +"@react-native/normalize-colors@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.77.0-nightly-20241001-223e98cc4.tgz#7bf9ab057dbb053e20bfc56dcfbadb003940d34f" + integrity sha512-+OSu4GgV9DF+ZfJx1y5cNr3dfAHATaw+6QGqUJsu8WnZCN0Our4ZpblBI/d0BuU2tIP1u921svAv9T85lk9nFQ== "@react-native/popup-menu-android@0.76.0-nightly-20240816-17017d2b8": version "0.76.0-nightly-20240816-17017d2b8" @@ -2588,10 +2564,10 @@ dependencies: nullthrows "^1.1.1" -"@react-native/virtualized-lists@0.77.0-nightly-20240921-1747f57c6": - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.77.0-nightly-20240921-1747f57c6.tgz#350943f3decec232938dacdebb8642ac7193a2eb" - integrity sha512-WRpL9EZZ2OAMWXjfGr01bQegN+Q+ICmV6BBVulPwQG+G4bcHolrSKtITLmnt3g3zTYTx5OioUMpiF3xwm0tPIA== +"@react-native/virtualized-lists@0.77.0-nightly-20241001-223e98cc4": + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.77.0-nightly-20241001-223e98cc4.tgz#6ba7f667d17fb14b343f7381e2c8715f31a5792b" + integrity sha512-8vzCufTmYq8dMCiGuPE7KU/noavpOblIcBojQtV938mfE2Ri0FoU9XJMXwOB5+O2np1We2ItNodjkX+P4XkIdA== dependencies: invariant "^2.2.4" nullthrows "^1.1.1" @@ -4246,11 +4222,6 @@ babel-plugin-syntax-hermes-parser@0.23.1, babel-plugin-syntax-hermes-parser@^0.2 dependencies: hermes-parser "0.23.1" -babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: - version "7.0.0-beta.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" - integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== - babel-plugin-transform-define@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/babel-plugin-transform-define/-/babel-plugin-transform-define-2.1.4.tgz#8f7088211176a55a72788d584ceea9f691a021c1" @@ -4284,39 +4255,6 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-fbjs@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" - integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-member-expression-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-property-literals" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" - babel-preset-jest@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" @@ -6480,10 +6418,10 @@ flow-bin@^0.245.2: resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.245.2.tgz#ab5cd2115a8b57cc91c0d84add105c7098418f4c" integrity sha512-1rFzkb7OoknVovimQvB+2Dq2vYP+guqSZAb4Cnnh0YsIdAOU7upCwnLHBOhMSXvEp6+J6tDMe9G8KwTAB8aI/g== -flow-bin@^0.246.0: - version "0.246.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.246.0.tgz#d08a696e6f796c497f7a7e98b22057dd0df0c38d" - integrity sha512-RB0gaPxrehIE0WoUbUMKgX/XpaY55JbtBhNhix5WzKFIDmRTVojJa+EJEbrTlo2BWRAZnnqOl13wanHmWwb1eA== +flow-bin@^0.247.1: + version "0.247.1" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.247.1.tgz#8c8d08fcee11ca43cbb6059edb9933a29bdedc57" + integrity sha512-03wwQ5kPW4CYqhXvxTseMs2v6QuVwCtifVkON2UUyDg6Jp1+CaQpLAZK+sFNzQOExKp0Yvoug+fZOUb33ARwHQ== flow-enums-runtime@^0.0.5: version "0.0.5" @@ -9258,6 +9196,18 @@ metro-transform-plugins@0.81.0-alpha.2: flow-enums-runtime "^0.0.6" nullthrows "^1.1.1" +metro-transform-plugins@^0.80.10: + version "0.80.12" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.80.12.tgz#4a3853630ad0f36cc2bffd53bae659ee171a389c" + integrity sha512-WQWp00AcZvXuQdbjQbx1LzFR31IInlkCDYJNRs6gtEtAyhwpMMlL2KcHmdY+wjDO9RPcliZ+Xl1riOuBecVlPA== + dependencies: + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.0" + "@babel/template" "^7.0.0" + "@babel/traverse" "^7.20.0" + flow-enums-runtime "^0.0.6" + nullthrows "^1.1.1" + metro-transform-worker@0.80.11: version "0.80.11" resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.80.11.tgz#3f8894b7c3566a8f4bb2f12af4f7c6e5fc61d744" @@ -10621,10 +10571,10 @@ 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@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-5.3.2.tgz#d5df92f8ef2a587986d094ef2c47d84cf4ae46ec" - integrity sha512-crr9HkVrDiJ0A4zot89oS0Cgv0Oa4OG1Em4jit3P3ZxZSKPMYyMjfwMqgcJna9o625g8oN87rBm8SWWrSTBZxg== +react-devtools-core@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-6.0.0.tgz#a1e3964677fb0c81ca391ed66e5b5d22621d9304" + integrity sha512-VmW+VhR9mR2difSed80BNpYLkYyWYzsZgdLPlakoFPYGiD7fwC36tp4HLw45N4sRqY+Te6ZWD9MVSex8d4gFxg== dependencies: shell-quote "^1.6.1" ws "^7" @@ -10656,19 +10606,19 @@ react-native-xaml@^0.0.78: dependencies: "@types/react" "*" -react-native@0.77.0-nightly-20240921-1747f57c6: - version "0.77.0-nightly-20240921-1747f57c6" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.77.0-nightly-20240921-1747f57c6.tgz#cd2b2205e16031cdc2463ff996e709aeb819d814" - integrity sha512-VYDKZZPQlRIfHUzL9vYQNuntSHF1LglP+AEQCy8g4dZx1trdgEs6RO6yeVnnIUJ1oTWFrjtgI8aRPv5VFJRFUg== +react-native@0.77.0-nightly-20241001-223e98cc4: + version "0.77.0-nightly-20241001-223e98cc4" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.77.0-nightly-20241001-223e98cc4.tgz#ae535f9afee358d6fc6c9cd8c33be2d36d21d6ac" + integrity sha512-iqMj6dA9KV0fiCo6kz0K8nhgNWsh/ypFFQbul+LRwmPM+4H0px9kLZWmH9K+Ps2RVzPpS1tWQXRqYvYtfF52AQ== dependencies: "@jest/create-cache-key-function" "^29.6.3" - "@react-native/assets-registry" "0.77.0-nightly-20240921-1747f57c6" - "@react-native/codegen" "0.77.0-nightly-20240921-1747f57c6" - "@react-native/community-cli-plugin" "0.77.0-nightly-20240921-1747f57c6" - "@react-native/gradle-plugin" "0.77.0-nightly-20240921-1747f57c6" - "@react-native/js-polyfills" "0.77.0-nightly-20240921-1747f57c6" - "@react-native/normalize-colors" "0.77.0-nightly-20240921-1747f57c6" - "@react-native/virtualized-lists" "0.77.0-nightly-20240921-1747f57c6" + "@react-native/assets-registry" "0.77.0-nightly-20241001-223e98cc4" + "@react-native/codegen" "0.77.0-nightly-20241001-223e98cc4" + "@react-native/community-cli-plugin" "0.77.0-nightly-20241001-223e98cc4" + "@react-native/gradle-plugin" "0.77.0-nightly-20241001-223e98cc4" + "@react-native/js-polyfills" "0.77.0-nightly-20241001-223e98cc4" + "@react-native/normalize-colors" "0.77.0-nightly-20241001-223e98cc4" + "@react-native/virtualized-lists" "0.77.0-nightly-20241001-223e98cc4" abort-controller "^3.0.0" anser "^1.4.9" ansi-regex "^5.0.0" @@ -10689,7 +10639,7 @@ react-native@0.77.0-nightly-20240921-1747f57c6: nullthrows "^1.1.1" pretty-format "^29.7.0" promise "^8.3.0" - react-devtools-core "^5.3.1" + react-devtools-core "^6.0.0" react-refresh "^0.14.0" regenerator-runtime "^0.13.2" scheduler "0.25.0-rc-fb9a90fa48-20240614"