From ebca982365dad4aa50edbc190866211f8e8cb928 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 20 Feb 2024 15:24:28 +0000 Subject: [PATCH 001/223] Update Hermes version --- packages/react-native/sdks/.hermesversion | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/react-native/sdks/.hermesversion diff --git a/packages/react-native/sdks/.hermesversion b/packages/react-native/sdks/.hermesversion new file mode 100644 index 00000000000000..647a6af974cf71 --- /dev/null +++ b/packages/react-native/sdks/.hermesversion @@ -0,0 +1 @@ +hermes-2024-02-20-RNv0.74.0-999cfd9979b5f57b1269119679ab8cdf60897de9 \ No newline at end of file From 619b8eb4d0742a950c0497e81a0cfb61043b1d36 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Wed, 21 Feb 2024 15:20:25 +0000 Subject: [PATCH 002/223] Bump package versions #publish-packages-to-npm&0.74-stable --- package.json | 4 ++-- packages/babel-plugin-codegen/package.json | 4 ++-- packages/community-cli-plugin/package.json | 6 +++--- packages/debugger-frontend/package.json | 2 +- packages/dev-middleware/package.json | 4 ++-- packages/eslint-config-react-native/package.json | 4 ++-- packages/eslint-plugin-react-native/package.json | 2 +- packages/eslint-plugin-specs/package.json | 4 ++-- packages/metro-config/package.json | 4 ++-- packages/react-native-babel-preset/package.json | 4 ++-- packages/react-native-babel-transformer/package.json | 4 ++-- .../react-native-codegen-typescript-test/package.json | 2 +- packages/react-native-codegen/package.json | 2 +- packages/react-native-gradle-plugin/package.json | 2 +- packages/react-native/package.json | 8 ++++---- packages/react-native/template/package.json | 8 ++++---- packages/typescript-config/package.json | 2 +- packages/virtualized-lists/package.json | 2 +- 18 files changed, 34 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index ca7b08196d9d51..9a93a0b7a898b3 100644 --- a/package.json +++ b/package.json @@ -59,8 +59,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.74.0", - "@react-native/metro-config": "0.74.0", + "@react-native/metro-babel-transformer": "0.74.1", + "@react-native/metro-config": "0.74.1", "@tsconfig/node18": "1.0.1", "@types/react": "^18.0.18", "@typescript-eslint/parser": "^6.7.4", diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index ca3392302e261e..5567b7796d02ea 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-plugin-codegen", - "version": "0.74.0", + "version": "0.74.1", "description": "Babel plugin to generate native module and view manager code for React Native.", "license": "MIT", "repository": { @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@react-native/codegen": "0.74.0" + "@react-native/codegen": "0.74.1" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 5d2f05cb845fb7..06aadb31b57d27 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.0", + "version": "0.74.1", "description": "Core CLI commands for React Native", "keywords": [ "react-native", @@ -24,8 +24,8 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.0", "@react-native-community/cli-tools": "13.6.0", - "@react-native/dev-middleware": "0.74.0", - "@react-native/metro-babel-transformer": "0.74.0", + "@react-native/dev-middleware": "0.74.1", + "@react-native/metro-babel-transformer": "0.74.1", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", diff --git a/packages/debugger-frontend/package.json b/packages/debugger-frontend/package.json index 4c100152f8edbf..6bd64d33a65c01 100644 --- a/packages/debugger-frontend/package.json +++ b/packages/debugger-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/debugger-frontend", - "version": "0.74.0", + "version": "0.74.1", "description": "Debugger frontend for React Native based on Chrome DevTools", "keywords": [ "react-native", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index f1700a2fcf8760..db8712800ae83b 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.0", + "version": "0.74.1", "description": "Dev server middleware for React Native", "keywords": [ "react-native", @@ -23,7 +23,7 @@ ], "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.0", + "@react-native/debugger-frontend": "0.74.1", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index 7edb68a00afbe1..1ee1d03eb1bd73 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-config", - "version": "0.74.0", + "version": "0.74.1", "description": "ESLint config for React Native", "license": "MIT", "repository": { @@ -22,7 +22,7 @@ "dependencies": { "@babel/core": "^7.20.0", "@babel/eslint-parser": "^7.20.0", - "@react-native/eslint-plugin": "0.74.0", + "@react-native/eslint-plugin": "0.74.1", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "eslint-config-prettier": "^8.5.0", diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index acb35918dd30e1..a7dfa439ae6c12 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin", - "version": "0.74.0", + "version": "0.74.1", "description": "ESLint rules for @react-native/eslint-config", "license": "MIT", "repository": { diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index fa04efd48a5717..85593865e85cb5 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin-specs", - "version": "0.74.0", + "version": "0.74.1", "description": "ESLint rules to validate NativeModule and Component Specs", "license": "MIT", "repository": { @@ -31,7 +31,7 @@ "@babel/eslint-parser": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/preset-flow": "^7.20.0", - "@react-native/codegen": "0.74.0", + "@react-native/codegen": "0.74.1", "make-dir": "^2.1.0", "pirates": "^4.0.1", "source-map-support": "0.5.0" diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index 410f04a50b8952..97baf219663157 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-config", - "version": "0.74.0", + "version": "0.74.1", "description": "Metro configuration for React Native.", "license": "MIT", "repository": { @@ -27,7 +27,7 @@ ], "dependencies": { "@react-native/js-polyfills": "0.74.0", - "@react-native/metro-babel-transformer": "0.74.0", + "@react-native/metro-babel-transformer": "0.74.1", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" } diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index 74a6f1df7c917d..11186c147c292b 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-preset", - "version": "0.74.0", + "version": "0.74.1", "description": "Babel preset for React Native applications", "main": "src/index.js", "repository": { @@ -54,7 +54,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.0", + "@react-native/babel-plugin-codegen": "0.74.1", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index b78d79c643db84..ae37af14bd5e2f 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-babel-transformer", - "version": "0.74.0", + "version": "0.74.1", "description": "Babel transformer for React Native applications.", "main": "src/index.js", "repository": { @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.0", + "@react-native/babel-preset": "0.74.1", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, diff --git a/packages/react-native-codegen-typescript-test/package.json b/packages/react-native-codegen-typescript-test/package.json index c170d4cedccc8e..57f63fe83c25a2 100644 --- a/packages/react-native-codegen-typescript-test/package.json +++ b/packages/react-native-codegen-typescript-test/package.json @@ -19,7 +19,7 @@ "prepare": "yarn run build" }, "dependencies": { - "@react-native/codegen": "0.74.0" + "@react-native/codegen": "0.74.1" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index 2e8200e957f0a7..1981d3db5ac47d 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen", - "version": "0.74.0", + "version": "0.74.1", "description": "Code generation tools for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-gradle-plugin/package.json b/packages/react-native-gradle-plugin/package.json index 33b450a9e9166c..1793cda08621f1 100644 --- a/packages/react-native-gradle-plugin/package.json +++ b/packages/react-native-gradle-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/gradle-plugin", - "version": "0.74.0", + "version": "0.74.1", "description": "Gradle Plugin for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 70efb104d59177..b8dece1b4be5df 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -102,12 +102,12 @@ "@react-native-community/cli-platform-android": "13.6.0", "@react-native-community/cli-platform-ios": "13.6.0", "@react-native/assets-registry": "0.74.0", - "@react-native/codegen": "0.74.0", - "@react-native/community-cli-plugin": "0.74.0", - "@react-native/gradle-plugin": "0.74.0", + "@react-native/codegen": "0.74.1", + "@react-native/community-cli-plugin": "0.74.1", + "@react-native/gradle-plugin": "0.74.1", "@react-native/js-polyfills": "0.74.0", "@react-native/normalize-colors": "0.74.1", - "@react-native/virtualized-lists": "0.74.0", + "@react-native/virtualized-lists": "0.74.1", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 232831747e774e..a9ee2de13a953a 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -17,10 +17,10 @@ "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.0", - "@react-native/eslint-config": "0.74.0", - "@react-native/metro-config": "0.74.0", - "@react-native/typescript-config": "0.74.0", + "@react-native/babel-preset": "0.74.1", + "@react-native/eslint-config": "0.74.1", + "@react-native/metro-config": "0.74.1", + "@react-native/typescript-config": "0.74.1", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 0ca29efbb837a5..522c8215ba5025 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/typescript-config", - "version": "0.74.0", + "version": "0.74.1", "description": "Default TypeScript configuration for React Native apps", "license": "MIT", "repository": { diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index b05d544bd85d55..035eb17c345cd2 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/virtualized-lists", - "version": "0.74.0", + "version": "0.74.1", "description": "Virtualized lists for React Native.", "license": "MIT", "repository": { From 898e207bcf70033a8280f91651ec8b003becb932 Mon Sep 17 00:00:00 2001 From: Distiller Date: Wed, 21 Feb 2024 16:33:24 +0000 Subject: [PATCH 003/223] [0.74.0-rc.0] Bump version numbers --- .../Libraries/Core/ReactNativeVersion.js | 6 +- packages/react-native/React/Base/RCTVersion.m | 6 +- .../ReactAndroid/gradle.properties | 2 +- .../systeminfo/ReactNativeVersion.java | 6 +- .../ReactCommon/cxxreact/ReactNativeVersion.h | 6 +- packages/react-native/package.json | 4 +- packages/react-native/template/package.json | 2 +- packages/rn-tester/Podfile.lock | 514 +++++++++--------- .../RNTesterPods.xcodeproj/project.pbxproj | 28 +- 9 files changed, 294 insertions(+), 280 deletions(-) diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index 2f45659dc6c94a..47441ecfdb7654 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -14,10 +14,10 @@ const version: $ReadOnly<{ patch: number, prerelease: string | null, }> = { - major: 1000, - minor: 0, + major: 0, + minor: 74, patch: 0, - prerelease: null, + prerelease: 'rc.0', }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index 26d701dd303104..2d6a3ef2a8d858 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -21,10 +21,10 @@ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^(void){ __rnVersion = @{ - RCTVersionMajor: @(1000), - RCTVersionMinor: @(0), + RCTVersionMajor: @(0), + RCTVersionMinor: @(74), RCTVersionPatch: @(0), - RCTVersionPrerelease: [NSNull null], + RCTVersionPrerelease: @"rc.0", }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index 31a4a4d071d617..0fba9efc278491 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=1000.0.0 +VERSION_NAME=0.74.0-rc.0 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index 8f5ef045c9c9eb..34593b9ec4b5bf 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -15,8 +15,8 @@ public class ReactNativeVersion { public static final Map VERSION = MapBuilder.of( - "major", 1000, - "minor", 0, + "major", 0, + "minor", 74, "patch", 0, - "prerelease", null); + "prerelease", "rc.0"); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index 6be46f63b85abd..1f1b96d508c89b 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -15,10 +15,10 @@ namespace facebook::react { constexpr struct { - int32_t Major = 1000; - int32_t Minor = 0; + int32_t Major = 0; + int32_t Minor = 74; int32_t Patch = 0; - std::string_view Prerelease = ""; + std::string_view Prerelease = "rc.0"; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index b8dece1b4be5df..49675e97bdc149 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "1000.0.0", + "version": "0.74.0-rc.0", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -153,4 +153,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index a9ee2de13a953a..2546a54c6b8c9c 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "1000.0.0" + "react-native": "0.74.0-rc.0" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 66e57f4f87b2d6..8f4f3c21c9394c 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,18 +1,18 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (1000.0.0) + - FBLazyVector (0.74.0-rc.0) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (1000.0.0): - - hermes-engine/Hermes (= 1000.0.0) - - hermes-engine/inspector (= 1000.0.0) - - hermes-engine/inspector_chrome (= 1000.0.0) - - hermes-engine/Public (= 1000.0.0) - - hermes-engine/Hermes (1000.0.0) - - hermes-engine/inspector (1000.0.0) - - hermes-engine/inspector_chrome (1000.0.0) - - hermes-engine/Public (1000.0.0) + - hermes-engine (0.74.0-rc.0): + - hermes-engine/Hermes (= 0.74.0-rc.0) + - hermes-engine/inspector (= 0.74.0-rc.0) + - hermes-engine/inspector_chrome (= 0.74.0-rc.0) + - hermes-engine/Public (= 0.74.0-rc.0) + - hermes-engine/Hermes (0.74.0-rc.0) + - hermes-engine/inspector (0.74.0-rc.0) + - hermes-engine/inspector_chrome (0.74.0-rc.0) + - hermes-engine/Public (0.74.0-rc.0) - MyNativeView (0.0.1): - DoubleConversion - glog @@ -72,27 +72,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (1000.0.0) - - RCTRequired (1000.0.0) - - RCTTypeSafety (1000.0.0): - - FBLazyVector (= 1000.0.0) - - RCTRequired (= 1000.0.0) - - React-Core (= 1000.0.0) - - React (1000.0.0): - - React-Core (= 1000.0.0) - - React-Core/DevSupport (= 1000.0.0) - - React-Core/RCTWebSocket (= 1000.0.0) - - React-RCTActionSheet (= 1000.0.0) - - React-RCTAnimation (= 1000.0.0) - - React-RCTBlob (= 1000.0.0) - - React-RCTImage (= 1000.0.0) - - React-RCTLinking (= 1000.0.0) - - React-RCTNetwork (= 1000.0.0) - - React-RCTSettings (= 1000.0.0) - - React-RCTText (= 1000.0.0) - - React-RCTVibration (= 1000.0.0) - - React-callinvoker (1000.0.0) - - React-Codegen (1000.0.0): + - RCTDeprecation (0.74.0-rc.0) + - RCTRequired (0.74.0-rc.0) + - RCTTypeSafety (0.74.0-rc.0): + - FBLazyVector (= 0.74.0-rc.0) + - RCTRequired (= 0.74.0-rc.0) + - React-Core (= 0.74.0-rc.0) + - React (0.74.0-rc.0): + - React-Core (= 0.74.0-rc.0) + - React-Core/DevSupport (= 0.74.0-rc.0) + - React-Core/RCTWebSocket (= 0.74.0-rc.0) + - React-RCTActionSheet (= 0.74.0-rc.0) + - React-RCTAnimation (= 0.74.0-rc.0) + - React-RCTBlob (= 0.74.0-rc.0) + - React-RCTImage (= 0.74.0-rc.0) + - React-RCTLinking (= 0.74.0-rc.0) + - React-RCTNetwork (= 0.74.0-rc.0) + - React-RCTSettings (= 0.74.0-rc.0) + - React-RCTText (= 0.74.0-rc.0) + - React-RCTVibration (= 0.74.0-rc.0) + - React-callinvoker (0.74.0-rc.0) + - React-Codegen (0.74.0-rc.0): - DoubleConversion - glog - hermes-engine @@ -112,12 +112,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (1000.0.0): + - React-Core (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 1000.0.0) + - React-Core/Default (= 0.74.0-rc.0) - React-cxxreact - React-featureflags - React-hermes @@ -129,7 +129,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (1000.0.0): + - React-Core/CoreModulesHeaders (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -146,7 +146,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (1000.0.0): + - React-Core/Default (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -162,13 +162,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (1000.0.0): + - React-Core/DevSupport (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 1000.0.0) - - React-Core/RCTWebSocket (= 1000.0.0) + - React-Core/Default (= 0.74.0-rc.0) + - React-Core/RCTWebSocket (= 0.74.0-rc.0) - React-cxxreact - React-featureflags - React-hermes @@ -180,7 +180,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (1000.0.0): + - React-Core/RCTActionSheetHeaders (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -197,7 +197,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (1000.0.0): + - React-Core/RCTAnimationHeaders (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -214,7 +214,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (1000.0.0): + - React-Core/RCTBlobHeaders (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -231,7 +231,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (1000.0.0): + - React-Core/RCTImageHeaders (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -248,7 +248,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (1000.0.0): + - React-Core/RCTLinkingHeaders (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -265,7 +265,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (1000.0.0): + - React-Core/RCTNetworkHeaders (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -282,7 +282,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (1000.0.0): + - React-Core/RCTPushNotificationHeaders (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -299,7 +299,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (1000.0.0): + - React-Core/RCTSettingsHeaders (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -316,7 +316,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (1000.0.0): + - React-Core/RCTTextHeaders (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -333,7 +333,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (1000.0.0): + - React-Core/RCTVibrationHeaders (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -350,12 +350,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (1000.0.0): + - React-Core/RCTWebSocket (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 1000.0.0) + - React-Core/Default (= 0.74.0-rc.0) - React-cxxreact - React-featureflags - React-hermes @@ -367,36 +367,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (1000.0.0): + - React-CoreModules (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 1000.0.0) + - RCTTypeSafety (= 0.74.0-rc.0) - React-Codegen - - React-Core/CoreModulesHeaders (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-Core/CoreModulesHeaders (= 0.74.0-rc.0) + - React-jsi (= 0.74.0-rc.0) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 1000.0.0) + - React-RCTImage (= 0.74.0-rc.0) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (1000.0.0): + - React-cxxreact (0.74.0-rc.0): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 1000.0.0) - - React-debug (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-callinvoker (= 0.74.0-rc.0) + - React-debug (= 0.74.0-rc.0) + - React-jsi (= 0.74.0-rc.0) - React-jsinspector - - React-logger (= 1000.0.0) - - React-perflogger (= 1000.0.0) - - React-runtimeexecutor (= 1000.0.0) - - React-debug (1000.0.0) - - React-Fabric (1000.0.0): + - React-logger (= 0.74.0-rc.0) + - React-perflogger (= 0.74.0-rc.0) + - React-runtimeexecutor (= 0.74.0-rc.0) + - React-debug (0.74.0-rc.0) + - React-Fabric (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -407,20 +407,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 1000.0.0) - - React-Fabric/attributedstring (= 1000.0.0) - - React-Fabric/componentregistry (= 1000.0.0) - - React-Fabric/componentregistrynative (= 1000.0.0) - - React-Fabric/components (= 1000.0.0) - - React-Fabric/core (= 1000.0.0) - - React-Fabric/imagemanager (= 1000.0.0) - - React-Fabric/leakchecker (= 1000.0.0) - - React-Fabric/mounting (= 1000.0.0) - - React-Fabric/scheduler (= 1000.0.0) - - React-Fabric/telemetry (= 1000.0.0) - - React-Fabric/templateprocessor (= 1000.0.0) - - React-Fabric/textlayoutmanager (= 1000.0.0) - - React-Fabric/uimanager (= 1000.0.0) + - React-Fabric/animations (= 0.74.0-rc.0) + - React-Fabric/attributedstring (= 0.74.0-rc.0) + - React-Fabric/componentregistry (= 0.74.0-rc.0) + - React-Fabric/componentregistrynative (= 0.74.0-rc.0) + - React-Fabric/components (= 0.74.0-rc.0) + - React-Fabric/core (= 0.74.0-rc.0) + - React-Fabric/imagemanager (= 0.74.0-rc.0) + - React-Fabric/leakchecker (= 0.74.0-rc.0) + - React-Fabric/mounting (= 0.74.0-rc.0) + - React-Fabric/scheduler (= 0.74.0-rc.0) + - React-Fabric/telemetry (= 0.74.0-rc.0) + - React-Fabric/templateprocessor (= 0.74.0-rc.0) + - React-Fabric/textlayoutmanager (= 0.74.0-rc.0) + - React-Fabric/uimanager (= 0.74.0-rc.0) - React-graphics - React-jsi - React-jsiexecutor @@ -429,7 +429,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (1000.0.0): + - React-Fabric/animations (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -448,7 +448,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (1000.0.0): + - React-Fabric/attributedstring (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -467,7 +467,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (1000.0.0): + - React-Fabric/componentregistry (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -486,7 +486,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (1000.0.0): + - React-Fabric/componentregistrynative (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -505,7 +505,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (1000.0.0): + - React-Fabric/components (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -516,17 +516,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 1000.0.0) - - React-Fabric/components/legacyviewmanagerinterop (= 1000.0.0) - - React-Fabric/components/modal (= 1000.0.0) - - React-Fabric/components/rncore (= 1000.0.0) - - React-Fabric/components/root (= 1000.0.0) - - React-Fabric/components/safeareaview (= 1000.0.0) - - React-Fabric/components/scrollview (= 1000.0.0) - - React-Fabric/components/text (= 1000.0.0) - - React-Fabric/components/textinput (= 1000.0.0) - - React-Fabric/components/unimplementedview (= 1000.0.0) - - React-Fabric/components/view (= 1000.0.0) + - React-Fabric/components/inputaccessory (= 0.74.0-rc.0) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.0) + - React-Fabric/components/modal (= 0.74.0-rc.0) + - React-Fabric/components/rncore (= 0.74.0-rc.0) + - React-Fabric/components/root (= 0.74.0-rc.0) + - React-Fabric/components/safeareaview (= 0.74.0-rc.0) + - React-Fabric/components/scrollview (= 0.74.0-rc.0) + - React-Fabric/components/text (= 0.74.0-rc.0) + - React-Fabric/components/textinput (= 0.74.0-rc.0) + - React-Fabric/components/unimplementedview (= 0.74.0-rc.0) + - React-Fabric/components/view (= 0.74.0-rc.0) - React-graphics - React-jsi - React-jsiexecutor @@ -535,7 +535,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (1000.0.0): + - React-Fabric/components/inputaccessory (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -554,7 +554,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (1000.0.0): + - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -573,7 +573,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (1000.0.0): + - React-Fabric/components/modal (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -592,7 +592,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (1000.0.0): + - React-Fabric/components/rncore (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -611,7 +611,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (1000.0.0): + - React-Fabric/components/root (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -630,7 +630,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (1000.0.0): + - React-Fabric/components/safeareaview (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -649,7 +649,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (1000.0.0): + - React-Fabric/components/scrollview (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -668,7 +668,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (1000.0.0): + - React-Fabric/components/text (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -687,7 +687,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (1000.0.0): + - React-Fabric/components/textinput (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -706,7 +706,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (1000.0.0): + - React-Fabric/components/unimplementedview (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -725,7 +725,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (1000.0.0): + - React-Fabric/components/view (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -745,7 +745,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (1000.0.0): + - React-Fabric/core (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -764,7 +764,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (1000.0.0): + - React-Fabric/imagemanager (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -783,7 +783,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (1000.0.0): + - React-Fabric/leakchecker (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -802,7 +802,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (1000.0.0): + - React-Fabric/mounting (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -821,7 +821,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (1000.0.0): + - React-Fabric/scheduler (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -840,7 +840,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (1000.0.0): + - React-Fabric/telemetry (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -859,7 +859,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (1000.0.0): + - React-Fabric/templateprocessor (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -878,7 +878,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (1000.0.0): + - React-Fabric/textlayoutmanager (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -898,7 +898,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (1000.0.0): + - React-Fabric/uimanager (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -917,44 +917,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (1000.0.0): + - React-FabricImage (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 1000.0.0) - - RCTTypeSafety (= 1000.0.0) + - RCTRequired (= 0.74.0-rc.0) + - RCTTypeSafety (= 0.74.0-rc.0) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 1000.0.0) + - React-jsiexecutor (= 0.74.0-rc.0) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (1000.0.0) - - React-graphics (1000.0.0): + - React-featureflags (0.74.0-rc.0) + - React-graphics (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 1000.0.0) + - React-Core/Default (= 0.74.0-rc.0) - React-utils - - React-hermes (1000.0.0): + - React-hermes (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 1000.0.0) + - React-cxxreact (= 0.74.0-rc.0) - React-jsi - - React-jsiexecutor (= 1000.0.0) - - React-jsinspector (= 1000.0.0) - - React-perflogger (= 1000.0.0) - - React-ImageManager (1000.0.0): + - React-jsiexecutor (= 0.74.0-rc.0) + - React-jsinspector + - React-perflogger (= 0.74.0-rc.0) + - React-runtimeexecutor + - React-ImageManager (0.74.0-rc.0): - glog - RCT-Folly/Fabric - React-Core/Default @@ -963,42 +964,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (1000.0.0): + - React-jserrorhandler (0.74.0-rc.0): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (1000.0.0): + - React-jsi (0.74.0-rc.0): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (1000.0.0): + - React-jsiexecutor (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-cxxreact (= 0.74.0-rc.0) + - React-jsi (= 0.74.0-rc.0) - React-jsinspector - - React-perflogger (= 1000.0.0) - - React-jsinspector (1000.0.0): + - React-perflogger (= 0.74.0-rc.0) + - React-jsinspector (0.74.0-rc.0): - DoubleConversion - glog + - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - - React-jsitracing (1000.0.0): - React-jsi - - React-logger (1000.0.0): + - React-runtimeexecutor (= 0.74.0-rc.0) + - React-jsitracing (0.74.0-rc.0): + - React-jsi + - React-logger (0.74.0-rc.0): - glog - - React-Mapbuffer (1000.0.0): + - React-Mapbuffer (0.74.0-rc.0): - glog - React-debug - - React-nativeconfig (1000.0.0) - - React-NativeModulesApple (1000.0.0): + - React-nativeconfig (0.74.0-rc.0) + - React-NativeModulesApple (0.74.0-rc.0): - glog - hermes-engine - React-callinvoker @@ -1009,10 +1013,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (1000.0.0) - - React-RCTActionSheet (1000.0.0): - - React-Core/RCTActionSheetHeaders (= 1000.0.0) - - React-RCTAnimation (1000.0.0): + - React-perflogger (0.74.0-rc.0) + - React-RCTActionSheet (0.74.0-rc.0): + - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.0) + - React-RCTAnimation (0.74.0-rc.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1020,10 +1024,11 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (1000.0.0): + - React-RCTAppDelegate (0.74.0-rc.0): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety + - React-Codegen - React-Core - React-CoreModules - React-debug @@ -1042,7 +1047,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (1000.0.0): + - React-RCTBlob (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1055,7 +1060,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (1000.0.0): + - React-RCTFabric (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1063,6 +1068,7 @@ PODS: - React-debug - React-Fabric - React-FabricImage + - React-featureflags - React-graphics - React-ImageManager - React-jsi @@ -1074,7 +1080,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (1000.0.0): + - React-RCTImage (0.74.0-rc.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1083,14 +1089,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (1000.0.0): + - React-RCTLinking (0.74.0-rc.0): - React-Codegen - - React-Core/RCTLinkingHeaders (= 1000.0.0) - - React-jsi (= 1000.0.0) + - React-Core/RCTLinkingHeaders (= 0.74.0-rc.0) + - React-jsi (= 0.74.0-rc.0) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 1000.0.0) - - React-RCTNetwork (1000.0.0): + - ReactCommon/turbomodule/core (= 0.74.0-rc.0) + - React-RCTNetwork (0.74.0-rc.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1098,14 +1104,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (1000.0.0): + - React-RCTPushNotification (0.74.0-rc.0): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (1000.0.0): + - React-RCTSettings (0.74.0-rc.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1113,29 +1119,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (1000.0.0): + - React-RCTTest (0.74.0-rc.0): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 1000.0.0) - - React-CoreModules (= 1000.0.0) - - React-jsi (= 1000.0.0) - - ReactCommon/turbomodule/core (= 1000.0.0) - - React-RCTText (1000.0.0): - - React-Core/RCTTextHeaders (= 1000.0.0) + - React-Core (= 0.74.0-rc.0) + - React-CoreModules (= 0.74.0-rc.0) + - React-jsi (= 0.74.0-rc.0) + - ReactCommon/turbomodule/core (= 0.74.0-rc.0) + - React-RCTText (0.74.0-rc.0): + - React-Core/RCTTextHeaders (= 0.74.0-rc.0) - Yoga - - React-RCTVibration (1000.0.0): + - React-RCTVibration (0.74.0-rc.0): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (1000.0.0): + - React-rendererdebug (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (1000.0.0) - - React-RuntimeApple (1000.0.0): + - React-rncore (0.74.0-rc.0) + - React-RuntimeApple (0.74.0-rc.0): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1153,7 +1159,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (1000.0.0): + - React-RuntimeCore (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1166,18 +1172,20 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (1000.0.0): - - React-jsi (= 1000.0.0) - - React-RuntimeHermes (1000.0.0): + - React-runtimeexecutor (0.74.0-rc.0): + - React-jsi (= 0.74.0-rc.0) + - React-RuntimeHermes (0.74.0-rc.0): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags + - React-hermes - React-jsi + - React-jsinspector - React-jsitracing - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (1000.0.0): + - React-runtimescheduler (0.74.0-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1189,14 +1197,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (1000.0.0): + - React-utils (0.74.0-rc.0): - glog + - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - ReactCommon (1000.0.0): - - React-logger (= 1000.0.0) - - ReactCommon/turbomodule (= 1000.0.0) - - ReactCommon-Samples (1000.0.0): + - React-jsi (= 0.74.0-rc.0) + - ReactCommon (0.74.0-rc.0): + - ReactCommon/turbomodule (= 0.74.0-rc.0) + - ReactCommon-Samples (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1207,42 +1216,43 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (1000.0.0): + - ReactCommon/turbomodule (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 1000.0.0) - - React-cxxreact (= 1000.0.0) - - React-jsi (= 1000.0.0) - - React-logger (= 1000.0.0) - - React-perflogger (= 1000.0.0) - - ReactCommon/turbomodule/bridging (= 1000.0.0) - - ReactCommon/turbomodule/core (= 1000.0.0) - - ReactCommon/turbomodule/bridging (1000.0.0): + - React-callinvoker (= 0.74.0-rc.0) + - React-cxxreact (= 0.74.0-rc.0) + - React-jsi (= 0.74.0-rc.0) + - React-logger (= 0.74.0-rc.0) + - React-perflogger (= 0.74.0-rc.0) + - ReactCommon/turbomodule/bridging (= 0.74.0-rc.0) + - ReactCommon/turbomodule/core (= 0.74.0-rc.0) + - ReactCommon/turbomodule/bridging (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 1000.0.0) - - React-cxxreact (= 1000.0.0) - - React-jsi (= 1000.0.0) - - React-logger (= 1000.0.0) - - React-perflogger (= 1000.0.0) - - ReactCommon/turbomodule/core (1000.0.0): + - React-callinvoker (= 0.74.0-rc.0) + - React-cxxreact (= 0.74.0-rc.0) + - React-jsi (= 0.74.0-rc.0) + - React-logger (= 0.74.0-rc.0) + - React-perflogger (= 0.74.0-rc.0) + - ReactCommon/turbomodule/core (0.74.0-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 1000.0.0) - - React-cxxreact (= 1000.0.0) - - React-debug (= 1000.0.0) - - React-jsi (= 1000.0.0) - - React-logger (= 1000.0.0) - - React-perflogger (= 1000.0.0) + - React-callinvoker (= 0.74.0-rc.0) + - React-cxxreact (= 0.74.0-rc.0) + - React-debug (= 0.74.0-rc.0) + - React-jsi (= 0.74.0-rc.0) + - React-logger (= 0.74.0-rc.0) + - React-perflogger (= 0.74.0-rc.0) + - React-utils (= 0.74.0-rc.0) - ScreenshotManager (0.0.1): - DoubleConversion - glog @@ -1350,7 +1360,7 @@ EXTERNAL SOURCES: :podspec: "../react-native/third-party-podspecs/glog.podspec" hermes-engine: :podspec: "../react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: '' + :tag: hermes-2024-02-20-RNv0.74.0-999cfd9979b5f57b1269119679ab8cdf60897de9 MyNativeView: :path: NativeComponentExample NativeCxxModuleExample: @@ -1463,66 +1473,66 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: f4492a543c5a8fa1502d3a5867e3f7252497cfe8 + FBLazyVector: 38be8de494215d8179c20322a68355e7c8ca4eb0 fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: b6ed6780e02b97c31d4d84407f579e3523177780 - MyNativeView: 08e59984e995c857953374e22082d058be3cb945 - NativeCxxModuleExample: 51569707f2da9a460d1ebf74a29d02f0a86c549e + hermes-engine: cf542ce967a8c5c5125180003ea8850a0392c8a3 + MyNativeView: b7ba0b5c94be5e9c4b2ce4887bb5f511a7c8970c + NativeCxxModuleExample: c152bfeb11e2c53cdd56ffc2bafa94970ea5d195 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df - RCTDeprecation: 3808e36294137f9ee5668f4df2e73dc079cd1dcf - RCTRequired: 82c56a03b3efd524bfdb581a906add903f78f978 - RCTTypeSafety: 5f57d4ae5dfafc85a0f575d756c909b584722c52 - React: cb6dc75e09f32aeddb4d8fb58a394a67219a92fe - React-callinvoker: bae59cbd6affd712bbfc703839dad868ff35069d - React-Codegen: b66fa3765bc7a786e88e56ff92459a41dec00b0f - React-Core: 738c8db837b21aae813479f2eb284d5507a5c256 - React-CoreModules: 0b94c427e958c1b7ce268d03aa39a1f424d76901 - React-cxxreact: dadc89738f0089c3e2b85f36de940a088759b20d - React-debug: 4097205dd5ff0ada516e7df5b6721a9464a6f20b - React-Fabric: a3214cc064ca25e029aff0a42e2beb8c87b71861 - React-FabricImage: 6daf9bcd047ac1c424cfd7cae298089f8d495761 - React-featureflags: 36f601a77af59dca45877a298c804883dd04f8d0 - React-graphics: 8d54d923bef33e9f423d06c4fd51431f917a4b2f - React-hermes: 14e7007ebbfcc9f674c9c4f3ac768aa587b6da79 - React-ImageManager: 44304168f3ec4733a0191dadee7b1711291272f4 - React-jserrorhandler: 2809ae4d87fb880d2c18be72bcaed114e79f3993 - React-jsi: b7645527d3f77afdea4365488e47dbc5b293177f - React-jsiexecutor: 42eeb6b4e73e1b50caa3940ad0189171723c6b29 - React-jsinspector: 363ee50f69cb39cc2ee4eef0705f2fc4a33f83f3 - React-jsitracing: 46474207a88a3978c08e191d9cf33a6457722d65 - React-logger: 8486d7a1d32b972414b1d34a93470ee2562c6ee2 - React-Mapbuffer: 9d18546228182de42aae8cb047baa5e14886a922 - React-nativeconfig: a5a38eee09c6a57824489bf9005d46d2e3fbb78b - React-NativeModulesApple: ff03b94214a1628f920b43bb64964860fc227f9f - React-perflogger: 70d009f755dd10002183454cdf5ad9b22de4a1d7 - React-RCTActionSheet: 943bd5f540f3af1e5a149c13c4de81858edf718a - React-RCTAnimation: 07583f0ebfa7154f0e696a75c32a8f8b180fc8c5 - React-RCTAppDelegate: 60cfe221df61de818f6e6b200ff55b4346e6ea7c - React-RCTBlob: 2dbf6931deac47ff5d3910e4c81cdd856ea239d6 - React-RCTFabric: e613b7e4aec23114ee6999295ca97b3f0508ee0f - React-RCTImage: 8f46d82257827c2332bc4108fddef1a840f440a7 - React-RCTLinking: efa67827466e50e07c5471447c12e474cbc5e336 - React-RCTNetwork: a80529d2d90f79caa5e31d49e840735a10d6d91a - React-RCTPushNotification: c34ef3969207da3ddc777f36a252f99754b89e2d - React-RCTSettings: 39ca10f68da0ec88a63c33152d43c222c8c38119 - React-RCTTest: 3b9f62c66c3814ccace402441597160aefc9e812 - React-RCTText: d9925903524a7b179cf7803162a98038e0bfb4fd - React-RCTVibration: 33bef249bc4a637ed91bf1cf0d94d9329381dc7b - React-rendererdebug: bc0f2a1816a4607e85ed603170a413c44c1d2635 - React-rncore: 79f594bc32c96203ab607bd9868ec76caa2f290c - React-RuntimeApple: 504b50d20ddf82de9c2c527c6b5a09119e03b737 - React-RuntimeCore: 9dc8d98bc09b0797c2dca7a30be5e8f84ecf5746 - React-runtimeexecutor: e1c32bc249dd3cf3919cb4664fd8dc84ef70cff7 - React-RuntimeHermes: b1f60690c9ed90d448f1325355f72c662c02e49a - React-runtimescheduler: 0df238ee8e88e1b8874d332856ee7d36870be4ad - React-utils: 00c57742056c9c90e58b1a8cd06ca50d30528d6f - ReactCommon: 4148a8bfb8bbfdbea8f517f98cadeeb0f30c8de8 - ReactCommon-Samples: 5d703e2b5e1c8ddb812e7b7cace5a8effbcc6438 - ScreenshotManager: 823189e19d4e6f7d4792fe1db6b037df7efc2fab + RCTDeprecation: bccbca65e11d68b03947e878ffbbb298a5835ed7 + RCTRequired: dc19ffec0357d0adeb1edc14e8d86ab8004b5216 + RCTTypeSafety: 169e6987904e04c53a4e07b4fd4ad7be9ad9474b + React: 493aef2701fc3b47a2d97a307291df5889620a4c + React-callinvoker: 7d18a32af8043934583d292c4372ca3181300bfe + React-Codegen: f1c25f1e4b8e55f3ce2a584a0060410b979295f6 + React-Core: 119d197a0f4d274d82f48e63cf1536b3c1bef013 + React-CoreModules: 52bc9a79dc8a8fda7afe58e726364f6cae87541a + React-cxxreact: 65a538a490488192e920bcad393d18522ec83f2b + React-debug: 7479ed53271b61e4e9e7915f638e744860728df9 + React-Fabric: 58daa44db87a588e2159789be6f149dc503a2afc + React-FabricImage: 7505aaa1768d83f2a9b56d3237058c3767dca4d1 + React-featureflags: 3248f548454ec9cae2e3c15e625953bf6b82e5b5 + React-graphics: d258e1136f82e037c1ea7f0985e22529c17d2412 + React-hermes: 303d6e1e08ab691090c4695903c778282b159c69 + React-ImageManager: 24db2feae5016ee4e4841beb89ceb3acd0dee95a + React-jserrorhandler: ffa0631c9f21551efb23594c5b2ea6ca5761f5a0 + React-jsi: a4682ba91c0453da593ae69810a40e98bca2bb49 + React-jsiexecutor: 0004241f825bd16746dde407448106300ad42073 + React-jsinspector: 587100238e6453d791c48eeaa7c0f8b3d95682d3 + React-jsitracing: 2088b3ce5562f8aeaffa3260a155a0b552f4a271 + React-logger: bd784d819f7a1b29c34c2b7ff26a41953534bbe2 + React-Mapbuffer: f3cd4be9e60fff10948482caed24bbe071df0ed1 + React-nativeconfig: bb949028193e2be7d0917fdd4644ea14269ddb62 + React-NativeModulesApple: f26a759a985152aa62d1de53acaa0c5e81bb94d7 + React-perflogger: 7b860b85fe7f2feaec62e50a71fccd4a11dabce7 + React-RCTActionSheet: 57197bc7fd699d88b2bced8f9922fd6f0a8ac492 + React-RCTAnimation: cc6c3ed9f92622081d37c67376605e960318351f + React-RCTAppDelegate: 7908de20a7b9f0004e675a91573ef0b6829836d0 + React-RCTBlob: ac46d8d8cd219b99f9e3fbbd244a3667791ba7e2 + React-RCTFabric: af5a886170592c10e0f233841481f688e2514ccd + React-RCTImage: d9d6583a60233914a929a033e7af1d88ab55860a + React-RCTLinking: 44664f23cb5ee9bbf6fcc920ce04b4dc77f77a72 + React-RCTNetwork: 8e6002339336b6a743dc5befe9dca8586ae5ef44 + React-RCTPushNotification: 95daf3bbdafa1730a8ca29ea3aa9b3b7cb359d42 + React-RCTSettings: 3372ab3845dd6beae89b6b813dddf093a26972e7 + React-RCTTest: e3366f0b31beb75139ed28e22ebc16837188f98d + React-RCTText: 4b5cd2e4cfc64d9f44ecb4d650ad1604d9d77965 + React-RCTVibration: 1a3d472bbff814f6c24be1f08244754ac686b630 + React-rendererdebug: ae01135fb2535ecfc471482aaafe63259baec2b5 + React-rncore: 45b833e98acea52fbe65862eebd80563a5f58444 + React-RuntimeApple: 4020192c72d0cc76460b525a242b3608c34ce919 + React-RuntimeCore: fbef5c7f69df79d81f9cb0c7ad84d59059efaf72 + React-runtimeexecutor: 887bb9337ac1bcf990f653d92d90a9f6e7b0e63f + React-RuntimeHermes: b8e2572953b8d7dd9b27b3214a1d988e765a996e + React-runtimescheduler: 137c7a2df9b44e5fa2ee777ebdbfc5e929eb9185 + React-utils: 998100724451cf5caa35bf9c549281e7e29a7ee2 + ReactCommon: e98e1385aa810da006373ac79b78be9ee82fcdbd + ReactCommon-Samples: 0e2eb96235acf19c9c54943f2d4e052a9b9f4172 + ScreenshotManager: 8584ded316377154f7cc19d5ef15e7c94ce04466 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: 53e99e2a727b8498ea9e8aed8d917b808c9ff2ea + Yoga: 029d14b603bd8ec20dc5e43cf11541457011ec00 PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf diff --git a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj index edfdf6aa584cb7..037fe4f26a86c7 100644 --- a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj +++ b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - 00915AE8006CF5DB156153DD /* Pods_RNTester.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9DA138FE541ED31A6C589D7 /* Pods_RNTester.framework */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 2DDEF0101F84BF7B00DBDF73 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2DDEF00F1F84BF7B00DBDF73 /* Images.xcassets */; }; 383889DA23A7398900D06C3E /* RCTConvert_UIColorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 383889D923A7398900D06C3E /* RCTConvert_UIColorTests.m */; }; 3D2AFAF51D646CF80089D1A3 /* legacy_image@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3D2AFAF41D646CF80089D1A3 /* legacy_image@2x.png */; }; + 54DAEFC777EF7A9E22099B94 /* libPods-RNTesterIntegrationTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9368D28C48530F880026CC0B /* libPods-RNTesterIntegrationTests.a */; }; 5C60EB1C226440DB0018C04F /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C60EB1B226440DB0018C04F /* AppDelegate.mm */; }; 8145AE06241172D900A3F8DA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8145AE05241172D900A3F8DA /* LaunchScreen.storyboard */; }; 832F45BB2A8A6E1F0097B4E6 /* SwiftTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832F45BA2A8A6E1F0097B4E6 /* SwiftTest.swift */; }; - 836E54623F6567BB812F3F6A /* Pods_RNTesterUnitTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B5084412F9118F6F7FA99DA /* Pods_RNTesterUnitTests.framework */; }; + 912B05F7071A5E728F4FCB06 /* libPods-RNTester.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 88A9803AE5329EAB6C8B76DA /* libPods-RNTester.a */; }; CD10C7A5290BD4EB0033E1ED /* RCTEventEmitterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CD10C7A4290BD4EB0033E1ED /* RCTEventEmitterTests.m */; }; E62F11832A5C6580000BF1C8 /* FlexibleSizeExampleView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 27F441E81BEBE5030039B79C /* FlexibleSizeExampleView.mm */; }; E62F11842A5C6584000BF1C8 /* UpdatePropertiesExampleView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 272E6B3C1BEA849E001FCF37 /* UpdatePropertiesExampleView.mm */; }; @@ -55,7 +55,7 @@ E7DB216422B2F3EC005AC45F /* RCTUIManagerScenarioTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E7DB215F22B2F3EC005AC45F /* RCTUIManagerScenarioTests.m */; }; E7DB216722B2F69F005AC45F /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7DB213022B2C649005AC45F /* JavaScriptCore.framework */; }; E7DB218C22B41FCD005AC45F /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7DB218B22B41FCD005AC45F /* XCTest.framework */; }; - FA45ED19FFAECF4CFEFE0DC7 /* Pods_RNTesterIntegrationTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 87E71F82CA94BF2D3CA3110A /* Pods_RNTesterIntegrationTests.framework */; }; + E90FBDC7517BC8FEF761521D /* libPods-RNTesterUnitTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 90C5823BEF0D3A36982EFD41 /* libPods-RNTesterUnitTests.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -88,15 +88,16 @@ 2DDEF00F1F84BF7B00DBDF73 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = RNTester/Images.xcassets; sourceTree = ""; }; 359825B9A5AE4A3F4AA612DD /* Pods-RNTesterUnitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterUnitTests.debug.xcconfig"; path = "Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests.debug.xcconfig"; sourceTree = ""; }; 383889D923A7398900D06C3E /* RCTConvert_UIColorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTConvert_UIColorTests.m; sourceTree = ""; }; - 3B5084412F9118F6F7FA99DA /* Pods_RNTesterUnitTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RNTesterUnitTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3D2AFAF41D646CF80089D1A3 /* legacy_image@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "legacy_image@2x.png"; path = "RNTester/legacy_image@2x.png"; sourceTree = ""; }; 5C60EB1B226440DB0018C04F /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = RNTester/AppDelegate.mm; sourceTree = ""; }; 66C3087F2D5BF762FE9E6422 /* Pods-RNTesterIntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterIntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests.debug.xcconfig"; sourceTree = ""; }; 7CDA7A212644C6BB8C0D00D8 /* Pods-RNTesterIntegrationTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterIntegrationTests.release.xcconfig"; path = "Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests.release.xcconfig"; sourceTree = ""; }; 8145AE05241172D900A3F8DA /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = RNTester/LaunchScreen.storyboard; sourceTree = ""; }; 832F45BA2A8A6E1F0097B4E6 /* SwiftTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SwiftTest.swift; path = RNTester/SwiftTest.swift; sourceTree = ""; }; - 87E71F82CA94BF2D3CA3110A /* Pods_RNTesterIntegrationTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RNTesterIntegrationTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 88A9803AE5329EAB6C8B76DA /* libPods-RNTester.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTester.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 8BFB9C61D7BDE894E24BF24F /* Pods-RNTesterUnitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterUnitTests.release.xcconfig"; path = "Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests.release.xcconfig"; sourceTree = ""; }; + 90C5823BEF0D3A36982EFD41 /* libPods-RNTesterUnitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTesterUnitTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9368D28C48530F880026CC0B /* libPods-RNTesterIntegrationTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTesterIntegrationTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 9B8542B8C590B51BD0588751 /* Pods-RNTester.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTester.release.xcconfig"; path = "Target Support Files/Pods-RNTester/Pods-RNTester.release.xcconfig"; sourceTree = ""; }; AC474BFB29BBD4A1002BDAED /* RNTester.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; name = RNTester.xctestplan; path = RNTester/RNTester.xctestplan; sourceTree = ""; }; CD10C7A4290BD4EB0033E1ED /* RCTEventEmitterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTEventEmitterTests.m; sourceTree = ""; }; @@ -161,7 +162,6 @@ E7DB215E22B2F3EC005AC45F /* RCTLoggingTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTLoggingTests.m; sourceTree = ""; }; E7DB215F22B2F3EC005AC45F /* RCTUIManagerScenarioTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTUIManagerScenarioTests.m; sourceTree = ""; }; E7DB218B22B41FCD005AC45F /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = XCTest.framework; sourceTree = DEVELOPER_DIR; }; - F9DA138FE541ED31A6C589D7 /* Pods_RNTester.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RNTester.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -169,7 +169,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 00915AE8006CF5DB156153DD /* Pods_RNTester.framework in Frameworks */, + 912B05F7071A5E728F4FCB06 /* libPods-RNTester.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -178,7 +178,7 @@ buildActionMask = 2147483647; files = ( E7DB213122B2C649005AC45F /* JavaScriptCore.framework in Frameworks */, - 836E54623F6567BB812F3F6A /* Pods_RNTesterUnitTests.framework in Frameworks */, + E90FBDC7517BC8FEF761521D /* libPods-RNTesterUnitTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -188,7 +188,7 @@ files = ( E7DB218C22B41FCD005AC45F /* XCTest.framework in Frameworks */, E7DB216722B2F69F005AC45F /* JavaScriptCore.framework in Frameworks */, - FA45ED19FFAECF4CFEFE0DC7 /* Pods_RNTesterIntegrationTests.framework in Frameworks */, + 54DAEFC777EF7A9E22099B94 /* libPods-RNTesterIntegrationTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -258,9 +258,9 @@ E7DB211822B2BD53005AC45F /* libReact-RCTText.a */, E7DB211A22B2BD53005AC45F /* libReact-RCTVibration.a */, E7DB212222B2BD53005AC45F /* libyoga.a */, - F9DA138FE541ED31A6C589D7 /* Pods_RNTester.framework */, - 87E71F82CA94BF2D3CA3110A /* Pods_RNTesterIntegrationTests.framework */, - 3B5084412F9118F6F7FA99DA /* Pods_RNTesterUnitTests.framework */, + 88A9803AE5329EAB6C8B76DA /* libPods-RNTester.a */, + 9368D28C48530F880026CC0B /* libPods-RNTesterIntegrationTests.a */, + 90C5823BEF0D3A36982EFD41 /* libPods-RNTesterUnitTests.a */, ); name = Frameworks; sourceTree = ""; @@ -943,6 +943,8 @@ OTHER_LDFLAGS = ( "-ObjC", "-lc++", + "-Wl", + "-ld_classic", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../react-native"; SDKROOT = iphoneos; @@ -1035,6 +1037,8 @@ OTHER_LDFLAGS = ( "-ObjC", "-lc++", + "-Wl", + "-ld_classic", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../react-native"; SDKROOT = iphoneos; From 341fbe5486881dc5003c6c8b9efb3068ac5a4dbb Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Wed, 21 Feb 2024 13:18:46 +0000 Subject: [PATCH 004/223] [RN][Release] Fix release testing script --- scripts/e2e/init-template-e2e.js | 38 ++++++++++++----------- scripts/release-testing/test-e2e-local.js | 16 ++++++++-- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/scripts/e2e/init-template-e2e.js b/scripts/e2e/init-template-e2e.js index 49542fcb730dad..38e9cca1ca026e 100644 --- a/scripts/e2e/init-template-e2e.js +++ b/scripts/e2e/init-template-e2e.js @@ -22,6 +22,8 @@ const { const {parseArgs} = require('@pkgjs/parseargs'); const chalk = require('chalk'); const {execSync} = require('child_process'); +const {promises: fs} = require('fs'); +const path = require('path'); const config = { options: { @@ -64,6 +66,10 @@ async function main() { } await initNewProjectFromSource(options); + + // TODO(T179377112): Fix memory leak from `spawn` in `setupVerdaccio` (above + // kill command does not wait for kill success). + process.exit(0); } async function initNewProjectFromSource( @@ -119,48 +125,44 @@ async function initNewProjectFromSource( { // Avoid loading packages/react-native/react-native.config.js cwd: REPO_ROOT, - stdio: verbose ? 'inherit' : [process.stderr], + stdio: 'inherit', }, ); console.log('\nDone ✅'); console.log('Installing project dependencies'); - await runYarnUsingProxy(directory); + await installProjectUsingProxy(directory); console.log('Done ✅'); } catch (e) { console.log('Failed ❌'); throw e; } finally { console.log(`Cleanup: Killing Verdaccio process (PID: ${verdaccioPid})`); - execSync(`kill -9 ${verdaccioPid}`); - console.log('Done ✅'); + try { + execSync(`kill -9 ${verdaccioPid}`); + console.log('Done ✅'); + } catch { + console.warn('Failed to kill Verdaccio process'); + } console.log('Cleanup: Removing Verdaccio storage directory'); execSync(`rm -rf ${VERDACCIO_STORAGE_PATH}`); console.log('Done ✅'); - - // TODO(huntie): Fix memory leak from `spawn` in `setupVerdaccio` (above - // kill command does not wait for kill success). - process.exit(0); } } -async function runYarnUsingProxy(cwd /*: string */) { +async function installProjectUsingProxy(cwd /*: string */) { const execOptions = { cwd, stdio: 'inherit', }; - execSync( - `yarn config set npmRegistryServer "${VERDACCIO_SERVER_URL}"`, - execOptions, - ); - execSync( - 'yarn config set unsafeHttpWhitelist --json \'["localhost"]\'', - execOptions, - ); // TODO(huntie): Review pre-existing retry limit - const success = await retry('yarn', execOptions, 3, 500, ['install']); + const success = await retry('npm', execOptions, 3, 500, [ + 'install', + '--registry', + VERDACCIO_SERVER_URL, + ]); if (!success) { throw new Error('Failed to install project dependencies'); diff --git a/scripts/release-testing/test-e2e-local.js b/scripts/release-testing/test-e2e-local.js index fbdd376f291a77..01efa244a5bb3e 100644 --- a/scripts/release-testing/test-e2e-local.js +++ b/scripts/release-testing/test-e2e-local.js @@ -27,6 +27,7 @@ const { prepareArtifacts, setupCircleCIArtifacts, } = require('./utils/testing-utils'); +const chalk = require('chalk'); const debug = require('debug')('test-e2e-local'); const fs = require('fs'); const path = require('path'); @@ -301,10 +302,10 @@ async function testRNTestProject( ); cd('..'); - exec('yarn ios'); + exec('npm run ios'); } else { // android - exec('yarn android'); + exec('npm run android'); } popd(); } @@ -329,7 +330,7 @@ async function main() { let circleCIArtifacts = await setupCircleCIArtifacts( // $FlowIgnoreError[prop-missing] - argv.circleCIToken, + argv.circleciToken, branchName, ); @@ -337,6 +338,15 @@ async function main() { await testRNTester(circleCIArtifacts, onReleaseBranch); } else { await testRNTestProject(circleCIArtifacts); + + console.warn( + chalk.yellow(` +================================================================================ +NOTE: Verdaccio may still be running on after this script has finished. Please +Force Quit via Activity Monitor. +================================================================================ + `), + ); } } From 4def40ee33f9342a25b263f95b99f2b6091bf6da Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Tue, 20 Feb 2024 08:30:38 -0800 Subject: [PATCH 005/223] Hook the default-app-setup OnLoad.cpp file with the cxxModuleProvider from RNCLI (#43049) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43049 This connects the OnLoad.cpp file used by OSS apps with the `rncli_cxxModuleProvider`. This method is created by the CLI and takes care of querying all the TM CXX Modules discovered and returning them. This PR is currently waiting on https://github.com/react-native-community/cli/pull/2296 Changelog: [Internal] [Changed] - Hook the default-app-setup OnLoad.cpp file with the cxxModuleProvider from RNCLI Reviewed By: cipolleschi Differential Revision: D53812109 fbshipit-source-id: 47bc0ea699516993070cfa0127de97853acf8890 --- .../cmake-utils/default-app-setup/OnLoad.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/react-native/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp b/packages/react-native/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp index d206b123ad44bb..56a38374370ab6 100644 --- a/packages/react-native/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +++ b/packages/react-native/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp @@ -62,8 +62,16 @@ void registerComponents( std::shared_ptr cxxModuleProvider( const std::string& name, const std::shared_ptr& jsInvoker) { - // Not implemented yet: provide pure-C++ NativeModules here. - return nullptr; + // Here you can provide your CXX Turbo Modules coming from + // either your application or from external libraries. The approach to follow + // is similar to the following (for a module called `NativeCxxModuleExample`): + // + // if (name == NativeCxxModuleExample::kModuleName) { + // return std::make_shared(jsInvoker); + // } + + // And we fallback to the CXX module providers autolinked by RN CLI + return rncli_cxxModuleProvider(name, jsInvoker); } std::shared_ptr javaModuleProvider( From 1f7ed063c9a8c6676fdcae428ed7d99474aaaab3 Mon Sep 17 00:00:00 2001 From: Diego Segura Date: Thu, 22 Feb 2024 09:03:03 -0800 Subject: [PATCH 006/223] fix flatlist props being undefined in ios (#43141) Summary: When using Flatlist on iOS and Android its failing because props are undefined The problem is described on https://github.com/facebook/react-native/issues/34783 ![Captura de pantalla 2024-02-22 a las 4 13 11](https://github.com/facebook/react-native/assets/1161455/325738d9-2e49-44a0-bb6a-077b2e02e9cd) ![Captura de pantalla 2024-02-22 a las 4 14 58](https://github.com/facebook/react-native/assets/1161455/118f76e1-a818-428e-938e-123b55536b49) Fixed by setting constructor before any statement and removing unnecessary props declaration at the top of the class. ## Changelog: [GENERAL] [FIXED] - Fix undefined props crash in FlatList Pull Request resolved: https://github.com/facebook/react-native/pull/43141 Reviewed By: javache Differential Revision: D54069559 Pulled By: robhogan fbshipit-source-id: b39cd9a273eb0279ed353f9efcb66a3c4ccf93b4 --- packages/react-native/Libraries/Lists/FlatList.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react-native/Libraries/Lists/FlatList.js b/packages/react-native/Libraries/Lists/FlatList.js index 3d267cb95988ed..f34fe50f8721ee 100644 --- a/packages/react-native/Libraries/Lists/FlatList.js +++ b/packages/react-native/Libraries/Lists/FlatList.js @@ -308,7 +308,6 @@ export type Props = { * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation. */ class FlatList extends React.PureComponent, void> { - props: Props; /** * Scrolls to the end of the content. May be janky without `getItemLayout` prop. */ From fde94ce307038d8b83f32acb6237998c52d76586 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Fri, 23 Feb 2024 10:44:53 -0800 Subject: [PATCH 007/223] Do not crash on onJSBundleLoadedFromServer when fast-refreshing on bridgeless mode Summary: RN-Tester is currently instacrashing on fast-refresh (pressing r on Metro) as it ends up on `onJSBundleLoadedFromServer` which throws an exception on Bridgeless mode. I'm fixing it by following the same logic as `onReloadWithJSDebugger`. Changelog: [Android] [Fixed] - Do not crash on onJSBundleLoadedFromServer when fast-refreshing on bridgeless mode Reviewed By: huntie Differential Revision: D54121838 fbshipit-source-id: 82d98ec0c5b2295f5751525368c956574dd7f3a0 --- .../com/facebook/react/runtime/BridgelessDevSupportManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessDevSupportManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessDevSupportManager.java index 0e424960ddc88e..e71937dd6d7f6f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessDevSupportManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessDevSupportManager.java @@ -119,7 +119,7 @@ public void onReloadWithJSDebugger(JavaJSExecutor.Factory proxyExecutorFactory) @Override public void onJSBundleLoadedFromServer() { - throw new IllegalStateException("Not implemented for bridgeless mode"); + // Not implemented } @Override From b3300d77ea5c09e68d99d33a7d467993adca027e Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Fri, 23 Feb 2024 11:46:14 -0800 Subject: [PATCH 008/223] Remove accidental files included inside the template. Summary: Those files should not stay in the root `/app` folder but inside the `/app/gradle/wrapper` folder. I've noticed this in the Upgrade Helper UI hence I'm removing them. Changelog: [Internal] [Changed] - Remove accidental files included inside the template Reviewed By: mdvacca Differential Revision: D54122995 fbshipit-source-id: 8873a91ffbea20f609c7aabd428a815c77a38db5 --- .../template/android/gradle-wrapper.jar | Bin 43462 -> 0 bytes .../template/android/gradle-wrapper.properties | 7 ------- 2 files changed, 7 deletions(-) delete mode 100644 packages/react-native/template/android/gradle-wrapper.jar delete mode 100644 packages/react-native/template/android/gradle-wrapper.properties diff --git a/packages/react-native/template/android/gradle-wrapper.jar b/packages/react-native/template/android/gradle-wrapper.jar deleted file mode 100644 index d64cd4917707c1f8861d8cb53dd15194d4248596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43462 zcma&NWl&^owk(X(xVyW%ySuwf;qI=D6|RlDJ2cR^yEKh!@I- zp9QeisK*rlxC>+~7Dk4IxIRsKBHqdR9b3+fyL=ynHmIDe&|>O*VlvO+%z5;9Z$|DJ zb4dO}-R=MKr^6EKJiOrJdLnCJn>np?~vU-1sSFgPu;pthGwf}bG z(1db%xwr#x)r+`4AGu$j7~u2MpVs3VpLp|mx&;>`0p0vH6kF+D2CY0fVdQOZ@h;A` z{infNyvmFUiu*XG}RNMNwXrbec_*a3N=2zJ|Wh5z* z5rAX$JJR{#zP>KY**>xHTuw?|-Rg|o24V)74HcfVT;WtQHXlE+_4iPE8QE#DUm%x0 zEKr75ur~W%w#-My3Tj`hH6EuEW+8K-^5P62$7Sc5OK+22qj&Pd1;)1#4tKihi=~8C zHiQSst0cpri6%OeaR`PY>HH_;CPaRNty%WTm4{wDK8V6gCZlG@U3$~JQZ;HPvDJcT1V{ z?>H@13MJcCNe#5z+MecYNi@VT5|&UiN1D4ATT+%M+h4c$t;C#UAs3O_q=GxK0}8%8 z8J(_M9bayxN}69ex4dzM_P3oh@ZGREjVvn%%r7=xjkqxJP4kj}5tlf;QosR=%4L5y zWhgejO=vao5oX%mOHbhJ8V+SG&K5dABn6!WiKl{|oPkq(9z8l&Mm%(=qGcFzI=eLu zWc_oCLyf;hVlB@dnwY98?75B20=n$>u3b|NB28H0u-6Rpl((%KWEBOfElVWJx+5yg z#SGqwza7f}$z;n~g%4HDU{;V{gXIhft*q2=4zSezGK~nBgu9-Q*rZ#2f=Q}i2|qOp z!!y4p)4o=LVUNhlkp#JL{tfkhXNbB=Ox>M=n6soptJw-IDI|_$is2w}(XY>a=H52d z3zE$tjPUhWWS+5h=KVH&uqQS=$v3nRs&p$%11b%5qtF}S2#Pc`IiyBIF4%A!;AVoI zXU8-Rpv!DQNcF~(qQnyyMy=-AN~U>#&X1j5BLDP{?K!%h!;hfJI>$mdLSvktEr*89 zdJHvby^$xEX0^l9g$xW-d?J;L0#(`UT~zpL&*cEh$L|HPAu=P8`OQZV!-}l`noSp_ zQ-1$q$R-gDL)?6YaM!=8H=QGW$NT2SeZlb8PKJdc=F-cT@j7Xags+Pr*jPtlHFnf- zh?q<6;)27IdPc^Wdy-mX%2s84C1xZq9Xms+==F4);O`VUASmu3(RlgE#0+#giLh-& zcxm3_e}n4{%|X zJp{G_j+%`j_q5}k{eW&TlP}J2wtZ2^<^E(O)4OQX8FDp6RJq!F{(6eHWSD3=f~(h} zJXCf7=r<16X{pHkm%yzYI_=VDP&9bmI1*)YXZeB}F? z(%QsB5fo*FUZxK$oX~X^69;x~j7ms8xlzpt-T15e9}$4T-pC z6PFg@;B-j|Ywajpe4~bk#S6(fO^|mm1hKOPfA%8-_iGCfICE|=P_~e;Wz6my&)h_~ zkv&_xSAw7AZ%ThYF(4jADW4vg=oEdJGVOs>FqamoL3Np8>?!W#!R-0%2Bg4h?kz5I zKV-rKN2n(vUL%D<4oj@|`eJ>0i#TmYBtYmfla;c!ATW%;xGQ0*TW@PTlGG><@dxUI zg>+3SiGdZ%?5N=8uoLA|$4isK$aJ%i{hECP$bK{J#0W2gQ3YEa zZQ50Stn6hqdfxJ*9#NuSLwKFCUGk@c=(igyVL;;2^wi4o30YXSIb2g_ud$ zgpCr@H0qWtk2hK8Q|&wx)}4+hTYlf;$a4#oUM=V@Cw#!$(nOFFpZ;0lc!qd=c$S}Z zGGI-0jg~S~cgVT=4Vo)b)|4phjStD49*EqC)IPwyeKBLcN;Wu@Aeph;emROAwJ-0< z_#>wVm$)ygH|qyxZaet&(Vf%pVdnvKWJn9`%DAxj3ot;v>S$I}jJ$FLBF*~iZ!ZXE zkvui&p}fI0Y=IDX)mm0@tAd|fEHl~J&K}ZX(Mm3cm1UAuwJ42+AO5@HwYfDH7ipIc zmI;1J;J@+aCNG1M`Btf>YT>~c&3j~Qi@Py5JT6;zjx$cvOQW@3oQ>|}GH?TW-E z1R;q^QFjm5W~7f}c3Ww|awg1BAJ^slEV~Pk`Kd`PS$7;SqJZNj->it4DW2l15}xP6 zoCl$kyEF%yJni0(L!Z&14m!1urXh6Btj_5JYt1{#+H8w?5QI%% zo-$KYWNMJVH?Hh@1n7OSu~QhSswL8x0=$<8QG_zepi_`y_79=nK=_ZP_`Em2UI*tyQoB+r{1QYZCpb?2OrgUw#oRH$?^Tj!Req>XiE#~B|~ z+%HB;=ic+R@px4Ld8mwpY;W^A%8%l8$@B@1m5n`TlKI6bz2mp*^^^1mK$COW$HOfp zUGTz-cN9?BGEp}5A!mDFjaiWa2_J2Iq8qj0mXzk; z66JBKRP{p%wN7XobR0YjhAuW9T1Gw3FDvR5dWJ8ElNYF94eF3ebu+QwKjtvVu4L zI9ip#mQ@4uqVdkl-TUQMb^XBJVLW(-$s;Nq;@5gr4`UfLgF$adIhd?rHOa%D);whv z=;krPp~@I+-Z|r#s3yCH+c1US?dnm+C*)r{m+86sTJusLdNu^sqLrfWed^ndHXH`m zd3#cOe3>w-ga(Dus_^ppG9AC>Iq{y%%CK+Cro_sqLCs{VLuK=dev>OL1dis4(PQ5R zcz)>DjEkfV+MO;~>VUlYF00SgfUo~@(&9$Iy2|G0T9BSP?&T22>K46D zL*~j#yJ?)^*%J3!16f)@Y2Z^kS*BzwfAQ7K96rFRIh>#$*$_Io;z>ux@}G98!fWR@ zGTFxv4r~v)Gsd|pF91*-eaZ3Qw1MH$K^7JhWIdX%o$2kCbvGDXy)a?@8T&1dY4`;L z4Kn+f%SSFWE_rpEpL9bnlmYq`D!6F%di<&Hh=+!VI~j)2mfil03T#jJ_s?}VV0_hp z7T9bWxc>Jm2Z0WMU?`Z$xE74Gu~%s{mW!d4uvKCx@WD+gPUQ zV0vQS(Ig++z=EHN)BR44*EDSWIyT~R4$FcF*VEY*8@l=218Q05D2$|fXKFhRgBIEE zdDFB}1dKkoO^7}{5crKX!p?dZWNz$m>1icsXG2N+((x0OIST9Zo^DW_tytvlwXGpn zs8?pJXjEG;T@qrZi%#h93?FP$!&P4JA(&H61tqQi=opRzNpm zkrG}$^t9&XduK*Qa1?355wd8G2CI6QEh@Ua>AsD;7oRUNLPb76m4HG3K?)wF~IyS3`fXuNM>${?wmB zpVz;?6_(Fiadfd{vUCBM*_kt$+F3J+IojI;9L(gc9n3{sEZyzR9o!_mOwFC#tQ{Q~ zP3-`#uK#tP3Q7~Q;4H|wjZHO8h7e4IuBxl&vz2w~D8)w=Wtg31zpZhz%+kzSzL*dV zwp@{WU4i;hJ7c2f1O;7Mz6qRKeASoIv0_bV=i@NMG*l<#+;INk-^`5w@}Dj~;k=|}qM1vq_P z|GpBGe_IKq|LNy9SJhKOQ$c=5L{Dv|Q_lZl=-ky*BFBJLW9&y_C|!vyM~rQx=!vun z?rZJQB5t}Dctmui5i31C_;_}CEn}_W%>oSXtt>@kE1=JW*4*v4tPp;O6 zmAk{)m!)}34pTWg8{i>($%NQ(Tl;QC@J@FfBoc%Gr&m560^kgSfodAFrIjF}aIw)X zoXZ`@IsMkc8_=w%-7`D6Y4e*CG8k%Ud=GXhsTR50jUnm+R*0A(O3UKFg0`K;qp1bl z7``HN=?39ic_kR|^R^~w-*pa?Vj#7|e9F1iRx{GN2?wK!xR1GW!qa=~pjJb-#u1K8 zeR?Y2i-pt}yJq;SCiVHODIvQJX|ZJaT8nO+(?HXbLefulKKgM^B(UIO1r+S=7;kLJ zcH}1J=Px2jsh3Tec&v8Jcbng8;V-`#*UHt?hB(pmOipKwf3Lz8rG$heEB30Sg*2rx zV<|KN86$soN(I!BwO`1n^^uF2*x&vJ$2d$>+`(romzHP|)K_KkO6Hc>_dwMW-M(#S zK(~SiXT1@fvc#U+?|?PniDRm01)f^#55;nhM|wi?oG>yBsa?~?^xTU|fX-R(sTA+5 zaq}-8Tx7zrOy#3*JLIIVsBmHYLdD}!0NP!+ITW+Thn0)8SS!$@)HXwB3tY!fMxc#1 zMp3H?q3eD?u&Njx4;KQ5G>32+GRp1Ee5qMO0lZjaRRu&{W<&~DoJNGkcYF<5(Ab+J zgO>VhBl{okDPn78<%&e2mR{jwVCz5Og;*Z;;3%VvoGo_;HaGLWYF7q#jDX=Z#Ml`H z858YVV$%J|e<1n`%6Vsvq7GmnAV0wW4$5qQ3uR@1i>tW{xrl|ExywIc?fNgYlA?C5 zh$ezAFb5{rQu6i7BSS5*J-|9DQ{6^BVQ{b*lq`xS@RyrsJN?-t=MTMPY;WYeKBCNg z^2|pN!Q^WPJuuO4!|P@jzt&tY1Y8d%FNK5xK(!@`jO2aEA*4 zkO6b|UVBipci?){-Ke=+1;mGlND8)6+P;8sq}UXw2hn;fc7nM>g}GSMWu&v&fqh

iViYT=fZ(|3Ox^$aWPp4a8h24tD<|8-!aK0lHgL$N7Efw}J zVIB!7=T$U`ao1?upi5V4Et*-lTG0XvExbf!ya{cua==$WJyVG(CmA6Of*8E@DSE%L z`V^$qz&RU$7G5mg;8;=#`@rRG`-uS18$0WPN@!v2d{H2sOqP|!(cQ@ zUHo!d>>yFArLPf1q`uBvY32miqShLT1B@gDL4XoVTK&@owOoD)OIHXrYK-a1d$B{v zF^}8D3Y^g%^cnvScOSJR5QNH+BI%d|;J;wWM3~l>${fb8DNPg)wrf|GBP8p%LNGN# z3EaIiItgwtGgT&iYCFy9-LG}bMI|4LdmmJt@V@% zb6B)1kc=T)(|L@0;wr<>=?r04N;E&ef+7C^`wPWtyQe(*pD1pI_&XHy|0gIGHMekd zF_*M4yi6J&Z4LQj65)S zXwdM{SwUo%3SbPwFsHgqF@V|6afT|R6?&S;lw=8% z3}@9B=#JI3@B*#4s!O))~z zc>2_4Q_#&+5V`GFd?88^;c1i7;Vv_I*qt!_Yx*n=;rj!82rrR2rQ8u5(Ejlo{15P% zs~!{%XJ>FmJ})H^I9bn^Re&38H{xA!0l3^89k(oU;bZWXM@kn$#aoS&Y4l^-WEn-fH39Jb9lA%s*WsKJQl?n9B7_~P z-XM&WL7Z!PcoF6_D>V@$CvUIEy=+Z&0kt{szMk=f1|M+r*a43^$$B^MidrT0J;RI` z(?f!O<8UZkm$_Ny$Hth1J#^4ni+im8M9mr&k|3cIgwvjAgjH z8`N&h25xV#v*d$qBX5jkI|xOhQn!>IYZK7l5#^P4M&twe9&Ey@@GxYMxBZq2e7?`q z$~Szs0!g{2fGcp9PZEt|rdQ6bhAgpcLHPz?f-vB?$dc*!9OL?Q8mn7->bFD2Si60* z!O%y)fCdMSV|lkF9w%x~J*A&srMyYY3{=&$}H zGQ4VG_?$2X(0|vT0{=;W$~icCI{b6W{B!Q8xdGhF|D{25G_5_+%s(46lhvNLkik~R z>nr(&C#5wwOzJZQo9m|U<;&Wk!_#q|V>fsmj1g<6%hB{jGoNUPjgJslld>xmODzGjYc?7JSuA?A_QzjDw5AsRgi@Y|Z0{F{!1=!NES-#*f^s4l0Hu zz468))2IY5dmD9pa*(yT5{EyP^G>@ZWumealS-*WeRcZ}B%gxq{MiJ|RyX-^C1V=0 z@iKdrGi1jTe8Ya^x7yyH$kBNvM4R~`fbPq$BzHum-3Zo8C6=KW@||>zsA8-Y9uV5V z#oq-f5L5}V<&wF4@X@<3^C%ptp6+Ce)~hGl`kwj)bsAjmo_GU^r940Z-|`<)oGnh7 zFF0Tde3>ui?8Yj{sF-Z@)yQd~CGZ*w-6p2U<8}JO-sRsVI5dBji`01W8A&3$?}lxBaC&vn0E$c5tW* zX>5(zzZ=qn&!J~KdsPl;P@bmA-Pr8T*)eh_+Dv5=Ma|XSle6t(k8qcgNyar{*ReQ8 zTXwi=8vr>!3Ywr+BhggHDw8ke==NTQVMCK`$69fhzEFB*4+H9LIvdt-#IbhZvpS}} zO3lz;P?zr0*0$%-Rq_y^k(?I{Mk}h@w}cZpMUp|ucs55bcloL2)($u%mXQw({Wzc~ z;6nu5MkjP)0C(@%6Q_I_vsWrfhl7Zpoxw#WoE~r&GOSCz;_ro6i(^hM>I$8y>`!wW z*U^@?B!MMmb89I}2(hcE4zN2G^kwyWCZp5JG>$Ez7zP~D=J^LMjSM)27_0B_X^C(M z`fFT+%DcKlu?^)FCK>QzSnV%IsXVcUFhFdBP!6~se&xxrIxsvySAWu++IrH;FbcY$ z2DWTvSBRfLwdhr0nMx+URA$j3i7_*6BWv#DXfym?ZRDcX9C?cY9sD3q)uBDR3uWg= z(lUIzB)G$Hr!){>E{s4Dew+tb9kvToZp-1&c?y2wn@Z~(VBhqz`cB;{E4(P3N2*nJ z_>~g@;UF2iG{Kt(<1PyePTKahF8<)pozZ*xH~U-kfoAayCwJViIrnqwqO}7{0pHw$ zs2Kx?s#vQr7XZ264>5RNKSL8|Ty^=PsIx^}QqOOcfpGUU4tRkUc|kc7-!Ae6!+B{o~7nFpm3|G5^=0#Bnm6`V}oSQlrX(u%OWnC zoLPy&Q;1Jui&7ST0~#+}I^&?vcE*t47~Xq#YwvA^6^} z`WkC)$AkNub|t@S!$8CBlwbV~?yp&@9h{D|3z-vJXgzRC5^nYm+PyPcgRzAnEi6Q^gslXYRv4nycsy-SJu?lMps-? zV`U*#WnFsdPLL)Q$AmD|0`UaC4ND07+&UmOu!eHruzV|OUox<+Jl|Mr@6~C`T@P%s zW7sgXLF2SSe9Fl^O(I*{9wsFSYb2l%-;&Pi^dpv!{)C3d0AlNY6!4fgmSgj_wQ*7Am7&$z;Jg&wgR-Ih;lUvWS|KTSg!&s_E9_bXBkZvGiC6bFKDWZxsD$*NZ#_8bl zG1P-#@?OQzED7@jlMJTH@V!6k;W>auvft)}g zhoV{7$q=*;=l{O>Q4a@ ziMjf_u*o^PsO)#BjC%0^h>Xp@;5$p{JSYDt)zbb}s{Kbt!T*I@Pk@X0zds6wsefuU zW$XY%yyRGC94=6mf?x+bbA5CDQ2AgW1T-jVAJbm7K(gp+;v6E0WI#kuACgV$r}6L? zd|Tj?^%^*N&b>Dd{Wr$FS2qI#Ucs1yd4N+RBUQiSZGujH`#I)mG&VKoDh=KKFl4=G z&MagXl6*<)$6P}*Tiebpz5L=oMaPrN+caUXRJ`D?=K9!e0f{@D&cZLKN?iNP@X0aF zE(^pl+;*T5qt?1jRC=5PMgV!XNITRLS_=9{CJExaQj;lt!&pdzpK?8p>%Mb+D z?yO*uSung=-`QQ@yX@Hyd4@CI^r{2oiu`%^bNkz+Nkk!IunjwNC|WcqvX~k=><-I3 zDQdbdb|!v+Iz01$w@aMl!R)koD77Xp;eZwzSl-AT zr@Vu{=xvgfq9akRrrM)}=!=xcs+U1JO}{t(avgz`6RqiiX<|hGG1pmop8k6Q+G_mv zJv|RfDheUp2L3=^C=4aCBMBn0aRCU(DQwX-W(RkRwmLeuJYF<0urcaf(=7)JPg<3P zQs!~G)9CT18o!J4{zX{_e}4eS)U-E)0FAt}wEI(c0%HkxgggW;(1E=>J17_hsH^sP z%lT0LGgbUXHx-K*CI-MCrP66UP0PvGqM$MkeLyqHdbgP|_Cm!7te~b8p+e6sQ_3k| zVcwTh6d83ltdnR>D^)BYQpDKlLk3g0Hdcgz2}%qUs9~~Rie)A-BV1mS&naYai#xcZ z(d{8=-LVpTp}2*y)|gR~;qc7fp26}lPcLZ#=JpYcn3AT9(UIdOyg+d(P5T7D&*P}# zQCYplZO5|7+r19%9e`v^vfSS1sbX1c%=w1;oyruXB%Kl$ACgKQ6=qNWLsc=28xJjg zwvsI5-%SGU|3p>&zXVl^vVtQT3o-#$UT9LI@Npz~6=4!>mc431VRNN8od&Ul^+G_kHC`G=6WVWM z%9eWNyy(FTO|A+@x}Ou3CH)oi;t#7rAxdIXfNFwOj_@Y&TGz6P_sqiB`Q6Lxy|Q{`|fgmRG(k+!#b*M+Z9zFce)f-7;?Km5O=LHV9f9_87; zF7%R2B+$?@sH&&-$@tzaPYkw0;=i|;vWdI|Wl3q_Zu>l;XdIw2FjV=;Mq5t1Q0|f< zs08j54Bp`3RzqE=2enlkZxmX6OF+@|2<)A^RNQpBd6o@OXl+i)zO%D4iGiQNuXd+zIR{_lb96{lc~bxsBveIw6umhShTX+3@ZJ=YHh@ zWY3(d0azg;7oHn>H<>?4@*RQbi>SmM=JrHvIG(~BrvI)#W(EAeO6fS+}mxxcc+X~W6&YVl86W9WFSS}Vz-f9vS?XUDBk)3TcF z8V?$4Q)`uKFq>xT=)Y9mMFVTUk*NIA!0$?RP6Ig0TBmUFrq*Q-Agq~DzxjStQyJ({ zBeZ;o5qUUKg=4Hypm|}>>L=XKsZ!F$yNTDO)jt4H0gdQ5$f|d&bnVCMMXhNh)~mN z@_UV6D7MVlsWz+zM+inZZp&P4fj=tm6fX)SG5H>OsQf_I8c~uGCig$GzuwViK54bcgL;VN|FnyQl>Ed7(@>=8$a_UKIz|V6CeVSd2(P z0Uu>A8A+muM%HLFJQ9UZ5c)BSAv_zH#1f02x?h9C}@pN@6{>UiAp>({Fn(T9Q8B z^`zB;kJ5b`>%dLm+Ol}ty!3;8f1XDSVX0AUe5P#@I+FQ-`$(a;zNgz)4x5hz$Hfbg z!Q(z26wHLXko(1`;(BAOg_wShpX0ixfWq3ponndY+u%1gyX)_h=v1zR#V}#q{au6; z!3K=7fQwnRfg6FXtNQmP>`<;!N137paFS%y?;lb1@BEdbvQHYC{976l`cLqn;b8lp zIDY>~m{gDj(wfnK!lpW6pli)HyLEiUrNc%eXTil|F2s(AY+LW5hkKb>TQ3|Q4S9rr zpDs4uK_co6XPsn_z$LeS{K4jFF`2>U`tbgKdyDne`xmR<@6AA+_hPNKCOR-Zqv;xk zu5!HsBUb^!4uJ7v0RuH-7?l?}b=w5lzzXJ~gZcxRKOovSk@|#V+MuX%Y+=;14i*%{)_gSW9(#4%)AV#3__kac1|qUy!uyP{>?U#5wYNq}y$S9pCc zFc~4mgSC*G~j0u#qqp9 z${>3HV~@->GqEhr_Xwoxq?Hjn#=s2;i~g^&Hn|aDKpA>Oc%HlW(KA1?BXqpxB;Ydx)w;2z^MpjJ(Qi(X!$5RC z*P{~%JGDQqojV>2JbEeCE*OEu!$XJ>bWA9Oa_Hd;y)F%MhBRi*LPcdqR8X`NQ&1L# z5#9L*@qxrx8n}LfeB^J{%-?SU{FCwiWyHp682F+|pa+CQa3ZLzBqN1{)h4d6+vBbV zC#NEbQLC;}me3eeYnOG*nXOJZEU$xLZ1<1Y=7r0(-U0P6-AqwMAM`a(Ed#7vJkn6plb4eI4?2y3yOTGmmDQ!z9`wzbf z_OY#0@5=bnep;MV0X_;;SJJWEf^E6Bd^tVJ9znWx&Ks8t*B>AM@?;D4oWUGc z!H*`6d7Cxo6VuyS4Eye&L1ZRhrRmN6Lr`{NL(wDbif|y&z)JN>Fl5#Wi&mMIr5i;x zBx}3YfF>>8EC(fYnmpu~)CYHuHCyr5*`ECap%t@y=jD>!_%3iiE|LN$mK9>- zHdtpy8fGZtkZF?%TW~29JIAfi2jZT8>OA7=h;8T{{k?c2`nCEx9$r zS+*&vt~2o^^J+}RDG@+9&M^K*z4p{5#IEVbz`1%`m5c2};aGt=V?~vIM}ZdPECDI)47|CWBCfDWUbxBCnmYivQ*0Nu_xb*C>~C9(VjHM zxe<*D<#dQ8TlpMX2c@M<9$w!RP$hpG4cs%AI){jp*Sj|*`m)5(Bw*A0$*i-(CA5#%>a)$+jI2C9r6|(>J8InryENI z$NohnxDUB;wAYDwrb*!N3noBTKPpPN}~09SEL18tkG zxgz(RYU_;DPT{l?Q$+eaZaxnsWCA^ds^0PVRkIM%bOd|G2IEBBiz{&^JtNsODs;5z zICt_Zj8wo^KT$7Bg4H+y!Df#3mbl%%?|EXe!&(Vmac1DJ*y~3+kRKAD=Ovde4^^%~ zw<9av18HLyrf*_>Slp;^i`Uy~`mvBjZ|?Ad63yQa#YK`4+c6;pW4?XIY9G1(Xh9WO8{F-Aju+nS9Vmv=$Ac0ienZ+p9*O%NG zMZKy5?%Z6TAJTE?o5vEr0r>f>hb#2w2U3DL64*au_@P!J!TL`oH2r*{>ffu6|A7tv zL4juf$DZ1MW5ZPsG!5)`k8d8c$J$o;%EIL0va9&GzWvkS%ZsGb#S(?{!UFOZ9<$a| zY|a+5kmD5N&{vRqkgY>aHsBT&`rg|&kezoD)gP0fsNYHsO#TRc_$n6Lf1Z{?+DLziXlHrq4sf(!>O{?Tj;Eh@%)+nRE_2VxbN&&%%caU#JDU%vL3}Cb zsb4AazPI{>8H&d=jUaZDS$-0^AxE@utGs;-Ez_F(qC9T=UZX=>ok2k2 ziTn{K?y~a5reD2A)P${NoI^>JXn>`IeArow(41c-Wm~)wiryEP(OS{YXWi7;%dG9v zI?mwu1MxD{yp_rrk!j^cKM)dc4@p4Ezyo%lRN|XyD}}>v=Xoib0gOcdXrQ^*61HNj z=NP|pd>@yfvr-=m{8$3A8TQGMTE7g=z!%yt`8`Bk-0MMwW~h^++;qyUP!J~ykh1GO z(FZ59xuFR$(WE;F@UUyE@Sp>`aVNjyj=Ty>_Vo}xf`e7`F;j-IgL5`1~-#70$9_=uBMq!2&1l zomRgpD58@)YYfvLtPW}{C5B35R;ZVvB<<#)x%srmc_S=A7F@DW8>QOEGwD6suhwCg z>Pa+YyULhmw%BA*4yjDp|2{!T98~<6Yfd(wo1mQ!KWwq0eg+6)o1>W~f~kL<-S+P@$wx*zeI|1t7z#Sxr5 zt6w+;YblPQNplq4Z#T$GLX#j6yldXAqj>4gAnnWtBICUnA&-dtnlh=t0Ho_vEKwV` z)DlJi#!@nkYV#$!)@>udAU*hF?V`2$Hf=V&6PP_|r#Iv*J$9)pF@X3`k;5})9^o4y z&)~?EjX5yX12O(BsFy-l6}nYeuKkiq`u9145&3Ssg^y{5G3Pse z9w(YVa0)N-fLaBq1`P!_#>SS(8fh_5!f{UrgZ~uEdeMJIz7DzI5!NHHqQtm~#CPij z?=N|J>nPR6_sL7!f4hD_|KH`vf8(Wpnj-(gPWH+ZvID}%?~68SwhPTC3u1_cB`otq z)U?6qo!ZLi5b>*KnYHWW=3F!p%h1;h{L&(Q&{qY6)_qxNfbP6E3yYpW!EO+IW3?@J z);4>g4gnl^8klu7uA>eGF6rIGSynacogr)KUwE_R4E5Xzi*Qir@b-jy55-JPC8c~( zo!W8y9OGZ&`xmc8;=4-U9=h{vCqfCNzYirONmGbRQlR`WWlgnY+1wCXbMz&NT~9*| z6@FrzP!LX&{no2!Ln_3|I==_4`@}V?4a;YZKTdw;vT<+K+z=uWbW(&bXEaWJ^W8Td z-3&1bY^Z*oM<=M}LVt>_j+p=2Iu7pZmbXrhQ_k)ysE9yXKygFNw$5hwDn(M>H+e1&9BM5!|81vd%r%vEm zqxY3?F@fb6O#5UunwgAHR9jp_W2zZ}NGp2%mTW@(hz7$^+a`A?mb8|_G*GNMJ) zjqegXQio=i@AINre&%ofexAr95aop5C+0MZ0m-l=MeO8m3epm7U%vZB8+I+C*iNFM z#T3l`gknX;D$-`2XT^Cg*vrv=RH+P;_dfF++cP?B_msQI4j+lt&rX2)3GaJx%W*Nn zkML%D{z5tpHH=dksQ*gzc|}gzW;lwAbxoR07VNgS*-c3d&8J|;@3t^ zVUz*J*&r7DFRuFVDCJDK8V9NN5hvpgGjwx+5n)qa;YCKe8TKtdnh{I7NU9BCN!0dq zczrBk8pE{{@vJa9ywR@mq*J=v+PG;?fwqlJVhijG!3VmIKs>9T6r7MJpC)m!Tc#>g zMtVsU>wbwFJEfwZ{vB|ZlttNe83)$iz`~#8UJ^r)lJ@HA&G#}W&ZH*;k{=TavpjWE z7hdyLZPf*X%Gm}i`Y{OGeeu^~nB8=`{r#TUrM-`;1cBvEd#d!kPqIgYySYhN-*1;L z^byj%Yi}Gx)Wnkosi337BKs}+5H5dth1JA{Ir-JKN$7zC)*}hqeoD(WfaUDPT>0`- z(6sa0AoIqASwF`>hP}^|)a_j2s^PQn*qVC{Q}htR z5-)duBFXT_V56-+UohKXlq~^6uf!6sA#ttk1o~*QEy_Y-S$gAvq47J9Vtk$5oA$Ct zYhYJ@8{hsC^98${!#Ho?4y5MCa7iGnfz}b9jE~h%EAAv~Qxu)_rAV;^cygV~5r_~?l=B`zObj7S=H=~$W zPtI_m%g$`kL_fVUk9J@>EiBH zOO&jtn~&`hIFMS5S`g8w94R4H40mdNUH4W@@XQk1sr17b{@y|JB*G9z1|CrQjd+GX z6+KyURG3;!*BQrentw{B2R&@2&`2}n(z-2&X7#r!{yg@Soy}cRD~j zj9@UBW+N|4HW4AWapy4wfUI- zZ`gSL6DUlgj*f1hSOGXG0IVH8HxK?o2|3HZ;KW{K+yPAlxtb)NV_2AwJm|E)FRs&& z=c^e7bvUsztY|+f^k7NXs$o1EUq>cR7C0$UKi6IooHWlK_#?IWDkvywnzg&ThWo^? z2O_N{5X39#?eV9l)xI(>@!vSB{DLt*oY!K1R8}_?%+0^C{d9a%N4 zoxHVT1&Lm|uDX%$QrBun5e-F`HJ^T$ zmzv)p@4ZHd_w9!%Hf9UYNvGCw2TTTbrj9pl+T9%-_-}L(tES>Or-}Z4F*{##n3~L~TuxjirGuIY#H7{%$E${?p{Q01 zi6T`n;rbK1yIB9jmQNycD~yZq&mbIsFWHo|ZAChSFPQa<(%d8mGw*V3fh|yFoxOOiWJd(qvVb!Z$b88cg->N=qO*4k~6;R==|9ihg&riu#P~s4Oap9O7f%crSr^rljeIfXDEg>wi)&v*a%7zpz<9w z*r!3q9J|390x`Zk;g$&OeN&ctp)VKRpDSV@kU2Q>jtok($Y-*x8_$2piTxun81@vt z!Vj?COa0fg2RPXMSIo26T=~0d`{oGP*eV+$!0I<(4azk&Vj3SiG=Q!6mX0p$z7I}; z9BJUFgT-K9MQQ-0@Z=^7R<{bn2Fm48endsSs`V7_@%8?Bxkqv>BDoVcj?K#dV#uUP zL1ND~?D-|VGKe3Rw_7-Idpht>H6XRLh*U7epS6byiGvJpr%d}XwfusjH9g;Z98H`x zyde%%5mhGOiL4wljCaWCk-&uE4_OOccb9c!ZaWt4B(wYl!?vyzl%7n~QepN&eFUrw zFIOl9c({``6~QD+43*_tzP{f2x41h(?b43^y6=iwyB)2os5hBE!@YUS5?N_tXd=h( z)WE286Fbd>R4M^P{!G)f;h<3Q>Fipuy+d2q-)!RyTgt;wr$(?9ox3;q+{E*ZQHhOn;lM`cjnu9 zXa48ks-v(~b*;MAI<>YZH(^NV8vjb34beE<_cwKlJoR;k6lJNSP6v}uiyRD?|0w+X@o1ONrH8a$fCxXpf? z?$DL0)7|X}Oc%h^zrMKWc-NS9I0Utu@>*j}b@tJ=ixQSJ={4@854wzW@E>VSL+Y{i z#0b=WpbCZS>kUCO_iQz)LoE>P5LIG-hv9E+oG}DtlIDF>$tJ1aw9^LuhLEHt?BCj& z(O4I8v1s#HUi5A>nIS-JK{v!7dJx)^Yg%XjNmlkWAq2*cv#tHgz`Y(bETc6CuO1VkN^L-L3j_x<4NqYb5rzrLC-7uOv z!5e`GZt%B782C5-fGnn*GhDF$%(qP<74Z}3xx+{$4cYKy2ikxI7B2N+2r07DN;|-T->nU&!=Cm#rZt%O_5c&1Z%nlWq3TKAW0w zQqemZw_ue--2uKQsx+niCUou?HjD`xhEjjQd3%rrBi82crq*~#uA4+>vR<_S{~5ce z-2EIl?~s z1=GVL{NxP1N3%=AOaC}j_Fv=ur&THz zyO!d9kHq|c73kpq`$+t+8Bw7MgeR5~`d7ChYyGCBWSteTB>8WAU(NPYt2Dk`@#+}= zI4SvLlyk#pBgVigEe`?NG*vl7V6m+<}%FwPV=~PvvA)=#ths==DRTDEYh4V5}Cf$z@#;< zyWfLY_5sP$gc3LLl2x+Ii)#b2nhNXJ{R~vk`s5U7Nyu^3yFg&D%Txwj6QezMX`V(x z=C`{76*mNb!qHHs)#GgGZ_7|vkt9izl_&PBrsu@}L`X{95-2jf99K)0=*N)VxBX2q z((vkpP2RneSIiIUEnGb?VqbMb=Zia+rF~+iqslydE34cSLJ&BJW^3knX@M;t*b=EA zNvGzv41Ld_T+WT#XjDB840vovUU^FtN_)G}7v)1lPetgpEK9YS^OWFkPoE{ovj^=@ zO9N$S=G$1ecndT_=5ehth2Lmd1II-PuT~C9`XVePw$y8J#dpZ?Tss<6wtVglm(Ok7 z3?^oi@pPio6l&!z8JY(pJvG=*pI?GIOu}e^EB6QYk$#FJQ%^AIK$I4epJ+9t?KjqA+bkj&PQ*|vLttme+`9G=L% ziadyMw_7-M)hS(3E$QGNCu|o23|%O+VN7;Qggp?PB3K-iSeBa2b}V4_wY`G1Jsfz4 z9|SdB^;|I8E8gWqHKx!vj_@SMY^hLEIbSMCuE?WKq=c2mJK z8LoG-pnY!uhqFv&L?yEuxo{dpMTsmCn)95xanqBrNPTgXP((H$9N${Ow~Is-FBg%h z53;|Y5$MUN)9W2HBe2TD`ct^LHI<(xWrw}$qSoei?}s)&w$;&!14w6B6>Yr6Y8b)S z0r71`WmAvJJ`1h&poLftLUS6Ir zC$bG9!Im_4Zjse)#K=oJM9mHW1{%l8sz$1o?ltdKlLTxWWPB>Vk22czVt|1%^wnN@*!l)}?EgtvhC>vlHm^t+ogpgHI1_$1ox9e;>0!+b(tBrmXRB`PY1vp-R**8N7 zGP|QqI$m(Rdu#=(?!(N}G9QhQ%o!aXE=aN{&wtGP8|_qh+7a_j_sU5|J^)vxq;# zjvzLn%_QPHZZIWu1&mRAj;Sa_97p_lLq_{~j!M9N^1yp3U_SxRqK&JnR%6VI#^E12 z>CdOVI^_9aPK2eZ4h&^{pQs}xsijXgFYRIxJ~N7&BB9jUR1fm!(xl)mvy|3e6-B3j zJn#ajL;bFTYJ2+Q)tDjx=3IklO@Q+FFM}6UJr6km7hj7th9n_&JR7fnqC!hTZoM~T zBeaVFp%)0cbPhejX<8pf5HyRUj2>aXnXBqDJe73~J%P(2C?-RT{c3NjE`)om! zl$uewSgWkE66$Kb34+QZZvRn`fob~Cl9=cRk@Es}KQm=?E~CE%spXaMO6YmrMl%9Q zlA3Q$3|L1QJ4?->UjT&CBd!~ru{Ih^in&JXO=|<6J!&qp zRe*OZ*cj5bHYlz!!~iEKcuE|;U4vN1rk$xq6>bUWD*u(V@8sG^7>kVuo(QL@Ki;yL zWC!FT(q{E8#on>%1iAS0HMZDJg{Z{^!De(vSIq&;1$+b)oRMwA3nc3mdTSG#3uYO_ z>+x;7p4I;uHz?ZB>dA-BKl+t-3IB!jBRgdvAbW!aJ(Q{aT>+iz?91`C-xbe)IBoND z9_Xth{6?(y3rddwY$GD65IT#f3<(0o#`di{sh2gm{dw*#-Vnc3r=4==&PU^hCv$qd zjw;>i&?L*Wq#TxG$mFIUf>eK+170KG;~+o&1;Tom9}}mKo23KwdEM6UonXgc z!6N(@k8q@HPw{O8O!lAyi{rZv|DpgfU{py+j(X_cwpKqcalcqKIr0kM^%Br3SdeD> zHSKV94Yxw;pjzDHo!Q?8^0bb%L|wC;4U^9I#pd5O&eexX+Im{ z?jKnCcsE|H?{uGMqVie_C~w7GX)kYGWAg%-?8|N_1#W-|4F)3YTDC+QSq1s!DnOML3@d`mG%o2YbYd#jww|jD$gotpa)kntakp#K;+yo-_ZF9qrNZw<%#C zuPE@#3RocLgPyiBZ+R_-FJ_$xP!RzWm|aN)S+{$LY9vvN+IW~Kf3TsEIvP+B9Mtm! zpfNNxObWQpLoaO&cJh5>%slZnHl_Q~(-Tfh!DMz(dTWld@LG1VRF`9`DYKhyNv z2pU|UZ$#_yUx_B_|MxUq^glT}O5Xt(Vm4Mr02><%C)@v;vPb@pT$*yzJ4aPc_FZ3z z3}PLoMBIM>q_9U2rl^sGhk1VUJ89=*?7|v`{!Z{6bqFMq(mYiA?%KbsI~JwuqVA9$H5vDE+VocjX+G^%bieqx->s;XWlKcuv(s%y%D5Xbc9+ zc(_2nYS1&^yL*ey664&4`IoOeDIig}y-E~_GS?m;D!xv5-xwz+G`5l6V+}CpeJDi^ z%4ed$qowm88=iYG+(`ld5Uh&>Dgs4uPHSJ^TngXP_V6fPyl~>2bhi20QB%lSd#yYn zO05?KT1z@?^-bqO8Cg`;ft>ilejsw@2%RR7;`$Vs;FmO(Yr3Fp`pHGr@P2hC%QcA|X&N2Dn zYf`MqXdHi%cGR@%y7Rg7?d3?an){s$zA{!H;Ie5exE#c~@NhQUFG8V=SQh%UxUeiV zd7#UcYqD=lk-}sEwlpu&H^T_V0{#G?lZMxL7ih_&{(g)MWBnCZxtXg znr#}>U^6!jA%e}@Gj49LWG@*&t0V>Cxc3?oO7LSG%~)Y5}f7vqUUnQ;STjdDU}P9IF9d9<$;=QaXc zL1^X7>fa^jHBu_}9}J~#-oz3Oq^JmGR#?GO7b9a(=R@fw@}Q{{@`Wy1vIQ#Bw?>@X z-_RGG@wt|%u`XUc%W{J z>iSeiz8C3H7@St3mOr_mU+&bL#Uif;+Xw-aZdNYUpdf>Rvu0i0t6k*}vwU`XNO2he z%miH|1tQ8~ZK!zmL&wa3E;l?!!XzgV#%PMVU!0xrDsNNZUWKlbiOjzH-1Uoxm8E#r`#2Sz;-o&qcqB zC-O_R{QGuynW14@)7&@yw1U}uP(1cov)twxeLus0s|7ayrtT8c#`&2~Fiu2=R;1_4bCaD=*E@cYI>7YSnt)nQc zohw5CsK%m?8Ack)qNx`W0_v$5S}nO|(V|RZKBD+btO?JXe|~^Qqur%@eO~<8-L^9d z=GA3-V14ng9L29~XJ>a5k~xT2152zLhM*@zlp2P5Eu}bywkcqR;ISbas&#T#;HZSf z2m69qTV(V@EkY(1Dk3`}j)JMo%ZVJ*5eB zYOjIisi+igK0#yW*gBGj?@I{~mUOvRFQR^pJbEbzFxTubnrw(Muk%}jI+vXmJ;{Q6 zrSobKD>T%}jV4Ub?L1+MGOD~0Ir%-`iTnWZN^~YPrcP5y3VMAzQ+&en^VzKEb$K!Q z<7Dbg&DNXuow*eD5yMr+#08nF!;%4vGrJI++5HdCFcGLfMW!KS*Oi@=7hFwDG!h2< zPunUEAF+HncQkbfFj&pbzp|MU*~60Z(|Ik%Tn{BXMN!hZOosNIseT?R;A`W?=d?5X zK(FB=9mZusYahp|K-wyb={rOpdn=@;4YI2W0EcbMKyo~-#^?h`BA9~o285%oY zfifCh5Lk$SY@|2A@a!T2V+{^!psQkx4?x0HSV`(w9{l75QxMk!)U52Lbhn{8ol?S) zCKo*7R(z!uk<6*qO=wh!Pul{(qq6g6xW;X68GI_CXp`XwO zxuSgPRAtM8K7}5E#-GM!*ydOOG_{A{)hkCII<|2=ma*71ci_-}VPARm3crFQjLYV! z9zbz82$|l01mv`$WahE2$=fAGWkd^X2kY(J7iz}WGS z@%MyBEO=A?HB9=^?nX`@nh;7;laAjs+fbo!|K^mE!tOB>$2a_O0y-*uaIn8k^6Y zSbuv;5~##*4Y~+y7Z5O*3w4qgI5V^17u*ZeupVGH^nM&$qmAk|anf*>r zWc5CV;-JY-Z@Uq1Irpb^O`L_7AGiqd*YpGUShb==os$uN3yYvb`wm6d=?T*it&pDk zo`vhw)RZX|91^^Wa_ti2zBFyWy4cJu#g)_S6~jT}CC{DJ_kKpT`$oAL%b^!2M;JgT zM3ZNbUB?}kP(*YYvXDIH8^7LUxz5oE%kMhF!rnPqv!GiY0o}NR$OD=ITDo9r%4E>E0Y^R(rS^~XjWyVI6 zMOR5rPXhTp*G*M&X#NTL`Hu*R+u*QNoiOKg4CtNPrjgH>c?Hi4MUG#I917fx**+pJfOo!zFM&*da&G_x)L(`k&TPI*t3e^{crd zX<4I$5nBQ8Ax_lmNRa~E*zS-R0sxkz`|>7q_?*e%7bxqNm3_eRG#1ae3gtV9!fQpY z+!^a38o4ZGy9!J5sylDxZTx$JmG!wg7;>&5H1)>f4dXj;B+@6tMlL=)cLl={jLMxY zbbf1ax3S4>bwB9-$;SN2?+GULu;UA-35;VY*^9Blx)Jwyb$=U!D>HhB&=jSsd^6yw zL)?a|>GxU!W}ocTC(?-%z3!IUhw^uzc`Vz_g>-tv)(XA#JK^)ZnC|l1`@CdX1@|!| z_9gQ)7uOf?cR@KDp97*>6X|;t@Y`k_N@)aH7gY27)COv^P3ya9I{4z~vUjLR9~z1Z z5=G{mVtKH*&$*t0@}-i_v|3B$AHHYale7>E+jP`ClqG%L{u;*ff_h@)al?RuL7tOO z->;I}>%WI{;vbLP3VIQ^iA$4wl6@0sDj|~112Y4OFjMs`13!$JGkp%b&E8QzJw_L5 zOnw9joc0^;O%OpF$Qp)W1HI!$4BaXX84`%@#^dk^hFp^pQ@rx4g(8Xjy#!X%+X5Jd@fs3amGT`}mhq#L97R>OwT5-m|h#yT_-v@(k$q7P*9X~T*3)LTdzP!*B} z+SldbVWrrwQo9wX*%FyK+sRXTa@O?WM^FGWOE?S`R(0P{<6p#f?0NJvnBia?k^fX2 zNQs7K-?EijgHJY}&zsr;qJ<*PCZUd*x|dD=IQPUK_nn)@X4KWtqoJNHkT?ZWL_hF? zS8lp2(q>;RXR|F;1O}EE#}gCrY~#n^O`_I&?&z5~7N;zL0)3Tup`%)oHMK-^r$NT% zbFg|o?b9w(q@)6w5V%si<$!U<#}s#x@0aX-hP>zwS#9*75VXA4K*%gUc>+yzupTDBOKH8WR4V0pM(HrfbQ&eJ79>HdCvE=F z|J>s;;iDLB^3(9}?biKbxf1$lI!*Z%*0&8UUq}wMyPs_hclyQQi4;NUY+x2qy|0J; zhn8;5)4ED1oHwg+VZF|80<4MrL97tGGXc5Sw$wAI#|2*cvQ=jB5+{AjMiDHmhUC*a zlmiZ`LAuAn_}hftXh;`Kq0zblDk8?O-`tnilIh|;3lZp@F_osJUV9`*R29M?7H{Fy z`nfVEIDIWXmU&YW;NjU8)EJpXhxe5t+scf|VXM!^bBlwNh)~7|3?fWwo_~ZFk(22% zTMesYw+LNx3J-_|DM~`v93yXe=jPD{q;li;5PD?Dyk+b? zo21|XpT@)$BM$%F=P9J19Vi&1#{jM3!^Y&fr&_`toi`XB1!n>sbL%U9I5<7!@?t)~ z;&H%z>bAaQ4f$wIzkjH70;<8tpUoxzKrPhn#IQfS%9l5=Iu))^XC<58D!-O z{B+o5R^Z21H0T9JQ5gNJnqh#qH^na|z92=hONIM~@_iuOi|F>jBh-?aA20}Qx~EpDGElELNn~|7WRXRFnw+Wdo`|# zBpU=Cz3z%cUJ0mx_1($X<40XEIYz(`noWeO+x#yb_pwj6)R(__%@_Cf>txOQ74wSJ z0#F3(zWWaR-jMEY$7C*3HJrohc79>MCUu26mfYN)f4M~4gD`}EX4e}A!U}QV8!S47 z6y-U-%+h`1n`*pQuKE%Av0@)+wBZr9mH}@vH@i{v(m-6QK7Ncf17x_D=)32`FOjjo zg|^VPf5c6-!FxN{25dvVh#fog=NNpXz zfB$o+0jbRkHH{!TKhE709f+jI^$3#v1Nmf80w`@7-5$1Iv_`)W^px8P-({xwb;D0y z7LKDAHgX<84?l!I*Dvi2#D@oAE^J|g$3!)x1Ua;_;<@#l1fD}lqU2_tS^6Ht$1Wl} zBESo7o^)9-Tjuz$8YQSGhfs{BQV6zW7dA?0b(Dbt=UnQs&4zHfe_sj{RJ4uS-vQpC zX;Bbsuju4%!o8?&m4UZU@~ZZjeFF6ex2ss5_60_JS_|iNc+R0GIjH1@Z z=rLT9%B|WWgOrR7IiIwr2=T;Ne?30M!@{%Qf8o`!>=s<2CBpCK_TWc(DX51>e^xh8 z&@$^b6CgOd7KXQV&Y4%}_#uN*mbanXq(2=Nj`L7H7*k(6F8s6{FOw@(DzU`4-*77{ zF+dxpv}%mFpYK?>N_2*#Y?oB*qEKB}VoQ@bzm>ptmVS_EC(#}Lxxx730trt0G)#$b zE=wVvtqOct1%*9}U{q<)2?{+0TzZzP0jgf9*)arV)*e!f`|jgT{7_9iS@e)recI#z zbzolURQ+TOzE!ymqvBY7+5NnAbWxvMLsLTwEbFqW=CPyCsmJ}P1^V30|D5E|p3BC5 z)3|qgw@ra7aXb-wsa|l^in~1_fm{7bS9jhVRkYVO#U{qMp z)Wce+|DJ}4<2gp8r0_xfZpMo#{Hl2MfjLcZdRB9(B(A(f;+4s*FxV{1F|4d`*sRNd zp4#@sEY|?^FIJ;tmH{@keZ$P(sLh5IdOk@k^0uB^BWr@pk6mHy$qf&~rI>P*a;h0C{%oA*i!VjWn&D~O#MxN&f@1Po# zKN+ zrGrkSjcr?^R#nGl<#Q722^wbYcgW@{+6CBS<1@%dPA8HC!~a`jTz<`g_l5N1M@9wn9GOAZ>nqNgq!yOCbZ@1z`U_N`Z>}+1HIZxk*5RDc&rd5{3qjRh8QmT$VyS;jK z;AF+r6XnnCp=wQYoG|rT2@8&IvKq*IB_WvS%nt%e{MCFm`&W*#LXc|HrD?nVBo=(8*=Aq?u$sDA_sC_RPDUiQ+wnIJET8vx$&fxkW~kP9qXKt zozR)@xGC!P)CTkjeWvXW5&@2?)qt)jiYWWBU?AUtzAN}{JE1I)dfz~7$;}~BmQF`k zpn11qmObXwRB8&rnEG*#4Xax3XBkKlw(;tb?Np^i+H8m(Wyz9k{~ogba@laiEk;2! zV*QV^6g6(QG%vX5Um#^sT&_e`B1pBW5yVth~xUs#0}nv?~C#l?W+9Lsb_5)!71rirGvY zTIJ$OPOY516Y|_014sNv+Z8cc5t_V=i>lWV=vNu#!58y9Zl&GsMEW#pPYPYGHQ|;vFvd*9eM==$_=vc7xnyz0~ zY}r??$<`wAO?JQk@?RGvkWVJlq2dk9vB(yV^vm{=NVI8dhsX<)O(#nr9YD?I?(VmQ z^r7VfUBn<~p3()8yOBjm$#KWx!5hRW)5Jl7wY@ky9lNM^jaT##8QGVsYeaVywmpv>X|Xj7gWE1Ezai&wVLt3p)k4w~yrskT-!PR!kiyQlaxl(( zXhF%Q9x}1TMt3~u@|#wWm-Vq?ZerK={8@~&@9r5JW}r#45#rWii};t`{5#&3$W)|@ zbAf2yDNe0q}NEUvq_Quq3cTjcw z@H_;$hu&xllCI9CFDLuScEMg|x{S7GdV8<&Mq=ezDnRZAyX-8gv97YTm0bg=d)(>N z+B2FcqvI9>jGtnK%eO%y zoBPkJTk%y`8TLf4)IXPBn`U|9>O~WL2C~C$z~9|0m*YH<-vg2CD^SX#&)B4ngOSG$ zV^wmy_iQk>dfN@Pv(ckfy&#ak@MLC7&Q6Ro#!ezM*VEh`+b3Jt%m(^T&p&WJ2Oqvj zs-4nq0TW6cv~(YI$n0UkfwN}kg3_fp?(ijSV#tR9L0}l2qjc7W?i*q01=St0eZ=4h zyGQbEw`9OEH>NMuIe)hVwYHsGERWOD;JxEiO7cQv%pFCeR+IyhwQ|y@&^24k+|8fD zLiOWFNJ2&vu2&`Jv96_z-Cd5RLgmeY3*4rDOQo?Jm`;I_(+ejsPM03!ly!*Cu}Cco zrQSrEDHNyzT(D5s1rZq!8#?f6@v6dB7a-aWs(Qk>N?UGAo{gytlh$%_IhyL7h?DLXDGx zgxGEBQoCAWo-$LRvM=F5MTle`M})t3vVv;2j0HZY&G z22^iGhV@uaJh(XyyY%} zd4iH_UfdV#T=3n}(Lj^|n;O4|$;xhu*8T3hR1mc_A}fK}jfZ7LX~*n5+`8N2q#rI$ z@<_2VANlYF$vIH$ zl<)+*tIWW78IIINA7Rr7i{<;#^yzxoLNkXL)eSs=%|P>$YQIh+ea_3k z_s7r4%j7%&*NHSl?R4k%1>Z=M9o#zxY!n8sL5>BO-ZP;T3Gut>iLS@U%IBrX6BA3k z)&@q}V8a{X<5B}K5s(c(LQ=%v1ocr`t$EqqY0EqVjr65usa=0bkf|O#ky{j3)WBR(((L^wmyHRzoWuL2~WTC=`yZ zn%VX`L=|Ok0v7?s>IHg?yArBcync5rG#^+u)>a%qjES%dRZoIyA8gQ;StH z1Ao7{<&}6U=5}4v<)1T7t!J_CL%U}CKNs-0xWoTTeqj{5{?Be$L0_tk>M9o8 zo371}S#30rKZFM{`H_(L`EM9DGp+Mifk&IP|C2Zu_)Ghr4Qtpmkm1osCf@%Z$%t+7 zYH$Cr)Ro@3-QDeQJ8m+x6%;?YYT;k6Z0E-?kr>x33`H%*ueBD7Zx~3&HtWn0?2Wt} zTG}*|v?{$ajzt}xPzV%lL1t-URi8*Zn)YljXNGDb>;!905Td|mpa@mHjIH%VIiGx- zd@MqhpYFu4_?y5N4xiHn3vX&|e6r~Xt> zZG`aGq|yTNjv;9E+Txuoa@A(9V7g?1_T5FzRI;!=NP1Kqou1z5?%X~Wwb{trRfd>i z8&y^H)8YnKyA_Fyx>}RNmQIczT?w2J4SNvI{5J&}Wto|8FR(W;Qw#b1G<1%#tmYzQ zQ2mZA-PAdi%RQOhkHy9Ea#TPSw?WxwL@H@cbkZwIq0B!@ns}niALidmn&W?!Vd4Gj zO7FiuV4*6Mr^2xlFSvM;Cp_#r8UaqIzHJQg_z^rEJw&OMm_8NGAY2)rKvki|o1bH~ z$2IbfVeY2L(^*rMRU1lM5Y_sgrDS`Z??nR2lX;zyR=c%UyGb*%TC-Dil?SihkjrQy~TMv6;BMs7P8il`H7DmpVm@rJ;b)hW)BL)GjS154b*xq-NXq2cwE z^;VP7ua2pxvCmxrnqUYQMH%a%nHmwmI33nJM(>4LznvY*k&C0{8f*%?zggpDgkuz&JBx{9mfb@wegEl2v!=}Sq2Gaty0<)UrOT0{MZtZ~j5y&w zXlYa_jY)I_+VA-^#mEox#+G>UgvM!Ac8zI<%JRXM_73Q!#i3O|)lOP*qBeJG#BST0 zqohi)O!|$|2SeJQo(w6w7%*92S})XfnhrH_Z8qe!G5>CglP=nI7JAOW?(Z29;pXJ9 zR9`KzQ=WEhy*)WH>$;7Cdz|>*i>=##0bB)oU0OR>>N<21e4rMCHDemNi2LD>Nc$;& zQRFthpWniC1J6@Zh~iJCoLOxN`oCKD5Q4r%ynwgUKPlIEd#?QViIqovY|czyK8>6B zSP%{2-<;%;1`#0mG^B(8KbtXF;Nf>K#Di72UWE4gQ%(_26Koiad)q$xRL~?pN71ZZ zujaaCx~jXjygw;rI!WB=xrOJO6HJ!!w}7eiivtCg5K|F6$EXa)=xUC za^JXSX98W`7g-tm@uo|BKj39Dl;sg5ta;4qjo^pCh~{-HdLl6qI9Ix6f$+qiZ$}s= zNguKrU;u+T@ko(Vr1>)Q%h$?UKXCY>3se%&;h2osl2D zE4A9bd7_|^njDd)6cI*FupHpE3){4NQ*$k*cOWZ_?CZ>Z4_fl@n(mMnYK62Q1d@+I zr&O))G4hMihgBqRIAJkLdk(p(D~X{-oBUA+If@B}j& zsHbeJ3RzTq96lB7d($h$xTeZ^gP0c{t!Y0c)aQE;$FY2!mACg!GDEMKXFOPI^)nHZ z`aSPJpvV0|bbrzhWWkuPURlDeN%VT8tndV8?d)eN*i4I@u zVKl^6{?}A?P)Fsy?3oi#clf}L18t;TjNI2>eI&(ezDK7RyqFxcv%>?oxUlonv(px) z$vnPzRH`y5A(x!yOIfL0bmgeMQB$H5wenx~!ujQK*nUBW;@Em&6Xv2%s(~H5WcU2R z;%Nw<$tI)a`Ve!>x+qegJnQsN2N7HaKzrFqM>`6R*gvh%O*-%THt zrB$Nk;lE;z{s{r^PPm5qz(&lM{sO*g+W{sK+m3M_z=4=&CC>T`{X}1Vg2PEfSj2x_ zmT*(x;ov%3F?qoEeeM>dUn$a*?SIGyO8m806J1W1o+4HRhc2`9$s6hM#qAm zChQ87b~GEw{ADfs+5}FJ8+|bIlIv(jT$Ap#hSHoXdd9#w<#cA<1Rkq^*EEkknUd4& zoIWIY)sAswy6fSERVm&!SO~#iN$OgOX*{9@_BWFyJTvC%S++ilSfCrO(?u=Dc?CXZ zzCG&0yVR{Z`|ZF0eEApWEo#s9osV>F{uK{QA@BES#&;#KsScf>y zvs?vIbI>VrT<*!;XmQS=bhq%46-aambZ(8KU-wOO2=en~D}MCToB_u;Yz{)1ySrPZ z@=$}EvjTdzTWU7c0ZI6L8=yP+YRD_eMMos}b5vY^S*~VZysrkq<`cK3>>v%uy7jgq z0ilW9KjVDHLv0b<1K_`1IkbTOINs0=m-22c%M~l=^S}%hbli-3?BnNq?b`hx^HX2J zIe6ECljRL0uBWb`%{EA=%!i^4sMcj+U_TaTZRb+~GOk z^ZW!nky0n*Wb*r+Q|9H@ml@Z5gU&W`(z4-j!OzC1wOke`TRAYGZVl$PmQ16{3196( zO*?`--I}Qf(2HIwb2&1FB^!faPA2=sLg(@6P4mN)>Dc3i(B0;@O-y2;lM4akD>@^v z=u>*|!s&9zem70g7zfw9FXl1bpJW(C#5w#uy5!V?Q(U35A~$dR%LDVnq@}kQm13{} zd53q3N(s$Eu{R}k2esbftfjfOITCL;jWa$}(mmm}d(&7JZ6d3%IABCapFFYjdEjdK z&4Edqf$G^MNAtL=uCDRs&Fu@FXRgX{*0<(@c3|PNHa>L%zvxWS={L8%qw`STm+=Rd zA}FLspESSIpE_^41~#5yI2bJ=9`oc;GIL!JuW&7YetZ?0H}$$%8rW@*J37L-~Rsx!)8($nI4 zZhcZ2^=Y+p4YPl%j!nFJA|*M^gc(0o$i3nlphe+~-_m}jVkRN{spFs(o0ajW@f3K{ zDV!#BwL322CET$}Y}^0ixYj2w>&Xh12|R8&yEw|wLDvF!lZ#dOTHM9pK6@Nm-@9Lnng4ZHBgBSrr7KI8YCC9DX5Kg|`HsiwJHg2(7#nS;A{b3tVO?Z% za{m5b3rFV6EpX;=;n#wltDv1LE*|g5pQ+OY&*6qCJZc5oDS6Z6JD#6F)bWxZSF@q% z+1WV;m!lRB!n^PC>RgQCI#D1br_o^#iPk>;K2hB~0^<~)?p}LG%kigm@moD#q3PE+ zA^Qca)(xnqw6x>XFhV6ku9r$E>bWNrVH9fum0?4s?Rn2LG{Vm_+QJHse6xa%nzQ?k zKug4PW~#Gtb;#5+9!QBgyB@q=sk9=$S{4T>wjFICStOM?__fr+Kei1 z3j~xPqW;W@YkiUM;HngG!;>@AITg}vAE`M2Pj9Irl4w1fo4w<|Bu!%rh%a(Ai^Zhi zs92>v5;@Y(Zi#RI*ua*h`d_7;byQSa*v9E{2x$<-_=5Z<7{%)}4XExANcz@rK69T0x3%H<@frW>RA8^swA+^a(FxK| zFl3LD*ImHN=XDUkrRhp6RY5$rQ{bRgSO*(vEHYV)3Mo6Jy3puiLmU&g82p{qr0F?ohmbz)f2r{X2|T2 z$4fdQ=>0BeKbiVM!e-lIIs8wVTuC_m7}y4A_%ikI;Wm5$9j(^Y z(cD%U%k)X>_>9~t8;pGzL6L-fmQO@K; zo&vQzMlgY95;1BSkngY)e{`n0!NfVgf}2mB3t}D9@*N;FQ{HZ3Pb%BK6;5#-O|WI( zb6h@qTLU~AbVW#_6?c!?Dj65Now7*pU{h!1+eCV^KCuPAGs28~3k@ueL5+u|Z-7}t z9|lskE`4B7W8wMs@xJa{#bsCGDFoRSNSnmNYB&U7 zVGKWe%+kFB6kb)e;TyHfqtU6~fRg)f|>=5(N36)0+C z`hv65J<$B}WUc!wFAb^QtY31yNleq4dzmG`1wHTj=c*=hay9iD071Hc?oYoUk|M*_ zU1GihAMBsM@5rUJ(qS?9ZYJ6@{bNqJ`2Mr+5#hKf?doa?F|+^IR!8lq9)wS3tF_9n zW_?hm)G(M+MYb?V9YoX^_mu5h-LP^TL^!Q9Z7|@sO(rg_4+@=PdI)WL(B7`!K^ND- z-uIuVDCVEdH_C@c71YGYT^_Scf_dhB8Z2Xy6vGtBSlYud9vggOqv^L~F{BraSE_t} zIkP+Hp2&nH^-MNEs}^`oMLy11`PQW$T|K(`Bu*(f@)mv1-qY(_YG&J2M2<7k;;RK~ zL{Fqj9yCz8(S{}@c)S!65aF<=&eLI{hAMErCx&>i7OeDN>okvegO87OaG{Jmi<|}D zaT@b|0X{d@OIJ7zvT>r+eTzgLq~|Dpu)Z&db-P4z*`M$UL51lf>FLlq6rfG)%doyp z)3kk_YIM!03eQ8Vu_2fg{+osaEJPtJ-s36R+5_AEG12`NG)IQ#TF9c@$99%0iye+ zUzZ57=m2)$D(5Nx!n)=5Au&O0BBgwxIBaeI(mro$#&UGCr<;C{UjJVAbVi%|+WP(a zL$U@TYCxJ=1{Z~}rnW;7UVb7+ZnzgmrogDxhjLGo>c~MiJAWs&&;AGg@%U?Y^0JhL ze(x6Z74JG6FlOFK(T}SXQfhr}RIFl@QXKnIcXYF)5|V~e-}suHILKT-k|<*~Ij|VF zC;t@=uj=hot~*!C68G8hTA%8SzOfETOXQ|3FSaIEjvBJp(A)7SWUi5!Eu#yWgY+;n zlm<$+UDou*V+246_o#V4kMdto8hF%%Lki#zPh}KYXmMf?hrN0;>Mv%`@{0Qn`Ujp) z=lZe+13>^Q!9zT);H<(#bIeRWz%#*}sgUX9P|9($kexOyKIOc`dLux}c$7It4u|Rl z6SSkY*V~g_B-hMPo_ak>>z@AVQ(_N)VY2kB3IZ0G(iDUYw+2d7W^~(Jq}KY=JnWS( z#rzEa&0uNhJ>QE8iiyz;n2H|SV#Og+wEZv=f2%1ELX!SX-(d3tEj$5$1}70Mp<&eI zCkfbByL7af=qQE@5vDVxx1}FSGt_a1DoE3SDI+G)mBAna)KBG4p8Epxl9QZ4BfdAN zFnF|Y(umr;gRgG6NLQ$?ZWgllEeeq~z^ZS7L?<(~O&$5|y)Al^iMKy}&W+eMm1W z7EMU)u^ke(A1#XCV>CZ71}P}0x)4wtHO8#JRG3MA-6g=`ZM!FcICCZ{IEw8Dm2&LQ z1|r)BUG^0GzI6f946RrBlfB1Vs)~8toZf~7)+G;pv&XiUO(%5bm)pl=p>nV^o*;&T z;}@oZSibzto$arQgfkp|z4Z($P>dTXE{4O=vY0!)kDO* zGF8a4wq#VaFpLfK!iELy@?-SeRrdz%F*}hjKcA*y@mj~VD3!it9lhRhX}5YOaR9$} z3mS%$2Be7{l(+MVx3 z(4?h;P!jnRmX9J9sYN#7i=iyj_5q7n#X(!cdqI2lnr8T$IfOW<_v`eB!d9xY1P=2q&WtOXY=D9QYteP)De?S4}FK6#6Ma z=E*V+#s8>L;8aVroK^6iKo=MH{4yEZ_>N-N z`(|;aOATba1^asjxlILk<4}f~`39dBFlxj>Dw(hMYKPO3EEt1@S`1lxFNM+J@uB7T zZ8WKjz7HF1-5&2=l=fqF-*@>n5J}jIxdDwpT?oKM3s8Nr`x8JnN-kCE?~aM1H!hAE z%%w(3kHfGwMnMmNj(SU(w42OrC-euI>Dsjk&jz3ts}WHqmMpzQ3vZrsXrZ|}+MHA7 z068obeXZTsO*6RS@o3x80E4ok``rV^Y3hr&C1;|ZZ0|*EKO`$lECUYG2gVFtUTw)R z4Um<0ZzlON`zTdvVdL#KFoMFQX*a5wM0Czp%wTtfK4Sjs)P**RW&?lP$(<}q%r68Z zS53Y!d@&~ne9O)A^tNrXHhXBkj~$8j%pT1%%mypa9AW5E&s9)rjF4@O3ytH{0z6riz|@< zB~UPh*wRFg2^7EbQrHf0y?E~dHlkOxof_a?M{LqQ^C!i2dawHTPYUE=X@2(3<=OOxs8qn_(y>pU>u^}3y&df{JarR0@VJn0f+U%UiF=$Wyq zQvnVHESil@d|8&R<%}uidGh7@u^(%?$#|&J$pvFC-n8&A>utA=n3#)yMkz+qnG3wd zP7xCnF|$9Dif@N~L)Vde3hW8W!UY0BgT2v(wzp;tlLmyk2%N|0jfG$%<;A&IVrOI< z!L)o>j>;dFaqA3pL}b-Je(bB@VJ4%!JeX@3x!i{yIeIso^=n?fDX`3bU=eG7sTc%g%ye8$v8P@yKE^XD=NYxTb zbf!Mk=h|otpqjFaA-vs5YOF-*GwWPc7VbaOW&stlANnCN8iftFMMrUdYNJ_Bnn5Vt zxfz@Ah|+4&P;reZxp;MmEI7C|FOv8NKUm8njF7Wb6Gi7DeODLl&G~}G4be&*Hi0Qw z5}77vL0P+7-B%UL@3n1&JPxW^d@vVwp?u#gVcJqY9#@-3X{ok#UfW3<1fb%FT`|)V~ggq z(3AUoUS-;7)^hCjdT0Kf{i}h)mBg4qhtHHBti=~h^n^OTH5U*XMgDLIR@sre`AaB$ zg)IGBET_4??m@cx&c~bA80O7B8CHR7(LX7%HThkeC*@vi{-pL%e)yXp!B2InafbDF zjPXf1mko3h59{lT6EEbxKO1Z5GF71)WwowO6kY|6tjSVSWdQ}NsK2x{>i|MKZK8%Q zfu&_0D;CO-Jg0#YmyfctyJ!mRJp)e#@O0mYdp|8x;G1%OZQ3Q847YWTyy|%^cpA;m zze0(5p{tMu^lDkpe?HynyO?a1$_LJl2L&mpeKu%8YvgRNr=%2z${%WThHG=vrWY@4 zsA`OP#O&)TetZ>s%h!=+CE15lOOls&nvC~$Qz0Ph7tHiP;O$i|eDwpT{cp>+)0-|; zY$|bB+Gbel>5aRN3>c0x)4U=|X+z+{ zn*_p*EQoquRL+=+p;=lm`d71&1NqBz&_ph)MXu(Nv6&XE7(RsS)^MGj5Q?Fwude-(sq zjJ>aOq!7!EN>@(fK7EE#;i_BGvli`5U;r!YA{JRodLBc6-`n8K+Fjgwb%sX;j=qHQ z7&Tr!)!{HXoO<2BQrV9Sw?JRaLXV8HrsNevvnf>Y-6|{T!pYLl7jp$-nEE z#X!4G4L#K0qG_4Z;Cj6=;b|Be$hi4JvMH!-voxqx^@8cXp`B??eFBz2lLD8RRaRGh zn7kUfy!YV~p(R|p7iC1Rdgt$_24i0cd-S8HpG|`@my70g^y`gu%#Tf_L21-k?sRRZHK&at(*ED0P8iw{7?R$9~OF$Ko;Iu5)ur5<->x!m93Eb zFYpIx60s=Wxxw=`$aS-O&dCO_9?b1yKiPCQmSQb>T)963`*U+Ydj5kI(B(B?HNP8r z*bfSBpSu)w(Z3j7HQoRjUG(+d=IaE~tv}y14zHHs|0UcN52fT8V_<@2ep_ee{QgZG zmgp8iv4V{k;~8@I%M3<#B;2R>Ef(Gg_cQM7%}0s*^)SK6!Ym+~P^58*wnwV1BW@eG z4sZLqsUvBbFsr#8u7S1r4teQ;t)Y@jnn_m5jS$CsW1um!p&PqAcc8!zyiXHVta9QC zY~wCwCF0U%xiQPD_INKtTb;A|Zf29(mu9NI;E zc-e>*1%(LSXB`g}kd`#}O;veb<(sk~RWL|f3ljxCnEZDdNSTDV6#Td({6l&y4IjKF z^}lIUq*ZUqgTPumD)RrCN{M^jhY>E~1pn|KOZ5((%F)G|*ZQ|r4zIbrEiV%42hJV8 z3xS)=!X1+=olbdGJ=yZil?oXLct8FM{(6ikLL3E%=q#O6(H$p~gQu6T8N!plf!96| z&Q3=`L~>U0zZh;z(pGR2^S^{#PrPxTRHD1RQOON&f)Siaf`GLj#UOk&(|@0?zm;Sx ztsGt8=29-MZs5CSf1l1jNFtNt5rFNZxJPvkNu~2}7*9468TWm>nN9TP&^!;J{-h)_ z7WsHH9|F%I`Pb!>KAS3jQWKfGivTVkMJLO-HUGM_a4UQ_%RgL6WZvrW+Z4ujZn;y@ zz9$=oO!7qVTaQAA^BhX&ZxS*|5dj803M=k&2%QrXda`-Q#IoZL6E(g+tN!6CA!CP* zCpWtCujIea)ENl0liwVfj)Nc<9mV%+e@=d`haoZ*`B7+PNjEbXBkv=B+Pi^~L#EO$D$ZqTiD8f<5$eyb54-(=3 zh)6i8i|jp(@OnRrY5B8t|LFXFQVQ895n*P16cEKTrT*~yLH6Z4e*bZ5otpRDri&+A zfNbK1D5@O=sm`fN=WzWyse!za5n%^+6dHPGX#8DyIK>?9qyX}2XvBWVqbP%%D)7$= z=#$WulZlZR<{m#gU7lwqK4WS1Ne$#_P{b17qe$~UOXCl>5b|6WVh;5vVnR<%d+Lnp z$uEmML38}U4vaW8>shm6CzB(Wei3s#NAWE3)a2)z@i{4jTn;;aQS)O@l{rUM`J@K& l00vQ5JBs~;vo!vr%%-k{2_Fq1Mn4QF81S)AQ99zk{{c4yR+0b! diff --git a/packages/react-native/template/android/gradle-wrapper.properties b/packages/react-native/template/android/gradle-wrapper.properties deleted file mode 100644 index e6aba2515d5428..00000000000000 --- a/packages/react-native/template/android/gradle-wrapper.properties +++ /dev/null @@ -1,7 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip -networkTimeout=10000 -validateDistributionUrl=true -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists From b33b80f51ce8134d4e8e104a81352ab0833a403d Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Fri, 23 Feb 2024 06:14:29 -0800 Subject: [PATCH 009/223] Bump CLI to 13.6.1 (#43153) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43153 This contains an hotfix for the CLI needed for 0.74 Changelog: [Internal] [Changed] - Bump CLI to 13.6.1 Reviewed By: huntie Differential Revision: D54073715 fbshipit-source-id: a5fdf02f47c5e144efc58e6b7fd355669a21e07b --- packages/community-cli-plugin/package.json | 4 +- packages/react-native/package.json | 6 +- yarn.lock | 142 ++++++++++----------- 3 files changed, 76 insertions(+), 76 deletions(-) diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 06aadb31b57d27..105cfd9a2364b1 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -22,8 +22,8 @@ "dist" ], "dependencies": { - "@react-native-community/cli-server-api": "13.6.0", - "@react-native-community/cli-tools": "13.6.0", + "@react-native-community/cli-server-api": "13.6.1", + "@react-native-community/cli-tools": "13.6.1", "@react-native/dev-middleware": "0.74.1", "@react-native/metro-babel-transformer": "0.74.1", "chalk": "^4.0.0", diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 49675e97bdc149..90f8690f2d15c7 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -98,9 +98,9 @@ }, "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "13.6.0", - "@react-native-community/cli-platform-android": "13.6.0", - "@react-native-community/cli-platform-ios": "13.6.0", + "@react-native-community/cli": "13.6.1", + "@react-native-community/cli-platform-android": "13.6.1", + "@react-native-community/cli-platform-ios": "13.6.1", "@react-native/assets-registry": "0.74.0", "@react-native/codegen": "0.74.1", "@react-native/community-cli-plugin": "0.74.1", diff --git a/yarn.lock b/yarn.lock index 0437eb362646b0..49ce4cec434e10 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2384,45 +2384,45 @@ optionalDependencies: npmlog "2 || ^3.1.0 || ^4.0.0" -"@react-native-community/cli-clean@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.0.tgz#64d205d10d40de23f87fc20d91a8221c886cd130" - integrity sha512-pIaPxvvqdROohjnxLYkE5CDiuJWYrpzWobVu10an6QJVR2AKpmKMwoH0v5bfZXUCd1DppaYyqTdvx8navakOAA== +"@react-native-community/cli-clean@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.1.tgz#e4dce2aa8ea5a2fbdbfe8074e0c285bf4796d7be" + integrity sha512-HV0kTegCMbq9INOLUVzPFl/FDjZ2uX6kOa7cFYezkRhgApJo0a/KYTvqwQVlmdHXAjDiWLARGTUPqYQGwIef0A== dependencies: - "@react-native-community/cli-tools" "13.6.0" + "@react-native-community/cli-tools" "13.6.1" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" -"@react-native-community/cli-config@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.0.tgz#a12eb3cf4799353eeb76b0ff662ad6013bf6ce36" - integrity sha512-KOesQvvntxgz0mT2uL+O7LrFNtA0y625FS1UdTplia9aJre3p8ZtHdyMfnXNp7ikbMcOTCmaMsH9GIqJUBswXg== +"@react-native-community/cli-config@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.1.tgz#b1f83fc1572d2500fb9e8d5b1a38ba417acb6eec" + integrity sha512-ljqwH04RNkwv8Y67TjmJ60qgvAdS2aCCUszaD7ZPXmfqBBxkvLg5QFtja9y+1QuTGPmBuTtC55JqmCHg/UDAsg== dependencies: - "@react-native-community/cli-tools" "13.6.0" + "@react-native-community/cli-tools" "13.6.1" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" fast-glob "^3.3.2" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.0.tgz#a44effb910d084984c8dae608ff0a1344e0fca6f" - integrity sha512-w2Kr1HIcgBw1kNeSRp3lkQJeIAeVRfFNoCGN934NmtGUsex4iFf+VADGxo5f9EIF4t5zQSRz35AP5pcZfxMepg== +"@react-native-community/cli-debugger-ui@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.1.tgz#7bb56be33d3ee2289bfbab7efa59a16a7554cd1a" + integrity sha512-3z1io3AsT1NqlJZOlqNFcrzlavBb7R+Vy5Orzruc3m/OIjc4TrGNtyzQmOfCC3peF8J3So3d6dH1a11YYUDfFw== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.0.tgz#e3749a5601a1baf7d01eb9e601b79d4c77693abc" - integrity sha512-2FnKYaiSkxiwrv7PkVT18HmwNJiPNFuD7xvAs6CM1+PlQX91Qukfw7+DWzVz1Jm4XB7WEWgZj/0xA0m7ic+5BQ== +"@react-native-community/cli-doctor@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.1.tgz#64b6e64c13cf8d318fe631ebc84834fa5650adf1" + integrity sha512-jP5otBbvcItuIy8WJT8UAA0lLB+0kKtCmcfQFmcs0/NlBy04cpTtGp7w2N3F1r2Qy9sdQWGRa20IFZn8eenieQ== dependencies: - "@react-native-community/cli-config" "13.6.0" - "@react-native-community/cli-platform-android" "13.6.0" - "@react-native-community/cli-platform-apple" "13.6.0" - "@react-native-community/cli-platform-ios" "13.6.0" - "@react-native-community/cli-tools" "13.6.0" + "@react-native-community/cli-config" "13.6.1" + "@react-native-community/cli-platform-android" "13.6.1" + "@react-native-community/cli-platform-apple" "13.6.1" + "@react-native-community/cli-platform-ios" "13.6.1" + "@react-native-community/cli-tools" "13.6.1" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" @@ -2436,54 +2436,54 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-hermes@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.0.tgz#af0a5baa33e6d5d4945d1b9022caaa19ae42dae3" - integrity sha512-PkzkB8gJ09UCJsmC5tqMnU8fgBOLiU0HI7uj2axtYLCj4IJ54J7ojRaXvisBUgDYv/yui7hPvuBIfqlA4vkowQ== +"@react-native-community/cli-hermes@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.1.tgz#2d4de930ffbe30e02150031d33108059d51e7e17" + integrity sha512-uGzmpg3DCqXiVLArTw6LMCGoGPkdMBKUllnlvgl1Yjne6LL7NPnQ971lMVGqTX9/p3CaW5TcqYYJjnI7sxlVcA== dependencies: - "@react-native-community/cli-platform-android" "13.6.0" - "@react-native-community/cli-tools" "13.6.0" + "@react-native-community/cli-platform-android" "13.6.1" + "@react-native-community/cli-tools" "13.6.1" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" -"@react-native-community/cli-platform-android@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.0.tgz#6f72a2f5e4fc1fc8edb39878179ab9091878b2f9" - integrity sha512-v0kkWU9ezm2n/tZe7lavck3aMaLL1D3YrVcIhgcYiIsZvHVgD48JOKDbqN+23yjoJP6pxVVnBA2AEwz1xLcpAQ== +"@react-native-community/cli-platform-android@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.1.tgz#7ddac2b257425de54ea62b6e215c06a9bfc77e53" + integrity sha512-HkrV8kCbHUdWH2LMEeSsuvl0ULI+JLmBZ2eQNEyyYOT8h+tM90OwaPLRpBFtD+yvp2/DpIKo97yCVJT5cLjBzA== dependencies: - "@react-native-community/cli-tools" "13.6.0" + "@react-native-community/cli-tools" "13.6.1" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" fast-xml-parser "^4.2.4" logkitty "^0.7.1" -"@react-native-community/cli-platform-apple@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.0.tgz#71339336bdecb86b5d7b8503dab6c1e26f6e5aa5" - integrity sha512-VJM5iw9mSxLB6TKhjFf9axORASrSAbiChlZXGMZJD4MGEKrGQE67T16ztH6JxdAug9xcbDFrPekDwzuUXHslMw== +"@react-native-community/cli-platform-apple@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.1.tgz#cd0d393e8328f439f453bf90fcfec48b350e2f3a" + integrity sha512-yv4iPewUwhy3uGg4uJwA03wSV/1bnEnAJNs7CQ0zl7DQZhqrhfJLhzPURtu34sMUN+Wt6S3KaBmny5kHRKTuwA== dependencies: - "@react-native-community/cli-tools" "13.6.0" + "@react-native-community/cli-tools" "13.6.1" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" fast-xml-parser "^4.0.12" ora "^5.4.1" -"@react-native-community/cli-platform-ios@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.0.tgz#99ccb4fb0464f63f6de63cbfab5ed61427ab9b50" - integrity sha512-0AcUr1WEmO79FsI4IVCO5izXf16uqY9naDezUAESMD4+UKdn/9Rrf6quBz6M4oowgI/zIagFS6JksFusP8pLFw== +"@react-native-community/cli-platform-ios@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.1.tgz#fa3e3a6494a09538f369709a376f7d6d5c7f5ae5" + integrity sha512-JwXV9qMpqJWduoEcK3pbAjkOaTqg+o0IzZz/LP7EkFCfJyg5hnDRAUZhP5ffs5/zukZIGHHPY1ZEW8jl5T2j6Q== dependencies: - "@react-native-community/cli-platform-apple" "13.6.0" + "@react-native-community/cli-platform-apple" "13.6.1" -"@react-native-community/cli-server-api@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.0.tgz#20d7ec18edf3f945de25b0b7d9ab1c33298269af" - integrity sha512-3FU18/qLo2Mw1aYuIiLOaGiiPOLBeHJ+JZFRyobizvcKHEPHLc+Zt7+iFBPWiro7+pr0tdgV6EEwj1TxypUPpg== +"@react-native-community/cli-server-api@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.1.tgz#6be357c07339856620b0881f000bfcf72f3af68c" + integrity sha512-64eC7NuCLenYr237LyJ1H6jf+6L4NA2eXuy+634q0CeIZsAqOe7B5VCJyy2CsWWaeeUbAsC0Oy9/2o2y8/muIw== dependencies: - "@react-native-community/cli-debugger-ui" "13.6.0" - "@react-native-community/cli-tools" "13.6.0" + "@react-native-community/cli-debugger-ui" "13.6.1" + "@react-native-community/cli-tools" "13.6.1" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" @@ -2492,10 +2492,10 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.0.tgz#157e18e894bdfb0ff0beca67cc7f80935492a389" - integrity sha512-lnbN3kcwYYT0y70jAfHX+VBjDN5Hb8X7GYy3ergYXrD8eBazthYGhx9wplaOfXGMtmvOSeLu/f13eDTNHPGXxQ== +"@react-native-community/cli-tools@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.1.tgz#f453a3e8ef13d114c05d77dafe411bc2a82f0279" + integrity sha512-mRJmI5c/Mfi/pESUPjqElv8+t81qfi0pUr1UrIX38nS1o5Ki1D8vC9vAMkPbLaIu2RuhUuzSCfs6zW8AwakUoA== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -2509,26 +2509,26 @@ shell-quote "^1.7.3" sudo-prompt "^9.0.0" -"@react-native-community/cli-types@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.0.tgz#b30053d3409bc876660183e46b8e360bb35ceeba" - integrity sha512-F1M1qKdtMtFzCRvFLAFFTbc1BRHSOMkQA3XLOkpyDb9/DXDeQjkn6gAFczo1xQRJd4aUyvHaEOhSi1RJGEmlMg== +"@react-native-community/cli-types@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.1.tgz#565e3dec401c86e5abb436f70b3f491d0e8cb919" + integrity sha512-+ue0eaEnGTKsTpX7F/DVspGDVZz7OgN7uaanaGKJuG9+pJiIgVIXnVu546Ycq8XbWAbZuWR1PL4+SNbf6Ebqqw== dependencies: joi "^17.2.1" -"@react-native-community/cli@13.6.0": - version "13.6.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.0.tgz#a5bd5ae8543923d539a4b787c1c88ea457f62e93" - integrity sha512-/NhynfYqCPVnxYa6i19+xM5ic8ebcOHQRUQZj9ZiBBZ9A7z34I2JBhSlm06IpUSJ4PgTEViYBMMJjFCRZ+a4wg== - dependencies: - "@react-native-community/cli-clean" "13.6.0" - "@react-native-community/cli-config" "13.6.0" - "@react-native-community/cli-debugger-ui" "13.6.0" - "@react-native-community/cli-doctor" "13.6.0" - "@react-native-community/cli-hermes" "13.6.0" - "@react-native-community/cli-server-api" "13.6.0" - "@react-native-community/cli-tools" "13.6.0" - "@react-native-community/cli-types" "13.6.0" +"@react-native-community/cli@13.6.1": + version "13.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.1.tgz#38a250422f172559bdbaa8f6f70a75a1cb9a14d2" + integrity sha512-Q3eA7xw42o8NAkztJvjVZT9WWxtRDnYYoRkv8IEIi9m2ya3p/4ZJBNlsQO6kDjasQTERkAoGQc1CveEHEv2QsA== + dependencies: + "@react-native-community/cli-clean" "13.6.1" + "@react-native-community/cli-config" "13.6.1" + "@react-native-community/cli-debugger-ui" "13.6.1" + "@react-native-community/cli-doctor" "13.6.1" + "@react-native-community/cli-hermes" "13.6.1" + "@react-native-community/cli-server-api" "13.6.1" + "@react-native-community/cli-tools" "13.6.1" + "@react-native-community/cli-types" "13.6.1" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" From d032e35f86ba07e42f85739fcbde882a30a0bc07 Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Sat, 24 Feb 2024 02:16:55 -0800 Subject: [PATCH 010/223] feat(cli): warn underlying command when using `npx react-native init` (#43127) Summary: This adds a new warning for React Native 0.74, implementing the [RFC 0759](https://github.com/react-native-community/discussions-and-proposals/blob/nc/rnf/proposals/0759-react-native-frameworks.md#the-init-command) init command changes. - It's added inside `react-native/cli.js` to avoid warning users when actually executing `npx react-native-community/cli` commands. - The check is fairly simple: `process.argv[2] === 'init'`. The first two args are the Node bin and the actual script bin paths. - The message is sent over `console.warn` to avoid potentially mixing JSON with non-JSON output. ## Changelog: [GENERAL] [ADDED] - Warn with future command when using `npx react-native init` Pull Request resolved: https://github.com/facebook/react-native/pull/43127 Test Plan: Any command other than `init` must not warn. - `$ node ./path/to/react-native/cli.js init` - `$ node ./path/to/react-native/cli.js init --help` - Should warn with `Running: npx react-native-community/cli init` ![image](https://github.com/facebook/react-native/assets/1203991/a3f5e3d2-7b59-41fe-9a53-bc9ce5a21fd1) - `$ node ./path/to/react-native/cli.js --help` - Must not warn ![image](https://github.com/facebook/react-native/assets/1203991/97679429-db35-47f8-bdeb-33187bb167cf) Reviewed By: cipolleschi Differential Revision: D54063131 Pulled By: cortinico fbshipit-source-id: c60b8b6034087b584e98b51f5bedf68a46caf44c --- packages/react-native/cli.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/react-native/cli.js b/packages/react-native/cli.js index 7dd4bfb76de8d5..0e1bd5216512d0 100755 --- a/packages/react-native/cli.js +++ b/packages/react-native/cli.js @@ -39,6 +39,16 @@ async function getLatestVersion(registryHost = DEFAULT_REGISTRY_HOST) { }); } +/** + * Warn when users are using `npx react-native init`, to raise awareness of the changes from RFC 0759. + * @see https://github.com/react-native-community/discussions-and-proposals/tree/main/proposals/0759-react-native-frameworks.md + */ +function warnWhenRunningInit() { + if (process.argv[2] === 'init') { + console.warn('\nRunning: npx @react-native-community/cli init\n'); + } +} + /** * npx react-native -> @react-native-community/cli * @@ -66,6 +76,9 @@ async function main() { // Ignore errors, since it's a nice to have warning } } + + warnWhenRunningInit(); + return cli.run(name); } From ba3cf235f593143e7db658249054bd390e84e12a Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Mon, 26 Feb 2024 16:54:52 -0800 Subject: [PATCH 011/223] bumped packages versions #publish-packages-to-npm&0.74-stable --- packages/community-cli-plugin/package.json | 2 +- packages/react-native/package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 105cfd9a2364b1..80e5a8c0a5ac46 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.1", + "version": "0.74.2", "description": "Core CLI commands for React Native", "keywords": [ "react-native", diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 90f8690f2d15c7..4c962756aeb325 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -103,7 +103,7 @@ "@react-native-community/cli-platform-ios": "13.6.1", "@react-native/assets-registry": "0.74.0", "@react-native/codegen": "0.74.1", - "@react-native/community-cli-plugin": "0.74.1", + "@react-native/community-cli-plugin": "0.74.2", "@react-native/gradle-plugin": "0.74.1", "@react-native/js-polyfills": "0.74.0", "@react-native/normalize-colors": "0.74.1", @@ -153,4 +153,4 @@ } ] } -} \ No newline at end of file +} From ad3f6b5274537540e409ba528235654e68a6e80b Mon Sep 17 00:00:00 2001 From: Distiller Date: Tue, 27 Feb 2024 01:08:06 +0000 Subject: [PATCH 012/223] [0.74.0-rc.1] Bump version numbers --- packages/react-native/Libraries/Core/ReactNativeVersion.js | 2 +- packages/react-native/React/Base/RCTVersion.m | 2 +- packages/react-native/ReactAndroid/gradle.properties | 2 +- .../facebook/react/modules/systeminfo/ReactNativeVersion.java | 2 +- .../react-native/ReactCommon/cxxreact/ReactNativeVersion.h | 2 +- packages/react-native/package.json | 4 ++-- packages/react-native/template/package.json | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index 47441ecfdb7654..bc7b1eac3a07d7 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -17,7 +17,7 @@ const version: $ReadOnly<{ major: 0, minor: 74, patch: 0, - prerelease: 'rc.0', + prerelease: 'rc.1', }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index 2d6a3ef2a8d858..26251392bb488e 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -24,7 +24,7 @@ RCTVersionMajor: @(0), RCTVersionMinor: @(74), RCTVersionPatch: @(0), - RCTVersionPrerelease: @"rc.0", + RCTVersionPrerelease: @"rc.1", }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index 0fba9efc278491..a46dd32ac1b4af 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.0-rc.0 +VERSION_NAME=0.74.0-rc.1 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index 34593b9ec4b5bf..4964a76ca70d36 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -18,5 +18,5 @@ public class ReactNativeVersion { "major", 0, "minor", 74, "patch", 0, - "prerelease", "rc.0"); + "prerelease", "rc.1"); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index 1f1b96d508c89b..0ca3ec48b5892c 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -18,7 +18,7 @@ constexpr struct { int32_t Major = 0; int32_t Minor = 74; int32_t Patch = 0; - std::string_view Prerelease = "rc.0"; + std::string_view Prerelease = "rc.1"; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 4c962756aeb325..b86cc59f8587a6 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.0-rc.0", + "version": "0.74.0-rc.1", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -153,4 +153,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 2546a54c6b8c9c..1fffdf0183c836 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.0-rc.0" + "react-native": "0.74.0-rc.1" }, "devDependencies": { "@babel/core": "^7.20.0", From f7644be6d4d79b72c26f740cf5ac021dfd5fedc0 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Thu, 29 Feb 2024 10:26:12 +0000 Subject: [PATCH 013/223] [RN][iOS]Rename BUILD_FROM_SOURCE to RCT_BUILD_HERMES_FROM_SOURCE --- .circleci/configurations/executors.yml | 4 ++-- .circleci/configurations/jobs.yml | 2 +- packages/react-native/sdks/hermes-engine/hermes-utils.rb | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.circleci/configurations/executors.yml b/.circleci/configurations/executors.yml index 1c4c6a9bfb806c..1e20c133e36590 100644 --- a/.circleci/configurations/executors.yml +++ b/.circleci/configurations/executors.yml @@ -35,11 +35,11 @@ executors: xcode: *xcode_version resource_class: macos.x86.medium.gen2 environment: - - BUILD_FROM_SOURCE: true + - RCT_BUILD_HERMES_FROM_SOURCE: true reactnativeios-lts: <<: *defaults macos: xcode: '14.3.1' resource_class: macos.x86.medium.gen2 environment: - - BUILD_FROM_SOURCE: true + - RCT_BUILD_HERMES_FROM_SOURCE: true diff --git a/.circleci/configurations/jobs.yml b/.circleci/configurations/jobs.yml index 39eb852857d3dd..d40dbc45e4a2c9 100644 --- a/.circleci/configurations/jobs.yml +++ b/.circleci/configurations/jobs.yml @@ -599,7 +599,7 @@ jobs: environment: - HERMES_WS_DIR: *hermes_workspace_root - HERMES_VERSION_FILE: "packages/react-native/sdks/.hermesversion" - - BUILD_FROM_SOURCE: true + - RCT_BUILD_HERMES_FROM_SOURCE: true steps: - run: name: Install dependencies diff --git a/packages/react-native/sdks/hermes-engine/hermes-utils.rb b/packages/react-native/sdks/hermes-engine/hermes-utils.rb index 8c2f4f6c665a83..c0c7613192ebd8 100644 --- a/packages/react-native/sdks/hermes-engine/hermes-utils.rb +++ b/packages/react-native/sdks/hermes-engine/hermes-utils.rb @@ -7,6 +7,7 @@ require 'rexml/document' HERMES_GITHUB_URL = "https://github.com/facebook/hermes.git" +ENV_BUILD_FROM_SOURCE = "RCT_BUILD_HERMES_FROM_SOURCE" module HermesEngineSourceType LOCAL_PREBUILT_TARBALL = :local_prebuilt_tarball @@ -30,7 +31,7 @@ def HermesEngineSourceType.isFromSource(source_type) # - To use a specific tarball, install the dependencies with: # `HERMES_ENGINE_TARBALL_PATH= bundle exec pod install` # - To force a build from source, install the dependencies with: -# `BUILD_FROM_SOURCE=true bundle exec pod install` +# `RCT_BUILD_HERMES_FROM_SOURCE=true bundle exec pod install` # If none of the two are provided, Cocoapods will check whether there is a tarball for the current version # (either release or nightly). If not, it will fall back to building from source (the latest commit on main). # @@ -85,11 +86,11 @@ def hermes_commit_envvar_defined() end def force_build_from_tag(react_native_path) - return ENV['BUILD_FROM_SOURCE'] === 'true' && File.exist?(hermestag_file(react_native_path)) + return ENV[ENV_BUILD_FROM_SOURCE] === 'true' && File.exist?(hermestag_file(react_native_path)) end def force_build_from_main(react_native_path) - return ENV['BUILD_FROM_SOURCE'] === 'true' && !File.exist?(hermestag_file(react_native_path)) + return ENV[ENV_BUILD_FROM_SOURCE] === 'true' && !File.exist?(hermestag_file(react_native_path)) end def release_artifact_exists(version) From f6f3b5cb9808684aeaf69122f9bdb0af3b9e5275 Mon Sep 17 00:00:00 2001 From: Moti Zilberman Date: Fri, 1 Mar 2024 02:38:48 -0800 Subject: [PATCH 014/223] Restore Content-Length header in inspector-proxy JSON responses Summary: Changelog: [General][Fixed] Re-enable listing Hermes debugger targets in chrome://inspect, broken in 0.74 RC Fixes https://github.com/facebook/react-native/issues/43259. Reverts D52958725 and fixes the original `Content-Length` Unicode bug using a different approach. Reviewed By: fabriziocucci Differential Revision: D54409847 fbshipit-source-id: ed5bb464ab67f37535947646b124814d8bbf797c --- .../__tests__/InspectorProxyHttpApi-test.js | 66 ++++++++++++++++++- .../src/inspector-proxy/InspectorProxy.js | 1 + 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/packages/dev-middleware/src/__tests__/InspectorProxyHttpApi-test.js b/packages/dev-middleware/src/__tests__/InspectorProxyHttpApi-test.js index e601f219f06324..e5501b8e3ceb66 100644 --- a/packages/dev-middleware/src/__tests__/InspectorProxyHttpApi-test.js +++ b/packages/dev-middleware/src/__tests__/InspectorProxyHttpApi-test.js @@ -14,11 +14,13 @@ import type { JsonVersionResponse, } from '../inspector-proxy/types'; -import {fetchJson} from './FetchUtils'; +import {fetchJson, fetchLocal} from './FetchUtils'; import {createDeviceMock} from './InspectorDeviceUtils'; import {withAbortSignalForEachTest} from './ResourceUtils'; import {withServerForEachTest} from './ServerUtils'; +import nullthrows from 'nullthrows'; + // Must be greater than or equal to PAGES_POLLING_INTERVAL in `InspectorProxy.js`. const PAGES_POLLING_DELAY = 1000; @@ -309,5 +311,67 @@ describe('inspector proxy HTTP API', () => { } }); }); + + test('handles Unicode data safely', async () => { + const device = await createDeviceMock( + `${serverRef.serverBaseWsUrl}/inspector/device?device=device1&name=foo&app=bar`, + autoCleanup.signal, + ); + try { + device.getPages.mockImplementation(() => [ + { + app: 'bar-app 📱', + id: 'page1 🛂', + title: 'bar-title 📰', + vm: 'bar-vm 🤖', + }, + ]); + + jest.advanceTimersByTime(PAGES_POLLING_DELAY); + + const json = await fetchJson( + `${serverRef.serverBaseUrl}${endpoint}`, + ); + expect(json).toEqual([ + expect.objectContaining({ + description: 'bar-app 📱', + deviceName: 'foo', + id: 'device1-page1 🛂', + title: 'bar-title 📰', + vm: 'bar-vm 🤖', + }), + ]); + } finally { + device.close(); + } + }); + + test('includes a valid Content-Length header', async () => { + // NOTE: This test is needed because chrome://inspect's HTTP client is picky + // and doesn't accept responses without a Content-Length header. + const device = await createDeviceMock( + `${serverRef.serverBaseWsUrl}/inspector/device?device=device1&name=foo&app=bar`, + autoCleanup.signal, + ); + try { + device.getPages.mockImplementation(() => [ + { + app: 'bar-app', + id: 'page1', + title: 'bar-title', + vm: 'bar-vm', + }, + ]); + + jest.advanceTimersByTime(PAGES_POLLING_DELAY); + + const response = await fetchLocal( + `${serverRef.serverBaseUrl}${endpoint}`, + ); + expect(response.headers.get('Content-Length')).not.toBeNull(); + } finally { + device.close(); + } + }); }); }); diff --git a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js index 066fa44cc3d536..0f4146d5e01884 100644 --- a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js +++ b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js @@ -167,6 +167,7 @@ export default class InspectorProxy implements InspectorProxyQueries { response.writeHead(200, { 'Content-Type': 'application/json; charset=UTF-8', 'Cache-Control': 'no-cache', + 'Content-Length': Buffer.byteLength(data).toString(), Connection: 'close', }); response.end(data); From 987c1f288042cf8d634d9e6588ae81ff72a0d0fb Mon Sep 17 00:00:00 2001 From: Dmitry Rykun Date: Tue, 27 Feb 2024 05:44:08 -0800 Subject: [PATCH 015/223] Fix findLibrariesFromReactNativeConfig Summary: This diff removes extra argument from the `extractLibrariesFromJSON` call inside `findLibrariesFromReactNativeConfig`. This should fix the iOS failurte discribed in https://github.com/facebook/react-native/issues/43204 Changelog: [iOS][Fixed] - Codegen correctly handles react-native.config.js. Reviewed By: cipolleschi Differential Revision: D54248400 fbshipit-source-id: 2ae5d0d29f49725877559a5b0edd7d59f8bdefaa --- .../scripts/codegen/generate-artifacts-executor.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/react-native/scripts/codegen/generate-artifacts-executor.js b/packages/react-native/scripts/codegen/generate-artifacts-executor.js index 92434047d5a6a5..c150b1956a648e 100644 --- a/packages/react-native/scripts/codegen/generate-artifacts-executor.js +++ b/packages/react-native/scripts/codegen/generate-artifacts-executor.js @@ -283,11 +283,7 @@ function findLibrariesFromReactNativeConfig(projectRoot) { return []; } - return extractLibrariesFromJSON( - configFile, - configFile.name, - codegenConfigFileDir, - ); + return extractLibrariesFromJSON(configFile, codegenConfigFileDir); }); } From 1ccc7a3e9eec0dccfa4ccbedc8c19281f0355377 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Wed, 28 Feb 2024 06:09:38 -0800 Subject: [PATCH 016/223] Deprecate `getSurfacePresenter` and `getModuleRegistry` in favor of their props Summary: This change align the `getSurfacePresenter` and `getModuleRegistry` to the iOS convention for which these should be computed properties with no `get` prefix in their name. We want to land this change and to pick it in 0.74 so we can remove the `get` versions in 0.75. ## Changelog: [iOS][Deprecated] - Deprecate `getSurfacePresenter` and `getModuleRegistry` for `surfacePresenter` and moduleRegistry` props. Reviewed By: javache Differential Revision: D54253805 fbshipit-source-id: e9ff7db744a73a3bd0f8ae1d87875e54ddd9a1a4 --- .../platform/ios/ReactCommon/RCTHost.h | 8 ++++++-- .../platform/ios/ReactCommon/RCTHost.mm | 20 +++++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h index 6b869377a836a5..ea4492980f976f 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h @@ -52,6 +52,10 @@ typedef std::shared_ptr (^RCTHostJSEngineProv @property (nonatomic, weak, nullable) id runtimeDelegate; +@property (nonatomic, readonly) RCTSurfacePresenter *surfacePresenter; + +@property (nonatomic, readonly) RCTModuleRegistry *moduleRegistry; + - (void)start; - (void)callFunctionOnJSModule:(NSString *)moduleName method:(NSString *)method args:(NSArray *)args; @@ -64,11 +68,11 @@ typedef std::shared_ptr (^RCTHostJSEngineProv - (RCTFabricSurface *)createSurfaceWithModuleName:(NSString *)moduleName initialProperties:(NSDictionary *)properties; -- (RCTSurfacePresenter *)getSurfacePresenter; +- (RCTSurfacePresenter *)getSurfacePresenter __attribute__((deprecated("Use `surfacePresenter` property instead."))); // Native module API -- (RCTModuleRegistry *)getModuleRegistry; +- (RCTModuleRegistry *)getModuleRegistry __attribute__((deprecated("Use `moduleRegistry` property instead."))); @end diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm index 85602c4c8a6f8a..ff0bb9703d386c 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm @@ -212,7 +212,7 @@ - (RCTFabricSurface *)createSurfaceWithModuleName:(NSString *)moduleName mode:(DisplayMode)displayMode initialProperties:(NSDictionary *)properties { - RCTFabricSurface *surface = [[RCTFabricSurface alloc] initWithSurfacePresenter:[self getSurfacePresenter] + RCTFabricSurface *surface = [[RCTFabricSurface alloc] initWithSurfacePresenter:self.surfacePresenter moduleName:moduleName initialProperties:properties]; surface.surfaceHandler.setDisplayMode(displayMode); @@ -235,16 +235,28 @@ - (RCTFabricSurface *)createSurfaceWithModuleName:(NSString *)moduleName initial return [self createSurfaceWithModuleName:moduleName mode:DisplayMode::Visible initialProperties:properties]; } -- (RCTModuleRegistry *)getModuleRegistry +- (RCTModuleRegistry *)moduleRegistry { return _moduleRegistry; } -- (RCTSurfacePresenter *)getSurfacePresenter +// Deprecated +- (RCTModuleRegistry *)getModuleRegistry +{ + return self.moduleRegistry; +} + +- (RCTSurfacePresenter *)surfacePresenter { return [_instance surfacePresenter]; } +// Deprecated +- (RCTSurfacePresenter *)getSurfacePresenter +{ + return self.surfacePresenter; +} + - (void)callFunctionOnJSModule:(NSString *)moduleName method:(NSString *)method args:(NSArray *)args { [_instance callFunctionOnJSModule:moduleName method:method args:args]; @@ -276,7 +288,7 @@ - (void)didReceiveReloadCommand [_hostDelegate hostDidStart:self]; for (RCTFabricSurface *surface in [self _getAttachedSurfaces]) { - [surface resetWithSurfacePresenter:[self getSurfacePresenter]]; + [surface resetWithSurfacePresenter:self.surfacePresenter]; } } From 7822a7796f9fe0820f33d749a27b89bb6520f447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Kwas=CC=81niewski?= Date: Wed, 28 Feb 2024 08:37:26 -0800 Subject: [PATCH 017/223] fix(iOS) [0.74]: properly warn about createRootViewWithBridge (#43146) Summary: This PR fixes an issue that `_logWarnIfCreateRootViewWithBridgeIsOverridden` was called in wrong place. Assuming user overrides this method and call to `[super]`: ```objc - (UIView *)createRootViewWithBridge:(RCTBridge *)bridge moduleName:(NSString *)moduleName initProps:(NSDictionary *)initProps { UIView *view = [super createRootViewWithBridge:bridge moduleName:moduleName initProps:initProps]; view.backgroundColor = [UIColor redColor]; return view; } ``` This method still wasn't called in bridgeless (and not showing the error). Checking if user overrides this method in `appDidFinishWithLaunching` works every time ![simulator_screenshot_0E22557C-CE37-4617-A25A-F39A6ED4D3D0](https://github.com/facebook/react-native/assets/52801365/d7865f37-32f0-40ad-a252-74ab7c5b7757) ## Changelog: [IOS] [FIXED] - Properly warn about `createRootViewWithBridge` being deprecated Pull Request resolved: https://github.com/facebook/react-native/pull/43146 Test Plan: Check if warning is shown when message is overridden Reviewed By: huntie Differential Revision: D54303506 Pulled By: cipolleschi fbshipit-source-id: cf30555c791493f28b3015a189cf93b60cace8f8 --- packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm index a53a42303d7d40..67f0bcc7f6f2fc 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm @@ -116,6 +116,7 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( } rootView = [self createRootViewWithBridge:self.bridge moduleName:self.moduleName initProps:initProps]; } + [self _logWarnIfCreateRootViewWithBridgeIsOverridden]; [self customizeRootView:(RCTRootView *)rootView]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *rootViewController = [self createRootViewController]; @@ -158,7 +159,6 @@ - (UIView *)createRootViewWithBridge:(RCTBridge *)bridge moduleName:(NSString *)moduleName initProps:(NSDictionary *)initProps { - [self _logWarnIfCreateRootViewWithBridgeIsOverridden]; BOOL enableFabric = self.fabricEnabled; UIView *rootView = RCTAppSetupDefaultRootView(bridge, moduleName, initProps, enableFabric); From 6294453980a8d68b31767a23f2747847b2df394c Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Thu, 29 Feb 2024 10:23:09 -0800 Subject: [PATCH 018/223] Undo moving of TurboModule to internal and expose utility function for TurboModule.class.isAssignableFrom (#43219) Summary: After discussing with mdvacca, we prefer to undo the change of `TurboModule` package to `.internal` as this is a quite aggressive breaking change for the ecosystem. Moreover: users should not invoke `TurboModule.class.isAssignableFrom` because `TurboModule` is `.internal`. Therefore I'm exposing another API to check if a class is a TurboModule as a static field of `ReactModuleInfo`. ## Changelog: [INTERNAL] - Do not use TurboModule.class.isAssignableFrom Pull Request resolved: https://github.com/facebook/react-native/pull/43219 Test Plan: Tests are attached Reviewed By: mdvacca, cipolleschi Differential Revision: D54280882 Pulled By: cortinico fbshipit-source-id: 9443c8aa23cf70dd5cfe574fe573d83313134358 --- .../modules/GenerateModuleJavaSpec.js | 2 +- .../GenerateModuleJavaSpec-test.js.snap | 18 +++---- .../ReactAndroid/api/ReactAndroid.api | 11 ++-- .../facebook/react/CoreModulesPackage.java | 3 +- .../com/facebook/react/DebugCorePackage.java | 3 +- ...eactPackageTurboModuleManagerDelegate.java | 6 +-- .../react/bridge/JavaModuleWrapper.java | 2 +- .../facebook/react/bridge/ModuleHolder.java | 3 +- .../core/TurboModuleInteropUtils.java | 2 +- .../turbomodule/core/TurboModuleManager.java | 2 +- .../core/TurboModuleManagerDelegate.java | 2 +- .../core/interfaces/TurboModule.kt | 19 ------- .../react/module/model/ReactModuleInfo.java | 10 ++++ .../processing/ReactModuleSpecProcessor.java | 4 +- .../react/modules/fresco/FrescoModule.java | 2 +- .../modules/systeminfo/AndroidInfoModule.java | 2 +- .../react/runtime/CoreReactPackage.java | 3 +- .../react/shell/MainReactPackage.java | 3 +- .../core/interfaces/TurboModule.kt | 21 ++++---- .../react/bridge/BaseJavaModuleTest.kt | 2 +- .../modules/model/ReactModuleInfoTest.kt | 51 +++++++++++++++++++ .../android/ReactCommon/JavaTurboModule.h | 2 +- .../android/NativeSampleTurboModuleSpec.java | 2 +- 23 files changed, 107 insertions(+), 68 deletions(-) delete mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/interfaces/TurboModule.kt create mode 100644 packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/model/ReactModuleInfoTest.kt diff --git a/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js b/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js index 2dc407f303476f..8335f705ae6eb6 100644 --- a/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js +++ b/packages/react-native-codegen/src/generators/modules/GenerateModuleJavaSpec.js @@ -462,7 +462,7 @@ module.exports = { 'com.facebook.react.bridge.ReactApplicationContext', 'com.facebook.react.bridge.ReactContextBaseJavaModule', 'com.facebook.react.bridge.ReactMethod', - 'com.facebook.react.internal.turbomodule.core.interfaces.TurboModule', + 'com.facebook.react.turbomodule.core.interfaces.TurboModule', 'com.facebook.proguard.annotations.DoNotStrip', 'javax.annotation.Nonnull', ]); diff --git a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap index a03ec04f54d55d..875476d45acaae 100644 --- a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap +++ b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleJavaSpec-test.js.snap @@ -20,7 +20,7 @@ import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule { @@ -66,7 +66,7 @@ import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableArray; import com.facebook.react.bridge.WritableMap; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -136,7 +136,7 @@ import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule { @@ -178,7 +178,7 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableMap; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; public abstract class AliasTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule { @@ -224,7 +224,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; public abstract class NativeCameraRollManagerSpec extends ReactContextBaseJavaModule implements TurboModule { @@ -272,7 +272,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.bridge.ReadableMap; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; public abstract class NativeExceptionsManagerSpec extends ReactContextBaseJavaModule implements TurboModule { @@ -338,7 +338,7 @@ import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableArray; import com.facebook.react.bridge.WritableMap; import com.facebook.react.common.build.ReactBuildConfig; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import java.util.Arrays; import java.util.HashSet; import java.util.Map; @@ -462,7 +462,7 @@ import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule { @@ -500,7 +500,7 @@ import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import javax.annotation.Nonnull; public abstract class NativeSampleTurboModule2Spec extends ReactContextBaseJavaModule implements TurboModule { diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 24271f239edd3a..dd23037f872875 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -322,7 +322,7 @@ public abstract class com/facebook/react/ReactPackageTurboModuleManagerDelegate protected fun (Lcom/facebook/react/bridge/ReactApplicationContext;Ljava/util/List;Lcom/facebook/jni/HybridData;)V public fun getEagerInitModuleNames ()Ljava/util/List; public fun getLegacyModule (Ljava/lang/String;)Lcom/facebook/react/bridge/NativeModule; - public fun getModule (Ljava/lang/String;)Lcom/facebook/react/internal/turbomodule/core/interfaces/TurboModule; + public fun getModule (Ljava/lang/String;)Lcom/facebook/react/turbomodule/core/interfaces/TurboModule; public fun unstable_enableSyncVoidMethods ()Z public fun unstable_isLegacyModuleRegistered (Ljava/lang/String;)Z public fun unstable_isModuleRegistered (Ljava/lang/String;)Z @@ -2856,6 +2856,7 @@ public class com/facebook/react/module/model/ReactModuleInfo { public fun (Ljava/lang/String;Ljava/lang/String;ZZZZ)V public fun (Ljava/lang/String;Ljava/lang/String;ZZZZZ)V public fun canOverrideExistingModule ()Z + public static fun classIsTurboModule (Ljava/lang/Class;)Z public fun className ()Ljava/lang/String; public fun hasConstants ()Z public fun isCxxModule ()Z @@ -3199,7 +3200,7 @@ public class com/facebook/react/modules/dialog/DialogModule : com/facebook/fbrea public fun showAlert (Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Callback;Lcom/facebook/react/bridge/Callback;)V } -public class com/facebook/react/modules/fresco/FrescoModule : com/facebook/react/bridge/ReactContextBaseJavaModule, com/facebook/react/bridge/LifecycleEventListener, com/facebook/react/internal/turbomodule/core/interfaces/TurboModule, com/facebook/react/modules/common/ModuleDataCleaner$Cleanable { +public class com/facebook/react/modules/fresco/FrescoModule : com/facebook/react/bridge/ReactContextBaseJavaModule, com/facebook/react/bridge/LifecycleEventListener, com/facebook/react/modules/common/ModuleDataCleaner$Cleanable, com/facebook/react/turbomodule/core/interfaces/TurboModule { public static final field NAME Ljava/lang/String; public fun (Lcom/facebook/react/bridge/ReactApplicationContext;)V public fun (Lcom/facebook/react/bridge/ReactApplicationContext;Lcom/facebook/imagepipeline/core/ImagePipeline;Z)V @@ -3440,7 +3441,7 @@ public class com/facebook/react/modules/systeminfo/AndroidInfoHelpers { public static fun getServerHost (Ljava/lang/Integer;)Ljava/lang/String; } -public class com/facebook/react/modules/systeminfo/AndroidInfoModule : com/facebook/fbreact/specs/NativePlatformConstantsAndroidSpec, com/facebook/react/internal/turbomodule/core/interfaces/TurboModule { +public class com/facebook/react/modules/systeminfo/AndroidInfoModule : com/facebook/fbreact/specs/NativePlatformConstantsAndroidSpec, com/facebook/react/turbomodule/core/interfaces/TurboModule { public fun (Lcom/facebook/react/bridge/ReactApplicationContext;)V public fun getAndroidID ()Ljava/lang/String; public fun getTypedExportedConstants ()Ljava/util/Map; @@ -3806,7 +3807,9 @@ public abstract interface class com/facebook/react/turbomodule/core/interfaces/C public abstract interface class com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder { } -public abstract interface class com/facebook/react/turbomodule/core/interfaces/TurboModule : com/facebook/react/internal/turbomodule/core/interfaces/TurboModule { +public abstract interface class com/facebook/react/turbomodule/core/interfaces/TurboModule { + public abstract fun initialize ()V + public abstract fun invalidate ()V } public abstract class com/facebook/react/uimanager/BaseViewManager : com/facebook/react/uimanager/ViewManager, android/view/View$OnLayoutChangeListener, com/facebook/react/uimanager/BaseViewManagerInterface { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java index 3ffbc8aa28d22d..ae1bb0131fd22e 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java @@ -17,7 +17,6 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactMarker; import com.facebook.react.devsupport.LogBoxModule; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.module.annotations.ReactModuleList; import com.facebook.react.module.model.ReactModuleInfo; @@ -115,7 +114,7 @@ public ReactModuleInfoProvider getReactModuleInfoProvider() { reactModule.canOverrideExistingModule(), reactModule.needsEagerInit(), reactModule.isCxxModule(), - TurboModule.class.isAssignableFrom(moduleClass))); + ReactModuleInfo.classIsTurboModule(moduleClass))); } return () -> reactModuleInfoMap; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java index 69471937ab8501..2e1d3d976cdf3b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java @@ -12,7 +12,6 @@ import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.devsupport.JSCHeapCapture; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.module.annotations.ReactModuleList; import com.facebook.react.module.model.ReactModuleInfo; @@ -74,7 +73,7 @@ public ReactModuleInfoProvider getReactModuleInfoProvider() { reactModule.canOverrideExistingModule(), reactModule.needsEagerInit(), reactModule.isCxxModule(), - TurboModule.class.isAssignableFrom(moduleClass))); + ReactModuleInfo.classIsTurboModule(moduleClass))); } return () -> reactModuleInfoMap; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java index aba8502f55c405..5de97f4ceffc53 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java @@ -18,9 +18,9 @@ import com.facebook.react.common.ReactConstants; import com.facebook.react.config.ReactFeatureFlags; import com.facebook.react.internal.turbomodule.core.TurboModuleManagerDelegate; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.module.model.ReactModuleInfo; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -123,14 +123,14 @@ private void initialize( reactModule.canOverrideExistingModule(), true, reactModule.isCxxModule(), - TurboModule.class.isAssignableFrom(moduleClass)) + ReactModuleInfo.classIsTurboModule(moduleClass)) : new ReactModuleInfo( moduleName, moduleClass.getName(), module.canOverrideExistingModule(), true, CxxModuleWrapper.class.isAssignableFrom(moduleClass), - TurboModule.class.isAssignableFrom(moduleClass)); + ReactModuleInfo.classIsTurboModule(moduleClass)); reactModuleInfoMap.put(moduleName, moduleInfo); moduleMap.put(moduleName, module); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java index 5e08e165801c6a..44abd25f26a761 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java @@ -15,7 +15,7 @@ import androidx.annotation.Nullable; import com.facebook.proguard.annotations.DoNotStrip; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import com.facebook.systrace.Systrace; import com.facebook.systrace.SystraceMessage; import java.lang.reflect.Method; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.java index 25f170f1134a92..77d011b93cfaa9 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.java @@ -20,7 +20,6 @@ import com.facebook.infer.annotation.Assertions; import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.common.ReactConstants; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; import com.facebook.react.module.model.ReactModuleInfo; import com.facebook.systrace.SystraceMessage; import java.util.concurrent.atomic.AtomicInteger; @@ -73,7 +72,7 @@ public ModuleHolder(NativeModule nativeModule) { nativeModule.canOverrideExistingModule(), true, CxxModuleWrapper.class.isAssignableFrom(nativeModule.getClass()), - TurboModule.class.isAssignableFrom(nativeModule.getClass())); + ReactModuleInfo.classIsTurboModule(nativeModule.getClass())); mModule = nativeModule; PrinterHolder.getPrinter() diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.java index 50ce80eb46af0b..496cf39a313ba9 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.java @@ -18,7 +18,7 @@ import com.facebook.react.bridge.ReadableMap; import com.facebook.react.bridge.WritableArray; import com.facebook.react.bridge.WritableMap; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashSet; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java index e66dbc3492830b..d627f82b7fd3f8 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java @@ -19,12 +19,12 @@ import com.facebook.react.bridge.ReactNoCrashSoftException; import com.facebook.react.bridge.ReactSoftExceptionLogger; import com.facebook.react.bridge.RuntimeExecutor; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry; import com.facebook.react.turbomodule.core.CallInvokerHolderImpl; import com.facebook.react.turbomodule.core.NativeMethodCallInvokerHolderImpl; import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder; import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHolder; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java index 9fe0fdb630d308..39539cdd6f34d5 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java @@ -12,7 +12,7 @@ import com.facebook.jni.HybridData; import com.facebook.proguard.annotations.DoNotStrip; import com.facebook.react.bridge.NativeModule; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import java.util.ArrayList; import java.util.List; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/interfaces/TurboModule.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/interfaces/TurboModule.kt deleted file mode 100644 index 0e546d282864a3..00000000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/interfaces/TurboModule.kt +++ /dev/null @@ -1,19 +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. - */ - -package com.facebook.react.internal.turbomodule.core.interfaces -/** All turbo modules should inherit from this interface */ -public interface TurboModule { - /** Initialize the TurboModule. */ - public fun initialize() - - /** - * Called during the turn down process of ReactHost. This method is called before React Native is - * stopped. Override this method to clean up resources used by the TurboModule. - */ - public fun invalidate() -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/module/model/ReactModuleInfo.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/module/model/ReactModuleInfo.java index ae4a56bbc3a969..8be508edf80479 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/module/model/ReactModuleInfo.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/module/model/ReactModuleInfo.java @@ -7,6 +7,8 @@ package com.facebook.react.module.model; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; + /** * Data holder class holding native module specifications. {@link ReactModuleSpecProcessor} creates * these so Java modules don't have to be instantiated at React Native start up. @@ -80,4 +82,12 @@ public boolean isCxxModule() { public boolean isTurboModule() { return mIsTurboModule; } + + /** + * Checks if the passed class is a TurboModule. Useful to populate the parameter [isTurboModule] + * in the constructor of ReactModuleInfo. + */ + public static boolean classIsTurboModule(Class clazz) { + return TurboModule.class.isAssignableFrom(clazz); + } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/module/processing/ReactModuleSpecProcessor.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/module/processing/ReactModuleSpecProcessor.java index 969ea6ddb09939..4f85ff932503b6 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/module/processing/ReactModuleSpecProcessor.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/module/processing/ReactModuleSpecProcessor.java @@ -161,13 +161,13 @@ private CodeBlock getCodeBlockForReactModuleInfos(List nativeModules) builder.addStatement("$T map = new $T()", MAP_TYPE, INSTANTIATED_MAP_TYPE); String turboModuleInterfaceCanonicalName = - "com.facebook.react.internal.turbomodule.core.interfaces.TurboModule"; + "com.facebook.react.turbomodule.core.interfaces.TurboModule"; TypeMirror turboModuleInterface = mElements.getTypeElement(turboModuleInterfaceCanonicalName).asType(); if (turboModuleInterface == null) { throw new RuntimeException( - "com.facebook.react.internal.turbomodule.core.interfaces.TurboModule interface not found."); + "com.facebook.react.turbomodule.core.interfaces.TurboModule interface not found."); } for (String nativeModule : nativeModules) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java index 34f9fd7121b0c7..3ac33b5d0e58bf 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java @@ -19,12 +19,12 @@ import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.common.ReactConstants; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.modules.common.ModuleDataCleaner; import com.facebook.react.modules.network.CookieJarContainer; import com.facebook.react.modules.network.ForwardingCookieHandler; import com.facebook.react.modules.network.OkHttpClientProvider; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import java.util.HashSet; import okhttp3.JavaNetCookieJar; import okhttp3.OkHttpClient; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java index b5b7f82b5cf6b9..3c283271487eda 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoModule.java @@ -18,8 +18,8 @@ import com.facebook.fbreact.specs.NativePlatformConstantsAndroidSpec; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.common.build.ReactBuildConfig; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; import com.facebook.react.module.annotations.ReactModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import java.util.HashMap; import java.util.Map; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.java index cb8b9c13af09ae..deae9de23347e3 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.java @@ -14,7 +14,6 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.devsupport.LogBoxModule; import com.facebook.react.devsupport.interfaces.DevSupportManager; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.module.annotations.ReactModuleList; import com.facebook.react.module.model.ReactModuleInfo; @@ -103,7 +102,7 @@ public ReactModuleInfoProvider getReactModuleInfoProvider() { reactModule.canOverrideExistingModule(), reactModule.needsEagerInit(), reactModule.isCxxModule(), - TurboModule.class.isAssignableFrom(moduleClass))); + ReactModuleInfo.classIsTurboModule(moduleClass))); } } return () -> reactModuleInfoMap; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java index b06dcc7d745983..0b34c680f95274 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java @@ -15,7 +15,6 @@ import com.facebook.react.bridge.ModuleSpec; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; import com.facebook.react.module.annotations.ReactModule; import com.facebook.react.module.annotations.ReactModuleList; import com.facebook.react.module.model.ReactModuleInfo; @@ -300,7 +299,7 @@ public ReactModuleInfoProvider getReactModuleInfoProvider() { reactModule.canOverrideExistingModule(), reactModule.needsEagerInit(), reactModule.isCxxModule(), - TurboModule.class.isAssignableFrom(moduleClass))); + ReactModuleInfo.classIsTurboModule(moduleClass))); } } return () -> reactModuleInfoMap; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.kt index 394ffd69bfa622..6333b8125400b8 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/interfaces/TurboModule.kt @@ -6,15 +6,14 @@ */ package com.facebook.react.turbomodule.core.interfaces +/** All turbo modules should inherit from this interface */ +public interface TurboModule { + /** Initialize the TurboModule. */ + public fun initialize() -import com.facebook.react.common.annotations.DeprecatedInNewArchitecture - -/** - * This interface was introduced for backward compatibility purposes. This interface will be - * deprecated as part of the deprecation and removal of ReactModuleInfoProvider in the near future. - * - * See description of https://github.com/facebook/react-native/pull/41412 for more context. - */ -@DeprecatedInNewArchitecture -public interface TurboModule : - com.facebook.react.internal.turbomodule.core.interfaces.TurboModule {} + /** + * Called during the turn down process of ReactHost. This method is called before React Native is + * stopped. Override this method to clean up resources used by the TurboModule. + */ + public fun invalidate() +} diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/BaseJavaModuleTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/BaseJavaModuleTest.kt index 85ae9a6d476476..49e9709df4a1e4 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/BaseJavaModuleTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/bridge/BaseJavaModuleTest.kt @@ -7,7 +7,7 @@ package com.facebook.react.bridge -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule +import com.facebook.react.turbomodule.core.interfaces.TurboModule import com.facebook.testutils.shadows.ShadowSoLoader import org.junit.Before import org.junit.Test diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/model/ReactModuleInfoTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/model/ReactModuleInfoTest.kt new file mode 100644 index 00000000000000..d3c072a6e5d10b --- /dev/null +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/model/ReactModuleInfoTest.kt @@ -0,0 +1,51 @@ +/* + * 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. + */ + +package com.facebook.react.modules.model + +import com.facebook.react.module.model.ReactModuleInfo +import com.facebook.react.turbomodule.core.interfaces.TurboModule +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test + +class ReactModuleInfoTest { + + @Test + fun testCreateReactModuleInfo() { + val reactModuleInfo = + ReactModuleInfo( + /* name = */ "name", + /* className = */ "class", + /* canOverrideExistingModule = */ false, + /* needsEagerInit = */ false, + /* isCxxModule = */ false, + /* isTurboModule = */ false) + assertEquals("name", reactModuleInfo.name()) + assertFalse(reactModuleInfo.canOverrideExistingModule()) + assertFalse(reactModuleInfo.needsEagerInit()) + assertFalse(reactModuleInfo.isCxxModule) + assertFalse(reactModuleInfo.isTurboModule) + } + + @Test + fun classIsTurboModule_withRandomClass() { + assertFalse(ReactModuleInfo.classIsTurboModule(String::class.java)) + } + + @Test + fun classIsTurboModule_withTurboModule() { + assertTrue(ReactModuleInfo.classIsTurboModule(TestTurboModule::class.java)) + } + + inner class TestTurboModule : TurboModule { + override fun initialize() = Unit + + override fun invalidate() = Unit + } +} diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h b/packages/react-native/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h index 66ebd30f92a4f4..cb020a852e6a1a 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +++ b/packages/react-native/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h @@ -19,7 +19,7 @@ namespace facebook::react { struct JTurboModule : jni::JavaClass { static auto constexpr kJavaDescriptor = - "Lcom/facebook/react/internal/turbomodule/core/interfaces/TurboModule;"; + "Lcom/facebook/react/turbomodule/core/interfaces/TurboModule;"; }; class JSI_EXPORT JavaTurboModule : public TurboModule { diff --git a/packages/react-native/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java b/packages/react-native/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java index 6b05e380a21ee1..92d5687d7e7e5b 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +++ b/packages/react-native/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java @@ -19,7 +19,7 @@ import com.facebook.react.bridge.WritableArray; import com.facebook.react.bridge.WritableMap; import com.facebook.react.common.build.ReactBuildConfig; -import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; import java.util.Arrays; import java.util.HashSet; import java.util.Map; From 29b34e70e37ae37502720704eb499637a65b85af Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Fri, 23 Feb 2024 16:43:18 -0800 Subject: [PATCH 019/223] Pull PopupMenuAndroid out of React Native core Summary: **History:** This component was originally introduced into React Native core in D52712758, to replace UIManagerModule.showPopupMenu(). **Problem:** But, React Native core should be lean. Adding this component to React Native bloats the core. **Changes:** So, this diff pulls PopupMenuAndroid out into its own package in the react-native GitHub repository. In the future, this will be migrated to a community package! Changelog: [Android][Removed] Move PopupMenu out of React Native core Reviewed By: NickGerleman Differential Revision: D53328110 fbshipit-source-id: 469d8dc3e756c06040c72e08fa004aafa1bd6e18 --- .gitignore | 1 + .../android/build.gradle.kts | 35 ++++++++++++ .../android/gradle.properties | 3 + .../ComponentDescriptors.h | 20 +++++++ .../EventEmitters.cpp | 24 ++++++++ .../EventEmitters.h | 25 +++++++++ .../ReactPopupMenuAndroidSpecs/Props.cpp | 25 +++++++++ .../ReactPopupMenuAndroidSpecs/Props.h | 28 ++++++++++ .../ShadowNodes.cpp | 17 ++++++ .../ReactPopupMenuAndroidSpecs/ShadowNodes.h | 32 +++++++++++ .../ReactPopupMenuAndroidSpecs/States.cpp | 16 ++++++ .../ReactPopupMenuAndroidSpecs/States.h | 34 +++++++++++ .../react/popupmenu/PopupMenuPackage.kt | 56 +++++++++++++++++++ .../popupmenu/PopupMenuSelectionEvent.kt | 4 +- .../popupmenu/ReactPopupMenuContainer.kt | 2 +- .../react}/popupmenu/ReactPopupMenuManager.kt | 2 +- .../AndroidPopupMenuManagerDelegate.java | 41 ++++++++++++++ .../AndroidPopupMenuManagerInterface.java | 19 +++++++ .../index.d.ts | 11 ++++ .../react-native-popup-menu-android/index.js | 12 ++++ .../js}/PopupMenuAndroid.android.js | 4 +- .../js}/PopupMenuAndroid.d.ts | 2 +- .../js}/PopupMenuAndroid.js | 25 ++++++++- .../js}/PopupMenuAndroidNativeComponent.js | 10 ++-- .../package.json | 39 +++++++++++++ .../PopupMenuAndroidNativeComponent.js | 13 ----- .../__snapshots__/public-api-test.js.snap | 36 ------------ .../ReactAndroid/api/ReactAndroid.api | 52 ----------------- .../react/shell/MainReactPackage.java | 3 - .../react/fabric/CoreComponentsRegistry.cpp | 2 - packages/react-native/index.js | 5 -- .../rn-tester/android/app/build.gradle.kts | 1 + .../react/uiapp/RNTesterApplication.kt | 2 + .../PopupMenuAndroidExample.js | 5 +- packages/rn-tester/metro.config.js | 1 + packages/rn-tester/package.json | 3 +- settings.gradle.kts | 1 + 37 files changed, 482 insertions(+), 129 deletions(-) create mode 100644 packages/react-native-popup-menu-android/android/build.gradle.kts create mode 100644 packages/react-native-popup-menu-android/android/gradle.properties create mode 100644 packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ComponentDescriptors.h create mode 100644 packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.cpp create mode 100644 packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.h create mode 100644 packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.cpp create mode 100644 packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.h create mode 100644 packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.cpp create mode 100644 packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.h create mode 100644 packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/States.cpp create mode 100644 packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/States.h create mode 100644 packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/PopupMenuPackage.kt rename packages/{react-native/ReactAndroid/src/main/java/com/facebook/react/views => react-native-popup-menu-android/android/src/main/java/com/facebook/react}/popupmenu/PopupMenuSelectionEvent.kt (89%) rename packages/{react-native/ReactAndroid/src/main/java/com/facebook/react/views => react-native-popup-menu-android/android/src/main/java/com/facebook/react}/popupmenu/ReactPopupMenuContainer.kt (97%) rename packages/{react-native/ReactAndroid/src/main/java/com/facebook/react/views => react-native-popup-menu-android/android/src/main/java/com/facebook/react}/popupmenu/ReactPopupMenuManager.kt (97%) create mode 100644 packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/viewmanagers/AndroidPopupMenuManagerDelegate.java create mode 100644 packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/viewmanagers/AndroidPopupMenuManagerInterface.java create mode 100644 packages/react-native-popup-menu-android/index.d.ts create mode 100644 packages/react-native-popup-menu-android/index.js rename packages/{react-native/Libraries/Components/PopupMenuAndroid => react-native-popup-menu-android/js}/PopupMenuAndroid.android.js (91%) rename packages/{react-native/Libraries/Components/PopupMenuAndroid => react-native-popup-menu-android/js}/PopupMenuAndroid.d.ts (89%) rename packages/{react-native/Libraries/Components/PopupMenuAndroid => react-native-popup-menu-android/js}/PopupMenuAndroid.js (50%) rename packages/{react-native/src/private/specs/components => react-native-popup-menu-android/js}/PopupMenuAndroidNativeComponent.js (68%) create mode 100644 packages/react-native-popup-menu-android/package.json delete mode 100644 packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js diff --git a/.gitignore b/.gitignore index 7e334430180887..626d954cfa3f18 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,7 @@ project.xcworkspace /packages/react-native/ReactAndroid/hermes-engine/.cxx/ /packages/react-native/template/android/app/build/ /packages/react-native/template/android/build/ +/packages/react-native-popup-menu-android/android/build/ # Buck .buckd diff --git a/packages/react-native-popup-menu-android/android/build.gradle.kts b/packages/react-native-popup-menu-android/android/build.gradle.kts new file mode 100644 index 00000000000000..d861b977491ea5 --- /dev/null +++ b/packages/react-native-popup-menu-android/android/build.gradle.kts @@ -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. + */ + +plugins { + id("com.facebook.react") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) +} + +android { + compileSdk = libs.versions.compileSdk.get().toInt() + buildToolsVersion = libs.versions.buildTools.get() + namespace = "com.facebook.react.popupmenu" + + defaultConfig { + minSdk = libs.versions.minSdk.get().toInt() + targetSdk = libs.versions.targetSdk.get().toInt() + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { jvmTarget = "17" } +} + +dependencies { + // Build React Native from source + implementation(project(":packages:react-native:ReactAndroid")) +} diff --git a/packages/react-native-popup-menu-android/android/gradle.properties b/packages/react-native-popup-menu-android/android/gradle.properties new file mode 100644 index 00000000000000..f436a7474fed62 --- /dev/null +++ b/packages/react-native-popup-menu-android/android/gradle.properties @@ -0,0 +1,3 @@ +# We want to have more fine grained control on the Java version for +# ReactAndroid, therefore we disable RGNP Java version alignment mechanism +react.internal.disableJavaVersionAlignment=true diff --git a/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ComponentDescriptors.h b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ComponentDescriptors.h new file mode 100644 index 00000000000000..af069cd67fc885 --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ComponentDescriptors.h @@ -0,0 +1,20 @@ + +/** + * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). + * + * Do not edit this file as changes may cause incorrect behavior and will be lost + * once the code is regenerated. + * + * @generated by codegen project: GenerateComponentDescriptorH.js + */ + +#pragma once + +#include "ShadowNodes.h" +#include + +namespace facebook::react { + +using AndroidPopupMenuComponentDescriptor = ConcreteComponentDescriptor; + +} // namespace facebook::react diff --git a/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.cpp b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.cpp new file mode 100644 index 00000000000000..0c18d59e3a63db --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.cpp @@ -0,0 +1,24 @@ + +/** + * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). + * + * Do not edit this file as changes may cause incorrect behavior and will be lost + * once the code is regenerated. + * + * @generated by codegen project: GenerateEventEmitterCpp.js + */ + +#include "EventEmitters.h" + + +namespace facebook::react { + +void AndroidPopupMenuEventEmitter::onSelectionChange(OnSelectionChange $event) const { + dispatchEvent("selectionChange", [$event=std::move($event)](jsi::Runtime &runtime) { + auto $payload = jsi::Object(runtime); + $payload.setProperty(runtime, "item", $event.item); + return $payload; + }); +} + +} // namespace facebook::react diff --git a/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.h b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.h new file mode 100644 index 00000000000000..a0387907710fe0 --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/EventEmitters.h @@ -0,0 +1,25 @@ + +/** + * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). + * + * Do not edit this file as changes may cause incorrect behavior and will be lost + * once the code is regenerated. + * + * @generated by codegen project: GenerateEventEmitterH.js + */ +#pragma once + +#include + + +namespace facebook::react { +class AndroidPopupMenuEventEmitter : public ViewEventEmitter { + public: + using ViewEventEmitter::ViewEventEmitter; + + struct OnSelectionChange { + int item; + }; + void onSelectionChange(OnSelectionChange value) const; +}; +} // namespace facebook::react diff --git a/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.cpp b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.cpp new file mode 100644 index 00000000000000..ddcdcff88ebfef --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.cpp @@ -0,0 +1,25 @@ + +/** + * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). + * + * Do not edit this file as changes may cause incorrect behavior and will be lost + * once the code is regenerated. + * + * @generated by codegen project: GeneratePropsCpp.js + */ + +#include "Props.h" +#include +#include + +namespace facebook::react { + +AndroidPopupMenuProps::AndroidPopupMenuProps( + const PropsParserContext &context, + const AndroidPopupMenuProps &sourceProps, + const RawProps &rawProps): ViewProps(context, sourceProps, rawProps), + + menuItems(convertRawProp(context, rawProps, "menuItems", sourceProps.menuItems, {})) + {} + +} // namespace facebook::react diff --git a/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.h b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.h new file mode 100644 index 00000000000000..191f0b15776bc5 --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/Props.h @@ -0,0 +1,28 @@ + +/** + * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). + * + * Do not edit this file as changes may cause incorrect behavior and will be lost + * once the code is regenerated. + * + * @generated by codegen project: GeneratePropsH.js + */ +#pragma once + +#include +#include +#include + +namespace facebook::react { + +class AndroidPopupMenuProps final : public ViewProps { + public: + AndroidPopupMenuProps() = default; + AndroidPopupMenuProps(const PropsParserContext& context, const AndroidPopupMenuProps &sourceProps, const RawProps &rawProps); + +#pragma mark - Props + + std::vector menuItems{}; +}; + +} // namespace facebook::react diff --git a/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.cpp b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.cpp new file mode 100644 index 00000000000000..5fd96dbbadaacf --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.cpp @@ -0,0 +1,17 @@ + +/** + * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). + * + * Do not edit this file as changes may cause incorrect behavior and will be lost + * once the code is regenerated. + * + * @generated by codegen project: GenerateShadowNodeCpp.js + */ + +#include "ShadowNodes.h" + +namespace facebook::react { + +extern const char AndroidPopupMenuComponentName[] = "AndroidPopupMenu"; + +} // namespace facebook::react diff --git a/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.h b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.h new file mode 100644 index 00000000000000..0fd9852b1bca57 --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/ShadowNodes.h @@ -0,0 +1,32 @@ + +/** + * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). + * + * Do not edit this file as changes may cause incorrect behavior and will be lost + * once the code is regenerated. + * + * @generated by codegen project: GenerateShadowNodeH.js + */ + +#pragma once + +#include "EventEmitters.h" +#include "Props.h" +#include "States.h" +#include +#include + +namespace facebook::react { + +JSI_EXPORT extern const char AndroidPopupMenuComponentName[]; + +/* + * `ShadowNode` for component. + */ +using AndroidPopupMenuShadowNode = ConcreteViewShadowNode< + AndroidPopupMenuComponentName, + AndroidPopupMenuProps, + AndroidPopupMenuEventEmitter, + AndroidPopupMenuState>; + +} // namespace facebook::react diff --git a/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/States.cpp b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/States.cpp new file mode 100644 index 00000000000000..1dbb184cbddb62 --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/States.cpp @@ -0,0 +1,16 @@ + +/** + * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). + * + * Do not edit this file as changes may cause incorrect behavior and will be lost + * once the code is regenerated. + * + * @generated by codegen project: GenerateStateCpp.js + */ +#include "States.h" + +namespace facebook::react { + + + +} // namespace facebook::react diff --git a/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/States.h b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/States.h new file mode 100644 index 00000000000000..62c048033b7021 --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/jni/react/renderer/components/ReactPopupMenuAndroidSpecs/States.h @@ -0,0 +1,34 @@ +/** + * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). + * + * Do not edit this file as changes may cause incorrect behavior and will be lost + * once the code is regenerated. + * + * @generated by codegen project: GenerateStateH.js + */ +#pragma once + +#ifdef ANDROID +#include +#include +#include +#endif + +namespace facebook::react { + +class AndroidPopupMenuState { +public: + AndroidPopupMenuState() = default; + +#ifdef ANDROID + AndroidPopupMenuState(AndroidPopupMenuState const &previousState, folly::dynamic data){}; + folly::dynamic getDynamic() const { + return {}; + }; + MapBuffer getMapBuffer() const { + return MapBufferBuilder::EMPTY(); + }; +#endif +}; + +} // namespace facebook::react diff --git a/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/PopupMenuPackage.kt b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/PopupMenuPackage.kt new file mode 100644 index 00000000000000..0a351d28643ee0 --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/PopupMenuPackage.kt @@ -0,0 +1,56 @@ +/* + * 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. + */ + +package com.facebook.react.popupmenu + +import com.facebook.react.BaseReactPackage +import com.facebook.react.ViewManagerOnDemandReactPackage +import com.facebook.react.bridge.ModuleSpec +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.module.annotations.ReactModuleList +import com.facebook.react.module.model.ReactModuleInfoProvider +import com.facebook.react.uimanager.ViewManager + +@ReactModuleList(nativeModules = arrayOf()) +class PopupMenuPackage() : BaseReactPackage(), ViewManagerOnDemandReactPackage { + private var viewManagersMap: Map? = null + + override fun getModule(name: String, context: ReactApplicationContext): NativeModule? { + return null + } + + private fun getViewManagersMap(): Map { + val viewManagers = + viewManagersMap + ?: mapOf( + ReactPopupMenuManager.REACT_CLASS to + ModuleSpec.viewManagerSpec({ ReactPopupMenuManager() })) + viewManagersMap = viewManagers + return viewManagers + } + + protected override fun getViewManagers(context: ReactApplicationContext): List { + return ArrayList(getViewManagersMap().values) + } + + override fun getViewManagerNames(context: ReactApplicationContext): Collection { + return getViewManagersMap().keys + } + + override fun createViewManager( + reactContext: ReactApplicationContext, + viewManagerName: String + ): ViewManager<*, *>? { + val spec: ModuleSpec? = getViewManagersMap().get(viewManagerName) + return if (spec != null) (spec.getProvider().get() as ViewManager<*, *>) else null + } + + override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { + return ReactModuleInfoProvider { emptyMap() } + } +} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/popupmenu/PopupMenuSelectionEvent.kt b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/PopupMenuSelectionEvent.kt similarity index 89% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/popupmenu/PopupMenuSelectionEvent.kt rename to packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/PopupMenuSelectionEvent.kt index f0195e6d29ff4d..289b70d566c870 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/popupmenu/PopupMenuSelectionEvent.kt +++ b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/PopupMenuSelectionEvent.kt @@ -5,9 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -@file:Suppress("DEPRECATION") // We want to use RCTEventEmitter for interop purposes - -package com.facebook.react.views.popupmenu +package com.facebook.react.popupmenu import com.facebook.react.bridge.Arguments import com.facebook.react.bridge.WritableMap diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/popupmenu/ReactPopupMenuContainer.kt b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/ReactPopupMenuContainer.kt similarity index 97% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/popupmenu/ReactPopupMenuContainer.kt rename to packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/ReactPopupMenuContainer.kt index 57574290bacbe3..6be3bfc916d059 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/popupmenu/ReactPopupMenuContainer.kt +++ b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/ReactPopupMenuContainer.kt @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -package com.facebook.react.views.popupmenu +package com.facebook.react.popupmenu import android.content.Context import android.os.Build diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/popupmenu/ReactPopupMenuManager.kt b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/ReactPopupMenuManager.kt similarity index 97% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/popupmenu/ReactPopupMenuManager.kt rename to packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/ReactPopupMenuManager.kt index 99dd6b72aa3c92..3758f154c8741e 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/popupmenu/ReactPopupMenuManager.kt +++ b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/popupmenu/ReactPopupMenuManager.kt @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -package com.facebook.react.views.popupmenu +package com.facebook.react.popupmenu import com.facebook.react.bridge.ReadableArray import com.facebook.react.module.annotations.ReactModule diff --git a/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/viewmanagers/AndroidPopupMenuManagerDelegate.java b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/viewmanagers/AndroidPopupMenuManagerDelegate.java new file mode 100644 index 00000000000000..736b778e5948f5 --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/viewmanagers/AndroidPopupMenuManagerDelegate.java @@ -0,0 +1,41 @@ +/** +* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). +* +* Do not edit this file as changes may cause incorrect behavior and will be lost +* once the code is regenerated. +* +* @generated by codegen project: GeneratePropsJavaDelegate.js +*/ + +package com.facebook.react.viewmanagers; + +import android.view.View; +import androidx.annotation.Nullable; +import com.facebook.react.bridge.ReadableArray; +import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; + +public class AndroidPopupMenuManagerDelegate & AndroidPopupMenuManagerInterface> extends BaseViewManagerDelegate { + public AndroidPopupMenuManagerDelegate(U viewManager) { + super(viewManager); + } + @Override + public void setProperty(T view, String propName, @Nullable Object value) { + switch (propName) { + case "menuItems": + mViewManager.setMenuItems(view, (ReadableArray) value); + break; + default: + super.setProperty(view, propName, value); + } + } + + @Override + public void receiveCommand(T view, String commandName, ReadableArray args) { + switch (commandName) { + case "show": + mViewManager.show(view); + break; + } + } +} diff --git a/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/viewmanagers/AndroidPopupMenuManagerInterface.java b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/viewmanagers/AndroidPopupMenuManagerInterface.java new file mode 100644 index 00000000000000..83e94ab5e295a2 --- /dev/null +++ b/packages/react-native-popup-menu-android/android/src/main/java/com/facebook/react/viewmanagers/AndroidPopupMenuManagerInterface.java @@ -0,0 +1,19 @@ +/** +* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). +* +* Do not edit this file as changes may cause incorrect behavior and will be lost +* once the code is regenerated. +* +* @generated by codegen project: GeneratePropsJavaInterface.js +*/ + +package com.facebook.react.viewmanagers; + +import android.view.View; +import androidx.annotation.Nullable; +import com.facebook.react.bridge.ReadableArray; + +public interface AndroidPopupMenuManagerInterface { + void setMenuItems(T view, @Nullable ReadableArray value); + void show(T view); +} diff --git a/packages/react-native-popup-menu-android/index.d.ts b/packages/react-native-popup-menu-android/index.d.ts new file mode 100644 index 00000000000000..9caa4c385a77e4 --- /dev/null +++ b/packages/react-native-popup-menu-android/index.d.ts @@ -0,0 +1,11 @@ +/** + * 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 + */ + +export type {default} from './PopupMenuAndroid'; +export type {PopupMenuAndroidInstance} from './PopupMenuAndroid'; diff --git a/packages/react-native-popup-menu-android/index.js b/packages/react-native-popup-menu-android/index.js new file mode 100644 index 00000000000000..f433cc1331389f --- /dev/null +++ b/packages/react-native-popup-menu-android/index.js @@ -0,0 +1,12 @@ +/** + * 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 + */ + +export {default} from './js/PopupMenuAndroid'; +export type {PopupMenuAndroidInstance} from './js/PopupMenuAndroid'; diff --git a/packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js b/packages/react-native-popup-menu-android/js/PopupMenuAndroid.android.js similarity index 91% rename from packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js rename to packages/react-native-popup-menu-android/js/PopupMenuAndroid.android.js index 035a1da5b150d6..b7ab6e0bf2b933 100644 --- a/packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js +++ b/packages/react-native-popup-menu-android/js/PopupMenuAndroid.android.js @@ -8,9 +8,9 @@ * @flow strict-local */ -import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes'; -import type {SyntheticEvent} from '../../Types/CoreEventTypes'; import type {RefObject} from 'react'; +import type {HostComponent} from 'react-native'; +import type {SyntheticEvent} from 'react-native/Libraries/Types/CoreEventTypes'; import PopupMenuAndroidNativeComponent, { Commands, diff --git a/packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts b/packages/react-native-popup-menu-android/js/PopupMenuAndroid.d.ts similarity index 89% rename from packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts rename to packages/react-native-popup-menu-android/js/PopupMenuAndroid.d.ts index 435df11d487fe7..8eab4875f38347 100644 --- a/packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts +++ b/packages/react-native-popup-menu-android/js/PopupMenuAndroid.d.ts @@ -8,7 +8,7 @@ */ import type * as React from 'react'; -import {HostComponent} from '../../../types/public/ReactNativeTypes'; +import {HostComponent} from 'react-native'; type PopupMenuAndroidInstance = { show: () => void; diff --git a/packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js b/packages/react-native-popup-menu-android/js/PopupMenuAndroid.js similarity index 50% rename from packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js rename to packages/react-native-popup-menu-android/js/PopupMenuAndroid.js index 94677cd6b8d23d..1331d32bd29722 100644 --- a/packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js +++ b/packages/react-native-popup-menu-android/js/PopupMenuAndroid.js @@ -12,8 +12,29 @@ import type {RefObject} from 'react'; import type {Node} from 'react'; import * as React from 'react'; +import {StyleSheet, View} from 'react-native'; -const UnimplementedView = require('../UnimplementedViews/UnimplementedView'); +/** + * Common implementation for a simple stubbed view. Simply applies the view's styles to the inner + * View component and renders its children. + */ +class UnimplementedView extends React.Component<{children: Node}> { + render(): React.Node { + return ( + {this.props.children} + ); + } +} + +const styles = StyleSheet.create({ + unimplementedView: __DEV__ + ? { + alignSelf: 'flex-start', + borderColor: 'red', + borderWidth: 1, + } + : {}, +}); export type PopupMenuAndroidInstance = { +show: () => void, @@ -27,7 +48,7 @@ type Props = { }; function PopupMenuAndroid(props: Props): Node { - return ; + return {props.children}; } export default PopupMenuAndroid; diff --git a/packages/react-native/src/private/specs/components/PopupMenuAndroidNativeComponent.js b/packages/react-native-popup-menu-android/js/PopupMenuAndroidNativeComponent.js similarity index 68% rename from packages/react-native/src/private/specs/components/PopupMenuAndroidNativeComponent.js rename to packages/react-native-popup-menu-android/js/PopupMenuAndroidNativeComponent.js index 81801f65f4d0dd..7558d75415bfb0 100644 --- a/packages/react-native/src/private/specs/components/PopupMenuAndroidNativeComponent.js +++ b/packages/react-native-popup-menu-android/js/PopupMenuAndroidNativeComponent.js @@ -8,16 +8,16 @@ * @format */ -import type {ViewProps} from '../../../../Libraries/Components/View/ViewPropTypes'; -import type {HostComponent} from '../../../../Libraries/Renderer/shims/ReactNativeTypes'; +import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes'; +import type {HostComponent} from 'react-native/Libraries/Renderer/shims/ReactNativeTypes'; import type { DirectEventHandler, Int32, -} from '../../../../Libraries/Types/CodegenTypes'; +} from 'react-native/Libraries/Types/CodegenTypes'; -import codegenNativeCommands from '../../../../Libraries/Utilities/codegenNativeCommands'; -import codegenNativeComponent from '../../../../Libraries/Utilities/codegenNativeComponent'; import * as React from 'react'; +import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands'; +import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; type PopupMenuSelectionEvent = $ReadOnly<{ item: Int32, diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json new file mode 100644 index 00000000000000..9be32ece5c1cf1 --- /dev/null +++ b/packages/react-native-popup-menu-android/package.json @@ -0,0 +1,39 @@ +{ + "name": "@react-native/popup-menu-android", + "version": "0.74.0", + "description": "PopupMenu for the Android platform", + "react-native": "js/PopupMenuAndroid", + "source": "js/PopupMenuAndroid", + "files": [ + "js", + "android", + "!android/build", + "!**/__tests__", + "!**/__fixtures__", + "!**/__mocks__" + ], + "keywords": ["react-native", "android"], + "license": "MIT", + "devDependencies": { + "@react-native/codegen": "*" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + }, + "dependencies": { + "nullthrows": "^1.1.1" + }, + "codegenConfig": { + "name": "ReactPopupMenuAndroidSpecs", + "type": "components", + "jsSrcsDir": "js", + "outputDir": { + "android": "android" + }, + "includesGeneratedCode": true, + "android": { + "javaPackageName": "com.facebook.react.viewmanagers" + } + } +} diff --git a/packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js b/packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js deleted file mode 100644 index 05bbd5693155c5..00000000000000 --- a/packages/react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js +++ /dev/null @@ -1,13 +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. - * - * @format - * @flow strict-local - */ - -export * from '../../../src/private/specs/components/PopupMenuAndroidNativeComponent'; -import PopupMenuAndroidNativeComponent from '../../../src/private/specs/components/PopupMenuAndroidNativeComponent'; -export default PopupMenuAndroidNativeComponent; diff --git a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap index de27ba219ed603..bf6a0a0b61f928 100644 --- a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap +++ b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap @@ -1773,41 +1773,6 @@ declare export default typeof NativeKeyboardObserver; " `; -exports[`public API should not change unintentionally Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js 1`] = ` -"export type PopupMenuAndroidInstance = { - +show: () => void, -}; -type Props = { - menuItems: $ReadOnlyArray, - onSelectionChange: (number) => void, - children: React.Node, - instanceRef: RefObject, -}; -declare export default function PopupMenuAndroid(Props): React.Node; -" -`; - -exports[`public API should not change unintentionally Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js 1`] = ` -"export type PopupMenuAndroidInstance = { - +show: () => void, -}; -type Props = { - menuItems: $ReadOnlyArray, - onSelectionChange: (number) => void, - children: Node, - instanceRef: RefObject, -}; -declare function PopupMenuAndroid(props: Props): Node; -declare export default typeof PopupMenuAndroid; -" -`; - -exports[`public API should not change unintentionally Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js 1`] = ` -"export * from \\"../../../src/private/specs/components/PopupMenuAndroidNativeComponent\\"; -declare export default typeof PopupMenuAndroidNativeComponent; -" -`; - exports[`public API should not change unintentionally Libraries/Components/Pressable/Pressable.js 1`] = ` "type ViewStyleProp = $ElementType, \\"style\\">; export type StateCallbackType = $ReadOnly<{| @@ -9026,7 +8991,6 @@ declare module.exports: { get ImageBackground(): ImageBackground, get InputAccessoryView(): InputAccessoryView, get KeyboardAvoidingView(): KeyboardAvoidingView, - get PopupMenuAndroid(): PopupMenuAndroid, get Modal(): Modal, get Pressable(): Pressable, get ProgressBarAndroid(): ProgressBarAndroid, diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index dd23037f872875..f7c5343d1d7169 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -5676,17 +5676,6 @@ public abstract interface class com/facebook/react/viewmanagers/AndroidHorizonta public abstract fun setRemoveClippedSubviews (Landroid/view/View;Z)V } -public class com/facebook/react/viewmanagers/AndroidPopupMenuManagerDelegate : com/facebook/react/uimanager/BaseViewManagerDelegate { - public fun (Lcom/facebook/react/uimanager/BaseViewManagerInterface;)V - public fun receiveCommand (Landroid/view/View;Ljava/lang/String;Lcom/facebook/react/bridge/ReadableArray;)V - public fun setProperty (Landroid/view/View;Ljava/lang/String;Ljava/lang/Object;)V -} - -public abstract interface class com/facebook/react/viewmanagers/AndroidPopupMenuManagerInterface { - public abstract fun setMenuItems (Landroid/view/View;Lcom/facebook/react/bridge/ReadableArray;)V - public abstract fun show (Landroid/view/View;)V -} - public class com/facebook/react/viewmanagers/AndroidProgressBarManagerDelegate : com/facebook/react/uimanager/BaseViewManagerDelegate { public fun (Lcom/facebook/react/uimanager/BaseViewManagerInterface;)V public fun setProperty (Landroid/view/View;Ljava/lang/String;Ljava/lang/Object;)V @@ -6156,47 +6145,6 @@ public abstract interface class com/facebook/react/views/modal/ReactModalHostVie public abstract fun onRequestClose (Landroid/content/DialogInterface;)V } -public final class com/facebook/react/views/popupmenu/PopupMenuSelectionEvent : com/facebook/react/uimanager/events/Event { - public static final field Companion Lcom/facebook/react/views/popupmenu/PopupMenuSelectionEvent$Companion; - public static final field EVENT_NAME Ljava/lang/String; - public fun (III)V - public fun dispatch (Lcom/facebook/react/uimanager/events/RCTEventEmitter;)V - public fun getEventName ()Ljava/lang/String; -} - -public final class com/facebook/react/views/popupmenu/PopupMenuSelectionEvent$Companion { -} - -public final class com/facebook/react/views/popupmenu/ReactPopupMenuContainer : android/widget/FrameLayout { - public fun (Landroid/content/Context;)V - public final fun setMenuItems (Lcom/facebook/react/bridge/ReadableArray;)V - public final fun showPopupMenu ()V -} - -public final class com/facebook/react/views/popupmenu/ReactPopupMenuManager : com/facebook/react/uimanager/ViewGroupManager, com/facebook/react/viewmanagers/AndroidPopupMenuManagerInterface { - public static final field Companion Lcom/facebook/react/views/popupmenu/ReactPopupMenuManager$Companion; - public static final field REACT_CLASS Ljava/lang/String; - public fun ()V - public synthetic fun createViewInstance (Lcom/facebook/react/uimanager/ThemedReactContext;)Landroid/view/View; - public fun getName ()Ljava/lang/String; - public synthetic fun receiveCommand (Landroid/view/View;Ljava/lang/String;Lcom/facebook/react/bridge/ReadableArray;)V - public fun receiveCommand (Lcom/facebook/react/views/popupmenu/ReactPopupMenuContainer;Ljava/lang/String;Lcom/facebook/react/bridge/ReadableArray;)V - public synthetic fun setMenuItems (Landroid/view/View;Lcom/facebook/react/bridge/ReadableArray;)V - public fun setMenuItems (Lcom/facebook/react/views/popupmenu/ReactPopupMenuContainer;Lcom/facebook/react/bridge/ReadableArray;)V - public synthetic fun show (Landroid/view/View;)V - public fun show (Lcom/facebook/react/views/popupmenu/ReactPopupMenuContainer;)V -} - -public class com/facebook/react/views/popupmenu/ReactPopupMenuManager$$PropsSetter : com/facebook/react/uimanager/ViewManagerPropertyUpdater$ViewManagerSetter { - public fun ()V - public fun getProperties (Ljava/util/Map;)V - public synthetic fun setProperty (Lcom/facebook/react/uimanager/ViewManager;Landroid/view/View;Ljava/lang/String;Ljava/lang/Object;)V - public fun setProperty (Lcom/facebook/react/views/popupmenu/ReactPopupMenuManager;Lcom/facebook/react/views/popupmenu/ReactPopupMenuContainer;Ljava/lang/String;Ljava/lang/Object;)V -} - -public final class com/facebook/react/views/popupmenu/ReactPopupMenuManager$Companion { -} - public class com/facebook/react/views/progressbar/ProgressBarShadowNode : com/facebook/react/uimanager/LayoutShadowNode, com/facebook/yoga/YogaMeasureFunction { public fun ()V public fun getStyle ()Ljava/lang/String; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java index 0b34c680f95274..b95774889eb4fc 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java @@ -46,7 +46,6 @@ import com.facebook.react.views.drawer.ReactDrawerLayoutManager; import com.facebook.react.views.image.ReactImageManager; import com.facebook.react.views.modal.ReactModalHostManager; -import com.facebook.react.views.popupmenu.ReactPopupMenuManager; import com.facebook.react.views.progressbar.ReactProgressBarViewManager; import com.facebook.react.views.scroll.ReactHorizontalScrollContainerViewManager; import com.facebook.react.views.scroll.ReactHorizontalScrollViewManager; @@ -170,7 +169,6 @@ public List createViewManagers(ReactApplicationContext reactContext viewManagers.add(new ReactScrollViewManager()); viewManagers.add(new ReactSwitchManager()); viewManagers.add(new SwipeRefreshLayoutManager()); - viewManagers.add(new ReactPopupMenuManager()); // Native equivalents viewManagers.add(new FrescoBasedReactTextInlineImageViewManager()); @@ -212,7 +210,6 @@ public Map getViewManagersMap() { appendMap(viewManagers, ReactSwitchManager.REACT_CLASS, ReactSwitchManager::new); appendMap( viewManagers, SwipeRefreshLayoutManager.REACT_CLASS, SwipeRefreshLayoutManager::new); - appendMap(viewManagers, ReactPopupMenuManager.REACT_CLASS, ReactPopupMenuManager::new); appendMap( viewManagers, FrescoBasedReactTextInlineImageViewManager.REACT_CLASS, diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp index fdb2f051621fd2..fd8e579865f73b 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp @@ -67,8 +67,6 @@ CoreComponentsRegistry::sharedProviderRegistry() { AndroidDrawerLayoutComponentDescriptor>()); providerRegistry->add(concreteComponentDescriptorProvider< DebuggingOverlayComponentDescriptor>()); - providerRegistry->add(concreteComponentDescriptorProvider< - AndroidPopupMenuComponentDescriptor>()); return providerRegistry; }(); diff --git a/packages/react-native/index.js b/packages/react-native/index.js index 2dfeafbb64efd7..f087b702545fcd 100644 --- a/packages/react-native/index.js +++ b/packages/react-native/index.js @@ -27,7 +27,6 @@ import typeof Clipboard from './Libraries/Components/Clipboard/Clipboard'; import typeof DrawerLayoutAndroid from './Libraries/Components/DrawerAndroid/DrawerLayoutAndroid'; import typeof Keyboard from './Libraries/Components/Keyboard/Keyboard'; import typeof KeyboardAvoidingView from './Libraries/Components/Keyboard/KeyboardAvoidingView'; -import typeof PopupMenuAndroid from './Libraries/Components/PopupMenuAndroid/PopupMenuAndroid'; import typeof Pressable from './Libraries/Components/Pressable/Pressable'; import typeof ProgressBarAndroid from './Libraries/Components/ProgressBarAndroid/ProgressBarAndroid'; import typeof RefreshControl from './Libraries/Components/RefreshControl/RefreshControl'; @@ -135,10 +134,6 @@ module.exports = { return require('./Libraries/Components/Keyboard/KeyboardAvoidingView') .default; }, - get PopupMenuAndroid(): PopupMenuAndroid { - return require('./Libraries/Components/PopupMenuAndroid/PopupMenuAndroid') - .default; - }, get Modal(): Modal { return require('./Libraries/Modal/Modal'); }, diff --git a/packages/rn-tester/android/app/build.gradle.kts b/packages/rn-tester/android/app/build.gradle.kts index 5ad05a044325fd..e2c69a64985e34 100644 --- a/packages/rn-tester/android/app/build.gradle.kts +++ b/packages/rn-tester/android/app/build.gradle.kts @@ -151,6 +151,7 @@ android { dependencies { // Build React Native from source implementation(project(":packages:react-native:ReactAndroid")) + implementation(project(":packages:react-native-popup-menu-android:android")) // Consume Hermes as built from source only for the Hermes variant. "hermesImplementation"(project(":packages:react-native:ReactAndroid:hermes-engine")) diff --git a/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.kt b/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.kt index 33b2373fd46c27..01756aea982108 100644 --- a/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.kt +++ b/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.kt @@ -25,6 +25,7 @@ import com.facebook.react.defaults.DefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost import com.facebook.react.module.model.ReactModuleInfo import com.facebook.react.module.model.ReactModuleInfoProvider +import com.facebook.react.popupmenu.PopupMenuPackage import com.facebook.react.shell.MainReactPackage import com.facebook.react.uiapp.component.MyLegacyViewManager import com.facebook.react.uiapp.component.MyNativeViewManager @@ -44,6 +45,7 @@ class RNTesterApplication : Application(), ReactApplication { public override fun getPackages(): List { return listOf( MainReactPackage(), + PopupMenuPackage(), object : TurboReactPackage() { override fun getModule( name: String, diff --git a/packages/rn-tester/js/examples/PopupMenuAndroid/PopupMenuAndroidExample.js b/packages/rn-tester/js/examples/PopupMenuAndroid/PopupMenuAndroidExample.js index 2b35119e662ed8..3934c0f4f08307 100644 --- a/packages/rn-tester/js/examples/PopupMenuAndroid/PopupMenuAndroidExample.js +++ b/packages/rn-tester/js/examples/PopupMenuAndroid/PopupMenuAndroidExample.js @@ -10,11 +10,12 @@ 'use strict'; +import type {PopupMenuAndroidInstance} from '@react-native/popup-menu-android'; import type {Node} from 'react'; -import type {PopupMenuAndroidInstance} from 'react-native/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid'; +import PopupMenuAndroid from '@react-native/popup-menu-android'; import * as React from 'react'; -import {Button, PopupMenuAndroid, StyleSheet, Text, View} from 'react-native'; +import {Button, StyleSheet, Text, View} from 'react-native'; type Fruit = 'Apple' | 'Pear' | 'Banana' | 'Orange' | 'Kiwi'; diff --git a/packages/rn-tester/metro.config.js b/packages/rn-tester/metro.config.js index 3c41387cc19b65..87b72ad0f6c214 100644 --- a/packages/rn-tester/metro.config.js +++ b/packages/rn-tester/metro.config.js @@ -30,6 +30,7 @@ const config = { path.resolve(__dirname, '../polyfills'), path.resolve(__dirname, '../react-native'), path.resolve(__dirname, '../virtualized-lists'), + path.resolve(__dirname, '../react-native-popup-menu-android'), ], resolver: { blockList: [/..\/react-native\/sdks\/hermes/], diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index d63abf26aab14e..87ed68d334c9b8 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -25,7 +25,8 @@ "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "nullthrows": "^1.1.1" + "nullthrows": "^1.1.1", + "@react-native/popup-menu-android": "^0.74.0" }, "peerDependencies": { "react": "18.2.0", diff --git a/settings.gradle.kts b/settings.gradle.kts index 21064d004c9efe..0919ad1f7a74bf 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -17,6 +17,7 @@ include( ":packages:react-native:ReactAndroid", ":packages:react-native:ReactAndroid:hermes-engine", ":packages:react-native:ReactAndroid:external-artifacts", + ":packages:react-native-popup-menu-android:android", ":packages:rn-tester:android:app") includeBuild("packages/react-native-gradle-plugin/") From a5b5f6be78cd41194f80dbeaba669ca365ac9580 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Mon, 26 Feb 2024 11:34:05 -0800 Subject: [PATCH 020/223] Rename PopupMenuAndroidNativeComponent.js to PopupMenuAndroidNativeComponent.android.js to fix CI Summary: This change renames `PopupMenuAndroidNativeComponent.js` to `PopupMenuAndroidNativeComponent.android.js`. The reason is that, without the suffix, Codegen was reading the NativeComponent spec also for iOS, generating some invalid specs and making RNTester fail. ## Changelog: [Android][Changed] - Rename `PopupMenuAndroidNativeComponent.js` to `PopupMenuAndroidNativeComponent.android.js` Reviewed By: cortinico, dmytrorykun Differential Revision: D54199736 fbshipit-source-id: 7fd67c4d38a69fe3a84c800c8ee5dcbd8c4f9a6c --- .../js/PopupMenuAndroid.android.js | 2 +- ...eComponent.js => PopupMenuAndroidNativeComponent.android.js} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename packages/react-native-popup-menu-android/js/{PopupMenuAndroidNativeComponent.js => PopupMenuAndroidNativeComponent.android.js} (100%) diff --git a/packages/react-native-popup-menu-android/js/PopupMenuAndroid.android.js b/packages/react-native-popup-menu-android/js/PopupMenuAndroid.android.js index b7ab6e0bf2b933..b97d45cb5a476d 100644 --- a/packages/react-native-popup-menu-android/js/PopupMenuAndroid.android.js +++ b/packages/react-native-popup-menu-android/js/PopupMenuAndroid.android.js @@ -14,7 +14,7 @@ import type {SyntheticEvent} from 'react-native/Libraries/Types/CoreEventTypes'; import PopupMenuAndroidNativeComponent, { Commands, -} from './PopupMenuAndroidNativeComponent'; +} from './PopupMenuAndroidNativeComponent.android'; import nullthrows from 'nullthrows'; import * as React from 'react'; import {useCallback, useImperativeHandle, useRef} from 'react'; diff --git a/packages/react-native-popup-menu-android/js/PopupMenuAndroidNativeComponent.js b/packages/react-native-popup-menu-android/js/PopupMenuAndroidNativeComponent.android.js similarity index 100% rename from packages/react-native-popup-menu-android/js/PopupMenuAndroidNativeComponent.js rename to packages/react-native-popup-menu-android/js/PopupMenuAndroidNativeComponent.android.js From 011cb3a8d77440a4182a40253be961aedb18b119 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 4 Mar 2024 12:11:28 +0000 Subject: [PATCH 021/223] Update Podfile.lock --- packages/rn-tester/Podfile.lock | 492 +++++++++--------- .../RNTesterPods.xcodeproj/project.pbxproj | 4 - 2 files changed, 243 insertions(+), 253 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 8f4f3c21c9394c..d0132f3738e8a5 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,18 +1,12 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.0-rc.0) + - FBLazyVector (0.74.0-rc.1) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.0-rc.0): - - hermes-engine/Hermes (= 0.74.0-rc.0) - - hermes-engine/inspector (= 0.74.0-rc.0) - - hermes-engine/inspector_chrome (= 0.74.0-rc.0) - - hermes-engine/Public (= 0.74.0-rc.0) - - hermes-engine/Hermes (0.74.0-rc.0) - - hermes-engine/inspector (0.74.0-rc.0) - - hermes-engine/inspector_chrome (0.74.0-rc.0) - - hermes-engine/Public (0.74.0-rc.0) + - hermes-engine (0.74.0-rc.1): + - hermes-engine/Pre-built (= 0.74.0-rc.1) + - hermes-engine/Pre-built (0.74.0-rc.1) - MyNativeView (0.0.1): - DoubleConversion - glog @@ -72,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.0-rc.0) - - RCTRequired (0.74.0-rc.0) - - RCTTypeSafety (0.74.0-rc.0): - - FBLazyVector (= 0.74.0-rc.0) - - RCTRequired (= 0.74.0-rc.0) - - React-Core (= 0.74.0-rc.0) - - React (0.74.0-rc.0): - - React-Core (= 0.74.0-rc.0) - - React-Core/DevSupport (= 0.74.0-rc.0) - - React-Core/RCTWebSocket (= 0.74.0-rc.0) - - React-RCTActionSheet (= 0.74.0-rc.0) - - React-RCTAnimation (= 0.74.0-rc.0) - - React-RCTBlob (= 0.74.0-rc.0) - - React-RCTImage (= 0.74.0-rc.0) - - React-RCTLinking (= 0.74.0-rc.0) - - React-RCTNetwork (= 0.74.0-rc.0) - - React-RCTSettings (= 0.74.0-rc.0) - - React-RCTText (= 0.74.0-rc.0) - - React-RCTVibration (= 0.74.0-rc.0) - - React-callinvoker (0.74.0-rc.0) - - React-Codegen (0.74.0-rc.0): + - RCTDeprecation (0.74.0-rc.1) + - RCTRequired (0.74.0-rc.1) + - RCTTypeSafety (0.74.0-rc.1): + - FBLazyVector (= 0.74.0-rc.1) + - RCTRequired (= 0.74.0-rc.1) + - React-Core (= 0.74.0-rc.1) + - React (0.74.0-rc.1): + - React-Core (= 0.74.0-rc.1) + - React-Core/DevSupport (= 0.74.0-rc.1) + - React-Core/RCTWebSocket (= 0.74.0-rc.1) + - React-RCTActionSheet (= 0.74.0-rc.1) + - React-RCTAnimation (= 0.74.0-rc.1) + - React-RCTBlob (= 0.74.0-rc.1) + - React-RCTImage (= 0.74.0-rc.1) + - React-RCTLinking (= 0.74.0-rc.1) + - React-RCTNetwork (= 0.74.0-rc.1) + - React-RCTSettings (= 0.74.0-rc.1) + - React-RCTText (= 0.74.0-rc.1) + - React-RCTVibration (= 0.74.0-rc.1) + - React-callinvoker (0.74.0-rc.1) + - React-Codegen (0.74.0-rc.1): - DoubleConversion - glog - hermes-engine @@ -112,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.0-rc.0): + - React-Core (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.0) + - React-Core/Default (= 0.74.0-rc.1) - React-cxxreact - React-featureflags - React-hermes @@ -129,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.0-rc.0): + - React-Core/CoreModulesHeaders (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -146,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.0-rc.0): + - React-Core/Default (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -162,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.0-rc.0): + - React-Core/DevSupport (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.0) - - React-Core/RCTWebSocket (= 0.74.0-rc.0) + - React-Core/Default (= 0.74.0-rc.1) + - React-Core/RCTWebSocket (= 0.74.0-rc.1) - React-cxxreact - React-featureflags - React-hermes @@ -180,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.0-rc.0): + - React-Core/RCTActionSheetHeaders (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -197,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.0-rc.0): + - React-Core/RCTAnimationHeaders (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -214,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.0-rc.0): + - React-Core/RCTBlobHeaders (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -231,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.0-rc.0): + - React-Core/RCTImageHeaders (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -248,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.0-rc.0): + - React-Core/RCTLinkingHeaders (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -265,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.0-rc.0): + - React-Core/RCTNetworkHeaders (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -282,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.0-rc.0): + - React-Core/RCTPushNotificationHeaders (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -299,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.0-rc.0): + - React-Core/RCTSettingsHeaders (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -316,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.0-rc.0): + - React-Core/RCTTextHeaders (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -333,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.0-rc.0): + - React-Core/RCTVibrationHeaders (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -350,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.0-rc.0): + - React-Core/RCTWebSocket (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.0) + - React-Core/Default (= 0.74.0-rc.1) - React-cxxreact - React-featureflags - React-hermes @@ -367,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.0-rc.0): + - React-CoreModules (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.0-rc.0) + - RCTTypeSafety (= 0.74.0-rc.1) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.0-rc.0) - - React-jsi (= 0.74.0-rc.0) + - React-Core/CoreModulesHeaders (= 0.74.0-rc.1) + - React-jsi (= 0.74.0-rc.1) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.0-rc.0) + - React-RCTImage (= 0.74.0-rc.1) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.0-rc.0): + - React-cxxreact (0.74.0-rc.1): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.0) - - React-debug (= 0.74.0-rc.0) - - React-jsi (= 0.74.0-rc.0) + - React-callinvoker (= 0.74.0-rc.1) + - React-debug (= 0.74.0-rc.1) + - React-jsi (= 0.74.0-rc.1) - React-jsinspector - - React-logger (= 0.74.0-rc.0) - - React-perflogger (= 0.74.0-rc.0) - - React-runtimeexecutor (= 0.74.0-rc.0) - - React-debug (0.74.0-rc.0) - - React-Fabric (0.74.0-rc.0): + - React-logger (= 0.74.0-rc.1) + - React-perflogger (= 0.74.0-rc.1) + - React-runtimeexecutor (= 0.74.0-rc.1) + - React-debug (0.74.0-rc.1) + - React-Fabric (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -407,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.0-rc.0) - - React-Fabric/attributedstring (= 0.74.0-rc.0) - - React-Fabric/componentregistry (= 0.74.0-rc.0) - - React-Fabric/componentregistrynative (= 0.74.0-rc.0) - - React-Fabric/components (= 0.74.0-rc.0) - - React-Fabric/core (= 0.74.0-rc.0) - - React-Fabric/imagemanager (= 0.74.0-rc.0) - - React-Fabric/leakchecker (= 0.74.0-rc.0) - - React-Fabric/mounting (= 0.74.0-rc.0) - - React-Fabric/scheduler (= 0.74.0-rc.0) - - React-Fabric/telemetry (= 0.74.0-rc.0) - - React-Fabric/templateprocessor (= 0.74.0-rc.0) - - React-Fabric/textlayoutmanager (= 0.74.0-rc.0) - - React-Fabric/uimanager (= 0.74.0-rc.0) + - React-Fabric/animations (= 0.74.0-rc.1) + - React-Fabric/attributedstring (= 0.74.0-rc.1) + - React-Fabric/componentregistry (= 0.74.0-rc.1) + - React-Fabric/componentregistrynative (= 0.74.0-rc.1) + - React-Fabric/components (= 0.74.0-rc.1) + - React-Fabric/core (= 0.74.0-rc.1) + - React-Fabric/imagemanager (= 0.74.0-rc.1) + - React-Fabric/leakchecker (= 0.74.0-rc.1) + - React-Fabric/mounting (= 0.74.0-rc.1) + - React-Fabric/scheduler (= 0.74.0-rc.1) + - React-Fabric/telemetry (= 0.74.0-rc.1) + - React-Fabric/templateprocessor (= 0.74.0-rc.1) + - React-Fabric/textlayoutmanager (= 0.74.0-rc.1) + - React-Fabric/uimanager (= 0.74.0-rc.1) - React-graphics - React-jsi - React-jsiexecutor @@ -429,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.0-rc.0): + - React-Fabric/animations (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -448,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.0-rc.0): + - React-Fabric/attributedstring (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -467,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.0-rc.0): + - React-Fabric/componentregistry (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -486,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.0-rc.0): + - React-Fabric/componentregistrynative (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -505,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.0-rc.0): + - React-Fabric/components (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -516,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.0-rc.0) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.0) - - React-Fabric/components/modal (= 0.74.0-rc.0) - - React-Fabric/components/rncore (= 0.74.0-rc.0) - - React-Fabric/components/root (= 0.74.0-rc.0) - - React-Fabric/components/safeareaview (= 0.74.0-rc.0) - - React-Fabric/components/scrollview (= 0.74.0-rc.0) - - React-Fabric/components/text (= 0.74.0-rc.0) - - React-Fabric/components/textinput (= 0.74.0-rc.0) - - React-Fabric/components/unimplementedview (= 0.74.0-rc.0) - - React-Fabric/components/view (= 0.74.0-rc.0) + - React-Fabric/components/inputaccessory (= 0.74.0-rc.1) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.1) + - React-Fabric/components/modal (= 0.74.0-rc.1) + - React-Fabric/components/rncore (= 0.74.0-rc.1) + - React-Fabric/components/root (= 0.74.0-rc.1) + - React-Fabric/components/safeareaview (= 0.74.0-rc.1) + - React-Fabric/components/scrollview (= 0.74.0-rc.1) + - React-Fabric/components/text (= 0.74.0-rc.1) + - React-Fabric/components/textinput (= 0.74.0-rc.1) + - React-Fabric/components/unimplementedview (= 0.74.0-rc.1) + - React-Fabric/components/view (= 0.74.0-rc.1) - React-graphics - React-jsi - React-jsiexecutor @@ -535,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.0-rc.0): + - React-Fabric/components/inputaccessory (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -554,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.0): + - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -573,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.0-rc.0): + - React-Fabric/components/modal (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -592,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.0-rc.0): + - React-Fabric/components/rncore (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -611,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.0-rc.0): + - React-Fabric/components/root (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -630,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.0-rc.0): + - React-Fabric/components/safeareaview (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -649,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.0-rc.0): + - React-Fabric/components/scrollview (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -668,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.0-rc.0): + - React-Fabric/components/text (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -687,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.0-rc.0): + - React-Fabric/components/textinput (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -706,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.0-rc.0): + - React-Fabric/components/unimplementedview (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -725,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.0-rc.0): + - React-Fabric/components/view (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -745,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.0-rc.0): + - React-Fabric/core (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -764,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.0-rc.0): + - React-Fabric/imagemanager (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -783,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.0-rc.0): + - React-Fabric/leakchecker (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -802,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.0-rc.0): + - React-Fabric/mounting (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -821,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.0-rc.0): + - React-Fabric/scheduler (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -840,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.0-rc.0): + - React-Fabric/telemetry (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -859,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.0-rc.0): + - React-Fabric/templateprocessor (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -878,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.0-rc.0): + - React-Fabric/textlayoutmanager (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -898,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.0-rc.0): + - React-Fabric/uimanager (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -917,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.0-rc.0): + - React-FabricImage (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.0-rc.0) - - RCTTypeSafety (= 0.74.0-rc.0) + - RCTRequired (= 0.74.0-rc.1) + - RCTTypeSafety (= 0.74.0-rc.1) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.0-rc.0) + - React-jsiexecutor (= 0.74.0-rc.1) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.0-rc.0) - - React-graphics (0.74.0-rc.0): + - React-featureflags (0.74.0-rc.1) + - React-graphics (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.0-rc.0) + - React-Core/Default (= 0.74.0-rc.1) - React-utils - - React-hermes (0.74.0-rc.0): + - React-hermes (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.0) + - React-cxxreact (= 0.74.0-rc.1) - React-jsi - - React-jsiexecutor (= 0.74.0-rc.0) + - React-jsiexecutor (= 0.74.0-rc.1) - React-jsinspector - - React-perflogger (= 0.74.0-rc.0) + - React-perflogger (= 0.74.0-rc.1) - React-runtimeexecutor - - React-ImageManager (0.74.0-rc.0): + - React-ImageManager (0.74.0-rc.1): - glog - RCT-Folly/Fabric - React-Core/Default @@ -964,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.0-rc.0): + - React-jserrorhandler (0.74.0-rc.1): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.0-rc.0): + - React-jsi (0.74.0-rc.1): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.0-rc.0): + - React-jsiexecutor (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.0) - - React-jsi (= 0.74.0-rc.0) + - React-cxxreact (= 0.74.0-rc.1) + - React-jsi (= 0.74.0-rc.1) - React-jsinspector - - React-perflogger (= 0.74.0-rc.0) - - React-jsinspector (0.74.0-rc.0): + - React-perflogger (= 0.74.0-rc.1) + - React-jsinspector (0.74.0-rc.1): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.0-rc.0) - - React-jsitracing (0.74.0-rc.0): + - React-runtimeexecutor (= 0.74.0-rc.1) + - React-jsitracing (0.74.0-rc.1): - React-jsi - - React-logger (0.74.0-rc.0): + - React-logger (0.74.0-rc.1): - glog - - React-Mapbuffer (0.74.0-rc.0): + - React-Mapbuffer (0.74.0-rc.1): - glog - React-debug - - React-nativeconfig (0.74.0-rc.0) - - React-NativeModulesApple (0.74.0-rc.0): + - React-nativeconfig (0.74.0-rc.1) + - React-NativeModulesApple (0.74.0-rc.1): - glog - hermes-engine - React-callinvoker @@ -1013,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.0-rc.0) - - React-RCTActionSheet (0.74.0-rc.0): - - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.0) - - React-RCTAnimation (0.74.0-rc.0): + - React-perflogger (0.74.0-rc.1) + - React-RCTActionSheet (0.74.0-rc.1): + - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.1) + - React-RCTAnimation (0.74.0-rc.1): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1024,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.0-rc.0): + - React-RCTAppDelegate (0.74.0-rc.1): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1047,7 +1041,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.0-rc.0): + - React-RCTBlob (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1060,7 +1054,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.0-rc.0): + - React-RCTFabric (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1080,7 +1074,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.0-rc.0): + - React-RCTImage (0.74.0-rc.1): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1089,14 +1083,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.0-rc.0): + - React-RCTLinking (0.74.0-rc.1): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.0-rc.0) - - React-jsi (= 0.74.0-rc.0) + - React-Core/RCTLinkingHeaders (= 0.74.0-rc.1) + - React-jsi (= 0.74.0-rc.1) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.0-rc.0) - - React-RCTNetwork (0.74.0-rc.0): + - ReactCommon/turbomodule/core (= 0.74.0-rc.1) + - React-RCTNetwork (0.74.0-rc.1): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1104,14 +1098,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.0-rc.0): + - React-RCTPushNotification (0.74.0-rc.1): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.0-rc.0): + - React-RCTSettings (0.74.0-rc.1): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1119,29 +1113,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.0-rc.0): + - React-RCTTest (0.74.0-rc.1): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.0-rc.0) - - React-CoreModules (= 0.74.0-rc.0) - - React-jsi (= 0.74.0-rc.0) - - ReactCommon/turbomodule/core (= 0.74.0-rc.0) - - React-RCTText (0.74.0-rc.0): - - React-Core/RCTTextHeaders (= 0.74.0-rc.0) + - React-Core (= 0.74.0-rc.1) + - React-CoreModules (= 0.74.0-rc.1) + - React-jsi (= 0.74.0-rc.1) + - ReactCommon/turbomodule/core (= 0.74.0-rc.1) + - React-RCTText (0.74.0-rc.1): + - React-Core/RCTTextHeaders (= 0.74.0-rc.1) - Yoga - - React-RCTVibration (0.74.0-rc.0): + - React-RCTVibration (0.74.0-rc.1): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.0-rc.0): + - React-rendererdebug (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.0-rc.0) - - React-RuntimeApple (0.74.0-rc.0): + - React-rncore (0.74.0-rc.1) + - React-RuntimeApple (0.74.0-rc.1): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1159,7 +1153,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.0-rc.0): + - React-RuntimeCore (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1172,9 +1166,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.0-rc.0): - - React-jsi (= 0.74.0-rc.0) - - React-RuntimeHermes (0.74.0-rc.0): + - React-runtimeexecutor (0.74.0-rc.1): + - React-jsi (= 0.74.0-rc.1) + - React-RuntimeHermes (0.74.0-rc.1): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1185,7 +1179,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.0-rc.0): + - React-runtimescheduler (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1197,15 +1191,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.0-rc.0): + - React-utils (0.74.0-rc.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.0-rc.0) - - ReactCommon (0.74.0-rc.0): - - ReactCommon/turbomodule (= 0.74.0-rc.0) - - ReactCommon-Samples (0.74.0-rc.0): + - React-jsi (= 0.74.0-rc.1) + - ReactCommon (0.74.0-rc.1): + - ReactCommon/turbomodule (= 0.74.0-rc.1) + - ReactCommon-Samples (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1216,43 +1210,43 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.0-rc.0): + - ReactCommon/turbomodule (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.0) - - React-cxxreact (= 0.74.0-rc.0) - - React-jsi (= 0.74.0-rc.0) - - React-logger (= 0.74.0-rc.0) - - React-perflogger (= 0.74.0-rc.0) - - ReactCommon/turbomodule/bridging (= 0.74.0-rc.0) - - ReactCommon/turbomodule/core (= 0.74.0-rc.0) - - ReactCommon/turbomodule/bridging (0.74.0-rc.0): + - React-callinvoker (= 0.74.0-rc.1) + - React-cxxreact (= 0.74.0-rc.1) + - React-jsi (= 0.74.0-rc.1) + - React-logger (= 0.74.0-rc.1) + - React-perflogger (= 0.74.0-rc.1) + - ReactCommon/turbomodule/bridging (= 0.74.0-rc.1) + - ReactCommon/turbomodule/core (= 0.74.0-rc.1) + - ReactCommon/turbomodule/bridging (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.0) - - React-cxxreact (= 0.74.0-rc.0) - - React-jsi (= 0.74.0-rc.0) - - React-logger (= 0.74.0-rc.0) - - React-perflogger (= 0.74.0-rc.0) - - ReactCommon/turbomodule/core (0.74.0-rc.0): + - React-callinvoker (= 0.74.0-rc.1) + - React-cxxreact (= 0.74.0-rc.1) + - React-jsi (= 0.74.0-rc.1) + - React-logger (= 0.74.0-rc.1) + - React-perflogger (= 0.74.0-rc.1) + - ReactCommon/turbomodule/core (0.74.0-rc.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.0) - - React-cxxreact (= 0.74.0-rc.0) - - React-debug (= 0.74.0-rc.0) - - React-jsi (= 0.74.0-rc.0) - - React-logger (= 0.74.0-rc.0) - - React-perflogger (= 0.74.0-rc.0) - - React-utils (= 0.74.0-rc.0) + - React-callinvoker (= 0.74.0-rc.1) + - React-cxxreact (= 0.74.0-rc.1) + - React-debug (= 0.74.0-rc.1) + - React-jsi (= 0.74.0-rc.1) + - React-logger (= 0.74.0-rc.1) + - React-perflogger (= 0.74.0-rc.1) + - React-utils (= 0.74.0-rc.1) - ScreenshotManager (0.0.1): - DoubleConversion - glog @@ -1473,66 +1467,66 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 38be8de494215d8179c20322a68355e7c8ca4eb0 + FBLazyVector: 22da8fa4519f02382abca21a6b28548bb9163402 fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: cf542ce967a8c5c5125180003ea8850a0392c8a3 + hermes-engine: 4ee88ed6eea3635a2a6b6b9f7e07a85bde4df06f MyNativeView: b7ba0b5c94be5e9c4b2ce4887bb5f511a7c8970c NativeCxxModuleExample: c152bfeb11e2c53cdd56ffc2bafa94970ea5d195 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df - RCTDeprecation: bccbca65e11d68b03947e878ffbbb298a5835ed7 - RCTRequired: dc19ffec0357d0adeb1edc14e8d86ab8004b5216 - RCTTypeSafety: 169e6987904e04c53a4e07b4fd4ad7be9ad9474b - React: 493aef2701fc3b47a2d97a307291df5889620a4c - React-callinvoker: 7d18a32af8043934583d292c4372ca3181300bfe - React-Codegen: f1c25f1e4b8e55f3ce2a584a0060410b979295f6 - React-Core: 119d197a0f4d274d82f48e63cf1536b3c1bef013 - React-CoreModules: 52bc9a79dc8a8fda7afe58e726364f6cae87541a - React-cxxreact: 65a538a490488192e920bcad393d18522ec83f2b - React-debug: 7479ed53271b61e4e9e7915f638e744860728df9 - React-Fabric: 58daa44db87a588e2159789be6f149dc503a2afc - React-FabricImage: 7505aaa1768d83f2a9b56d3237058c3767dca4d1 - React-featureflags: 3248f548454ec9cae2e3c15e625953bf6b82e5b5 - React-graphics: d258e1136f82e037c1ea7f0985e22529c17d2412 - React-hermes: 303d6e1e08ab691090c4695903c778282b159c69 - React-ImageManager: 24db2feae5016ee4e4841beb89ceb3acd0dee95a - React-jserrorhandler: ffa0631c9f21551efb23594c5b2ea6ca5761f5a0 - React-jsi: a4682ba91c0453da593ae69810a40e98bca2bb49 - React-jsiexecutor: 0004241f825bd16746dde407448106300ad42073 - React-jsinspector: 587100238e6453d791c48eeaa7c0f8b3d95682d3 - React-jsitracing: 2088b3ce5562f8aeaffa3260a155a0b552f4a271 - React-logger: bd784d819f7a1b29c34c2b7ff26a41953534bbe2 - React-Mapbuffer: f3cd4be9e60fff10948482caed24bbe071df0ed1 - React-nativeconfig: bb949028193e2be7d0917fdd4644ea14269ddb62 - React-NativeModulesApple: f26a759a985152aa62d1de53acaa0c5e81bb94d7 - React-perflogger: 7b860b85fe7f2feaec62e50a71fccd4a11dabce7 - React-RCTActionSheet: 57197bc7fd699d88b2bced8f9922fd6f0a8ac492 - React-RCTAnimation: cc6c3ed9f92622081d37c67376605e960318351f - React-RCTAppDelegate: 7908de20a7b9f0004e675a91573ef0b6829836d0 - React-RCTBlob: ac46d8d8cd219b99f9e3fbbd244a3667791ba7e2 - React-RCTFabric: af5a886170592c10e0f233841481f688e2514ccd - React-RCTImage: d9d6583a60233914a929a033e7af1d88ab55860a - React-RCTLinking: 44664f23cb5ee9bbf6fcc920ce04b4dc77f77a72 - React-RCTNetwork: 8e6002339336b6a743dc5befe9dca8586ae5ef44 - React-RCTPushNotification: 95daf3bbdafa1730a8ca29ea3aa9b3b7cb359d42 - React-RCTSettings: 3372ab3845dd6beae89b6b813dddf093a26972e7 - React-RCTTest: e3366f0b31beb75139ed28e22ebc16837188f98d - React-RCTText: 4b5cd2e4cfc64d9f44ecb4d650ad1604d9d77965 - React-RCTVibration: 1a3d472bbff814f6c24be1f08244754ac686b630 - React-rendererdebug: ae01135fb2535ecfc471482aaafe63259baec2b5 - React-rncore: 45b833e98acea52fbe65862eebd80563a5f58444 - React-RuntimeApple: 4020192c72d0cc76460b525a242b3608c34ce919 - React-RuntimeCore: fbef5c7f69df79d81f9cb0c7ad84d59059efaf72 - React-runtimeexecutor: 887bb9337ac1bcf990f653d92d90a9f6e7b0e63f - React-RuntimeHermes: b8e2572953b8d7dd9b27b3214a1d988e765a996e - React-runtimescheduler: 137c7a2df9b44e5fa2ee777ebdbfc5e929eb9185 - React-utils: 998100724451cf5caa35bf9c549281e7e29a7ee2 - ReactCommon: e98e1385aa810da006373ac79b78be9ee82fcdbd - ReactCommon-Samples: 0e2eb96235acf19c9c54943f2d4e052a9b9f4172 + RCTDeprecation: d2d9ef7c3dba88e97dc2f329d818982f3e8d83af + RCTRequired: 8134fad77aa4efe939b8c411a380c7f4a0f97e12 + RCTTypeSafety: 33ceec88d17c2f9b2532907a053496616a13ed22 + React: 842b0c194518c65469e007a404c105ba3dc883b8 + React-callinvoker: 69911ae8252c50d5e5746b7ab2485816f8edfda5 + React-Codegen: 68e81dbc3c5ea878523bfcfbc600c9620a11b43b + React-Core: 80c3b77f51dc75fb806412033e67ad1f1ba1c132 + React-CoreModules: d272e28b3ab010ed52f73835ce8c7ba16b401aa6 + React-cxxreact: 363e851e6e5f5a7eb2f66850783bf490dc1ab997 + React-debug: 0f91d37ac88cd16cd340aaddaf474cef700bcdc9 + React-Fabric: aac9c302b35e6b5c0d26b33bdbd00fe07e8f76dd + React-FabricImage: ac3c6ebf30d0c45312437dfe3b753e23b9d61894 + React-featureflags: 7fa9537fd0681b29494fa3afa7db216d59625729 + React-graphics: ef01619c3a3c56010cc3198c3adaddf855979a59 + React-hermes: 19318873d1316b4bfc64fd69b63a028f90627b8e + React-ImageManager: 979646d315701ca8d5ffa09303b4a97475b8630e + React-jserrorhandler: 4333d61222d03104b2f8698701e1f27e4a3ebb66 + React-jsi: e6460e8c988c058169760c49361e9629c781053c + React-jsiexecutor: 6deebc7527d9c16cf81034c612d8e3e700098966 + React-jsinspector: 81b288f4f02bceacfa7d552d4fb5a6baede1ca43 + React-jsitracing: e95f81b58b50c93d07c6800082447a573f053441 + React-logger: 241ffaa9899f7438f40d8d059db1cdad0374162f + React-Mapbuffer: 43e0def5dc0d7c10814022f825ec78ecb2f61569 + React-nativeconfig: e05ba6078680b44a7c82b9f5c2f29d6423c55c74 + React-NativeModulesApple: 12fb3b2cd7d45e94cd88ea8f06ec0968f69946f2 + React-perflogger: 7f49b96e6f27f3bbe8010bb578a640c3a58e63b9 + React-RCTActionSheet: 516c6f7f962de7198b70d349e718e640367f3d24 + React-RCTAnimation: e85038929eaac53fd70aa75bb3ef40a1d2685a15 + React-RCTAppDelegate: e8ab526cd20834fa7f56842aa442b3a26ce6d70e + React-RCTBlob: b9c514add6a9d84ea3049b5c76c3100276c40a26 + React-RCTFabric: ab1b10a94d07117794e330b4dc4280183c95e9ff + React-RCTImage: 6a0bf1f7fb2a7cdc6ca44a3aa5d575ae903d8aed + React-RCTLinking: f2f5ede719d84a74d5f7543d57320ebffe1eb3d6 + React-RCTNetwork: 789be4ca8eb30ebf556cec6e9e717018991aef5b + React-RCTPushNotification: f441f797cd55459ed38d0f0e17cdeed6b8a3b80e + React-RCTSettings: 9b5b249d9f640d0c40f5a99c62e52fbd65081616 + React-RCTTest: b8ed4bfbc5be3c4b1df1f57c869e1877bb8950ae + React-RCTText: 1b7c1a1fa9f4ee68877316b3f2f798df9455ff70 + React-RCTVibration: 2bf1e7927e6c84b1129324489d0d07acf2ab38ce + React-rendererdebug: e563d4d2ab0103e0d2cf79ff4c1c1d70f356864c + React-rncore: c46e2d0bb983109be638ebb4955d980927f82307 + React-RuntimeApple: b8c18b09f0fb3ca3343ec35d3364d31c69a4510a + React-RuntimeCore: bbf5e6d2ab800e23be4c7413718d9a178c933c35 + React-runtimeexecutor: 286f43edf7b9a887e0f0fbc95a94350578d7861c + React-RuntimeHermes: 1277763c100912054a330a731e5f662a08826ac2 + React-runtimescheduler: 39e5e7a103a2061916f6224b324d10a25aefe9d8 + React-utils: 6eb471f63ebb2041ca59c93e33c4cf5cdb7bb55a + ReactCommon: f72becffc337da2eb3569f08563e39fdde5fcf68 + ReactCommon-Samples: 9404d2a3828909acfe5d5a002a1d57b588d466e8 ScreenshotManager: 8584ded316377154f7cc19d5ef15e7c94ce04466 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: 029d14b603bd8ec20dc5e43cf11541457011ec00 + Yoga: b5e35ff0b1e5471fd219614caf88f988b30f2590 PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf diff --git a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj index 037fe4f26a86c7..cecc7351182bce 100644 --- a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj +++ b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj @@ -943,8 +943,6 @@ OTHER_LDFLAGS = ( "-ObjC", "-lc++", - "-Wl", - "-ld_classic", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../react-native"; SDKROOT = iphoneos; @@ -1037,8 +1035,6 @@ OTHER_LDFLAGS = ( "-ObjC", "-lc++", - "-Wl", - "-ld_classic", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../react-native"; SDKROOT = iphoneos; From c09e4dacffe5c4ffb36b99cc15f433eabdd41d8b Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 4 Mar 2024 12:14:00 +0000 Subject: [PATCH 022/223] Bump package versions #publish-packages-to-npm&0.74-stable --- packages/babel-plugin-codegen/package.json | 2 +- packages/community-cli-plugin/package.json | 2 +- packages/dev-middleware/package.json | 2 +- packages/eslint-plugin-specs/package.json | 2 +- packages/react-native-codegen-typescript-test/package.json | 2 +- packages/react-native-codegen/package.json | 2 +- packages/react-native-popup-menu-android/package.json | 7 +++++-- packages/react-native/package.json | 4 ++-- packages/rn-tester/package.json | 2 +- 9 files changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index 5567b7796d02ea..4c93a01ce4f70e 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@react-native/codegen": "0.74.1" + "@react-native/codegen": "0.74.2" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 80e5a8c0a5ac46..3dfeb8a4d3130a 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -24,7 +24,7 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.1", "@react-native-community/cli-tools": "13.6.1", - "@react-native/dev-middleware": "0.74.1", + "@react-native/dev-middleware": "0.74.2", "@react-native/metro-babel-transformer": "0.74.1", "chalk": "^4.0.0", "execa": "^5.1.1", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index db8712800ae83b..eb2ad86afd6974 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.1", + "version": "0.74.2", "description": "Dev server middleware for React Native", "keywords": [ "react-native", diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index 85593865e85cb5..8518579f26b2de 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -31,7 +31,7 @@ "@babel/eslint-parser": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/preset-flow": "^7.20.0", - "@react-native/codegen": "0.74.1", + "@react-native/codegen": "0.74.2", "make-dir": "^2.1.0", "pirates": "^4.0.1", "source-map-support": "0.5.0" diff --git a/packages/react-native-codegen-typescript-test/package.json b/packages/react-native-codegen-typescript-test/package.json index 57f63fe83c25a2..89c93057304b92 100644 --- a/packages/react-native-codegen-typescript-test/package.json +++ b/packages/react-native-codegen-typescript-test/package.json @@ -19,7 +19,7 @@ "prepare": "yarn run build" }, "dependencies": { - "@react-native/codegen": "0.74.1" + "@react-native/codegen": "0.74.2" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index 1981d3db5ac47d..aee0d5c5caa71e 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen", - "version": "0.74.1", + "version": "0.74.2", "description": "Code generation tools for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json index 9be32ece5c1cf1..b40494697bbf89 100644 --- a/packages/react-native-popup-menu-android/package.json +++ b/packages/react-native-popup-menu-android/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/popup-menu-android", - "version": "0.74.0", + "version": "0.74.1", "description": "PopupMenu for the Android platform", "react-native": "js/PopupMenuAndroid", "source": "js/PopupMenuAndroid", @@ -12,7 +12,10 @@ "!**/__fixtures__", "!**/__mocks__" ], - "keywords": ["react-native", "android"], + "keywords": [ + "react-native", + "android" + ], "license": "MIT", "devDependencies": { "@react-native/codegen": "*" diff --git a/packages/react-native/package.json b/packages/react-native/package.json index b86cc59f8587a6..5437df6f4a8d00 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -102,7 +102,7 @@ "@react-native-community/cli-platform-android": "13.6.1", "@react-native-community/cli-platform-ios": "13.6.1", "@react-native/assets-registry": "0.74.0", - "@react-native/codegen": "0.74.1", + "@react-native/codegen": "0.74.2", "@react-native/community-cli-plugin": "0.74.2", "@react-native/gradle-plugin": "0.74.1", "@react-native/js-polyfills": "0.74.0", @@ -153,4 +153,4 @@ } ] } -} \ No newline at end of file +} diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index 87ed68d334c9b8..cf39bd06b878dc 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -26,7 +26,7 @@ "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "@react-native/popup-menu-android": "^0.74.0" + "@react-native/popup-menu-android": "^0.74.1" }, "peerDependencies": { "react": "18.2.0", From e063a1b0fb913141be4ed66a3b3f94e474eff130 Mon Sep 17 00:00:00 2001 From: Luna Wei Date: Mon, 4 Mar 2024 11:27:34 -0800 Subject: [PATCH 023/223] bumped packages versions #publish-packages-to-npm&0.74-stable --- packages/babel-plugin-codegen/package.json | 2 +- packages/community-cli-plugin/package.json | 2 +- packages/eslint-plugin-specs/package.json | 2 +- packages/react-native-babel-preset/package.json | 2 +- packages/react-native/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index 4c93a01ce4f70e..7f5f6e2966558a 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-plugin-codegen", - "version": "0.74.1", + "version": "0.74.2", "description": "Babel plugin to generate native module and view manager code for React Native.", "license": "MIT", "repository": { diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 3dfeb8a4d3130a..5e602f62b93d71 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.2", + "version": "0.74.3", "description": "Core CLI commands for React Native", "keywords": [ "react-native", diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index 8518579f26b2de..d04d8541f1ac50 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin-specs", - "version": "0.74.1", + "version": "0.74.2", "description": "ESLint rules to validate NativeModule and Component Specs", "license": "MIT", "repository": { diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index 11186c147c292b..1bbc7aa4e8f915 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -54,7 +54,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.1", + "@react-native/babel-plugin-codegen": "0.74.2", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 5437df6f4a8d00..c90063562a2c6b 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -103,7 +103,7 @@ "@react-native-community/cli-platform-ios": "13.6.1", "@react-native/assets-registry": "0.74.0", "@react-native/codegen": "0.74.2", - "@react-native/community-cli-plugin": "0.74.2", + "@react-native/community-cli-plugin": "0.74.3", "@react-native/gradle-plugin": "0.74.1", "@react-native/js-polyfills": "0.74.0", "@react-native/normalize-colors": "0.74.1", From 02d38e4eb53047215b4a23e7be495993ce4ec026 Mon Sep 17 00:00:00 2001 From: Luna Wei Date: Mon, 4 Mar 2024 11:28:55 -0800 Subject: [PATCH 024/223] bumped packages versions #publish-packages-to-npm&0.74-stable --- packages/react-native-babel-preset/package.json | 2 +- packages/react-native-babel-transformer/package.json | 2 +- packages/react-native/template/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index 1bbc7aa4e8f915..0f76cd382d7b00 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-preset", - "version": "0.74.1", + "version": "0.74.2", "description": "Babel preset for React Native applications", "main": "src/index.js", "repository": { diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index ae37af14bd5e2f..6eecf4c696bf97 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.1", + "@react-native/babel-preset": "0.74.2", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 1fffdf0183c836..4061ac09f29b5c 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -17,7 +17,7 @@ "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.1", + "@react-native/babel-preset": "0.74.2", "@react-native/eslint-config": "0.74.1", "@react-native/metro-config": "0.74.1", "@react-native/typescript-config": "0.74.1", From c7e704a0ef39e00c55cabe9763fdd9c7ff33e082 Mon Sep 17 00:00:00 2001 From: Luna Wei Date: Mon, 4 Mar 2024 11:29:15 -0800 Subject: [PATCH 025/223] bumped packages versions #publish-packages-to-npm&0.74-stable --- package.json | 2 +- packages/community-cli-plugin/package.json | 2 +- packages/metro-config/package.json | 2 +- packages/react-native-babel-transformer/package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 9a93a0b7a898b3..68ea51aec1626b 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@definitelytyped/dtslint": "^0.0.127", "@jest/create-cache-key-function": "^29.6.3", "@pkgjs/parseargs": "^0.11.0", - "@react-native/metro-babel-transformer": "0.74.1", + "@react-native/metro-babel-transformer": "0.74.2", "@react-native/metro-config": "0.74.1", "@tsconfig/node18": "1.0.1", "@types/react": "^18.0.18", diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 5e602f62b93d71..0c7b6c4e74a017 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -25,7 +25,7 @@ "@react-native-community/cli-server-api": "13.6.1", "@react-native-community/cli-tools": "13.6.1", "@react-native/dev-middleware": "0.74.2", - "@react-native/metro-babel-transformer": "0.74.1", + "@react-native/metro-babel-transformer": "0.74.2", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index 97baf219663157..dd12e7d85c1322 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -27,7 +27,7 @@ ], "dependencies": { "@react-native/js-polyfills": "0.74.0", - "@react-native/metro-babel-transformer": "0.74.1", + "@react-native/metro-babel-transformer": "0.74.2", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" } diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index 6eecf4c696bf97..8cff9f005b2d92 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-babel-transformer", - "version": "0.74.1", + "version": "0.74.2", "description": "Babel transformer for React Native applications.", "main": "src/index.js", "repository": { From 1c1b03d6e8ec1028f011915ffd028e0cc1ead33f Mon Sep 17 00:00:00 2001 From: Luna Wei Date: Mon, 4 Mar 2024 11:29:35 -0800 Subject: [PATCH 026/223] bumped packages versions #publish-packages-to-npm&0.74-stable --- package.json | 2 +- packages/community-cli-plugin/package.json | 2 +- packages/metro-config/package.json | 2 +- packages/react-native/package.json | 2 +- packages/react-native/template/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 68ea51aec1626b..57179b64da1205 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "@jest/create-cache-key-function": "^29.6.3", "@pkgjs/parseargs": "^0.11.0", "@react-native/metro-babel-transformer": "0.74.2", - "@react-native/metro-config": "0.74.1", + "@react-native/metro-config": "0.74.2", "@tsconfig/node18": "1.0.1", "@types/react": "^18.0.18", "@typescript-eslint/parser": "^6.7.4", diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 0c7b6c4e74a017..f88122b0cbf361 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.3", + "version": "0.74.4", "description": "Core CLI commands for React Native", "keywords": [ "react-native", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index dd12e7d85c1322..9d927e2590a1fd 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-config", - "version": "0.74.1", + "version": "0.74.2", "description": "Metro configuration for React Native.", "license": "MIT", "repository": { diff --git a/packages/react-native/package.json b/packages/react-native/package.json index c90063562a2c6b..a7f876b394bf32 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -103,7 +103,7 @@ "@react-native-community/cli-platform-ios": "13.6.1", "@react-native/assets-registry": "0.74.0", "@react-native/codegen": "0.74.2", - "@react-native/community-cli-plugin": "0.74.3", + "@react-native/community-cli-plugin": "0.74.4", "@react-native/gradle-plugin": "0.74.1", "@react-native/js-polyfills": "0.74.0", "@react-native/normalize-colors": "0.74.1", diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 4061ac09f29b5c..cf89c897530590 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -19,7 +19,7 @@ "@babel/runtime": "^7.20.0", "@react-native/babel-preset": "0.74.2", "@react-native/eslint-config": "0.74.1", - "@react-native/metro-config": "0.74.1", + "@react-native/metro-config": "0.74.2", "@react-native/typescript-config": "0.74.1", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", From c68669079acc9da42bd980619a33532a66d3d913 Mon Sep 17 00:00:00 2001 From: Distiller Date: Mon, 4 Mar 2024 19:42:11 +0000 Subject: [PATCH 027/223] [0.74.0-rc.2] Bump version numbers --- packages/react-native/Libraries/Core/ReactNativeVersion.js | 2 +- packages/react-native/React/Base/RCTVersion.m | 2 +- packages/react-native/ReactAndroid/gradle.properties | 2 +- .../facebook/react/modules/systeminfo/ReactNativeVersion.java | 2 +- .../react-native/ReactCommon/cxxreact/ReactNativeVersion.h | 2 +- packages/react-native/package.json | 4 ++-- packages/react-native/template/package.json | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index bc7b1eac3a07d7..3425253f075e49 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -17,7 +17,7 @@ const version: $ReadOnly<{ major: 0, minor: 74, patch: 0, - prerelease: 'rc.1', + prerelease: 'rc.2', }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index 26251392bb488e..149b01113f1dc1 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -24,7 +24,7 @@ RCTVersionMajor: @(0), RCTVersionMinor: @(74), RCTVersionPatch: @(0), - RCTVersionPrerelease: @"rc.1", + RCTVersionPrerelease: @"rc.2", }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index a46dd32ac1b4af..e3d9e080228a7b 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.0-rc.1 +VERSION_NAME=0.74.0-rc.2 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index 4964a76ca70d36..7442d92abde73e 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -18,5 +18,5 @@ public class ReactNativeVersion { "major", 0, "minor", 74, "patch", 0, - "prerelease", "rc.1"); + "prerelease", "rc.2"); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index 0ca3ec48b5892c..b091d36f9a66cc 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -18,7 +18,7 @@ constexpr struct { int32_t Major = 0; int32_t Minor = 74; int32_t Patch = 0; - std::string_view Prerelease = "rc.1"; + std::string_view Prerelease = "rc.2"; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index a7f876b394bf32..b9629c72072b20 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.0-rc.1", + "version": "0.74.0-rc.2", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -153,4 +153,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index cf89c897530590..a618ba8758d80f 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.0-rc.1" + "react-native": "0.74.0-rc.2" }, "devDependencies": { "@babel/core": "^7.20.0", From 27b54bdcff2f01f65718db3bdc4859e12cf9d8f6 Mon Sep 17 00:00:00 2001 From: Luna Wei Date: Mon, 4 Mar 2024 14:13:09 -0800 Subject: [PATCH 028/223] local - podfile.lock update for rntester --- packages/rn-tester/Podfile.lock | 488 ++++++++++++++++---------------- 1 file changed, 244 insertions(+), 244 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index d0132f3738e8a5..26bce667e304be 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,12 +1,12 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.0-rc.1) + - FBLazyVector (0.74.0-rc.2) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.0-rc.1): - - hermes-engine/Pre-built (= 0.74.0-rc.1) - - hermes-engine/Pre-built (0.74.0-rc.1) + - hermes-engine (0.74.0-rc.2): + - hermes-engine/Pre-built (= 0.74.0-rc.2) + - hermes-engine/Pre-built (0.74.0-rc.2) - MyNativeView (0.0.1): - DoubleConversion - glog @@ -66,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.0-rc.1) - - RCTRequired (0.74.0-rc.1) - - RCTTypeSafety (0.74.0-rc.1): - - FBLazyVector (= 0.74.0-rc.1) - - RCTRequired (= 0.74.0-rc.1) - - React-Core (= 0.74.0-rc.1) - - React (0.74.0-rc.1): - - React-Core (= 0.74.0-rc.1) - - React-Core/DevSupport (= 0.74.0-rc.1) - - React-Core/RCTWebSocket (= 0.74.0-rc.1) - - React-RCTActionSheet (= 0.74.0-rc.1) - - React-RCTAnimation (= 0.74.0-rc.1) - - React-RCTBlob (= 0.74.0-rc.1) - - React-RCTImage (= 0.74.0-rc.1) - - React-RCTLinking (= 0.74.0-rc.1) - - React-RCTNetwork (= 0.74.0-rc.1) - - React-RCTSettings (= 0.74.0-rc.1) - - React-RCTText (= 0.74.0-rc.1) - - React-RCTVibration (= 0.74.0-rc.1) - - React-callinvoker (0.74.0-rc.1) - - React-Codegen (0.74.0-rc.1): + - RCTDeprecation (0.74.0-rc.2) + - RCTRequired (0.74.0-rc.2) + - RCTTypeSafety (0.74.0-rc.2): + - FBLazyVector (= 0.74.0-rc.2) + - RCTRequired (= 0.74.0-rc.2) + - React-Core (= 0.74.0-rc.2) + - React (0.74.0-rc.2): + - React-Core (= 0.74.0-rc.2) + - React-Core/DevSupport (= 0.74.0-rc.2) + - React-Core/RCTWebSocket (= 0.74.0-rc.2) + - React-RCTActionSheet (= 0.74.0-rc.2) + - React-RCTAnimation (= 0.74.0-rc.2) + - React-RCTBlob (= 0.74.0-rc.2) + - React-RCTImage (= 0.74.0-rc.2) + - React-RCTLinking (= 0.74.0-rc.2) + - React-RCTNetwork (= 0.74.0-rc.2) + - React-RCTSettings (= 0.74.0-rc.2) + - React-RCTText (= 0.74.0-rc.2) + - React-RCTVibration (= 0.74.0-rc.2) + - React-callinvoker (0.74.0-rc.2) + - React-Codegen (0.74.0-rc.2): - DoubleConversion - glog - hermes-engine @@ -106,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.0-rc.1): + - React-Core (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.1) + - React-Core/Default (= 0.74.0-rc.2) - React-cxxreact - React-featureflags - React-hermes @@ -123,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.0-rc.1): + - React-Core/CoreModulesHeaders (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.0-rc.1): + - React-Core/Default (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -156,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.0-rc.1): + - React-Core/DevSupport (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.1) - - React-Core/RCTWebSocket (= 0.74.0-rc.1) + - React-Core/Default (= 0.74.0-rc.2) + - React-Core/RCTWebSocket (= 0.74.0-rc.2) - React-cxxreact - React-featureflags - React-hermes @@ -174,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.0-rc.1): + - React-Core/RCTActionSheetHeaders (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -191,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.0-rc.1): + - React-Core/RCTAnimationHeaders (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -208,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.0-rc.1): + - React-Core/RCTBlobHeaders (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.0-rc.1): + - React-Core/RCTImageHeaders (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -242,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.0-rc.1): + - React-Core/RCTLinkingHeaders (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.0-rc.1): + - React-Core/RCTNetworkHeaders (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -276,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.0-rc.1): + - React-Core/RCTPushNotificationHeaders (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -293,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.0-rc.1): + - React-Core/RCTSettingsHeaders (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -310,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.0-rc.1): + - React-Core/RCTTextHeaders (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -327,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.0-rc.1): + - React-Core/RCTVibrationHeaders (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -344,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.0-rc.1): + - React-Core/RCTWebSocket (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.1) + - React-Core/Default (= 0.74.0-rc.2) - React-cxxreact - React-featureflags - React-hermes @@ -361,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.0-rc.1): + - React-CoreModules (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.0-rc.1) + - RCTTypeSafety (= 0.74.0-rc.2) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.0-rc.1) - - React-jsi (= 0.74.0-rc.1) + - React-Core/CoreModulesHeaders (= 0.74.0-rc.2) + - React-jsi (= 0.74.0-rc.2) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.0-rc.1) + - React-RCTImage (= 0.74.0-rc.2) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.0-rc.1): + - React-cxxreact (0.74.0-rc.2): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.1) - - React-debug (= 0.74.0-rc.1) - - React-jsi (= 0.74.0-rc.1) + - React-callinvoker (= 0.74.0-rc.2) + - React-debug (= 0.74.0-rc.2) + - React-jsi (= 0.74.0-rc.2) - React-jsinspector - - React-logger (= 0.74.0-rc.1) - - React-perflogger (= 0.74.0-rc.1) - - React-runtimeexecutor (= 0.74.0-rc.1) - - React-debug (0.74.0-rc.1) - - React-Fabric (0.74.0-rc.1): + - React-logger (= 0.74.0-rc.2) + - React-perflogger (= 0.74.0-rc.2) + - React-runtimeexecutor (= 0.74.0-rc.2) + - React-debug (0.74.0-rc.2) + - React-Fabric (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -401,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.0-rc.1) - - React-Fabric/attributedstring (= 0.74.0-rc.1) - - React-Fabric/componentregistry (= 0.74.0-rc.1) - - React-Fabric/componentregistrynative (= 0.74.0-rc.1) - - React-Fabric/components (= 0.74.0-rc.1) - - React-Fabric/core (= 0.74.0-rc.1) - - React-Fabric/imagemanager (= 0.74.0-rc.1) - - React-Fabric/leakchecker (= 0.74.0-rc.1) - - React-Fabric/mounting (= 0.74.0-rc.1) - - React-Fabric/scheduler (= 0.74.0-rc.1) - - React-Fabric/telemetry (= 0.74.0-rc.1) - - React-Fabric/templateprocessor (= 0.74.0-rc.1) - - React-Fabric/textlayoutmanager (= 0.74.0-rc.1) - - React-Fabric/uimanager (= 0.74.0-rc.1) + - React-Fabric/animations (= 0.74.0-rc.2) + - React-Fabric/attributedstring (= 0.74.0-rc.2) + - React-Fabric/componentregistry (= 0.74.0-rc.2) + - React-Fabric/componentregistrynative (= 0.74.0-rc.2) + - React-Fabric/components (= 0.74.0-rc.2) + - React-Fabric/core (= 0.74.0-rc.2) + - React-Fabric/imagemanager (= 0.74.0-rc.2) + - React-Fabric/leakchecker (= 0.74.0-rc.2) + - React-Fabric/mounting (= 0.74.0-rc.2) + - React-Fabric/scheduler (= 0.74.0-rc.2) + - React-Fabric/telemetry (= 0.74.0-rc.2) + - React-Fabric/templateprocessor (= 0.74.0-rc.2) + - React-Fabric/textlayoutmanager (= 0.74.0-rc.2) + - React-Fabric/uimanager (= 0.74.0-rc.2) - React-graphics - React-jsi - React-jsiexecutor @@ -423,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.0-rc.1): + - React-Fabric/animations (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -442,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.0-rc.1): + - React-Fabric/attributedstring (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -461,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.0-rc.1): + - React-Fabric/componentregistry (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.0-rc.1): + - React-Fabric/componentregistrynative (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.0-rc.1): + - React-Fabric/components (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -510,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.0-rc.1) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.1) - - React-Fabric/components/modal (= 0.74.0-rc.1) - - React-Fabric/components/rncore (= 0.74.0-rc.1) - - React-Fabric/components/root (= 0.74.0-rc.1) - - React-Fabric/components/safeareaview (= 0.74.0-rc.1) - - React-Fabric/components/scrollview (= 0.74.0-rc.1) - - React-Fabric/components/text (= 0.74.0-rc.1) - - React-Fabric/components/textinput (= 0.74.0-rc.1) - - React-Fabric/components/unimplementedview (= 0.74.0-rc.1) - - React-Fabric/components/view (= 0.74.0-rc.1) + - React-Fabric/components/inputaccessory (= 0.74.0-rc.2) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.2) + - React-Fabric/components/modal (= 0.74.0-rc.2) + - React-Fabric/components/rncore (= 0.74.0-rc.2) + - React-Fabric/components/root (= 0.74.0-rc.2) + - React-Fabric/components/safeareaview (= 0.74.0-rc.2) + - React-Fabric/components/scrollview (= 0.74.0-rc.2) + - React-Fabric/components/text (= 0.74.0-rc.2) + - React-Fabric/components/textinput (= 0.74.0-rc.2) + - React-Fabric/components/unimplementedview (= 0.74.0-rc.2) + - React-Fabric/components/view (= 0.74.0-rc.2) - React-graphics - React-jsi - React-jsiexecutor @@ -529,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.0-rc.1): + - React-Fabric/components/inputaccessory (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -548,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.1): + - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -567,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.0-rc.1): + - React-Fabric/components/modal (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -586,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.0-rc.1): + - React-Fabric/components/rncore (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.0-rc.1): + - React-Fabric/components/root (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.0-rc.1): + - React-Fabric/components/safeareaview (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.0-rc.1): + - React-Fabric/components/scrollview (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.0-rc.1): + - React-Fabric/components/text (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.0-rc.1): + - React-Fabric/components/textinput (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -700,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.0-rc.1): + - React-Fabric/components/unimplementedview (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -719,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.0-rc.1): + - React-Fabric/components/view (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -739,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.0-rc.1): + - React-Fabric/core (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.0-rc.1): + - React-Fabric/imagemanager (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -777,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.0-rc.1): + - React-Fabric/leakchecker (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -796,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.0-rc.1): + - React-Fabric/mounting (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -815,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.0-rc.1): + - React-Fabric/scheduler (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -834,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.0-rc.1): + - React-Fabric/telemetry (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.0-rc.1): + - React-Fabric/templateprocessor (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -872,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.0-rc.1): + - React-Fabric/textlayoutmanager (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -892,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.0-rc.1): + - React-Fabric/uimanager (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -911,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.0-rc.1): + - React-FabricImage (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.0-rc.1) - - RCTTypeSafety (= 0.74.0-rc.1) + - RCTRequired (= 0.74.0-rc.2) + - RCTTypeSafety (= 0.74.0-rc.2) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.0-rc.1) + - React-jsiexecutor (= 0.74.0-rc.2) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.0-rc.1) - - React-graphics (0.74.0-rc.1): + - React-featureflags (0.74.0-rc.2) + - React-graphics (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.0-rc.1) + - React-Core/Default (= 0.74.0-rc.2) - React-utils - - React-hermes (0.74.0-rc.1): + - React-hermes (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.1) + - React-cxxreact (= 0.74.0-rc.2) - React-jsi - - React-jsiexecutor (= 0.74.0-rc.1) + - React-jsiexecutor (= 0.74.0-rc.2) - React-jsinspector - - React-perflogger (= 0.74.0-rc.1) + - React-perflogger (= 0.74.0-rc.2) - React-runtimeexecutor - - React-ImageManager (0.74.0-rc.1): + - React-ImageManager (0.74.0-rc.2): - glog - RCT-Folly/Fabric - React-Core/Default @@ -958,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.0-rc.1): + - React-jserrorhandler (0.74.0-rc.2): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.0-rc.1): + - React-jsi (0.74.0-rc.2): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.0-rc.1): + - React-jsiexecutor (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.1) - - React-jsi (= 0.74.0-rc.1) + - React-cxxreact (= 0.74.0-rc.2) + - React-jsi (= 0.74.0-rc.2) - React-jsinspector - - React-perflogger (= 0.74.0-rc.1) - - React-jsinspector (0.74.0-rc.1): + - React-perflogger (= 0.74.0-rc.2) + - React-jsinspector (0.74.0-rc.2): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.0-rc.1) - - React-jsitracing (0.74.0-rc.1): + - React-runtimeexecutor (= 0.74.0-rc.2) + - React-jsitracing (0.74.0-rc.2): - React-jsi - - React-logger (0.74.0-rc.1): + - React-logger (0.74.0-rc.2): - glog - - React-Mapbuffer (0.74.0-rc.1): + - React-Mapbuffer (0.74.0-rc.2): - glog - React-debug - - React-nativeconfig (0.74.0-rc.1) - - React-NativeModulesApple (0.74.0-rc.1): + - React-nativeconfig (0.74.0-rc.2) + - React-NativeModulesApple (0.74.0-rc.2): - glog - hermes-engine - React-callinvoker @@ -1007,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.0-rc.1) - - React-RCTActionSheet (0.74.0-rc.1): - - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.1) - - React-RCTAnimation (0.74.0-rc.1): + - React-perflogger (0.74.0-rc.2) + - React-RCTActionSheet (0.74.0-rc.2): + - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.2) + - React-RCTAnimation (0.74.0-rc.2): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1018,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.0-rc.1): + - React-RCTAppDelegate (0.74.0-rc.2): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1041,7 +1041,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.0-rc.1): + - React-RCTBlob (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1054,7 +1054,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.0-rc.1): + - React-RCTFabric (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1074,7 +1074,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.0-rc.1): + - React-RCTImage (0.74.0-rc.2): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1083,14 +1083,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.0-rc.1): + - React-RCTLinking (0.74.0-rc.2): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.0-rc.1) - - React-jsi (= 0.74.0-rc.1) + - React-Core/RCTLinkingHeaders (= 0.74.0-rc.2) + - React-jsi (= 0.74.0-rc.2) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.0-rc.1) - - React-RCTNetwork (0.74.0-rc.1): + - ReactCommon/turbomodule/core (= 0.74.0-rc.2) + - React-RCTNetwork (0.74.0-rc.2): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1098,14 +1098,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.0-rc.1): + - React-RCTPushNotification (0.74.0-rc.2): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.0-rc.1): + - React-RCTSettings (0.74.0-rc.2): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1113,29 +1113,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.0-rc.1): + - React-RCTTest (0.74.0-rc.2): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.0-rc.1) - - React-CoreModules (= 0.74.0-rc.1) - - React-jsi (= 0.74.0-rc.1) - - ReactCommon/turbomodule/core (= 0.74.0-rc.1) - - React-RCTText (0.74.0-rc.1): - - React-Core/RCTTextHeaders (= 0.74.0-rc.1) + - React-Core (= 0.74.0-rc.2) + - React-CoreModules (= 0.74.0-rc.2) + - React-jsi (= 0.74.0-rc.2) + - ReactCommon/turbomodule/core (= 0.74.0-rc.2) + - React-RCTText (0.74.0-rc.2): + - React-Core/RCTTextHeaders (= 0.74.0-rc.2) - Yoga - - React-RCTVibration (0.74.0-rc.1): + - React-RCTVibration (0.74.0-rc.2): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.0-rc.1): + - React-rendererdebug (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.0-rc.1) - - React-RuntimeApple (0.74.0-rc.1): + - React-rncore (0.74.0-rc.2) + - React-RuntimeApple (0.74.0-rc.2): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1153,7 +1153,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.0-rc.1): + - React-RuntimeCore (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1166,9 +1166,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.0-rc.1): - - React-jsi (= 0.74.0-rc.1) - - React-RuntimeHermes (0.74.0-rc.1): + - React-runtimeexecutor (0.74.0-rc.2): + - React-jsi (= 0.74.0-rc.2) + - React-RuntimeHermes (0.74.0-rc.2): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1179,7 +1179,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.0-rc.1): + - React-runtimescheduler (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1191,15 +1191,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.0-rc.1): + - React-utils (0.74.0-rc.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.0-rc.1) - - ReactCommon (0.74.0-rc.1): - - ReactCommon/turbomodule (= 0.74.0-rc.1) - - ReactCommon-Samples (0.74.0-rc.1): + - React-jsi (= 0.74.0-rc.2) + - ReactCommon (0.74.0-rc.2): + - ReactCommon/turbomodule (= 0.74.0-rc.2) + - ReactCommon-Samples (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1210,43 +1210,43 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.0-rc.1): + - ReactCommon/turbomodule (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.1) - - React-cxxreact (= 0.74.0-rc.1) - - React-jsi (= 0.74.0-rc.1) - - React-logger (= 0.74.0-rc.1) - - React-perflogger (= 0.74.0-rc.1) - - ReactCommon/turbomodule/bridging (= 0.74.0-rc.1) - - ReactCommon/turbomodule/core (= 0.74.0-rc.1) - - ReactCommon/turbomodule/bridging (0.74.0-rc.1): + - React-callinvoker (= 0.74.0-rc.2) + - React-cxxreact (= 0.74.0-rc.2) + - React-jsi (= 0.74.0-rc.2) + - React-logger (= 0.74.0-rc.2) + - React-perflogger (= 0.74.0-rc.2) + - ReactCommon/turbomodule/bridging (= 0.74.0-rc.2) + - ReactCommon/turbomodule/core (= 0.74.0-rc.2) + - ReactCommon/turbomodule/bridging (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.1) - - React-cxxreact (= 0.74.0-rc.1) - - React-jsi (= 0.74.0-rc.1) - - React-logger (= 0.74.0-rc.1) - - React-perflogger (= 0.74.0-rc.1) - - ReactCommon/turbomodule/core (0.74.0-rc.1): + - React-callinvoker (= 0.74.0-rc.2) + - React-cxxreact (= 0.74.0-rc.2) + - React-jsi (= 0.74.0-rc.2) + - React-logger (= 0.74.0-rc.2) + - React-perflogger (= 0.74.0-rc.2) + - ReactCommon/turbomodule/core (0.74.0-rc.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.1) - - React-cxxreact (= 0.74.0-rc.1) - - React-debug (= 0.74.0-rc.1) - - React-jsi (= 0.74.0-rc.1) - - React-logger (= 0.74.0-rc.1) - - React-perflogger (= 0.74.0-rc.1) - - React-utils (= 0.74.0-rc.1) + - React-callinvoker (= 0.74.0-rc.2) + - React-cxxreact (= 0.74.0-rc.2) + - React-debug (= 0.74.0-rc.2) + - React-jsi (= 0.74.0-rc.2) + - React-logger (= 0.74.0-rc.2) + - React-perflogger (= 0.74.0-rc.2) + - React-utils (= 0.74.0-rc.2) - ScreenshotManager (0.0.1): - DoubleConversion - glog @@ -1467,67 +1467,67 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 22da8fa4519f02382abca21a6b28548bb9163402 + FBLazyVector: fa59cfcc9893760f58a0af6f5c25d5736c6d0b14 fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 4ee88ed6eea3635a2a6b6b9f7e07a85bde4df06f + hermes-engine: 563fc2ee6a71d0768170d4b72176ebe13f7477eb MyNativeView: b7ba0b5c94be5e9c4b2ce4887bb5f511a7c8970c NativeCxxModuleExample: c152bfeb11e2c53cdd56ffc2bafa94970ea5d195 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df - RCTDeprecation: d2d9ef7c3dba88e97dc2f329d818982f3e8d83af - RCTRequired: 8134fad77aa4efe939b8c411a380c7f4a0f97e12 - RCTTypeSafety: 33ceec88d17c2f9b2532907a053496616a13ed22 - React: 842b0c194518c65469e007a404c105ba3dc883b8 - React-callinvoker: 69911ae8252c50d5e5746b7ab2485816f8edfda5 - React-Codegen: 68e81dbc3c5ea878523bfcfbc600c9620a11b43b - React-Core: 80c3b77f51dc75fb806412033e67ad1f1ba1c132 - React-CoreModules: d272e28b3ab010ed52f73835ce8c7ba16b401aa6 - React-cxxreact: 363e851e6e5f5a7eb2f66850783bf490dc1ab997 - React-debug: 0f91d37ac88cd16cd340aaddaf474cef700bcdc9 - React-Fabric: aac9c302b35e6b5c0d26b33bdbd00fe07e8f76dd - React-FabricImage: ac3c6ebf30d0c45312437dfe3b753e23b9d61894 - React-featureflags: 7fa9537fd0681b29494fa3afa7db216d59625729 - React-graphics: ef01619c3a3c56010cc3198c3adaddf855979a59 - React-hermes: 19318873d1316b4bfc64fd69b63a028f90627b8e - React-ImageManager: 979646d315701ca8d5ffa09303b4a97475b8630e - React-jserrorhandler: 4333d61222d03104b2f8698701e1f27e4a3ebb66 - React-jsi: e6460e8c988c058169760c49361e9629c781053c - React-jsiexecutor: 6deebc7527d9c16cf81034c612d8e3e700098966 - React-jsinspector: 81b288f4f02bceacfa7d552d4fb5a6baede1ca43 - React-jsitracing: e95f81b58b50c93d07c6800082447a573f053441 - React-logger: 241ffaa9899f7438f40d8d059db1cdad0374162f - React-Mapbuffer: 43e0def5dc0d7c10814022f825ec78ecb2f61569 - React-nativeconfig: e05ba6078680b44a7c82b9f5c2f29d6423c55c74 - React-NativeModulesApple: 12fb3b2cd7d45e94cd88ea8f06ec0968f69946f2 - React-perflogger: 7f49b96e6f27f3bbe8010bb578a640c3a58e63b9 - React-RCTActionSheet: 516c6f7f962de7198b70d349e718e640367f3d24 - React-RCTAnimation: e85038929eaac53fd70aa75bb3ef40a1d2685a15 - React-RCTAppDelegate: e8ab526cd20834fa7f56842aa442b3a26ce6d70e - React-RCTBlob: b9c514add6a9d84ea3049b5c76c3100276c40a26 - React-RCTFabric: ab1b10a94d07117794e330b4dc4280183c95e9ff - React-RCTImage: 6a0bf1f7fb2a7cdc6ca44a3aa5d575ae903d8aed - React-RCTLinking: f2f5ede719d84a74d5f7543d57320ebffe1eb3d6 - React-RCTNetwork: 789be4ca8eb30ebf556cec6e9e717018991aef5b - React-RCTPushNotification: f441f797cd55459ed38d0f0e17cdeed6b8a3b80e - React-RCTSettings: 9b5b249d9f640d0c40f5a99c62e52fbd65081616 - React-RCTTest: b8ed4bfbc5be3c4b1df1f57c869e1877bb8950ae - React-RCTText: 1b7c1a1fa9f4ee68877316b3f2f798df9455ff70 - React-RCTVibration: 2bf1e7927e6c84b1129324489d0d07acf2ab38ce - React-rendererdebug: e563d4d2ab0103e0d2cf79ff4c1c1d70f356864c - React-rncore: c46e2d0bb983109be638ebb4955d980927f82307 - React-RuntimeApple: b8c18b09f0fb3ca3343ec35d3364d31c69a4510a - React-RuntimeCore: bbf5e6d2ab800e23be4c7413718d9a178c933c35 - React-runtimeexecutor: 286f43edf7b9a887e0f0fbc95a94350578d7861c - React-RuntimeHermes: 1277763c100912054a330a731e5f662a08826ac2 - React-runtimescheduler: 39e5e7a103a2061916f6224b324d10a25aefe9d8 - React-utils: 6eb471f63ebb2041ca59c93e33c4cf5cdb7bb55a - ReactCommon: f72becffc337da2eb3569f08563e39fdde5fcf68 - ReactCommon-Samples: 9404d2a3828909acfe5d5a002a1d57b588d466e8 + RCTDeprecation: 6cc9677aab2e9af79e75f2eeea9be22adbc657d9 + RCTRequired: 1c308285f5125d3e65fd864d1ffbd51c84f19be0 + RCTTypeSafety: c66cf0ffe89d4c3a6f74c38a8b1396d9a06bd5f2 + React: 525ec60174ace50c7cc60fe92982e580b0b26cfb + React-callinvoker: 38f05fc7eb5c7871c1492a738c3c5030dccb5ab5 + React-Codegen: 34ae0dd53dc864028201b5bdb80f052c112c3ce5 + React-Core: a86958b70355c2fa2b959ceb6a9e68feb1dabe60 + React-CoreModules: 158d38fb11abd70117c61567815ab1e9718966f0 + React-cxxreact: 6d319bcf5f41f7b5330fbe8c27049793a08dba6f + React-debug: 8978d47d2f81f65f9356c84ee6f53c8600396a60 + React-Fabric: bb9770e578f339e24ca4cfeb306ee400b72aace9 + React-FabricImage: 8f9dd2533a951f1fb3403c6ebe1a47a201ded452 + React-featureflags: bcc40ad00b2de429cbe4277e03e8855a4fa24a10 + React-graphics: ce64afd30777eaaffca7086c13e52f430e15553c + React-hermes: 077ba60b78db135eebcac68939ed8ec9a1edfba8 + React-ImageManager: 88bff6cb69aa5f2f9a509f886e8e54389546f387 + React-jserrorhandler: d3430dd12e86ab03501ac4308f639e41d9fe965c + React-jsi: 2f418a12887ba5de80f89fbf5630cfc67f81660e + React-jsiexecutor: 88ba7d9919658a39601312298b09a557226971f3 + React-jsinspector: 4729e72b86726ed43fc5ba7cbdb255de81c1fb6c + React-jsitracing: 0ea7358d02b7c4e8b0a09c7d35047bdd28251ede + React-logger: 216e56f4326f6c48202d62a7f5b44e4c360ce1a2 + React-Mapbuffer: ae2d3f6558e75910a4e4a5fb07a283a5561dcd2a + React-nativeconfig: 286fd459e7b7e50618040f6549b8846aa3b32ff9 + React-NativeModulesApple: 0d60bfd31dea51b1a65fd9910a57b2aa068d173a + React-perflogger: bc4cdc9440a5ba3b462813447a5a6633010b1cc8 + React-RCTActionSheet: 8b27811da488f196167ca1756453cc1feacbed8f + React-RCTAnimation: aba9dcc5c6c0213cd1e747076300261aa8d23845 + React-RCTAppDelegate: f8d6afca137f95bac028b631c89c9648ae2e864d + React-RCTBlob: 843bb240adc3bc28cf8893a5fad4b4d41c0b89ad + React-RCTFabric: 5d3862472637a83c703daf1e491119d27520dc8e + React-RCTImage: 67ea59e43e222cde321675e49416e21b5adc52e6 + React-RCTLinking: 73f14ccf9ce161d5f7b61c4d18eb01876897fe17 + React-RCTNetwork: 157786ee39743278756977b8161631646bcf9770 + React-RCTPushNotification: 39aeca2c812535b55c039facb4750fe163fd61d9 + React-RCTSettings: e3b41387f9b00dd2c27633516d3910c9b599dd20 + React-RCTTest: 828f3a48a53d74731ee88a46497c9d1d44850900 + React-RCTText: 03f0530b5c16d420458295121cf47ecaad63dad6 + React-RCTVibration: 7c3592b2a785e6c2538376c21224d30da099e06e + React-rendererdebug: dcb8ec8ef31cfc3e30499929b6264d4968fb44b2 + React-rncore: 6c296b9f1b3ce22a461459c61a4771e47f247e0a + React-RuntimeApple: b9f9eae52898eb42e606a1c4030f4b8babb3918e + React-RuntimeCore: d25c52bc73a05b2f6ee90d615bdb82ef5dcbfeef + React-runtimeexecutor: 9ea6854962deb2841e4ea6706ee77155c0d0e986 + React-RuntimeHermes: 36a52c7430c8e3f55eae7350c6b65d1e854184c2 + React-runtimescheduler: 29aa1c59c7da4d7275c9757d4f26869e2954a8bd + React-utils: b3fdffd65d9f66ae79435e6633b8a634ac67baf7 + ReactCommon: a4c502bf9d6b69ac8a1961bce7ae32a1e8439555 + ReactCommon-Samples: 45e4ac2af551590b647d363450bbd703372fa811 ScreenshotManager: 8584ded316377154f7cc19d5ef15e7c94ce04466 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: b5e35ff0b1e5471fd219614caf88f988b30f2590 + Yoga: f78d50661f1d9906929cddb3641febd14068f090 PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf -COCOAPODS: 1.14.3 +COCOAPODS: 1.14.2 From 4dc9d54447f58cfdd350b50abdee56f2c0d8da80 Mon Sep 17 00:00:00 2001 From: Tomek Zawadzki Date: Mon, 4 Mar 2024 04:23:20 -0800 Subject: [PATCH 029/223] Expose `rrc_textinput` via prefab (#43274) Summary: The `rrc_textinput` was not exposed via prefab. I'm adding it to make possible for react-native-live-markdown to integrate on top of React Native via prefab. Based on https://github.com/facebook/react-native/issues/36166. ## Changelog: [ANDROID] [CHANGED] - Expose `rrc_textinput` via prefab. Pull Request resolved: https://github.com/facebook/react-native/pull/43274 Reviewed By: cipolleschi Differential Revision: D54482657 Pulled By: cortinico fbshipit-source-id: ca7f4127f1808f841d88925238666e837de75bd0 --- packages/react-native/ReactAndroid/build.gradle.kts | 7 +++++++ .../ReactAndroid/cmake-utils/ReactNative-application.cmake | 2 ++ 2 files changed, 9 insertions(+) diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index 7e0640a0e50a66..1daa175311aacb 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -125,6 +125,11 @@ val preparePrefab by "react/renderer/components/view/"), Pair("../ReactCommon/react/renderer/components/view/platform/android/", ""), )), + PrefabPreprocessingEntry( + "rrc_textinput", + Pair( + "../ReactCommon/react/renderer/components/textinput/", + "react/renderer/components/androidtextinput/")), PrefabPreprocessingEntry( "rrc_legacyviewmanagerinterop", Pair( @@ -538,6 +543,7 @@ android { "rrc_image", "rrc_root", "rrc_view", + "rrc_textinput", "rrc_legacyviewmanagerinterop", "jsi", "glog", @@ -662,6 +668,7 @@ android { create("rrc_image") { headers = File(prefabHeadersDir, "rrc_image").absolutePath } create("rrc_root") { headers = File(prefabHeadersDir, "rrc_root").absolutePath } create("rrc_view") { headers = File(prefabHeadersDir, "rrc_view").absolutePath } + create("rrc_textinput") { headers = File(prefabHeadersDir, "rrc_textinput").absolutePath } create("rrc_legacyviewmanagerinterop") { headers = File(prefabHeadersDir, "rrc_legacyviewmanagerinterop").absolutePath } diff --git a/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake b/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake index 1ad0af8843dbc1..c27c8e58b4c2c7 100644 --- a/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake +++ b/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake @@ -74,6 +74,7 @@ add_library(react_cxxreactpackage ALIAS ReactAndroid::react_cxxreactpackage) add_library(react_render_core ALIAS ReactAndroid::react_render_core) add_library(react_render_graphics ALIAS ReactAndroid::react_render_graphics) add_library(rrc_view ALIAS ReactAndroid::rrc_view) +add_library(rrc_textinput ALIAS ReactAndroid::rrc_textinput) add_library(jsi ALIAS ReactAndroid::jsi) add_library(glog ALIAS ReactAndroid::glog) add_library(fabricjni ALIAS ReactAndroid::fabricjni) @@ -108,6 +109,7 @@ target_link_libraries(${CMAKE_PROJECT_NAME} react_render_mapbuffer # prefab ready rrc_image # prefab ready rrc_view # prefab ready + rrc_textinput # prefab ready rrc_legacyviewmanagerinterop # prefab ready runtimeexecutor # prefab ready turbomodulejsijni # prefab ready From 7c2fb7911adf4c58ef8d5baf24f6344d96a1e740 Mon Sep 17 00:00:00 2001 From: Tomek Zawadzki Date: Wed, 6 Mar 2024 03:54:46 -0800 Subject: [PATCH 030/223] Expose `rrc_text` via prefab (#43275) Summary: The `rrc_text` was not exposed via prefab. I'm adding it to make possible for react-native-live-markdown to integrate on top of React Native via prefab. Based on https://github.com/facebook/react-native/issues/36166. ## Changelog: [ANDROID] [CHANGED] - Expose `rrc_text` via prefab. Pull Request resolved: https://github.com/facebook/react-native/pull/43275 Reviewed By: cipolleschi Differential Revision: D54536468 Pulled By: cortinico fbshipit-source-id: 8c4ef983467bfc46930f10bf7bd95761c2d11788 --- packages/react-native/ReactAndroid/build.gradle.kts | 7 +++++++ .../ReactAndroid/cmake-utils/ReactNative-application.cmake | 2 ++ 2 files changed, 9 insertions(+) diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index 1daa175311aacb..8604b17a7772cb 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -125,6 +125,11 @@ val preparePrefab by "react/renderer/components/view/"), Pair("../ReactCommon/react/renderer/components/view/platform/android/", ""), )), + PrefabPreprocessingEntry( + "rrc_text", + Pair( + "../ReactCommon/react/renderer/components/text/", + "react/renderer/components/text/")), PrefabPreprocessingEntry( "rrc_textinput", Pair( @@ -543,6 +548,7 @@ android { "rrc_image", "rrc_root", "rrc_view", + "rrc_text", "rrc_textinput", "rrc_legacyviewmanagerinterop", "jsi", @@ -668,6 +674,7 @@ android { create("rrc_image") { headers = File(prefabHeadersDir, "rrc_image").absolutePath } create("rrc_root") { headers = File(prefabHeadersDir, "rrc_root").absolutePath } create("rrc_view") { headers = File(prefabHeadersDir, "rrc_view").absolutePath } + create("rrc_text") { headers = File(prefabHeadersDir, "rrc_text").absolutePath } create("rrc_textinput") { headers = File(prefabHeadersDir, "rrc_textinput").absolutePath } create("rrc_legacyviewmanagerinterop") { headers = File(prefabHeadersDir, "rrc_legacyviewmanagerinterop").absolutePath diff --git a/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake b/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake index c27c8e58b4c2c7..0a1c9197a954e5 100644 --- a/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake +++ b/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake @@ -74,6 +74,7 @@ add_library(react_cxxreactpackage ALIAS ReactAndroid::react_cxxreactpackage) add_library(react_render_core ALIAS ReactAndroid::react_render_core) add_library(react_render_graphics ALIAS ReactAndroid::react_render_graphics) add_library(rrc_view ALIAS ReactAndroid::rrc_view) +add_library(rrc_text ALIAS ReactAndroid::rrc_text) add_library(rrc_textinput ALIAS ReactAndroid::rrc_textinput) add_library(jsi ALIAS ReactAndroid::jsi) add_library(glog ALIAS ReactAndroid::glog) @@ -109,6 +110,7 @@ target_link_libraries(${CMAKE_PROJECT_NAME} react_render_mapbuffer # prefab ready rrc_image # prefab ready rrc_view # prefab ready + rrc_text # prefab ready rrc_textinput # prefab ready rrc_legacyviewmanagerinterop # prefab ready runtimeexecutor # prefab ready From bd39897abf279abc700ae8dd1ccf59938e719cbe Mon Sep 17 00:00:00 2001 From: Pieter De Baets Date: Mon, 4 Mar 2024 04:26:36 -0800 Subject: [PATCH 031/223] Fix NullPointerException thrown on startup (#43293) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43293 Was debugging this, and found that this exception was being thrown due to `DefaultBindingsInstaller`, which was an invalid hybrid object. The ReactInstance initializer fully supports this being null, so let's use that as default. Changelog: [Android][Fixed] NullPointerException is no longer ignored in MessageQueueThreadHandler Reviewed By: sammy-SC Differential Revision: D54434417 fbshipit-source-id: 52417b390061eface0f0578e32796d3a85303e03 --- .../queue/MessageQueueThreadHandler.java | 11 ---------- .../defaults/DefaultBindingsInstaller.kt | 20 ------------------- .../defaults/DefaultReactHostDelegate.kt | 2 +- .../jni/react/jni/JMessageQueueThread.cpp | 1 - .../main/jni/react/jni/JMessageQueueThread.h | 4 ---- 5 files changed, 1 insertion(+), 37 deletions(-) delete mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultBindingsInstaller.kt diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadHandler.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadHandler.java index ddac0bfec7360f..010b6871593ea1 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadHandler.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadHandler.java @@ -10,8 +10,6 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; -import com.facebook.common.logging.FLog; -import com.facebook.react.common.ReactConstants; /** Handler that can catch and dispatch Exceptions to an Exception handler. */ public class MessageQueueThreadHandler extends Handler { @@ -28,15 +26,6 @@ public void dispatchMessage(Message msg) { try { super.dispatchMessage(msg); } catch (Exception e) { - if (e instanceof NullPointerException) { - FLog.e( - ReactConstants.TAG, - "Caught NullPointerException when dispatching message in MessageQueueThreadHandler. This is likely caused by runnable" - + "(msg.callback) being nulled in Android Handler after dispatching and before handling (see T170239922 for more details)." - + "Currently we observe that it only happen once which is during initialisation. Due to fixing probably involve Android " - + "System code, we decide to ignore here for now and print an error message for debugging purpose in case this cause more serious issues in future."); - return; - } mExceptionHandler.handleException(e); } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultBindingsInstaller.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultBindingsInstaller.kt deleted file mode 100644 index 06a47d80908ebb..00000000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultBindingsInstaller.kt +++ /dev/null @@ -1,20 +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. - */ - -package com.facebook.react.defaults - -import com.facebook.jni.annotations.DoNotStrip -import com.facebook.react.common.annotations.UnstableReactNativeAPI -import com.facebook.react.runtime.BindingsInstaller - -/** - * A utility class that provides users a default [BindingsInstaller] class that's used to initialize - * [ReactHostDelegate] - */ -@DoNotStrip -@UnstableReactNativeAPI -public class DefaultBindingsInstaller : BindingsInstaller(null) {} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt index 5f53398208a74d..3c50cac823e6f7 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt @@ -43,7 +43,7 @@ public class DefaultReactHostDelegate( override val jsBundleLoader: JSBundleLoader, override val reactPackages: List = emptyList(), override val jsRuntimeFactory: JSRuntimeFactory = HermesInstance(), - override val bindingsInstaller: BindingsInstaller = DefaultBindingsInstaller(), + override val bindingsInstaller: BindingsInstaller? = null, private val reactNativeConfig: ReactNativeConfig = ReactNativeConfig.DEFAULT_CONFIG, private val exceptionHandler: (Exception) -> Unit = {}, override val turboModuleManagerDelegateBuilder: ReactPackageTurboModuleManagerDelegate.Builder diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.cpp index df01e447a42e5d..e945c01e267944 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.cpp @@ -10,7 +10,6 @@ #include #include -#include #include #include #include diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.h b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.h index 3926fa906deaaf..716e58b0a7b61e 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/jni/JMessageQueueThread.h @@ -42,10 +42,6 @@ class JMessageQueueThread : public MessageQueueThread { */ void quitSynchronous() override; - JavaMessageQueueThread::javaobject jobj() { - return m_jobj.get(); - } - private: jni::global_ref m_jobj; }; From a9ec4203e1c59b057ef5692fed21df361abf2e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Kwas=CC=81niewski?= Date: Fri, 8 Mar 2024 04:53:42 -0800 Subject: [PATCH 032/223] fix(iOS) [0.74]: RCTRedBox not appearing in Bridgeless when metro is not running (#43147) Summary: When testing out `0.74.0-rc0` I found that when the metro is not running we are not displaying RedBox which bumps users to start the packager and reload the app. It also fixes the case where users try to reload by clicking the "Reload" button on RedBox. ## Before https://github.com/facebook/react-native/assets/52801365/086c557f-ea1f-4a97-b4c7-df8a945cc7a0 ## After https://github.com/facebook/react-native/assets/52801365/9f8421b3-5e83-466f-8cdb-38f97981275d ## Changelog: [IOS] [FIXED] - RCTRedBox not appearing in Bridgeless when metro is not running Pull Request resolved: https://github.com/facebook/react-native/pull/43147 Test Plan: Build the app without metro running check if RedBox is shown Reviewed By: javache Differential Revision: D54632056 Pulled By: dmytrorykun fbshipit-source-id: fb6742898d3bd82545bfffd9175208e1a5984cb6 --- .../React/CoreModules/RCTRedBox.mm | 8 +++- .../platform/ios/ReactCommon/RCTInstance.mm | 43 ++++++++++++++++--- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/packages/react-native/React/CoreModules/RCTRedBox.mm b/packages/react-native/React/CoreModules/RCTRedBox.mm index 822e17ab570baf..15cf2f023aaa4c 100644 --- a/packages/react-native/React/CoreModules/RCTRedBox.mm +++ b/packages/react-native/React/CoreModules/RCTRedBox.mm @@ -274,7 +274,13 @@ - (void)dismiss - (void)reload { - [_actionDelegate reloadFromRedBoxController:self]; + if (_actionDelegate != nil) { + [_actionDelegate reloadFromRedBoxController:self]; + } else { + // In bridgeless mode `RCTRedBox` gets deallocated, we need to notify listeners anyway. + RCTTriggerReloadCommandListeners(@"Redbox"); + [self dismiss]; + } } - (void)showExtraDataViewController diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm index a123105a672ce1..c16506810ea434 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm @@ -28,6 +28,8 @@ #import #import #import +#import +#import #import #import #import @@ -122,10 +124,17 @@ - (instancetype)initWithDelegate:(id)delegate }]; } - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(_notifyEventDispatcherObserversOfEvent_DEPRECATED:) - name:@"RCTNotifyEventDispatcherObserversOfEvent_DEPRECATED" - object:nil]; + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + + [defaultCenter addObserver:self + selector:@selector(_notifyEventDispatcherObserversOfEvent_DEPRECATED:) + name:@"RCTNotifyEventDispatcherObserversOfEvent_DEPRECATED" + object:nil]; + + [defaultCenter addObserver:self + selector:@selector(didReceiveReloadCommand) + name:RCTTriggerReloadCommandNotification + object:nil]; [self _start]; } @@ -389,6 +398,24 @@ - (void)_attachBridgelessAPIsToModule:(id)module } } +- (void)handleBundleLoadingError:(NSError *)error +{ + if (!_valid) { + return; + } + + RCTRedBox *redBox = [_turboModuleManager moduleForName:"RedBox"]; + + RCTExecuteOnMainQueue(^{ + [[NSNotificationCenter defaultCenter] postNotificationName:RCTJavaScriptDidFailToLoadNotification + object:self + userInfo:@{@"error" : error}]; + [redBox showErrorMessage:[error localizedDescription]]; + + RCTFatal(error); + }); +} + - (void)_loadJSBundle:(NSURL *)sourceURL { #if RCT_DEV_MENU && __has_include() @@ -420,8 +447,7 @@ - (void)_loadJSBundle:(NSURL *)sourceURL } if (error) { - // TODO(T91461138): Properly address bundle loading errors. - RCTLogError(@"RCTInstance: Error while loading bundle: %@", error); + [strongSelf handleBundleLoadingError:error]; [strongSelf invalidate]; return; } @@ -490,4 +516,9 @@ - (void)_handleJSErrorMap:(facebook::react::MapBuffer)errorMap isFatal:errorMap.getBool(JSErrorHandlerKey::kIsFatal)]; } +- (void)didReceiveReloadCommand +{ + [self _loadJSBundle:[_bridgeModuleDecorator.bundleManager bundleURL]]; +} + @end From 1151ea12479213fbc7902e65da199d45a3c2f04f Mon Sep 17 00:00:00 2001 From: Pieter De Baets Date: Wed, 6 Mar 2024 03:11:33 -0800 Subject: [PATCH 033/223] Fix DefaultReactNativeHost assuming lazyViewManagers are always available (#43334) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43334 cortinico flagged that bridge + fabric regressed in 0.74, likely due to D53406841. Changelog: [Android][Fixed] Fix registration of ViewManagers in new renderer when not using lazyViewManagers. Reviewed By: fkgozali Differential Revision: D54551645 fbshipit-source-id: 0783030cd0d2900a3a254ae04c9ea4e51035272a --- .../facebook/react/ReactInstanceManager.java | 5 +++++ .../react/defaults/DefaultReactNativeHost.kt | 17 +++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java index a600833e264a4a..7258ab91f4dbc1 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java @@ -998,6 +998,11 @@ public Collection getViewManagerNames() { if (names != null) { uniqueNames.addAll(names); } + } else { + FLog.w( + ReactConstants.TAG, + "Package %s is not a ViewManagerOnDemandReactPackage, view managers will not be loaded", + reactPackage.getClass().getSimpleName()); } Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE); } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt index da82f02ea68262..817e953d0de25f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt @@ -49,13 +49,18 @@ protected constructor( DefaultComponentsRegistry.register(componentFactory) val viewManagerRegistry = - ViewManagerRegistry( - object : ViewManagerResolver { - override fun getViewManager(viewManagerName: String) = - reactInstanceManager.createViewManager(viewManagerName) + if (lazyViewManagersEnabled) { + ViewManagerRegistry( + object : ViewManagerResolver { + override fun getViewManager(viewManagerName: String) = + reactInstanceManager.createViewManager(viewManagerName) - override fun getViewManagerNames() = reactInstanceManager.viewManagerNames - }) + override fun getViewManagerNames() = reactInstanceManager.viewManagerNames + }) + } else { + ViewManagerRegistry( + reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)) + } FabricUIManagerProviderImpl( componentFactory, ReactNativeConfig.DEFAULT_CONFIG, viewManagerRegistry) From 31b62ab7f02ec07c14fabc7e1734e7844d2daf27 Mon Sep 17 00:00:00 2001 From: Rick Hanlon Date: Thu, 7 Mar 2024 23:15:55 -0800 Subject: [PATCH 034/223] Fix component stacks for tsx, ts, and jsx files (#43370) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43370 Component stacks with files ending in .ts, .tsx, or .jsx were skipped in LogBox reporting. This diff fixes the regex. Changelog: [General][Fixed] - Support .tsx, .ts, and .jsx in component stacks Reviewed By: yungsters Differential Revision: D54638526 fbshipit-source-id: a5271daaa7b687e8e075be3f94ab9b9c03f79b66 --- .../Data/__tests__/parseLogBoxLog-test.js | 48 +++++++++++++++++++ .../Libraries/LogBox/Data/parseLogBoxLog.js | 2 +- 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/packages/react-native/Libraries/LogBox/Data/__tests__/parseLogBoxLog-test.js b/packages/react-native/Libraries/LogBox/Data/__tests__/parseLogBoxLog-test.js index 42a2a9e6950daa..20ab886c9554bf 100644 --- a/packages/react-native/Libraries/LogBox/Data/__tests__/parseLogBoxLog-test.js +++ b/packages/react-native/Libraries/LogBox/Data/__tests__/parseLogBoxLog-test.js @@ -1020,6 +1020,54 @@ Please follow the instructions at: fburl.com/rn-remote-assets`, }); }); + it('detects a component stack for ts, tsx, jsx, and js files', () => { + expect( + parseLogBoxLog([ + 'Some kind of message\n in MyTSComponent (at MyTSXComponent.ts:1)\n in MyTSXComponent (at MyTSCComponent.tsx:1)\n in MyJSXComponent (at MyJSXComponent.jsx:1)\n in MyJSComponent (at MyJSComponent.js:1)', + ]), + ).toEqual({ + componentStack: [ + { + content: 'MyTSComponent', + fileName: 'MyTSXComponent.ts', + location: { + column: -1, + row: 1, + }, + }, + { + content: 'MyTSXComponent', + fileName: 'MyTSCComponent.tsx', + location: { + column: -1, + row: 1, + }, + }, + { + content: 'MyJSXComponent', + fileName: 'MyJSXComponent.jsx', + location: { + column: -1, + row: 1, + }, + }, + { + content: 'MyJSComponent', + fileName: 'MyJSComponent.js', + location: { + column: -1, + row: 1, + }, + }, + ], + category: 'Some kind of message', + message: { + content: 'Some kind of message', + substitutions: [], + }, + }); + }); + it('detects a component stack in the first argument (JSC)', () => { expect( parseLogBoxLog([ diff --git a/packages/react-native/Libraries/LogBox/Data/parseLogBoxLog.js b/packages/react-native/Libraries/LogBox/Data/parseLogBoxLog.js index 744fa5e4e367ef..940971d76e45c9 100644 --- a/packages/react-native/Libraries/LogBox/Data/parseLogBoxLog.js +++ b/packages/react-native/Libraries/LogBox/Data/parseLogBoxLog.js @@ -192,7 +192,7 @@ export function parseComponentStack(message: string): ComponentStack { if (!s) { return null; } - const match = s.match(/(.*) \(at (.*\.js):([\d]+)\)/); + const match = s.match(/(.*) \(at (.*\.(?:js|jsx|ts|tsx)):([\d]+)\)/); if (!match) { return null; } From 10d65924eedef924bc0e05f8ddeddfc87168f2dc Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Wed, 6 Mar 2024 13:19:55 -0800 Subject: [PATCH 035/223] Support onActivityResult in Bridgeless (#43351) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43351 Implement `onActivityResult` on Bridgeless Changelog: [Internal] internal Reviewed By: cortinico Differential Revision: D54574139 fbshipit-source-id: f2369077199186ac6ef0187b5dfe7ed95f3b87fc --- .../ReactAndroid/api/ReactAndroid.api | 2 ++ .../com/facebook/react/ReactDelegate.java | 3 +- .../main/java/com/facebook/react/ReactHost.kt | 9 ++++++ .../facebook/react/runtime/ReactHostImpl.java | 32 +++++++++++++++++++ 4 files changed, 44 insertions(+), 2 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index f7c5343d1d7169..419dd741ffd6f9 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -196,6 +196,7 @@ public abstract interface class com/facebook/react/ReactHost { public abstract fun getJsEngineResolutionAlgorithm ()Lcom/facebook/react/JSEngineResolutionAlgorithm; public abstract fun getLifecycleState ()Lcom/facebook/react/common/LifecycleState; public abstract fun getReactQueueConfiguration ()Lcom/facebook/react/bridge/queue/ReactQueueConfiguration; + public abstract fun onActivityResult (Landroid/app/Activity;IILandroid/content/Intent;)V public abstract fun onBackPressed ()Z public abstract fun onHostDestroy ()V public abstract fun onHostDestroy (Landroid/app/Activity;)V @@ -3602,6 +3603,7 @@ public class com/facebook/react/runtime/ReactHostImpl : com/facebook/react/React public fun getLifecycleState ()Lcom/facebook/react/common/LifecycleState; public fun getMemoryPressureRouter ()Lcom/facebook/react/MemoryPressureRouter; public fun getReactQueueConfiguration ()Lcom/facebook/react/bridge/queue/ReactQueueConfiguration; + public fun onActivityResult (Landroid/app/Activity;IILandroid/content/Intent;)V public fun onBackPressed ()Z public fun onHostDestroy ()V public fun onHostDestroy (Landroid/app/Activity;)V diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index 2140f4a0a1ba53..1f89ceee0f6a58 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -139,8 +139,7 @@ public boolean onBackPressed() { public void onActivityResult( int requestCode, int resultCode, Intent data, boolean shouldForwardToReactInstance) { if (ReactFeatureFlags.enableBridgelessArchitecture) { - // TODO T156475655: Implement onActivityResult for Bridgeless - return; + mReactHost.onActivityResult(mActivity, requestCode, resultCode, data); } else { if (getReactNativeHost().hasInstance() && shouldForwardToReactInstance) { getReactNativeHost() diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt index 966bbb54fda32e..69c9821b004a27 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt @@ -9,6 +9,7 @@ package com.facebook.react import android.app.Activity import android.content.Context +import android.content.Intent import android.os.Bundle import com.facebook.react.bridge.ReactContext import com.facebook.react.bridge.queue.ReactQueueConfiguration @@ -111,6 +112,14 @@ public interface ReactHost { */ public fun destroy(reason: String, ex: Exception?): TaskInterface + /* To be called when the host activity receives an activity result. */ + public fun onActivityResult( + activity: Activity, + requestCode: Int, + resultCode: Int, + data: Intent?, + ) + public fun addBeforeDestroyListener(onBeforeDestroy: () -> Unit) public fun removeBeforeDestroyListener(onBeforeDestroy: () -> Unit) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java index 674aeb42f9f7fd..1bf665685bb17d 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java @@ -15,6 +15,7 @@ import android.app.Activity; import android.content.Context; +import android.content.Intent; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -600,6 +601,37 @@ RuntimeExecutor getRuntimeExecutor() { return null; } + /** + * To be called when the host activity receives an activity result. + * + * @param activity The host activity + */ + @ThreadConfined(UI) + @Override + public void onActivityResult( + Activity activity, int requestCode, int resultCode, @Nullable Intent data) { + final String method = + "onActivityResult(activity = \"" + + activity + + "\", requestCode = \"" + + requestCode + + "\", resultCode = \"" + + resultCode + + "\", data = \"" + + data + + "\")"; + log(method); + + ReactContext currentContext = getCurrentReactContext(); + if (currentContext != null) { + currentContext.onActivityResult(activity, requestCode, resultCode, data); + } + ReactSoftExceptionLogger.logSoftException( + TAG, + new ReactNoCrashSoftException( + "Tried to access onActivityResult while context is not ready")); + } + @Nullable JavaScriptContextHolder getJavaScriptContextHolder() { final ReactInstance reactInstance = mReactInstanceTaskRef.get().getResult(); From 6440e35bc7d7ad7e177874888f718c282bfbce0b Mon Sep 17 00:00:00 2001 From: Tomek Zawadzki Date: Fri, 8 Mar 2024 04:32:44 -0800 Subject: [PATCH 036/223] Expose `react_render_textlayoutmanager` via prefab (#43381) Summary: The `react_render_textlayoutmanager` was not exposed via prefab. I'm adding it to make possible for react-native-live-markdown to integrate on top of React Native via prefab. Based on https://github.com/facebook/react-native/issues/36166. ## Changelog: [ANDROID] [CHANGED] - Expose `react_render_textlayoutmanager` via prefab. Pull Request resolved: https://github.com/facebook/react-native/pull/43381 Reviewed By: javache Differential Revision: D54676207 Pulled By: cortinico fbshipit-source-id: 90e3b90ff842250bf1e3abcc0c54f057b68a82fd --- packages/react-native/ReactAndroid/build.gradle.kts | 12 ++++++++++++ .../cmake-utils/ReactNative-application.cmake | 2 ++ 2 files changed, 14 insertions(+) diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index 8604b17a7772cb..7c8499df4f58c2 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -148,6 +148,14 @@ val preparePrefab by PrefabPreprocessingEntry( "react_render_mapbuffer", Pair("../ReactCommon/react/renderer/mapbuffer/", "react/renderer/mapbuffer/")), + PrefabPreprocessingEntry( + "react_render_textlayoutmanager", + listOf( + Pair( + "../ReactCommon/react/renderer/textlayoutmanager/", + "react/renderer/textlayoutmanager/"), + Pair("../ReactCommon/react/renderer/textlayoutmanager/platform/android/", ""), + )), PrefabPreprocessingEntry( "yoga", listOf( @@ -555,6 +563,7 @@ android { "glog", "fabricjni", "react_render_mapbuffer", + "react_render_textlayoutmanager", "yoga", "folly_runtime", "react_nativemodule_core", @@ -685,6 +694,9 @@ android { create("react_render_mapbuffer") { headers = File(prefabHeadersDir, "react_render_mapbuffer").absolutePath } + create("react_render_textlayoutmanager") { + headers = File(prefabHeadersDir, "react_render_textlayoutmanager").absolutePath + } create("yoga") { headers = File(prefabHeadersDir, "yoga").absolutePath } create("folly_runtime") { headers = File(prefabHeadersDir, "folly_runtime").absolutePath } create("react_nativemodule_core") { diff --git a/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake b/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake index 0a1c9197a954e5..e2efc266ca0f68 100644 --- a/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake +++ b/packages/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake @@ -80,6 +80,7 @@ add_library(jsi ALIAS ReactAndroid::jsi) add_library(glog ALIAS ReactAndroid::glog) add_library(fabricjni ALIAS ReactAndroid::fabricjni) add_library(react_render_mapbuffer ALIAS ReactAndroid::react_render_mapbuffer) +add_library(react_render_textlayoutmanager ALIAS ReactAndroid::react_render_textlayoutmanager) add_library(yoga ALIAS ReactAndroid::yoga) add_library(folly_runtime ALIAS ReactAndroid::folly_runtime) add_library(react_nativemodule_core ALIAS ReactAndroid::react_nativemodule_core) @@ -108,6 +109,7 @@ target_link_libraries(${CMAKE_PROJECT_NAME} react_render_graphics # prefab ready react_render_imagemanager # prefab ready react_render_mapbuffer # prefab ready + react_render_textlayoutmanager # prefab ready rrc_image # prefab ready rrc_view # prefab ready rrc_text # prefab ready From 66b1cfee977805b5707ca72aad44616bd0360686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Kwas=CC=81niewski?= Date: Mon, 4 Mar 2024 10:14:44 -0800 Subject: [PATCH 037/223] feat(RCTAppDelegate): Implement `RCTRootViewFactory` (#42263) Summary: This PR implements `RCTRootViewFactory` a utility class (suggested by cipolleschi) that returns proper RCTRootView based on the current environment state (new arch/old arch/bridgeless). This class aims to preserve background compatibility by implementing a configuration class forwarding necessary class to RCTAppDelegate. This PR leverages the `RCTRootViewFactory` in `RCTAppDelegate` for the default initialization of React Native (greenfield). Here is an example of creating a Brownfield integration (without RCTAppDelegate) using this class (can be later added to docs): 1. Store reference to `rootViewFactory` and to `UIWindow` `AppDelegate.h`: ```objc interface AppDelegate : UIResponder property(nonatomic, strong) UIWindow* window; property(nonatomic, strong) RCTRootViewFactory* rootViewFactory; end ``` 2. Create an initial configuration using `RCTRootViewFactoryConfiguration` and initialize `RCTRootViewFactory` using it. Then you can use the factory to create a new `RCTRootView` without worrying about old arch/new arch/bridgeless. `AppDelegate.mm` ```objc implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Create configuration RCTRootViewFactoryConfiguration *configuration = [[RCTRootViewFactoryConfiguration alloc] initWithBundleURL:self.bundleURL newArchEnabled:self.fabricEnabled turboModuleEnabled:self.turboModuleEnabled bridgelessEnabled:self.bridgelessEnabled]; // Initialize RCTRootViewFactory self.rootViewFactory = [[RCTRootViewFactory alloc] initWithConfiguration:configuration]; // Create main root view UIView *rootView = [self.rootViewFactory viewWithModuleName:@"RNTesterApp" initialProperties:@{} launchOptions:launchOptions]; // Set main window as you prefer for your Brownfield integration. self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *rootViewController = [UIViewController new]; rootViewController.view = rootView; self.window.rootViewController = rootViewController; [self.window makeKeyAndVisible]; // Later in the codebase you can initialize more rootView's using rootViewFactory. return YES; } end ``` bypass-github-export-checks [INTERNAL] [ADDED] - Implement RCTRootViewFactory Pull Request resolved: https://github.com/facebook/react-native/pull/42263 Test Plan: Check if root view is properly created on app initialization Reviewed By: dmytrorykun Differential Revision: D53179625 Pulled By: cipolleschi fbshipit-source-id: 9bc850965ba30d84ad3e67d91dd888f0547c2136 --- .../Libraries/AppDelegate/RCTAppDelegate.h | 13 +- .../Libraries/AppDelegate/RCTAppDelegate.mm | 186 ++++--------- .../AppDelegate/RCTRootViewFactory.h | 123 +++++++++ .../AppDelegate/RCTRootViewFactory.mm | 253 ++++++++++++++++++ .../FlexibleSizeExampleView.mm | 5 +- .../UpdatePropertiesExampleView.mm | 5 +- 6 files changed, 441 insertions(+), 144 deletions(-) create mode 100644 packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h create mode 100644 packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.h b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.h index dd234fb7b1616d..d61c3d115e3044 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.h +++ b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.h @@ -7,6 +7,7 @@ #import #import +#import "RCTRootViewFactory.h" @class RCTBridge; @protocol RCTBridgeDelegate; @@ -57,9 +58,12 @@ NS_ASSUME_NONNULL_BEGIN /// The window object, used to render the UViewControllers @property (nonatomic, strong, nonnull) UIWindow *window; -@property (nonatomic, strong, nullable) RCTBridge *bridge; +@property (nonatomic, nullable) RCTBridge *bridge; @property (nonatomic, strong, nullable) NSString *moduleName; @property (nonatomic, strong, nullable) NSDictionary *initialProps; +@property (nonatomic, strong, nonnull) RCTRootViewFactory *rootViewFactory; + +@property (nonatomic, nullable) RCTSurfacePresenterBridgeAdapter *bridgeAdapter; /** * It creates a `RCTBridge` using a delegate and some launch options. @@ -126,13 +130,6 @@ NS_ASSUME_NONNULL_BEGIN */ - (void)setRootView:(UIView *)rootView toRootViewController:(UIViewController *)rootViewController; -/// This method controls whether the App will use RuntimeScheduler. Only applicable in the legacy architecture. -/// -/// @return: `YES` to use RuntimeScheduler, `NO` to use JavaScript scheduler. The default value is `YES`. -- (BOOL)runtimeSchedulerEnabled; - -@property (nonatomic, strong) RCTSurfacePresenterBridgeAdapter *bridgeAdapter; - /// This method returns a map of Component Descriptors and Components classes that needs to be registered in the /// new renderer. The Component Descriptor is a string which represent the name used in JS to refer to the native /// component. The default implementation returns an empty dictionary. Subclasses can override this method to register diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm index 67f0bcc7f6f2fc..cee2c9017bb3b9 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm @@ -39,85 +39,28 @@ #import #import -@interface RCTAppDelegate () < - RCTTurboModuleManagerDelegate, - RCTComponentViewFactoryComponentProvider, - RCTContextContainerHandling> { - std::shared_ptr _reactNativeConfig; - facebook::react::ContextContainer::Shared _contextContainer; -} +@interface RCTAppDelegate () @end -static NSDictionary *updateInitialProps(NSDictionary *initialProps, BOOL isFabricEnabled) -{ - NSMutableDictionary *mutableProps = [initialProps mutableCopy] ?: [NSMutableDictionary new]; - return mutableProps; -} - -@interface RCTAppDelegate () { - std::shared_ptr _runtimeScheduler; -} -@end - -@implementation RCTAppDelegate { - RCTHost *_reactHost; -} - -- (instancetype)init -{ - if (self = [super init]) { - _contextContainer = std::make_shared(); - _reactNativeConfig = std::make_shared(); - _contextContainer->insert("ReactNativeConfig", _reactNativeConfig); - } - return self; -} +@implementation RCTAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { RCTSetNewArchEnabled([self newArchEnabled]); - BOOL enableTM = self.turboModuleEnabled; - BOOL fabricEnabled = self.fabricEnabled; - BOOL enableBridgeless = self.bridgelessEnabled; - - NSDictionary *initProps = updateInitialProps([self prepareInitialProps], fabricEnabled); + RCTAppSetupPrepareApp(application, self.turboModuleEnabled); - RCTAppSetupPrepareApp(application, enableTM); + self.rootViewFactory = [self createRCTRootViewFactory]; - UIView *rootView; - if (enableBridgeless) { - // Enable native view config interop only if both bridgeless mode and Fabric is enabled. - RCTSetUseNativeViewConfigsInBridgelessMode(fabricEnabled); + UIView *rootView = [self.rootViewFactory viewWithModuleName:self.moduleName + initialProperties:self.initialProps + launchOptions:launchOptions]; - // Enable TurboModule interop by default in Bridgeless mode - RCTEnableTurboModuleInterop(YES); - RCTEnableTurboModuleInteropBridgeProxy(YES); - - [self createReactHost]; + if (self.newArchEnabled || self.fabricEnabled) { [RCTComponentViewFactory currentComponentViewFactory].thirdPartyFabricComponentsProvider = self; - RCTFabricSurface *surface = [_reactHost createSurfaceWithModuleName:self.moduleName initialProperties:initProps]; - - RCTSurfaceHostingProxyRootView *surfaceHostingProxyRootView = [[RCTSurfaceHostingProxyRootView alloc] - initWithSurface:surface - sizeMeasureMode:RCTSurfaceSizeMeasureModeWidthExact | RCTSurfaceSizeMeasureModeHeightExact]; - - rootView = (RCTRootView *)surfaceHostingProxyRootView; - rootView.backgroundColor = [UIColor systemBackgroundColor]; - } else { - if (!self.bridge) { - self.bridge = [self createBridgeWithDelegate:self launchOptions:launchOptions]; - } - if ([self newArchEnabled]) { - self.bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:self.bridge - contextContainer:_contextContainer]; - self.bridge.surfacePresenter = self.bridgeAdapter.surfacePresenter; - - [RCTComponentViewFactory currentComponentViewFactory].thirdPartyFabricComponentsProvider = self; - } - rootView = [self createRootViewWithBridge:self.bridge moduleName:self.moduleName initProps:initProps]; } [self _logWarnIfCreateRootViewWithBridgeIsOverridden]; [self customizeRootView:(RCTRootView *)rootView]; + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *rootViewController = [self createRootViewController]; [self setRootView:rootView toRootViewController:rootViewController]; @@ -140,21 +83,11 @@ - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge return nil; } -- (NSDictionary *)prepareInitialProps -{ - return self.initialProps; -} - - (RCTBridge *)createBridgeWithDelegate:(id)delegate launchOptions:(NSDictionary *)launchOptions { return [[RCTBridge alloc] initWithDelegate:delegate launchOptions:launchOptions]; } -- (void)customizeRootView:(RCTRootView *)rootView -{ - // Override point for customization after application launch. -} - - (UIView *)createRootViewWithBridge:(RCTBridge *)bridge moduleName:(NSString *)moduleName initProps:(NSDictionary *)initProps @@ -192,9 +125,9 @@ - (void)setRootView:(UIView *)rootView toRootViewController:(UIViewController *) rootViewController.view = rootView; } -- (BOOL)runtimeSchedulerEnabled +- (void)customizeRootView:(RCTRootView *)rootView { - return YES; + // Override point for customization after application launch. } #pragma mark - UISceneDelegate @@ -207,25 +140,6 @@ - (void)windowScene:(UIWindowScene *)windowScene [[NSNotificationCenter defaultCenter] postNotificationName:RCTWindowFrameDidChangeNotification object:self]; } -#pragma mark - RCTCxxBridgeDelegate - -- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge -{ - _runtimeScheduler = std::make_shared(RCTRuntimeExecutorFromBridge(bridge)); - if ([self newArchEnabled]) { - std::shared_ptr callInvoker = - std::make_shared(_runtimeScheduler); - RCTTurboModuleManager *turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge - delegate:self - jsInvoker:callInvoker]; - _contextContainer->erase("RuntimeScheduler"); - _contextContainer->insert("RuntimeScheduler", _runtimeScheduler); - return RCTAppSetupDefaultJsExecutorFactory(bridge, turboModuleManager, _runtimeScheduler); - } else { - return RCTAppSetupJsExecutorFactoryForOldArch(bridge, _runtimeScheduler); - } -} - #pragma mark - New Arch Enabled settings - (BOOL)newArchEnabled @@ -252,11 +166,33 @@ - (BOOL)bridgelessEnabled return [self newArchEnabled]; } -#pragma mark - RCTComponentViewFactoryComponentProvider +- (NSURL *)bundleURL +{ + [NSException raise:@"RCTAppDelegate::bundleURL not implemented" + format:@"Subclasses must implement a valid getBundleURL method"]; + return nullptr; +} -- (NSDictionary> *)thirdPartyFabricComponents +#pragma mark - Bridge and Bridge Adapter properties + +- (RCTBridge *)bridge { - return @{}; + return self.rootViewFactory.bridge; +} + +- (RCTSurfacePresenterBridgeAdapter *)bridgeAdapter +{ + return self.rootViewFactory.bridgeAdapter; +} + +- (void)setBridge:(RCTBridge *)bridge +{ + self.rootViewFactory.bridge = bridge; +} + +- (void)setBridgeAdapter:(RCTSurfacePresenterBridgeAdapter *)bridgeAdapter +{ + self.rootViewFactory.bridgeAdapter = bridgeAdapter; } #pragma mark - RCTTurboModuleManagerDelegate @@ -288,43 +224,33 @@ - (Class)getModuleClassFromName:(const char *)name return RCTAppSetupDefaultModuleFromClass(moduleClass); } -#pragma mark - New Arch Utilities +#pragma mark - RCTComponentViewFactoryComponentProvider -- (void)createReactHost +- (NSDictionary> *)thirdPartyFabricComponents { - __weak __typeof(self) weakSelf = self; - _reactHost = [[RCTHost alloc] initWithBundleURL:[self bundleURL] - hostDelegate:nil - turboModuleManagerDelegate:self - jsEngineProvider:^std::shared_ptr() { - return [weakSelf createJSRuntimeFactory]; - }]; - [_reactHost setBundleURLProvider:^NSURL *() { - return [weakSelf bundleURL]; - }]; - [_reactHost setContextContainerHandler:self]; - [_reactHost start]; + return @{}; } -- (std::shared_ptr)createJSRuntimeFactory +- (RCTRootViewFactory *)createRCTRootViewFactory { -#if USE_HERMES - return std::make_shared(_reactNativeConfig, nullptr); -#else - return std::make_shared(); -#endif -} + RCTRootViewFactoryConfiguration *configuration = + [[RCTRootViewFactoryConfiguration alloc] initWithBundleURL:self.bundleURL + newArchEnabled:self.fabricEnabled + turboModuleEnabled:self.turboModuleEnabled + bridgelessEnabled:self.bridgelessEnabled]; -- (void)didCreateContextContainer:(std::shared_ptr)contextContainer -{ - contextContainer->insert("ReactNativeConfig", _reactNativeConfig); -} + __weak __typeof(self) weakSelf = self; + configuration.createRootViewWithBridge = ^UIView *(RCTBridge *bridge, NSString *moduleName, NSDictionary *initProps) + { + return [weakSelf createRootViewWithBridge:bridge moduleName:moduleName initProps:initProps]; + }; -- (NSURL *)bundleURL -{ - [NSException raise:@"RCTAppDelegate::bundleURL not implemented" - format:@"Subclasses must implement a valid getBundleURL method"]; - return nullptr; + configuration.createBridgeWithDelegate = ^RCTBridge *(id delegate, NSDictionary *launchOptions) + { + return [weakSelf createBridgeWithDelegate:delegate launchOptions:launchOptions]; + }; + + return [[RCTRootViewFactory alloc] initWithConfiguration:configuration andTurboModuleManagerDelegate:self]; } @end diff --git a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h new file mode 100644 index 00000000000000..5047802ebc5eda --- /dev/null +++ b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h @@ -0,0 +1,123 @@ +/* + * 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. + */ + +#import +#import +#import + +@protocol RCTCxxBridgeDelegate; +@protocol RCTComponentViewFactoryComponentProvider; +@protocol RCTTurboModuleManagerDelegate; +@class RCTBridge; +@class RCTRootView; +@class RCTSurfacePresenterBridgeAdapter; + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - Blocks' definitions +typedef UIView *_Nonnull ( + ^RCTCreateRootViewWithBridgeBlock)(RCTBridge *bridge, NSString *moduleName, NSDictionary *initProps); +typedef RCTBridge *_Nonnull ( + ^RCTCreateBridgeWithDelegateBlock)(id delegate, NSDictionary *launchOptions); + +#pragma mark - RCTRootViewFactory Configuration +@interface RCTRootViewFactoryConfiguration : NSObject + +/// This property controls whether the App will use the Fabric renderer of the New Architecture or not. +@property (nonatomic, assign, readonly) BOOL fabricEnabled; + +/// This property controls whether React Native's new initialization layer is enabled. +@property (nonatomic, assign, readonly) BOOL bridgelessEnabled; + +/// This method controls whether the `turboModules` feature of the New Architecture is turned on or off +@property (nonatomic, assign, readonly) BOOL turboModuleEnabled; + +/// Return the bundle URL for the main bundle. +@property (nonatomic) NSURL *bundleURL; + +/** + * Use this method to initialize a new instance of `RCTRootViewFactoryConfiguration` by passing a `bundleURL` + * + * Which is the location of the JavaScript source file. When running from the packager + * this should be an absolute URL, e.g. `http://localhost:8081/index.ios.bundle`. + * When running from a locally bundled JS file, this should be a `file://` url + * pointing to a path inside the app resources, e.g. `file://.../main.jsbundle`. + * + */ +- (instancetype)initWithBundleURL:(NSURL *)bundleURL + newArchEnabled:(BOOL)newArchEnabled + turboModuleEnabled:(BOOL)turboModuleEnabled + bridgelessEnabled:(BOOL)bridgelessEnabled; + +/** + * Block that allows to override logic of creating root view instance. + * It creates a `UIView` starting from a bridge, a module name and a set of initial properties. + * By default, it is invoked using the bridge created by `RCTCreateBridgeWithDelegateBlock` (or the default + * implementation) and the `moduleName` variable comes from `viewWithModuleName:initialProperties:launchOptions` of + * `RCTRootViewFactory`. + * + * @parameter: bridge - an instance of the `RCTBridge` object. + * @parameter: moduleName - the name of the app, used by Metro to resolve the module. + * @parameter: initProps - a set of initial properties. + * + * @returns: a UIView properly configured with a bridge for React Native. + */ +@property (nonatomic, nullable) RCTCreateRootViewWithBridgeBlock createRootViewWithBridge; + +/** + * Block that allows to override default behavior of creating bridge. + * It should return `RCTBridge` using a delegate and some launch options. + * + * By default, it is invoked passing `self` as a delegate. + * + * @parameter: delegate - an object that implements the `RCTBridgeDelegate` protocol. + * @parameter: launchOptions - a dictionary with a set of options. + * + * @returns: a newly created instance of RCTBridge. + */ +@property (nonatomic, nullable) RCTCreateBridgeWithDelegateBlock createBridgeWithDelegate; + +@end + +#pragma mark - RCTRootViewFactory +/** + * The RCTRootViewFactory is an utility class that encapsulates the logic of creating a new RCTRootView based on the + * current state of the environment. It allows you to initialize your app root view for old architecture, new + * architecture and bridgless mode. + * + * This class is used to initalize rootView in RCTAppDelegate, but you can also use it separately. + * + * Create a new instance of this class (make sure to retain it) and call the + * `viewWithModuleName:initialProperties:launchOptions` method to create new RCTRootView. + */ +@interface RCTRootViewFactory : NSObject + +@property (nonatomic, strong, nullable) RCTBridge *bridge; +@property (nonatomic, strong, nullable) RCTSurfacePresenterBridgeAdapter *bridgeAdapter; + +- (instancetype)initWithConfiguration:(RCTRootViewFactoryConfiguration *)configuration + andTurboModuleManagerDelegate:(id)turboModuleManagerDelegate; + +/** + * This method can be used to create new RCTRootViews on demand. + * + * @parameter: moduleName - the name of the app, used by Metro to resolve the module. + * @parameter: initialProperties - a set of initial properties. + * @parameter: moduleName - a dictionary with a set of options. + */ +- (UIView *_Nonnull)viewWithModuleName:(NSString *)moduleName + initialProperties:(NSDictionary *__nullable)initialProperties + launchOptions:(NSDictionary *__nullable)launchOptions; + +- (UIView *_Nonnull)viewWithModuleName:(NSString *)moduleName + initialProperties:(NSDictionary *__nullable)initialProperties; + +- (UIView *_Nonnull)viewWithModuleName:(NSString *)moduleName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm new file mode 100644 index 00000000000000..e8ebdefba1dc7e --- /dev/null +++ b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm @@ -0,0 +1,253 @@ +/* + * 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. + */ + +#import "RCTRootViewFactory.h" +#import +#import +#import +#import +#import +#import +#import "RCTAppDelegate.h" +#import "RCTAppSetupUtils.h" + +#if RN_DISABLE_OSS_PLUGIN_HEADER +#import +#else +#import +#endif +#import +#import +#import +#import +#import +#import +#import +#if USE_HERMES +#import +#else +#import +#endif +#import +#import +#import +#import +#import +#import +#import + +static NSString *const kRNConcurrentRoot = @"concurrentRoot"; + +static NSDictionary *updateInitialProps(NSDictionary *initialProps, BOOL isFabricEnabled) +{ + NSMutableDictionary *mutableProps = initialProps != NULL ? [initialProps mutableCopy] : [NSMutableDictionary new]; + // Hardcoding the Concurrent Root as it it not recommended to + // have the concurrentRoot turned off when Fabric is enabled. + mutableProps[kRNConcurrentRoot] = @(isFabricEnabled); + return mutableProps; +} + +@implementation RCTRootViewFactoryConfiguration + +- (instancetype)initWithBundleURL:(NSURL *)bundleURL + newArchEnabled:(BOOL)newArchEnabled + turboModuleEnabled:(BOOL)turboModuleEnabled + bridgelessEnabled:(BOOL)bridgelessEnabled +{ + if (self = [super init]) { + _bundleURL = bundleURL; + _fabricEnabled = newArchEnabled; + _turboModuleEnabled = turboModuleEnabled; + _bridgelessEnabled = bridgelessEnabled; + } + return self; +} + +@end + +@interface RCTRootViewFactory () { + std::shared_ptr _reactNativeConfig; + facebook::react::ContextContainer::Shared _contextContainer; +} +@end + +@interface RCTRootViewFactory () { + std::shared_ptr _runtimeScheduler; +} +@end + +@implementation RCTRootViewFactory { + RCTHost *_reactHost; + RCTRootViewFactoryConfiguration *_configuration; + __weak id _turboModuleManagerDelegate; +} + +- (instancetype)initWithConfiguration:(RCTRootViewFactoryConfiguration *)configuration + andTurboModuleManagerDelegate:(id)turboModuleManagerDelegate +{ + if (self = [super init]) { + _configuration = configuration; + _contextContainer = std::make_shared(); + _reactNativeConfig = std::make_shared(); + _contextContainer->insert("ReactNativeConfig", _reactNativeConfig); + _turboModuleManagerDelegate = turboModuleManagerDelegate; + } + return self; +} + +- (UIView *)viewWithModuleName:(NSString *)moduleName initialProperties:(NSDictionary *)initialProperties +{ + return [self viewWithModuleName:moduleName initialProperties:initialProperties launchOptions:nil]; +} + +- (UIView *)viewWithModuleName:(NSString *)moduleName +{ + return [self viewWithModuleName:moduleName initialProperties:nil launchOptions:nil]; +} + +- (UIView *)viewWithModuleName:(NSString *)moduleName + initialProperties:(NSDictionary *)initialProperties + launchOptions:(NSDictionary *)launchOptions +{ + NSDictionary *initProps = updateInitialProps(initialProperties, self->_configuration.fabricEnabled); + + if (self->_configuration.bridgelessEnabled) { + // Enable native view config interop only if both bridgeless mode and Fabric is enabled. + RCTSetUseNativeViewConfigsInBridgelessMode(self->_configuration.fabricEnabled); + + // Enable TurboModule interop by default in Bridgeless mode + RCTEnableTurboModuleInterop(YES); + RCTEnableTurboModuleInteropBridgeProxy(YES); + + [self createReactHostIfNeeded]; + + RCTFabricSurface *surface = [_reactHost createSurfaceWithModuleName:moduleName initialProperties:initProps]; + + RCTSurfaceHostingProxyRootView *surfaceHostingProxyRootView = [[RCTSurfaceHostingProxyRootView alloc] + initWithSurface:surface + sizeMeasureMode:RCTSurfaceSizeMeasureModeWidthExact | RCTSurfaceSizeMeasureModeHeightExact]; + + return surfaceHostingProxyRootView; + } + + [self createBridgeIfNeeded:launchOptions]; + [self createBridgeAdapterIfNeeded]; + + if (self->_configuration.createRootViewWithBridge != nil) { + return self->_configuration.createRootViewWithBridge(self.bridge, moduleName, initProps); + } + + return [self createRootViewWithBridge:self.bridge moduleName:moduleName initProps:initProps]; +} + +- (RCTBridge *)createBridgeWithDelegate:(id)delegate launchOptions:(NSDictionary *)launchOptions +{ + return [[RCTBridge alloc] initWithDelegate:delegate launchOptions:launchOptions]; +} + +- (UIView *)createRootViewWithBridge:(RCTBridge *)bridge + moduleName:(NSString *)moduleName + initProps:(NSDictionary *)initProps +{ + BOOL enableFabric = self->_configuration.fabricEnabled; + UIView *rootView = RCTAppSetupDefaultRootView(bridge, moduleName, initProps, enableFabric); + + rootView.backgroundColor = [UIColor systemBackgroundColor]; + + return rootView; +} + +#pragma mark - RCTCxxBridgeDelegate +- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge +{ + _runtimeScheduler = std::make_shared(RCTRuntimeExecutorFromBridge(bridge)); + if (RCTIsNewArchEnabled()) { + std::shared_ptr callInvoker = + std::make_shared(_runtimeScheduler); + RCTTurboModuleManager *turboModuleManager = + [[RCTTurboModuleManager alloc] initWithBridge:bridge + delegate:_turboModuleManagerDelegate + jsInvoker:callInvoker]; + _contextContainer->erase("RuntimeScheduler"); + _contextContainer->insert("RuntimeScheduler", _runtimeScheduler); + return RCTAppSetupDefaultJsExecutorFactory(bridge, turboModuleManager, _runtimeScheduler); + } else { + return RCTAppSetupJsExecutorFactoryForOldArch(bridge, _runtimeScheduler); + } +} + +- (void)createBridgeIfNeeded:(NSDictionary *)launchOptions +{ + if (self.bridge != nil) { + return; + } + + if (self->_configuration.createBridgeWithDelegate != nil) { + self.bridge = self->_configuration.createBridgeWithDelegate(self, launchOptions); + } else { + self.bridge = [self createBridgeWithDelegate:self launchOptions:launchOptions]; + } +} + +- (void)createBridgeAdapterIfNeeded +{ + if (!self->_configuration.fabricEnabled || self.bridgeAdapter) { + return; + } + + self.bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:self.bridge + contextContainer:_contextContainer]; + self.bridge.surfacePresenter = self.bridgeAdapter.surfacePresenter; +} + +#pragma mark - New Arch Utilities + +- (void)createReactHostIfNeeded +{ + if (_reactHost) { + return; + } + + __weak __typeof(self) weakSelf = self; + _reactHost = [[RCTHost alloc] initWithBundleURL:[self bundleURL] + hostDelegate:nil + turboModuleManagerDelegate:_turboModuleManagerDelegate + jsEngineProvider:^std::shared_ptr() { + return [weakSelf createJSRuntimeFactory]; + }]; + [_reactHost setBundleURLProvider:^NSURL *() { + return [weakSelf bundleURL]; + }]; + [_reactHost setContextContainerHandler:self]; + [_reactHost start]; +} + +- (std::shared_ptr)createJSRuntimeFactory +{ +#if USE_HERMES + return std::make_shared(_reactNativeConfig, nullptr); +#else + return std::make_shared(); +#endif +} + +- (void)didCreateContextContainer:(std::shared_ptr)contextContainer +{ + contextContainer->insert("ReactNativeConfig", _reactNativeConfig); +} + +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ + return [self bundleURL]; +} + +- (NSURL *)bundleURL +{ + return self->_configuration.bundleURL; +} + +@end diff --git a/packages/rn-tester/RNTester/NativeExampleViews/FlexibleSizeExampleView.mm b/packages/rn-tester/RNTester/NativeExampleViews/FlexibleSizeExampleView.mm index 489c3a91e33659..c01c39a4f5a2b6 100644 --- a/packages/rn-tester/RNTester/NativeExampleViews/FlexibleSizeExampleView.mm +++ b/packages/rn-tester/RNTester/NativeExampleViews/FlexibleSizeExampleView.mm @@ -46,9 +46,8 @@ - (instancetype)initWithFrame:(CGRect)frame AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; - _resizableRootView = [[RCTRootView alloc] initWithBridge:appDelegate.bridge - moduleName:@"RootViewSizeFlexibilityExampleApp" - initialProperties:@{}]; + _resizableRootView = + (RCTRootView *)[appDelegate.rootViewFactory viewWithModuleName:@"RootViewSizeFlexibilityExampleApp"]; [_resizableRootView setSizeFlexibility:RCTRootViewSizeFlexibilityHeight]; diff --git a/packages/rn-tester/RNTester/NativeExampleViews/UpdatePropertiesExampleView.mm b/packages/rn-tester/RNTester/NativeExampleViews/UpdatePropertiesExampleView.mm index 9689203576c2cd..5682d7ddead216 100644 --- a/packages/rn-tester/RNTester/NativeExampleViews/UpdatePropertiesExampleView.mm +++ b/packages/rn-tester/RNTester/NativeExampleViews/UpdatePropertiesExampleView.mm @@ -41,9 +41,8 @@ - (instancetype)initWithFrame:(CGRect)frame AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; - _rootView = [[RCTRootView alloc] initWithBridge:appDelegate.bridge - moduleName:@"SetPropertiesExampleApp" - initialProperties:@{@"color" : @"beige"}]; + _rootView = (RCTRootView *)[appDelegate.rootViewFactory viewWithModuleName:@"SetPropertiesExampleApp" + initialProperties:@{@"color" : @"beige"}]; _button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [_button setTitle:@"Native Button" forState:UIControlStateNormal]; From 7395765cf86f287122dfffca8b3dde1cefad9994 Mon Sep 17 00:00:00 2001 From: Saad Najmi Date: Mon, 4 Mar 2024 18:51:17 -0800 Subject: [PATCH 038/223] feat(iOS): Implement cursor style prop (#43078) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Implement the cursor style prop for iOS (and consequently, visionOS), as described in this RFC: https://github.com/react-native-community/discussions-and-proposals/pull/750 See related PR in React Native macOS, where we target macOS and visionOS (not running in iPad compatibility mode) with the same change: https://github.com/microsoft/react-native-macos/pull/2080 Docs update: https://github.com/facebook/react-native-website/pull/4033 ## Changelog: [IOS] [ADDED] - Implement cursor style prop Pull Request resolved: https://github.com/facebook/react-native/pull/43078 Test Plan: See the added example page, running on iOS with the new architecture enabled. This also runs the same on the old architecture. https://github.com/facebook/react-native/assets/6722175/2af60a0c-1c1f-45c4-8d66-a20f6d5815df See the example page running on all three apple platforms. The JS is slightly different because: 1. The "macOS Cursors" example is not part of this PR but the one in React Native macOS. 2. This PR (and exapmple) has went though a bunch of iterations and It got hard taking videos of every change 😅 https://github.com/facebook/react-native/assets/6722175/7775ba7c-8624-4873-a735-7665b94b7233 ## Notes - React Native macOS added the cursor prop to View with https://github.com/microsoft/react-native-macos/pull/760 and Text with https://github.com/microsoft/react-native-macos/pull/1469 . Much of the implementation comes from there. - Due to an Apple bug, as of iOS 17.4 Beta 4, the shape of the iOS cursor hover effect doesn't render in the correct bounds (but it does on visionOS). I've worked around it with an ifdef. The result is that the hover effect will work on iOS and visionOS, but not iPad apps running in compatibility mode on visionOS. Reviewed By: NickGerleman Differential Revision: D54512945 Pulled By: vincentriemer fbshipit-source-id: 699e3a01a901f55a466a2c1a19f667aede5aab80 --- .../View/ReactNativeStyleAttributes.js | 1 + .../Libraries/StyleSheet/StyleSheetTypes.d.ts | 4 + .../Libraries/StyleSheet/StyleSheetTypes.js | 3 + .../__snapshots__/public-api-test.js.snap | 2 + packages/react-native/React/Base/RCTConvert.h | 3 + .../react-native/React/Base/RCTConvert.mm | 9 ++ .../View/RCTViewComponentView.mm | 30 +++++ packages/react-native/React/Views/RCTCursor.h | 13 ++ packages/react-native/React/Views/RCTView.h | 3 + packages/react-native/React/Views/RCTView.m | 28 ++++ .../react-native/React/Views/RCTViewManager.m | 2 + .../components/view/BaseViewProps.cpp | 9 ++ .../renderer/components/view/BaseViewProps.h | 2 + .../components/view/ViewShadowNode.cpp | 2 +- .../renderer/components/view/conversions.h | 22 ++++ .../renderer/components/view/primitives.h | 2 + .../js/examples/Cursor/CursorExample.js | 124 ++++++++++++++++++ .../rn-tester/js/utils/RNTesterList.ios.js | 4 + 18 files changed, 262 insertions(+), 1 deletion(-) create mode 100644 packages/react-native/React/Views/RCTCursor.h create mode 100644 packages/rn-tester/js/examples/Cursor/CursorExample.js diff --git a/packages/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js b/packages/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js index e870c99355d1e0..e0c82a319f3756 100644 --- a/packages/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js +++ b/packages/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js @@ -144,6 +144,7 @@ const ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = { borderTopLeftRadius: true, borderTopRightRadius: true, borderTopStartRadius: true, + cursor: true, opacity: true, pointerEvents: true, diff --git a/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.d.ts b/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.d.ts index 5a9121be11765f..f4a99256313845 100644 --- a/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.d.ts +++ b/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.d.ts @@ -27,6 +27,8 @@ export type DimensionValue = type AnimatableNumericValue = number | Animated.AnimatedNode; type AnimatableStringValue = string | Animated.AnimatedNode; +export type CursorValue = 'auto' | 'pointer'; + /** * Flex Prop Types * @see https://reactnative.dev/docs/flexbox @@ -274,6 +276,7 @@ export interface ViewStyle extends FlexStyle, ShadowStyleIOS, TransformsStyle { * Controls whether the View can be the target of touch events. */ pointerEvents?: 'box-none' | 'none' | 'box-only' | 'auto' | undefined; + cursor?: CursorValue | undefined; } export type FontVariant = @@ -403,4 +406,5 @@ export interface ImageStyle extends FlexStyle, ShadowStyleIOS, TransformsStyle { tintColor?: ColorValue | undefined; opacity?: AnimatableNumericValue | undefined; objectFit?: 'cover' | 'contain' | 'fill' | 'scale-down' | undefined; + cursor?: CursorValue | undefined; } diff --git a/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.js b/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.js index d4b5ab921132fc..a2d7a3310ef343 100644 --- a/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.js +++ b/packages/react-native/Libraries/StyleSheet/StyleSheetTypes.js @@ -37,6 +37,8 @@ export type EdgeInsetsValue = { export type DimensionValue = number | string | 'auto' | AnimatedNode | null; export type AnimatableNumericValue = number | AnimatedNode; +export type CursorValue = 'auto' | 'pointer'; + /** * React Native's layout system is based on Flexbox and is powered both * on iOS and Android by an open source project called `Yoga`: @@ -729,6 +731,7 @@ export type ____ViewStyle_InternalCore = $ReadOnly<{ opacity?: AnimatableNumericValue, elevation?: number, pointerEvents?: 'auto' | 'none' | 'box-none' | 'box-only', + cursor?: CursorValue, }>; export type ____ViewStyle_Internal = $ReadOnly<{ diff --git a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap index bf6a0a0b61f928..505a80ea240c77 100644 --- a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap +++ b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap @@ -7423,6 +7423,7 @@ export type EdgeInsetsValue = { }; export type DimensionValue = number | string | \\"auto\\" | AnimatedNode | null; export type AnimatableNumericValue = number | AnimatedNode; +export type CursorValue = \\"auto\\" | \\"pointer\\"; type ____LayoutStyle_Internal = $ReadOnly<{ display?: \\"none\\" | \\"flex\\", width?: DimensionValue, @@ -7573,6 +7574,7 @@ export type ____ViewStyle_InternalCore = $ReadOnly<{ opacity?: AnimatableNumericValue, elevation?: number, pointerEvents?: \\"auto\\" | \\"none\\" | \\"box-none\\" | \\"box-only\\", + cursor?: CursorValue, }>; export type ____ViewStyle_Internal = $ReadOnly<{ ...____ViewStyle_InternalCore, diff --git a/packages/react-native/React/Base/RCTConvert.h b/packages/react-native/React/Base/RCTConvert.h index 2d55e7c99acf12..c853e9fb0c7bf3 100644 --- a/packages/react-native/React/Base/RCTConvert.h +++ b/packages/react-native/React/Base/RCTConvert.h @@ -11,6 +11,7 @@ #import #import #import +#import #import #import #import @@ -80,6 +81,8 @@ typedef NSURL RCTFileURL; + (UIBarStyle)UIBarStyle:(id)json __deprecated; #endif ++ (RCTCursor)RCTCursor:(id)json; + + (CGFloat)CGFloat:(id)json; + (CGPoint)CGPoint:(id)json; + (CGSize)CGSize:(id)json; diff --git a/packages/react-native/React/Base/RCTConvert.mm b/packages/react-native/React/Base/RCTConvert.mm index 1367d93a873291..b868ee72f65ce8 100644 --- a/packages/react-native/React/Base/RCTConvert.mm +++ b/packages/react-native/React/Base/RCTConvert.mm @@ -545,6 +545,15 @@ + (UIKeyboardType)UIKeyboardType:(id)json RCT_DYNAMIC UIBarStyleDefault, integerValue) +RCT_ENUM_CONVERTER( + RCTCursor, + (@{ + @"auto" : @(RCTCursorAuto), + @"pointer" : @(RCTCursorPointer), + }), + RCTCursorAuto, + integerValue) + static void convertCGStruct(const char *type, NSArray *fields, CGFloat *result, id json) { NSUInteger count = fields.count; diff --git a/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm b/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm index a015c450ee21b7..6bdfb69e171a29 100644 --- a/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +++ b/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm @@ -257,6 +257,11 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared & self.layer.doubleSided = newViewProps.backfaceVisibility == BackfaceVisibility::Visible; } + // `cursor` + if (oldViewProps.cursor != newViewProps.cursor) { + needsInvalidateLayer = YES; + } + // `shouldRasterize` if (oldViewProps.shouldRasterize != newViewProps.shouldRasterize) { self.layer.shouldRasterize = newViewProps.shouldRasterize; @@ -592,6 +597,31 @@ - (void)invalidateLayer layer.shadowPath = nil; } + // Stage 1.5. Cursor / Hover Effects + if (@available(iOS 17.0, *)) { + UIHoverStyle *hoverStyle = nil; + if (_props->cursor == Cursor::Pointer) { + const RCTCornerInsets cornerInsets = + RCTGetCornerInsets(RCTCornerRadiiFromBorderRadii(borderMetrics.borderRadii), UIEdgeInsetsZero); +#if TARGET_OS_IOS + // Due to an Apple bug, it seems on iOS, UIShapes made with `[UIShape shapeWithBezierPath:]` + // evaluate their shape on the superviews' coordinate space. This leads to the hover shape + // rendering incorrectly on iOS, iOS apps in compatibility mode on visionOS, but not on visionOS. + // To work around this, for iOS, we can calculate the border path based on `view.frame` (the + // superview's coordinate space) instead of view.bounds. + CGPathRef borderPath = RCTPathCreateWithRoundedRect(self.frame, cornerInsets, NULL); +#else // TARGET_OS_VISION + CGPathRef borderPath = RCTPathCreateWithRoundedRect(self.bounds, cornerInsets, NULL); +#endif + UIBezierPath *bezierPath = [UIBezierPath bezierPathWithCGPath:borderPath]; + CGPathRelease(borderPath); + UIShape *shape = [UIShape shapeWithBezierPath:bezierPath]; + + hoverStyle = [UIHoverStyle styleWithEffect:[UIHoverAutomaticEffect effect] shape:shape]; + } + [self setHoverStyle:hoverStyle]; + } + // Stage 2. Border Rendering const bool useCoreAnimationBorderRendering = borderMetrics.borderColors.isUniform() && borderMetrics.borderWidths.isUniform() && diff --git a/packages/react-native/React/Views/RCTCursor.h b/packages/react-native/React/Views/RCTCursor.h new file mode 100644 index 00000000000000..63fcb3e123e390 --- /dev/null +++ b/packages/react-native/React/Views/RCTCursor.h @@ -0,0 +1,13 @@ +/* + * 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. + */ + +#import + +typedef NS_ENUM(NSInteger, RCTCursor) { + RCTCursorAuto, + RCTCursorPointer, +}; diff --git a/packages/react-native/React/Views/RCTView.h b/packages/react-native/React/Views/RCTView.h index 200d8b451bf59e..8abda6e8538d79 100644 --- a/packages/react-native/React/Views/RCTView.h +++ b/packages/react-native/React/Views/RCTView.h @@ -10,6 +10,7 @@ #import #import #import +#import #import extern const UIAccessibilityTraits SwitchAccessibilityTrait; @@ -120,6 +121,8 @@ extern const UIAccessibilityTraits SwitchAccessibilityTrait; */ @property (nonatomic, assign) UIEdgeInsets hitTestEdgeInsets; +@property (nonatomic, assign) RCTCursor cursor; + /** * (Experimental and unused for Paper) Pointer event handlers. */ diff --git a/packages/react-native/React/Views/RCTView.m b/packages/react-native/React/Views/RCTView.m index 6e6f9cd2761035..292956e268a723 100644 --- a/packages/react-native/React/Views/RCTView.m +++ b/packages/react-native/React/Views/RCTView.m @@ -136,6 +136,7 @@ - (instancetype)initWithFrame:(CGRect)frame _borderCurve = RCTBorderCurveCircular; _borderStyle = RCTBorderStyleSolid; _hitTestEdgeInsets = UIEdgeInsetsZero; + _cursor = RCTCursorAuto; _backgroundColor = super.backgroundColor; } @@ -796,6 +797,8 @@ - (void)displayLayer:(CALayer *)layer RCTUpdateShadowPathForView(self); + RCTUpdateHoverStyleForView(self); + const RCTCornerRadii cornerRadii = [self cornerRadii]; const UIEdgeInsets borderInsets = [self bordersAsInsets]; const RCTBorderColors borderColors = [self borderColorsWithTraitCollection:self.traitCollection]; @@ -891,6 +894,31 @@ static void RCTUpdateShadowPathForView(RCTView *view) } } +static void RCTUpdateHoverStyleForView(RCTView *view) +{ + if (@available(iOS 17.0, *)) { + UIHoverStyle *hoverStyle = nil; + if ([view cursor] == RCTCursorPointer) { + const RCTCornerRadii cornerRadii = [view cornerRadii]; + const RCTCornerInsets cornerInsets = RCTGetCornerInsets(cornerRadii, UIEdgeInsetsZero); +#if TARGET_OS_IOS + // Due to an Apple bug, it seems on iOS, `[UIShape shapeWithBezierPath:]` needs to + // be calculated in the superviews' coordinate space (view.frame). This is not true + // on other platforms like visionOS. + CGPathRef borderPath = RCTPathCreateWithRoundedRect(view.frame, cornerInsets, NULL); +#else // TARGET_OS_VISION + CGPathRef borderPath = RCTPathCreateWithRoundedRect(view.bounds, cornerInsets, NULL); +#endif + UIBezierPath *bezierPath = [UIBezierPath bezierPathWithCGPath:borderPath]; + CGPathRelease(borderPath); + UIShape *shape = [UIShape shapeWithBezierPath:bezierPath]; + + hoverStyle = [UIHoverStyle styleWithEffect:[UIHoverHighlightEffect effect] shape:shape]; + } + [view setHoverStyle:hoverStyle]; + } +} + - (void)updateClippingForLayer:(CALayer *)layer { CALayer *mask = nil; diff --git a/packages/react-native/React/Views/RCTViewManager.m b/packages/react-native/React/Views/RCTViewManager.m index 66c449d7e81a00..0a0126545bde5f 100644 --- a/packages/react-native/React/Views/RCTViewManager.m +++ b/packages/react-native/React/Views/RCTViewManager.m @@ -13,6 +13,7 @@ #import "RCTBridge.h" #import "RCTConvert+Transform.h" #import "RCTConvert.h" +#import "RCTCursor.h" #import "RCTLog.h" #import "RCTShadowView.h" #import "RCTUIManager.h" @@ -195,6 +196,7 @@ - (RCTShadowView *)shadowView RCT_EXPORT_VIEW_PROPERTY(backgroundColor, UIColor) RCT_REMAP_VIEW_PROPERTY(backfaceVisibility, layer.doubleSided, css_backface_visibility_t) +RCT_EXPORT_VIEW_PROPERTY(cursor, RCTCursor) RCT_REMAP_VIEW_PROPERTY(opacity, alpha, CGFloat) RCT_REMAP_VIEW_PROPERTY(shadowColor, layer.shadowColor, CGColor) RCT_REMAP_VIEW_PROPERTY(shadowOffset, layer.shadowOffset, CGSize) diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.cpp index 3d55f25c38cb9c..358fb3773ebf99 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.cpp @@ -140,6 +140,14 @@ BaseViewProps::BaseViewProps( "shadowRadius", sourceProps.shadowRadius, {})), + cursor( + CoreFeatures::enablePropIteratorSetter ? sourceProps.cursor + : convertRawProp( + context, + rawProps, + "cursor", + sourceProps.cursor, + {})), transform( CoreFeatures::enablePropIteratorSetter ? sourceProps.transform : convertRawProp( @@ -281,6 +289,7 @@ void BaseViewProps::setProp( RAW_SET_PROP_SWITCH_CASE_BASIC(collapsable); RAW_SET_PROP_SWITCH_CASE_BASIC(removeClippedSubviews); RAW_SET_PROP_SWITCH_CASE_BASIC(experimental_layoutConformance); + RAW_SET_PROP_SWITCH_CASE_BASIC(cursor); // events field VIEW_EVENT_CASE(PointerEnter); VIEW_EVENT_CASE(PointerEnterCapture); diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.h index b7bdd9afc7eb55..b386b988390c58 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.h @@ -52,6 +52,8 @@ class BaseViewProps : public YogaStylableProps, public AccessibilityProps { Float shadowOpacity{}; Float shadowRadius{3}; + Cursor cursor{}; + // Transform Transform transform{}; TransformOrigin transformOrigin{}; diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp b/packages/react-native/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp index fe11e92e1a5771..9c92eac7ccc9e9 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp @@ -60,7 +60,7 @@ void ViewShadowNode::initialize() noexcept { viewProps.accessibilityElementsHidden || viewProps.accessibilityViewIsModal || viewProps.importantForAccessibility != ImportantForAccessibility::Auto || - viewProps.removeClippedSubviews || + viewProps.removeClippedSubviews || viewProps.cursor != Cursor::Auto || HostPlatformViewTraitsInitializer::formsStackingContext(viewProps); bool formsView = formsStackingContext || diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/conversions.h b/packages/react-native/ReactCommon/react/renderer/components/view/conversions.h index aa6fb367daab7d..bbd9f46cfafa6a 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/conversions.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/conversions.h @@ -705,6 +705,28 @@ inline void fromRawValue( react_native_expect(false); } +inline void fromRawValue( + const PropsParserContext& context, + const RawValue& value, + Cursor& result) { + result = Cursor::Auto; + react_native_expect(value.hasType()); + if (!value.hasType()) { + return; + } + auto stringValue = (std::string)value; + if (stringValue == "auto") { + result = Cursor::Auto; + return; + } + if (stringValue == "pointer") { + result = Cursor::Pointer; + return; + } + LOG(ERROR) << "Could not parse Cursor:" << stringValue; + react_native_expect(false); +} + inline void fromRawValue( const PropsParserContext& /*context*/, const RawValue& value, diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/primitives.h b/packages/react-native/ReactCommon/react/renderer/components/view/primitives.h index 162f2292cc6a64..09f98979517a13 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/primitives.h +++ b/packages/react-native/ReactCommon/react/renderer/components/view/primitives.h @@ -91,6 +91,8 @@ enum class BorderCurve : uint8_t { Circular, Continuous }; enum class BorderStyle : uint8_t { Solid, Dotted, Dashed }; +enum class Cursor : uint8_t { Auto, Pointer }; + enum class LayoutConformance : uint8_t { Undefined, Classic, Strict }; template diff --git a/packages/rn-tester/js/examples/Cursor/CursorExample.js b/packages/rn-tester/js/examples/Cursor/CursorExample.js new file mode 100644 index 00000000000000..77936112305aff --- /dev/null +++ b/packages/rn-tester/js/examples/Cursor/CursorExample.js @@ -0,0 +1,124 @@ +/** + * 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 + */ + +'use strict'; + +const React = require('react'); +const {StyleSheet, Text, View} = require('react-native'); + +const styles = StyleSheet.create({ + invisibleBox: { + width: 100, + height: 100, + }, + box: { + width: 100, + height: 100, + borderWidth: 2, + }, + circle: { + width: 100, + height: 100, + borderWidth: 2, + borderRadius: 100, + }, + halfcircle: { + width: 100, + height: 100, + borderWidth: 2, + borderTopStartRadius: 100, + borderBottomStartRadius: 100, + }, + solid: { + backgroundColor: 'blue', + }, + pointer: { + cursor: 'pointer', + }, + row: { + flexDirection: 'row', + flexWrap: 'wrap', + gap: 10, + }, + centerContent: { + justifyContent: 'center', + alignItems: 'center', + }, +}); + +function CursorExampleAuto() { + return ( + + + + + + + + + ); +} + +function CursorExamplePointer() { + return ( + + + + + + + + + ); +} + +function CursorExamplePointer() { + return ( + + + + + + + + + ); +} + +function CursorExampleViewFlattening() { + return ( + + + pointer + + + ); +} + +exports.title = 'Cursor'; +exports.category = 'UI'; +exports.description = + 'Demonstrates setting a cursor, which affects the appearance when a pointer is over the View.'; +exports.examples = [ + { + title: 'Default', + description: "Cursor: 'auto' or no cursor set ", + render: CursorExampleAuto, + }, + { + title: 'Pointer', + description: 'cursor: pointer', + render: CursorExamplePointer, + }, + { + title: 'View flattening', + description: 'Views with a cursor do not get flattened', + render: CursorExampleViewFlattening, + }, +]; diff --git a/packages/rn-tester/js/utils/RNTesterList.ios.js b/packages/rn-tester/js/utils/RNTesterList.ios.js index fa0587ccd1454c..4dbcabd8b3f728 100644 --- a/packages/rn-tester/js/utils/RNTesterList.ios.js +++ b/packages/rn-tester/js/utils/RNTesterList.ios.js @@ -195,6 +195,10 @@ const APIs: Array = ([ key: 'CrashExample', module: require('../examples/Crash/CrashExample'), }, + { + key: 'CursorExample', + module: require('../examples/Cursor/CursorExample'), + }, { key: 'DevSettings', module: require('../examples/DevSettings/DevSettingsExample'), From e3da9b8c0a9a34ae7f26a25c5bdb9d7e44385b90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Kwas=CC=81niewski?= Date: Tue, 5 Mar 2024 07:58:47 -0800 Subject: [PATCH 039/223] fix: add compiler conditional to hover style (#43331) Summary: Commit https://github.com/facebook/react-native/commit/73664f576aaa472d5c8fb2a02e0ddd017bbb2ea4 broke two jobs in CircleCI that we run using Xcode 14.3.1 because the commit introduced some types that are available only to iOS 17. The code was wrapped around if(available()) statement, but this does not compile out the code. It is a runtime check and the code needs to build anyway. This takes effect at compile time as well. However, unlike with #available, the method must type check and compile. The code will always be emitted into your binary: however, it will only be used when the binary is executed on platforms that meet the availability requirements. source: [forums.swift.org/t/if-vs-available-vs-if-available/40266/2](https://forums.swift.org/t/if-vs-available-vs-if-available/40266/2) This change should fix it, introducing some compile time pragmas that removes the code if we build with older versions of Xcode ## Changelog: [IOS] [ADDED] - Compiler conditionals for hover style (cursor: pointer) Pull Request resolved: https://github.com/facebook/react-native/pull/43331 Test Plan: CI Green Reviewed By: dmytrorykun Differential Revision: D54540520 Pulled By: cipolleschi fbshipit-source-id: 943ac479062e11969efa7645ec0ead26c6866374 --- .../Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm | 2 ++ packages/react-native/React/Views/RCTView.m | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm b/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm index 6bdfb69e171a29..8b9f511d89aa57 100644 --- a/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +++ b/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm @@ -597,6 +597,7 @@ - (void)invalidateLayer layer.shadowPath = nil; } +#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 170000 /* __IPHONE_17_0 */ // Stage 1.5. Cursor / Hover Effects if (@available(iOS 17.0, *)) { UIHoverStyle *hoverStyle = nil; @@ -621,6 +622,7 @@ - (void)invalidateLayer } [self setHoverStyle:hoverStyle]; } +#endif // Stage 2. Border Rendering const bool useCoreAnimationBorderRendering = diff --git a/packages/react-native/React/Views/RCTView.m b/packages/react-native/React/Views/RCTView.m index 292956e268a723..3a8658100332fe 100644 --- a/packages/react-native/React/Views/RCTView.m +++ b/packages/react-native/React/Views/RCTView.m @@ -896,6 +896,7 @@ static void RCTUpdateShadowPathForView(RCTView *view) static void RCTUpdateHoverStyleForView(RCTView *view) { +#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 170000 /* __IPHONE_17_0 */ if (@available(iOS 17.0, *)) { UIHoverStyle *hoverStyle = nil; if ([view cursor] == RCTCursorPointer) { @@ -917,6 +918,7 @@ static void RCTUpdateHoverStyleForView(RCTView *view) } [view setHoverStyle:hoverStyle]; } +#endif } - (void)updateClippingForLayer:(CALayer *)layer From 4efab59a1eb925c77e693f8b2abf5ed0492f7e54 Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Tue, 5 Mar 2024 04:03:30 -0800 Subject: [PATCH 040/223] feature(dev-middleware): add inspector proxy `nativeNetworkInspection` target capabilty flag (#43310) Summary: This adds the `nativeNetworkInspection` target capability flag, to enable/disable the proxy-side network inspection handling. ## Changelog: [GENERAL][ADDED] Add inspector proxy `nativeNetworkInspection` target capability flag Pull Request resolved: https://github.com/facebook/react-native/pull/43310 Test Plan: Once this lands, and is published through `react-native/dev-middleware`, we (Expo) can disable the proxy-side network inspection handling. See https://github.com/expo/expo/pull/27425/commits/1a1b601a29fbc5766628238db7259121689f6cd6 on PR expo/expo#27425 Reviewed By: christophpurrer, motiz88 Differential Revision: D54486516 Pulled By: huntie fbshipit-source-id: cc151349c816fb3866d3ec07af1a29a5f4ff9b00 --- packages/dev-middleware/src/inspector-proxy/types.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/dev-middleware/src/inspector-proxy/types.js b/packages/dev-middleware/src/inspector-proxy/types.js index f4994a812c4830..a89bfc9a914d57 100644 --- a/packages/dev-middleware/src/inspector-proxy/types.js +++ b/packages/dev-middleware/src/inspector-proxy/types.js @@ -30,6 +30,13 @@ export type TargetCapabilityFlags = $ReadOnly<{ * In the proxy, this disables source fetching emulation and host rewrites. */ nativeSourceCodeFetching?: boolean, + + /** + * The target supports native network inspection. + * + * In the proxy, this disables intercepting and storing network requests. + */ + nativeNetworkInspection?: boolean, }>; // Page information received from the device. New page is created for From 8a7c718ab305d8c46ace3b5ca8b31b8a96b6b8fd Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 11 Mar 2024 13:51:44 +0000 Subject: [PATCH 041/223] Bump package versions #publish-packages-to-npm&0.74-stable --- packages/community-cli-plugin/package.json | 4 ++-- packages/dev-middleware/package.json | 2 +- packages/react-native/package.json | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index f88122b0cbf361..91e2da26309c22 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.4", + "version": "0.74.5", "description": "Core CLI commands for React Native", "keywords": [ "react-native", @@ -24,7 +24,7 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.1", "@react-native-community/cli-tools": "13.6.1", - "@react-native/dev-middleware": "0.74.2", + "@react-native/dev-middleware": "0.74.3", "@react-native/metro-babel-transformer": "0.74.2", "chalk": "^4.0.0", "execa": "^5.1.1", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index eb2ad86afd6974..8fe69b4251dafa 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.2", + "version": "0.74.3", "description": "Dev server middleware for React Native", "keywords": [ "react-native", diff --git a/packages/react-native/package.json b/packages/react-native/package.json index b9629c72072b20..253dd864635586 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -103,7 +103,7 @@ "@react-native-community/cli-platform-ios": "13.6.1", "@react-native/assets-registry": "0.74.0", "@react-native/codegen": "0.74.2", - "@react-native/community-cli-plugin": "0.74.4", + "@react-native/community-cli-plugin": "0.74.5", "@react-native/gradle-plugin": "0.74.1", "@react-native/js-polyfills": "0.74.0", "@react-native/normalize-colors": "0.74.1", @@ -153,4 +153,4 @@ } ] } -} \ No newline at end of file +} From 57cc8e7f6772fee1e01e9997c04ee66016495f83 Mon Sep 17 00:00:00 2001 From: Distiller Date: Mon, 11 Mar 2024 14:59:31 +0000 Subject: [PATCH 042/223] [0.74.0-rc.3] Bump version numbers --- packages/react-native/Libraries/Core/ReactNativeVersion.js | 2 +- packages/react-native/React/Base/RCTVersion.m | 2 +- packages/react-native/ReactAndroid/gradle.properties | 2 +- .../facebook/react/modules/systeminfo/ReactNativeVersion.java | 2 +- .../react-native/ReactCommon/cxxreact/ReactNativeVersion.h | 2 +- packages/react-native/package.json | 4 ++-- packages/react-native/template/package.json | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index 3425253f075e49..083b9273bb54e1 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -17,7 +17,7 @@ const version: $ReadOnly<{ major: 0, minor: 74, patch: 0, - prerelease: 'rc.2', + prerelease: 'rc.3', }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index 149b01113f1dc1..6027a926d09351 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -24,7 +24,7 @@ RCTVersionMajor: @(0), RCTVersionMinor: @(74), RCTVersionPatch: @(0), - RCTVersionPrerelease: @"rc.2", + RCTVersionPrerelease: @"rc.3", }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index e3d9e080228a7b..1baf8356983054 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.0-rc.2 +VERSION_NAME=0.74.0-rc.3 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index 7442d92abde73e..441c0ef9473441 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -18,5 +18,5 @@ public class ReactNativeVersion { "major", 0, "minor", 74, "patch", 0, - "prerelease", "rc.2"); + "prerelease", "rc.3"); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index b091d36f9a66cc..8308d4f5987f52 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -18,7 +18,7 @@ constexpr struct { int32_t Major = 0; int32_t Minor = 74; int32_t Patch = 0; - std::string_view Prerelease = "rc.2"; + std::string_view Prerelease = "rc.3"; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 253dd864635586..605e1860d02872 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.0-rc.2", + "version": "0.74.0-rc.3", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -153,4 +153,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index a618ba8758d80f..57422df9e34061 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.0-rc.2" + "react-native": "0.74.0-rc.3" }, "devDependencies": { "@babel/core": "^7.20.0", From 24d3251d3f339eba5e3b594d5cd565d4169ab699 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 12 Mar 2024 10:09:39 +0000 Subject: [PATCH 043/223] Update Podfile.lock --- packages/rn-tester/Podfile.lock | 488 ++++++++++++++++---------------- 1 file changed, 244 insertions(+), 244 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 26bce667e304be..47c7c36e41f2ad 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,12 +1,12 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.0-rc.2) + - FBLazyVector (0.74.0-rc.3) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.0-rc.2): - - hermes-engine/Pre-built (= 0.74.0-rc.2) - - hermes-engine/Pre-built (0.74.0-rc.2) + - hermes-engine (0.74.0-rc.3): + - hermes-engine/Pre-built (= 0.74.0-rc.3) + - hermes-engine/Pre-built (0.74.0-rc.3) - MyNativeView (0.0.1): - DoubleConversion - glog @@ -66,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.0-rc.2) - - RCTRequired (0.74.0-rc.2) - - RCTTypeSafety (0.74.0-rc.2): - - FBLazyVector (= 0.74.0-rc.2) - - RCTRequired (= 0.74.0-rc.2) - - React-Core (= 0.74.0-rc.2) - - React (0.74.0-rc.2): - - React-Core (= 0.74.0-rc.2) - - React-Core/DevSupport (= 0.74.0-rc.2) - - React-Core/RCTWebSocket (= 0.74.0-rc.2) - - React-RCTActionSheet (= 0.74.0-rc.2) - - React-RCTAnimation (= 0.74.0-rc.2) - - React-RCTBlob (= 0.74.0-rc.2) - - React-RCTImage (= 0.74.0-rc.2) - - React-RCTLinking (= 0.74.0-rc.2) - - React-RCTNetwork (= 0.74.0-rc.2) - - React-RCTSettings (= 0.74.0-rc.2) - - React-RCTText (= 0.74.0-rc.2) - - React-RCTVibration (= 0.74.0-rc.2) - - React-callinvoker (0.74.0-rc.2) - - React-Codegen (0.74.0-rc.2): + - RCTDeprecation (0.74.0-rc.3) + - RCTRequired (0.74.0-rc.3) + - RCTTypeSafety (0.74.0-rc.3): + - FBLazyVector (= 0.74.0-rc.3) + - RCTRequired (= 0.74.0-rc.3) + - React-Core (= 0.74.0-rc.3) + - React (0.74.0-rc.3): + - React-Core (= 0.74.0-rc.3) + - React-Core/DevSupport (= 0.74.0-rc.3) + - React-Core/RCTWebSocket (= 0.74.0-rc.3) + - React-RCTActionSheet (= 0.74.0-rc.3) + - React-RCTAnimation (= 0.74.0-rc.3) + - React-RCTBlob (= 0.74.0-rc.3) + - React-RCTImage (= 0.74.0-rc.3) + - React-RCTLinking (= 0.74.0-rc.3) + - React-RCTNetwork (= 0.74.0-rc.3) + - React-RCTSettings (= 0.74.0-rc.3) + - React-RCTText (= 0.74.0-rc.3) + - React-RCTVibration (= 0.74.0-rc.3) + - React-callinvoker (0.74.0-rc.3) + - React-Codegen (0.74.0-rc.3): - DoubleConversion - glog - hermes-engine @@ -106,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.0-rc.2): + - React-Core (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.2) + - React-Core/Default (= 0.74.0-rc.3) - React-cxxreact - React-featureflags - React-hermes @@ -123,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.0-rc.2): + - React-Core/CoreModulesHeaders (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.0-rc.2): + - React-Core/Default (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -156,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.0-rc.2): + - React-Core/DevSupport (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.2) - - React-Core/RCTWebSocket (= 0.74.0-rc.2) + - React-Core/Default (= 0.74.0-rc.3) + - React-Core/RCTWebSocket (= 0.74.0-rc.3) - React-cxxreact - React-featureflags - React-hermes @@ -174,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.0-rc.2): + - React-Core/RCTActionSheetHeaders (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -191,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.0-rc.2): + - React-Core/RCTAnimationHeaders (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -208,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.0-rc.2): + - React-Core/RCTBlobHeaders (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.0-rc.2): + - React-Core/RCTImageHeaders (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -242,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.0-rc.2): + - React-Core/RCTLinkingHeaders (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.0-rc.2): + - React-Core/RCTNetworkHeaders (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -276,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.0-rc.2): + - React-Core/RCTPushNotificationHeaders (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -293,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.0-rc.2): + - React-Core/RCTSettingsHeaders (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -310,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.0-rc.2): + - React-Core/RCTTextHeaders (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -327,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.0-rc.2): + - React-Core/RCTVibrationHeaders (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -344,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.0-rc.2): + - React-Core/RCTWebSocket (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.2) + - React-Core/Default (= 0.74.0-rc.3) - React-cxxreact - React-featureflags - React-hermes @@ -361,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.0-rc.2): + - React-CoreModules (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.0-rc.2) + - RCTTypeSafety (= 0.74.0-rc.3) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.0-rc.2) - - React-jsi (= 0.74.0-rc.2) + - React-Core/CoreModulesHeaders (= 0.74.0-rc.3) + - React-jsi (= 0.74.0-rc.3) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.0-rc.2) + - React-RCTImage (= 0.74.0-rc.3) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.0-rc.2): + - React-cxxreact (0.74.0-rc.3): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.2) - - React-debug (= 0.74.0-rc.2) - - React-jsi (= 0.74.0-rc.2) + - React-callinvoker (= 0.74.0-rc.3) + - React-debug (= 0.74.0-rc.3) + - React-jsi (= 0.74.0-rc.3) - React-jsinspector - - React-logger (= 0.74.0-rc.2) - - React-perflogger (= 0.74.0-rc.2) - - React-runtimeexecutor (= 0.74.0-rc.2) - - React-debug (0.74.0-rc.2) - - React-Fabric (0.74.0-rc.2): + - React-logger (= 0.74.0-rc.3) + - React-perflogger (= 0.74.0-rc.3) + - React-runtimeexecutor (= 0.74.0-rc.3) + - React-debug (0.74.0-rc.3) + - React-Fabric (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -401,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.0-rc.2) - - React-Fabric/attributedstring (= 0.74.0-rc.2) - - React-Fabric/componentregistry (= 0.74.0-rc.2) - - React-Fabric/componentregistrynative (= 0.74.0-rc.2) - - React-Fabric/components (= 0.74.0-rc.2) - - React-Fabric/core (= 0.74.0-rc.2) - - React-Fabric/imagemanager (= 0.74.0-rc.2) - - React-Fabric/leakchecker (= 0.74.0-rc.2) - - React-Fabric/mounting (= 0.74.0-rc.2) - - React-Fabric/scheduler (= 0.74.0-rc.2) - - React-Fabric/telemetry (= 0.74.0-rc.2) - - React-Fabric/templateprocessor (= 0.74.0-rc.2) - - React-Fabric/textlayoutmanager (= 0.74.0-rc.2) - - React-Fabric/uimanager (= 0.74.0-rc.2) + - React-Fabric/animations (= 0.74.0-rc.3) + - React-Fabric/attributedstring (= 0.74.0-rc.3) + - React-Fabric/componentregistry (= 0.74.0-rc.3) + - React-Fabric/componentregistrynative (= 0.74.0-rc.3) + - React-Fabric/components (= 0.74.0-rc.3) + - React-Fabric/core (= 0.74.0-rc.3) + - React-Fabric/imagemanager (= 0.74.0-rc.3) + - React-Fabric/leakchecker (= 0.74.0-rc.3) + - React-Fabric/mounting (= 0.74.0-rc.3) + - React-Fabric/scheduler (= 0.74.0-rc.3) + - React-Fabric/telemetry (= 0.74.0-rc.3) + - React-Fabric/templateprocessor (= 0.74.0-rc.3) + - React-Fabric/textlayoutmanager (= 0.74.0-rc.3) + - React-Fabric/uimanager (= 0.74.0-rc.3) - React-graphics - React-jsi - React-jsiexecutor @@ -423,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.0-rc.2): + - React-Fabric/animations (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -442,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.0-rc.2): + - React-Fabric/attributedstring (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -461,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.0-rc.2): + - React-Fabric/componentregistry (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.0-rc.2): + - React-Fabric/componentregistrynative (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.0-rc.2): + - React-Fabric/components (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -510,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.0-rc.2) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.2) - - React-Fabric/components/modal (= 0.74.0-rc.2) - - React-Fabric/components/rncore (= 0.74.0-rc.2) - - React-Fabric/components/root (= 0.74.0-rc.2) - - React-Fabric/components/safeareaview (= 0.74.0-rc.2) - - React-Fabric/components/scrollview (= 0.74.0-rc.2) - - React-Fabric/components/text (= 0.74.0-rc.2) - - React-Fabric/components/textinput (= 0.74.0-rc.2) - - React-Fabric/components/unimplementedview (= 0.74.0-rc.2) - - React-Fabric/components/view (= 0.74.0-rc.2) + - React-Fabric/components/inputaccessory (= 0.74.0-rc.3) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.3) + - React-Fabric/components/modal (= 0.74.0-rc.3) + - React-Fabric/components/rncore (= 0.74.0-rc.3) + - React-Fabric/components/root (= 0.74.0-rc.3) + - React-Fabric/components/safeareaview (= 0.74.0-rc.3) + - React-Fabric/components/scrollview (= 0.74.0-rc.3) + - React-Fabric/components/text (= 0.74.0-rc.3) + - React-Fabric/components/textinput (= 0.74.0-rc.3) + - React-Fabric/components/unimplementedview (= 0.74.0-rc.3) + - React-Fabric/components/view (= 0.74.0-rc.3) - React-graphics - React-jsi - React-jsiexecutor @@ -529,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.0-rc.2): + - React-Fabric/components/inputaccessory (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -548,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.2): + - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -567,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.0-rc.2): + - React-Fabric/components/modal (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -586,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.0-rc.2): + - React-Fabric/components/rncore (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.0-rc.2): + - React-Fabric/components/root (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.0-rc.2): + - React-Fabric/components/safeareaview (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.0-rc.2): + - React-Fabric/components/scrollview (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.0-rc.2): + - React-Fabric/components/text (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.0-rc.2): + - React-Fabric/components/textinput (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -700,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.0-rc.2): + - React-Fabric/components/unimplementedview (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -719,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.0-rc.2): + - React-Fabric/components/view (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -739,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.0-rc.2): + - React-Fabric/core (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.0-rc.2): + - React-Fabric/imagemanager (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -777,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.0-rc.2): + - React-Fabric/leakchecker (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -796,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.0-rc.2): + - React-Fabric/mounting (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -815,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.0-rc.2): + - React-Fabric/scheduler (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -834,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.0-rc.2): + - React-Fabric/telemetry (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.0-rc.2): + - React-Fabric/templateprocessor (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -872,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.0-rc.2): + - React-Fabric/textlayoutmanager (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -892,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.0-rc.2): + - React-Fabric/uimanager (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog @@ -911,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.0-rc.2): + - React-FabricImage (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.0-rc.2) - - RCTTypeSafety (= 0.74.0-rc.2) + - RCTRequired (= 0.74.0-rc.3) + - RCTTypeSafety (= 0.74.0-rc.3) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.0-rc.2) + - React-jsiexecutor (= 0.74.0-rc.3) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.0-rc.2) - - React-graphics (0.74.0-rc.2): + - React-featureflags (0.74.0-rc.3) + - React-graphics (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.0-rc.2) + - React-Core/Default (= 0.74.0-rc.3) - React-utils - - React-hermes (0.74.0-rc.2): + - React-hermes (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.2) + - React-cxxreact (= 0.74.0-rc.3) - React-jsi - - React-jsiexecutor (= 0.74.0-rc.2) + - React-jsiexecutor (= 0.74.0-rc.3) - React-jsinspector - - React-perflogger (= 0.74.0-rc.2) + - React-perflogger (= 0.74.0-rc.3) - React-runtimeexecutor - - React-ImageManager (0.74.0-rc.2): + - React-ImageManager (0.74.0-rc.3): - glog - RCT-Folly/Fabric - React-Core/Default @@ -958,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.0-rc.2): + - React-jserrorhandler (0.74.0-rc.3): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.0-rc.2): + - React-jsi (0.74.0-rc.3): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.0-rc.2): + - React-jsiexecutor (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.2) - - React-jsi (= 0.74.0-rc.2) + - React-cxxreact (= 0.74.0-rc.3) + - React-jsi (= 0.74.0-rc.3) - React-jsinspector - - React-perflogger (= 0.74.0-rc.2) - - React-jsinspector (0.74.0-rc.2): + - React-perflogger (= 0.74.0-rc.3) + - React-jsinspector (0.74.0-rc.3): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.0-rc.2) - - React-jsitracing (0.74.0-rc.2): + - React-runtimeexecutor (= 0.74.0-rc.3) + - React-jsitracing (0.74.0-rc.3): - React-jsi - - React-logger (0.74.0-rc.2): + - React-logger (0.74.0-rc.3): - glog - - React-Mapbuffer (0.74.0-rc.2): + - React-Mapbuffer (0.74.0-rc.3): - glog - React-debug - - React-nativeconfig (0.74.0-rc.2) - - React-NativeModulesApple (0.74.0-rc.2): + - React-nativeconfig (0.74.0-rc.3) + - React-NativeModulesApple (0.74.0-rc.3): - glog - hermes-engine - React-callinvoker @@ -1007,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.0-rc.2) - - React-RCTActionSheet (0.74.0-rc.2): - - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.2) - - React-RCTAnimation (0.74.0-rc.2): + - React-perflogger (0.74.0-rc.3) + - React-RCTActionSheet (0.74.0-rc.3): + - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.3) + - React-RCTAnimation (0.74.0-rc.3): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1018,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.0-rc.2): + - React-RCTAppDelegate (0.74.0-rc.3): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1041,7 +1041,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.0-rc.2): + - React-RCTBlob (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1054,7 +1054,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.0-rc.2): + - React-RCTFabric (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1074,7 +1074,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.0-rc.2): + - React-RCTImage (0.74.0-rc.3): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1083,14 +1083,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.0-rc.2): + - React-RCTLinking (0.74.0-rc.3): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.0-rc.2) - - React-jsi (= 0.74.0-rc.2) + - React-Core/RCTLinkingHeaders (= 0.74.0-rc.3) + - React-jsi (= 0.74.0-rc.3) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.0-rc.2) - - React-RCTNetwork (0.74.0-rc.2): + - ReactCommon/turbomodule/core (= 0.74.0-rc.3) + - React-RCTNetwork (0.74.0-rc.3): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1098,14 +1098,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.0-rc.2): + - React-RCTPushNotification (0.74.0-rc.3): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.0-rc.2): + - React-RCTSettings (0.74.0-rc.3): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1113,29 +1113,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.0-rc.2): + - React-RCTTest (0.74.0-rc.3): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.0-rc.2) - - React-CoreModules (= 0.74.0-rc.2) - - React-jsi (= 0.74.0-rc.2) - - ReactCommon/turbomodule/core (= 0.74.0-rc.2) - - React-RCTText (0.74.0-rc.2): - - React-Core/RCTTextHeaders (= 0.74.0-rc.2) + - React-Core (= 0.74.0-rc.3) + - React-CoreModules (= 0.74.0-rc.3) + - React-jsi (= 0.74.0-rc.3) + - ReactCommon/turbomodule/core (= 0.74.0-rc.3) + - React-RCTText (0.74.0-rc.3): + - React-Core/RCTTextHeaders (= 0.74.0-rc.3) - Yoga - - React-RCTVibration (0.74.0-rc.2): + - React-RCTVibration (0.74.0-rc.3): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.0-rc.2): + - React-rendererdebug (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.0-rc.2) - - React-RuntimeApple (0.74.0-rc.2): + - React-rncore (0.74.0-rc.3) + - React-RuntimeApple (0.74.0-rc.3): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1153,7 +1153,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.0-rc.2): + - React-RuntimeCore (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1166,9 +1166,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.0-rc.2): - - React-jsi (= 0.74.0-rc.2) - - React-RuntimeHermes (0.74.0-rc.2): + - React-runtimeexecutor (0.74.0-rc.3): + - React-jsi (= 0.74.0-rc.3) + - React-RuntimeHermes (0.74.0-rc.3): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1179,7 +1179,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.0-rc.2): + - React-runtimescheduler (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1191,15 +1191,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.0-rc.2): + - React-utils (0.74.0-rc.3): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.0-rc.2) - - ReactCommon (0.74.0-rc.2): - - ReactCommon/turbomodule (= 0.74.0-rc.2) - - ReactCommon-Samples (0.74.0-rc.2): + - React-jsi (= 0.74.0-rc.3) + - ReactCommon (0.74.0-rc.3): + - ReactCommon/turbomodule (= 0.74.0-rc.3) + - ReactCommon-Samples (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1210,43 +1210,43 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.0-rc.2): + - ReactCommon/turbomodule (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.2) - - React-cxxreact (= 0.74.0-rc.2) - - React-jsi (= 0.74.0-rc.2) - - React-logger (= 0.74.0-rc.2) - - React-perflogger (= 0.74.0-rc.2) - - ReactCommon/turbomodule/bridging (= 0.74.0-rc.2) - - ReactCommon/turbomodule/core (= 0.74.0-rc.2) - - ReactCommon/turbomodule/bridging (0.74.0-rc.2): + - React-callinvoker (= 0.74.0-rc.3) + - React-cxxreact (= 0.74.0-rc.3) + - React-jsi (= 0.74.0-rc.3) + - React-logger (= 0.74.0-rc.3) + - React-perflogger (= 0.74.0-rc.3) + - ReactCommon/turbomodule/bridging (= 0.74.0-rc.3) + - ReactCommon/turbomodule/core (= 0.74.0-rc.3) + - ReactCommon/turbomodule/bridging (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.2) - - React-cxxreact (= 0.74.0-rc.2) - - React-jsi (= 0.74.0-rc.2) - - React-logger (= 0.74.0-rc.2) - - React-perflogger (= 0.74.0-rc.2) - - ReactCommon/turbomodule/core (0.74.0-rc.2): + - React-callinvoker (= 0.74.0-rc.3) + - React-cxxreact (= 0.74.0-rc.3) + - React-jsi (= 0.74.0-rc.3) + - React-logger (= 0.74.0-rc.3) + - React-perflogger (= 0.74.0-rc.3) + - ReactCommon/turbomodule/core (0.74.0-rc.3): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.2) - - React-cxxreact (= 0.74.0-rc.2) - - React-debug (= 0.74.0-rc.2) - - React-jsi (= 0.74.0-rc.2) - - React-logger (= 0.74.0-rc.2) - - React-perflogger (= 0.74.0-rc.2) - - React-utils (= 0.74.0-rc.2) + - React-callinvoker (= 0.74.0-rc.3) + - React-cxxreact (= 0.74.0-rc.3) + - React-debug (= 0.74.0-rc.3) + - React-jsi (= 0.74.0-rc.3) + - React-logger (= 0.74.0-rc.3) + - React-perflogger (= 0.74.0-rc.3) + - React-utils (= 0.74.0-rc.3) - ScreenshotManager (0.0.1): - DoubleConversion - glog @@ -1467,67 +1467,67 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: fa59cfcc9893760f58a0af6f5c25d5736c6d0b14 + FBLazyVector: 22373730839f6c9b5ea8e58bc70aca92722b36e4 fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 563fc2ee6a71d0768170d4b72176ebe13f7477eb + hermes-engine: d425d48a2c020bfef4568e2aa7b2583878ebbcc4 MyNativeView: b7ba0b5c94be5e9c4b2ce4887bb5f511a7c8970c NativeCxxModuleExample: c152bfeb11e2c53cdd56ffc2bafa94970ea5d195 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df - RCTDeprecation: 6cc9677aab2e9af79e75f2eeea9be22adbc657d9 - RCTRequired: 1c308285f5125d3e65fd864d1ffbd51c84f19be0 - RCTTypeSafety: c66cf0ffe89d4c3a6f74c38a8b1396d9a06bd5f2 - React: 525ec60174ace50c7cc60fe92982e580b0b26cfb - React-callinvoker: 38f05fc7eb5c7871c1492a738c3c5030dccb5ab5 - React-Codegen: 34ae0dd53dc864028201b5bdb80f052c112c3ce5 - React-Core: a86958b70355c2fa2b959ceb6a9e68feb1dabe60 - React-CoreModules: 158d38fb11abd70117c61567815ab1e9718966f0 - React-cxxreact: 6d319bcf5f41f7b5330fbe8c27049793a08dba6f - React-debug: 8978d47d2f81f65f9356c84ee6f53c8600396a60 - React-Fabric: bb9770e578f339e24ca4cfeb306ee400b72aace9 - React-FabricImage: 8f9dd2533a951f1fb3403c6ebe1a47a201ded452 - React-featureflags: bcc40ad00b2de429cbe4277e03e8855a4fa24a10 - React-graphics: ce64afd30777eaaffca7086c13e52f430e15553c - React-hermes: 077ba60b78db135eebcac68939ed8ec9a1edfba8 - React-ImageManager: 88bff6cb69aa5f2f9a509f886e8e54389546f387 - React-jserrorhandler: d3430dd12e86ab03501ac4308f639e41d9fe965c - React-jsi: 2f418a12887ba5de80f89fbf5630cfc67f81660e - React-jsiexecutor: 88ba7d9919658a39601312298b09a557226971f3 - React-jsinspector: 4729e72b86726ed43fc5ba7cbdb255de81c1fb6c - React-jsitracing: 0ea7358d02b7c4e8b0a09c7d35047bdd28251ede - React-logger: 216e56f4326f6c48202d62a7f5b44e4c360ce1a2 - React-Mapbuffer: ae2d3f6558e75910a4e4a5fb07a283a5561dcd2a - React-nativeconfig: 286fd459e7b7e50618040f6549b8846aa3b32ff9 - React-NativeModulesApple: 0d60bfd31dea51b1a65fd9910a57b2aa068d173a - React-perflogger: bc4cdc9440a5ba3b462813447a5a6633010b1cc8 - React-RCTActionSheet: 8b27811da488f196167ca1756453cc1feacbed8f - React-RCTAnimation: aba9dcc5c6c0213cd1e747076300261aa8d23845 - React-RCTAppDelegate: f8d6afca137f95bac028b631c89c9648ae2e864d - React-RCTBlob: 843bb240adc3bc28cf8893a5fad4b4d41c0b89ad - React-RCTFabric: 5d3862472637a83c703daf1e491119d27520dc8e - React-RCTImage: 67ea59e43e222cde321675e49416e21b5adc52e6 - React-RCTLinking: 73f14ccf9ce161d5f7b61c4d18eb01876897fe17 - React-RCTNetwork: 157786ee39743278756977b8161631646bcf9770 - React-RCTPushNotification: 39aeca2c812535b55c039facb4750fe163fd61d9 - React-RCTSettings: e3b41387f9b00dd2c27633516d3910c9b599dd20 - React-RCTTest: 828f3a48a53d74731ee88a46497c9d1d44850900 - React-RCTText: 03f0530b5c16d420458295121cf47ecaad63dad6 - React-RCTVibration: 7c3592b2a785e6c2538376c21224d30da099e06e - React-rendererdebug: dcb8ec8ef31cfc3e30499929b6264d4968fb44b2 - React-rncore: 6c296b9f1b3ce22a461459c61a4771e47f247e0a - React-RuntimeApple: b9f9eae52898eb42e606a1c4030f4b8babb3918e - React-RuntimeCore: d25c52bc73a05b2f6ee90d615bdb82ef5dcbfeef - React-runtimeexecutor: 9ea6854962deb2841e4ea6706ee77155c0d0e986 - React-RuntimeHermes: 36a52c7430c8e3f55eae7350c6b65d1e854184c2 - React-runtimescheduler: 29aa1c59c7da4d7275c9757d4f26869e2954a8bd - React-utils: b3fdffd65d9f66ae79435e6633b8a634ac67baf7 - ReactCommon: a4c502bf9d6b69ac8a1961bce7ae32a1e8439555 - ReactCommon-Samples: 45e4ac2af551590b647d363450bbd703372fa811 + RCTDeprecation: 1426dc415fe84cf0ce4c2b67df6cbe77e82508c9 + RCTRequired: 7e912eb143ec0f82ba4fa8ea1ecfa2aa3f0c1555 + RCTTypeSafety: ee2d84ee7b68aff18c585cd346918f83418da724 + React: 3fcfee44730f7aaa95725fca7d286d4eaf512f0d + React-callinvoker: 0e22eb4930df482ecb6abf7067340413b86e840c + React-Codegen: 6a208199d09e49d38e15c842bc83a68b56fb0f03 + React-Core: 3121cfe8f1eb259f0aa87ba159c1c17fda99638d + React-CoreModules: f461d16c98886bf587a658e3463c48c7cc906ce7 + React-cxxreact: ed5f88ccea9c78eb169b97f12ac8d59847f4da39 + React-debug: c4938e1ec00e2025fdba57d7ba4fa2486f13f5a1 + React-Fabric: 3170274f190d53e4dba6ff4040c8c70508a299d4 + React-FabricImage: e67dfe5246c01ab8d762f81d8dc1f87bd4c05abf + React-featureflags: ddeec78ca1ce58c5ed8ea4e1b685de022ac94ca8 + React-graphics: 0910afce7e45712d9ac6c10e0b2454af15bba4de + React-hermes: 31e71a86557b46fb039924686bb9aeb7e8a124b6 + React-ImageManager: 55952f6100e41611dc4c05092c64377a58a0bd2c + React-jserrorhandler: b3cdcd2e8a74bcd8ec5a3b7c1cee1309e7015fb2 + React-jsi: 9f75b4c3d25b081ff86012db29f66b8475cdadac + React-jsiexecutor: 541b100c9087a03f29404cdbbf3b5155ae995d6d + React-jsinspector: 1cfae2484f77d6992b50fda38168b9a67452440c + React-jsitracing: aeccbc1efd21d9a43c0c4d4ca556419dfbe511fd + React-logger: 8502842a2d6e86a4b2aeb5a45141a9c05d98e7e7 + React-Mapbuffer: 5029f6cb5b885b564b83d2c3d2f449a0cff10cf1 + React-nativeconfig: e2cf34a605b3e22153df6ef6233960eccda5b6a3 + React-NativeModulesApple: 1ca4c85bce6729bd2bde0b8c486fa5cef521b7ce + React-perflogger: c5f881d474aaf3b081b5f416bc1d923dccd22a5e + React-RCTActionSheet: 2dab3acf7eba4332fa93f9385af052f767768937 + React-RCTAnimation: 7535c8b991c8ce37fe7b29c4f710b80d3d196cae + React-RCTAppDelegate: 4ddce46a3ded83a247b368b7dc93e5dba0f79417 + React-RCTBlob: cd383378ec08728a43183417a4daa5915342fb9d + React-RCTFabric: 43953af1099f9e2f805e93e98ef79b5a0895e8fa + React-RCTImage: a3b0f170097f69bac0aa634626c9486ff5061c88 + React-RCTLinking: ed6ecbf6c10af779111e35548900dac7ca643c31 + React-RCTNetwork: 4fece61119f4c5fcfaa4d3a3640059233d9cbca4 + React-RCTPushNotification: e372c05876828a4a4cdee9eb73b440194160d8f2 + React-RCTSettings: fa63883de63d518eb255afebf507a7939cf24b6f + React-RCTTest: db3f2df29459105fdea126993866f5230e7be794 + React-RCTText: db6597036cded3b857fb43465c0f10573fc2688d + React-RCTVibration: b7d40a2617e9142f85d2e0b34f89f0c970bd7116 + React-rendererdebug: ceebad538a33c2548ca74482a10f2976b9b70e8c + React-rncore: 5d3e30e67d9e7eca37d869f7d09e42c1933e8cb7 + React-RuntimeApple: b9232706c5d1ddf991062151a5e5a77b01890f75 + React-RuntimeCore: 3b0f0f64734a971b4bfac72efa3db38d240a297e + React-runtimeexecutor: 24ba9cc02bc421a1e36f8e76c7081cc6e0149c2e + React-RuntimeHermes: ac4df30565dbf03e7270f892822cbd440fc68758 + React-runtimescheduler: 02a71ab19d6d34d89e3bfa3b53fef28a5812596b + React-utils: 739522a611d31b3f67d1c27d24813ea02647bde9 + ReactCommon: 14bc8c0629af97e9b27e48c6ea8b735b7b1f84e6 + ReactCommon-Samples: 2b325b60eabc5113f203ac98dcc4ddb7dc748b1c ScreenshotManager: 8584ded316377154f7cc19d5ef15e7c94ce04466 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: f78d50661f1d9906929cddb3641febd14068f090 + Yoga: cd82404086c0a2ee8cd85bb5d77c68c12ce5ca63 PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf -COCOAPODS: 1.14.2 +COCOAPODS: 1.14.3 From bc745cb6ffc8dbce6fb97eb5a94f156a2f71a6a0 Mon Sep 17 00:00:00 2001 From: szymonrybczak Date: Mon, 11 Mar 2024 17:20:43 +0100 Subject: [PATCH 044/223] Update `@react-native-community/cli` to 13.6.2 --- packages/community-cli-plugin/package.json | 4 +- packages/react-native/package.json | 6 +- yarn.lock | 142 ++++++++++----------- 3 files changed, 76 insertions(+), 76 deletions(-) diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 91e2da26309c22..11e66f4b89bc32 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -22,8 +22,8 @@ "dist" ], "dependencies": { - "@react-native-community/cli-server-api": "13.6.1", - "@react-native-community/cli-tools": "13.6.1", + "@react-native-community/cli-server-api": "13.6.2", + "@react-native-community/cli-tools": "13.6.2", "@react-native/dev-middleware": "0.74.3", "@react-native/metro-babel-transformer": "0.74.2", "chalk": "^4.0.0", diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 605e1860d02872..dc65b72aaedac4 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -98,9 +98,9 @@ }, "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "13.6.1", - "@react-native-community/cli-platform-android": "13.6.1", - "@react-native-community/cli-platform-ios": "13.6.1", + "@react-native-community/cli": "13.6.2", + "@react-native-community/cli-platform-android": "13.6.2", + "@react-native-community/cli-platform-ios": "13.6.2", "@react-native/assets-registry": "0.74.0", "@react-native/codegen": "0.74.2", "@react-native/community-cli-plugin": "0.74.5", diff --git a/yarn.lock b/yarn.lock index 49ce4cec434e10..721f18649aaf6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2384,45 +2384,45 @@ optionalDependencies: npmlog "2 || ^3.1.0 || ^4.0.0" -"@react-native-community/cli-clean@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.1.tgz#e4dce2aa8ea5a2fbdbfe8074e0c285bf4796d7be" - integrity sha512-HV0kTegCMbq9INOLUVzPFl/FDjZ2uX6kOa7cFYezkRhgApJo0a/KYTvqwQVlmdHXAjDiWLARGTUPqYQGwIef0A== +"@react-native-community/cli-clean@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.2.tgz#073a9921392c0072691e29ef83f4e1b6d52d41ce" + integrity sha512-F05U//+DdsGUrFz3LOwNlaiVxv7W3jK38algZxHux/nQj4395LMQTtUMvTlk5CpptlJX3gJZRkjYJbpXSJbJag== dependencies: - "@react-native-community/cli-tools" "13.6.1" + "@react-native-community/cli-tools" "13.6.2" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" -"@react-native-community/cli-config@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.1.tgz#b1f83fc1572d2500fb9e8d5b1a38ba417acb6eec" - integrity sha512-ljqwH04RNkwv8Y67TjmJ60qgvAdS2aCCUszaD7ZPXmfqBBxkvLg5QFtja9y+1QuTGPmBuTtC55JqmCHg/UDAsg== +"@react-native-community/cli-config@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.2.tgz#fb5a840293f8c175456a986c14e2fad22e551b74" + integrity sha512-a+mGYjAd5GuKHnaYjnJ03tXbo8pRCoWyzAGIfD5gZ2JOUuQu+d0JL6TRTXX0Vt31p9HhfUB3cSuS+cTNjNT49A== dependencies: - "@react-native-community/cli-tools" "13.6.1" + "@react-native-community/cli-tools" "13.6.2" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" fast-glob "^3.3.2" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.1.tgz#7bb56be33d3ee2289bfbab7efa59a16a7554cd1a" - integrity sha512-3z1io3AsT1NqlJZOlqNFcrzlavBb7R+Vy5Orzruc3m/OIjc4TrGNtyzQmOfCC3peF8J3So3d6dH1a11YYUDfFw== +"@react-native-community/cli-debugger-ui@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.2.tgz#e35d33a74183a224cfb360c7f69512a9fec5e734" + integrity sha512-TQuTDauHyUIwn2f9dTnHnlVE26f8DWEw4reOrKWA7fZ4mqJ4MA3Ks424RD78aIcxkTqC4E3Z9nVsJfM42EMyyg== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.1.tgz#64b6e64c13cf8d318fe631ebc84834fa5650adf1" - integrity sha512-jP5otBbvcItuIy8WJT8UAA0lLB+0kKtCmcfQFmcs0/NlBy04cpTtGp7w2N3F1r2Qy9sdQWGRa20IFZn8eenieQ== +"@react-native-community/cli-doctor@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.2.tgz#77381bb2839bd4fd110a4c4f5ff86359520e81ec" + integrity sha512-5T2LC4Cvg/aJCLrh0FPKIjTnxc8GXwGYBBfQ8hAdXK3j2OgNRwwlii5NGDuvd4Gj1qdiEMgaZMm50R0kY2Qv+w== dependencies: - "@react-native-community/cli-config" "13.6.1" - "@react-native-community/cli-platform-android" "13.6.1" - "@react-native-community/cli-platform-apple" "13.6.1" - "@react-native-community/cli-platform-ios" "13.6.1" - "@react-native-community/cli-tools" "13.6.1" + "@react-native-community/cli-config" "13.6.2" + "@react-native-community/cli-platform-android" "13.6.2" + "@react-native-community/cli-platform-apple" "13.6.2" + "@react-native-community/cli-platform-ios" "13.6.2" + "@react-native-community/cli-tools" "13.6.2" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" @@ -2436,54 +2436,54 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-hermes@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.1.tgz#2d4de930ffbe30e02150031d33108059d51e7e17" - integrity sha512-uGzmpg3DCqXiVLArTw6LMCGoGPkdMBKUllnlvgl1Yjne6LL7NPnQ971lMVGqTX9/p3CaW5TcqYYJjnI7sxlVcA== +"@react-native-community/cli-hermes@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.2.tgz#980aa8895129dac51a68e25b1390219ff4e0875c" + integrity sha512-NEjyoUwlz/gsOmFkXYVm7glpc8tiJEPqNNRQhZzeTybcI9CSaBXcPpPj9ubuGwM3rzx+4hnwZGULrn1CQUYOfg== dependencies: - "@react-native-community/cli-platform-android" "13.6.1" - "@react-native-community/cli-tools" "13.6.1" + "@react-native-community/cli-platform-android" "13.6.2" + "@react-native-community/cli-tools" "13.6.2" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" -"@react-native-community/cli-platform-android@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.1.tgz#7ddac2b257425de54ea62b6e215c06a9bfc77e53" - integrity sha512-HkrV8kCbHUdWH2LMEeSsuvl0ULI+JLmBZ2eQNEyyYOT8h+tM90OwaPLRpBFtD+yvp2/DpIKo97yCVJT5cLjBzA== +"@react-native-community/cli-platform-android@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.2.tgz#b4bcf4e1af5a9633d49f9c735e33667d65ece32c" + integrity sha512-PYECUZACr25XDRngPtCfHLeiKBz+bV/P4xmLuUJHoS/8AjX8DTepi4dANVQ5kBsHueHayNYi7cLUG6Wuv/nf3Q== dependencies: - "@react-native-community/cli-tools" "13.6.1" + "@react-native-community/cli-tools" "13.6.2" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" fast-xml-parser "^4.2.4" logkitty "^0.7.1" -"@react-native-community/cli-platform-apple@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.1.tgz#cd0d393e8328f439f453bf90fcfec48b350e2f3a" - integrity sha512-yv4iPewUwhy3uGg4uJwA03wSV/1bnEnAJNs7CQ0zl7DQZhqrhfJLhzPURtu34sMUN+Wt6S3KaBmny5kHRKTuwA== +"@react-native-community/cli-platform-apple@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.2.tgz#b7e53451c50ad3ac2e14352194281480f6b9d0ca" + integrity sha512-rzYNoo3f2hf6XksUCD2fC3DMchD01bXTekmsUscuB2UX6dIF0cDpn1mUYlOt4G2sppHNQTh8LIKsRd581k9H0g== dependencies: - "@react-native-community/cli-tools" "13.6.1" + "@react-native-community/cli-tools" "13.6.2" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" fast-xml-parser "^4.0.12" ora "^5.4.1" -"@react-native-community/cli-platform-ios@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.1.tgz#fa3e3a6494a09538f369709a376f7d6d5c7f5ae5" - integrity sha512-JwXV9qMpqJWduoEcK3pbAjkOaTqg+o0IzZz/LP7EkFCfJyg5hnDRAUZhP5ffs5/zukZIGHHPY1ZEW8jl5T2j6Q== +"@react-native-community/cli-platform-ios@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.2.tgz#90ba76abb4cd5518495f25de13d4062dffb28eaa" + integrity sha512-DSL0HISKYTtyr9M2wdMQT89ZCWGfi7UbKYMXY7/B+PEcOXEUuOwcANqfNsO0nHLX9TGpoYYI9djk9YIsDDGqZQ== dependencies: - "@react-native-community/cli-platform-apple" "13.6.1" + "@react-native-community/cli-platform-apple" "13.6.2" -"@react-native-community/cli-server-api@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.1.tgz#6be357c07339856620b0881f000bfcf72f3af68c" - integrity sha512-64eC7NuCLenYr237LyJ1H6jf+6L4NA2eXuy+634q0CeIZsAqOe7B5VCJyy2CsWWaeeUbAsC0Oy9/2o2y8/muIw== +"@react-native-community/cli-server-api@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.2.tgz#27ba135d90435c5af2af6c951b54acea61412e33" + integrity sha512-RKFx1s4vo+lLVQ7afiryCBfebLjvxF1HygcTchtWk0ttZQuT62/aMAf/LTxyHfBUNcqrYr+DAfD/Sd7VAfDO6Q== dependencies: - "@react-native-community/cli-debugger-ui" "13.6.1" - "@react-native-community/cli-tools" "13.6.1" + "@react-native-community/cli-debugger-ui" "13.6.2" + "@react-native-community/cli-tools" "13.6.2" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" @@ -2492,10 +2492,10 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.1.tgz#f453a3e8ef13d114c05d77dafe411bc2a82f0279" - integrity sha512-mRJmI5c/Mfi/pESUPjqElv8+t81qfi0pUr1UrIX38nS1o5Ki1D8vC9vAMkPbLaIu2RuhUuzSCfs6zW8AwakUoA== +"@react-native-community/cli-tools@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.2.tgz#dec0351c381e33157b80aa59c842c465e0102476" + integrity sha512-wOU6Us3un3chrbkDzaREF/fGysVe8fJYwB8YJXUy+HfMDS9bpxHoxp9C7IXt3QmI/OZdKrEJSgauFYSpkYnKkQ== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -2509,26 +2509,26 @@ shell-quote "^1.7.3" sudo-prompt "^9.0.0" -"@react-native-community/cli-types@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.1.tgz#565e3dec401c86e5abb436f70b3f491d0e8cb919" - integrity sha512-+ue0eaEnGTKsTpX7F/DVspGDVZz7OgN7uaanaGKJuG9+pJiIgVIXnVu546Ycq8XbWAbZuWR1PL4+SNbf6Ebqqw== +"@react-native-community/cli-types@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.2.tgz#0ef977d5f032500a8f671da9683592871c0dc74a" + integrity sha512-kxbFqTW9+xOhzLZyl+zV6KW5vmHPKoYg3LPrt9sLv7/EqyTk/30PZeI8QlHjboj8r28idOrcCxR1raaSV2qkAA== dependencies: joi "^17.2.1" -"@react-native-community/cli@13.6.1": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.1.tgz#38a250422f172559bdbaa8f6f70a75a1cb9a14d2" - integrity sha512-Q3eA7xw42o8NAkztJvjVZT9WWxtRDnYYoRkv8IEIi9m2ya3p/4ZJBNlsQO6kDjasQTERkAoGQc1CveEHEv2QsA== - dependencies: - "@react-native-community/cli-clean" "13.6.1" - "@react-native-community/cli-config" "13.6.1" - "@react-native-community/cli-debugger-ui" "13.6.1" - "@react-native-community/cli-doctor" "13.6.1" - "@react-native-community/cli-hermes" "13.6.1" - "@react-native-community/cli-server-api" "13.6.1" - "@react-native-community/cli-tools" "13.6.1" - "@react-native-community/cli-types" "13.6.1" +"@react-native-community/cli@13.6.2": + version "13.6.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.2.tgz#3a44aa38a87a35f3b5933d8bad8e08e939405fd4" + integrity sha512-ghOJ4WqKb4+Q4Yqk2YagZVZGP2UbCsIB5fPaYUKp5Cc1ExoS517LmizZNKbBQJKSFz1Zu09lRHFTd7r6Ex32HA== + dependencies: + "@react-native-community/cli-clean" "13.6.2" + "@react-native-community/cli-config" "13.6.2" + "@react-native-community/cli-debugger-ui" "13.6.2" + "@react-native-community/cli-doctor" "13.6.2" + "@react-native-community/cli-hermes" "13.6.2" + "@react-native-community/cli-server-api" "13.6.2" + "@react-native-community/cli-tools" "13.6.2" + "@react-native-community/cli-types" "13.6.2" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" From 8830ed6bba2dc7a36d722cc3c7f3a15fed204ab9 Mon Sep 17 00:00:00 2001 From: Joe Vilches Date: Tue, 12 Mar 2024 11:08:43 -0700 Subject: [PATCH 045/223] Fix bug where absolute nodes were not insetted correctly in certain cases (#43417) Summary: X-link: https://github.com/facebook/yoga/pull/1593 Pull Request resolved: https://github.com/facebook/react-native/pull/43417 There was a bug where we did not position absolute nodes correctly if the static node had a different main/cross axis from the containing node. This fixes that. The change is somewhat complicated unfortunately but I tried to add sufficient comments to explain what is happening Reviewed By: NickGerleman Differential Revision: D54703955 fbshipit-source-id: 096c643f61d4f9bb3ee6278d675ebd69b57350d7 --- .../yoga/yoga/algorithm/AbsoluteLayout.cpp | 104 +++++++++++------- .../yoga/yoga/algorithm/CalculateLayout.cpp | 39 ++++--- 2 files changed, 83 insertions(+), 60 deletions(-) diff --git a/packages/react-native/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp b/packages/react-native/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp index ccec8f187623ea..32a13c9d430664 100644 --- a/packages/react-native/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +++ b/packages/react-native/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp @@ -480,14 +480,10 @@ void layoutAbsoluteDescendants( LayoutData& layoutMarkerData, uint32_t currentDepth, uint32_t generationCount, - float currentNodeMainOffsetFromContainingBlock, - float currentNodeCrossOffsetFromContainingBlock, + float currentNodeLeftOffsetFromContainingBlock, + float currentNodeTopOffsetFromContainingBlock, float containingNodeAvailableInnerWidth, float containingNodeAvailableInnerHeight) { - const FlexDirection mainAxis = resolveDirection( - currentNode->style().flexDirection(), currentNodeDirection); - const FlexDirection crossAxis = - resolveCrossDirection(mainAxis, currentNodeDirection); for (auto child : currentNode->getChildren()) { if (child->style().display() == Display::None) { continue; @@ -516,45 +512,73 @@ void layoutAbsoluteDescendants( currentDepth, generationCount); - const bool isMainAxisRow = isRow(mainAxis); - const bool mainInsetsDefined = isMainAxisRow - ? child->style().horizontalInsetsDefined() - : child->style().verticalInsetsDefined(); - const bool crossInsetsDefined = isMainAxisRow - ? child->style().verticalInsetsDefined() - : child->style().horizontalInsetsDefined(); - - const float childMainOffsetFromParent = mainInsetsDefined - ? (child->getLayout().position(flexStartEdge(mainAxis)) - - currentNodeMainOffsetFromContainingBlock) - : child->getLayout().position(flexStartEdge(mainAxis)); - const float childCrossOffsetFromParent = crossInsetsDefined - ? (child->getLayout().position(flexStartEdge(crossAxis)) - - currentNodeCrossOffsetFromContainingBlock) - : child->getLayout().position(flexStartEdge(crossAxis)); - - child->setLayoutPosition( - childMainOffsetFromParent, flexStartEdge(mainAxis)); - child->setLayoutPosition( - childCrossOffsetFromParent, flexStartEdge(crossAxis)); - - if (needsTrailingPosition(mainAxis)) { - setChildTrailingPosition(currentNode, child, mainAxis); + /* + * At this point the child has its position set but only on its the + * parent's flexStart edge. Additionally, this position should be + * interpreted relative to the containing block of the child if it had + * insets defined. So we need to adjust the position by subtracting the + * the parents offset from the containing block. However, getting that + * offset is complicated since the two nodes can have different main/cross + * axes. + */ + const FlexDirection parentMainAxis = resolveDirection( + currentNode->style().flexDirection(), currentNodeDirection); + const FlexDirection parentCrossAxis = + resolveCrossDirection(parentMainAxis, currentNodeDirection); + + if (needsTrailingPosition(parentMainAxis)) { + const bool mainInsetsDefined = isRow(parentMainAxis) + ? child->style().horizontalInsetsDefined() + : child->style().verticalInsetsDefined(); + setChildTrailingPosition( + mainInsetsDefined ? containingNode : currentNode, + child, + parentMainAxis); } - if (needsTrailingPosition(crossAxis)) { - setChildTrailingPosition(currentNode, child, crossAxis); + if (needsTrailingPosition(parentCrossAxis)) { + const bool crossInsetsDefined = isRow(parentCrossAxis) + ? child->style().horizontalInsetsDefined() + : child->style().verticalInsetsDefined(); + setChildTrailingPosition( + crossInsetsDefined ? containingNode : currentNode, + child, + parentCrossAxis); } + + /* + * At this point we know the left and top physical edges of the child are + * set with positions that are relative to the containing block if insets + * are defined + */ + const float childLeftPosition = + child->getLayout().position(PhysicalEdge::Left); + const float childTopPosition = + child->getLayout().position(PhysicalEdge::Top); + + const float childLeftOffsetFromParent = + child->style().horizontalInsetsDefined() + ? (childLeftPosition - currentNodeLeftOffsetFromContainingBlock) + : childLeftPosition; + const float childTopOffsetFromParent = + child->style().verticalInsetsDefined() + ? (childTopPosition - currentNodeTopOffsetFromContainingBlock) + : childTopPosition; + + child->setLayoutPosition(childLeftOffsetFromParent, PhysicalEdge::Left); + child->setLayoutPosition(childTopOffsetFromParent, PhysicalEdge::Top); } else if ( child->style().positionType() == PositionType::Static && !child->alwaysFormsContainingBlock()) { const Direction childDirection = child->resolveDirection(currentNodeDirection); - const float childMainOffsetFromContainingBlock = - currentNodeMainOffsetFromContainingBlock + - child->getLayout().position(flexStartEdge(mainAxis)); - const float childCrossOffsetFromContainingBlock = - currentNodeCrossOffsetFromContainingBlock + - child->getLayout().position(flexStartEdge(crossAxis)); + // By now all descendants of the containing block that are not absolute + // will have their positions set for left and top. + const float childLeftOffsetFromContainingBlock = + currentNodeLeftOffsetFromContainingBlock + + child->getLayout().position(PhysicalEdge::Left); + const float childTopOffsetFromContainingBlock = + currentNodeTopOffsetFromContainingBlock + + child->getLayout().position(PhysicalEdge::Top); layoutAbsoluteDescendants( containingNode, @@ -564,8 +588,8 @@ void layoutAbsoluteDescendants( layoutMarkerData, currentDepth + 1, generationCount, - childMainOffsetFromContainingBlock, - childCrossOffsetFromContainingBlock, + childLeftOffsetFromContainingBlock, + childTopOffsetFromContainingBlock, containingNodeAvailableInnerWidth, containingNodeAvailableInnerHeight); } diff --git a/packages/react-native/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp b/packages/react-native/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp index 9b214cf587ff6d..e04111f110c1af 100644 --- a/packages/react-native/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +++ b/packages/react-native/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp @@ -2045,26 +2045,7 @@ static void calculateLayoutImpl( } if (performLayout) { - // STEP 10: SIZING AND POSITIONING ABSOLUTE CHILDREN - // Let the containing block layout its absolute descendants. By definition - // the containing block will not be static unless we are at the root. - if (node->style().positionType() != PositionType::Static || - node->alwaysFormsContainingBlock() || depth == 1) { - layoutAbsoluteDescendants( - node, - node, - isMainAxisRow ? sizingModeMainDim : sizingModeCrossDim, - direction, - layoutMarkerData, - depth, - generationCount, - 0.0f, - 0.0f, - availableInnerWidth, - availableInnerHeight); - } - - // STEP 11: SETTING TRAILING POSITIONS FOR CHILDREN + // STEP 10: SETTING TRAILING POSITIONS FOR CHILDREN const bool needsMainTrailingPos = needsTrailingPosition(mainAxis); const bool needsCrossTrailingPos = needsTrailingPosition(crossAxis); @@ -2087,6 +2068,24 @@ static void calculateLayoutImpl( } } } + + // STEP 11: SIZING AND POSITIONING ABSOLUTE CHILDREN + // Let the containing block layout its absolute descendants. + if (node->style().positionType() != PositionType::Static || + node->alwaysFormsContainingBlock() || depth == 1) { + layoutAbsoluteDescendants( + node, + node, + isMainAxisRow ? sizingModeMainDim : sizingModeCrossDim, + direction, + layoutMarkerData, + depth, + generationCount, + 0.0f, + 0.0f, + availableInnerWidth, + availableInnerHeight); + } } } From aa0670b0ae0b9838f6ed13c0f231eec76334fe67 Mon Sep 17 00:00:00 2001 From: zhongwuzw Date: Fri, 15 Mar 2024 06:15:44 -0700 Subject: [PATCH 046/223] iOS: Change image source url encode ascii to utf8 (#43502) Summary: We should use utf8 to cover more characters. ## Changelog: [IOS] [FIXED] - [Fabric] iOS: Change image source url encode ascii to utf8 Pull Request resolved: https://github.com/facebook/react-native/pull/43502 Test Plan: Fixes https://github.com/facebook/react-native/issues/43462 Reviewed By: rshest Differential Revision: D54944653 Pulled By: cortinico fbshipit-source-id: 0bbd3d46c8e5c04ceffe7e0ebae46dc2ce9507df --- .../renderer/imagemanager/RCTImagePrimitivesConversions.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h b/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h index 0aa6a75b92e0ba..6d63cdad1e6da7 100644 --- a/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h @@ -48,10 +48,10 @@ inline static NSURL *NSURLFromImageSource(const facebook::react::ImageSource &im { // `NSURL` has a history of crashing with bad input, so let's be safe. @try { - NSString *urlString = [NSString stringWithCString:imageSource.uri.c_str() encoding:NSASCIIStringEncoding]; + NSString *urlString = [NSString stringWithUTF8String:imageSource.uri.c_str()]; if (!imageSource.bundle.empty()) { - NSString *bundle = [NSString stringWithCString:imageSource.bundle.c_str() encoding:NSASCIIStringEncoding]; + NSString *bundle = [NSString stringWithUTF8String:imageSource.bundle.c_str()]; urlString = [NSString stringWithFormat:@"%@.bundle/%@", bundle, urlString]; } From 407be885fa5d120453e71bd5bd156bb558344e86 Mon Sep 17 00:00:00 2001 From: Dmitry Rykun Date: Thu, 14 Mar 2024 11:10:54 -0700 Subject: [PATCH 047/223] Bring back the UNSET constant to TextAttributeProps (#43491) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43491 This diff brings back the `UNSET` constant to `TextAttributeProps`. The removal of this constant was an unnecessary breaking change, that has broken several third-party libraries. Changelog: [Android][Fixed] - Bring back the UNSET constant to TextAttributeProps. Reviewed By: fabriziocucci Differential Revision: D54899524 fbshipit-source-id: 368bde77d43f310fd458537d0191d09174fa5167 --- packages/react-native/ReactAndroid/api/ReactAndroid.api | 1 + .../java/com/facebook/react/views/text/TextAttributeProps.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 419dd741ffd6f9..0bab103b9443fa 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -7044,6 +7044,7 @@ public class com/facebook/react/views/text/TextAttributeProps : com/facebook/rea public static final field TA_KEY_TEXT_SHADOW_OFFSET_DY S public static final field TA_KEY_TEXT_SHADOW_RADIUS S public static final field TA_KEY_TEXT_TRANSFORM S + public static final field UNSET I protected field mAccessibilityRole Lcom/facebook/react/uimanager/ReactAccessibilityDelegate$AccessibilityRole; protected field mAllowFontScaling Z protected field mBackgroundColor I diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java index 25791e00679b34..202734f3795984 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java @@ -62,6 +62,8 @@ public class TextAttributeProps implements EffectiveTextAttributeProvider { public static final short TA_KEY_ROLE = 26; public static final short TA_KEY_TEXT_TRANSFORM = 27; + public static final int UNSET = -1; + private static final String PROP_SHADOW_OFFSET = "textShadowOffset"; private static final String PROP_SHADOW_OFFSET_WIDTH = "width"; private static final String PROP_SHADOW_OFFSET_HEIGHT = "height"; From 0f4aedfe82f3b394965602251c827921c3f3320b Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Wed, 13 Mar 2024 10:55:36 -0700 Subject: [PATCH 048/223] Properly handle RR and CMD+M in Bridgeless Mode (#43460) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43460 Currently pressing the menu button (or CMD+M) is broken on Bridgeless mode. Also pressing RR is not reloading the App. That's because some Bridgeless API haven't been reimplemented correctly on Android. I'm fixing them here. Fixes #43451 Changelog: [Android] [Fixed] - Properly handle RR and CMD+M in Bridgeless Mode Reviewed By: huntie Differential Revision: D54852959 fbshipit-source-id: 8fbbdab6818da9177e6db40e45d35258c7f5e236 --- .../com/facebook/react/ReactDelegate.java | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index 1f89ceee0f6a58..a8c5247e239207 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -16,6 +16,7 @@ import com.facebook.infer.annotation.Assertions; import com.facebook.react.config.ReactFeatureFlags; import com.facebook.react.devsupport.DoubleTapReloadRecognizer; +import com.facebook.react.devsupport.interfaces.DevSupportManager; import com.facebook.react.interfaces.fabric.ReactSurface; import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler; @@ -195,22 +196,28 @@ protected ReactRootView createRootView() { * application. */ public boolean shouldShowDevMenuOrReload(int keyCode, KeyEvent event) { - if (ReactFeatureFlags.enableBridgelessArchitecture) { - // TODO T156475655: Implement shouldShowDevMenuOrReload for Bridgeless - return false; + DevSupportManager devSupportManager = null; + if (ReactFeatureFlags.enableBridgelessArchitecture + && mReactHost != null + && mReactHost.getDevSupportManager() != null) { + devSupportManager = mReactHost.getDevSupportManager(); } else if (getReactNativeHost().hasInstance() && getReactNativeHost().getUseDeveloperSupport()) { - if (keyCode == KeyEvent.KEYCODE_MENU) { - getReactNativeHost().getReactInstanceManager().showDevOptionsDialog(); - return true; - } - boolean didDoubleTapR = - Assertions.assertNotNull(mDoubleTapReloadRecognizer) - .didDoubleTapR(keyCode, mActivity.getCurrentFocus()); - if (didDoubleTapR) { - getReactNativeHost().getReactInstanceManager().getDevSupportManager().handleReloadJS(); - return true; - } + devSupportManager = getReactNativeHost().getReactInstanceManager().getDevSupportManager(); + } else { + return false; + } + + if (keyCode == KeyEvent.KEYCODE_MENU) { + devSupportManager.showDevOptionsDialog(); + return true; + } + boolean didDoubleTapR = + Assertions.assertNotNull(mDoubleTapReloadRecognizer) + .didDoubleTapR(keyCode, mActivity.getCurrentFocus()); + if (didDoubleTapR) { + devSupportManager.handleReloadJS(); + return true; } return false; } From 0e0838448a2dfc873333f58bed45a3b78cc663b7 Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Mon, 11 Mar 2024 03:48:49 -0700 Subject: [PATCH 049/223] fix(dev-middleware): allow inspector proxy to fetch sourcemaps on lan connections (#43307) Summary: The inspector proxy is inlining source maps on `Debugger.scriptParsed` CDP events. The inlining prevents Chrome DevTools from downloading this remotely, as that's not supported in newer versions anymore. The current implementation locks this inlining mechanism to just `localhost` and/or `127.0.0.1` addresses, making it incompatible with LAN or tunnel device connections. This PR removes that limitation to allow source map inlining on these LAN and tunnel connections. ## Changelog: [GENERAL][FIXED] Allow Inspector proxy to inline source maps on LAN connections Pull Request resolved: https://github.com/facebook/react-native/pull/43307 Test Plan: - See added test - Start Metro and connect a device over LAN, open the chrome devtools Reviewed By: huntie Differential Revision: D54485247 Pulled By: robhogan fbshipit-source-id: 6fcb0c6dd762d2f0a013497ba0a1126095b9130b --- packages/dev-middleware/src/inspector-proxy/Device.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/dev-middleware/src/inspector-proxy/Device.js b/packages/dev-middleware/src/inspector-proxy/Device.js index 26befc0b1185c4..455a89fd09f051 100644 --- a/packages/dev-middleware/src/inspector-proxy/Device.js +++ b/packages/dev-middleware/src/inspector-proxy/Device.js @@ -758,10 +758,6 @@ export default class Device { // Fetch text, raising an exception if the text could not be fetched, // or is too large. async #fetchText(url: URL): Promise { - if (!['localhost', '127.0.0.1'].includes(url.hostname)) { - throw new Error('remote fetches not permitted'); - } - // $FlowFixMe[incompatible-call] Suppress arvr node-fetch flow error const response = await fetch(url); if (!response.ok) { From bf7f0d57cc600da7978295bdd63c828be05e82be Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Tue, 12 Mar 2024 09:39:00 -0700 Subject: [PATCH 050/223] feature(dev-middleware): use `userAgent` query parameter as fallback when header is unset (#43364) Summary: At Expo, we use [Expo Tools](https://github.com/expo/vscode-expo/blob/main/src/expoDebuggers.ts) to connect the [built-in vscode-js-debug](https://github.com/microsoft/vscode-js-debug) to Hermes. Since there are a few differences in vscode vs chrome devtools, we need to enable a couple of modifications through the [`customMessageHandler` API](https://github.com/facebook/react-native/pull/43291). Unfortunately, vscode itself doesn't set the `user-agent` header when connecting to the inspector proxy. Becuase of that, we'd need a fallback to "manually" mark the debugger as being vscode ([we use this query parameter here](https://github.com/expo/vscode-expo/blob/main/src/expoDebuggers.ts#L208)). This PR supports setting the `user-agent` through `?userAgent=` when the header is not set. ## Changelog: [GENERAL] [ADDED] - Fallback to query parameter based `user-agent` when header is unset Pull Request resolved: https://github.com/facebook/react-native/pull/43364 Test Plan: - Install [Expo Tools](https://marketplace.visualstudio.com/items?itemName=expo.vscode-expo-tools) - Start Metro with this change. - Connect a device. - Run the vscode command `"Expo: Debug Expo app ..."` - Debugger should connect, and have it's user-agent marked as: `vscode/1.87.0 vscode-expo-tools/1.3.0` Reviewed By: huntie Differential Revision: D54804556 Pulled By: motiz88 fbshipit-source-id: 1ff558ba5350811ad042d08a713438e046759feb --- packages/dev-middleware/src/inspector-proxy/InspectorProxy.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js index 0f4146d5e01884..532bf06c0b457c 100644 --- a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js +++ b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js @@ -258,7 +258,7 @@ export default class InspectorProxy implements InspectorProxyQueries { } device.handleDebuggerConnection(socket, pageId, { - userAgent: req.headers['user-agent'] ?? null, + userAgent: req.headers['user-agent'] ?? query.userAgent ?? null, }); } catch (e) { console.error(e); From 768cf6e79cd0ff3821351eabcadf3da5da7eb2ac Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Tue, 12 Mar 2024 09:58:51 -0700 Subject: [PATCH 051/223] feature(dev-middleware): add custom message handlers to extend CDP capabilities (#43291) Summary: This is a proposal for the `react-native/dev-middleware` package, to allow implementers to extend the CDP capabilities of the `InspectorProxy`. It's unfortunately needed until we can move to the native Hermes CDP layer. At Expo, we extend the CDP capabilities of this `InspectorProxy` by injecting functionality on the device level. This proposed API does the same, but without having to overwrite internal functions of both the `InspectorProxy` and `InspectorDevice`. A good example of this is the network inspector's capabilities. This currently works through the inspection proxy, and roughly like: - Handle any incoming `Expo(Network.receivedResponseBody)` from the _**device**_, store it, and stop event from propagating - Handle the incoming `Network.getResponseBody` from the _**debugger**_, return the data, and stop event from propagating. This API brings back that capability in a more structured way. ## API: ```ts import { createDevMiddleware } from 'react-native/dev-middleware'; const { middleware, websocketEndpoints } = createDevMiddleware({ unstable_customInspectorMessageHandler: ({ page, deviceInfo, debuggerInfo }) => { // Do not enable handler for page other than "SOMETHING", or for vscode debugging // Can also include `page.capabilities` to determine if handler is required if (page.title !== 'SOMETHING' || debuggerInfo.userAgent?.includes('vscode')) { return null; } return { handleDeviceMessage(message) { if (message.type === 'CDP_MESSAGE') { // Do something and stop message from propagating with return `true` return true; } }, handleDebuggerMessage(message) { if (message.type === 'CDP_MESSAGE') { // Do something and stop message from propagating with return `true` return true; } }, }; }, }); ``` ## Changelog: [GENERAL] [ADDED] - Add inspector proxy device message middleware API Pull Request resolved: https://github.com/facebook/react-native/pull/43291 Test Plan: See added tests and code above Reviewed By: huntie Differential Revision: D54804503 Pulled By: motiz88 fbshipit-source-id: ae918dcd5b7e76d3fb31db4c84717567ae60fa96 --- ...InspectorProxyCustomMessageHandler-test.js | 310 ++++++++++++++++++ .../dev-middleware/src/createDevMiddleware.js | 12 +- packages/dev-middleware/src/index.flow.js | 8 +- .../inspector-proxy/CustomMessageHandler.js | 54 +++ .../src/inspector-proxy/Device.js | 89 ++++- .../src/inspector-proxy/InspectorProxy.js | 7 + 6 files changed, 466 insertions(+), 14 deletions(-) create mode 100644 packages/dev-middleware/src/__tests__/InspectorProxyCustomMessageHandler-test.js create mode 100644 packages/dev-middleware/src/inspector-proxy/CustomMessageHandler.js diff --git a/packages/dev-middleware/src/__tests__/InspectorProxyCustomMessageHandler-test.js b/packages/dev-middleware/src/__tests__/InspectorProxyCustomMessageHandler-test.js new file mode 100644 index 00000000000000..5f3f8b7798d875 --- /dev/null +++ b/packages/dev-middleware/src/__tests__/InspectorProxyCustomMessageHandler-test.js @@ -0,0 +1,310 @@ +/** + * 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 {createAndConnectTarget} from './InspectorProtocolUtils'; +import {withAbortSignalForEachTest} from './ResourceUtils'; +import {baseUrlForServer, createServer} from './ServerUtils'; +import until from 'wait-for-expect'; + +// WebSocket is unreliable when using fake timers. +jest.useRealTimers(); + +jest.setTimeout(10000); + +describe('inspector proxy device message middleware', () => { + const autoCleanup = withAbortSignalForEachTest(); + const page = { + id: 'page1', + app: 'bar-app', + title: 'bar-title', + vm: 'bar-vm', + }; + + afterEach(() => { + jest.clearAllMocks(); + }); + + test('middleware is created with device, debugger, and page information', async () => { + const createCustomMessageHandler = jest.fn().mockImplementation(() => null); + const {server} = await createServer({ + logger: undefined, + projectRoot: '', + unstable_customInspectorMessageHandler: createCustomMessageHandler, + }); + + let device, debugger_; + try { + ({device, debugger_} = await createAndConnectTarget( + serverRefUrls(server), + autoCleanup.signal, + page, + )); + + // Ensure the middleware was created with the device information + await until(() => + expect(createCustomMessageHandler).toBeCalledWith( + expect.objectContaining({ + page: expect.objectContaining({ + ...page, + capabilities: expect.any(Object), + }), + device: expect.objectContaining({ + appId: expect.any(String), + id: expect.any(String), + name: expect.any(String), + sendMessage: expect.any(Function), + }), + debugger: expect.objectContaining({ + userAgent: null, + sendMessage: expect.any(Function), + }), + }), + ), + ); + } finally { + device?.close(); + debugger_?.close(); + await closeServer(server); + } + }); + + test('send message functions are passing messages to sockets', async () => { + const handleDebuggerMessage = jest.fn(); + const handleDeviceMessage = jest.fn(); + const createCustomMessageHandler = jest.fn().mockImplementation(() => ({ + handleDebuggerMessage, + handleDeviceMessage, + })); + + const {server} = await createServer({ + logger: undefined, + projectRoot: '', + unstable_customInspectorMessageHandler: createCustomMessageHandler, + }); + + let device, debugger_; + try { + ({device, debugger_} = await createAndConnectTarget( + serverRefUrls(server), + autoCleanup.signal, + page, + )); + + // Ensure the middleware was created with the send message methods + await until(() => + expect(createCustomMessageHandler).toBeCalledWith( + expect.objectContaining({ + device: expect.objectContaining({ + sendMessage: expect.any(Function), + }), + debugger: expect.objectContaining({ + sendMessage: expect.any(Function), + }), + }), + ), + ); + + // Send a message to the device + createCustomMessageHandler.mock.calls[0][0].device.sendMessage({ + id: 1, + }); + // Ensure the device received the message + await until(() => + expect(device.wrappedEvent).toBeCalledWith({ + event: 'wrappedEvent', + payload: { + pageId: page.id, + wrappedEvent: JSON.stringify({id: 1}), + }, + }), + ); + + // Send a message to the debugger + createCustomMessageHandler.mock.calls[0][0].debugger.sendMessage({ + id: 2, + }); + // Ensure the debugger received the message + await until(() => + expect(debugger_.handle).toBeCalledWith({ + id: 2, + }), + ); + } finally { + device?.close(); + debugger_?.close(); + await closeServer(server); + } + }); + + test('device message is passed to message middleware', async () => { + const handleDeviceMessage = jest.fn(); + const {server} = await createServer({ + logger: undefined, + projectRoot: '', + unstable_customInspectorMessageHandler: () => ({ + handleDeviceMessage, + handleDebuggerMessage() {}, + }), + }); + + let device, debugger_; + try { + ({device, debugger_} = await createAndConnectTarget( + serverRefUrls(server), + autoCleanup.signal, + page, + )); + + // Send a message from the device, and ensure the middleware received it + device.sendWrappedEvent(page.id, {id: 1337}); + + // Ensure the debugger received the message + await until(() => expect(debugger_.handle).toBeCalledWith({id: 1337})); + // Ensure the middleware received the message + await until(() => expect(handleDeviceMessage).toBeCalled()); + } finally { + device?.close(); + debugger_?.close(); + await closeServer(server); + } + }); + + test('device message stops propagating when handled by middleware', async () => { + const handleDeviceMessage = jest.fn(); + const {server} = await createServer({ + logger: undefined, + projectRoot: '', + unstable_customInspectorMessageHandler: () => ({ + handleDeviceMessage, + handleDebuggerMessage() {}, + }), + }); + + let device, debugger_; + try { + ({device, debugger_} = await createAndConnectTarget( + serverRefUrls(server), + autoCleanup.signal, + page, + )); + + // Stop the first message from propagating by returning true (once) from middleware + handleDeviceMessage.mockReturnValueOnce(true); + + // Send the first message which should NOT be received by the debugger + device.sendWrappedEvent(page.id, {id: -1}); + await until(() => expect(handleDeviceMessage).toBeCalled()); + + // Send the second message which should be received by the debugger + device.sendWrappedEvent(page.id, {id: 1337}); + + // Ensure only the last message was received by the debugger + await until(() => expect(debugger_.handle).toBeCalledWith({id: 1337})); + // Ensure the first message was not received by the debugger + expect(debugger_.handle).not.toBeCalledWith({id: -1}); + } finally { + device?.close(); + debugger_?.close(); + await closeServer(server); + } + }); + + test('debugger message is passed to message middleware', async () => { + const handleDebuggerMessage = jest.fn(); + const {server} = await createServer({ + logger: undefined, + projectRoot: '', + unstable_customInspectorMessageHandler: () => ({ + handleDeviceMessage() {}, + handleDebuggerMessage, + }), + }); + + let device, debugger_; + try { + ({device, debugger_} = await createAndConnectTarget( + serverRefUrls(server), + autoCleanup.signal, + page, + )); + + // Send a message from the debugger + const message = { + method: 'Runtime.enable', + id: 1337, + }; + debugger_.send(message); + + // Ensure the device received the message + await until(() => expect(device.wrappedEvent).toBeCalled()); + // Ensure the middleware received the message + await until(() => expect(handleDebuggerMessage).toBeCalledWith(message)); + } finally { + device?.close(); + debugger_?.close(); + await closeServer(server); + } + }); + + test('debugger message stops propagating when handled by middleware', async () => { + const handleDebuggerMessage = jest.fn(); + const {server} = await createServer({ + logger: undefined, + projectRoot: '', + unstable_customInspectorMessageHandler: () => ({ + handleDeviceMessage() {}, + handleDebuggerMessage, + }), + }); + + let device, debugger_; + try { + ({device, debugger_} = await createAndConnectTarget( + serverRefUrls(server), + autoCleanup.signal, + page, + )); + + // Stop the first message from propagating by returning true (once) from middleware + handleDebuggerMessage.mockReturnValueOnce(true); + + // Send the first emssage which should not be received by the device + debugger_.send({id: -1}); + // Send the second message which should be received by the device + debugger_.send({id: 1337}); + + // Ensure only the last message was received by the device + await until(() => + expect(device.wrappedEvent).toBeCalledWith({ + event: 'wrappedEvent', + payload: {pageId: page.id, wrappedEvent: JSON.stringify({id: 1337})}, + }), + ); + // Ensure the first message was not received by the device + expect(device.wrappedEvent).not.toBeCalledWith({id: -1}); + } finally { + device?.close(); + debugger_?.close(); + await closeServer(server); + } + }); +}); + +function serverRefUrls(server: http$Server | https$Server) { + return { + serverBaseUrl: baseUrlForServer(server, 'http'), + serverBaseWsUrl: baseUrlForServer(server, 'ws'), + }; +} + +async function closeServer(server: http$Server | https$Server): Promise { + return new Promise(resolve => server.close(() => resolve())); +} diff --git a/packages/dev-middleware/src/createDevMiddleware.js b/packages/dev-middleware/src/createDevMiddleware.js index e6c9dc1f7d93e2..8766811b8885ba 100644 --- a/packages/dev-middleware/src/createDevMiddleware.js +++ b/packages/dev-middleware/src/createDevMiddleware.js @@ -9,6 +9,7 @@ * @oncall react_native */ +import type {CreateCustomMessageHandlerFn} from './inspector-proxy/CustomMessageHandler'; import type {BrowserLauncher} from './types/BrowserLauncher'; import type {EventReporter} from './types/EventReporter'; import type {Experiments, ExperimentsConfig} from './types/Experiments'; @@ -61,11 +62,12 @@ type Options = $ReadOnly<{ unstable_experiments?: ExperimentsConfig, /** - * An interface for using a modified inspector proxy implementation. + * Create custom handler to add support for unsupported CDP events, or debuggers. + * This handler is instantiated per logical device and debugger pair. * * This is an unstable API with no semver guarantees. */ - unstable_InspectorProxy?: Class, + unstable_customInspectorMessageHandler?: CreateCustomMessageHandlerFn, }>; type DevMiddlewareAPI = $ReadOnly<{ @@ -80,16 +82,16 @@ export default function createDevMiddleware({ unstable_browserLauncher = DefaultBrowserLauncher, unstable_eventReporter, unstable_experiments: experimentConfig = {}, - unstable_InspectorProxy, + unstable_customInspectorMessageHandler, }: Options): DevMiddlewareAPI { const experiments = getExperiments(experimentConfig); - const InspectorProxyClass = unstable_InspectorProxy ?? InspectorProxy; - const inspectorProxy = new InspectorProxyClass( + const inspectorProxy = new InspectorProxy( projectRoot, serverBaseUrl, unstable_eventReporter, experiments, + unstable_customInspectorMessageHandler, ); const middleware = connect() diff --git a/packages/dev-middleware/src/index.flow.js b/packages/dev-middleware/src/index.flow.js index c662838fea10ce..7afbbdbd8894b3 100644 --- a/packages/dev-middleware/src/index.flow.js +++ b/packages/dev-middleware/src/index.flow.js @@ -13,6 +13,8 @@ export {default as createDevMiddleware} from './createDevMiddleware'; export type {BrowserLauncher, LaunchedBrowser} from './types/BrowserLauncher'; export type {EventReporter, ReportableEvent} from './types/EventReporter'; - -export {default as unstable_InspectorProxy} from './inspector-proxy/InspectorProxy'; -export {default as unstable_Device} from './inspector-proxy/Device'; +export type { + CustomMessageHandler, + CustomMessageHandlerConnection, + CreateCustomMessageHandlerFn, +} from './inspector-proxy/CustomMessageHandler'; diff --git a/packages/dev-middleware/src/inspector-proxy/CustomMessageHandler.js b/packages/dev-middleware/src/inspector-proxy/CustomMessageHandler.js new file mode 100644 index 00000000000000..1c3dd473b7c118 --- /dev/null +++ b/packages/dev-middleware/src/inspector-proxy/CustomMessageHandler.js @@ -0,0 +1,54 @@ +/** + * 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 type {JSONSerializable, Page} from './types'; + +type ExposedDevice = $ReadOnly<{ + appId: string, + id: string, + name: string, + sendMessage: (message: JSONSerializable) => void, +}>; + +type ExposedDebugger = $ReadOnly<{ + userAgent: string | null, + sendMessage: (message: JSONSerializable) => void, +}>; + +export type CustomMessageHandlerConnection = $ReadOnly<{ + page: Page, + device: ExposedDevice, + debugger: ExposedDebugger, +}>; + +export type CreateCustomMessageHandlerFn = ( + connection: CustomMessageHandlerConnection, +) => ?CustomMessageHandler; + +/** + * The device message middleware allows implementers to handle unsupported CDP messages. + * It is instantiated per device and may contain state that is specific to that device. + * The middleware can also mark messages from the device or debugger as handled, which stops propagating. + */ +export interface CustomMessageHandler { + /** + * Handle a CDP message coming from the device. + * This is invoked before the message is sent to the debugger. + * When returning true, the message is considered handled and will not be sent to the debugger. + */ + handleDeviceMessage(message: JSONSerializable): true | void; + + /** + * Handle a CDP message coming from the debugger. + * This is invoked before the message is sent to the device. + * When returning true, the message is considered handled and will not be sent to the device. + */ + handleDebuggerMessage(message: JSONSerializable): true | void; +} diff --git a/packages/dev-middleware/src/inspector-proxy/Device.js b/packages/dev-middleware/src/inspector-proxy/Device.js index 455a89fd09f051..a7c4450c593da3 100644 --- a/packages/dev-middleware/src/inspector-proxy/Device.js +++ b/packages/dev-middleware/src/inspector-proxy/Device.js @@ -16,6 +16,10 @@ import type { CDPResponse, CDPServerMessage, } from './cdp-types/messages'; +import type { + CreateCustomMessageHandlerFn, + CustomMessageHandler, +} from './CustomMessageHandler'; import type { MessageFromDevice, MessageToDevice, @@ -51,6 +55,11 @@ type DebuggerInfo = { userAgent: string | null, }; +type DebuggerConnection = { + ...DebuggerInfo, + customHandler: ?CustomMessageHandler, +}; + const REACT_NATIVE_RELOADABLE_PAGE_ID = '-1'; /** @@ -74,7 +83,7 @@ export default class Device { #pages: $ReadOnlyMap; // Stores information about currently connected debugger (if any). - #debuggerConnection: ?DebuggerInfo = null; + #debuggerConnection: ?DebuggerConnection = null; // Last known Page ID of the React Native page. // This is used by debugger connections that don't have PageID specified @@ -97,6 +106,9 @@ export default class Device { #pagesPollingIntervalId: ReturnType; + // The device message middleware factory function allowing implementers to handle unsupported CDP messages. + #createCustomMessageHandler: ?CreateCustomMessageHandlerFn; + constructor( id: string, name: string, @@ -104,6 +116,7 @@ export default class Device { socket: WS, projectRoot: string, eventReporter: ?EventReporter, + createMessageMiddleware: ?CreateCustomMessageHandlerFn, ) { this.#id = id; this.#name = name; @@ -118,6 +131,7 @@ export default class Device { appId: app, }) : null; + this.#createCustomMessageHandler = createMessageMiddleware; // $FlowFixMe[incompatible-call] this.#deviceSocket.on('message', (message: string) => { @@ -205,6 +219,7 @@ export default class Device { prependedFilePrefix: false, pageId, userAgent: metadata.userAgent, + customHandler: null, }; // TODO(moti): Handle null case explicitly, e.g. refuse to connect to @@ -215,6 +230,50 @@ export default class Device { debug(`Got new debugger connection for page ${pageId} of ${this.#name}`); + if (page && this.#debuggerConnection && this.#createCustomMessageHandler) { + this.#debuggerConnection.customHandler = this.#createCustomMessageHandler( + { + page, + debugger: { + userAgent: debuggerInfo.userAgent, + sendMessage: message => { + try { + const payload = JSON.stringify(message); + debug('(Debugger) <- (Proxy) (Device): ' + payload); + socket.send(payload); + } catch {} + }, + }, + device: { + appId: this.#app, + id: this.#id, + name: this.#name, + sendMessage: message => { + try { + const payload = JSON.stringify({ + event: 'wrappedEvent', + payload: { + pageId: this.#mapToDevicePageId(pageId), + wrappedEvent: JSON.stringify(message), + }, + }); + debug('(Debugger) -> (Proxy) (Device): ' + payload); + this.#deviceSocket.send(payload); + } catch {} + }, + }, + }, + ); + + if (this.#debuggerConnection.customHandler) { + debug('Created new custom message handler for debugger connection'); + } else { + debug( + 'Skipping new custom message handler for debugger connection, factory function returned null', + ); + } + } + this.#sendMessageToDevice({ event: 'connect', payload: { @@ -231,6 +290,15 @@ export default class Device { frontendUserAgent: metadata.userAgent, }); let processedReq = debuggerRequest; + + if ( + this.#debuggerConnection?.customHandler?.handleDebuggerMessage( + debuggerRequest, + ) === true + ) { + return; + } + if (!page || !this.#pageHasCapability(page, 'nativeSourceCodeFetching')) { processedReq = this.#interceptClientMessageForSourceFetching( debuggerRequest, @@ -411,12 +479,21 @@ export default class Device { }); } - if (this.#debuggerConnection != null) { + const debuggerConnection = this.#debuggerConnection; + if (debuggerConnection != null) { + if ( + debuggerConnection.customHandler?.handleDeviceMessage( + parsedPayload, + ) === true + ) { + return; + } + // Wrapping just to make flow happy :) // $FlowFixMe[unused-promise] this.#processMessageFromDeviceLegacy( parsedPayload, - this.#debuggerConnection, + debuggerConnection, pageId, ).then(() => { const messageToSend = JSON.stringify(parsedPayload); @@ -499,7 +576,7 @@ export default class Device { // Allows to make changes in incoming message from device. async #processMessageFromDeviceLegacy( payload: CDPServerMessage, - debuggerInfo: DebuggerInfo, + debuggerInfo: DebuggerConnection, pageId: ?string, ) { // TODO(moti): Handle null case explicitly, or ideally associate a copy @@ -616,7 +693,7 @@ export default class Device { */ #interceptClientMessageForSourceFetching( req: CDPClientMessage, - debuggerInfo: DebuggerInfo, + debuggerInfo: DebuggerConnection, socket: WS, ): CDPClientMessage | null { switch (req.method) { @@ -633,7 +710,7 @@ export default class Device { #processDebuggerSetBreakpointByUrl( req: CDPRequest<'Debugger.setBreakpointByUrl'>, - debuggerInfo: DebuggerInfo, + debuggerInfo: DebuggerConnection, ): CDPRequest<'Debugger.setBreakpointByUrl'> { // If we replaced Android emulator's address to localhost we need to change it back. if (debuggerInfo.originalSourceURLAddress != null) { diff --git a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js index 532bf06c0b457c..9b9916dc220d98 100644 --- a/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js +++ b/packages/dev-middleware/src/inspector-proxy/InspectorProxy.js @@ -11,6 +11,7 @@ import type {EventReporter} from '../types/EventReporter'; import type {Experiments} from '../types/Experiments'; +import type {CreateCustomMessageHandlerFn} from './CustomMessageHandler'; import type { JsonPagesListResponse, JsonVersionResponse, @@ -58,17 +59,22 @@ export default class InspectorProxy implements InspectorProxyQueries { #experiments: Experiments; + // custom message handler factory allowing implementers to handle unsupported CDP messages. + #customMessageHandler: ?CreateCustomMessageHandlerFn; + constructor( projectRoot: string, serverBaseUrl: string, eventReporter: ?EventReporter, experiments: Experiments, + customMessageHandler: ?CreateCustomMessageHandlerFn, ) { this.#projectRoot = projectRoot; this.#serverBaseUrl = serverBaseUrl; this.#devices = new Map(); this.#eventReporter = eventReporter; this.#experiments = experiments; + this.#customMessageHandler = customMessageHandler; } getPageDescriptions(): Array { @@ -204,6 +210,7 @@ export default class InspectorProxy implements InspectorProxyQueries { socket, this.#projectRoot, this.#eventReporter, + this.#customMessageHandler, ); if (oldDevice) { From ec48cb65601d15f7f186125c888245dc701ff2ca Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Tue, 5 Mar 2024 09:37:26 -0800 Subject: [PATCH 052/223] Allow the app to control the Activity Indicator in Bridgeless mode (#43195) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43195 Right now, the activity indicator is automatically hidden when the view is ready to be shown in bridgeless mode. There is no way to prevent that the activity indicator is automatically removed. In OSS, we have libraries (e.g.: `react-native-bootsplash`) that will allow the app to control when and how dismiss the splashscreen, but due to the current automatic behavior on Bridgeless, they stopped working. ***Note:** In the previous implementation, they were working because instead of using the `loadingView` property, they were adding the splashscreen view on top of the existing one. However, with the lazy behavior of the bridgeless mode, this is not working anymore because the RCTMountingManager [expect not to have any subview](https://www.internalfb.com/code/fbsource/[6962fa457dbc74ab3a760cf6090d9643c6748781]/xplat/js/react-native-github/packages/react-native/React/Fabric/Mounting/RCTMountingManager.mm?lines=176) when the first surface is mounted.* ## Changelog [iOS][Added] - Allow the activityIndicator to be controlled from JS in bridgeless mode Reviewed By: philIip Differential Revision: D54191856 fbshipit-source-id: 14738032f04adf7eaf7d200d889acd752aed0ed3 --- .../RCTSurfaceHostingView.h | 7 +++++++ .../RCTSurfaceHostingView.mm | 19 +++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h b/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h index 47096221a7df62..3de4c5898c1558 100644 --- a/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h +++ b/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.h @@ -56,6 +56,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, copy, nullable) RCTSurfaceHostingViewActivityIndicatorViewFactory activityIndicatorViewFactory; +/** + * When set to `YES`, the activity indicator is not automatically hidden when the Surface stage changes. + * In this scenario, users should invoke `hideActivityIndicator` to remove it. + * + * @param disabled: if `YES`, the auto-hide is disabled. Otherwise the loading view will be hidden automatically + */ +- (void)disableActivityIndicatorAutoHide:(BOOL)disabled; @end NS_ASSUME_NONNULL_END diff --git a/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm b/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm index 78f991eecfb091..cb4ebeba3f97f4 100644 --- a/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm +++ b/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingView.mm @@ -24,6 +24,7 @@ @implementation RCTSurfaceHostingView { UIView *_Nullable _activityIndicatorView; UIView *_Nullable _surfaceView; RCTSurfaceStage _stage; + BOOL _autoHideDisabled; } RCT_NOT_IMPLEMENTED(-(instancetype)init) @@ -36,6 +37,7 @@ - (instancetype)initWithSurface:(id)surface if (self = [super initWithFrame:CGRectZero]) { _surface = surface; _sizeMeasureMode = sizeMeasureMode; + _autoHideDisabled = NO; _surface.delegate = self; _stage = surface.stage; @@ -124,6 +126,10 @@ - (void)setSizeMeasureMode:(RCTSurfaceSizeMeasureMode)sizeMeasureMode _sizeMeasureMode = sizeMeasureMode; [self _invalidateLayout]; } +- (void)disableActivityIndicatorAutoHide:(BOOL)disabled +{ + _autoHideDisabled = disabled; +} #pragma mark - isActivityIndicatorViewVisible @@ -162,7 +168,16 @@ - (void)setIsSurfaceViewVisible:(BOOL)visible _surfaceView = _surface.view; _surfaceView.frame = self.bounds; _surfaceView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - [self addSubview:_surfaceView]; + if (_activityIndicatorView && _autoHideDisabled) { + // The activity indicator is still showing and the surface is set to + // prevent the auto hide. This means that the application will take care of + // hiding it when it's ready. + // Let's add the surfaceView below the activity indicator so it's ready once + // the activity indicator is hidden. + [self insertSubview:_surfaceView belowSubview:_activityIndicatorView]; + } else { + [self addSubview:_surfaceView]; + } } else { [_surfaceView removeFromSuperview]; _surfaceView = nil; @@ -204,7 +219,7 @@ - (void)_invalidateLayout - (void)_updateViews { self.isSurfaceViewVisible = RCTSurfaceStageIsRunning(_stage); - self.isActivityIndicatorViewVisible = RCTSurfaceStageIsPreparing(_stage); + self.isActivityIndicatorViewVisible = _autoHideDisabled || RCTSurfaceStageIsPreparing(_stage); } - (void)didMoveToWindow From 8a04e4418a055795c43165d689d91753b1deea0b Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Thu, 29 Feb 2024 15:46:43 -0800 Subject: [PATCH 053/223] Add BridgelessCatalystInstance as a placeholder for backwards comptability of legacy APIs of CatalystInstance Summary: In order to make the legacy APIs of Catalyst Instance backwards compatible, introducing a regular class that implements CatalystInstance so as to make these APIs available for folks in Bridgeless mode as well. Changelog: [Internal] internal Reviewed By: RSNara Differential Revision: D54093013 fbshipit-source-id: f494c05e79f570883f9b5374cd177862970304c0 --- .../ReactAndroid/api/ReactAndroid.api | 41 ++++ .../react/bridge/CatalystInstance.java | 2 +- .../react/bridge/CatalystInstanceImpl.java | 3 +- .../react/bridge/JSIModuleRegistry.java | 4 +- .../react/bridge/NativeArrayInterface.java | 2 +- .../runtime/BridgelessCatalystInstance.kt | 200 ++++++++++++++++++ 6 files changed, 247 insertions(+), 5 deletions(-) create mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 0bab103b9443fa..052bc3df4bcfdc 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -950,6 +950,10 @@ public abstract class com/facebook/react/bridge/NativeArray : com/facebook/react public fun toString ()Ljava/lang/String; } +public abstract interface class com/facebook/react/bridge/NativeArrayInterface { + public abstract fun toString ()Ljava/lang/String; +} + public abstract class com/facebook/react/bridge/NativeMap { public fun (Lcom/facebook/jni/HybridData;)V public fun toString ()Ljava/lang/String; @@ -3576,6 +3580,43 @@ public abstract class com/facebook/react/runtime/BindingsInstaller { public fun (Lcom/facebook/jni/HybridData;)V } +public final class com/facebook/react/runtime/BridgelessCatalystInstance : com/facebook/react/bridge/CatalystInstance { + public fun ()V + public fun addBridgeIdleDebugListener (Lcom/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener;)V + public fun addJSIModules (Ljava/util/List;)V + public fun callFunction (Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/NativeArray;)V + public fun destroy ()V + public fun extendNativeModules (Lcom/facebook/react/bridge/NativeModuleRegistry;)V + public fun getFabricUIManager ()Lcom/facebook/react/bridge/UIManager; + public fun getJSCallInvokerHolder ()Lcom/facebook/react/turbomodule/core/interfaces/CallInvokerHolder; + public fun getJSIModule (Lcom/facebook/react/bridge/JSIModuleType;)Lcom/facebook/react/bridge/JSIModule; + public fun getJSModule (Ljava/lang/Class;)Lcom/facebook/react/bridge/JavaScriptModule; + public fun getJavaScriptContextHolder ()Lcom/facebook/react/bridge/JavaScriptContextHolder; + public fun getNativeMethodCallInvokerHolder ()Lcom/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder; + public fun getNativeModule (Ljava/lang/Class;)Lcom/facebook/react/bridge/NativeModule; + public fun getNativeModule (Ljava/lang/String;)Lcom/facebook/react/bridge/NativeModule; + public fun getNativeModules ()Ljava/util/Collection; + public fun getReactQueueConfiguration ()Lcom/facebook/react/bridge/queue/ReactQueueConfiguration; + public fun getRuntimeExecutor ()Lcom/facebook/react/bridge/RuntimeExecutor; + public fun getRuntimeScheduler ()Lcom/facebook/react/bridge/RuntimeScheduler; + public fun getSourceURL ()Ljava/lang/String; + public fun handleMemoryPressure (I)V + public fun hasNativeModule (Ljava/lang/Class;)Z + public fun hasRunJSBundle ()Z + public fun invokeCallback (ILcom/facebook/react/bridge/NativeArrayInterface;)V + public fun isDestroyed ()Z + public fun loadScriptFromAssets (Landroid/content/res/AssetManager;Ljava/lang/String;Z)V + public fun loadScriptFromFile (Ljava/lang/String;Ljava/lang/String;Z)V + public fun loadSplitBundleFromFile (Ljava/lang/String;Ljava/lang/String;)V + public fun registerSegment (ILjava/lang/String;)V + public fun removeBridgeIdleDebugListener (Lcom/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener;)V + public fun runJSBundle ()V + public fun setFabricUIManager (Lcom/facebook/react/bridge/UIManager;)V + public fun setSourceURLs (Ljava/lang/String;Ljava/lang/String;)V + public fun setTurboModuleManager (Lcom/facebook/react/bridge/JSIModule;)V + public fun setTurboModuleRegistry (Lcom/facebook/react/internal/turbomodule/core/interfaces/TurboModuleRegistry;)V +} + public class com/facebook/react/runtime/CoreReactPackage$$ReactModuleInfoProvider : com/facebook/react/module/model/ReactModuleInfoProvider { public fun ()V public fun getReactModuleInfos ()Ljava/util/Map; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java index 0ee0dd6df275ee..b2e2d7cadc1ff1 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java @@ -120,7 +120,7 @@ public interface CatalystInstance RuntimeScheduler getRuntimeScheduler(); @Deprecated - void addJSIModules(List jsiModules); + void addJSIModules(List> jsiModules); /** * Returns a hybrid object that contains a pointer to a JS CallInvoker, which is used to schedule diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java index 3658f68cac44f7..f86dffbf341dd2 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java @@ -537,7 +537,8 @@ public JavaScriptContextHolder getJavaScriptContextHolder() { public native RuntimeScheduler getRuntimeScheduler(); @Override - public void addJSIModules(List jsiModules) { + @Deprecated + public void addJSIModules(List> jsiModules) { mJSIModuleRegistry.registerModules(jsiModules); } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleRegistry.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleRegistry.java index e81b361d16841d..90d5cde4fcbce5 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleRegistry.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleRegistry.java @@ -26,8 +26,8 @@ public JSIModule getModule(JSIModuleType moduleType) { return Assertions.assertNotNull(jsiModuleHolder.getJSIModule()); } - public void registerModules(List jsiModules) { - for (JSIModuleSpec spec : jsiModules) { + public void registerModules(List> jsiModules) { + for (JSIModuleSpec spec : jsiModules) { mModules.put(spec.getJSIModuleType(), new JSIModuleHolder(spec)); } } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArrayInterface.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArrayInterface.java index a410a3aeb289b3..6791df05e6d510 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArrayInterface.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeArrayInterface.java @@ -7,7 +7,7 @@ package com.facebook.react.bridge; -interface NativeArrayInterface { +public interface NativeArrayInterface { @Override String toString(); } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt new file mode 100644 index 00000000000000..f7388357f27555 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt @@ -0,0 +1,200 @@ +/* + * 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. + */ + +package com.facebook.react.runtime + +import android.content.res.AssetManager +import com.facebook.proguard.annotations.DoNotStrip +import com.facebook.react.bridge.CatalystInstance +import com.facebook.react.bridge.JSIModule +import com.facebook.react.bridge.JSIModuleSpec +import com.facebook.react.bridge.JSIModuleType +import com.facebook.react.bridge.JavaScriptContextHolder +import com.facebook.react.bridge.JavaScriptModule +import com.facebook.react.bridge.NativeArray +import com.facebook.react.bridge.NativeArrayInterface +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.NativeModuleRegistry +import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener +import com.facebook.react.bridge.RuntimeExecutor +import com.facebook.react.bridge.RuntimeScheduler +import com.facebook.react.bridge.UIManager +import com.facebook.react.bridge.queue.ReactQueueConfiguration +import com.facebook.react.common.annotations.DeprecatedInNewArchitecture +import com.facebook.react.common.annotations.VisibleForTesting +import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry +import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder +import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHolder + +@DoNotStrip +@DeprecatedInNewArchitecture +class BridgelessCatalystInstance : CatalystInstance { + override fun handleMemoryPressure(level: Int) { + throw UnsupportedOperationException("Unimplemented method 'handleMemoryPressure'") + } + + override fun loadScriptFromAssets( + assetManager: AssetManager, + assetURL: String, + loadSynchronously: Boolean + ) { + throw UnsupportedOperationException("Unimplemented method 'loadScriptFromAssets'") + } + + override fun loadScriptFromFile(fileName: String, sourceURL: String, loadSynchronously: Boolean) { + throw UnsupportedOperationException("Unimplemented method 'loadScriptFromFile'") + } + + override fun loadSplitBundleFromFile(fileName: String, sourceURL: String) { + throw UnsupportedOperationException("Unimplemented method 'loadSplitBundleFromFile'") + } + + override fun setSourceURLs(deviceURL: String, remoteURL: String) { + throw UnsupportedOperationException("Unimplemented method 'setSourceURLs'") + } + + override fun runJSBundle() { + throw UnsupportedOperationException("Unimplemented method 'runJSBundle'") + } + + override fun hasRunJSBundle(): Boolean { + throw UnsupportedOperationException("Unimplemented method 'hasRunJSBundle'") + } + + override fun getSourceURL(): String? { + throw UnsupportedOperationException("Unimplemented method 'getSourceURL'") + } + + @DoNotStrip + override fun invokeCallback(callbackID: Int, arguments: NativeArrayInterface) { + throw UnsupportedOperationException("Unimplemented method 'invokeCallback'") + } + + override fun callFunction(module: String, method: String, arguments: NativeArray) { + throw UnsupportedOperationException("Unimplemented method 'callFunction'") + } + + override fun destroy() { + throw UnsupportedOperationException("Unimplemented method 'destroy'") + } + + override fun isDestroyed(): Boolean { + throw UnsupportedOperationException("Unimplemented method 'isDestroyed'") + } + + @VisibleForTesting + override fun initialize() { + throw UnsupportedOperationException("Unimplemented method 'initialize'") + } + + override fun getReactQueueConfiguration(): ReactQueueConfiguration { + throw UnsupportedOperationException("Unimplemented method 'getReactQueueConfiguration'") + } + + override fun getJSModule(jsInterface: Class): T { + throw UnsupportedOperationException("Unimplemented method 'getJSModule'") + } + + override fun hasNativeModule(nativeModuleInterface: Class): Boolean { + throw UnsupportedOperationException("Unimplemented method 'hasNativeModule'") + } + + override fun getNativeModule(nativeModuleInterface: Class): T? { + throw UnsupportedOperationException("Unimplemented method 'getNativeModule'") + } + + override fun getNativeModule(moduleName: String): NativeModule? { + throw UnsupportedOperationException("Unimplemented method 'getNativeModule'") + } + + @Deprecated( + message = + "getJSIModule(JSIModuleType moduleType) is deprecated and will be deleted in the future. Please use ReactInstanceEventListener to subscribe for react instance events instead.") + override fun getJSIModule(moduleType: JSIModuleType): JSIModule { + throw UnsupportedOperationException("Unimplemented method 'getJSIModule'") + } + + override fun getNativeModules(): Collection { + throw UnsupportedOperationException("Unimplemented method 'getNativeModules'") + } + + override fun extendNativeModules(modules: NativeModuleRegistry) { + throw UnsupportedOperationException("Unimplemented method 'extendNativeModules'") + } + + override fun addBridgeIdleDebugListener(listener: NotThreadSafeBridgeIdleDebugListener) { + throw UnsupportedOperationException("Unimplemented method 'addBridgeIdleDebugListener'") + } + + override fun removeBridgeIdleDebugListener(listener: NotThreadSafeBridgeIdleDebugListener) { + throw UnsupportedOperationException("Unimplemented method 'removeBridgeIdleDebugListener'") + } + + override fun registerSegment(segmentId: Int, path: String) { + throw UnsupportedOperationException("Unimplemented method 'registerSegment'") + } + + @VisibleForTesting + override fun setGlobalVariable(propName: String, jsonValue: String) { + throw UnsupportedOperationException("Unimplemented method 'setGlobalVariable'") + } + + @Deprecated(message = "This API is unsupported in the New Architecture.") + override fun getJavaScriptContextHolder(): JavaScriptContextHolder { + throw UnsupportedOperationException("Unimplemented method 'getJavaScriptContextHolder'") + } + + override fun getRuntimeExecutor(): RuntimeExecutor { + throw UnsupportedOperationException("Unimplemented method 'getRuntimeExecutor'") + } + + override fun getRuntimeScheduler(): RuntimeScheduler { + throw UnsupportedOperationException("Unimplemented method 'getRuntimeScheduler'") + } + + @Deprecated(message = "This API is unsupported in the New Architecture.") + override fun addJSIModules(jsiModules: List>) { + throw UnsupportedOperationException("Unimplemented method 'addJSIModules'") + } + + override fun getJSCallInvokerHolder(): CallInvokerHolder { + throw UnsupportedOperationException("Unimplemented method 'getJSCallInvokerHolder'") + } + + override fun getNativeMethodCallInvokerHolder(): NativeMethodCallInvokerHolder { + throw UnsupportedOperationException("Unimplemented method 'getNativeMethodCallInvokerHolder'") + } + + @Deprecated( + message = + "setTurboModuleManager(JSIModule getter) is deprecated and will be deleted in the future. Please use setTurboModuleRegistry(TurboModuleRegistry turboModuleRegistry) instead.", + replaceWith = ReplaceWith("setTurboModuleRegistry(turboModuleRegistry)")) + override fun setTurboModuleManager(getter: JSIModule) { + throw UnsupportedOperationException("Unimplemented method 'setTurboModuleManager'") + } + + @DeprecatedInNewArchitecture( + message = + "This method will be deprecated later as part of Stable APIs with bridge removal and not encouraged usage.") + override fun setTurboModuleRegistry(turboModuleRegistry: TurboModuleRegistry) { + throw UnsupportedOperationException("Unimplemented method 'setTurboModuleRegistry'") + } + + @DeprecatedInNewArchitecture( + message = + "This method will be deprecated later as part of Stable APIs with bridge removal and not encouraged usage.") + override fun setFabricUIManager(fabricUIManager: UIManager) { + throw UnsupportedOperationException("Unimplemented method 'setFabricUIManager'") + } + + @DeprecatedInNewArchitecture( + message = + "This method will be deprecated later as part of Stable APIs with bridge removal and not encouraged usage.") + override fun getFabricUIManager(): UIManager { + throw UnsupportedOperationException("Unimplemented method 'getFabricUIManager'") + } +} From 3e5dd5e2f2fd57cb4d74e36b5285d5e847cc179e Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Fri, 1 Mar 2024 18:13:28 -0800 Subject: [PATCH 054/223] Fix CI by adding explicit visibility modifier to BridgelessCatalystInstance (#43296) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43296 Fix CI by adding explicit visibility modifier to the newly added `BridgelessCatalystInstance` class. In Kotlin, in explicit API mode, which is usually the default mode for Kotlin, we must explicitly specify one of the modifiers for every declaration to make it clear and explicit. Changelog: [Internal] internal Reviewed By: makovkastar Differential Revision: D54442485 fbshipit-source-id: 4409ff810a09cc4fadcd2ccf21f7fbac3015f413 --- .../com/facebook/react/runtime/BridgelessCatalystInstance.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt index f7388357f27555..e2d87960b97555 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt @@ -32,7 +32,7 @@ import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHol @DoNotStrip @DeprecatedInNewArchitecture -class BridgelessCatalystInstance : CatalystInstance { +public class BridgelessCatalystInstance : CatalystInstance { override fun handleMemoryPressure(level: Int) { throw UnsupportedOperationException("Unimplemented method 'handleMemoryPressure'") } From bccedff09b5ae17d7219f00f285889ba359323c6 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Mon, 11 Mar 2024 12:19:49 -0700 Subject: [PATCH 055/223] Implement getJSCallInvokerHolder for BridgelessCatalystInstance (#43400) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43400 Implement `getJSCallInvokerHolder()` for BridgelessCatalystInstance Changelog: [Android][Breaking] Implement `getJSCallInvokerHolder()` for Bridgeless Catalyst Instance Reviewed By: cortinico Differential Revision: D54650305 fbshipit-source-id: effac3daaad5173c2fd78ab11bbe3f3156a9c07b --- .../ReactAndroid/api/ReactAndroid.api | 2 +- .../react/runtime/BridgelessCatalystInstance.kt | 7 ++++--- .../react/runtime/BridgelessReactContext.java | 10 ++++------ .../com/facebook/react/runtime/ReactHostImpl.java | 15 +++++++++++++++ .../com/facebook/react/runtime/ReactInstance.java | 2 +- .../react/runtime/BridgelessReactContextTest.kt | 10 ++++++---- 6 files changed, 31 insertions(+), 15 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 052bc3df4bcfdc..4d72f0ea722178 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -3581,7 +3581,7 @@ public abstract class com/facebook/react/runtime/BindingsInstaller { } public final class com/facebook/react/runtime/BridgelessCatalystInstance : com/facebook/react/bridge/CatalystInstance { - public fun ()V + public fun (Lcom/facebook/react/runtime/ReactHostImpl;)V public fun addBridgeIdleDebugListener (Lcom/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener;)V public fun addJSIModules (Ljava/util/List;)V public fun callFunction (Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/NativeArray;)V diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt index e2d87960b97555..ea9dd2cb203892 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt @@ -32,7 +32,8 @@ import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHol @DoNotStrip @DeprecatedInNewArchitecture -public class BridgelessCatalystInstance : CatalystInstance { +public class BridgelessCatalystInstance(private val reactHost: ReactHostImpl) : CatalystInstance { + override fun handleMemoryPressure(level: Int) { throw UnsupportedOperationException("Unimplemented method 'handleMemoryPressure'") } @@ -161,8 +162,8 @@ public class BridgelessCatalystInstance : CatalystInstance { throw UnsupportedOperationException("Unimplemented method 'addJSIModules'") } - override fun getJSCallInvokerHolder(): CallInvokerHolder { - throw UnsupportedOperationException("Unimplemented method 'getJSCallInvokerHolder'") + override fun getJSCallInvokerHolder(): CallInvokerHolder? { + return reactHost.getJSCallInvokerHolder() } override fun getNativeMethodCallInvokerHolder(): NativeMethodCallInvokerHolder { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java index 5fa3947959105c..d1cdaa976fc1d5 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java @@ -8,6 +8,7 @@ package com.facebook.react.runtime; import android.content.Context; +import android.util.Log; import com.facebook.infer.annotation.Nullsafe; import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Callback; @@ -18,8 +19,6 @@ import com.facebook.react.bridge.NativeArray; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.bridge.ReactNoCrashBridgeNotAllowedSoftException; -import com.facebook.react.bridge.ReactSoftExceptionLogger; import com.facebook.react.bridge.RuntimeExecutor; import com.facebook.react.bridge.UIManager; import com.facebook.react.bridge.WritableNativeArray; @@ -84,11 +83,10 @@ public void setSourceURL(String sourceURL) { @Override public CatalystInstance getCatalystInstance() { - ReactSoftExceptionLogger.logSoftExceptionVerbose( + Log.w( TAG, - new ReactNoCrashBridgeNotAllowedSoftException( - "getCatalystInstance() cannot be called when the bridge is disabled")); - throw new UnsupportedOperationException("There is no Catalyst instance in bridgeless mode."); + "[WARNING] Bridgeless doesn't support CatalystInstance. Accessing an API that's not part of the new architecture is not encouraged usage."); + return new BridgelessCatalystInstance(mReactHost); } @Override diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java index 1bf665685bb17d..a5ad6a83af4f39 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java @@ -60,6 +60,7 @@ import com.facebook.react.runtime.internal.bolts.Continuation; import com.facebook.react.runtime.internal.bolts.Task; import com.facebook.react.runtime.internal.bolts.TaskCompletionSource; +import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder; import com.facebook.react.uimanager.UIManagerModule; import com.facebook.react.uimanager.events.BlackHoleEventDispatcher; import com.facebook.react.uimanager.events.EventDispatcher; @@ -601,6 +602,20 @@ RuntimeExecutor getRuntimeExecutor() { return null; } + /* package */ + @Nullable + CallInvokerHolder getJSCallInvokerHolder() { + final ReactInstance reactInstance = mReactInstanceTaskRef.get().getResult(); + if (reactInstance != null) { + return reactInstance.getJSCallInvokerHolder(); + } + ReactSoftExceptionLogger.logSoftException( + TAG, + new ReactNoCrashSoftException( + "Tried to get JSCallInvokerHolder while instance is not ready")); + return null; + } + /** * To be called when the host activity receives an activity result. * diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java index 37d8d44d830a4b..80793f45f01819 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java @@ -475,7 +475,7 @@ private native HybridData initHybrid( private native void loadJSBundleFromAssets(AssetManager assetManager, String assetURL); - private native CallInvokerHolderImpl getJSCallInvokerHolder(); + /* package */ native CallInvokerHolderImpl getJSCallInvokerHolder(); private native NativeMethodCallInvokerHolderImpl getNativeMethodCallInvokerHolder(); diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/runtime/BridgelessReactContextTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/runtime/BridgelessReactContextTest.kt index d8a8c3b473091d..6f7eb6f474aed9 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/runtime/BridgelessReactContextTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/runtime/BridgelessReactContextTest.kt @@ -55,9 +55,11 @@ class BridgelessReactContextTest { Assertions.assertThat(bridgelessReactContext.getFabricUIManager()).isEqualTo(fabricUiManager) } - @Test(expected = UnsupportedOperationException::class) - fun getCatalystInstance_throwsException() { - // Disable this test for now due to mocking FabricUIManager fails - bridgelessReactContext.catalystInstance + @Test + fun getCatalystInstanceTest() { + val bridgelessCatalystInstance = BridgelessCatalystInstance(reactHost) + doReturn(bridgelessCatalystInstance).`when`(bridgelessReactContext).getCatalystInstance() + Assertions.assertThat(bridgelessReactContext.getCatalystInstance()) + .isEqualTo(bridgelessCatalystInstance) } } From 9048c0e0b3e3930392f52629e76c484004fe54b9 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Mon, 11 Mar 2024 23:21:05 -0700 Subject: [PATCH 056/223] Fix Bridgeless React Context test in OSS (#43424) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43424 https://github.com/facebook/react-native/pull/43400/ caused a `getCatalystInstanceTest` to fail in OSS due to `bridgelessReactContext` not being a Mock object. Reviewed By: fkgozali Differential Revision: D54781539 fbshipit-source-id: 1c784804c31d4b57fe438d49f3ee3eb7034dd7a6 --- .../com/facebook/react/runtime/BridgelessReactContextTest.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/runtime/BridgelessReactContextTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/runtime/BridgelessReactContextTest.kt index 6f7eb6f474aed9..a3bf2053394eda 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/runtime/BridgelessReactContextTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/runtime/BridgelessReactContextTest.kt @@ -57,9 +57,7 @@ class BridgelessReactContextTest { @Test fun getCatalystInstanceTest() { - val bridgelessCatalystInstance = BridgelessCatalystInstance(reactHost) - doReturn(bridgelessCatalystInstance).`when`(bridgelessReactContext).getCatalystInstance() Assertions.assertThat(bridgelessReactContext.getCatalystInstance()) - .isEqualTo(bridgelessCatalystInstance) + .isInstanceOf(BridgelessCatalystInstance::class.java) } } From ffb93a81b50f6ce0fa15f09ccf3fe8a7e96336b2 Mon Sep 17 00:00:00 2001 From: Phillip Pan Date: Mon, 11 Mar 2024 21:55:42 -0700 Subject: [PATCH 057/223] support jsCallInvoker in RCTBridgeProxy (#43314) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43314 Changelog: [Internal] making call invoker a breaking change to runtime executor in 0.74 seems to be causing a lot of discourse. let's simplify things and first add the callinvoker to the backwards compat layer Reviewed By: cipolleschi Differential Revision: D54404845 fbshipit-source-id: 983e86829030557033b95625dab9068492739417 --- .../React/Base/RCTBridgeProxy+Cxx.h | 20 +++++++++++++++++++ .../react-native/React/Base/RCTBridgeProxy.h | 2 ++ .../react-native/React/Base/RCTBridgeProxy.mm | 15 ++++++++++++++ .../platform/ios/ReactCommon/RCTInstance.mm | 14 +++++++------ 4 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 packages/react-native/React/Base/RCTBridgeProxy+Cxx.h diff --git a/packages/react-native/React/Base/RCTBridgeProxy+Cxx.h b/packages/react-native/React/Base/RCTBridgeProxy+Cxx.h new file mode 100644 index 00000000000000..2748178a3dbb6e --- /dev/null +++ b/packages/react-native/React/Base/RCTBridgeProxy+Cxx.h @@ -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. + */ + +#ifdef __cplusplus +#import +#endif + +#import "RCTBridgeProxy.h" + +@interface RCTBridgeProxy (Cxx) + +#ifdef __cplusplus +@property (nonatomic, readwrite) std::shared_ptr jsCallInvoker; +#endif + +@end diff --git a/packages/react-native/React/Base/RCTBridgeProxy.h b/packages/react-native/React/Base/RCTBridgeProxy.h index 79c75c3b491ae0..3a6de36473ee5b 100644 --- a/packages/react-native/React/Base/RCTBridgeProxy.h +++ b/packages/react-native/React/Base/RCTBridgeProxy.h @@ -15,6 +15,7 @@ @class RCTViewRegistry; @interface RCTBridgeProxy : NSProxy + - (instancetype)initWithViewRegistry:(RCTViewRegistry *)viewRegistry moduleRegistry:(RCTModuleRegistry *)moduleRegistry bundleManager:(RCTBundleManager *)bundleManager @@ -34,4 +35,5 @@ */ - (id)moduleForClass:(Class)moduleClass; - (id)moduleForName:(NSString *)moduleName lazilyLoadIfNecessary:(BOOL)lazilyLoad; + @end diff --git a/packages/react-native/React/Base/RCTBridgeProxy.mm b/packages/react-native/React/Base/RCTBridgeProxy.mm index 6c1e914c2f86b7..27637daf654c1c 100644 --- a/packages/react-native/React/Base/RCTBridgeProxy.mm +++ b/packages/react-native/React/Base/RCTBridgeProxy.mm @@ -6,10 +6,13 @@ */ #import "RCTBridgeProxy.h" +#import "RCTBridgeProxy+Cxx.h" + #import #import #import #import +#import #import using namespace facebook; @@ -21,6 +24,12 @@ - (NSMethodSignature *)methodSignatureForSelector:(SEL)sel; - (void)forwardInvocation:(NSInvocation *)invocation; @end +@interface RCTBridgeProxy () + +@property (nonatomic, readwrite) std::shared_ptr jsCallInvoker; + +@end + @implementation RCTBridgeProxy { RCTUIManagerProxy *_uiManagerProxy; RCTModuleRegistry *_moduleRegistry; @@ -84,6 +93,12 @@ - (void *)runtime return _runtime; } +- (std::shared_ptr)jsCallInvoker +{ + [self logWarning:@"Please migrate to RuntimeExecutor" cmd:_cmd]; + return _jsCallInvoker; +} + /** * RCTModuleRegistry */ diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm index c16506810ea434..a200998fe49274 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm @@ -6,7 +6,6 @@ */ #import "RCTInstance.h" -#import #import @@ -16,6 +15,8 @@ #import #import #import +#import +#import #import #import #import @@ -256,6 +257,7 @@ - (void)_start RuntimeExecutor bufferedRuntimeExecutor = _reactInstance->getBufferedRuntimeExecutor(); timerManager->setRuntimeExecutor(bufferedRuntimeExecutor); + auto jsCallInvoker = make_shared(bufferedRuntimeExecutor); RCTBridgeProxy *bridgeProxy = [[RCTBridgeProxy alloc] initWithViewRegistry:_bridgeModuleDecorator.viewRegistry_DEPRECATED moduleRegistry:_bridgeModuleDecorator.moduleRegistry @@ -274,14 +276,14 @@ - (void)_start } } runtime:_reactInstance->getJavaScriptContext()]; + bridgeProxy.jsCallInvoker = jsCallInvoker; [RCTBridge setCurrentBridge:(RCTBridge *)bridgeProxy]; // Set up TurboModules - _turboModuleManager = [[RCTTurboModuleManager alloc] - initWithBridgeProxy:bridgeProxy - bridgeModuleDecorator:_bridgeModuleDecorator - delegate:self - jsInvoker:std::make_shared(bufferedRuntimeExecutor)]; + _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridgeProxy:bridgeProxy + bridgeModuleDecorator:_bridgeModuleDecorator + delegate:self + jsInvoker:jsCallInvoker]; _turboModuleManager.runtimeHandler = self; #if RCT_DEV From 680bfafcc20054d2acf30e5ba3adc38f63443e1f Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Fri, 15 Mar 2024 11:48:22 -0700 Subject: [PATCH 058/223] Remove dangerous "9999" version string default (#43516) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43516 As titled. This seems dangerous — removing with the motivation that we'd prefer this script to fail during execution than to succeed in publishing `9999`. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D54956661 fbshipit-source-id: 23f8d49abd300385dde74871b6d2492ef63f058e --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 94fed2af278951..439698d301e9aa 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,7 +17,7 @@ parameters: type: boolean release_version: - default: "9999" + default: "" type: string run_nightly_workflow: From 3b170a0910bace5adceebd2b71fd86fa97487475 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 18 Mar 2024 02:22:46 -0700 Subject: [PATCH 059/223] Add prepare_release_new workflow, configure via flag (#43518) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43518 This is a minimum approach to achieve a **single-command publish flow** for React Native, unifying the previous `yarn bump-all-updated-packages` and `yarn trigger-react-native-release` workflow entry points. This diff aims to change as little as possible to achieve the above — introducing a new job that merges operations to create the versioning commit. The triggered publish jobs are unchanged. In future, we may follow this change with further simplifications down the workflow tree. **Key changes** - Adds a new CircleCI workflow, `prepare_release_new`, which versions **all packages** and writes a single release commit. - This replaces `yarn bump-all-updated-packages`, now implemented with the newer `set-version` script. - Wires this up as an experiment within `trigger-react-native-release.js`, conditionally running the new workflow when `--use-new-workflow` is passed. **Not changed** - The single release commit written will continue to trigger both of the existing CI workflows on push (`publish_release` and `publish_bumped_packages`), which are unchanged. - The commit summary now includes the `#publish-packages-to-npm` marker, in order to trigger `publish_bumped_packages`. - Usage: Release Crew members will continue to use the existing local script entry point (as [documented in the releases repo](https://github.com/reactwg/react-native-releases/blob/main/docs/guide-release-process.md#step-7-publish-react-native)), with the opt in flag. ``` yarn trigger-react-native-release --use-new-workflow [...args] ``` After we're happy with the E2E behaviour of this workflow in the next 0.74 RC, I will follow up by dropping the `--use-new-workflow` flag and removing the old scripts (T182533699). Changelog: [Internal] Reviewed By: cortinico Differential Revision: D54956345 fbshipit-source-id: 35fd7af8f3e60a39507b5d978ccd97472bf03ddb --- .circleci/config.yml | 19 +++- .circleci/configurations/jobs.yml | 65 +++++++++++++ .circleci/configurations/top_level.yml | 20 +++- .circleci/configurations/workflows.yml | 14 +++ .../trigger-react-native-release.js | 92 +++++++++++++++++-- 5 files changed, 197 insertions(+), 13 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 439698d301e9aa..af889bdc060522 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,6 +12,15 @@ parameters: default: false type: boolean + # Experimental unified release workflow + run_new_release_workflow: + default: false + type: boolean + + run_nightly_workflow: + default: false + type: boolean + release_latest: default: false type: boolean @@ -20,7 +29,15 @@ parameters: default: "" type: string - run_nightly_workflow: + release_monorepo_packages_version: + default: "" + type: string + + release_tag: + default: "" + type: string + + release_dry_run: default: false type: boolean diff --git a/.circleci/configurations/jobs.yml b/.circleci/configurations/jobs.yml index d40dbc45e4a2c9..673a4dff4ec6a8 100644 --- a/.circleci/configurations/jobs.yml +++ b/.circleci/configurations/jobs.yml @@ -1107,6 +1107,71 @@ jobs: node ./scripts/releases-ci/prepare-package-for-release.js -v "$VERSION" -l << parameters.latest >> --dry-run << parameters.dryrun >> + # Experimental unified release workflow + # Replaces `prepare_package_for_release` + # + # Writes a new commit and tag(s), which will trigger the `publish_release` + # and `publish_bumped_packages` workflows. + prepare_release_new: + parameters: + version: + type: string + # TODO(T182538198): Required for 0.74.x, where workspace packages are out + # of sync with react-native. This will be removed for 0.75+. + monorepo_packages_version: + type: string + tag: + type: string + dry_run: + type: boolean + default: false + executor: reactnativeios + steps: + - checkout_code_with_cache + - run_yarn + - add_ssh_keys: + fingerprints: + - "1f:c7:61:c4:e2:ff:77:e3:cc:ca:a7:34:c2:79:e3:3c" + - brew_install: + package: cmake + - run: + name: Versioning workspace packages + command: | + node scripts/releases/set-version "<< parameters.monorepo_packages_version >>" --skip-react-native-version + - run: + name: Versioning react-native package + command: | + node scripts/releases/set-rn-version.js -v "<< parameters.version >>" --build-type "release" + - run: + name: Updating RNTester Podfile.lock + command: | + cd packages/rn-tester/ + bundle install + bundle exec pod install + - run: + name: Creating release commit + command: | + git commit -a -m "Release << parameters.version >>\n\n#publish-packages-to-npm&<< parameters.tag >>" + git tag -a "v<< parameters.version >>" -m "v<< parameters.version >>" + git show HEAD + - when: + condition: + equal: ["latest", << parameters.tag >>] + steps: + - run: + name: Updating "latest" tag + command: | + git tag -d "latest" + git push origin :latest + git tag -a "latest" -m "latest" + - unless: + condition: << parameters.dry_run >> + steps: + run: + name: Pushing release commit + command: | + git push origin $CIRCLE_BRANCH --follow-tags + build_npm_package: parameters: release_type: diff --git a/.circleci/configurations/top_level.yml b/.circleci/configurations/top_level.yml index 5d3281d36400a6..e8dd402765c71a 100644 --- a/.circleci/configurations/top_level.yml +++ b/.circleci/configurations/top_level.yml @@ -129,14 +129,30 @@ parameters: default: false type: boolean + run_new_release_workflow: + default: false + type: boolean + + run_nightly_workflow: + default: false + type: boolean + release_latest: default: false type: boolean release_version: - default: "9999" + default: "" type: string - run_nightly_workflow: + release_monorepo_packages_version: + default: "" + type: string + + release_tag: + default: "" + type: string + + release_dry_run: default: false type: boolean diff --git a/.circleci/configurations/workflows.yml b/.circleci/configurations/workflows.yml index e5c085ee4ce08a..48190e06356a43 100644 --- a/.circleci/configurations/workflows.yml +++ b/.circleci/configurations/workflows.yml @@ -6,6 +6,7 @@ # when: # and: # - equal: [ false, << pipeline.parameters.run_release_workflow >> ] +# - equal: [ false, << pipeline.parameters.run_new_release_workflow >> ] # - equal: [ false, << pipeline.parameters.run_nightly_workflow >> ] # # It's setup this way so we can trigger a release via a POST @@ -25,6 +26,17 @@ workflows: version: << pipeline.parameters.release_version >> latest : << pipeline.parameters.release_latest >> + # Experimental unified release workflow + create_release_new: + when: << pipeline.parameters.run_new_release_workflow >> + jobs: + - prepare_release_new: + name: prepare_release_new + version: << pipeline.parameters.release_version >> + monorepo_packages_version: << pipeline.parameters.release_monorepo_packages_version >> + tag: << pipeline.parameters.release_tag >> + dry_run: << pipeline.parameters.release_dry_run >> + # This job will run only when a tag is published due to all the jobs being filtered. publish_release: jobs: @@ -79,6 +91,7 @@ workflows: when: and: - equal: [ false, << pipeline.parameters.run_release_workflow >> ] + - equal: [ false, << pipeline.parameters.run_new_release_workflow >> ] - equal: [ false, << pipeline.parameters.run_nightly_workflow >> ] jobs: # Run lints on every commit @@ -127,6 +140,7 @@ workflows: when: and: - equal: [ false, << pipeline.parameters.run_release_workflow >> ] + - equal: [ false, << pipeline.parameters.run_new_release_workflow >> ] - equal: [ false, << pipeline.parameters.run_nightly_workflow >> ] jobs: - find_and_publish_bumped_packages: diff --git a/scripts/releases-local/trigger-react-native-release.js b/scripts/releases-local/trigger-react-native-release.js index 266c5cccc3e1fc..8ee7609b4dba6e 100644 --- a/scripts/releases-local/trigger-react-native-release.js +++ b/scripts/releases-local/trigger-react-native-release.js @@ -48,6 +48,16 @@ let argv = yargs describe: 'Version you aim to release, ex. 0.67.0-rc.1, 0.66.3', required: true, }) + .option('dry-run', { + type: 'boolean', + default: false, + }) + // TODO(T182533699): Remove arg once new workflow is default + .option('use-new-workflow', { + describe: 'When set, triggers the experimental unified release workflow.', + type: 'boolean', + default: false, + }) .check(() => { const branch = exitIfNotOnGit( () => getBranchName(), @@ -77,7 +87,6 @@ const buildExecutor = if (packageManifest.private) { return; } - if ( detectPackageUnreleasedChanges( packageRelativePathFromRoot, @@ -116,6 +125,36 @@ async function exitIfUnreleasedPackages() { } } +/** + * Get the next version that all workspace packages will be set to. + * + * This approach is specific to the 0.74 release. For 0.75, the `--to-version` + * value will be used instead, setting all packages to a single version. + */ +async function getNextMonorepoPackagesVersion() /*: Promise */ { + // Based on @react-native/dev-middleware@0.74.5 + const _0_74_MIN_PATCH = 6; + + const packages = await getPackages({ + includeReactNative: false, + }); + + let patchVersion = _0_74_MIN_PATCH; + + for (const pkg of Object.values(packages)) { + const {version} = pkg.packageJson; + + if (!version.startsWith('0.74.') || version.endsWith('-main')) { + return null; + } + + const {minor} = parseVersion(version, 'release'); + patchVersion = Math.max(patchVersion, parseInt(minor, 10) + 1); + } + + return '0.74.' + patchVersion; +} + function triggerReleaseWorkflow(options /*: $FlowFixMe */) { return new Promise((resolve, reject) => { request(options, function (error, response, body) { @@ -144,11 +183,16 @@ async function main() { exit(1); } + // $FlowFixMe[prop-missing] + const useNewWorkflow: boolean = argv.useNewWorkflow; + // now check for unreleased packages - try { - await exitIfUnreleasedPackages(); - } catch (error) { - exit(1); + if (!useNewWorkflow) { + try { + await exitIfUnreleasedPackages(); + } catch (error) { + exit(1); + } } // $FlowFixMe[prop-missing] @@ -193,11 +237,39 @@ async function main() { return; } - const parameters = { - release_version: version, - release_latest: latest, - run_release_workflow: true, - }; + let nextMonorepoPackagesVersion; + + if (useNewWorkflow) { + nextMonorepoPackagesVersion = await getNextMonorepoPackagesVersion(); + + if (nextMonorepoPackagesVersion == null) { + // TODO(T182538198): Once this warning is hit, we can remove the + // `release_monorepo_packages_version` logic from here and the CI jobs, + // see other TODOs. + console.warn( + 'Warning: No longer on the 0.74-stable branch, meaning we will ' + + 'write all package versions identically. Please double-check the ' + + 'generated diff to see if this is correct.', + ); + nextMonorepoPackagesVersion = version; + } + } + + const parameters = useNewWorkflow + ? { + release_version: version, + release_latest: latest, + run_release_workflow: true, + } + : { + run_new_release_workflow: true, + release_version: version, + release_tag: npmTag, + // NOTE: Necessary for 0.74, should be dropped for 0.75+ + release_monorepo_packages_version: nextMonorepoPackagesVersion, + // $FlowFixMe[prop-missing] + release_dry_run: argv.dryRun, + }; const options = { method: 'POST', From 42e62bf9630e2205b108eff6361a02f19f46df58 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 20 Feb 2024 09:55:46 -0800 Subject: [PATCH 060/223] Refactor remaining forEachPackage call sites (#43112) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43112 Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D53942028 fbshipit-source-id: 335bff3c3a31026bae7140fac1d1a6aae23a0f1e --- scripts/e2e/init-template-e2e.js | 45 +- scripts/e2e/run-ci-e2e-tests.js | 455 +++++++++--------- .../__tests__/bump-package-version-test.js | 2 - .../__tests__/for-each-package-test.js | 70 --- scripts/monorepo/align-package-versions.js | 51 +- .../bump-all-updated-packages/index.js | 41 +- scripts/monorepo/for-each-package.js | 69 --- scripts/monorepo/print/index.js | 68 +-- .../releases-ci/__tests__/publish-npm-test.js | 6 +- .../publish-updated-packages-test.js | 2 +- scripts/releases-ci/publish-npm.js | 2 +- .../releases-ci/publish-updated-packages.js | 2 +- .../trigger-react-native-release.js | 27 +- scripts/releases/set-version/index.js | 4 +- scripts/{releases => }/utils/monorepo.js | 6 +- 15 files changed, 369 insertions(+), 481 deletions(-) delete mode 100644 scripts/monorepo/__tests__/for-each-package-test.js delete mode 100644 scripts/monorepo/for-each-package.js rename scripts/{releases => }/utils/monorepo.js (91%) diff --git a/scripts/e2e/init-template-e2e.js b/scripts/e2e/init-template-e2e.js index 38e9cca1ca026e..24cfff72aaaf71 100644 --- a/scripts/e2e/init-template-e2e.js +++ b/scripts/e2e/init-template-e2e.js @@ -13,7 +13,7 @@ const {retry} = require('../circleci/retry'); const {REPO_ROOT} = require('../consts'); -const forEachPackage = require('../monorepo/for-each-package'); +const {getPackages} = require('../utils/monorepo'); const { VERDACCIO_SERVER_URL, VERDACCIO_STORAGE_PATH, @@ -22,7 +22,6 @@ const { const {parseArgs} = require('@pkgjs/parseargs'); const chalk = require('chalk'); const {execSync} = require('child_process'); -const {promises: fs} = require('fs'); const path = require('path'); const config = { @@ -92,26 +91,28 @@ async function initNewProjectFromSource( console.log('\nDone ✅'); console.log('Publishing packages to local npm proxy\n'); - forEachPackage( - (packageAbsolutePath, packageRelativePathFromRoot, packageManifest) => { - if (packageManifest.private) { - return; - } - - const desc = `${packageManifest.name} (${packageRelativePathFromRoot})`; - process.stdout.write( - `${desc} ${chalk.dim('.').repeat(Math.max(0, 72 - desc.length))} `, - ); - execSync( - `npm publish --registry ${VERDACCIO_SERVER_URL} --access public`, - { - cwd: packageAbsolutePath, - stdio: verbose ? 'inherit' : [process.stderr], - }, - ); - process.stdout.write(chalk.reset.inverse.bold.green(' DONE ') + '\n'); - }, - ); + const packages = await getPackages({ + includeReactNative: false, + includePrivate: false, + }); + + for (const {path: packagePath, packageJson} of Object.values(packages)) { + const desc = `${packageJson.name} (${path.relative( + REPO_ROOT, + packagePath, + )})`; + process.stdout.write( + `${desc} ${chalk.dim('.').repeat(Math.max(0, 72 - desc.length))} `, + ); + execSync( + `npm publish --registry ${VERDACCIO_SERVER_URL} --access public`, + { + cwd: packagePath, + stdio: verbose ? 'inherit' : [process.stderr], + }, + ); + process.stdout.write(chalk.reset.inverse.bold.green(' DONE ') + '\n'); + } console.log('\nDone ✅'); console.log('Running react-native init without install'); diff --git a/scripts/e2e/run-ci-e2e-tests.js b/scripts/e2e/run-ci-e2e-tests.js index d76d7a1b6673be..ad3f6d16612668 100644 --- a/scripts/e2e/run-ci-e2e-tests.js +++ b/scripts/e2e/run-ci-e2e-tests.js @@ -22,7 +22,7 @@ */ const {REACT_NATIVE_PACKAGE_DIR, REPO_ROOT, SCRIPTS_DIR} = require('../consts'); -const forEachPackage = require('../monorepo/for-each-package'); +const {getPackages} = require('../utils/monorepo'); const tryExecNTimes = require('./utils/try-n-times'); const {setupVerdaccio} = require('./utils/verdaccio'); const {execFileSync, spawn} = require('child_process'); @@ -47,275 +47,282 @@ function describe(message /*: string */) { echo(`\n\n>>>>> ${message}\n\n\n`); } -try { - if (argv.android) { - describe('Compile Android binaries'); +async function main() { + try { + if (argv.android) { + describe('Compile Android binaries'); + if ( + exec( + './gradlew publishAllToMavenTempLocal -Pjobs=1 -Dorg.gradle.jvmargs="-Xmx512m -XX:+HeapDumpOnOutOfMemoryError"', + ).code + ) { + throw new Error('Failed to compile Android binaries'); + } + } + + describe('Create react-native package'); if ( exec( - './gradlew publishAllToMavenTempLocal -Pjobs=1 -Dorg.gradle.jvmargs="-Xmx512m -XX:+HeapDumpOnOutOfMemoryError"', + 'node ./scripts/releases/set-rn-version.js --to-version 1000.0.0 --build-type dry-run', ).code ) { - throw new Error('Failed to compile Android binaries'); + throw new Error( + 'Failed to set version and update package.json ready for release', + ); } - } - describe('Create react-native package'); - if ( - exec( - 'node ./scripts/releases/set-rn-version.js --to-version 1000.0.0 --build-type dry-run', - ).code - ) { - throw new Error( - 'Failed to set version and update package.json ready for release', - ); - } - - if (exec('npm pack', {cwd: REACT_NATIVE_PACKAGE_DIR}).code) { - throw new Error('Failed to pack react-native'); - } + if (exec('npm pack', {cwd: REACT_NATIVE_PACKAGE_DIR}).code) { + throw new Error('Failed to pack react-native'); + } - const REACT_NATIVE_PACKAGE = path.join( - REACT_NATIVE_PACKAGE_DIR, - 'react-native-*.tgz', - ); + const REACT_NATIVE_PACKAGE = path.join( + REACT_NATIVE_PACKAGE_DIR, + 'react-native-*.tgz', + ); - describe('Set up Verdaccio'); - VERDACCIO_PID = setupVerdaccio(); + describe('Set up Verdaccio'); + VERDACCIO_PID = setupVerdaccio(); - describe('Build and publish packages'); - exec('node ./scripts/build/build.js', {cwd: REPO_ROOT}); + describe('Build and publish packages'); + exec('node ./scripts/build/build.js', {cwd: REPO_ROOT}); - forEachPackage( - (packageAbsolutePath, packageRelativePathFromRoot, packageManifest) => { - if (packageManifest.private) { - return; - } + const packages = await getPackages({ + includeReactNative: false, + includePrivate: false, + }); + for (const {path: packageAbsolutePath} of Object.values(packages)) { exec( 'npm publish --registry http://localhost:4873 --yes --access public', {cwd: packageAbsolutePath}, ); - }, - ); - - describe('Scaffold a basic React Native app from template'); - execFileSync('rsync', [ - '-a', - `${REPO_ROOT}/packages/react-native/template`, - REACT_NATIVE_TEMP_DIR, - ]); - cd(REACT_NATIVE_APP_DIR); - - mv('_bundle', '.bundle'); - mv('_eslintrc.js', '.eslintrc.js'); - mv('_prettierrc.js', '.prettierrc.js'); - mv('_watchmanconfig', '.watchmanconfig'); - fs.writeFileSync('.npmrc', 'registry=http://localhost:4873'); - - describe('Install React Native package'); - exec(`npm install ${REACT_NATIVE_PACKAGE}`); - - describe('Install node_modules'); - if ( - tryExecNTimes( - () => { - return exec('npm install').code; - }, - numberOfRetries, - () => exec('sleep 10s'), - ) - ) { - throw new Error( - 'Failed to execute npm install. Most common reason is npm registry connectivity, try again', - ); - } - exec('rm -rf ./node_modules/react-native/template'); - - if (argv.android) { - describe('Install end-to-end framework'); - if ( - tryExecNTimes( - () => - exec( - 'yarn add --dev appium@1.11.1 mocha@2.4.5 wd@1.11.1 colors@1.0.3 pretty-data2@0.40.1', - {silent: true}, - ).code, - numberOfRetries, - ) - ) { - throw new Error( - 'Failed to install appium. Most common reason is npm registry connectivity, try again.', - ); - } - cp(`${SCRIPTS_DIR}/android-e2e-test.js`, 'android-e2e-test.js'); - cd('android'); - describe('Download Maven deps'); - exec('./gradlew :app:copyDownloadableDepsToLibs'); - cd('..'); - - describe('Generate key'); - exec('rm android/app/debug.keystore'); - if ( - exec( - 'keytool -genkey -v -keystore android/app/debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Android Debug,O=Android,C=US"', - ).code - ) { - throw new Error('Key could not be generated'); } - // $FlowFixMe[incompatible-type] - describe(`Start appium server, ${APPIUM_PID}`); - const appiumProcess = spawn('node', ['./node_modules/.bin/appium']); - APPIUM_PID = appiumProcess.pid; + describe('Scaffold a basic React Native app from template'); + execFileSync('rsync', [ + '-a', + `${REPO_ROOT}/packages/react-native/template`, + REACT_NATIVE_TEMP_DIR, + ]); + cd(REACT_NATIVE_APP_DIR); - describe('Build the app'); - if (exec('react-native run-android').code) { - throw new Error('Could not execute react-native run-android'); - } + mv('_bundle', '.bundle'); + mv('_eslintrc.js', '.eslintrc.js'); + mv('_prettierrc.js', '.prettierrc.js'); + mv('_watchmanconfig', '.watchmanconfig'); + fs.writeFileSync('.npmrc', 'registry=http://localhost:4873'); - // $FlowFixMe[incompatible-type] - describe(`Start Metro, ${SERVER_PID}`); - // shelljs exec('', {async: true}) does not emit stdout events, so we rely on good old spawn - const packagerProcess = spawn('yarn', ['start', '--max-workers 1']); - SERVER_PID = packagerProcess.pid; - // wait a bit to allow packager to startup - exec('sleep 15s'); - describe('Test: Android end-to-end test'); + describe('Install React Native package'); + exec(`npm install ${REACT_NATIVE_PACKAGE}`); + + describe('Install node_modules'); if ( tryExecNTimes( () => { - return exec('node node_modules/.bin/_mocha android-e2e-test.js').code; + return exec('npm install').code; }, numberOfRetries, () => exec('sleep 10s'), ) ) { throw new Error( - 'Failed to run Android end-to-end tests. Most likely the code is broken.', + 'Failed to execute npm install. Most common reason is npm registry connectivity, try again', ); } - } + exec('rm -rf ./node_modules/react-native/template'); - if (argv.ios) { - cd('ios'); - // shelljs exec('', {async: true}) does not emit stdout events, so we rely on good old spawn - const packagerEnv = Object.create(process.env); - // $FlowFixMe[prop-missing] - packagerEnv.REACT_NATIVE_MAX_WORKERS = 1; - describe('Start Metro'); - const packagerProcess = spawn('yarn', ['start'], { - stdio: 'inherit', - env: packagerEnv, - }); - SERVER_PID = packagerProcess.pid; - exec('sleep 15s'); - // prepare cache to reduce chances of possible red screen "Can't find variable __fbBatchedBridge..." - exec( - 'response=$(curl --write-out %{http_code} --silent --output /dev/null localhost:8081/index.bundle?platform=ios&dev=true)', - ); - echo(`Metro is running, ${SERVER_PID}`); + if (argv.android) { + describe('Install end-to-end framework'); + if ( + tryExecNTimes( + () => + exec( + 'yarn add --dev appium@1.11.1 mocha@2.4.5 wd@1.11.1 colors@1.0.3 pretty-data2@0.40.1', + {silent: true}, + ).code, + numberOfRetries, + ) + ) { + throw new Error( + 'Failed to install appium. Most common reason is npm registry connectivity, try again.', + ); + } + cp(`${SCRIPTS_DIR}/android-e2e-test.js`, 'android-e2e-test.js'); + cd('android'); + describe('Download Maven deps'); + exec('./gradlew :app:copyDownloadableDepsToLibs'); + cd('..'); - describe('Install CocoaPod dependencies'); - exec('bundle exec pod install'); + describe('Generate key'); + exec('rm android/app/debug.keystore'); + if ( + exec( + 'keytool -genkey -v -keystore android/app/debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Android Debug,O=Android,C=US"', + ).code + ) { + throw new Error('Key could not be generated'); + } - describe('Test: iOS end-to-end test'); - if ( - // TODO: Get target OS and simulator from .tests.env - tryExecNTimes( - () => { - return exec( - [ - 'xcodebuild', - '-workspace', - '"HelloWorld.xcworkspace"', - '-destination', - '"platform=iOS Simulator,name=iPhone 8,OS=13.3"', - '-scheme', - '"HelloWorld"', - '-sdk', - 'iphonesimulator', - '-UseModernBuildSystem=NO', - 'test', - ].join(' ') + - ' | ' + - [ - 'xcbeautify', - '--report', - 'junit', - '--reportPath', - '"~/react-native/reports/junit/iOS-e2e/results.xml"', - ].join(' ') + - ' && exit ${PIPESTATUS[0]}', - ).code; - }, - numberOfRetries, - () => exec('sleep 10s'), - ) - ) { - throw new Error( - 'Failed to run iOS end-to-end tests. Most likely the code is broken.', - ); - } - cd('..'); - } + // $FlowFixMe[incompatible-type] + describe(`Start appium server, ${APPIUM_PID}`); + const appiumProcess = spawn('node', ['./node_modules/.bin/appium']); + APPIUM_PID = appiumProcess.pid; - if (argv.js) { - // Check the packager produces a bundle (doesn't throw an error) - describe('Test: Verify packager can generate an Android bundle'); - if ( - exec( - 'yarn react-native bundle --verbose --entry-file index.js --platform android --dev true --bundle-output android-bundle.js --max-workers 1', - ).code - ) { - throw new Error('Could not build Android bundle'); + describe('Build the app'); + if (exec('react-native run-android').code) { + throw new Error('Could not execute react-native run-android'); + } + + // $FlowFixMe[incompatible-type] + describe(`Start Metro, ${SERVER_PID}`); + // shelljs exec('', {async: true}) does not emit stdout events, so we rely on good old spawn + const packagerProcess = spawn('yarn', ['start', '--max-workers 1']); + SERVER_PID = packagerProcess.pid; + // wait a bit to allow packager to startup + exec('sleep 15s'); + describe('Test: Android end-to-end test'); + if ( + tryExecNTimes( + () => { + return exec('node node_modules/.bin/_mocha android-e2e-test.js') + .code; + }, + numberOfRetries, + () => exec('sleep 10s'), + ) + ) { + throw new Error( + 'Failed to run Android end-to-end tests. Most likely the code is broken.', + ); + } } - describe('Test: Verify packager can generate an iOS bundle'); - if ( + if (argv.ios) { + cd('ios'); + // shelljs exec('', {async: true}) does not emit stdout events, so we rely on good old spawn + const packagerEnv = Object.create(process.env); + // $FlowFixMe[prop-missing] + packagerEnv.REACT_NATIVE_MAX_WORKERS = 1; + describe('Start Metro'); + const packagerProcess = spawn('yarn', ['start'], { + stdio: 'inherit', + env: packagerEnv, + }); + SERVER_PID = packagerProcess.pid; + exec('sleep 15s'); + // prepare cache to reduce chances of possible red screen "Can't find variable __fbBatchedBridge..." exec( - 'yarn react-native bundle --entry-file index.js --platform ios --dev true --bundle-output ios-bundle.js --max-workers 1', - ).code - ) { - throw new Error('Could not build iOS bundle'); - } + 'response=$(curl --write-out %{http_code} --silent --output /dev/null localhost:8081/index.bundle?platform=ios&dev=true)', + ); + echo(`Metro is running, ${SERVER_PID}`); - describe('Test: TypeScript typechecking'); - if (exec('yarn tsc').code) { - throw new Error('Typechecking errors were found'); - } + describe('Install CocoaPod dependencies'); + exec('bundle exec pod install'); - describe('Test: Jest tests'); - if (exec('yarn test').code) { - throw new Error('Jest tests failed'); + describe('Test: iOS end-to-end test'); + if ( + // TODO: Get target OS and simulator from .tests.env + tryExecNTimes( + () => { + return exec( + [ + 'xcodebuild', + '-workspace', + '"HelloWorld.xcworkspace"', + '-destination', + '"platform=iOS Simulator,name=iPhone 8,OS=13.3"', + '-scheme', + '"HelloWorld"', + '-sdk', + 'iphonesimulator', + '-UseModernBuildSystem=NO', + 'test', + ].join(' ') + + ' | ' + + [ + 'xcbeautify', + '--report', + 'junit', + '--reportPath', + '"~/react-native/reports/junit/iOS-e2e/results.xml"', + ].join(' ') + + ' && exit ${PIPESTATUS[0]}', + ).code; + }, + numberOfRetries, + () => exec('sleep 10s'), + ) + ) { + throw new Error( + 'Failed to run iOS end-to-end tests. Most likely the code is broken.', + ); + } + cd('..'); } - // TODO: ESLint infinitely hangs when running in the environment created by - // this script, but not projects generated by `react-native init`. - /* + if (argv.js) { + // Check the packager produces a bundle (doesn't throw an error) + describe('Test: Verify packager can generate an Android bundle'); + if ( + exec( + 'yarn react-native bundle --verbose --entry-file index.js --platform android --dev true --bundle-output android-bundle.js --max-workers 1', + ).code + ) { + throw new Error('Could not build Android bundle'); + } + + describe('Test: Verify packager can generate an iOS bundle'); + if ( + exec( + 'yarn react-native bundle --entry-file index.js --platform ios --dev true --bundle-output ios-bundle.js --max-workers 1', + ).code + ) { + throw new Error('Could not build iOS bundle'); + } + + describe('Test: TypeScript typechecking'); + if (exec('yarn tsc').code) { + throw new Error('Typechecking errors were found'); + } + + describe('Test: Jest tests'); + if (exec('yarn test').code) { + throw new Error('Jest tests failed'); + } + + // TODO: ESLint infinitely hangs when running in the environment created by + // this script, but not projects generated by `react-native init`. + /* describe('Test: ESLint/Prettier linting and formatting'); if (exec('yarn lint').code) { echo('linting errors were found'); exitCode = 1; throw Error(exitCode); }*/ + } + exitCode = 0; + } finally { + describe('Clean up'); + if (SERVER_PID) { + echo(`Killing packager ${SERVER_PID}`); + exec(`kill -9 ${SERVER_PID}`); + // this is quite drastic but packager starts a daemon that we can't kill by killing the parent process + // it will be fixed in April (quote David Aurelio), so until then we will kill the zombie by the port number + exec("lsof -i tcp:8081 | awk 'NR!=1 {print $2}' | xargs kill"); + } + if (APPIUM_PID) { + echo(`Killing appium ${APPIUM_PID}`); + exec(`kill -9 ${APPIUM_PID}`); + } + if (VERDACCIO_PID) { + echo(`Killing verdaccio ${VERDACCIO_PID}`); + exec(`kill -9 ${VERDACCIO_PID}`); + } } - exitCode = 0; -} finally { - describe('Clean up'); - if (SERVER_PID) { - echo(`Killing packager ${SERVER_PID}`); - exec(`kill -9 ${SERVER_PID}`); - // this is quite drastic but packager starts a daemon that we can't kill by killing the parent process - // it will be fixed in April (quote David Aurelio), so until then we will kill the zombie by the port number - exec("lsof -i tcp:8081 | awk 'NR!=1 {print $2}' | xargs kill"); - } - if (APPIUM_PID) { - echo(`Killing appium ${APPIUM_PID}`); - exec(`kill -9 ${APPIUM_PID}`); - } - if (VERDACCIO_PID) { - echo(`Killing verdaccio ${VERDACCIO_PID}`); - exec(`kill -9 ${VERDACCIO_PID}`); - } + exit(exitCode); +} + +if (require.main === module) { + // eslint-disable-next-line no-void + void main(); } -exit(exitCode); diff --git a/scripts/monorepo/__tests__/bump-package-version-test.js b/scripts/monorepo/__tests__/bump-package-version-test.js index 1481e5ac4083fa..00dcccb7359d2e 100644 --- a/scripts/monorepo/__tests__/bump-package-version-test.js +++ b/scripts/monorepo/__tests__/bump-package-version-test.js @@ -16,8 +16,6 @@ jest.mock('fs', () => ({ readFileSync: jest.fn(() => '{}'), })); -jest.mock('../for-each-package', () => callback => {}); - describe('bumpPackageVersionTest', () => { it('updates patch version of the package', () => { const mockedPackageLocation = '~/packages/assets'; diff --git a/scripts/monorepo/__tests__/for-each-package-test.js b/scripts/monorepo/__tests__/for-each-package-test.js deleted file mode 100644 index c3154d61940702..00000000000000 --- a/scripts/monorepo/__tests__/for-each-package-test.js +++ /dev/null @@ -1,70 +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. - * - * @format - */ - -const forEachPackage = require('../for-each-package'); -const {readdirSync, readFileSync} = require('fs'); -const path = require('path'); - -jest.mock('fs', () => ({ - readdirSync: jest.fn(), - readFileSync: jest.fn(), -})); - -describe('forEachPackage', () => { - it('executes callback call with parameters', () => { - const callback = jest.fn(); - const mockedPackageManifest = '{"name": "my-new-package"}'; - const mockedParsedPackageManifest = JSON.parse(mockedPackageManifest); - const mockedPackageName = 'my-new-package'; - - readdirSync.mockImplementationOnce(() => [ - {name: mockedPackageName, isDirectory: () => true}, - ]); - readFileSync.mockImplementationOnce(() => mockedPackageManifest); - - forEachPackage(callback); - - expect(callback).toHaveBeenCalledWith( - path.join(__dirname, '..', '..', '..', 'packages', mockedPackageName), - path.join('packages', mockedPackageName), - mockedParsedPackageManifest, - ); - }); - - it('filters react-native folder by default', () => { - const callback = jest.fn(); - readdirSync.mockImplementationOnce(() => [ - {name: 'react-native', isDirectory: () => true}, - ]); - - forEachPackage(callback); - - expect(callback).not.toHaveBeenCalled(); - }); - - it('includes react-native, if such option is provided', () => { - const callback = jest.fn(); - const mockedPackageManifest = '{"name": "react-native"}'; - const mockedParsedPackageManifest = JSON.parse(mockedPackageManifest); - const mockedPackageName = 'react-native'; - - readdirSync.mockImplementationOnce(() => [ - {name: 'react-native', isDirectory: () => true}, - ]); - readFileSync.mockImplementationOnce(() => mockedPackageManifest); - - forEachPackage(callback, {includeReactNative: true}); - - expect(callback).toHaveBeenCalledWith( - path.join(__dirname, '..', '..', '..', 'packages', mockedPackageName), - path.join('packages', mockedPackageName), - mockedParsedPackageManifest, - ); - }); -}); diff --git a/scripts/monorepo/align-package-versions.js b/scripts/monorepo/align-package-versions.js index d4ca5fc36b6cf4..b30d4088b3f9a3 100644 --- a/scripts/monorepo/align-package-versions.js +++ b/scripts/monorepo/align-package-versions.js @@ -4,10 +4,16 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * + * @flow * @format + * @oncall react_native */ -const forEachPackage = require('./for-each-package'); +/*:: +import type {PackageJson} from '../utils/monorepo'; +*/ + +const {getPackages} = require('../utils/monorepo'); const {readFileSync, writeFileSync} = require('fs'); const path = require('path'); @@ -19,12 +25,13 @@ const TEMPLATE_LOCATION = path.join( 'template', ); -const readJSONFile = pathToFile => JSON.parse(readFileSync(pathToFile)); +const readJSONFile = (pathToFile /*: string */) /*: PackageJson */ => + JSON.parse(readFileSync(pathToFile, 'utf-8')); const checkIfShouldUpdateDependencyPackageVersion = ( - consumerPackageAbsolutePath, - updatedPackageName, - updatedPackageVersion, + consumerPackageAbsolutePath /*: string */, + updatedPackageName /*: string */, + updatedPackageVersion /*: string */, ) => { const consumerPackageManifestPath = path.join( consumerPackageAbsolutePath, @@ -91,8 +98,18 @@ const checkIfShouldUpdateDependencyPackageVersion = ( } }; -const alignPackageVersions = () => { - forEachPackage((_, __, packageManifest) => { +async function alignPackageVersions() { + const allPackages = await getPackages({ + includeReactNative: true, + includePrivate: true, + }); + const packagesExcludingReactNative = Object.keys(allPackages).filter( + packageName => packageName !== 'react-native', + ); + + for (const packageName of packagesExcludingReactNative) { + const {packageJson: packageManifest} = allPackages[packageName]; + checkIfShouldUpdateDependencyPackageVersion( ROOT_LOCATION, packageManifest.name, @@ -105,16 +122,14 @@ const alignPackageVersions = () => { packageManifest.version, ); - forEachPackage( - pathToPackage => - checkIfShouldUpdateDependencyPackageVersion( - pathToPackage, - packageManifest.name, - packageManifest.version, - ), - {includeReactNative: true}, - ); - }); -}; + for (const {path: pathToPackage} of Object.values(allPackages)) { + checkIfShouldUpdateDependencyPackageVersion( + pathToPackage, + packageManifest.name, + packageManifest.version, + ); + } + } +} module.exports = alignPackageVersions; diff --git a/scripts/monorepo/bump-all-updated-packages/index.js b/scripts/monorepo/bump-all-updated-packages/index.js index b619c3129c4fbd..ae8bb555a6bd36 100644 --- a/scripts/monorepo/bump-all-updated-packages/index.js +++ b/scripts/monorepo/bump-all-updated-packages/index.js @@ -9,12 +9,14 @@ * @oncall react_native */ +const {REPO_ROOT} = require('../../consts'); const {getPackageVersionStrByTag} = require('../../npm-utils'); const { isReleaseBranch, parseVersion, } = require('../../releases/utils/version-utils'); const {getBranchName} = require('../../scm-utils'); +const {getPackages} = require('../../utils/monorepo'); const alignPackageVersions = require('../align-package-versions'); const checkForGitChanges = require('../check-for-git-changes'); const { @@ -24,7 +26,6 @@ const { NO_COMMIT_CHOICE, PUBLISH_PACKAGES_TAG, } = require('../constants'); -const forEachPackage = require('../for-each-package'); const bumpPackageVersion = require('./bump-package-version'); const detectPackageUnreleasedChanges = require('./bump-utils'); const chalk = require('chalk'); @@ -33,8 +34,6 @@ const inquirer = require('inquirer'); const path = require('path'); const {echo, exec, exit} = require('shelljs'); -const ROOT_LOCATION = path.join(__dirname, '..', '..', '..'); - const buildExecutor = ( packageAbsolutePath /*: string */, @@ -53,7 +52,7 @@ const buildExecutor = !detectPackageUnreleasedChanges( packageRelativePathFromRoot, packageName, - ROOT_LOCATION, + REPO_ROOT, ) ) { return; @@ -99,16 +98,6 @@ const buildExecutor = }); }; -const buildAllExecutors = () => { - const executors = []; - - forEachPackage((...params) => { - executors.push(buildExecutor(...params)); - }); - - return executors; -}; - const main = async () => { if (checkForGitChanges()) { echo( @@ -119,8 +108,18 @@ const main = async () => { exit(1); } - const executors = buildAllExecutors(); - for (const executor of executors) { + const packages = await getPackages({ + includeReactNative: false, + includePrivate: true, + }); + + for (const pkg of Object.values(packages)) { + const executor = buildExecutor( + pkg.path, + path.relative(REPO_ROOT, pkg.path), + pkg.packageJson, + ); + await executor() .catch(() => exit(1)) .then(() => echo()); @@ -132,7 +131,7 @@ const main = async () => { } echo('Aligning new versions across monorepo...'); - alignPackageVersions(); + await alignPackageVersions(); echo(chalk.green('Done!\n')); // Figure out the npm dist-tags we want for all monorepo packages we're bumping @@ -219,7 +218,7 @@ const main = async () => { case COMMIT_WITH_GENERIC_MESSAGE_CHOICE: { exec(`git commit -am "${GENERIC_COMMIT_MESSAGE}${tagString}"`, { - cwd: ROOT_LOCATION, + cwd: REPO_ROOT, silent: true, }); @@ -229,17 +228,17 @@ const main = async () => { case COMMIT_WITH_CUSTOM_MESSAGE_CHOICE: { // exec from shelljs currently does not support interactive input // https://github.com/shelljs/shelljs/wiki/FAQ#running-interactive-programs-with-exec - execSync('git commit -a', {cwd: ROOT_LOCATION, stdio: 'inherit'}); + execSync('git commit -a', {cwd: REPO_ROOT, stdio: 'inherit'}); const enteredCommitMessage = exec('git log -n 1 --format=format:%B', { - cwd: ROOT_LOCATION, + cwd: REPO_ROOT, silent: true, }).stdout.trim(); const commitMessageWithTag = enteredCommitMessage + `\n\n${PUBLISH_PACKAGES_TAG}${tagString}`; exec(`git commit --amend -m "${commitMessageWithTag}"`, { - cwd: ROOT_LOCATION, + cwd: REPO_ROOT, silent: true, }); diff --git a/scripts/monorepo/for-each-package.js b/scripts/monorepo/for-each-package.js deleted file mode 100644 index 49d7c9eee3f028..00000000000000 --- a/scripts/monorepo/for-each-package.js +++ /dev/null @@ -1,69 +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 - */ - -const {PACKAGES_DIR} = require('../consts'); -const {readdirSync, readFileSync} = require('fs'); -const path = require('path'); - -const DEFAULT_OPTIONS /*: Options */ = {includeReactNative: false}; - -/*:: -type PackageJSON = { - name: string, - private?: ?boolean, - version: string, - dependencies: {[string]: string}, - devDependencies: {[string]: string}, - ... -}; - -type Options = { - includeReactNative?: ?boolean, -}; -*/ - -/** - * Function, which returns an array of all directories inside specified location - */ -const getDirectories = (source /*: string */) /*: Array */ => - readdirSync(source, {withFileTypes: true}) - .filter(file => file.isDirectory()) - .map(directory => directory.name.toString()); -/** - * Iterate through every package inside /packages (ignoring react-native) and call provided callback for each of them - * - * @deprecated Use scripts/releases/utils/monorepo.js#getPackages instead - */ -const forEachPackage = ( - callback /*: (string, string, PackageJSON) => void */, - options /*: Options */ = DEFAULT_OPTIONS, -) => { - const {includeReactNative} = options; - - // We filter react-native package on purpose, so that no CI's script will be executed for this package in future - // Unless includeReactNative options is provided - const packagesDirectories = getDirectories(PACKAGES_DIR).filter( - directoryName => - directoryName !== 'react-native' || includeReactNative === true, - ); - - packagesDirectories.forEach(packageDirectory => { - const packageAbsolutePath = path.join(PACKAGES_DIR, packageDirectory); - const packageRelativePathFromRoot = path.join('packages', packageDirectory); - - const packageManifest = JSON.parse( - readFileSync(path.join(packageAbsolutePath, 'package.json')).toString(), - ); - - callback(packageAbsolutePath, packageRelativePathFromRoot, packageManifest); - }); -}; - -module.exports = forEachPackage; diff --git a/scripts/monorepo/print/index.js b/scripts/monorepo/print/index.js index 5846837ddfaf02..4783c5c02f37b6 100644 --- a/scripts/monorepo/print/index.js +++ b/scripts/monorepo/print/index.js @@ -8,7 +8,7 @@ */ const {getVersionsBySpec} = require('../../npm-utils'); -const forEachPackage = require('../for-each-package'); +const {getPackages} = require('../../utils/monorepo'); const {exit} = require('shelljs'); const yargs = require('yargs'); @@ -41,40 +41,46 @@ function reversePatchComp(semverA, semverB) { return patchB - patchA; } -const main = () => { +async function main() { const data = []; - forEachPackage( - (_packageAbsolutePath, _packageRelativePathFromRoot, packageManifest) => { - const isPublic = !packageManifest.private; - if ( - type === 'all' || - (type === 'private' && !isPublic) || - (type === 'public' && isPublic) - ) { - const packageInfo = { - 'Public?': isPublic ? '\u{2705}' : '\u{274C}', - Name: packageManifest.name, - 'Version (main)': packageManifest.version, - }; + const packages = await getPackages({ + includeReactNative: true, + includePrivate: true, + }); - if (isPublic && minor !== 0) { - try { - const versions = getVersionsBySpec( - packageManifest.name, - `^0.${minor}.0`, - ).sort(reversePatchComp); - packageInfo[`Version (${minor})`] = versions[0]; - } catch (e) { - packageInfo[`Version (${minor})`] = e.message; - } + for (const {packageJson} of Object.values(packages)) { + const isPublic = !packageJson.private; + if ( + type === 'all' || + (type === 'private' && !isPublic) || + (type === 'public' && isPublic) + ) { + const packageInfo = { + 'Public?': isPublic ? '\u{2705}' : '\u{274C}', + Name: packageJson.name, + 'Version (main)': packageJson.version, + }; + + if (isPublic && minor !== 0) { + try { + const versions = getVersionsBySpec( + packageJson.name, + `^0.${minor}.0`, + ).sort(reversePatchComp); + packageInfo[`Version (${minor})`] = versions[0]; + } catch (e) { + packageInfo[`Version (${minor})`] = e.message; } - data.push(packageInfo); } - }, - {includeReactNative: true}, - ); + data.push(packageInfo); + } + } + console.table(data); exit(0); -}; +} -main(); +if (require.main === module) { + // eslint-disable-next-line no-void + void main(); +} diff --git a/scripts/releases-ci/__tests__/publish-npm-test.js b/scripts/releases-ci/__tests__/publish-npm-test.js index c8852d37a50179..3dd4230b14f168 100644 --- a/scripts/releases-ci/__tests__/publish-npm-test.js +++ b/scripts/releases-ci/__tests__/publish-npm-test.js @@ -121,14 +121,14 @@ describe('publish-npm', () => { describe("publishNpm('nightly')", () => { beforeAll(() => { - jest.mock('../../releases/utils/monorepo', () => ({ - ...jest.requireActual('../../releases/utils/monorepo'), + jest.mock('../../utils/monorepo', () => ({ + ...jest.requireActual('../../utils/monorepo'), getPackages: getPackagesMock, })); }); afterAll(() => { - jest.unmock('../../releases/utils/monorepo'); + jest.unmock('../../utils/monorepo'); }); it('should publish', async () => { diff --git a/scripts/releases-ci/__tests__/publish-updated-packages-test.js b/scripts/releases-ci/__tests__/publish-updated-packages-test.js index 9f7845ba93e10d..c2b1918c819a53 100644 --- a/scripts/releases-ci/__tests__/publish-updated-packages-test.js +++ b/scripts/releases-ci/__tests__/publish-updated-packages-test.js @@ -21,7 +21,7 @@ const fetchMock = jest.fn(); jest.mock('child_process', () => ({execSync})); jest.mock('shelljs', () => ({exec: execMock})); -jest.mock('../../releases/utils/monorepo', () => ({ +jest.mock('../../utils/monorepo', () => ({ getPackages: getPackagesMock, })); // $FlowIgnore[cannot-write] diff --git a/scripts/releases-ci/publish-npm.js b/scripts/releases-ci/publish-npm.js index ddb38248f96b1e..26933699cb900d 100755 --- a/scripts/releases-ci/publish-npm.js +++ b/scripts/releases-ci/publish-npm.js @@ -20,11 +20,11 @@ const {getNpmInfo, publishPackage} = require('../npm-utils'); const {removeNewArchFlags} = require('../releases/remove-new-arch-flags'); const {setReactNativeVersion} = require('../releases/set-rn-version'); const setVersion = require('../releases/set-version'); -const {getPackages} = require('../releases/utils/monorepo'); const { generateAndroidArtifacts, publishAndroidArtifactsToMaven, } = require('../releases/utils/release-utils'); +const {getPackages} = require('../utils/monorepo'); const path = require('path'); const yargs = require('yargs'); diff --git a/scripts/releases-ci/publish-updated-packages.js b/scripts/releases-ci/publish-updated-packages.js index f20a7d5b45bf95..56b4bd61003f5f 100644 --- a/scripts/releases-ci/publish-updated-packages.js +++ b/scripts/releases-ci/publish-updated-packages.js @@ -11,7 +11,7 @@ const {PUBLISH_PACKAGES_TAG} = require('../monorepo/constants'); const {publishPackage} = require('../npm-utils'); -const {getPackages} = require('../releases/utils/monorepo'); +const {getPackages} = require('../utils/monorepo'); const {parseArgs} = require('@pkgjs/parseargs'); const {execSync} = require('child_process'); diff --git a/scripts/releases-local/trigger-react-native-release.js b/scripts/releases-local/trigger-react-native-release.js index 8ee7609b4dba6e..6185d478a7edf1 100644 --- a/scripts/releases-local/trigger-react-native-release.js +++ b/scripts/releases-local/trigger-react-native-release.js @@ -14,15 +14,16 @@ const {REPO_ROOT} = require('../consts'); const detectPackageUnreleasedChanges = require('../monorepo/bump-all-updated-packages/bump-utils.js'); const checkForGitChanges = require('../monorepo/check-for-git-changes'); -const forEachPackage = require('../monorepo/for-each-package'); const {failIfTagExists} = require('../releases/utils/release-utils'); const { isReleaseBranch, parseVersion, } = require('../releases/utils/version-utils'); const {exitIfNotOnGit, getBranchName} = require('../scm-utils'); +const {getPackages} = require('../utils/monorepo'); const chalk = require('chalk'); const inquirer = require('inquirer'); +const path = require('path'); const request = require('request'); const {echo, exit} = require('shelljs'); const yargs = require('yargs'); @@ -101,22 +102,22 @@ const buildExecutor = } }; -const buildAllExecutors = () => { - const executors = []; - - forEachPackage((...params) => { - executors.push(buildExecutor(...params)); - }); - - return executors; -}; - async function exitIfUnreleasedPackages() { // use the other script to verify that there's no packages in the monorepo // that have changes that haven't been released - const executors = buildAllExecutors(); - for (const executor of executors) { + const packages = await getPackages({ + includeReactNative: false, + includePrivate: true, + }); + + for (const pkg of Object.values(packages)) { + const executor = buildExecutor( + pkg.path, + path.relative(REPO_ROOT, pkg.path), + pkg.packageJson, + ); + await executor().catch(error => { echo(chalk.red(error)); // need to throw upward diff --git a/scripts/releases/set-version/index.js b/scripts/releases/set-version/index.js index 443863565dc383..20d241d891052c 100644 --- a/scripts/releases/set-version/index.js +++ b/scripts/releases/set-version/index.js @@ -12,11 +12,11 @@ 'use strict'; /*:: -import type {PackageJson} from '../utils/monorepo'; +import type {PackageJson} from '../../utils/monorepo'; */ +const {getPackages} = require('../../utils/monorepo'); const {setReactNativeVersion} = require('../set-rn-version'); -const {getPackages} = require('../utils/monorepo'); const {promises: fs} = require('fs'); const path = require('path'); const yargs = require('yargs'); diff --git a/scripts/releases/utils/monorepo.js b/scripts/utils/monorepo.js similarity index 91% rename from scripts/releases/utils/monorepo.js rename to scripts/utils/monorepo.js index 4908f951e8ee3a..627e44b63f2a8b 100644 --- a/scripts/releases/utils/monorepo.js +++ b/scripts/utils/monorepo.js @@ -9,7 +9,7 @@ * @oncall react_native */ -const {REPO_ROOT} = require('../../consts'); +const {REPO_ROOT} = require('../consts'); const fs = require('fs'); const glob = require('glob'); const path = require('path'); @@ -67,7 +67,7 @@ async function getPackages( }) .map(async packageJsonPath => { const packagePath = path.dirname(packageJsonPath); - const packageJson = JSON.parse( + const packageJson /*: PackageJson */ = JSON.parse( await fs.promises.readFile(packageJsonPath, 'utf-8'), ); @@ -84,7 +84,7 @@ async function getPackages( return Object.fromEntries( packagesEntries.filter( - ([_, {packageJson}]) => !packageJson.private || includePrivate, + ([_, {packageJson}]) => packageJson.private !== true || includePrivate, ), ); } From 4e677f021ab61e31a02e011c81b578c0d45fcee1 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 4 Mar 2024 02:54:44 -0800 Subject: [PATCH 061/223] Update set-version script to version private packages and workspace deps Summary: Addresses a gap when using the `set-version` script to update all packages on `main` (i.e. post branch cut): - Package versions were not being set consistently. It is safe to version all workspace packages, including `"private"`. - Our publishing workflow is independent from this, and only considers public packages for submission to npm. - We also need to update the root `package.json`, which includes `devDependencies` referencing workspace dependencies. Unblocks https://github.com/facebook/react-native/pull/43132. Changelog: [Internal] Reviewed By: lunaleaps Differential Revision: D54419456 fbshipit-source-id: 93eee669c5cf7c2f16b68a2bf41e9a8ace5521bf --- .../__tests__/__fixtures__/package.json | 8 ++++ .../__snapshots__/set-version-test.js.snap | 48 +++++++++++++++++++ scripts/releases/set-version/index.js | 17 +++---- scripts/utils/monorepo.js | 46 ++++++++++++------ 4 files changed, 96 insertions(+), 23 deletions(-) create mode 100644 scripts/releases/set-version/__tests__/__fixtures__/package.json diff --git a/scripts/releases/set-version/__tests__/__fixtures__/package.json b/scripts/releases/set-version/__tests__/__fixtures__/package.json new file mode 100644 index 00000000000000..f8a85180bf959f --- /dev/null +++ b/scripts/releases/set-version/__tests__/__fixtures__/package.json @@ -0,0 +1,8 @@ +{ + "name": "@react-native/monorepo", + "private": true, + "version": "1000.0.0", + "devDependencies": { + "@monorepo/pkg-c": "0.0.1" + } +} diff --git a/scripts/releases/set-version/__tests__/__snapshots__/set-version-test.js.snap b/scripts/releases/set-version/__tests__/__snapshots__/set-version-test.js.snap index 33c0979d209f4c..174df2705eea81 100644 --- a/scripts/releases/set-version/__tests__/__snapshots__/set-version-test.js.snap +++ b/scripts/releases/set-version/__tests__/__snapshots__/set-version-test.js.snap @@ -1,5 +1,17 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`setVersion updates monorepo for nightly: package.json 1`] = ` +"{ + \\"name\\": \\"@react-native/monorepo\\", + \\"private\\": true, + \\"version\\": \\"1000.0.0\\", + \\"devDependencies\\": { + \\"@monorepo/pkg-c\\": \\"0.81.0-nightly-29282302-abcd1234\\" + } +} +" +`; + exports[`setVersion updates monorepo for nightly: packages/monorepo-pkg-a/package.json 1`] = ` "{ \\"name\\": \\"@monorepo/pkg-a\\", @@ -198,6 +210,18 @@ exports[`setVersion updates monorepo for nightly: packages/react-native/template " `; +exports[`setVersion updates monorepo for release-candidate: package.json 1`] = ` +"{ + \\"name\\": \\"@react-native/monorepo\\", + \\"private\\": true, + \\"version\\": \\"1000.0.0\\", + \\"devDependencies\\": { + \\"@monorepo/pkg-c\\": \\"0.80.0-rc.3\\" + } +} +" +`; + exports[`setVersion updates monorepo for release-candidate: packages/monorepo-pkg-a/package.json 1`] = ` "{ \\"name\\": \\"@monorepo/pkg-a\\", @@ -396,6 +420,18 @@ exports[`setVersion updates monorepo for release-candidate: packages/react-nativ " `; +exports[`setVersion updates monorepo for stable version: package.json 1`] = ` +"{ + \\"name\\": \\"@react-native/monorepo\\", + \\"private\\": true, + \\"version\\": \\"1000.0.0\\", + \\"devDependencies\\": { + \\"@monorepo/pkg-c\\": \\"0.80.1\\" + } +} +" +`; + exports[`setVersion updates monorepo for stable version: packages/monorepo-pkg-a/package.json 1`] = ` "{ \\"name\\": \\"@monorepo/pkg-a\\", @@ -594,6 +630,18 @@ exports[`setVersion updates monorepo for stable version: packages/react-native/t " `; +exports[`setVersion updates monorepo on main after release cut: package.json 1`] = ` +"{ + \\"name\\": \\"@react-native/monorepo\\", + \\"private\\": true, + \\"version\\": \\"1000.0.0\\", + \\"devDependencies\\": { + \\"@monorepo/pkg-c\\": \\"0.82.0-main\\" + } +} +" +`; + exports[`setVersion updates monorepo on main after release cut: packages/monorepo-pkg-a/package.json 1`] = ` "{ \\"name\\": \\"@monorepo/pkg-a\\", diff --git a/scripts/releases/set-version/index.js b/scripts/releases/set-version/index.js index 20d241d891052c..f986487e19802b 100644 --- a/scripts/releases/set-version/index.js +++ b/scripts/releases/set-version/index.js @@ -15,7 +15,7 @@ import type {PackageJson} from '../../utils/monorepo'; */ -const {getPackages} = require('../../utils/monorepo'); +const {getPackages, getWorkspaceRoot} = require('../../utils/monorepo'); const {setReactNativeVersion} = require('../set-rn-version'); const {promises: fs} = require('fs'); const path = require('path'); @@ -61,7 +61,7 @@ async function updatePackageJson( * stays 1000.0.0. * * This script does the following: - * - Update all public npm packages under `/packages` to specified version + * - Update all packages under `/packages` to specified version * - Update all npm dependencies of a `/packages` package to specified version * - Update npm dependencies of the template app (`packages/react-native/template`) to specified version * - Update `packages/react-native` native source and build files to specified version if relevant @@ -71,7 +71,7 @@ async function setVersion( skipReactNativeVersion /*: boolean */ = false, ) /*: Promise */ { const packages = await getPackages({ - includePrivate: false, + includePrivate: true, includeReactNative: true, }); const newPackageVersions = Object.fromEntries( @@ -83,11 +83,12 @@ async function setVersion( newPackageVersions, ); - // Exclude the react-native package, since this (and the template) are - // handled by `setReactNativeVersion`. - const packagesToUpdate = Object.values(packages).filter( - pkg => pkg.name !== 'react-native', - ); + const packagesToUpdate = [ + await getWorkspaceRoot(), + // Exclude the react-native package, since this (and the template) are + // handled by `setReactNativeVersion`. + ...Object.values(packages).filter(pkg => pkg.name !== 'react-native'), + ]; await Promise.all( packagesToUpdate.map(({path: packagePath, packageJson}) => diff --git a/scripts/utils/monorepo.js b/scripts/utils/monorepo.js index 627e44b63f2a8b..304ee9c37c2ec1 100644 --- a/scripts/utils/monorepo.js +++ b/scripts/utils/monorepo.js @@ -65,21 +65,7 @@ async function getPackages( ? [] : ['packages/react-native/package.json'], }) - .map(async packageJsonPath => { - const packagePath = path.dirname(packageJsonPath); - const packageJson /*: PackageJson */ = JSON.parse( - await fs.promises.readFile(packageJsonPath, 'utf-8'), - ); - - return [ - packageJson.name, - { - name: packageJson.name, - path: packagePath, - packageJson, - }, - ]; - }), + .map(parsePackageInfo), ); return Object.fromEntries( @@ -89,6 +75,36 @@ async function getPackages( ); } +/** + * Get the parsed package metadata for the workspace root. + */ +async function getWorkspaceRoot() /*: Promise */ { + const [, packageInfo] = await parsePackageInfo( + path.join(REPO_ROOT, 'package.json'), + ); + + return packageInfo; +} + +async function parsePackageInfo( + packageJsonPath /*: string */, +) /*: Promise<[string, PackageInfo]> */ { + const packagePath = path.dirname(packageJsonPath); + const packageJson /*: PackageJson */ = JSON.parse( + await fs.promises.readFile(packageJsonPath, 'utf-8'), + ); + + return [ + packageJson.name, + { + name: packageJson.name, + path: packagePath, + packageJson, + }, + ]; +} + module.exports = { getPackages, + getWorkspaceRoot, }; From ff5d87db3e39a4bd2075a53f09c1e843d8c6fc08 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 5 Mar 2024 06:18:37 -0800 Subject: [PATCH 062/223] Fix E2E template install in CI jobs (#43323) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43323 This fixes a seemingly pre-existent misconfiguration within our `test_ios_template` E2E test setup in CircleCI. **Background** We call `npx react-native-community/cli init` with the `--skip-install` flag, as part of the bootstrapping logic in `scripts/e2e/init-template-e2e.js`. This is necessary because we later want to explicitly call `npm install` with a custom `--registry` for our locally mirrored packages (via Verdaccio). For some reason, we were observing unexpected differences when this was run under CircleCI: 1. Runs `yarn init` 2. Runs a `yarn add` (unknown pkg) {F1464781818} https://app.circleci.com/pipelines/github/facebook/react-native/42725/workflows/f648468b-e916-4501-887d-ad293aa6fccf/jobs/1398950 This is causing a Yarn-based install ahead of where we want — ignoring the `--skip-install` flag. *I'm still unsure on the exact LOC cause in CLI* (but most likely, it's around the Yarn v3 move). **Impact of this fix** - The above meant that, when we were bootstrapping `test_ios_template` previously, packages weren't being read from Verdaccio, but **instead from npm** — using the `"0.74.0"` versions from the *previous branch cut* ❌. - After D54006327, this behaviour became breaking 💀 — since for the 0.74 -> 0.75 cut, we no longer physically published `"0.75.0-main"` (new format) packages to npm. **This change** I'm passing `--pm npm` to `npx react-native-community/cli init` to skip around any Yarn behaviour. This appears to have removed the erroneous `yarn` invocations ✅. Changelog: [Internal] bypass-github-export-checks Reviewed By: cortinico, cipolleschi Differential Revision: D54536848 fbshipit-source-id: 473b11924955f5787c82a6c81d4527d77b810aa5 --- scripts/e2e/init-template-e2e.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/e2e/init-template-e2e.js b/scripts/e2e/init-template-e2e.js index 24cfff72aaaf71..b70e6768c54a08 100644 --- a/scripts/e2e/init-template-e2e.js +++ b/scripts/e2e/init-template-e2e.js @@ -121,8 +121,8 @@ async function initNewProjectFromSource( --directory ${directory} \ --template ${templatePath} \ --verbose \ - --skip-install \ - --yarn-config-options npmRegistryServer="${VERDACCIO_SERVER_URL}"`, + --pm npm \ + --skip-install`, { // Avoid loading packages/react-native/react-native.config.js cwd: REPO_ROOT, From 40a4df06374810391286b518966016b7d58d9c18 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Fri, 15 Mar 2024 10:32:07 -0700 Subject: [PATCH 063/223] Fix RNTester Podfile.lock update in release workflow (#43513) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43513 The previous `update_podfile_lock.sh` script would fail as executed from the repo root (could not locate RNTester dir). Delete this and replace with direct calls in `prepare-package-for-release.js`, which will fail script on error. {F1469216632} Changelog: [Internal] Reviewed By: cortinico Differential Revision: D54949214 fbshipit-source-id: 4f032069e803e84f835c279d01332d16787dfafc --- scripts/consts.js | 10 +++++++ .../prepare-package-for-release.js | 22 +++++++++++---- scripts/update_podfile_lock.sh | 27 ------------------- 3 files changed, 27 insertions(+), 32 deletions(-) delete mode 100755 scripts/update_podfile_lock.sh diff --git a/scripts/consts.js b/scripts/consts.js index a4528fea7dceb6..6c127fc56c967a 100644 --- a/scripts/consts.js +++ b/scripts/consts.js @@ -36,9 +36,19 @@ const REACT_NATIVE_PACKAGE_DIR /*: string */ = path.join( 'react-native', ); +/** + * The absolute path to the rn-tester package. + */ +const RN_TESTER_DIR /*: string */ = path.join( + REPO_ROOT, + 'packages', + 'rn-tester', +); + module.exports = { PACKAGES_DIR, REACT_NATIVE_PACKAGE_DIR, REPO_ROOT, + RN_TESTER_DIR, SCRIPTS_DIR, }; diff --git a/scripts/releases-ci/prepare-package-for-release.js b/scripts/releases-ci/prepare-package-for-release.js index 7969b8b1ccd566..174df02cdcddec 100755 --- a/scripts/releases-ci/prepare-package-for-release.js +++ b/scripts/releases-ci/prepare-package-for-release.js @@ -11,12 +11,14 @@ 'use strict'; +const {RN_TESTER_DIR} = require('../consts'); const {setReactNativeVersion} = require('../releases/set-rn-version'); const {failIfTagExists} = require('../releases/utils/release-utils'); const { isReleaseBranch, parseVersion, } = require('../releases/utils/version-utils'); +const {execSync} = require('child_process'); const {echo, exec, exit} = require('shelljs'); const yargs = require('yargs'); @@ -95,11 +97,21 @@ async function main() { } // Release builds should commit the version bumps, and create tags. - echo('Updating RNTester Podfile.lock...'); - if (exec('source scripts/update_podfile_lock.sh && update_pods').code) { - echo('Failed to update RNTester Podfile.lock.'); - echo('Fix the issue, revert and try again.'); - exit(1); + try { + console.log('Updating RNTester Podfile.lock'); + execSync( + ` + bundle install; + bundle exec pod install; + `, + {cwd: RN_TESTER_DIR, stdio: 'inherit'}, + ); + } catch (e) { + console.error('Failed to update RNTester Podfile.lock.'); + console.error('Fix the issue, revert and try again.'); + + process.exitCode = 1; + return; } echo(`Local checkout has been prepared for release version ${version}.`); diff --git a/scripts/update_podfile_lock.sh b/scripts/update_podfile_lock.sh deleted file mode 100755 index 4a65df8c9d909a..00000000000000 --- a/scripts/update_podfile_lock.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -# 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. - -# This script updates RNTester Podfile.lock after verifying the CocoaPods environment. -# Usage: -# source scripts/update_podfile_lock && update_pods - -THIS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -RNTESTER_DIR="$THIS_DIR/../packages/rn-tester" - -# Keep this separate for FB internal access. -validate_env () { - cd "$RNTESTER_DIR" || exit - bundle check || exit - cd "$THIS_DIR" || exit -} - -update_pods () { - cd "$RNTESTER_DIR" || exit - bundle install || exit - bundle check || exit - bundle exec pod install - cd "$THIS_DIR" || exit -} From daf012a958efeda7a86cf1476dd0553146393b26 Mon Sep 17 00:00:00 2001 From: Kudo Chien Date: Fri, 8 Mar 2024 02:30:17 -0800 Subject: [PATCH 064/223] Add registerCallableModule types (#43366) Summary: `registerCallableModule()` was added from 7f549ec7bebe but no typescript types there. this pr tries to add the corresponding types. ## Changelog: [GENERAL] [FIXED] - Add missing `registerCallableModule` TypeScript definitions Pull Request resolved: https://github.com/facebook/react-native/pull/43366 Test Plan: patch locally and try to `import { registerCallableModule } from 'react-native';` in a 0.74.0-rc.2 project Reviewed By: fabriziocucci Differential Revision: D54676151 Pulled By: cortinico fbshipit-source-id: cd01f2ebe2d2516b458fae5b2e83cba3d3794455 --- .../Libraries/Core/registerCallableModule.d.ts | 16 ++++++++++++++++ packages/react-native/types/index.d.ts | 1 + 2 files changed, 17 insertions(+) create mode 100644 packages/react-native/Libraries/Core/registerCallableModule.d.ts diff --git a/packages/react-native/Libraries/Core/registerCallableModule.d.ts b/packages/react-native/Libraries/Core/registerCallableModule.d.ts new file mode 100644 index 00000000000000..05d9e92da7c717 --- /dev/null +++ b/packages/react-native/Libraries/Core/registerCallableModule.d.ts @@ -0,0 +1,16 @@ +/** + * 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 + */ + +type Module = Object; +type RegisterCallableModule = ( + name: string, + moduleOrFactory: Module | (() => Module), +) => void; + +export const registerCallableModule: RegisterCallableModule; diff --git a/packages/react-native/types/index.d.ts b/packages/react-native/types/index.d.ts index b23e2e0a2ff267..5aeec0685ed009 100644 --- a/packages/react-native/types/index.d.ts +++ b/packages/react-native/types/index.d.ts @@ -103,6 +103,7 @@ export * from '../Libraries/Components/View/View'; export * from '../Libraries/Components/View/ViewAccessibility'; export * from '../Libraries/Components/View/ViewPropTypes'; export * from '../Libraries/Components/Button'; +export * from '../Libraries/Core/registerCallableModule'; export * from '../Libraries/DevToolsSettings/DevToolsSettingsManager'; export * from '../Libraries/EventEmitter/NativeEventEmitter'; export * from '../Libraries/EventEmitter/RCTDeviceEventEmitter'; From bdb1034e3e3cf3510bb08f9c15946010973eafea Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 18 Mar 2024 11:31:25 +0000 Subject: [PATCH 065/223] [LOCAL] Fix new release workflow script --- scripts/releases-local/trigger-react-native-release.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/releases-local/trigger-react-native-release.js b/scripts/releases-local/trigger-react-native-release.js index 6185d478a7edf1..a878c8d81dae2a 100644 --- a/scripts/releases-local/trigger-react-native-release.js +++ b/scripts/releases-local/trigger-react-native-release.js @@ -258,11 +258,6 @@ async function main() { const parameters = useNewWorkflow ? { - release_version: version, - release_latest: latest, - run_release_workflow: true, - } - : { run_new_release_workflow: true, release_version: version, release_tag: npmTag, @@ -270,6 +265,11 @@ async function main() { release_monorepo_packages_version: nextMonorepoPackagesVersion, // $FlowFixMe[prop-missing] release_dry_run: argv.dryRun, + } + : { + release_version: version, + release_latest: latest, + run_release_workflow: true, }; const options = { From d6ee80959e69ecb053e25309c16cf931f00e9383 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 18 Mar 2024 14:21:45 +0000 Subject: [PATCH 066/223] [LOCAL] Revert Podfile.lock error handling in CI script, remove same step from new workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It looks like this always failed (recent example from RC3: https://app.circleci.com/pipelines/github/facebook/react-native/42625/workflows/911813aa-8c1c-4c7f-8382-5d67d3551923/jobs/1396276), but since #43513 this now correctly raises as an error to CircleCI. To unblock our release: - Revert. - Also remove "Updating RNTester Podfile.lock" entirely from `prepare_release_new` job — technically this isn't in the critical path for making a release, but is part of consistent branch state _post release_. Changelog: [Internal] --- .circleci/configurations/jobs.yml | 6 ------ scripts/releases-ci/prepare-package-for-release.js | 6 ++++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.circleci/configurations/jobs.yml b/.circleci/configurations/jobs.yml index 673a4dff4ec6a8..eb78761ee0c794 100644 --- a/.circleci/configurations/jobs.yml +++ b/.circleci/configurations/jobs.yml @@ -1142,12 +1142,6 @@ jobs: name: Versioning react-native package command: | node scripts/releases/set-rn-version.js -v "<< parameters.version >>" --build-type "release" - - run: - name: Updating RNTester Podfile.lock - command: | - cd packages/rn-tester/ - bundle install - bundle exec pod install - run: name: Creating release commit command: | diff --git a/scripts/releases-ci/prepare-package-for-release.js b/scripts/releases-ci/prepare-package-for-release.js index 174df02cdcddec..1d14f761055a5e 100755 --- a/scripts/releases-ci/prepare-package-for-release.js +++ b/scripts/releases-ci/prepare-package-for-release.js @@ -110,8 +110,10 @@ async function main() { console.error('Failed to update RNTester Podfile.lock.'); console.error('Fix the issue, revert and try again.'); - process.exitCode = 1; - return; + // TODO(T182699844): We've suppressed this failure to unblock the release. + // This previously was failing, but was not causing a error exit code. + // process.exitCode = 1; + // return; } echo(`Local checkout has been prepared for release version ${version}.`); From 8535f496d2c0840eaa6a5e4ae43317d986d3e217 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 18 Mar 2024 14:31:58 +0000 Subject: [PATCH 067/223] [LOCAL] Fix new release workflow script (2) --- scripts/releases-local/trigger-react-native-release.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/releases-local/trigger-react-native-release.js b/scripts/releases-local/trigger-react-native-release.js index a878c8d81dae2a..3766ea3aba9135 100644 --- a/scripts/releases-local/trigger-react-native-release.js +++ b/scripts/releases-local/trigger-react-native-release.js @@ -185,7 +185,7 @@ async function main() { } // $FlowFixMe[prop-missing] - const useNewWorkflow: boolean = argv.useNewWorkflow; + const useNewWorkflow /*: boolean */ = argv.useNewWorkflow; // now check for unreleased packages if (!useNewWorkflow) { From eadf9203bf91a3b57c4a91c9984eebeaadab5c00 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 18 Mar 2024 15:02:09 +0000 Subject: [PATCH 068/223] [LOCAL] Fix new release workflow script (3) --- .circleci/configurations/jobs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/configurations/jobs.yml b/.circleci/configurations/jobs.yml index eb78761ee0c794..642ffe234cf1ca 100644 --- a/.circleci/configurations/jobs.yml +++ b/.circleci/configurations/jobs.yml @@ -1145,9 +1145,9 @@ jobs: - run: name: Creating release commit command: | - git commit -a -m "Release << parameters.version >>\n\n#publish-packages-to-npm&<< parameters.tag >>" + git commit -a -m "Release << parameters.version >>" -m "#publish-packages-to-npm&<< parameters.tag >>" git tag -a "v<< parameters.version >>" -m "v<< parameters.version >>" - git show HEAD + env GIT_PAGER=cat git show HEAD - when: condition: equal: ["latest", << parameters.tag >>] From 907bd438ff209f9a4e3f3bdfc6f6264bb25564c8 Mon Sep 17 00:00:00 2001 From: Distiller Date: Mon, 18 Mar 2024 15:20:38 +0000 Subject: [PATCH 069/223] Release 0.74.0-rc.4 #publish-packages-to-npm&next --- package.json | 4 +-- packages/assets/package.json | 2 +- packages/babel-plugin-codegen/package.json | 4 +-- packages/community-cli-plugin/package.json | 6 ++-- packages/debugger-frontend/package.json | 2 +- packages/dev-middleware/package.json | 4 +-- .../eslint-config-react-native/package.json | 4 +-- .../eslint-plugin-react-native/package.json | 2 +- packages/eslint-plugin-specs/package.json | 4 +-- packages/hermes-inspector-msggen/package.json | 2 +- packages/metro-config/package.json | 6 ++-- packages/normalize-color/package.json | 2 +- packages/polyfills/package.json | 2 +- .../react-native-babel-preset/package.json | 4 +-- .../package.json | 4 +-- packages/react-native-bots/package.json | 2 +- .../package.json | 4 +-- packages/react-native-codegen/package.json | 2 +- .../react-native-gradle-plugin/package.json | 2 +- .../package.json | 4 +-- .../react-native-test-renderer/package.json | 30 ++++++++++--------- .../Libraries/Core/ReactNativeVersion.js | 2 +- packages/react-native/React/Base/RCTVersion.m | 2 +- .../ReactAndroid/gradle.properties | 2 +- .../systeminfo/ReactNativeVersion.java | 2 +- .../ReactCommon/cxxreact/ReactNativeVersion.h | 2 +- packages/react-native/package.json | 16 +++++----- packages/react-native/template/package.json | 10 +++---- packages/rn-tester-e2e/package.json | 2 +- packages/rn-tester/package.json | 4 +-- packages/typescript-config/package.json | 2 +- packages/virtualized-lists/package.json | 2 +- 32 files changed, 72 insertions(+), 70 deletions(-) diff --git a/package.json b/package.json index 57179b64da1205..444d26a11fffa8 100644 --- a/package.json +++ b/package.json @@ -59,8 +59,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.74.2", - "@react-native/metro-config": "0.74.2", + "@react-native/metro-babel-transformer": "0.74.75", + "@react-native/metro-config": "0.74.75", "@tsconfig/node18": "1.0.1", "@types/react": "^18.0.18", "@typescript-eslint/parser": "^6.7.4", diff --git a/packages/assets/package.json b/packages/assets/package.json index 616930179d1867..46e5b003dcdf4d 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/assets-registry", - "version": "0.74.0", + "version": "0.74.75", "description": "Asset support code for React Native.", "license": "MIT", "repository": { diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index 7f5f6e2966558a..ec1f9e5c96e3e5 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-plugin-codegen", - "version": "0.74.2", + "version": "0.74.75", "description": "Babel plugin to generate native module and view manager code for React Native.", "license": "MIT", "repository": { @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@react-native/codegen": "0.74.2" + "@react-native/codegen": "0.74.75" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 11e66f4b89bc32..0ea52604cd4774 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.5", + "version": "0.74.75", "description": "Core CLI commands for React Native", "keywords": [ "react-native", @@ -24,8 +24,8 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.2", "@react-native-community/cli-tools": "13.6.2", - "@react-native/dev-middleware": "0.74.3", - "@react-native/metro-babel-transformer": "0.74.2", + "@react-native/dev-middleware": "0.74.75", + "@react-native/metro-babel-transformer": "0.74.75", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", diff --git a/packages/debugger-frontend/package.json b/packages/debugger-frontend/package.json index 6bd64d33a65c01..f80faa5d6ff875 100644 --- a/packages/debugger-frontend/package.json +++ b/packages/debugger-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/debugger-frontend", - "version": "0.74.1", + "version": "0.74.75", "description": "Debugger frontend for React Native based on Chrome DevTools", "keywords": [ "react-native", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index 8fe69b4251dafa..d2f7856ff6db0c 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.3", + "version": "0.74.75", "description": "Dev server middleware for React Native", "keywords": [ "react-native", @@ -23,7 +23,7 @@ ], "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.1", + "@react-native/debugger-frontend": "0.74.75", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index 1ee1d03eb1bd73..fda8ae4210431f 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-config", - "version": "0.74.1", + "version": "0.74.75", "description": "ESLint config for React Native", "license": "MIT", "repository": { @@ -22,7 +22,7 @@ "dependencies": { "@babel/core": "^7.20.0", "@babel/eslint-parser": "^7.20.0", - "@react-native/eslint-plugin": "0.74.1", + "@react-native/eslint-plugin": "0.74.75", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "eslint-config-prettier": "^8.5.0", diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index a7dfa439ae6c12..634e280681924a 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin", - "version": "0.74.1", + "version": "0.74.75", "description": "ESLint rules for @react-native/eslint-config", "license": "MIT", "repository": { diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index d04d8541f1ac50..122590798a6d35 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin-specs", - "version": "0.74.2", + "version": "0.74.75", "description": "ESLint rules to validate NativeModule and Component Specs", "license": "MIT", "repository": { @@ -31,7 +31,7 @@ "@babel/eslint-parser": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/preset-flow": "^7.20.0", - "@react-native/codegen": "0.74.2", + "@react-native/codegen": "0.74.75", "make-dir": "^2.1.0", "pirates": "^4.0.1", "source-map-support": "0.5.0" diff --git a/packages/hermes-inspector-msggen/package.json b/packages/hermes-inspector-msggen/package.json index 0124f83b5419aa..b95ab5352fa669 100644 --- a/packages/hermes-inspector-msggen/package.json +++ b/packages/hermes-inspector-msggen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/hermes-inspector-msggen", - "version": "0.72.0", + "version": "0.74.75", "private": true, "description": "Hermes Inspector Message Generator for React Native", "license": "MIT", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index 9d927e2590a1fd..9b06a9a2065480 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-config", - "version": "0.74.2", + "version": "0.74.75", "description": "Metro configuration for React Native.", "license": "MIT", "repository": { @@ -26,8 +26,8 @@ "dist" ], "dependencies": { - "@react-native/js-polyfills": "0.74.0", - "@react-native/metro-babel-transformer": "0.74.2", + "@react-native/js-polyfills": "0.74.75", + "@react-native/metro-babel-transformer": "0.74.75", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" } diff --git a/packages/normalize-color/package.json b/packages/normalize-color/package.json index c489d39b87bc80..5f789ef2bbfad4 100644 --- a/packages/normalize-color/package.json +++ b/packages/normalize-color/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/normalize-colors", - "version": "0.74.1", + "version": "0.74.75", "description": "Color normalization for React Native.", "license": "MIT", "repository": { diff --git a/packages/polyfills/package.json b/packages/polyfills/package.json index cadebf8191e007..0632fc1d191c42 100644 --- a/packages/polyfills/package.json +++ b/packages/polyfills/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/js-polyfills", - "version": "0.74.0", + "version": "0.74.75", "description": "Polyfills for React Native.", "license": "MIT", "repository": { diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index 0f76cd382d7b00..fceb446ec42bb8 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-preset", - "version": "0.74.2", + "version": "0.74.75", "description": "Babel preset for React Native applications", "main": "src/index.js", "repository": { @@ -54,7 +54,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.2", + "@react-native/babel-plugin-codegen": "0.74.75", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index 8cff9f005b2d92..319e9eb84be4f4 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-babel-transformer", - "version": "0.74.2", + "version": "0.74.75", "description": "Babel transformer for React Native applications.", "main": "src/index.js", "repository": { @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.2", + "@react-native/babel-preset": "0.74.75", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, diff --git a/packages/react-native-bots/package.json b/packages/react-native-bots/package.json index 961bdbd9d6bfab..285b15e022c52e 100644 --- a/packages/react-native-bots/package.json +++ b/packages/react-native-bots/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/bots", "description": "React Native Bots", - "version": "0.0.0", + "version": "0.74.75", "private": true, "license": "MIT", "repository": { diff --git a/packages/react-native-codegen-typescript-test/package.json b/packages/react-native-codegen-typescript-test/package.json index 89c93057304b92..f1a0dc7587fb1c 100644 --- a/packages/react-native-codegen-typescript-test/package.json +++ b/packages/react-native-codegen-typescript-test/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen-typescript-test", - "version": "0.0.1", + "version": "0.74.75", "private": true, "description": "TypeScript related unit test for @react-native/codegen", "license": "MIT", @@ -19,7 +19,7 @@ "prepare": "yarn run build" }, "dependencies": { - "@react-native/codegen": "0.74.2" + "@react-native/codegen": "0.74.75" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index aee0d5c5caa71e..b5e0880c260557 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen", - "version": "0.74.2", + "version": "0.74.75", "description": "Code generation tools for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-gradle-plugin/package.json b/packages/react-native-gradle-plugin/package.json index 1793cda08621f1..2f482b9d2720ff 100644 --- a/packages/react-native-gradle-plugin/package.json +++ b/packages/react-native-gradle-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/gradle-plugin", - "version": "0.74.1", + "version": "0.74.75", "description": "Gradle Plugin for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json index b40494697bbf89..f878b93db3953d 100644 --- a/packages/react-native-popup-menu-android/package.json +++ b/packages/react-native-popup-menu-android/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/popup-menu-android", - "version": "0.74.1", + "version": "0.74.75", "description": "PopupMenu for the Android platform", "react-native": "js/PopupMenuAndroid", "source": "js/PopupMenuAndroid", @@ -18,7 +18,7 @@ ], "license": "MIT", "devDependencies": { - "@react-native/codegen": "*" + "@react-native/codegen": "0.74.75" }, "peerDependencies": { "react": "*", diff --git a/packages/react-native-test-renderer/package.json b/packages/react-native-test-renderer/package.json index 4b90093f6fc2cb..c3918497103876 100644 --- a/packages/react-native-test-renderer/package.json +++ b/packages/react-native-test-renderer/package.json @@ -1,16 +1,18 @@ { - "name": "@react-native/test-renderer", - "private": true, - "version": "0.0.0", - "description": "A Test rendering library for React Native", - "license": "MIT", - "devDependencies": { - "@babel/core": "^7.20.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/preset-env": "^7.20.0", - "@babel/preset-flow": "^7.20.0" - }, - "dependencies": {}, - "main": "src/index.js", - "peerDependencies": { "jest": "^29.7.0" } + "name": "@react-native/test-renderer", + "private": true, + "version": "0.74.75", + "description": "A Test rendering library for React Native", + "license": "MIT", + "devDependencies": { + "@babel/core": "^7.20.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/preset-env": "^7.20.0", + "@babel/preset-flow": "^7.20.0" + }, + "dependencies": {}, + "main": "src/index.js", + "peerDependencies": { + "jest": "^29.7.0" } +} diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index 083b9273bb54e1..f4ac9cb886fca4 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -17,7 +17,7 @@ const version: $ReadOnly<{ major: 0, minor: 74, patch: 0, - prerelease: 'rc.3', + prerelease: 'rc.4', }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index 6027a926d09351..e18fad436a1775 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -24,7 +24,7 @@ RCTVersionMajor: @(0), RCTVersionMinor: @(74), RCTVersionPatch: @(0), - RCTVersionPrerelease: @"rc.3", + RCTVersionPrerelease: @"rc.4", }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index 1baf8356983054..4a0dd07d3793d5 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.0-rc.3 +VERSION_NAME=0.74.0-rc.4 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index 441c0ef9473441..2f293dd0c7cc9b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -18,5 +18,5 @@ public class ReactNativeVersion { "major", 0, "minor", 74, "patch", 0, - "prerelease", "rc.3"); + "prerelease", "rc.4"); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index 8308d4f5987f52..87743143825ea8 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -18,7 +18,7 @@ constexpr struct { int32_t Major = 0; int32_t Minor = 74; int32_t Patch = 0; - std::string_view Prerelease = "rc.3"; + std::string_view Prerelease = "rc.4"; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index dc65b72aaedac4..30457bba212802 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.0-rc.3", + "version": "0.74.0-rc.4", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -101,13 +101,13 @@ "@react-native-community/cli": "13.6.2", "@react-native-community/cli-platform-android": "13.6.2", "@react-native-community/cli-platform-ios": "13.6.2", - "@react-native/assets-registry": "0.74.0", - "@react-native/codegen": "0.74.2", - "@react-native/community-cli-plugin": "0.74.5", - "@react-native/gradle-plugin": "0.74.1", - "@react-native/js-polyfills": "0.74.0", - "@react-native/normalize-colors": "0.74.1", - "@react-native/virtualized-lists": "0.74.1", + "@react-native/assets-registry": "0.74.75", + "@react-native/codegen": "0.74.75", + "@react-native/community-cli-plugin": "0.74.75", + "@react-native/gradle-plugin": "0.74.75", + "@react-native/js-polyfills": "0.74.75", + "@react-native/normalize-colors": "0.74.75", + "@react-native/virtualized-lists": "0.74.75", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 57422df9e34061..49389c86ba8e67 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,16 +11,16 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.0-rc.3" + "react-native": "0.74.0-rc.4" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.2", - "@react-native/eslint-config": "0.74.1", - "@react-native/metro-config": "0.74.2", - "@react-native/typescript-config": "0.74.1", + "@react-native/babel-preset": "0.74.75", + "@react-native/eslint-config": "0.74.75", + "@react-native/metro-config": "0.74.75", + "@react-native/typescript-config": "0.74.75", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", diff --git a/packages/rn-tester-e2e/package.json b/packages/rn-tester-e2e/package.json index ef06a7f8fe1b87..d745c7e0598d73 100644 --- a/packages/rn-tester-e2e/package.json +++ b/packages/rn-tester-e2e/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/tester-e2e", "private": true, - "version": "0.0.1", + "version": "0.74.75", "license": "MIT", "description": "React Native E2E tester app.", "homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/rn-tester-e2e", diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index cf39bd06b878dc..db76e24ecbe04a 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/tester", - "version": "0.0.1", + "version": "0.74.75", "private": true, "description": "React Native tester app.", "license": "MIT", @@ -26,7 +26,7 @@ "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "@react-native/popup-menu-android": "^0.74.1" + "@react-native/popup-menu-android": "0.74.75" }, "peerDependencies": { "react": "18.2.0", diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 522c8215ba5025..2b291efee9bf9f 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/typescript-config", - "version": "0.74.1", + "version": "0.74.75", "description": "Default TypeScript configuration for React Native apps", "license": "MIT", "repository": { diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index 035eb17c345cd2..49c7995c35f496 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/virtualized-lists", - "version": "0.74.1", + "version": "0.74.75", "description": "Virtualized lists for React Native.", "license": "MIT", "repository": { From 24b1da16eaf4dc5e19f4e7b6d2973fb207fbc4f7 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 18 Mar 2024 15:57:00 +0000 Subject: [PATCH 070/223] [LOCAL] Fix new release workflow script (4) --- scripts/releases-local/trigger-react-native-release.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/releases-local/trigger-react-native-release.js b/scripts/releases-local/trigger-react-native-release.js index 3766ea3aba9135..8515f06c0f982e 100644 --- a/scripts/releases-local/trigger-react-native-release.js +++ b/scripts/releases-local/trigger-react-native-release.js @@ -133,8 +133,8 @@ async function exitIfUnreleasedPackages() { * value will be used instead, setting all packages to a single version. */ async function getNextMonorepoPackagesVersion() /*: Promise */ { - // Based on @react-native/dev-middleware@0.74.5 - const _0_74_MIN_PATCH = 6; + // Based on last publish before this strategy + const _0_74_MIN_PATCH = 75; const packages = await getPackages({ includeReactNative: false, @@ -149,8 +149,8 @@ async function getNextMonorepoPackagesVersion() /*: Promise */ { return null; } - const {minor} = parseVersion(version, 'release'); - patchVersion = Math.max(patchVersion, parseInt(minor, 10) + 1); + const {patch} = parseVersion(version, 'release'); + patchVersion = Math.max(patchVersion, parseInt(patch, 10) + 1); } return '0.74.' + patchVersion; From 32deb27219f0738481634221b11695f693285a1c Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 18 Mar 2024 16:45:51 +0000 Subject: [PATCH 071/223] Update RNTester Podfile.lock --- packages/rn-tester/Podfile.lock | 498 ++++++++++++++++---------------- 1 file changed, 249 insertions(+), 249 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 47c7c36e41f2ad..71c3b51d6f1e2d 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,13 +1,13 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.0-rc.3) + - FBLazyVector (0.74.0-rc.4) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.0-rc.3): - - hermes-engine/Pre-built (= 0.74.0-rc.3) - - hermes-engine/Pre-built (0.74.0-rc.3) - - MyNativeView (0.0.1): + - hermes-engine (0.74.0-rc.4): + - hermes-engine/Pre-built (= 0.74.0-rc.4) + - hermes-engine/Pre-built (0.74.0-rc.4) + - MyNativeView (0.74.75): - DoubleConversion - glog - hermes-engine @@ -28,7 +28,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - NativeCxxModuleExample (0.0.1): + - NativeCxxModuleExample (0.74.75): - DoubleConversion - glog - hermes-engine @@ -66,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.0-rc.3) - - RCTRequired (0.74.0-rc.3) - - RCTTypeSafety (0.74.0-rc.3): - - FBLazyVector (= 0.74.0-rc.3) - - RCTRequired (= 0.74.0-rc.3) - - React-Core (= 0.74.0-rc.3) - - React (0.74.0-rc.3): - - React-Core (= 0.74.0-rc.3) - - React-Core/DevSupport (= 0.74.0-rc.3) - - React-Core/RCTWebSocket (= 0.74.0-rc.3) - - React-RCTActionSheet (= 0.74.0-rc.3) - - React-RCTAnimation (= 0.74.0-rc.3) - - React-RCTBlob (= 0.74.0-rc.3) - - React-RCTImage (= 0.74.0-rc.3) - - React-RCTLinking (= 0.74.0-rc.3) - - React-RCTNetwork (= 0.74.0-rc.3) - - React-RCTSettings (= 0.74.0-rc.3) - - React-RCTText (= 0.74.0-rc.3) - - React-RCTVibration (= 0.74.0-rc.3) - - React-callinvoker (0.74.0-rc.3) - - React-Codegen (0.74.0-rc.3): + - RCTDeprecation (0.74.0-rc.4) + - RCTRequired (0.74.0-rc.4) + - RCTTypeSafety (0.74.0-rc.4): + - FBLazyVector (= 0.74.0-rc.4) + - RCTRequired (= 0.74.0-rc.4) + - React-Core (= 0.74.0-rc.4) + - React (0.74.0-rc.4): + - React-Core (= 0.74.0-rc.4) + - React-Core/DevSupport (= 0.74.0-rc.4) + - React-Core/RCTWebSocket (= 0.74.0-rc.4) + - React-RCTActionSheet (= 0.74.0-rc.4) + - React-RCTAnimation (= 0.74.0-rc.4) + - React-RCTBlob (= 0.74.0-rc.4) + - React-RCTImage (= 0.74.0-rc.4) + - React-RCTLinking (= 0.74.0-rc.4) + - React-RCTNetwork (= 0.74.0-rc.4) + - React-RCTSettings (= 0.74.0-rc.4) + - React-RCTText (= 0.74.0-rc.4) + - React-RCTVibration (= 0.74.0-rc.4) + - React-callinvoker (0.74.0-rc.4) + - React-Codegen (0.74.0-rc.4): - DoubleConversion - glog - hermes-engine @@ -106,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.0-rc.3): + - React-Core (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.3) + - React-Core/Default (= 0.74.0-rc.4) - React-cxxreact - React-featureflags - React-hermes @@ -123,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.0-rc.3): + - React-Core/CoreModulesHeaders (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.0-rc.3): + - React-Core/Default (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -156,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.0-rc.3): + - React-Core/DevSupport (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.3) - - React-Core/RCTWebSocket (= 0.74.0-rc.3) + - React-Core/Default (= 0.74.0-rc.4) + - React-Core/RCTWebSocket (= 0.74.0-rc.4) - React-cxxreact - React-featureflags - React-hermes @@ -174,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.0-rc.3): + - React-Core/RCTActionSheetHeaders (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -191,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.0-rc.3): + - React-Core/RCTAnimationHeaders (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -208,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.0-rc.3): + - React-Core/RCTBlobHeaders (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.0-rc.3): + - React-Core/RCTImageHeaders (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -242,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.0-rc.3): + - React-Core/RCTLinkingHeaders (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.0-rc.3): + - React-Core/RCTNetworkHeaders (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -276,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.0-rc.3): + - React-Core/RCTPushNotificationHeaders (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -293,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.0-rc.3): + - React-Core/RCTSettingsHeaders (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -310,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.0-rc.3): + - React-Core/RCTTextHeaders (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -327,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.0-rc.3): + - React-Core/RCTVibrationHeaders (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -344,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.0-rc.3): + - React-Core/RCTWebSocket (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.3) + - React-Core/Default (= 0.74.0-rc.4) - React-cxxreact - React-featureflags - React-hermes @@ -361,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.0-rc.3): + - React-CoreModules (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.0-rc.3) + - RCTTypeSafety (= 0.74.0-rc.4) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.0-rc.3) - - React-jsi (= 0.74.0-rc.3) + - React-Core/CoreModulesHeaders (= 0.74.0-rc.4) + - React-jsi (= 0.74.0-rc.4) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.0-rc.3) + - React-RCTImage (= 0.74.0-rc.4) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.0-rc.3): + - React-cxxreact (0.74.0-rc.4): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.3) - - React-debug (= 0.74.0-rc.3) - - React-jsi (= 0.74.0-rc.3) + - React-callinvoker (= 0.74.0-rc.4) + - React-debug (= 0.74.0-rc.4) + - React-jsi (= 0.74.0-rc.4) - React-jsinspector - - React-logger (= 0.74.0-rc.3) - - React-perflogger (= 0.74.0-rc.3) - - React-runtimeexecutor (= 0.74.0-rc.3) - - React-debug (0.74.0-rc.3) - - React-Fabric (0.74.0-rc.3): + - React-logger (= 0.74.0-rc.4) + - React-perflogger (= 0.74.0-rc.4) + - React-runtimeexecutor (= 0.74.0-rc.4) + - React-debug (0.74.0-rc.4) + - React-Fabric (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -401,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.0-rc.3) - - React-Fabric/attributedstring (= 0.74.0-rc.3) - - React-Fabric/componentregistry (= 0.74.0-rc.3) - - React-Fabric/componentregistrynative (= 0.74.0-rc.3) - - React-Fabric/components (= 0.74.0-rc.3) - - React-Fabric/core (= 0.74.0-rc.3) - - React-Fabric/imagemanager (= 0.74.0-rc.3) - - React-Fabric/leakchecker (= 0.74.0-rc.3) - - React-Fabric/mounting (= 0.74.0-rc.3) - - React-Fabric/scheduler (= 0.74.0-rc.3) - - React-Fabric/telemetry (= 0.74.0-rc.3) - - React-Fabric/templateprocessor (= 0.74.0-rc.3) - - React-Fabric/textlayoutmanager (= 0.74.0-rc.3) - - React-Fabric/uimanager (= 0.74.0-rc.3) + - React-Fabric/animations (= 0.74.0-rc.4) + - React-Fabric/attributedstring (= 0.74.0-rc.4) + - React-Fabric/componentregistry (= 0.74.0-rc.4) + - React-Fabric/componentregistrynative (= 0.74.0-rc.4) + - React-Fabric/components (= 0.74.0-rc.4) + - React-Fabric/core (= 0.74.0-rc.4) + - React-Fabric/imagemanager (= 0.74.0-rc.4) + - React-Fabric/leakchecker (= 0.74.0-rc.4) + - React-Fabric/mounting (= 0.74.0-rc.4) + - React-Fabric/scheduler (= 0.74.0-rc.4) + - React-Fabric/telemetry (= 0.74.0-rc.4) + - React-Fabric/templateprocessor (= 0.74.0-rc.4) + - React-Fabric/textlayoutmanager (= 0.74.0-rc.4) + - React-Fabric/uimanager (= 0.74.0-rc.4) - React-graphics - React-jsi - React-jsiexecutor @@ -423,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.0-rc.3): + - React-Fabric/animations (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -442,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.0-rc.3): + - React-Fabric/attributedstring (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -461,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.0-rc.3): + - React-Fabric/componentregistry (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.0-rc.3): + - React-Fabric/componentregistrynative (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.0-rc.3): + - React-Fabric/components (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -510,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.0-rc.3) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.3) - - React-Fabric/components/modal (= 0.74.0-rc.3) - - React-Fabric/components/rncore (= 0.74.0-rc.3) - - React-Fabric/components/root (= 0.74.0-rc.3) - - React-Fabric/components/safeareaview (= 0.74.0-rc.3) - - React-Fabric/components/scrollview (= 0.74.0-rc.3) - - React-Fabric/components/text (= 0.74.0-rc.3) - - React-Fabric/components/textinput (= 0.74.0-rc.3) - - React-Fabric/components/unimplementedview (= 0.74.0-rc.3) - - React-Fabric/components/view (= 0.74.0-rc.3) + - React-Fabric/components/inputaccessory (= 0.74.0-rc.4) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.4) + - React-Fabric/components/modal (= 0.74.0-rc.4) + - React-Fabric/components/rncore (= 0.74.0-rc.4) + - React-Fabric/components/root (= 0.74.0-rc.4) + - React-Fabric/components/safeareaview (= 0.74.0-rc.4) + - React-Fabric/components/scrollview (= 0.74.0-rc.4) + - React-Fabric/components/text (= 0.74.0-rc.4) + - React-Fabric/components/textinput (= 0.74.0-rc.4) + - React-Fabric/components/unimplementedview (= 0.74.0-rc.4) + - React-Fabric/components/view (= 0.74.0-rc.4) - React-graphics - React-jsi - React-jsiexecutor @@ -529,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.0-rc.3): + - React-Fabric/components/inputaccessory (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -548,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.3): + - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -567,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.0-rc.3): + - React-Fabric/components/modal (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -586,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.0-rc.3): + - React-Fabric/components/rncore (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.0-rc.3): + - React-Fabric/components/root (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.0-rc.3): + - React-Fabric/components/safeareaview (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.0-rc.3): + - React-Fabric/components/scrollview (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.0-rc.3): + - React-Fabric/components/text (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.0-rc.3): + - React-Fabric/components/textinput (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -700,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.0-rc.3): + - React-Fabric/components/unimplementedview (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -719,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.0-rc.3): + - React-Fabric/components/view (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -739,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.0-rc.3): + - React-Fabric/core (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.0-rc.3): + - React-Fabric/imagemanager (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -777,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.0-rc.3): + - React-Fabric/leakchecker (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -796,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.0-rc.3): + - React-Fabric/mounting (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -815,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.0-rc.3): + - React-Fabric/scheduler (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -834,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.0-rc.3): + - React-Fabric/telemetry (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.0-rc.3): + - React-Fabric/templateprocessor (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -872,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.0-rc.3): + - React-Fabric/textlayoutmanager (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -892,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.0-rc.3): + - React-Fabric/uimanager (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog @@ -911,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.0-rc.3): + - React-FabricImage (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.0-rc.3) - - RCTTypeSafety (= 0.74.0-rc.3) + - RCTRequired (= 0.74.0-rc.4) + - RCTTypeSafety (= 0.74.0-rc.4) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.0-rc.3) + - React-jsiexecutor (= 0.74.0-rc.4) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.0-rc.3) - - React-graphics (0.74.0-rc.3): + - React-featureflags (0.74.0-rc.4) + - React-graphics (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.0-rc.3) + - React-Core/Default (= 0.74.0-rc.4) - React-utils - - React-hermes (0.74.0-rc.3): + - React-hermes (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.3) + - React-cxxreact (= 0.74.0-rc.4) - React-jsi - - React-jsiexecutor (= 0.74.0-rc.3) + - React-jsiexecutor (= 0.74.0-rc.4) - React-jsinspector - - React-perflogger (= 0.74.0-rc.3) + - React-perflogger (= 0.74.0-rc.4) - React-runtimeexecutor - - React-ImageManager (0.74.0-rc.3): + - React-ImageManager (0.74.0-rc.4): - glog - RCT-Folly/Fabric - React-Core/Default @@ -958,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.0-rc.3): + - React-jserrorhandler (0.74.0-rc.4): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.0-rc.3): + - React-jsi (0.74.0-rc.4): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.0-rc.3): + - React-jsiexecutor (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.3) - - React-jsi (= 0.74.0-rc.3) + - React-cxxreact (= 0.74.0-rc.4) + - React-jsi (= 0.74.0-rc.4) - React-jsinspector - - React-perflogger (= 0.74.0-rc.3) - - React-jsinspector (0.74.0-rc.3): + - React-perflogger (= 0.74.0-rc.4) + - React-jsinspector (0.74.0-rc.4): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.0-rc.3) - - React-jsitracing (0.74.0-rc.3): + - React-runtimeexecutor (= 0.74.0-rc.4) + - React-jsitracing (0.74.0-rc.4): - React-jsi - - React-logger (0.74.0-rc.3): + - React-logger (0.74.0-rc.4): - glog - - React-Mapbuffer (0.74.0-rc.3): + - React-Mapbuffer (0.74.0-rc.4): - glog - React-debug - - React-nativeconfig (0.74.0-rc.3) - - React-NativeModulesApple (0.74.0-rc.3): + - React-nativeconfig (0.74.0-rc.4) + - React-NativeModulesApple (0.74.0-rc.4): - glog - hermes-engine - React-callinvoker @@ -1007,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.0-rc.3) - - React-RCTActionSheet (0.74.0-rc.3): - - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.3) - - React-RCTAnimation (0.74.0-rc.3): + - React-perflogger (0.74.0-rc.4) + - React-RCTActionSheet (0.74.0-rc.4): + - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.4) + - React-RCTAnimation (0.74.0-rc.4): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1018,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.0-rc.3): + - React-RCTAppDelegate (0.74.0-rc.4): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1041,7 +1041,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.0-rc.3): + - React-RCTBlob (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1054,7 +1054,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.0-rc.3): + - React-RCTFabric (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1074,7 +1074,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.0-rc.3): + - React-RCTImage (0.74.0-rc.4): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1083,14 +1083,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.0-rc.3): + - React-RCTLinking (0.74.0-rc.4): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.0-rc.3) - - React-jsi (= 0.74.0-rc.3) + - React-Core/RCTLinkingHeaders (= 0.74.0-rc.4) + - React-jsi (= 0.74.0-rc.4) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.0-rc.3) - - React-RCTNetwork (0.74.0-rc.3): + - ReactCommon/turbomodule/core (= 0.74.0-rc.4) + - React-RCTNetwork (0.74.0-rc.4): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1098,14 +1098,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.0-rc.3): + - React-RCTPushNotification (0.74.0-rc.4): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.0-rc.3): + - React-RCTSettings (0.74.0-rc.4): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1113,29 +1113,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.0-rc.3): + - React-RCTTest (0.74.0-rc.4): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.0-rc.3) - - React-CoreModules (= 0.74.0-rc.3) - - React-jsi (= 0.74.0-rc.3) - - ReactCommon/turbomodule/core (= 0.74.0-rc.3) - - React-RCTText (0.74.0-rc.3): - - React-Core/RCTTextHeaders (= 0.74.0-rc.3) + - React-Core (= 0.74.0-rc.4) + - React-CoreModules (= 0.74.0-rc.4) + - React-jsi (= 0.74.0-rc.4) + - ReactCommon/turbomodule/core (= 0.74.0-rc.4) + - React-RCTText (0.74.0-rc.4): + - React-Core/RCTTextHeaders (= 0.74.0-rc.4) - Yoga - - React-RCTVibration (0.74.0-rc.3): + - React-RCTVibration (0.74.0-rc.4): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.0-rc.3): + - React-rendererdebug (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.0-rc.3) - - React-RuntimeApple (0.74.0-rc.3): + - React-rncore (0.74.0-rc.4) + - React-RuntimeApple (0.74.0-rc.4): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1153,7 +1153,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.0-rc.3): + - React-RuntimeCore (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1166,9 +1166,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.0-rc.3): - - React-jsi (= 0.74.0-rc.3) - - React-RuntimeHermes (0.74.0-rc.3): + - React-runtimeexecutor (0.74.0-rc.4): + - React-jsi (= 0.74.0-rc.4) + - React-RuntimeHermes (0.74.0-rc.4): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1179,7 +1179,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.0-rc.3): + - React-runtimescheduler (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1191,15 +1191,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.0-rc.3): + - React-utils (0.74.0-rc.4): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.0-rc.3) - - ReactCommon (0.74.0-rc.3): - - ReactCommon/turbomodule (= 0.74.0-rc.3) - - ReactCommon-Samples (0.74.0-rc.3): + - React-jsi (= 0.74.0-rc.4) + - ReactCommon (0.74.0-rc.4): + - ReactCommon/turbomodule (= 0.74.0-rc.4) + - ReactCommon-Samples (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1210,44 +1210,44 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.0-rc.3): + - ReactCommon/turbomodule (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.3) - - React-cxxreact (= 0.74.0-rc.3) - - React-jsi (= 0.74.0-rc.3) - - React-logger (= 0.74.0-rc.3) - - React-perflogger (= 0.74.0-rc.3) - - ReactCommon/turbomodule/bridging (= 0.74.0-rc.3) - - ReactCommon/turbomodule/core (= 0.74.0-rc.3) - - ReactCommon/turbomodule/bridging (0.74.0-rc.3): + - React-callinvoker (= 0.74.0-rc.4) + - React-cxxreact (= 0.74.0-rc.4) + - React-jsi (= 0.74.0-rc.4) + - React-logger (= 0.74.0-rc.4) + - React-perflogger (= 0.74.0-rc.4) + - ReactCommon/turbomodule/bridging (= 0.74.0-rc.4) + - ReactCommon/turbomodule/core (= 0.74.0-rc.4) + - ReactCommon/turbomodule/bridging (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.3) - - React-cxxreact (= 0.74.0-rc.3) - - React-jsi (= 0.74.0-rc.3) - - React-logger (= 0.74.0-rc.3) - - React-perflogger (= 0.74.0-rc.3) - - ReactCommon/turbomodule/core (0.74.0-rc.3): + - React-callinvoker (= 0.74.0-rc.4) + - React-cxxreact (= 0.74.0-rc.4) + - React-jsi (= 0.74.0-rc.4) + - React-logger (= 0.74.0-rc.4) + - React-perflogger (= 0.74.0-rc.4) + - ReactCommon/turbomodule/core (0.74.0-rc.4): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.3) - - React-cxxreact (= 0.74.0-rc.3) - - React-debug (= 0.74.0-rc.3) - - React-jsi (= 0.74.0-rc.3) - - React-logger (= 0.74.0-rc.3) - - React-perflogger (= 0.74.0-rc.3) - - React-utils (= 0.74.0-rc.3) - - ScreenshotManager (0.0.1): + - React-callinvoker (= 0.74.0-rc.4) + - React-cxxreact (= 0.74.0-rc.4) + - React-debug (= 0.74.0-rc.4) + - React-jsi (= 0.74.0-rc.4) + - React-logger (= 0.74.0-rc.4) + - React-perflogger (= 0.74.0-rc.4) + - React-utils (= 0.74.0-rc.4) + - ScreenshotManager (0.74.75): - DoubleConversion - glog - hermes-engine @@ -1467,66 +1467,66 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 22373730839f6c9b5ea8e58bc70aca92722b36e4 + FBLazyVector: 2a48dc257abbee54cc5c9a2895654bad4246fcaa fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: d425d48a2c020bfef4568e2aa7b2583878ebbcc4 - MyNativeView: b7ba0b5c94be5e9c4b2ce4887bb5f511a7c8970c - NativeCxxModuleExample: c152bfeb11e2c53cdd56ffc2bafa94970ea5d195 + hermes-engine: dfdcadd89a22aa872ef552b07e415d88df68af55 + MyNativeView: e7d2da26ab16b6a846f6ae60267382699e880593 + NativeCxxModuleExample: 91e15c84214ef61869151c00cb39983ffc33f3b4 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df - RCTDeprecation: 1426dc415fe84cf0ce4c2b67df6cbe77e82508c9 - RCTRequired: 7e912eb143ec0f82ba4fa8ea1ecfa2aa3f0c1555 - RCTTypeSafety: ee2d84ee7b68aff18c585cd346918f83418da724 - React: 3fcfee44730f7aaa95725fca7d286d4eaf512f0d - React-callinvoker: 0e22eb4930df482ecb6abf7067340413b86e840c - React-Codegen: 6a208199d09e49d38e15c842bc83a68b56fb0f03 - React-Core: 3121cfe8f1eb259f0aa87ba159c1c17fda99638d - React-CoreModules: f461d16c98886bf587a658e3463c48c7cc906ce7 - React-cxxreact: ed5f88ccea9c78eb169b97f12ac8d59847f4da39 - React-debug: c4938e1ec00e2025fdba57d7ba4fa2486f13f5a1 - React-Fabric: 3170274f190d53e4dba6ff4040c8c70508a299d4 - React-FabricImage: e67dfe5246c01ab8d762f81d8dc1f87bd4c05abf - React-featureflags: ddeec78ca1ce58c5ed8ea4e1b685de022ac94ca8 - React-graphics: 0910afce7e45712d9ac6c10e0b2454af15bba4de - React-hermes: 31e71a86557b46fb039924686bb9aeb7e8a124b6 - React-ImageManager: 55952f6100e41611dc4c05092c64377a58a0bd2c - React-jserrorhandler: b3cdcd2e8a74bcd8ec5a3b7c1cee1309e7015fb2 - React-jsi: 9f75b4c3d25b081ff86012db29f66b8475cdadac - React-jsiexecutor: 541b100c9087a03f29404cdbbf3b5155ae995d6d - React-jsinspector: 1cfae2484f77d6992b50fda38168b9a67452440c - React-jsitracing: aeccbc1efd21d9a43c0c4d4ca556419dfbe511fd - React-logger: 8502842a2d6e86a4b2aeb5a45141a9c05d98e7e7 - React-Mapbuffer: 5029f6cb5b885b564b83d2c3d2f449a0cff10cf1 - React-nativeconfig: e2cf34a605b3e22153df6ef6233960eccda5b6a3 - React-NativeModulesApple: 1ca4c85bce6729bd2bde0b8c486fa5cef521b7ce - React-perflogger: c5f881d474aaf3b081b5f416bc1d923dccd22a5e - React-RCTActionSheet: 2dab3acf7eba4332fa93f9385af052f767768937 - React-RCTAnimation: 7535c8b991c8ce37fe7b29c4f710b80d3d196cae - React-RCTAppDelegate: 4ddce46a3ded83a247b368b7dc93e5dba0f79417 - React-RCTBlob: cd383378ec08728a43183417a4daa5915342fb9d - React-RCTFabric: 43953af1099f9e2f805e93e98ef79b5a0895e8fa - React-RCTImage: a3b0f170097f69bac0aa634626c9486ff5061c88 - React-RCTLinking: ed6ecbf6c10af779111e35548900dac7ca643c31 - React-RCTNetwork: 4fece61119f4c5fcfaa4d3a3640059233d9cbca4 - React-RCTPushNotification: e372c05876828a4a4cdee9eb73b440194160d8f2 - React-RCTSettings: fa63883de63d518eb255afebf507a7939cf24b6f - React-RCTTest: db3f2df29459105fdea126993866f5230e7be794 - React-RCTText: db6597036cded3b857fb43465c0f10573fc2688d - React-RCTVibration: b7d40a2617e9142f85d2e0b34f89f0c970bd7116 - React-rendererdebug: ceebad538a33c2548ca74482a10f2976b9b70e8c - React-rncore: 5d3e30e67d9e7eca37d869f7d09e42c1933e8cb7 - React-RuntimeApple: b9232706c5d1ddf991062151a5e5a77b01890f75 - React-RuntimeCore: 3b0f0f64734a971b4bfac72efa3db38d240a297e - React-runtimeexecutor: 24ba9cc02bc421a1e36f8e76c7081cc6e0149c2e - React-RuntimeHermes: ac4df30565dbf03e7270f892822cbd440fc68758 - React-runtimescheduler: 02a71ab19d6d34d89e3bfa3b53fef28a5812596b - React-utils: 739522a611d31b3f67d1c27d24813ea02647bde9 - ReactCommon: 14bc8c0629af97e9b27e48c6ea8b735b7b1f84e6 - ReactCommon-Samples: 2b325b60eabc5113f203ac98dcc4ddb7dc748b1c - ScreenshotManager: 8584ded316377154f7cc19d5ef15e7c94ce04466 + RCTDeprecation: 1c5ab5895f9fc7e8ae9fcde04859f0d246283209 + RCTRequired: 79e2e81174db06336f470c49aea7603ff29817a7 + RCTTypeSafety: d6ccaa59a5b6f75c34d047e9cf5c7747be938e46 + React: d605e940cf4dbc9e3f0dbb62168ff0bd262eebec + React-callinvoker: ca0cd77dd0e304e653eab57caaf1e3840f314e8d + React-Codegen: ad74c08152c4e63dcb4e3eb9e6221178009558ed + React-Core: 41c45f7602babf6af91375adcf5e7965defb7d78 + React-CoreModules: 5a00319c393d6244903264884ba3f28edd5dc1e4 + React-cxxreact: 4314215fafddd150f4820cb29f269e7832709359 + React-debug: 6ebdc46acf7ac9a3c43447a36023fa9a0ffa1bcf + React-Fabric: b7a26aa1015c2d5d48b926ee5d9525ebff2030f3 + React-FabricImage: 059b56996a6f15be08984b679e43d00add311500 + React-featureflags: 693125080daf88f11bdca7d6592d26b987f1fd5f + React-graphics: 0193a599a1e2358aa7521234fb4a36801eb227f3 + React-hermes: f11f57dd637ec1c266f66caf1bcf6add8b0bd2c3 + React-ImageManager: f4c833b5ff328381078a791c34da8c8dc2ee302b + React-jserrorhandler: 5291a4dfe20facdceed1e74cb74aeca31bf15488 + React-jsi: cec2e26a99e4ba448b4489892cfadaae9d033760 + React-jsiexecutor: 354cfa360e05e7968ca36e6614a85f78a6a69c8f + React-jsinspector: 267f39c33cf54c36dcf772df8d9685a5ae2cf706 + React-jsitracing: 309dfee3932996fd4c60368ab8ce1289f6176e5a + React-logger: 6004e0cf41b7e9714ca26b1648e5d76fcfd638b5 + React-Mapbuffer: 0a378ecbf2020c5efe9dedf07aaa564faf8787b5 + React-nativeconfig: 70c11d02425186137e7cdc069fa39e8af1c827de + React-NativeModulesApple: 3509a8c7f19349e86aa0f452cc0092614bfea1a6 + React-perflogger: 0d62c0261b6fd3920605850de91abc8135dd3ee9 + React-RCTActionSheet: 655c691cd152938b9760c16a857d6726ea33a7b5 + React-RCTAnimation: 2a98c119ff97fea009b52af56eecca20acb402ec + React-RCTAppDelegate: 0bfc33b90a8dc575eeeafe1edd43d761b487fcdc + React-RCTBlob: 350708eed43ff6b8a3e957c6da166afaacba1390 + React-RCTFabric: 4e6a0551c256328c4cfe621d52a8f0203b6c9b97 + React-RCTImage: 8de3e14205074299b6fecd90af9f3162759c71f6 + React-RCTLinking: a2931793dd576a15ce42a8ebb49b85e46bbd0e31 + React-RCTNetwork: 894a51d330071304fe402b18dc21ac6a95a3c111 + React-RCTPushNotification: 319b1f2c05e24762c1b3bcf971bd045d402f0970 + React-RCTSettings: 1f077416efac57d7ef55226e18a7a80e223b27a2 + React-RCTTest: 32a930a14ef1ff372567035b14ae449bd7160f53 + React-RCTText: 418b7ec4ddb541e8b79d0bb5c08717adf9a6a281 + React-RCTVibration: 6a886e048b563b5a4750fc729880e0affbd4f870 + React-rendererdebug: 845e9a5d8d7b443ad979f78b2a3aa39da458f7e0 + React-rncore: a4f1d47bafa63e4a4454554b4075cc2266d68162 + React-RuntimeApple: a1c87a68304819b3b6a73740f3607454ab96015c + React-RuntimeCore: a217797b29499c2cedbeb0a181b696cf2c7f1efa + React-runtimeexecutor: d8a97c799dd75bae0d2721e4c4d010a8046eaa42 + React-RuntimeHermes: c4017bf3edd2b33031fd2a7225438b0ad5f562f3 + React-runtimescheduler: 3ba0a219e6ac595604f6d5fda05383140b3df48e + React-utils: 8ac7dcae6bb4acb09a9644befbb7ee92bd1e7bcd + ReactCommon: a506d3462e18e926817412f8ac81e98e0494bd71 + ReactCommon-Samples: 7b973780825120417e197720eb8b40fd228cdfb3 + ScreenshotManager: 876ce104108851e1f1b10a3f54875f6fb6d9e1ff SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: cd82404086c0a2ee8cd85bb5d77c68c12ce5ca63 + Yoga: e08111794822bc315de88571845a3dd6fa5f2183 PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf From 8b5d650e6050756bdd1422fafb99c6be35e0aca2 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 19 Mar 2024 07:05:03 -0700 Subject: [PATCH 072/223] Switch to new release workflow as default (#43533) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43533 Switch to the new unified release workflow by default, now that this has been validated on the `0.74-stable` branch. - Remove `--use-new-workflow` flag and remove legacy logic. - Remove legacy `prepare_package_for_release` CI job, and use `run_new_release_workflow` -> `run_release_workflow` as new workflow condition match. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D55027120 fbshipit-source-id: 7c05cdff95ac369ce6cd1201ccfc5718798c4da6 # Conflicts: # scripts/releases-ci/prepare-package-for-release.js --- .circleci/config.yml | 9 - .circleci/configurations/jobs.yml | 35 +--- .../configurations/test_workflows/testAll.yml | 11 +- .../test_workflows/testAndroid.yml | 11 +- .../configurations/test_workflows/testIOS.yml | 11 +- .circleci/configurations/top_level.yml | 8 - .circleci/configurations/workflows.yml | 21 +-- .../prepare-package-for-release.js | 156 ------------------ .../trigger-react-native-release.js | 120 +++----------- 9 files changed, 43 insertions(+), 339 deletions(-) delete mode 100755 scripts/releases-ci/prepare-package-for-release.js diff --git a/.circleci/config.yml b/.circleci/config.yml index af889bdc060522..a642711e33d1af 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,19 +12,10 @@ parameters: default: false type: boolean - # Experimental unified release workflow - run_new_release_workflow: - default: false - type: boolean - run_nightly_workflow: default: false type: boolean - release_latest: - default: false - type: boolean - release_version: default: "" type: string diff --git a/.circleci/configurations/jobs.yml b/.circleci/configurations/jobs.yml index 642ffe234cf1ca..884859c30806b0 100644 --- a/.circleci/configurations/jobs.yml +++ b/.circleci/configurations/jobs.yml @@ -1076,43 +1076,10 @@ jobs: # ------------------------- # JOBS: Releases # ------------------------- - prepare_package_for_release: - parameters: - version: - type: string - latest: - type: boolean - default: false - dryrun: - type: boolean - default: false - executor: reactnativeios - steps: - - checkout_code_with_cache - - run_yarn - - add_ssh_keys: - fingerprints: - - "1f:c7:61:c4:e2:ff:77:e3:cc:ca:a7:34:c2:79:e3:3c" - - brew_install: - package: cmake - - run: - name: "Set new react-native version and commit changes" - command: | - VERSION=<< parameters.version >> - - if [[ -z "$VERSION" ]]; then - VERSION=$(grep '"version"' package.json | cut -d '"' -f 4 | head -1) - echo "Using the version from the package.json: $VERSION" - fi - - node ./scripts/releases-ci/prepare-package-for-release.js -v "$VERSION" -l << parameters.latest >> --dry-run << parameters.dryrun >> - # Experimental unified release workflow - # Replaces `prepare_package_for_release` - # # Writes a new commit and tag(s), which will trigger the `publish_release` # and `publish_bumped_packages` workflows. - prepare_release_new: + prepare_release: parameters: version: type: string diff --git a/.circleci/configurations/test_workflows/testAll.yml b/.circleci/configurations/test_workflows/testAll.yml index 9525846607ad7b..a359329d207db0 100644 --- a/.circleci/configurations/test_workflows/testAll.yml +++ b/.circleci/configurations/test_workflows/testAll.yml @@ -4,11 +4,12 @@ - equal: [ false, << pipeline.parameters.run_release_workflow >> ] - equal: [ false, << pipeline.parameters.run_nightly_workflow >> ] jobs: - - prepare_package_for_release: - name: prepare_package_for_release - version: '' - latest : false - dryrun: true + - prepare_release: + name: "prepare_release (dry run test)" + version: "0.0.0" + monorepo_packages_version: "0.0.0" + tag: latest + dry_run: true - prepare_hermes_workspace - build_android: release_type: "dry-run" diff --git a/.circleci/configurations/test_workflows/testAndroid.yml b/.circleci/configurations/test_workflows/testAndroid.yml index 08f925eca37b61..6a71b24ae4c8e3 100644 --- a/.circleci/configurations/test_workflows/testAndroid.yml +++ b/.circleci/configurations/test_workflows/testAndroid.yml @@ -4,11 +4,12 @@ - equal: [ false, << pipeline.parameters.run_release_workflow >> ] - equal: [ false, << pipeline.parameters.run_nightly_workflow >> ] jobs: - - prepare_package_for_release: - name: prepare_package_for_release - version: '' - latest : false - dryrun: true + - prepare_release: + name: "prepare_release (dry run test)" + version: "0.0.0" + monorepo_packages_version: "0.0.0" + tag: latest + dry_run: true - prepare_hermes_workspace - build_android: release_type: "dry-run" diff --git a/.circleci/configurations/test_workflows/testIOS.yml b/.circleci/configurations/test_workflows/testIOS.yml index a1e6c479cfe571..5c3766a5b15aed 100644 --- a/.circleci/configurations/test_workflows/testIOS.yml +++ b/.circleci/configurations/test_workflows/testIOS.yml @@ -4,11 +4,12 @@ - equal: [ false, << pipeline.parameters.run_release_workflow >> ] - equal: [ false, << pipeline.parameters.run_nightly_workflow >> ] jobs: - - prepare_package_for_release: - name: prepare_package_for_release - version: '' - latest : false - dryrun: true + - prepare_release: + name: "prepare_release (dry run test)" + version: "0.0.0" + monorepo_packages_version: "0.0.0" + tag: latest + dry_run: true - prepare_hermes_workspace - build_android: release_type: "dry-run" diff --git a/.circleci/configurations/top_level.yml b/.circleci/configurations/top_level.yml index e8dd402765c71a..dbce102dfc1de8 100644 --- a/.circleci/configurations/top_level.yml +++ b/.circleci/configurations/top_level.yml @@ -129,18 +129,10 @@ parameters: default: false type: boolean - run_new_release_workflow: - default: false - type: boolean - run_nightly_workflow: default: false type: boolean - release_latest: - default: false - type: boolean - release_version: default: "" type: string diff --git a/.circleci/configurations/workflows.yml b/.circleci/configurations/workflows.yml index 48190e06356a43..cccab425b0bb3c 100644 --- a/.circleci/configurations/workflows.yml +++ b/.circleci/configurations/workflows.yml @@ -6,7 +6,6 @@ # when: # and: # - equal: [ false, << pipeline.parameters.run_release_workflow >> ] -# - equal: [ false, << pipeline.parameters.run_new_release_workflow >> ] # - equal: [ false, << pipeline.parameters.run_nightly_workflow >> ] # # It's setup this way so we can trigger a release via a POST @@ -16,22 +15,12 @@ workflows: version: 2 - # This workflow should only be triggered by release script - package_release: + # Release workflow, triggered by `yarn trigger-react-native-release` + create_release: when: << pipeline.parameters.run_release_workflow >> jobs: - # This job will push a tag that will trigger the publish_release workflow - - prepare_package_for_release: - name: prepare_package_for_release - version: << pipeline.parameters.release_version >> - latest : << pipeline.parameters.release_latest >> - - # Experimental unified release workflow - create_release_new: - when: << pipeline.parameters.run_new_release_workflow >> - jobs: - - prepare_release_new: - name: prepare_release_new + - prepare_release: + name: prepare_release version: << pipeline.parameters.release_version >> monorepo_packages_version: << pipeline.parameters.release_monorepo_packages_version >> tag: << pipeline.parameters.release_tag >> @@ -91,7 +80,6 @@ workflows: when: and: - equal: [ false, << pipeline.parameters.run_release_workflow >> ] - - equal: [ false, << pipeline.parameters.run_new_release_workflow >> ] - equal: [ false, << pipeline.parameters.run_nightly_workflow >> ] jobs: # Run lints on every commit @@ -140,7 +128,6 @@ workflows: when: and: - equal: [ false, << pipeline.parameters.run_release_workflow >> ] - - equal: [ false, << pipeline.parameters.run_new_release_workflow >> ] - equal: [ false, << pipeline.parameters.run_nightly_workflow >> ] jobs: - find_and_publish_bumped_packages: diff --git a/scripts/releases-ci/prepare-package-for-release.js b/scripts/releases-ci/prepare-package-for-release.js deleted file mode 100755 index 1d14f761055a5e..00000000000000 --- a/scripts/releases-ci/prepare-package-for-release.js +++ /dev/null @@ -1,156 +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 - * @format - * @oncall react_native - */ - -'use strict'; - -const {RN_TESTER_DIR} = require('../consts'); -const {setReactNativeVersion} = require('../releases/set-rn-version'); -const {failIfTagExists} = require('../releases/utils/release-utils'); -const { - isReleaseBranch, - parseVersion, -} = require('../releases/utils/version-utils'); -const {execSync} = require('child_process'); -const {echo, exec, exit} = require('shelljs'); -const yargs = require('yargs'); - -/** - * This script prepares a release package to be pushed to npm - * It is triggered to run on CircleCI - * It will: - * * It updates the version in json/gradle files and makes sure they are consistent between each other (set-rn-version) - * * Updates podfile for RNTester - * * Commits changes and tags with the next version based off of last version tag. - * This in turn will trigger another CircleCI job to publish to npm - */ -async function main() { - const argv = yargs - .option('r', { - alias: 'remote', - default: 'origin', - }) - .option('v', { - alias: 'to-version', - type: 'string', - required: true, - }) - .option('l', { - alias: 'latest', - type: 'boolean', - default: false, - }) - .option('d', { - alias: 'dry-run', - type: 'boolean', - default: false, - }).argv; - - const branch = process.env.CIRCLE_BRANCH; - // $FlowFixMe[prop-missing] - const remote = argv.remote; - // $FlowFixMe[prop-missing] - const releaseVersion = argv.toVersion; - // $FlowFixMe[prop-missing] - const isLatest = argv.latest; - // $FlowFixMe[prop-missing] - const isDryRun = argv.dryRun; - - if (branch == null) { - throw new Error('process.env.CIRCLE_BRANCH is not set'); - } - - const buildType = isDryRun - ? 'dry-run' - : isReleaseBranch(branch) - ? 'release' - : 'nightly'; - - failIfTagExists(releaseVersion, buildType); - - if (branch && !isReleaseBranch(branch) && !isDryRun) { - console.error(`This needs to be on a release branch. On branch: ${branch}`); - exit(1); - } else if (!branch && !isDryRun) { - console.error('This needs to be on a release branch.'); - exit(1); - } - - const {version} = parseVersion(releaseVersion, buildType); - if (version == null) { - console.error(`Invalid version provided: ${releaseVersion}`); - exit(1); - } - - try { - await setReactNativeVersion(version, null, buildType); - } catch (e) { - echo(`Failed to set React Native version to ${version}`); - exit(1); - } - - // Release builds should commit the version bumps, and create tags. - try { - console.log('Updating RNTester Podfile.lock'); - execSync( - ` - bundle install; - bundle exec pod install; - `, - {cwd: RN_TESTER_DIR, stdio: 'inherit'}, - ); - } catch (e) { - console.error('Failed to update RNTester Podfile.lock.'); - console.error('Fix the issue, revert and try again.'); - - // TODO(T182699844): We've suppressed this failure to unblock the release. - // This previously was failing, but was not causing a error exit code. - // process.exitCode = 1; - // return; - } - - echo(`Local checkout has been prepared for release version ${version}.`); - if (isDryRun) { - echo('Changes will not be committed because --dry-run was set to true.'); - exit(0); - } - - // Make commit [0.21.0-rc] Bump version numbers - if (exec(`git commit -a -m "[${version}] Bump version numbers"`).code) { - echo('failed to commit'); - exit(1); - } - - // Add tag v0.21.0-rc.1 - if (exec(`git tag -a v${version} -m "v${version}"`).code) { - echo( - `failed to tag the commit with v${version}, are you sure this release wasn't made earlier?`, - ); - echo('You may want to rollback the last commit'); - echo('git reset --hard HEAD~1'); - exit(1); - } - - // If `isLatest`, this git tag will also set npm release as `latest` - if (isLatest) { - exec('git tag -d latest'); - exec(`git push ${remote} :latest`); - - // This will be pushed with the `--follow-tags` - exec('git tag -a latest -m "latest"'); - } - - exec(`git push ${remote} ${branch} --follow-tags`); -} - -if (require.main === module) { - // eslint-disable-next-line no-void - void main(); -} diff --git a/scripts/releases-local/trigger-react-native-release.js b/scripts/releases-local/trigger-react-native-release.js index 8515f06c0f982e..fec627395f4319 100644 --- a/scripts/releases-local/trigger-react-native-release.js +++ b/scripts/releases-local/trigger-react-native-release.js @@ -11,8 +11,6 @@ 'use strict'; -const {REPO_ROOT} = require('../consts'); -const detectPackageUnreleasedChanges = require('../monorepo/bump-all-updated-packages/bump-utils.js'); const checkForGitChanges = require('../monorepo/check-for-git-changes'); const {failIfTagExists} = require('../releases/utils/release-utils'); const { @@ -23,7 +21,6 @@ const {exitIfNotOnGit, getBranchName} = require('../scm-utils'); const {getPackages} = require('../utils/monorepo'); const chalk = require('chalk'); const inquirer = require('inquirer'); -const path = require('path'); const request = require('request'); const {echo, exit} = require('shelljs'); const yargs = require('yargs'); @@ -53,12 +50,6 @@ let argv = yargs type: 'boolean', default: false, }) - // TODO(T182533699): Remove arg once new workflow is default - .option('use-new-workflow', { - describe: 'When set, triggers the experimental unified release workflow.', - type: 'boolean', - default: false, - }) .check(() => { const branch = exitIfNotOnGit( () => getBranchName(), @@ -77,55 +68,6 @@ function exitIfNotOnReleaseBranch(branch /*: string */) { } } -const buildExecutor = - ( - packageAbsolutePath /*: string */, - packageRelativePathFromRoot /*: string */, - packageManifest /*: $FlowFixMe */, - ) => - async () => { - const {name: packageName} = packageManifest; - if (packageManifest.private) { - return; - } - if ( - detectPackageUnreleasedChanges( - packageRelativePathFromRoot, - packageName, - REPO_ROOT, - ) - ) { - // if I enter here, I want to throw an error upward - throw new Error( - `Package ${packageName} has unreleased changes. Please release it first.`, - ); - } - }; - -async function exitIfUnreleasedPackages() { - // use the other script to verify that there's no packages in the monorepo - // that have changes that haven't been released - - const packages = await getPackages({ - includeReactNative: false, - includePrivate: true, - }); - - for (const pkg of Object.values(packages)) { - const executor = buildExecutor( - pkg.path, - path.relative(REPO_ROOT, pkg.path), - pkg.packageJson, - ); - - await executor().catch(error => { - echo(chalk.red(error)); - // need to throw upward - throw error; - }); - } -} - /** * Get the next version that all workspace packages will be set to. * @@ -184,18 +126,6 @@ async function main() { exit(1); } - // $FlowFixMe[prop-missing] - const useNewWorkflow /*: boolean */ = argv.useNewWorkflow; - - // now check for unreleased packages - if (!useNewWorkflow) { - try { - await exitIfUnreleasedPackages(); - } catch (error) { - exit(1); - } - } - // $FlowFixMe[prop-missing] const token = argv.token; // $FlowFixMe[prop-missing] @@ -238,39 +168,29 @@ async function main() { return; } - let nextMonorepoPackagesVersion; - - if (useNewWorkflow) { - nextMonorepoPackagesVersion = await getNextMonorepoPackagesVersion(); + let nextMonorepoPackagesVersion = await getNextMonorepoPackagesVersion(); - if (nextMonorepoPackagesVersion == null) { - // TODO(T182538198): Once this warning is hit, we can remove the - // `release_monorepo_packages_version` logic from here and the CI jobs, - // see other TODOs. - console.warn( - 'Warning: No longer on the 0.74-stable branch, meaning we will ' + - 'write all package versions identically. Please double-check the ' + - 'generated diff to see if this is correct.', - ); - nextMonorepoPackagesVersion = version; - } + if (nextMonorepoPackagesVersion == null) { + // TODO(T182538198): Once this warning is hit, we can remove the + // `release_monorepo_packages_version` logic from here and the CI jobs, + // see other TODOs. + console.warn( + 'Warning: No longer on the 0.74-stable branch, meaning we will ' + + 'write all package versions identically. Please double-check the ' + + 'generated diff to see if this is correct.', + ); + nextMonorepoPackagesVersion = version; } - const parameters = useNewWorkflow - ? { - run_new_release_workflow: true, - release_version: version, - release_tag: npmTag, - // NOTE: Necessary for 0.74, should be dropped for 0.75+ - release_monorepo_packages_version: nextMonorepoPackagesVersion, - // $FlowFixMe[prop-missing] - release_dry_run: argv.dryRun, - } - : { - release_version: version, - release_latest: latest, - run_release_workflow: true, - }; + const parameters = { + run_release_workflow: true, + release_version: version, + release_tag: npmTag, + // NOTE: Necessary for 0.74, should be dropped for 0.75+ + release_monorepo_packages_version: nextMonorepoPackagesVersion, + // $FlowFixMe[prop-missing] + release_dry_run: argv.dryRun, + }; const options = { method: 'POST', From d66bb7f8538c35d39a751ff569dcd04614adfbfe Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 19 Mar 2024 07:05:03 -0700 Subject: [PATCH 073/223] Remove bump-all-updated-packages script (#43534) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43534 This is no longer used after switching to the new release workflow, which uses the newer and less error-prone `set-version` script. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D55027122 fbshipit-source-id: faa8cfd2af9b54fab611b108df162793c5768695 --- package.json | 1 - scripts/__tests__/npm-utils-test.js | 21 -- .../get-and-update-packages-fixtures.js | 174 ------------ .../__tests__/bump-package-version-test.js | 36 --- scripts/monorepo/align-package-versions.js | 135 --------- .../bump-package-version.js | 52 ---- .../bump-all-updated-packages/bump-utils.js | 49 ---- .../bump-all-updated-packages/index.js | 261 ------------------ scripts/monorepo/constants.js | 24 -- scripts/npm-utils.js | 32 --- .../releases-ci/publish-updated-packages.js | 2 +- 11 files changed, 1 insertion(+), 786 deletions(-) delete mode 100644 scripts/monorepo/__tests__/__fixtures__/get-and-update-packages-fixtures.js delete mode 100644 scripts/monorepo/__tests__/bump-package-version-test.js delete mode 100644 scripts/monorepo/align-package-versions.js delete mode 100644 scripts/monorepo/bump-all-updated-packages/bump-package-version.js delete mode 100644 scripts/monorepo/bump-all-updated-packages/bump-utils.js delete mode 100644 scripts/monorepo/bump-all-updated-packages/index.js delete mode 100644 scripts/monorepo/constants.js diff --git a/package.json b/package.json index 444d26a11fffa8..e8aeb485efcec1 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,6 @@ "android": "cd packages/rn-tester && npm run android", "build-android": "./gradlew :packages:react-native:ReactAndroid:build", "build": "node ./scripts/build/build.js", - "bump-all-updated-packages": "node ./scripts/monorepo/bump-all-updated-packages", "clang-format": "clang-format -i --glob=*/**/*.{h,cpp,m,mm}", "clean": "node ./scripts/build/clean.js", "flow-check": "flow check", diff --git a/scripts/__tests__/npm-utils-test.js b/scripts/__tests__/npm-utils-test.js index 0413bb54f5b6cc..b8291e8caa8a21 100644 --- a/scripts/__tests__/npm-utils-test.js +++ b/scripts/__tests__/npm-utils-test.js @@ -10,7 +10,6 @@ const { applyPackageVersions, getNpmInfo, - getPackageVersionStrByTag, getVersionsBySpec, publishPackage, } = require('../npm-utils'); @@ -73,26 +72,6 @@ describe('npm-utils', () => { }); }); - describe('getPackageVersionStrByTag', () => { - it('should return package version string', () => { - execMock.mockImplementationOnce(() => ({code: 0, stdout: '0.34.2 \n'})); - const versionStr = getPackageVersionStrByTag('my-package', 'next'); - expect(versionStr).toBe('0.34.2'); - }); - it('should throw error when invalid result', () => { - execMock.mockImplementationOnce(() => ({ - code: 1, - stderr: 'Some error message', - })); - - expect(() => { - getPackageVersionStrByTag('my-package', 'next'); - }).toThrow( - "Failed to run 'npm view my-package@next version'\nSome error message", - ); - }); - }); - describe('publishPackage', () => { it('should run publish command', () => { publishPackage( diff --git a/scripts/monorepo/__tests__/__fixtures__/get-and-update-packages-fixtures.js b/scripts/monorepo/__tests__/__fixtures__/get-and-update-packages-fixtures.js deleted file mode 100644 index 4fb2738c7e69c3..00000000000000 --- a/scripts/monorepo/__tests__/__fixtures__/get-and-update-packages-fixtures.js +++ /dev/null @@ -1,174 +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. - * - * @format - * @oncall react-native - */ - -const mockPackages = [ - { - packageManifest: { - name: '@react-native/packageA', - version: 'local-version', - dependencies: {}, - devDependencies: {}, - }, - packageAbsolutePath: '/some/place/packageA', - packageRelativePathFromRoot: './place/packageA', - }, - { - packageManifest: { - name: '@react-native/not_published', - version: 'local-version', - dependencies: {'@react-native/packageA': 'local-version'}, - }, - packageAbsolutePath: '/some/place/not_published', - packageRelativePathFromRoot: './place/not_published', - }, - { - packageManifest: { - name: '@react-native/packageB', - version: 'local-version', - dependencies: {'@react-native/packageA': 'local-version'}, - }, - packageAbsolutePath: '/some/place/packageB', - packageRelativePathFromRoot: './place/packageB', - }, - { - packageManifest: { - name: '@react-native/packageC', - version: 'local-version', - devDependencies: {'@react-native/packageE': 'local-version'}, - }, - packageAbsolutePath: '/some/place/packageC', - packageRelativePathFromRoot: './place/packageC', - }, - { - packageManifest: { - name: '@react-native/packageD', - version: 'local-version', - dependencies: { - '@react-native/packageA': 'local-version', - '@react-native/packageC': 'local-version', - }, - }, - packageAbsolutePath: '/some/place/packageD', - packageRelativePathFromRoot: './place/packageD', - }, - { - packageManifest: {name: '@react-native/packageE', version: 'local-version'}, - packageAbsolutePath: '/some/place/packageE', - packageRelativePathFromRoot: './place/packageE', - }, - { - packageManifest: { - name: '@react-native/packageF', - version: 'local-version', - dependencies: { - '@react-native/packageB': 'local-version', - }, - devDependencies: { - '@react-native/packageD': 'local-version', - }, - }, - packageAbsolutePath: '/some/place/packageF', - packageRelativePathFromRoot: './place/packageF', - }, - { - packageManifest: { - name: '@react-native/packageP', - version: 'local-version', - private: true, - dependencies: {}, - devDependencies: {}, - }, - packageAbsolutePath: '/some/place/packageP', - packageRelativePathFromRoot: './place/packageP', - }, - { - packageManifest: { - name: 'react-native', - version: 'local-version', - private: true, - dependencies: { - '@react-native/packageA': 'local-version', - '@react-native/packageB': 'local-version', - '@react-native/packageC': 'local-version', - }, - devDependencies: { - '@react-native/packageD': 'local-version', - '@react-native/packageE': 'local-version', - '@react-native/packageF': 'local-version', - }, - }, - packageAbsolutePath: '/some/place/react-native', - packageRelativePathFromRoot: './place/react-native', - }, -]; - -function expectedPackageA(newVersion) { - return { - name: '@react-native/packageA', - version: newVersion, - dependencies: {}, - devDependencies: {}, - }; -} - -function expectedPackageB(newVersion) { - return { - name: '@react-native/packageB', - version: newVersion, - dependencies: {'@react-native/packageA': newVersion}, - }; -} - -function expectedPackageC(newVersion) { - return { - name: '@react-native/packageC', - version: newVersion, - devDependencies: {'@react-native/packageE': newVersion}, - }; -} -function expectedPackageD(newVersion) { - return { - name: '@react-native/packageD', - version: newVersion, - dependencies: { - '@react-native/packageA': newVersion, - '@react-native/packageC': newVersion, - }, - }; -} -function expectedPackageE(newVersion) { - return {name: '@react-native/packageE', version: newVersion}; -} -function expectedPackageF(newVersion) { - return { - name: '@react-native/packageF', - version: newVersion, - dependencies: { - '@react-native/packageB': newVersion, - }, - devDependencies: { - '@react-native/packageD': newVersion, - }, - }; -} - -const expectedPackages = { - '@react-native/packageA': expectedPackageA, - '@react-native/packageB': expectedPackageB, - '@react-native/packageC': expectedPackageC, - '@react-native/packageD': expectedPackageD, - '@react-native/packageE': expectedPackageE, - '@react-native/packageF': expectedPackageF, -}; - -module.exports = { - mockPackages, - expectedPackages, -}; diff --git a/scripts/monorepo/__tests__/bump-package-version-test.js b/scripts/monorepo/__tests__/bump-package-version-test.js deleted file mode 100644 index 00dcccb7359d2e..00000000000000 --- a/scripts/monorepo/__tests__/bump-package-version-test.js +++ /dev/null @@ -1,36 +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. - * - * @format - */ - -const bumpPackageVersion = require('../bump-all-updated-packages/bump-package-version'); -const {writeFileSync} = require('fs'); -const path = require('path'); - -jest.mock('fs', () => ({ - writeFileSync: jest.fn(), - readFileSync: jest.fn(() => '{}'), -})); - -describe('bumpPackageVersionTest', () => { - it('updates patch version of the package', () => { - const mockedPackageLocation = '~/packages/assets'; - const mockedPackageManifest = { - name: '@react-native/test', - version: '1.2.3', - }; - - bumpPackageVersion(mockedPackageLocation, mockedPackageManifest); - - expect(writeFileSync).toHaveBeenCalledWith( - path.join(mockedPackageLocation, 'package.json'), - JSON.stringify({...mockedPackageManifest, version: '1.2.4'}, null, 2) + - '\n', - 'utf-8', - ); - }); -}); diff --git a/scripts/monorepo/align-package-versions.js b/scripts/monorepo/align-package-versions.js deleted file mode 100644 index b30d4088b3f9a3..00000000000000 --- a/scripts/monorepo/align-package-versions.js +++ /dev/null @@ -1,135 +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 - * @format - * @oncall react_native - */ - -/*:: -import type {PackageJson} from '../utils/monorepo'; -*/ - -const {getPackages} = require('../utils/monorepo'); -const {readFileSync, writeFileSync} = require('fs'); -const path = require('path'); - -const ROOT_LOCATION = path.join(__dirname, '..', '..'); -const TEMPLATE_LOCATION = path.join( - ROOT_LOCATION, - 'packages', - 'react-native', - 'template', -); - -const readJSONFile = (pathToFile /*: string */) /*: PackageJson */ => - JSON.parse(readFileSync(pathToFile, 'utf-8')); - -const checkIfShouldUpdateDependencyPackageVersion = ( - consumerPackageAbsolutePath /*: string */, - updatedPackageName /*: string */, - updatedPackageVersion /*: string */, -) => { - const consumerPackageManifestPath = path.join( - consumerPackageAbsolutePath, - 'package.json', - ); - const consumerPackageManifest = readJSONFile(consumerPackageManifestPath); - - const dependencyVersion = - consumerPackageManifest.dependencies?.[updatedPackageName]; - - if (dependencyVersion && dependencyVersion !== '*') { - const updatedDependencyVersion = dependencyVersion.startsWith('^') - ? `^${updatedPackageVersion}` - : updatedPackageVersion; - - if (updatedDependencyVersion !== dependencyVersion) { - console.log( - `\uD83D\uDCA1 ${consumerPackageManifest.name} was updated: now using version ${updatedPackageVersion} of ${updatedPackageName}`, - ); - - const updatedPackageManifest = { - ...consumerPackageManifest, - dependencies: { - ...consumerPackageManifest.dependencies, - [updatedPackageName]: updatedDependencyVersion, - }, - }; - - writeFileSync( - consumerPackageManifestPath, - JSON.stringify(updatedPackageManifest, null, 2) + '\n', - 'utf-8', - ); - } - } - - const devDependencyVersion = - consumerPackageManifest.devDependencies?.[updatedPackageName]; - - if (devDependencyVersion && devDependencyVersion !== '*') { - const updatedDependencyVersion = devDependencyVersion.startsWith('^') - ? `^${updatedPackageVersion}` - : updatedPackageVersion; - - if (updatedDependencyVersion !== devDependencyVersion) { - console.log( - `\uD83D\uDCA1 ${consumerPackageManifest.name} was updated: now using version ${updatedPackageVersion} of ${updatedPackageName}`, - ); - - const updatedPackageManifest = { - ...consumerPackageManifest, - devDependencies: { - ...consumerPackageManifest.devDependencies, - [updatedPackageName]: updatedDependencyVersion, - }, - }; - - writeFileSync( - consumerPackageManifestPath, - JSON.stringify(updatedPackageManifest, null, 2) + '\n', - 'utf-8', - ); - } - } -}; - -async function alignPackageVersions() { - const allPackages = await getPackages({ - includeReactNative: true, - includePrivate: true, - }); - const packagesExcludingReactNative = Object.keys(allPackages).filter( - packageName => packageName !== 'react-native', - ); - - for (const packageName of packagesExcludingReactNative) { - const {packageJson: packageManifest} = allPackages[packageName]; - - checkIfShouldUpdateDependencyPackageVersion( - ROOT_LOCATION, - packageManifest.name, - packageManifest.version, - ); - - checkIfShouldUpdateDependencyPackageVersion( - TEMPLATE_LOCATION, - packageManifest.name, - packageManifest.version, - ); - - for (const {path: pathToPackage} of Object.values(allPackages)) { - checkIfShouldUpdateDependencyPackageVersion( - pathToPackage, - packageManifest.name, - packageManifest.version, - ); - } - } -} - -module.exports = alignPackageVersions; diff --git a/scripts/monorepo/bump-all-updated-packages/bump-package-version.js b/scripts/monorepo/bump-all-updated-packages/bump-package-version.js deleted file mode 100644 index d403eb9f94e712..00000000000000 --- a/scripts/monorepo/bump-all-updated-packages/bump-package-version.js +++ /dev/null @@ -1,52 +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. - * - * @format - */ - -const {writeFileSync} = require('fs'); -const path = require('path'); - -const getIncrementedVersion = (version, increment) => - version - .split('.') - .map((token, index) => { - const indexOfVersionToIncrement = increment === 'minor' ? 1 : 2; - - if (index === indexOfVersionToIncrement) { - return parseInt(token, 10) + 1; - } - - if (index > indexOfVersionToIncrement) { - return 0; - } - - return token; - }) - .join('.'); - -const bumpPackageVersion = ( - packageAbsolutePath, - packageManifest, - increment = 'patch', -) => { - const updatedVersion = getIncrementedVersion( - packageManifest.version, - increment, - ); - - // Not using simple `npm version patch` because it updates dependencies and yarn.lock file - writeFileSync( - path.join(packageAbsolutePath, 'package.json'), - JSON.stringify({...packageManifest, version: updatedVersion}, null, 2) + - '\n', - 'utf-8', - ); - - return updatedVersion; -}; - -module.exports = bumpPackageVersion; diff --git a/scripts/monorepo/bump-all-updated-packages/bump-utils.js b/scripts/monorepo/bump-all-updated-packages/bump-utils.js deleted file mode 100644 index 07c57e5313ab27..00000000000000 --- a/scripts/monorepo/bump-all-updated-packages/bump-utils.js +++ /dev/null @@ -1,49 +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. - * - * @format - */ - -const chalk = require('chalk'); -const {echo, exec} = require('shelljs'); - -const detectPackageUnreleasedChanges = ( - packageRelativePathFromRoot, - packageName, - ROOT_LOCATION, -) => { - const hashOfLastCommitInsidePackage = exec( - `git log -n 1 --format=format:%H -- ${packageRelativePathFromRoot}`, - {cwd: ROOT_LOCATION, silent: true}, - ).stdout.trim(); - - const hashOfLastCommitThatChangedVersion = exec( - `git log -G\\"version\\": --format=format:%H -n 1 -- ${packageRelativePathFromRoot}/package.json`, - {cwd: ROOT_LOCATION, silent: true}, - ).stdout.trim(); - - if (hashOfLastCommitInsidePackage === hashOfLastCommitThatChangedVersion) { - echo( - `\uD83D\uDD0E No changes for package ${chalk.green( - packageName, - )} since last version bump`, - ); - return false; - } else { - echo(`\uD83D\uDCA1 Found changes for ${chalk.yellow(packageName)}:`); - exec( - `git log --pretty=oneline ${hashOfLastCommitThatChangedVersion}..${hashOfLastCommitInsidePackage} ${packageRelativePathFromRoot}`, - { - cwd: ROOT_LOCATION, - }, - ); - echo(); - - return true; - } -}; - -module.exports = detectPackageUnreleasedChanges; diff --git a/scripts/monorepo/bump-all-updated-packages/index.js b/scripts/monorepo/bump-all-updated-packages/index.js deleted file mode 100644 index ae8bb555a6bd36..00000000000000 --- a/scripts/monorepo/bump-all-updated-packages/index.js +++ /dev/null @@ -1,261 +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 - * @format - * @oncall react_native - */ - -const {REPO_ROOT} = require('../../consts'); -const {getPackageVersionStrByTag} = require('../../npm-utils'); -const { - isReleaseBranch, - parseVersion, -} = require('../../releases/utils/version-utils'); -const {getBranchName} = require('../../scm-utils'); -const {getPackages} = require('../../utils/monorepo'); -const alignPackageVersions = require('../align-package-versions'); -const checkForGitChanges = require('../check-for-git-changes'); -const { - COMMIT_WITH_CUSTOM_MESSAGE_CHOICE, - COMMIT_WITH_GENERIC_MESSAGE_CHOICE, - GENERIC_COMMIT_MESSAGE, - NO_COMMIT_CHOICE, - PUBLISH_PACKAGES_TAG, -} = require('../constants'); -const bumpPackageVersion = require('./bump-package-version'); -const detectPackageUnreleasedChanges = require('./bump-utils'); -const chalk = require('chalk'); -const {execSync} = require('child_process'); -const inquirer = require('inquirer'); -const path = require('path'); -const {echo, exec, exit} = require('shelljs'); - -const buildExecutor = - ( - packageAbsolutePath /*: string */, - packageRelativePathFromRoot /*: string */, - packageManifest /*: $FlowFixMe */, - ) => - async () => { - const {name: packageName} = packageManifest; - if (packageManifest.private) { - echo(`\u23ED Skipping private package ${chalk.dim(packageName)}`); - - return; - } - - if ( - !detectPackageUnreleasedChanges( - packageRelativePathFromRoot, - packageName, - REPO_ROOT, - ) - ) { - return; - } - - await inquirer - .prompt([ - { - type: 'list', - name: 'shouldBumpPackage', - message: `Do you want to bump ${packageName}?`, - choices: ['Yes', 'No'], - filter: val => val === 'Yes', - }, - ]) - .then(({shouldBumpPackage}) => { - if (!shouldBumpPackage) { - echo(`Skipping bump for ${packageName}`); - return; - } - - return inquirer - .prompt([ - { - type: 'list', - name: 'increment', - message: 'Which version you want to increment?', - choices: ['patch', 'minor'], - }, - ]) - .then(({increment}) => { - const updatedVersion = bumpPackageVersion( - packageAbsolutePath, - packageManifest, - increment, - ); - echo( - `\u2705 Successfully bumped ${chalk.green( - packageName, - )} to ${chalk.green(updatedVersion)}`, - ); - }); - }); - }; - -const main = async () => { - if (checkForGitChanges()) { - echo( - chalk.red( - 'Found uncommitted changes. Please commit or stash them before running this script', - ), - ); - exit(1); - } - - const packages = await getPackages({ - includeReactNative: false, - includePrivate: true, - }); - - for (const pkg of Object.values(packages)) { - const executor = buildExecutor( - pkg.path, - path.relative(REPO_ROOT, pkg.path), - pkg.packageJson, - ); - - await executor() - .catch(() => exit(1)) - .then(() => echo()); - } - - if (!checkForGitChanges()) { - echo('No changes have been made. Finishing the process...'); - exit(0); - } - - echo('Aligning new versions across monorepo...'); - await alignPackageVersions(); - echo(chalk.green('Done!\n')); - - // Figure out the npm dist-tags we want for all monorepo packages we're bumping - const branchName = getBranchName(); - const choices = []; - - if (branchName === 'main') { - choices.push({name: '"nightly"', value: 'nightly', checked: true}); - } else if (isReleaseBranch(branchName)) { - choices.push({ - name: `"${branchName}"`, - value: branchName, - checked: true, - }); - - const latestVersion = getPackageVersionStrByTag('react-native', 'latest'); - const {major, minor} = parseVersion(latestVersion, 'release'); - choices.push({ - name: '"latest"', - value: 'latest', - checked: `${major}.${minor}-stable` === branchName, - }); - } else { - echo( - 'You should be running `yarn bump-all-updated-packages` only from release or main branch', - ); - exit(1); - } - - const {tags} = await inquirer.prompt([ - { - type: 'checkbox', - name: 'tags', - message: 'Select suggested npm tags.', - choices, - required: true, - }, - ]); - - const {confirm} = await inquirer.prompt({ - type: 'confirm', - name: 'confirm', - message: `Confirm these tags for *ALL* packages being bumped: ${tags - .map(t => `"${t}"`) - .join()}`, - }); - - if (!confirm) { - echo('Exiting without commiting...'); - exit(0); - } - - const tagString = '&' + tags.join('&'); - - await inquirer - .prompt([ - { - type: 'list', - name: 'commitChoice', - message: 'Do you want to submit a commit with these changes?', - choices: [ - { - name: 'Yes, with generic message', - value: COMMIT_WITH_GENERIC_MESSAGE_CHOICE, - }, - { - name: 'Yes, with custom message', - value: COMMIT_WITH_CUSTOM_MESSAGE_CHOICE, - }, - { - name: 'No', - value: NO_COMMIT_CHOICE, - }, - ], - }, - ]) - .then(({commitChoice}) => { - switch (commitChoice) { - case NO_COMMIT_CHOICE: { - echo('Not submitting a commit, but keeping all changes'); - - break; - } - - case COMMIT_WITH_GENERIC_MESSAGE_CHOICE: { - exec(`git commit -am "${GENERIC_COMMIT_MESSAGE}${tagString}"`, { - cwd: REPO_ROOT, - silent: true, - }); - - break; - } - - case COMMIT_WITH_CUSTOM_MESSAGE_CHOICE: { - // exec from shelljs currently does not support interactive input - // https://github.com/shelljs/shelljs/wiki/FAQ#running-interactive-programs-with-exec - execSync('git commit -a', {cwd: REPO_ROOT, stdio: 'inherit'}); - - const enteredCommitMessage = exec('git log -n 1 --format=format:%B', { - cwd: REPO_ROOT, - silent: true, - }).stdout.trim(); - const commitMessageWithTag = - enteredCommitMessage + `\n\n${PUBLISH_PACKAGES_TAG}${tagString}`; - - exec(`git commit --amend -m "${commitMessageWithTag}"`, { - cwd: REPO_ROOT, - silent: true, - }); - - break; - } - - default: - throw new Error(''); - } - }) - .then(() => echo()); - - echo(chalk.green('Successfully finished the process of bumping packages')); - exit(0); -}; - -if (require.main === module) { - // eslint-disable-next-line no-void - void main(); -} diff --git a/scripts/monorepo/constants.js b/scripts/monorepo/constants.js deleted file mode 100644 index 8dd1f6c5fe87a9..00000000000000 --- a/scripts/monorepo/constants.js +++ /dev/null @@ -1,24 +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 - */ - -const PUBLISH_PACKAGES_TAG = '#publish-packages-to-npm'; -const GENERIC_COMMIT_MESSAGE = `bumped packages versions\n\n${PUBLISH_PACKAGES_TAG}`; - -const NO_COMMIT_CHOICE = 'NO_COMMIT'; -const COMMIT_WITH_GENERIC_MESSAGE_CHOICE = 'COMMIT_WITH_GENERIC_MESSAGE'; -const COMMIT_WITH_CUSTOM_MESSAGE_CHOICE = 'COMMIT_WITH_CUSTOM_MESSAGE'; - -module.exports = { - PUBLISH_PACKAGES_TAG, - GENERIC_COMMIT_MESSAGE, - NO_COMMIT_CHOICE, - COMMIT_WITH_GENERIC_MESSAGE_CHOICE, - COMMIT_WITH_CUSTOM_MESSAGE_CHOICE, -}; diff --git a/scripts/npm-utils.js b/scripts/npm-utils.js index b127448c6856b0..15da8bb6df44b4 100644 --- a/scripts/npm-utils.js +++ b/scripts/npm-utils.js @@ -141,35 +141,6 @@ function publishPackage( return exec(`npm publish${tagsFlag}${otpFlag}`, options); } -function diffPackages( - packageSpecA /*: string */, - packageSpecB /*: string */, - options /*: ExecOptsSync */, -) /*: string */ { - const result = exec( - `npm diff --diff=${packageSpecA} --diff=${packageSpecB} --diff-name-only`, - options, - ); - - if (result.code !== 0) { - throw new Error( - `Failed to diff ${packageSpecA} and ${packageSpecB}\n${result.stderr}`, - ); - } - - return result.stdout; -} - -function pack(packagePath /*: string */) { - const result = exec('npm pack', { - cwd: packagePath, - }); - - if (result.code !== 0) { - throw new Error(result.stderr); - } -} - /** * `package` is an object form of package.json * `dependencies` is a map of dependency to version string @@ -272,9 +243,6 @@ function getVersionsBySpec( module.exports = { applyPackageVersions, getNpmInfo, - getPackageVersionStrByTag, getVersionsBySpec, publishPackage, - diffPackages, - pack, }; diff --git a/scripts/releases-ci/publish-updated-packages.js b/scripts/releases-ci/publish-updated-packages.js index 56b4bd61003f5f..ff5bf6c688dbe0 100644 --- a/scripts/releases-ci/publish-updated-packages.js +++ b/scripts/releases-ci/publish-updated-packages.js @@ -9,12 +9,12 @@ * @oncall react_native */ -const {PUBLISH_PACKAGES_TAG} = require('../monorepo/constants'); const {publishPackage} = require('../npm-utils'); const {getPackages} = require('../utils/monorepo'); const {parseArgs} = require('@pkgjs/parseargs'); const {execSync} = require('child_process'); +const PUBLISH_PACKAGES_TAG = '#publish-packages-to-npm'; const NPM_CONFIG_OTP = process.env.NPM_CONFIG_OTP; const config = { From 0a7dbfd1a2daf1f4fad785cc2d02d2b1bfe0efe6 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Wed, 20 Mar 2024 08:07:36 -0700 Subject: [PATCH 074/223] Adjust version parsing in release scripts, fix release dry runs in CI (#43568) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43568 Fixes to restore passing CI checks on main after D55027120. - Widen validation checks in version utils to accept `0.x.x` (as opposed to `0.[not-'0'].x`). - Use `tag: test` instead of `tag: latest` for dry run job params. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D55123739 fbshipit-source-id: 9f76dced4e7aa3ce87d6680cd7687ae443305331 --- .circleci/configurations/test_workflows/testAll.yml | 2 +- .circleci/configurations/test_workflows/testAndroid.yml | 2 +- .circleci/configurations/test_workflows/testIOS.yml | 2 +- scripts/releases/utils/version-utils.js | 7 +++++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.circleci/configurations/test_workflows/testAll.yml b/.circleci/configurations/test_workflows/testAll.yml index a359329d207db0..a52e5aab29f44a 100644 --- a/.circleci/configurations/test_workflows/testAll.yml +++ b/.circleci/configurations/test_workflows/testAll.yml @@ -8,7 +8,7 @@ name: "prepare_release (dry run test)" version: "0.0.0" monorepo_packages_version: "0.0.0" - tag: latest + tag: test dry_run: true - prepare_hermes_workspace - build_android: diff --git a/.circleci/configurations/test_workflows/testAndroid.yml b/.circleci/configurations/test_workflows/testAndroid.yml index 6a71b24ae4c8e3..83a1d0e36c99c9 100644 --- a/.circleci/configurations/test_workflows/testAndroid.yml +++ b/.circleci/configurations/test_workflows/testAndroid.yml @@ -8,7 +8,7 @@ name: "prepare_release (dry run test)" version: "0.0.0" monorepo_packages_version: "0.0.0" - tag: latest + tag: test dry_run: true - prepare_hermes_workspace - build_android: diff --git a/.circleci/configurations/test_workflows/testIOS.yml b/.circleci/configurations/test_workflows/testIOS.yml index 5c3766a5b15aed..a877f050813c62 100644 --- a/.circleci/configurations/test_workflows/testIOS.yml +++ b/.circleci/configurations/test_workflows/testIOS.yml @@ -8,7 +8,7 @@ name: "prepare_release (dry run test)" version: "0.0.0" monorepo_packages_version: "0.0.0" - tag: latest + tag: test dry_run: true - prepare_hermes_workspace - build_android: diff --git a/scripts/releases/utils/version-utils.js b/scripts/releases/utils/version-utils.js index e37c74e0036121..d1ff37238708fb 100644 --- a/scripts/releases/utils/version-utils.js +++ b/scripts/releases/utils/version-utils.js @@ -135,14 +135,17 @@ function validatePrealpha(version /*: Version */) { function isStableRelease(version /*: Version */) /*: boolean */ { return ( - version.major === '0' && version.minor !== '0' && version.prerelease == null + version.major === '0' && + !!version.minor.match(/^\d+$/) && + !!version.patch.match(/^\d+$/) && + version.prerelease == null ); } function isStablePrerelease(version /*: Version */) /*: boolean */ { return !!( version.major === '0' && - version.minor !== '0' && + version.minor.match(/^\d+$/) && version.patch.match(/^\d+$/) && (version.prerelease?.startsWith('rc.') || version.prerelease?.startsWith('rc-') || From f3b9226ca06e0619cd2420be76e9be73b5974833 Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Wed, 20 Mar 2024 08:59:46 -0700 Subject: [PATCH 075/223] fix(dev-middleware): create custom message handler for synthetic page (#43559) Summary: This is a follow-up bugfix for expo/expo#27425, related to: - https://github.com/facebook/react-native/issues/43291 - https://github.com/facebook/react-native/issues/43307 - https://github.com/facebook/react-native/issues/43310 - https://github.com/facebook/react-native/issues/43364 The middleware API works as intended and can run our extended CDP events. Unfortunately, this only applies to an actual `Page` from the device, not for the `React Native Experimental (Improved Chrome Reloads)` synthetic / virtual page. That's because the middleware instantiation gets aborted when the page can't be found in `this.#pages.get(pageId)`, which always returns `null` for this synthetic page. ## Changelog: [GENERAL] [FIXED] Create custom message handler for synthetic page Pull Request resolved: https://github.com/facebook/react-native/pull/43559 Test Plan: See added test case. Reviewed By: motiz88 Differential Revision: D55129412 Pulled By: huntie fbshipit-source-id: 9679d8fe68f3cb4104f4a042f93612b995baddc9 --- ...InspectorProxyCustomMessageHandler-test.js | 84 +++++++++++++++++++ .../src/inspector-proxy/Device.js | 27 ++++-- 2 files changed, 102 insertions(+), 9 deletions(-) diff --git a/packages/dev-middleware/src/__tests__/InspectorProxyCustomMessageHandler-test.js b/packages/dev-middleware/src/__tests__/InspectorProxyCustomMessageHandler-test.js index 5f3f8b7798d875..92c0eab475b372 100644 --- a/packages/dev-middleware/src/__tests__/InspectorProxyCustomMessageHandler-test.js +++ b/packages/dev-middleware/src/__tests__/InspectorProxyCustomMessageHandler-test.js @@ -9,9 +9,13 @@ * @oncall react_native */ +import {fetchJson} from './FetchUtils'; +import {createDebuggerMock} from './InspectorDebuggerUtils'; +import {createDeviceMock} from './InspectorDeviceUtils'; import {createAndConnectTarget} from './InspectorProtocolUtils'; import {withAbortSignalForEachTest} from './ResourceUtils'; import {baseUrlForServer, createServer} from './ServerUtils'; +import invariant from 'invariant'; import until from 'wait-for-expect'; // WebSocket is unreliable when using fake timers. @@ -76,6 +80,86 @@ describe('inspector proxy device message middleware', () => { } }); + test('middleware is created with device, debugger, and page information for synthetic reloadable page', async () => { + const createCustomMessageHandler = jest.fn().mockImplementation(() => null); + const {server} = await createServer({ + logger: undefined, + projectRoot: '', + unstable_customInspectorMessageHandler: createCustomMessageHandler, + }); + const {serverBaseUrl, serverBaseWsUrl} = serverRefUrls(server); + + let device, debugger_; + try { + device = await createDeviceMock( + `${serverBaseWsUrl}/inspector/device?device=device1&name=foo&app=bar`, + autoCleanup.signal, + ); + // Mock the device to return a normal React (Native) page + device.getPages.mockImplementation(() => [ + { + ...page, + // NOTE: 'React' is a magic string used to detect React Native pages. + title: 'React Native (mock)', + }, + ]); + + // Retrieve the full page list from device + let pageList; + await until(async () => { + pageList = (await fetchJson( + `${serverBaseUrl}/json`, + // $FlowIgnore[unclear-type] + ): any); + expect(pageList.length).toBeGreaterThan(0); + }); + invariant(pageList != null, ''); + + // Find the synthetic page + const syntheticPage = pageList.find( + ({title}) => + // NOTE: Magic string used for the synthetic page that has a stable ID + title === 'React Native Experimental (Improved Chrome Reloads)', + ); + expect(syntheticPage).not.toBeUndefined(); + + // Connect the debugger to this synthetic page + debugger_ = await createDebuggerMock( + syntheticPage.webSocketDebuggerUrl, + autoCleanup.signal, + ); + + // Ensure the middleware was created with the device information + await until(() => + expect(createCustomMessageHandler).toBeCalledWith( + expect.objectContaining({ + page: expect.objectContaining({ + id: expect.any(String), + title: syntheticPage.title, + vm: syntheticPage.vm, + app: expect.any(String), + capabilities: expect.any(Object), + }), + device: expect.objectContaining({ + appId: expect.any(String), + id: expect.any(String), + name: expect.any(String), + sendMessage: expect.any(Function), + }), + debugger: expect.objectContaining({ + userAgent: null, + sendMessage: expect.any(Function), + }), + }), + ), + ); + } finally { + device?.close(); + debugger_?.close(); + await closeServer(server); + } + }); + test('send message functions are passing messages to sockets', async () => { const handleDebuggerMessage = jest.fn(); const handleDeviceMessage = jest.fn(); diff --git a/packages/dev-middleware/src/inspector-proxy/Device.js b/packages/dev-middleware/src/inspector-proxy/Device.js index a7c4450c593da3..b4ef0ad731cad8 100644 --- a/packages/dev-middleware/src/inspector-proxy/Device.js +++ b/packages/dev-middleware/src/inspector-proxy/Device.js @@ -176,14 +176,7 @@ export default class Device { getPagesList(): $ReadOnlyArray { if (this.#lastConnectedLegacyReactNativePage) { - const reactNativeReloadablePage = { - id: REACT_NATIVE_RELOADABLE_PAGE_ID, - title: 'React Native Experimental (Improved Chrome Reloads)', - vm: "don't use", - app: this.#app, - capabilities: {}, - }; - return [...this.#pages.values(), reactNativeReloadablePage]; + return [...this.#pages.values(), this.#createSyntheticPage()]; } else { return [...this.#pages.values()]; } @@ -224,7 +217,10 @@ export default class Device { // TODO(moti): Handle null case explicitly, e.g. refuse to connect to // unknown pages. - const page: ?Page = this.#pages.get(pageId); + const page: ?Page = + pageId === REACT_NATIVE_RELOADABLE_PAGE_ID + ? this.#createSyntheticPage() + : this.#pages.get(pageId); this.#debuggerConnection = debuggerInfo; @@ -379,6 +375,19 @@ export default class Device { return page.capabilities[flag] === true; } + /** + * Returns the synthetic "React Native Experimental (Improved Chrome Reloads)" page. + */ + #createSyntheticPage(): Page { + return { + id: REACT_NATIVE_RELOADABLE_PAGE_ID, + title: 'React Native Experimental (Improved Chrome Reloads)', + vm: "don't use", + app: this.#app, + capabilities: {}, + }; + } + // Handles messages received from device: // 1. For getPages responses updates local #pages list. // 2. All other messages are forwarded to debugger as wrappedEvent. From eed035a3b6008a8c7a81a0f444aee03a01f6b06e Mon Sep 17 00:00:00 2001 From: Kudo Chien Date: Mon, 25 Mar 2024 18:24:21 +0800 Subject: [PATCH 076/223] fix(iOS): add missing forward blocks to RCTRootViewFactory (#43638) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(iOS): add missing forward blocks to RCTRootViewFactory (#43526) Summary: This PR adds missing forwarding blocks to RCTRootViewFactory, currently when a user tries to override `sourceURLForBridge` in AppDelegate it isn't overridden. ## Changelog: [IOS] [FIXED] - add missing forward blocks to RCTRootViewFactory Pull Request resolved: https://github.com/facebook/react-native/pull/43526 Test Plan: Override: `extraModulesForBridge`, `extraLazyModuleClassesForBridge`, `bridge didNotFindModule`, `sourceURLForBridge:` methods in AppDelegate and check if they are called on old architecture Reviewed By: philIip Differential Revision: D55186872 Pulled By: cortinico fbshipit-source-id: 5988c7bab1439ccc4885b7337336c1e120ba9ea6 (cherry picked from commit 9d79f05e68cd64bf8b213ff89a25726184ef387c) * Follow-up with Review Feedback on RCTAppDelegate from #43526 (#43607) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43607 PR #43526 was accidentally merged with several changes excluded. I'm following up on those here. Changelog: [Internal] [Changed] - Follow-up with Review Feedback on RCTAppDelegate from #43526 Reviewed By: dmytrorykun Differential Revision: D55240435 fbshipit-source-id: c296a1e14b7032b211551334ca7b5a6824e8d45c (cherry picked from commit 84c1c6ea9b588f5e9936754fefb32f18b4a25dcf) --------- Co-authored-by: Oskar Kwaśniewski Co-authored-by: Nicola Corti --- .../Libraries/AppDelegate/RCTAppDelegate.mm | 42 +++++++++++++ .../AppDelegate/RCTRootViewFactory.h | 59 +++++++++++++++++++ .../AppDelegate/RCTRootViewFactory.mm | 43 ++++++++++++++ 3 files changed, 144 insertions(+) diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm index cee2c9017bb3b9..238a0efd6695f5 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm @@ -250,6 +250,48 @@ - (RCTRootViewFactory *)createRCTRootViewFactory return [weakSelf createBridgeWithDelegate:delegate launchOptions:launchOptions]; }; + configuration.sourceURLForBridge = ^NSURL *_Nullable(RCTBridge *_Nonnull bridge) + { + return [weakSelf sourceURLForBridge:bridge]; + }; + + if ([self respondsToSelector:@selector(extraModulesForBridge:)]) { + configuration.extraModulesForBridge = ^NSArray> *_Nonnull(RCTBridge *_Nonnull bridge) + { + return [weakSelf extraModulesForBridge:bridge]; + }; + } + + if ([self respondsToSelector:@selector(extraLazyModuleClassesForBridge:)]) { + configuration.extraLazyModuleClassesForBridge = + ^NSDictionary *_Nonnull(RCTBridge *_Nonnull bridge) + { + return [weakSelf extraLazyModuleClassesForBridge:bridge]; + }; + } + + if ([self respondsToSelector:@selector(bridge:didNotFindModule:)]) { + configuration.bridgeDidNotFindModule = ^BOOL(RCTBridge *_Nonnull bridge, NSString *_Nonnull moduleName) { + return [weakSelf bridge:bridge didNotFindModule:moduleName]; + }; + } + + if ([self respondsToSelector:@selector(loadSourceForBridge:withBlock:)]) { + configuration.loadSourceForBridgeBlock = + ^void(RCTBridge *_Nonnull bridge, RCTSourceLoadBlock _Nonnull loadCallback) { + [weakSelf loadSourceForBridge:bridge withBlock:loadCallback]; + }; + } + + if ([self respondsToSelector:@selector(loadSourceForBridge:onProgress:onComplete:)]) { + configuration.loadSourceForBridgeProgressBlock = + ^(RCTBridge *_Nonnull bridge, + RCTSourceLoadProgressBlock _Nonnull onProgress, + RCTSourceLoadBlock _Nonnull loadCallback) { + [weakSelf loadSourceForBridge:bridge onProgress:onProgress onComplete:loadCallback]; + }; + } + return [[RCTRootViewFactory alloc] initWithConfiguration:configuration andTurboModuleManagerDelegate:self]; } diff --git a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h index 5047802ebc5eda..d642ab2b8978ed 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h +++ b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h @@ -23,6 +23,15 @@ typedef UIView *_Nonnull ( ^RCTCreateRootViewWithBridgeBlock)(RCTBridge *bridge, NSString *moduleName, NSDictionary *initProps); typedef RCTBridge *_Nonnull ( ^RCTCreateBridgeWithDelegateBlock)(id delegate, NSDictionary *launchOptions); +typedef NSURL *_Nullable (^RCTSourceURLForBridgeBlock)(RCTBridge *bridge); +typedef NSArray> *_Nonnull (^RCTExtraModulesForBridgeBlock)(RCTBridge *bridge); +typedef NSDictionary *_Nonnull (^RCTExtraLazyModuleClassesForBridge)(RCTBridge *bridge); +typedef BOOL (^RCTBridgeDidNotFindModuleBlock)(RCTBridge *bridge, NSString *moduleName); +typedef void (^RCTLoadSourceForBridgeBlock)(RCTBridge *bridge, RCTSourceLoadBlock loadCallback); +typedef void (^RCTLoadSourceForBridgeProgressBlock)( + RCTBridge *bridge, + RCTSourceLoadProgressBlock onProgress, + RCTSourceLoadBlock loadCallback); #pragma mark - RCTRootViewFactory Configuration @interface RCTRootViewFactoryConfiguration : NSObject @@ -80,6 +89,56 @@ typedef RCTBridge *_Nonnull ( * @returns: a newly created instance of RCTBridge. */ @property (nonatomic, nullable) RCTCreateBridgeWithDelegateBlock createBridgeWithDelegate; +/** + * Block that returns the location of the JavaScript source file. When running from the packager + * this should be an absolute URL, e.g. `http://localhost:8081/index.ios.bundle`. + * When running from a locally bundled JS file, this should be a `file://` url + * pointing to a path inside the app resources, e.g. `file://.../main.jsbundle`. + */ +@property (nonatomic, nullable) RCTSourceURLForBridgeBlock sourceURLForBridge; + +/** + * The bridge initializes any registered RCTBridgeModules automatically, however + * if you wish to instantiate your own module instances, you can return them + * from this block. + * + * Note: You should always return a new instance for each call, rather than + * returning the same instance each time the bridge is reloaded. Module instances + * should not be shared between bridges, and this may cause unexpected behavior. + * + * It is also possible to override standard modules with your own implementations + * by returning a class with the same `moduleName` from this method, but this is + * not recommended in most cases - if the module methods and behavior do not + * match exactly, it may lead to bugs or crashes. + */ +@property (nonatomic, nullable) RCTExtraModulesForBridgeBlock extraModulesForBridge; + +/** + * Retrieve the list of lazy-native-modules names for the given bridge. + */ +@property (nonatomic, nullable) RCTExtraLazyModuleClassesForBridge extraLazyModuleClassesForBridge; + +/** + * The bridge will call this block when a module been called from JS + * cannot be found among registered modules. + * It should return YES if the module with name 'moduleName' was registered + * in the implementation, and the system must attempt to look for it again among registered. + * If the module was not registered, return NO to prevent further searches. + */ +@property (nonatomic, nullable) RCTBridgeDidNotFindModuleBlock bridgeDidNotFindModule; + +/** + * The bridge will automatically attempt to load the JS source code from the + * location specified by the `sourceURLForBridge:` method, however, if you want + * to handle loading the JS yourself, you can do so by implementing this method. + */ +@property (nonatomic, nullable) RCTLoadSourceForBridgeProgressBlock loadSourceForBridgeProgressBlock; + +/** + * Similar to loadSourceForBridge:onProgress:onComplete: but without progress + * reporting. + */ +@property (nonatomic, nullable) RCTLoadSourceForBridgeBlock loadSourceForBridgeBlock; @end diff --git a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm index e8ebdefba1dc7e..c145eabe42fa4b 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm @@ -240,11 +240,54 @@ - (void)didCreateContextContainer:(std::shared_ptrinsert("ReactNativeConfig", _reactNativeConfig); } +- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge +{ + if (_configuration.extraModulesForBridge != nil) { + return _configuration.extraModulesForBridge(bridge); + } + return nil; +} + +- (NSDictionary *)extraLazyModuleClassesForBridge:(RCTBridge *)bridge +{ + if (_configuration.extraLazyModuleClassesForBridge != nil) { + return _configuration.extraLazyModuleClassesForBridge(bridge); + } + return nil; +} + - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { + if (_configuration.sourceURLForBridge != nil) { + return _configuration.sourceURLForBridge(bridge); + } return [self bundleURL]; } +- (BOOL)bridge:(RCTBridge *)bridge didNotFindModule:(NSString *)moduleName +{ + if (_configuration.bridgeDidNotFindModule != nil) { + return _configuration.bridgeDidNotFindModule(bridge, moduleName); + } + return NO; +} + +- (void)loadSourceForBridge:(RCTBridge *)bridge withBlock:(RCTSourceLoadBlock)loadCallback +{ + if (_configuration.loadSourceForBridgeBlock != nil) { + _configuration.loadSourceForBridgeBlock(bridge, loadCallback); + } +} + +- (void)loadSourceForBridge:(RCTBridge *)bridge + onProgress:(RCTSourceLoadProgressBlock)onProgress + onComplete:(RCTSourceLoadBlock)loadCallback +{ + if (_configuration.loadSourceForBridgeProgressBlock != nil) { + _configuration.loadSourceForBridgeProgressBlock(bridge, onProgress, loadCallback); + } +} + - (NSURL *)bundleURL { return self->_configuration.bundleURL; From 2c62dcabe5ea60be2a58eb3a8675bfa515c52488 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Mon, 25 Mar 2024 10:24:36 +0000 Subject: [PATCH 077/223] [0.74] Fixes build from source on Android (#43616) * fix(android): fix `ndkVersion` is unset when building from source (#43131) Summary: `ndkVersion` is unset when building from source using this guide: https://reactnative.dev/contributing/how-to-build-from-source ## Changelog: [ANDROID] [FIXED] - Fix `ndkVersion` is unset when building from source Pull Request resolved: https://github.com/facebook/react-native/pull/43131 Test Plan: ``` git clone https://github.com/microsoft/react-native-test-app.git cd react-native-test-app npm run set-react-version nightly yarn # Manually apply the patch in node_modules/react-native/ReactAndroid/build.gradle.kts # Enable building from source sed -i '' 's/#react.buildFromSource/react.buildFromSource/' example/android/gradle.properties # Build cd example/android ./gradlew assembleDebug ``` Reviewed By: christophpurrer Differential Revision: D54006425 Pulled By: cortinico fbshipit-source-id: 9ede64bc14af4cf609b7a4c12c5a1082bbc31f09 * Fix build from source for hermes-engine (#43609) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43609 When users are building from source for React Native they don't have an ndkVersion variable specified. So we want to fallback to the global NDK version we set for the whole build here. Changelog: [Android] [Fixed] - Fix build from source for hermes-engine Reviewed By: dmytrorykun Differential Revision: D55240603 fbshipit-source-id: 3c725a164b40e176548af8ada9fcb13d391ef017 --------- Co-authored-by: Tommy Nguyen <4123478+tido64@users.noreply.github.com> --- packages/react-native/ReactAndroid/build.gradle.kts | 2 ++ .../react-native/ReactAndroid/hermes-engine/build.gradle.kts | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index 7c8499df4f58c2..c19351acaae072 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -488,6 +488,8 @@ android { } if (rootProject.hasProperty("ndkVersion") && rootProject.properties["ndkVersion"] != null) { ndkVersion = rootProject.properties["ndkVersion"].toString() + } else { + ndkVersion = libs.versions.ndkVersion.get() } compileOptions { diff --git a/packages/react-native/ReactAndroid/hermes-engine/build.gradle.kts b/packages/react-native/ReactAndroid/hermes-engine/build.gradle.kts index 17eb24f355b55b..7fa719f08e60d2 100644 --- a/packages/react-native/ReactAndroid/hermes-engine/build.gradle.kts +++ b/packages/react-native/ReactAndroid/hermes-engine/build.gradle.kts @@ -192,6 +192,8 @@ android { } if (rootProject.hasProperty("ndkVersion") && rootProject.properties["ndkVersion"] != null) { ndkVersion = rootProject.properties["ndkVersion"].toString() + } else { + ndkVersion = libs.versions.ndkVersion.get() } defaultConfig { From 1d4b263d3d62b5fc24506c546cd6e60a01428067 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Thu, 21 Mar 2024 11:37:13 -0700 Subject: [PATCH 078/223] Fix prefab header paths for `rrc_text` and `rrc_textinput` (#43591) Summary: - `rrc_textinput` at the moment points to a wrong subdirectory and needlessly adds a prefix path - `rrc_text` is missing headers for `attributedstring` which it depends on ## Changelog: [ANDROID] [FIXED] - Fixed prefab header paths for `rrc_text` and `rrc_textinput` Pull Request resolved: https://github.com/facebook/react-native/pull/43591 Reviewed By: fkgozali Differential Revision: D55199580 Pulled By: cortinico fbshipit-source-id: 85126c00943f82e908a52e05587661597761852e --- .../ReactAndroid/build.gradle.kts | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/react-native/ReactAndroid/build.gradle.kts b/packages/react-native/ReactAndroid/build.gradle.kts index c19351acaae072..4909aeddba5dd2 100644 --- a/packages/react-native/ReactAndroid/build.gradle.kts +++ b/packages/react-native/ReactAndroid/build.gradle.kts @@ -127,14 +127,24 @@ val preparePrefab by )), PrefabPreprocessingEntry( "rrc_text", - Pair( - "../ReactCommon/react/renderer/components/text/", - "react/renderer/components/text/")), + listOf( + Pair( + "../ReactCommon/react/renderer/components/text/", + "react/renderer/components/text/"), + Pair( + "../ReactCommon/react/renderer/attributedstring", + "react/renderer/attributedstring"), + )), PrefabPreprocessingEntry( "rrc_textinput", - Pair( - "../ReactCommon/react/renderer/components/textinput/", - "react/renderer/components/androidtextinput/")), + listOf( + Pair( + "../ReactCommon/react/renderer/components/textinput/", + "react/renderer/components/textinput/"), + Pair( + "../ReactCommon/react/renderer/components/textinput/platform/android/", + ""), + )), PrefabPreprocessingEntry( "rrc_legacyviewmanagerinterop", Pair( From 35f6000c6672d02844f32a7e4891b99a45bef269 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Fri, 22 Mar 2024 07:58:49 -0700 Subject: [PATCH 079/223] Include boost headers needed by `rrc_text` and `rrc_textinput` (#43608) Summary: Updates `PreparePrefabHeadersTask` to copy more headers from `boost`, specifically those required by `rrc_text` and `rrc_textinput`. ## Changelog: [ANDROID] [CHANGED] - Copy boost headers needed by `rrc_text` and `rrc_textinput` Pull Request resolved: https://github.com/facebook/react-native/pull/43608 Reviewed By: rshest Differential Revision: D55241345 Pulled By: cortinico fbshipit-source-id: e92164676ba78ee15b3678a55c9098b0c6214b69 --- .../internal/PreparePrefabHeadersTask.kt | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/packages/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/internal/PreparePrefabHeadersTask.kt b/packages/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/internal/PreparePrefabHeadersTask.kt index f3b55e091104a5..6b07391768308c 100644 --- a/packages/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/internal/PreparePrefabHeadersTask.kt +++ b/packages/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/internal/PreparePrefabHeadersTask.kt @@ -54,6 +54,26 @@ abstract class PreparePrefabHeadersTask : DefaultTask() { it.include("boost/detail/workaround.hpp") it.include("boost/operators.hpp") it.include("boost/preprocessor/**/*.hpp") + // Headers needed for exposing rrc_text and rrc_textinput + it.include("boost/container_hash/**/*.hpp") + it.include("boost/detail/**/*.hpp") + it.include("boost/intrusive/**/*.hpp") + it.include("boost/iterator/**/*.hpp") + it.include("boost/move/**/*.hpp") + it.include("boost/mpl/**/*.hpp") + it.include("boost/mp11/**/*.hpp") + it.include("boost/describe/**/*.hpp") + it.include("boost/preprocessor/**/*.hpp") + it.include("boost/type_traits/**/*.hpp") + it.include("boost/utility/**/*.hpp") + it.include("boost/detail/workaround.hpp") + it.include("boost/assert.hpp") + it.include("boost/static_assert.hpp") + it.include("boost/cstdint.hpp") + it.include("boost/operators.hpp") + it.include("boost/config.hpp") + it.include("boost/utility.hpp") + it.include("boost/version.hpp") it.into(File(outputFolder.asFile, headerPrefix)) } } From 33e3ec94264873b98417ce0d48dc00c84616a9a9 Mon Sep 17 00:00:00 2001 From: Gabriel Donadel Date: Thu, 21 Mar 2024 18:22:21 -0700 Subject: [PATCH 080/223] Implement multiple view manager lookup for the interop layer on Android (#43595) Summary: When running with the new architurece and using the renderer interop layer on Android, view managers don't work if their names start with `RCT`. This happens because the `RCT` prefix is automatically removed from the component name, and inside the internal `mViewManagers` we store view managers with the `RCT` prefix. Using the `RCT` pattern as a prefix works fine with the old architecture and is actually used on the [Android Native UI Components](https://reactnative.dev/docs/next/native-components-android) tutorial in the docs, making me believe that this same patterns is used across many community libraries. This diff adds a secondary lookup logic for view managers: 1. We look for the XXXViewManager. 2. If not found, we look for RCTXXXViewManager. Quite similar to the iOS implementation introduced in https://github.com/facebook/react-native/pull/38093 --- With this change we can also remove most of the entries from FabricNameComponentMapping (I can address this in a follow up PR) https://github.com/facebook/react-native/blob/4e6eba7a2dedaa855af0bff5df3bec73a95f0fc4/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/FabricNameComponentMapping.java#L22-L45 ## Changelog: [ANDROID] [ADDED] - Implement multiple view manager lookup for the interop layer Pull Request resolved: https://github.com/facebook/react-native/pull/43595 Test Plan: Tested installing a library such as [react-native-fbsdk-next](https://github.com/thebergamo/react-native-fbsdk-next) that names its view managers starting with `RCT`
Before After
image image
Reviewed By: cortinico Differential Revision: D55208396 Pulled By: arushikesarwani94 fbshipit-source-id: a1fb1f4cee8483cf91ebededd1d7c4ba7021f9d9 --- .../react/uimanager/ViewManagerRegistry.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java index 1f3c219250a71f..b7d7e969649967 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerRegistry.java @@ -53,16 +53,32 @@ public ViewManagerRegistry(Map viewManagerMap) { * @return the {@link ViewManager} registered to the className received as a parameter */ public synchronized ViewManager get(String className) { + // 1. Try to get the manager without the prefix. ViewManager viewManager = mViewManagers.get(className); if (viewManager != null) { return viewManager; } + + // 2. Try to get the manager with the RCT prefix. + String rctViewManagerName = "RCT" + className; + viewManager = mViewManagers.get(rctViewManagerName); + if (viewManager != null) { + return viewManager; + } if (mViewManagerResolver != null) { + // 1. Try to get the manager without the prefix. viewManager = getViewManagerFromResolver(className); if (viewManager != null) return viewManager; + + // 2. Try to get the manager with the RCT prefix. + viewManager = getViewManagerFromResolver(rctViewManagerName); + if (viewManager != null) return viewManager; + throw new IllegalViewOperationException( - "ViewManagerResolver returned null for " + "ViewManagerResolver returned null for either " + className + + " or " + + rctViewManagerName + ", existing names are: " + mViewManagerResolver.getViewManagerNames()); } From 20bcf57ee31435a7f47b19cb94a01aa492c8fc85 Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Thu, 21 Mar 2024 13:55:11 -0700 Subject: [PATCH 081/223] Warn users during "pod install" if XCode is too old (#43583) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43583 Fail during `pod install` if user's version of XCode is too old to avoid cryptic errors (e.g. https://github.com/reactwg/react-native-releases/issues/163). I reused existing mechanism for version detection, though it may not be reliable for future versions of XCode. Changelog: [iOS][Changed] - Warn users during "pod install" if XCode is too old Reviewed By: dmytrorykun Differential Revision: D55149636 fbshipit-source-id: 78387ff19a6eb10f3ca0d4aa78e6b934ae3b0711 --- .../react-native/scripts/cocoapods/helpers.rb | 4 +++ .../react-native/scripts/cocoapods/utils.rb | 32 +++++++++++++++---- .../react-native/scripts/react_native_pods.rb | 2 ++ 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/helpers.rb b/packages/react-native/scripts/cocoapods/helpers.rb index 1e115ef1755528..68017d1f0cc535 100644 --- a/packages/react-native/scripts/cocoapods/helpers.rb +++ b/packages/react-native/scripts/cocoapods/helpers.rb @@ -41,6 +41,10 @@ def self.min_ios_version_supported return '13.4' end + def self.min_xcode_version_supported + return '14.3' + end + def self.folly_config return { :version => '2024.01.01.00', diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index 6df005cee4fc1e..3ae80d74bda4ae 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -407,19 +407,39 @@ def self.remove_value_from_setting_if_present(config, setting_name, value) def self.is_using_xcode15_0(xcodebuild_manager: Xcodebuild) xcodebuild_version = xcodebuild_manager.version + if version = self.parse_xcode_version(xcodebuild_version) + return version["major"] == 15 && version["minor"] == 0 + end + + return false + end + + def self.parse_xcode_version(version_string) # The output of xcodebuild -version is something like # Xcode 15.0 # or # Xcode 14.3.1 # We want to capture the version digits - regex = /(\d+)\.(\d+)(?:\.(\d+))?/ - if match_data = xcodebuild_version.match(regex) - major = match_data[1].to_i - minor = match_data[2].to_i - return major == 15 && minor == 0 + match = version_string.match(/(\d+)\.(\d+)(?:\.(\d+))?/) + return nil if match.nil? + + return {"str" => match[0], "major" => match[1].to_i, "minor" => match[2].to_i}; + end + + def self.check_minimum_required_xcode(xcodebuild_manager: Xcodebuild) + version = self.parse_xcode_version(xcodebuild_manager.version) + if (version.nil? || !Gem::Version::correct?(version["str"])) + Pod::UI.warn "Unexpected XCode version string '#{xcodebuild_manager.version}'" + return end - return false + current = version["str"] + min_required = Helpers::Constants.min_xcode_version_supported + + if Gem::Version::new(current) < Gem::Version::new(min_required) + Pod::UI.puts "React Native requires XCode >= #{min_required}. Found #{current}.".red + raise "Please upgrade XCode" + end end def self.add_compiler_flag_to_project(installer, flag, configuration: nil) diff --git a/packages/react-native/scripts/react_native_pods.rb b/packages/react-native/scripts/react_native_pods.rb index 0943e9029e9dc5..5757ef1280a0cd 100644 --- a/packages/react-native/scripts/react_native_pods.rb +++ b/packages/react-native/scripts/react_native_pods.rb @@ -80,6 +80,8 @@ def use_react_native! ( ENV['APP_PATH'] = app_path ENV['REACT_NATIVE_PATH'] = path + ReactNativePodsUtils.check_minimum_required_xcode() + # Current target definition is provided by Cocoapods and it refers to the target # that has invoked the `use_react_native!` function. ReactNativePodsUtils.detect_use_frameworks(current_target_definition) From 396d444e793fbdde16f6067ab84ad893c4183b9c Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Thu, 21 Mar 2024 12:55:51 -0700 Subject: [PATCH 082/223] Fix Android HorizontalScrollView fling when content length less than ScrollView length (#43563) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43563 Fixes https://github.com/facebook/react-native/issues/42874 ## Sumary D9405703 added some custom logic for Flings, to support FlatList scenarios where content is being added on the fly, during Fling animation. This works by allowing start Fling to not have bounds, then correcting/cancelling Fling when overscroll happens over a bound that would normally be allowed. This has some math to try to determine max content length, and will clamp to this when scrolling over it. This logic is incorrect when content length is less than scrollview length, and we end up snapping to a negative offset. This change adds clamping, so that we don't snap to negative position in horizontal scroll view. This clamping was already indirectly present on vertical scroll view. https://www.internalfb.com/code/fbsource/[b43cdf9b2fec71f5341ec8ff2d47e28a066f052e]/xplat/js/react-native-github/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java?lines=609 ## Test Plan Above issue no longer reproes. Flinging while content is being added to horizontal FlatList still works correctly. Changelog: [Android][Fixed] - Fix Android HorizontalScrollView fling when content length less than ScrollView length Reviewed By: javache Differential Revision: D55108818 fbshipit-source-id: 7cf0065f9f92832cc2606d1c7534fc150407b9c9 --- .../facebook/react/views/scroll/ReactHorizontalScrollView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java index 7dbcb788c3ac32..82976b53dc0f17 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java @@ -807,7 +807,7 @@ protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolea // more information. if (!mScroller.isFinished() && mScroller.getCurrX() != mScroller.getFinalX()) { - int scrollRange = computeHorizontalScrollRange() - getWidth(); + int scrollRange = Math.max(computeHorizontalScrollRange() - getWidth(), 0); if (scrollX >= scrollRange) { mScroller.abortAnimation(); scrollX = scrollRange; From 0f4234f45009be2c54dfd8a71466676034c4d6d9 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Thu, 21 Mar 2024 16:18:28 -0700 Subject: [PATCH 083/223] Fix InteropUIBlockListener to support react-native-view-shot on Bridgeless (#43594) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43594 I've been migrating `react-native-view-shot` to Fabric by using the `InteropUiBlockListener` and I've realized that the interop layer doesn't work well. 1. FabricUIManager needs to implement `UIBlockViewResolver` in order for the interop layer to work correctly. 2. We need to hook `addUIBlock` to the `didDispatchMountItems` callback otherwise the UIBlocks won't be executed at all. Changelog: [Android] [Fixed] - Fix InteropUIBlockListener to support react-native-view-shot on Bridgeless Reviewed By: javache Differential Revision: D55187939 fbshipit-source-id: d048b4b5eed77fa856fdfac17c0df5f23fd44844 --- .../ReactAndroid/api/ReactAndroid.api | 2 +- .../react/fabric/FabricUIManager.java | 3 +- .../interop/InteropUiBlockListener.kt | 10 +++- .../interop/InteropUiBlockListenerTest.kt | 48 +++++++++++++++++++ 4 files changed, 59 insertions(+), 4 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 4d72f0ea722178..d4bb2e9a36582d 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -2516,7 +2516,7 @@ public class com/facebook/react/fabric/FabricSoLoader { public static fun staticInit ()V } -public class com/facebook/react/fabric/FabricUIManager : com/facebook/react/bridge/LifecycleEventListener, com/facebook/react/bridge/UIManager { +public class com/facebook/react/fabric/FabricUIManager : com/facebook/react/bridge/LifecycleEventListener, com/facebook/react/bridge/UIManager, com/facebook/react/fabric/interop/UIBlockViewResolver { public static final field ENABLE_FABRIC_LOGS Z public static final field ENABLE_FABRIC_PERF_LOGS Z public static final field IS_DEVELOPMENT_ENVIRONMENT Z diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java index f091faaf87c6fd..bd76cd15dbd6b1 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -57,6 +57,7 @@ import com.facebook.react.fabric.events.FabricEventEmitter; import com.facebook.react.fabric.internal.interop.InteropUIBlockListener; import com.facebook.react.fabric.interop.UIBlock; +import com.facebook.react.fabric.interop.UIBlockViewResolver; import com.facebook.react.fabric.mounting.MountItemDispatcher; import com.facebook.react.fabric.mounting.MountingManager; import com.facebook.react.fabric.mounting.SurfaceMountingManager; @@ -99,7 +100,7 @@ */ @SuppressLint("MissingNativeLoadLibrary") @DoNotStripAny -public class FabricUIManager implements UIManager, LifecycleEventListener { +public class FabricUIManager implements UIManager, LifecycleEventListener, UIBlockViewResolver { public static final String TAG = FabricUIManager.class.getSimpleName(); // The IS_DEVELOPMENT_ENVIRONMENT variable is used to log extra data when running fabric in a diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListener.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListener.kt index 1db876d5aa1b47..3c3f7cfd2d4ff6 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListener.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListener.kt @@ -37,6 +37,9 @@ internal class InteropUIBlockListener : UIManagerListener { } override fun willMountItems(uiManager: UIManager) { + if (beforeUIBlocks.isEmpty()) { + return + } beforeUIBlocks.forEach { if (uiManager is UIBlockViewResolver) { it.execute(uiManager) @@ -46,6 +49,9 @@ internal class InteropUIBlockListener : UIManagerListener { } override fun didMountItems(uiManager: UIManager) { + if (afterUIBlocks.isEmpty()) { + return + } afterUIBlocks.forEach { if (uiManager is UIBlockViewResolver) { it.execute(uiManager) @@ -54,9 +60,9 @@ internal class InteropUIBlockListener : UIManagerListener { afterUIBlocks.clear() } - override fun willDispatchViewUpdates(uiManager: UIManager) = Unit + override fun didDispatchMountItems(uiManager: UIManager) = didMountItems(uiManager) - override fun didDispatchMountItems(uiManager: UIManager) = Unit + override fun willDispatchViewUpdates(uiManager: UIManager) = willMountItems(uiManager) override fun didScheduleMountItems(uiManager: UIManager) = Unit } diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListenerTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListenerTest.kt index d875aa83ef8699..71985256665153 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListenerTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/fabric/internal/interop/InteropUiBlockListenerTest.kt @@ -43,6 +43,18 @@ class InteropUiBlockListenerTest { assertEquals(1, underTest.afterUIBlocks.size) } + @Test + fun willDispatchViewUpdates_emptiesBeforeUIBlocks() { + val underTest = InteropUIBlockListener() + underTest.prependUIBlock {} + underTest.addUIBlock {} + + underTest.willDispatchViewUpdates(FakeUIManager()) + + assertEquals(0, underTest.beforeUIBlocks.size) + assertEquals(1, underTest.afterUIBlocks.size) + } + @Test fun didMountItems_emptiesAfterUIBlocks() { val underTest = InteropUIBlockListener() @@ -55,6 +67,18 @@ class InteropUiBlockListenerTest { assertEquals(0, underTest.afterUIBlocks.size) } + @Test + fun didDispatchMountItems_emptiesAfterUIBlocks() { + val underTest = InteropUIBlockListener() + underTest.prependUIBlock {} + underTest.addUIBlock {} + + underTest.didDispatchMountItems(FakeUIManager()) + + assertEquals(1, underTest.beforeUIBlocks.size) + assertEquals(0, underTest.afterUIBlocks.size) + } + @Test fun willMountItems_deliversUiManagerCorrectly() { val fakeUIManager = FakeUIManager() @@ -67,6 +91,18 @@ class InteropUiBlockListenerTest { assertEquals(1, fakeUIManager.resolvedViewCount) } + @Test + fun willDispatchViewUpdates_deliversUiManagerCorrectly() { + val fakeUIManager = FakeUIManager() + val underTest = InteropUIBlockListener() + + underTest.prependUIBlock { uiManager -> uiManager.resolveView(0) } + + underTest.willDispatchViewUpdates(fakeUIManager) + + assertEquals(1, fakeUIManager.resolvedViewCount) + } + @Test fun didMountItems_deliversUiManagerCorrectly() { val fakeUIManager = FakeUIManager() @@ -78,4 +114,16 @@ class InteropUiBlockListenerTest { assertEquals(1, fakeUIManager.resolvedViewCount) } + + @Test + fun didDispatchMountItems_deliversUiManagerCorrectly() { + val fakeUIManager = FakeUIManager() + val underTest = InteropUIBlockListener() + + underTest.addUIBlock { uiManager -> uiManager.resolveView(0) } + + underTest.didDispatchMountItems(fakeUIManager) + + assertEquals(1, fakeUIManager.resolvedViewCount) + } } From 5eea4cda1b20e17d314f2222cde2854e0e2223db Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Tue, 12 Mar 2024 11:52:52 -0700 Subject: [PATCH 084/223] Support onWindowFocusChange in Bridgeless (#43398) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43398 Implement onWindowFocusChange in Bridgeless by adding it to the ReactHostImpl Changelog: [Android][Breaking] Implement onWindowFocusChange in Bridgeless Reviewed By: javache Differential Revision: D54670119 fbshipit-source-id: 71f560e5a3bf0e853ac06955e67b8035f1ec0468 --- .../ReactAndroid/api/ReactAndroid.api | 3 +++ .../facebook/react/ReactActivityDelegate.java | 6 +----- .../java/com/facebook/react/ReactDelegate.java | 10 ++++++++++ .../main/java/com/facebook/react/ReactHost.kt | 3 +++ .../facebook/react/runtime/ReactHostImpl.java | 17 +++++++++++++++++ 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index d4bb2e9a36582d..954f64e5692b84 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -154,6 +154,7 @@ public class com/facebook/react/ReactDelegate { public fun onHostDestroy ()V public fun onHostPause ()V public fun onHostResume ()V + public fun onWindowFocusChanged (Z)V public fun shouldShowDevMenuOrReload (ILandroid/view/KeyEvent;)Z } @@ -204,6 +205,7 @@ public abstract interface class com/facebook/react/ReactHost { public abstract fun onHostPause (Landroid/app/Activity;)V public abstract fun onHostResume (Landroid/app/Activity;)V public abstract fun onHostResume (Landroid/app/Activity;Lcom/facebook/react/modules/core/DefaultHardwareBackBtnHandler;)V + public abstract fun onWindowFocusChange (Z)V public abstract fun reload (Ljava/lang/String;)Lcom/facebook/react/interfaces/TaskInterface; public abstract fun removeBeforeDestroyListener (Lkotlin/jvm/functions/Function0;)V public abstract fun setJsEngineResolutionAlgorithm (Lcom/facebook/react/JSEngineResolutionAlgorithm;)V @@ -3652,6 +3654,7 @@ public class com/facebook/react/runtime/ReactHostImpl : com/facebook/react/React public fun onHostPause (Landroid/app/Activity;)V public fun onHostResume (Landroid/app/Activity;)V public fun onHostResume (Landroid/app/Activity;Lcom/facebook/react/modules/core/DefaultHardwareBackBtnHandler;)V + public fun onWindowFocusChange (Z)V public fun reload (Ljava/lang/String;)Lcom/facebook/react/interfaces/TaskInterface; public fun removeBeforeDestroyListener (Lkotlin/jvm/functions/Function0;)V public fun removeReactInstanceEventListener (Lcom/facebook/react/ReactInstanceEventListener;)V diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index 87ffae6ef54d01..a745a956e25025 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -186,11 +186,7 @@ public boolean onNewIntent(Intent intent) { } public void onWindowFocusChanged(boolean hasFocus) { - if (!ReactFeatureFlags.enableBridgelessArchitecture) { - if (getReactNativeHost().hasInstance()) { - getReactNativeHost().getReactInstanceManager().onWindowFocusChange(hasFocus); - } - } + mReactDelegate.onWindowFocusChanged(hasFocus); } public void onConfigurationChanged(Configuration newConfig) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index a8c5247e239207..72551735abf159 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -150,6 +150,16 @@ public void onActivityResult( } } + public void onWindowFocusChanged(boolean hasFocus) { + if (ReactFeatureFlags.enableBridgelessArchitecture) { + mReactHost.onWindowFocusChange(hasFocus); + } else { + if (getReactNativeHost().hasInstance()) { + getReactNativeHost().getReactInstanceManager().onWindowFocusChange(hasFocus); + } + } + } + public void loadApp() { loadApp(mMainComponentName); } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt index 69c9821b004a27..1183e792138518 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt @@ -120,6 +120,9 @@ public interface ReactHost { data: Intent?, ) + /* To be called when focus has changed for the hosting window. */ + public fun onWindowFocusChange(hasFocus: Boolean) + public fun addBeforeDestroyListener(onBeforeDestroy: () -> Unit) public fun removeBeforeDestroyListener(onBeforeDestroy: () -> Unit) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java index a5ad6a83af4f39..3941f64183389b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java @@ -647,6 +647,23 @@ public void onActivityResult( "Tried to access onActivityResult while context is not ready")); } + /* To be called when focus has changed for the hosting window. */ + @ThreadConfined(UI) + @Override + public void onWindowFocusChange(boolean hasFocus) { + final String method = "onWindowFocusChange(hasFocus = \"" + hasFocus + "\")"; + log(method); + + ReactContext currentContext = getCurrentReactContext(); + if (currentContext != null) { + currentContext.onWindowFocusChange(hasFocus); + } + ReactSoftExceptionLogger.logSoftException( + TAG, + new ReactNoCrashSoftException( + "Tried to access onWindowFocusChange while context is not ready")); + } + @Nullable JavaScriptContextHolder getJavaScriptContextHolder() { final ReactInstance reactInstance = mReactInstanceTaskRef.get().getResult(); From dbc83220e00e7caf1d32ad070f0057738d9d4d15 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Tue, 12 Mar 2024 19:00:35 -0700 Subject: [PATCH 085/223] Support onNewIntent in Bridgeless (#43401) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43401 Implement `onNewIntent` in Bridgeless by adding it to ReactHostImpl Changelog: [Android][Breaking] Implement `onNewIntent` in Bridgeless Reviewed By: fkgozali, RSNara Differential Revision: D54703159 fbshipit-source-id: fd8589d8131f4fa57188d493331dc68fb38c4520 --- .../ReactAndroid/api/ReactAndroid.api | 3 ++ .../facebook/react/ReactActivityDelegate.java | 8 +---- .../com/facebook/react/ReactDelegate.java | 13 ++++++++ .../main/java/com/facebook/react/ReactHost.kt | 3 ++ .../facebook/react/runtime/ReactHostImpl.java | 32 +++++++++++++++++++ 5 files changed, 52 insertions(+), 7 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 954f64e5692b84..ff87278022f3eb 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -154,6 +154,7 @@ public class com/facebook/react/ReactDelegate { public fun onHostDestroy ()V public fun onHostPause ()V public fun onHostResume ()V + public fun onNewIntent (Landroid/content/Intent;)Z public fun onWindowFocusChanged (Z)V public fun shouldShowDevMenuOrReload (ILandroid/view/KeyEvent;)Z } @@ -205,6 +206,7 @@ public abstract interface class com/facebook/react/ReactHost { public abstract fun onHostPause (Landroid/app/Activity;)V public abstract fun onHostResume (Landroid/app/Activity;)V public abstract fun onHostResume (Landroid/app/Activity;Lcom/facebook/react/modules/core/DefaultHardwareBackBtnHandler;)V + public abstract fun onNewIntent (Landroid/content/Intent;)V public abstract fun onWindowFocusChange (Z)V public abstract fun reload (Ljava/lang/String;)Lcom/facebook/react/interfaces/TaskInterface; public abstract fun removeBeforeDestroyListener (Lkotlin/jvm/functions/Function0;)V @@ -3654,6 +3656,7 @@ public class com/facebook/react/runtime/ReactHostImpl : com/facebook/react/React public fun onHostPause (Landroid/app/Activity;)V public fun onHostResume (Landroid/app/Activity;)V public fun onHostResume (Landroid/app/Activity;Lcom/facebook/react/modules/core/DefaultHardwareBackBtnHandler;)V + public fun onNewIntent (Landroid/content/Intent;)V public fun onWindowFocusChange (Z)V public fun reload (Ljava/lang/String;)Lcom/facebook/react/interfaces/TaskInterface; public fun removeBeforeDestroyListener (Lkotlin/jvm/functions/Function0;)V diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index a745a956e25025..acc8b5e404bec7 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -176,13 +176,7 @@ public boolean onBackPressed() { } public boolean onNewIntent(Intent intent) { - if (!ReactFeatureFlags.enableBridgelessArchitecture) { - if (getReactNativeHost().hasInstance()) { - getReactNativeHost().getReactInstanceManager().onNewIntent(intent); - return true; - } - } - return false; + return mReactDelegate.onNewIntent(intent); } public void onWindowFocusChanged(boolean hasFocus) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index 72551735abf159..c8f08d48cf6a87 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -137,6 +137,19 @@ public boolean onBackPressed() { return false; } + public boolean onNewIntent(Intent intent) { + if (ReactFeatureFlags.enableBridgelessArchitecture) { + mReactHost.onNewIntent(intent); + return true; + } else { + if (getReactNativeHost().hasInstance()) { + getReactNativeHost().getReactInstanceManager().onNewIntent(intent); + return true; + } + } + return false; + } + public void onActivityResult( int requestCode, int resultCode, Intent data, boolean shouldForwardToReactInstance) { if (ReactFeatureFlags.enableBridgelessArchitecture) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt index 1183e792138518..11a7826437179f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt @@ -123,6 +123,9 @@ public interface ReactHost { /* To be called when focus has changed for the hosting window. */ public fun onWindowFocusChange(hasFocus: Boolean) + /* This method will give JS the opportunity to receive intents via Linking. */ + public fun onNewIntent(intent: Intent) + public fun addBeforeDestroyListener(onBeforeDestroy: () -> Unit) public fun removeBeforeDestroyListener(onBeforeDestroy: () -> Unit) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java index 3941f64183389b..8c2a52795c50c3 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java @@ -16,6 +16,8 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.net.Uri; +import android.nfc.NfcAdapter; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -664,6 +666,36 @@ public void onWindowFocusChange(boolean hasFocus) { "Tried to access onWindowFocusChange while context is not ready")); } + /* This method will give JS the opportunity to receive intents via Linking. + * + * @param intent The incoming intent + */ + @ThreadConfined(UI) + @Override + public void onNewIntent(Intent intent) { + log("onNewIntent()"); + + ReactContext currentContext = getCurrentReactContext(); + if (currentContext != null) { + String action = intent.getAction(); + Uri uri = intent.getData(); + + if (uri != null + && (Intent.ACTION_VIEW.equals(action) + || NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action))) { + DeviceEventManagerModule deviceEventManagerModule = + currentContext.getNativeModule(DeviceEventManagerModule.class); + if (deviceEventManagerModule != null) { + deviceEventManagerModule.emitNewIntentReceived(uri); + } + } + currentContext.onNewIntent(getCurrentActivity(), intent); + } + ReactSoftExceptionLogger.logSoftException( + TAG, + new ReactNoCrashSoftException("Tried to access onNewIntent while context is not ready")); + } + @Nullable JavaScriptContextHolder getJavaScriptContextHolder() { final ReactInstance reactInstance = mReactInstanceTaskRef.get().getResult(); From 76463789fd78cfc10805c40d6a71220a50ef34ae Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Wed, 13 Mar 2024 15:08:55 -0700 Subject: [PATCH 086/223] Support onConfigurationChanged in Bridgeless (#43463) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43463 Implement `onConfigurationChanged` in Bridgeless by adding it to ReactHostImpl Changelog: [Android][Breaking] Implement onConfigurationChanged in Bridgeless Reviewed By: cortinico, RSNara Differential Revision: D54792399 fbshipit-source-id: 6851daca815f486f4d839e128a1d740d3fec1996 --- .../ReactAndroid/api/ReactAndroid.api | 3 +++ .../com/facebook/react/ReactActivityDelegate.java | 6 +----- .../java/com/facebook/react/ReactDelegate.java | 12 ++++++++++++ .../src/main/java/com/facebook/react/ReactHost.kt | 2 ++ .../com/facebook/react/runtime/ReactHostImpl.java | 15 +++++++++++++++ 5 files changed, 33 insertions(+), 5 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index ff87278022f3eb..474314ad39a269 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -151,6 +151,7 @@ public class com/facebook/react/ReactDelegate { public fun loadApp (Ljava/lang/String;)V public fun onActivityResult (IILandroid/content/Intent;Z)V public fun onBackPressed ()Z + public fun onConfigurationChanged (Landroid/content/res/Configuration;)V public fun onHostDestroy ()V public fun onHostPause ()V public fun onHostResume ()V @@ -200,6 +201,7 @@ public abstract interface class com/facebook/react/ReactHost { public abstract fun getReactQueueConfiguration ()Lcom/facebook/react/bridge/queue/ReactQueueConfiguration; public abstract fun onActivityResult (Landroid/app/Activity;IILandroid/content/Intent;)V public abstract fun onBackPressed ()Z + public abstract fun onConfigurationChanged (Landroid/content/Context;)V public abstract fun onHostDestroy ()V public abstract fun onHostDestroy (Landroid/app/Activity;)V public abstract fun onHostPause ()V @@ -3650,6 +3652,7 @@ public class com/facebook/react/runtime/ReactHostImpl : com/facebook/react/React public fun getReactQueueConfiguration ()Lcom/facebook/react/bridge/queue/ReactQueueConfiguration; public fun onActivityResult (Landroid/app/Activity;IILandroid/content/Intent;)V public fun onBackPressed ()Z + public fun onConfigurationChanged (Landroid/content/Context;)V public fun onHostDestroy ()V public fun onHostDestroy (Landroid/app/Activity;)V public fun onHostPause ()V diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index acc8b5e404bec7..823da4e84f7677 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -184,11 +184,7 @@ public void onWindowFocusChanged(boolean hasFocus) { } public void onConfigurationChanged(Configuration newConfig) { - if (!ReactFeatureFlags.enableBridgelessArchitecture) { - if (getReactNativeHost().hasInstance()) { - getReactInstanceManager().onConfigurationChanged(getContext(), newConfig); - } - } + mReactDelegate.onConfigurationChanged(newConfig); } public void requestPermissions( diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index c8f08d48cf6a87..3213de76603a25 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -9,6 +9,7 @@ import android.app.Activity; import android.content.Intent; +import android.content.res.Configuration; import android.os.Bundle; import android.view.KeyEvent; import androidx.annotation.NonNull; @@ -173,6 +174,17 @@ public void onWindowFocusChanged(boolean hasFocus) { } } + public void onConfigurationChanged(Configuration newConfig) { + if (ReactFeatureFlags.enableBridgelessArchitecture) { + mReactHost.onConfigurationChanged(Assertions.assertNotNull(mActivity)); + } else { + if (getReactNativeHost().hasInstance()) { + getReactInstanceManager() + .onConfigurationChanged(Assertions.assertNotNull(mActivity), newConfig); + } + } + } + public void loadApp() { loadApp(mMainComponentName); } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt index 11a7826437179f..b66775c2e76ca8 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt @@ -126,6 +126,8 @@ public interface ReactHost { /* This method will give JS the opportunity to receive intents via Linking. */ public fun onNewIntent(intent: Intent) + public fun onConfigurationChanged(context: Context) + public fun addBeforeDestroyListener(onBeforeDestroy: () -> Unit) public fun removeBeforeDestroyListener(onBeforeDestroy: () -> Unit) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java index 8c2a52795c50c3..56fbafaccf73aa 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java @@ -57,6 +57,7 @@ import com.facebook.react.interfaces.TaskInterface; import com.facebook.react.interfaces.exceptionmanager.ReactJsExceptionHandler; import com.facebook.react.interfaces.fabric.ReactSurface; +import com.facebook.react.modules.appearance.AppearanceModule; import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler; import com.facebook.react.modules.core.DeviceEventManagerModule; import com.facebook.react.runtime.internal.bolts.Continuation; @@ -696,6 +697,20 @@ public void onNewIntent(Intent intent) { new ReactNoCrashSoftException("Tried to access onNewIntent while context is not ready")); } + @ThreadConfined(UI) + @Override + public void onConfigurationChanged(Context updatedContext) { + ReactContext currentReactContext = getCurrentReactContext(); + if (currentReactContext != null) { + AppearanceModule appearanceModule = + currentReactContext.getNativeModule(AppearanceModule.class); + + if (appearanceModule != null) { + appearanceModule.onConfigurationChanged(updatedContext); + } + } + } + @Nullable JavaScriptContextHolder getJavaScriptContextHolder() { final ReactInstance reactInstance = mReactInstanceTaskRef.get().getResult(); From 8bf509ec44bd874b9eda9e3d1ca9d089a4c411e8 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Thu, 14 Mar 2024 12:10:57 -0700 Subject: [PATCH 087/223] Support onKeyDown in Bridgeless (#43466) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43466 Implement `onKeyDown` in Bridgeless by adding it to ReactHostImpl Changelog: [Android][Breaking] Implement `onKeyDown` in Bridgeless Reviewed By: cortinico Differential Revision: D54870966 fbshipit-source-id: 0f8e48b29679f1bca92f6ac7b6ebf1592cdc5dac --- .../react-native/ReactAndroid/api/ReactAndroid.api | 1 + .../com/facebook/react/ReactActivityDelegate.java | 10 +--------- .../main/java/com/facebook/react/ReactDelegate.java | 13 +++++++++++++ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 474314ad39a269..f008928db0bfc9 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -155,6 +155,7 @@ public class com/facebook/react/ReactDelegate { public fun onHostDestroy ()V public fun onHostPause ()V public fun onHostResume ()V + public fun onKeyDown (ILandroid/view/KeyEvent;)Z public fun onNewIntent (Landroid/content/Intent;)Z public fun onWindowFocusChanged (Z)V public fun shouldShowDevMenuOrReload (ILandroid/view/KeyEvent;)Z diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index 823da4e84f7677..4b3cc0130d8bb0 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -144,15 +144,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { } public boolean onKeyDown(int keyCode, KeyEvent event) { - if (!ReactFeatureFlags.enableBridgelessArchitecture) { - if (getReactNativeHost().hasInstance() - && getReactNativeHost().getUseDeveloperSupport() - && keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) { - event.startTracking(); - return true; - } - } - return false; + return mReactDelegate.onKeyDown(keyCode, event); } public boolean onKeyUp(int keyCode, KeyEvent event) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index 3213de76603a25..2243391e2a0e0e 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -185,6 +185,19 @@ public void onConfigurationChanged(Configuration newConfig) { } } + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD + && ((ReactFeatureFlags.enableBridgelessArchitecture + && mReactHost != null + && mReactHost.getDevSupportManager() != null) + || (getReactNativeHost().hasInstance() + && getReactNativeHost().getUseDeveloperSupport()))) { + event.startTracking(); + return true; + } + return false; + } + public void loadApp() { loadApp(mMainComponentName); } From 4fe26e3b2f58f0bc8246dbe921856c3f5d8c887a Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Thu, 14 Mar 2024 12:10:57 -0700 Subject: [PATCH 088/223] Support onKeyLongPress in Bridgeless (#43472) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43472 Implement `onKeyLongPress` in Bridgeless Changelog: [Android][Breaking] Implement onKeyLongPress in Bridgeless Reviewed By: cortinico Differential Revision: D54876052 fbshipit-source-id: 88d572eab087d913205bdfa02dba96b169066393 --- .../ReactAndroid/api/ReactAndroid.api | 1 + .../facebook/react/ReactActivityDelegate.java | 10 +--------- .../java/com/facebook/react/ReactDelegate.java | 17 +++++++++++++++++ 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index f008928db0bfc9..cd4ec3e9aafc82 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -156,6 +156,7 @@ public class com/facebook/react/ReactDelegate { public fun onHostPause ()V public fun onHostResume ()V public fun onKeyDown (ILandroid/view/KeyEvent;)Z + public fun onKeyLongPress (I)Z public fun onNewIntent (Landroid/content/Intent;)Z public fun onWindowFocusChanged (Z)V public fun shouldShowDevMenuOrReload (ILandroid/view/KeyEvent;)Z diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index 4b3cc0130d8bb0..b6595ca1773e3b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -152,15 +152,7 @@ public boolean onKeyUp(int keyCode, KeyEvent event) { } public boolean onKeyLongPress(int keyCode, KeyEvent event) { - if (!ReactFeatureFlags.enableBridgelessArchitecture) { - if (getReactNativeHost().hasInstance() - && getReactNativeHost().getUseDeveloperSupport() - && keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) { - getReactNativeHost().getReactInstanceManager().showDevOptionsDialog(); - return true; - } - } - return false; + return mReactDelegate.onKeyLongPress(keyCode); } public boolean onBackPressed() { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index 2243391e2a0e0e..e5d2713ca4d80a 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -198,6 +198,23 @@ && getReactNativeHost().getUseDeveloperSupport()))) { return false; } + public boolean onKeyLongPress(int keyCode) { + if (keyCode == KeyEvent.KEYCODE_MEDIA_FAST_FORWARD) { + if (ReactFeatureFlags.enableBridgelessArchitecture + && mReactHost != null + && mReactHost.getDevSupportManager() != null) { + mReactHost.getDevSupportManager().showDevOptionsDialog(); + return true; + } else { + if (getReactNativeHost().hasInstance() && getReactNativeHost().getUseDeveloperSupport()) { + getReactNativeHost().getReactInstanceManager().showDevOptionsDialog(); + return true; + } + } + } + return false; + } + public void loadApp() { loadApp(mMainComponentName); } From 36d64312c8b0944c337c37035155ee4cc7b92693 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Mon, 18 Mar 2024 11:54:03 -0700 Subject: [PATCH 089/223] Refactor ReactDelegate to provide DevSupportManager (#43520) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43520 Refactor ReactDelegate to have a private `getDevSupportManager()` that can also be re-used by `reload()` This method conditionally provides the correct DevSupportManager in cases of Bridge & Bridgeless Changelog: [Internal] internal Reviewed By: cortinico Differential Revision: D54967130 fbshipit-source-id: 37d585de33a50b98d01803d3080c5693a8c494b9 --- .../com/facebook/react/ReactDelegate.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index e5d2713ca4d80a..b59be2d17dd320 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -82,6 +82,20 @@ public ReactDelegate( mReactNativeHost = reactNativeHost; } + @Nullable + private DevSupportManager getDevSupportManager() { + if (ReactFeatureFlags.enableBridgelessArchitecture + && mReactHost != null + && mReactHost.getDevSupportManager() != null) { + return mReactHost.getDevSupportManager(); + } else if (getReactNativeHost().hasInstance() + && getReactNativeHost().getUseDeveloperSupport()) { + return getReactNativeHost().getReactInstanceManager().getDevSupportManager(); + } else { + return null; + } + } + public void onHostResume() { if (ReactFeatureFlags.enableBridgelessArchitecture) { if (mActivity instanceof DefaultHardwareBackBtnHandler) { @@ -261,15 +275,8 @@ protected ReactRootView createRootView() { * application. */ public boolean shouldShowDevMenuOrReload(int keyCode, KeyEvent event) { - DevSupportManager devSupportManager = null; - if (ReactFeatureFlags.enableBridgelessArchitecture - && mReactHost != null - && mReactHost.getDevSupportManager() != null) { - devSupportManager = mReactHost.getDevSupportManager(); - } else if (getReactNativeHost().hasInstance() - && getReactNativeHost().getUseDeveloperSupport()) { - devSupportManager = getReactNativeHost().getReactInstanceManager().getDevSupportManager(); - } else { + DevSupportManager devSupportManager = getDevSupportManager(); + if (devSupportManager == null) { return false; } From 0e5ba6db2db0e2d0e35b678465e00ed379e2fc68 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Tue, 19 Mar 2024 13:32:21 -0700 Subject: [PATCH 090/223] Support reload in ReactDelegate (#43521) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43521 Changelog: [Android] [Added] - Support reload() in ReactDelegate Reviewed By: cortinico Differential Revision: D54967602 fbshipit-source-id: adfa200cabcbecf9507775ac38f17c9d01b2671a --- packages/react-native/ReactAndroid/api/ReactAndroid.api | 1 + .../src/main/java/com/facebook/react/ReactDelegate.java | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index cd4ec3e9aafc82..0261f325c05bea 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -159,6 +159,7 @@ public class com/facebook/react/ReactDelegate { public fun onKeyLongPress (I)Z public fun onNewIntent (Landroid/content/Intent;)Z public fun onWindowFocusChanged (Z)V + public fun reload ()V public fun shouldShowDevMenuOrReload (ILandroid/view/KeyEvent;)Z } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index b59be2d17dd320..429e38de09dd8d 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -229,6 +229,13 @@ public boolean onKeyLongPress(int keyCode) { return false; } + public void reload() { + DevSupportManager devSupportManager = getDevSupportManager(); + if (devSupportManager != null) { + devSupportManager.handleReloadJS(); + } + } + public void loadApp() { loadApp(mMainComponentName); } From f6757a20c6c8662c6e312f27461e78b49e9213ff Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Thu, 21 Mar 2024 09:40:32 -0700 Subject: [PATCH 091/223] Expose ReactDelegate for react-native-restart (#43588) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43588 Supported `reload()` in Bridgeless through ReactDelegate in https://github.com/facebook/react-native/pull/43521 in order to unblock react-native-restart https://github.com/avishayil/react-native-restart/blob/134cabd5b3f355ffe551e5dd1be1dd46d870fe13/android/src/main/java/com/reactnativerestart/RestartModule.java#L54 which can access React Delegate through : ``` if(currentActivity instanceof ReactActivity) { ReactActivity reactActivity = (ReactActivity) currentActivity; ReactDelegate reactDelegate = reactActivity.getReactDelegate(); reactDelegate.reload() } ``` Changelog: [Android][Added] Expose ReactDelegate in ReactActivity Reviewed By: cortinico Differential Revision: D55166962 fbshipit-source-id: 5d8dfd7ad61edbcb5233014800eb66a538842ca5 --- packages/react-native/ReactAndroid/api/ReactAndroid.api | 2 ++ .../src/main/java/com/facebook/react/ReactActivity.java | 4 ++++ .../main/java/com/facebook/react/ReactActivityDelegate.java | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 0261f325c05bea..568af79cf2a377 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -83,6 +83,7 @@ public abstract class com/facebook/react/ReactActivity : androidx/appcompat/app/ protected fun ()V protected fun createReactActivityDelegate ()Lcom/facebook/react/ReactActivityDelegate; protected fun getMainComponentName ()Ljava/lang/String; + public fun getReactDelegate ()V protected final fun getReactInstanceManager ()Lcom/facebook/react/ReactInstanceManager; protected final fun getReactNativeHost ()Lcom/facebook/react/ReactNativeHost; public fun invokeDefaultOnBackPressed ()V @@ -113,6 +114,7 @@ public class com/facebook/react/ReactActivityDelegate { protected fun getLaunchOptions ()Landroid/os/Bundle; public fun getMainComponentName ()Ljava/lang/String; protected fun getPlainActivity ()Landroid/app/Activity; + protected fun getReactDelegate ()Lcom/facebook/react/ReactDelegate; public fun getReactHost ()Lcom/facebook/react/ReactHost; public fun getReactInstanceManager ()Lcom/facebook/react/ReactInstanceManager; protected fun getReactNativeHost ()Lcom/facebook/react/ReactNativeHost; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java index e6fd3fdd534bb6..ef827a4f16a165 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java @@ -65,6 +65,10 @@ protected void onDestroy() { mDelegate.onDestroy(); } + public void getReactDelegate() { + mDelegate.getReactDelegate(); + } + @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index b6595ca1773e3b..2f1a0c8c55d1f2 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -88,6 +88,10 @@ public ReactHost getReactHost() { return ((ReactApplication) getPlainActivity().getApplication()).getReactHost(); } + protected @Nullable ReactDelegate getReactDelegate() { + return mReactDelegate; + } + public ReactInstanceManager getReactInstanceManager() { return mReactDelegate.getReactInstanceManager(); } From cc6e734fa43884594163cd45a16bc95fcb5acafb Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Mon, 25 Mar 2024 12:18:44 +0000 Subject: [PATCH 092/223] Revert "fix(iOS): add missing forward blocks to RCTRootViewFactory (#43638)" This reverts commit eed035a3b6008a8c7a81a0f444aee03a01f6b06e. --- .../Libraries/AppDelegate/RCTAppDelegate.mm | 42 ------------- .../AppDelegate/RCTRootViewFactory.h | 59 ------------------- .../AppDelegate/RCTRootViewFactory.mm | 43 -------------- 3 files changed, 144 deletions(-) diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm index 238a0efd6695f5..cee2c9017bb3b9 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm @@ -250,48 +250,6 @@ - (RCTRootViewFactory *)createRCTRootViewFactory return [weakSelf createBridgeWithDelegate:delegate launchOptions:launchOptions]; }; - configuration.sourceURLForBridge = ^NSURL *_Nullable(RCTBridge *_Nonnull bridge) - { - return [weakSelf sourceURLForBridge:bridge]; - }; - - if ([self respondsToSelector:@selector(extraModulesForBridge:)]) { - configuration.extraModulesForBridge = ^NSArray> *_Nonnull(RCTBridge *_Nonnull bridge) - { - return [weakSelf extraModulesForBridge:bridge]; - }; - } - - if ([self respondsToSelector:@selector(extraLazyModuleClassesForBridge:)]) { - configuration.extraLazyModuleClassesForBridge = - ^NSDictionary *_Nonnull(RCTBridge *_Nonnull bridge) - { - return [weakSelf extraLazyModuleClassesForBridge:bridge]; - }; - } - - if ([self respondsToSelector:@selector(bridge:didNotFindModule:)]) { - configuration.bridgeDidNotFindModule = ^BOOL(RCTBridge *_Nonnull bridge, NSString *_Nonnull moduleName) { - return [weakSelf bridge:bridge didNotFindModule:moduleName]; - }; - } - - if ([self respondsToSelector:@selector(loadSourceForBridge:withBlock:)]) { - configuration.loadSourceForBridgeBlock = - ^void(RCTBridge *_Nonnull bridge, RCTSourceLoadBlock _Nonnull loadCallback) { - [weakSelf loadSourceForBridge:bridge withBlock:loadCallback]; - }; - } - - if ([self respondsToSelector:@selector(loadSourceForBridge:onProgress:onComplete:)]) { - configuration.loadSourceForBridgeProgressBlock = - ^(RCTBridge *_Nonnull bridge, - RCTSourceLoadProgressBlock _Nonnull onProgress, - RCTSourceLoadBlock _Nonnull loadCallback) { - [weakSelf loadSourceForBridge:bridge onProgress:onProgress onComplete:loadCallback]; - }; - } - return [[RCTRootViewFactory alloc] initWithConfiguration:configuration andTurboModuleManagerDelegate:self]; } diff --git a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h index d642ab2b8978ed..5047802ebc5eda 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h +++ b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h @@ -23,15 +23,6 @@ typedef UIView *_Nonnull ( ^RCTCreateRootViewWithBridgeBlock)(RCTBridge *bridge, NSString *moduleName, NSDictionary *initProps); typedef RCTBridge *_Nonnull ( ^RCTCreateBridgeWithDelegateBlock)(id delegate, NSDictionary *launchOptions); -typedef NSURL *_Nullable (^RCTSourceURLForBridgeBlock)(RCTBridge *bridge); -typedef NSArray> *_Nonnull (^RCTExtraModulesForBridgeBlock)(RCTBridge *bridge); -typedef NSDictionary *_Nonnull (^RCTExtraLazyModuleClassesForBridge)(RCTBridge *bridge); -typedef BOOL (^RCTBridgeDidNotFindModuleBlock)(RCTBridge *bridge, NSString *moduleName); -typedef void (^RCTLoadSourceForBridgeBlock)(RCTBridge *bridge, RCTSourceLoadBlock loadCallback); -typedef void (^RCTLoadSourceForBridgeProgressBlock)( - RCTBridge *bridge, - RCTSourceLoadProgressBlock onProgress, - RCTSourceLoadBlock loadCallback); #pragma mark - RCTRootViewFactory Configuration @interface RCTRootViewFactoryConfiguration : NSObject @@ -89,56 +80,6 @@ typedef void (^RCTLoadSourceForBridgeProgressBlock)( * @returns: a newly created instance of RCTBridge. */ @property (nonatomic, nullable) RCTCreateBridgeWithDelegateBlock createBridgeWithDelegate; -/** - * Block that returns the location of the JavaScript source file. When running from the packager - * this should be an absolute URL, e.g. `http://localhost:8081/index.ios.bundle`. - * When running from a locally bundled JS file, this should be a `file://` url - * pointing to a path inside the app resources, e.g. `file://.../main.jsbundle`. - */ -@property (nonatomic, nullable) RCTSourceURLForBridgeBlock sourceURLForBridge; - -/** - * The bridge initializes any registered RCTBridgeModules automatically, however - * if you wish to instantiate your own module instances, you can return them - * from this block. - * - * Note: You should always return a new instance for each call, rather than - * returning the same instance each time the bridge is reloaded. Module instances - * should not be shared between bridges, and this may cause unexpected behavior. - * - * It is also possible to override standard modules with your own implementations - * by returning a class with the same `moduleName` from this method, but this is - * not recommended in most cases - if the module methods and behavior do not - * match exactly, it may lead to bugs or crashes. - */ -@property (nonatomic, nullable) RCTExtraModulesForBridgeBlock extraModulesForBridge; - -/** - * Retrieve the list of lazy-native-modules names for the given bridge. - */ -@property (nonatomic, nullable) RCTExtraLazyModuleClassesForBridge extraLazyModuleClassesForBridge; - -/** - * The bridge will call this block when a module been called from JS - * cannot be found among registered modules. - * It should return YES if the module with name 'moduleName' was registered - * in the implementation, and the system must attempt to look for it again among registered. - * If the module was not registered, return NO to prevent further searches. - */ -@property (nonatomic, nullable) RCTBridgeDidNotFindModuleBlock bridgeDidNotFindModule; - -/** - * The bridge will automatically attempt to load the JS source code from the - * location specified by the `sourceURLForBridge:` method, however, if you want - * to handle loading the JS yourself, you can do so by implementing this method. - */ -@property (nonatomic, nullable) RCTLoadSourceForBridgeProgressBlock loadSourceForBridgeProgressBlock; - -/** - * Similar to loadSourceForBridge:onProgress:onComplete: but without progress - * reporting. - */ -@property (nonatomic, nullable) RCTLoadSourceForBridgeBlock loadSourceForBridgeBlock; @end diff --git a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm index c145eabe42fa4b..e8ebdefba1dc7e 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm @@ -240,54 +240,11 @@ - (void)didCreateContextContainer:(std::shared_ptrinsert("ReactNativeConfig", _reactNativeConfig); } -- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge -{ - if (_configuration.extraModulesForBridge != nil) { - return _configuration.extraModulesForBridge(bridge); - } - return nil; -} - -- (NSDictionary *)extraLazyModuleClassesForBridge:(RCTBridge *)bridge -{ - if (_configuration.extraLazyModuleClassesForBridge != nil) { - return _configuration.extraLazyModuleClassesForBridge(bridge); - } - return nil; -} - - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { - if (_configuration.sourceURLForBridge != nil) { - return _configuration.sourceURLForBridge(bridge); - } return [self bundleURL]; } -- (BOOL)bridge:(RCTBridge *)bridge didNotFindModule:(NSString *)moduleName -{ - if (_configuration.bridgeDidNotFindModule != nil) { - return _configuration.bridgeDidNotFindModule(bridge, moduleName); - } - return NO; -} - -- (void)loadSourceForBridge:(RCTBridge *)bridge withBlock:(RCTSourceLoadBlock)loadCallback -{ - if (_configuration.loadSourceForBridgeBlock != nil) { - _configuration.loadSourceForBridgeBlock(bridge, loadCallback); - } -} - -- (void)loadSourceForBridge:(RCTBridge *)bridge - onProgress:(RCTSourceLoadProgressBlock)onProgress - onComplete:(RCTSourceLoadBlock)loadCallback -{ - if (_configuration.loadSourceForBridgeProgressBlock != nil) { - _configuration.loadSourceForBridgeProgressBlock(bridge, onProgress, loadCallback); - } -} - - (NSURL *)bundleURL { return self->_configuration.bundleURL; From c0c3ac3f13693daa1f128523529126512d2b9664 Mon Sep 17 00:00:00 2001 From: Distiller Date: Mon, 25 Mar 2024 13:57:17 +0000 Subject: [PATCH 093/223] Release 0.74.0-rc.5 #publish-packages-to-npm&next --- package.json | 4 ++-- packages/assets/package.json | 2 +- packages/babel-plugin-codegen/package.json | 4 ++-- packages/community-cli-plugin/package.json | 6 +++--- packages/debugger-frontend/package.json | 2 +- packages/dev-middleware/package.json | 4 ++-- packages/eslint-config-react-native/package.json | 4 ++-- packages/eslint-plugin-react-native/package.json | 2 +- packages/eslint-plugin-specs/package.json | 4 ++-- packages/hermes-inspector-msggen/package.json | 2 +- packages/metro-config/package.json | 6 +++--- packages/normalize-color/package.json | 2 +- packages/polyfills/package.json | 2 +- packages/react-native-babel-preset/package.json | 4 ++-- .../react-native-babel-transformer/package.json | 4 ++-- packages/react-native-bots/package.json | 2 +- .../package.json | 4 ++-- packages/react-native-codegen/package.json | 2 +- packages/react-native-gradle-plugin/package.json | 2 +- .../react-native-popup-menu-android/package.json | 4 ++-- packages/react-native-test-renderer/package.json | 2 +- .../Libraries/Core/ReactNativeVersion.js | 2 +- packages/react-native/React/Base/RCTVersion.m | 2 +- .../react-native/ReactAndroid/gradle.properties | 2 +- .../modules/systeminfo/ReactNativeVersion.java | 2 +- .../ReactCommon/cxxreact/ReactNativeVersion.h | 2 +- packages/react-native/package.json | 16 ++++++++-------- packages/react-native/template/package.json | 10 +++++----- packages/rn-tester-e2e/package.json | 2 +- packages/rn-tester/package.json | 4 ++-- packages/typescript-config/package.json | 2 +- packages/virtualized-lists/package.json | 2 +- 32 files changed, 57 insertions(+), 57 deletions(-) diff --git a/package.json b/package.json index e8aeb485efcec1..3d92178932a768 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,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.74.75", - "@react-native/metro-config": "0.74.75", + "@react-native/metro-babel-transformer": "0.74.76", + "@react-native/metro-config": "0.74.76", "@tsconfig/node18": "1.0.1", "@types/react": "^18.0.18", "@typescript-eslint/parser": "^6.7.4", diff --git a/packages/assets/package.json b/packages/assets/package.json index 46e5b003dcdf4d..e5a38e654e9ef4 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/assets-registry", - "version": "0.74.75", + "version": "0.74.76", "description": "Asset support code for React Native.", "license": "MIT", "repository": { diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index ec1f9e5c96e3e5..45619a5df8ec0d 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-plugin-codegen", - "version": "0.74.75", + "version": "0.74.76", "description": "Babel plugin to generate native module and view manager code for React Native.", "license": "MIT", "repository": { @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@react-native/codegen": "0.74.75" + "@react-native/codegen": "0.74.76" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 0ea52604cd4774..35a5619ab9a109 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.75", + "version": "0.74.76", "description": "Core CLI commands for React Native", "keywords": [ "react-native", @@ -24,8 +24,8 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.2", "@react-native-community/cli-tools": "13.6.2", - "@react-native/dev-middleware": "0.74.75", - "@react-native/metro-babel-transformer": "0.74.75", + "@react-native/dev-middleware": "0.74.76", + "@react-native/metro-babel-transformer": "0.74.76", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", diff --git a/packages/debugger-frontend/package.json b/packages/debugger-frontend/package.json index f80faa5d6ff875..ef8ccc57763c3d 100644 --- a/packages/debugger-frontend/package.json +++ b/packages/debugger-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/debugger-frontend", - "version": "0.74.75", + "version": "0.74.76", "description": "Debugger frontend for React Native based on Chrome DevTools", "keywords": [ "react-native", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index d2f7856ff6db0c..2b51cdd9b4d9b5 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.75", + "version": "0.74.76", "description": "Dev server middleware for React Native", "keywords": [ "react-native", @@ -23,7 +23,7 @@ ], "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.75", + "@react-native/debugger-frontend": "0.74.76", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index fda8ae4210431f..9a1fc13de1018a 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-config", - "version": "0.74.75", + "version": "0.74.76", "description": "ESLint config for React Native", "license": "MIT", "repository": { @@ -22,7 +22,7 @@ "dependencies": { "@babel/core": "^7.20.0", "@babel/eslint-parser": "^7.20.0", - "@react-native/eslint-plugin": "0.74.75", + "@react-native/eslint-plugin": "0.74.76", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "eslint-config-prettier": "^8.5.0", diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index 634e280681924a..ac1393f00eed06 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin", - "version": "0.74.75", + "version": "0.74.76", "description": "ESLint rules for @react-native/eslint-config", "license": "MIT", "repository": { diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index 122590798a6d35..3a500f5a1325f6 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin-specs", - "version": "0.74.75", + "version": "0.74.76", "description": "ESLint rules to validate NativeModule and Component Specs", "license": "MIT", "repository": { @@ -31,7 +31,7 @@ "@babel/eslint-parser": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/preset-flow": "^7.20.0", - "@react-native/codegen": "0.74.75", + "@react-native/codegen": "0.74.76", "make-dir": "^2.1.0", "pirates": "^4.0.1", "source-map-support": "0.5.0" diff --git a/packages/hermes-inspector-msggen/package.json b/packages/hermes-inspector-msggen/package.json index b95ab5352fa669..cebb7b643598d8 100644 --- a/packages/hermes-inspector-msggen/package.json +++ b/packages/hermes-inspector-msggen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/hermes-inspector-msggen", - "version": "0.74.75", + "version": "0.74.76", "private": true, "description": "Hermes Inspector Message Generator for React Native", "license": "MIT", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index 9b06a9a2065480..cc74a542401362 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-config", - "version": "0.74.75", + "version": "0.74.76", "description": "Metro configuration for React Native.", "license": "MIT", "repository": { @@ -26,8 +26,8 @@ "dist" ], "dependencies": { - "@react-native/js-polyfills": "0.74.75", - "@react-native/metro-babel-transformer": "0.74.75", + "@react-native/js-polyfills": "0.74.76", + "@react-native/metro-babel-transformer": "0.74.76", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" } diff --git a/packages/normalize-color/package.json b/packages/normalize-color/package.json index 5f789ef2bbfad4..50463e816fab09 100644 --- a/packages/normalize-color/package.json +++ b/packages/normalize-color/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/normalize-colors", - "version": "0.74.75", + "version": "0.74.76", "description": "Color normalization for React Native.", "license": "MIT", "repository": { diff --git a/packages/polyfills/package.json b/packages/polyfills/package.json index 0632fc1d191c42..b4b5e10cb0d80f 100644 --- a/packages/polyfills/package.json +++ b/packages/polyfills/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/js-polyfills", - "version": "0.74.75", + "version": "0.74.76", "description": "Polyfills for React Native.", "license": "MIT", "repository": { diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index fceb446ec42bb8..cd86ff778ece83 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-preset", - "version": "0.74.75", + "version": "0.74.76", "description": "Babel preset for React Native applications", "main": "src/index.js", "repository": { @@ -54,7 +54,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.75", + "@react-native/babel-plugin-codegen": "0.74.76", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index 319e9eb84be4f4..c91cae0dd7eb59 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-babel-transformer", - "version": "0.74.75", + "version": "0.74.76", "description": "Babel transformer for React Native applications.", "main": "src/index.js", "repository": { @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.75", + "@react-native/babel-preset": "0.74.76", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, diff --git a/packages/react-native-bots/package.json b/packages/react-native-bots/package.json index 285b15e022c52e..2fc74003b604ce 100644 --- a/packages/react-native-bots/package.json +++ b/packages/react-native-bots/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/bots", "description": "React Native Bots", - "version": "0.74.75", + "version": "0.74.76", "private": true, "license": "MIT", "repository": { diff --git a/packages/react-native-codegen-typescript-test/package.json b/packages/react-native-codegen-typescript-test/package.json index f1a0dc7587fb1c..f80584ba549f32 100644 --- a/packages/react-native-codegen-typescript-test/package.json +++ b/packages/react-native-codegen-typescript-test/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen-typescript-test", - "version": "0.74.75", + "version": "0.74.76", "private": true, "description": "TypeScript related unit test for @react-native/codegen", "license": "MIT", @@ -19,7 +19,7 @@ "prepare": "yarn run build" }, "dependencies": { - "@react-native/codegen": "0.74.75" + "@react-native/codegen": "0.74.76" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index b5e0880c260557..9f4368a9d40423 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen", - "version": "0.74.75", + "version": "0.74.76", "description": "Code generation tools for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-gradle-plugin/package.json b/packages/react-native-gradle-plugin/package.json index 2f482b9d2720ff..8d5155a2b3436f 100644 --- a/packages/react-native-gradle-plugin/package.json +++ b/packages/react-native-gradle-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/gradle-plugin", - "version": "0.74.75", + "version": "0.74.76", "description": "Gradle Plugin for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json index f878b93db3953d..95d0b7f61e2b8f 100644 --- a/packages/react-native-popup-menu-android/package.json +++ b/packages/react-native-popup-menu-android/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/popup-menu-android", - "version": "0.74.75", + "version": "0.74.76", "description": "PopupMenu for the Android platform", "react-native": "js/PopupMenuAndroid", "source": "js/PopupMenuAndroid", @@ -18,7 +18,7 @@ ], "license": "MIT", "devDependencies": { - "@react-native/codegen": "0.74.75" + "@react-native/codegen": "0.74.76" }, "peerDependencies": { "react": "*", diff --git a/packages/react-native-test-renderer/package.json b/packages/react-native-test-renderer/package.json index c3918497103876..00e40edf057459 100644 --- a/packages/react-native-test-renderer/package.json +++ b/packages/react-native-test-renderer/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/test-renderer", "private": true, - "version": "0.74.75", + "version": "0.74.76", "description": "A Test rendering library for React Native", "license": "MIT", "devDependencies": { diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index f4ac9cb886fca4..430e51c50ccd0f 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -17,7 +17,7 @@ const version: $ReadOnly<{ major: 0, minor: 74, patch: 0, - prerelease: 'rc.4', + prerelease: 'rc.5', }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index e18fad436a1775..89d8c2fa1a6f60 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -24,7 +24,7 @@ RCTVersionMajor: @(0), RCTVersionMinor: @(74), RCTVersionPatch: @(0), - RCTVersionPrerelease: @"rc.4", + RCTVersionPrerelease: @"rc.5", }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index 4a0dd07d3793d5..b3c8a5a95baa64 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.0-rc.4 +VERSION_NAME=0.74.0-rc.5 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index 2f293dd0c7cc9b..eaaaf2f5987dc4 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -18,5 +18,5 @@ public class ReactNativeVersion { "major", 0, "minor", 74, "patch", 0, - "prerelease", "rc.4"); + "prerelease", "rc.5"); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index 87743143825ea8..c84306db836a3b 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -18,7 +18,7 @@ constexpr struct { int32_t Major = 0; int32_t Minor = 74; int32_t Patch = 0; - std::string_view Prerelease = "rc.4"; + std::string_view Prerelease = "rc.5"; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 30457bba212802..792eb0b5bdf8cd 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.0-rc.4", + "version": "0.74.0-rc.5", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -101,13 +101,13 @@ "@react-native-community/cli": "13.6.2", "@react-native-community/cli-platform-android": "13.6.2", "@react-native-community/cli-platform-ios": "13.6.2", - "@react-native/assets-registry": "0.74.75", - "@react-native/codegen": "0.74.75", - "@react-native/community-cli-plugin": "0.74.75", - "@react-native/gradle-plugin": "0.74.75", - "@react-native/js-polyfills": "0.74.75", - "@react-native/normalize-colors": "0.74.75", - "@react-native/virtualized-lists": "0.74.75", + "@react-native/assets-registry": "0.74.76", + "@react-native/codegen": "0.74.76", + "@react-native/community-cli-plugin": "0.74.76", + "@react-native/gradle-plugin": "0.74.76", + "@react-native/js-polyfills": "0.74.76", + "@react-native/normalize-colors": "0.74.76", + "@react-native/virtualized-lists": "0.74.76", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 49389c86ba8e67..409b8ad89d0b1f 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,16 +11,16 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.0-rc.4" + "react-native": "0.74.0-rc.5" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.75", - "@react-native/eslint-config": "0.74.75", - "@react-native/metro-config": "0.74.75", - "@react-native/typescript-config": "0.74.75", + "@react-native/babel-preset": "0.74.76", + "@react-native/eslint-config": "0.74.76", + "@react-native/metro-config": "0.74.76", + "@react-native/typescript-config": "0.74.76", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", diff --git a/packages/rn-tester-e2e/package.json b/packages/rn-tester-e2e/package.json index d745c7e0598d73..142187fdbb746a 100644 --- a/packages/rn-tester-e2e/package.json +++ b/packages/rn-tester-e2e/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/tester-e2e", "private": true, - "version": "0.74.75", + "version": "0.74.76", "license": "MIT", "description": "React Native E2E tester app.", "homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/rn-tester-e2e", diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index db76e24ecbe04a..50e87e77358504 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/tester", - "version": "0.74.75", + "version": "0.74.76", "private": true, "description": "React Native tester app.", "license": "MIT", @@ -26,7 +26,7 @@ "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "@react-native/popup-menu-android": "0.74.75" + "@react-native/popup-menu-android": "0.74.76" }, "peerDependencies": { "react": "18.2.0", diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 2b291efee9bf9f..837c3a385faf8d 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/typescript-config", - "version": "0.74.75", + "version": "0.74.76", "description": "Default TypeScript configuration for React Native apps", "license": "MIT", "repository": { diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index 49c7995c35f496..efea984ae8f338 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/virtualized-lists", - "version": "0.74.75", + "version": "0.74.76", "description": "Virtualized lists for React Native.", "license": "MIT", "repository": { From d81065a621574a09b54282c9a0b7dd851ae3f5de Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 2 Apr 2024 10:29:27 +0100 Subject: [PATCH 094/223] [LOCAL] Update RNTester Podfile.lock --- packages/rn-tester/Podfile.lock | 498 ++++++++++++++++---------------- 1 file changed, 249 insertions(+), 249 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 71c3b51d6f1e2d..be00e7a303369c 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,13 +1,13 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.0-rc.4) + - FBLazyVector (0.74.0-rc.5) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.0-rc.4): - - hermes-engine/Pre-built (= 0.74.0-rc.4) - - hermes-engine/Pre-built (0.74.0-rc.4) - - MyNativeView (0.74.75): + - hermes-engine (0.74.0-rc.5): + - hermes-engine/Pre-built (= 0.74.0-rc.5) + - hermes-engine/Pre-built (0.74.0-rc.5) + - MyNativeView (0.74.76): - DoubleConversion - glog - hermes-engine @@ -28,7 +28,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - NativeCxxModuleExample (0.74.75): + - NativeCxxModuleExample (0.74.76): - DoubleConversion - glog - hermes-engine @@ -66,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.0-rc.4) - - RCTRequired (0.74.0-rc.4) - - RCTTypeSafety (0.74.0-rc.4): - - FBLazyVector (= 0.74.0-rc.4) - - RCTRequired (= 0.74.0-rc.4) - - React-Core (= 0.74.0-rc.4) - - React (0.74.0-rc.4): - - React-Core (= 0.74.0-rc.4) - - React-Core/DevSupport (= 0.74.0-rc.4) - - React-Core/RCTWebSocket (= 0.74.0-rc.4) - - React-RCTActionSheet (= 0.74.0-rc.4) - - React-RCTAnimation (= 0.74.0-rc.4) - - React-RCTBlob (= 0.74.0-rc.4) - - React-RCTImage (= 0.74.0-rc.4) - - React-RCTLinking (= 0.74.0-rc.4) - - React-RCTNetwork (= 0.74.0-rc.4) - - React-RCTSettings (= 0.74.0-rc.4) - - React-RCTText (= 0.74.0-rc.4) - - React-RCTVibration (= 0.74.0-rc.4) - - React-callinvoker (0.74.0-rc.4) - - React-Codegen (0.74.0-rc.4): + - RCTDeprecation (0.74.0-rc.5) + - RCTRequired (0.74.0-rc.5) + - RCTTypeSafety (0.74.0-rc.5): + - FBLazyVector (= 0.74.0-rc.5) + - RCTRequired (= 0.74.0-rc.5) + - React-Core (= 0.74.0-rc.5) + - React (0.74.0-rc.5): + - React-Core (= 0.74.0-rc.5) + - React-Core/DevSupport (= 0.74.0-rc.5) + - React-Core/RCTWebSocket (= 0.74.0-rc.5) + - React-RCTActionSheet (= 0.74.0-rc.5) + - React-RCTAnimation (= 0.74.0-rc.5) + - React-RCTBlob (= 0.74.0-rc.5) + - React-RCTImage (= 0.74.0-rc.5) + - React-RCTLinking (= 0.74.0-rc.5) + - React-RCTNetwork (= 0.74.0-rc.5) + - React-RCTSettings (= 0.74.0-rc.5) + - React-RCTText (= 0.74.0-rc.5) + - React-RCTVibration (= 0.74.0-rc.5) + - React-callinvoker (0.74.0-rc.5) + - React-Codegen (0.74.0-rc.5): - DoubleConversion - glog - hermes-engine @@ -106,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.0-rc.4): + - React-Core (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.4) + - React-Core/Default (= 0.74.0-rc.5) - React-cxxreact - React-featureflags - React-hermes @@ -123,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.0-rc.4): + - React-Core/CoreModulesHeaders (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.0-rc.4): + - React-Core/Default (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -156,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.0-rc.4): + - React-Core/DevSupport (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.4) - - React-Core/RCTWebSocket (= 0.74.0-rc.4) + - React-Core/Default (= 0.74.0-rc.5) + - React-Core/RCTWebSocket (= 0.74.0-rc.5) - React-cxxreact - React-featureflags - React-hermes @@ -174,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.0-rc.4): + - React-Core/RCTActionSheetHeaders (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -191,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.0-rc.4): + - React-Core/RCTAnimationHeaders (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -208,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.0-rc.4): + - React-Core/RCTBlobHeaders (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.0-rc.4): + - React-Core/RCTImageHeaders (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -242,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.0-rc.4): + - React-Core/RCTLinkingHeaders (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.0-rc.4): + - React-Core/RCTNetworkHeaders (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -276,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.0-rc.4): + - React-Core/RCTPushNotificationHeaders (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -293,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.0-rc.4): + - React-Core/RCTSettingsHeaders (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -310,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.0-rc.4): + - React-Core/RCTTextHeaders (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -327,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.0-rc.4): + - React-Core/RCTVibrationHeaders (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -344,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.0-rc.4): + - React-Core/RCTWebSocket (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.4) + - React-Core/Default (= 0.74.0-rc.5) - React-cxxreact - React-featureflags - React-hermes @@ -361,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.0-rc.4): + - React-CoreModules (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.0-rc.4) + - RCTTypeSafety (= 0.74.0-rc.5) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.0-rc.4) - - React-jsi (= 0.74.0-rc.4) + - React-Core/CoreModulesHeaders (= 0.74.0-rc.5) + - React-jsi (= 0.74.0-rc.5) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.0-rc.4) + - React-RCTImage (= 0.74.0-rc.5) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.0-rc.4): + - React-cxxreact (0.74.0-rc.5): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.4) - - React-debug (= 0.74.0-rc.4) - - React-jsi (= 0.74.0-rc.4) + - React-callinvoker (= 0.74.0-rc.5) + - React-debug (= 0.74.0-rc.5) + - React-jsi (= 0.74.0-rc.5) - React-jsinspector - - React-logger (= 0.74.0-rc.4) - - React-perflogger (= 0.74.0-rc.4) - - React-runtimeexecutor (= 0.74.0-rc.4) - - React-debug (0.74.0-rc.4) - - React-Fabric (0.74.0-rc.4): + - React-logger (= 0.74.0-rc.5) + - React-perflogger (= 0.74.0-rc.5) + - React-runtimeexecutor (= 0.74.0-rc.5) + - React-debug (0.74.0-rc.5) + - React-Fabric (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -401,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.0-rc.4) - - React-Fabric/attributedstring (= 0.74.0-rc.4) - - React-Fabric/componentregistry (= 0.74.0-rc.4) - - React-Fabric/componentregistrynative (= 0.74.0-rc.4) - - React-Fabric/components (= 0.74.0-rc.4) - - React-Fabric/core (= 0.74.0-rc.4) - - React-Fabric/imagemanager (= 0.74.0-rc.4) - - React-Fabric/leakchecker (= 0.74.0-rc.4) - - React-Fabric/mounting (= 0.74.0-rc.4) - - React-Fabric/scheduler (= 0.74.0-rc.4) - - React-Fabric/telemetry (= 0.74.0-rc.4) - - React-Fabric/templateprocessor (= 0.74.0-rc.4) - - React-Fabric/textlayoutmanager (= 0.74.0-rc.4) - - React-Fabric/uimanager (= 0.74.0-rc.4) + - React-Fabric/animations (= 0.74.0-rc.5) + - React-Fabric/attributedstring (= 0.74.0-rc.5) + - React-Fabric/componentregistry (= 0.74.0-rc.5) + - React-Fabric/componentregistrynative (= 0.74.0-rc.5) + - React-Fabric/components (= 0.74.0-rc.5) + - React-Fabric/core (= 0.74.0-rc.5) + - React-Fabric/imagemanager (= 0.74.0-rc.5) + - React-Fabric/leakchecker (= 0.74.0-rc.5) + - React-Fabric/mounting (= 0.74.0-rc.5) + - React-Fabric/scheduler (= 0.74.0-rc.5) + - React-Fabric/telemetry (= 0.74.0-rc.5) + - React-Fabric/templateprocessor (= 0.74.0-rc.5) + - React-Fabric/textlayoutmanager (= 0.74.0-rc.5) + - React-Fabric/uimanager (= 0.74.0-rc.5) - React-graphics - React-jsi - React-jsiexecutor @@ -423,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.0-rc.4): + - React-Fabric/animations (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -442,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.0-rc.4): + - React-Fabric/attributedstring (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -461,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.0-rc.4): + - React-Fabric/componentregistry (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.0-rc.4): + - React-Fabric/componentregistrynative (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.0-rc.4): + - React-Fabric/components (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -510,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.0-rc.4) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.4) - - React-Fabric/components/modal (= 0.74.0-rc.4) - - React-Fabric/components/rncore (= 0.74.0-rc.4) - - React-Fabric/components/root (= 0.74.0-rc.4) - - React-Fabric/components/safeareaview (= 0.74.0-rc.4) - - React-Fabric/components/scrollview (= 0.74.0-rc.4) - - React-Fabric/components/text (= 0.74.0-rc.4) - - React-Fabric/components/textinput (= 0.74.0-rc.4) - - React-Fabric/components/unimplementedview (= 0.74.0-rc.4) - - React-Fabric/components/view (= 0.74.0-rc.4) + - React-Fabric/components/inputaccessory (= 0.74.0-rc.5) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.5) + - React-Fabric/components/modal (= 0.74.0-rc.5) + - React-Fabric/components/rncore (= 0.74.0-rc.5) + - React-Fabric/components/root (= 0.74.0-rc.5) + - React-Fabric/components/safeareaview (= 0.74.0-rc.5) + - React-Fabric/components/scrollview (= 0.74.0-rc.5) + - React-Fabric/components/text (= 0.74.0-rc.5) + - React-Fabric/components/textinput (= 0.74.0-rc.5) + - React-Fabric/components/unimplementedview (= 0.74.0-rc.5) + - React-Fabric/components/view (= 0.74.0-rc.5) - React-graphics - React-jsi - React-jsiexecutor @@ -529,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.0-rc.4): + - React-Fabric/components/inputaccessory (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -548,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.4): + - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -567,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.0-rc.4): + - React-Fabric/components/modal (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -586,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.0-rc.4): + - React-Fabric/components/rncore (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.0-rc.4): + - React-Fabric/components/root (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.0-rc.4): + - React-Fabric/components/safeareaview (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.0-rc.4): + - React-Fabric/components/scrollview (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.0-rc.4): + - React-Fabric/components/text (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.0-rc.4): + - React-Fabric/components/textinput (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -700,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.0-rc.4): + - React-Fabric/components/unimplementedview (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -719,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.0-rc.4): + - React-Fabric/components/view (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -739,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.0-rc.4): + - React-Fabric/core (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.0-rc.4): + - React-Fabric/imagemanager (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -777,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.0-rc.4): + - React-Fabric/leakchecker (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -796,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.0-rc.4): + - React-Fabric/mounting (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -815,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.0-rc.4): + - React-Fabric/scheduler (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -834,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.0-rc.4): + - React-Fabric/telemetry (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.0-rc.4): + - React-Fabric/templateprocessor (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -872,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.0-rc.4): + - React-Fabric/textlayoutmanager (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -892,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.0-rc.4): + - React-Fabric/uimanager (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog @@ -911,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.0-rc.4): + - React-FabricImage (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.0-rc.4) - - RCTTypeSafety (= 0.74.0-rc.4) + - RCTRequired (= 0.74.0-rc.5) + - RCTTypeSafety (= 0.74.0-rc.5) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.0-rc.4) + - React-jsiexecutor (= 0.74.0-rc.5) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.0-rc.4) - - React-graphics (0.74.0-rc.4): + - React-featureflags (0.74.0-rc.5) + - React-graphics (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.0-rc.4) + - React-Core/Default (= 0.74.0-rc.5) - React-utils - - React-hermes (0.74.0-rc.4): + - React-hermes (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.4) + - React-cxxreact (= 0.74.0-rc.5) - React-jsi - - React-jsiexecutor (= 0.74.0-rc.4) + - React-jsiexecutor (= 0.74.0-rc.5) - React-jsinspector - - React-perflogger (= 0.74.0-rc.4) + - React-perflogger (= 0.74.0-rc.5) - React-runtimeexecutor - - React-ImageManager (0.74.0-rc.4): + - React-ImageManager (0.74.0-rc.5): - glog - RCT-Folly/Fabric - React-Core/Default @@ -958,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.0-rc.4): + - React-jserrorhandler (0.74.0-rc.5): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.0-rc.4): + - React-jsi (0.74.0-rc.5): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.0-rc.4): + - React-jsiexecutor (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.4) - - React-jsi (= 0.74.0-rc.4) + - React-cxxreact (= 0.74.0-rc.5) + - React-jsi (= 0.74.0-rc.5) - React-jsinspector - - React-perflogger (= 0.74.0-rc.4) - - React-jsinspector (0.74.0-rc.4): + - React-perflogger (= 0.74.0-rc.5) + - React-jsinspector (0.74.0-rc.5): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.0-rc.4) - - React-jsitracing (0.74.0-rc.4): + - React-runtimeexecutor (= 0.74.0-rc.5) + - React-jsitracing (0.74.0-rc.5): - React-jsi - - React-logger (0.74.0-rc.4): + - React-logger (0.74.0-rc.5): - glog - - React-Mapbuffer (0.74.0-rc.4): + - React-Mapbuffer (0.74.0-rc.5): - glog - React-debug - - React-nativeconfig (0.74.0-rc.4) - - React-NativeModulesApple (0.74.0-rc.4): + - React-nativeconfig (0.74.0-rc.5) + - React-NativeModulesApple (0.74.0-rc.5): - glog - hermes-engine - React-callinvoker @@ -1007,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.0-rc.4) - - React-RCTActionSheet (0.74.0-rc.4): - - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.4) - - React-RCTAnimation (0.74.0-rc.4): + - React-perflogger (0.74.0-rc.5) + - React-RCTActionSheet (0.74.0-rc.5): + - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.5) + - React-RCTAnimation (0.74.0-rc.5): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1018,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.0-rc.4): + - React-RCTAppDelegate (0.74.0-rc.5): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1041,7 +1041,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.0-rc.4): + - React-RCTBlob (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1054,7 +1054,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.0-rc.4): + - React-RCTFabric (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1074,7 +1074,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.0-rc.4): + - React-RCTImage (0.74.0-rc.5): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1083,14 +1083,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.0-rc.4): + - React-RCTLinking (0.74.0-rc.5): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.0-rc.4) - - React-jsi (= 0.74.0-rc.4) + - React-Core/RCTLinkingHeaders (= 0.74.0-rc.5) + - React-jsi (= 0.74.0-rc.5) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.0-rc.4) - - React-RCTNetwork (0.74.0-rc.4): + - ReactCommon/turbomodule/core (= 0.74.0-rc.5) + - React-RCTNetwork (0.74.0-rc.5): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1098,14 +1098,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.0-rc.4): + - React-RCTPushNotification (0.74.0-rc.5): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.0-rc.4): + - React-RCTSettings (0.74.0-rc.5): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1113,29 +1113,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.0-rc.4): + - React-RCTTest (0.74.0-rc.5): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.0-rc.4) - - React-CoreModules (= 0.74.0-rc.4) - - React-jsi (= 0.74.0-rc.4) - - ReactCommon/turbomodule/core (= 0.74.0-rc.4) - - React-RCTText (0.74.0-rc.4): - - React-Core/RCTTextHeaders (= 0.74.0-rc.4) + - React-Core (= 0.74.0-rc.5) + - React-CoreModules (= 0.74.0-rc.5) + - React-jsi (= 0.74.0-rc.5) + - ReactCommon/turbomodule/core (= 0.74.0-rc.5) + - React-RCTText (0.74.0-rc.5): + - React-Core/RCTTextHeaders (= 0.74.0-rc.5) - Yoga - - React-RCTVibration (0.74.0-rc.4): + - React-RCTVibration (0.74.0-rc.5): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.0-rc.4): + - React-rendererdebug (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.0-rc.4) - - React-RuntimeApple (0.74.0-rc.4): + - React-rncore (0.74.0-rc.5) + - React-RuntimeApple (0.74.0-rc.5): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1153,7 +1153,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.0-rc.4): + - React-RuntimeCore (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1166,9 +1166,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.0-rc.4): - - React-jsi (= 0.74.0-rc.4) - - React-RuntimeHermes (0.74.0-rc.4): + - React-runtimeexecutor (0.74.0-rc.5): + - React-jsi (= 0.74.0-rc.5) + - React-RuntimeHermes (0.74.0-rc.5): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1179,7 +1179,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.0-rc.4): + - React-runtimescheduler (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1191,15 +1191,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.0-rc.4): + - React-utils (0.74.0-rc.5): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.0-rc.4) - - ReactCommon (0.74.0-rc.4): - - ReactCommon/turbomodule (= 0.74.0-rc.4) - - ReactCommon-Samples (0.74.0-rc.4): + - React-jsi (= 0.74.0-rc.5) + - ReactCommon (0.74.0-rc.5): + - ReactCommon/turbomodule (= 0.74.0-rc.5) + - ReactCommon-Samples (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1210,44 +1210,44 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.0-rc.4): + - ReactCommon/turbomodule (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.4) - - React-cxxreact (= 0.74.0-rc.4) - - React-jsi (= 0.74.0-rc.4) - - React-logger (= 0.74.0-rc.4) - - React-perflogger (= 0.74.0-rc.4) - - ReactCommon/turbomodule/bridging (= 0.74.0-rc.4) - - ReactCommon/turbomodule/core (= 0.74.0-rc.4) - - ReactCommon/turbomodule/bridging (0.74.0-rc.4): + - React-callinvoker (= 0.74.0-rc.5) + - React-cxxreact (= 0.74.0-rc.5) + - React-jsi (= 0.74.0-rc.5) + - React-logger (= 0.74.0-rc.5) + - React-perflogger (= 0.74.0-rc.5) + - ReactCommon/turbomodule/bridging (= 0.74.0-rc.5) + - ReactCommon/turbomodule/core (= 0.74.0-rc.5) + - ReactCommon/turbomodule/bridging (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.4) - - React-cxxreact (= 0.74.0-rc.4) - - React-jsi (= 0.74.0-rc.4) - - React-logger (= 0.74.0-rc.4) - - React-perflogger (= 0.74.0-rc.4) - - ReactCommon/turbomodule/core (0.74.0-rc.4): + - React-callinvoker (= 0.74.0-rc.5) + - React-cxxreact (= 0.74.0-rc.5) + - React-jsi (= 0.74.0-rc.5) + - React-logger (= 0.74.0-rc.5) + - React-perflogger (= 0.74.0-rc.5) + - ReactCommon/turbomodule/core (0.74.0-rc.5): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.4) - - React-cxxreact (= 0.74.0-rc.4) - - React-debug (= 0.74.0-rc.4) - - React-jsi (= 0.74.0-rc.4) - - React-logger (= 0.74.0-rc.4) - - React-perflogger (= 0.74.0-rc.4) - - React-utils (= 0.74.0-rc.4) - - ScreenshotManager (0.74.75): + - React-callinvoker (= 0.74.0-rc.5) + - React-cxxreact (= 0.74.0-rc.5) + - React-debug (= 0.74.0-rc.5) + - React-jsi (= 0.74.0-rc.5) + - React-logger (= 0.74.0-rc.5) + - React-perflogger (= 0.74.0-rc.5) + - React-utils (= 0.74.0-rc.5) + - ScreenshotManager (0.74.76): - DoubleConversion - glog - hermes-engine @@ -1467,66 +1467,66 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 2a48dc257abbee54cc5c9a2895654bad4246fcaa + FBLazyVector: 5b76d5fff75c5fb146a50a6edee4db626f9914d5 fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: dfdcadd89a22aa872ef552b07e415d88df68af55 - MyNativeView: e7d2da26ab16b6a846f6ae60267382699e880593 - NativeCxxModuleExample: 91e15c84214ef61869151c00cb39983ffc33f3b4 + hermes-engine: 28f3a005a29e856b1b5cd0e20b3fa7bbf862cdf3 + MyNativeView: c532627d10932ef0e75a49a56880557d17ba4e05 + NativeCxxModuleExample: a459f8a57183331dc680b7e2fecf01696f252ed3 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df - RCTDeprecation: 1c5ab5895f9fc7e8ae9fcde04859f0d246283209 - RCTRequired: 79e2e81174db06336f470c49aea7603ff29817a7 - RCTTypeSafety: d6ccaa59a5b6f75c34d047e9cf5c7747be938e46 - React: d605e940cf4dbc9e3f0dbb62168ff0bd262eebec - React-callinvoker: ca0cd77dd0e304e653eab57caaf1e3840f314e8d - React-Codegen: ad74c08152c4e63dcb4e3eb9e6221178009558ed - React-Core: 41c45f7602babf6af91375adcf5e7965defb7d78 - React-CoreModules: 5a00319c393d6244903264884ba3f28edd5dc1e4 - React-cxxreact: 4314215fafddd150f4820cb29f269e7832709359 - React-debug: 6ebdc46acf7ac9a3c43447a36023fa9a0ffa1bcf - React-Fabric: b7a26aa1015c2d5d48b926ee5d9525ebff2030f3 - React-FabricImage: 059b56996a6f15be08984b679e43d00add311500 - React-featureflags: 693125080daf88f11bdca7d6592d26b987f1fd5f - React-graphics: 0193a599a1e2358aa7521234fb4a36801eb227f3 - React-hermes: f11f57dd637ec1c266f66caf1bcf6add8b0bd2c3 - React-ImageManager: f4c833b5ff328381078a791c34da8c8dc2ee302b - React-jserrorhandler: 5291a4dfe20facdceed1e74cb74aeca31bf15488 - React-jsi: cec2e26a99e4ba448b4489892cfadaae9d033760 - React-jsiexecutor: 354cfa360e05e7968ca36e6614a85f78a6a69c8f - React-jsinspector: 267f39c33cf54c36dcf772df8d9685a5ae2cf706 - React-jsitracing: 309dfee3932996fd4c60368ab8ce1289f6176e5a - React-logger: 6004e0cf41b7e9714ca26b1648e5d76fcfd638b5 - React-Mapbuffer: 0a378ecbf2020c5efe9dedf07aaa564faf8787b5 - React-nativeconfig: 70c11d02425186137e7cdc069fa39e8af1c827de - React-NativeModulesApple: 3509a8c7f19349e86aa0f452cc0092614bfea1a6 - React-perflogger: 0d62c0261b6fd3920605850de91abc8135dd3ee9 - React-RCTActionSheet: 655c691cd152938b9760c16a857d6726ea33a7b5 - React-RCTAnimation: 2a98c119ff97fea009b52af56eecca20acb402ec - React-RCTAppDelegate: 0bfc33b90a8dc575eeeafe1edd43d761b487fcdc - React-RCTBlob: 350708eed43ff6b8a3e957c6da166afaacba1390 - React-RCTFabric: 4e6a0551c256328c4cfe621d52a8f0203b6c9b97 - React-RCTImage: 8de3e14205074299b6fecd90af9f3162759c71f6 - React-RCTLinking: a2931793dd576a15ce42a8ebb49b85e46bbd0e31 - React-RCTNetwork: 894a51d330071304fe402b18dc21ac6a95a3c111 - React-RCTPushNotification: 319b1f2c05e24762c1b3bcf971bd045d402f0970 - React-RCTSettings: 1f077416efac57d7ef55226e18a7a80e223b27a2 - React-RCTTest: 32a930a14ef1ff372567035b14ae449bd7160f53 - React-RCTText: 418b7ec4ddb541e8b79d0bb5c08717adf9a6a281 - React-RCTVibration: 6a886e048b563b5a4750fc729880e0affbd4f870 - React-rendererdebug: 845e9a5d8d7b443ad979f78b2a3aa39da458f7e0 - React-rncore: a4f1d47bafa63e4a4454554b4075cc2266d68162 - React-RuntimeApple: a1c87a68304819b3b6a73740f3607454ab96015c - React-RuntimeCore: a217797b29499c2cedbeb0a181b696cf2c7f1efa - React-runtimeexecutor: d8a97c799dd75bae0d2721e4c4d010a8046eaa42 - React-RuntimeHermes: c4017bf3edd2b33031fd2a7225438b0ad5f562f3 - React-runtimescheduler: 3ba0a219e6ac595604f6d5fda05383140b3df48e - React-utils: 8ac7dcae6bb4acb09a9644befbb7ee92bd1e7bcd - ReactCommon: a506d3462e18e926817412f8ac81e98e0494bd71 - ReactCommon-Samples: 7b973780825120417e197720eb8b40fd228cdfb3 - ScreenshotManager: 876ce104108851e1f1b10a3f54875f6fb6d9e1ff + RCTDeprecation: ef45994c9e22748cfeb6553422514437d0ea15f3 + RCTRequired: ab444d2da42365430b9e8e95bd2a0fb18620fdc6 + RCTTypeSafety: de09b27a99f041080e3d9fed59147ec6a37c71b3 + React: 8166045ba6ccbeeee1dcb4c4bb2572523f97af28 + React-callinvoker: 0db59c9a64174da80bbea2c79c68c04a08f91587 + React-Codegen: 9fea478bf6b350802e6bbb0890667bb853b4c487 + React-Core: 4e5e2fe54a4ddd2b61a34060f3ec41ffb169499a + React-CoreModules: ef194b4d3a8bfee51305a0328c5a1c3263f94a02 + React-cxxreact: 06aa64f9c34dd5c10beef3ab10be2d1107514612 + React-debug: b5edcd96992c24ec25eb98caf8f23c603e21c4e9 + React-Fabric: 83bc4413be4a1566695dc982258df3dc6c2bb292 + React-FabricImage: 282cf006552b3c5dd44e1ab6b38d37b18444b885 + React-featureflags: 5fe33915033d00da82c24f82086bf1a894bb423d + React-graphics: c8f6fa9cc01198f8943fdcd190c0705d7fb03886 + React-hermes: 020c9f7f4b56d08e99fc2c128fc42d4c84ba8c1b + React-ImageManager: cecb67553325ff1383c4a4d17e08b7a6a719bde1 + React-jserrorhandler: 3811113810dca53ea77da10582f2598f59c58f05 + React-jsi: 075ff78f700de9db8d558fba09ea3f589629ebf8 + React-jsiexecutor: d5427698b2d6722f9ba5399f65f750c48e70905d + React-jsinspector: 44159c738061e67362ebe13acc29214a2b20387e + React-jsitracing: 29548fd6ba558ab2441f89c87a5b2820da6ef276 + React-logger: 4092c2c3bc5feb8ccce0fbabda8f77d03dfba47a + React-Mapbuffer: 14b88e15d38a2c448ab94ad4ec3d00583b7722cd + React-nativeconfig: 83f91b53a8d6a6ecf16a8acd845c99570db7a548 + React-NativeModulesApple: 59ed2248373b3d36badb153f34bb48a6b9ee4865 + React-perflogger: 12c33674b7ad945eee0a2bdb982383a1bb81c75e + React-RCTActionSheet: 6511eba84bb395512cc6631c556a040822c0e88c + React-RCTAnimation: 8c3f2c976fa43b1e740c70a5cebdf5f01839291d + React-RCTAppDelegate: 47727e0ed93c67e646bf2918d4a037c852a29af8 + React-RCTBlob: cf1232be5c795b44287d3523d2427199fd72fe45 + React-RCTFabric: a4f8fcd8d3219e76baf6926cfea84e3b9343f9f9 + React-RCTImage: 04273a4c9e65662a9cd6e7f054f5feec950d120f + React-RCTLinking: 1fc7437bab8e337b6b3285df9683369e4c5481e3 + React-RCTNetwork: 63d93e9223becd8e8c20d45c9a0b3a32eb2681b6 + React-RCTPushNotification: 9493cb42b502cae0a3745f18405d69bb98cf2c29 + React-RCTSettings: fc631b1ccd2a167100e960f36f530976492083af + React-RCTTest: 6bab7c4d21122d0c0f9839bfb9e51693a537b89f + React-RCTText: 8a1b224d5ca3c01d758ea71323fbf3cba09c488b + React-RCTVibration: a029b5a172908d5810393a97e3feeb760c6db2de + React-rendererdebug: 6e91669a4ec205fffde6016343fe755b17860eeb + React-rncore: 6f2e9bb2580de7e3870d6ca5f92d682ead8eee30 + React-RuntimeApple: 541af9b9e5dc899d795c3af2bd264f01364cfbc6 + React-RuntimeCore: 1c989e13b08e5063637e79751c0bcb32bfa9f682 + React-runtimeexecutor: 4bf6e50e74bdd516c18514b32b2510d85165ed86 + React-RuntimeHermes: c7152662ae3516282bc67d3321f3fe28cd7ce3d3 + React-runtimescheduler: 8951a04c202e17b4bd1a4789c21ad9dcaed6440b + React-utils: c3478109d1266c268f923862546adfa4c23c0474 + ReactCommon: 9e56154615276b73abffa10c09905da40f6ad638 + ReactCommon-Samples: 25d4dfa5cf3b4de8d471f73a73ccb0fdab75b8bf + ScreenshotManager: cacef14b4f01101a37d23990f57e56e103037132 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: e08111794822bc315de88571845a3dd6fa5f2183 + Yoga: 708c16540a21c44f989f4d402050e1f419d7461c PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf From 03237f449aa910102ed23266d5fc5275747057d0 Mon Sep 17 00:00:00 2001 From: Kevin Gozali Date: Tue, 26 Mar 2024 19:08:07 -0700 Subject: [PATCH 095/223] Keep ES6Proxy enabled in bridgeless mode (#43538) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43538 The Hermes RuntimeConfig for bridgeless accidentally force-disabled ES6Proxy, resulting in https://github.com/facebook/react-native/issues/43523 Let's remove the incorrect override. To test using RNTester, add the following change: ``` diff --git a/packages/rn-tester/js/RNTesterAppShared.js b/packages/rn-tester/js/RNTesterAppShared.js index 87cb6b69dfe..f2512d09c5a 100644 --- a/packages/rn-tester/js/RNTesterAppShared.js +++ b/packages/rn-tester/js/RNTesterAppShared.js @@ -50,6 +50,8 @@ const RNTesterApp = ({ ); const colorScheme = useColorScheme(); + new Proxy({}, {}); + const { activeModuleKey, activeModuleTitle, ``` Before this change, RNTester will get an error at start-up. After, the app loads correctly. Changelog: [General][Fixed] Correctly keep ES6Proxy for bridgeless mode Reviewed By: cortinico Differential Revision: D55045780 fbshipit-source-id: 666b99712d35622f87d42f22a4611851df67d905 --- .../ReactCommon/react/runtime/hermes/HermesInstance.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react-native/ReactCommon/react/runtime/hermes/HermesInstance.cpp b/packages/react-native/ReactCommon/react/runtime/hermes/HermesInstance.cpp index 13308c81c26704..101f226f92c15b 100644 --- a/packages/react-native/ReactCommon/react/runtime/hermes/HermesInstance.cpp +++ b/packages/react-native/ReactCommon/react/runtime/hermes/HermesInstance.cpp @@ -168,7 +168,6 @@ std::unique_ptr HermesInstance::createJSRuntime( .withAllocInYoung(false) .withRevertToYGAtTTI(true) .build()) - .withES6Proxy(false) .withEnableSampleProfiling(true) .withMicrotaskQueue(ReactNativeFeatureFlags::enableMicrotasks()) .withVMExperimentFlags(vmExperimentFlags); From f4b5bf1e146ca4719562b6e887489b9f381a2a75 Mon Sep 17 00:00:00 2001 From: Dmitry Rykun Date: Wed, 27 Mar 2024 12:03:15 -0700 Subject: [PATCH 096/223] Explicitly define IOS_DEPLOYMENT_TARGET and MAC_DEPLOYMENT_TARGET on CircleCI (#43683) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43683 This diff adds explicit definitions of IOS_DEPLOYMENT_TARGET and MAC_DEPLOYMENT_TARGET to `build_apple_slices_hermes` and `build_hermes_macos` jobs on CircleCI. Eventually this will allow us to stop [interacting](https://github.com/facebook/react-native/blob/main/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh#L28) with `hermes-engine.podspec` outside of the CocoaPods execution context, and make our CI jobs less error prone. Changelog: [Internal] Reviewed By: fkgozali, cortinico Differential Revision: D55432703 fbshipit-source-id: dc1cc449ba60340d13db9e4d21970e4e3783f2da --- .circleci/configurations/jobs.yml | 4 ++++ .circleci/configurations/top_level.yml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.circleci/configurations/jobs.yml b/.circleci/configurations/jobs.yml index 884859c30806b0..3436fca1e4c16a 100644 --- a/.circleci/configurations/jobs.yml +++ b/.circleci/configurations/jobs.yml @@ -786,6 +786,8 @@ jobs: - HERMES_WS_DIR: *hermes_workspace_root - HERMES_TARBALL_ARTIFACTS_DIR: *hermes_tarball_artifacts_dir - HERMES_OSXBIN_ARTIFACTS_DIR: *hermes_osxbin_artifacts_dir + - IOS_DEPLOYMENT_TARGET: 13.4 + - MAC_DEPLOYMENT_TARGET: 10.13 steps: - *attach_hermes_workspace - stop_job_if_apple_artifacts_are_there: @@ -858,6 +860,8 @@ jobs: environment: - HERMES_WS_DIR: *hermes_workspace_root - HERMES_TARBALL_ARTIFACTS_DIR: *hermes_tarball_artifacts_dir + - IOS_DEPLOYMENT_TARGET: 13.4 + - MAC_DEPLOYMENT_TARGET: 10.13 steps: - *attach_hermes_workspace # Try to store the artifacts if they are already in the workspace diff --git a/.circleci/configurations/top_level.yml b/.circleci/configurations/top_level.yml index dbce102dfc1de8..a0910b26d50485 100644 --- a/.circleci/configurations/top_level.yml +++ b/.circleci/configurations/top_level.yml @@ -82,10 +82,10 @@ references: hermes_windows_cache_key: &hermes_windows_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-windows-{{ checksum "/Users/circleci/project/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} # Hermes iOS hermesc_apple_cache_key: &hermesc_apple_cache_key v3-hermesc-apple-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} - hermes_apple_slices_cache_key: &hermes_apple_slices_cache_key v4-hermes-apple-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }} + hermes_apple_slices_cache_key: &hermes_apple_slices_cache_key v6-hermes-apple-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }} hermes_tarball_debug_cache_key: &hermes_tarball_debug_cache_key v5-hermes-tarball-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }} hermes_tarball_release_cache_key: &hermes_tarball_release_cache_key v4-hermes-tarball-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }} - hermes_macosx_bin_release_cache_key: &hermes_macosx_bin_release_cache_key v2-hermes-release-macosx-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} + hermes_macosx_bin_release_cache_key: &hermes_macosx_bin_release_cache_key v3-hermes-release-macosx-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} hermes_macosx_bin_debug_cache_key: &hermes_macosx_bin_debug_cache_key v2-hermes-debug-macosx-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} hermes_dsym_debug_cache_key: &hermes_dsym_debug_cache_key v2-hermes-debug-dsym-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} hermes_dsym_release_cache_key: &hermes_dsym_release_cache_key v2-hermes-release-dsym-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} From a37ba6f3ff682f1a0c18a8437bae0759afa2ea57 Mon Sep 17 00:00:00 2001 From: Dmitry Rykun Date: Thu, 28 Mar 2024 13:38:53 -0700 Subject: [PATCH 097/223] Move IOS_DEPLOYMENT_TARGET and MAC_DEPLOYMENT_TARGET to the command body Summary: This diff moves IOS_DEPLOYMENT_TARGET and MAC_DEPLOYMENT_TARGET definitions to the command body. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D55478563 fbshipit-source-id: bae327edbaf88a9e8b39b304d938389e3fc56f4f --- .circleci/configurations/jobs.yml | 10 ++++++---- .circleci/configurations/top_level.yml | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.circleci/configurations/jobs.yml b/.circleci/configurations/jobs.yml index 3436fca1e4c16a..233fbad1753a4b 100644 --- a/.circleci/configurations/jobs.yml +++ b/.circleci/configurations/jobs.yml @@ -786,8 +786,6 @@ jobs: - HERMES_WS_DIR: *hermes_workspace_root - HERMES_TARBALL_ARTIFACTS_DIR: *hermes_tarball_artifacts_dir - HERMES_OSXBIN_ARTIFACTS_DIR: *hermes_osxbin_artifacts_dir - - IOS_DEPLOYMENT_TARGET: 13.4 - - MAC_DEPLOYMENT_TARGET: 10.13 steps: - *attach_hermes_workspace - stop_job_if_apple_artifacts_are_there: @@ -817,10 +815,14 @@ jobs: if [[ "$SLICE" == "macosx" ]]; then echo "[HERMES] Building Hermes for MacOS" + export MAC_DEPLOYMENT_TARGET=10.13 BUILD_TYPE="<< parameters.flavor >>" ./utils/build-mac-framework.sh + unset MAC_DEPLOYMENT_TARGET else echo "[HERMES] Building Hermes for iOS: $SLICE" + export IOS_DEPLOYMENT_TARGET=13.4 BUILD_TYPE="<< parameters.flavor >>" ./utils/build-ios-framework.sh "$SLICE" + unset IOS_DEPLOYMENT_TARGET fi echo "Moving from build_$SLICE to $FINAL_PATH" @@ -860,8 +862,6 @@ jobs: environment: - HERMES_WS_DIR: *hermes_workspace_root - HERMES_TARBALL_ARTIFACTS_DIR: *hermes_tarball_artifacts_dir - - IOS_DEPLOYMENT_TARGET: 13.4 - - MAC_DEPLOYMENT_TARGET: 10.13 steps: - *attach_hermes_workspace # Try to store the artifacts if they are already in the workspace @@ -902,7 +902,9 @@ jobs: command: | cd ./packages/react-native/sdks/hermes || exit 1 echo "[HERMES] Creating the universal framework" + export IOS_DEPLOYMENT_TARGET=13.4 ./utils/build-ios-framework.sh build_framework + unset IOS_DEPLOYMENT_TARGET - run: name: Package the Hermes Apple frameworks command: | diff --git a/.circleci/configurations/top_level.yml b/.circleci/configurations/top_level.yml index a0910b26d50485..32945ebd65cd9b 100644 --- a/.circleci/configurations/top_level.yml +++ b/.circleci/configurations/top_level.yml @@ -82,10 +82,10 @@ references: hermes_windows_cache_key: &hermes_windows_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-windows-{{ checksum "/Users/circleci/project/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} # Hermes iOS hermesc_apple_cache_key: &hermesc_apple_cache_key v3-hermesc-apple-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} - hermes_apple_slices_cache_key: &hermes_apple_slices_cache_key v6-hermes-apple-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }} + hermes_apple_slices_cache_key: &hermes_apple_slices_cache_key v7-hermes-apple-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }} hermes_tarball_debug_cache_key: &hermes_tarball_debug_cache_key v5-hermes-tarball-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }} hermes_tarball_release_cache_key: &hermes_tarball_release_cache_key v4-hermes-tarball-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }} - hermes_macosx_bin_release_cache_key: &hermes_macosx_bin_release_cache_key v3-hermes-release-macosx-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} + hermes_macosx_bin_release_cache_key: &hermes_macosx_bin_release_cache_key v4-hermes-release-macosx-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} hermes_macosx_bin_debug_cache_key: &hermes_macosx_bin_debug_cache_key v2-hermes-debug-macosx-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} hermes_dsym_debug_cache_key: &hermes_dsym_debug_cache_key v2-hermes-debug-dsym-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} hermes_dsym_release_cache_key: &hermes_dsym_release_cache_key v2-hermes-release-dsym-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }} From d85f8b7e7a170a2c73d16addea0b30ff0a27011f Mon Sep 17 00:00:00 2001 From: Dmitry Rykun Date: Thu, 28 Mar 2024 14:17:31 -0700 Subject: [PATCH 098/223] Set HERMES_RELEASE_VERSION correctly (#43699) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43699 This diff initializes `RELEASE_VERSION` with the value that is provided by the `get_react_native_version` job (it stores its output into `/tmp/react-native-version`). Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D55484988 fbshipit-source-id: f0b5bb473096f3691f50152beb3181a454916fdc --- .circleci/configurations/jobs.yml | 4 ++++ .../sdks/hermes-engine/utils/build-apple-framework.sh | 2 ++ .../sdks/hermes-engine/utils/build-ios-framework.sh | 2 ++ .../sdks/hermes-engine/utils/build-mac-framework.sh | 2 ++ 4 files changed, 10 insertions(+) diff --git a/.circleci/configurations/jobs.yml b/.circleci/configurations/jobs.yml index 233fbad1753a4b..688f5094044d74 100644 --- a/.circleci/configurations/jobs.yml +++ b/.circleci/configurations/jobs.yml @@ -813,6 +813,7 @@ jobs: exit 0 fi + export RELEASE_VERSION=$(cat /tmp/react-native-version) if [[ "$SLICE" == "macosx" ]]; then echo "[HERMES] Building Hermes for MacOS" export MAC_DEPLOYMENT_TARGET=10.13 @@ -824,6 +825,7 @@ jobs: BUILD_TYPE="<< parameters.flavor >>" ./utils/build-ios-framework.sh "$SLICE" unset IOS_DEPLOYMENT_TARGET fi + unset RELEASE_VERSION echo "Moving from build_$SLICE to $FINAL_PATH" mv build_"$SLICE" "$FINAL_PATH" @@ -903,7 +905,9 @@ jobs: cd ./packages/react-native/sdks/hermes || exit 1 echo "[HERMES] Creating the universal framework" export IOS_DEPLOYMENT_TARGET=13.4 + export RELEASE_VERSION=$(cat /tmp/react-native-version) ./utils/build-ios-framework.sh build_framework + unset RELEASE_VERSION unset IOS_DEPLOYMENT_TARGET - run: name: Package the Hermes Apple frameworks diff --git a/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh b/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh index a4fe7d79024cb4..2dbcdb08fe86db 100755 --- a/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh +++ b/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh @@ -7,6 +7,8 @@ # Defines functions for building various Hermes frameworks. # See build-ios-framework.sh and build-mac-framework.sh for usage examples. +set -x -e + CURR_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" IMPORT_HERMESC_PATH=${HERMES_OVERRIDE_HERMESC_PATH:-$PWD/build_host_hermesc/ImportHermesc.cmake} diff --git a/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh b/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh index a4026a7a948310..960bcddb5e834f 100755 --- a/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh +++ b/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh @@ -4,6 +4,8 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. +set -x -e + # Given a specific target, retrieve the right architecture for it # $1 the target you want to build. Allowed values: iphoneos, iphonesimulator, catalyst function get_architecture { diff --git a/packages/react-native/sdks/hermes-engine/utils/build-mac-framework.sh b/packages/react-native/sdks/hermes-engine/utils/build-mac-framework.sh index 0492ad28f22eea..76d66ffe45b899 100755 --- a/packages/react-native/sdks/hermes-engine/utils/build-mac-framework.sh +++ b/packages/react-native/sdks/hermes-engine/utils/build-mac-framework.sh @@ -4,6 +4,8 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. +set -x -e + # shellcheck source=xplat/js/react-native-github/sdks/hermes-engine/utils/build-apple-framework.sh CURR_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" . "${CURR_SCRIPT_DIR}/build-apple-framework.sh" From 462fbaef0cc87c73778fc89d7cbc5727f6c2cfdf Mon Sep 17 00:00:00 2001 From: CatStudioApp <52243759+CatStudioApp@users.noreply.github.com> Date: Mon, 25 Mar 2024 09:41:12 -0700 Subject: [PATCH 099/223] Update package.json to fix `ccache_enabled` option, fixes #43633 (#43634) Summary: I found in 0.74.0-rc.x, `ccache_enabled` is introduced. However, it is not being delivered via npm. fixes https://github.com/facebook/react-native/issues/43633 Changelog: [iOS] [Fixed] - Adding ccache_clang wrapper scripts to package.json for distribution Pull Request resolved: https://github.com/facebook/react-native/pull/43634 Reviewed By: cortinico Differential Revision: D55308743 Pulled By: blakef fbshipit-source-id: e89a4bb3a1fbf8562d880b4c9d25dc9083717ba6 --- packages/react-native/package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 792eb0b5bdf8cd..c618837a935823 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -64,6 +64,9 @@ "scripts/hermes/hermes-utils.js", "scripts/hermes/prepare-hermes-for-build.js", "scripts/ios-configure-glog.sh", + "scripts/xcode/ccache-clang++.sh", + "scripts/xcode/ccache-clang.sh", + "scripts/xcode/ccache.conf", "scripts/xcode/with-environment.sh", "scripts/native_modules.rb", "scripts/node-binary.sh", From 5d63c85ced3e3789905c8fcba7788243fada61de Mon Sep 17 00:00:00 2001 From: Andrew Coates <30809111+acoates-ms@users.noreply.github.com> Date: Mon, 25 Mar 2024 12:23:16 -0700 Subject: [PATCH 100/223] Add @types/react as optional peerDependency on packages that use it (#43509) Summary: Now that RN is providing TS type information, many of those .d.ts files depend on types from react. In modern packagemanagers (Ex: pnpm) types/react will not be available to RN since it does not declare it as a dependency. I also noticed that the types for react-native-popup-menu-android appear to be pointing to the wrong location. Add types/react as a peerDependency on the packages that have .d.ts files that import from React. Add types/react to peerDependencyMeta with optional:true to prevent users not using TS from requiring types/react. [GENERAL] [ADDED] Added types/react as an optional peerDependency Pull Request resolved: https://github.com/facebook/react-native/pull/43509 Reviewed By: cortinico Differential Revision: D55225940 Pulled By: NickGerleman fbshipit-source-id: 4cbab071928cb925baec45f55461559acc9a54e6 --- package.json | 2 +- packages/react-native-popup-menu-android/index.d.ts | 4 ++-- packages/react-native-popup-menu-android/package.json | 9 +++++++-- packages/react-native/package.json | 6 ++++++ packages/virtualized-lists/package.json | 6 ++++++ yarn.lock | 8 ++++---- 6 files changed, 26 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 3d92178932a768..bbfc56c9af80e5 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "@react-native/metro-babel-transformer": "0.74.76", "@react-native/metro-config": "0.74.76", "@tsconfig/node18": "1.0.1", - "@types/react": "^18.0.18", + "@types/react": "^18.2.6", "@typescript-eslint/parser": "^6.7.4", "ansi-styles": "^4.2.1", "async": "^3.2.2", diff --git a/packages/react-native-popup-menu-android/index.d.ts b/packages/react-native-popup-menu-android/index.d.ts index 9caa4c385a77e4..9539572f172798 100644 --- a/packages/react-native-popup-menu-android/index.d.ts +++ b/packages/react-native-popup-menu-android/index.d.ts @@ -7,5 +7,5 @@ * @format */ -export type {default} from './PopupMenuAndroid'; -export type {PopupMenuAndroidInstance} from './PopupMenuAndroid'; +export type {default} from './js/PopupMenuAndroid'; +export type {PopupMenuAndroidInstance} from './js/PopupMenuAndroid'; diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json index 95d0b7f61e2b8f..019cfd5394b2e2 100644 --- a/packages/react-native-popup-menu-android/package.json +++ b/packages/react-native-popup-menu-android/package.json @@ -2,8 +2,7 @@ "name": "@react-native/popup-menu-android", "version": "0.74.76", "description": "PopupMenu for the Android platform", - "react-native": "js/PopupMenuAndroid", - "source": "js/PopupMenuAndroid", + "main": "index.js", "files": [ "js", "android", @@ -21,9 +20,15 @@ "@react-native/codegen": "0.74.76" }, "peerDependencies": { + "@types/react": "^18.2.6", "react": "*", "react-native": "*" }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, "dependencies": { "nullthrows": "^1.1.1" }, diff --git a/packages/react-native/package.json b/packages/react-native/package.json index c618837a935823..61d4ff2c0d2535 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -97,8 +97,14 @@ "featureflags-update": "node ./scripts/featureflags/index.js" }, "peerDependencies": { + "@types/react": "^18.2.6", "react": "18.2.0" }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + }, "dependencies": { "@jest/create-cache-key-function": "^29.6.3", "@react-native-community/cli": "13.6.2", diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index efea984ae8f338..1f8e4ae984511f 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -27,7 +27,13 @@ "react-test-renderer": "18.2.0" }, "peerDependencies": { + "@types/react": "^18.2.6", "react": "*", "react-native": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } } diff --git a/yarn.lock b/yarn.lock index 721f18649aaf6c..b231d21c90c3d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2781,10 +2781,10 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== -"@types/react@^18.0.18": - version "18.0.20" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.20.tgz#e4c36be3a55eb5b456ecf501bd4a00fd4fd0c9ab" - integrity sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA== +"@types/react@^18.2.6": + version "18.2.67" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.67.tgz#96b7af0b5e79c756f4bdd981de2ca28472c858e5" + integrity sha512-vkIE2vTIMHQ/xL0rgmuoECBCkZFZeHr49HeWSc24AptMbNRo7pwSBvj73rlJJs9fGKj0koS+V7kQB1jHS0uCgw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" From 1dc11cb2b3e46708f3e3a59359f933220d448730 Mon Sep 17 00:00:00 2001 From: Ruslan Lesiutin Date: Thu, 28 Mar 2024 10:06:53 -0700 Subject: [PATCH 101/223] fix: defer ReactDevToolsOverlay import (#43690) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43690 # Changelog: [Internal] Fixes https://github.com/facebook/react-native/issues/43678. The issue is that once `getInspectorDataForViewAtPoint` is imported, it should throw if RDT global hook was not injected. ReactDevTools overlay imports `getInspectorDataForViewAtPoint`, this is why it did throw in testing environment. ReactDevToolsOverlay JSX-element is already gated with RDT global hook check, adding a deferred import, same as it was already implemented for Inspector. Still unclear to me how this didn't throw all this time while using the Catalyst / RNTester. Reviewed By: cortinico Differential Revision: D55474774 fbshipit-source-id: 759e5e8227cc7534193e5b95616b6099c15f5cb5 --- .../Libraries/ReactNative/AppContainer-dev.js | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/react-native/Libraries/ReactNative/AppContainer-dev.js b/packages/react-native/Libraries/ReactNative/AppContainer-dev.js index 05c97b5d44de1a..cba0ccb2395dce 100644 --- a/packages/react-native/Libraries/ReactNative/AppContainer-dev.js +++ b/packages/react-native/Libraries/ReactNative/AppContainer-dev.js @@ -20,7 +20,6 @@ import View from '../Components/View/View'; import DebuggingOverlay from '../Debugging/DebuggingOverlay'; import useSubscribeToDebuggingOverlayRegistry from '../Debugging/useSubscribeToDebuggingOverlayRegistry'; import RCTDeviceEventEmitter from '../EventEmitter/RCTDeviceEventEmitter'; -import ReactDevToolsOverlay from '../Inspector/ReactDevToolsOverlay'; import LogBoxNotificationContainer from '../LogBox/LogBoxNotificationContainer'; import StyleSheet from '../StyleSheet/StyleSheet'; import {RootTagContext, createRootTag} from './RootTag'; @@ -64,6 +63,26 @@ const InspectorDeferred = ({ ); }; +type ReactDevToolsOverlayDeferredProps = { + inspectedViewRef: InspectedViewRef, + reactDevToolsAgent: ReactDevToolsAgent, +}; + +const ReactDevToolsOverlayDeferred = ({ + inspectedViewRef, + reactDevToolsAgent, +}: ReactDevToolsOverlayDeferredProps) => { + const ReactDevToolsOverlay = + require('../Inspector/ReactDevToolsOverlay').default; + + return ( + + ); +}; + const AppContainer = ({ children, fabric, @@ -155,7 +174,7 @@ const AppContainer = ({ {reactDevToolsAgent != null && ( - From 9a286d65d1fc3aee02b26f7269fb2d1a0e91e848 Mon Sep 17 00:00:00 2001 From: Ruslan Lesiutin Date: Thu, 28 Mar 2024 11:06:17 -0700 Subject: [PATCH 102/223] fix[android]: fix bridgeless configuration to include DebuggingOverlay in react packages (#43661) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43661 # Changelog: [Internal] 1. Remove `BridgelessDebugReactPackage.java`, this was added in D43407534. Technically, its the same as `DebugCorePackage.java`. 2. `ReactInstance` to add `DebugCorePackage`, so `DebuggingOverlay` view manager will be included in the bridgeless build. 3. Fix `RNTesterApplication.kt` to NOT create `MyLegacyViewManager` for every possible viewManagerName, apart from `"RNTMyNativeView"`, return null instead. Reviewed By: cortinico Differential Revision: D55375350 fbshipit-source-id: 1d3cb6b5ad3c0248df1def9f37c8c49b308f4473 --- packages/react-native/ReactAndroid/api/ReactAndroid.api | 9 +++++++++ .../main/java/com/facebook/react/DebugCorePackage.java | 2 +- .../java/com/facebook/react/runtime/ReactInstance.java | 4 ++++ .../java/com/facebook/react/uiapp/RNTesterApplication.kt | 6 ++++-- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 568af79cf2a377..4352458aa0ec14 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -29,6 +29,15 @@ public class com/facebook/react/CoreModulesPackage$$ReactModuleInfoProvider : co public fun getReactModuleInfos ()Ljava/util/Map; } +public class com/facebook/react/DebugCorePackage : com/facebook/react/TurboReactPackage, com/facebook/react/ViewManagerOnDemandReactPackage { + public fun ()V + public fun createViewManager (Lcom/facebook/react/bridge/ReactApplicationContext;Ljava/lang/String;)Lcom/facebook/react/uimanager/ViewManager; + public fun getModule (Ljava/lang/String;Lcom/facebook/react/bridge/ReactApplicationContext;)Lcom/facebook/react/bridge/NativeModule; + public fun getReactModuleInfoProvider ()Lcom/facebook/react/module/model/ReactModuleInfoProvider; + public fun getViewManagerNames (Lcom/facebook/react/bridge/ReactApplicationContext;)Ljava/util/Collection; + public fun getViewManagers (Lcom/facebook/react/bridge/ReactApplicationContext;)Ljava/util/List; +} + public class com/facebook/react/DebugCorePackage$$ReactModuleInfoProvider : com/facebook/react/module/model/ReactModuleInfoProvider { public fun ()V public fun getReactModuleInfos ()Ljava/util/Map; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java index 2e1d3d976cdf3b..b695c937dbc63e 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java @@ -36,7 +36,7 @@ JSCHeapCapture.class, }) /* package */ -class DebugCorePackage extends TurboReactPackage implements ViewManagerOnDemandReactPackage { +public class DebugCorePackage extends TurboReactPackage implements ViewManagerOnDemandReactPackage { private @Nullable Map mViewManagers; public DebugCorePackage() {} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java index 80793f45f01819..7f241ce4d7fc58 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java @@ -15,6 +15,7 @@ import com.facebook.infer.annotation.ThreadSafe; import com.facebook.jni.HybridData; import com.facebook.proguard.annotations.DoNotStrip; +import com.facebook.react.DebugCorePackage; import com.facebook.react.ReactPackage; import com.facebook.react.ViewManagerOnDemandReactPackage; import com.facebook.react.bridge.Arguments; @@ -195,6 +196,9 @@ public void onHostDestroy() { new CoreReactPackage( bridgelessReactContext.getDevSupportManager(), bridgelessReactContext.getDefaultHardwareBackBtnHandler())); + if (useDevSupport) { + mReactPackages.add(new DebugCorePackage()); + } mReactPackages.addAll(mDelegate.getReactPackages()); TurboModuleManagerDelegate turboModuleManagerDelegate = diff --git a/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.kt b/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.kt index 01756aea982108..8d863a242ca2cf 100644 --- a/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.kt +++ b/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.kt @@ -111,11 +111,13 @@ class RNTesterApplication : Application(), ReactApplication { override fun createViewManager( reactContext: ReactApplicationContext, viewManagerName: String - ): ViewManager<*, out ReactShadowNode<*>> = + ): ViewManager<*, out ReactShadowNode<*>>? = if (viewManagerName == "RNTMyNativeView") { MyNativeViewManager() - } else { + } else if (viewManagerName == "RNTMyLegacyNativeView") { MyLegacyViewManager(reactContext) + } else { + null } }) } From dc851b6b3a073e9f88d090445022b5c3729272a6 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Tue, 26 Mar 2024 19:54:50 -0700 Subject: [PATCH 103/223] React-Native-Restart in release (#43645) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43645 https://github.com/facebook/react-native/pull/43521 & https://github.com/facebook/react-native/pull/43588 aimed to fix `react-native-restart`, however in release `handleReloadJS()` is a no-op in [DisabledDevSupportManager](https://github.com/facebook/react-native/blob/ac714b1c3300d3a169bdcfec05d556e18a7b83ff/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java#L139) which is why this should not work. Fixing it by relying on `ReactHostImpl.reload()` instead for Bridgeless. Adding implementation of `DisabledDevSupportManager.handleReloadJS()` won't work as it would mean introducing circular dependency `devsupport` -> `runtime` Reviewed By: cortinico Differential Revision: D55342296 fbshipit-source-id: ee6fba68586a2bdd1163522f75e6beb1b7736f6c --- .../main/java/com/facebook/react/ReactDelegate.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index 429e38de09dd8d..a87a323a5c2abd 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -16,6 +16,7 @@ import androidx.annotation.Nullable; import com.facebook.infer.annotation.Assertions; import com.facebook.react.config.ReactFeatureFlags; +import com.facebook.react.devsupport.DisabledDevSupportManager; import com.facebook.react.devsupport.DoubleTapReloadRecognizer; import com.facebook.react.devsupport.interfaces.DevSupportManager; import com.facebook.react.interfaces.fabric.ReactSurface; @@ -232,7 +233,15 @@ public boolean onKeyLongPress(int keyCode) { public void reload() { DevSupportManager devSupportManager = getDevSupportManager(); if (devSupportManager != null) { - devSupportManager.handleReloadJS(); + // With Bridgeless enabled, reload in RELEASE mode + if (devSupportManager instanceof DisabledDevSupportManager + && ReactFeatureFlags.enableBridgelessArchitecture + && mReactHost != null) { + // Do not reload the bundle from JS as there is no bundler running in release mode. + mReactHost.reload("ReactDelegate.reload()"); + } else { + devSupportManager.handleReloadJS(); + } } } From 49bb2f37f1bb83d8b370fd09d528975084873b5f Mon Sep 17 00:00:00 2001 From: phillip Date: Tue, 2 Apr 2024 02:38:27 -0700 Subject: [PATCH 104/223] [rn][ios][0.74][RC6] decouple RCTBridge+Private from jsinspector-modern (#43708) --- .../React/Base/RCTBridge+Inspector.h | 30 +++++++++++++++++++ .../React/Base/RCTBridge+Private.h | 20 ------------- packages/react-native/React/Base/RCTBridge.mm | 1 + .../React/CoreModules/RCTDevSettings.mm | 1 + .../React/CxxBridge/RCTCxxBridge.mm | 1 + .../platform/ios/ReactCommon/RCTInstance.mm | 1 + 6 files changed, 34 insertions(+), 20 deletions(-) create mode 100644 packages/react-native/React/Base/RCTBridge+Inspector.h diff --git a/packages/react-native/React/Base/RCTBridge+Inspector.h b/packages/react-native/React/Base/RCTBridge+Inspector.h new file mode 100644 index 00000000000000..25c3732a3c52be --- /dev/null +++ b/packages/react-native/React/Base/RCTBridge+Inspector.h @@ -0,0 +1,30 @@ +/* + * 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. + */ + +#import + +#ifdef __cplusplus +#import +#endif + +@interface RCTBridge (Inspector) + +/** + * The HostTarget for this bridge, if one has been created. Exposed for RCTCxxBridge only. + */ +@property (nonatomic, assign, readonly) +#ifdef __cplusplus + facebook::react::jsinspector_modern::PageTarget * +#else + // The inspector infrastructure cannot be used in C or Swift code. + void * +#endif + inspectorTarget; + +@property (nonatomic, readonly, getter=isInspectable) BOOL inspectable; + +@end diff --git a/packages/react-native/React/Base/RCTBridge+Private.h b/packages/react-native/React/Base/RCTBridge+Private.h index d9b2be4bab269c..4d03df3ce8d607 100644 --- a/packages/react-native/React/Base/RCTBridge+Private.h +++ b/packages/react-native/React/Base/RCTBridge+Private.h @@ -6,9 +6,6 @@ */ #import -#ifdef __cplusplus -#import -#endif @class RCTModuleRegistry; @class RCTModuleData; @@ -73,17 +70,6 @@ RCT_EXTERN void RCTRegisterModule(Class); */ @property (nonatomic, strong, readonly) RCTModuleRegistry *moduleRegistry; -/** - * The page target for this bridge, if one has been created. Exposed for RCTCxxBridge only. - */ -@property (nonatomic, assign, readonly) -#ifdef __cplusplus - facebook::react::jsinspector_modern::PageTarget * -#else - // The inspector infrastructure cannot be used in C code. - void * -#endif - inspectorTarget; @end @interface RCTBridge (RCTCxxBridge) @@ -155,12 +141,6 @@ RCT_EXTERN void RCTRegisterModule(Class); @end -@interface RCTBridge (Inspector) - -@property (nonatomic, readonly, getter=isInspectable) BOOL inspectable; - -@end - @interface RCTCxxBridge : RCTBridge // TODO(cjhopman): this seems unsafe unless we require that it is only called on the main js queue. diff --git a/packages/react-native/React/Base/RCTBridge.mm b/packages/react-native/React/Base/RCTBridge.mm index 65d827e163be5f..9c1890542e869a 100644 --- a/packages/react-native/React/Base/RCTBridge.mm +++ b/packages/react-native/React/Base/RCTBridge.mm @@ -6,6 +6,7 @@ */ #import "RCTBridge.h" +#import "RCTBridge+Inspector.h" #import "RCTBridge+Private.h" #import diff --git a/packages/react-native/React/CoreModules/RCTDevSettings.mm b/packages/react-native/React/CoreModules/RCTDevSettings.mm index b5e81c940e39f6..10930504894a4b 100644 --- a/packages/react-native/React/CoreModules/RCTDevSettings.mm +++ b/packages/react-native/React/CoreModules/RCTDevSettings.mm @@ -10,6 +10,7 @@ #import #import +#import #import #import #import diff --git a/packages/react-native/React/CxxBridge/RCTCxxBridge.mm b/packages/react-native/React/CxxBridge/RCTCxxBridge.mm index a611708814e2a1..05278d5572547c 100644 --- a/packages/react-native/React/CxxBridge/RCTCxxBridge.mm +++ b/packages/react-native/React/CxxBridge/RCTCxxBridge.mm @@ -9,6 +9,7 @@ #include #import +#import #import #import #import diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm index a200998fe49274..918bd4859e586a 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm @@ -11,6 +11,7 @@ #import #import +#import #import #import #import From 4f50089da2e9d96c8b986c3b359a542537d34d3a Mon Sep 17 00:00:00 2001 From: Szymon Rybczak Date: Tue, 2 Apr 2024 11:38:55 +0200 Subject: [PATCH 105/223] Upgrade `@react-native-community/cli` to 13.6.4 (#43681) --- packages/community-cli-plugin/package.json | 4 +- packages/react-native/package.json | 6 +- yarn.lock | 142 ++++++++++----------- 3 files changed, 76 insertions(+), 76 deletions(-) diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 35a5619ab9a109..2230cc4c0dbf78 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -22,8 +22,8 @@ "dist" ], "dependencies": { - "@react-native-community/cli-server-api": "13.6.2", - "@react-native-community/cli-tools": "13.6.2", + "@react-native-community/cli-server-api": "13.6.4", + "@react-native-community/cli-tools": "13.6.4", "@react-native/dev-middleware": "0.74.76", "@react-native/metro-babel-transformer": "0.74.76", "chalk": "^4.0.0", diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 61d4ff2c0d2535..c5b39991ecc25b 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -107,9 +107,9 @@ }, "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "13.6.2", - "@react-native-community/cli-platform-android": "13.6.2", - "@react-native-community/cli-platform-ios": "13.6.2", + "@react-native-community/cli": "13.6.4", + "@react-native-community/cli-platform-android": "13.6.4", + "@react-native-community/cli-platform-ios": "13.6.4", "@react-native/assets-registry": "0.74.76", "@react-native/codegen": "0.74.76", "@react-native/community-cli-plugin": "0.74.76", diff --git a/yarn.lock b/yarn.lock index b231d21c90c3d8..770f43336b1a4e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2384,45 +2384,45 @@ optionalDependencies: npmlog "2 || ^3.1.0 || ^4.0.0" -"@react-native-community/cli-clean@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.2.tgz#073a9921392c0072691e29ef83f4e1b6d52d41ce" - integrity sha512-F05U//+DdsGUrFz3LOwNlaiVxv7W3jK38algZxHux/nQj4395LMQTtUMvTlk5CpptlJX3gJZRkjYJbpXSJbJag== +"@react-native-community/cli-clean@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.4.tgz#53c07c6f2834a971dc40eab290edcf8ccc5d1e00" + integrity sha512-nS1BJ+2Z+aLmqePxB4AYgJ+C/bgQt02xAgSYtCUv+lneRBGhL2tHRrK8/Iolp0y+yQoUtHHf4txYi90zGXLVfw== dependencies: - "@react-native-community/cli-tools" "13.6.2" + "@react-native-community/cli-tools" "13.6.4" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" -"@react-native-community/cli-config@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.2.tgz#fb5a840293f8c175456a986c14e2fad22e551b74" - integrity sha512-a+mGYjAd5GuKHnaYjnJ03tXbo8pRCoWyzAGIfD5gZ2JOUuQu+d0JL6TRTXX0Vt31p9HhfUB3cSuS+cTNjNT49A== +"@react-native-community/cli-config@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.4.tgz#3004c7bca55cb384b3a99c38c1a48dad24533237" + integrity sha512-GGK415WoTx1R9FXtfb/cTnan9JIWwSm+a5UCuFd6+suzS0oIt1Md1vCzjNh6W1CK3b43rZC2e+3ZU7Ljd7YtyQ== dependencies: - "@react-native-community/cli-tools" "13.6.2" + "@react-native-community/cli-tools" "13.6.4" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" fast-glob "^3.3.2" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.2.tgz#e35d33a74183a224cfb360c7f69512a9fec5e734" - integrity sha512-TQuTDauHyUIwn2f9dTnHnlVE26f8DWEw4reOrKWA7fZ4mqJ4MA3Ks424RD78aIcxkTqC4E3Z9nVsJfM42EMyyg== +"@react-native-community/cli-debugger-ui@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.4.tgz#3881b9cfe14e66b3ee827a84f19ca9d0283fd764" + integrity sha512-9Gs31s6tA1kuEo69ay9qLgM3x2gsN/RI994DCUKnFSW+qSusQJyyrmfllR2mGU3Wl1W09/nYpIg87W9JPf5y4A== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.2.tgz#77381bb2839bd4fd110a4c4f5ff86359520e81ec" - integrity sha512-5T2LC4Cvg/aJCLrh0FPKIjTnxc8GXwGYBBfQ8hAdXK3j2OgNRwwlii5NGDuvd4Gj1qdiEMgaZMm50R0kY2Qv+w== +"@react-native-community/cli-doctor@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.4.tgz#07e5c2f163807e61ce0ba12901903e591177e3d3" + integrity sha512-lWOXCISH/cHtLvO0cWTr+IPSzA54FewVOw7MoCMEvWusH+1n7c3hXTAve78mLozGQ7iuUufkHFWwKf3dzOkflQ== dependencies: - "@react-native-community/cli-config" "13.6.2" - "@react-native-community/cli-platform-android" "13.6.2" - "@react-native-community/cli-platform-apple" "13.6.2" - "@react-native-community/cli-platform-ios" "13.6.2" - "@react-native-community/cli-tools" "13.6.2" + "@react-native-community/cli-config" "13.6.4" + "@react-native-community/cli-platform-android" "13.6.4" + "@react-native-community/cli-platform-apple" "13.6.4" + "@react-native-community/cli-platform-ios" "13.6.4" + "@react-native-community/cli-tools" "13.6.4" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" @@ -2436,54 +2436,54 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-hermes@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.2.tgz#980aa8895129dac51a68e25b1390219ff4e0875c" - integrity sha512-NEjyoUwlz/gsOmFkXYVm7glpc8tiJEPqNNRQhZzeTybcI9CSaBXcPpPj9ubuGwM3rzx+4hnwZGULrn1CQUYOfg== +"@react-native-community/cli-hermes@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.4.tgz#6d3e9b5c251461e9bb35b04110544db8a4f5968f" + integrity sha512-VIAufA/2wTccbMYBT9o+mQs9baOEpTxCiIdWeVdkPWKzIwtKsLpDZJlUqj4r4rI66mwjFyQ60PhwSzEJ2ApFeQ== dependencies: - "@react-native-community/cli-platform-android" "13.6.2" - "@react-native-community/cli-tools" "13.6.2" + "@react-native-community/cli-platform-android" "13.6.4" + "@react-native-community/cli-tools" "13.6.4" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" -"@react-native-community/cli-platform-android@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.2.tgz#b4bcf4e1af5a9633d49f9c735e33667d65ece32c" - integrity sha512-PYECUZACr25XDRngPtCfHLeiKBz+bV/P4xmLuUJHoS/8AjX8DTepi4dANVQ5kBsHueHayNYi7cLUG6Wuv/nf3Q== +"@react-native-community/cli-platform-android@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.4.tgz#78ab4c840f4f1f5252ad2fcc5a55f7681ec458cb" + integrity sha512-WhknYwIobKKCqaGCN3BzZEQHTbaZTDiGvcXzevvN867ldfaGdtbH0DVqNunbPoV1RNzeV9qKoQHFdWBkg83tpg== dependencies: - "@react-native-community/cli-tools" "13.6.2" + "@react-native-community/cli-tools" "13.6.4" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" fast-xml-parser "^4.2.4" logkitty "^0.7.1" -"@react-native-community/cli-platform-apple@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.2.tgz#b7e53451c50ad3ac2e14352194281480f6b9d0ca" - integrity sha512-rzYNoo3f2hf6XksUCD2fC3DMchD01bXTekmsUscuB2UX6dIF0cDpn1mUYlOt4G2sppHNQTh8LIKsRd581k9H0g== +"@react-native-community/cli-platform-apple@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.4.tgz#4912eaf519800a957745192718822b94655c8119" + integrity sha512-TLBiotdIz0veLbmvNQIdUv9fkBx7m34ANGYqr5nH7TFxdmey+Z+omoBqG/HGpvyR7d0AY+kZzzV4k+HkYHM/aQ== dependencies: - "@react-native-community/cli-tools" "13.6.2" + "@react-native-community/cli-tools" "13.6.4" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" fast-xml-parser "^4.0.12" ora "^5.4.1" -"@react-native-community/cli-platform-ios@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.2.tgz#90ba76abb4cd5518495f25de13d4062dffb28eaa" - integrity sha512-DSL0HISKYTtyr9M2wdMQT89ZCWGfi7UbKYMXY7/B+PEcOXEUuOwcANqfNsO0nHLX9TGpoYYI9djk9YIsDDGqZQ== +"@react-native-community/cli-platform-ios@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.4.tgz#96ec915c6df23b2b7b7e0d8cb3db7368e448d620" + integrity sha512-8Dlva8RY+MY5nhWAj6V7voG3+JOEzDTJmD0FHqL+4p0srvr9v7IEVcxfw5lKBDIUNd0OMAHNevGA+cyz1J60jg== dependencies: - "@react-native-community/cli-platform-apple" "13.6.2" + "@react-native-community/cli-platform-apple" "13.6.4" -"@react-native-community/cli-server-api@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.2.tgz#27ba135d90435c5af2af6c951b54acea61412e33" - integrity sha512-RKFx1s4vo+lLVQ7afiryCBfebLjvxF1HygcTchtWk0ttZQuT62/aMAf/LTxyHfBUNcqrYr+DAfD/Sd7VAfDO6Q== +"@react-native-community/cli-server-api@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.4.tgz#6bcec7ae387fc3aeb3e78f62561a91962e6fadf7" + integrity sha512-D2qSuYCFwrrUJUM0SDc9l3lEhU02yjf+9Peri/xhspzAhALnsf6Z/H7BCjddMV42g9/eY33LqiGyN5chr83a+g== dependencies: - "@react-native-community/cli-debugger-ui" "13.6.2" - "@react-native-community/cli-tools" "13.6.2" + "@react-native-community/cli-debugger-ui" "13.6.4" + "@react-native-community/cli-tools" "13.6.4" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" @@ -2492,10 +2492,10 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.2.tgz#dec0351c381e33157b80aa59c842c465e0102476" - integrity sha512-wOU6Us3un3chrbkDzaREF/fGysVe8fJYwB8YJXUy+HfMDS9bpxHoxp9C7IXt3QmI/OZdKrEJSgauFYSpkYnKkQ== +"@react-native-community/cli-tools@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.4.tgz#ab396604b6dcf215790807fe89656e779b11f0ec" + integrity sha512-N4oHLLbeTdg8opqJozjClmuTfazo1Mt+oxU7mr7m45VCsFgBqTF70Uwad289TM/3l44PP679NRMAHVYqpIRYtQ== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -2509,26 +2509,26 @@ shell-quote "^1.7.3" sudo-prompt "^9.0.0" -"@react-native-community/cli-types@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.2.tgz#0ef977d5f032500a8f671da9683592871c0dc74a" - integrity sha512-kxbFqTW9+xOhzLZyl+zV6KW5vmHPKoYg3LPrt9sLv7/EqyTk/30PZeI8QlHjboj8r28idOrcCxR1raaSV2qkAA== +"@react-native-community/cli-types@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.4.tgz#e499a3691ee597aa4b93196ff182a4782fae7afb" + integrity sha512-NxGCNs4eYtVC8x0wj0jJ/MZLRy8C+B9l8lY8kShuAcvWTv5JXRqmXjg8uK1aA+xikPh0maq4cc/zLw1roroY/A== dependencies: joi "^17.2.1" -"@react-native-community/cli@13.6.2": - version "13.6.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.2.tgz#3a44aa38a87a35f3b5933d8bad8e08e939405fd4" - integrity sha512-ghOJ4WqKb4+Q4Yqk2YagZVZGP2UbCsIB5fPaYUKp5Cc1ExoS517LmizZNKbBQJKSFz1Zu09lRHFTd7r6Ex32HA== - dependencies: - "@react-native-community/cli-clean" "13.6.2" - "@react-native-community/cli-config" "13.6.2" - "@react-native-community/cli-debugger-ui" "13.6.2" - "@react-native-community/cli-doctor" "13.6.2" - "@react-native-community/cli-hermes" "13.6.2" - "@react-native-community/cli-server-api" "13.6.2" - "@react-native-community/cli-tools" "13.6.2" - "@react-native-community/cli-types" "13.6.2" +"@react-native-community/cli@13.6.4": + version "13.6.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.4.tgz#dabe2749470a34533e18aada51d97c94b3568307" + integrity sha512-V7rt2N5JY7M4dJFgdNfR164r3hZdR/Z7V54dv85TFQHRbdwF4QrkG+GeagAU54qrkK/OU8OH3AF2+mKuiNWpGA== + dependencies: + "@react-native-community/cli-clean" "13.6.4" + "@react-native-community/cli-config" "13.6.4" + "@react-native-community/cli-debugger-ui" "13.6.4" + "@react-native-community/cli-doctor" "13.6.4" + "@react-native-community/cli-hermes" "13.6.4" + "@react-native-community/cli-server-api" "13.6.4" + "@react-native-community/cli-tools" "13.6.4" + "@react-native-community/cli-types" "13.6.4" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" From 6abca78895b921c60dff65e7379483b5e87660ef Mon Sep 17 00:00:00 2001 From: Distiller Date: Tue, 2 Apr 2024 11:04:49 +0000 Subject: [PATCH 106/223] Release 0.74.0-rc.6 #publish-packages-to-npm&next --- package.json | 4 ++-- packages/assets/package.json | 2 +- packages/babel-plugin-codegen/package.json | 4 ++-- packages/community-cli-plugin/package.json | 6 +++--- packages/debugger-frontend/package.json | 2 +- packages/dev-middleware/package.json | 4 ++-- packages/eslint-config-react-native/package.json | 4 ++-- packages/eslint-plugin-react-native/package.json | 2 +- packages/eslint-plugin-specs/package.json | 4 ++-- packages/hermes-inspector-msggen/package.json | 2 +- packages/metro-config/package.json | 6 +++--- packages/normalize-color/package.json | 2 +- packages/polyfills/package.json | 2 +- packages/react-native-babel-preset/package.json | 4 ++-- .../react-native-babel-transformer/package.json | 4 ++-- packages/react-native-bots/package.json | 2 +- .../package.json | 4 ++-- packages/react-native-codegen/package.json | 2 +- packages/react-native-gradle-plugin/package.json | 2 +- .../react-native-popup-menu-android/package.json | 4 ++-- packages/react-native-test-renderer/package.json | 2 +- .../Libraries/Core/ReactNativeVersion.js | 2 +- packages/react-native/React/Base/RCTVersion.m | 2 +- .../react-native/ReactAndroid/gradle.properties | 2 +- .../modules/systeminfo/ReactNativeVersion.java | 2 +- .../ReactCommon/cxxreact/ReactNativeVersion.h | 2 +- packages/react-native/package.json | 16 ++++++++-------- packages/react-native/template/package.json | 10 +++++----- packages/rn-tester-e2e/package.json | 2 +- packages/rn-tester/package.json | 4 ++-- packages/typescript-config/package.json | 2 +- packages/virtualized-lists/package.json | 2 +- 32 files changed, 57 insertions(+), 57 deletions(-) diff --git a/package.json b/package.json index bbfc56c9af80e5..954392b72dbe43 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,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.74.76", - "@react-native/metro-config": "0.74.76", + "@react-native/metro-babel-transformer": "0.74.77", + "@react-native/metro-config": "0.74.77", "@tsconfig/node18": "1.0.1", "@types/react": "^18.2.6", "@typescript-eslint/parser": "^6.7.4", diff --git a/packages/assets/package.json b/packages/assets/package.json index e5a38e654e9ef4..51fb4247ed7259 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/assets-registry", - "version": "0.74.76", + "version": "0.74.77", "description": "Asset support code for React Native.", "license": "MIT", "repository": { diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index 45619a5df8ec0d..d63ed49703a917 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-plugin-codegen", - "version": "0.74.76", + "version": "0.74.77", "description": "Babel plugin to generate native module and view manager code for React Native.", "license": "MIT", "repository": { @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@react-native/codegen": "0.74.76" + "@react-native/codegen": "0.74.77" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 2230cc4c0dbf78..fe6d1748c458be 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.76", + "version": "0.74.77", "description": "Core CLI commands for React Native", "keywords": [ "react-native", @@ -24,8 +24,8 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.4", "@react-native-community/cli-tools": "13.6.4", - "@react-native/dev-middleware": "0.74.76", - "@react-native/metro-babel-transformer": "0.74.76", + "@react-native/dev-middleware": "0.74.77", + "@react-native/metro-babel-transformer": "0.74.77", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", diff --git a/packages/debugger-frontend/package.json b/packages/debugger-frontend/package.json index ef8ccc57763c3d..393a9ee9cca979 100644 --- a/packages/debugger-frontend/package.json +++ b/packages/debugger-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/debugger-frontend", - "version": "0.74.76", + "version": "0.74.77", "description": "Debugger frontend for React Native based on Chrome DevTools", "keywords": [ "react-native", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index 2b51cdd9b4d9b5..2c962dba0b48ea 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.76", + "version": "0.74.77", "description": "Dev server middleware for React Native", "keywords": [ "react-native", @@ -23,7 +23,7 @@ ], "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.76", + "@react-native/debugger-frontend": "0.74.77", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index 9a1fc13de1018a..0888f21ac16362 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-config", - "version": "0.74.76", + "version": "0.74.77", "description": "ESLint config for React Native", "license": "MIT", "repository": { @@ -22,7 +22,7 @@ "dependencies": { "@babel/core": "^7.20.0", "@babel/eslint-parser": "^7.20.0", - "@react-native/eslint-plugin": "0.74.76", + "@react-native/eslint-plugin": "0.74.77", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "eslint-config-prettier": "^8.5.0", diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index ac1393f00eed06..906226572b6288 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin", - "version": "0.74.76", + "version": "0.74.77", "description": "ESLint rules for @react-native/eslint-config", "license": "MIT", "repository": { diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index 3a500f5a1325f6..b77af6ae553a8d 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin-specs", - "version": "0.74.76", + "version": "0.74.77", "description": "ESLint rules to validate NativeModule and Component Specs", "license": "MIT", "repository": { @@ -31,7 +31,7 @@ "@babel/eslint-parser": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/preset-flow": "^7.20.0", - "@react-native/codegen": "0.74.76", + "@react-native/codegen": "0.74.77", "make-dir": "^2.1.0", "pirates": "^4.0.1", "source-map-support": "0.5.0" diff --git a/packages/hermes-inspector-msggen/package.json b/packages/hermes-inspector-msggen/package.json index cebb7b643598d8..11e6bd199d432b 100644 --- a/packages/hermes-inspector-msggen/package.json +++ b/packages/hermes-inspector-msggen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/hermes-inspector-msggen", - "version": "0.74.76", + "version": "0.74.77", "private": true, "description": "Hermes Inspector Message Generator for React Native", "license": "MIT", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index cc74a542401362..9f705e779d2273 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-config", - "version": "0.74.76", + "version": "0.74.77", "description": "Metro configuration for React Native.", "license": "MIT", "repository": { @@ -26,8 +26,8 @@ "dist" ], "dependencies": { - "@react-native/js-polyfills": "0.74.76", - "@react-native/metro-babel-transformer": "0.74.76", + "@react-native/js-polyfills": "0.74.77", + "@react-native/metro-babel-transformer": "0.74.77", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" } diff --git a/packages/normalize-color/package.json b/packages/normalize-color/package.json index 50463e816fab09..c28091e776554c 100644 --- a/packages/normalize-color/package.json +++ b/packages/normalize-color/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/normalize-colors", - "version": "0.74.76", + "version": "0.74.77", "description": "Color normalization for React Native.", "license": "MIT", "repository": { diff --git a/packages/polyfills/package.json b/packages/polyfills/package.json index b4b5e10cb0d80f..7b8579061af67a 100644 --- a/packages/polyfills/package.json +++ b/packages/polyfills/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/js-polyfills", - "version": "0.74.76", + "version": "0.74.77", "description": "Polyfills for React Native.", "license": "MIT", "repository": { diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index cd86ff778ece83..390df5a88f3e61 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-preset", - "version": "0.74.76", + "version": "0.74.77", "description": "Babel preset for React Native applications", "main": "src/index.js", "repository": { @@ -54,7 +54,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.76", + "@react-native/babel-plugin-codegen": "0.74.77", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index c91cae0dd7eb59..67f42c4f966b35 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-babel-transformer", - "version": "0.74.76", + "version": "0.74.77", "description": "Babel transformer for React Native applications.", "main": "src/index.js", "repository": { @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.76", + "@react-native/babel-preset": "0.74.77", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, diff --git a/packages/react-native-bots/package.json b/packages/react-native-bots/package.json index 2fc74003b604ce..51bd32e2924185 100644 --- a/packages/react-native-bots/package.json +++ b/packages/react-native-bots/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/bots", "description": "React Native Bots", - "version": "0.74.76", + "version": "0.74.77", "private": true, "license": "MIT", "repository": { diff --git a/packages/react-native-codegen-typescript-test/package.json b/packages/react-native-codegen-typescript-test/package.json index f80584ba549f32..761b8db64fc376 100644 --- a/packages/react-native-codegen-typescript-test/package.json +++ b/packages/react-native-codegen-typescript-test/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen-typescript-test", - "version": "0.74.76", + "version": "0.74.77", "private": true, "description": "TypeScript related unit test for @react-native/codegen", "license": "MIT", @@ -19,7 +19,7 @@ "prepare": "yarn run build" }, "dependencies": { - "@react-native/codegen": "0.74.76" + "@react-native/codegen": "0.74.77" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index 9f4368a9d40423..dc3f9e34d9bc4e 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen", - "version": "0.74.76", + "version": "0.74.77", "description": "Code generation tools for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-gradle-plugin/package.json b/packages/react-native-gradle-plugin/package.json index 8d5155a2b3436f..b63341f7f1826f 100644 --- a/packages/react-native-gradle-plugin/package.json +++ b/packages/react-native-gradle-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/gradle-plugin", - "version": "0.74.76", + "version": "0.74.77", "description": "Gradle Plugin for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json index 019cfd5394b2e2..f7773c7879884c 100644 --- a/packages/react-native-popup-menu-android/package.json +++ b/packages/react-native-popup-menu-android/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/popup-menu-android", - "version": "0.74.76", + "version": "0.74.77", "description": "PopupMenu for the Android platform", "main": "index.js", "files": [ @@ -17,7 +17,7 @@ ], "license": "MIT", "devDependencies": { - "@react-native/codegen": "0.74.76" + "@react-native/codegen": "0.74.77" }, "peerDependencies": { "@types/react": "^18.2.6", diff --git a/packages/react-native-test-renderer/package.json b/packages/react-native-test-renderer/package.json index 00e40edf057459..489b861986e6e8 100644 --- a/packages/react-native-test-renderer/package.json +++ b/packages/react-native-test-renderer/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/test-renderer", "private": true, - "version": "0.74.76", + "version": "0.74.77", "description": "A Test rendering library for React Native", "license": "MIT", "devDependencies": { diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index 430e51c50ccd0f..51acd213ff7e05 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -17,7 +17,7 @@ const version: $ReadOnly<{ major: 0, minor: 74, patch: 0, - prerelease: 'rc.5', + prerelease: 'rc.6', }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index 89d8c2fa1a6f60..7abc7a329259db 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -24,7 +24,7 @@ RCTVersionMajor: @(0), RCTVersionMinor: @(74), RCTVersionPatch: @(0), - RCTVersionPrerelease: @"rc.5", + RCTVersionPrerelease: @"rc.6", }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index b3c8a5a95baa64..7c374c1c3f083a 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.0-rc.5 +VERSION_NAME=0.74.0-rc.6 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index eaaaf2f5987dc4..f08da8d5ffa804 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -18,5 +18,5 @@ public class ReactNativeVersion { "major", 0, "minor", 74, "patch", 0, - "prerelease", "rc.5"); + "prerelease", "rc.6"); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index c84306db836a3b..a59f220995d12c 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -18,7 +18,7 @@ constexpr struct { int32_t Major = 0; int32_t Minor = 74; int32_t Patch = 0; - std::string_view Prerelease = "rc.5"; + std::string_view Prerelease = "rc.6"; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index c5b39991ecc25b..767d9374f9ea14 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.0-rc.5", + "version": "0.74.0-rc.6", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -110,13 +110,13 @@ "@react-native-community/cli": "13.6.4", "@react-native-community/cli-platform-android": "13.6.4", "@react-native-community/cli-platform-ios": "13.6.4", - "@react-native/assets-registry": "0.74.76", - "@react-native/codegen": "0.74.76", - "@react-native/community-cli-plugin": "0.74.76", - "@react-native/gradle-plugin": "0.74.76", - "@react-native/js-polyfills": "0.74.76", - "@react-native/normalize-colors": "0.74.76", - "@react-native/virtualized-lists": "0.74.76", + "@react-native/assets-registry": "0.74.77", + "@react-native/codegen": "0.74.77", + "@react-native/community-cli-plugin": "0.74.77", + "@react-native/gradle-plugin": "0.74.77", + "@react-native/js-polyfills": "0.74.77", + "@react-native/normalize-colors": "0.74.77", + "@react-native/virtualized-lists": "0.74.77", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 409b8ad89d0b1f..801543f98f8825 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,16 +11,16 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.0-rc.5" + "react-native": "0.74.0-rc.6" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.76", - "@react-native/eslint-config": "0.74.76", - "@react-native/metro-config": "0.74.76", - "@react-native/typescript-config": "0.74.76", + "@react-native/babel-preset": "0.74.77", + "@react-native/eslint-config": "0.74.77", + "@react-native/metro-config": "0.74.77", + "@react-native/typescript-config": "0.74.77", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", diff --git a/packages/rn-tester-e2e/package.json b/packages/rn-tester-e2e/package.json index 142187fdbb746a..cb4a69d10eac61 100644 --- a/packages/rn-tester-e2e/package.json +++ b/packages/rn-tester-e2e/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/tester-e2e", "private": true, - "version": "0.74.76", + "version": "0.74.77", "license": "MIT", "description": "React Native E2E tester app.", "homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/rn-tester-e2e", diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index 50e87e77358504..b4e8a01f38060b 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/tester", - "version": "0.74.76", + "version": "0.74.77", "private": true, "description": "React Native tester app.", "license": "MIT", @@ -26,7 +26,7 @@ "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "@react-native/popup-menu-android": "0.74.76" + "@react-native/popup-menu-android": "0.74.77" }, "peerDependencies": { "react": "18.2.0", diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 837c3a385faf8d..81590f42318d26 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/typescript-config", - "version": "0.74.76", + "version": "0.74.77", "description": "Default TypeScript configuration for React Native apps", "license": "MIT", "repository": { diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index 1f8e4ae984511f..dad595c42f4d6a 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/virtualized-lists", - "version": "0.74.76", + "version": "0.74.77", "description": "Virtualized lists for React Native.", "license": "MIT", "repository": { From 82643e1a3523f916bae65f3432a6e7637fb89b95 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 2 Apr 2024 13:48:19 +0100 Subject: [PATCH 107/223] Update Podfile.lock Changelog: [Internal] --- packages/rn-tester/Podfile.lock | 498 ++++++++++++++++---------------- 1 file changed, 249 insertions(+), 249 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index be00e7a303369c..4d42db2c6a5843 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,13 +1,13 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.0-rc.5) + - FBLazyVector (0.74.0-rc.6) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.0-rc.5): - - hermes-engine/Pre-built (= 0.74.0-rc.5) - - hermes-engine/Pre-built (0.74.0-rc.5) - - MyNativeView (0.74.76): + - hermes-engine (0.74.0-rc.6): + - hermes-engine/Pre-built (= 0.74.0-rc.6) + - hermes-engine/Pre-built (0.74.0-rc.6) + - MyNativeView (0.74.77): - DoubleConversion - glog - hermes-engine @@ -28,7 +28,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - NativeCxxModuleExample (0.74.76): + - NativeCxxModuleExample (0.74.77): - DoubleConversion - glog - hermes-engine @@ -66,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.0-rc.5) - - RCTRequired (0.74.0-rc.5) - - RCTTypeSafety (0.74.0-rc.5): - - FBLazyVector (= 0.74.0-rc.5) - - RCTRequired (= 0.74.0-rc.5) - - React-Core (= 0.74.0-rc.5) - - React (0.74.0-rc.5): - - React-Core (= 0.74.0-rc.5) - - React-Core/DevSupport (= 0.74.0-rc.5) - - React-Core/RCTWebSocket (= 0.74.0-rc.5) - - React-RCTActionSheet (= 0.74.0-rc.5) - - React-RCTAnimation (= 0.74.0-rc.5) - - React-RCTBlob (= 0.74.0-rc.5) - - React-RCTImage (= 0.74.0-rc.5) - - React-RCTLinking (= 0.74.0-rc.5) - - React-RCTNetwork (= 0.74.0-rc.5) - - React-RCTSettings (= 0.74.0-rc.5) - - React-RCTText (= 0.74.0-rc.5) - - React-RCTVibration (= 0.74.0-rc.5) - - React-callinvoker (0.74.0-rc.5) - - React-Codegen (0.74.0-rc.5): + - RCTDeprecation (0.74.0-rc.6) + - RCTRequired (0.74.0-rc.6) + - RCTTypeSafety (0.74.0-rc.6): + - FBLazyVector (= 0.74.0-rc.6) + - RCTRequired (= 0.74.0-rc.6) + - React-Core (= 0.74.0-rc.6) + - React (0.74.0-rc.6): + - React-Core (= 0.74.0-rc.6) + - React-Core/DevSupport (= 0.74.0-rc.6) + - React-Core/RCTWebSocket (= 0.74.0-rc.6) + - React-RCTActionSheet (= 0.74.0-rc.6) + - React-RCTAnimation (= 0.74.0-rc.6) + - React-RCTBlob (= 0.74.0-rc.6) + - React-RCTImage (= 0.74.0-rc.6) + - React-RCTLinking (= 0.74.0-rc.6) + - React-RCTNetwork (= 0.74.0-rc.6) + - React-RCTSettings (= 0.74.0-rc.6) + - React-RCTText (= 0.74.0-rc.6) + - React-RCTVibration (= 0.74.0-rc.6) + - React-callinvoker (0.74.0-rc.6) + - React-Codegen (0.74.0-rc.6): - DoubleConversion - glog - hermes-engine @@ -106,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.0-rc.5): + - React-Core (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.5) + - React-Core/Default (= 0.74.0-rc.6) - React-cxxreact - React-featureflags - React-hermes @@ -123,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.0-rc.5): + - React-Core/CoreModulesHeaders (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.0-rc.5): + - React-Core/Default (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -156,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.0-rc.5): + - React-Core/DevSupport (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.5) - - React-Core/RCTWebSocket (= 0.74.0-rc.5) + - React-Core/Default (= 0.74.0-rc.6) + - React-Core/RCTWebSocket (= 0.74.0-rc.6) - React-cxxreact - React-featureflags - React-hermes @@ -174,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.0-rc.5): + - React-Core/RCTActionSheetHeaders (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -191,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.0-rc.5): + - React-Core/RCTAnimationHeaders (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -208,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.0-rc.5): + - React-Core/RCTBlobHeaders (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.0-rc.5): + - React-Core/RCTImageHeaders (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -242,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.0-rc.5): + - React-Core/RCTLinkingHeaders (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.0-rc.5): + - React-Core/RCTNetworkHeaders (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -276,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.0-rc.5): + - React-Core/RCTPushNotificationHeaders (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -293,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.0-rc.5): + - React-Core/RCTSettingsHeaders (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -310,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.0-rc.5): + - React-Core/RCTTextHeaders (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -327,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.0-rc.5): + - React-Core/RCTVibrationHeaders (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -344,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.0-rc.5): + - React-Core/RCTWebSocket (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.5) + - React-Core/Default (= 0.74.0-rc.6) - React-cxxreact - React-featureflags - React-hermes @@ -361,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.0-rc.5): + - React-CoreModules (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.0-rc.5) + - RCTTypeSafety (= 0.74.0-rc.6) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.0-rc.5) - - React-jsi (= 0.74.0-rc.5) + - React-Core/CoreModulesHeaders (= 0.74.0-rc.6) + - React-jsi (= 0.74.0-rc.6) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.0-rc.5) + - React-RCTImage (= 0.74.0-rc.6) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.0-rc.5): + - React-cxxreact (0.74.0-rc.6): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.5) - - React-debug (= 0.74.0-rc.5) - - React-jsi (= 0.74.0-rc.5) + - React-callinvoker (= 0.74.0-rc.6) + - React-debug (= 0.74.0-rc.6) + - React-jsi (= 0.74.0-rc.6) - React-jsinspector - - React-logger (= 0.74.0-rc.5) - - React-perflogger (= 0.74.0-rc.5) - - React-runtimeexecutor (= 0.74.0-rc.5) - - React-debug (0.74.0-rc.5) - - React-Fabric (0.74.0-rc.5): + - React-logger (= 0.74.0-rc.6) + - React-perflogger (= 0.74.0-rc.6) + - React-runtimeexecutor (= 0.74.0-rc.6) + - React-debug (0.74.0-rc.6) + - React-Fabric (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -401,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.0-rc.5) - - React-Fabric/attributedstring (= 0.74.0-rc.5) - - React-Fabric/componentregistry (= 0.74.0-rc.5) - - React-Fabric/componentregistrynative (= 0.74.0-rc.5) - - React-Fabric/components (= 0.74.0-rc.5) - - React-Fabric/core (= 0.74.0-rc.5) - - React-Fabric/imagemanager (= 0.74.0-rc.5) - - React-Fabric/leakchecker (= 0.74.0-rc.5) - - React-Fabric/mounting (= 0.74.0-rc.5) - - React-Fabric/scheduler (= 0.74.0-rc.5) - - React-Fabric/telemetry (= 0.74.0-rc.5) - - React-Fabric/templateprocessor (= 0.74.0-rc.5) - - React-Fabric/textlayoutmanager (= 0.74.0-rc.5) - - React-Fabric/uimanager (= 0.74.0-rc.5) + - React-Fabric/animations (= 0.74.0-rc.6) + - React-Fabric/attributedstring (= 0.74.0-rc.6) + - React-Fabric/componentregistry (= 0.74.0-rc.6) + - React-Fabric/componentregistrynative (= 0.74.0-rc.6) + - React-Fabric/components (= 0.74.0-rc.6) + - React-Fabric/core (= 0.74.0-rc.6) + - React-Fabric/imagemanager (= 0.74.0-rc.6) + - React-Fabric/leakchecker (= 0.74.0-rc.6) + - React-Fabric/mounting (= 0.74.0-rc.6) + - React-Fabric/scheduler (= 0.74.0-rc.6) + - React-Fabric/telemetry (= 0.74.0-rc.6) + - React-Fabric/templateprocessor (= 0.74.0-rc.6) + - React-Fabric/textlayoutmanager (= 0.74.0-rc.6) + - React-Fabric/uimanager (= 0.74.0-rc.6) - React-graphics - React-jsi - React-jsiexecutor @@ -423,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.0-rc.5): + - React-Fabric/animations (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -442,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.0-rc.5): + - React-Fabric/attributedstring (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -461,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.0-rc.5): + - React-Fabric/componentregistry (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.0-rc.5): + - React-Fabric/componentregistrynative (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.0-rc.5): + - React-Fabric/components (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -510,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.0-rc.5) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.5) - - React-Fabric/components/modal (= 0.74.0-rc.5) - - React-Fabric/components/rncore (= 0.74.0-rc.5) - - React-Fabric/components/root (= 0.74.0-rc.5) - - React-Fabric/components/safeareaview (= 0.74.0-rc.5) - - React-Fabric/components/scrollview (= 0.74.0-rc.5) - - React-Fabric/components/text (= 0.74.0-rc.5) - - React-Fabric/components/textinput (= 0.74.0-rc.5) - - React-Fabric/components/unimplementedview (= 0.74.0-rc.5) - - React-Fabric/components/view (= 0.74.0-rc.5) + - React-Fabric/components/inputaccessory (= 0.74.0-rc.6) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.6) + - React-Fabric/components/modal (= 0.74.0-rc.6) + - React-Fabric/components/rncore (= 0.74.0-rc.6) + - React-Fabric/components/root (= 0.74.0-rc.6) + - React-Fabric/components/safeareaview (= 0.74.0-rc.6) + - React-Fabric/components/scrollview (= 0.74.0-rc.6) + - React-Fabric/components/text (= 0.74.0-rc.6) + - React-Fabric/components/textinput (= 0.74.0-rc.6) + - React-Fabric/components/unimplementedview (= 0.74.0-rc.6) + - React-Fabric/components/view (= 0.74.0-rc.6) - React-graphics - React-jsi - React-jsiexecutor @@ -529,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.0-rc.5): + - React-Fabric/components/inputaccessory (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -548,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.5): + - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -567,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.0-rc.5): + - React-Fabric/components/modal (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -586,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.0-rc.5): + - React-Fabric/components/rncore (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.0-rc.5): + - React-Fabric/components/root (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.0-rc.5): + - React-Fabric/components/safeareaview (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.0-rc.5): + - React-Fabric/components/scrollview (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.0-rc.5): + - React-Fabric/components/text (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.0-rc.5): + - React-Fabric/components/textinput (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -700,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.0-rc.5): + - React-Fabric/components/unimplementedview (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -719,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.0-rc.5): + - React-Fabric/components/view (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -739,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.0-rc.5): + - React-Fabric/core (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.0-rc.5): + - React-Fabric/imagemanager (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -777,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.0-rc.5): + - React-Fabric/leakchecker (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -796,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.0-rc.5): + - React-Fabric/mounting (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -815,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.0-rc.5): + - React-Fabric/scheduler (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -834,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.0-rc.5): + - React-Fabric/telemetry (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.0-rc.5): + - React-Fabric/templateprocessor (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -872,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.0-rc.5): + - React-Fabric/textlayoutmanager (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -892,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.0-rc.5): + - React-Fabric/uimanager (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog @@ -911,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.0-rc.5): + - React-FabricImage (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.0-rc.5) - - RCTTypeSafety (= 0.74.0-rc.5) + - RCTRequired (= 0.74.0-rc.6) + - RCTTypeSafety (= 0.74.0-rc.6) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.0-rc.5) + - React-jsiexecutor (= 0.74.0-rc.6) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.0-rc.5) - - React-graphics (0.74.0-rc.5): + - React-featureflags (0.74.0-rc.6) + - React-graphics (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.0-rc.5) + - React-Core/Default (= 0.74.0-rc.6) - React-utils - - React-hermes (0.74.0-rc.5): + - React-hermes (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.5) + - React-cxxreact (= 0.74.0-rc.6) - React-jsi - - React-jsiexecutor (= 0.74.0-rc.5) + - React-jsiexecutor (= 0.74.0-rc.6) - React-jsinspector - - React-perflogger (= 0.74.0-rc.5) + - React-perflogger (= 0.74.0-rc.6) - React-runtimeexecutor - - React-ImageManager (0.74.0-rc.5): + - React-ImageManager (0.74.0-rc.6): - glog - RCT-Folly/Fabric - React-Core/Default @@ -958,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.0-rc.5): + - React-jserrorhandler (0.74.0-rc.6): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.0-rc.5): + - React-jsi (0.74.0-rc.6): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.0-rc.5): + - React-jsiexecutor (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.5) - - React-jsi (= 0.74.0-rc.5) + - React-cxxreact (= 0.74.0-rc.6) + - React-jsi (= 0.74.0-rc.6) - React-jsinspector - - React-perflogger (= 0.74.0-rc.5) - - React-jsinspector (0.74.0-rc.5): + - React-perflogger (= 0.74.0-rc.6) + - React-jsinspector (0.74.0-rc.6): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.0-rc.5) - - React-jsitracing (0.74.0-rc.5): + - React-runtimeexecutor (= 0.74.0-rc.6) + - React-jsitracing (0.74.0-rc.6): - React-jsi - - React-logger (0.74.0-rc.5): + - React-logger (0.74.0-rc.6): - glog - - React-Mapbuffer (0.74.0-rc.5): + - React-Mapbuffer (0.74.0-rc.6): - glog - React-debug - - React-nativeconfig (0.74.0-rc.5) - - React-NativeModulesApple (0.74.0-rc.5): + - React-nativeconfig (0.74.0-rc.6) + - React-NativeModulesApple (0.74.0-rc.6): - glog - hermes-engine - React-callinvoker @@ -1007,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.0-rc.5) - - React-RCTActionSheet (0.74.0-rc.5): - - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.5) - - React-RCTAnimation (0.74.0-rc.5): + - React-perflogger (0.74.0-rc.6) + - React-RCTActionSheet (0.74.0-rc.6): + - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.6) + - React-RCTAnimation (0.74.0-rc.6): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1018,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.0-rc.5): + - React-RCTAppDelegate (0.74.0-rc.6): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1041,7 +1041,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.0-rc.5): + - React-RCTBlob (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1054,7 +1054,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.0-rc.5): + - React-RCTFabric (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1074,7 +1074,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.0-rc.5): + - React-RCTImage (0.74.0-rc.6): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1083,14 +1083,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.0-rc.5): + - React-RCTLinking (0.74.0-rc.6): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.0-rc.5) - - React-jsi (= 0.74.0-rc.5) + - React-Core/RCTLinkingHeaders (= 0.74.0-rc.6) + - React-jsi (= 0.74.0-rc.6) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.0-rc.5) - - React-RCTNetwork (0.74.0-rc.5): + - ReactCommon/turbomodule/core (= 0.74.0-rc.6) + - React-RCTNetwork (0.74.0-rc.6): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1098,14 +1098,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.0-rc.5): + - React-RCTPushNotification (0.74.0-rc.6): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.0-rc.5): + - React-RCTSettings (0.74.0-rc.6): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1113,29 +1113,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.0-rc.5): + - React-RCTTest (0.74.0-rc.6): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.0-rc.5) - - React-CoreModules (= 0.74.0-rc.5) - - React-jsi (= 0.74.0-rc.5) - - ReactCommon/turbomodule/core (= 0.74.0-rc.5) - - React-RCTText (0.74.0-rc.5): - - React-Core/RCTTextHeaders (= 0.74.0-rc.5) + - React-Core (= 0.74.0-rc.6) + - React-CoreModules (= 0.74.0-rc.6) + - React-jsi (= 0.74.0-rc.6) + - ReactCommon/turbomodule/core (= 0.74.0-rc.6) + - React-RCTText (0.74.0-rc.6): + - React-Core/RCTTextHeaders (= 0.74.0-rc.6) - Yoga - - React-RCTVibration (0.74.0-rc.5): + - React-RCTVibration (0.74.0-rc.6): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.0-rc.5): + - React-rendererdebug (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.0-rc.5) - - React-RuntimeApple (0.74.0-rc.5): + - React-rncore (0.74.0-rc.6) + - React-RuntimeApple (0.74.0-rc.6): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1153,7 +1153,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.0-rc.5): + - React-RuntimeCore (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1166,9 +1166,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.0-rc.5): - - React-jsi (= 0.74.0-rc.5) - - React-RuntimeHermes (0.74.0-rc.5): + - React-runtimeexecutor (0.74.0-rc.6): + - React-jsi (= 0.74.0-rc.6) + - React-RuntimeHermes (0.74.0-rc.6): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1179,7 +1179,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.0-rc.5): + - React-runtimescheduler (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1191,15 +1191,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.0-rc.5): + - React-utils (0.74.0-rc.6): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.0-rc.5) - - ReactCommon (0.74.0-rc.5): - - ReactCommon/turbomodule (= 0.74.0-rc.5) - - ReactCommon-Samples (0.74.0-rc.5): + - React-jsi (= 0.74.0-rc.6) + - ReactCommon (0.74.0-rc.6): + - ReactCommon/turbomodule (= 0.74.0-rc.6) + - ReactCommon-Samples (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1210,44 +1210,44 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.0-rc.5): + - ReactCommon/turbomodule (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.5) - - React-cxxreact (= 0.74.0-rc.5) - - React-jsi (= 0.74.0-rc.5) - - React-logger (= 0.74.0-rc.5) - - React-perflogger (= 0.74.0-rc.5) - - ReactCommon/turbomodule/bridging (= 0.74.0-rc.5) - - ReactCommon/turbomodule/core (= 0.74.0-rc.5) - - ReactCommon/turbomodule/bridging (0.74.0-rc.5): + - React-callinvoker (= 0.74.0-rc.6) + - React-cxxreact (= 0.74.0-rc.6) + - React-jsi (= 0.74.0-rc.6) + - React-logger (= 0.74.0-rc.6) + - React-perflogger (= 0.74.0-rc.6) + - ReactCommon/turbomodule/bridging (= 0.74.0-rc.6) + - ReactCommon/turbomodule/core (= 0.74.0-rc.6) + - ReactCommon/turbomodule/bridging (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.5) - - React-cxxreact (= 0.74.0-rc.5) - - React-jsi (= 0.74.0-rc.5) - - React-logger (= 0.74.0-rc.5) - - React-perflogger (= 0.74.0-rc.5) - - ReactCommon/turbomodule/core (0.74.0-rc.5): + - React-callinvoker (= 0.74.0-rc.6) + - React-cxxreact (= 0.74.0-rc.6) + - React-jsi (= 0.74.0-rc.6) + - React-logger (= 0.74.0-rc.6) + - React-perflogger (= 0.74.0-rc.6) + - ReactCommon/turbomodule/core (0.74.0-rc.6): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.5) - - React-cxxreact (= 0.74.0-rc.5) - - React-debug (= 0.74.0-rc.5) - - React-jsi (= 0.74.0-rc.5) - - React-logger (= 0.74.0-rc.5) - - React-perflogger (= 0.74.0-rc.5) - - React-utils (= 0.74.0-rc.5) - - ScreenshotManager (0.74.76): + - React-callinvoker (= 0.74.0-rc.6) + - React-cxxreact (= 0.74.0-rc.6) + - React-debug (= 0.74.0-rc.6) + - React-jsi (= 0.74.0-rc.6) + - React-logger (= 0.74.0-rc.6) + - React-perflogger (= 0.74.0-rc.6) + - React-utils (= 0.74.0-rc.6) + - ScreenshotManager (0.74.77): - DoubleConversion - glog - hermes-engine @@ -1467,66 +1467,66 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 5b76d5fff75c5fb146a50a6edee4db626f9914d5 + FBLazyVector: 0c069e616db0212f1579d6be2b51438fa262819d fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 28f3a005a29e856b1b5cd0e20b3fa7bbf862cdf3 - MyNativeView: c532627d10932ef0e75a49a56880557d17ba4e05 - NativeCxxModuleExample: a459f8a57183331dc680b7e2fecf01696f252ed3 + hermes-engine: 1a846a8f620a08c60f5f89aa65b8664f769f742f + MyNativeView: 0ccf46340b391dd502b88035b60867dab26fa552 + NativeCxxModuleExample: 793ec1f504e00bf9ae870d2767e537222d1a9568 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df - RCTDeprecation: ef45994c9e22748cfeb6553422514437d0ea15f3 - RCTRequired: ab444d2da42365430b9e8e95bd2a0fb18620fdc6 - RCTTypeSafety: de09b27a99f041080e3d9fed59147ec6a37c71b3 - React: 8166045ba6ccbeeee1dcb4c4bb2572523f97af28 - React-callinvoker: 0db59c9a64174da80bbea2c79c68c04a08f91587 - React-Codegen: 9fea478bf6b350802e6bbb0890667bb853b4c487 - React-Core: 4e5e2fe54a4ddd2b61a34060f3ec41ffb169499a - React-CoreModules: ef194b4d3a8bfee51305a0328c5a1c3263f94a02 - React-cxxreact: 06aa64f9c34dd5c10beef3ab10be2d1107514612 - React-debug: b5edcd96992c24ec25eb98caf8f23c603e21c4e9 - React-Fabric: 83bc4413be4a1566695dc982258df3dc6c2bb292 - React-FabricImage: 282cf006552b3c5dd44e1ab6b38d37b18444b885 - React-featureflags: 5fe33915033d00da82c24f82086bf1a894bb423d - React-graphics: c8f6fa9cc01198f8943fdcd190c0705d7fb03886 - React-hermes: 020c9f7f4b56d08e99fc2c128fc42d4c84ba8c1b - React-ImageManager: cecb67553325ff1383c4a4d17e08b7a6a719bde1 - React-jserrorhandler: 3811113810dca53ea77da10582f2598f59c58f05 - React-jsi: 075ff78f700de9db8d558fba09ea3f589629ebf8 - React-jsiexecutor: d5427698b2d6722f9ba5399f65f750c48e70905d - React-jsinspector: 44159c738061e67362ebe13acc29214a2b20387e - React-jsitracing: 29548fd6ba558ab2441f89c87a5b2820da6ef276 - React-logger: 4092c2c3bc5feb8ccce0fbabda8f77d03dfba47a - React-Mapbuffer: 14b88e15d38a2c448ab94ad4ec3d00583b7722cd - React-nativeconfig: 83f91b53a8d6a6ecf16a8acd845c99570db7a548 - React-NativeModulesApple: 59ed2248373b3d36badb153f34bb48a6b9ee4865 - React-perflogger: 12c33674b7ad945eee0a2bdb982383a1bb81c75e - React-RCTActionSheet: 6511eba84bb395512cc6631c556a040822c0e88c - React-RCTAnimation: 8c3f2c976fa43b1e740c70a5cebdf5f01839291d - React-RCTAppDelegate: 47727e0ed93c67e646bf2918d4a037c852a29af8 - React-RCTBlob: cf1232be5c795b44287d3523d2427199fd72fe45 - React-RCTFabric: a4f8fcd8d3219e76baf6926cfea84e3b9343f9f9 - React-RCTImage: 04273a4c9e65662a9cd6e7f054f5feec950d120f - React-RCTLinking: 1fc7437bab8e337b6b3285df9683369e4c5481e3 - React-RCTNetwork: 63d93e9223becd8e8c20d45c9a0b3a32eb2681b6 - React-RCTPushNotification: 9493cb42b502cae0a3745f18405d69bb98cf2c29 - React-RCTSettings: fc631b1ccd2a167100e960f36f530976492083af - React-RCTTest: 6bab7c4d21122d0c0f9839bfb9e51693a537b89f - React-RCTText: 8a1b224d5ca3c01d758ea71323fbf3cba09c488b - React-RCTVibration: a029b5a172908d5810393a97e3feeb760c6db2de - React-rendererdebug: 6e91669a4ec205fffde6016343fe755b17860eeb - React-rncore: 6f2e9bb2580de7e3870d6ca5f92d682ead8eee30 - React-RuntimeApple: 541af9b9e5dc899d795c3af2bd264f01364cfbc6 - React-RuntimeCore: 1c989e13b08e5063637e79751c0bcb32bfa9f682 - React-runtimeexecutor: 4bf6e50e74bdd516c18514b32b2510d85165ed86 - React-RuntimeHermes: c7152662ae3516282bc67d3321f3fe28cd7ce3d3 - React-runtimescheduler: 8951a04c202e17b4bd1a4789c21ad9dcaed6440b - React-utils: c3478109d1266c268f923862546adfa4c23c0474 - ReactCommon: 9e56154615276b73abffa10c09905da40f6ad638 - ReactCommon-Samples: 25d4dfa5cf3b4de8d471f73a73ccb0fdab75b8bf - ScreenshotManager: cacef14b4f01101a37d23990f57e56e103037132 + RCTDeprecation: 82b53c4f460b7a5b27c6be8310a71bc84df583f5 + RCTRequired: d1a99a9f78fcc4acca99ab397822f4e58601b134 + RCTTypeSafety: b5ce0dd6fb08d84f2dbe24f93a80f07f9e21cad4 + React: 2ba05d73c03f915279113dd288c89c1c9a285c37 + React-callinvoker: 9558633e9e5fa2c008bb37c4134e4134e3ba32be + React-Codegen: a94e41c1ed90ebcd6480b3031f9c775dadba505c + React-Core: a3b55570867ddd03d6362fa638822654dbb693b9 + React-CoreModules: fd574fedee388118c7627989ece8afd6e7a32fd3 + React-cxxreact: 83a24b952362512dd25391f975eeef3bba0c4636 + React-debug: 4bd7a3243580a1b45d0101f20616272155fdbaa1 + React-Fabric: 2d85bac0b6ba2f451da53dca542d6346f5c4d193 + React-FabricImage: 5c77af85b45bb52b54372beebd6003ac9350290e + React-featureflags: 457fef03680e0d10f358c888913248f56833f2e0 + React-graphics: d4a46dce930542590c3ca3ff180cdaeb594db5a3 + React-hermes: dabc96b6ac11df6dff93c780c183f12061e6186f + React-ImageManager: c6c668f47d62ff2be059262606f580b8bf3c8bb4 + React-jserrorhandler: 2f17532ff74149c689d21ee99d941461083b010e + React-jsi: ba6e7adad0ccea9c1127bf026d7574ba220e7051 + React-jsiexecutor: 516ac5a5cae65887bdda3fad9049be8dfd4b4952 + React-jsinspector: 74c18a16b964410396ceacb01b348a7c06581807 + React-jsitracing: cbdf29742ac2bb53393777a2bde00ab6620fe668 + React-logger: 2fa117661e8ee0c133fddcf5772ff28b82241a56 + React-Mapbuffer: 6a29ddb15979e501733cd3c91679bbfd8af77005 + React-nativeconfig: ba6e3be47338c4ac7c24723871a3a561f16b3452 + React-NativeModulesApple: 230aea9977013ce77d38740d23825f69603e4265 + React-perflogger: 155b3b98aba17451abbb662e8f10400e01c8d6a3 + React-RCTActionSheet: 6e60171bd5d16fa23c49f4a3fb4f3fe511ce754d + React-RCTAnimation: e05ec3f92e72eb69cf3a2eef42a0e572c132b256 + React-RCTAppDelegate: cfd9bd839c4d6579914f5dd42a41aad138b4091c + React-RCTBlob: f9061b4277d11c2acc7d0c41830c347f1cec5ac1 + React-RCTFabric: 8d2e3ec9be20b33aa6af16b55321defaf90431d8 + React-RCTImage: eb1fbdb04b3dec9f4b0dee581d470748f1c22419 + React-RCTLinking: d58264477967b6a8681ee45c05eda569823156ac + React-RCTNetwork: 02e9c1559eddbf35389bd74abf1fec2169215865 + React-RCTPushNotification: dac0d93df8a0c7e5f9c90baa934c11af413b2c36 + React-RCTSettings: b73a73cc09d17c2aa923e7b6545c73d117eb9e69 + React-RCTTest: fcfa8f0359a27314e9242604944d9db739c14fb8 + React-RCTText: ca52165d87e66814a19344f03f9940fb6e5d44fe + React-RCTVibration: 7a786662fc315d2efc8979a925e3f32cfb4b15a9 + React-rendererdebug: 789b51e43c2b6fa56a546897a24dbbc49be04cf1 + React-rncore: 86cade9b4158befacacbd5b9c5c48c00049f43a6 + React-RuntimeApple: f01c5422af459738f7ff892c696f0d2001397c9d + React-RuntimeCore: d6f25c164957c9f151d349e5efa0582f31d85749 + React-runtimeexecutor: 88742f58a1140336f4f4ad8790c0ccddf4faf11e + React-RuntimeHermes: 670705bd4c5618d310a441bdfad494d9bf79a522 + React-runtimescheduler: 9dd94e6dbad4f2e0103e0fda286d7aab7ccd43d9 + React-utils: 9e6a5f394e0a7c618410f6cc342617b13962c81b + ReactCommon: 439399266acec0fa3b5a6966bdf66b1cf6b6c26d + ReactCommon-Samples: 056e2058eae2186b8dd14651c0face90738f75dd + ScreenshotManager: e67f89ab918fd0d6e617e90cc271de55ef04492d SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: 708c16540a21c44f989f4d402050e1f419d7461c + Yoga: 752c49a827984ffb251f347dffa1fc70762b22d7 PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf From 0e5dc51bbac105fb225ecc7966c1cde954b90330 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Mon, 8 Apr 2024 07:49:36 +0100 Subject: [PATCH 108/223] [Yoga][0.74] Fix archive for MacOS Catalyst (#43900) --- packages/react-native/ReactCommon/yoga/Yoga.podspec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/react-native/ReactCommon/yoga/Yoga.podspec b/packages/react-native/ReactCommon/yoga/Yoga.podspec index a84876951aa67c..b323b05ed739f7 100644 --- a/packages/react-native/ReactCommon/yoga/Yoga.podspec +++ b/packages/react-native/ReactCommon/yoga/Yoga.podspec @@ -32,7 +32,10 @@ Pod::Spec.new do |spec| spec.requires_arc = false spec.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' - } + }.merge!(ENV['USE_FRAMEWORKS'] != nil ? { + 'HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)"' +} : {}) + spec.compiler_flags = [ '-fno-omit-frame-pointer', '-fexceptions', From d0dd48b4c9863b674e846c4a4751b3b2cee89ba7 Mon Sep 17 00:00:00 2001 From: Dmitry Rykun Date: Fri, 5 Apr 2024 05:08:25 -0700 Subject: [PATCH 109/223] Print Hermes build script shell commands only in CI (#43767) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43767 Print Hermes build script shell commands only in CI. Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D55635527 fbshipit-source-id: f0a901e11c523987e97a28b5238dcc08586516dd --- .../sdks/hermes-engine/utils/build-apple-framework.sh | 2 -- .../sdks/hermes-engine/utils/build-ios-framework.sh | 5 ++++- .../sdks/hermes-engine/utils/build-mac-framework.sh | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh b/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh index 2dbcdb08fe86db..a4fe7d79024cb4 100755 --- a/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh +++ b/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh @@ -7,8 +7,6 @@ # Defines functions for building various Hermes frameworks. # See build-ios-framework.sh and build-mac-framework.sh for usage examples. -set -x -e - CURR_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" IMPORT_HERMESC_PATH=${HERMES_OVERRIDE_HERMESC_PATH:-$PWD/build_host_hermesc/ImportHermesc.cmake} diff --git a/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh b/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh index 960bcddb5e834f..8f598166036ff3 100755 --- a/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh +++ b/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh @@ -4,7 +4,10 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -set -x -e +if [ "$CI" ]; then + set -x +fi +set -e # Given a specific target, retrieve the right architecture for it # $1 the target you want to build. Allowed values: iphoneos, iphonesimulator, catalyst diff --git a/packages/react-native/sdks/hermes-engine/utils/build-mac-framework.sh b/packages/react-native/sdks/hermes-engine/utils/build-mac-framework.sh index 76d66ffe45b899..5abac8e3604a1d 100755 --- a/packages/react-native/sdks/hermes-engine/utils/build-mac-framework.sh +++ b/packages/react-native/sdks/hermes-engine/utils/build-mac-framework.sh @@ -4,7 +4,10 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -set -x -e +if [ "$CI" ]; then + set -x +fi +set -e # shellcheck source=xplat/js/react-native-github/sdks/hermes-engine/utils/build-apple-framework.sh CURR_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" From 454e576b5bc4fc5aa604afa5839bdf88d0a82ff9 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste LARRIVIERE <76693792+jblarriviere@users.noreply.github.com> Date: Wed, 3 Apr 2024 04:43:11 -0700 Subject: [PATCH 110/223] fix: build settings for custom build configuration (#43780) Summary: This allows build configuration named like `StagingDebug` to match with settings applied to `Debug` This fixes https://github.com/facebook/react-native/issues/43185 Custom build setting were only applied to `Debug` build configurations, preventing configurations named `StagingDebug` or similar to access the new experimental debugger, as reported in https://github.com/facebook/react-native/issues/43185 This now applies the setting to every configuration ending with `Debug` ## Changelog: [IOS] [CHANGED] - fix: build settings for custom build configuration Pull Request resolved: https://github.com/facebook/react-native/pull/43780 Reviewed By: dmytrorykun Differential Revision: D55688996 Pulled By: cipolleschi fbshipit-source-id: 1f34cd722f6acfaa08d3377e19a04d08af97ed7c --- packages/react-native/scripts/cocoapods/utils.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index 3ae80d74bda4ae..b0570f30a3e976 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -189,7 +189,7 @@ def self.add_build_settings_to_pod(installer, settings_name, settings_value, tar installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result| if pod_name.to_s == target_pod_name target_installation_result.native_target.build_configurations.each do |config| - if configuration == nil || (configuration != nil && configuration == config.name) + if configuration == nil || (configuration != nil && config.name.include?(configuration)) config.build_settings[settings_name] ||= '$(inherited) ' config.build_settings[settings_name] << settings_value end From 57ed1bde0181c563012da34dc4a42f32f910a988 Mon Sep 17 00:00:00 2001 From: Vojtech Novak Date: Thu, 4 Apr 2024 12:09:41 -0700 Subject: [PATCH 111/223] fix: add missing fields to native errors in new arch (#43649) Summary: With 0.74.rc-5 one bug which related to errors was fixed (https://github.com/facebook/react-native/issues/41950). However, the fix introduced another one: the shape of Error objects that come from native modules has changed. This PR attempts to fix that, though it's not (yet) doing it in a way that would be 100% compatible with the old arch. The problem was observed on iOS, not sure what the situation is on Android but believe it's okay there. edit: on Android, there are no issues but the `message` field is enumerable, so that part is different from ios (see logs below). Consider this code, where `error` is produced from a promise rejection inside of a native module. ```ts console.log( 'own properties: ', JSON.stringify(Object.getOwnPropertyNames(error), null, 2), ); console.log( 'own enumerable properties: ', JSON.stringify(Object.entries(error), null, 2), ); ``` These are the results for

Old architecture ``` LOG Running "google-one-tap-example" with {"rootTag":1,"initialProps":{}} LOG own properties: [ "stack", "code", "message", "domain", "userInfo", "nativeStackIOS" ] LOG own enumerable properties: [ [ "code", "-5" ], [ "message", "RNGoogleSignIn: The user canceled the sign in request., Error Domain=com.google.GIDSignIn Code=-5 \"The user canceled the sign-in flow.\" UserInfo={NSLocalizedDescription=The user canceled the sign-in flow.}" ], [ "domain", "com.google.GIDSignIn" ], [ "userInfo", { "NSLocalizedDescription": "The user canceled the sign-in flow." } ], [ "nativeStackIOS", [ "0 ReactTestApp 0x0000000102f4a6d8 RCTJSErrorFromCodeMessageAndNSError + 112", "1 ReactTestApp 0x0000000102eeedd0 __41-[RCTModuleMethod processMethodSignature]_block_invoke_2.73 + 152", "2 ReactTestApp 0x0000000102e2ae24 +[RNGoogleSignin rejectWithSigninError:withRejector:] + 548", "3 ReactTestApp 0x0000000102e2aa8c -[RNGoogleSignin handleCompletion:serverAuthCode:withError:withResolver:withRejector:fromCallsite:] + 184", "4 ReactTestApp 0x0000000102e2a8e0 -[RNGoogleSignin handleCompletion:withError:withResolver:withRejector:fromCallsite:] + 236", "5 ReactTestApp 0x0000000102e28628 __40-[RNGoogleSignin signIn:resolve:reject:]_block_invoke_2 + 100", "6 ReactTestApp 0x0000000102dc9d80 __35-[GIDSignIn addCompletionCallback:]_block_invoke_2 + 132", ... ] ] ] ```
RN 74 rc-5 (with bridgeless on) ``` (NOBRIDGE) LOG Bridgeless mode is enabled (NOBRIDGE) LOG Running "google-one-tap-example" with {"rootTag":1,"initialProps":{"concurrentRoot":true},"fabric":true} (NOBRIDGE) LOG own properties: [ "stack", "message", "cause" ] (NOBRIDGE) LOG own enumerable properties: [ [ "cause", { "code": "-5", "message": "RNGoogleSignIn: The user canceled the sign in request., Error Domain=com.google.GIDSignIn Code=-5 \"The user canceled the sign-in flow.\" UserInfo={NSLocalizedDescription=The user canceled the sign-in flow.}", "nativeStackIOS": [ "0 ReactTestApp 0x00000001023a7b38 RCTJSErrorFromCodeMessageAndNSError + 112", "1 ReactTestApp 0x00000001026cf774 ___ZZN8facebook5react15ObjCTurboModule13createPromiseERNS_3jsi7RuntimeENSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEU13block_pointerFvU13block_pointerFvP11objc_objectEU13block_pointerFvP8NSStringSH_P7NSErrorEEENK3$_0clES4_RKNS2_5ValueEPSQ_m_block_invoke.57 + 332", "2 ReactTestApp 0x0000000102270958 +[RNGoogleSignin rejectWithSigninError:withRejector:] + 548", "3 ReactTestApp 0x00000001022705c0 -[RNGoogleSignin handleCompletion:serverAuthCode:withError:withResolver:withRejector:fromCallsite:] + 184", "4 ReactTestApp 0x0000000102270414 -[RNGoogleSignin handleCompletion:withError:withResolver:withRejector:fromCallsite:] + 236", "5 ReactTestApp 0x000000010226e15c __40-[RNGoogleSignin signIn:resolve:reject:]_block_invoke_2 + 100", "6 ReactTestApp 0x000000010220f328 __35-[GIDSignIn addCompletionCallback:]_block_invoke_2 + 132", ... ], "domain": "com.google.GIDSignIn", "userInfo": { "NSLocalizedDescription": "The user canceled the sign-in flow." } } ] ] ```
with the diff from this PR ``` (NOBRIDGE) LOG own properties: [ "stack", "message", "code", "nativeStackIOS", "domain", "userInfo" ] (NOBRIDGE) LOG own enumerable properties: [ [ "code", "-5" ], [ "nativeStackIOS", [ "0 ReactTestApp 0x000000010083b8f8 RCTJSErrorFromCodeMessageAndNSError + 112", "1 ReactTestApp 0x0000000100b63534 ___ZZN8facebook5react15ObjCTurboModule13createPromiseERNS_3jsi7RuntimeENSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEU13block_pointerFvU13block_pointerFvP11objc_objectEU13block_pointerFvP8NSStringSH_P7NSErrorEEENK3$_0clES4_RKNS2_5ValueEPSQ_m_block_invoke.57 + 332", "2 ReactTestApp 0x0000000100704718 +[RNGoogleSignin rejectWithSigninError:withRejector:] + 548", "3 ReactTestApp 0x0000000100704380 -[RNGoogleSignin handleCompletion:serverAuthCode:withError:withResolver:withRejector:fromCallsite:] + 184", "4 ReactTestApp 0x00000001007041d4 -[RNGoogleSignin handleCompletion:withError:withResolver:withRejector:fromCallsite:] + 236", "5 ReactTestApp 0x0000000100701f1c __40-[RNGoogleSignin signIn:resolve:reject:]_block_invoke_2 + 100", "6 ReactTestApp 0x00000001006a30e8 __35-[GIDSignIn addCompletionCallback:]_block_invoke_2 + 132", ... ] ], [ "domain", "com.google.GIDSignIn" ], [ "userInfo", { "NSLocalizedDescription": "The user canceled the sign-in flow." } ] ] ```
You see there is a change compared to old arch because `message` is no longer own enumerable property. If that needs to change (I guess it should), it'd be nice if someone more familiar with JSI pointed me in the right direction. Even with this inconsistency, the PR is an improvement and would be nice to have this fix included in the next RC. This is output from Chrome's console for completeness, just to have something to compare to: ``` let err = new Error('hello') undefined Object.getOwnPropertyNames(err) > ['stack', 'message'] Object.entries(err) > [] ``` bypass-github-export-checks ## Changelog: [ANDROID] [FIXED] - Fixed possible deadlock in dispatchViewUpdates Pull Request resolved: https://github.com/facebook/react-native/pull/43643 Test Plan: The original memory leak remains fixed, and can be verified in https://github.com/feiyin0719/RNMemoryLeakAndroid. To verify the deadlock is gone, every app using https://github.com/th3rdwave/react-native-safe-area-context will work smoothly and not log any excessive `Timed out waiting for layout` (https://github.com/17Amir17/SafeAreaContext) Reviewed By: arushikesarwani94 Differential Revision: D55339059 Pulled By: zeyap fbshipit-source-id: c067997364fbec734510ce99b9994e89d044384a --- packages/react-native/ReactAndroid/api/ReactAndroid.api | 1 + .../com/facebook/react/uimanager/UIImplementation.java | 8 +------- .../com/facebook/react/uimanager/UIManagerModule.java | 7 ++++++- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 4352458aa0ec14..04b156b38a5442 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -4897,6 +4897,7 @@ public class com/facebook/react/uimanager/UIImplementation { public fun dispatchViewUpdates (I)V public fun findSubviewIn (IFFLcom/facebook/react/bridge/Callback;)V public fun getProfiledBatchPerfCounters ()Ljava/util/Map; + public fun getRootViewNum ()I protected fun handleCreateView (Lcom/facebook/react/uimanager/ReactShadowNode;ILcom/facebook/react/uimanager/ReactStylesDiffMap;)V protected fun handleUpdateView (Lcom/facebook/react/uimanager/ReactShadowNode;Ljava/lang/String;Lcom/facebook/react/uimanager/ReactStylesDiffMap;)V public fun manageChildren (ILcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/ReadableArray;)V diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java index 0dbe9352b779e8..6b3ac1afd410de 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java @@ -177,7 +177,7 @@ public void removeRootView(int rootViewTag) { * * @return The num of root view */ - private int getRootViewNum() { + public int getRootViewNum() { return mOperationsQueue.getNativeViewHierarchyManager().getRootViewNum(); } @@ -589,12 +589,6 @@ public void measureLayoutRelativeToParent( /** Invoked at the end of the transaction to commit any updates to the node hierarchy. */ public void dispatchViewUpdates(int batchId) { - if (getRootViewNum() <= 0) { - // If there are no RootViews registered, there will be no View updates to dispatch. - // This is a hack to prevent this from being called when Fabric is used everywhere. - // This should no longer be necessary in Bridgeless Mode. - return; - } SystraceMessage.beginSection( Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "UIImplementation.dispatchViewUpdates") .arg("batchId", batchId) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java index 15a1b42542989d..dca4fcf5b13098 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java @@ -707,7 +707,12 @@ public void onBatchComplete() { listener.willDispatchViewUpdates(this); } try { - mUIImplementation.dispatchViewUpdates(batchId); + // If there are no RootViews registered, there will be no View updates to dispatch. + // This is a hack to prevent this from being called when Fabric is used everywhere. + // This should no longer be necessary in Bridgeless Mode. + if (mUIImplementation.getRootViewNum() > 0) { + mUIImplementation.dispatchViewUpdates(batchId); + } } finally { Systrace.endSection(Systrace.TRACE_TAG_REACT_JAVA_BRIDGE); } From c2317bf9a5c7e8e677383638361e4b88e8df28dd Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Mon, 8 Apr 2024 11:16:38 -0700 Subject: [PATCH 118/223] Fix double metro banner in Bridgeless (#43967) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43967 Following up https://github.com/facebook/react-native/issues/43943, the metro loading banner is presented twice in Bridgeless mode. This happens because both the RCTInstance and the RCTHost are listening to the Reload Command and issuing the instructions to refetch the JSBundle and to present the banner. The RCTInstance should not concern itself with lifecycle events, owned by the RCTHost. ## Changelog: [iOS][Fixed] - Avoid to show Metro Loading banner twice. Reviewed By: cortinico Differential Revision: D55870640 fbshipit-source-id: addb67d3226f7d7db20736309172a42fc15f3aa3 --- .../runtime/platform/ios/ReactCommon/RCTInstance.mm | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm index 918bd4859e586a..6edf015e41be7a 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm @@ -31,7 +31,6 @@ #import #import #import -#import #import #import #import @@ -133,11 +132,6 @@ - (instancetype)initWithDelegate:(id)delegate name:@"RCTNotifyEventDispatcherObserversOfEvent_DEPRECATED" object:nil]; - [defaultCenter addObserver:self - selector:@selector(didReceiveReloadCommand) - name:RCTTriggerReloadCommandNotification - object:nil]; - [self _start]; } return self; @@ -519,9 +513,4 @@ - (void)_handleJSErrorMap:(facebook::react::MapBuffer)errorMap isFatal:errorMap.getBool(JSErrorHandlerKey::kIsFatal)]; } -- (void)didReceiveReloadCommand -{ - [self _loadJSBundle:[_bridgeModuleDecorator.bundleManager bundleURL]]; -} - @end From 4eb053451311ec34759bd356229b2d8cfc6a4742 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Tue, 9 Apr 2024 07:57:54 -0700 Subject: [PATCH 119/223] Fix Orientation listener in bridgeless mode (#43971) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43971 It turns out that we forgot to add a listener for the orientation change event in Bridgeless. We used to have `UIApplicationDidChangeStatusBarOrientationNotification` but this is slightly unreliable because there might be use cases where the status bar has been hidden and, therefore, the event is not triggered. This should fix an issue reported by OSS. ## Changelog: [iOS][Fixed] - Make sure that the New Architecture listens to orientation change events. Reviewed By: cortinico Differential Revision: D55871599 fbshipit-source-id: c9b0634ec2126aa7a6488c2c56c87a9610fa1adf --- .../React/CoreModules/RCTDeviceInfo.mm | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/react-native/React/CoreModules/RCTDeviceInfo.mm b/packages/react-native/React/CoreModules/RCTDeviceInfo.mm index f4c664014609c4..573c0c320a0c6e 100644 --- a/packages/react-native/React/CoreModules/RCTDeviceInfo.mm +++ b/packages/react-native/React/CoreModules/RCTDeviceInfo.mm @@ -54,11 +54,6 @@ - (void)initialize _currentInterfaceOrientation = [RCTSharedApplication() statusBarOrientation]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(interfaceOrientationDidChange) - name:UIApplicationDidChangeStatusBarOrientationNotification - object:nil]; - _currentInterfaceDimensions = [self _exportedDimensions]; [[NSNotificationCenter defaultCenter] addObserver:self @@ -75,6 +70,10 @@ - (void)initialize selector:@selector(interfaceFrameDidChange) name:RCTWindowFrameDidChangeNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(interfaceFrameDidChange) + name:UIDeviceOrientationDidChangeNotification + object:nil]; // TODO T175901725 - Registering the RCTDeviceInfo module to the notification is a short-term fix to unblock 0.73 // The actual behavior should be that the module is properly registered in the TurboModule/Bridge infrastructure @@ -102,10 +101,6 @@ - (void)_cleanupObservers name:RCTAccessibilityManagerDidUpdateMultiplierNotification object:[_moduleRegistry moduleForName:"AccessibilityManager"]]; - [[NSNotificationCenter defaultCenter] removeObserver:self - name:UIApplicationDidChangeStatusBarOrientationNotification - object:nil]; - [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil]; [[NSNotificationCenter defaultCenter] removeObserver:self name:RCTUserInterfaceStyleDidChangeNotification object:nil]; @@ -113,6 +108,8 @@ - (void)_cleanupObservers [[NSNotificationCenter defaultCenter] removeObserver:self name:RCTWindowFrameDidChangeNotification object:nil]; [[NSNotificationCenter defaultCenter] removeObserver:self name:RCTBridgeWillInvalidateModulesNotification object:nil]; + + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil]; } static BOOL RCTIsIPhoneNotched() From 03d526f4d55c6bdb93306d1e270d04171ceabd32 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Tue, 9 Apr 2024 10:10:04 -0700 Subject: [PATCH 120/223] Fix bridge mode by constructing ReactDelegate correctly. (#43999) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43999 Currently NewArch-BridgeMode is partially broken when creating views via `ReactDelegate`. That's because we're using the ctor that doesn't account for `Boolean: fabricEnabled`. That means that the `RootView` that it will be created are all having setIsFabric(FALSE). This is causing problems like whitescreens on several reload + multiple warnings such as: ``` E com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance. ``` Fixes #43692 See for more context on this issues: https://github.com/facebook/react-native/issues/43692 Changelog: [Android] [Fixed] - Fix bridge mode by constructing ReactDelegate correctly Reviewed By: cipolleschi Differential Revision: D55921078 fbshipit-source-id: 2c21d089a49538402d546177bcdb26c8d7d5fbc1 --- .../java/com/facebook/react/ReactActivityDelegate.java | 6 +++++- .../src/main/java/com/facebook/react/ReactDelegate.java | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index 2f1a0c8c55d1f2..a64876ff900ffd 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -109,7 +109,11 @@ protected void onCreate(Bundle savedInstanceState) { } else { mReactDelegate = new ReactDelegate( - getPlainActivity(), getReactNativeHost(), mainComponentName, launchOptions) { + getPlainActivity(), + getReactNativeHost(), + mainComponentName, + launchOptions, + isFabricEnabled()) { @Override protected ReactRootView createRootView() { return ReactActivityDelegate.this.createRootView(launchOptions); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index a87a323a5c2abd..3afe3d96af23e8 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -45,6 +45,15 @@ public class ReactDelegate { private boolean mFabricEnabled = false; + /** + * Do not use this constructor as it's not accounting for New Architecture at all. You should + * either use {@link ReactDelegate#ReactDelegate(Activity, ReactHost, String, Bundle)} if you're + * on bridgeless mode or {@link ReactDelegate#ReactDelegate(Activity, ReactNativeHost, String, + * Bundle, boolean)} and use the last parameter to toggle paper/fabric. + * + * @deprecated Use one of the other constructors instead to account for New Architecture. + */ + @Deprecated public ReactDelegate( Activity activity, ReactNativeHost reactNativeHost, From 2d84d835342d58bd28b2233f18691846de6933c9 Mon Sep 17 00:00:00 2001 From: Phillip Pan Date: Tue, 2 Apr 2024 21:38:52 -0700 Subject: [PATCH 121/223] add privacy manifest to hello world template Summary: Changelog: [iOS][Added] this change will be included in the RN CLI. so all new apps running the RN CLI to get created will get this manifest. the reasons have been added for the following APIs: NSPrivacyAccessedAPICategoryFileTimestamp - C617.1: We use fstat and stat in a few places in the C++ layer. We use these to read information about the JavaScript files in RN. NSPrivacyAccessedAPICategoryUserDefaults - CA92.1: We access NSUserDefaults in a few places. 1) To store RTL preferences 2) As part of caching server URLs for developer mode 3) A generic native module that wraps NSUserDefaults NSPrivacyAccessedAPICategorySystemBootTime - 35F9.1: Best guess reason from RR API pulled in by boost Reviewed By: cipolleschi Differential Revision: D53682756 fbshipit-source-id: 0426fe0002a3bc8b45ef24053ac4228c9f61eb85 --- .../ios/HelloWorld.xcodeproj/project.pbxproj | 2 + .../ios/HelloWorld/PrivacyInfo.xcprivacy | 38 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 packages/react-native/template/ios/HelloWorld/PrivacyInfo.xcprivacy diff --git a/packages/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj b/packages/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj index d059f8e4f5fb7c..40b32ffd09ec6c 100644 --- a/packages/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj +++ b/packages/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj @@ -36,6 +36,7 @@ 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = HelloWorld/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = HelloWorld/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = HelloWorld/main.m; sourceTree = ""; }; + 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = HelloWorld/PrivacyInfo.xcprivacy; sourceTree = ""; }; 19F6CBCC0A4E27FBF8BF4A61 /* libPods-HelloWorld-HelloWorldTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HelloWorld-HelloWorldTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 3B4392A12AC88292D35C810B /* Pods-HelloWorld.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld.debug.xcconfig"; path = "Target Support Files/Pods-HelloWorld/Pods-HelloWorld.debug.xcconfig"; sourceTree = ""; }; 5709B34CF0A7D63546082F79 /* Pods-HelloWorld.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld.release.xcconfig"; path = "Target Support Files/Pods-HelloWorld/Pods-HelloWorld.release.xcconfig"; sourceTree = ""; }; @@ -92,6 +93,7 @@ 13B07FB61A68108700A75B9A /* Info.plist */, 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 13B07FB71A68108700A75B9A /* main.m */, + 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */, ); name = HelloWorld; sourceTree = ""; diff --git a/packages/react-native/template/ios/HelloWorld/PrivacyInfo.xcprivacy b/packages/react-native/template/ios/HelloWorld/PrivacyInfo.xcprivacy new file mode 100644 index 00000000000000..ef1896e70c88da --- /dev/null +++ b/packages/react-native/template/ios/HelloWorld/PrivacyInfo.xcprivacy @@ -0,0 +1,38 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyTracking + + + From cb2d93ea50e62024d5238cccfc7242f7fd75d3b2 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Wed, 10 Apr 2024 11:01:24 +0100 Subject: [PATCH 122/223] [RN][iOS] Cherry Pick #43757 and #43994 (#44007) * Support launchOptions in bridgeless mode (#43757) Summary: Support launchOptions in bridgeless mode bypass-github-export-checks [IOS] [FIXED] - Support launchOptions in bridgeless mode Pull Request resolved: https://github.com/facebook/react-native/pull/43757 Test Plan: ``` useEffect(() => { const processInitialURL = async () => { const url = await Linking.getInitialURL(); if (url !== null) { console.log(`Initial url is: ${url}`); } }; processInitialURL(); }, []); ``` Reviewed By: javache Differential Revision: D55790758 Pulled By: cipolleschi fbshipit-source-id: 0f6aa6bdcebfc5bc42d632bea9193f122c1eb84f * Fix Connect to Metro after Reload in Bridgeless mode (#43994) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43994 We received [this issue](https://github.com/facebook/react-native/issues/43764) from OSS where an app can't connect to Metro on reloads in the following scenario: * Start the App when metro does not run. * Observe the error screen * Start Metro * Press Reload * Observe the error message again While the desired behavior should be to connect to Metro now that this is running. The root cause of the problem is that the RCTHost is initialized with a value of the `bundleURL` that is `nil`. Upon reload, the RCTHost is **not** recreated: the instance is restarted, but with the previous `bundleURL`, which is still `nil`. The solution is to initialize the `RCTHost` with a closure that re-evaluate the `bundleURL` whenever it is invoked and to evaluate it only on `start`, to keep the initialization path light. This way, when the app is started with Metro not running, the `bundleURL` is `nil`. But when it is reloaded with Metro starting, the `bundleURL` is properly initialized. Note that the changes in this diff are not breaking as I reimplemented (and deprecated) the old initializer so that they should work in the same way. [iOS][Fixed] - Let RCTHost be initialized with a function to provide the `bundleURL` so that it can connect to metro on Reload when the url changes. Reviewed By: dmytrorykun Differential Revision: D55916135 fbshipit-source-id: 6927b2154870245f28f42d26bd0209b28c9518f2 * Fix badly resolved merge conflicts --------- Co-authored-by: zhongwuzw --- .../Libraries/AppDelegate/RCTAppDelegate.mm | 15 +- .../AppDelegate/RCTRootViewFactory.h | 14 +- .../AppDelegate/RCTRootViewFactory.mm | 35 +++- .../react-native/React/Base/RCTBridgeProxy.h | 7 +- .../react-native/React/Base/RCTBridgeProxy.mm | 6 +- .../ios/ReactCommon/RCTTurboModuleManager.mm | 2 +- .../react/runtime/iostests/RCTHostTests.mm | 3 +- .../ios/ReactCommon/RCTHost+Internal.h | 2 - .../platform/ios/ReactCommon/RCTHost.h | 11 +- .../platform/ios/ReactCommon/RCTHost.mm | 41 +++- .../platform/ios/ReactCommon/RCTInstance.h | 3 +- .../platform/ios/ReactCommon/RCTInstance.mm | 6 +- .../test_utils/ios/Shims/ShimRCTInstance.h | 2 +- .../test_utils/ios/Shims/ShimRCTInstance.mm | 5 +- packages/rn-tester/Podfile.lock | 10 +- .../RNTesterPods.xcodeproj/project.pbxproj | 178 +++++++++--------- 16 files changed, 207 insertions(+), 133 deletions(-) diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm index cee2c9017bb3b9..6d159ef598a286 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm @@ -233,13 +233,18 @@ - (Class)getModuleClassFromName:(const char *)name - (RCTRootViewFactory *)createRCTRootViewFactory { + __weak __typeof(self) weakSelf = self; + RCTBundleURLBlock bundleUrlBlock = ^{ + RCTAppDelegate *strongSelf = weakSelf; + return strongSelf.bundleURL; + }; + RCTRootViewFactoryConfiguration *configuration = - [[RCTRootViewFactoryConfiguration alloc] initWithBundleURL:self.bundleURL - newArchEnabled:self.fabricEnabled - turboModuleEnabled:self.turboModuleEnabled - bridgelessEnabled:self.bridgelessEnabled]; + [[RCTRootViewFactoryConfiguration alloc] initWithBundleURLBlock:bundleUrlBlock + newArchEnabled:self.fabricEnabled + turboModuleEnabled:self.turboModuleEnabled + bridgelessEnabled:self.bridgelessEnabled]; - __weak __typeof(self) weakSelf = self; configuration.createRootViewWithBridge = ^UIView *(RCTBridge *bridge, NSString *moduleName, NSDictionary *initProps) { return [weakSelf createRootViewWithBridge:bridge moduleName:moduleName initProps:initProps]; diff --git a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h index a6649c283878de..502203fcdf9c1a 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h +++ b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h @@ -23,6 +23,11 @@ typedef UIView *_Nonnull ( ^RCTCreateRootViewWithBridgeBlock)(RCTBridge *bridge, NSString *moduleName, NSDictionary *initProps); typedef RCTBridge *_Nonnull ( ^RCTCreateBridgeWithDelegateBlock)(id delegate, NSDictionary *launchOptions); +typedef NSURL *_Nullable (^RCTSourceURLForBridgeBlock)(RCTBridge *bridge); +typedef NSURL *_Nullable (^RCTBundleURLBlock)(void); +typedef NSArray> *_Nonnull (^RCTExtraModulesForBridgeBlock)(RCTBridge *bridge); +typedef NSDictionary *_Nonnull (^RCTExtraLazyModuleClassesForBridge)(RCTBridge *bridge); +typedef BOOL (^RCTBridgeDidNotFindModuleBlock)(RCTBridge *bridge, NSString *moduleName); #pragma mark - RCTRootViewFactory Configuration @interface RCTRootViewFactoryConfiguration : NSObject @@ -37,7 +42,7 @@ typedef RCTBridge *_Nonnull ( @property (nonatomic, assign, readonly) BOOL turboModuleEnabled; /// Return the bundle URL for the main bundle. -@property (nonatomic) NSURL *bundleURL; +@property (nonatomic, nonnull) RCTBundleURLBlock bundleURLBlock; /** * Use this method to initialize a new instance of `RCTRootViewFactoryConfiguration` by passing a `bundleURL` @@ -48,10 +53,15 @@ typedef RCTBridge *_Nonnull ( * pointing to a path inside the app resources, e.g. `file://.../main.jsbundle`. * */ +- (instancetype)initWithBundleURLBlock:(RCTBundleURLBlock)bundleURLBlock + newArchEnabled:(BOOL)newArchEnabled + turboModuleEnabled:(BOOL)turboModuleEnabled + bridgelessEnabled:(BOOL)bridgelessEnabled NS_DESIGNATED_INITIALIZER; + - (instancetype)initWithBundleURL:(NSURL *)bundleURL newArchEnabled:(BOOL)newArchEnabled turboModuleEnabled:(BOOL)turboModuleEnabled - bridgelessEnabled:(BOOL)bridgelessEnabled; + bridgelessEnabled:(BOOL)bridgelessEnabled __deprecated; /** * Block that allows to override logic of creating root view instance. diff --git a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm index e8ebdefba1dc7e..901b1c9996bd7b 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm @@ -57,9 +57,23 @@ - (instancetype)initWithBundleURL:(NSURL *)bundleURL newArchEnabled:(BOOL)newArchEnabled turboModuleEnabled:(BOOL)turboModuleEnabled bridgelessEnabled:(BOOL)bridgelessEnabled +{ + return [self + initWithBundleURLBlock:^{ + return bundleURL; + } + newArchEnabled:newArchEnabled + turboModuleEnabled:turboModuleEnabled + bridgelessEnabled:bridgelessEnabled]; +} + +- (instancetype)initWithBundleURLBlock:(RCTBundleURLBlock)bundleURLBlock + newArchEnabled:(BOOL)newArchEnabled + turboModuleEnabled:(BOOL)turboModuleEnabled + bridgelessEnabled:(BOOL)bridgelessEnabled { if (self = [super init]) { - _bundleURL = bundleURL; + _bundleURLBlock = bundleURLBlock; _fabricEnabled = newArchEnabled; _turboModuleEnabled = turboModuleEnabled; _bridgelessEnabled = bridgelessEnabled; @@ -123,7 +137,7 @@ - (UIView *)viewWithModuleName:(NSString *)moduleName RCTEnableTurboModuleInterop(YES); RCTEnableTurboModuleInteropBridgeProxy(YES); - [self createReactHostIfNeeded]; + [self createReactHostIfNeeded:launchOptions]; RCTFabricSurface *surface = [_reactHost createSurfaceWithModuleName:moduleName initialProperties:initProps]; @@ -206,19 +220,20 @@ - (void)createBridgeAdapterIfNeeded #pragma mark - New Arch Utilities -- (void)createReactHostIfNeeded +- (void)createReactHostIfNeeded:(NSDictionary *)launchOptions { if (_reactHost) { return; } __weak __typeof(self) weakSelf = self; - _reactHost = [[RCTHost alloc] initWithBundleURL:[self bundleURL] - hostDelegate:nil - turboModuleManagerDelegate:_turboModuleManagerDelegate - jsEngineProvider:^std::shared_ptr() { - return [weakSelf createJSRuntimeFactory]; - }]; + _reactHost = [[RCTHost alloc] initWithBundleURLProvider:self->_configuration.bundleURLBlock + hostDelegate:nil + turboModuleManagerDelegate:_turboModuleManagerDelegate + jsEngineProvider:^std::shared_ptr() { + return [weakSelf createJSRuntimeFactory]; + } + launchOptions:launchOptions]; [_reactHost setBundleURLProvider:^NSURL *() { return [weakSelf bundleURL]; }]; @@ -247,7 +262,7 @@ - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge - (NSURL *)bundleURL { - return self->_configuration.bundleURL; + return self->_configuration.bundleURLBlock(); } @end diff --git a/packages/react-native/React/Base/RCTBridgeProxy.h b/packages/react-native/React/Base/RCTBridgeProxy.h index 3a6de36473ee5b..71bb9cf0831640 100644 --- a/packages/react-native/React/Base/RCTBridgeProxy.h +++ b/packages/react-native/React/Base/RCTBridgeProxy.h @@ -9,6 +9,8 @@ #import "RCTBridgeModule.h" +NS_ASSUME_NONNULL_BEGIN + @class RCTBundleManager; @class RCTCallableJSModules; @class RCTModuleRegistry; @@ -22,7 +24,8 @@ callableJSModules:(RCTCallableJSModules *)callableJSModules dispatchToJSThread:(void (^)(dispatch_block_t))dispatchToJSThread registerSegmentWithId:(void (^)(NSNumber *, NSString *))registerSegmentWithId - runtime:(void *)runtime NS_DESIGNATED_INITIALIZER; + runtime:(void *)runtime + launchOptions:(nullable NSDictionary *)launchOptions NS_DESIGNATED_INITIALIZER; - (NSMethodSignature *)methodSignatureForSelector:(SEL)sel; - (void)forwardInvocation:(NSInvocation *)invocation; @@ -37,3 +40,5 @@ - (id)moduleForName:(NSString *)moduleName lazilyLoadIfNecessary:(BOOL)lazilyLoad; @end + +NS_ASSUME_NONNULL_END diff --git a/packages/react-native/React/Base/RCTBridgeProxy.mm b/packages/react-native/React/Base/RCTBridgeProxy.mm index 27637daf654c1c..5b3e0656929ee3 100644 --- a/packages/react-native/React/Base/RCTBridgeProxy.mm +++ b/packages/react-native/React/Base/RCTBridgeProxy.mm @@ -35,6 +35,7 @@ @implementation RCTBridgeProxy { RCTModuleRegistry *_moduleRegistry; RCTBundleManager *_bundleManager; RCTCallableJSModules *_callableJSModules; + NSDictionary *_launchOptions; void (^_dispatchToJSThread)(dispatch_block_t); void (^_registerSegmentWithId)(NSNumber *, NSString *); void *_runtime; @@ -47,6 +48,7 @@ - (instancetype)initWithViewRegistry:(RCTViewRegistry *)viewRegistry dispatchToJSThread:(void (^)(dispatch_block_t))dispatchToJSThread registerSegmentWithId:(void (^)(NSNumber *, NSString *))registerSegmentWithId runtime:(void *)runtime + launchOptions:(nullable NSDictionary *)launchOptions { self = [super self]; if (self) { @@ -57,6 +59,7 @@ - (instancetype)initWithViewRegistry:(RCTViewRegistry *)viewRegistry _dispatchToJSThread = dispatchToJSThread; _registerSegmentWithId = registerSegmentWithId; _runtime = runtime; + _launchOptions = [launchOptions copy]; } return self; } @@ -191,8 +194,7 @@ - (void)registerSegmentWithId:(NSUInteger)segmentId path:(NSString *)path - (NSDictionary *)launchOptions { - [self logError:@"This method is not supported. Returning nil." cmd:_cmd]; - return nil; + return _launchOptions; } - (BOOL)loading diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm index d93d606fce4117..9a34ab1ab7d357 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +++ b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm @@ -674,7 +674,7 @@ - (BOOL)_shouldCreateObjCModule:(Class)moduleClass */ if (_bridge) { [(id)module setValue:_bridge forKey:@"bridge"]; - } else if (_bridgeProxy && [self _isLegacyModuleClass:[module class]]) { + } else if (_bridgeProxy) { [(id)module setValue:_bridgeProxy forKey:@"bridge"]; } } @catch (NSException *exception) { diff --git a/packages/react-native/ReactCommon/react/runtime/iostests/RCTHostTests.mm b/packages/react-native/ReactCommon/react/runtime/iostests/RCTHostTests.mm index de2e016b95afc4..cadf6d61cdca8e 100644 --- a/packages/react-native/ReactCommon/react/runtime/iostests/RCTHostTests.mm +++ b/packages/react-native/ReactCommon/react/runtime/iostests/RCTHostTests.mm @@ -58,7 +58,8 @@ - (void)setUp turboModuleManagerDelegate:OCMProtocolMock(@protocol(RCTTurboModuleManagerDelegate)) jsEngineProvider:^std::shared_ptr() { return std::make_shared(); - }]; + } + launchOptions:nil]; } - (void)tearDown diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost+Internal.h b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost+Internal.h index 4432aa0cce498d..e1708784a45340 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost+Internal.h +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost+Internal.h @@ -9,8 +9,6 @@ #import "RCTContextContainerHandling.h" -typedef NSURL * (^RCTHostBundleURLProvider)(void); - @interface RCTHost (Internal) - (void)registerSegmentWithId:(NSNumber *)segmentId path:(NSString *)path; diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h index ea4492980f976f..87f6de0b7fa045 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h @@ -21,6 +21,8 @@ NS_ASSUME_NONNULL_BEGIN @protocol RCTTurboModuleManagerDelegate; +typedef NSURL *_Nullable (^RCTHostBundleURLProvider)(void); + // Runtime API @protocol RCTHostDelegate @@ -45,10 +47,17 @@ typedef std::shared_ptr (^RCTHostJSEngineProv @interface RCTHost : NSObject +- (instancetype)initWithBundleURLProvider:(RCTHostBundleURLProvider)provider + hostDelegate:(id)hostDelegate + turboModuleManagerDelegate:(id)turboModuleManagerDelegate + jsEngineProvider:(RCTHostJSEngineProvider)jsEngineProvider + launchOptions:(nullable NSDictionary *)launchOptions NS_DESIGNATED_INITIALIZER; + - (instancetype)initWithBundleURL:(NSURL *)bundleURL hostDelegate:(id)hostDelegate turboModuleManagerDelegate:(id)turboModuleManagerDelegate - jsEngineProvider:(RCTHostJSEngineProvider)jsEngineProvider NS_DESIGNATED_INITIALIZER; + jsEngineProvider:(RCTHostJSEngineProvider)jsEngineProvider + launchOptions:(nullable NSDictionary *)launchOptions __deprecated; @property (nonatomic, weak, nullable) id runtimeDelegate; diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm index ff0bb9703d386c..cddebbe109fba7 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm @@ -58,6 +58,8 @@ @implementation RCTHost { RCTHostBundleURLProvider _bundleURLProvider; RCTHostJSEngineProvider _jsEngineProvider; + NSDictionary *_launchOptions; + // All the surfaces that need to be started after main bundle execution NSMutableArray *_surfaceStartBuffer; std::mutex _surfaceStartBufferMutex; @@ -77,14 +79,31 @@ + (void)initialize _RCTInitializeJSThreadConstantInternal(); } -/** - Host initialization should not be resource intensive. A host may be created before any intention of using React Native - has been expressed. - */ - (instancetype)initWithBundleURL:(NSURL *)bundleURL hostDelegate:(id)hostDelegate turboModuleManagerDelegate:(id)turboModuleManagerDelegate jsEngineProvider:(RCTHostJSEngineProvider)jsEngineProvider + launchOptions:(nullable NSDictionary *)launchOptions +{ + return [self + initWithBundleURLProvider:^{ + return bundleURL; + } + hostDelegate:hostDelegate + turboModuleManagerDelegate:turboModuleManagerDelegate + jsEngineProvider:jsEngineProvider + launchOptions:launchOptions]; +} + +/** + Host initialization should not be resource intensive. A host may be created before any intention of using React Native + has been expressed. + */ +- (instancetype)initWithBundleURLProvider:(RCTHostBundleURLProvider)provider + hostDelegate:(id)hostDelegate + turboModuleManagerDelegate:(id)turboModuleManagerDelegate + jsEngineProvider:(RCTHostJSEngineProvider)jsEngineProvider + launchOptions:(nullable NSDictionary *)launchOptions { if (self = [super init]) { _hostDelegate = hostDelegate; @@ -93,9 +112,9 @@ - (instancetype)initWithBundleURL:(NSURL *)bundleURL _bundleManager = [RCTBundleManager new]; _moduleRegistry = [RCTModuleRegistry new]; _jsEngineProvider = [jsEngineProvider copy]; + _launchOptions = [launchOptions copy]; __weak RCTHost *weakSelf = self; - auto bundleURLGetter = ^NSURL *() { RCTHost *strongSelf = weakSelf; @@ -107,7 +126,7 @@ - (instancetype)initWithBundleURL:(NSURL *)bundleURL }; auto bundleURLSetter = ^(NSURL *bundleURL_) { - [weakSelf _setBundleURL:bundleURL]; + [weakSelf _setBundleURL:bundleURL_]; }; auto defaultBundleURLGetter = ^NSURL *() @@ -120,7 +139,6 @@ - (instancetype)initWithBundleURL:(NSURL *)bundleURL return strongSelf->_bundleURLProvider(); }; - [self _setBundleURL:bundleURL]; [_bundleManager setBridgelessBundleURLGetter:bundleURLGetter andSetter:bundleURLSetter andDefaultGetter:defaultBundleURLGetter]; @@ -166,6 +184,9 @@ - (instancetype)initWithBundleURL:(NSURL *)bundleURL - (void)start { + if (_bundleURLProvider) { + [self _setBundleURL:_bundleURLProvider()]; + } auto &inspectorFlags = jsinspector_modern::InspectorFlags::getInstance(); if (inspectorFlags.getEnableModernCDPRegistry() && !_inspectorPageId.has_value()) { _inspectorTarget = @@ -204,7 +225,8 @@ - (void)start turboModuleManagerDelegate:_turboModuleManagerDelegate onInitialBundleLoad:_onInitialBundleLoad moduleRegistry:_moduleRegistry - parentInspectorTarget:_inspectorTarget.get()]; + parentInspectorTarget:_inspectorTarget.get() + launchOptions:_launchOptions]; [_hostDelegate hostDidStart:self]; } @@ -284,7 +306,8 @@ - (void)didReceiveReloadCommand turboModuleManagerDelegate:_turboModuleManagerDelegate onInitialBundleLoad:_onInitialBundleLoad moduleRegistry:_moduleRegistry - parentInspectorTarget:_inspectorTarget.get()]; + parentInspectorTarget:_inspectorTarget.get() + launchOptions:_launchOptions]; [_hostDelegate hostDidStart:self]; for (RCTFabricSurface *surface in [self _getAttachedSurfaces]) { diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h index a24cc08a496e0e..6eaba0a1a8b782 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h @@ -62,7 +62,8 @@ typedef void (^_Null_unspecified RCTInstanceInitialBundleLoadCompletionBlock)(); turboModuleManagerDelegate:(id)turboModuleManagerDelegate onInitialBundleLoad:(RCTInstanceInitialBundleLoadCompletionBlock)onInitialBundleLoad moduleRegistry:(RCTModuleRegistry *)moduleRegistry - parentInspectorTarget:(facebook::react::jsinspector_modern::PageTarget *)parentInspectorTarget; + parentInspectorTarget:(facebook::react::jsinspector_modern::PageTarget *)parentInspectorTarget + launchOptions:(nullable NSDictionary *)launchOptions; - (void)callFunctionOnJSModule:(NSString *)moduleName method:(NSString *)method args:(NSArray *)args; diff --git a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm index 6edf015e41be7a..029525a10c033a 100644 --- a/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +++ b/packages/react-native/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm @@ -83,6 +83,7 @@ @implementation RCTInstance { std::mutex _invalidationMutex; std::atomic _valid; RCTJSThreadManager *_jsThreadManager; + NSDictionary *_launchOptions; // APIs supporting interop with native modules and view managers RCTBridgeModuleDecorator *_bridgeModuleDecorator; @@ -99,6 +100,7 @@ - (instancetype)initWithDelegate:(id)delegate onInitialBundleLoad:(RCTInstanceInitialBundleLoadCompletionBlock)onInitialBundleLoad moduleRegistry:(RCTModuleRegistry *)moduleRegistry parentInspectorTarget:(jsinspector_modern::PageTarget *)parentInspectorTarget + launchOptions:(nullable NSDictionary *)launchOptions { if (self = [super init]) { _performanceLogger = [RCTPerformanceLogger new]; @@ -124,6 +126,7 @@ - (instancetype)initWithDelegate:(id)delegate [weakSelf callFunctionOnJSModule:moduleName method:methodName args:args]; }]; } + _launchOptions = launchOptions; NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; @@ -270,7 +273,8 @@ - (void)_start [strongSelf registerSegmentWithId:segmentId path:path]; } } - runtime:_reactInstance->getJavaScriptContext()]; + runtime:_reactInstance->getJavaScriptContext() + launchOptions:_launchOptions]; bridgeProxy.jsCallInvoker = jsCallInvoker; [RCTBridge setCurrentBridge:(RCTBridge *)bridgeProxy]; diff --git a/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.h b/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.h index e11e88c560a72a..654cf17657c9be 100644 --- a/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.h +++ b/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.h @@ -11,7 +11,7 @@ @property int initCount; @property int invalidateCount; - +@property NSDictionary *launchOptions; @property NSString *jsModuleName; @property NSString *method; @property NSArray *args; diff --git a/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm b/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm index a6be15a7f03011..cfe0aac191ce8f 100644 --- a/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm +++ b/packages/react-native/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm @@ -24,7 +24,7 @@ - (instancetype)init [ShimRCTInstance class], @selector(initWithDelegate: jsRuntimeFactory:bundleManager:turboModuleManagerDelegate:onInitialBundleLoad:moduleRegistry - :parentInspectorTarget:)); + :parentInspectorTarget:launchOptions:)); RCTSwizzleInstanceSelector([RCTInstance class], [ShimRCTInstance class], @selector(invalidate)); RCTSwizzleInstanceSelector( [RCTInstance class], [ShimRCTInstance class], @selector(callFunctionOnJSModule:method:args:)); @@ -40,7 +40,7 @@ - (void)reset [ShimRCTInstance class], @selector(initWithDelegate: jsRuntimeFactory:bundleManager:turboModuleManagerDelegate:onInitialBundleLoad:moduleRegistry - :parentInspectorTarget:)); + :parentInspectorTarget:launchOptions:)); RCTSwizzleInstanceSelector([RCTInstance class], [ShimRCTInstance class], @selector(invalidate)); RCTSwizzleInstanceSelector( [RCTInstance class], [ShimRCTInstance class], @selector(callFunctionOnJSModule:method:args:)); @@ -55,6 +55,7 @@ - (instancetype)initWithDelegate:(id)delegate onInitialBundleLoad:(RCTInstanceInitialBundleLoadCompletionBlock)onInitialBundleLoad moduleRegistry:(RCTModuleRegistry *)moduleRegistry parentInspectorTarget:(facebook::react::jsinspector_modern::PageTarget *)parentInspectorTarget + launchOptions:(NSDictionary *)launchOptions { weakShim.initCount++; return self; diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index cca01ded517224..72a5dc248937cb 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1471,8 +1471,8 @@ SPEC CHECKSUMS: fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 hermes-engine: 329a5f9984fcdd5833687126d6d2ee599c7b4562 - MyNativeView: 1c6f91bacf66b31176f93e8f6d3acd8aac85b738 - NativeCxxModuleExample: 246d5cf81c2985f75b5b88287b7f326aa6c66c61 + MyNativeView: 8d6a7de42fd5bd8d836fd54b8e77c6683a2d9797 + NativeCxxModuleExample: ace397f25f6843101b3b97199618f40aac22d303 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df RCTDeprecation: 39acbda851b0a91447103ea93b04d4971d08fe86 @@ -1503,9 +1503,9 @@ SPEC CHECKSUMS: React-perflogger: 35f93d7a0a660f567fccff3d68e64aa4f1e19d85 React-RCTActionSheet: 424a463c0fe7adc93a6946106b1a298b8fd9fbc3 React-RCTAnimation: 2eaca2c5690a060124467b8acb6f2900fa0ad55b - React-RCTAppDelegate: 4b01124d9afc41206fe182ace545f5d754035cc2 + React-RCTAppDelegate: a504842acc714b288d942fb15ec65b5177805852 React-RCTBlob: 4934c2a388f1dba72c70785e52cf840277f34203 - React-RCTFabric: 8b75a6b2b4b4a97ea931f0d843fe2d11a024c797 + React-RCTFabric: 24c9fee67f0c35b1bce030f2c1b68498dc63cacb React-RCTImage: 3078443a042e9066b44d64c3e0acf4d27c47ecb4 React-RCTLinking: e5d477e2ff1b920af9100330d5f0742f94d824f2 React-RCTNetwork: 1c11155b02e6a598d6eb4bcf015ab493aa049fb7 @@ -1524,7 +1524,7 @@ SPEC CHECKSUMS: React-utils: bdc9a6686acc6743d18f3669286557a1691520ec ReactCommon: f2711a51ca03845c6ae972a2946b5dc6d6519fbb ReactCommon-Samples: af97ea26f13cc89dc6d431251e41b7b23183e78d - ScreenshotManager: 0b70e4d6b9e4873e9775cccc88d18192d5fd5b70 + ScreenshotManager: c25f349d42abbf5988c33a16153eef00edf069b0 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d Yoga: bdab5272d93dd19c07694aaf9d8b9e0e112380d8 diff --git a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj index cecc7351182bce..27217c190103fe 100644 --- a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj +++ b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj @@ -8,14 +8,15 @@ /* Begin PBXBuildFile section */ 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 233478CE9E17A00ACD643BA1 /* libPods-RNTesterIntegrationTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D799EF6AA275D5D4239C033E /* libPods-RNTesterIntegrationTests.a */; }; 2DDEF0101F84BF7B00DBDF73 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2DDEF00F1F84BF7B00DBDF73 /* Images.xcassets */; }; 383889DA23A7398900D06C3E /* RCTConvert_UIColorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 383889D923A7398900D06C3E /* RCTConvert_UIColorTests.m */; }; 3D2AFAF51D646CF80089D1A3 /* legacy_image@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3D2AFAF41D646CF80089D1A3 /* legacy_image@2x.png */; }; - 54DAEFC777EF7A9E22099B94 /* libPods-RNTesterIntegrationTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9368D28C48530F880026CC0B /* libPods-RNTesterIntegrationTests.a */; }; 5C60EB1C226440DB0018C04F /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5C60EB1B226440DB0018C04F /* AppDelegate.mm */; }; + 75CCE8D3149414440F8F375F /* libPods-RNTester.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDC71B375B04D2F3DD483B6C /* libPods-RNTester.a */; }; 8145AE06241172D900A3F8DA /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8145AE05241172D900A3F8DA /* LaunchScreen.storyboard */; }; 832F45BB2A8A6E1F0097B4E6 /* SwiftTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 832F45BA2A8A6E1F0097B4E6 /* SwiftTest.swift */; }; - 912B05F7071A5E728F4FCB06 /* libPods-RNTester.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 88A9803AE5329EAB6C8B76DA /* libPods-RNTester.a */; }; + A984E3435258D1FA0F157FCE /* libPods-RNTesterUnitTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C82BC2D67C2D9CE6FD31F2FB /* libPods-RNTesterUnitTests.a */; }; CD10C7A5290BD4EB0033E1ED /* RCTEventEmitterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CD10C7A4290BD4EB0033E1ED /* RCTEventEmitterTests.m */; }; E62F11832A5C6580000BF1C8 /* FlexibleSizeExampleView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 27F441E81BEBE5030039B79C /* FlexibleSizeExampleView.mm */; }; E62F11842A5C6584000BF1C8 /* UpdatePropertiesExampleView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 272E6B3C1BEA849E001FCF37 /* UpdatePropertiesExampleView.mm */; }; @@ -55,7 +56,6 @@ E7DB216422B2F3EC005AC45F /* RCTUIManagerScenarioTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E7DB215F22B2F3EC005AC45F /* RCTUIManagerScenarioTests.m */; }; E7DB216722B2F69F005AC45F /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7DB213022B2C649005AC45F /* JavaScriptCore.framework */; }; E7DB218C22B41FCD005AC45F /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7DB218B22B41FCD005AC45F /* XCTest.framework */; }; - E90FBDC7517BC8FEF761521D /* libPods-RNTesterUnitTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 90C5823BEF0D3A36982EFD41 /* libPods-RNTesterUnitTests.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -76,31 +76,29 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 03BBB27152ED31C66CBDCE00 /* Pods-RNTesterUnitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterUnitTests.debug.xcconfig"; path = "Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests.debug.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* RNTester.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RNTester.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = RNTester/AppDelegate.h; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = RNTester/Info.plist; sourceTree = ""; }; 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = RNTester/main.m; sourceTree = ""; }; 272E6B3B1BEA849E001FCF37 /* UpdatePropertiesExampleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UpdatePropertiesExampleView.h; path = RNTester/NativeExampleViews/UpdatePropertiesExampleView.h; sourceTree = ""; }; 272E6B3C1BEA849E001FCF37 /* UpdatePropertiesExampleView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = UpdatePropertiesExampleView.mm; path = RNTester/NativeExampleViews/UpdatePropertiesExampleView.mm; sourceTree = ""; }; - 2734C5E31C1D7A09BF872585 /* Pods-RNTester.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTester.debug.xcconfig"; path = "Target Support Files/Pods-RNTester/Pods-RNTester.debug.xcconfig"; sourceTree = ""; }; 27F441E81BEBE5030039B79C /* FlexibleSizeExampleView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = FlexibleSizeExampleView.mm; path = RNTester/NativeExampleViews/FlexibleSizeExampleView.mm; sourceTree = ""; }; 27F441EA1BEBE5030039B79C /* FlexibleSizeExampleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FlexibleSizeExampleView.h; path = RNTester/NativeExampleViews/FlexibleSizeExampleView.h; sourceTree = ""; }; 2DDEF00F1F84BF7B00DBDF73 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = RNTester/Images.xcassets; sourceTree = ""; }; - 359825B9A5AE4A3F4AA612DD /* Pods-RNTesterUnitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterUnitTests.debug.xcconfig"; path = "Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests.debug.xcconfig"; sourceTree = ""; }; 383889D923A7398900D06C3E /* RCTConvert_UIColorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTConvert_UIColorTests.m; sourceTree = ""; }; 3D2AFAF41D646CF80089D1A3 /* legacy_image@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "legacy_image@2x.png"; path = "RNTester/legacy_image@2x.png"; sourceTree = ""; }; 5C60EB1B226440DB0018C04F /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = RNTester/AppDelegate.mm; sourceTree = ""; }; - 66C3087F2D5BF762FE9E6422 /* Pods-RNTesterIntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterIntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests.debug.xcconfig"; sourceTree = ""; }; - 7CDA7A212644C6BB8C0D00D8 /* Pods-RNTesterIntegrationTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterIntegrationTests.release.xcconfig"; path = "Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests.release.xcconfig"; sourceTree = ""; }; 8145AE05241172D900A3F8DA /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = RNTester/LaunchScreen.storyboard; sourceTree = ""; }; 832F45BA2A8A6E1F0097B4E6 /* SwiftTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SwiftTest.swift; path = RNTester/SwiftTest.swift; sourceTree = ""; }; - 88A9803AE5329EAB6C8B76DA /* libPods-RNTester.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTester.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8BFB9C61D7BDE894E24BF24F /* Pods-RNTesterUnitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterUnitTests.release.xcconfig"; path = "Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests.release.xcconfig"; sourceTree = ""; }; - 90C5823BEF0D3A36982EFD41 /* libPods-RNTesterUnitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTesterUnitTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9368D28C48530F880026CC0B /* libPods-RNTesterIntegrationTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTesterIntegrationTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9B8542B8C590B51BD0588751 /* Pods-RNTester.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTester.release.xcconfig"; path = "Target Support Files/Pods-RNTester/Pods-RNTester.release.xcconfig"; sourceTree = ""; }; + 904056D7E94DD763B337F4C4 /* Pods-RNTester.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTester.debug.xcconfig"; path = "Target Support Files/Pods-RNTester/Pods-RNTester.debug.xcconfig"; sourceTree = ""; }; + 9B69C63956A5B8450AF0E810 /* Pods-RNTester.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTester.release.xcconfig"; path = "Target Support Files/Pods-RNTester/Pods-RNTester.release.xcconfig"; sourceTree = ""; }; AC474BFB29BBD4A1002BDAED /* RNTester.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; name = RNTester.xctestplan; path = RNTester/RNTester.xctestplan; sourceTree = ""; }; + AE6E0BFC1CD49F0DC093531C /* Pods-RNTesterIntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterIntegrationTests.debug.xcconfig"; path = "Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests.debug.xcconfig"; sourceTree = ""; }; + AED50FC94A0BE7A3D33231E0 /* Pods-RNTesterUnitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterUnitTests.release.xcconfig"; path = "Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests.release.xcconfig"; sourceTree = ""; }; + C82BC2D67C2D9CE6FD31F2FB /* libPods-RNTesterUnitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTesterUnitTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; CD10C7A4290BD4EB0033E1ED /* RCTEventEmitterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTEventEmitterTests.m; sourceTree = ""; }; + D799EF6AA275D5D4239C033E /* libPods-RNTesterIntegrationTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTesterIntegrationTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; E771AEEA22B44E3100EA1189 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = RNTester/Info.plist; sourceTree = ""; }; E7C1241922BEC44B00DA25C0 /* RNTesterIntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNTesterIntegrationTests.m; sourceTree = ""; }; E7DB209F22B2BA84005AC45F /* RNTesterUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RNTesterUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -162,6 +160,8 @@ E7DB215E22B2F3EC005AC45F /* RCTLoggingTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTLoggingTests.m; sourceTree = ""; }; E7DB215F22B2F3EC005AC45F /* RCTUIManagerScenarioTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTUIManagerScenarioTests.m; sourceTree = ""; }; E7DB218B22B41FCD005AC45F /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = XCTest.framework; sourceTree = DEVELOPER_DIR; }; + EB39930F368F8A8EF2223131 /* Pods-RNTesterIntegrationTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterIntegrationTests.release.xcconfig"; path = "Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests.release.xcconfig"; sourceTree = ""; }; + FDC71B375B04D2F3DD483B6C /* libPods-RNTester.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTester.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -169,7 +169,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 912B05F7071A5E728F4FCB06 /* libPods-RNTester.a in Frameworks */, + 75CCE8D3149414440F8F375F /* libPods-RNTester.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -178,7 +178,7 @@ buildActionMask = 2147483647; files = ( E7DB213122B2C649005AC45F /* JavaScriptCore.framework in Frameworks */, - E90FBDC7517BC8FEF761521D /* libPods-RNTesterUnitTests.a in Frameworks */, + A984E3435258D1FA0F157FCE /* libPods-RNTesterUnitTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -188,7 +188,7 @@ files = ( E7DB218C22B41FCD005AC45F /* XCTest.framework in Frameworks */, E7DB216722B2F69F005AC45F /* JavaScriptCore.framework in Frameworks */, - 54DAEFC777EF7A9E22099B94 /* libPods-RNTesterIntegrationTests.a in Frameworks */, + 233478CE9E17A00ACD643BA1 /* libPods-RNTesterIntegrationTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -258,9 +258,9 @@ E7DB211822B2BD53005AC45F /* libReact-RCTText.a */, E7DB211A22B2BD53005AC45F /* libReact-RCTVibration.a */, E7DB212222B2BD53005AC45F /* libyoga.a */, - 88A9803AE5329EAB6C8B76DA /* libPods-RNTester.a */, - 9368D28C48530F880026CC0B /* libPods-RNTesterIntegrationTests.a */, - 90C5823BEF0D3A36982EFD41 /* libPods-RNTesterUnitTests.a */, + FDC71B375B04D2F3DD483B6C /* libPods-RNTester.a */, + D799EF6AA275D5D4239C033E /* libPods-RNTesterIntegrationTests.a */, + C82BC2D67C2D9CE6FD31F2FB /* libPods-RNTesterUnitTests.a */, ); name = Frameworks; sourceTree = ""; @@ -300,12 +300,12 @@ E23BD6487B06BD71F1A86914 /* Pods */ = { isa = PBXGroup; children = ( - 2734C5E31C1D7A09BF872585 /* Pods-RNTester.debug.xcconfig */, - 9B8542B8C590B51BD0588751 /* Pods-RNTester.release.xcconfig */, - 66C3087F2D5BF762FE9E6422 /* Pods-RNTesterIntegrationTests.debug.xcconfig */, - 7CDA7A212644C6BB8C0D00D8 /* Pods-RNTesterIntegrationTests.release.xcconfig */, - 359825B9A5AE4A3F4AA612DD /* Pods-RNTesterUnitTests.debug.xcconfig */, - 8BFB9C61D7BDE894E24BF24F /* Pods-RNTesterUnitTests.release.xcconfig */, + 904056D7E94DD763B337F4C4 /* Pods-RNTester.debug.xcconfig */, + 9B69C63956A5B8450AF0E810 /* Pods-RNTester.release.xcconfig */, + AE6E0BFC1CD49F0DC093531C /* Pods-RNTesterIntegrationTests.debug.xcconfig */, + EB39930F368F8A8EF2223131 /* Pods-RNTesterIntegrationTests.release.xcconfig */, + 03BBB27152ED31C66CBDCE00 /* Pods-RNTesterUnitTests.debug.xcconfig */, + AED50FC94A0BE7A3D33231E0 /* Pods-RNTesterUnitTests.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -369,14 +369,14 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "RNTester" */; buildPhases = ( - ABDE2A52ACD1B95E14790B5E /* [CP] Check Pods Manifest.lock */, + 1D61E03B2C15283212491D88 /* [CP] Check Pods Manifest.lock */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 68CD48B71D2BCB2C007E06A9 /* Build JS Bundle */, 79E8BE2B119D4C5CCD2F04B3 /* [RN] Copy Hermes Framework */, - 02B6FEF7E86B613B42F31284 /* [CP] Embed Pods Frameworks */, - 5625E703156DD564DE9175B0 /* [CP] Copy Pods Resources */, + A41785EFA563389E1508FB58 /* [CP] Embed Pods Frameworks */, + 5E028B80F3C32FE3D52DF9A7 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -391,12 +391,12 @@ isa = PBXNativeTarget; buildConfigurationList = E7DB20A622B2BA84005AC45F /* Build configuration list for PBXNativeTarget "RNTesterUnitTests" */; buildPhases = ( - 4F76596957F7356516B534CE /* [CP] Check Pods Manifest.lock */, + 9E05A96E88B51366B482536F /* [CP] Check Pods Manifest.lock */, E7DB209B22B2BA84005AC45F /* Sources */, E7DB209C22B2BA84005AC45F /* Frameworks */, E7DB209D22B2BA84005AC45F /* Resources */, - A904658C20543C2EDC217D15 /* [CP] Embed Pods Frameworks */, - 01934C30687B8C926E4F59CD /* [CP] Copy Pods Resources */, + 3FA5A4AA0B18E37634BDB153 /* [CP] Embed Pods Frameworks */, + 829D7C63C528493FD8CA45E9 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -412,12 +412,12 @@ isa = PBXNativeTarget; buildConfigurationList = E7DB215A22B2F332005AC45F /* Build configuration list for PBXNativeTarget "RNTesterIntegrationTests" */; buildPhases = ( - B7EB74515CDE78D98087DD53 /* [CP] Check Pods Manifest.lock */, + 8AA5E9AFEED3571ADC48A9E6 /* [CP] Check Pods Manifest.lock */, E7DB214F22B2F332005AC45F /* Sources */, E7DB215022B2F332005AC45F /* Frameworks */, E7DB215122B2F332005AC45F /* Resources */, - 4F27ACC9DB890B37D6C267F1 /* [CP] Embed Pods Frameworks */, - E446637427ECD101CAACE52B /* [CP] Copy Pods Resources */, + 659CD3193D6E6ED5B92470CE /* [CP] Embed Pods Frameworks */, + C5A1A0DE195B37E2DE72DBE8 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -499,94 +499,77 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 01934C30687B8C926E4F59CD /* [CP] Copy Pods Resources */ = { + 1D61E03B2C15283212491D88 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-resources-${CONFIGURATION}-output-files.xcfilelist", ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 02B6FEF7E86B613B42F31284 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-frameworks-${CONFIGURATION}-input-files.xcfilelist", + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RNTester-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-frameworks.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 4F27ACC9DB890B37D6C267F1 /* [CP] Embed Pods Frameworks */ = { + 3FA5A4AA0B18E37634BDB153 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 4F76596957F7356516B534CE /* [CP] Check Pods Manifest.lock */ = { + 5E028B80F3C32FE3D52DF9A7 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-resources-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RNTesterUnitTests-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 5625E703156DD564DE9175B0 /* [CP] Copy Pods Resources */ = { + 659CD3193D6E6ED5B92470CE /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-resources-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-resources-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-resources.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; 68CD48B71D2BCB2C007E06A9 /* Build JS Bundle */ = { @@ -623,24 +606,24 @@ shellPath = /bin/sh; shellScript = ". ../react-native/sdks/hermes-engine/utils/copy-hermes-xcode.sh\n"; }; - A904658C20543C2EDC217D15 /* [CP] Embed Pods Frameworks */ = { + 829D7C63C528493FD8CA45E9 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-resources-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNTesterUnitTests/Pods-RNTesterUnitTests-resources.sh\"\n"; showEnvVarsInLog = 0; }; - ABDE2A52ACD1B95E14790B5E /* [CP] Check Pods Manifest.lock */ = { + 8AA5E9AFEED3571ADC48A9E6 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -655,14 +638,14 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RNTester-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-RNTesterIntegrationTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - B7EB74515CDE78D98087DD53 /* [CP] Check Pods Manifest.lock */ = { + 9E05A96E88B51366B482536F /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -677,14 +660,31 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RNTesterIntegrationTests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-RNTesterUnitTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - E446637427ECD101CAACE52B /* [CP] Copy Pods Resources */ = { + A41785EFA563389E1508FB58 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNTester/Pods-RNTester-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + C5A1A0DE195B37E2DE72DBE8 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -782,7 +782,7 @@ /* Begin XCBuildConfiguration section */ 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2734C5E31C1D7A09BF872585 /* Pods-RNTester.debug.xcconfig */; + baseConfigurationReference = 904056D7E94DD763B337F4C4 /* Pods-RNTester.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -820,7 +820,7 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9B8542B8C590B51BD0588751 /* Pods-RNTester.release.xcconfig */; + baseConfigurationReference = 9B69C63956A5B8450AF0E810 /* Pods-RNTester.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; @@ -1050,7 +1050,7 @@ }; E7DB20A722B2BA84005AC45F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 359825B9A5AE4A3F4AA612DD /* Pods-RNTesterUnitTests.debug.xcconfig */; + baseConfigurationReference = 03BBB27152ED31C66CBDCE00 /* Pods-RNTesterUnitTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CLANG_ANALYZER_NONNULL = YES; @@ -1088,7 +1088,7 @@ }; E7DB20A822B2BA84005AC45F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8BFB9C61D7BDE894E24BF24F /* Pods-RNTesterUnitTests.release.xcconfig */; + baseConfigurationReference = AED50FC94A0BE7A3D33231E0 /* Pods-RNTesterUnitTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CLANG_ANALYZER_NONNULL = YES; @@ -1126,7 +1126,7 @@ }; E7DB215B22B2F332005AC45F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 66C3087F2D5BF762FE9E6422 /* Pods-RNTesterIntegrationTests.debug.xcconfig */; + baseConfigurationReference = AE6E0BFC1CD49F0DC093531C /* Pods-RNTesterIntegrationTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -1165,7 +1165,7 @@ }; E7DB215C22B2F332005AC45F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7CDA7A212644C6BB8C0D00D8 /* Pods-RNTesterIntegrationTests.release.xcconfig */; + baseConfigurationReference = EB39930F368F8A8EF2223131 /* Pods-RNTesterIntegrationTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; From 2a6e156054a53c7304583cc56f5e31c36e4fad1b Mon Sep 17 00:00:00 2001 From: Distiller Date: Wed, 10 Apr 2024 13:06:30 +0000 Subject: [PATCH 123/223] Release 0.74.0-rc.8 #publish-packages-to-npm&next --- package.json | 4 ++-- packages/assets/package.json | 2 +- packages/babel-plugin-codegen/package.json | 4 ++-- packages/community-cli-plugin/package.json | 6 +++--- packages/debugger-frontend/package.json | 2 +- packages/dev-middleware/package.json | 4 ++-- packages/eslint-config-react-native/package.json | 4 ++-- packages/eslint-plugin-react-native/package.json | 2 +- packages/eslint-plugin-specs/package.json | 4 ++-- packages/hermes-inspector-msggen/package.json | 2 +- packages/metro-config/package.json | 6 +++--- packages/normalize-color/package.json | 2 +- packages/polyfills/package.json | 2 +- packages/react-native-babel-preset/package.json | 4 ++-- .../react-native-babel-transformer/package.json | 4 ++-- packages/react-native-bots/package.json | 2 +- .../package.json | 4 ++-- packages/react-native-codegen/package.json | 2 +- packages/react-native-gradle-plugin/package.json | 2 +- .../react-native-popup-menu-android/package.json | 4 ++-- packages/react-native-test-renderer/package.json | 2 +- .../Libraries/Core/ReactNativeVersion.js | 2 +- packages/react-native/React/Base/RCTVersion.m | 2 +- .../react-native/ReactAndroid/gradle.properties | 2 +- .../modules/systeminfo/ReactNativeVersion.java | 2 +- .../ReactCommon/cxxreact/ReactNativeVersion.h | 2 +- packages/react-native/package.json | 16 ++++++++-------- packages/react-native/template/package.json | 10 +++++----- packages/rn-tester-e2e/package.json | 2 +- packages/rn-tester/package.json | 4 ++-- packages/typescript-config/package.json | 2 +- packages/virtualized-lists/package.json | 2 +- 32 files changed, 57 insertions(+), 57 deletions(-) diff --git a/package.json b/package.json index 83061e829bad3a..7e292aee400c78 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,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.74.78", - "@react-native/metro-config": "0.74.78", + "@react-native/metro-babel-transformer": "0.74.79", + "@react-native/metro-config": "0.74.79", "@tsconfig/node18": "1.0.1", "@types/react": "^18.2.6", "@typescript-eslint/parser": "^6.7.4", diff --git a/packages/assets/package.json b/packages/assets/package.json index 573f1558179bee..99089ebbc3abe4 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/assets-registry", - "version": "0.74.78", + "version": "0.74.79", "description": "Asset support code for React Native.", "license": "MIT", "repository": { diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index dc33713cb72c95..8b612805d09a70 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-plugin-codegen", - "version": "0.74.78", + "version": "0.74.79", "description": "Babel plugin to generate native module and view manager code for React Native.", "license": "MIT", "repository": { @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@react-native/codegen": "0.74.78" + "@react-native/codegen": "0.74.79" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index ae750abe9f060d..c375a17328e896 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.78", + "version": "0.74.79", "description": "Core CLI commands for React Native", "keywords": [ "react-native", @@ -24,8 +24,8 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.4", "@react-native-community/cli-tools": "13.6.4", - "@react-native/dev-middleware": "0.74.78", - "@react-native/metro-babel-transformer": "0.74.78", + "@react-native/dev-middleware": "0.74.79", + "@react-native/metro-babel-transformer": "0.74.79", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", diff --git a/packages/debugger-frontend/package.json b/packages/debugger-frontend/package.json index 1e8136c3d363d3..b2dd1b37cc92c2 100644 --- a/packages/debugger-frontend/package.json +++ b/packages/debugger-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/debugger-frontend", - "version": "0.74.78", + "version": "0.74.79", "description": "Debugger frontend for React Native based on Chrome DevTools", "keywords": [ "react-native", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index 634c5030fad993..9f947c02a77833 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.78", + "version": "0.74.79", "description": "Dev server middleware for React Native", "keywords": [ "react-native", @@ -23,7 +23,7 @@ ], "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.78", + "@react-native/debugger-frontend": "0.74.79", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index b4f9be01f8b26e..acbda02e7673d6 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-config", - "version": "0.74.78", + "version": "0.74.79", "description": "ESLint config for React Native", "license": "MIT", "repository": { @@ -22,7 +22,7 @@ "dependencies": { "@babel/core": "^7.20.0", "@babel/eslint-parser": "^7.20.0", - "@react-native/eslint-plugin": "0.74.78", + "@react-native/eslint-plugin": "0.74.79", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "eslint-config-prettier": "^8.5.0", diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index 0e6edf18f8c10f..1910326dda9580 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin", - "version": "0.74.78", + "version": "0.74.79", "description": "ESLint rules for @react-native/eslint-config", "license": "MIT", "repository": { diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index 2284e64909b641..29e3b16120fe59 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin-specs", - "version": "0.74.78", + "version": "0.74.79", "description": "ESLint rules to validate NativeModule and Component Specs", "license": "MIT", "repository": { @@ -31,7 +31,7 @@ "@babel/eslint-parser": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/preset-flow": "^7.20.0", - "@react-native/codegen": "0.74.78", + "@react-native/codegen": "0.74.79", "make-dir": "^2.1.0", "pirates": "^4.0.1", "source-map-support": "0.5.0" diff --git a/packages/hermes-inspector-msggen/package.json b/packages/hermes-inspector-msggen/package.json index e0ea61a3630b23..76ff2a6a0c5dcd 100644 --- a/packages/hermes-inspector-msggen/package.json +++ b/packages/hermes-inspector-msggen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/hermes-inspector-msggen", - "version": "0.74.78", + "version": "0.74.79", "private": true, "description": "Hermes Inspector Message Generator for React Native", "license": "MIT", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index c3f052bbd58f86..d451d7ad0650ed 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-config", - "version": "0.74.78", + "version": "0.74.79", "description": "Metro configuration for React Native.", "license": "MIT", "repository": { @@ -26,8 +26,8 @@ "dist" ], "dependencies": { - "@react-native/js-polyfills": "0.74.78", - "@react-native/metro-babel-transformer": "0.74.78", + "@react-native/js-polyfills": "0.74.79", + "@react-native/metro-babel-transformer": "0.74.79", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" } diff --git a/packages/normalize-color/package.json b/packages/normalize-color/package.json index f2d1b3c59af251..e4415f586c6c6d 100644 --- a/packages/normalize-color/package.json +++ b/packages/normalize-color/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/normalize-colors", - "version": "0.74.78", + "version": "0.74.79", "description": "Color normalization for React Native.", "license": "MIT", "repository": { diff --git a/packages/polyfills/package.json b/packages/polyfills/package.json index 5f3e0856adcf03..087902ed412b0f 100644 --- a/packages/polyfills/package.json +++ b/packages/polyfills/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/js-polyfills", - "version": "0.74.78", + "version": "0.74.79", "description": "Polyfills for React Native.", "license": "MIT", "repository": { diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index 79e3a70630b66c..505de80091e39e 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-preset", - "version": "0.74.78", + "version": "0.74.79", "description": "Babel preset for React Native applications", "main": "src/index.js", "repository": { @@ -54,7 +54,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.78", + "@react-native/babel-plugin-codegen": "0.74.79", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index aac3bdc1b70b23..e1f8140c1917ef 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-babel-transformer", - "version": "0.74.78", + "version": "0.74.79", "description": "Babel transformer for React Native applications.", "main": "src/index.js", "repository": { @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.78", + "@react-native/babel-preset": "0.74.79", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, diff --git a/packages/react-native-bots/package.json b/packages/react-native-bots/package.json index bf6738bc488993..b6cb8ad9bf926e 100644 --- a/packages/react-native-bots/package.json +++ b/packages/react-native-bots/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/bots", "description": "React Native Bots", - "version": "0.74.78", + "version": "0.74.79", "private": true, "license": "MIT", "repository": { diff --git a/packages/react-native-codegen-typescript-test/package.json b/packages/react-native-codegen-typescript-test/package.json index 63a4a5aad10830..dcd65c25f27dd6 100644 --- a/packages/react-native-codegen-typescript-test/package.json +++ b/packages/react-native-codegen-typescript-test/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen-typescript-test", - "version": "0.74.78", + "version": "0.74.79", "private": true, "description": "TypeScript related unit test for @react-native/codegen", "license": "MIT", @@ -19,7 +19,7 @@ "prepare": "yarn run build" }, "dependencies": { - "@react-native/codegen": "0.74.78" + "@react-native/codegen": "0.74.79" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index f08b7c21946113..f8a6d27780ae52 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen", - "version": "0.74.78", + "version": "0.74.79", "description": "Code generation tools for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-gradle-plugin/package.json b/packages/react-native-gradle-plugin/package.json index d80ea1c1a971ff..42892b200ec286 100644 --- a/packages/react-native-gradle-plugin/package.json +++ b/packages/react-native-gradle-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/gradle-plugin", - "version": "0.74.78", + "version": "0.74.79", "description": "Gradle Plugin for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json index bf79b141348746..8879a352025210 100644 --- a/packages/react-native-popup-menu-android/package.json +++ b/packages/react-native-popup-menu-android/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/popup-menu-android", - "version": "0.74.78", + "version": "0.74.79", "description": "PopupMenu for the Android platform", "main": "index.js", "files": [ @@ -17,7 +17,7 @@ ], "license": "MIT", "devDependencies": { - "@react-native/codegen": "0.74.78" + "@react-native/codegen": "0.74.79" }, "peerDependencies": { "@types/react": "^18.2.6", diff --git a/packages/react-native-test-renderer/package.json b/packages/react-native-test-renderer/package.json index b457b0c5ef4633..f7d361d3c61aa4 100644 --- a/packages/react-native-test-renderer/package.json +++ b/packages/react-native-test-renderer/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/test-renderer", "private": true, - "version": "0.74.78", + "version": "0.74.79", "description": "A Test rendering library for React Native", "license": "MIT", "devDependencies": { diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index e10e46f5c25f57..de125cd5e4a65a 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -17,7 +17,7 @@ const version: $ReadOnly<{ major: 0, minor: 74, patch: 0, - prerelease: 'rc.7', + prerelease: 'rc.8', }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index b390ef3af4399c..f233aff3e56347 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -24,7 +24,7 @@ RCTVersionMajor: @(0), RCTVersionMinor: @(74), RCTVersionPatch: @(0), - RCTVersionPrerelease: @"rc.7", + RCTVersionPrerelease: @"rc.8", }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index 596ca7b6e80c2d..83734333a4d542 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.0-rc.7 +VERSION_NAME=0.74.0-rc.8 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index 756706999ead89..88495e8e736a34 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -18,5 +18,5 @@ public class ReactNativeVersion { "major", 0, "minor", 74, "patch", 0, - "prerelease", "rc.7"); + "prerelease", "rc.8"); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index aef3e8dcc23e27..ecfb41e9f0adcf 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -18,7 +18,7 @@ constexpr struct { int32_t Major = 0; int32_t Minor = 74; int32_t Patch = 0; - std::string_view Prerelease = "rc.7"; + std::string_view Prerelease = "rc.8"; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 378a44e7c0d8a7..b5ed6cae77ff83 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.0-rc.7", + "version": "0.74.0-rc.8", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -110,13 +110,13 @@ "@react-native-community/cli": "13.6.4", "@react-native-community/cli-platform-android": "13.6.4", "@react-native-community/cli-platform-ios": "13.6.4", - "@react-native/assets-registry": "0.74.78", - "@react-native/codegen": "0.74.78", - "@react-native/community-cli-plugin": "0.74.78", - "@react-native/gradle-plugin": "0.74.78", - "@react-native/js-polyfills": "0.74.78", - "@react-native/normalize-colors": "0.74.78", - "@react-native/virtualized-lists": "0.74.78", + "@react-native/assets-registry": "0.74.79", + "@react-native/codegen": "0.74.79", + "@react-native/community-cli-plugin": "0.74.79", + "@react-native/gradle-plugin": "0.74.79", + "@react-native/js-polyfills": "0.74.79", + "@react-native/normalize-colors": "0.74.79", + "@react-native/virtualized-lists": "0.74.79", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 77525b6f2f533b..b58bdd40f47b7f 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,16 +11,16 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.0-rc.7" + "react-native": "0.74.0-rc.8" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.78", - "@react-native/eslint-config": "0.74.78", - "@react-native/metro-config": "0.74.78", - "@react-native/typescript-config": "0.74.78", + "@react-native/babel-preset": "0.74.79", + "@react-native/eslint-config": "0.74.79", + "@react-native/metro-config": "0.74.79", + "@react-native/typescript-config": "0.74.79", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", diff --git a/packages/rn-tester-e2e/package.json b/packages/rn-tester-e2e/package.json index dfe7c2b5499ab4..a0aacdb0c08bcc 100644 --- a/packages/rn-tester-e2e/package.json +++ b/packages/rn-tester-e2e/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/tester-e2e", "private": true, - "version": "0.74.78", + "version": "0.74.79", "license": "MIT", "description": "React Native E2E tester app.", "homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/rn-tester-e2e", diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index 132e6ac589442d..20008a63a2f4e1 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/tester", - "version": "0.74.78", + "version": "0.74.79", "private": true, "description": "React Native tester app.", "license": "MIT", @@ -26,7 +26,7 @@ "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "@react-native/popup-menu-android": "0.74.78" + "@react-native/popup-menu-android": "0.74.79" }, "peerDependencies": { "react": "18.2.0", diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 2bafe0dffba944..d4fcf0aac62af7 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/typescript-config", - "version": "0.74.78", + "version": "0.74.79", "description": "Default TypeScript configuration for React Native apps", "license": "MIT", "repository": { diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index 4a76bcf9f11f29..a3864a4c92a445 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/virtualized-lists", - "version": "0.74.78", + "version": "0.74.79", "description": "Virtualized lists for React Native.", "license": "MIT", "repository": { From 012a95cf5667de3c159649125866a5e5a6d782d8 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Wed, 10 Apr 2024 15:45:31 +0100 Subject: [PATCH 124/223] Update Podfile.lock Changelog: [Internal] --- packages/rn-tester/Podfile.lock | 498 +++++++++--------- .../RNTesterPods.xcodeproj/project.pbxproj | 8 + 2 files changed, 257 insertions(+), 249 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 72a5dc248937cb..e2df4583d9f188 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,13 +1,13 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.0-rc.7) + - FBLazyVector (0.74.0-rc.8) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.0-rc.7): - - hermes-engine/Pre-built (= 0.74.0-rc.7) - - hermes-engine/Pre-built (0.74.0-rc.7) - - MyNativeView (0.74.78): + - hermes-engine (0.74.0-rc.8): + - hermes-engine/Pre-built (= 0.74.0-rc.8) + - hermes-engine/Pre-built (0.74.0-rc.8) + - MyNativeView (0.74.79): - DoubleConversion - glog - hermes-engine @@ -28,7 +28,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - NativeCxxModuleExample (0.74.78): + - NativeCxxModuleExample (0.74.79): - DoubleConversion - glog - hermes-engine @@ -66,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.0-rc.7) - - RCTRequired (0.74.0-rc.7) - - RCTTypeSafety (0.74.0-rc.7): - - FBLazyVector (= 0.74.0-rc.7) - - RCTRequired (= 0.74.0-rc.7) - - React-Core (= 0.74.0-rc.7) - - React (0.74.0-rc.7): - - React-Core (= 0.74.0-rc.7) - - React-Core/DevSupport (= 0.74.0-rc.7) - - React-Core/RCTWebSocket (= 0.74.0-rc.7) - - React-RCTActionSheet (= 0.74.0-rc.7) - - React-RCTAnimation (= 0.74.0-rc.7) - - React-RCTBlob (= 0.74.0-rc.7) - - React-RCTImage (= 0.74.0-rc.7) - - React-RCTLinking (= 0.74.0-rc.7) - - React-RCTNetwork (= 0.74.0-rc.7) - - React-RCTSettings (= 0.74.0-rc.7) - - React-RCTText (= 0.74.0-rc.7) - - React-RCTVibration (= 0.74.0-rc.7) - - React-callinvoker (0.74.0-rc.7) - - React-Codegen (0.74.0-rc.7): + - RCTDeprecation (0.74.0-rc.8) + - RCTRequired (0.74.0-rc.8) + - RCTTypeSafety (0.74.0-rc.8): + - FBLazyVector (= 0.74.0-rc.8) + - RCTRequired (= 0.74.0-rc.8) + - React-Core (= 0.74.0-rc.8) + - React (0.74.0-rc.8): + - React-Core (= 0.74.0-rc.8) + - React-Core/DevSupport (= 0.74.0-rc.8) + - React-Core/RCTWebSocket (= 0.74.0-rc.8) + - React-RCTActionSheet (= 0.74.0-rc.8) + - React-RCTAnimation (= 0.74.0-rc.8) + - React-RCTBlob (= 0.74.0-rc.8) + - React-RCTImage (= 0.74.0-rc.8) + - React-RCTLinking (= 0.74.0-rc.8) + - React-RCTNetwork (= 0.74.0-rc.8) + - React-RCTSettings (= 0.74.0-rc.8) + - React-RCTText (= 0.74.0-rc.8) + - React-RCTVibration (= 0.74.0-rc.8) + - React-callinvoker (0.74.0-rc.8) + - React-Codegen (0.74.0-rc.8): - DoubleConversion - glog - hermes-engine @@ -106,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.0-rc.7): + - React-Core (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.7) + - React-Core/Default (= 0.74.0-rc.8) - React-cxxreact - React-featureflags - React-hermes @@ -123,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.0-rc.7): + - React-Core/CoreModulesHeaders (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.0-rc.7): + - React-Core/Default (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -156,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.0-rc.7): + - React-Core/DevSupport (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.7) - - React-Core/RCTWebSocket (= 0.74.0-rc.7) + - React-Core/Default (= 0.74.0-rc.8) + - React-Core/RCTWebSocket (= 0.74.0-rc.8) - React-cxxreact - React-featureflags - React-hermes @@ -174,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.0-rc.7): + - React-Core/RCTActionSheetHeaders (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -191,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.0-rc.7): + - React-Core/RCTAnimationHeaders (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -208,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.0-rc.7): + - React-Core/RCTBlobHeaders (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.0-rc.7): + - React-Core/RCTImageHeaders (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -242,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.0-rc.7): + - React-Core/RCTLinkingHeaders (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.0-rc.7): + - React-Core/RCTNetworkHeaders (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -276,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.0-rc.7): + - React-Core/RCTPushNotificationHeaders (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -293,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.0-rc.7): + - React-Core/RCTSettingsHeaders (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -310,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.0-rc.7): + - React-Core/RCTTextHeaders (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -327,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.0-rc.7): + - React-Core/RCTVibrationHeaders (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -344,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.0-rc.7): + - React-Core/RCTWebSocket (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.7) + - React-Core/Default (= 0.74.0-rc.8) - React-cxxreact - React-featureflags - React-hermes @@ -361,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.0-rc.7): + - React-CoreModules (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.0-rc.7) + - RCTTypeSafety (= 0.74.0-rc.8) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.0-rc.7) - - React-jsi (= 0.74.0-rc.7) + - React-Core/CoreModulesHeaders (= 0.74.0-rc.8) + - React-jsi (= 0.74.0-rc.8) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.0-rc.7) + - React-RCTImage (= 0.74.0-rc.8) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.0-rc.7): + - React-cxxreact (0.74.0-rc.8): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.7) - - React-debug (= 0.74.0-rc.7) - - React-jsi (= 0.74.0-rc.7) + - React-callinvoker (= 0.74.0-rc.8) + - React-debug (= 0.74.0-rc.8) + - React-jsi (= 0.74.0-rc.8) - React-jsinspector - - React-logger (= 0.74.0-rc.7) - - React-perflogger (= 0.74.0-rc.7) - - React-runtimeexecutor (= 0.74.0-rc.7) - - React-debug (0.74.0-rc.7) - - React-Fabric (0.74.0-rc.7): + - React-logger (= 0.74.0-rc.8) + - React-perflogger (= 0.74.0-rc.8) + - React-runtimeexecutor (= 0.74.0-rc.8) + - React-debug (0.74.0-rc.8) + - React-Fabric (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -401,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.0-rc.7) - - React-Fabric/attributedstring (= 0.74.0-rc.7) - - React-Fabric/componentregistry (= 0.74.0-rc.7) - - React-Fabric/componentregistrynative (= 0.74.0-rc.7) - - React-Fabric/components (= 0.74.0-rc.7) - - React-Fabric/core (= 0.74.0-rc.7) - - React-Fabric/imagemanager (= 0.74.0-rc.7) - - React-Fabric/leakchecker (= 0.74.0-rc.7) - - React-Fabric/mounting (= 0.74.0-rc.7) - - React-Fabric/scheduler (= 0.74.0-rc.7) - - React-Fabric/telemetry (= 0.74.0-rc.7) - - React-Fabric/templateprocessor (= 0.74.0-rc.7) - - React-Fabric/textlayoutmanager (= 0.74.0-rc.7) - - React-Fabric/uimanager (= 0.74.0-rc.7) + - React-Fabric/animations (= 0.74.0-rc.8) + - React-Fabric/attributedstring (= 0.74.0-rc.8) + - React-Fabric/componentregistry (= 0.74.0-rc.8) + - React-Fabric/componentregistrynative (= 0.74.0-rc.8) + - React-Fabric/components (= 0.74.0-rc.8) + - React-Fabric/core (= 0.74.0-rc.8) + - React-Fabric/imagemanager (= 0.74.0-rc.8) + - React-Fabric/leakchecker (= 0.74.0-rc.8) + - React-Fabric/mounting (= 0.74.0-rc.8) + - React-Fabric/scheduler (= 0.74.0-rc.8) + - React-Fabric/telemetry (= 0.74.0-rc.8) + - React-Fabric/templateprocessor (= 0.74.0-rc.8) + - React-Fabric/textlayoutmanager (= 0.74.0-rc.8) + - React-Fabric/uimanager (= 0.74.0-rc.8) - React-graphics - React-jsi - React-jsiexecutor @@ -423,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.0-rc.7): + - React-Fabric/animations (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -442,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.0-rc.7): + - React-Fabric/attributedstring (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -461,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.0-rc.7): + - React-Fabric/componentregistry (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.0-rc.7): + - React-Fabric/componentregistrynative (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.0-rc.7): + - React-Fabric/components (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -510,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.0-rc.7) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.7) - - React-Fabric/components/modal (= 0.74.0-rc.7) - - React-Fabric/components/rncore (= 0.74.0-rc.7) - - React-Fabric/components/root (= 0.74.0-rc.7) - - React-Fabric/components/safeareaview (= 0.74.0-rc.7) - - React-Fabric/components/scrollview (= 0.74.0-rc.7) - - React-Fabric/components/text (= 0.74.0-rc.7) - - React-Fabric/components/textinput (= 0.74.0-rc.7) - - React-Fabric/components/unimplementedview (= 0.74.0-rc.7) - - React-Fabric/components/view (= 0.74.0-rc.7) + - React-Fabric/components/inputaccessory (= 0.74.0-rc.8) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.8) + - React-Fabric/components/modal (= 0.74.0-rc.8) + - React-Fabric/components/rncore (= 0.74.0-rc.8) + - React-Fabric/components/root (= 0.74.0-rc.8) + - React-Fabric/components/safeareaview (= 0.74.0-rc.8) + - React-Fabric/components/scrollview (= 0.74.0-rc.8) + - React-Fabric/components/text (= 0.74.0-rc.8) + - React-Fabric/components/textinput (= 0.74.0-rc.8) + - React-Fabric/components/unimplementedview (= 0.74.0-rc.8) + - React-Fabric/components/view (= 0.74.0-rc.8) - React-graphics - React-jsi - React-jsiexecutor @@ -529,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.0-rc.7): + - React-Fabric/components/inputaccessory (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -548,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.7): + - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -567,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.0-rc.7): + - React-Fabric/components/modal (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -586,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.0-rc.7): + - React-Fabric/components/rncore (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.0-rc.7): + - React-Fabric/components/root (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.0-rc.7): + - React-Fabric/components/safeareaview (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.0-rc.7): + - React-Fabric/components/scrollview (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.0-rc.7): + - React-Fabric/components/text (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.0-rc.7): + - React-Fabric/components/textinput (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -700,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.0-rc.7): + - React-Fabric/components/unimplementedview (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -719,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.0-rc.7): + - React-Fabric/components/view (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -739,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.0-rc.7): + - React-Fabric/core (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.0-rc.7): + - React-Fabric/imagemanager (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -777,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.0-rc.7): + - React-Fabric/leakchecker (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -796,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.0-rc.7): + - React-Fabric/mounting (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -815,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.0-rc.7): + - React-Fabric/scheduler (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -834,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.0-rc.7): + - React-Fabric/telemetry (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.0-rc.7): + - React-Fabric/templateprocessor (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -872,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.0-rc.7): + - React-Fabric/textlayoutmanager (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -892,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.0-rc.7): + - React-Fabric/uimanager (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog @@ -911,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.0-rc.7): + - React-FabricImage (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.0-rc.7) - - RCTTypeSafety (= 0.74.0-rc.7) + - RCTRequired (= 0.74.0-rc.8) + - RCTTypeSafety (= 0.74.0-rc.8) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.0-rc.7) + - React-jsiexecutor (= 0.74.0-rc.8) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.0-rc.7) - - React-graphics (0.74.0-rc.7): + - React-featureflags (0.74.0-rc.8) + - React-graphics (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.0-rc.7) + - React-Core/Default (= 0.74.0-rc.8) - React-utils - - React-hermes (0.74.0-rc.7): + - React-hermes (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.7) + - React-cxxreact (= 0.74.0-rc.8) - React-jsi - - React-jsiexecutor (= 0.74.0-rc.7) + - React-jsiexecutor (= 0.74.0-rc.8) - React-jsinspector - - React-perflogger (= 0.74.0-rc.7) + - React-perflogger (= 0.74.0-rc.8) - React-runtimeexecutor - - React-ImageManager (0.74.0-rc.7): + - React-ImageManager (0.74.0-rc.8): - glog - RCT-Folly/Fabric - React-Core/Default @@ -958,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.0-rc.7): + - React-jserrorhandler (0.74.0-rc.8): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.0-rc.7): + - React-jsi (0.74.0-rc.8): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.0-rc.7): + - React-jsiexecutor (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.7) - - React-jsi (= 0.74.0-rc.7) + - React-cxxreact (= 0.74.0-rc.8) + - React-jsi (= 0.74.0-rc.8) - React-jsinspector - - React-perflogger (= 0.74.0-rc.7) - - React-jsinspector (0.74.0-rc.7): + - React-perflogger (= 0.74.0-rc.8) + - React-jsinspector (0.74.0-rc.8): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.0-rc.7) - - React-jsitracing (0.74.0-rc.7): + - React-runtimeexecutor (= 0.74.0-rc.8) + - React-jsitracing (0.74.0-rc.8): - React-jsi - - React-logger (0.74.0-rc.7): + - React-logger (0.74.0-rc.8): - glog - - React-Mapbuffer (0.74.0-rc.7): + - React-Mapbuffer (0.74.0-rc.8): - glog - React-debug - - React-nativeconfig (0.74.0-rc.7) - - React-NativeModulesApple (0.74.0-rc.7): + - React-nativeconfig (0.74.0-rc.8) + - React-NativeModulesApple (0.74.0-rc.8): - glog - hermes-engine - React-callinvoker @@ -1007,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.0-rc.7) - - React-RCTActionSheet (0.74.0-rc.7): - - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.7) - - React-RCTAnimation (0.74.0-rc.7): + - React-perflogger (0.74.0-rc.8) + - React-RCTActionSheet (0.74.0-rc.8): + - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.8) + - React-RCTAnimation (0.74.0-rc.8): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1018,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.0-rc.7): + - React-RCTAppDelegate (0.74.0-rc.8): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1041,7 +1041,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.0-rc.7): + - React-RCTBlob (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1054,7 +1054,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.0-rc.7): + - React-RCTFabric (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1074,7 +1074,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.0-rc.7): + - React-RCTImage (0.74.0-rc.8): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1083,14 +1083,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.0-rc.7): + - React-RCTLinking (0.74.0-rc.8): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.0-rc.7) - - React-jsi (= 0.74.0-rc.7) + - React-Core/RCTLinkingHeaders (= 0.74.0-rc.8) + - React-jsi (= 0.74.0-rc.8) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.0-rc.7) - - React-RCTNetwork (0.74.0-rc.7): + - ReactCommon/turbomodule/core (= 0.74.0-rc.8) + - React-RCTNetwork (0.74.0-rc.8): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1098,14 +1098,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.0-rc.7): + - React-RCTPushNotification (0.74.0-rc.8): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.0-rc.7): + - React-RCTSettings (0.74.0-rc.8): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1113,29 +1113,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.0-rc.7): + - React-RCTTest (0.74.0-rc.8): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.0-rc.7) - - React-CoreModules (= 0.74.0-rc.7) - - React-jsi (= 0.74.0-rc.7) - - ReactCommon/turbomodule/core (= 0.74.0-rc.7) - - React-RCTText (0.74.0-rc.7): - - React-Core/RCTTextHeaders (= 0.74.0-rc.7) + - React-Core (= 0.74.0-rc.8) + - React-CoreModules (= 0.74.0-rc.8) + - React-jsi (= 0.74.0-rc.8) + - ReactCommon/turbomodule/core (= 0.74.0-rc.8) + - React-RCTText (0.74.0-rc.8): + - React-Core/RCTTextHeaders (= 0.74.0-rc.8) - Yoga - - React-RCTVibration (0.74.0-rc.7): + - React-RCTVibration (0.74.0-rc.8): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.0-rc.7): + - React-rendererdebug (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.0-rc.7) - - React-RuntimeApple (0.74.0-rc.7): + - React-rncore (0.74.0-rc.8) + - React-RuntimeApple (0.74.0-rc.8): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1153,7 +1153,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.0-rc.7): + - React-RuntimeCore (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1166,9 +1166,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.0-rc.7): - - React-jsi (= 0.74.0-rc.7) - - React-RuntimeHermes (0.74.0-rc.7): + - React-runtimeexecutor (0.74.0-rc.8): + - React-jsi (= 0.74.0-rc.8) + - React-RuntimeHermes (0.74.0-rc.8): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1179,7 +1179,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.0-rc.7): + - React-runtimescheduler (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1191,15 +1191,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.0-rc.7): + - React-utils (0.74.0-rc.8): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.0-rc.7) - - ReactCommon (0.74.0-rc.7): - - ReactCommon/turbomodule (= 0.74.0-rc.7) - - ReactCommon-Samples (0.74.0-rc.7): + - React-jsi (= 0.74.0-rc.8) + - ReactCommon (0.74.0-rc.8): + - ReactCommon/turbomodule (= 0.74.0-rc.8) + - ReactCommon-Samples (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1210,44 +1210,44 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.0-rc.7): + - ReactCommon/turbomodule (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.7) - - React-cxxreact (= 0.74.0-rc.7) - - React-jsi (= 0.74.0-rc.7) - - React-logger (= 0.74.0-rc.7) - - React-perflogger (= 0.74.0-rc.7) - - ReactCommon/turbomodule/bridging (= 0.74.0-rc.7) - - ReactCommon/turbomodule/core (= 0.74.0-rc.7) - - ReactCommon/turbomodule/bridging (0.74.0-rc.7): + - React-callinvoker (= 0.74.0-rc.8) + - React-cxxreact (= 0.74.0-rc.8) + - React-jsi (= 0.74.0-rc.8) + - React-logger (= 0.74.0-rc.8) + - React-perflogger (= 0.74.0-rc.8) + - ReactCommon/turbomodule/bridging (= 0.74.0-rc.8) + - ReactCommon/turbomodule/core (= 0.74.0-rc.8) + - ReactCommon/turbomodule/bridging (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.7) - - React-cxxreact (= 0.74.0-rc.7) - - React-jsi (= 0.74.0-rc.7) - - React-logger (= 0.74.0-rc.7) - - React-perflogger (= 0.74.0-rc.7) - - ReactCommon/turbomodule/core (0.74.0-rc.7): + - React-callinvoker (= 0.74.0-rc.8) + - React-cxxreact (= 0.74.0-rc.8) + - React-jsi (= 0.74.0-rc.8) + - React-logger (= 0.74.0-rc.8) + - React-perflogger (= 0.74.0-rc.8) + - ReactCommon/turbomodule/core (0.74.0-rc.8): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.7) - - React-cxxreact (= 0.74.0-rc.7) - - React-debug (= 0.74.0-rc.7) - - React-jsi (= 0.74.0-rc.7) - - React-logger (= 0.74.0-rc.7) - - React-perflogger (= 0.74.0-rc.7) - - React-utils (= 0.74.0-rc.7) - - ScreenshotManager (0.74.78): + - React-callinvoker (= 0.74.0-rc.8) + - React-cxxreact (= 0.74.0-rc.8) + - React-debug (= 0.74.0-rc.8) + - React-jsi (= 0.74.0-rc.8) + - React-logger (= 0.74.0-rc.8) + - React-perflogger (= 0.74.0-rc.8) + - React-utils (= 0.74.0-rc.8) + - ScreenshotManager (0.74.79): - DoubleConversion - glog - hermes-engine @@ -1467,66 +1467,66 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 924f823e9f89d9f880e8f028f77ed94edcb5891f + FBLazyVector: 72d3b09a21c97463594ef6908c27b7463cd1418b fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 329a5f9984fcdd5833687126d6d2ee599c7b4562 - MyNativeView: 8d6a7de42fd5bd8d836fd54b8e77c6683a2d9797 - NativeCxxModuleExample: ace397f25f6843101b3b97199618f40aac22d303 + hermes-engine: 197a5da9e3c080d66e6cd16bee272b59ff551e1e + MyNativeView: 84b3bc8269e1e22b1cc90ae933d9ca324bf5930c + NativeCxxModuleExample: 0157cac8fc6cf1128b2e62c621da0a9c37b4fc15 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df - RCTDeprecation: 39acbda851b0a91447103ea93b04d4971d08fe86 - RCTRequired: 7d30632776247b6c83397861849216806d9d7f69 - RCTTypeSafety: 5f6df50fe0665be4d7c418f27d06fdc596ad84e8 - React: 6dbe5ead56a0c2d329bdc72bc5be93f19d141a26 - React-callinvoker: 947690a0657b5a6a21a64054a2b970f663ad4cd9 - React-Codegen: 68a42872e66d99e8e63c826db41e85bc5f6984fc - React-Core: 938f742bbe3a59068fdc98b8790bd8b50747543c - React-CoreModules: 1a2f004c283061ff4d1695f40426bda94b294d4f - React-cxxreact: b6ca956c4758bdd73f6faf376c54089da8245793 - React-debug: 1b4f3d8edc96dbe1e953aa621d8024bc26cb1fb8 - React-Fabric: 5691fa01844edb5401603e76053de5b1accd2958 - React-FabricImage: 84371a10fe0ba8dad9aeb17b8bd6839c7580e779 - React-featureflags: a6671c6f70a93e3a638a46066102a8e857730466 - React-graphics: 03fe50ae8bc8b8f73d05142a2f903c11c88138d6 - React-hermes: 18976ac2f26809e62393ba468b44d97ade4445b0 - React-ImageManager: fcbf5d77c45027fd0ccd30f3dee5358f9380b000 - React-jserrorhandler: 738a7e5069a01331a6a0da700816260402630288 - React-jsi: 067a120ca2224e8644475c26e47331f52a4c451e - React-jsiexecutor: 54ab111958274d70f8fb7ee893c1a99a3224c165 - React-jsinspector: 658c7817a82ee23c39826727a8e831c834f8166a - React-jsitracing: 39abf32718d8ea6e634f01c7604be086185b78bd - React-logger: a790d16be67220e42ba1de47fd5f3bf694961307 - React-Mapbuffer: 30f85b69520bd0d33e0da391b756cc213a554352 - React-nativeconfig: c9e21ec2c4fdd9965ed627c896f8b62ce75a482a - React-NativeModulesApple: f92d16846e045bc4cec6843994e64e497f49173d - React-perflogger: 35f93d7a0a660f567fccff3d68e64aa4f1e19d85 - React-RCTActionSheet: 424a463c0fe7adc93a6946106b1a298b8fd9fbc3 - React-RCTAnimation: 2eaca2c5690a060124467b8acb6f2900fa0ad55b - React-RCTAppDelegate: a504842acc714b288d942fb15ec65b5177805852 - React-RCTBlob: 4934c2a388f1dba72c70785e52cf840277f34203 - React-RCTFabric: 24c9fee67f0c35b1bce030f2c1b68498dc63cacb - React-RCTImage: 3078443a042e9066b44d64c3e0acf4d27c47ecb4 - React-RCTLinking: e5d477e2ff1b920af9100330d5f0742f94d824f2 - React-RCTNetwork: 1c11155b02e6a598d6eb4bcf015ab493aa049fb7 - React-RCTPushNotification: 5159468831721edd407aa5693cec1d7589aad017 - React-RCTSettings: 5592c40ac499cd8d3390747e8b561a46884d3fd7 - React-RCTTest: 2e090a969e1b2e6419c12d54aed8988221e911b1 - React-RCTText: 0697c392abfcaf2fbb69ca4f34a683675eaa5966 - React-RCTVibration: 68f830045b1bfd017705e877c964f975407118d5 - React-rendererdebug: 45162e3f886e414c0f8a6df01c211a8cb350d4ad - React-rncore: 506da44119efb4f416e7cbb03d36fd48b22a2366 - React-RuntimeApple: 6c1ced0aba6588dcac0ad2cd06bd0341223b567d - React-RuntimeCore: 040dcc5e2caaf518261cfaf18dfa688d5e3836b5 - React-runtimeexecutor: 61966aad53ecf72e1a06c90105e06937472cc301 - React-RuntimeHermes: abaf9f7c3e8812b2b29d85faa834a12df4715316 - React-runtimescheduler: f9699610168f92cec19e4685f64c4daed08f65f7 - React-utils: bdc9a6686acc6743d18f3669286557a1691520ec - ReactCommon: f2711a51ca03845c6ae972a2946b5dc6d6519fbb - ReactCommon-Samples: af97ea26f13cc89dc6d431251e41b7b23183e78d - ScreenshotManager: c25f349d42abbf5988c33a16153eef00edf069b0 + RCTDeprecation: 0b99a3b47529424f621f07566b1ca43a2d5fe28b + RCTRequired: cbcacbd2f29f0aba20a1a114b2a51283d322c4fa + RCTTypeSafety: 4a4992297e81f7cfca42f5162453da8128a6328e + React: febc26a35006c5f8103976a1a622363284b8a0cd + React-callinvoker: 4e28c0be66e2a2c273091b8af8ce947c4b018620 + React-Codegen: 5f420b25589637c76159b221590cb5382ce66fc0 + React-Core: e04cc3d0dbe2397b7b7690bd229a402a7a952ece + React-CoreModules: 6c5848589e351e352a039e7c2d13197953a2fd9d + React-cxxreact: 7310ff449c2249bd6c7616f8ab5a8ba2e9c124cf + React-debug: 38e3d7aa188794540e3c1703019b2f54fe77805a + React-Fabric: bc0b3ed744ea0b33a2a6ab73ec1c3668b836baf3 + React-FabricImage: 407f087e87c3d21c168a8572295c3e543073f1a5 + React-featureflags: 89431e2df1bc7bf2fb65db8525ced374083d2d78 + React-graphics: 40dd7a0bece0c27bea0ac084b62956b079b95ce2 + React-hermes: ea98922aaf28bb5b8a6fe431f509b1e9e53ba3a7 + React-ImageManager: a8a02347b167ad960e461de5c4e8bdc68dd6ed2b + React-jserrorhandler: be170b0a0847a60533e1ef1e5aa14225c17b0a05 + React-jsi: f272c8b2b5bfca43f98e394484c9dac903a4af4b + React-jsiexecutor: f98c047914f7c1facca0f8a9c891bb4df431aacf + React-jsinspector: 92515a5ca3909ce2d859cd2295c0e5c7ec825c27 + React-jsitracing: 899f4d1ea5b546e9492025c2ae51e3f1b95d02ad + React-logger: 55862754d59c1fc8370aaff01399fdd75758cc16 + React-Mapbuffer: 604db834d9adf8848451a325f26ffa604cdfd306 + React-nativeconfig: 829ee8dde46d5b24911d61581f29682a851c97b9 + React-NativeModulesApple: cc532520c05e85a4f7fa687db893148453bf8e23 + React-perflogger: d1298b3577ab17efab10dd4d660a87285c565194 + React-RCTActionSheet: f37870bb9318cf93d26703d822dd66247ece634a + React-RCTAnimation: 21bef35f62c0880e5637b31b18aff12d3b671638 + React-RCTAppDelegate: 29f8770ce080384ff7ca27771ac6cd0da3f9881c + React-RCTBlob: 947d29d1338eadf5e4d0f4735a6580f657590f90 + React-RCTFabric: 2aedbce4ee9f70fa62d44325b31fb3fd6da89ede + React-RCTImage: 14edcbabd09e9aea77482b7dd85d839660ea8be1 + React-RCTLinking: 2a72c0855eaacd519f2221e378bf22fa2dad87fd + React-RCTNetwork: 636691c944284873252548b22f232d4965c15bd6 + React-RCTPushNotification: 76496bcec129be98d948481734995e52671229cf + React-RCTSettings: 977fba8366367c0bb8ac2a3ea45532169d3be3f6 + React-RCTTest: 98f0043e6a4ebeb98b00ac277616e826807b730c + React-RCTText: f6d15a76eb9be65e928dc5282df0d00fcb26bcde + React-RCTVibration: 6315205f6737938bff7d9539982952ad918ec911 + React-rendererdebug: b50cb1b3fd19f1fcaa60a7b50768022a0459d9a1 + React-rncore: 0133475ecae49546ea8db2049960038445cc0b38 + React-RuntimeApple: 43fc3ef1cfd004233403ef86bbf6a237f9acc411 + React-RuntimeCore: ac96c4c587f9f595e856997de4c23893d112b683 + React-runtimeexecutor: bb28a0b7b1c770b6845950c46168b7d170363d1f + React-RuntimeHermes: bb99680cb71492c50e46d2b5f4db5f76ec1a6089 + React-runtimescheduler: 91c3069839ca10d2dd1d18dbe60a478f2bb77405 + React-utils: b3ef4d6a2c13c343b9150e3070fa1984a1c1ee27 + ReactCommon: a2081027a321e7dd4825855111d57954a01fb02a + ReactCommon-Samples: 3d3ce887af75a0c76bfa9d2d7133757b1f33c1e7 + ScreenshotManager: a02e43e45d7ef96a03f0470d746cb47086f8f7b5 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: bdab5272d93dd19c07694aaf9d8b9e0e112380d8 + Yoga: 432275e56eae8816087eb8842bacbfe2eed1dc92 PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf diff --git a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj index 27217c190103fe..517750393bc686 100644 --- a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj +++ b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj @@ -859,6 +859,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CC = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang.sh"; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; @@ -889,6 +890,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CXX = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang++.sh"; ENABLE_BITCODE = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -929,6 +931,8 @@ " ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", ); IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang.sh"; + LDPLUSPLUS = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang++.sh"; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "$(inherited)"; @@ -959,6 +963,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CC = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang.sh"; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; @@ -989,6 +994,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; + CXX = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang++.sh"; ENABLE_BITCODE = NO; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -1022,6 +1028,8 @@ " ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", ); IPHONEOS_DEPLOYMENT_TARGET = 13.4; + LD = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang.sh"; + LDPLUSPLUS = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang++.sh"; MTL_ENABLE_DEBUG_INFO = NO; OTHER_CFLAGS = "$(inherited)"; OTHER_CPLUSPLUSFLAGS = ( From e7131fadca7facd217ebf7059397d7ce79889b73 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Fri, 12 Apr 2024 12:35:43 -0700 Subject: [PATCH 125/223] Implement getRuntimeExecutor for BridgelessCatalystInstance (#44053) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44053 Implement `getRuntimeExecutor()` for BridgelessCatalystInstance Changelog: [Android][Breaking] Implement `getRuntimeExecutor()` for Bridgeless Catalyst Instance Reviewed By: christophpurrer Differential Revision: D56046398 fbshipit-source-id: b9f947cf6f83ce7c1d334558a11b76fccab45dbd --- .../com/facebook/react/runtime/BridgelessCatalystInstance.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt index ea9dd2cb203892..c802c61cf8ae95 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt @@ -149,8 +149,8 @@ public class BridgelessCatalystInstance(private val reactHost: ReactHostImpl) : throw UnsupportedOperationException("Unimplemented method 'getJavaScriptContextHolder'") } - override fun getRuntimeExecutor(): RuntimeExecutor { - throw UnsupportedOperationException("Unimplemented method 'getRuntimeExecutor'") + override fun getRuntimeExecutor(): RuntimeExecutor? { + return reactHost.getRuntimeExecutor() } override fun getRuntimeScheduler(): RuntimeScheduler { From 26854de04be77b0915e1fc0dedbc8d4a35089ec1 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Fri, 12 Apr 2024 12:55:05 -0700 Subject: [PATCH 126/223] Implement getJavaScriptContextHolder for BridgelessCatalystInstance (#44054) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44054 Implement `getJavaScriptContextHolder()` for BridgelessCatalystInstance Changelog: [Android][Breaking] Implement `getJavaScriptContextHolder()` for Bridgeless Catalyst Instance Reviewed By: christophpurrer Differential Revision: D56046452 fbshipit-source-id: b7fed1da3064608d8ef5fa84f4e53a4f7a84cba7 --- .../com/facebook/react/runtime/BridgelessCatalystInstance.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt index c802c61cf8ae95..434c8ead80c3fe 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt @@ -145,8 +145,8 @@ public class BridgelessCatalystInstance(private val reactHost: ReactHostImpl) : } @Deprecated(message = "This API is unsupported in the New Architecture.") - override fun getJavaScriptContextHolder(): JavaScriptContextHolder { - throw UnsupportedOperationException("Unimplemented method 'getJavaScriptContextHolder'") + override fun getJavaScriptContextHolder(): JavaScriptContextHolder? { + return reactHost.getJavaScriptContextHolder() } override fun getRuntimeExecutor(): RuntimeExecutor? { From 0b3ebdfb22a6e3cebcb207c3f90620fffe030edd Mon Sep 17 00:00:00 2001 From: zhongwuzw Date: Fri, 12 Apr 2024 09:56:16 -0700 Subject: [PATCH 127/223] Change bridgeless check in dev menu (#43976) Summary: We would set the value of _bridge ivar to bridgeProxy for turbo module in bridgeless mode in https://github.com/facebook/react-native/issues/43757 , so we need to change the way of bridgeless/bridge check. ## Changelog: [IOS] [FIXED] - Change bridgeless check in dev menu Pull Request resolved: https://github.com/facebook/react-native/pull/43976 Test Plan: Dev menu shows bridgeless/bridge mode correctly. Reviewed By: christophpurrer Differential Revision: D56056640 Pulled By: cipolleschi fbshipit-source-id: 1358c3027c1d5f12c70dd4486cc1d5975c7a185a --- packages/react-native/React/CoreModules/RCTDevMenu.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/React/CoreModules/RCTDevMenu.mm b/packages/react-native/React/CoreModules/RCTDevMenu.mm index 9e220790d55fa4..2f57d4b0b46a3d 100644 --- a/packages/react-native/React/CoreModules/RCTDevMenu.mm +++ b/packages/react-native/React/CoreModules/RCTDevMenu.mm @@ -396,7 +396,7 @@ - (void)setDefaultJSBundle ? UIAlertControllerStyleActionSheet : UIAlertControllerStyleAlert; - NSString *devMenuType = self.bridge ? @"Bridge" : @"Bridgeless"; + NSString *devMenuType = [self.bridge isKindOfClass:RCTBridge.class] ? @"Bridge" : @"Bridgeless"; NSString *devMenuTitle = [NSString stringWithFormat:@"React Native Dev Menu (%@)", devMenuType]; _actionSheet = [UIAlertController alertControllerWithTitle:devMenuTitle message:description preferredStyle:style]; From bb5451b4253de8fbfb796aac19eab1bb4e60e836 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 12 Apr 2024 11:37:41 -0700 Subject: [PATCH 128/223] Fix Open Debugger dev menu item missing from iOS Bridgeless Summary: After a [recent change](https://github.com/facebook/react-native/commit/90296be1d4fab09a52e02dd09f34f819136d0a07) we break part of the integration with the debug menu, which is was using the presence/absence of the bridge to decide whether we were in bridge or bridgeless. For backward compatibility reasosn, the bridge ivar is now populated with the bridgeProxy, so just checking whether is nil or not is not enough to verify whether we are in bridge or in bridgeless mode anymore. ## Changelog: [iOS][Fixed] - Make sure that the Open Debugger appears in bridgeless mode Reviewed By: fkgozali Differential Revision: D56067897 fbshipit-source-id: e2501ed730ff35bc755c24ef400130c551032e28 --- .../React/CoreModules/RCTDevSettings.mm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/react-native/React/CoreModules/RCTDevSettings.mm b/packages/react-native/React/CoreModules/RCTDevSettings.mm index 10930504894a4b..887a69c06c1b37 100644 --- a/packages/react-native/React/CoreModules/RCTDevSettings.mm +++ b/packages/react-native/React/CoreModules/RCTDevSettings.mm @@ -158,6 +158,11 @@ + (BOOL)requiresMainQueueSetup return NO; } +- (BOOL)_isBridgeMode +{ + return [self.bridge isKindOfClass:[RCTBridge class]]; +} + - (instancetype)initWithDataSource:(id)dataSource { if (self = [super init]) { @@ -178,7 +183,7 @@ - (instancetype)initWithDataSource:(id)dataSource - (void)initialize { #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION - if (self.bridge) { + if ([self _isBridgeMode]) { RCTBridge *__weak weakBridge = self.bridge; _bridgeExecutorOverrideToken = [[RCTPackagerConnection sharedPackagerConnection] addNotificationHandler:^(id params) { @@ -209,7 +214,7 @@ - (void)initialize #endif #if RCT_ENABLE_INSPECTOR - if (self.bridge) { + if ([self _isBridgeMode]) { // We need this dispatch to the main thread because the bridge is not yet // finished with its initialisation. By the time it relinquishes control of // the main thread, this operation can be performed. @@ -250,7 +255,7 @@ - (void)invalidate { [super invalidate]; #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION - if (self.bridge) { + if ([self _isBridgeMode]) { [[RCTPackagerConnection sharedPackagerConnection] removeHandler:_bridgeExecutorOverrideToken]; } @@ -281,7 +286,7 @@ - (id)settingForKey:(NSString *)key - (BOOL)isDeviceDebuggingAvailable { #if RCT_ENABLE_INSPECTOR - if (self.bridge) { + if ([self _isBridgeMode]) { return self.bridge.isInspectable; } else { return self.isInspectable; From 92c6d22f3cb974b92009a54a58d160fea60fa806 Mon Sep 17 00:00:00 2001 From: Phillip Pan Date: Tue, 2 Apr 2024 21:38:52 -0700 Subject: [PATCH 129/223] add privacy manifest to pod install Summary: Changelog: [iOS][Added] this creates the RN privacy manifest in the ios build step if user has not created one yet. the reasons have been added for the following APIs: NSPrivacyAccessedAPICategoryFileTimestamp - C617.1: We use fstat and stat in a few places in the C++ layer. We use these to read information about the JavaScript files in RN. NSPrivacyAccessedAPICategoryUserDefaults - CA92.1: We access NSUserDefaults in a few places. 1) To store RTL preferences 2) As part of caching server URLs for developer mode 3) A generic native module that wraps NSUserDefaults NSPrivacyAccessedAPICategorySystemBootTime - 35F9.1: Best guess reason from RR API pulled in by boost Reviewed By: cipolleschi Differential Revision: D53687232 fbshipit-source-id: 6dffb1a6013f8f29438a49752e47ed75c13f4a5c # Conflicts: # packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj --- .../react-native/scripts/cocoapods/utils.rb | 38 +++++++++++++++++++ .../react-native/scripts/react_native_pods.rb | 1 + packages/rn-tester/PrivacyInfo.xcprivacy | 37 ++++++++++++++++++ .../RNTesterPods.xcodeproj/project.pbxproj | 12 ++++-- 4 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 packages/rn-tester/PrivacyInfo.xcprivacy diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index b0570f30a3e976..b06791891a36cf 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -576,6 +576,44 @@ def self.set_imagemanager_search_path(target_installation_result) ReactNativePodsUtils.update_header_paths_if_depends_on(target_installation_result, "React-ImageManager", header_search_paths) end + def self.get_privacy_manifest_paths_from(user_project) + privacy_manifests = user_project + .files + .select { |p| + p.path&.end_with?('PrivacyInfo.xcprivacy') + } + return privacy_manifests + end + + def self.add_privacy_manifest_if_needed(installer) + user_project = installer.aggregate_targets + .map{ |t| t.user_project } + .first + privacy_manifest = self.get_privacy_manifest_paths_from(user_project).first + if privacy_manifest.nil? + file_timestamp_reason = { + "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategoryFileTimestamp", + "NSPrivacyAccessedAPITypeReasons" => ["C617.1"], + } + user_defaults_reason = { + "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategoryUserDefaults", + "NSPrivacyAccessedAPITypeReasons" => ["CA92.1"], + } + boot_time_reason = { + "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategorySystemBootTime", + "NSPrivacyAccessedAPITypeReasons" => ["35F9.1"], + } + privacy_manifest = { + "NSPrivacyCollectedDataTypes" => [], + "NSPrivacyTracking" => false, + "NSPrivacyAccessedAPITypes" => [file_timestamp_reason, user_defaults_reason, boot_time_reason] + } + path = File.join(user_project.path.parent, "PrivacyInfo.xcprivacy") + Xcodeproj::Plist.write_to_path(privacy_manifest, path) + Pod::UI.puts "Your app does not have a privacy manifest! A template has been generated containing Required Reasons API usage in the core React Native library. Please add the PrivacyInfo.xcprivacy file to your project and complete data use, tracking and any additional required reasons your app is using according to Apple's guidance: https://developer.apple.com/.../privacy_manifest_files. Then, you will need to manually add this file to your project in Xcode.".red + end + end + def self.react_native_pods return [ "DoubleConversion", diff --git a/packages/react-native/scripts/react_native_pods.rb b/packages/react-native/scripts/react_native_pods.rb index 5757ef1280a0cd..910d6c235a6728 100644 --- a/packages/react-native/scripts/react_native_pods.rb +++ b/packages/react-native/scripts/react_native_pods.rb @@ -292,6 +292,7 @@ def react_native_post_install( ReactNativePodsUtils.updateOSDeploymentTarget(installer) ReactNativePodsUtils.set_dynamic_frameworks_flags(installer) ReactNativePodsUtils.add_ndebug_flag_to_pods_in_release(installer) + ReactNativePodsUtils.add_privacy_manifest_if_needed(installer) NewArchitectureHelper.set_clang_cxx_language_standard_if_needed(installer) NewArchitectureHelper.modify_flags_for_new_architecture(installer, NewArchitectureHelper.new_arch_enabled) diff --git a/packages/rn-tester/PrivacyInfo.xcprivacy b/packages/rn-tester/PrivacyInfo.xcprivacy new file mode 100644 index 00000000000000..41b8317f0652b9 --- /dev/null +++ b/packages/rn-tester/PrivacyInfo.xcprivacy @@ -0,0 +1,37 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + diff --git a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj index 517750393bc686..c812ba138cdd0a 100644 --- a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj +++ b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj @@ -56,6 +56,7 @@ E7DB216422B2F3EC005AC45F /* RCTUIManagerScenarioTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E7DB215F22B2F3EC005AC45F /* RCTUIManagerScenarioTests.m */; }; E7DB216722B2F69F005AC45F /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7DB213022B2C649005AC45F /* JavaScriptCore.framework */; }; E7DB218C22B41FCD005AC45F /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7DB218B22B41FCD005AC45F /* XCTest.framework */; }; + F0D621C32BBB9E38005960AC /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = F0D621C22BBB9E38005960AC /* PrivacyInfo.xcprivacy */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -162,6 +163,7 @@ E7DB218B22B41FCD005AC45F /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = XCTest.framework; sourceTree = DEVELOPER_DIR; }; EB39930F368F8A8EF2223131 /* Pods-RNTesterIntegrationTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterIntegrationTests.release.xcconfig"; path = "Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests.release.xcconfig"; sourceTree = ""; }; FDC71B375B04D2F3DD483B6C /* libPods-RNTester.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTester.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + F0D621C22BBB9E38005960AC /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -207,6 +209,7 @@ 13B07FAE1A68108700A75B9A /* RNTester */ = { isa = PBXGroup; children = ( + F0D621C22BBB9E38005960AC /* PrivacyInfo.xcprivacy */, AC474BFB29BBD4A1002BDAED /* RNTester.xctestplan */, E771AEEA22B44E3100EA1189 /* Info.plist */, 13B07FAF1A68108700A75B9A /* AppDelegate.h */, @@ -477,6 +480,7 @@ files = ( 2DDEF0101F84BF7B00DBDF73 /* Images.xcassets in Resources */, 8145AE06241172D900A3F8DA /* LaunchScreen.storyboard in Resources */, + F0D621C32BBB9E38005960AC /* PrivacyInfo.xcprivacy in Resources */, 3D2AFAF51D646CF80089D1A3 /* legacy_image@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -927,8 +931,8 @@ "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", "${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers", "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios", - " ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", - " ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", ); IPHONEOS_DEPLOYMENT_TARGET = 13.4; LD = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang.sh"; @@ -1024,8 +1028,8 @@ "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", "${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers", "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios", - " ${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", - " ${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", ); IPHONEOS_DEPLOYMENT_TARGET = 13.4; LD = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang.sh"; From 2b18fdf8063b423a0fb5762f2c6044244b4c35e6 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Mon, 15 Apr 2024 12:15:37 +0100 Subject: [PATCH 130/223] [LOCAL][iOS] Fix RNTester project and remove CCACHE from project when disabled --- .../react-native/scripts/cocoapods/utils.rb | 21 ++++++++++++++++--- .../RNTesterPods.xcodeproj/project.pbxproj | 18 ++++++++-------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index b06791891a36cf..aedbdd5e8c1420 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -98,11 +98,12 @@ def self.set_ccache_compiler_and_linker_build_settings(installer, react_native_p Pod::UI.puts("#{message_prefix}: Ccache found at #{ccache_path}") end + # Using scripts wrapping the ccache executable, to allow injection of configurations + ccache_clang_sh = File.join("$(REACT_NATIVE_PATH)", 'scripts', 'xcode', 'ccache-clang.sh') + ccache_clangpp_sh = File.join("$(REACT_NATIVE_PATH)", 'scripts', 'xcode', 'ccache-clang++.sh') + if ccache_available and ccache_enabled Pod::UI.puts("#{message_prefix}: Setting CC, LD, CXX & LDPLUSPLUS build settings") - # Using scripts wrapping the ccache executable, to allow injection of configurations - ccache_clang_sh = File.join("$(REACT_NATIVE_PATH)", 'scripts', 'xcode', 'ccache-clang.sh') - ccache_clangpp_sh = File.join("$(REACT_NATIVE_PATH)", 'scripts', 'xcode', 'ccache-clang++.sh') projects.each do |project| project.build_configurations.each do |config| @@ -119,6 +120,20 @@ def self.set_ccache_compiler_and_linker_build_settings(installer, react_native_p Pod::UI.puts("#{message_prefix}: Pass ':ccache_enabled => true' to 'react_native_post_install' in your Podfile or set environment variable 'USE_CCACHE=1' to increase the speed of subsequent builds") elsif !ccache_available and ccache_enabled Pod::UI.warn("#{message_prefix}: Install ccache or ensure your neither passing ':ccache_enabled => true' nor setting environment variable 'USE_CCACHE=1'") + else + Pod::UI.puts("#{message_prefix}: Removing Ccache from CC, LD, CXX & LDPLUSPLUS build settings") + + projects.each do |project| + project.build_configurations.each do |config| + # Using the un-qualified names means you can swap in different implementations, for example ccache + config.build_settings["CC"] = config.build_settings["CC"] ? config.build_settings["CC"].gsub(/#{Regexp.escape(ccache_clang_sh)}/, '') : "" + config.build_settings["LD"] = config.build_settings["LD"] ? config.build_settings["LD"].gsub(/#{Regexp.escape(ccache_clang_sh)}/, "") : "" + config.build_settings["CXX"] = config.build_settings["CXX"] ? config.build_settings["CXX"].gsub(/#{Regexp.escape(ccache_clangpp_sh)}/, "") : "" + config.build_settings["LDPLUSPLUS"] = config.build_settings["LDPLUSPLUS"] ? config.build_settings["LDPLUSPLUS"].gsub(/#{Regexp.escape(ccache_clangpp_sh)}/, "") : "" + end + + project.save() + end end end diff --git a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj index c812ba138cdd0a..57d2da2a0bf129 100644 --- a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj +++ b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj @@ -162,8 +162,8 @@ E7DB215F22B2F3EC005AC45F /* RCTUIManagerScenarioTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTUIManagerScenarioTests.m; sourceTree = ""; }; E7DB218B22B41FCD005AC45F /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = XCTest.framework; sourceTree = DEVELOPER_DIR; }; EB39930F368F8A8EF2223131 /* Pods-RNTesterIntegrationTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RNTesterIntegrationTests.release.xcconfig"; path = "Target Support Files/Pods-RNTesterIntegrationTests/Pods-RNTesterIntegrationTests.release.xcconfig"; sourceTree = ""; }; - FDC71B375B04D2F3DD483B6C /* libPods-RNTester.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTester.a"; sourceTree = BUILT_PRODUCTS_DIR; }; F0D621C22BBB9E38005960AC /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + FDC71B375B04D2F3DD483B6C /* libPods-RNTester.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNTester.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -863,7 +863,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CC = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang.sh"; + CC = ""; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; @@ -894,7 +894,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; - CXX = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang++.sh"; + CXX = ""; ENABLE_BITCODE = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -935,8 +935,8 @@ "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", ); IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang.sh"; - LDPLUSPLUS = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang++.sh"; + LD = ""; + LDPLUSPLUS = ""; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "$(inherited)"; @@ -967,7 +967,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CC = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang.sh"; + CC = ""; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_CXX_LIBRARY = "libc++"; @@ -998,7 +998,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; - CXX = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang++.sh"; + CXX = ""; ENABLE_BITCODE = NO; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -1032,8 +1032,8 @@ "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", ); IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang.sh"; - LDPLUSPLUS = "$(REACT_NATIVE_PATH)/scripts/xcode/ccache-clang++.sh"; + LD = ""; + LDPLUSPLUS = ""; MTL_ENABLE_DEBUG_INFO = NO; OTHER_CFLAGS = "$(inherited)"; OTHER_CPLUSPLUSFLAGS = ( From d4a48ce692c5f492e27d2d99cc95e04bc78aac24 Mon Sep 17 00:00:00 2001 From: Distiller Date: Mon, 15 Apr 2024 14:02:09 +0000 Subject: [PATCH 131/223] Release 0.74.0-rc.9 #publish-packages-to-npm&next --- package.json | 4 ++-- packages/assets/package.json | 2 +- packages/babel-plugin-codegen/package.json | 4 ++-- packages/community-cli-plugin/package.json | 6 +++--- packages/debugger-frontend/package.json | 2 +- packages/dev-middleware/package.json | 4 ++-- packages/eslint-config-react-native/package.json | 4 ++-- packages/eslint-plugin-react-native/package.json | 2 +- packages/eslint-plugin-specs/package.json | 4 ++-- packages/hermes-inspector-msggen/package.json | 2 +- packages/metro-config/package.json | 6 +++--- packages/normalize-color/package.json | 2 +- packages/polyfills/package.json | 2 +- packages/react-native-babel-preset/package.json | 4 ++-- .../react-native-babel-transformer/package.json | 4 ++-- packages/react-native-bots/package.json | 2 +- .../package.json | 4 ++-- packages/react-native-codegen/package.json | 2 +- packages/react-native-gradle-plugin/package.json | 2 +- .../react-native-popup-menu-android/package.json | 4 ++-- packages/react-native-test-renderer/package.json | 2 +- .../Libraries/Core/ReactNativeVersion.js | 2 +- packages/react-native/React/Base/RCTVersion.m | 2 +- .../react-native/ReactAndroid/gradle.properties | 2 +- .../modules/systeminfo/ReactNativeVersion.java | 2 +- .../ReactCommon/cxxreact/ReactNativeVersion.h | 2 +- packages/react-native/package.json | 16 ++++++++-------- packages/react-native/template/package.json | 10 +++++----- packages/rn-tester-e2e/package.json | 2 +- packages/rn-tester/package.json | 4 ++-- packages/typescript-config/package.json | 2 +- packages/virtualized-lists/package.json | 2 +- 32 files changed, 57 insertions(+), 57 deletions(-) diff --git a/package.json b/package.json index 7e292aee400c78..7ea295133dfee1 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,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.74.79", - "@react-native/metro-config": "0.74.79", + "@react-native/metro-babel-transformer": "0.74.80", + "@react-native/metro-config": "0.74.80", "@tsconfig/node18": "1.0.1", "@types/react": "^18.2.6", "@typescript-eslint/parser": "^6.7.4", diff --git a/packages/assets/package.json b/packages/assets/package.json index 99089ebbc3abe4..25e872676ad029 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/assets-registry", - "version": "0.74.79", + "version": "0.74.80", "description": "Asset support code for React Native.", "license": "MIT", "repository": { diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index 8b612805d09a70..e23943797d8f30 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-plugin-codegen", - "version": "0.74.79", + "version": "0.74.80", "description": "Babel plugin to generate native module and view manager code for React Native.", "license": "MIT", "repository": { @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@react-native/codegen": "0.74.79" + "@react-native/codegen": "0.74.80" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index c375a17328e896..19e922ac6d37f5 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.79", + "version": "0.74.80", "description": "Core CLI commands for React Native", "keywords": [ "react-native", @@ -24,8 +24,8 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.4", "@react-native-community/cli-tools": "13.6.4", - "@react-native/dev-middleware": "0.74.79", - "@react-native/metro-babel-transformer": "0.74.79", + "@react-native/dev-middleware": "0.74.80", + "@react-native/metro-babel-transformer": "0.74.80", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", diff --git a/packages/debugger-frontend/package.json b/packages/debugger-frontend/package.json index b2dd1b37cc92c2..a904d6f2247176 100644 --- a/packages/debugger-frontend/package.json +++ b/packages/debugger-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/debugger-frontend", - "version": "0.74.79", + "version": "0.74.80", "description": "Debugger frontend for React Native based on Chrome DevTools", "keywords": [ "react-native", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index 9f947c02a77833..09125aacaec0c7 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.79", + "version": "0.74.80", "description": "Dev server middleware for React Native", "keywords": [ "react-native", @@ -23,7 +23,7 @@ ], "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.79", + "@react-native/debugger-frontend": "0.74.80", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index acbda02e7673d6..d28336cd46edf1 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-config", - "version": "0.74.79", + "version": "0.74.80", "description": "ESLint config for React Native", "license": "MIT", "repository": { @@ -22,7 +22,7 @@ "dependencies": { "@babel/core": "^7.20.0", "@babel/eslint-parser": "^7.20.0", - "@react-native/eslint-plugin": "0.74.79", + "@react-native/eslint-plugin": "0.74.80", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "eslint-config-prettier": "^8.5.0", diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index 1910326dda9580..6e6b74993e2e40 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin", - "version": "0.74.79", + "version": "0.74.80", "description": "ESLint rules for @react-native/eslint-config", "license": "MIT", "repository": { diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index 29e3b16120fe59..926559ef2841ea 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin-specs", - "version": "0.74.79", + "version": "0.74.80", "description": "ESLint rules to validate NativeModule and Component Specs", "license": "MIT", "repository": { @@ -31,7 +31,7 @@ "@babel/eslint-parser": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/preset-flow": "^7.20.0", - "@react-native/codegen": "0.74.79", + "@react-native/codegen": "0.74.80", "make-dir": "^2.1.0", "pirates": "^4.0.1", "source-map-support": "0.5.0" diff --git a/packages/hermes-inspector-msggen/package.json b/packages/hermes-inspector-msggen/package.json index 76ff2a6a0c5dcd..ff08d83f10d4f7 100644 --- a/packages/hermes-inspector-msggen/package.json +++ b/packages/hermes-inspector-msggen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/hermes-inspector-msggen", - "version": "0.74.79", + "version": "0.74.80", "private": true, "description": "Hermes Inspector Message Generator for React Native", "license": "MIT", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index d451d7ad0650ed..36f5674f24d604 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-config", - "version": "0.74.79", + "version": "0.74.80", "description": "Metro configuration for React Native.", "license": "MIT", "repository": { @@ -26,8 +26,8 @@ "dist" ], "dependencies": { - "@react-native/js-polyfills": "0.74.79", - "@react-native/metro-babel-transformer": "0.74.79", + "@react-native/js-polyfills": "0.74.80", + "@react-native/metro-babel-transformer": "0.74.80", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" } diff --git a/packages/normalize-color/package.json b/packages/normalize-color/package.json index e4415f586c6c6d..639450c24196d7 100644 --- a/packages/normalize-color/package.json +++ b/packages/normalize-color/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/normalize-colors", - "version": "0.74.79", + "version": "0.74.80", "description": "Color normalization for React Native.", "license": "MIT", "repository": { diff --git a/packages/polyfills/package.json b/packages/polyfills/package.json index 087902ed412b0f..9ca5625ae3f9ea 100644 --- a/packages/polyfills/package.json +++ b/packages/polyfills/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/js-polyfills", - "version": "0.74.79", + "version": "0.74.80", "description": "Polyfills for React Native.", "license": "MIT", "repository": { diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index 505de80091e39e..a7f9a5226396fc 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-preset", - "version": "0.74.79", + "version": "0.74.80", "description": "Babel preset for React Native applications", "main": "src/index.js", "repository": { @@ -54,7 +54,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.79", + "@react-native/babel-plugin-codegen": "0.74.80", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index e1f8140c1917ef..213d0a31613b33 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-babel-transformer", - "version": "0.74.79", + "version": "0.74.80", "description": "Babel transformer for React Native applications.", "main": "src/index.js", "repository": { @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.79", + "@react-native/babel-preset": "0.74.80", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, diff --git a/packages/react-native-bots/package.json b/packages/react-native-bots/package.json index b6cb8ad9bf926e..dcee23c56afbf4 100644 --- a/packages/react-native-bots/package.json +++ b/packages/react-native-bots/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/bots", "description": "React Native Bots", - "version": "0.74.79", + "version": "0.74.80", "private": true, "license": "MIT", "repository": { diff --git a/packages/react-native-codegen-typescript-test/package.json b/packages/react-native-codegen-typescript-test/package.json index dcd65c25f27dd6..8bd88f0996848c 100644 --- a/packages/react-native-codegen-typescript-test/package.json +++ b/packages/react-native-codegen-typescript-test/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen-typescript-test", - "version": "0.74.79", + "version": "0.74.80", "private": true, "description": "TypeScript related unit test for @react-native/codegen", "license": "MIT", @@ -19,7 +19,7 @@ "prepare": "yarn run build" }, "dependencies": { - "@react-native/codegen": "0.74.79" + "@react-native/codegen": "0.74.80" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index f8a6d27780ae52..f3d4fbda544e30 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen", - "version": "0.74.79", + "version": "0.74.80", "description": "Code generation tools for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-gradle-plugin/package.json b/packages/react-native-gradle-plugin/package.json index 42892b200ec286..9102cac7736032 100644 --- a/packages/react-native-gradle-plugin/package.json +++ b/packages/react-native-gradle-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/gradle-plugin", - "version": "0.74.79", + "version": "0.74.80", "description": "Gradle Plugin for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json index 8879a352025210..2b28a189473dd2 100644 --- a/packages/react-native-popup-menu-android/package.json +++ b/packages/react-native-popup-menu-android/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/popup-menu-android", - "version": "0.74.79", + "version": "0.74.80", "description": "PopupMenu for the Android platform", "main": "index.js", "files": [ @@ -17,7 +17,7 @@ ], "license": "MIT", "devDependencies": { - "@react-native/codegen": "0.74.79" + "@react-native/codegen": "0.74.80" }, "peerDependencies": { "@types/react": "^18.2.6", diff --git a/packages/react-native-test-renderer/package.json b/packages/react-native-test-renderer/package.json index f7d361d3c61aa4..40c0ff65001cf5 100644 --- a/packages/react-native-test-renderer/package.json +++ b/packages/react-native-test-renderer/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/test-renderer", "private": true, - "version": "0.74.79", + "version": "0.74.80", "description": "A Test rendering library for React Native", "license": "MIT", "devDependencies": { diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index de125cd5e4a65a..1bec5380a9b217 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -17,7 +17,7 @@ const version: $ReadOnly<{ major: 0, minor: 74, patch: 0, - prerelease: 'rc.8', + prerelease: 'rc.9', }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index f233aff3e56347..6fd00480e6cccb 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -24,7 +24,7 @@ RCTVersionMajor: @(0), RCTVersionMinor: @(74), RCTVersionPatch: @(0), - RCTVersionPrerelease: @"rc.8", + RCTVersionPrerelease: @"rc.9", }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index 83734333a4d542..fc666487015b28 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.0-rc.8 +VERSION_NAME=0.74.0-rc.9 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index 88495e8e736a34..923eab4a67a8af 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -18,5 +18,5 @@ public class ReactNativeVersion { "major", 0, "minor", 74, "patch", 0, - "prerelease", "rc.8"); + "prerelease", "rc.9"); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index ecfb41e9f0adcf..65a437dce36e9c 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -18,7 +18,7 @@ constexpr struct { int32_t Major = 0; int32_t Minor = 74; int32_t Patch = 0; - std::string_view Prerelease = "rc.8"; + std::string_view Prerelease = "rc.9"; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index b5ed6cae77ff83..cac901266bc5fc 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.0-rc.8", + "version": "0.74.0-rc.9", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -110,13 +110,13 @@ "@react-native-community/cli": "13.6.4", "@react-native-community/cli-platform-android": "13.6.4", "@react-native-community/cli-platform-ios": "13.6.4", - "@react-native/assets-registry": "0.74.79", - "@react-native/codegen": "0.74.79", - "@react-native/community-cli-plugin": "0.74.79", - "@react-native/gradle-plugin": "0.74.79", - "@react-native/js-polyfills": "0.74.79", - "@react-native/normalize-colors": "0.74.79", - "@react-native/virtualized-lists": "0.74.79", + "@react-native/assets-registry": "0.74.80", + "@react-native/codegen": "0.74.80", + "@react-native/community-cli-plugin": "0.74.80", + "@react-native/gradle-plugin": "0.74.80", + "@react-native/js-polyfills": "0.74.80", + "@react-native/normalize-colors": "0.74.80", + "@react-native/virtualized-lists": "0.74.80", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index b58bdd40f47b7f..159a1e94c78aa2 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,16 +11,16 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.0-rc.8" + "react-native": "0.74.0-rc.9" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.79", - "@react-native/eslint-config": "0.74.79", - "@react-native/metro-config": "0.74.79", - "@react-native/typescript-config": "0.74.79", + "@react-native/babel-preset": "0.74.80", + "@react-native/eslint-config": "0.74.80", + "@react-native/metro-config": "0.74.80", + "@react-native/typescript-config": "0.74.80", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", diff --git a/packages/rn-tester-e2e/package.json b/packages/rn-tester-e2e/package.json index a0aacdb0c08bcc..db3c86285bd99a 100644 --- a/packages/rn-tester-e2e/package.json +++ b/packages/rn-tester-e2e/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/tester-e2e", "private": true, - "version": "0.74.79", + "version": "0.74.80", "license": "MIT", "description": "React Native E2E tester app.", "homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/rn-tester-e2e", diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index 20008a63a2f4e1..d78f7dc9062c8e 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/tester", - "version": "0.74.79", + "version": "0.74.80", "private": true, "description": "React Native tester app.", "license": "MIT", @@ -26,7 +26,7 @@ "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "@react-native/popup-menu-android": "0.74.79" + "@react-native/popup-menu-android": "0.74.80" }, "peerDependencies": { "react": "18.2.0", diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index d4fcf0aac62af7..190c871d550e84 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/typescript-config", - "version": "0.74.79", + "version": "0.74.80", "description": "Default TypeScript configuration for React Native apps", "license": "MIT", "repository": { diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index a3864a4c92a445..554f71dd46e64e 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/virtualized-lists", - "version": "0.74.79", + "version": "0.74.80", "description": "Virtualized lists for React Native.", "license": "MIT", "repository": { From 5d1272f9cd0f820032799ea33d2edfc94eed1bbf Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 22 Apr 2024 11:44:22 +0100 Subject: [PATCH 132/223] Update Podfile.lock Changelog: [Internal] --- packages/rn-tester/Podfile.lock | 498 ++++++++++++++++---------------- 1 file changed, 249 insertions(+), 249 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index e2df4583d9f188..d8e1ae9a6a5eac 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,13 +1,13 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.0-rc.8) + - FBLazyVector (0.74.0-rc.9) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.0-rc.8): - - hermes-engine/Pre-built (= 0.74.0-rc.8) - - hermes-engine/Pre-built (0.74.0-rc.8) - - MyNativeView (0.74.79): + - hermes-engine (0.74.0-rc.9): + - hermes-engine/Pre-built (= 0.74.0-rc.9) + - hermes-engine/Pre-built (0.74.0-rc.9) + - MyNativeView (0.74.80): - DoubleConversion - glog - hermes-engine @@ -28,7 +28,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - NativeCxxModuleExample (0.74.79): + - NativeCxxModuleExample (0.74.80): - DoubleConversion - glog - hermes-engine @@ -66,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.0-rc.8) - - RCTRequired (0.74.0-rc.8) - - RCTTypeSafety (0.74.0-rc.8): - - FBLazyVector (= 0.74.0-rc.8) - - RCTRequired (= 0.74.0-rc.8) - - React-Core (= 0.74.0-rc.8) - - React (0.74.0-rc.8): - - React-Core (= 0.74.0-rc.8) - - React-Core/DevSupport (= 0.74.0-rc.8) - - React-Core/RCTWebSocket (= 0.74.0-rc.8) - - React-RCTActionSheet (= 0.74.0-rc.8) - - React-RCTAnimation (= 0.74.0-rc.8) - - React-RCTBlob (= 0.74.0-rc.8) - - React-RCTImage (= 0.74.0-rc.8) - - React-RCTLinking (= 0.74.0-rc.8) - - React-RCTNetwork (= 0.74.0-rc.8) - - React-RCTSettings (= 0.74.0-rc.8) - - React-RCTText (= 0.74.0-rc.8) - - React-RCTVibration (= 0.74.0-rc.8) - - React-callinvoker (0.74.0-rc.8) - - React-Codegen (0.74.0-rc.8): + - RCTDeprecation (0.74.0-rc.9) + - RCTRequired (0.74.0-rc.9) + - RCTTypeSafety (0.74.0-rc.9): + - FBLazyVector (= 0.74.0-rc.9) + - RCTRequired (= 0.74.0-rc.9) + - React-Core (= 0.74.0-rc.9) + - React (0.74.0-rc.9): + - React-Core (= 0.74.0-rc.9) + - React-Core/DevSupport (= 0.74.0-rc.9) + - React-Core/RCTWebSocket (= 0.74.0-rc.9) + - React-RCTActionSheet (= 0.74.0-rc.9) + - React-RCTAnimation (= 0.74.0-rc.9) + - React-RCTBlob (= 0.74.0-rc.9) + - React-RCTImage (= 0.74.0-rc.9) + - React-RCTLinking (= 0.74.0-rc.9) + - React-RCTNetwork (= 0.74.0-rc.9) + - React-RCTSettings (= 0.74.0-rc.9) + - React-RCTText (= 0.74.0-rc.9) + - React-RCTVibration (= 0.74.0-rc.9) + - React-callinvoker (0.74.0-rc.9) + - React-Codegen (0.74.0-rc.9): - DoubleConversion - glog - hermes-engine @@ -106,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.0-rc.8): + - React-Core (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.8) + - React-Core/Default (= 0.74.0-rc.9) - React-cxxreact - React-featureflags - React-hermes @@ -123,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.0-rc.8): + - React-Core/CoreModulesHeaders (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.0-rc.8): + - React-Core/Default (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -156,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.0-rc.8): + - React-Core/DevSupport (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.8) - - React-Core/RCTWebSocket (= 0.74.0-rc.8) + - React-Core/Default (= 0.74.0-rc.9) + - React-Core/RCTWebSocket (= 0.74.0-rc.9) - React-cxxreact - React-featureflags - React-hermes @@ -174,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.0-rc.8): + - React-Core/RCTActionSheetHeaders (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -191,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.0-rc.8): + - React-Core/RCTAnimationHeaders (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -208,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.0-rc.8): + - React-Core/RCTBlobHeaders (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.0-rc.8): + - React-Core/RCTImageHeaders (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -242,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.0-rc.8): + - React-Core/RCTLinkingHeaders (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.0-rc.8): + - React-Core/RCTNetworkHeaders (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -276,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.0-rc.8): + - React-Core/RCTPushNotificationHeaders (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -293,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.0-rc.8): + - React-Core/RCTSettingsHeaders (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -310,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.0-rc.8): + - React-Core/RCTTextHeaders (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -327,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.0-rc.8): + - React-Core/RCTVibrationHeaders (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -344,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.0-rc.8): + - React-Core/RCTWebSocket (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.8) + - React-Core/Default (= 0.74.0-rc.9) - React-cxxreact - React-featureflags - React-hermes @@ -361,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.0-rc.8): + - React-CoreModules (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.0-rc.8) + - RCTTypeSafety (= 0.74.0-rc.9) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.0-rc.8) - - React-jsi (= 0.74.0-rc.8) + - React-Core/CoreModulesHeaders (= 0.74.0-rc.9) + - React-jsi (= 0.74.0-rc.9) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.0-rc.8) + - React-RCTImage (= 0.74.0-rc.9) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.0-rc.8): + - React-cxxreact (0.74.0-rc.9): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.8) - - React-debug (= 0.74.0-rc.8) - - React-jsi (= 0.74.0-rc.8) + - React-callinvoker (= 0.74.0-rc.9) + - React-debug (= 0.74.0-rc.9) + - React-jsi (= 0.74.0-rc.9) - React-jsinspector - - React-logger (= 0.74.0-rc.8) - - React-perflogger (= 0.74.0-rc.8) - - React-runtimeexecutor (= 0.74.0-rc.8) - - React-debug (0.74.0-rc.8) - - React-Fabric (0.74.0-rc.8): + - React-logger (= 0.74.0-rc.9) + - React-perflogger (= 0.74.0-rc.9) + - React-runtimeexecutor (= 0.74.0-rc.9) + - React-debug (0.74.0-rc.9) + - React-Fabric (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -401,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.0-rc.8) - - React-Fabric/attributedstring (= 0.74.0-rc.8) - - React-Fabric/componentregistry (= 0.74.0-rc.8) - - React-Fabric/componentregistrynative (= 0.74.0-rc.8) - - React-Fabric/components (= 0.74.0-rc.8) - - React-Fabric/core (= 0.74.0-rc.8) - - React-Fabric/imagemanager (= 0.74.0-rc.8) - - React-Fabric/leakchecker (= 0.74.0-rc.8) - - React-Fabric/mounting (= 0.74.0-rc.8) - - React-Fabric/scheduler (= 0.74.0-rc.8) - - React-Fabric/telemetry (= 0.74.0-rc.8) - - React-Fabric/templateprocessor (= 0.74.0-rc.8) - - React-Fabric/textlayoutmanager (= 0.74.0-rc.8) - - React-Fabric/uimanager (= 0.74.0-rc.8) + - React-Fabric/animations (= 0.74.0-rc.9) + - React-Fabric/attributedstring (= 0.74.0-rc.9) + - React-Fabric/componentregistry (= 0.74.0-rc.9) + - React-Fabric/componentregistrynative (= 0.74.0-rc.9) + - React-Fabric/components (= 0.74.0-rc.9) + - React-Fabric/core (= 0.74.0-rc.9) + - React-Fabric/imagemanager (= 0.74.0-rc.9) + - React-Fabric/leakchecker (= 0.74.0-rc.9) + - React-Fabric/mounting (= 0.74.0-rc.9) + - React-Fabric/scheduler (= 0.74.0-rc.9) + - React-Fabric/telemetry (= 0.74.0-rc.9) + - React-Fabric/templateprocessor (= 0.74.0-rc.9) + - React-Fabric/textlayoutmanager (= 0.74.0-rc.9) + - React-Fabric/uimanager (= 0.74.0-rc.9) - React-graphics - React-jsi - React-jsiexecutor @@ -423,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.0-rc.8): + - React-Fabric/animations (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -442,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.0-rc.8): + - React-Fabric/attributedstring (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -461,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.0-rc.8): + - React-Fabric/componentregistry (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.0-rc.8): + - React-Fabric/componentregistrynative (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.0-rc.8): + - React-Fabric/components (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -510,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.0-rc.8) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.8) - - React-Fabric/components/modal (= 0.74.0-rc.8) - - React-Fabric/components/rncore (= 0.74.0-rc.8) - - React-Fabric/components/root (= 0.74.0-rc.8) - - React-Fabric/components/safeareaview (= 0.74.0-rc.8) - - React-Fabric/components/scrollview (= 0.74.0-rc.8) - - React-Fabric/components/text (= 0.74.0-rc.8) - - React-Fabric/components/textinput (= 0.74.0-rc.8) - - React-Fabric/components/unimplementedview (= 0.74.0-rc.8) - - React-Fabric/components/view (= 0.74.0-rc.8) + - React-Fabric/components/inputaccessory (= 0.74.0-rc.9) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.9) + - React-Fabric/components/modal (= 0.74.0-rc.9) + - React-Fabric/components/rncore (= 0.74.0-rc.9) + - React-Fabric/components/root (= 0.74.0-rc.9) + - React-Fabric/components/safeareaview (= 0.74.0-rc.9) + - React-Fabric/components/scrollview (= 0.74.0-rc.9) + - React-Fabric/components/text (= 0.74.0-rc.9) + - React-Fabric/components/textinput (= 0.74.0-rc.9) + - React-Fabric/components/unimplementedview (= 0.74.0-rc.9) + - React-Fabric/components/view (= 0.74.0-rc.9) - React-graphics - React-jsi - React-jsiexecutor @@ -529,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.0-rc.8): + - React-Fabric/components/inputaccessory (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -548,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.8): + - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -567,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.0-rc.8): + - React-Fabric/components/modal (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -586,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.0-rc.8): + - React-Fabric/components/rncore (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.0-rc.8): + - React-Fabric/components/root (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.0-rc.8): + - React-Fabric/components/safeareaview (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.0-rc.8): + - React-Fabric/components/scrollview (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.0-rc.8): + - React-Fabric/components/text (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.0-rc.8): + - React-Fabric/components/textinput (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -700,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.0-rc.8): + - React-Fabric/components/unimplementedview (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -719,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.0-rc.8): + - React-Fabric/components/view (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -739,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.0-rc.8): + - React-Fabric/core (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.0-rc.8): + - React-Fabric/imagemanager (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -777,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.0-rc.8): + - React-Fabric/leakchecker (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -796,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.0-rc.8): + - React-Fabric/mounting (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -815,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.0-rc.8): + - React-Fabric/scheduler (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -834,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.0-rc.8): + - React-Fabric/telemetry (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.0-rc.8): + - React-Fabric/templateprocessor (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -872,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.0-rc.8): + - React-Fabric/textlayoutmanager (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -892,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.0-rc.8): + - React-Fabric/uimanager (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog @@ -911,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.0-rc.8): + - React-FabricImage (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.0-rc.8) - - RCTTypeSafety (= 0.74.0-rc.8) + - RCTRequired (= 0.74.0-rc.9) + - RCTTypeSafety (= 0.74.0-rc.9) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.0-rc.8) + - React-jsiexecutor (= 0.74.0-rc.9) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.0-rc.8) - - React-graphics (0.74.0-rc.8): + - React-featureflags (0.74.0-rc.9) + - React-graphics (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.0-rc.8) + - React-Core/Default (= 0.74.0-rc.9) - React-utils - - React-hermes (0.74.0-rc.8): + - React-hermes (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.8) + - React-cxxreact (= 0.74.0-rc.9) - React-jsi - - React-jsiexecutor (= 0.74.0-rc.8) + - React-jsiexecutor (= 0.74.0-rc.9) - React-jsinspector - - React-perflogger (= 0.74.0-rc.8) + - React-perflogger (= 0.74.0-rc.9) - React-runtimeexecutor - - React-ImageManager (0.74.0-rc.8): + - React-ImageManager (0.74.0-rc.9): - glog - RCT-Folly/Fabric - React-Core/Default @@ -958,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.0-rc.8): + - React-jserrorhandler (0.74.0-rc.9): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.0-rc.8): + - React-jsi (0.74.0-rc.9): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.0-rc.8): + - React-jsiexecutor (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.8) - - React-jsi (= 0.74.0-rc.8) + - React-cxxreact (= 0.74.0-rc.9) + - React-jsi (= 0.74.0-rc.9) - React-jsinspector - - React-perflogger (= 0.74.0-rc.8) - - React-jsinspector (0.74.0-rc.8): + - React-perflogger (= 0.74.0-rc.9) + - React-jsinspector (0.74.0-rc.9): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.0-rc.8) - - React-jsitracing (0.74.0-rc.8): + - React-runtimeexecutor (= 0.74.0-rc.9) + - React-jsitracing (0.74.0-rc.9): - React-jsi - - React-logger (0.74.0-rc.8): + - React-logger (0.74.0-rc.9): - glog - - React-Mapbuffer (0.74.0-rc.8): + - React-Mapbuffer (0.74.0-rc.9): - glog - React-debug - - React-nativeconfig (0.74.0-rc.8) - - React-NativeModulesApple (0.74.0-rc.8): + - React-nativeconfig (0.74.0-rc.9) + - React-NativeModulesApple (0.74.0-rc.9): - glog - hermes-engine - React-callinvoker @@ -1007,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.0-rc.8) - - React-RCTActionSheet (0.74.0-rc.8): - - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.8) - - React-RCTAnimation (0.74.0-rc.8): + - React-perflogger (0.74.0-rc.9) + - React-RCTActionSheet (0.74.0-rc.9): + - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.9) + - React-RCTAnimation (0.74.0-rc.9): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1018,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.0-rc.8): + - React-RCTAppDelegate (0.74.0-rc.9): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1041,7 +1041,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.0-rc.8): + - React-RCTBlob (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1054,7 +1054,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.0-rc.8): + - React-RCTFabric (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1074,7 +1074,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.0-rc.8): + - React-RCTImage (0.74.0-rc.9): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1083,14 +1083,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.0-rc.8): + - React-RCTLinking (0.74.0-rc.9): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.0-rc.8) - - React-jsi (= 0.74.0-rc.8) + - React-Core/RCTLinkingHeaders (= 0.74.0-rc.9) + - React-jsi (= 0.74.0-rc.9) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.0-rc.8) - - React-RCTNetwork (0.74.0-rc.8): + - ReactCommon/turbomodule/core (= 0.74.0-rc.9) + - React-RCTNetwork (0.74.0-rc.9): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1098,14 +1098,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.0-rc.8): + - React-RCTPushNotification (0.74.0-rc.9): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.0-rc.8): + - React-RCTSettings (0.74.0-rc.9): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1113,29 +1113,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.0-rc.8): + - React-RCTTest (0.74.0-rc.9): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.0-rc.8) - - React-CoreModules (= 0.74.0-rc.8) - - React-jsi (= 0.74.0-rc.8) - - ReactCommon/turbomodule/core (= 0.74.0-rc.8) - - React-RCTText (0.74.0-rc.8): - - React-Core/RCTTextHeaders (= 0.74.0-rc.8) + - React-Core (= 0.74.0-rc.9) + - React-CoreModules (= 0.74.0-rc.9) + - React-jsi (= 0.74.0-rc.9) + - ReactCommon/turbomodule/core (= 0.74.0-rc.9) + - React-RCTText (0.74.0-rc.9): + - React-Core/RCTTextHeaders (= 0.74.0-rc.9) - Yoga - - React-RCTVibration (0.74.0-rc.8): + - React-RCTVibration (0.74.0-rc.9): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.0-rc.8): + - React-rendererdebug (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.0-rc.8) - - React-RuntimeApple (0.74.0-rc.8): + - React-rncore (0.74.0-rc.9) + - React-RuntimeApple (0.74.0-rc.9): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1153,7 +1153,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.0-rc.8): + - React-RuntimeCore (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1166,9 +1166,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.0-rc.8): - - React-jsi (= 0.74.0-rc.8) - - React-RuntimeHermes (0.74.0-rc.8): + - React-runtimeexecutor (0.74.0-rc.9): + - React-jsi (= 0.74.0-rc.9) + - React-RuntimeHermes (0.74.0-rc.9): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1179,7 +1179,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.0-rc.8): + - React-runtimescheduler (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1191,15 +1191,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.0-rc.8): + - React-utils (0.74.0-rc.9): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.0-rc.8) - - ReactCommon (0.74.0-rc.8): - - ReactCommon/turbomodule (= 0.74.0-rc.8) - - ReactCommon-Samples (0.74.0-rc.8): + - React-jsi (= 0.74.0-rc.9) + - ReactCommon (0.74.0-rc.9): + - ReactCommon/turbomodule (= 0.74.0-rc.9) + - ReactCommon-Samples (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1210,44 +1210,44 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.0-rc.8): + - ReactCommon/turbomodule (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.8) - - React-cxxreact (= 0.74.0-rc.8) - - React-jsi (= 0.74.0-rc.8) - - React-logger (= 0.74.0-rc.8) - - React-perflogger (= 0.74.0-rc.8) - - ReactCommon/turbomodule/bridging (= 0.74.0-rc.8) - - ReactCommon/turbomodule/core (= 0.74.0-rc.8) - - ReactCommon/turbomodule/bridging (0.74.0-rc.8): + - React-callinvoker (= 0.74.0-rc.9) + - React-cxxreact (= 0.74.0-rc.9) + - React-jsi (= 0.74.0-rc.9) + - React-logger (= 0.74.0-rc.9) + - React-perflogger (= 0.74.0-rc.9) + - ReactCommon/turbomodule/bridging (= 0.74.0-rc.9) + - ReactCommon/turbomodule/core (= 0.74.0-rc.9) + - ReactCommon/turbomodule/bridging (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.8) - - React-cxxreact (= 0.74.0-rc.8) - - React-jsi (= 0.74.0-rc.8) - - React-logger (= 0.74.0-rc.8) - - React-perflogger (= 0.74.0-rc.8) - - ReactCommon/turbomodule/core (0.74.0-rc.8): + - React-callinvoker (= 0.74.0-rc.9) + - React-cxxreact (= 0.74.0-rc.9) + - React-jsi (= 0.74.0-rc.9) + - React-logger (= 0.74.0-rc.9) + - React-perflogger (= 0.74.0-rc.9) + - ReactCommon/turbomodule/core (0.74.0-rc.9): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.8) - - React-cxxreact (= 0.74.0-rc.8) - - React-debug (= 0.74.0-rc.8) - - React-jsi (= 0.74.0-rc.8) - - React-logger (= 0.74.0-rc.8) - - React-perflogger (= 0.74.0-rc.8) - - React-utils (= 0.74.0-rc.8) - - ScreenshotManager (0.74.79): + - React-callinvoker (= 0.74.0-rc.9) + - React-cxxreact (= 0.74.0-rc.9) + - React-debug (= 0.74.0-rc.9) + - React-jsi (= 0.74.0-rc.9) + - React-logger (= 0.74.0-rc.9) + - React-perflogger (= 0.74.0-rc.9) + - React-utils (= 0.74.0-rc.9) + - ScreenshotManager (0.74.80): - DoubleConversion - glog - hermes-engine @@ -1467,66 +1467,66 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 72d3b09a21c97463594ef6908c27b7463cd1418b + FBLazyVector: 7cdfba8b4fbe5a1d8ffade8c926ddcbd7ef7547f fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 197a5da9e3c080d66e6cd16bee272b59ff551e1e - MyNativeView: 84b3bc8269e1e22b1cc90ae933d9ca324bf5930c - NativeCxxModuleExample: 0157cac8fc6cf1128b2e62c621da0a9c37b4fc15 + hermes-engine: 25f62f55d7f9efed5910366b12e083b77effd566 + MyNativeView: 32986c57e654b2d8a8715e7fb9bfa1e85738c995 + NativeCxxModuleExample: 4e2f03fbb409331135b72875d394f432f637165f OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df - RCTDeprecation: 0b99a3b47529424f621f07566b1ca43a2d5fe28b - RCTRequired: cbcacbd2f29f0aba20a1a114b2a51283d322c4fa - RCTTypeSafety: 4a4992297e81f7cfca42f5162453da8128a6328e - React: febc26a35006c5f8103976a1a622363284b8a0cd - React-callinvoker: 4e28c0be66e2a2c273091b8af8ce947c4b018620 - React-Codegen: 5f420b25589637c76159b221590cb5382ce66fc0 - React-Core: e04cc3d0dbe2397b7b7690bd229a402a7a952ece - React-CoreModules: 6c5848589e351e352a039e7c2d13197953a2fd9d - React-cxxreact: 7310ff449c2249bd6c7616f8ab5a8ba2e9c124cf - React-debug: 38e3d7aa188794540e3c1703019b2f54fe77805a - React-Fabric: bc0b3ed744ea0b33a2a6ab73ec1c3668b836baf3 - React-FabricImage: 407f087e87c3d21c168a8572295c3e543073f1a5 - React-featureflags: 89431e2df1bc7bf2fb65db8525ced374083d2d78 - React-graphics: 40dd7a0bece0c27bea0ac084b62956b079b95ce2 - React-hermes: ea98922aaf28bb5b8a6fe431f509b1e9e53ba3a7 - React-ImageManager: a8a02347b167ad960e461de5c4e8bdc68dd6ed2b - React-jserrorhandler: be170b0a0847a60533e1ef1e5aa14225c17b0a05 - React-jsi: f272c8b2b5bfca43f98e394484c9dac903a4af4b - React-jsiexecutor: f98c047914f7c1facca0f8a9c891bb4df431aacf - React-jsinspector: 92515a5ca3909ce2d859cd2295c0e5c7ec825c27 - React-jsitracing: 899f4d1ea5b546e9492025c2ae51e3f1b95d02ad - React-logger: 55862754d59c1fc8370aaff01399fdd75758cc16 - React-Mapbuffer: 604db834d9adf8848451a325f26ffa604cdfd306 - React-nativeconfig: 829ee8dde46d5b24911d61581f29682a851c97b9 - React-NativeModulesApple: cc532520c05e85a4f7fa687db893148453bf8e23 - React-perflogger: d1298b3577ab17efab10dd4d660a87285c565194 - React-RCTActionSheet: f37870bb9318cf93d26703d822dd66247ece634a - React-RCTAnimation: 21bef35f62c0880e5637b31b18aff12d3b671638 - React-RCTAppDelegate: 29f8770ce080384ff7ca27771ac6cd0da3f9881c - React-RCTBlob: 947d29d1338eadf5e4d0f4735a6580f657590f90 - React-RCTFabric: 2aedbce4ee9f70fa62d44325b31fb3fd6da89ede - React-RCTImage: 14edcbabd09e9aea77482b7dd85d839660ea8be1 - React-RCTLinking: 2a72c0855eaacd519f2221e378bf22fa2dad87fd - React-RCTNetwork: 636691c944284873252548b22f232d4965c15bd6 - React-RCTPushNotification: 76496bcec129be98d948481734995e52671229cf - React-RCTSettings: 977fba8366367c0bb8ac2a3ea45532169d3be3f6 - React-RCTTest: 98f0043e6a4ebeb98b00ac277616e826807b730c - React-RCTText: f6d15a76eb9be65e928dc5282df0d00fcb26bcde - React-RCTVibration: 6315205f6737938bff7d9539982952ad918ec911 - React-rendererdebug: b50cb1b3fd19f1fcaa60a7b50768022a0459d9a1 - React-rncore: 0133475ecae49546ea8db2049960038445cc0b38 - React-RuntimeApple: 43fc3ef1cfd004233403ef86bbf6a237f9acc411 - React-RuntimeCore: ac96c4c587f9f595e856997de4c23893d112b683 - React-runtimeexecutor: bb28a0b7b1c770b6845950c46168b7d170363d1f - React-RuntimeHermes: bb99680cb71492c50e46d2b5f4db5f76ec1a6089 - React-runtimescheduler: 91c3069839ca10d2dd1d18dbe60a478f2bb77405 - React-utils: b3ef4d6a2c13c343b9150e3070fa1984a1c1ee27 - ReactCommon: a2081027a321e7dd4825855111d57954a01fb02a - ReactCommon-Samples: 3d3ce887af75a0c76bfa9d2d7133757b1f33c1e7 - ScreenshotManager: a02e43e45d7ef96a03f0470d746cb47086f8f7b5 + RCTDeprecation: 4007d9a7cdb37d57857630d3c9dd34911d34fc17 + RCTRequired: ca017732b65a2510769ee89fa061096242a33c1b + RCTTypeSafety: 636489c919b9732582629e3eb0ca59f9667c7653 + React: d6c16a004aa7db56be58f7762fb52c1c70865833 + React-callinvoker: 6193345c3ac9ff8f475ad29d56171454a8d98a09 + React-Codegen: 402c37590de360e89ae15f3a961b1be370bf7a30 + React-Core: 6ec35a93cc75249aa1846aadf25076e00bd3a170 + React-CoreModules: 7976ba58faf3f1a595aad2065810be6bb72d2381 + React-cxxreact: 131ec8ca1ea8196e1d31729b2597ab7c5a4d7555 + React-debug: 28aa244926b7daa7cd5c56639f480551118064fe + React-Fabric: 5187ae20be0c2b03eed8aa8d9e4b4c2dcf578a9e + React-FabricImage: a17653519bc8524a5749d90f138de014aed50777 + React-featureflags: 8b20cd902b74d0dcaed41be4fc8057a434b84298 + React-graphics: fe3349e75969cb5f6749fcefb61c2d28aacb81de + React-hermes: 5bb17ca81a49a817e5577c7a13d6be8bb6480e3f + React-ImageManager: 2a2330a5e05af7b3d51d28c2678df1a9d29b681b + React-jserrorhandler: 845924fd672744d807142b13cd4c63941a446e89 + React-jsi: 6c11fdea24155c881defad6c7da1c76598adf3e7 + React-jsiexecutor: 1b7877076f33670e1aabd42c8bd3a5658eea09f1 + React-jsinspector: 13b253c306902caee478cd8b0d3b6c94a8669480 + React-jsitracing: 2eef7c2f20724132d067629087693d66af3cf565 + React-logger: c4f94ac23ce01e558b50ad7dfb9d6f09025701dd + React-Mapbuffer: fbe9c6b6c762e35bba9e8259d6e5e5a22ede7986 + React-nativeconfig: cd40a0c8f2f9e7b28425b100eb7f2ac1797c5dbc + React-NativeModulesApple: cb3ff0cd989c756c7a9069a705c5c2f280059f86 + React-perflogger: 6e3b6a35ac4113ac1ef93a42a483ca242ae48e7a + React-RCTActionSheet: 47cb6904aa9928e183e784cb77b74f508d9e1716 + React-RCTAnimation: 54225a4b095ce5818788ad2abd07824233a1f005 + React-RCTAppDelegate: c6c879689be02866993fbf938376dc98d818d12a + React-RCTBlob: eeeeeda9464aad65848d5d6afc768c18c26a3b0f + React-RCTFabric: 6c7843e167f8ada90ac929fd1e4874b7b10fb28d + React-RCTImage: 90f238c8333cbf3c6e52e8f5b76ffcd4a83c6b6e + React-RCTLinking: 652dea3535bb1cc8b0f5028063319a5b69d94fb2 + React-RCTNetwork: 907ce71e420aaa98e4281e9a6859b0fea3d99f01 + React-RCTPushNotification: b590db41c9b4915f700135ec75e61557ee040e7a + React-RCTSettings: 1b4756b7dc47e6cac710f985b5253f2c8777683b + React-RCTTest: c0fafe6fb58aeaddc6e86230343b10e1690f15c6 + React-RCTText: a4785071b9b0e50ad7bf4d7766b35f8defc0c851 + React-RCTVibration: c0397717d1318a6aca162ab0e5a6a25122887fd2 + React-rendererdebug: 6933c7b0791475f0bbdec04567c604dbaa40ac91 + React-rncore: 5504d3df923ff3402bdfdc07632650e6ea5f06f3 + React-RuntimeApple: 55c8720ad3aa844134218b58a7c5df43625c550d + React-RuntimeCore: e4626fb0c0b1f5243b88fc8705004fe044634608 + React-runtimeexecutor: cfe9fd59c083f75bd24f7514c59ff7104f7b804a + React-RuntimeHermes: e37819ab6a05eadcd230ef5c9aa350871e21aedb + React-runtimescheduler: a7eace44357207a91a32d4ad497c3d1ff1306eb0 + React-utils: ab1d0edc4d9725b9979c192ffd6062365c898d7b + ReactCommon: 5448e997e7732e230daebf51eb9996727b4a66b9 + ReactCommon-Samples: e68556a0d8314b1ac159f16828c0f8e63a41de1a + ScreenshotManager: 826d76f0fd91b2e9c9777792be25d20bb881e957 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: 432275e56eae8816087eb8842bacbfe2eed1dc92 + Yoga: cd5560858f9d10b5446d89882622d3d0db722148 PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf From 972b42016ef02dc3cecf9743bad82c9fd2068805 Mon Sep 17 00:00:00 2001 From: Distiller Date: Mon, 22 Apr 2024 11:41:17 +0000 Subject: [PATCH 133/223] Release 0.74.0 #publish-packages-to-npm&latest --- package.json | 4 ++-- packages/assets/package.json | 2 +- packages/babel-plugin-codegen/package.json | 4 ++-- packages/community-cli-plugin/package.json | 6 +++--- packages/debugger-frontend/package.json | 2 +- packages/dev-middleware/package.json | 4 ++-- packages/eslint-config-react-native/package.json | 4 ++-- packages/eslint-plugin-react-native/package.json | 2 +- packages/eslint-plugin-specs/package.json | 4 ++-- packages/hermes-inspector-msggen/package.json | 2 +- packages/metro-config/package.json | 6 +++--- packages/normalize-color/package.json | 2 +- packages/polyfills/package.json | 2 +- packages/react-native-babel-preset/package.json | 4 ++-- .../react-native-babel-transformer/package.json | 4 ++-- packages/react-native-bots/package.json | 2 +- .../package.json | 4 ++-- packages/react-native-codegen/package.json | 2 +- packages/react-native-gradle-plugin/package.json | 2 +- .../react-native-popup-menu-android/package.json | 4 ++-- packages/react-native-test-renderer/package.json | 2 +- .../Libraries/Core/ReactNativeVersion.js | 2 +- packages/react-native/React/Base/RCTVersion.m | 2 +- .../react-native/ReactAndroid/gradle.properties | 2 +- .../modules/systeminfo/ReactNativeVersion.java | 2 +- .../ReactCommon/cxxreact/ReactNativeVersion.h | 2 +- packages/react-native/package.json | 16 ++++++++-------- packages/react-native/template/package.json | 10 +++++----- packages/rn-tester-e2e/package.json | 2 +- packages/rn-tester/package.json | 4 ++-- packages/typescript-config/package.json | 2 +- packages/virtualized-lists/package.json | 2 +- 32 files changed, 57 insertions(+), 57 deletions(-) diff --git a/package.json b/package.json index 7ea295133dfee1..0e9f0a8b248d17 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,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.74.80", - "@react-native/metro-config": "0.74.80", + "@react-native/metro-babel-transformer": "0.74.81", + "@react-native/metro-config": "0.74.81", "@tsconfig/node18": "1.0.1", "@types/react": "^18.2.6", "@typescript-eslint/parser": "^6.7.4", diff --git a/packages/assets/package.json b/packages/assets/package.json index 25e872676ad029..6b9083e6ded9ab 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/assets-registry", - "version": "0.74.80", + "version": "0.74.81", "description": "Asset support code for React Native.", "license": "MIT", "repository": { diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index e23943797d8f30..e7d9f385c1e4ee 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-plugin-codegen", - "version": "0.74.80", + "version": "0.74.81", "description": "Babel plugin to generate native module and view manager code for React Native.", "license": "MIT", "repository": { @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@react-native/codegen": "0.74.80" + "@react-native/codegen": "0.74.81" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 19e922ac6d37f5..ec332dea890b4f 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.80", + "version": "0.74.81", "description": "Core CLI commands for React Native", "keywords": [ "react-native", @@ -24,8 +24,8 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.4", "@react-native-community/cli-tools": "13.6.4", - "@react-native/dev-middleware": "0.74.80", - "@react-native/metro-babel-transformer": "0.74.80", + "@react-native/dev-middleware": "0.74.81", + "@react-native/metro-babel-transformer": "0.74.81", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", diff --git a/packages/debugger-frontend/package.json b/packages/debugger-frontend/package.json index a904d6f2247176..6a0d793469132b 100644 --- a/packages/debugger-frontend/package.json +++ b/packages/debugger-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/debugger-frontend", - "version": "0.74.80", + "version": "0.74.81", "description": "Debugger frontend for React Native based on Chrome DevTools", "keywords": [ "react-native", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index 09125aacaec0c7..63d7b253414384 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.80", + "version": "0.74.81", "description": "Dev server middleware for React Native", "keywords": [ "react-native", @@ -23,7 +23,7 @@ ], "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.80", + "@react-native/debugger-frontend": "0.74.81", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index d28336cd46edf1..85d43cdf58ebe0 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-config", - "version": "0.74.80", + "version": "0.74.81", "description": "ESLint config for React Native", "license": "MIT", "repository": { @@ -22,7 +22,7 @@ "dependencies": { "@babel/core": "^7.20.0", "@babel/eslint-parser": "^7.20.0", - "@react-native/eslint-plugin": "0.74.80", + "@react-native/eslint-plugin": "0.74.81", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "eslint-config-prettier": "^8.5.0", diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index 6e6b74993e2e40..1473118e45ffe5 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin", - "version": "0.74.80", + "version": "0.74.81", "description": "ESLint rules for @react-native/eslint-config", "license": "MIT", "repository": { diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index 926559ef2841ea..e1f0abd519cfbd 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin-specs", - "version": "0.74.80", + "version": "0.74.81", "description": "ESLint rules to validate NativeModule and Component Specs", "license": "MIT", "repository": { @@ -31,7 +31,7 @@ "@babel/eslint-parser": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/preset-flow": "^7.20.0", - "@react-native/codegen": "0.74.80", + "@react-native/codegen": "0.74.81", "make-dir": "^2.1.0", "pirates": "^4.0.1", "source-map-support": "0.5.0" diff --git a/packages/hermes-inspector-msggen/package.json b/packages/hermes-inspector-msggen/package.json index ff08d83f10d4f7..fddb5f95964094 100644 --- a/packages/hermes-inspector-msggen/package.json +++ b/packages/hermes-inspector-msggen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/hermes-inspector-msggen", - "version": "0.74.80", + "version": "0.74.81", "private": true, "description": "Hermes Inspector Message Generator for React Native", "license": "MIT", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index 36f5674f24d604..174928eee1635d 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-config", - "version": "0.74.80", + "version": "0.74.81", "description": "Metro configuration for React Native.", "license": "MIT", "repository": { @@ -26,8 +26,8 @@ "dist" ], "dependencies": { - "@react-native/js-polyfills": "0.74.80", - "@react-native/metro-babel-transformer": "0.74.80", + "@react-native/js-polyfills": "0.74.81", + "@react-native/metro-babel-transformer": "0.74.81", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" } diff --git a/packages/normalize-color/package.json b/packages/normalize-color/package.json index 639450c24196d7..3ebab5585f1744 100644 --- a/packages/normalize-color/package.json +++ b/packages/normalize-color/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/normalize-colors", - "version": "0.74.80", + "version": "0.74.81", "description": "Color normalization for React Native.", "license": "MIT", "repository": { diff --git a/packages/polyfills/package.json b/packages/polyfills/package.json index 9ca5625ae3f9ea..9b0617270cae8a 100644 --- a/packages/polyfills/package.json +++ b/packages/polyfills/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/js-polyfills", - "version": "0.74.80", + "version": "0.74.81", "description": "Polyfills for React Native.", "license": "MIT", "repository": { diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index a7f9a5226396fc..e7f99e0ff628fd 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-preset", - "version": "0.74.80", + "version": "0.74.81", "description": "Babel preset for React Native applications", "main": "src/index.js", "repository": { @@ -54,7 +54,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.80", + "@react-native/babel-plugin-codegen": "0.74.81", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index 213d0a31613b33..5bd61802f88474 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-babel-transformer", - "version": "0.74.80", + "version": "0.74.81", "description": "Babel transformer for React Native applications.", "main": "src/index.js", "repository": { @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.80", + "@react-native/babel-preset": "0.74.81", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, diff --git a/packages/react-native-bots/package.json b/packages/react-native-bots/package.json index dcee23c56afbf4..b996c07e28e05f 100644 --- a/packages/react-native-bots/package.json +++ b/packages/react-native-bots/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/bots", "description": "React Native Bots", - "version": "0.74.80", + "version": "0.74.81", "private": true, "license": "MIT", "repository": { diff --git a/packages/react-native-codegen-typescript-test/package.json b/packages/react-native-codegen-typescript-test/package.json index 8bd88f0996848c..733762da3661d4 100644 --- a/packages/react-native-codegen-typescript-test/package.json +++ b/packages/react-native-codegen-typescript-test/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen-typescript-test", - "version": "0.74.80", + "version": "0.74.81", "private": true, "description": "TypeScript related unit test for @react-native/codegen", "license": "MIT", @@ -19,7 +19,7 @@ "prepare": "yarn run build" }, "dependencies": { - "@react-native/codegen": "0.74.80" + "@react-native/codegen": "0.74.81" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index f3d4fbda544e30..368ea1deec639c 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen", - "version": "0.74.80", + "version": "0.74.81", "description": "Code generation tools for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-gradle-plugin/package.json b/packages/react-native-gradle-plugin/package.json index 9102cac7736032..d8c3276998683c 100644 --- a/packages/react-native-gradle-plugin/package.json +++ b/packages/react-native-gradle-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/gradle-plugin", - "version": "0.74.80", + "version": "0.74.81", "description": "Gradle Plugin for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json index 2b28a189473dd2..38cc171f7f5fd2 100644 --- a/packages/react-native-popup-menu-android/package.json +++ b/packages/react-native-popup-menu-android/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/popup-menu-android", - "version": "0.74.80", + "version": "0.74.81", "description": "PopupMenu for the Android platform", "main": "index.js", "files": [ @@ -17,7 +17,7 @@ ], "license": "MIT", "devDependencies": { - "@react-native/codegen": "0.74.80" + "@react-native/codegen": "0.74.81" }, "peerDependencies": { "@types/react": "^18.2.6", diff --git a/packages/react-native-test-renderer/package.json b/packages/react-native-test-renderer/package.json index 40c0ff65001cf5..a74f9e816e4242 100644 --- a/packages/react-native-test-renderer/package.json +++ b/packages/react-native-test-renderer/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/test-renderer", "private": true, - "version": "0.74.80", + "version": "0.74.81", "description": "A Test rendering library for React Native", "license": "MIT", "devDependencies": { diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index 1bec5380a9b217..297694eea732e0 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -17,7 +17,7 @@ const version: $ReadOnly<{ major: 0, minor: 74, patch: 0, - prerelease: 'rc.9', + prerelease: null, }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index 6fd00480e6cccb..b265dcdfca82d4 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -24,7 +24,7 @@ RCTVersionMajor: @(0), RCTVersionMinor: @(74), RCTVersionPatch: @(0), - RCTVersionPrerelease: @"rc.9", + RCTVersionPrerelease: [NSNull null], }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index fc666487015b28..a46ca0cd13b5f4 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.0-rc.9 +VERSION_NAME=0.74.0 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index 923eab4a67a8af..0c92f9e52275cb 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -18,5 +18,5 @@ public class ReactNativeVersion { "major", 0, "minor", 74, "patch", 0, - "prerelease", "rc.9"); + "prerelease", null); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index 65a437dce36e9c..fcdc25cef97f2e 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -18,7 +18,7 @@ constexpr struct { int32_t Major = 0; int32_t Minor = 74; int32_t Patch = 0; - std::string_view Prerelease = "rc.9"; + std::string_view Prerelease = ""; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index cac901266bc5fc..5c00acf55dbcae 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.0-rc.9", + "version": "0.74.0", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -110,13 +110,13 @@ "@react-native-community/cli": "13.6.4", "@react-native-community/cli-platform-android": "13.6.4", "@react-native-community/cli-platform-ios": "13.6.4", - "@react-native/assets-registry": "0.74.80", - "@react-native/codegen": "0.74.80", - "@react-native/community-cli-plugin": "0.74.80", - "@react-native/gradle-plugin": "0.74.80", - "@react-native/js-polyfills": "0.74.80", - "@react-native/normalize-colors": "0.74.80", - "@react-native/virtualized-lists": "0.74.80", + "@react-native/assets-registry": "0.74.81", + "@react-native/codegen": "0.74.81", + "@react-native/community-cli-plugin": "0.74.81", + "@react-native/gradle-plugin": "0.74.81", + "@react-native/js-polyfills": "0.74.81", + "@react-native/normalize-colors": "0.74.81", + "@react-native/virtualized-lists": "0.74.81", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 159a1e94c78aa2..580bdebc0805c9 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,16 +11,16 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.0-rc.9" + "react-native": "0.74.0" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.80", - "@react-native/eslint-config": "0.74.80", - "@react-native/metro-config": "0.74.80", - "@react-native/typescript-config": "0.74.80", + "@react-native/babel-preset": "0.74.81", + "@react-native/eslint-config": "0.74.81", + "@react-native/metro-config": "0.74.81", + "@react-native/typescript-config": "0.74.81", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", diff --git a/packages/rn-tester-e2e/package.json b/packages/rn-tester-e2e/package.json index db3c86285bd99a..a0c83e7d8e1214 100644 --- a/packages/rn-tester-e2e/package.json +++ b/packages/rn-tester-e2e/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/tester-e2e", "private": true, - "version": "0.74.80", + "version": "0.74.81", "license": "MIT", "description": "React Native E2E tester app.", "homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/rn-tester-e2e", diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index d78f7dc9062c8e..a256394bef8c77 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/tester", - "version": "0.74.80", + "version": "0.74.81", "private": true, "description": "React Native tester app.", "license": "MIT", @@ -26,7 +26,7 @@ "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "@react-native/popup-menu-android": "0.74.80" + "@react-native/popup-menu-android": "0.74.81" }, "peerDependencies": { "react": "18.2.0", diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 190c871d550e84..bc987c9596efc6 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/typescript-config", - "version": "0.74.80", + "version": "0.74.81", "description": "Default TypeScript configuration for React Native apps", "license": "MIT", "repository": { diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index 554f71dd46e64e..040f60683ea04a 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/virtualized-lists", - "version": "0.74.80", + "version": "0.74.81", "description": "Virtualized lists for React Native.", "license": "MIT", "repository": { From a69dc5d2a6c6e12eeeef3f3e45fe84cd551acb68 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Thu, 25 Apr 2024 11:45:38 +0100 Subject: [PATCH 134/223] Update Podfile.lock Changelog: [Internal] --- packages/rn-tester/Podfile.lock | 490 ++++++++++++++++---------------- 1 file changed, 245 insertions(+), 245 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index d8e1ae9a6a5eac..f85b6d1cc4a149 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,13 +1,13 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.0-rc.9) + - FBLazyVector (0.74.0) - fmt (9.1.0) - glog (0.3.5) - hermes-engine (0.74.0-rc.9): - hermes-engine/Pre-built (= 0.74.0-rc.9) - hermes-engine/Pre-built (0.74.0-rc.9) - - MyNativeView (0.74.80): + - MyNativeView (0.74.81): - DoubleConversion - glog - hermes-engine @@ -28,7 +28,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - NativeCxxModuleExample (0.74.80): + - NativeCxxModuleExample (0.74.81): - DoubleConversion - glog - hermes-engine @@ -66,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.0-rc.9) - - RCTRequired (0.74.0-rc.9) - - RCTTypeSafety (0.74.0-rc.9): - - FBLazyVector (= 0.74.0-rc.9) - - RCTRequired (= 0.74.0-rc.9) - - React-Core (= 0.74.0-rc.9) - - React (0.74.0-rc.9): - - React-Core (= 0.74.0-rc.9) - - React-Core/DevSupport (= 0.74.0-rc.9) - - React-Core/RCTWebSocket (= 0.74.0-rc.9) - - React-RCTActionSheet (= 0.74.0-rc.9) - - React-RCTAnimation (= 0.74.0-rc.9) - - React-RCTBlob (= 0.74.0-rc.9) - - React-RCTImage (= 0.74.0-rc.9) - - React-RCTLinking (= 0.74.0-rc.9) - - React-RCTNetwork (= 0.74.0-rc.9) - - React-RCTSettings (= 0.74.0-rc.9) - - React-RCTText (= 0.74.0-rc.9) - - React-RCTVibration (= 0.74.0-rc.9) - - React-callinvoker (0.74.0-rc.9) - - React-Codegen (0.74.0-rc.9): + - RCTDeprecation (0.74.0) + - RCTRequired (0.74.0) + - RCTTypeSafety (0.74.0): + - FBLazyVector (= 0.74.0) + - RCTRequired (= 0.74.0) + - React-Core (= 0.74.0) + - React (0.74.0): + - React-Core (= 0.74.0) + - React-Core/DevSupport (= 0.74.0) + - React-Core/RCTWebSocket (= 0.74.0) + - React-RCTActionSheet (= 0.74.0) + - React-RCTAnimation (= 0.74.0) + - React-RCTBlob (= 0.74.0) + - React-RCTImage (= 0.74.0) + - React-RCTLinking (= 0.74.0) + - React-RCTNetwork (= 0.74.0) + - React-RCTSettings (= 0.74.0) + - React-RCTText (= 0.74.0) + - React-RCTVibration (= 0.74.0) + - React-callinvoker (0.74.0) + - React-Codegen (0.74.0): - DoubleConversion - glog - hermes-engine @@ -106,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.0-rc.9): + - React-Core (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.9) + - React-Core/Default (= 0.74.0) - React-cxxreact - React-featureflags - React-hermes @@ -123,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.0-rc.9): + - React-Core/CoreModulesHeaders (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.0-rc.9): + - React-Core/Default (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -156,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.0-rc.9): + - React-Core/DevSupport (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.9) - - React-Core/RCTWebSocket (= 0.74.0-rc.9) + - React-Core/Default (= 0.74.0) + - React-Core/RCTWebSocket (= 0.74.0) - React-cxxreact - React-featureflags - React-hermes @@ -174,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.0-rc.9): + - React-Core/RCTActionSheetHeaders (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -191,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.0-rc.9): + - React-Core/RCTAnimationHeaders (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -208,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.0-rc.9): + - React-Core/RCTBlobHeaders (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.0-rc.9): + - React-Core/RCTImageHeaders (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -242,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.0-rc.9): + - React-Core/RCTLinkingHeaders (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.0-rc.9): + - React-Core/RCTNetworkHeaders (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -276,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.0-rc.9): + - React-Core/RCTPushNotificationHeaders (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -293,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.0-rc.9): + - React-Core/RCTSettingsHeaders (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -310,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.0-rc.9): + - React-Core/RCTTextHeaders (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -327,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.0-rc.9): + - React-Core/RCTVibrationHeaders (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -344,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.0-rc.9): + - React-Core/RCTWebSocket (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0-rc.9) + - React-Core/Default (= 0.74.0) - React-cxxreact - React-featureflags - React-hermes @@ -361,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.0-rc.9): + - React-CoreModules (0.74.0): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.0-rc.9) + - RCTTypeSafety (= 0.74.0) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.0-rc.9) - - React-jsi (= 0.74.0-rc.9) + - React-Core/CoreModulesHeaders (= 0.74.0) + - React-jsi (= 0.74.0) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.0-rc.9) + - React-RCTImage (= 0.74.0) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.0-rc.9): + - React-cxxreact (0.74.0): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.9) - - React-debug (= 0.74.0-rc.9) - - React-jsi (= 0.74.0-rc.9) + - React-callinvoker (= 0.74.0) + - React-debug (= 0.74.0) + - React-jsi (= 0.74.0) - React-jsinspector - - React-logger (= 0.74.0-rc.9) - - React-perflogger (= 0.74.0-rc.9) - - React-runtimeexecutor (= 0.74.0-rc.9) - - React-debug (0.74.0-rc.9) - - React-Fabric (0.74.0-rc.9): + - React-logger (= 0.74.0) + - React-perflogger (= 0.74.0) + - React-runtimeexecutor (= 0.74.0) + - React-debug (0.74.0) + - React-Fabric (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -401,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.0-rc.9) - - React-Fabric/attributedstring (= 0.74.0-rc.9) - - React-Fabric/componentregistry (= 0.74.0-rc.9) - - React-Fabric/componentregistrynative (= 0.74.0-rc.9) - - React-Fabric/components (= 0.74.0-rc.9) - - React-Fabric/core (= 0.74.0-rc.9) - - React-Fabric/imagemanager (= 0.74.0-rc.9) - - React-Fabric/leakchecker (= 0.74.0-rc.9) - - React-Fabric/mounting (= 0.74.0-rc.9) - - React-Fabric/scheduler (= 0.74.0-rc.9) - - React-Fabric/telemetry (= 0.74.0-rc.9) - - React-Fabric/templateprocessor (= 0.74.0-rc.9) - - React-Fabric/textlayoutmanager (= 0.74.0-rc.9) - - React-Fabric/uimanager (= 0.74.0-rc.9) + - React-Fabric/animations (= 0.74.0) + - React-Fabric/attributedstring (= 0.74.0) + - React-Fabric/componentregistry (= 0.74.0) + - React-Fabric/componentregistrynative (= 0.74.0) + - React-Fabric/components (= 0.74.0) + - React-Fabric/core (= 0.74.0) + - React-Fabric/imagemanager (= 0.74.0) + - React-Fabric/leakchecker (= 0.74.0) + - React-Fabric/mounting (= 0.74.0) + - React-Fabric/scheduler (= 0.74.0) + - React-Fabric/telemetry (= 0.74.0) + - React-Fabric/templateprocessor (= 0.74.0) + - React-Fabric/textlayoutmanager (= 0.74.0) + - React-Fabric/uimanager (= 0.74.0) - React-graphics - React-jsi - React-jsiexecutor @@ -423,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.0-rc.9): + - React-Fabric/animations (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -442,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.0-rc.9): + - React-Fabric/attributedstring (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -461,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.0-rc.9): + - React-Fabric/componentregistry (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.0-rc.9): + - React-Fabric/componentregistrynative (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.0-rc.9): + - React-Fabric/components (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -510,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.0-rc.9) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0-rc.9) - - React-Fabric/components/modal (= 0.74.0-rc.9) - - React-Fabric/components/rncore (= 0.74.0-rc.9) - - React-Fabric/components/root (= 0.74.0-rc.9) - - React-Fabric/components/safeareaview (= 0.74.0-rc.9) - - React-Fabric/components/scrollview (= 0.74.0-rc.9) - - React-Fabric/components/text (= 0.74.0-rc.9) - - React-Fabric/components/textinput (= 0.74.0-rc.9) - - React-Fabric/components/unimplementedview (= 0.74.0-rc.9) - - React-Fabric/components/view (= 0.74.0-rc.9) + - React-Fabric/components/inputaccessory (= 0.74.0) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0) + - React-Fabric/components/modal (= 0.74.0) + - React-Fabric/components/rncore (= 0.74.0) + - React-Fabric/components/root (= 0.74.0) + - React-Fabric/components/safeareaview (= 0.74.0) + - React-Fabric/components/scrollview (= 0.74.0) + - React-Fabric/components/text (= 0.74.0) + - React-Fabric/components/textinput (= 0.74.0) + - React-Fabric/components/unimplementedview (= 0.74.0) + - React-Fabric/components/view (= 0.74.0) - React-graphics - React-jsi - React-jsiexecutor @@ -529,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.0-rc.9): + - React-Fabric/components/inputaccessory (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -548,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.0-rc.9): + - React-Fabric/components/legacyviewmanagerinterop (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -567,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.0-rc.9): + - React-Fabric/components/modal (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -586,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.0-rc.9): + - React-Fabric/components/rncore (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.0-rc.9): + - React-Fabric/components/root (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.0-rc.9): + - React-Fabric/components/safeareaview (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.0-rc.9): + - React-Fabric/components/scrollview (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.0-rc.9): + - React-Fabric/components/text (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.0-rc.9): + - React-Fabric/components/textinput (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -700,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.0-rc.9): + - React-Fabric/components/unimplementedview (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -719,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.0-rc.9): + - React-Fabric/components/view (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -739,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.0-rc.9): + - React-Fabric/core (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.0-rc.9): + - React-Fabric/imagemanager (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -777,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.0-rc.9): + - React-Fabric/leakchecker (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -796,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.0-rc.9): + - React-Fabric/mounting (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -815,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.0-rc.9): + - React-Fabric/scheduler (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -834,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.0-rc.9): + - React-Fabric/telemetry (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.0-rc.9): + - React-Fabric/templateprocessor (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -872,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.0-rc.9): + - React-Fabric/textlayoutmanager (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -892,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.0-rc.9): + - React-Fabric/uimanager (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -911,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.0-rc.9): + - React-FabricImage (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.0-rc.9) - - RCTTypeSafety (= 0.74.0-rc.9) + - RCTRequired (= 0.74.0) + - RCTTypeSafety (= 0.74.0) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.0-rc.9) + - React-jsiexecutor (= 0.74.0) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.0-rc.9) - - React-graphics (0.74.0-rc.9): + - React-featureflags (0.74.0) + - React-graphics (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.0-rc.9) + - React-Core/Default (= 0.74.0) - React-utils - - React-hermes (0.74.0-rc.9): + - React-hermes (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.9) + - React-cxxreact (= 0.74.0) - React-jsi - - React-jsiexecutor (= 0.74.0-rc.9) + - React-jsiexecutor (= 0.74.0) - React-jsinspector - - React-perflogger (= 0.74.0-rc.9) + - React-perflogger (= 0.74.0) - React-runtimeexecutor - - React-ImageManager (0.74.0-rc.9): + - React-ImageManager (0.74.0): - glog - RCT-Folly/Fabric - React-Core/Default @@ -958,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.0-rc.9): + - React-jserrorhandler (0.74.0): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.0-rc.9): + - React-jsi (0.74.0): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.0-rc.9): + - React-jsiexecutor (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0-rc.9) - - React-jsi (= 0.74.0-rc.9) + - React-cxxreact (= 0.74.0) + - React-jsi (= 0.74.0) - React-jsinspector - - React-perflogger (= 0.74.0-rc.9) - - React-jsinspector (0.74.0-rc.9): + - React-perflogger (= 0.74.0) + - React-jsinspector (0.74.0): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.0-rc.9) - - React-jsitracing (0.74.0-rc.9): + - React-runtimeexecutor (= 0.74.0) + - React-jsitracing (0.74.0): - React-jsi - - React-logger (0.74.0-rc.9): + - React-logger (0.74.0): - glog - - React-Mapbuffer (0.74.0-rc.9): + - React-Mapbuffer (0.74.0): - glog - React-debug - - React-nativeconfig (0.74.0-rc.9) - - React-NativeModulesApple (0.74.0-rc.9): + - React-nativeconfig (0.74.0) + - React-NativeModulesApple (0.74.0): - glog - hermes-engine - React-callinvoker @@ -1007,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.0-rc.9) - - React-RCTActionSheet (0.74.0-rc.9): - - React-Core/RCTActionSheetHeaders (= 0.74.0-rc.9) - - React-RCTAnimation (0.74.0-rc.9): + - React-perflogger (0.74.0) + - React-RCTActionSheet (0.74.0): + - React-Core/RCTActionSheetHeaders (= 0.74.0) + - React-RCTAnimation (0.74.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1018,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.0-rc.9): + - React-RCTAppDelegate (0.74.0): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1041,7 +1041,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.0-rc.9): + - React-RCTBlob (0.74.0): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1054,7 +1054,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.0-rc.9): + - React-RCTFabric (0.74.0): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1074,7 +1074,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.0-rc.9): + - React-RCTImage (0.74.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1083,14 +1083,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.0-rc.9): + - React-RCTLinking (0.74.0): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.0-rc.9) - - React-jsi (= 0.74.0-rc.9) + - React-Core/RCTLinkingHeaders (= 0.74.0) + - React-jsi (= 0.74.0) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.0-rc.9) - - React-RCTNetwork (0.74.0-rc.9): + - ReactCommon/turbomodule/core (= 0.74.0) + - React-RCTNetwork (0.74.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1098,14 +1098,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.0-rc.9): + - React-RCTPushNotification (0.74.0): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.0-rc.9): + - React-RCTSettings (0.74.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1113,29 +1113,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.0-rc.9): + - React-RCTTest (0.74.0): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.0-rc.9) - - React-CoreModules (= 0.74.0-rc.9) - - React-jsi (= 0.74.0-rc.9) - - ReactCommon/turbomodule/core (= 0.74.0-rc.9) - - React-RCTText (0.74.0-rc.9): - - React-Core/RCTTextHeaders (= 0.74.0-rc.9) + - React-Core (= 0.74.0) + - React-CoreModules (= 0.74.0) + - React-jsi (= 0.74.0) + - ReactCommon/turbomodule/core (= 0.74.0) + - React-RCTText (0.74.0): + - React-Core/RCTTextHeaders (= 0.74.0) - Yoga - - React-RCTVibration (0.74.0-rc.9): + - React-RCTVibration (0.74.0): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.0-rc.9): + - React-rendererdebug (0.74.0): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.0-rc.9) - - React-RuntimeApple (0.74.0-rc.9): + - React-rncore (0.74.0) + - React-RuntimeApple (0.74.0): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1153,7 +1153,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.0-rc.9): + - React-RuntimeCore (0.74.0): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1166,9 +1166,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.0-rc.9): - - React-jsi (= 0.74.0-rc.9) - - React-RuntimeHermes (0.74.0-rc.9): + - React-runtimeexecutor (0.74.0): + - React-jsi (= 0.74.0) + - React-RuntimeHermes (0.74.0): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1179,7 +1179,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.0-rc.9): + - React-runtimescheduler (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1191,15 +1191,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.0-rc.9): + - React-utils (0.74.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.0-rc.9) - - ReactCommon (0.74.0-rc.9): - - ReactCommon/turbomodule (= 0.74.0-rc.9) - - ReactCommon-Samples (0.74.0-rc.9): + - React-jsi (= 0.74.0) + - ReactCommon (0.74.0): + - ReactCommon/turbomodule (= 0.74.0) + - ReactCommon-Samples (0.74.0): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1210,44 +1210,44 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.0-rc.9): + - ReactCommon/turbomodule (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.9) - - React-cxxreact (= 0.74.0-rc.9) - - React-jsi (= 0.74.0-rc.9) - - React-logger (= 0.74.0-rc.9) - - React-perflogger (= 0.74.0-rc.9) - - ReactCommon/turbomodule/bridging (= 0.74.0-rc.9) - - ReactCommon/turbomodule/core (= 0.74.0-rc.9) - - ReactCommon/turbomodule/bridging (0.74.0-rc.9): + - React-callinvoker (= 0.74.0) + - React-cxxreact (= 0.74.0) + - React-jsi (= 0.74.0) + - React-logger (= 0.74.0) + - React-perflogger (= 0.74.0) + - ReactCommon/turbomodule/bridging (= 0.74.0) + - ReactCommon/turbomodule/core (= 0.74.0) + - ReactCommon/turbomodule/bridging (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.9) - - React-cxxreact (= 0.74.0-rc.9) - - React-jsi (= 0.74.0-rc.9) - - React-logger (= 0.74.0-rc.9) - - React-perflogger (= 0.74.0-rc.9) - - ReactCommon/turbomodule/core (0.74.0-rc.9): + - React-callinvoker (= 0.74.0) + - React-cxxreact (= 0.74.0) + - React-jsi (= 0.74.0) + - React-logger (= 0.74.0) + - React-perflogger (= 0.74.0) + - ReactCommon/turbomodule/core (0.74.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0-rc.9) - - React-cxxreact (= 0.74.0-rc.9) - - React-debug (= 0.74.0-rc.9) - - React-jsi (= 0.74.0-rc.9) - - React-logger (= 0.74.0-rc.9) - - React-perflogger (= 0.74.0-rc.9) - - React-utils (= 0.74.0-rc.9) - - ScreenshotManager (0.74.80): + - React-callinvoker (= 0.74.0) + - React-cxxreact (= 0.74.0) + - React-debug (= 0.74.0) + - React-jsi (= 0.74.0) + - React-logger (= 0.74.0) + - React-perflogger (= 0.74.0) + - React-utils (= 0.74.0) + - ScreenshotManager (0.74.81): - DoubleConversion - glog - hermes-engine @@ -1467,66 +1467,66 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 7cdfba8b4fbe5a1d8ffade8c926ddcbd7ef7547f + FBLazyVector: 026c8f4ae67b06e088ae01baa2271ef8a26c0e8c fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 hermes-engine: 25f62f55d7f9efed5910366b12e083b77effd566 - MyNativeView: 32986c57e654b2d8a8715e7fb9bfa1e85738c995 - NativeCxxModuleExample: 4e2f03fbb409331135b72875d394f432f637165f + MyNativeView: da8b495f57b82cc523016c1b91e4eb1ada26d0d2 + NativeCxxModuleExample: d6113a417ec017490907fe073219f7cc7f856d14 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df - RCTDeprecation: 4007d9a7cdb37d57857630d3c9dd34911d34fc17 - RCTRequired: ca017732b65a2510769ee89fa061096242a33c1b - RCTTypeSafety: 636489c919b9732582629e3eb0ca59f9667c7653 - React: d6c16a004aa7db56be58f7762fb52c1c70865833 - React-callinvoker: 6193345c3ac9ff8f475ad29d56171454a8d98a09 - React-Codegen: 402c37590de360e89ae15f3a961b1be370bf7a30 - React-Core: 6ec35a93cc75249aa1846aadf25076e00bd3a170 - React-CoreModules: 7976ba58faf3f1a595aad2065810be6bb72d2381 - React-cxxreact: 131ec8ca1ea8196e1d31729b2597ab7c5a4d7555 - React-debug: 28aa244926b7daa7cd5c56639f480551118064fe - React-Fabric: 5187ae20be0c2b03eed8aa8d9e4b4c2dcf578a9e - React-FabricImage: a17653519bc8524a5749d90f138de014aed50777 - React-featureflags: 8b20cd902b74d0dcaed41be4fc8057a434b84298 - React-graphics: fe3349e75969cb5f6749fcefb61c2d28aacb81de - React-hermes: 5bb17ca81a49a817e5577c7a13d6be8bb6480e3f - React-ImageManager: 2a2330a5e05af7b3d51d28c2678df1a9d29b681b - React-jserrorhandler: 845924fd672744d807142b13cd4c63941a446e89 - React-jsi: 6c11fdea24155c881defad6c7da1c76598adf3e7 - React-jsiexecutor: 1b7877076f33670e1aabd42c8bd3a5658eea09f1 - React-jsinspector: 13b253c306902caee478cd8b0d3b6c94a8669480 - React-jsitracing: 2eef7c2f20724132d067629087693d66af3cf565 - React-logger: c4f94ac23ce01e558b50ad7dfb9d6f09025701dd - React-Mapbuffer: fbe9c6b6c762e35bba9e8259d6e5e5a22ede7986 - React-nativeconfig: cd40a0c8f2f9e7b28425b100eb7f2ac1797c5dbc - React-NativeModulesApple: cb3ff0cd989c756c7a9069a705c5c2f280059f86 - React-perflogger: 6e3b6a35ac4113ac1ef93a42a483ca242ae48e7a - React-RCTActionSheet: 47cb6904aa9928e183e784cb77b74f508d9e1716 - React-RCTAnimation: 54225a4b095ce5818788ad2abd07824233a1f005 - React-RCTAppDelegate: c6c879689be02866993fbf938376dc98d818d12a - React-RCTBlob: eeeeeda9464aad65848d5d6afc768c18c26a3b0f - React-RCTFabric: 6c7843e167f8ada90ac929fd1e4874b7b10fb28d - React-RCTImage: 90f238c8333cbf3c6e52e8f5b76ffcd4a83c6b6e - React-RCTLinking: 652dea3535bb1cc8b0f5028063319a5b69d94fb2 - React-RCTNetwork: 907ce71e420aaa98e4281e9a6859b0fea3d99f01 - React-RCTPushNotification: b590db41c9b4915f700135ec75e61557ee040e7a - React-RCTSettings: 1b4756b7dc47e6cac710f985b5253f2c8777683b - React-RCTTest: c0fafe6fb58aeaddc6e86230343b10e1690f15c6 - React-RCTText: a4785071b9b0e50ad7bf4d7766b35f8defc0c851 - React-RCTVibration: c0397717d1318a6aca162ab0e5a6a25122887fd2 - React-rendererdebug: 6933c7b0791475f0bbdec04567c604dbaa40ac91 - React-rncore: 5504d3df923ff3402bdfdc07632650e6ea5f06f3 - React-RuntimeApple: 55c8720ad3aa844134218b58a7c5df43625c550d - React-RuntimeCore: e4626fb0c0b1f5243b88fc8705004fe044634608 - React-runtimeexecutor: cfe9fd59c083f75bd24f7514c59ff7104f7b804a - React-RuntimeHermes: e37819ab6a05eadcd230ef5c9aa350871e21aedb - React-runtimescheduler: a7eace44357207a91a32d4ad497c3d1ff1306eb0 - React-utils: ab1d0edc4d9725b9979c192ffd6062365c898d7b - ReactCommon: 5448e997e7732e230daebf51eb9996727b4a66b9 - ReactCommon-Samples: e68556a0d8314b1ac159f16828c0f8e63a41de1a - ScreenshotManager: 826d76f0fd91b2e9c9777792be25d20bb881e957 + RCTDeprecation: 3ca8b6c36bfb302e1895b72cfe7db0de0c92cd47 + RCTRequired: 9fc183af555fd0c89a366c34c1ae70b7e03b1dc5 + RCTTypeSafety: db1dd5ad1081a5e160d30bb29ef922693d5ac4b1 + React: 8650d592d90b99097504b8dcfebab883972aed71 + React-callinvoker: 6bb8b399ab8cec59e52458c3a592aa1fca130b68 + React-Codegen: c8df8dc1a695960d4ae842e2d78feb52e8d5097b + React-Core: 119ddf031a18926c2f59849bedcc83c1ba347419 + React-CoreModules: 087c24b785afc79d29d23bffe7b02f79bb00cf76 + React-cxxreact: 67a110c97ed6a53b393be3c90fc3f0b482770bd1 + React-debug: 41175f3e30dfa8af6eab2631261e1eac26307f9f + React-Fabric: 235d71c7d7973fb5c3f099f2962d6b5362be6107 + React-FabricImage: 44f4ee8c9331688ab5e907a40cbd49010b05e687 + React-featureflags: 5e7e78c607661fe7f72bc38c6f03736e0876753a + React-graphics: 354adf8693bf849e696bf5096abc8cdc22c78ab4 + React-hermes: 17c369e15cfb535d7bc880d432e0e291c81d10d9 + React-ImageManager: 74e0898e24b12c45c40019b8558a1310d0b2a47c + React-jserrorhandler: 33cb327f5c6e1571b362f1a9c762ff839a5adb15 + React-jsi: 1e0be0c7526a8fdd3b9e8c086bddcddbad263cd5 + React-jsiexecutor: 04c1e790290e8cc3cd18e59c9cc5bdd18af325ef + React-jsinspector: 5daae7b6729d84bd61026899a6f664bdcff3ac28 + React-jsitracing: 36a2bbc272300313653d980de5ab700ec86c534a + React-logger: 03f2f7b955cfe24593a2b8c9705c23e142d1ad24 + React-Mapbuffer: 5e05d78fe6505f4a054b86f415733d4ad02dd314 + React-nativeconfig: 951ec32f632e81cbd7d40aebb3211313251c092e + React-NativeModulesApple: 0b3a42ca90069119ef79d8b2327d01441d71abd4 + React-perflogger: 271f1111779fef70f9502d1d38da5132e5585230 + React-RCTActionSheet: 5d6fb9adb11ab1bfbce6695a2b785767e4658c53 + React-RCTAnimation: 86ace32c56e69b3822e7e5184ea83a79d47fc7b9 + React-RCTAppDelegate: 74b45c4e3c1c23db88385d74cf4f5a8500694527 + React-RCTBlob: fb91c62a549f004e251235c65c665c6890a923a3 + React-RCTFabric: af6b9bc4aa9dfa0af1a1bcf5d8e5c5b1f17ae99c + React-RCTImage: b482f07cfdbe8e413edbf9d85953cecdb569472c + React-RCTLinking: fbd73a66cab34df69b2389c17f200e4722890fd9 + React-RCTNetwork: fbdd716fbd6e53feb6d8e00eeb85e8184ad42ac8 + React-RCTPushNotification: 63b70a73f576c783a74c98fd4ddd3e011bbbc026 + React-RCTSettings: 11c3051b965593988298a3f5fb39e23bf6f7df9f + React-RCTTest: bc5abb8c0c3b0a3cc215e57721f1fa6b7738a1db + React-RCTText: f240b4d39c36c295204d29e7634a2fac450b6d29 + React-RCTVibration: 1750f80b39e1ad9b4f509f4fdf19a803f7ab0d38 + React-rendererdebug: a89ffa25c7670de8f22e0b322dfdd8333bc0d126 + React-rncore: a3ab9e7271a5c692918e2a483beb900ff0a51169 + React-RuntimeApple: cdc563e811785f675925032d3bc4092a2aaa0b82 + React-RuntimeCore: f4af3a86a6a69d31721067f17196a582da25d2fc + React-runtimeexecutor: 4471221991b6e518466a0422fbeb2158c07c36e1 + React-RuntimeHermes: 3d9f53ac3330bb71d42f2acb9a3061a0b992be5c + React-runtimescheduler: 7fe561d179b97cecd0c2bec0bbd08f9fd8581c26 + React-utils: f013537c3371270d2095bff1d594d00d4bc9261b + ReactCommon: 2cde697fd80bd31da1d6448d25a5803088585219 + ReactCommon-Samples: 42ebf205296931f800b9affcf9851c3397e8ba06 + ScreenshotManager: 5abe653a25bd3f74418f0572d7b4b0ca0dac3152 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: cd5560858f9d10b5446d89882622d3d0db722148 + Yoga: 56f906bf6c11c931588191dde1229fd3e4e3d557 PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf From 93956e267cd4f1a77adaa842a55ca6f2d0d1b9c5 Mon Sep 17 00:00:00 2001 From: Moti Zilberman Date: Mon, 22 Apr 2024 08:37:32 -0700 Subject: [PATCH 135/223] Align debugger Chrome launch flags with Meta-internal version (#44180) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44180 Changelog: [General][Changed] Update Chrome launch flags for `--experimental-debugger` launch flow Internally at Meta, we've been testing the experimental debugger launch flow with a different set of Chrome flags than are currently shipped in open source. This diff fixes those differences: * Removes `--disable-backgrounding-occluded-windows` * Adds `--guest` Reviewed By: EdmondChuiHW Differential Revision: D56418271 fbshipit-source-id: 884c5746e93cad89f17e4ef9e3ef193a2a454eb5 --- .../src/utils/DefaultBrowserLauncher.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/dev-middleware/src/utils/DefaultBrowserLauncher.js b/packages/dev-middleware/src/utils/DefaultBrowserLauncher.js index 8992f194c54192..9438d3f07408b9 100644 --- a/packages/dev-middleware/src/utils/DefaultBrowserLauncher.js +++ b/packages/dev-middleware/src/utils/DefaultBrowserLauncher.js @@ -51,12 +51,23 @@ const DefaultBrowserLauncher: BrowserLauncher = { `react-native-debugger-frontend-${browserType}`, ); const launchedChrome = await ChromeLauncher.launch({ - chromePath, chromeFlags: [ + ...ChromeLauncher.Launcher.defaultFlags().filter( + /** + * This flag controls whether Chrome treats a visually covered (occluded) tab + * as "backgrounded". We launch CDT as a single tab/window via `--app`, so we + * do want Chrome to treat our tab as "backgrounded" when the UI is covered. + * Omitting this flag allows "visibilitychange" events to fire properly. + */ + flag => flag !== '--disable-backgrounding-occluded-windows', + ), `--app=${url}`, `--user-data-dir=${userDataDir}`, '--window-size=1200,600', + '--guest', ], + chromePath, + ignoreDefaultFlags: true, }); return { From 680d89b6c50f64ed6d12700eb30501307dc631fb Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Thu, 25 Apr 2024 12:05:58 +0100 Subject: [PATCH 136/223] Update Hermes version For pick request https://github.com/reactwg/react-native-releases/issues/241 --- packages/react-native/sdks/.hermesversion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/sdks/.hermesversion b/packages/react-native/sdks/.hermesversion index 647a6af974cf71..971812c06d7b10 100644 --- a/packages/react-native/sdks/.hermesversion +++ b/packages/react-native/sdks/.hermesversion @@ -1 +1 @@ -hermes-2024-02-20-RNv0.74.0-999cfd9979b5f57b1269119679ab8cdf60897de9 \ No newline at end of file +hermes-2024-04-25-RNv0.74.1-b54a3a01c531f4f5f1904cb0770033e8b7153dff \ No newline at end of file From 261a58761c2e7e10cc5cf0a63ed9785e1cdf097c Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Mon, 29 Apr 2024 10:18:45 -0700 Subject: [PATCH 137/223] Update "Open Debugger" to print extended Flipper guidance Summary: Supports the removal of Flipper from the template in 0.74, paried with additional blog post messaging: https://reactnative.dev/blog/2024/04/22/release-0.74#removal-of-flipper-react-native-plugin. Changelog: [General][Changed] - Update "Open Debugger" action to print extended Flipper guidance Reviewed By: cipolleschi Differential Revision: D56705236 fbshipit-source-id: d7e869625262ebb02bc2454c924f832cccfbcd31 --- .../src/middleware/deprecated_openFlipperMiddleware.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/dev-middleware/src/middleware/deprecated_openFlipperMiddleware.js b/packages/dev-middleware/src/middleware/deprecated_openFlipperMiddleware.js index 6a2d07a5f0374d..da6c6bc5c25bda 100644 --- a/packages/dev-middleware/src/middleware/deprecated_openFlipperMiddleware.js +++ b/packages/dev-middleware/src/middleware/deprecated_openFlipperMiddleware.js @@ -46,6 +46,14 @@ export default function deprecated_openFlipperMiddleware({ 'Flipper to be installed on your system to handle the ' + "'flipper://' URL scheme.", ); + logger?.info( + 'In React Native 0.74, Flipper is no longer included for new React ' + + 'Native projects. The Flipper React Native plugin is also ' + + 'unsupported. You can continue to use Flipper to debug ' + + "your app's JavaScript code, however we recommend switching to " + + 'a modern alternative.\nSee ' + + 'https://reactnative.dev/docs/debugging#opening-the-debugger.', + ); await open(FLIPPER_SELF_CONNECT_URL); res.end(); } catch (e) { From b440672468b6d1d99cd322a4348dd90150703f24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Norte?= Date: Mon, 18 Mar 2024 04:51:39 -0700 Subject: [PATCH 138/223] Enable event loop by default when bridgeless is enabled (#43396) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43396 Changelog: [General][Changed] Enabled new event loop behavior when bridgeless (new architecture) is enabled. Reviewed By: rshest Differential Revision: D54682678 fbshipit-source-id: ff8c45bc1caae0e9182aa94d915d7b6f9427caf9 --- .../Libraries/AppDelegate/RCTAppDelegate.mm | 33 ++++++++++++++++++- .../AppDelegate/React-RCTAppDelegate.podspec | 1 + .../DefaultNewArchitectureEntryPoint.kt | 13 ++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm index 6d159ef598a286..d79fbb42b35a92 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm @@ -11,7 +11,11 @@ #import #import #import -#import +#import +#import +#import +#import +#import "RCTAppDelegate+Protected.h" #import "RCTAppSetupUtils.h" #if RN_DISABLE_OSS_PLUGIN_HEADER @@ -46,6 +50,8 @@ @implementation RCTAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [self _setUpFeatureFlags]; + RCTSetNewArchEnabled([self newArchEnabled]); RCTAppSetupPrepareApp(application, self.turboModuleEnabled); @@ -258,4 +264,29 @@ - (RCTRootViewFactory *)createRCTRootViewFactory return [[RCTRootViewFactory alloc] initWithConfiguration:configuration andTurboModuleManagerDelegate:self]; } +#pragma mark - Feature Flags + +class RCTAppDelegateBridgelessFeatureFlags : public facebook::react::ReactNativeFeatureFlagsDefaults { + public: + bool useModernRuntimeScheduler() override + { + return true; + } + bool enableMicrotasks() override + { + return true; + } + bool batchRenderingUpdatesInEventLoop() override + { + return true; + } +}; + +- (void)_setUpFeatureFlags +{ + if ([self bridgelessEnabled]) { + facebook::react::ReactNativeFeatureFlags::override(std::make_unique()); + } +} + @end diff --git a/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec b/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec index 146ff1ea5ccf83..4d5bf68dc4c80f 100644 --- a/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec +++ b/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec @@ -89,6 +89,7 @@ Pod::Spec.new do |s| add_dependency(s, "React-utils") add_dependency(s, "React-debug") add_dependency(s, "React-rendererdebug") + add_dependency(s, "React-featureflags") if use_hermes s.dependency "React-hermes" diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt index 59ffe9bccb7875..051effc8525d58 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt @@ -11,6 +11,8 @@ package com.facebook.react.defaults import com.facebook.react.common.annotations.VisibleForTesting import com.facebook.react.config.ReactFeatureFlags +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags +import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsDefaults /** * A utility class that serves as an entry point for users setup the New Architecture. @@ -45,6 +47,17 @@ public object DefaultNewArchitectureEntryPoint { ReactFeatureFlags.unstable_useTurboModuleInterop = bridgelessEnabled ReactFeatureFlags.enableFabricPendingEventQueue = fabricEnabled + if (bridgelessEnabled) { + ReactNativeFeatureFlags.override( + object : ReactNativeFeatureFlagsDefaults() { + override fun useModernRuntimeScheduler(): Boolean = true + + override fun enableMicrotasks(): Boolean = true + + override fun batchRenderingUpdatesInEventLoop(): Boolean = true + }) + } + privateFabricEnabled = fabricEnabled privateTurboModulesEnabled = turboModulesEnabled privateConcurrentReactEnabled = fabricEnabled From ff4b20e823d2838b3f72e550e7a89daa08551a72 Mon Sep 17 00:00:00 2001 From: Pieter De Baets Date: Wed, 24 Apr 2024 03:54:10 -0700 Subject: [PATCH 139/223] Split scheduler commit and flush delegate methods (#44188) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44188 The current approach used for `batchRenderingUpdatesInEventLoop` is not compatible with Android due to limitations in its props processing model. The raw props changeset is passed through to Android, and must be available for the Android mounting layer to correctly apply changes. We have some logic to merge these payloads when multiple ShadowNode clones take place but were previously assuming that a ShadowTree commit was a safe state to synchronize. In the current implementation this means that two commits driven from layout effects (triggering states A → B → C) may cause Android to observe only the B → C props change, and miss out on any props changed in A → B. Changelog: [Android][Fixed] Cascading renders were not mounting correctly when `batchRenderingUpdatesInEventLoop` is enabled. Reviewed By: rubennorte Differential Revision: D56414689 fbshipit-source-id: 7c74d81620db0f8b7bd67e640168afc795c7a1d7 --- .../react-native/React/Fabric/RCTScheduler.h | 2 + .../react-native/React/Fabric/RCTScheduler.mm | 6 + .../React/Fabric/RCTSurfacePresenter.mm | 5 + .../featureflags/ReactNativeFeatureFlags.kt | 20 ++- .../ReactNativeFeatureFlagsCxxAccessor.kt | 54 +++++- .../ReactNativeFeatureFlagsCxxInterop.kt | 8 +- .../ReactNativeFeatureFlagsDefaults.kt | 8 +- .../ReactNativeFeatureFlagsLocalAccessor.kt | 59 +++++- .../ReactNativeFeatureFlagsProvider.kt | 8 +- .../src/main/jni/react/fabric/Binding.cpp | 41 ++++- .../src/main/jni/react/fabric/Binding.h | 8 + .../JReactNativeFeatureFlagsCxxInterop.cpp | 44 ++++- .../JReactNativeFeatureFlagsCxxInterop.h | 11 +- .../featureflags/ReactNativeFeatureFlags.cpp | 14 +- .../featureflags/ReactNativeFeatureFlags.h | 19 +- .../ReactNativeFeatureFlagsAccessor.cpp | 168 ++++++++++++++++-- .../ReactNativeFeatureFlagsAccessor.h | 10 +- .../ReactNativeFeatureFlagsDefaults.h | 14 +- .../ReactNativeFeatureFlagsProvider.h | 5 +- .../NativeReactNativeFeatureFlags.cpp | 17 +- .../NativeReactNativeFeatureFlags.h | 8 +- .../renderer/mounting/MountingTransaction.cpp | 13 ++ .../renderer/mounting/MountingTransaction.h | 9 + .../react/renderer/scheduler/Scheduler.cpp | 9 +- .../renderer/scheduler/SchedulerDelegate.h | 11 ++ .../ReactNativeFeatureFlags.config.js | 15 ++ .../NativeReactNativeFeatureFlags.js | 5 +- .../featureflags/ReactNativeFeatureFlags.js | 17 +- 28 files changed, 572 insertions(+), 36 deletions(-) diff --git a/packages/react-native/React/Fabric/RCTScheduler.h b/packages/react-native/React/Fabric/RCTScheduler.h index 888770cfd9fea0..f80e83c7a4cbad 100644 --- a/packages/react-native/React/Fabric/RCTScheduler.h +++ b/packages/react-native/React/Fabric/RCTScheduler.h @@ -30,6 +30,8 @@ NS_ASSUME_NONNULL_BEGIN - (void)schedulerDidFinishTransaction:(facebook::react::MountingCoordinator::Shared)mountingCoordinator; +- (void)schedulerShouldRenderTransactions:(facebook::react::MountingCoordinator::Shared)mountingCoordinator; + - (void)schedulerDidDispatchCommand:(const facebook::react::ShadowView &)shadowView commandName:(const std::string &)commandName args:(const folly::dynamic &)args; diff --git a/packages/react-native/React/Fabric/RCTScheduler.mm b/packages/react-native/React/Fabric/RCTScheduler.mm index 3e774560998eb1..91e1225c67a84b 100644 --- a/packages/react-native/React/Fabric/RCTScheduler.mm +++ b/packages/react-native/React/Fabric/RCTScheduler.mm @@ -30,6 +30,12 @@ void schedulerDidFinishTransaction(const MountingCoordinator::Shared &mountingCo [scheduler.delegate schedulerDidFinishTransaction:mountingCoordinator]; } + void schedulerShouldRenderTransactions(const MountingCoordinator::Shared &mountingCoordinator) override + { + RCTScheduler *scheduler = (__bridge RCTScheduler *)scheduler_; + [scheduler.delegate schedulerShouldRenderTransactions:mountingCoordinator]; + } + void schedulerDidRequestPreliminaryViewAllocation(SurfaceId surfaceId, const ShadowNode &shadowNode) override { // Does nothing. diff --git a/packages/react-native/React/Fabric/RCTSurfacePresenter.mm b/packages/react-native/React/Fabric/RCTSurfacePresenter.mm index 4c1e048c4063f2..80ff067dc4ab37 100644 --- a/packages/react-native/React/Fabric/RCTSurfacePresenter.mm +++ b/packages/react-native/React/Fabric/RCTSurfacePresenter.mm @@ -354,6 +354,11 @@ - (void)_applicationWillTerminate #pragma mark - RCTSchedulerDelegate - (void)schedulerDidFinishTransaction:(MountingCoordinator::Shared)mountingCoordinator +{ + // no-op, we will flush the transaction from schedulerShouldRenderTransactions +} + +- (void)schedulerShouldRenderTransactions:(MountingCoordinator::Shared)mountingCoordinator { [_mountingManager scheduleTransaction:mountingCoordinator]; } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt index 487f43d409c9a4..242557e325fab5 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<> */ /** @@ -34,6 +34,24 @@ public object ReactNativeFeatureFlags { @JvmStatic public fun commonTestFlag(): Boolean = accessor.commonTestFlag() + /** + * To be used with batchRenderingUpdatesInEventLoop. When enbled, the Android mounting layer will concatenate pending transactions to ensure they're applied atomatically + */ + @JvmStatic + public fun androidEnablePendingFabricTransactions(): Boolean = accessor.androidEnablePendingFabricTransactions() + + /** + * When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop. + */ + @JvmStatic + public fun batchRenderingUpdatesInEventLoop(): Boolean = accessor.batchRenderingUpdatesInEventLoop() + + /** + * When enabled, ReactInstanceManager will clean up Fabric surfaces on destroy(). + */ + @JvmStatic + public fun destroyFabricSurfacesInReactInstanceManager(): Boolean = accessor.destroyFabricSurfacesInReactInstanceManager() + /** * Enables the use of a background executor to compute layout and commit updates on Fabric (this system is deprecated and should not be used). */ diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt index 3e38e9f251cbd8..d7c768c7f301a0 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<11824621ee7ca5dbdf2f09bdf1a1f983>> + * @generated SignedSource<<40668dcd951123da7c0b4ddde23f94c9>> */ /** @@ -21,6 +21,9 @@ package com.facebook.react.internal.featureflags public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccessor { private var commonTestFlagCache: Boolean? = null + private var androidEnablePendingFabricTransactionsCache: Boolean? = null + private var batchRenderingUpdatesInEventLoopCache: Boolean? = null + private var destroyFabricSurfacesInReactInstanceManagerCache: Boolean? = null private var enableBackgroundExecutorCache: Boolean? = null private var useModernRuntimeSchedulerCache: Boolean? = null private var enableMicrotasksCache: Boolean? = null @@ -40,6 +43,55 @@ public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccesso return cached } +<<<<<<< HEAD +||||||| parent of 849da2146ca (Split scheduler commit and flush delegate methods (#44188)) + override fun batchRenderingUpdatesInEventLoop(): Boolean { + var cached = batchRenderingUpdatesInEventLoopCache + if (cached == null) { + cached = ReactNativeFeatureFlagsCxxInterop.batchRenderingUpdatesInEventLoop() + batchRenderingUpdatesInEventLoopCache = cached + } + return cached + } + + override fun destroyFabricSurfacesInReactInstanceManager(): Boolean { + var cached = destroyFabricSurfacesInReactInstanceManagerCache + if (cached == null) { + cached = ReactNativeFeatureFlagsCxxInterop.destroyFabricSurfacesInReactInstanceManager() + destroyFabricSurfacesInReactInstanceManagerCache = cached + } + return cached + } + +======= + override fun androidEnablePendingFabricTransactions(): Boolean { + var cached = androidEnablePendingFabricTransactionsCache + if (cached == null) { + cached = ReactNativeFeatureFlagsCxxInterop.androidEnablePendingFabricTransactions() + androidEnablePendingFabricTransactionsCache = cached + } + return cached + } + + override fun batchRenderingUpdatesInEventLoop(): Boolean { + var cached = batchRenderingUpdatesInEventLoopCache + if (cached == null) { + cached = ReactNativeFeatureFlagsCxxInterop.batchRenderingUpdatesInEventLoop() + batchRenderingUpdatesInEventLoopCache = cached + } + return cached + } + + override fun destroyFabricSurfacesInReactInstanceManager(): Boolean { + var cached = destroyFabricSurfacesInReactInstanceManagerCache + if (cached == null) { + cached = ReactNativeFeatureFlagsCxxInterop.destroyFabricSurfacesInReactInstanceManager() + destroyFabricSurfacesInReactInstanceManagerCache = cached + } + return cached + } + +>>>>>>> 849da2146ca (Split scheduler commit and flush delegate methods (#44188)) override fun enableBackgroundExecutor(): Boolean { var cached = enableBackgroundExecutorCache if (cached == null) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt index d3518e6cba082d..07dd950fe8540c 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<> */ /** @@ -30,6 +30,12 @@ public object ReactNativeFeatureFlagsCxxInterop { @DoNotStrip @JvmStatic public external fun commonTestFlag(): Boolean + @DoNotStrip @JvmStatic public external fun androidEnablePendingFabricTransactions(): Boolean + + @DoNotStrip @JvmStatic public external fun batchRenderingUpdatesInEventLoop(): Boolean + + @DoNotStrip @JvmStatic public external fun destroyFabricSurfacesInReactInstanceManager(): Boolean + @DoNotStrip @JvmStatic public external fun enableBackgroundExecutor(): Boolean @DoNotStrip @JvmStatic public external fun useModernRuntimeScheduler(): Boolean diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt index e75ba65f44d08b..20a6fb3300c92a 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<> */ /** @@ -25,6 +25,12 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi override fun commonTestFlag(): Boolean = false + override fun androidEnablePendingFabricTransactions(): Boolean = false + + override fun batchRenderingUpdatesInEventLoop(): Boolean = false + + override fun destroyFabricSurfacesInReactInstanceManager(): Boolean = false + override fun enableBackgroundExecutor(): Boolean = false override fun useModernRuntimeScheduler(): Boolean = false diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt index 2fcc689a55e16c..dca198e5274d93 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<63356ad414e641eae11ca07b1a876fd3>> + * @generated SignedSource<> */ /** @@ -25,6 +25,9 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces private val accessedFeatureFlags = mutableSetOf() private var commonTestFlagCache: Boolean? = null + private var androidEnablePendingFabricTransactionsCache: Boolean? = null + private var batchRenderingUpdatesInEventLoopCache: Boolean? = null + private var destroyFabricSurfacesInReactInstanceManagerCache: Boolean? = null private var enableBackgroundExecutorCache: Boolean? = null private var useModernRuntimeSchedulerCache: Boolean? = null private var enableMicrotasksCache: Boolean? = null @@ -45,6 +48,60 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces return cached } +<<<<<<< HEAD +||||||| parent of 849da2146ca (Split scheduler commit and flush delegate methods (#44188)) + override fun batchRenderingUpdatesInEventLoop(): Boolean { + var cached = batchRenderingUpdatesInEventLoopCache + if (cached == null) { + cached = currentProvider.batchRenderingUpdatesInEventLoop() + accessedFeatureFlags.add("batchRenderingUpdatesInEventLoop") + batchRenderingUpdatesInEventLoopCache = cached + } + return cached + } + + override fun destroyFabricSurfacesInReactInstanceManager(): Boolean { + var cached = destroyFabricSurfacesInReactInstanceManagerCache + if (cached == null) { + cached = currentProvider.destroyFabricSurfacesInReactInstanceManager() + accessedFeatureFlags.add("destroyFabricSurfacesInReactInstanceManager") + destroyFabricSurfacesInReactInstanceManagerCache = cached + } + return cached + } + +======= + override fun androidEnablePendingFabricTransactions(): Boolean { + var cached = androidEnablePendingFabricTransactionsCache + if (cached == null) { + cached = currentProvider.androidEnablePendingFabricTransactions() + accessedFeatureFlags.add("androidEnablePendingFabricTransactions") + androidEnablePendingFabricTransactionsCache = cached + } + return cached + } + + override fun batchRenderingUpdatesInEventLoop(): Boolean { + var cached = batchRenderingUpdatesInEventLoopCache + if (cached == null) { + cached = currentProvider.batchRenderingUpdatesInEventLoop() + accessedFeatureFlags.add("batchRenderingUpdatesInEventLoop") + batchRenderingUpdatesInEventLoopCache = cached + } + return cached + } + + override fun destroyFabricSurfacesInReactInstanceManager(): Boolean { + var cached = destroyFabricSurfacesInReactInstanceManagerCache + if (cached == null) { + cached = currentProvider.destroyFabricSurfacesInReactInstanceManager() + accessedFeatureFlags.add("destroyFabricSurfacesInReactInstanceManager") + destroyFabricSurfacesInReactInstanceManagerCache = cached + } + return cached + } + +>>>>>>> 849da2146ca (Split scheduler commit and flush delegate methods (#44188)) override fun enableBackgroundExecutor(): Boolean { var cached = enableBackgroundExecutorCache if (cached == null) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt index 2d4561cc3e6420..3211bb55c2f360 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<> */ /** @@ -25,6 +25,12 @@ import com.facebook.proguard.annotations.DoNotStrip public interface ReactNativeFeatureFlagsProvider { @DoNotStrip public fun commonTestFlag(): Boolean + @DoNotStrip public fun androidEnablePendingFabricTransactions(): Boolean + + @DoNotStrip public fun batchRenderingUpdatesInEventLoop(): Boolean + + @DoNotStrip public fun destroyFabricSurfacesInReactInstanceManager(): Boolean + @DoNotStrip public fun enableBackgroundExecutor(): Boolean @DoNotStrip public fun useModernRuntimeScheduler(): Boolean diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.cpp index b19acb9108ace0..c3a0c8c226ded1 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.cpp @@ -474,8 +474,7 @@ std::shared_ptr Binding::getMountingManager( void Binding::schedulerDidFinishTransaction( const MountingCoordinator::Shared& mountingCoordinator) { - auto mountingManager = getMountingManager("schedulerDidFinishTransaction"); - if (!mountingManager) { + if (!ReactNativeFeatureFlags::androidEnablePendingFabricTransactions()) { return; } @@ -483,7 +482,43 @@ void Binding::schedulerDidFinishTransaction( if (!mountingTransaction.has_value()) { return; } - mountingManager->executeMount(*mountingTransaction); + + std::unique_lock lock(pendingTransactionsMutex_); + auto pendingTransaction = std::find_if( + pendingTransactions_.begin(), + pendingTransactions_.end(), + [&](const auto& transaction) { + return transaction.getSurfaceId() == + mountingTransaction->getSurfaceId(); + }); + + if (pendingTransaction != pendingTransactions_.end()) { + pendingTransaction->mergeWith(std::move(*mountingTransaction)); + } else { + pendingTransactions_.push_back(std::move(*mountingTransaction)); + } +} + +void Binding::schedulerShouldRenderTransactions( + const MountingCoordinator::Shared& mountingCoordinator) { + auto mountingManager = + getMountingManager("schedulerShouldRenderTransactions"); + if (!mountingManager) { + return; + } + + if (ReactNativeFeatureFlags::androidEnablePendingFabricTransactions()) { + std::unique_lock lock(pendingTransactionsMutex_); + for (auto& transaction : pendingTransactions_) { + mountingManager->executeMount(transaction); + } + pendingTransactions_.clear(); + } else { + auto mountingTransaction = mountingCoordinator->pullTransaction(); + if (mountingTransaction.has_value()) { + mountingManager->executeMount(*mountingTransaction); + } + } } void Binding::schedulerDidRequestPreliminaryViewAllocation( diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.h b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.h index b310f3bd2962be..dec5855b096fda 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/Binding.h @@ -8,6 +8,7 @@ #pragma once #include +#include #include #include @@ -101,6 +102,9 @@ class Binding : public jni::HybridClass, void schedulerDidFinishTransaction( const MountingCoordinator::Shared& mountingCoordinator) override; + void schedulerShouldRenderTransactions( + const MountingCoordinator::Shared& mountingCoordinator) override; + void schedulerDidRequestPreliminaryViewAllocation( const SurfaceId surfaceId, const ShadowNode& shadowNode) override; @@ -146,6 +150,10 @@ class Binding : public jni::HybridClass, std::shared_mutex surfaceHandlerRegistryMutex_; // Protects `surfaceHandlerRegistry_`. + // Track pending transactions, one per surfaceId + std::mutex pendingTransactionsMutex_; + std::vector pendingTransactions_; + float pointScaleFactor_ = 1; std::shared_ptr reactNativeConfig_{nullptr}; diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp index 15061428a2a2df..5a5ffe1ce975df 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<> */ /** @@ -45,6 +45,24 @@ class ReactNativeFeatureFlagsProviderHolder return method(javaProvider_); } + bool androidEnablePendingFabricTransactions() override { + static const auto method = + getReactNativeFeatureFlagsProviderJavaClass()->getMethod("androidEnablePendingFabricTransactions"); + return method(javaProvider_); + } + + bool batchRenderingUpdatesInEventLoop() override { + static const auto method = + getReactNativeFeatureFlagsProviderJavaClass()->getMethod("batchRenderingUpdatesInEventLoop"); + return method(javaProvider_); + } + + bool destroyFabricSurfacesInReactInstanceManager() override { + static const auto method = + getReactNativeFeatureFlagsProviderJavaClass()->getMethod("destroyFabricSurfacesInReactInstanceManager"); + return method(javaProvider_); + } + bool enableBackgroundExecutor() override { static const auto method = getReactNativeFeatureFlagsProviderJavaClass()->getMethod("enableBackgroundExecutor"); @@ -108,6 +126,21 @@ bool JReactNativeFeatureFlagsCxxInterop::commonTestFlag( return ReactNativeFeatureFlags::commonTestFlag(); } +bool JReactNativeFeatureFlagsCxxInterop::androidEnablePendingFabricTransactions( + facebook::jni::alias_ref /*unused*/) { + return ReactNativeFeatureFlags::androidEnablePendingFabricTransactions(); +} + +bool JReactNativeFeatureFlagsCxxInterop::batchRenderingUpdatesInEventLoop( + facebook::jni::alias_ref /*unused*/) { + return ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop(); +} + +bool JReactNativeFeatureFlagsCxxInterop::destroyFabricSurfacesInReactInstanceManager( + facebook::jni::alias_ref /*unused*/) { + return ReactNativeFeatureFlags::destroyFabricSurfacesInReactInstanceManager(); +} + bool JReactNativeFeatureFlagsCxxInterop::enableBackgroundExecutor( facebook::jni::alias_ref /*unused*/) { return ReactNativeFeatureFlags::enableBackgroundExecutor(); @@ -173,6 +206,15 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() { makeNativeMethod( "commonTestFlag", JReactNativeFeatureFlagsCxxInterop::commonTestFlag), + makeNativeMethod( + "androidEnablePendingFabricTransactions", + JReactNativeFeatureFlagsCxxInterop::androidEnablePendingFabricTransactions), + makeNativeMethod( + "batchRenderingUpdatesInEventLoop", + JReactNativeFeatureFlagsCxxInterop::batchRenderingUpdatesInEventLoop), + makeNativeMethod( + "destroyFabricSurfacesInReactInstanceManager", + JReactNativeFeatureFlagsCxxInterop::destroyFabricSurfacesInReactInstanceManager), makeNativeMethod( "enableBackgroundExecutor", JReactNativeFeatureFlagsCxxInterop::enableBackgroundExecutor), diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h index ff7881e09e417c..1f430fc71041a6 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<3a6ff4e2f6d4056d903542cc620e07a9>> */ /** @@ -33,6 +33,15 @@ class JReactNativeFeatureFlagsCxxInterop static bool commonTestFlag( facebook::jni::alias_ref); + static bool androidEnablePendingFabricTransactions( + facebook::jni::alias_ref); + + static bool batchRenderingUpdatesInEventLoop( + facebook::jni::alias_ref); + + static bool destroyFabricSurfacesInReactInstanceManager( + facebook::jni::alias_ref); + static bool enableBackgroundExecutor( facebook::jni::alias_ref); diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp index caec5678dd7b3c..e64540e127f733 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<82f226df2b3824d03b755a042b20bec5>> + * @generated SignedSource<<6305ea7c2cb59caeaf2ea9cea69b8203>> */ /** @@ -25,6 +25,18 @@ bool ReactNativeFeatureFlags::commonTestFlag() { return getAccessor().commonTestFlag(); } +bool ReactNativeFeatureFlags::androidEnablePendingFabricTransactions() { + return getAccessor().androidEnablePendingFabricTransactions(); +} + +bool ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop() { + return getAccessor().batchRenderingUpdatesInEventLoop(); +} + +bool ReactNativeFeatureFlags::destroyFabricSurfacesInReactInstanceManager() { + return getAccessor().destroyFabricSurfacesInReactInstanceManager(); +} + bool ReactNativeFeatureFlags::enableBackgroundExecutor() { return getAccessor().enableBackgroundExecutor(); } diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h index 8f82ea192014c9..248cac686bfe90 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<3bfae310dfd28040f4b80d1a1df8b7b3>> + * @generated SignedSource<<5a5c6772253f49b0b768cd7ef090af14>> */ /** @@ -36,7 +36,22 @@ class ReactNativeFeatureFlags { /** * Common flag for testing. Do NOT modify. */ - static bool commonTestFlag(); + RN_EXPORT static bool commonTestFlag(); + + /** + * To be used with batchRenderingUpdatesInEventLoop. When enbled, the Android mounting layer will concatenate pending transactions to ensure they're applied atomatically + */ + RN_EXPORT static bool androidEnablePendingFabricTransactions(); + + /** + * When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop. + */ + RN_EXPORT static bool batchRenderingUpdatesInEventLoop(); + + /** + * When enabled, ReactInstanceManager will clean up Fabric surfaces on destroy(). + */ + RN_EXPORT static bool destroyFabricSurfacesInReactInstanceManager(); /** * Enables the use of a background executor to compute layout and commit updates on Fabric (this system is deprecated and should not be used). diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp index d46d461bfd4261..3a9977ead0a7d0 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<2154292f89306f25289583537833a065>> + * @generated SignedSource<> */ /** @@ -47,6 +47,60 @@ bool ReactNativeFeatureFlagsAccessor::commonTestFlag() { return flagValue.value(); } +bool ReactNativeFeatureFlagsAccessor::androidEnablePendingFabricTransactions() { + auto flagValue = androidEnablePendingFabricTransactions_.load(); + + if (!flagValue.has_value()) { + // This block is not exclusive but it is not necessary. + // If multiple threads try to initialize the feature flag, we would only + // be accessing the provider multiple times but the end state of this + // instance and the returned flag value would be the same. + + markFlagAsAccessed(1, "androidEnablePendingFabricTransactions"); + + flagValue = currentProvider_->androidEnablePendingFabricTransactions(); + androidEnablePendingFabricTransactions_ = flagValue; + } + + return flagValue.value(); +} + +bool ReactNativeFeatureFlagsAccessor::batchRenderingUpdatesInEventLoop() { + auto flagValue = batchRenderingUpdatesInEventLoop_.load(); + + if (!flagValue.has_value()) { + // This block is not exclusive but it is not necessary. + // If multiple threads try to initialize the feature flag, we would only + // be accessing the provider multiple times but the end state of this + // instance and the returned flag value would be the same. + + markFlagAsAccessed(2, "batchRenderingUpdatesInEventLoop"); + + flagValue = currentProvider_->batchRenderingUpdatesInEventLoop(); + batchRenderingUpdatesInEventLoop_ = flagValue; + } + + return flagValue.value(); +} + +bool ReactNativeFeatureFlagsAccessor::destroyFabricSurfacesInReactInstanceManager() { + auto flagValue = destroyFabricSurfacesInReactInstanceManager_.load(); + + if (!flagValue.has_value()) { + // This block is not exclusive but it is not necessary. + // If multiple threads try to initialize the feature flag, we would only + // be accessing the provider multiple times but the end state of this + // instance and the returned flag value would be the same. + + markFlagAsAccessed(3, "destroyFabricSurfacesInReactInstanceManager"); + + flagValue = currentProvider_->destroyFabricSurfacesInReactInstanceManager(); + destroyFabricSurfacesInReactInstanceManager_ = flagValue; + } + + return flagValue.value(); +} + bool ReactNativeFeatureFlagsAccessor::enableBackgroundExecutor() { auto flagValue = enableBackgroundExecutor_.load(); @@ -56,7 +110,7 @@ bool ReactNativeFeatureFlagsAccessor::enableBackgroundExecutor() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(1, "enableBackgroundExecutor"); + markFlagAsAccessed(4, "enableBackgroundExecutor"); flagValue = currentProvider_->enableBackgroundExecutor(); enableBackgroundExecutor_ = flagValue; @@ -65,8 +119,26 @@ bool ReactNativeFeatureFlagsAccessor::enableBackgroundExecutor() { return flagValue.value(); } -bool ReactNativeFeatureFlagsAccessor::useModernRuntimeScheduler() { - auto flagValue = useModernRuntimeScheduler_.load(); +bool ReactNativeFeatureFlagsAccessor::enableCleanTextInputYogaNode() { + auto flagValue = enableCleanTextInputYogaNode_.load(); + + if (!flagValue.has_value()) { + // This block is not exclusive but it is not necessary. + // If multiple threads try to initialize the feature flag, we would only + // be accessing the provider multiple times but the end state of this + // instance and the returned flag value would be the same. + + markFlagAsAccessed(5, "enableCleanTextInputYogaNode"); + + flagValue = currentProvider_->enableCleanTextInputYogaNode(); + enableCleanTextInputYogaNode_ = flagValue; + } + + return flagValue.value(); +} + +bool ReactNativeFeatureFlagsAccessor::enableCustomDrawOrderFabric() { + auto flagValue = enableCustomDrawOrderFabric_.load(); if (!flagValue.has_value()) { // This block is not exclusive but it is not necessary. @@ -74,7 +146,7 @@ bool ReactNativeFeatureFlagsAccessor::useModernRuntimeScheduler() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(2, "useModernRuntimeScheduler"); + markFlagAsAccessed(6, "enableCustomDrawOrderFabric"); flagValue = currentProvider_->useModernRuntimeScheduler(); useModernRuntimeScheduler_ = flagValue; @@ -92,7 +164,7 @@ bool ReactNativeFeatureFlagsAccessor::enableMicrotasks() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(3, "enableMicrotasks"); + markFlagAsAccessed(7, "enableMicrotasks"); flagValue = currentProvider_->enableMicrotasks(); enableMicrotasks_ = flagValue; @@ -110,7 +182,7 @@ bool ReactNativeFeatureFlagsAccessor::batchRenderingUpdatesInEventLoop() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(4, "batchRenderingUpdatesInEventLoop"); + markFlagAsAccessed(8, "enableSpannableBuildingUnification"); flagValue = currentProvider_->batchRenderingUpdatesInEventLoop(); batchRenderingUpdatesInEventLoop_ = flagValue; @@ -128,7 +200,7 @@ bool ReactNativeFeatureFlagsAccessor::enableSpannableBuildingUnification() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(5, "enableSpannableBuildingUnification"); + markFlagAsAccessed(9, "enableSynchronousStateUpdates"); flagValue = currentProvider_->enableSpannableBuildingUnification(); enableSpannableBuildingUnification_ = flagValue; @@ -146,7 +218,7 @@ bool ReactNativeFeatureFlagsAccessor::enableCustomDrawOrderFabric() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(6, "enableCustomDrawOrderFabric"); + markFlagAsAccessed(10, "enableUIConsistency"); flagValue = currentProvider_->enableCustomDrawOrderFabric(); enableCustomDrawOrderFabric_ = flagValue; @@ -164,7 +236,7 @@ bool ReactNativeFeatureFlagsAccessor::enableFixForClippedSubviewsCrash() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(7, "enableFixForClippedSubviewsCrash"); + markFlagAsAccessed(11, "forceBatchingMountItemsOnAndroid"); flagValue = currentProvider_->enableFixForClippedSubviewsCrash(); enableFixForClippedSubviewsCrash_ = flagValue; @@ -182,7 +254,7 @@ bool ReactNativeFeatureFlagsAccessor::inspectorEnableCxxInspectorPackagerConnect // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(8, "inspectorEnableCxxInspectorPackagerConnection"); + markFlagAsAccessed(12, "inspectorEnableCxxInspectorPackagerConnection"); flagValue = currentProvider_->inspectorEnableCxxInspectorPackagerConnection(); inspectorEnableCxxInspectorPackagerConnection_ = flagValue; @@ -200,7 +272,7 @@ bool ReactNativeFeatureFlagsAccessor::inspectorEnableModernCDPRegistry() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(9, "inspectorEnableModernCDPRegistry"); + markFlagAsAccessed(13, "inspectorEnableModernCDPRegistry"); flagValue = currentProvider_->inspectorEnableModernCDPRegistry(); inspectorEnableModernCDPRegistry_ = flagValue; @@ -209,6 +281,78 @@ bool ReactNativeFeatureFlagsAccessor::inspectorEnableModernCDPRegistry() { return flagValue.value(); } +bool ReactNativeFeatureFlagsAccessor::preventDoubleTextMeasure() { + auto flagValue = preventDoubleTextMeasure_.load(); + + if (!flagValue.has_value()) { + // This block is not exclusive but it is not necessary. + // If multiple threads try to initialize the feature flag, we would only + // be accessing the provider multiple times but the end state of this + // instance and the returned flag value would be the same. + + markFlagAsAccessed(14, "preventDoubleTextMeasure"); + + flagValue = currentProvider_->preventDoubleTextMeasure(); + preventDoubleTextMeasure_ = flagValue; + } + + return flagValue.value(); +} + +bool ReactNativeFeatureFlagsAccessor::useModernRuntimeScheduler() { + auto flagValue = useModernRuntimeScheduler_.load(); + + if (!flagValue.has_value()) { + // This block is not exclusive but it is not necessary. + // If multiple threads try to initialize the feature flag, we would only + // be accessing the provider multiple times but the end state of this + // instance and the returned flag value would be the same. + + markFlagAsAccessed(15, "useModernRuntimeScheduler"); + + flagValue = currentProvider_->useModernRuntimeScheduler(); + useModernRuntimeScheduler_ = flagValue; + } + + return flagValue.value(); +} + +bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() { + auto flagValue = useNativeViewConfigsInBridgelessMode_.load(); + + if (!flagValue.has_value()) { + // This block is not exclusive but it is not necessary. + // If multiple threads try to initialize the feature flag, we would only + // be accessing the provider multiple times but the end state of this + // instance and the returned flag value would be the same. + + markFlagAsAccessed(16, "useNativeViewConfigsInBridgelessMode"); + + flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode(); + useNativeViewConfigsInBridgelessMode_ = flagValue; + } + + return flagValue.value(); +} + +bool ReactNativeFeatureFlagsAccessor::useStateAlignmentMechanism() { + auto flagValue = useStateAlignmentMechanism_.load(); + + if (!flagValue.has_value()) { + // This block is not exclusive but it is not necessary. + // If multiple threads try to initialize the feature flag, we would only + // be accessing the provider multiple times but the end state of this + // instance and the returned flag value would be the same. + + markFlagAsAccessed(17, "useStateAlignmentMechanism"); + + flagValue = currentProvider_->useStateAlignmentMechanism(); + useStateAlignmentMechanism_ = flagValue; + } + + return flagValue.value(); +} + void ReactNativeFeatureFlagsAccessor::override( std::unique_ptr provider) { if (wasOverridden_) { diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h index b177bfe53b6b33..f27cd809a5bf7e 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<95487968b66d40e1ec53936b06084931>> + * @generated SignedSource<<9be1a64b5efca2421dfb093dbcc1f793>> */ /** @@ -32,6 +32,9 @@ class ReactNativeFeatureFlagsAccessor { ReactNativeFeatureFlagsAccessor(); bool commonTestFlag(); + bool androidEnablePendingFabricTransactions(); + bool batchRenderingUpdatesInEventLoop(); + bool destroyFabricSurfacesInReactInstanceManager(); bool enableBackgroundExecutor(); bool useModernRuntimeScheduler(); bool enableMicrotasks(); @@ -51,9 +54,12 @@ class ReactNativeFeatureFlagsAccessor { std::unique_ptr currentProvider_; bool wasOverridden_; - std::array, 10> accessedFeatureFlags_; + std::array, 18> accessedFeatureFlags_; std::atomic> commonTestFlag_; + std::atomic> androidEnablePendingFabricTransactions_; + std::atomic> batchRenderingUpdatesInEventLoop_; + std::atomic> destroyFabricSurfacesInReactInstanceManager_; std::atomic> enableBackgroundExecutor_; std::atomic> useModernRuntimeScheduler_; std::atomic> enableMicrotasks_; diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h index ce2aadae3b63ce..3b5eb1a4bab114 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<4832483bb3648380f2bb9312311f579c>> + * @generated SignedSource<> */ /** @@ -31,6 +31,18 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider { return false; } + bool androidEnablePendingFabricTransactions() override { + return false; + } + + bool batchRenderingUpdatesInEventLoop() override { + return false; + } + + bool destroyFabricSurfacesInReactInstanceManager() override { + return false; + } + bool enableBackgroundExecutor() override { return false; } diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h index f6f55b5fc15e4a..35bb7d42c9cffe 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<3f99a52c114d6f96edb2b2b2f549b6a6>> */ /** @@ -26,6 +26,9 @@ class ReactNativeFeatureFlagsProvider { virtual ~ReactNativeFeatureFlagsProvider() = default; virtual bool commonTestFlag() = 0; + virtual bool androidEnablePendingFabricTransactions() = 0; + virtual bool batchRenderingUpdatesInEventLoop() = 0; + virtual bool destroyFabricSurfacesInReactInstanceManager() = 0; virtual bool enableBackgroundExecutor() = 0; virtual bool useModernRuntimeScheduler() = 0; virtual bool enableMicrotasks() = 0; diff --git a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp index 67f799f556c1ee..344ec4a97c59c5 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +++ b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<2466af777a1d69da2c3810e5a2d53a70>> + * @generated SignedSource<<5285ee6c09bf4614cb5098952aac8c87>> */ /** @@ -40,6 +40,21 @@ bool NativeReactNativeFeatureFlags::commonTestFlag( return ReactNativeFeatureFlags::commonTestFlag(); } +bool NativeReactNativeFeatureFlags::androidEnablePendingFabricTransactions( + jsi::Runtime& /*runtime*/) { + return ReactNativeFeatureFlags::androidEnablePendingFabricTransactions(); +} + +bool NativeReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop( + jsi::Runtime& /*runtime*/) { + return ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop(); +} + +bool NativeReactNativeFeatureFlags::destroyFabricSurfacesInReactInstanceManager( + jsi::Runtime& /*runtime*/) { + return ReactNativeFeatureFlags::destroyFabricSurfacesInReactInstanceManager(); +} + bool NativeReactNativeFeatureFlags::enableBackgroundExecutor( jsi::Runtime& /*runtime*/) { return ReactNativeFeatureFlags::enableBackgroundExecutor(); diff --git a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h index 203dfce52c07e1..bbfcd70a665b0c 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +++ b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<30481dc57cc7f389d1ed87d097caedda>> + * @generated SignedSource<<86afdf79a8a49da18eddf53bc9d41051>> */ /** @@ -32,6 +32,12 @@ class NativeReactNativeFeatureFlags bool commonTestFlag(jsi::Runtime& runtime); + bool androidEnablePendingFabricTransactions(jsi::Runtime& runtime); + + bool batchRenderingUpdatesInEventLoop(jsi::Runtime& runtime); + + bool destroyFabricSurfacesInReactInstanceManager(jsi::Runtime& runtime); + bool enableBackgroundExecutor(jsi::Runtime& runtime); bool useModernRuntimeScheduler(jsi::Runtime& runtime); diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/MountingTransaction.cpp b/packages/react-native/ReactCommon/react/renderer/mounting/MountingTransaction.cpp index f858acafc6da70..d7dd1bcd916404 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/MountingTransaction.cpp +++ b/packages/react-native/ReactCommon/react/renderer/mounting/MountingTransaction.cpp @@ -41,4 +41,17 @@ Number MountingTransaction::getNumber() const { return number_; } +void MountingTransaction::mergeWith(MountingTransaction&& transaction) { + react_native_assert(transaction.getSurfaceId() == surfaceId_); + number_ = transaction.getNumber(); + mutations_.insert( + mutations_.end(), + std::make_move_iterator(transaction.mutations_.begin()), + std::make_move_iterator(transaction.mutations_.end())); + + // TODO T186641819: Telemetry for merged transactions is not supported, use + // the latest instance + telemetry_ = std::move(transaction.telemetry_); +} + } // namespace facebook::react diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/MountingTransaction.h b/packages/react-native/ReactCommon/react/renderer/mounting/MountingTransaction.h index 3d90076ce8b3a6..277e9f4e307c1e 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/MountingTransaction.h +++ b/packages/react-native/ReactCommon/react/renderer/mounting/MountingTransaction.h @@ -76,6 +76,15 @@ class MountingTransaction final { */ Number getNumber() const; + /* + * Merges the given transaction in the current transaction, so they + * can be executed atomatically as a single transaction. + * + * This is required for Android UI, which needs to separately apply + * each ShadowTree mutation due to differences in props representation. + */ + void mergeWith(MountingTransaction&& transaction); + private: SurfaceId surfaceId_; Number number_; diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp index ee4ed0a1f40e01..a70abde5cf72aa 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/Scheduler.cpp @@ -273,6 +273,10 @@ void Scheduler::uiManagerDidFinishTransaction( SystraceSection s("Scheduler::uiManagerDidFinishTransaction"); if (delegate_ != nullptr) { + // This is no-op on all platforms except for Android where we need to + // observe each transaction to be able to mount correctly. + delegate_->schedulerDidFinishTransaction(mountingCoordinator); + auto weakRuntimeScheduler = contextContainer_->find>( "RuntimeScheduler"); @@ -283,13 +287,14 @@ void Scheduler::uiManagerDidFinishTransaction( runtimeScheduler->scheduleRenderingUpdate( [delegate = delegate_, mountingCoordinator = std::move(mountingCoordinator)]() { - delegate->schedulerDidFinishTransaction(mountingCoordinator); + delegate->schedulerShouldRenderTransactions(mountingCoordinator); }); } else { - delegate_->schedulerDidFinishTransaction(mountingCoordinator); + delegate_->schedulerShouldRenderTransactions(mountingCoordinator); } } } + void Scheduler::uiManagerDidCreateShadowNode(const ShadowNode& shadowNode) { SystraceSection s("Scheduler::uiManagerDidCreateShadowNode"); diff --git a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h index d103bf850ec12f..338d637da94488 100644 --- a/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h +++ b/packages/react-native/ReactCommon/react/renderer/scheduler/SchedulerDelegate.h @@ -28,6 +28,17 @@ class SchedulerDelegate { virtual void schedulerDidFinishTransaction( const MountingCoordinator::Shared& mountingCoordinator) = 0; + /* + * Called when the runtime scheduler decides that one-or-more previously + * finished transactions should now be flushed to the screen (atomically). + * + * This is a separate callback from didFinishTransaction as the Android UI + * mounting layer needs to be able toobserve each created ShadowTree to + * correctly apply changes, due to changes in Props representation. + */ + virtual void schedulerShouldRenderTransactions( + const MountingCoordinator::Shared& mountingCoordinator) = 0; + /* * Called right after a new ShadowNode was created. */ diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index ef91f0f6e352c5..b79879e130e77a 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -18,6 +18,21 @@ const definitions: FeatureFlagDefinitions = { defaultValue: false, }, + androidEnablePendingFabricTransactions: { + defaultValue: false, + description: + "To be used with batchRenderingUpdatesInEventLoop. When enbled, the Android mounting layer will concatenate pending transactions to ensure they're applied atomatically", + }, + batchRenderingUpdatesInEventLoop: { + defaultValue: false, + description: + 'When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop.', + }, + destroyFabricSurfacesInReactInstanceManager: { + defaultValue: false, + description: + 'When enabled, ReactInstanceManager will clean up Fabric surfaces on destroy().', + }, enableBackgroundExecutor: { description: 'Enables the use of a background executor to compute layout and commit updates on Fabric (this system is deprecated and should not be used).', diff --git a/packages/react-native/src/private/featureflags/NativeReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/NativeReactNativeFeatureFlags.js index 93243673eba9d2..04000941c9d5df 100644 --- a/packages/react-native/src/private/featureflags/NativeReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/NativeReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<8509d5ee87efb5aa8da7efcd2085d0a2>> + * @generated SignedSource<> * @flow strict-local */ @@ -24,6 +24,9 @@ import * as TurboModuleRegistry from '../../../Libraries/TurboModule/TurboModule export interface Spec extends TurboModule { +commonTestFlag?: () => boolean; + +androidEnablePendingFabricTransactions?: () => boolean; + +batchRenderingUpdatesInEventLoop?: () => boolean; + +destroyFabricSurfacesInReactInstanceManager?: () => boolean; +enableBackgroundExecutor?: () => boolean; +useModernRuntimeScheduler?: () => boolean; +enableMicrotasks?: () => boolean; diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index 214dc80c030845..c224753733c223 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<7c83d5613c3be517efe48378e6356e79>> + * @generated SignedSource<<6b90f52915db22d4077011a55a519b20>> * @flow strict-local */ @@ -41,6 +41,9 @@ export type ReactNativeFeatureFlagsJsOnlyOverrides = Partial, + androidEnablePendingFabricTransactions: Getter, + batchRenderingUpdatesInEventLoop: Getter, + destroyFabricSurfacesInReactInstanceManager: Getter, enableBackgroundExecutor: Getter, useModernRuntimeScheduler: Getter, enableMicrotasks: Getter, @@ -96,6 +99,18 @@ export const shouldUseRemoveClippedSubviewsAsDefaultOnIOS: Getter = cre * Common flag for testing. Do NOT modify. */ export const commonTestFlag: Getter = createNativeFlagGetter('commonTestFlag', false); +/** + * To be used with batchRenderingUpdatesInEventLoop. When enbled, the Android mounting layer will concatenate pending transactions to ensure they're applied atomatically + */ +export const androidEnablePendingFabricTransactions: Getter = createNativeFlagGetter('androidEnablePendingFabricTransactions', false); +/** + * When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop. + */ +export const batchRenderingUpdatesInEventLoop: Getter = createNativeFlagGetter('batchRenderingUpdatesInEventLoop', false); +/** + * When enabled, ReactInstanceManager will clean up Fabric surfaces on destroy(). + */ +export const destroyFabricSurfacesInReactInstanceManager: Getter = createNativeFlagGetter('destroyFabricSurfacesInReactInstanceManager', false); /** * Enables the use of a background executor to compute layout and commit updates on Fabric (this system is deprecated and should not be used). */ From df54c24d8dd3c8f7b34c918c449d1ab659365e7f Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Tue, 30 Apr 2024 15:39:15 +0100 Subject: [PATCH 140/223] [LOCAL] Fix merge conflicts not resolved properly --- .../ReactNativeFeatureFlagsCxxAccessor.kt | 22 ----------------- .../ReactNativeFeatureFlagsLocalAccessor.kt | 24 ------------------- 2 files changed, 46 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt index d7c768c7f301a0..c89440cc6a773f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt @@ -43,27 +43,6 @@ public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccesso return cached } -<<<<<<< HEAD -||||||| parent of 849da2146ca (Split scheduler commit and flush delegate methods (#44188)) - override fun batchRenderingUpdatesInEventLoop(): Boolean { - var cached = batchRenderingUpdatesInEventLoopCache - if (cached == null) { - cached = ReactNativeFeatureFlagsCxxInterop.batchRenderingUpdatesInEventLoop() - batchRenderingUpdatesInEventLoopCache = cached - } - return cached - } - - override fun destroyFabricSurfacesInReactInstanceManager(): Boolean { - var cached = destroyFabricSurfacesInReactInstanceManagerCache - if (cached == null) { - cached = ReactNativeFeatureFlagsCxxInterop.destroyFabricSurfacesInReactInstanceManager() - destroyFabricSurfacesInReactInstanceManagerCache = cached - } - return cached - } - -======= override fun androidEnablePendingFabricTransactions(): Boolean { var cached = androidEnablePendingFabricTransactionsCache if (cached == null) { @@ -91,7 +70,6 @@ public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccesso return cached } ->>>>>>> 849da2146ca (Split scheduler commit and flush delegate methods (#44188)) override fun enableBackgroundExecutor(): Boolean { var cached = enableBackgroundExecutorCache if (cached == null) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt index dca198e5274d93..36393cf0f1f2c8 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt @@ -48,29 +48,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces return cached } -<<<<<<< HEAD -||||||| parent of 849da2146ca (Split scheduler commit and flush delegate methods (#44188)) - override fun batchRenderingUpdatesInEventLoop(): Boolean { - var cached = batchRenderingUpdatesInEventLoopCache - if (cached == null) { - cached = currentProvider.batchRenderingUpdatesInEventLoop() - accessedFeatureFlags.add("batchRenderingUpdatesInEventLoop") - batchRenderingUpdatesInEventLoopCache = cached - } - return cached - } - - override fun destroyFabricSurfacesInReactInstanceManager(): Boolean { - var cached = destroyFabricSurfacesInReactInstanceManagerCache - if (cached == null) { - cached = currentProvider.destroyFabricSurfacesInReactInstanceManager() - accessedFeatureFlags.add("destroyFabricSurfacesInReactInstanceManager") - destroyFabricSurfacesInReactInstanceManagerCache = cached - } - return cached - } - -======= override fun androidEnablePendingFabricTransactions(): Boolean { var cached = androidEnablePendingFabricTransactionsCache if (cached == null) { @@ -101,7 +78,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces return cached } ->>>>>>> 849da2146ca (Split scheduler commit and flush delegate methods (#44188)) override fun enableBackgroundExecutor(): Boolean { var cached = enableBackgroundExecutorCache if (cached == null) { From 1ba79ebb6ffa662973b6f9b0160b2f90278b92f4 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Tue, 30 Apr 2024 15:44:06 +0100 Subject: [PATCH 141/223] [react-native] enable event loop with useLayoutEffect fix --- .../react/defaults/DefaultNewArchitectureEntryPoint.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt index 051effc8525d58..8a2051d2d83d29 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt @@ -55,6 +55,10 @@ public object DefaultNewArchitectureEntryPoint { override fun enableMicrotasks(): Boolean = true override fun batchRenderingUpdatesInEventLoop(): Boolean = true + + override fun androidEnablePendingFabricTransactions(): Boolean = true + + override fun useNativeViewConfigsInBridgelessMode(): Boolean = fabricEnabled }) } From ecd5e51a530e1bfe775c2c70e9873066e2006d0e Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Tue, 30 Apr 2024 17:58:40 +0100 Subject: [PATCH 142/223] [Local] Remove duplicated feature flags --- .../featureflags/ReactNativeFeatureFlags.kt | 8 +- .../ReactNativeFeatureFlagsCxxAccessor.kt | 12 +- .../ReactNativeFeatureFlagsCxxInterop.kt | 4 +- .../ReactNativeFeatureFlagsDefaults.kt | 4 +- .../ReactNativeFeatureFlagsLocalAccessor.kt | 13 +- .../ReactNativeFeatureFlagsProvider.kt | 4 +- .../JReactNativeFeatureFlagsCxxInterop.cpp | 16 +-- .../JReactNativeFeatureFlagsCxxInterop.h | 5 +- .../featureflags/ReactNativeFeatureFlags.cpp | 6 +- .../featureflags/ReactNativeFeatureFlags.h | 15 +- .../ReactNativeFeatureFlagsAccessor.cpp | 128 ++---------------- .../ReactNativeFeatureFlagsAccessor.h | 6 +- .../ReactNativeFeatureFlagsDefaults.h | 6 +- .../ReactNativeFeatureFlagsProvider.h | 3 +- .../NativeReactNativeFeatureFlags.cpp | 7 +- .../NativeReactNativeFeatureFlags.h | 4 +- .../NativeReactNativeFeatureFlags.js | 3 +- .../featureflags/ReactNativeFeatureFlags.js | 7 +- 18 files changed, 32 insertions(+), 219 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt index 242557e325fab5..c5f9dc4e0be2e0 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<> */ /** @@ -70,12 +70,6 @@ public object ReactNativeFeatureFlags { @JvmStatic public fun enableMicrotasks(): Boolean = accessor.enableMicrotasks() - /** - * When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop. - */ - @JvmStatic - public fun batchRenderingUpdatesInEventLoop(): Boolean = accessor.batchRenderingUpdatesInEventLoop() - /** * Uses new, deduplicated logic for constructing Android Spannables from text fragments */ diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt index c89440cc6a773f..512b43d8d92752 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<40668dcd951123da7c0b4ddde23f94c9>> + * @generated SignedSource<> */ /** @@ -27,7 +27,6 @@ public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccesso private var enableBackgroundExecutorCache: Boolean? = null private var useModernRuntimeSchedulerCache: Boolean? = null private var enableMicrotasksCache: Boolean? = null - private var batchRenderingUpdatesInEventLoopCache: Boolean? = null private var enableSpannableBuildingUnificationCache: Boolean? = null private var enableCustomDrawOrderFabricCache: Boolean? = null private var enableFixForClippedSubviewsCrashCache: Boolean? = null @@ -97,15 +96,6 @@ public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccesso return cached } - override fun batchRenderingUpdatesInEventLoop(): Boolean { - var cached = batchRenderingUpdatesInEventLoopCache - if (cached == null) { - cached = ReactNativeFeatureFlagsCxxInterop.batchRenderingUpdatesInEventLoop() - batchRenderingUpdatesInEventLoopCache = cached - } - return cached - } - override fun enableSpannableBuildingUnification(): Boolean { var cached = enableSpannableBuildingUnificationCache if (cached == null) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt index 07dd950fe8540c..7ce102e95267eb 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<5fece1bcbbd750b82b8e4b125c57101e>> */ /** @@ -42,8 +42,6 @@ public object ReactNativeFeatureFlagsCxxInterop { @DoNotStrip @JvmStatic public external fun enableMicrotasks(): Boolean - @DoNotStrip @JvmStatic public external fun batchRenderingUpdatesInEventLoop(): Boolean - @DoNotStrip @JvmStatic public external fun enableSpannableBuildingUnification(): Boolean @DoNotStrip @JvmStatic public external fun enableCustomDrawOrderFabric(): Boolean diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt index 20a6fb3300c92a..96bccc3a818b51 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<4462edcf10a85654be7c71a7438a2288>> */ /** @@ -37,8 +37,6 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi override fun enableMicrotasks(): Boolean = false - override fun batchRenderingUpdatesInEventLoop(): Boolean = false - override fun enableSpannableBuildingUnification(): Boolean = false override fun enableCustomDrawOrderFabric(): Boolean = false diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt index 36393cf0f1f2c8..acb8e387693b95 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<> */ /** @@ -31,7 +31,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces private var enableBackgroundExecutorCache: Boolean? = null private var useModernRuntimeSchedulerCache: Boolean? = null private var enableMicrotasksCache: Boolean? = null - private var batchRenderingUpdatesInEventLoopCache: Boolean? = null private var enableSpannableBuildingUnificationCache: Boolean? = null private var enableCustomDrawOrderFabricCache: Boolean? = null private var enableFixForClippedSubviewsCrashCache: Boolean? = null @@ -108,16 +107,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces return cached } - override fun batchRenderingUpdatesInEventLoop(): Boolean { - var cached = batchRenderingUpdatesInEventLoopCache - if (cached == null) { - cached = currentProvider.batchRenderingUpdatesInEventLoop() - accessedFeatureFlags.add("batchRenderingUpdatesInEventLoop") - batchRenderingUpdatesInEventLoopCache = cached - } - return cached - } - override fun enableSpannableBuildingUnification(): Boolean { var cached = enableSpannableBuildingUnificationCache if (cached == null) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt index 3211bb55c2f360..8db8c67bfd2e9a 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<9190129a45a19b25dd23126f05b03356>> */ /** @@ -37,8 +37,6 @@ public interface ReactNativeFeatureFlagsProvider { @DoNotStrip public fun enableMicrotasks(): Boolean - @DoNotStrip public fun batchRenderingUpdatesInEventLoop(): Boolean - @DoNotStrip public fun enableSpannableBuildingUnification(): Boolean @DoNotStrip public fun enableCustomDrawOrderFabric(): Boolean diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp index 5a5ffe1ce975df..d800c08086fc15 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<7ab741aec808bc3a138470fe18ef8b8a>> */ /** @@ -81,12 +81,6 @@ class ReactNativeFeatureFlagsProviderHolder return method(javaProvider_); } - bool batchRenderingUpdatesInEventLoop() override { - static const auto method = - getReactNativeFeatureFlagsProviderJavaClass()->getMethod("batchRenderingUpdatesInEventLoop"); - return method(javaProvider_); - } - bool enableSpannableBuildingUnification() override { static const auto method = getReactNativeFeatureFlagsProviderJavaClass()->getMethod("enableSpannableBuildingUnification"); @@ -156,11 +150,6 @@ bool JReactNativeFeatureFlagsCxxInterop::enableMicrotasks( return ReactNativeFeatureFlags::enableMicrotasks(); } -bool JReactNativeFeatureFlagsCxxInterop::batchRenderingUpdatesInEventLoop( - facebook::jni::alias_ref /*unused*/) { - return ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop(); -} - bool JReactNativeFeatureFlagsCxxInterop::enableSpannableBuildingUnification( facebook::jni::alias_ref /*unused*/) { return ReactNativeFeatureFlags::enableSpannableBuildingUnification(); @@ -224,9 +213,6 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() { makeNativeMethod( "enableMicrotasks", JReactNativeFeatureFlagsCxxInterop::enableMicrotasks), - makeNativeMethod( - "batchRenderingUpdatesInEventLoop", - JReactNativeFeatureFlagsCxxInterop::batchRenderingUpdatesInEventLoop), makeNativeMethod( "enableSpannableBuildingUnification", JReactNativeFeatureFlagsCxxInterop::enableSpannableBuildingUnification), diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h index 1f430fc71041a6..ce97635d8fadbc 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<3a6ff4e2f6d4056d903542cc620e07a9>> + * @generated SignedSource<<0d37cc1fb8217b0f4a849e178ec2ec68>> */ /** @@ -51,9 +51,6 @@ class JReactNativeFeatureFlagsCxxInterop static bool enableMicrotasks( facebook::jni::alias_ref); - static bool batchRenderingUpdatesInEventLoop( - facebook::jni::alias_ref); - static bool enableSpannableBuildingUnification( facebook::jni::alias_ref); diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp index e64540e127f733..3e4989ac3482bb 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<6305ea7c2cb59caeaf2ea9cea69b8203>> + * @generated SignedSource<<7ba277e9902ca2a0b171daf223644b89>> */ /** @@ -49,10 +49,6 @@ bool ReactNativeFeatureFlags::enableMicrotasks() { return getAccessor().enableMicrotasks(); } -bool ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop() { - return getAccessor().batchRenderingUpdatesInEventLoop(); -} - bool ReactNativeFeatureFlags::enableSpannableBuildingUnification() { return getAccessor().enableSpannableBuildingUnification(); } diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h index 248cac686bfe90..2dbc253f97f6fa 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<5a5c6772253f49b0b768cd7ef090af14>> + * @generated SignedSource<> */ /** @@ -36,22 +36,22 @@ class ReactNativeFeatureFlags { /** * Common flag for testing. Do NOT modify. */ - RN_EXPORT static bool commonTestFlag(); + static bool commonTestFlag(); /** * To be used with batchRenderingUpdatesInEventLoop. When enbled, the Android mounting layer will concatenate pending transactions to ensure they're applied atomatically */ - RN_EXPORT static bool androidEnablePendingFabricTransactions(); + static bool androidEnablePendingFabricTransactions(); /** * When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop. */ - RN_EXPORT static bool batchRenderingUpdatesInEventLoop(); + static bool batchRenderingUpdatesInEventLoop(); /** * When enabled, ReactInstanceManager will clean up Fabric surfaces on destroy(). */ - RN_EXPORT static bool destroyFabricSurfacesInReactInstanceManager(); + static bool destroyFabricSurfacesInReactInstanceManager(); /** * Enables the use of a background executor to compute layout and commit updates on Fabric (this system is deprecated and should not be used). @@ -68,11 +68,6 @@ class ReactNativeFeatureFlags { */ static bool enableMicrotasks(); - /** - * When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop. - */ - static bool batchRenderingUpdatesInEventLoop(); - /** * Uses new, deduplicated logic for constructing Android Spannables from text fragments */ diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp index 3a9977ead0a7d0..0bbed9699bdbed 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<5311a007bec258c79bf1ca3e2355101c>> */ /** @@ -119,26 +119,8 @@ bool ReactNativeFeatureFlagsAccessor::enableBackgroundExecutor() { return flagValue.value(); } -bool ReactNativeFeatureFlagsAccessor::enableCleanTextInputYogaNode() { - auto flagValue = enableCleanTextInputYogaNode_.load(); - - if (!flagValue.has_value()) { - // This block is not exclusive but it is not necessary. - // If multiple threads try to initialize the feature flag, we would only - // be accessing the provider multiple times but the end state of this - // instance and the returned flag value would be the same. - - markFlagAsAccessed(5, "enableCleanTextInputYogaNode"); - - flagValue = currentProvider_->enableCleanTextInputYogaNode(); - enableCleanTextInputYogaNode_ = flagValue; - } - - return flagValue.value(); -} - -bool ReactNativeFeatureFlagsAccessor::enableCustomDrawOrderFabric() { - auto flagValue = enableCustomDrawOrderFabric_.load(); +bool ReactNativeFeatureFlagsAccessor::useModernRuntimeScheduler() { + auto flagValue = useModernRuntimeScheduler_.load(); if (!flagValue.has_value()) { // This block is not exclusive but it is not necessary. @@ -146,7 +128,7 @@ bool ReactNativeFeatureFlagsAccessor::enableCustomDrawOrderFabric() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(6, "enableCustomDrawOrderFabric"); + markFlagAsAccessed(5, "useModernRuntimeScheduler"); flagValue = currentProvider_->useModernRuntimeScheduler(); useModernRuntimeScheduler_ = flagValue; @@ -164,7 +146,7 @@ bool ReactNativeFeatureFlagsAccessor::enableMicrotasks() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(7, "enableMicrotasks"); + markFlagAsAccessed(6, "enableMicrotasks"); flagValue = currentProvider_->enableMicrotasks(); enableMicrotasks_ = flagValue; @@ -173,24 +155,6 @@ bool ReactNativeFeatureFlagsAccessor::enableMicrotasks() { return flagValue.value(); } -bool ReactNativeFeatureFlagsAccessor::batchRenderingUpdatesInEventLoop() { - auto flagValue = batchRenderingUpdatesInEventLoop_.load(); - - if (!flagValue.has_value()) { - // This block is not exclusive but it is not necessary. - // If multiple threads try to initialize the feature flag, we would only - // be accessing the provider multiple times but the end state of this - // instance and the returned flag value would be the same. - - markFlagAsAccessed(8, "enableSpannableBuildingUnification"); - - flagValue = currentProvider_->batchRenderingUpdatesInEventLoop(); - batchRenderingUpdatesInEventLoop_ = flagValue; - } - - return flagValue.value(); -} - bool ReactNativeFeatureFlagsAccessor::enableSpannableBuildingUnification() { auto flagValue = enableSpannableBuildingUnification_.load(); @@ -200,7 +164,7 @@ bool ReactNativeFeatureFlagsAccessor::enableSpannableBuildingUnification() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(9, "enableSynchronousStateUpdates"); + markFlagAsAccessed(7, "enableSpannableBuildingUnification"); flagValue = currentProvider_->enableSpannableBuildingUnification(); enableSpannableBuildingUnification_ = flagValue; @@ -218,7 +182,7 @@ bool ReactNativeFeatureFlagsAccessor::enableCustomDrawOrderFabric() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(10, "enableUIConsistency"); + markFlagAsAccessed(8, "enableCustomDrawOrderFabric"); flagValue = currentProvider_->enableCustomDrawOrderFabric(); enableCustomDrawOrderFabric_ = flagValue; @@ -236,7 +200,7 @@ bool ReactNativeFeatureFlagsAccessor::enableFixForClippedSubviewsCrash() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(11, "forceBatchingMountItemsOnAndroid"); + markFlagAsAccessed(9, "enableFixForClippedSubviewsCrash"); flagValue = currentProvider_->enableFixForClippedSubviewsCrash(); enableFixForClippedSubviewsCrash_ = flagValue; @@ -254,7 +218,7 @@ bool ReactNativeFeatureFlagsAccessor::inspectorEnableCxxInspectorPackagerConnect // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(12, "inspectorEnableCxxInspectorPackagerConnection"); + markFlagAsAccessed(10, "inspectorEnableCxxInspectorPackagerConnection"); flagValue = currentProvider_->inspectorEnableCxxInspectorPackagerConnection(); inspectorEnableCxxInspectorPackagerConnection_ = flagValue; @@ -272,7 +236,7 @@ bool ReactNativeFeatureFlagsAccessor::inspectorEnableModernCDPRegistry() { // be accessing the provider multiple times but the end state of this // instance and the returned flag value would be the same. - markFlagAsAccessed(13, "inspectorEnableModernCDPRegistry"); + markFlagAsAccessed(11, "inspectorEnableModernCDPRegistry"); flagValue = currentProvider_->inspectorEnableModernCDPRegistry(); inspectorEnableModernCDPRegistry_ = flagValue; @@ -281,78 +245,6 @@ bool ReactNativeFeatureFlagsAccessor::inspectorEnableModernCDPRegistry() { return flagValue.value(); } -bool ReactNativeFeatureFlagsAccessor::preventDoubleTextMeasure() { - auto flagValue = preventDoubleTextMeasure_.load(); - - if (!flagValue.has_value()) { - // This block is not exclusive but it is not necessary. - // If multiple threads try to initialize the feature flag, we would only - // be accessing the provider multiple times but the end state of this - // instance and the returned flag value would be the same. - - markFlagAsAccessed(14, "preventDoubleTextMeasure"); - - flagValue = currentProvider_->preventDoubleTextMeasure(); - preventDoubleTextMeasure_ = flagValue; - } - - return flagValue.value(); -} - -bool ReactNativeFeatureFlagsAccessor::useModernRuntimeScheduler() { - auto flagValue = useModernRuntimeScheduler_.load(); - - if (!flagValue.has_value()) { - // This block is not exclusive but it is not necessary. - // If multiple threads try to initialize the feature flag, we would only - // be accessing the provider multiple times but the end state of this - // instance and the returned flag value would be the same. - - markFlagAsAccessed(15, "useModernRuntimeScheduler"); - - flagValue = currentProvider_->useModernRuntimeScheduler(); - useModernRuntimeScheduler_ = flagValue; - } - - return flagValue.value(); -} - -bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() { - auto flagValue = useNativeViewConfigsInBridgelessMode_.load(); - - if (!flagValue.has_value()) { - // This block is not exclusive but it is not necessary. - // If multiple threads try to initialize the feature flag, we would only - // be accessing the provider multiple times but the end state of this - // instance and the returned flag value would be the same. - - markFlagAsAccessed(16, "useNativeViewConfigsInBridgelessMode"); - - flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode(); - useNativeViewConfigsInBridgelessMode_ = flagValue; - } - - return flagValue.value(); -} - -bool ReactNativeFeatureFlagsAccessor::useStateAlignmentMechanism() { - auto flagValue = useStateAlignmentMechanism_.load(); - - if (!flagValue.has_value()) { - // This block is not exclusive but it is not necessary. - // If multiple threads try to initialize the feature flag, we would only - // be accessing the provider multiple times but the end state of this - // instance and the returned flag value would be the same. - - markFlagAsAccessed(17, "useStateAlignmentMechanism"); - - flagValue = currentProvider_->useStateAlignmentMechanism(); - useStateAlignmentMechanism_ = flagValue; - } - - return flagValue.value(); -} - void ReactNativeFeatureFlagsAccessor::override( std::unique_ptr provider) { if (wasOverridden_) { diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h index f27cd809a5bf7e..e6a98054acd0ea 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<9be1a64b5efca2421dfb093dbcc1f793>> + * @generated SignedSource<> */ /** @@ -38,7 +38,6 @@ class ReactNativeFeatureFlagsAccessor { bool enableBackgroundExecutor(); bool useModernRuntimeScheduler(); bool enableMicrotasks(); - bool batchRenderingUpdatesInEventLoop(); bool enableSpannableBuildingUnification(); bool enableCustomDrawOrderFabric(); bool enableFixForClippedSubviewsCrash(); @@ -54,7 +53,7 @@ class ReactNativeFeatureFlagsAccessor { std::unique_ptr currentProvider_; bool wasOverridden_; - std::array, 18> accessedFeatureFlags_; + std::array, 12> accessedFeatureFlags_; std::atomic> commonTestFlag_; std::atomic> androidEnablePendingFabricTransactions_; @@ -63,7 +62,6 @@ class ReactNativeFeatureFlagsAccessor { std::atomic> enableBackgroundExecutor_; std::atomic> useModernRuntimeScheduler_; std::atomic> enableMicrotasks_; - std::atomic> batchRenderingUpdatesInEventLoop_; std::atomic> enableSpannableBuildingUnification_; std::atomic> enableCustomDrawOrderFabric_; std::atomic> enableFixForClippedSubviewsCrash_; diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h index 3b5eb1a4bab114..e9d8d4a0f8fd69 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<8a0f2e61752ae83a7a3032939f4a59fa>> */ /** @@ -55,10 +55,6 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider { return false; } - bool batchRenderingUpdatesInEventLoop() override { - return false; - } - bool enableSpannableBuildingUnification() override { return false; } diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h index 35bb7d42c9cffe..bdf24ccb7736b8 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<3f99a52c114d6f96edb2b2b2f549b6a6>> + * @generated SignedSource<<9194d576893a97a6d9b88f5a32c71197>> */ /** @@ -32,7 +32,6 @@ class ReactNativeFeatureFlagsProvider { virtual bool enableBackgroundExecutor() = 0; virtual bool useModernRuntimeScheduler() = 0; virtual bool enableMicrotasks() = 0; - virtual bool batchRenderingUpdatesInEventLoop() = 0; virtual bool enableSpannableBuildingUnification() = 0; virtual bool enableCustomDrawOrderFabric() = 0; virtual bool enableFixForClippedSubviewsCrash() = 0; diff --git a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp index 344ec4a97c59c5..027970860dad27 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +++ b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<5285ee6c09bf4614cb5098952aac8c87>> + * @generated SignedSource<<6d0bae7c1b0d126e58c8b9bdeaf9247e>> */ /** @@ -70,11 +70,6 @@ bool NativeReactNativeFeatureFlags::enableMicrotasks( return ReactNativeFeatureFlags::enableMicrotasks(); } -bool NativeReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop( - jsi::Runtime& /*runtime*/) { - return ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop(); -} - bool NativeReactNativeFeatureFlags::enableSpannableBuildingUnification( jsi::Runtime& /*runtime*/) { return ReactNativeFeatureFlags::enableSpannableBuildingUnification(); diff --git a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h index bbfcd70a665b0c..0b63229c4fde4f 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +++ b/packages/react-native/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<86afdf79a8a49da18eddf53bc9d41051>> + * @generated SignedSource<> */ /** @@ -44,8 +44,6 @@ class NativeReactNativeFeatureFlags bool enableMicrotasks(jsi::Runtime& runtime); - bool batchRenderingUpdatesInEventLoop(jsi::Runtime& runtime); - bool enableSpannableBuildingUnification(jsi::Runtime& runtime); bool enableCustomDrawOrderFabric(jsi::Runtime& runtime); diff --git a/packages/react-native/src/private/featureflags/NativeReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/NativeReactNativeFeatureFlags.js index 04000941c9d5df..0aa146d124e170 100644 --- a/packages/react-native/src/private/featureflags/NativeReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/NativeReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<8f82962343a5146622f36c2de071ff6a>> * @flow strict-local */ @@ -30,7 +30,6 @@ export interface Spec extends TurboModule { +enableBackgroundExecutor?: () => boolean; +useModernRuntimeScheduler?: () => boolean; +enableMicrotasks?: () => boolean; - +batchRenderingUpdatesInEventLoop?: () => boolean; +enableSpannableBuildingUnification?: () => boolean; +enableCustomDrawOrderFabric?: () => boolean; +enableFixForClippedSubviewsCrash?: () => boolean; diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index c224753733c223..117ea39d7f0c71 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<6b90f52915db22d4077011a55a519b20>> + * @generated SignedSource<> * @flow strict-local */ @@ -47,7 +47,6 @@ export type ReactNativeFeatureFlags = { enableBackgroundExecutor: Getter, useModernRuntimeScheduler: Getter, enableMicrotasks: Getter, - batchRenderingUpdatesInEventLoop: Getter, enableSpannableBuildingUnification: Getter, enableCustomDrawOrderFabric: Getter, enableFixForClippedSubviewsCrash: Getter, @@ -123,10 +122,6 @@ export const useModernRuntimeScheduler: Getter = createNativeFlagGetter * Enables the use of microtasks in Hermes (scheduling) and RuntimeScheduler (execution). */ export const enableMicrotasks: Getter = createNativeFlagGetter('enableMicrotasks', false); -/** - * When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop. - */ -export const batchRenderingUpdatesInEventLoop: Getter = createNativeFlagGetter('batchRenderingUpdatesInEventLoop', false); /** * Uses new, deduplicated logic for constructing Android Spannables from text fragments */ From edd1b0a13bcaafcfa17d5f0e0313a6fa97f7e060 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Tue, 30 Apr 2024 18:09:12 +0100 Subject: [PATCH 143/223] [LOCAL] Fix compilation error on DefaultNewArchitectureEntryPoint --- .../facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt index 8a2051d2d83d29..0e64a42fd753cc 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt @@ -57,8 +57,6 @@ public object DefaultNewArchitectureEntryPoint { override fun batchRenderingUpdatesInEventLoop(): Boolean = true override fun androidEnablePendingFabricTransactions(): Boolean = true - - override fun useNativeViewConfigsInBridgelessMode(): Boolean = fabricEnabled }) } From 462915d89a061e3a9a271265c0640954c9a89274 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Tue, 30 Apr 2024 20:15:58 +0100 Subject: [PATCH 144/223] [LOCAL] Remove duplicated feature flag and fix iOS build --- .../AppDelegate/RCTAppDelegate+Protected.h | 16 ++++++++++++++ .../ReactNativeFeatureFlags.config.js | 5 ----- packages/rn-tester/Podfile.lock | 21 ++++++++++--------- 3 files changed, 27 insertions(+), 15 deletions(-) create mode 100644 packages/react-native/Libraries/AppDelegate/RCTAppDelegate+Protected.h diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate+Protected.h b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate+Protected.h new file mode 100644 index 00000000000000..2321b43c4da971 --- /dev/null +++ b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate+Protected.h @@ -0,0 +1,16 @@ +/* + * 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. + */ + +#if defined(__cplusplus) + +#import +#import "RCTAppDelegate.h" + +@interface RCTAppDelegate () +@end + +#endif diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index b79879e130e77a..3f100dee8921a8 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -48,11 +48,6 @@ const definitions: FeatureFlagDefinitions = { 'Enables the use of microtasks in Hermes (scheduling) and RuntimeScheduler (execution).', defaultValue: false, }, - batchRenderingUpdatesInEventLoop: { - description: - 'When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop.', - defaultValue: false, - }, enableSpannableBuildingUnification: { description: 'Uses new, deduplicated logic for constructing Android Spannables from text fragments', diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index f85b6d1cc4a149..734e8bf833b4f9 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -4,9 +4,9 @@ PODS: - FBLazyVector (0.74.0) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.0-rc.9): - - hermes-engine/Pre-built (= 0.74.0-rc.9) - - hermes-engine/Pre-built (0.74.0-rc.9) + - hermes-engine (0.74.0): + - hermes-engine/Pre-built (= 0.74.0) + - hermes-engine/Pre-built (0.74.0) - MyNativeView (0.74.81): - DoubleConversion - glog @@ -1027,6 +1027,7 @@ PODS: - React-CoreModules - React-debug - React-Fabric + - React-featureflags - React-graphics - React-hermes - React-nativeconfig @@ -1354,7 +1355,7 @@ EXTERNAL SOURCES: :podspec: "../react-native/third-party-podspecs/glog.podspec" hermes-engine: :podspec: "../react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2024-02-20-RNv0.74.0-999cfd9979b5f57b1269119679ab8cdf60897de9 + :tag: hermes-2024-04-25-RNv0.74.1-b54a3a01c531f4f5f1904cb0770033e8b7153dff MyNativeView: :path: NativeComponentExample NativeCxxModuleExample: @@ -1470,9 +1471,9 @@ SPEC CHECKSUMS: FBLazyVector: 026c8f4ae67b06e088ae01baa2271ef8a26c0e8c fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 25f62f55d7f9efed5910366b12e083b77effd566 - MyNativeView: da8b495f57b82cc523016c1b91e4eb1ada26d0d2 - NativeCxxModuleExample: d6113a417ec017490907fe073219f7cc7f856d14 + hermes-engine: 6eae7edb2f563ee41d7c1f91f4f2e57c26d8a5c3 + MyNativeView: 5ba689702f7f1dd8f9d0298ca8096631cd151f8c + NativeCxxModuleExample: f26f744dc971bcf56ee4901948df123a6d853503 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df RCTDeprecation: 3ca8b6c36bfb302e1895b72cfe7db0de0c92cd47 @@ -1503,9 +1504,9 @@ SPEC CHECKSUMS: React-perflogger: 271f1111779fef70f9502d1d38da5132e5585230 React-RCTActionSheet: 5d6fb9adb11ab1bfbce6695a2b785767e4658c53 React-RCTAnimation: 86ace32c56e69b3822e7e5184ea83a79d47fc7b9 - React-RCTAppDelegate: 74b45c4e3c1c23db88385d74cf4f5a8500694527 + React-RCTAppDelegate: 1006ff406079a7d023cd5b624815e45ddc2a38d5 React-RCTBlob: fb91c62a549f004e251235c65c665c6890a923a3 - React-RCTFabric: af6b9bc4aa9dfa0af1a1bcf5d8e5c5b1f17ae99c + React-RCTFabric: 593660526e2b6b59857acf9585de1247660e9b68 React-RCTImage: b482f07cfdbe8e413edbf9d85953cecdb569472c React-RCTLinking: fbd73a66cab34df69b2389c17f200e4722890fd9 React-RCTNetwork: fbdd716fbd6e53feb6d8e00eeb85e8184ad42ac8 @@ -1524,7 +1525,7 @@ SPEC CHECKSUMS: React-utils: f013537c3371270d2095bff1d594d00d4bc9261b ReactCommon: 2cde697fd80bd31da1d6448d25a5803088585219 ReactCommon-Samples: 42ebf205296931f800b9affcf9851c3397e8ba06 - ScreenshotManager: 5abe653a25bd3f74418f0572d7b4b0ca0dac3152 + ScreenshotManager: 48ef69c5b70f9d1eecfee64cc40959fd4e251c96 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d Yoga: 56f906bf6c11c931588191dde1229fd3e4e3d557 From 3ef4cc9a2fff19f8c04f38e7d67e50c4c0b55721 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Wed, 1 May 2024 10:57:23 +0100 Subject: [PATCH 145/223] [LOCAL] Add missing chrome-launcher typedef --- flow-typed/npm/chrome-launcher_v0.15.x.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/flow-typed/npm/chrome-launcher_v0.15.x.js b/flow-typed/npm/chrome-launcher_v0.15.x.js index 8f18f971b5cdf8..e520c5716c784c 100644 --- a/flow-typed/npm/chrome-launcher_v0.15.x.js +++ b/flow-typed/npm/chrome-launcher_v0.15.x.js @@ -44,6 +44,9 @@ declare module 'chrome-launcher' { declare class Launcher { getChromePath(): string; launch(options: Options): Promise; + Launcher: { + defaultFlags(): Array, + }; } declare module.exports: Launcher; From d7d42673a5eb1e0047d1cca1d1db9e9951b08637 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Thu, 25 Apr 2024 15:17:34 -0700 Subject: [PATCH 146/223] Add support for patch rc versions Summary: We might want to publish some new versions of React Native with experimental feature to allow some partners to test whether those versions fixes some reported issues, before creating a proper stable version for the whole ecosystem. The infra is mostly [setup for this](https://www.internalfb.com/code/fbsource/[496a64d180faab501b8598aa0ec26d47454fb961]/xplat/js/react-native-github/scripts/releases/utils/version-utils.js?lines=149), already. The only detail we need to take care of is not to move the `next` tag. [Internal] Reviewed By: cortinico, huntie Differential Revision: D56578456 fbshipit-source-id: 8dcc674aab5f85077c1b3e6580c5aeb99226eff8 --- scripts/__tests__/npm-utils-test.js | 32 +++++++++++++++++ scripts/npm-utils.js | 34 +++++++++++++------ .../utils/__tests__/version-utils-test.js | 12 +++++++ scripts/releases/utils/version-utils.js | 2 +- 4 files changed, 69 insertions(+), 11 deletions(-) diff --git a/scripts/__tests__/npm-utils-test.js b/scripts/__tests__/npm-utils-test.js index b8291e8caa8a21..7b4345256d5b05 100644 --- a/scripts/__tests__/npm-utils-test.js +++ b/scripts/__tests__/npm-utils-test.js @@ -16,6 +16,7 @@ const { const execMock = jest.fn(); const getCurrentCommitMock = jest.fn(); +const exitIfNotOnGitMock = jest.fn(); jest.mock('shelljs', () => ({ exec: execMock, @@ -23,6 +24,7 @@ jest.mock('shelljs', () => ({ jest.mock('./../scm-utils', () => ({ getCurrentCommit: getCurrentCommitMock, + exitIfNotOnGit: exitIfNotOnGitMock, })); describe('npm-utils', () => { @@ -103,6 +105,13 @@ describe('npm-utils', () => { {cwd: 'path/to/my-package'}, ); }); + + it('should handle -no-tag', () => { + publishPackage('path/to/my-package', {tags: ['--no-tag'], otp: 'otp'}); + expect(execMock).toHaveBeenCalledWith('npm publish --no-tag --otp otp', { + cwd: 'path/to/my-package', + }); + }); }); describe('getNpmInfo', () => { @@ -117,6 +126,29 @@ describe('npm-utils', () => { tag: 'prealpha', }); }); + + it('return the expected format for patch-prereleases', () => { + const isoStringSpy = jest.spyOn(Date.prototype, 'toISOString'); + isoStringSpy.mockReturnValue('2023-10-04T15:43:55.123Z'); + getCurrentCommitMock.mockImplementation(() => 'abcd1234'); + // exitIfNotOnGit takes a function as a param and it: + // 1. checks if we are on git => if not it exits + // 2. run the function passed as a param and return the output to the caller + // For the mock, we are assuming we are on github and we are returning `false` + // as the `getNpmInfo` function will pass a function that checks if the + // current commit is a tagged with 'latest'. + // In the Mock, we are assuming that we are on git (it does not exits) and the + // checkIfLatest function returns `false` + exitIfNotOnGitMock.mockImplementation(() => false); + + process.env.CIRCLE_TAG = 'v0.74.1-rc.0'; + const returnedValue = getNpmInfo('release'); + expect(returnedValue).toMatchObject({ + version: `0.74.1-rc.0`, + tag: '--no-tag', + }); + process.env.CIRCLE_TAG = null; + }); }); describe('getVersionsBySpec', () => { diff --git a/scripts/npm-utils.js b/scripts/npm-utils.js index 15da8bb6df44b4..2fe4add1023011 100644 --- a/scripts/npm-utils.js +++ b/scripts/npm-utils.js @@ -94,7 +94,7 @@ function getNpmInfo(buildType /*: BuildType */) /*: NpmInfo */ { ); } - const {version, major, minor, prerelease} = parseVersion( + const {version, major, minor, patch, prerelease} = parseVersion( process.env.CIRCLE_TAG, buildType, ); @@ -107,15 +107,19 @@ function getNpmInfo(buildType /*: BuildType */) /*: NpmInfo */ { ); const releaseBranchTag = `${major}.${minor}-stable`; - + let tag = releaseBranchTag; // npm will automatically tag the version as `latest` if no tag is set when we publish // To prevent this, use `releaseBranchTag` when we don't want that (ex. releasing a patch on older release) - const tag = - prerelease != null - ? 'next' - : isLatest === true - ? 'latest' - : releaseBranchTag; + if (prerelease != null) { + if (patch === '0') { + // Set `next` tag only on prereleases of 0.m.0-RC.k. + tag = 'next'; + } else { + tag = '--no-tag'; + } + } else if (isLatest === true) { + tag = 'latest'; + } return { version, @@ -131,8 +135,18 @@ function publishPackage( packageOptions /*: NpmPackageOptions */, execOptions /*: ?ExecOptsSync */, ) /*: ShellString */ { - const {otp, tags} = packageOptions; - const tagsFlag = tags != null ? tags.map(t => ` --tag ${t}`).join('') : ''; + const {otp, tags, access} = packageOptions; + + let tagsFlag = ''; + if (tags != null) { + tagsFlag = tags.includes('--no-tag') + ? ' --no-tag' + : tags + .filter(Boolean) + .map(t => ` --tag ${t}`) + .join(''); + } + const otpFlag = otp != null ? ` --otp ${otp}` : ''; const options = execOptions ? {...execOptions, cwd: packagePath} diff --git a/scripts/releases/utils/__tests__/version-utils-test.js b/scripts/releases/utils/__tests__/version-utils-test.js index 044619b31e1580..c20328206a44a7 100644 --- a/scripts/releases/utils/__tests__/version-utils-test.js +++ b/scripts/releases/utils/__tests__/version-utils-test.js @@ -135,6 +135,18 @@ describe('version-utils', () => { expect(prerelease).toBe('rc.4'); }); + it('should parse patch pre-release version from tag', () => { + const {version, major, minor, patch, prerelease} = parseVersion( + 'v0.66.1-rc.4', + 'release', + ); + expect(version).toBe('0.66.1-rc.4'); + expect(major).toBe('0'); + expect(minor).toBe('66'); + expect(patch).toBe('1'); + expect(prerelease).toBe('rc.4'); + }); + it('should reject pre-release version from tag with random prerelease pattern', () => { function testInvalidVersion() { parseVersion('v0.66.0-something_invalid', 'release'); diff --git a/scripts/releases/utils/version-utils.js b/scripts/releases/utils/version-utils.js index d1ff37238708fb..11f79318cb47d3 100644 --- a/scripts/releases/utils/version-utils.js +++ b/scripts/releases/utils/version-utils.js @@ -29,7 +29,7 @@ export type Version = { * * Some examples of valid versions are: * - stable: 0.68.1 - * - stable prerelease: 0.70.0-rc.0 + * - prerelease: 0.Y.Z-rc.K * - e2e-test: X.Y.Z-20221116-2018 * - nightly: X.Y.Z-20221116-0bc4547fc * - dryrun: 1000.0.0 From 649f4a0d3e0173d9117bb009a04c871648bfdbd8 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Wed, 1 May 2024 13:26:27 +0100 Subject: [PATCH 147/223] [LOCAL] Update trigger-release to support patch prereleases --- scripts/releases-local/trigger-react-native-release.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/releases-local/trigger-react-native-release.js b/scripts/releases-local/trigger-react-native-release.js index fec627395f4319..a7723d0f3d1e5d 100644 --- a/scripts/releases-local/trigger-react-native-release.js +++ b/scripts/releases-local/trigger-react-native-release.js @@ -146,7 +146,7 @@ async function main() { } let latest = false; - const {version, prerelease} = parseVersion(releaseVersion, 'release'); + const {version, patch, prerelease} = parseVersion(releaseVersion, 'release'); if (!prerelease) { const {setLatest} = await inquirer.prompt({ type: 'confirm', @@ -156,7 +156,7 @@ async function main() { latest = setLatest; } - const npmTag = latest ? 'latest' : !prerelease ? branch : 'next'; + const npmTag = latest ? 'latest' : !prerelease ? branch : patch == 0 ? 'next' : '--no-tag'; const {confirmRelease} = await inquirer.prompt({ type: 'confirm', name: 'confirmRelease', From 60962b4406a86e37657762ff5e61d6ede4ee32e3 Mon Sep 17 00:00:00 2001 From: Distiller Date: Wed, 1 May 2024 12:34:20 +0000 Subject: [PATCH 148/223] Release 0.74.1-rc.0 #publish-packages-to-npm&--no-tag --- package.json | 4 ++-- packages/assets/package.json | 2 +- packages/babel-plugin-codegen/package.json | 4 ++-- packages/community-cli-plugin/package.json | 6 +++--- packages/debugger-frontend/package.json | 2 +- packages/dev-middleware/package.json | 4 ++-- packages/eslint-config-react-native/package.json | 4 ++-- packages/eslint-plugin-react-native/package.json | 2 +- packages/eslint-plugin-specs/package.json | 4 ++-- packages/hermes-inspector-msggen/package.json | 2 +- packages/metro-config/package.json | 6 +++--- packages/normalize-color/package.json | 2 +- packages/polyfills/package.json | 2 +- packages/react-native-babel-preset/package.json | 4 ++-- .../react-native-babel-transformer/package.json | 4 ++-- packages/react-native-bots/package.json | 2 +- .../package.json | 4 ++-- packages/react-native-codegen/package.json | 2 +- packages/react-native-gradle-plugin/package.json | 2 +- .../react-native-popup-menu-android/package.json | 4 ++-- packages/react-native-test-renderer/package.json | 2 +- .../Libraries/Core/ReactNativeVersion.js | 4 ++-- packages/react-native/React/Base/RCTVersion.m | 4 ++-- .../react-native/ReactAndroid/gradle.properties | 2 +- .../modules/systeminfo/ReactNativeVersion.java | 4 ++-- .../ReactCommon/cxxreact/ReactNativeVersion.h | 4 ++-- packages/react-native/package.json | 16 ++++++++-------- packages/react-native/template/package.json | 10 +++++----- packages/rn-tester-e2e/package.json | 2 +- packages/rn-tester/package.json | 4 ++-- packages/typescript-config/package.json | 2 +- packages/virtualized-lists/package.json | 2 +- 32 files changed, 61 insertions(+), 61 deletions(-) diff --git a/package.json b/package.json index 0e9f0a8b248d17..969dc8dc7a50d1 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,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.74.81", - "@react-native/metro-config": "0.74.81", + "@react-native/metro-babel-transformer": "0.74.82", + "@react-native/metro-config": "0.74.82", "@tsconfig/node18": "1.0.1", "@types/react": "^18.2.6", "@typescript-eslint/parser": "^6.7.4", diff --git a/packages/assets/package.json b/packages/assets/package.json index 6b9083e6ded9ab..8b9d9651df087d 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/assets-registry", - "version": "0.74.81", + "version": "0.74.82", "description": "Asset support code for React Native.", "license": "MIT", "repository": { diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index e7d9f385c1e4ee..65409323a582ce 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-plugin-codegen", - "version": "0.74.81", + "version": "0.74.82", "description": "Babel plugin to generate native module and view manager code for React Native.", "license": "MIT", "repository": { @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@react-native/codegen": "0.74.81" + "@react-native/codegen": "0.74.82" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index ec332dea890b4f..936eafb666d2f9 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.81", + "version": "0.74.82", "description": "Core CLI commands for React Native", "keywords": [ "react-native", @@ -24,8 +24,8 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.4", "@react-native-community/cli-tools": "13.6.4", - "@react-native/dev-middleware": "0.74.81", - "@react-native/metro-babel-transformer": "0.74.81", + "@react-native/dev-middleware": "0.74.82", + "@react-native/metro-babel-transformer": "0.74.82", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", diff --git a/packages/debugger-frontend/package.json b/packages/debugger-frontend/package.json index 6a0d793469132b..1ea6069fdb4f7e 100644 --- a/packages/debugger-frontend/package.json +++ b/packages/debugger-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/debugger-frontend", - "version": "0.74.81", + "version": "0.74.82", "description": "Debugger frontend for React Native based on Chrome DevTools", "keywords": [ "react-native", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index 63d7b253414384..1856b0b6f97cf2 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.81", + "version": "0.74.82", "description": "Dev server middleware for React Native", "keywords": [ "react-native", @@ -23,7 +23,7 @@ ], "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.81", + "@react-native/debugger-frontend": "0.74.82", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index 85d43cdf58ebe0..5f834fa932f4c8 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-config", - "version": "0.74.81", + "version": "0.74.82", "description": "ESLint config for React Native", "license": "MIT", "repository": { @@ -22,7 +22,7 @@ "dependencies": { "@babel/core": "^7.20.0", "@babel/eslint-parser": "^7.20.0", - "@react-native/eslint-plugin": "0.74.81", + "@react-native/eslint-plugin": "0.74.82", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "eslint-config-prettier": "^8.5.0", diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index 1473118e45ffe5..04a03295300698 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin", - "version": "0.74.81", + "version": "0.74.82", "description": "ESLint rules for @react-native/eslint-config", "license": "MIT", "repository": { diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index e1f0abd519cfbd..fbe7957b0d2f48 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin-specs", - "version": "0.74.81", + "version": "0.74.82", "description": "ESLint rules to validate NativeModule and Component Specs", "license": "MIT", "repository": { @@ -31,7 +31,7 @@ "@babel/eslint-parser": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/preset-flow": "^7.20.0", - "@react-native/codegen": "0.74.81", + "@react-native/codegen": "0.74.82", "make-dir": "^2.1.0", "pirates": "^4.0.1", "source-map-support": "0.5.0" diff --git a/packages/hermes-inspector-msggen/package.json b/packages/hermes-inspector-msggen/package.json index fddb5f95964094..7087c7b51ce15c 100644 --- a/packages/hermes-inspector-msggen/package.json +++ b/packages/hermes-inspector-msggen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/hermes-inspector-msggen", - "version": "0.74.81", + "version": "0.74.82", "private": true, "description": "Hermes Inspector Message Generator for React Native", "license": "MIT", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index 174928eee1635d..c6e808aa63daf4 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-config", - "version": "0.74.81", + "version": "0.74.82", "description": "Metro configuration for React Native.", "license": "MIT", "repository": { @@ -26,8 +26,8 @@ "dist" ], "dependencies": { - "@react-native/js-polyfills": "0.74.81", - "@react-native/metro-babel-transformer": "0.74.81", + "@react-native/js-polyfills": "0.74.82", + "@react-native/metro-babel-transformer": "0.74.82", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" } diff --git a/packages/normalize-color/package.json b/packages/normalize-color/package.json index 3ebab5585f1744..b2b4cc2a2a6258 100644 --- a/packages/normalize-color/package.json +++ b/packages/normalize-color/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/normalize-colors", - "version": "0.74.81", + "version": "0.74.82", "description": "Color normalization for React Native.", "license": "MIT", "repository": { diff --git a/packages/polyfills/package.json b/packages/polyfills/package.json index 9b0617270cae8a..aea7096540f8ff 100644 --- a/packages/polyfills/package.json +++ b/packages/polyfills/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/js-polyfills", - "version": "0.74.81", + "version": "0.74.82", "description": "Polyfills for React Native.", "license": "MIT", "repository": { diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index e7f99e0ff628fd..01572afd82e700 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-preset", - "version": "0.74.81", + "version": "0.74.82", "description": "Babel preset for React Native applications", "main": "src/index.js", "repository": { @@ -54,7 +54,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.81", + "@react-native/babel-plugin-codegen": "0.74.82", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index 5bd61802f88474..a8520381bb6069 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-babel-transformer", - "version": "0.74.81", + "version": "0.74.82", "description": "Babel transformer for React Native applications.", "main": "src/index.js", "repository": { @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.81", + "@react-native/babel-preset": "0.74.82", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, diff --git a/packages/react-native-bots/package.json b/packages/react-native-bots/package.json index b996c07e28e05f..a0996e83d27883 100644 --- a/packages/react-native-bots/package.json +++ b/packages/react-native-bots/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/bots", "description": "React Native Bots", - "version": "0.74.81", + "version": "0.74.82", "private": true, "license": "MIT", "repository": { diff --git a/packages/react-native-codegen-typescript-test/package.json b/packages/react-native-codegen-typescript-test/package.json index 733762da3661d4..3830d7086f8811 100644 --- a/packages/react-native-codegen-typescript-test/package.json +++ b/packages/react-native-codegen-typescript-test/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen-typescript-test", - "version": "0.74.81", + "version": "0.74.82", "private": true, "description": "TypeScript related unit test for @react-native/codegen", "license": "MIT", @@ -19,7 +19,7 @@ "prepare": "yarn run build" }, "dependencies": { - "@react-native/codegen": "0.74.81" + "@react-native/codegen": "0.74.82" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index 368ea1deec639c..f8073016b84cda 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen", - "version": "0.74.81", + "version": "0.74.82", "description": "Code generation tools for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-gradle-plugin/package.json b/packages/react-native-gradle-plugin/package.json index d8c3276998683c..f0f806e95033de 100644 --- a/packages/react-native-gradle-plugin/package.json +++ b/packages/react-native-gradle-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/gradle-plugin", - "version": "0.74.81", + "version": "0.74.82", "description": "Gradle Plugin for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json index 38cc171f7f5fd2..ffa7a988220dda 100644 --- a/packages/react-native-popup-menu-android/package.json +++ b/packages/react-native-popup-menu-android/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/popup-menu-android", - "version": "0.74.81", + "version": "0.74.82", "description": "PopupMenu for the Android platform", "main": "index.js", "files": [ @@ -17,7 +17,7 @@ ], "license": "MIT", "devDependencies": { - "@react-native/codegen": "0.74.81" + "@react-native/codegen": "0.74.82" }, "peerDependencies": { "@types/react": "^18.2.6", diff --git a/packages/react-native-test-renderer/package.json b/packages/react-native-test-renderer/package.json index a74f9e816e4242..6beda8e78ca126 100644 --- a/packages/react-native-test-renderer/package.json +++ b/packages/react-native-test-renderer/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/test-renderer", "private": true, - "version": "0.74.81", + "version": "0.74.82", "description": "A Test rendering library for React Native", "license": "MIT", "devDependencies": { diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index 297694eea732e0..1b54c7ab26c346 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -16,8 +16,8 @@ const version: $ReadOnly<{ }> = { major: 0, minor: 74, - patch: 0, - prerelease: null, + patch: 1, + prerelease: 'rc.0', }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index b265dcdfca82d4..9cee2c7ccebe17 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -23,8 +23,8 @@ __rnVersion = @{ RCTVersionMajor: @(0), RCTVersionMinor: @(74), - RCTVersionPatch: @(0), - RCTVersionPrerelease: [NSNull null], + RCTVersionPatch: @(1), + RCTVersionPrerelease: @"rc.0", }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index a46ca0cd13b5f4..f97d6af9f8e25b 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.0 +VERSION_NAME=0.74.1-rc.0 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index 0c92f9e52275cb..d62a43387c6222 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -17,6 +17,6 @@ public class ReactNativeVersion { public static final Map VERSION = MapBuilder.of( "major", 0, "minor", 74, - "patch", 0, - "prerelease", null); + "patch", 1, + "prerelease", "rc.0"); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index fcdc25cef97f2e..07a10e506c65c5 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -17,8 +17,8 @@ namespace facebook::react { constexpr struct { int32_t Major = 0; int32_t Minor = 74; - int32_t Patch = 0; - std::string_view Prerelease = ""; + int32_t Patch = 1; + std::string_view Prerelease = "rc.0"; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 5c00acf55dbcae..f35ac83b48540d 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.0", + "version": "0.74.1-rc.0", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -110,13 +110,13 @@ "@react-native-community/cli": "13.6.4", "@react-native-community/cli-platform-android": "13.6.4", "@react-native-community/cli-platform-ios": "13.6.4", - "@react-native/assets-registry": "0.74.81", - "@react-native/codegen": "0.74.81", - "@react-native/community-cli-plugin": "0.74.81", - "@react-native/gradle-plugin": "0.74.81", - "@react-native/js-polyfills": "0.74.81", - "@react-native/normalize-colors": "0.74.81", - "@react-native/virtualized-lists": "0.74.81", + "@react-native/assets-registry": "0.74.82", + "@react-native/codegen": "0.74.82", + "@react-native/community-cli-plugin": "0.74.82", + "@react-native/gradle-plugin": "0.74.82", + "@react-native/js-polyfills": "0.74.82", + "@react-native/normalize-colors": "0.74.82", + "@react-native/virtualized-lists": "0.74.82", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 580bdebc0805c9..8b3bb2cabda79a 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,16 +11,16 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.0" + "react-native": "0.74.1-rc.0" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.81", - "@react-native/eslint-config": "0.74.81", - "@react-native/metro-config": "0.74.81", - "@react-native/typescript-config": "0.74.81", + "@react-native/babel-preset": "0.74.82", + "@react-native/eslint-config": "0.74.82", + "@react-native/metro-config": "0.74.82", + "@react-native/typescript-config": "0.74.82", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", diff --git a/packages/rn-tester-e2e/package.json b/packages/rn-tester-e2e/package.json index a0c83e7d8e1214..744d3cae15d6b9 100644 --- a/packages/rn-tester-e2e/package.json +++ b/packages/rn-tester-e2e/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/tester-e2e", "private": true, - "version": "0.74.81", + "version": "0.74.82", "license": "MIT", "description": "React Native E2E tester app.", "homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/rn-tester-e2e", diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index a256394bef8c77..e8603504e5d2c4 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/tester", - "version": "0.74.81", + "version": "0.74.82", "private": true, "description": "React Native tester app.", "license": "MIT", @@ -26,7 +26,7 @@ "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "@react-native/popup-menu-android": "0.74.81" + "@react-native/popup-menu-android": "0.74.82" }, "peerDependencies": { "react": "18.2.0", diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index bc987c9596efc6..80e8f4d4c6a853 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/typescript-config", - "version": "0.74.81", + "version": "0.74.82", "description": "Default TypeScript configuration for React Native apps", "license": "MIT", "repository": { diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index 040f60683ea04a..166bd4d03ec3af 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/virtualized-lists", - "version": "0.74.81", + "version": "0.74.82", "description": "Virtualized lists for React Native.", "license": "MIT", "repository": { From df6bec54272f23c1cb828bcba847c65fb5b40a54 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Tue, 27 Feb 2024 05:52:51 -0800 Subject: [PATCH 149/223] Optimize RCTUIManager to avoid too many calls to viewForReactTag Summary: This change fixes a couple of issues within the RCTUIManager: * it calls the right method in the `super` branches (although they should neve be executed) * it invert the call order between the `_registry` and the `uiManager` to avoid extra calls into the `viewForReactTag`. ## Changelog: [Internal] - Use the right method in super and invert the order of where we search for views. ## Facebook: See S397861 and T180527210 for more information. Reviewed By: javache Differential Revision: D54246220 fbshipit-source-id: 1c7503ad3e80cf50ecc016a984ca180a19b73cc0 --- packages/react-native/React/Modules/RCTUIManager.m | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/react-native/React/Modules/RCTUIManager.m b/packages/react-native/React/Modules/RCTUIManager.m index 04e223b94242d2..71c4c669d3ab04 100644 --- a/packages/react-native/React/Modules/RCTUIManager.m +++ b/packages/react-native/React/Modules/RCTUIManager.m @@ -1674,8 +1674,8 @@ - (instancetype)initWithUIManager:(RCTUIManager *)uiManager andRegistry:(NSDicti { self = [super init]; if (self) { - self->_uiManager = uiManager; - self->_registry = registry; + _uiManager = uiManager; + _registry = registry; } return self; } @@ -1693,19 +1693,19 @@ - (NSEnumerator *)keyEnumerator - (id)objectForKey:(id)key { if (![key isKindOfClass:[NSNumber class]]) { - return [super objectForKeyedSubscript:key]; + return [super objectForKey:key]; } NSNumber *index = (NSNumber *)key; - UIView *view = [_uiManager viewForReactTag:index]; + UIView *view = _registry[index]; if (view) { return [RCTUIManager paperViewOrCurrentView:view]; } - view = _registry[index]; + view = [_uiManager viewForReactTag:index]; if (view) { return [RCTUIManager paperViewOrCurrentView:view]; } - return [super objectForKeyedSubscript:key]; + return [super objectForKey:key]; } - (void)removeObjectForKey:(id)key From a14df93b1555e9e66761e65176fe7af46255e1e3 Mon Sep 17 00:00:00 2001 From: Marc Rousavy Date: Tue, 5 Mar 2024 07:31:22 -0800 Subject: [PATCH 150/223] Allow ReactCommon/Folly to be used in Swift libraries (DEFINES_MODULE) (#43327) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43327 ## Summary Swift Pods require the use of [modular headers](https://blog.cocoapods.org/CocoaPods-1.5.0/) to be statically linked. To interop with Objective-C modules, you need to make the Objective-C module "define a Module", that is modular header export. This is already the case for a few podspecs so they can be consumed in Swift libraries, but `ReactCommon` and `RCT-Folly` don't do this yet and therefore this breaks in a few libraries of mine, for example see this issue: https://github.com/mrousavy/react-native-vision-camera/issues/195. If I were to include `ReactCommon` or `RCT-Folly` in my Swift library's podspec, the following error arises: ``` [!] The following Swift pods cannot yet be integrated as static libraries: The Swift pod `VisionCamera` depends upon `RCT-Folly`, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set `use_modular_headers!` globally in your Podfile, or specify `:modular_headers => true` for particular dependencies. ``` So this PR fixes this issue by allowing Swift libraries to consume the `ReactCommon` and `RCT-Folly` podspecs since they now export modular headers. ## Changelog [General] [Fixed] - Expose Modular Headers for `ReactCommon` podspec [General] [Fixed] - Expose Modular Headers for `RCT-Folly` podspec Pull Request resolved: https://github.com/facebook/react-native/pull/31858 Test Plan: * Add s.dependency "ReactCommon" or RCT-Folly to a Swift pod and see what happens. (See https://github.com/mrousavy/react-native-vision-camera/pull/273) Reviewed By: dmytrorykun Differential Revision: D54539127 Pulled By: cipolleschi fbshipit-source-id: 2291cc0c8d6675521b220b02ef0c3c6a3e73be38 --- packages/react-native/ReactCommon/ReactCommon.podspec | 1 + packages/react-native/third-party-podspecs/RCT-Folly.podspec | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/react-native/ReactCommon/ReactCommon.podspec b/packages/react-native/ReactCommon/ReactCommon.podspec index 0b6f175895de6e..599e3f97a1c6c7 100644 --- a/packages/react-native/ReactCommon/ReactCommon.podspec +++ b/packages/react-native/ReactCommon/ReactCommon.podspec @@ -36,6 +36,7 @@ Pod::Spec.new do |s| s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\" \"$(PODS_ROOT)/Headers/Private/React-Core\"", "USE_HEADERMAP" => "YES", + "DEFINES_MODULE" => "YES", "CLANG_CXX_LANGUAGE_STANDARD" => "c++20", "GCC_WARN_PEDANTIC" => "YES" } if ENV['USE_FRAMEWORKS'] diff --git a/packages/react-native/third-party-podspecs/RCT-Folly.podspec b/packages/react-native/third-party-podspecs/RCT-Folly.podspec index eb2d9b4ed8cb85..ccc10a5b47ccef 100644 --- a/packages/react-native/third-party-podspecs/RCT-Folly.podspec +++ b/packages/react-native/third-party-podspecs/RCT-Folly.podspec @@ -81,6 +81,7 @@ Pod::Spec.new do |spec| 'folly/system/*.h', spec.libraries = "c++abi" # NOTE Apple-only: Keep c++abi here due to https://github.com/react-native-community/releases/issues/251 spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", + "DEFINES_MODULE" => "YES", "CLANG_CXX_LANGUAGE_STANDARD" => "c++20", "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\"", # In dynamic framework (use_frameworks!) mode, ignore the unused and undefined boost symbols when generating the library. From 0a4cf4945cf4d73c504d52dc40c97a74c3e08343 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Thu, 4 Apr 2024 05:52:53 -0700 Subject: [PATCH 151/223] only trigger RCTContentDidAppearNotification when content appears (#43823) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43823 changelog: [internal] Notification RCTContentDidAppearNotification was posted too early in RCTSurfaceHostingProxyRootView, which does not know when views are mounted. It was also posted if no views were mounted, leading to inconsistent behaviour between Paper and Fabric. The implementation is aligned with Paper: https://github.com/facebook/react-native/blob/main/packages/react-native/React/Base/RCTRootContentView.m#L45-L55 Reviewed By: cipolleschi Differential Revision: D55640654 fbshipit-source-id: 2d7bc5afb6ba1c1e8db529ee11eac2bae2d936d6 --- .../RCTSurfaceHostingProxyRootView.mm | 3 --- .../Root/RCTRootComponentView.mm | 23 ++++++++++++++++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm b/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm index 670c02299601ec..39377fe8b6f846 100644 --- a/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +++ b/packages/react-native/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm @@ -125,9 +125,6 @@ - (void)surface:(RCTSurface *)surface didChangeStage:(RCTSurfaceStage)stage [super surface:surface didChangeStage:stage]; if (RCTSurfaceStageIsRunning(stage)) { [_bridge.performanceLogger markStopForTag:RCTPLTTI]; - dispatch_async(dispatch_get_main_queue(), ^{ - [[NSNotificationCenter defaultCenter] postNotificationName:RCTContentDidAppearNotification object:self]; - }); } } diff --git a/packages/react-native/React/Fabric/Mounting/ComponentViews/Root/RCTRootComponentView.mm b/packages/react-native/React/Fabric/Mounting/ComponentViews/Root/RCTRootComponentView.mm index eb81a151c3fc41..c7d0a525a9ac74 100644 --- a/packages/react-native/React/Fabric/Mounting/ComponentViews/Root/RCTRootComponentView.mm +++ b/packages/react-native/React/Fabric/Mounting/ComponentViews/Root/RCTRootComponentView.mm @@ -7,18 +7,22 @@ #import "RCTRootComponentView.h" +#import #import #import #import "RCTConversions.h" using namespace facebook::react; -@implementation RCTRootComponentView +@implementation RCTRootComponentView { + BOOL _contentHasAppeared; +} - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { _props = RootShadowNode::defaultSharedProps(); + _contentHasAppeared = NO; } return self; @@ -26,6 +30,23 @@ - (instancetype)initWithFrame:(CGRect)frame #pragma mark - RCTComponentViewProtocol +- (void)prepareForRecycle +{ + [super prepareForRecycle]; + _contentHasAppeared = NO; +} + +- (void)mountChildComponentView:(UIView *)childComponentView index:(NSInteger)index +{ + [super mountChildComponentView:childComponentView index:index]; + if (!self->_contentHasAppeared) { + self->_contentHasAppeared = YES; + dispatch_async(dispatch_get_main_queue(), ^{ + [[NSNotificationCenter defaultCenter] postNotificationName:RCTContentDidAppearNotification object:self]; + }); + } +} + + (ComponentDescriptorProvider)componentDescriptorProvider { return concreteComponentDescriptorProvider(); From 0a4d97362f5a40cff62edce5200c3e7e8622d912 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Mon, 22 Apr 2024 13:59:16 -0700 Subject: [PATCH 152/223] Fix Symbol not found: (_JSGlobalContextSetInspectable) (#44185) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44185 This change will fix a symbol not found for JSC Runtime. The `if` check was not a compile time check, therefore the symbol ended up in the binary even if it is not available. Following this post on [Apple forum](https://forums.developer.apple.com/forums/thread/749534), this changes should do the trick. ## Changelog [iOS][Fixed] - Fix Symbol not found: (_JSGlobalContextSetInspectable) Reviewed By: hash3r Differential Revision: D56425834 fbshipit-source-id: a37af51b078bd47a938e6b65d9d8e0f7506e746f --- packages/react-native/ReactCommon/jsc/JSCRuntime.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/react-native/ReactCommon/jsc/JSCRuntime.cpp b/packages/react-native/ReactCommon/jsc/JSCRuntime.cpp index c42d4f3008e4a6..235028a2b355a4 100644 --- a/packages/react-native/ReactCommon/jsc/JSCRuntime.cpp +++ b/packages/react-native/ReactCommon/jsc/JSCRuntime.cpp @@ -370,11 +370,13 @@ JSCRuntime::JSCRuntime(JSGlobalContextRef ctx) { #ifndef NDEBUG #ifdef _JSC_HAS_INSPECTABLE +#if (__OSX_AVAILABLE_STARTING(MAC_NA, IPHONE_16_4)) if (__builtin_available(macOS 13.3, iOS 16.4, tvOS 16.4, *)) { JSGlobalContextSetInspectable(ctx_, true); } #endif #endif +#endif } JSCRuntime::~JSCRuntime() { From 165cabb21f2419bde63acb4b52be2f4fb7a2ec2e Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Tue, 23 Apr 2024 03:20:03 -0700 Subject: [PATCH 153/223] reset animation state in TouchableOpacity and TouchableBounce (#44182) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44182 ## Changelog: [iOS] [Fixed] - Fixed stale state on TouchableOpacity and TouchableBounce When TouchableOpacity and TouchableBounce are unmounted, we need to reset their state. This includes animation state. If we don't do that, view is unmounted on the mounting layer and animation will not be applied. This leaves view in undefined state. In TouchableOpacity, it is view with reduced opacity. TouchableBounce that is view with applied transform. This was reported in https://github.com/facebook/react-native/issues/44044 Reviewed By: rubennorte, cipolleschi Differential Revision: D56416571 fbshipit-source-id: 01214ec8a5e07c80a609e082b955a30305ad8396 --- .../Libraries/Components/Touchable/TouchableBounce.js | 1 + .../Libraries/Components/Touchable/TouchableOpacity.js | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/react-native/Libraries/Components/Touchable/TouchableBounce.js b/packages/react-native/Libraries/Components/Touchable/TouchableBounce.js index 0a0103aa6c6e02..f0223835384dd3 100644 --- a/packages/react-native/Libraries/Components/Touchable/TouchableBounce.js +++ b/packages/react-native/Libraries/Components/Touchable/TouchableBounce.js @@ -209,6 +209,7 @@ class TouchableBounce extends React.Component { componentWillUnmount(): void { this.state.pressability.reset(); + this.state.scale.resetAnimation(); } } diff --git a/packages/react-native/Libraries/Components/Touchable/TouchableOpacity.js b/packages/react-native/Libraries/Components/Touchable/TouchableOpacity.js index 8e6db94153970b..a11eb7cafe3fb9 100644 --- a/packages/react-native/Libraries/Components/Touchable/TouchableOpacity.js +++ b/packages/react-native/Libraries/Components/Touchable/TouchableOpacity.js @@ -320,6 +320,7 @@ class TouchableOpacity extends React.Component { componentWillUnmount(): void { this.state.pressability.reset(); + this.state.anim.resetAnimation(); } } From 7a841dbcd1b4eead77827eda2bd307f11babec1f Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Wed, 24 Apr 2024 00:20:54 -0700 Subject: [PATCH 154/223] Fixing exposing ReactDelegate through ReactActivity for reload() (#44227) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44227 In https://github.com/facebook/react-native/pull/44223/ kudo identified the incorrect return type. Reviewed By: christophpurrer, philIip Differential Revision: D56497700 fbshipit-source-id: 5d7fc7ef21c3d3033a2567eba51b613eb41f0a1a --- packages/react-native/ReactAndroid/api/ReactAndroid.api | 3 +-- .../src/main/java/com/facebook/react/ReactActivity.java | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 04b156b38a5442..0f8294bec0637a 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -92,7 +92,7 @@ public abstract class com/facebook/react/ReactActivity : androidx/appcompat/app/ protected fun ()V protected fun createReactActivityDelegate ()Lcom/facebook/react/ReactActivityDelegate; protected fun getMainComponentName ()Ljava/lang/String; - public fun getReactDelegate ()V + public fun getReactDelegate ()Lcom/facebook/react/ReactDelegate; protected final fun getReactInstanceManager ()Lcom/facebook/react/ReactInstanceManager; protected final fun getReactNativeHost ()Lcom/facebook/react/ReactNativeHost; public fun invokeDefaultOnBackPressed ()V @@ -7697,4 +7697,3 @@ public class com/facebook/react/views/view/ViewGroupClickEvent : com/facebook/re protected fun getEventData ()Lcom/facebook/react/bridge/WritableMap; public fun getEventName ()Ljava/lang/String; } - diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java index ef827a4f16a165..95862974324623 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java @@ -65,8 +65,8 @@ protected void onDestroy() { mDelegate.onDestroy(); } - public void getReactDelegate() { - mDelegate.getReactDelegate(); + public @Nullable ReactDelegate getReactDelegate() { + return mDelegate.getReactDelegate(); } @Override From eaaf865449e6b89cc2794b68f314d01aa775748e Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Thu, 25 Apr 2024 03:28:22 -0700 Subject: [PATCH 155/223] Fallback to the first `foregroundInactive` window when there are no `foregroundActive` windows in RCTKeyWindow (#44167) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44167 We received an issue for OSS where, when the main window is inactive and the system tries to present a dialog, the dialog is not presented in the right position on the screen. This change introduce a fallback to the first inactive window (which is still visible on screen) and it fixes the issues. [iOS][Changed] - Fallback to the first `foregroundInactive` window when there are no `foregroundActive` windows in RCTKeyWindow Reviewed By: dmytrorykun Differential Revision: D56354741 fbshipit-source-id: fa23131ecd40f6d91c705879a72890506ee21486 --- packages/react-native/React/Base/RCTUtils.m | 36 ++++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/packages/react-native/React/Base/RCTUtils.m b/packages/react-native/React/Base/RCTUtils.m index 96e59e2db10181..226a2bc8604481 100644 --- a/packages/react-native/React/Base/RCTUtils.m +++ b/packages/react-native/React/Base/RCTUtils.m @@ -562,17 +562,37 @@ BOOL RCTRunningInAppExtension(void) return nil; } - for (UIScene *scene in RCTSharedApplication().connectedScenes) { - if (scene.activationState != UISceneActivationStateForegroundActive || - ![scene isKindOfClass:[UIWindowScene class]]) { + NSSet *connectedScenes = RCTSharedApplication().connectedScenes; + + UIScene *foregroundActiveScene; + UIScene *foregroundInactiveScene; + + for (UIScene *scene in connectedScenes) { + if (![scene isKindOfClass:[UIWindowScene class]]) { continue; } - UIWindowScene *windowScene = (UIWindowScene *)scene; - for (UIWindow *window in windowScene.windows) { - if (window.isKeyWindow) { - return window; - } + if (scene.activationState == UISceneActivationStateForegroundActive) { + foregroundActiveScene = scene; + break; + } + + if (!foregroundInactiveScene && scene.activationState == UISceneActivationStateForegroundInactive) { + foregroundInactiveScene = scene; + // no break, we can have the active scene later in the set. + } + } + + UIScene *sceneToUse = foregroundActiveScene ? foregroundActiveScene : foregroundInactiveScene; + UIWindowScene *windowScene = (UIWindowScene *)sceneToUse; + + if (@available(iOS 15.0, *)) { + return windowScene.keyWindow; + } + + for (UIWindow *window in windowScene.windows) { + if (window.isKeyWindow) { + return window; } } From 10fc2af13e8b643a391d9acdf337fa034001540f Mon Sep 17 00:00:00 2001 From: Kudo Chien Date: Thu, 25 Apr 2024 08:18:20 -0700 Subject: [PATCH 156/223] Defines module for React-jsinspector (#44252) Summary: Defines module for `React-jsinspector` that for swift modules to integrate with. to fix https://github.com/expo/expo/issues/28209, any podspec depends on HermesExecutorFactory should use ` add_dependency(s, "React-jsinspector", :framework_name => 'jsinspector_modern')` to add dependency. otherwise it will encounter the header not found issue because use_frameworks will change "jsinspector-modern" to "jsinspector_modern". to depend on React-jsinspector from expo-modules-core, we need it to define as a module. otherwise, it will have the error ``` The Swift pod `ExpoModulesCore` depends upon `React-jsinspector`, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set `use_modular_headers!` globally in your Podfile, or specify `:modular_headers => true` for particular dependencies. ``` ## Changelog: [IOS] [CHANGED] - Add `DEFINES_MODULE` for React-jsinspector.podspec Pull Request resolved: https://github.com/facebook/react-native/pull/44252 Test Plan: ci passed Reviewed By: cortinico Differential Revision: D56575102 Pulled By: cipolleschi fbshipit-source-id: 9b7b4568a3e499f0a741a79a846263118ff2d112 --- .../ReactCommon/jsinspector-modern/React-jsinspector.podspec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec b/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec index e338fcd843e9b9..0a88f2362f477d 100644 --- a/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec +++ b/packages/react-native/ReactCommon/jsinspector-modern/React-jsinspector.podspec @@ -38,7 +38,8 @@ Pod::Spec.new do |s| s.compiler_flags = folly_compiler_flags s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/..\" \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\"", - "CLANG_CXX_LANGUAGE_STANDARD" => "c++20" + "CLANG_CXX_LANGUAGE_STANDARD" => "c++20", + "DEFINES_MODULE" => "YES" }.merge!(use_frameworks ? { "PUBLIC_HEADERS_FOLDER_PATH" => "#{module_name}.framework/Headers/#{header_dir}" } : {}) From 3467f2f3a3319cc695bd729a8789c46d15ac8314 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Thu, 25 Apr 2024 08:28:26 -0700 Subject: [PATCH 157/223] Fix enable hermes debugger in Bridgeless mode Summary: Set the proper build flags for debugging in Bridgeless mode. This fixes [#44240](https://github.com/facebook/react-native/issues/44240) ## Changelog: [iOS][Fixed] - Add `HERMES_ENABLE_DEBUGGER=1` flag to React-RuntimeApple Reviewed By: cortinico Differential Revision: D56575647 fbshipit-source-id: a0613a5d46caeb1d3e636e54ecd43428fbaf46e8 --- packages/react-native/scripts/cocoapods/utils.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index aedbdd5e8c1420..f71a21b9987be4 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -44,6 +44,7 @@ def self.has_pod(installer, name) def self.set_gcc_preprocessor_definition_for_React_hermes(installer) self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-hermes", "Debug") self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "hermes-engine", "Debug") + self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-RuntimeHermes", "Debug") end def self.turn_off_resource_bundle_react_core(installer) From 305249f9642da50bf680b1401644eaba9d5dce50 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Thu, 25 Apr 2024 09:20:42 -0700 Subject: [PATCH 158/223] maintain correct content offset when scroll view is suspended (#44256) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44256 [iOS] [Fixed] - Preserve content offset in ScrollView when the component is suspended On iOS, components are recycled. For ScrollView, its content offset has to be reset back to original position. When we call `[UIScrollView setContentOffset:]`, it triggers all of its delegate methods and triggers `scrollViewDidScroll` where we set native state. So when user scrolls to position 100 and scroll view suspends. it is removed from view hierarchy and recycled. Once the suspense boundary is resolved, scroll view will be inserted back into view hierarchy. But when it was recycled, we set back its original content offset (the default is 0, 0) but this was accidentally propagated through to shadow tree. To avoid this, we simply need to invalidate `_state` before calling `[UIScrollView setContentOffset:]`. Reviewed By: cipolleschi Differential Revision: D56573370 fbshipit-source-id: c03d7d2d403af2e1649b4cf189072baeb4c286c8 --- .../ComponentViews/ScrollView/RCTScrollViewComponentView.mm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm b/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm index 90a9a134dcea72..24e256a09d3602 100644 --- a/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +++ b/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm @@ -420,6 +420,11 @@ - (void)_updateStateWithContentOffset - (void)prepareForRecycle { + [super prepareForRecycle]; + // Must invalidate state before setting contentOffset on ScrollView. + // Otherwise the state will be propagated to shadow tree. + _state.reset(); + const auto &props = static_cast(*_props); _scrollView.contentOffset = RCTCGPointFromPoint(props.contentOffset); // We set the default behavior to "never" so that iOS @@ -427,7 +432,6 @@ - (void)prepareForRecycle // and keeps it as an opt-in behavior. _scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; _shouldUpdateContentInsetAdjustmentBehavior = YES; - _state.reset(); _isUserTriggeredScrolling = NO; CGRect oldFrame = self.frame; self.frame = CGRectZero; From 59e7ed50386cdae8f4a10d9ebc70566b9b36d01c Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Tue, 30 Apr 2024 08:42:42 -0700 Subject: [PATCH 159/223] Avoid calling abstract methods in RCTComposedViewRegistry Summary: `RCTComposedViewRegistry` extends `NSMutableDictionary` which is a clustered class in iOS. NSMutableDictionary is techncially an abstract class, but when instantiated by `[NSMutableDictionary new];` the system will return one of concrete classes that inherit from `NSMutableDictionary`, opaquely from the perspective of the caller. By calling `super`, we are actually calling the not implemented method for the abstract class. If this happen, this can crash the app. Given that the `RCTComposedViewRegistry` is extending the dictionary only for its interface but is using other mechanisms as storage, is it fair to return `NULL`if the storages don't have the requested view. ## Changelog [iOS][Fixed] - Avoid calling abstract methods in RCTComposedViewRegistry Reviewed By: cortinico Differential Revision: D56755427 fbshipit-source-id: f5c56dc59ccc6b30c00199b4196c42eb9b021e2b --- packages/react-native/React/Modules/RCTUIManager.m | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/react-native/React/Modules/RCTUIManager.m b/packages/react-native/React/Modules/RCTUIManager.m index 71c4c669d3ab04..1a1b1155c3322e 100644 --- a/packages/react-native/React/Modules/RCTUIManager.m +++ b/packages/react-native/React/Modules/RCTUIManager.m @@ -1693,7 +1693,7 @@ - (NSEnumerator *)keyEnumerator - (id)objectForKey:(id)key { if (![key isKindOfClass:[NSNumber class]]) { - return [super objectForKey:key]; + return NULL; } NSNumber *index = (NSNumber *)key; @@ -1705,14 +1705,15 @@ - (id)objectForKey:(id)key if (view) { return [RCTUIManager paperViewOrCurrentView:view]; } - return [super objectForKey:key]; + return NULL; } - (void)removeObjectForKey:(id)key { if (![key isKindOfClass:[NSNumber class]]) { - return [super removeObjectForKey:key]; + return; } + NSNumber *tag = (NSNumber *)key; if (_registry[key]) { @@ -1720,8 +1721,6 @@ - (void)removeObjectForKey:(id)key [mutableRegistry removeObjectForKey:tag]; } else if ([_uiManager viewForReactTag:tag]) { [_uiManager removeViewFromRegistry:tag]; - } else { - [super removeObjectForKey:key]; } } From 13739510fb1c2400fbae1df1635fb93dae55abaa Mon Sep 17 00:00:00 2001 From: Alan Lee Date: Tue, 30 Apr 2024 18:29:31 -0700 Subject: [PATCH 160/223] add missing struct member initialization in Props.h (#44294) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44294 **Problem:** It was discovered while testing 3 party library, generated member variables in a C++ `struct` in `Props.h` is not initialized. Also `WithDefault` would not work as well. (For the problematic case it was a `boolean` but would also apply to other primitive types.) If there is no default initialization and the component prop is optional and the user of the native component does not set the prop then the variable is never initialized and this is problematic for primitive types in C++ where no initialization results in an undefined behavior. **Proposed solution:** (Following C++Core Guideline of [always initialize](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-always).) Reusing `generatePropsString()` used by `ClassTemplate` to generate props for `StructTemplate` as well. updated relevant test snapshots. This change is only concerning the `Props.h` file. **Changelog:** [General][Fixed] - fixed `Props.h` created from codegen missing default initializers in C++ `struct` Reviewed By: cipolleschi Differential Revision: D56659457 fbshipit-source-id: 0d21ad20c0491a7e8bb718cd3156da65def72f23 --- .../__snapshots__/GeneratePropsH-test.js.snap | 26 +++---- .../src/generators/components/CppHelpers.js | 9 +++ .../generators/components/GeneratePropsH.js | 32 +++++---- .../components/__test_fixtures__/fixtures.js | 32 +++++++++ .../__snapshots__/GeneratePropsH-test.js.snap | 70 ++++++++++++------- .../GeneratePropsJavaPojo-test.js.snap | 20 ++++++ 6 files changed, 137 insertions(+), 52 deletions(-) diff --git a/packages/react-native-codegen/e2e/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap b/packages/react-native-codegen/e2e/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap index aaf1c130eafba2..50a2d4dbae2877 100644 --- a/packages/react-native-codegen/e2e/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap +++ b/packages/react-native-codegen/e2e/__tests__/components/__snapshots__/GeneratePropsH-test.js.snap @@ -82,7 +82,7 @@ static inline std::string toString(const ArrayPropsNativeComponentViewSizesMask return result; } struct ArrayPropsNativeComponentViewObjectStruct { - std::string prop; + std::string prop{}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ArrayPropsNativeComponentViewObjectStruct &result) { @@ -109,8 +109,8 @@ static inline void fromRawValue(const PropsParserContext& context, const RawValu struct ArrayPropsNativeComponentViewArrayOfObjectsStruct { - Float prop1; - int prop2; + Float prop1{0.0}; + int prop2{0}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ArrayPropsNativeComponentViewArrayOfObjectsStruct &result) { @@ -756,12 +756,12 @@ static inline std::string toString(const ObjectPropsNativeComponentIntEnumProp & } } struct ObjectPropsNativeComponentObjectPropStruct { - std::string stringProp; - bool booleanProp; - Float floatProp; - int intProp; - ObjectPropsNativeComponentStringEnumProp stringEnumProp; - ObjectPropsNativeComponentIntEnumProp intEnumProp; + std::string stringProp{\\"\\"}; + bool booleanProp{false}; + Float floatProp{0.0}; + int intProp{0}; + ObjectPropsNativeComponentStringEnumProp stringEnumProp{ObjectPropsNativeComponentStringEnumProp::Small}; + ObjectPropsNativeComponentIntEnumProp intEnumProp{ObjectPropsNativeComponentIntEnumProp::IntEnumProp0}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ObjectPropsNativeComponentObjectPropStruct &result) { @@ -798,7 +798,7 @@ static inline std::string toString(const ObjectPropsNativeComponentObjectPropStr } struct ObjectPropsNativeComponentObjectArrayPropStruct { - std::vector array; + std::vector array{}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ObjectPropsNativeComponentObjectArrayPropStruct &result) { @@ -815,9 +815,9 @@ static inline std::string toString(const ObjectPropsNativeComponentObjectArrayPr } struct ObjectPropsNativeComponentObjectPrimitiveRequiredPropStruct { - ImageSource image; - SharedColor color; - Point point; + ImageSource image{}; + SharedColor color{}; + Point point{}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ObjectPropsNativeComponentObjectPrimitiveRequiredPropStruct &result) { diff --git a/packages/react-native-codegen/src/generators/components/CppHelpers.js b/packages/react-native-codegen/src/generators/components/CppHelpers.js index 9f8fd10387507f..d1bf2f61599aa4 100644 --- a/packages/react-native-codegen/src/generators/components/CppHelpers.js +++ b/packages/react-native-codegen/src/generators/components/CppHelpers.js @@ -166,6 +166,14 @@ function getEnumMaskName(enumName: string): string { return `${enumName}Mask`; } +function getDefaultInitializerString( + componentName: string, + prop: NamedShape, +): string { + const defaultValue = convertDefaultTypeToString(componentName, prop); + return `{${defaultValue}}`; +} + function convertDefaultTypeToString( componentName: string, prop: NamedShape, @@ -270,6 +278,7 @@ const IncludeTemplate = ({ }; module.exports = { + getDefaultInitializerString, convertDefaultTypeToString, getCppArrayTypeForAnnotation, getCppTypeForAnnotation, diff --git a/packages/react-native-codegen/src/generators/components/GeneratePropsH.js b/packages/react-native-codegen/src/generators/components/GeneratePropsH.js index da7da65f3a992e..e8af5043554695 100644 --- a/packages/react-native-codegen/src/generators/components/GeneratePropsH.js +++ b/packages/react-native-codegen/src/generators/components/GeneratePropsH.js @@ -23,8 +23,8 @@ const { getNativeTypeFromAnnotation, } = require('./ComponentsGeneratorUtils.js'); const { - convertDefaultTypeToString, generateStructName, + getDefaultInitializerString, getEnumMaskName, toIntEnumValueName, } = require('./CppHelpers.js'); @@ -456,13 +456,21 @@ function generateEnumString( function generatePropsString( componentName: string, props: $ReadOnlyArray>, + nameParts: $ReadOnlyArray, ) { return props .map(prop => { - const nativeType = getNativeTypeFromAnnotation(componentName, prop, []); - const defaultValue = convertDefaultTypeToString(componentName, prop); + const nativeType = getNativeTypeFromAnnotation( + componentName, + prop, + nameParts, + ); + const defaultInitializer = getDefaultInitializerString( + componentName, + prop, + ); - return `${nativeType} ${prop.name}{${defaultValue}};`; + return `${nativeType} ${prop.name}${defaultInitializer};`; }) .join('\n' + ' '); } @@ -629,16 +637,11 @@ function generateStruct( ): void { const structNameParts = nameParts; const structName = generateStructName(componentName, structNameParts); - - const fields = properties - .map(property => { - return `${getNativeTypeFromAnnotation( - componentName, - property, - structNameParts, - )} ${property.name};`; - }) - .join('\n' + ' '); + const fields = generatePropsString( + componentName, + properties, + structNameParts, + ); properties.forEach((property: NamedShape) => { const name = property.name; @@ -738,6 +741,7 @@ module.exports = { const propsString = generatePropsString( componentName, component.props, + [], ); const extendString = getClassExtendString(component); const extendsImports = getExtendsImports(component.extendsProps); diff --git a/packages/react-native-codegen/src/generators/components/__test_fixtures__/fixtures.js b/packages/react-native-codegen/src/generators/components/__test_fixtures__/fixtures.js index 3b6915f33f9ec2..9121c8ad6878ee 100644 --- a/packages/react-native-codegen/src/generators/components/__test_fixtures__/fixtures.js +++ b/packages/react-native-codegen/src/generators/components/__test_fixtures__/fixtures.js @@ -871,6 +871,38 @@ const OBJECT_PROPS: SchemaType = { default: 0, }, }, + { + name: 'stringUserDefaultProp', + optional: true, + typeAnnotation: { + type: 'StringTypeAnnotation', + default: 'user_default', + }, + }, + { + name: 'booleanUserDefaultProp', + optional: true, + typeAnnotation: { + type: 'BooleanTypeAnnotation', + default: true, + }, + }, + { + name: 'floatUserDefaultProp', + optional: true, + typeAnnotation: { + type: 'FloatTypeAnnotation', + default: 3.14, + }, + }, + { + name: 'intUserDefaultProp', + optional: true, + typeAnnotation: { + type: 'Int32TypeAnnotation', + default: 9999, + }, + }, { name: 'stringEnumProp', optional: true, diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap index de244b9f33b380..fea966233c4ef2 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsH-test.js.snap @@ -81,7 +81,7 @@ static inline std::string toString(const ArrayPropsNativeComponentSizesMask &val return result; } struct ArrayPropsNativeComponentObjectStruct { - std::string stringProp; + std::string stringProp{\\"\\"}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ArrayPropsNativeComponentObjectStruct &result) { @@ -108,7 +108,7 @@ static inline void fromRawValue(const PropsParserContext& context, const RawValu struct ArrayPropsNativeComponentArrayObjectStruct { - std::string stringProp; + std::string stringProp{\\"\\"}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ArrayPropsNativeComponentArrayObjectStruct &result) { @@ -135,7 +135,7 @@ static inline void fromRawValue(const PropsParserContext& context, const RawValu struct ArrayPropsNativeComponentArrayStruct { - std::vector object; + std::vector object{}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ArrayPropsNativeComponentArrayStruct &result) { @@ -162,7 +162,7 @@ static inline void fromRawValue(const PropsParserContext& context, const RawValu struct ArrayPropsNativeComponentArrayOfArrayOfObjectStruct { - std::string stringProp; + std::string stringProp{\\"\\"}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ArrayPropsNativeComponentArrayOfArrayOfObjectStruct &result) { @@ -242,9 +242,9 @@ Map { namespace facebook::react { struct ArrayPropsNativeComponentNativePrimitivesStruct { - std::vector colors; - std::vector srcs; - std::vector points; + std::vector colors{}; + std::vector srcs{}; + std::vector points{}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ArrayPropsNativeComponentNativePrimitivesStruct &result) { @@ -1100,7 +1100,7 @@ static inline std::string toString(const ObjectPropsIntEnumProp &value) { } } struct ObjectPropsObjectPropObjectArrayPropStruct { - std::vector array; + std::vector array{}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ObjectPropsObjectPropObjectArrayPropStruct &result) { @@ -1117,9 +1117,9 @@ static inline std::string toString(const ObjectPropsObjectPropObjectArrayPropStr } struct ObjectPropsObjectPropObjectPrimitiveRequiredPropStruct { - ImageSource image; - SharedColor color; - Point point; + ImageSource image{}; + SharedColor color{}; + Point point{}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ObjectPropsObjectPropObjectPrimitiveRequiredPropStruct &result) { @@ -1144,7 +1144,7 @@ static inline std::string toString(const ObjectPropsObjectPropObjectPrimitiveReq } struct ObjectPropsObjectPropNestedPropANestedPropBStruct { - std::string nestedPropC; + std::string nestedPropC{\\"\\"}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ObjectPropsObjectPropNestedPropANestedPropBStruct &result) { @@ -1161,7 +1161,7 @@ static inline std::string toString(const ObjectPropsObjectPropNestedPropANestedP } struct ObjectPropsObjectPropNestedPropAStruct { - ObjectPropsObjectPropNestedPropANestedPropBStruct nestedPropB; + ObjectPropsObjectPropNestedPropANestedPropBStruct nestedPropB{}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ObjectPropsObjectPropNestedPropAStruct &result) { @@ -1178,7 +1178,7 @@ static inline std::string toString(const ObjectPropsObjectPropNestedPropAStruct } struct ObjectPropsObjectPropNestedArrayAsPropertyArrayPropStruct { - std::string stringProp; + std::string stringProp{\\"\\"}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ObjectPropsObjectPropNestedArrayAsPropertyArrayPropStruct &result) { @@ -1205,7 +1205,7 @@ static inline void fromRawValue(const PropsParserContext& context, const RawValu struct ObjectPropsObjectPropNestedArrayAsPropertyStruct { - std::vector arrayProp; + std::vector arrayProp{}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ObjectPropsObjectPropNestedArrayAsPropertyStruct &result) { @@ -1222,16 +1222,20 @@ static inline std::string toString(const ObjectPropsObjectPropNestedArrayAsPrope } struct ObjectPropsObjectPropStruct { - std::string stringProp; - bool booleanProp; - Float floatProp; - int intProp; - ObjectPropsStringEnumProp stringEnumProp; - ObjectPropsIntEnumProp intEnumProp; - ObjectPropsObjectPropObjectArrayPropStruct objectArrayProp; - ObjectPropsObjectPropObjectPrimitiveRequiredPropStruct objectPrimitiveRequiredProp; - ObjectPropsObjectPropNestedPropAStruct nestedPropA; - ObjectPropsObjectPropNestedArrayAsPropertyStruct nestedArrayAsProperty; + std::string stringProp{\\"\\"}; + bool booleanProp{false}; + Float floatProp{0.0}; + int intProp{0}; + std::string stringUserDefaultProp{\\"user_default\\"}; + bool booleanUserDefaultProp{true}; + Float floatUserDefaultProp{3.14}; + int intUserDefaultProp{9999}; + ObjectPropsStringEnumProp stringEnumProp{ObjectPropsStringEnumProp::Option1}; + ObjectPropsIntEnumProp intEnumProp{ObjectPropsIntEnumProp::IntEnumProp0}; + ObjectPropsObjectPropObjectArrayPropStruct objectArrayProp{}; + ObjectPropsObjectPropObjectPrimitiveRequiredPropStruct objectPrimitiveRequiredProp{}; + ObjectPropsObjectPropNestedPropAStruct nestedPropA{}; + ObjectPropsObjectPropNestedArrayAsPropertyStruct nestedArrayAsProperty{}; }; static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ObjectPropsObjectPropStruct &result) { @@ -1253,6 +1257,22 @@ static inline void fromRawValue(const PropsParserContext& context, const RawValu if (tmp_intProp != map.end()) { fromRawValue(context, tmp_intProp->second, result.intProp); } + auto tmp_stringUserDefaultProp = map.find(\\"stringUserDefaultProp\\"); + if (tmp_stringUserDefaultProp != map.end()) { + fromRawValue(context, tmp_stringUserDefaultProp->second, result.stringUserDefaultProp); + } + auto tmp_booleanUserDefaultProp = map.find(\\"booleanUserDefaultProp\\"); + if (tmp_booleanUserDefaultProp != map.end()) { + fromRawValue(context, tmp_booleanUserDefaultProp->second, result.booleanUserDefaultProp); + } + auto tmp_floatUserDefaultProp = map.find(\\"floatUserDefaultProp\\"); + if (tmp_floatUserDefaultProp != map.end()) { + fromRawValue(context, tmp_floatUserDefaultProp->second, result.floatUserDefaultProp); + } + auto tmp_intUserDefaultProp = map.find(\\"intUserDefaultProp\\"); + if (tmp_intUserDefaultProp != map.end()) { + fromRawValue(context, tmp_intUserDefaultProp->second, result.intUserDefaultProp); + } auto tmp_stringEnumProp = map.find(\\"stringEnumProp\\"); if (tmp_stringEnumProp != map.end()) { fromRawValue(context, tmp_stringEnumProp->second, result.stringEnumProp); diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsJavaPojo-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsJavaPojo-test.js.snap index 47ce16d68f18f5..fe1eaec379e592 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsJavaPojo-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsJavaPojo-test.js.snap @@ -1024,6 +1024,10 @@ public class ObjectPropsPropsObjectProp { private boolean mBooleanProp; private float mFloatProp; private int mIntProp; + private @Nullable String mStringUserDefaultProp; + private boolean mBooleanUserDefaultProp; + private float mFloatUserDefaultProp; + private int mIntUserDefaultProp; private @Nullable String mStringEnumProp; private @Nullable Integer mIntEnumProp; private ObjectPropsPropsObjectPropObjectArrayProp mObjectArrayProp; @@ -1047,6 +1051,22 @@ public class ObjectPropsPropsObjectProp { return mIntProp; } @DoNotStrip + public @Nullable String getStringUserDefaultProp() { + return mStringUserDefaultProp; + } + @DoNotStrip + public boolean getBooleanUserDefaultProp() { + return mBooleanUserDefaultProp; + } + @DoNotStrip + public float getFloatUserDefaultProp() { + return mFloatUserDefaultProp; + } + @DoNotStrip + public int getIntUserDefaultProp() { + return mIntUserDefaultProp; + } + @DoNotStrip public @Nullable String getStringEnumProp() { return mStringEnumProp; } From 88130612864b40adf9001efed9fae2d1ab80b30c Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Wed, 1 May 2024 03:53:10 -0700 Subject: [PATCH 161/223] Honor `requiresMainQueueSetup` in bridgeless mode for ViewManagers Summary: We [received an issue](https://github.com/react-native-maps/react-native-maps/issues/5042) in OSS where a ViewManager was configured to be initialized on the main queue, but it wasn't. This was creating a soft crash and showing a RedBox to the user. The library was going through the Interop Layer. This change makes sure that, if the ViewManager is configured to be setup in the main queue, we retrieve the constants from the Main Queue ## Changelog [iOS][Fixed] - Extract the constants from ViewManagers in the UI Thread if needed. Reviewed By: sammy-SC Differential Revision: D56762253 fbshipit-source-id: ca807b34d6e61418da9fd6a639a05f3394879f7c --- .../react-native/React/Views/RCTComponentData.m | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/react-native/React/Views/RCTComponentData.m b/packages/react-native/React/Views/RCTComponentData.m index db6f971142624f..3952d177e66063 100644 --- a/packages/react-native/React/Views/RCTComponentData.m +++ b/packages/react-native/React/Views/RCTComponentData.m @@ -416,7 +416,20 @@ - (void)setProps:(NSDictionary *)props forView:(id + (NSDictionary *)constantsForViewMangerClass:(Class)managerClass { if ([managerClass instancesRespondToSelector:@selector(constantsToExport)]) { - return [[managerClass new] constantsToExport]; + BOOL shouldRunOnMainThread = NO; + + if ([managerClass respondsToSelector:@selector(requiresMainQueueSetup)]) { + shouldRunOnMainThread = [managerClass requiresMainQueueSetup]; + } + if (shouldRunOnMainThread) { + __block NSDictionary *constants; + RCTUnsafeExecuteOnMainQueueSync(^{ + constants = [[managerClass new] constantsToExport]; + }); + return constants; + } else { + return [[managerClass new] constantsToExport]; + } } return @{}; } From bb890a308f748a68722a423f88ea7ccc7cfee21b Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Wed, 1 May 2024 18:25:08 +0100 Subject: [PATCH 162/223] [LOCAL] Fix prettier and Flow --- scripts/npm-utils.js | 2 +- scripts/releases-local/trigger-react-native-release.js | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/npm-utils.js b/scripts/npm-utils.js index 2fe4add1023011..de9198bc567e10 100644 --- a/scripts/npm-utils.js +++ b/scripts/npm-utils.js @@ -135,7 +135,7 @@ function publishPackage( packageOptions /*: NpmPackageOptions */, execOptions /*: ?ExecOptsSync */, ) /*: ShellString */ { - const {otp, tags, access} = packageOptions; + const {otp, tags} = packageOptions; let tagsFlag = ''; if (tags != null) { diff --git a/scripts/releases-local/trigger-react-native-release.js b/scripts/releases-local/trigger-react-native-release.js index a7723d0f3d1e5d..154baa20ddcba8 100644 --- a/scripts/releases-local/trigger-react-native-release.js +++ b/scripts/releases-local/trigger-react-native-release.js @@ -156,7 +156,14 @@ async function main() { latest = setLatest; } - const npmTag = latest ? 'latest' : !prerelease ? branch : patch == 0 ? 'next' : '--no-tag'; + const npmTag = latest + ? 'latest' + : !prerelease + ? branch + : patch === '0' + ? 'next' + : '--no-tag'; + const {confirmRelease} = await inquirer.prompt({ type: 'confirm', name: 'confirmRelease', From 58b1f9b2d4f617290a3a535153ff1e93a4672038 Mon Sep 17 00:00:00 2001 From: Szymon Rybczak Date: Wed, 1 May 2024 19:31:39 +0200 Subject: [PATCH 163/223] feat: upgrade `@react-native-community/cli` to `13.6.6` (#44253) Co-authored-by: Riccardo Cipolleschi --- packages/community-cli-plugin/package.json | 4 +- packages/react-native/package.json | 6 +- yarn.lock | 144 ++++++++++----------- 3 files changed, 77 insertions(+), 77 deletions(-) diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 936eafb666d2f9..694f5f5165e67b 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -22,8 +22,8 @@ "dist" ], "dependencies": { - "@react-native-community/cli-server-api": "13.6.4", - "@react-native-community/cli-tools": "13.6.4", + "@react-native-community/cli-server-api": "13.6.6", + "@react-native-community/cli-tools": "13.6.6", "@react-native/dev-middleware": "0.74.82", "@react-native/metro-babel-transformer": "0.74.82", "chalk": "^4.0.0", diff --git a/packages/react-native/package.json b/packages/react-native/package.json index f35ac83b48540d..38189b46726a70 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -107,9 +107,9 @@ }, "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "13.6.4", - "@react-native-community/cli-platform-android": "13.6.4", - "@react-native-community/cli-platform-ios": "13.6.4", + "@react-native-community/cli": "13.6.6", + "@react-native-community/cli-platform-android": "13.6.6", + "@react-native-community/cli-platform-ios": "13.6.6", "@react-native/assets-registry": "0.74.82", "@react-native/codegen": "0.74.82", "@react-native/community-cli-plugin": "0.74.82", diff --git a/yarn.lock b/yarn.lock index 770f43336b1a4e..b529b43e471f12 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2384,45 +2384,45 @@ optionalDependencies: npmlog "2 || ^3.1.0 || ^4.0.0" -"@react-native-community/cli-clean@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.4.tgz#53c07c6f2834a971dc40eab290edcf8ccc5d1e00" - integrity sha512-nS1BJ+2Z+aLmqePxB4AYgJ+C/bgQt02xAgSYtCUv+lneRBGhL2tHRrK8/Iolp0y+yQoUtHHf4txYi90zGXLVfw== +"@react-native-community/cli-clean@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.6.tgz#87c7ad8746c38dab0fe7b3c6ff89d44351d5d943" + integrity sha512-cBwJTwl0NyeA4nyMxbhkWZhxtILYkbU3TW3k8AXLg+iGphe0zikYMGB3T+haTvTc6alTyEFwPbimk9bGIqkjAQ== dependencies: - "@react-native-community/cli-tools" "13.6.4" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" -"@react-native-community/cli-config@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.4.tgz#3004c7bca55cb384b3a99c38c1a48dad24533237" - integrity sha512-GGK415WoTx1R9FXtfb/cTnan9JIWwSm+a5UCuFd6+suzS0oIt1Md1vCzjNh6W1CK3b43rZC2e+3ZU7Ljd7YtyQ== +"@react-native-community/cli-config@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.6.tgz#69f590694b3a079c74f781baab3b762db74f5dbd" + integrity sha512-mbG425zCKr8JZhv/j11382arezwS/70juWMsn8j2lmrGTrP1cUdW0MF15CCIFtJsqyK3Qs+FTmqttRpq81QfSg== dependencies: - "@react-native-community/cli-tools" "13.6.4" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" fast-glob "^3.3.2" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.4.tgz#3881b9cfe14e66b3ee827a84f19ca9d0283fd764" - integrity sha512-9Gs31s6tA1kuEo69ay9qLgM3x2gsN/RI994DCUKnFSW+qSusQJyyrmfllR2mGU3Wl1W09/nYpIg87W9JPf5y4A== +"@react-native-community/cli-debugger-ui@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.6.tgz#ac021ebd795b0fd66fb52a8987d1d41c5a4b8cb3" + integrity sha512-Vv9u6eS4vKSDAvdhA0OiQHoA7y39fiPIgJ6biT32tN4avHDtxlc6TWZGiqv7g98SBvDWvoVAmdPLcRf3kU+c8g== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.4.tgz#07e5c2f163807e61ce0ba12901903e591177e3d3" - integrity sha512-lWOXCISH/cHtLvO0cWTr+IPSzA54FewVOw7MoCMEvWusH+1n7c3hXTAve78mLozGQ7iuUufkHFWwKf3dzOkflQ== +"@react-native-community/cli-doctor@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.6.tgz#ac0febff05601d9b86af3e03460e1a6b0a1d33a5" + integrity sha512-TWZb5g6EmQe2Ua2TEWNmyaEayvlWH4GmdD9ZC+p8EpKFpB1NpDGMK6sXbpb42TDvwZg5s4TDRplK0PBEA/SVDg== dependencies: - "@react-native-community/cli-config" "13.6.4" - "@react-native-community/cli-platform-android" "13.6.4" - "@react-native-community/cli-platform-apple" "13.6.4" - "@react-native-community/cli-platform-ios" "13.6.4" - "@react-native-community/cli-tools" "13.6.4" + "@react-native-community/cli-config" "13.6.6" + "@react-native-community/cli-platform-android" "13.6.6" + "@react-native-community/cli-platform-apple" "13.6.6" + "@react-native-community/cli-platform-ios" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" @@ -2436,66 +2436,66 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-hermes@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.4.tgz#6d3e9b5c251461e9bb35b04110544db8a4f5968f" - integrity sha512-VIAufA/2wTccbMYBT9o+mQs9baOEpTxCiIdWeVdkPWKzIwtKsLpDZJlUqj4r4rI66mwjFyQ60PhwSzEJ2ApFeQ== +"@react-native-community/cli-hermes@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.6.tgz#590f55f151fec23b55498228f92d100a0e71d474" + integrity sha512-La5Ie+NGaRl3klei6WxKoOxmCUSGGxpOk6vU5pEGf0/O7ky+Ay0io+zXYUZqlNMi/cGpO7ZUijakBYOB/uyuFg== dependencies: - "@react-native-community/cli-platform-android" "13.6.4" - "@react-native-community/cli-tools" "13.6.4" + "@react-native-community/cli-platform-android" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" -"@react-native-community/cli-platform-android@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.4.tgz#78ab4c840f4f1f5252ad2fcc5a55f7681ec458cb" - integrity sha512-WhknYwIobKKCqaGCN3BzZEQHTbaZTDiGvcXzevvN867ldfaGdtbH0DVqNunbPoV1RNzeV9qKoQHFdWBkg83tpg== +"@react-native-community/cli-platform-android@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.6.tgz#9e3863cb092709021f11848890bff0fc16fc1609" + integrity sha512-/tMwkBeNxh84syiSwNlYtmUz/Ppc+HfKtdopL/5RB+fd3SV1/5/NPNjMlyLNgFKnpxvKCInQ7dnl6jGHJjeHjg== dependencies: - "@react-native-community/cli-tools" "13.6.4" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" fast-xml-parser "^4.2.4" logkitty "^0.7.1" -"@react-native-community/cli-platform-apple@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.4.tgz#4912eaf519800a957745192718822b94655c8119" - integrity sha512-TLBiotdIz0veLbmvNQIdUv9fkBx7m34ANGYqr5nH7TFxdmey+Z+omoBqG/HGpvyR7d0AY+kZzzV4k+HkYHM/aQ== +"@react-native-community/cli-platform-apple@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.6.tgz#d445fd6ed02c5ae2f43f9c45501e04fee53a2790" + integrity sha512-bOmSSwoqNNT3AmCRZXEMYKz1Jf1l2F86Nhs7qBcXdY/sGiJ+Flng564LOqvdAlVLTbkgz47KjNKCS2pP4Jg0Mg== dependencies: - "@react-native-community/cli-tools" "13.6.4" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" fast-xml-parser "^4.0.12" ora "^5.4.1" -"@react-native-community/cli-platform-ios@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.4.tgz#96ec915c6df23b2b7b7e0d8cb3db7368e448d620" - integrity sha512-8Dlva8RY+MY5nhWAj6V7voG3+JOEzDTJmD0FHqL+4p0srvr9v7IEVcxfw5lKBDIUNd0OMAHNevGA+cyz1J60jg== +"@react-native-community/cli-platform-ios@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.6.tgz#0cd700f36483ca37dda7ec044377f8a926b1df1f" + integrity sha512-vjDnRwhlSN5ryqKTas6/DPkxuouuyFBAqAROH4FR1cspTbn6v78JTZKDmtQy9JMMo7N5vZj1kASU5vbFep9IOQ== dependencies: - "@react-native-community/cli-platform-apple" "13.6.4" + "@react-native-community/cli-platform-apple" "13.6.6" -"@react-native-community/cli-server-api@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.4.tgz#6bcec7ae387fc3aeb3e78f62561a91962e6fadf7" - integrity sha512-D2qSuYCFwrrUJUM0SDc9l3lEhU02yjf+9Peri/xhspzAhALnsf6Z/H7BCjddMV42g9/eY33LqiGyN5chr83a+g== +"@react-native-community/cli-server-api@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.6.tgz#467993006ef82361cdf7a9817999d5a09e85ca6a" + integrity sha512-ZtCXxoFlM7oDv3iZ3wsrT3SamhtUJuIkX2WePLPlN5bcbq7zimbPm2lHyicNJtpcGQ5ymsgpUWPCNZsWQhXBqQ== dependencies: - "@react-native-community/cli-debugger-ui" "13.6.4" - "@react-native-community/cli-tools" "13.6.4" + "@react-native-community/cli-debugger-ui" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" nocache "^3.0.1" pretty-format "^26.6.2" serve-static "^1.13.1" - ws "^7.5.1" + ws "^6.2.2" -"@react-native-community/cli-tools@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.4.tgz#ab396604b6dcf215790807fe89656e779b11f0ec" - integrity sha512-N4oHLLbeTdg8opqJozjClmuTfazo1Mt+oxU7mr7m45VCsFgBqTF70Uwad289TM/3l44PP679NRMAHVYqpIRYtQ== +"@react-native-community/cli-tools@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.6.tgz#55c40cbabafbfc56cfb95a4d5fbf73ef60ec3cbc" + integrity sha512-ptOnn4AJczY5njvbdK91k4hcYazDnGtEPrqIwEI+k/CTBHNdb27Rsm2OZ7ye6f7otLBqF8gj/hK6QzJs8CEMgw== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -2509,26 +2509,26 @@ shell-quote "^1.7.3" sudo-prompt "^9.0.0" -"@react-native-community/cli-types@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.4.tgz#e499a3691ee597aa4b93196ff182a4782fae7afb" - integrity sha512-NxGCNs4eYtVC8x0wj0jJ/MZLRy8C+B9l8lY8kShuAcvWTv5JXRqmXjg8uK1aA+xikPh0maq4cc/zLw1roroY/A== +"@react-native-community/cli-types@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.6.tgz#b45af119d61888fea1074a7c32ddb093e3f119a9" + integrity sha512-733iaYzlmvNK7XYbnWlMjdE+2k0hlTBJW071af/xb6Bs+hbJqBP9c03FZuYH2hFFwDDntwj05bkri/P7VgSxug== dependencies: joi "^17.2.1" -"@react-native-community/cli@13.6.4": - version "13.6.4" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.4.tgz#dabe2749470a34533e18aada51d97c94b3568307" - integrity sha512-V7rt2N5JY7M4dJFgdNfR164r3hZdR/Z7V54dv85TFQHRbdwF4QrkG+GeagAU54qrkK/OU8OH3AF2+mKuiNWpGA== - dependencies: - "@react-native-community/cli-clean" "13.6.4" - "@react-native-community/cli-config" "13.6.4" - "@react-native-community/cli-debugger-ui" "13.6.4" - "@react-native-community/cli-doctor" "13.6.4" - "@react-native-community/cli-hermes" "13.6.4" - "@react-native-community/cli-server-api" "13.6.4" - "@react-native-community/cli-tools" "13.6.4" - "@react-native-community/cli-types" "13.6.4" +"@react-native-community/cli@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.6.tgz#b929c8668e88344c03a46a3e635cb382dba16773" + integrity sha512-IqclB7VQ84ye8Fcs89HOpOscY4284VZg2pojHNl8H0Lzd4DadXJWQoxC7zWm8v2f8eyeX2kdhxp2ETD5tceIgA== + dependencies: + "@react-native-community/cli-clean" "13.6.6" + "@react-native-community/cli-config" "13.6.6" + "@react-native-community/cli-debugger-ui" "13.6.6" + "@react-native-community/cli-doctor" "13.6.6" + "@react-native-community/cli-hermes" "13.6.6" + "@react-native-community/cli-server-api" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" + "@react-native-community/cli-types" "13.6.6" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" From cc1c69799e284b368e3eaaac0ccd8e238384857f Mon Sep 17 00:00:00 2001 From: Pieter De Baets Date: Mon, 15 Apr 2024 12:46:50 -0700 Subject: [PATCH 164/223] Support more stubbed methods in BridgelessCatalystInstance (#44091) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44091 These can be stubbed easily using existing ReactHostImpl/ReactInstance API's Changelog: [Internal] Reviewed By: cortinico Differential Revision: D56139806 fbshipit-source-id: cefabe3aa0fb6556f8e296243ff233df07ddffee --- .../runtime/BridgelessCatalystInstance.kt | 29 +++++++------------ .../facebook/react/runtime/ReactHostImpl.java | 10 +++++++ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt index 434c8ead80c3fe..03a18c6c8dae01 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt @@ -92,25 +92,20 @@ public class BridgelessCatalystInstance(private val reactHost: ReactHostImpl) : throw UnsupportedOperationException("Unimplemented method 'initialize'") } - override fun getReactQueueConfiguration(): ReactQueueConfiguration { - throw UnsupportedOperationException("Unimplemented method 'getReactQueueConfiguration'") - } + override fun getReactQueueConfiguration(): ReactQueueConfiguration = + reactHost.reactQueueConfiguration!! - override fun getJSModule(jsInterface: Class): T { - throw UnsupportedOperationException("Unimplemented method 'getJSModule'") - } + override fun getJSModule(jsInterface: Class): T = + reactHost.currentReactContext?.getJSModule(jsInterface)!! - override fun hasNativeModule(nativeModuleInterface: Class): Boolean { - throw UnsupportedOperationException("Unimplemented method 'hasNativeModule'") - } + override fun hasNativeModule(nativeModuleInterface: Class): Boolean = + reactHost.hasNativeModule(nativeModuleInterface) - override fun getNativeModule(nativeModuleInterface: Class): T? { - throw UnsupportedOperationException("Unimplemented method 'getNativeModule'") - } + override fun getNativeModule(nativeModuleInterface: Class): T? = + reactHost.getNativeModule(nativeModuleInterface) - override fun getNativeModule(moduleName: String): NativeModule? { - throw UnsupportedOperationException("Unimplemented method 'getNativeModule'") - } + override fun getNativeModule(moduleName: String): NativeModule? = + reactHost.getNativeModule(moduleName) @Deprecated( message = @@ -119,9 +114,7 @@ public class BridgelessCatalystInstance(private val reactHost: ReactHostImpl) : throw UnsupportedOperationException("Unimplemented method 'getJSIModule'") } - override fun getNativeModules(): Collection { - throw UnsupportedOperationException("Unimplemented method 'getNativeModules'") - } + override fun getNativeModules(): Collection = reactHost.getNativeModules() override fun extendNativeModules(modules: NativeModuleRegistry) { throw UnsupportedOperationException("Unimplemented method 'extendNativeModules'") diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java index 56fbafaccf73aa..b3ad48e6afcc73 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java @@ -592,6 +592,16 @@ T getNativeModule(Class nativeModuleInterface) { return null; } + /* package */ + @Nullable + NativeModule getNativeModule(String nativeModuleName) { + final ReactInstance reactInstance = mReactInstanceTaskRef.get().getResult(); + if (reactInstance != null) { + return reactInstance.getNativeModule(nativeModuleName); + } + return null; + } + /* package */ @Nullable RuntimeExecutor getRuntimeExecutor() { From 56631cd471008c39fe6f771052c3f1af7085bd63 Mon Sep 17 00:00:00 2001 From: Kudo Chien Date: Wed, 1 May 2024 15:21:44 -0700 Subject: [PATCH 165/223] fix ReactActivity.getReactDelegate().reload() (#44223) Summary: fixing some problem for `ReactActivity.getReactDelegate().reload()` from https://github.com/facebook/react-native/issues/43521: - the `reload()` does not work for bridge mode on release build [ANDROID] [FIXED] - Fixed app reloading for `ReactActivity.getReactDelegate().reload()`. Pull Request resolved: https://github.com/facebook/react-native/pull/44223 Test Plan: tried to temporary change toast.show as reload and test from rn-tester ```diff --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt @@ -10,6 +10,7 @@ package com.facebook.react.modules.toast import android.view.Gravity import android.widget.Toast import com.facebook.fbreact.specs.NativeToastAndroidSpec +import com.facebook.react.ReactActivity import com.facebook.react.bridge.NativeModule import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.UiThreadUtil @@ -30,9 +31,11 @@ public class ToastModule(reactContext: ReactApplicationContext) : ) override public fun show(message: String?, durationDouble: Double) { - val duration = durationDouble.toInt() - UiThreadUtil.runOnUiThread( - Runnable { Toast.makeText(getReactApplicationContext(), message, duration).show() }) +// val duration = durationDouble.toInt() +// UiThreadUtil.runOnUiThread( +// Runnable { Toast.makeText(getReactApplicationContext(), message, duration).show() }) + val activity = reactApplicationContext.currentActivity as? ReactActivity + activity?.reactDelegate?.reload() } override public fun showWithGravity( ``` tried for different mode - [x] bridge mode + debug build - [x] bridgeless mode + debug build - [x] bridge mode + release build - [x] bridgeless mode + release build Reviewed By: fkgozali Differential Revision: D56795975 Pulled By: arushikesarwani94 fbshipit-source-id: 895eab1927ba6db748ebb32c0fd5313f19cf9d1b --- .../com/facebook/react/ReactDelegate.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index 3afe3d96af23e8..9ce067b9fc56dc 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -15,6 +15,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.facebook.infer.annotation.Assertions; +import com.facebook.react.bridge.UiThreadUtil; import com.facebook.react.config.ReactFeatureFlags; import com.facebook.react.devsupport.DisabledDevSupportManager; import com.facebook.react.devsupport.DoubleTapReloadRecognizer; @@ -99,7 +100,7 @@ private DevSupportManager getDevSupportManager() { && mReactHost.getDevSupportManager() != null) { return mReactHost.getDevSupportManager(); } else if (getReactNativeHost().hasInstance() - && getReactNativeHost().getUseDeveloperSupport()) { + && getReactNativeHost().getReactInstanceManager() != null) { return getReactNativeHost().getReactInstanceManager().getDevSupportManager(); } else { return null; @@ -241,17 +242,31 @@ public boolean onKeyLongPress(int keyCode) { public void reload() { DevSupportManager devSupportManager = getDevSupportManager(); - if (devSupportManager != null) { - // With Bridgeless enabled, reload in RELEASE mode - if (devSupportManager instanceof DisabledDevSupportManager - && ReactFeatureFlags.enableBridgelessArchitecture - && mReactHost != null) { - // Do not reload the bundle from JS as there is no bundler running in release mode. - mReactHost.reload("ReactDelegate.reload()"); + if (devSupportManager == null) { + return; + } + + // Reload in RELEASE mode + if (devSupportManager instanceof ReleaseDevSupportManager) { + // Do not reload the bundle from JS as there is no bundler running in release mode. + if (ReactFeatureFlags.enableBridgelessArchitecture) { + if (mReactHost != null) { + mReactHost.reload("ReactDelegate.reload()"); + } } else { - devSupportManager.handleReloadJS(); + UiThreadUtil.runOnUiThread( + () -> { + if (mReactNativeHost.hasInstance() + && mReactNativeHost.getReactInstanceManager() != null) { + mReactNativeHost.getReactInstanceManager().recreateReactContextInBackground(); + } + }); } + return; } + + // Reload in DEBUG mode + devSupportManager.handleReloadJS(); } public void loadApp() { From 4be1fafec8edca5da5ebe515ad359d4178db7d23 Mon Sep 17 00:00:00 2001 From: aleqsio Date: Tue, 30 Apr 2024 18:19:28 -0700 Subject: [PATCH 166/223] Implement privacy manifest aggregation (#44214) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: As of now, Apple does not respect privacy manifests added as cocoapods resource bundles. This forces react-native developers to manually copy `.xcprivacy` files content for each native dependency that accesses restricted reason APIs to the root file. This PR adds an aggregation step that crawls through pod dependencies to collect all reasons into the root privacy info file. [IOS][ADDED] – Add privacy manifest aggregation. Pull Request resolved: https://github.com/facebook/react-native/pull/44214 Test Plan: When run on RNTester, it appends aggregated entries (while keeping existing ones) to existing .xcprivacy file without modifing .pbxproj: ![image](https://github.com/facebook/react-native/assets/5597580/1d07a07d-bbec-4266-a599-a8d629078971) When run on RNTester with the xcprivacy file removed from xcode beforehand, it creates a new .xcprivacy file, and adds it to Compile Bundle Resources in the same way as in the new template: ![image](https://github.com/facebook/react-native/assets/5597580/f80a3b4e-e41a-4906-8e2f-06cca0bc225a) When run on RNTester with an empty .xcprivacy file, it appends aggregated entries from pods AND reasons for react-native core. When run with `privacy_file_aggregation_enabled: false` in `use_react_native`, it falls back to existing behavior: ![image](https://github.com/facebook/react-native/assets/5597580/4519bba1-c80e-4cd0-b19c-bbbebfa8493b) Reviewed By: cipolleschi Differential Revision: D56481045 Pulled By: philIip fbshipit-source-id: 1841bad821511c734d0cc0fcff5065ed92af76d8 --- .../cocoapods/privacy_manifest_utils.rb | 164 ++++++++++++++++++ .../react-native/scripts/cocoapods/utils.rb | 38 ---- .../react-native/scripts/react_native_pods.rb | 15 +- 3 files changed, 176 insertions(+), 41 deletions(-) create mode 100644 packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb diff --git a/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb b/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb new file mode 100644 index 00000000000000..322da24f0e9a87 --- /dev/null +++ b/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb @@ -0,0 +1,164 @@ +# 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. + +module PrivacyManifestUtils + def self.add_aggregated_privacy_manifest(installer) + user_project = get_user_project_from(installer) + targets = get_application_targets(user_project) + file_path = get_privacyinfo_file_path(user_project) + + privacy_info = read_privacyinfo_file(file_path) || { + "NSPrivacyCollectedDataTypes" => [], + "NSPrivacyTracking" => false + } + + # Get all required reason APIs defined in current pods + required_reason_apis = get_used_required_reason_apis(installer) + + # Add the Required Reason APIs from React Native core + get_core_accessed_apis.each do |accessed_api| + api_type = accessed_api["NSPrivacyAccessedAPIType"] + reasons = accessed_api["NSPrivacyAccessedAPITypeReasons"] + required_reason_apis[api_type] ||= [] + required_reason_apis[api_type] += reasons + end + + # Merge the Required Reason APIs from pods with the ones from the existing PrivacyInfo file + (privacy_info["NSPrivacyAccessedAPITypes"] || []).each do |accessed_api| + api_type = accessed_api["NSPrivacyAccessedAPIType"] + reasons = accessed_api["NSPrivacyAccessedAPITypeReasons"] + # Add reasons from existing PrivacyInfo file to the ones from pods + required_reason_apis[api_type] ||= [] + required_reason_apis[api_type] += reasons + end + + # Update the existing PrivacyInfo file with the new aggregated data + privacy_info["NSPrivacyAccessedAPITypes"] = required_reason_apis.map { |api_type, reasons| + { + "NSPrivacyAccessedAPIType" => api_type, + "NSPrivacyAccessedAPITypeReasons" => reasons.uniq + } + } + + Xcodeproj::Plist.write_to_path(privacy_info, file_path) + + targets.each do |target| + ensure_reference(file_path, user_project, target) + end + end + + def self.get_application_targets(user_project) + return user_project.targets.filter { |t| t.symbol_type == :application } + end + + def self.read_privacyinfo_file(file_path) + # Maybe add missing default NSPrivacyTracking, NSPrivacyTrackingDomains, NSPrivacyCollectedDataTypes, but this works without those keys + source_data = nil + # Try to read an existing PrivacyInfo.xcprivacy file + begin + source_data = Xcodeproj::Plist.read_from_path(file_path) + Pod::UI.puts "[Privacy Manifest Aggregation] Appending aggregated reasons to existing PrivacyInfo.xcprivacy file." + rescue => e + Pod::UI.puts "[Privacy Manifest Aggregation] No existing PrivacyInfo.xcprivacy file found, creating a new one." + end + return source_data + end + + def self.ensure_reference(file_path, user_project, target) + reference_exists = target.resources_build_phase.files_references.any? { |file_ref| file_ref.path.end_with? "PrivacyInfo.xcprivacy" } + unless reference_exists + # We try to find the main group, but if it doesn't exist, we default to adding the file to the project root – both work + file_root = user_project.root_object.main_group.children.first { |group| group.name == target.name } || user_project + file_ref = file_root.new_file(file_path) + build_file = target.resources_build_phase.add_file_reference(file_ref, true) + end + end + + def self.get_privacyinfo_file_path(user_project) + # We try to find a file we know exists in the project to get the path to the main group directory + info_plist_path = user_project.files.find { |file_ref| file_ref.name == "Info.plist" } + if info_plist_path.nil? + # return path that is sibling to .xcodeproj + path = user_project.path + return File.join(File.dirname(path), "PrivacyInfo.xcprivacy") + end + return File.join(File.dirname(info_plist_path.real_path),"PrivacyInfo.xcprivacy") + end + + def self.get_used_required_reason_apis(installer) + # A dictionary with keys of type string (NSPrivacyAccessedAPIType) and values of type string[] (NSPrivacyAccessedAPITypeReasons[]) + used_apis = {} + Pod::UI.puts "[Privacy Manifest Aggregation] Reading .xcprivacy files to aggregate all used Required Reason APIs." + installer.pod_targets.each do |pod_target| + # puts pod_target + pod_target.file_accessors.each do |file_accessor| + file_accessor.resource_bundles.each do |bundle_name, bundle_files| + bundle_files.each do |file_path| + # This needs to be named like that due to apple requirements + if File.basename(file_path) == 'PrivacyInfo.xcprivacy' + content = Xcodeproj::Plist.read_from_path(file_path) + accessed_api_types = content["NSPrivacyAccessedAPITypes"] + accessed_api_types.each do |accessed_api| + api_type = accessed_api["NSPrivacyAccessedAPIType"] + reasons = accessed_api["NSPrivacyAccessedAPITypeReasons"] + used_apis[api_type] ||= [] + used_apis[api_type] += reasons + end + end + end + end + end + end + return used_apis + end + + def self.get_privacy_manifest_paths_from(user_project) + privacy_manifests = user_project + .files + .select { |p| + p.path&.end_with?('PrivacyInfo.xcprivacy') + } + return privacy_manifests + end + + def self.get_core_accessed_apis() + file_timestamp_accessed_api = { + "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategoryFileTimestamp", + "NSPrivacyAccessedAPITypeReasons" => ["C617.1"], + } + user_defaults_accessed_api = { + "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategoryUserDefaults", + "NSPrivacyAccessedAPITypeReasons" => ["CA92.1"], + } + boot_time_accessed_api = { + "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategorySystemBootTime", + "NSPrivacyAccessedAPITypeReasons" => ["35F9.1"], + } + return [file_timestamp_accessed_api, user_defaults_accessed_api, boot_time_accessed_api] + end + + + def self.get_user_project_from(installer) + user_project = installer.aggregate_targets + .map{ |t| t.user_project } + .first + return user_project + end + + def self.add_privacy_manifest_if_needed(installer) + user_project = get_user_project_from(installer) + privacy_manifest = self.get_privacy_manifest_paths_from(user_project).first + if privacy_manifest.nil? + privacy_manifest = { + "NSPrivacyCollectedDataTypes" => [], + "NSPrivacyTracking" => false, + "NSPrivacyAccessedAPITypes" => get_core_accessed_apis + } + path = File.join(user_project.path.parent, "PrivacyInfo.xcprivacy") + Xcodeproj::Plist.write_to_path(privacy_manifest, path) + Pod::UI.puts "Your app does not have a privacy manifest! A template has been generated containing Required Reasons API usage in the core React Native library. Please add the PrivacyInfo.xcprivacy file to your project and complete data use, tracking and any additional required reasons your app is using according to Apple's guidance: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files. Then, you will need to manually add this file to your project in Xcode.".red + end + end +end diff --git a/packages/react-native/scripts/cocoapods/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index f71a21b9987be4..2143df11f0a9d9 100644 --- a/packages/react-native/scripts/cocoapods/utils.rb +++ b/packages/react-native/scripts/cocoapods/utils.rb @@ -592,44 +592,6 @@ def self.set_imagemanager_search_path(target_installation_result) ReactNativePodsUtils.update_header_paths_if_depends_on(target_installation_result, "React-ImageManager", header_search_paths) end - def self.get_privacy_manifest_paths_from(user_project) - privacy_manifests = user_project - .files - .select { |p| - p.path&.end_with?('PrivacyInfo.xcprivacy') - } - return privacy_manifests - end - - def self.add_privacy_manifest_if_needed(installer) - user_project = installer.aggregate_targets - .map{ |t| t.user_project } - .first - privacy_manifest = self.get_privacy_manifest_paths_from(user_project).first - if privacy_manifest.nil? - file_timestamp_reason = { - "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategoryFileTimestamp", - "NSPrivacyAccessedAPITypeReasons" => ["C617.1"], - } - user_defaults_reason = { - "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategoryUserDefaults", - "NSPrivacyAccessedAPITypeReasons" => ["CA92.1"], - } - boot_time_reason = { - "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategorySystemBootTime", - "NSPrivacyAccessedAPITypeReasons" => ["35F9.1"], - } - privacy_manifest = { - "NSPrivacyCollectedDataTypes" => [], - "NSPrivacyTracking" => false, - "NSPrivacyAccessedAPITypes" => [file_timestamp_reason, user_defaults_reason, boot_time_reason] - } - path = File.join(user_project.path.parent, "PrivacyInfo.xcprivacy") - Xcodeproj::Plist.write_to_path(privacy_manifest, path) - Pod::UI.puts "Your app does not have a privacy manifest! A template has been generated containing Required Reasons API usage in the core React Native library. Please add the PrivacyInfo.xcprivacy file to your project and complete data use, tracking and any additional required reasons your app is using according to Apple's guidance: https://developer.apple.com/.../privacy_manifest_files. Then, you will need to manually add this file to your project in Xcode.".red - end - end - def self.react_native_pods return [ "DoubleConversion", diff --git a/packages/react-native/scripts/react_native_pods.rb b/packages/react-native/scripts/react_native_pods.rb index 910d6c235a6728..751d0761e6036e 100644 --- a/packages/react-native/scripts/react_native_pods.rb +++ b/packages/react-native/scripts/react_native_pods.rb @@ -16,6 +16,7 @@ require_relative './cocoapods/local_podspec_patch.rb' require_relative './cocoapods/runtime.rb' require_relative './cocoapods/helpers.rb' +require_relative './cocoapods/privacy_manifest_utils.rb' $CODEGEN_OUTPUT_DIR = 'build/generated/ios' $CODEGEN_COMPONENT_DIR = 'react/renderer/components' @@ -73,7 +74,8 @@ def use_react_native! ( production: false, # deprecated hermes_enabled: ENV['USE_HERMES'] && ENV['USE_HERMES'] == '0' ? false : true, app_path: '..', - config_file_dir: '' + config_file_dir: '', + privacy_file_aggregation_enabled: true ) # Set the app_path as env variable so the podspecs can access it. @@ -97,6 +99,7 @@ def use_react_native! ( ENV['RCT_FABRIC_ENABLED'] = fabric_enabled ? "1" : "0" ENV['USE_HERMES'] = hermes_enabled ? "1" : "0" + ENV['RCT_AGGREGATE_PRIVACY_FILES'] = privacy_file_aggregation_enabled ? "1" : "0" prefix = path @@ -278,6 +281,7 @@ def react_native_post_install( fabric_enabled = ENV['RCT_FABRIC_ENABLED'] == '1' hermes_enabled = ENV['USE_HERMES'] == '1' + privacy_file_aggregation_enabled = ENV['RCT_AGGREGATE_PRIVACY_FILES'] == '1' if hermes_enabled ReactNativePodsUtils.set_gcc_preprocessor_definition_for_React_hermes(installer) @@ -288,11 +292,16 @@ def react_native_post_install( ReactNativePodsUtils.set_use_hermes_build_setting(installer, hermes_enabled) ReactNativePodsUtils.set_node_modules_user_settings(installer, react_native_path) ReactNativePodsUtils.set_ccache_compiler_and_linker_build_settings(installer, react_native_path, ccache_enabled) - ReactNativePodsUtils.apply_xcode_15_patch(installer) + ReactNativePodsUtils.apply_xcode_15_patch(installer) ReactNativePodsUtils.updateOSDeploymentTarget(installer) ReactNativePodsUtils.set_dynamic_frameworks_flags(installer) ReactNativePodsUtils.add_ndebug_flag_to_pods_in_release(installer) - ReactNativePodsUtils.add_privacy_manifest_if_needed(installer) + + if privacy_file_aggregation_enabled + PrivacyManifestUtils.add_aggregated_privacy_manifest(installer) + else + PrivacyManifestUtils.add_privacy_manifest_if_needed(installer) + end NewArchitectureHelper.set_clang_cxx_language_standard_if_needed(installer) NewArchitectureHelper.modify_flags_for_new_architecture(installer, NewArchitectureHelper.new_arch_enabled) From ec512a70cb1b4b330548b1e8d60a85aa16ec1b34 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Thu, 2 May 2024 10:20:35 +0100 Subject: [PATCH 167/223] [LOCAL] Bump podfile.lock and update privacy manifest --- packages/rn-tester/Podfile.lock | 500 +++++++++--------- .../rn-tester/RNTester/PrivacyInfo.xcprivacy | 37 ++ 2 files changed, 287 insertions(+), 250 deletions(-) create mode 100644 packages/rn-tester/RNTester/PrivacyInfo.xcprivacy diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 734e8bf833b4f9..8a1abd2fe72103 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,13 +1,13 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.0) + - FBLazyVector (0.74.1-rc.0) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.0): - - hermes-engine/Pre-built (= 0.74.0) - - hermes-engine/Pre-built (0.74.0) - - MyNativeView (0.74.81): + - hermes-engine (0.74.1-rc.0): + - hermes-engine/Pre-built (= 0.74.1-rc.0) + - hermes-engine/Pre-built (0.74.1-rc.0) + - MyNativeView (0.74.82): - DoubleConversion - glog - hermes-engine @@ -28,7 +28,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - NativeCxxModuleExample (0.74.81): + - NativeCxxModuleExample (0.74.82): - DoubleConversion - glog - hermes-engine @@ -66,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.0) - - RCTRequired (0.74.0) - - RCTTypeSafety (0.74.0): - - FBLazyVector (= 0.74.0) - - RCTRequired (= 0.74.0) - - React-Core (= 0.74.0) - - React (0.74.0): - - React-Core (= 0.74.0) - - React-Core/DevSupport (= 0.74.0) - - React-Core/RCTWebSocket (= 0.74.0) - - React-RCTActionSheet (= 0.74.0) - - React-RCTAnimation (= 0.74.0) - - React-RCTBlob (= 0.74.0) - - React-RCTImage (= 0.74.0) - - React-RCTLinking (= 0.74.0) - - React-RCTNetwork (= 0.74.0) - - React-RCTSettings (= 0.74.0) - - React-RCTText (= 0.74.0) - - React-RCTVibration (= 0.74.0) - - React-callinvoker (0.74.0) - - React-Codegen (0.74.0): + - RCTDeprecation (0.74.1-rc.0) + - RCTRequired (0.74.1-rc.0) + - RCTTypeSafety (0.74.1-rc.0): + - FBLazyVector (= 0.74.1-rc.0) + - RCTRequired (= 0.74.1-rc.0) + - React-Core (= 0.74.1-rc.0) + - React (0.74.1-rc.0): + - React-Core (= 0.74.1-rc.0) + - React-Core/DevSupport (= 0.74.1-rc.0) + - React-Core/RCTWebSocket (= 0.74.1-rc.0) + - React-RCTActionSheet (= 0.74.1-rc.0) + - React-RCTAnimation (= 0.74.1-rc.0) + - React-RCTBlob (= 0.74.1-rc.0) + - React-RCTImage (= 0.74.1-rc.0) + - React-RCTLinking (= 0.74.1-rc.0) + - React-RCTNetwork (= 0.74.1-rc.0) + - React-RCTSettings (= 0.74.1-rc.0) + - React-RCTText (= 0.74.1-rc.0) + - React-RCTVibration (= 0.74.1-rc.0) + - React-callinvoker (0.74.1-rc.0) + - React-Codegen (0.74.1-rc.0): - DoubleConversion - glog - hermes-engine @@ -106,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.0): + - React-Core (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0) + - React-Core/Default (= 0.74.1-rc.0) - React-cxxreact - React-featureflags - React-hermes @@ -123,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.0): + - React-Core/CoreModulesHeaders (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.0): + - React-Core/Default (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -156,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.0): + - React-Core/DevSupport (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0) - - React-Core/RCTWebSocket (= 0.74.0) + - React-Core/Default (= 0.74.1-rc.0) + - React-Core/RCTWebSocket (= 0.74.1-rc.0) - React-cxxreact - React-featureflags - React-hermes @@ -174,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.0): + - React-Core/RCTActionSheetHeaders (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -191,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.0): + - React-Core/RCTAnimationHeaders (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -208,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.0): + - React-Core/RCTBlobHeaders (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.0): + - React-Core/RCTImageHeaders (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -242,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.0): + - React-Core/RCTLinkingHeaders (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.0): + - React-Core/RCTNetworkHeaders (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -276,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.0): + - React-Core/RCTPushNotificationHeaders (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -293,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.0): + - React-Core/RCTSettingsHeaders (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -310,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.0): + - React-Core/RCTTextHeaders (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -327,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.0): + - React-Core/RCTVibrationHeaders (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -344,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.0): + - React-Core/RCTWebSocket (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.0) + - React-Core/Default (= 0.74.1-rc.0) - React-cxxreact - React-featureflags - React-hermes @@ -361,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.0): + - React-CoreModules (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.0) + - RCTTypeSafety (= 0.74.1-rc.0) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.0) - - React-jsi (= 0.74.0) + - React-Core/CoreModulesHeaders (= 0.74.1-rc.0) + - React-jsi (= 0.74.1-rc.0) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.0) + - React-RCTImage (= 0.74.1-rc.0) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.0): + - React-cxxreact (0.74.1-rc.0): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0) - - React-debug (= 0.74.0) - - React-jsi (= 0.74.0) + - React-callinvoker (= 0.74.1-rc.0) + - React-debug (= 0.74.1-rc.0) + - React-jsi (= 0.74.1-rc.0) - React-jsinspector - - React-logger (= 0.74.0) - - React-perflogger (= 0.74.0) - - React-runtimeexecutor (= 0.74.0) - - React-debug (0.74.0) - - React-Fabric (0.74.0): + - React-logger (= 0.74.1-rc.0) + - React-perflogger (= 0.74.1-rc.0) + - React-runtimeexecutor (= 0.74.1-rc.0) + - React-debug (0.74.1-rc.0) + - React-Fabric (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -401,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.0) - - React-Fabric/attributedstring (= 0.74.0) - - React-Fabric/componentregistry (= 0.74.0) - - React-Fabric/componentregistrynative (= 0.74.0) - - React-Fabric/components (= 0.74.0) - - React-Fabric/core (= 0.74.0) - - React-Fabric/imagemanager (= 0.74.0) - - React-Fabric/leakchecker (= 0.74.0) - - React-Fabric/mounting (= 0.74.0) - - React-Fabric/scheduler (= 0.74.0) - - React-Fabric/telemetry (= 0.74.0) - - React-Fabric/templateprocessor (= 0.74.0) - - React-Fabric/textlayoutmanager (= 0.74.0) - - React-Fabric/uimanager (= 0.74.0) + - React-Fabric/animations (= 0.74.1-rc.0) + - React-Fabric/attributedstring (= 0.74.1-rc.0) + - React-Fabric/componentregistry (= 0.74.1-rc.0) + - React-Fabric/componentregistrynative (= 0.74.1-rc.0) + - React-Fabric/components (= 0.74.1-rc.0) + - React-Fabric/core (= 0.74.1-rc.0) + - React-Fabric/imagemanager (= 0.74.1-rc.0) + - React-Fabric/leakchecker (= 0.74.1-rc.0) + - React-Fabric/mounting (= 0.74.1-rc.0) + - React-Fabric/scheduler (= 0.74.1-rc.0) + - React-Fabric/telemetry (= 0.74.1-rc.0) + - React-Fabric/templateprocessor (= 0.74.1-rc.0) + - React-Fabric/textlayoutmanager (= 0.74.1-rc.0) + - React-Fabric/uimanager (= 0.74.1-rc.0) - React-graphics - React-jsi - React-jsiexecutor @@ -423,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.0): + - React-Fabric/animations (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -442,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.0): + - React-Fabric/attributedstring (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -461,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.0): + - React-Fabric/componentregistry (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.0): + - React-Fabric/componentregistrynative (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.0): + - React-Fabric/components (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -510,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.0) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.0) - - React-Fabric/components/modal (= 0.74.0) - - React-Fabric/components/rncore (= 0.74.0) - - React-Fabric/components/root (= 0.74.0) - - React-Fabric/components/safeareaview (= 0.74.0) - - React-Fabric/components/scrollview (= 0.74.0) - - React-Fabric/components/text (= 0.74.0) - - React-Fabric/components/textinput (= 0.74.0) - - React-Fabric/components/unimplementedview (= 0.74.0) - - React-Fabric/components/view (= 0.74.0) + - React-Fabric/components/inputaccessory (= 0.74.1-rc.0) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.1-rc.0) + - React-Fabric/components/modal (= 0.74.1-rc.0) + - React-Fabric/components/rncore (= 0.74.1-rc.0) + - React-Fabric/components/root (= 0.74.1-rc.0) + - React-Fabric/components/safeareaview (= 0.74.1-rc.0) + - React-Fabric/components/scrollview (= 0.74.1-rc.0) + - React-Fabric/components/text (= 0.74.1-rc.0) + - React-Fabric/components/textinput (= 0.74.1-rc.0) + - React-Fabric/components/unimplementedview (= 0.74.1-rc.0) + - React-Fabric/components/view (= 0.74.1-rc.0) - React-graphics - React-jsi - React-jsiexecutor @@ -529,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.0): + - React-Fabric/components/inputaccessory (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -548,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.0): + - React-Fabric/components/legacyviewmanagerinterop (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -567,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.0): + - React-Fabric/components/modal (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -586,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.0): + - React-Fabric/components/rncore (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.0): + - React-Fabric/components/root (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.0): + - React-Fabric/components/safeareaview (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.0): + - React-Fabric/components/scrollview (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.0): + - React-Fabric/components/text (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.0): + - React-Fabric/components/textinput (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -700,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.0): + - React-Fabric/components/unimplementedview (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -719,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.0): + - React-Fabric/components/view (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -739,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.0): + - React-Fabric/core (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.0): + - React-Fabric/imagemanager (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -777,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.0): + - React-Fabric/leakchecker (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -796,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.0): + - React-Fabric/mounting (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -815,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.0): + - React-Fabric/scheduler (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -834,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.0): + - React-Fabric/telemetry (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.0): + - React-Fabric/templateprocessor (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -872,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.0): + - React-Fabric/textlayoutmanager (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -892,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.0): + - React-Fabric/uimanager (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog @@ -911,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.0): + - React-FabricImage (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.0) - - RCTTypeSafety (= 0.74.0) + - RCTRequired (= 0.74.1-rc.0) + - RCTTypeSafety (= 0.74.1-rc.0) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.0) + - React-jsiexecutor (= 0.74.1-rc.0) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.0) - - React-graphics (0.74.0): + - React-featureflags (0.74.1-rc.0) + - React-graphics (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.0) + - React-Core/Default (= 0.74.1-rc.0) - React-utils - - React-hermes (0.74.0): + - React-hermes (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0) + - React-cxxreact (= 0.74.1-rc.0) - React-jsi - - React-jsiexecutor (= 0.74.0) + - React-jsiexecutor (= 0.74.1-rc.0) - React-jsinspector - - React-perflogger (= 0.74.0) + - React-perflogger (= 0.74.1-rc.0) - React-runtimeexecutor - - React-ImageManager (0.74.0): + - React-ImageManager (0.74.1-rc.0): - glog - RCT-Folly/Fabric - React-Core/Default @@ -958,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.0): + - React-jserrorhandler (0.74.1-rc.0): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.0): + - React-jsi (0.74.1-rc.0): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.0): + - React-jsiexecutor (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.0) - - React-jsi (= 0.74.0) + - React-cxxreact (= 0.74.1-rc.0) + - React-jsi (= 0.74.1-rc.0) - React-jsinspector - - React-perflogger (= 0.74.0) - - React-jsinspector (0.74.0): + - React-perflogger (= 0.74.1-rc.0) + - React-jsinspector (0.74.1-rc.0): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.0) - - React-jsitracing (0.74.0): + - React-runtimeexecutor (= 0.74.1-rc.0) + - React-jsitracing (0.74.1-rc.0): - React-jsi - - React-logger (0.74.0): + - React-logger (0.74.1-rc.0): - glog - - React-Mapbuffer (0.74.0): + - React-Mapbuffer (0.74.1-rc.0): - glog - React-debug - - React-nativeconfig (0.74.0) - - React-NativeModulesApple (0.74.0): + - React-nativeconfig (0.74.1-rc.0) + - React-NativeModulesApple (0.74.1-rc.0): - glog - hermes-engine - React-callinvoker @@ -1007,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.0) - - React-RCTActionSheet (0.74.0): - - React-Core/RCTActionSheetHeaders (= 0.74.0) - - React-RCTAnimation (0.74.0): + - React-perflogger (0.74.1-rc.0) + - React-RCTActionSheet (0.74.1-rc.0): + - React-Core/RCTActionSheetHeaders (= 0.74.1-rc.0) + - React-RCTAnimation (0.74.1-rc.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1018,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.0): + - React-RCTAppDelegate (0.74.1-rc.0): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1042,7 +1042,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.0): + - React-RCTBlob (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1055,7 +1055,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.0): + - React-RCTFabric (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1075,7 +1075,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.0): + - React-RCTImage (0.74.1-rc.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1084,14 +1084,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.0): + - React-RCTLinking (0.74.1-rc.0): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.0) - - React-jsi (= 0.74.0) + - React-Core/RCTLinkingHeaders (= 0.74.1-rc.0) + - React-jsi (= 0.74.1-rc.0) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.0) - - React-RCTNetwork (0.74.0): + - ReactCommon/turbomodule/core (= 0.74.1-rc.0) + - React-RCTNetwork (0.74.1-rc.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1099,14 +1099,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.0): + - React-RCTPushNotification (0.74.1-rc.0): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.0): + - React-RCTSettings (0.74.1-rc.0): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1114,29 +1114,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.0): + - React-RCTTest (0.74.1-rc.0): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.0) - - React-CoreModules (= 0.74.0) - - React-jsi (= 0.74.0) - - ReactCommon/turbomodule/core (= 0.74.0) - - React-RCTText (0.74.0): - - React-Core/RCTTextHeaders (= 0.74.0) + - React-Core (= 0.74.1-rc.0) + - React-CoreModules (= 0.74.1-rc.0) + - React-jsi (= 0.74.1-rc.0) + - ReactCommon/turbomodule/core (= 0.74.1-rc.0) + - React-RCTText (0.74.1-rc.0): + - React-Core/RCTTextHeaders (= 0.74.1-rc.0) - Yoga - - React-RCTVibration (0.74.0): + - React-RCTVibration (0.74.1-rc.0): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.0): + - React-rendererdebug (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.0) - - React-RuntimeApple (0.74.0): + - React-rncore (0.74.1-rc.0) + - React-RuntimeApple (0.74.1-rc.0): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1154,7 +1154,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.0): + - React-RuntimeCore (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1167,9 +1167,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.0): - - React-jsi (= 0.74.0) - - React-RuntimeHermes (0.74.0): + - React-runtimeexecutor (0.74.1-rc.0): + - React-jsi (= 0.74.1-rc.0) + - React-RuntimeHermes (0.74.1-rc.0): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1180,7 +1180,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.0): + - React-runtimescheduler (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1192,15 +1192,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.0): + - React-utils (0.74.1-rc.0): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.0) - - ReactCommon (0.74.0): - - ReactCommon/turbomodule (= 0.74.0) - - ReactCommon-Samples (0.74.0): + - React-jsi (= 0.74.1-rc.0) + - ReactCommon (0.74.1-rc.0): + - ReactCommon/turbomodule (= 0.74.1-rc.0) + - ReactCommon-Samples (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1211,44 +1211,44 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.0): + - ReactCommon/turbomodule (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0) - - React-cxxreact (= 0.74.0) - - React-jsi (= 0.74.0) - - React-logger (= 0.74.0) - - React-perflogger (= 0.74.0) - - ReactCommon/turbomodule/bridging (= 0.74.0) - - ReactCommon/turbomodule/core (= 0.74.0) - - ReactCommon/turbomodule/bridging (0.74.0): + - React-callinvoker (= 0.74.1-rc.0) + - React-cxxreact (= 0.74.1-rc.0) + - React-jsi (= 0.74.1-rc.0) + - React-logger (= 0.74.1-rc.0) + - React-perflogger (= 0.74.1-rc.0) + - ReactCommon/turbomodule/bridging (= 0.74.1-rc.0) + - ReactCommon/turbomodule/core (= 0.74.1-rc.0) + - ReactCommon/turbomodule/bridging (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0) - - React-cxxreact (= 0.74.0) - - React-jsi (= 0.74.0) - - React-logger (= 0.74.0) - - React-perflogger (= 0.74.0) - - ReactCommon/turbomodule/core (0.74.0): + - React-callinvoker (= 0.74.1-rc.0) + - React-cxxreact (= 0.74.1-rc.0) + - React-jsi (= 0.74.1-rc.0) + - React-logger (= 0.74.1-rc.0) + - React-perflogger (= 0.74.1-rc.0) + - ReactCommon/turbomodule/core (0.74.1-rc.0): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.0) - - React-cxxreact (= 0.74.0) - - React-debug (= 0.74.0) - - React-jsi (= 0.74.0) - - React-logger (= 0.74.0) - - React-perflogger (= 0.74.0) - - React-utils (= 0.74.0) - - ScreenshotManager (0.74.81): + - React-callinvoker (= 0.74.1-rc.0) + - React-cxxreact (= 0.74.1-rc.0) + - React-debug (= 0.74.1-rc.0) + - React-jsi (= 0.74.1-rc.0) + - React-logger (= 0.74.1-rc.0) + - React-perflogger (= 0.74.1-rc.0) + - React-utils (= 0.74.1-rc.0) + - ScreenshotManager (0.74.82): - DoubleConversion - glog - hermes-engine @@ -1468,66 +1468,66 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 026c8f4ae67b06e088ae01baa2271ef8a26c0e8c + FBLazyVector: 1e1d791ce842b9012435e3cd0429078fa1f1c43b fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 6eae7edb2f563ee41d7c1f91f4f2e57c26d8a5c3 - MyNativeView: 5ba689702f7f1dd8f9d0298ca8096631cd151f8c - NativeCxxModuleExample: f26f744dc971bcf56ee4901948df123a6d853503 + hermes-engine: 00dd4470ffd262ad3c8dfcc848001bb61074fe74 + MyNativeView: f70a4a234c3245596c1970acfa74d49de7c7e1ec + NativeCxxModuleExample: d4fb31d62d91b2bc121a6ffcf11e0d14a8946cc6 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 - RCT-Folly: 045d6ecaa59d826c5736dfba0b2f4083ff8d79df - RCTDeprecation: 3ca8b6c36bfb302e1895b72cfe7db0de0c92cd47 - RCTRequired: 9fc183af555fd0c89a366c34c1ae70b7e03b1dc5 - RCTTypeSafety: db1dd5ad1081a5e160d30bb29ef922693d5ac4b1 - React: 8650d592d90b99097504b8dcfebab883972aed71 - React-callinvoker: 6bb8b399ab8cec59e52458c3a592aa1fca130b68 - React-Codegen: c8df8dc1a695960d4ae842e2d78feb52e8d5097b - React-Core: 119ddf031a18926c2f59849bedcc83c1ba347419 - React-CoreModules: 087c24b785afc79d29d23bffe7b02f79bb00cf76 - React-cxxreact: 67a110c97ed6a53b393be3c90fc3f0b482770bd1 - React-debug: 41175f3e30dfa8af6eab2631261e1eac26307f9f - React-Fabric: 235d71c7d7973fb5c3f099f2962d6b5362be6107 - React-FabricImage: 44f4ee8c9331688ab5e907a40cbd49010b05e687 - React-featureflags: 5e7e78c607661fe7f72bc38c6f03736e0876753a - React-graphics: 354adf8693bf849e696bf5096abc8cdc22c78ab4 - React-hermes: 17c369e15cfb535d7bc880d432e0e291c81d10d9 - React-ImageManager: 74e0898e24b12c45c40019b8558a1310d0b2a47c - React-jserrorhandler: 33cb327f5c6e1571b362f1a9c762ff839a5adb15 - React-jsi: 1e0be0c7526a8fdd3b9e8c086bddcddbad263cd5 - React-jsiexecutor: 04c1e790290e8cc3cd18e59c9cc5bdd18af325ef - React-jsinspector: 5daae7b6729d84bd61026899a6f664bdcff3ac28 - React-jsitracing: 36a2bbc272300313653d980de5ab700ec86c534a - React-logger: 03f2f7b955cfe24593a2b8c9705c23e142d1ad24 - React-Mapbuffer: 5e05d78fe6505f4a054b86f415733d4ad02dd314 - React-nativeconfig: 951ec32f632e81cbd7d40aebb3211313251c092e - React-NativeModulesApple: 0b3a42ca90069119ef79d8b2327d01441d71abd4 - React-perflogger: 271f1111779fef70f9502d1d38da5132e5585230 - React-RCTActionSheet: 5d6fb9adb11ab1bfbce6695a2b785767e4658c53 - React-RCTAnimation: 86ace32c56e69b3822e7e5184ea83a79d47fc7b9 - React-RCTAppDelegate: 1006ff406079a7d023cd5b624815e45ddc2a38d5 - React-RCTBlob: fb91c62a549f004e251235c65c665c6890a923a3 - React-RCTFabric: 593660526e2b6b59857acf9585de1247660e9b68 - React-RCTImage: b482f07cfdbe8e413edbf9d85953cecdb569472c - React-RCTLinking: fbd73a66cab34df69b2389c17f200e4722890fd9 - React-RCTNetwork: fbdd716fbd6e53feb6d8e00eeb85e8184ad42ac8 - React-RCTPushNotification: 63b70a73f576c783a74c98fd4ddd3e011bbbc026 - React-RCTSettings: 11c3051b965593988298a3f5fb39e23bf6f7df9f - React-RCTTest: bc5abb8c0c3b0a3cc215e57721f1fa6b7738a1db - React-RCTText: f240b4d39c36c295204d29e7634a2fac450b6d29 - React-RCTVibration: 1750f80b39e1ad9b4f509f4fdf19a803f7ab0d38 - React-rendererdebug: a89ffa25c7670de8f22e0b322dfdd8333bc0d126 - React-rncore: a3ab9e7271a5c692918e2a483beb900ff0a51169 - React-RuntimeApple: cdc563e811785f675925032d3bc4092a2aaa0b82 - React-RuntimeCore: f4af3a86a6a69d31721067f17196a582da25d2fc - React-runtimeexecutor: 4471221991b6e518466a0422fbeb2158c07c36e1 - React-RuntimeHermes: 3d9f53ac3330bb71d42f2acb9a3061a0b992be5c - React-runtimescheduler: 7fe561d179b97cecd0c2bec0bbd08f9fd8581c26 - React-utils: f013537c3371270d2095bff1d594d00d4bc9261b - ReactCommon: 2cde697fd80bd31da1d6448d25a5803088585219 - ReactCommon-Samples: 42ebf205296931f800b9affcf9851c3397e8ba06 - ScreenshotManager: 48ef69c5b70f9d1eecfee64cc40959fd4e251c96 + RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47 + RCTDeprecation: e69ff938a56f950f500eaf12cd4e2d335e4a0a53 + RCTRequired: 2c520d0858ed22c806821898ee3e7a4d59acf149 + RCTTypeSafety: a34a1f7e4cd7e295e3f971e247fb0bc0eea65080 + React: a7c9c6c2db6f18f227a56a6a3fb3cbad34c41cdc + React-callinvoker: c451c45fd622249adc5190628294f8361e97384c + React-Codegen: 4f359cca5e1257deaa66c3c2f6a18b58782ed9c6 + React-Core: 7ceaa879856708a24224107683d973d465adac48 + React-CoreModules: 5efe6cee5c719e120a48724e163fcbe6db79c4e0 + React-cxxreact: 22eb8cf584ce71da8f9f285bb4dabb9ee04c812f + React-debug: 53a9da27099450efe34bf6f70c46ec017fc4f9d5 + React-Fabric: 740eae8f28dc7c9bfa9f15208fafd3612c54349f + React-FabricImage: 3f68c768dbb8924600b101dd40c5f8526a2a179b + React-featureflags: 2fb348ceb6abbc4c8404a52be9fa3055698fa7fc + React-graphics: 4f5c9ec608255ad52f25ddcaeab6e2d988e58d80 + React-hermes: 0ef9161a9b3a8584fd2ce9073ee83d4b0d92fa55 + React-ImageManager: da15932ff68456004a2224a3f914803a3bce2cd1 + React-jserrorhandler: e72c7713a27102a8e6aaf9d9ae0975bb250967d3 + React-jsi: cceb083f53082dca4da61fa0c53472fbc88433e9 + React-jsiexecutor: c99b26ef3c91a91c49b7a3428d53a3496793e99c + React-jsinspector: 2c85d7df28fe4b7e620c01567698fa12ef7909d3 + React-jsitracing: 903a4a58130deabd27a4d9af436e91dcd079d5a3 + React-logger: a02c1bc3b6befe1e09a014fb9edbd6cc79929ca6 + React-Mapbuffer: d3aaeb7e63d8454c4bb74e596de2bd1f827055b8 + React-nativeconfig: b908fa3e3a3b326bc4c32f2455b3cbc0e544ef43 + React-NativeModulesApple: 807cb41a594252a829697a0f7161022116c86c1f + React-perflogger: 27ab9a9ade8a0a338739891c41b3ca8ea6302073 + React-RCTActionSheet: e582dec312e9afe801dbd9095fdf7c4add8fe5e3 + React-RCTAnimation: 4aa781670b10d10303b09130e5c8fba1f2484695 + React-RCTAppDelegate: 1750be18c3b0251ed451700b8672840b0584825f + React-RCTBlob: 82cd36a4483bebffbe4d2496eb98eb0cff4a2ea1 + React-RCTFabric: 51c351cb7611f719f97ae81a9ae4761acdc33be7 + React-RCTImage: dcf1c39707690d1d8f1451449edd449e4e80790f + React-RCTLinking: 1eb7a1f624591bd744a3b9f07ba58c3e91e8c30d + React-RCTNetwork: 0588799141ed37e07534aa96b13507057f71ac19 + React-RCTPushNotification: ba423ffddcba61312d13cd320e44e5570db2ac59 + React-RCTSettings: 77b74076a18720fda6daa4093c3225d12d764d36 + React-RCTTest: 2feee5d8ae7997c5959a8204291d8385ad536f4c + React-RCTText: 027987cd59088f9031c26ac90c48af9ee70c4f2c + React-RCTVibration: 3ccc8f91116b80d30c0c3c5b29ddad413162090c + React-rendererdebug: 60bdc059dd5faa4162394ecef3c9ac19f79fc020 + React-rncore: be00190384125cb822dd10b20f2c51126247ad00 + React-RuntimeApple: 44dfb10c9ff79e1acfa69601eddb3e7612acddcd + React-RuntimeCore: 453e2bc299d7ec409709244634b57bc2b1adf72f + React-runtimeexecutor: 0eb92c4d0b3dd54532ce84044a2194cfad586fd3 + React-RuntimeHermes: a9c810f936f19d81f9de500767cadcf96819cad9 + React-runtimescheduler: f58e915301a2d97813c23d5a26af460ff3b85bdd + React-utils: 42af5ec8a248e1c0cb25eb4e72b1ba14eb626c88 + ReactCommon: ac184a38075d3db361aac3c2f58f393a6b67c3f9 + ReactCommon-Samples: 03d38b01ef4ec6e0b63d451f34a302462ef467e7 + ScreenshotManager: ab4e6ed2f217eaa93c8af6dd565275a7685d1ae7 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: 56f906bf6c11c931588191dde1229fd3e4e3d557 + Yoga: 5f2aa30ad547531b9ec2f0e5947817bdd0d36d2f PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf diff --git a/packages/rn-tester/RNTester/PrivacyInfo.xcprivacy b/packages/rn-tester/RNTester/PrivacyInfo.xcprivacy new file mode 100644 index 00000000000000..41b8317f0652b9 --- /dev/null +++ b/packages/rn-tester/RNTester/PrivacyInfo.xcprivacy @@ -0,0 +1,37 @@ + + + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyCollectedDataTypes + + NSPrivacyTracking + + + From a0ed073650cbdc3e1e08c11d18acf73e0952393a Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Thu, 2 May 2024 10:59:41 +0100 Subject: [PATCH 168/223] [LOCAL] Fix compilation error on ReactDelegate --- .../src/main/java/com/facebook/react/ReactDelegate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index 9ce067b9fc56dc..5eb70f792928e0 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -247,7 +247,7 @@ public void reload() { } // Reload in RELEASE mode - if (devSupportManager instanceof ReleaseDevSupportManager) { + if (devSupportManager instanceof DisabledDevSupportManager) { // Do not reload the bundle from JS as there is no bundler running in release mode. if (ReactFeatureFlags.enableBridgelessArchitecture) { if (mReactHost != null) { From 093a2adc07fe5d2879b1a5bca12940b4763a6b6c Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Thu, 2 May 2024 19:07:45 +0100 Subject: [PATCH 169/223] [LOCAL] Fix privacy manifest aggregator --- .../scripts/cocoapods/privacy_manifest_utils.rb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb b/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb index 322da24f0e9a87..760082954ae532 100644 --- a/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb +++ b/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb @@ -7,7 +7,7 @@ module PrivacyManifestUtils def self.add_aggregated_privacy_manifest(installer) user_project = get_user_project_from(installer) targets = get_application_targets(user_project) - file_path = get_privacyinfo_file_path(user_project) + file_path = get_privacyinfo_file_path(user_project, targets) privacy_info = read_privacyinfo_file(file_path) || { "NSPrivacyCollectedDataTypes" => [], @@ -70,13 +70,21 @@ def self.ensure_reference(file_path, user_project, target) reference_exists = target.resources_build_phase.files_references.any? { |file_ref| file_ref.path.end_with? "PrivacyInfo.xcprivacy" } unless reference_exists # We try to find the main group, but if it doesn't exist, we default to adding the file to the project root – both work - file_root = user_project.root_object.main_group.children.first { |group| group.name == target.name } || user_project + file_root = user_project.root_object.main_group.children.find { |group| + group.class == Xcodeproj::Project::Object::PBXGroup && (group.name == target.name || group.path == target.name) + } || user_project file_ref = file_root.new_file(file_path) build_file = target.resources_build_phase.add_file_reference(file_ref, true) end end - def self.get_privacyinfo_file_path(user_project) + def self.get_privacyinfo_file_path(user_project, targets) + file_refs = targets.flat_map { |target| target.resources_build_phase.files_references } + existing_file = file_refs.find { |file_ref| file_ref.path.end_with? "PrivacyInfo.xcprivacy" } + if existing_file + return existing_file.real_path + end + # We try to find a file we know exists in the project to get the path to the main group directory info_plist_path = user_project.files.find { |file_ref| file_ref.name == "Info.plist" } if info_plist_path.nil? From 31f9d45074f069151c155836335e0edff87f70bd Mon Sep 17 00:00:00 2001 From: Distiller Date: Thu, 2 May 2024 18:17:04 +0000 Subject: [PATCH 170/223] Release 0.74.1 #publish-packages-to-npm&latest --- package.json | 4 ++-- packages/assets/package.json | 2 +- packages/babel-plugin-codegen/package.json | 4 ++-- packages/community-cli-plugin/package.json | 6 +++--- packages/debugger-frontend/package.json | 2 +- packages/dev-middleware/package.json | 4 ++-- packages/eslint-config-react-native/package.json | 4 ++-- packages/eslint-plugin-react-native/package.json | 2 +- packages/eslint-plugin-specs/package.json | 4 ++-- packages/hermes-inspector-msggen/package.json | 2 +- packages/metro-config/package.json | 6 +++--- packages/normalize-color/package.json | 2 +- packages/polyfills/package.json | 2 +- packages/react-native-babel-preset/package.json | 4 ++-- .../react-native-babel-transformer/package.json | 4 ++-- packages/react-native-bots/package.json | 2 +- .../package.json | 4 ++-- packages/react-native-codegen/package.json | 2 +- packages/react-native-gradle-plugin/package.json | 2 +- .../react-native-popup-menu-android/package.json | 4 ++-- packages/react-native-test-renderer/package.json | 2 +- .../Libraries/Core/ReactNativeVersion.js | 2 +- packages/react-native/React/Base/RCTVersion.m | 2 +- .../react-native/ReactAndroid/gradle.properties | 2 +- .../modules/systeminfo/ReactNativeVersion.java | 2 +- .../ReactCommon/cxxreact/ReactNativeVersion.h | 2 +- packages/react-native/package.json | 16 ++++++++-------- packages/react-native/template/package.json | 10 +++++----- packages/rn-tester-e2e/package.json | 2 +- packages/rn-tester/package.json | 4 ++-- packages/typescript-config/package.json | 2 +- packages/virtualized-lists/package.json | 2 +- 32 files changed, 57 insertions(+), 57 deletions(-) diff --git a/package.json b/package.json index 969dc8dc7a50d1..ac636ec82e7843 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,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.74.82", - "@react-native/metro-config": "0.74.82", + "@react-native/metro-babel-transformer": "0.74.83", + "@react-native/metro-config": "0.74.83", "@tsconfig/node18": "1.0.1", "@types/react": "^18.2.6", "@typescript-eslint/parser": "^6.7.4", diff --git a/packages/assets/package.json b/packages/assets/package.json index 8b9d9651df087d..6f90b34940d191 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/assets-registry", - "version": "0.74.82", + "version": "0.74.83", "description": "Asset support code for React Native.", "license": "MIT", "repository": { diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index 65409323a582ce..867a299fbb0231 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-plugin-codegen", - "version": "0.74.82", + "version": "0.74.83", "description": "Babel plugin to generate native module and view manager code for React Native.", "license": "MIT", "repository": { @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@react-native/codegen": "0.74.82" + "@react-native/codegen": "0.74.83" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 694f5f5165e67b..ea5e45dbcc9dfb 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.82", + "version": "0.74.83", "description": "Core CLI commands for React Native", "keywords": [ "react-native", @@ -24,8 +24,8 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.6", "@react-native-community/cli-tools": "13.6.6", - "@react-native/dev-middleware": "0.74.82", - "@react-native/metro-babel-transformer": "0.74.82", + "@react-native/dev-middleware": "0.74.83", + "@react-native/metro-babel-transformer": "0.74.83", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", diff --git a/packages/debugger-frontend/package.json b/packages/debugger-frontend/package.json index 1ea6069fdb4f7e..ed28e469f3ec60 100644 --- a/packages/debugger-frontend/package.json +++ b/packages/debugger-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/debugger-frontend", - "version": "0.74.82", + "version": "0.74.83", "description": "Debugger frontend for React Native based on Chrome DevTools", "keywords": [ "react-native", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index 1856b0b6f97cf2..f0cb48e124806a 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.82", + "version": "0.74.83", "description": "Dev server middleware for React Native", "keywords": [ "react-native", @@ -23,7 +23,7 @@ ], "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.82", + "@react-native/debugger-frontend": "0.74.83", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index 5f834fa932f4c8..d99d257ef7e6e3 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-config", - "version": "0.74.82", + "version": "0.74.83", "description": "ESLint config for React Native", "license": "MIT", "repository": { @@ -22,7 +22,7 @@ "dependencies": { "@babel/core": "^7.20.0", "@babel/eslint-parser": "^7.20.0", - "@react-native/eslint-plugin": "0.74.82", + "@react-native/eslint-plugin": "0.74.83", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", "eslint-config-prettier": "^8.5.0", diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index 04a03295300698..4692f413aebab7 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin", - "version": "0.74.82", + "version": "0.74.83", "description": "ESLint rules for @react-native/eslint-config", "license": "MIT", "repository": { diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index fbe7957b0d2f48..c6d4e0b86d7f29 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin-specs", - "version": "0.74.82", + "version": "0.74.83", "description": "ESLint rules to validate NativeModule and Component Specs", "license": "MIT", "repository": { @@ -31,7 +31,7 @@ "@babel/eslint-parser": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/preset-flow": "^7.20.0", - "@react-native/codegen": "0.74.82", + "@react-native/codegen": "0.74.83", "make-dir": "^2.1.0", "pirates": "^4.0.1", "source-map-support": "0.5.0" diff --git a/packages/hermes-inspector-msggen/package.json b/packages/hermes-inspector-msggen/package.json index 7087c7b51ce15c..3500d0a8a1de88 100644 --- a/packages/hermes-inspector-msggen/package.json +++ b/packages/hermes-inspector-msggen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/hermes-inspector-msggen", - "version": "0.74.82", + "version": "0.74.83", "private": true, "description": "Hermes Inspector Message Generator for React Native", "license": "MIT", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index c6e808aa63daf4..6d6881c1bddb3c 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-config", - "version": "0.74.82", + "version": "0.74.83", "description": "Metro configuration for React Native.", "license": "MIT", "repository": { @@ -26,8 +26,8 @@ "dist" ], "dependencies": { - "@react-native/js-polyfills": "0.74.82", - "@react-native/metro-babel-transformer": "0.74.82", + "@react-native/js-polyfills": "0.74.83", + "@react-native/metro-babel-transformer": "0.74.83", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" } diff --git a/packages/normalize-color/package.json b/packages/normalize-color/package.json index b2b4cc2a2a6258..9cf2b5982125ca 100644 --- a/packages/normalize-color/package.json +++ b/packages/normalize-color/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/normalize-colors", - "version": "0.74.82", + "version": "0.74.83", "description": "Color normalization for React Native.", "license": "MIT", "repository": { diff --git a/packages/polyfills/package.json b/packages/polyfills/package.json index aea7096540f8ff..73f5b4c7f076ec 100644 --- a/packages/polyfills/package.json +++ b/packages/polyfills/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/js-polyfills", - "version": "0.74.82", + "version": "0.74.83", "description": "Polyfills for React Native.", "license": "MIT", "repository": { diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index 01572afd82e700..23dc9240b21560 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-preset", - "version": "0.74.82", + "version": "0.74.83", "description": "Babel preset for React Native applications", "main": "src/index.js", "repository": { @@ -54,7 +54,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.82", + "@react-native/babel-plugin-codegen": "0.74.83", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index a8520381bb6069..fe7412aa7a0f5f 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-babel-transformer", - "version": "0.74.82", + "version": "0.74.83", "description": "Babel transformer for React Native applications.", "main": "src/index.js", "repository": { @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.82", + "@react-native/babel-preset": "0.74.83", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, diff --git a/packages/react-native-bots/package.json b/packages/react-native-bots/package.json index a0996e83d27883..36e8659a6ac6ea 100644 --- a/packages/react-native-bots/package.json +++ b/packages/react-native-bots/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/bots", "description": "React Native Bots", - "version": "0.74.82", + "version": "0.74.83", "private": true, "license": "MIT", "repository": { diff --git a/packages/react-native-codegen-typescript-test/package.json b/packages/react-native-codegen-typescript-test/package.json index 3830d7086f8811..03940dc6309396 100644 --- a/packages/react-native-codegen-typescript-test/package.json +++ b/packages/react-native-codegen-typescript-test/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen-typescript-test", - "version": "0.74.82", + "version": "0.74.83", "private": true, "description": "TypeScript related unit test for @react-native/codegen", "license": "MIT", @@ -19,7 +19,7 @@ "prepare": "yarn run build" }, "dependencies": { - "@react-native/codegen": "0.74.82" + "@react-native/codegen": "0.74.83" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index f8073016b84cda..50864999c071aa 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen", - "version": "0.74.82", + "version": "0.74.83", "description": "Code generation tools for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-gradle-plugin/package.json b/packages/react-native-gradle-plugin/package.json index f0f806e95033de..4c098fdfe6c23b 100644 --- a/packages/react-native-gradle-plugin/package.json +++ b/packages/react-native-gradle-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/gradle-plugin", - "version": "0.74.82", + "version": "0.74.83", "description": "Gradle Plugin for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json index ffa7a988220dda..2ab2c9f58336e0 100644 --- a/packages/react-native-popup-menu-android/package.json +++ b/packages/react-native-popup-menu-android/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/popup-menu-android", - "version": "0.74.82", + "version": "0.74.83", "description": "PopupMenu for the Android platform", "main": "index.js", "files": [ @@ -17,7 +17,7 @@ ], "license": "MIT", "devDependencies": { - "@react-native/codegen": "0.74.82" + "@react-native/codegen": "0.74.83" }, "peerDependencies": { "@types/react": "^18.2.6", diff --git a/packages/react-native-test-renderer/package.json b/packages/react-native-test-renderer/package.json index 6beda8e78ca126..979a4319cb01af 100644 --- a/packages/react-native-test-renderer/package.json +++ b/packages/react-native-test-renderer/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/test-renderer", "private": true, - "version": "0.74.82", + "version": "0.74.83", "description": "A Test rendering library for React Native", "license": "MIT", "devDependencies": { diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index 1b54c7ab26c346..89778df289530c 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -17,7 +17,7 @@ const version: $ReadOnly<{ major: 0, minor: 74, patch: 1, - prerelease: 'rc.0', + prerelease: null, }; module.exports = {version}; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index 9cee2c7ccebe17..e8abdcdd19f480 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -24,7 +24,7 @@ RCTVersionMajor: @(0), RCTVersionMinor: @(74), RCTVersionPatch: @(1), - RCTVersionPrerelease: @"rc.0", + RCTVersionPrerelease: [NSNull null], }; }); return __rnVersion; diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index f97d6af9f8e25b..1beee95e10c069 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.1-rc.0 +VERSION_NAME=0.74.1 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index d62a43387c6222..2100da0f4bab88 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -18,5 +18,5 @@ public class ReactNativeVersion { "major", 0, "minor", 74, "patch", 1, - "prerelease", "rc.0"); + "prerelease", null); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index 07a10e506c65c5..69ae15eaad85af 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -18,7 +18,7 @@ constexpr struct { int32_t Major = 0; int32_t Minor = 74; int32_t Patch = 1; - std::string_view Prerelease = "rc.0"; + std::string_view Prerelease = ""; } ReactNativeVersion; } // namespace facebook::react diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 38189b46726a70..80daf766cbbac1 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.1-rc.0", + "version": "0.74.1", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -110,13 +110,13 @@ "@react-native-community/cli": "13.6.6", "@react-native-community/cli-platform-android": "13.6.6", "@react-native-community/cli-platform-ios": "13.6.6", - "@react-native/assets-registry": "0.74.82", - "@react-native/codegen": "0.74.82", - "@react-native/community-cli-plugin": "0.74.82", - "@react-native/gradle-plugin": "0.74.82", - "@react-native/js-polyfills": "0.74.82", - "@react-native/normalize-colors": "0.74.82", - "@react-native/virtualized-lists": "0.74.82", + "@react-native/assets-registry": "0.74.83", + "@react-native/codegen": "0.74.83", + "@react-native/community-cli-plugin": "0.74.83", + "@react-native/gradle-plugin": "0.74.83", + "@react-native/js-polyfills": "0.74.83", + "@react-native/normalize-colors": "0.74.83", + "@react-native/virtualized-lists": "0.74.83", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 8b3bb2cabda79a..9c705241a2fc93 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,16 +11,16 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.1-rc.0" + "react-native": "0.74.1" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.82", - "@react-native/eslint-config": "0.74.82", - "@react-native/metro-config": "0.74.82", - "@react-native/typescript-config": "0.74.82", + "@react-native/babel-preset": "0.74.83", + "@react-native/eslint-config": "0.74.83", + "@react-native/metro-config": "0.74.83", + "@react-native/typescript-config": "0.74.83", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", diff --git a/packages/rn-tester-e2e/package.json b/packages/rn-tester-e2e/package.json index 744d3cae15d6b9..785d2be365d3b8 100644 --- a/packages/rn-tester-e2e/package.json +++ b/packages/rn-tester-e2e/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/tester-e2e", "private": true, - "version": "0.74.82", + "version": "0.74.83", "license": "MIT", "description": "React Native E2E tester app.", "homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/rn-tester-e2e", diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index e8603504e5d2c4..2704684785931c 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/tester", - "version": "0.74.82", + "version": "0.74.83", "private": true, "description": "React Native tester app.", "license": "MIT", @@ -26,7 +26,7 @@ "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "@react-native/popup-menu-android": "0.74.82" + "@react-native/popup-menu-android": "0.74.83" }, "peerDependencies": { "react": "18.2.0", diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 80e8f4d4c6a853..3f8865432adbe2 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/typescript-config", - "version": "0.74.82", + "version": "0.74.83", "description": "Default TypeScript configuration for React Native apps", "license": "MIT", "repository": { diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index 166bd4d03ec3af..6e88c846c27aa4 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/virtualized-lists", - "version": "0.74.82", + "version": "0.74.83", "description": "Virtualized lists for React Native.", "license": "MIT", "repository": { From 2636eb19d1cf8ded82dd77d19d72689ccbe45fdd Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 3 May 2024 17:31:23 +0100 Subject: [PATCH 171/223] Update Podfile.lock Changelog: [Internal] --- packages/rn-tester/Podfile.lock | 498 ++++++++++++++++---------------- 1 file changed, 249 insertions(+), 249 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 8a1abd2fe72103..9d88daef88e538 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,13 +1,13 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.1-rc.0) + - FBLazyVector (0.74.1) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.1-rc.0): - - hermes-engine/Pre-built (= 0.74.1-rc.0) - - hermes-engine/Pre-built (0.74.1-rc.0) - - MyNativeView (0.74.82): + - hermes-engine (0.74.1): + - hermes-engine/Pre-built (= 0.74.1) + - hermes-engine/Pre-built (0.74.1) + - MyNativeView (0.74.83): - DoubleConversion - glog - hermes-engine @@ -28,7 +28,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - NativeCxxModuleExample (0.74.82): + - NativeCxxModuleExample (0.74.83): - DoubleConversion - glog - hermes-engine @@ -66,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.1-rc.0) - - RCTRequired (0.74.1-rc.0) - - RCTTypeSafety (0.74.1-rc.0): - - FBLazyVector (= 0.74.1-rc.0) - - RCTRequired (= 0.74.1-rc.0) - - React-Core (= 0.74.1-rc.0) - - React (0.74.1-rc.0): - - React-Core (= 0.74.1-rc.0) - - React-Core/DevSupport (= 0.74.1-rc.0) - - React-Core/RCTWebSocket (= 0.74.1-rc.0) - - React-RCTActionSheet (= 0.74.1-rc.0) - - React-RCTAnimation (= 0.74.1-rc.0) - - React-RCTBlob (= 0.74.1-rc.0) - - React-RCTImage (= 0.74.1-rc.0) - - React-RCTLinking (= 0.74.1-rc.0) - - React-RCTNetwork (= 0.74.1-rc.0) - - React-RCTSettings (= 0.74.1-rc.0) - - React-RCTText (= 0.74.1-rc.0) - - React-RCTVibration (= 0.74.1-rc.0) - - React-callinvoker (0.74.1-rc.0) - - React-Codegen (0.74.1-rc.0): + - RCTDeprecation (0.74.1) + - RCTRequired (0.74.1) + - RCTTypeSafety (0.74.1): + - FBLazyVector (= 0.74.1) + - RCTRequired (= 0.74.1) + - React-Core (= 0.74.1) + - React (0.74.1): + - React-Core (= 0.74.1) + - React-Core/DevSupport (= 0.74.1) + - React-Core/RCTWebSocket (= 0.74.1) + - React-RCTActionSheet (= 0.74.1) + - React-RCTAnimation (= 0.74.1) + - React-RCTBlob (= 0.74.1) + - React-RCTImage (= 0.74.1) + - React-RCTLinking (= 0.74.1) + - React-RCTNetwork (= 0.74.1) + - React-RCTSettings (= 0.74.1) + - React-RCTText (= 0.74.1) + - React-RCTVibration (= 0.74.1) + - React-callinvoker (0.74.1) + - React-Codegen (0.74.1): - DoubleConversion - glog - hermes-engine @@ -106,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.1-rc.0): + - React-Core (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.1-rc.0) + - React-Core/Default (= 0.74.1) - React-cxxreact - React-featureflags - React-hermes @@ -123,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.1-rc.0): + - React-Core/CoreModulesHeaders (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.1-rc.0): + - React-Core/Default (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -156,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.1-rc.0): + - React-Core/DevSupport (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.1-rc.0) - - React-Core/RCTWebSocket (= 0.74.1-rc.0) + - React-Core/Default (= 0.74.1) + - React-Core/RCTWebSocket (= 0.74.1) - React-cxxreact - React-featureflags - React-hermes @@ -174,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.1-rc.0): + - React-Core/RCTActionSheetHeaders (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -191,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.1-rc.0): + - React-Core/RCTAnimationHeaders (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -208,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.1-rc.0): + - React-Core/RCTBlobHeaders (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.1-rc.0): + - React-Core/RCTImageHeaders (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -242,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.1-rc.0): + - React-Core/RCTLinkingHeaders (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.1-rc.0): + - React-Core/RCTNetworkHeaders (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -276,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.1-rc.0): + - React-Core/RCTPushNotificationHeaders (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -293,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.1-rc.0): + - React-Core/RCTSettingsHeaders (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -310,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.1-rc.0): + - React-Core/RCTTextHeaders (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -327,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.1-rc.0): + - React-Core/RCTVibrationHeaders (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -344,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.1-rc.0): + - React-Core/RCTWebSocket (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.1-rc.0) + - React-Core/Default (= 0.74.1) - React-cxxreact - React-featureflags - React-hermes @@ -361,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.1-rc.0): + - React-CoreModules (0.74.1): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.1-rc.0) + - RCTTypeSafety (= 0.74.1) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.1-rc.0) - - React-jsi (= 0.74.1-rc.0) + - React-Core/CoreModulesHeaders (= 0.74.1) + - React-jsi (= 0.74.1) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.1-rc.0) + - React-RCTImage (= 0.74.1) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.1-rc.0): + - React-cxxreact (0.74.1): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1-rc.0) - - React-debug (= 0.74.1-rc.0) - - React-jsi (= 0.74.1-rc.0) + - React-callinvoker (= 0.74.1) + - React-debug (= 0.74.1) + - React-jsi (= 0.74.1) - React-jsinspector - - React-logger (= 0.74.1-rc.0) - - React-perflogger (= 0.74.1-rc.0) - - React-runtimeexecutor (= 0.74.1-rc.0) - - React-debug (0.74.1-rc.0) - - React-Fabric (0.74.1-rc.0): + - React-logger (= 0.74.1) + - React-perflogger (= 0.74.1) + - React-runtimeexecutor (= 0.74.1) + - React-debug (0.74.1) + - React-Fabric (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -401,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.1-rc.0) - - React-Fabric/attributedstring (= 0.74.1-rc.0) - - React-Fabric/componentregistry (= 0.74.1-rc.0) - - React-Fabric/componentregistrynative (= 0.74.1-rc.0) - - React-Fabric/components (= 0.74.1-rc.0) - - React-Fabric/core (= 0.74.1-rc.0) - - React-Fabric/imagemanager (= 0.74.1-rc.0) - - React-Fabric/leakchecker (= 0.74.1-rc.0) - - React-Fabric/mounting (= 0.74.1-rc.0) - - React-Fabric/scheduler (= 0.74.1-rc.0) - - React-Fabric/telemetry (= 0.74.1-rc.0) - - React-Fabric/templateprocessor (= 0.74.1-rc.0) - - React-Fabric/textlayoutmanager (= 0.74.1-rc.0) - - React-Fabric/uimanager (= 0.74.1-rc.0) + - React-Fabric/animations (= 0.74.1) + - React-Fabric/attributedstring (= 0.74.1) + - React-Fabric/componentregistry (= 0.74.1) + - React-Fabric/componentregistrynative (= 0.74.1) + - React-Fabric/components (= 0.74.1) + - React-Fabric/core (= 0.74.1) + - React-Fabric/imagemanager (= 0.74.1) + - React-Fabric/leakchecker (= 0.74.1) + - React-Fabric/mounting (= 0.74.1) + - React-Fabric/scheduler (= 0.74.1) + - React-Fabric/telemetry (= 0.74.1) + - React-Fabric/templateprocessor (= 0.74.1) + - React-Fabric/textlayoutmanager (= 0.74.1) + - React-Fabric/uimanager (= 0.74.1) - React-graphics - React-jsi - React-jsiexecutor @@ -423,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.1-rc.0): + - React-Fabric/animations (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -442,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.1-rc.0): + - React-Fabric/attributedstring (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -461,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.1-rc.0): + - React-Fabric/componentregistry (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.1-rc.0): + - React-Fabric/componentregistrynative (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.1-rc.0): + - React-Fabric/components (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -510,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.1-rc.0) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.1-rc.0) - - React-Fabric/components/modal (= 0.74.1-rc.0) - - React-Fabric/components/rncore (= 0.74.1-rc.0) - - React-Fabric/components/root (= 0.74.1-rc.0) - - React-Fabric/components/safeareaview (= 0.74.1-rc.0) - - React-Fabric/components/scrollview (= 0.74.1-rc.0) - - React-Fabric/components/text (= 0.74.1-rc.0) - - React-Fabric/components/textinput (= 0.74.1-rc.0) - - React-Fabric/components/unimplementedview (= 0.74.1-rc.0) - - React-Fabric/components/view (= 0.74.1-rc.0) + - React-Fabric/components/inputaccessory (= 0.74.1) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.1) + - React-Fabric/components/modal (= 0.74.1) + - React-Fabric/components/rncore (= 0.74.1) + - React-Fabric/components/root (= 0.74.1) + - React-Fabric/components/safeareaview (= 0.74.1) + - React-Fabric/components/scrollview (= 0.74.1) + - React-Fabric/components/text (= 0.74.1) + - React-Fabric/components/textinput (= 0.74.1) + - React-Fabric/components/unimplementedview (= 0.74.1) + - React-Fabric/components/view (= 0.74.1) - React-graphics - React-jsi - React-jsiexecutor @@ -529,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.1-rc.0): + - React-Fabric/components/inputaccessory (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -548,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.1-rc.0): + - React-Fabric/components/legacyviewmanagerinterop (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -567,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.1-rc.0): + - React-Fabric/components/modal (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -586,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.1-rc.0): + - React-Fabric/components/rncore (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.1-rc.0): + - React-Fabric/components/root (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.1-rc.0): + - React-Fabric/components/safeareaview (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.1-rc.0): + - React-Fabric/components/scrollview (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.1-rc.0): + - React-Fabric/components/text (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.1-rc.0): + - React-Fabric/components/textinput (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -700,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.1-rc.0): + - React-Fabric/components/unimplementedview (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -719,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.1-rc.0): + - React-Fabric/components/view (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -739,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.1-rc.0): + - React-Fabric/core (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.1-rc.0): + - React-Fabric/imagemanager (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -777,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.1-rc.0): + - React-Fabric/leakchecker (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -796,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.1-rc.0): + - React-Fabric/mounting (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -815,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.1-rc.0): + - React-Fabric/scheduler (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -834,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.1-rc.0): + - React-Fabric/telemetry (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.1-rc.0): + - React-Fabric/templateprocessor (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -872,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.1-rc.0): + - React-Fabric/textlayoutmanager (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -892,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.1-rc.0): + - React-Fabric/uimanager (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog @@ -911,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.1-rc.0): + - React-FabricImage (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.1-rc.0) - - RCTTypeSafety (= 0.74.1-rc.0) + - RCTRequired (= 0.74.1) + - RCTTypeSafety (= 0.74.1) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.1-rc.0) + - React-jsiexecutor (= 0.74.1) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.1-rc.0) - - React-graphics (0.74.1-rc.0): + - React-featureflags (0.74.1) + - React-graphics (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.1-rc.0) + - React-Core/Default (= 0.74.1) - React-utils - - React-hermes (0.74.1-rc.0): + - React-hermes (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.1-rc.0) + - React-cxxreact (= 0.74.1) - React-jsi - - React-jsiexecutor (= 0.74.1-rc.0) + - React-jsiexecutor (= 0.74.1) - React-jsinspector - - React-perflogger (= 0.74.1-rc.0) + - React-perflogger (= 0.74.1) - React-runtimeexecutor - - React-ImageManager (0.74.1-rc.0): + - React-ImageManager (0.74.1): - glog - RCT-Folly/Fabric - React-Core/Default @@ -958,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.1-rc.0): + - React-jserrorhandler (0.74.1): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.1-rc.0): + - React-jsi (0.74.1): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.1-rc.0): + - React-jsiexecutor (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.1-rc.0) - - React-jsi (= 0.74.1-rc.0) + - React-cxxreact (= 0.74.1) + - React-jsi (= 0.74.1) - React-jsinspector - - React-perflogger (= 0.74.1-rc.0) - - React-jsinspector (0.74.1-rc.0): + - React-perflogger (= 0.74.1) + - React-jsinspector (0.74.1): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.1-rc.0) - - React-jsitracing (0.74.1-rc.0): + - React-runtimeexecutor (= 0.74.1) + - React-jsitracing (0.74.1): - React-jsi - - React-logger (0.74.1-rc.0): + - React-logger (0.74.1): - glog - - React-Mapbuffer (0.74.1-rc.0): + - React-Mapbuffer (0.74.1): - glog - React-debug - - React-nativeconfig (0.74.1-rc.0) - - React-NativeModulesApple (0.74.1-rc.0): + - React-nativeconfig (0.74.1) + - React-NativeModulesApple (0.74.1): - glog - hermes-engine - React-callinvoker @@ -1007,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.1-rc.0) - - React-RCTActionSheet (0.74.1-rc.0): - - React-Core/RCTActionSheetHeaders (= 0.74.1-rc.0) - - React-RCTAnimation (0.74.1-rc.0): + - React-perflogger (0.74.1) + - React-RCTActionSheet (0.74.1): + - React-Core/RCTActionSheetHeaders (= 0.74.1) + - React-RCTAnimation (0.74.1): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1018,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.1-rc.0): + - React-RCTAppDelegate (0.74.1): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1042,7 +1042,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.1-rc.0): + - React-RCTBlob (0.74.1): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1055,7 +1055,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.1-rc.0): + - React-RCTFabric (0.74.1): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1075,7 +1075,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.1-rc.0): + - React-RCTImage (0.74.1): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1084,14 +1084,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.1-rc.0): + - React-RCTLinking (0.74.1): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.1-rc.0) - - React-jsi (= 0.74.1-rc.0) + - React-Core/RCTLinkingHeaders (= 0.74.1) + - React-jsi (= 0.74.1) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.1-rc.0) - - React-RCTNetwork (0.74.1-rc.0): + - ReactCommon/turbomodule/core (= 0.74.1) + - React-RCTNetwork (0.74.1): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1099,14 +1099,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.1-rc.0): + - React-RCTPushNotification (0.74.1): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.1-rc.0): + - React-RCTSettings (0.74.1): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1114,29 +1114,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.1-rc.0): + - React-RCTTest (0.74.1): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.1-rc.0) - - React-CoreModules (= 0.74.1-rc.0) - - React-jsi (= 0.74.1-rc.0) - - ReactCommon/turbomodule/core (= 0.74.1-rc.0) - - React-RCTText (0.74.1-rc.0): - - React-Core/RCTTextHeaders (= 0.74.1-rc.0) + - React-Core (= 0.74.1) + - React-CoreModules (= 0.74.1) + - React-jsi (= 0.74.1) + - ReactCommon/turbomodule/core (= 0.74.1) + - React-RCTText (0.74.1): + - React-Core/RCTTextHeaders (= 0.74.1) - Yoga - - React-RCTVibration (0.74.1-rc.0): + - React-RCTVibration (0.74.1): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.1-rc.0): + - React-rendererdebug (0.74.1): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.1-rc.0) - - React-RuntimeApple (0.74.1-rc.0): + - React-rncore (0.74.1) + - React-RuntimeApple (0.74.1): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1154,7 +1154,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.1-rc.0): + - React-RuntimeCore (0.74.1): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1167,9 +1167,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.1-rc.0): - - React-jsi (= 0.74.1-rc.0) - - React-RuntimeHermes (0.74.1-rc.0): + - React-runtimeexecutor (0.74.1): + - React-jsi (= 0.74.1) + - React-RuntimeHermes (0.74.1): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1180,7 +1180,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.1-rc.0): + - React-runtimescheduler (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1192,15 +1192,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.1-rc.0): + - React-utils (0.74.1): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.1-rc.0) - - ReactCommon (0.74.1-rc.0): - - ReactCommon/turbomodule (= 0.74.1-rc.0) - - ReactCommon-Samples (0.74.1-rc.0): + - React-jsi (= 0.74.1) + - ReactCommon (0.74.1): + - ReactCommon/turbomodule (= 0.74.1) + - ReactCommon-Samples (0.74.1): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1211,44 +1211,44 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.1-rc.0): + - ReactCommon/turbomodule (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1-rc.0) - - React-cxxreact (= 0.74.1-rc.0) - - React-jsi (= 0.74.1-rc.0) - - React-logger (= 0.74.1-rc.0) - - React-perflogger (= 0.74.1-rc.0) - - ReactCommon/turbomodule/bridging (= 0.74.1-rc.0) - - ReactCommon/turbomodule/core (= 0.74.1-rc.0) - - ReactCommon/turbomodule/bridging (0.74.1-rc.0): + - React-callinvoker (= 0.74.1) + - React-cxxreact (= 0.74.1) + - React-jsi (= 0.74.1) + - React-logger (= 0.74.1) + - React-perflogger (= 0.74.1) + - ReactCommon/turbomodule/bridging (= 0.74.1) + - ReactCommon/turbomodule/core (= 0.74.1) + - ReactCommon/turbomodule/bridging (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1-rc.0) - - React-cxxreact (= 0.74.1-rc.0) - - React-jsi (= 0.74.1-rc.0) - - React-logger (= 0.74.1-rc.0) - - React-perflogger (= 0.74.1-rc.0) - - ReactCommon/turbomodule/core (0.74.1-rc.0): + - React-callinvoker (= 0.74.1) + - React-cxxreact (= 0.74.1) + - React-jsi (= 0.74.1) + - React-logger (= 0.74.1) + - React-perflogger (= 0.74.1) + - ReactCommon/turbomodule/core (0.74.1): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1-rc.0) - - React-cxxreact (= 0.74.1-rc.0) - - React-debug (= 0.74.1-rc.0) - - React-jsi (= 0.74.1-rc.0) - - React-logger (= 0.74.1-rc.0) - - React-perflogger (= 0.74.1-rc.0) - - React-utils (= 0.74.1-rc.0) - - ScreenshotManager (0.74.82): + - React-callinvoker (= 0.74.1) + - React-cxxreact (= 0.74.1) + - React-debug (= 0.74.1) + - React-jsi (= 0.74.1) + - React-logger (= 0.74.1) + - React-perflogger (= 0.74.1) + - React-utils (= 0.74.1) + - ScreenshotManager (0.74.83): - DoubleConversion - glog - hermes-engine @@ -1468,66 +1468,66 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 1e1d791ce842b9012435e3cd0429078fa1f1c43b + FBLazyVector: 898d14d17bf19e2435cafd9ea2a1033efe445709 fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 00dd4470ffd262ad3c8dfcc848001bb61074fe74 - MyNativeView: f70a4a234c3245596c1970acfa74d49de7c7e1ec - NativeCxxModuleExample: d4fb31d62d91b2bc121a6ffcf11e0d14a8946cc6 + hermes-engine: 16b8530de1b383cdada1476cf52d1b52f0692cbc + MyNativeView: f907f1651c854a5b884e5c82d84d5348b33f35de + NativeCxxModuleExample: 48a9768ef2cba1408c84572984041ad8801c4a81 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47 - RCTDeprecation: e69ff938a56f950f500eaf12cd4e2d335e4a0a53 - RCTRequired: 2c520d0858ed22c806821898ee3e7a4d59acf149 - RCTTypeSafety: a34a1f7e4cd7e295e3f971e247fb0bc0eea65080 - React: a7c9c6c2db6f18f227a56a6a3fb3cbad34c41cdc - React-callinvoker: c451c45fd622249adc5190628294f8361e97384c - React-Codegen: 4f359cca5e1257deaa66c3c2f6a18b58782ed9c6 - React-Core: 7ceaa879856708a24224107683d973d465adac48 - React-CoreModules: 5efe6cee5c719e120a48724e163fcbe6db79c4e0 - React-cxxreact: 22eb8cf584ce71da8f9f285bb4dabb9ee04c812f - React-debug: 53a9da27099450efe34bf6f70c46ec017fc4f9d5 - React-Fabric: 740eae8f28dc7c9bfa9f15208fafd3612c54349f - React-FabricImage: 3f68c768dbb8924600b101dd40c5f8526a2a179b - React-featureflags: 2fb348ceb6abbc4c8404a52be9fa3055698fa7fc - React-graphics: 4f5c9ec608255ad52f25ddcaeab6e2d988e58d80 - React-hermes: 0ef9161a9b3a8584fd2ce9073ee83d4b0d92fa55 - React-ImageManager: da15932ff68456004a2224a3f914803a3bce2cd1 - React-jserrorhandler: e72c7713a27102a8e6aaf9d9ae0975bb250967d3 - React-jsi: cceb083f53082dca4da61fa0c53472fbc88433e9 - React-jsiexecutor: c99b26ef3c91a91c49b7a3428d53a3496793e99c - React-jsinspector: 2c85d7df28fe4b7e620c01567698fa12ef7909d3 - React-jsitracing: 903a4a58130deabd27a4d9af436e91dcd079d5a3 - React-logger: a02c1bc3b6befe1e09a014fb9edbd6cc79929ca6 - React-Mapbuffer: d3aaeb7e63d8454c4bb74e596de2bd1f827055b8 - React-nativeconfig: b908fa3e3a3b326bc4c32f2455b3cbc0e544ef43 - React-NativeModulesApple: 807cb41a594252a829697a0f7161022116c86c1f - React-perflogger: 27ab9a9ade8a0a338739891c41b3ca8ea6302073 - React-RCTActionSheet: e582dec312e9afe801dbd9095fdf7c4add8fe5e3 - React-RCTAnimation: 4aa781670b10d10303b09130e5c8fba1f2484695 - React-RCTAppDelegate: 1750be18c3b0251ed451700b8672840b0584825f - React-RCTBlob: 82cd36a4483bebffbe4d2496eb98eb0cff4a2ea1 - React-RCTFabric: 51c351cb7611f719f97ae81a9ae4761acdc33be7 - React-RCTImage: dcf1c39707690d1d8f1451449edd449e4e80790f - React-RCTLinking: 1eb7a1f624591bd744a3b9f07ba58c3e91e8c30d - React-RCTNetwork: 0588799141ed37e07534aa96b13507057f71ac19 - React-RCTPushNotification: ba423ffddcba61312d13cd320e44e5570db2ac59 - React-RCTSettings: 77b74076a18720fda6daa4093c3225d12d764d36 - React-RCTTest: 2feee5d8ae7997c5959a8204291d8385ad536f4c - React-RCTText: 027987cd59088f9031c26ac90c48af9ee70c4f2c - React-RCTVibration: 3ccc8f91116b80d30c0c3c5b29ddad413162090c - React-rendererdebug: 60bdc059dd5faa4162394ecef3c9ac19f79fc020 - React-rncore: be00190384125cb822dd10b20f2c51126247ad00 - React-RuntimeApple: 44dfb10c9ff79e1acfa69601eddb3e7612acddcd - React-RuntimeCore: 453e2bc299d7ec409709244634b57bc2b1adf72f - React-runtimeexecutor: 0eb92c4d0b3dd54532ce84044a2194cfad586fd3 - React-RuntimeHermes: a9c810f936f19d81f9de500767cadcf96819cad9 - React-runtimescheduler: f58e915301a2d97813c23d5a26af460ff3b85bdd - React-utils: 42af5ec8a248e1c0cb25eb4e72b1ba14eb626c88 - ReactCommon: ac184a38075d3db361aac3c2f58f393a6b67c3f9 - ReactCommon-Samples: 03d38b01ef4ec6e0b63d451f34a302462ef467e7 - ScreenshotManager: ab4e6ed2f217eaa93c8af6dd565275a7685d1ae7 + RCTDeprecation: efb313d8126259e9294dc4ee0002f44a6f676aba + RCTRequired: f49ea29cece52aee20db633ae7edc4b271435562 + RCTTypeSafety: a11979ff0570d230d74de9f604f7d19692157bc4 + React: 88794fad7f460349dbc9df8a274d95f37a009f5d + React-callinvoker: 7a7023e34a55c89ea2aa62486bb3c1164ab0be0c + React-Codegen: 51420855264c290b2697dfad4b27f1bea41ada86 + React-Core: 60075333bc22b5a793d3f62e207368b79bff2e64 + React-CoreModules: 147c314d6b3b1e069c9ad64cbbbeba604854ff86 + React-cxxreact: 5de27fd8bff4764acb2eac3ee66001e0e2b910e7 + React-debug: 6397f0baf751b40511d01e984b01467d7e6d8127 + React-Fabric: 6fa475e16e0a37b38d462cec32b70fd5cf886305 + React-FabricImage: 7e09b3704e3fa084b4d44b5b5ef6e2e3d3334ec0 + React-featureflags: 2eb79dd9df4095bff519379f2a4c915069e330bb + React-graphics: 82a482a3aa5d9659b74cdf2c8b57faf67eaa10fb + React-hermes: d93936b02de2fd7e67c11e92c16d4278a14d0134 + React-ImageManager: ebb3c4812e2c5acba5a89728c2d77729471329ad + React-jserrorhandler: a08e0adcf1612900dde82b8bf8e93e7d2ad953b3 + React-jsi: f46d09ee5079a4f3b637d30d0e59b8ea6470632c + React-jsiexecutor: e73579560957aa3ca9dc02ab90e163454279d48c + React-jsinspector: e8ba20dde269c7c1d45784b858fa1cf4383f0bbb + React-jsitracing: 233d1a798fe0ff33b8e630b8f00f62c4a8115fbc + React-logger: 7e7403a2b14c97f847d90763af76b84b152b6fce + React-Mapbuffer: 11029dcd47c5c9e057a4092ab9c2a8d10a496a33 + React-nativeconfig: b0073a590774e8b35192fead188a36d1dca23dec + React-NativeModulesApple: df46ff3e3de5b842b30b4ca8a6caae6d7c8ab09f + React-perflogger: 3d31e0d1e8ad891e43a09ac70b7b17a79773003a + React-RCTActionSheet: c4a3a134f3434c9d7b0c1054f1a8cfed30c7a093 + React-RCTAnimation: 0e5d15320eeece667fcceb6c785acf9a184e9da1 + React-RCTAppDelegate: c4f6c0700b8950a8b18c2e004996eec1807d430a + React-RCTBlob: c46aaaee693d371a1c7cae2a8c8ee2aa7fbc1adb + React-RCTFabric: 0dbf28ce96c7f2843483e32a725a5b5793584ff3 + React-RCTImage: a04dba5fcc823244f5822192c130ecf09623a57f + React-RCTLinking: 533bf13c745fcb2a0c14e0e49fd149586a7f0d14 + React-RCTNetwork: a29e371e0d363d7b4c10ab907bc4d6ae610541e9 + React-RCTPushNotification: cf631deef7fb15f14a8183d14bc11e99c8ecfb8a + React-RCTSettings: 127813224780861d0d30ecda17a40d1dfebe7d73 + React-RCTTest: 4cd2287d741c31e48e700116f8d212f5d673412a + React-RCTText: 8a823f245ecf82edb7569646e3c4d8041deb800a + React-RCTVibration: 46b5fae74e63f240f22f39de16ad6433da3b65d9 + React-rendererdebug: 4653f8da6ab1d7b01af796bdf8ca47a927539e39 + React-rncore: 4f1e645acb5107bd4b4cf29eff17b04a7cd422f3 + React-RuntimeApple: 013b606e743efb5ee14ef03c32379b78bfe74354 + React-RuntimeCore: 7205be45a25713b5418bbf2db91ddfcca0761d8b + React-runtimeexecutor: a278d4249921853d4a3f24e4d6e0ff30688f3c16 + React-RuntimeHermes: 44c628568ce8feedc3acfbd48fc07b7f0f6d2731 + React-runtimescheduler: e2152ed146b6a35c07386fc2ac4827b27e6aad12 + React-utils: 3285151c9d1e3a28a9586571fc81d521678c196d + ReactCommon: f42444e384d82ab89184aed5d6f3142748b54768 + ReactCommon-Samples: b9fb0fa6f1fdd843109d73a30aa49e5407ec8d90 + ScreenshotManager: 1a62f8f0989fd02220d54eda0ef0ccb39b5527ac SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: 5f2aa30ad547531b9ec2f0e5947817bdd0d36d2f + Yoga: 348f8b538c3ed4423eb58a8e5730feec50bce372 PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf From 71153f6c7319a4369720767a2e3bfbd9158c8577 Mon Sep 17 00:00:00 2001 From: Arushi Kesarwani Date: Fri, 19 Apr 2024 11:54:24 -0700 Subject: [PATCH 172/223] Add ReactSoftException in ReactHostImpl only when onActivityResult, onNewIntent and onWindowFocusChange do not have the context (#44155) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44155 Add ReactSoftException in ReactHostImpl only when `onActivityResult`, `onNewIntent`and `onWindowFocusChange` do not have the context Changelog: [Android][Fixed] ReactSoftExceptions in ReactHostImpl only when Context is null Reviewed By: cortinico Differential Revision: D56325407 fbshipit-source-id: a9f8fd5772fc05d39e72236fb8edfe5f8a9d6a43 --- .../facebook/react/runtime/ReactHostImpl.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java index b3ad48e6afcc73..989a71f2e2946a 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java @@ -653,11 +653,12 @@ public void onActivityResult( ReactContext currentContext = getCurrentReactContext(); if (currentContext != null) { currentContext.onActivityResult(activity, requestCode, resultCode, data); + } else { + ReactSoftExceptionLogger.logSoftException( + TAG, + new ReactNoCrashSoftException( + "Tried to access onActivityResult while context is not ready")); } - ReactSoftExceptionLogger.logSoftException( - TAG, - new ReactNoCrashSoftException( - "Tried to access onActivityResult while context is not ready")); } /* To be called when focus has changed for the hosting window. */ @@ -670,11 +671,12 @@ public void onWindowFocusChange(boolean hasFocus) { ReactContext currentContext = getCurrentReactContext(); if (currentContext != null) { currentContext.onWindowFocusChange(hasFocus); + } else { + ReactSoftExceptionLogger.logSoftException( + TAG, + new ReactNoCrashSoftException( + "Tried to access onWindowFocusChange while context is not ready")); } - ReactSoftExceptionLogger.logSoftException( - TAG, - new ReactNoCrashSoftException( - "Tried to access onWindowFocusChange while context is not ready")); } /* This method will give JS the opportunity to receive intents via Linking. @@ -701,10 +703,11 @@ public void onNewIntent(Intent intent) { } } currentContext.onNewIntent(getCurrentActivity(), intent); + } else { + ReactSoftExceptionLogger.logSoftException( + TAG, + new ReactNoCrashSoftException("Tried to access onNewIntent while context is not ready")); } - ReactSoftExceptionLogger.logSoftException( - TAG, - new ReactNoCrashSoftException("Tried to access onNewIntent while context is not ready")); } @ThreadConfined(UI) From fc5e69e06b77ce55f609ee2ccc4563edbd83b894 Mon Sep 17 00:00:00 2001 From: Alan Lee Date: Tue, 7 May 2024 13:15:55 -0700 Subject: [PATCH 173/223] TextInput - `selection` prop is not set on component creation (#44398) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44398 **Problem:** `selection` prop is not being set on component creation. Not quite sure which RN version this issue was introduced but fixing it on latest code. Use playground for testing (refer to following diff) **Proposed Solution:** Added notes in comments but `viewCommands.setTextAndSelection()` is called only on text or selection update which relies on comparing data with `lastNativeSelection`. Problem is that `lastNativeSelection` is initially set to the props value that is passed in so does not send the command on component creation. So assign a default selection value of `{start: -1, end: -1}` so it can be set on component creation. **Changelog:** [General][Fixed] - `selection` prop in `TextInput` was not being applied at component creation Reviewed By: cipolleschi Differential Revision: D56911712 fbshipit-source-id: 7774b246383f85216536040688b0a8ea85b3478a --- .../Libraries/Components/TextInput/TextInput.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/react-native/Libraries/Components/TextInput/TextInput.js b/packages/react-native/Libraries/Components/TextInput/TextInput.js index 7b522fe5dcb026..bbbd228a1f4ea0 100644 --- a/packages/react-native/Libraries/Components/TextInput/TextInput.js +++ b/packages/react-native/Libraries/Components/TextInput/TextInput.js @@ -1135,12 +1135,14 @@ function InternalTextInput(props: Props): React.Node { }; const [mostRecentEventCount, setMostRecentEventCount] = useState(0); - const [lastNativeText, setLastNativeText] = useState(props.value); const [lastNativeSelectionState, setLastNativeSelection] = useState<{| - selection: ?Selection, + selection: Selection, mostRecentEventCount: number, - |}>({selection, mostRecentEventCount}); + |}>({ + selection: {start: -1, end: -1}, + mostRecentEventCount: mostRecentEventCount, + }); const lastNativeSelection = lastNativeSelectionState.selection; From 156e8cf52b06e3b604ed0ef7e710a88115bbf93b Mon Sep 17 00:00:00 2001 From: Robin Shin Date: Wed, 8 May 2024 20:10:54 -0700 Subject: [PATCH 174/223] fix: TextInput `selectionColor` props on iOS (#44420) Summary: This pull request fixes an issue where the `selectionColor` prop was not applied to the `TextInput` component on iOS, starting from React Native version 0.74.x. This issue was introduced in PR [1e68e485](https://github.com/facebook/react-native/commit/1e68e48534aedf1533327bf65f26e5cf5b80127b#diff-b6634353ea5b10a91de24605dc51bdfb50e8ddb652ccd5b9dab194168a69d4b1) which relocated `selectionColor` along with `selectionHandleColor` and `cursorColor` out of `otherProps`. This modification inadvertently prevented `selectionColor` from being passed to the iOS native component. This change ensures that the `selectionColor` prop is explicitly included in the `RCTTextInputView` component's properties, fixing the regression. Note: `selectionHandleColor` and `cursorColor` are Android-specific and do not require explicit passing on iOS. ## Changelog: [IOS] [FIXED] - Fixed an issue where the `selectionColor` prop was not being applied on the `TextInput` component. Pull Request resolved: https://github.com/facebook/react-native/pull/44420 Test Plan: **Environment:** iOS Simulator, React Native 0.74.0. **Steps to reproduce:** - Implement a `TextInput` component with the `selectionColor` prop set. - Run the application on an iOS device or simulator. - Focus on the TextInput component, write some text and select it. **Expected Result:** the selection color should match the color provided to the `selectionColor` prop. **Actual result before fix:** the selection color did not reflect the specified `selectionColor` prop and fell back to the default iOS selection color (blue). **Screenshots:** - Before fix: before_fix - After fix: after_fix Reviewed By: javache Differential Revision: D57017836 Pulled By: NickGerleman fbshipit-source-id: 263ce22168e09c15cdfdb4eb4300a2605d8af032 --- .../react-native/Libraries/Components/TextInput/TextInput.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-native/Libraries/Components/TextInput/TextInput.js b/packages/react-native/Libraries/Components/TextInput/TextInput.js index bbbd228a1f4ea0..a377366dc7079d 100644 --- a/packages/react-native/Libraries/Components/TextInput/TextInput.js +++ b/packages/react-native/Libraries/Components/TextInput/TextInput.js @@ -1500,6 +1500,7 @@ function InternalTextInput(props: Props): React.Node { onSelectionChange={_onSelectionChange} onSelectionChangeShouldSetResponder={emptyFunctionThatReturnsTrue} selection={selection} + selectionColor={selectionColor} style={StyleSheet.compose( useMultilineDefaultStyle ? styles.multilineDefault : null, style, From 2375b077ed7724da18741f574da4e7a3c04b35a9 Mon Sep 17 00:00:00 2001 From: Rui Ying Date: Fri, 10 May 2024 02:51:11 -0700 Subject: [PATCH 175/223] Handle the case where the file reference doesn't have a path (#44410) Summary: The new cocoapod post install script includes aggregation and generation of privacy manifests for iOS, which is great. However, the script doesn't consider the case where the file reference doesn't have a path. Example, for a project setup like the screenshot: image The code https://github.com/facebook/react-native/blob/05a4232dd591e2d43f192d69ca14a04f4a3fb6a1/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb#L80-L81 prints `file_refs`: ``` [ , , , , ] ``` where a `PBXVariantGroup` exists and it doesn't have `path`. The error `undefined method 'end_with?' for nil` occurs as a result. ## Changelog: [IOS] [FIXED] - In privacy manifest post install script, handle the case where the file reference doesn't have a path Pull Request resolved: https://github.com/facebook/react-native/pull/44410 Test Plan: 1. Add a new "Strings File (Legacy)" in Xcode to the project. 2. Run `pod install` for iOS. 3. See the error `undefined method 'end_with?' for nil`. 4. Apply the fix and rerun `pod install`. 5. The script runs successfully. Reviewed By: javache Differential Revision: D57056159 Pulled By: cipolleschi fbshipit-source-id: 42caaf1a98efb9111f6ff1014a5c8b7703b042f2 --- .../react-native/scripts/cocoapods/privacy_manifest_utils.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb b/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb index 760082954ae532..7fcc3d339cc2cc 100644 --- a/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb +++ b/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb @@ -67,7 +67,7 @@ def self.read_privacyinfo_file(file_path) end def self.ensure_reference(file_path, user_project, target) - reference_exists = target.resources_build_phase.files_references.any? { |file_ref| file_ref.path.end_with? "PrivacyInfo.xcprivacy" } + reference_exists = target.resources_build_phase.files_references.any? { |file_ref| file_ref.path&.end_with? "PrivacyInfo.xcprivacy" } unless reference_exists # We try to find the main group, but if it doesn't exist, we default to adding the file to the project root – both work file_root = user_project.root_object.main_group.children.find { |group| @@ -80,7 +80,7 @@ def self.ensure_reference(file_path, user_project, target) def self.get_privacyinfo_file_path(user_project, targets) file_refs = targets.flat_map { |target| target.resources_build_phase.files_references } - existing_file = file_refs.find { |file_ref| file_ref.path.end_with? "PrivacyInfo.xcprivacy" } + existing_file = file_refs.find { |file_ref| file_ref.path&.end_with? "PrivacyInfo.xcprivacy" } if existing_file return existing_file.real_path end From a88a3c5bbfbb2d7ea1e9af6f8bea11542bf88cf1 Mon Sep 17 00:00:00 2001 From: zhongwuzw Date: Thu, 14 Mar 2024 08:33:49 -0700 Subject: [PATCH 176/223] iOS: Fixes textinput onscroll event payload (#43445) Summary: Fixes https://github.com/facebook/react-native/issues/43428 . cc cortinico . ## Changelog: [IOS] [FIXED] - [Fabric] iOS: Fixes textinput onscroll event payload Pull Request resolved: https://github.com/facebook/react-native/pull/43445 Test Plan: ``` const onInputScroll = (e) => { if (Platform.OS !== "web") { const { nativeEvent: { contentOffset: { x, y }, }, } = e; console.log('onInputScroll ====', e?.nativeEvent) } }; ``` Reviewed By: cortinico Differential Revision: D54813378 Pulled By: sammy-SC fbshipit-source-id: 76671fbb390c2fbc67a9c29b6c2a834ba699fff4 --- .../iostextinput/TextInputEventEmitter.cpp | 54 ++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputEventEmitter.cpp b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputEventEmitter.cpp index 88ae3f35a221c6..2180019a175333 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputEventEmitter.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputEventEmitter.cpp @@ -36,6 +36,56 @@ static jsi::Value textInputMetricsPayload( return payload; }; +static jsi::Value textInputMetricsScrollPayload( + jsi::Runtime& runtime, + const TextInputMetrics& textInputMetrics) { + auto payload = jsi::Object(runtime); + + { + auto contentOffset = jsi::Object(runtime); + contentOffset.setProperty(runtime, "x", textInputMetrics.contentOffset.x); + contentOffset.setProperty(runtime, "y", textInputMetrics.contentOffset.y); + payload.setProperty(runtime, "contentOffset", contentOffset); + } + + { + auto contentInset = jsi::Object(runtime); + contentInset.setProperty(runtime, "top", textInputMetrics.contentInset.top); + contentInset.setProperty( + runtime, "left", textInputMetrics.contentInset.left); + contentInset.setProperty( + runtime, "bottom", textInputMetrics.contentInset.bottom); + contentInset.setProperty( + runtime, "right", textInputMetrics.contentInset.right); + payload.setProperty(runtime, "contentInset", contentInset); + } + + { + auto contentSize = jsi::Object(runtime); + contentSize.setProperty( + runtime, "width", textInputMetrics.contentSize.width); + contentSize.setProperty( + runtime, "height", textInputMetrics.contentSize.height); + payload.setProperty(runtime, "contentSize", contentSize); + } + + { + auto layoutMeasurement = jsi::Object(runtime); + layoutMeasurement.setProperty( + runtime, "width", textInputMetrics.layoutMeasurement.width); + layoutMeasurement.setProperty( + runtime, "height", textInputMetrics.layoutMeasurement.height); + payload.setProperty(runtime, "layoutMeasurement", layoutMeasurement); + } + + payload.setProperty( + runtime, + "zoomScale", + textInputMetrics.zoomScale ? textInputMetrics.zoomScale : 1); + + return payload; +}; + static jsi::Value textInputMetricsContentSizePayload( jsi::Runtime& runtime, const TextInputMetrics& textInputMetrics) { @@ -140,7 +190,9 @@ void TextInputEventEmitter::onKeyPressSync( void TextInputEventEmitter::onScroll( const TextInputMetrics& textInputMetrics) const { - dispatchTextInputEvent("scroll", textInputMetrics); + dispatchEvent("scroll", [textInputMetrics](jsi::Runtime& runtime) { + return textInputMetricsScrollPayload(runtime, textInputMetrics); + }); } void TextInputEventEmitter::dispatchTextInputEvent( From 1860441d848b8f620e0b959e43122628b1cd04c9 Mon Sep 17 00:00:00 2001 From: szymonrybczak Date: Thu, 23 May 2024 09:43:02 -0700 Subject: [PATCH 177/223] fix: warn only in `init` command when CLI uses cached `npx` version (#44644) Summary: In https://github.com/facebook/react-native/pull/37510, a check was introduced to check if user is using `latest` version of `npx`, but right now it checks for every command executed, but it should only ensure that `latest` is included when creating a new project. In this Pull Request I've added a condition to only warn if `init` was fired. [GENERAL] [FIXED] - Warn only in `init` command when CLI uses cached `npx` version Pull Request resolved: https://github.com/facebook/react-native/pull/44644 Test Plan: Warning about using `latest` version CLI should only be presented when running `init` command. Reviewed By: arushikesarwani94 Differential Revision: D57681864 Pulled By: blakef fbshipit-source-id: 5c81b9a08141396efcd24539b2560cea16028dd9 --- packages/react-native/cli.js | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/packages/react-native/cli.js b/packages/react-native/cli.js index 0e1bd5216512d0..8bb052ecab6529 100755 --- a/packages/react-native/cli.js +++ b/packages/react-native/cli.js @@ -17,6 +17,7 @@ const {get} = require('https'); const {URL} = require('url'); const isNpxRuntime = process.env.npm_lifecycle_event === 'npx'; +const isInitCommand = process.argv[2] === 'init'; const DEFAULT_REGISTRY_HOST = process.env.npm_config_registry ?? 'https://registry.npmjs.org/'; const HEAD = '1000.0.0'; @@ -44,11 +45,25 @@ async function getLatestVersion(registryHost = DEFAULT_REGISTRY_HOST) { * @see https://github.com/react-native-community/discussions-and-proposals/tree/main/proposals/0759-react-native-frameworks.md */ function warnWhenRunningInit() { - if (process.argv[2] === 'init') { - console.warn('\nRunning: npx @react-native-community/cli init\n'); + if (isInitCommand) { + console.warn( + `\nRunning: ${chalk.grey.bold('npx @react-native-community/cli init')}\n`, + ); } } +function warnWithDeprecated() { + if (isInitCommand) { + return; + } + + console.warn(` +${chalk.yellow('⚠')}️ The \`init\` command is deprecated. + +- Switch to ${chalk.dim('npx @react-native-community/cli init')} for the identical behavior. +- Refer to the documentation for information about alternative tools: ${chalk.dim('https://reactnative.dev/docs/getting-started')}`); +} + /** * npx react-native -> @react-native-community/cli * @@ -59,7 +74,12 @@ function warnWhenRunningInit() { * */ async function main() { - if (isNpxRuntime && !process.env.SKIP && currentVersion !== HEAD) { + if ( + isNpxRuntime && + !process.env.SKIP && + currentVersion !== HEAD && + isInitCommand + ) { try { const latest = await getLatestVersion(); if (latest !== currentVersion) { From 752c173da529b48ead482be5088af6758f08ee65 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Wed, 29 May 2024 08:08:42 -0700 Subject: [PATCH 178/223] Fix Privacy Manifest generator when it does not contain a `NSPrivacyAccessedAPITypes` key (#44628) Summary: XCode privacy files might not contain a `NSPrivacyAccessedAPITypes` key, which causes the following error: ``` [!] An error occurred while processing the post-install hook of the Podfile. undefined method `each' for nil node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:111:in `block (4 levels) in get_used_required_reason_apis' node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:106:in `each' node_modules/react-native/scripts/cocoapods/privacy_manifest_utils.rb:106:in `block (3 levels) in get_used_required_reason_apis' ``` [IOS] [FIXED] - Privacy Manifest aggregation failing due to no `NSPrivacyAccessedAPITypes` key Pull Request resolved: https://github.com/facebook/react-native/pull/44628 Test Plan: I tested this patch on our own app and it solved the issue. Reviewed By: christophpurrer Differential Revision: D57618425 Pulled By: cipolleschi fbshipit-source-id: 1a36ab5a1bb45b8507d3663b782c95258d97c8a4 --- .../scripts/cocoapods/privacy_manifest_utils.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb b/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb index 7fcc3d339cc2cc..42ce104571af1d 100644 --- a/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb +++ b/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb @@ -108,11 +108,12 @@ def self.get_used_required_reason_apis(installer) if File.basename(file_path) == 'PrivacyInfo.xcprivacy' content = Xcodeproj::Plist.read_from_path(file_path) accessed_api_types = content["NSPrivacyAccessedAPITypes"] - accessed_api_types.each do |accessed_api| - api_type = accessed_api["NSPrivacyAccessedAPIType"] - reasons = accessed_api["NSPrivacyAccessedAPITypeReasons"] - used_apis[api_type] ||= [] - used_apis[api_type] += reasons + accessed_api_types&.each do |accessed_api| + api_type = accessed_api["NSPrivacyAccessedAPIType"] + reasons = accessed_api["NSPrivacyAccessedAPITypeReasons"] + next unless api_type + used_apis[api_type] ||= [] + used_apis[api_type] += reasons end end end From 335f6ed83306bfa150c818d26dce4b279de4869f Mon Sep 17 00:00:00 2001 From: Szymon Rybczak Date: Mon, 3 Jun 2024 16:49:09 +0200 Subject: [PATCH 179/223] feat: upgrade CLI to `13.6.8` (#44757) --- packages/community-cli-plugin/package.json | 4 +- packages/react-native/package.json | 6 +- yarn.lock | 142 ++++++++++----------- 3 files changed, 76 insertions(+), 76 deletions(-) diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index ea5e45dbcc9dfb..795a00a5b4aff0 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -22,8 +22,8 @@ "dist" ], "dependencies": { - "@react-native-community/cli-server-api": "13.6.6", - "@react-native-community/cli-tools": "13.6.6", + "@react-native-community/cli-server-api": "13.6.8", + "@react-native-community/cli-tools": "13.6.8", "@react-native/dev-middleware": "0.74.83", "@react-native/metro-babel-transformer": "0.74.83", "chalk": "^4.0.0", diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 80daf766cbbac1..dda4639f07e807 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -107,9 +107,9 @@ }, "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "13.6.6", - "@react-native-community/cli-platform-android": "13.6.6", - "@react-native-community/cli-platform-ios": "13.6.6", + "@react-native-community/cli": "13.6.8", + "@react-native-community/cli-platform-android": "13.6.8", + "@react-native-community/cli-platform-ios": "13.6.8", "@react-native/assets-registry": "0.74.83", "@react-native/codegen": "0.74.83", "@react-native/community-cli-plugin": "0.74.83", diff --git a/yarn.lock b/yarn.lock index b529b43e471f12..c48cc70f458293 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2384,45 +2384,45 @@ optionalDependencies: npmlog "2 || ^3.1.0 || ^4.0.0" -"@react-native-community/cli-clean@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.6.tgz#87c7ad8746c38dab0fe7b3c6ff89d44351d5d943" - integrity sha512-cBwJTwl0NyeA4nyMxbhkWZhxtILYkbU3TW3k8AXLg+iGphe0zikYMGB3T+haTvTc6alTyEFwPbimk9bGIqkjAQ== +"@react-native-community/cli-clean@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.8.tgz#95ce964047f005152ac100394b6dcd5d2cc2a474" + integrity sha512-B1uxlm1N4BQuWFvBL3yRl3LVvydjswsdbTi7tMrHMtSxfRio1p9HjcmDzlzKco09Y+8qBGgakm3jcMZGLbhXQQ== dependencies: - "@react-native-community/cli-tools" "13.6.6" + "@react-native-community/cli-tools" "13.6.8" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" -"@react-native-community/cli-config@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.6.tgz#69f590694b3a079c74f781baab3b762db74f5dbd" - integrity sha512-mbG425zCKr8JZhv/j11382arezwS/70juWMsn8j2lmrGTrP1cUdW0MF15CCIFtJsqyK3Qs+FTmqttRpq81QfSg== +"@react-native-community/cli-config@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.8.tgz#6829ea7cdc237776c300be06f84c222bf17cf4c5" + integrity sha512-RabCkIsWdP4Ex/sf1uSP9qxc30utm+0uIJAjrZkNQynm7T4Lyqn/kT3LKm4yM6M0Qk61YxGguiaXF4601vAduw== dependencies: - "@react-native-community/cli-tools" "13.6.6" + "@react-native-community/cli-tools" "13.6.8" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" fast-glob "^3.3.2" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.6.tgz#ac021ebd795b0fd66fb52a8987d1d41c5a4b8cb3" - integrity sha512-Vv9u6eS4vKSDAvdhA0OiQHoA7y39fiPIgJ6biT32tN4avHDtxlc6TWZGiqv7g98SBvDWvoVAmdPLcRf3kU+c8g== +"@react-native-community/cli-debugger-ui@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.8.tgz#d52fccd4b3e0860d96d75ff5b0ebb128bdc93dfd" + integrity sha512-2cS+MX/Su6sVSjqpDftFOXbK7EuPg98xzsPkdPhkQnkZwvXqodK9CAMuDMbx3lBHHtrPrpMbBCpFmPN8iVOnlA== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.6.tgz#ac0febff05601d9b86af3e03460e1a6b0a1d33a5" - integrity sha512-TWZb5g6EmQe2Ua2TEWNmyaEayvlWH4GmdD9ZC+p8EpKFpB1NpDGMK6sXbpb42TDvwZg5s4TDRplK0PBEA/SVDg== +"@react-native-community/cli-doctor@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.8.tgz#05f696d94e975e4dcf7f9a1fde32fb43e4bb8a5f" + integrity sha512-/3Vdy9J3hyiu0y3nd/CU3kBqPlTRxnLXg7V6jrA1jbTOlZAMyV9imEkrqEaGK0SMOyMhh9Pipf98Ozhk0Nl4QA== dependencies: - "@react-native-community/cli-config" "13.6.6" - "@react-native-community/cli-platform-android" "13.6.6" - "@react-native-community/cli-platform-apple" "13.6.6" - "@react-native-community/cli-platform-ios" "13.6.6" - "@react-native-community/cli-tools" "13.6.6" + "@react-native-community/cli-config" "13.6.8" + "@react-native-community/cli-platform-android" "13.6.8" + "@react-native-community/cli-platform-apple" "13.6.8" + "@react-native-community/cli-platform-ios" "13.6.8" + "@react-native-community/cli-tools" "13.6.8" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" @@ -2436,54 +2436,54 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-hermes@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.6.tgz#590f55f151fec23b55498228f92d100a0e71d474" - integrity sha512-La5Ie+NGaRl3klei6WxKoOxmCUSGGxpOk6vU5pEGf0/O7ky+Ay0io+zXYUZqlNMi/cGpO7ZUijakBYOB/uyuFg== +"@react-native-community/cli-hermes@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.8.tgz#85f10f663bc79f299146e749c48c06ebc4da9e29" + integrity sha512-lZi/OBFuZUj5cLK94oEgtrtmxGoqeYVRcnHXl/R5c4put9PDl+qH2bEMlGZkFiw57ae3UZKr3TMk+1s4jh3FYQ== dependencies: - "@react-native-community/cli-platform-android" "13.6.6" - "@react-native-community/cli-tools" "13.6.6" + "@react-native-community/cli-platform-android" "13.6.8" + "@react-native-community/cli-tools" "13.6.8" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" -"@react-native-community/cli-platform-android@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.6.tgz#9e3863cb092709021f11848890bff0fc16fc1609" - integrity sha512-/tMwkBeNxh84syiSwNlYtmUz/Ppc+HfKtdopL/5RB+fd3SV1/5/NPNjMlyLNgFKnpxvKCInQ7dnl6jGHJjeHjg== +"@react-native-community/cli-platform-android@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.8.tgz#a3672512a9b844f93d6050537c59dd58e1b12f17" + integrity sha512-vWrqeLRRTwp2kO33nbrAgbYn8HR2c2CpIfyVJY9Ckk7HGUSwDyxdcSu7YBvt2ShdfLZH0HctWFNXsgGrfg6BDw== dependencies: - "@react-native-community/cli-tools" "13.6.6" + "@react-native-community/cli-tools" "13.6.8" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" fast-xml-parser "^4.2.4" logkitty "^0.7.1" -"@react-native-community/cli-platform-apple@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.6.tgz#d445fd6ed02c5ae2f43f9c45501e04fee53a2790" - integrity sha512-bOmSSwoqNNT3AmCRZXEMYKz1Jf1l2F86Nhs7qBcXdY/sGiJ+Flng564LOqvdAlVLTbkgz47KjNKCS2pP4Jg0Mg== +"@react-native-community/cli-platform-apple@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.8.tgz#4d46a2d6678a7b3264768f97393f082ed9afb264" + integrity sha512-1JPohnlXPqU44zns3ALEzIbH2cKRw6JtEDJERgLuEUbs2r2NeJgqDbKyZ7fTTO8o+pegDnn6+Rr7qGVVOuUzzg== dependencies: - "@react-native-community/cli-tools" "13.6.6" + "@react-native-community/cli-tools" "13.6.8" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" fast-xml-parser "^4.0.12" ora "^5.4.1" -"@react-native-community/cli-platform-ios@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.6.tgz#0cd700f36483ca37dda7ec044377f8a926b1df1f" - integrity sha512-vjDnRwhlSN5ryqKTas6/DPkxuouuyFBAqAROH4FR1cspTbn6v78JTZKDmtQy9JMMo7N5vZj1kASU5vbFep9IOQ== +"@react-native-community/cli-platform-ios@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.8.tgz#2de1bd8529825781108c1cbba4f5b25cb062581c" + integrity sha512-/IIcIRM8qaoD7iZqsvtf6Qq1AwtChWYfB9sTn3mTiolZ5Zd5bXH37g+6liPfAICRkj2Ptq3iXmjrDVUQAxrOXw== dependencies: - "@react-native-community/cli-platform-apple" "13.6.6" + "@react-native-community/cli-platform-apple" "13.6.8" -"@react-native-community/cli-server-api@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.6.tgz#467993006ef82361cdf7a9817999d5a09e85ca6a" - integrity sha512-ZtCXxoFlM7oDv3iZ3wsrT3SamhtUJuIkX2WePLPlN5bcbq7zimbPm2lHyicNJtpcGQ5ymsgpUWPCNZsWQhXBqQ== +"@react-native-community/cli-server-api@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.8.tgz#fc654a2990a5f0b6f0b67ef04b25f699bee63f63" + integrity sha512-Lx664oWTzpVfbKUTy+3GIX7e+Mt5Zn+zdkM4ehllNdik/lbB3tM9Nrg8PSvOfI+tTXs2w55+nIydLfH+0FqJVg== dependencies: - "@react-native-community/cli-debugger-ui" "13.6.6" - "@react-native-community/cli-tools" "13.6.6" + "@react-native-community/cli-debugger-ui" "13.6.8" + "@react-native-community/cli-tools" "13.6.8" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" @@ -2492,10 +2492,10 @@ serve-static "^1.13.1" ws "^6.2.2" -"@react-native-community/cli-tools@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.6.tgz#55c40cbabafbfc56cfb95a4d5fbf73ef60ec3cbc" - integrity sha512-ptOnn4AJczY5njvbdK91k4hcYazDnGtEPrqIwEI+k/CTBHNdb27Rsm2OZ7ye6f7otLBqF8gj/hK6QzJs8CEMgw== +"@react-native-community/cli-tools@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.8.tgz#65a9f49ce66f0e639d855e745c8dfa7ae7b6c142" + integrity sha512-1MYlae9EkbjC7DBYOGMH5xF9yDoeNYUKgEdDjL6WAUBoF2gtwiZPM6igLKi/+dhb5sCtC7fiLrLi0Oevdf+RmQ== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -2509,26 +2509,26 @@ shell-quote "^1.7.3" sudo-prompt "^9.0.0" -"@react-native-community/cli-types@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.6.tgz#b45af119d61888fea1074a7c32ddb093e3f119a9" - integrity sha512-733iaYzlmvNK7XYbnWlMjdE+2k0hlTBJW071af/xb6Bs+hbJqBP9c03FZuYH2hFFwDDntwj05bkri/P7VgSxug== +"@react-native-community/cli-types@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.8.tgz#1c357d3290a48232e3e639d48e43e31e422ce436" + integrity sha512-C4mVByy0i+/NPuPhdMLBR7ubEVkjVS1VwoQu/BoG1crJFNE+167QXAzH01eFbXndsjZaMWmD4Gerx7TYc6lHfA== dependencies: joi "^17.2.1" -"@react-native-community/cli@13.6.6": - version "13.6.6" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.6.tgz#b929c8668e88344c03a46a3e635cb382dba16773" - integrity sha512-IqclB7VQ84ye8Fcs89HOpOscY4284VZg2pojHNl8H0Lzd4DadXJWQoxC7zWm8v2f8eyeX2kdhxp2ETD5tceIgA== - dependencies: - "@react-native-community/cli-clean" "13.6.6" - "@react-native-community/cli-config" "13.6.6" - "@react-native-community/cli-debugger-ui" "13.6.6" - "@react-native-community/cli-doctor" "13.6.6" - "@react-native-community/cli-hermes" "13.6.6" - "@react-native-community/cli-server-api" "13.6.6" - "@react-native-community/cli-tools" "13.6.6" - "@react-native-community/cli-types" "13.6.6" +"@react-native-community/cli@13.6.8": + version "13.6.8" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.8.tgz#d52c22620242e161bddcd2e0b6dbacd8743ca09b" + integrity sha512-0lRdgLNaXixWY4BfFRl1J6Ao9Lapo2z+++iE7TD4GAbuxOWJSyFi+KUA8XNfSDyML4jFO02MZgyBPxAWdaminQ== + dependencies: + "@react-native-community/cli-clean" "13.6.8" + "@react-native-community/cli-config" "13.6.8" + "@react-native-community/cli-debugger-ui" "13.6.8" + "@react-native-community/cli-doctor" "13.6.8" + "@react-native-community/cli-hermes" "13.6.8" + "@react-native-community/cli-server-api" "13.6.8" + "@react-native-community/cli-tools" "13.6.8" + "@react-native-community/cli-types" "13.6.8" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" From 58f232c6c20475309a7cd789863e88a6888bd8f2 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Mon, 3 Jun 2024 17:18:09 +0100 Subject: [PATCH 180/223] [LOCAL] Bump hermes version --- packages/react-native/sdks/.hermesversion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native/sdks/.hermesversion b/packages/react-native/sdks/.hermesversion index 971812c06d7b10..038c63a3fd7afc 100644 --- a/packages/react-native/sdks/.hermesversion +++ b/packages/react-native/sdks/.hermesversion @@ -1 +1 @@ -hermes-2024-04-25-RNv0.74.1-b54a3a01c531f4f5f1904cb0770033e8b7153dff \ No newline at end of file +hermes-2024-06-03-RNv0.74.2-bb1e74fe1e95c2b5a2f4f9311152da052badc2bc From 2e21543017006ee6418c6953d976593d07407755 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Mon, 3 Jun 2024 18:04:41 +0100 Subject: [PATCH 181/223] [LOCAL] Fix prettier --- packages/react-native/cli.js | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/packages/react-native/cli.js b/packages/react-native/cli.js index 8bb052ecab6529..6171a3ab30d880 100755 --- a/packages/react-native/cli.js +++ b/packages/react-native/cli.js @@ -52,18 +52,6 @@ function warnWhenRunningInit() { } } -function warnWithDeprecated() { - if (isInitCommand) { - return; - } - - console.warn(` -${chalk.yellow('⚠')}️ The \`init\` command is deprecated. - -- Switch to ${chalk.dim('npx @react-native-community/cli init')} for the identical behavior. -- Refer to the documentation for information about alternative tools: ${chalk.dim('https://reactnative.dev/docs/getting-started')}`); -} - /** * npx react-native -> @react-native-community/cli * From 1f50fb781623169d2766deca6b8dc3c840f3877e Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 4 Jun 2024 10:27:56 +0100 Subject: [PATCH 182/223] [0.74] Update `eslint-plugin-jest` to 27.x, `@typescript-eslint` deps to 7.x (#44764) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: This PR updates `typescript-eslint/eslint-plugin` and `typescript-eslint/parser` to `v7` and `eslint-plugin-jest` to `v27`, removing any dependencies on `typescript-eslint` `v6`, allowing projects using `react-native/eslint-config` to safely update to `typescript-eslint` `v7` without having to worry about duplicate major versions installed ## Changelog: - [General] [Changed]: Updated `eslint-plugin-jest` to `v27` - [General] [Changed]: Updated `typescript-eslint` monorepo to `v7` Pull Request resolved: https://github.com/facebook/react-native/pull/43406 Test Plan: `yarn run lint` executed locally successfully Reviewed By: robhogan Differential Revision: D54749676 Pulled By: tdn120 fbshipit-source-id: f6fae92fc95333e28b36a3d2bd8470c8869d38bc # Conflicts: # package.json # packages/eslint-config-react-native/package.json # yarn.lock Co-authored-by: Lluís --- package.json | 4 +- .../eslint-config-react-native/package.json | 6 +- yarn.lock | 116 ++++++++++-------- 3 files changed, 67 insertions(+), 59 deletions(-) diff --git a/package.json b/package.json index ac636ec82e7843..a9d5f19dc93d1c 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@react-native/metro-config": "0.74.83", "@tsconfig/node18": "1.0.1", "@types/react": "^18.2.6", - "@typescript-eslint/parser": "^6.7.4", + "@typescript-eslint/parser": "^7.1.1", "ansi-styles": "^4.2.1", "async": "^3.2.2", "babel-plugin-minify-dead-code-elimination": "^0.5.2", @@ -77,7 +77,7 @@ "eslint-plugin-babel": "^5.3.1", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-ft-flow": "^2.0.1", - "eslint-plugin-jest": "^26.5.3", + "eslint-plugin-jest": "^27.9.0", "eslint-plugin-jsx-a11y": "^6.6.0", "eslint-plugin-lint": "^1.0.0", "eslint-plugin-prettier": "^4.2.1", diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index d99d257ef7e6e3..139658f767539e 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -23,12 +23,12 @@ "@babel/core": "^7.20.0", "@babel/eslint-parser": "^7.20.0", "@react-native/eslint-plugin": "0.74.83", - "@typescript-eslint/eslint-plugin": "^6.7.4", - "@typescript-eslint/parser": "^6.7.4", + "@typescript-eslint/eslint-plugin": "^7.1.1", + "@typescript-eslint/parser": "^7.1.1", "eslint-config-prettier": "^8.5.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-ft-flow": "^2.0.1", - "eslint-plugin-jest": "^26.5.3", + "eslint-plugin-jest": "^27.9.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react": "^7.30.1", "eslint-plugin-react-hooks": "^4.6.0", diff --git a/yarn.lock b/yarn.lock index c48cc70f458293..c90cace18330ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2876,16 +2876,16 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/eslint-plugin@^6.7.4": - version "6.7.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.4.tgz#057338df21b6062c2f2fc5999fbea8af9973ac6d" - integrity sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA== +"@typescript-eslint/eslint-plugin@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.1.1.tgz#dd71fc5c7ecec745ca26ece506d84d203a205c0e" + integrity sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.7.4" - "@typescript-eslint/type-utils" "6.7.4" - "@typescript-eslint/utils" "6.7.4" - "@typescript-eslint/visitor-keys" "6.7.4" + "@typescript-eslint/scope-manager" "7.1.1" + "@typescript-eslint/type-utils" "7.1.1" + "@typescript-eslint/utils" "7.1.1" + "@typescript-eslint/visitor-keys" "7.1.1" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -2903,15 +2903,15 @@ "@typescript-eslint/typescript-estree" "5.59.5" debug "^4.3.4" -"@typescript-eslint/parser@^6.7.4": - version "6.7.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.4.tgz#23d1dd4fe5d295c7fa2ab651f5406cd9ad0bd435" - integrity sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA== +"@typescript-eslint/parser@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.1.1.tgz#6a9d0a5c9ccdf5dbd3cb8c949728c64e24e07d1f" + integrity sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ== dependencies: - "@typescript-eslint/scope-manager" "6.7.4" - "@typescript-eslint/types" "6.7.4" - "@typescript-eslint/typescript-estree" "6.7.4" - "@typescript-eslint/visitor-keys" "6.7.4" + "@typescript-eslint/scope-manager" "7.1.1" + "@typescript-eslint/types" "7.1.1" + "@typescript-eslint/typescript-estree" "7.1.1" + "@typescript-eslint/visitor-keys" "7.1.1" debug "^4.3.4" "@typescript-eslint/scope-manager@5.59.5": @@ -2922,13 +2922,13 @@ "@typescript-eslint/types" "5.59.5" "@typescript-eslint/visitor-keys" "5.59.5" -"@typescript-eslint/scope-manager@6.7.4": - version "6.7.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz#a484a17aa219e96044db40813429eb7214d7b386" - integrity sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A== +"@typescript-eslint/scope-manager@7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.1.1.tgz#9e301803ff8e21a74f50c6f89a4baccad9a48f93" + integrity sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA== dependencies: - "@typescript-eslint/types" "6.7.4" - "@typescript-eslint/visitor-keys" "6.7.4" + "@typescript-eslint/types" "7.1.1" + "@typescript-eslint/visitor-keys" "7.1.1" "@typescript-eslint/type-utils@5.59.5": version "5.59.5" @@ -2940,13 +2940,13 @@ debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/type-utils@6.7.4": - version "6.7.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.4.tgz#847cd3b59baf948984499be3e0a12ff07373e321" - integrity sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ== +"@typescript-eslint/type-utils@7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.1.1.tgz#aee820d5bedd39b83c18585a526cc520ddb7a226" + integrity sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g== dependencies: - "@typescript-eslint/typescript-estree" "6.7.4" - "@typescript-eslint/utils" "6.7.4" + "@typescript-eslint/typescript-estree" "7.1.1" + "@typescript-eslint/utils" "7.1.1" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -2960,10 +2960,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/types@6.7.4": - version "6.7.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.4.tgz#5d358484d2be986980c039de68e9f1eb62ea7897" - integrity sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA== +"@typescript-eslint/types@7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.1.1.tgz#ca33ba7cf58224fb46a84fea62593c2c53cd795f" + integrity sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q== "@typescript-eslint/typescript-estree@5.59.5": version "5.59.5" @@ -2978,16 +2978,17 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@6.7.4": - version "6.7.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz#f2baece09f7bb1df9296e32638b2e1130014ef1a" - integrity sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ== +"@typescript-eslint/typescript-estree@7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.1.1.tgz#09c54af0151a1b05d0875c0fc7fe2ec7a2476ece" + integrity sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw== dependencies: - "@typescript-eslint/types" "6.7.4" - "@typescript-eslint/visitor-keys" "6.7.4" + "@typescript-eslint/types" "7.1.1" + "@typescript-eslint/visitor-keys" "7.1.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" + minimatch "9.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" @@ -3005,17 +3006,17 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/utils@6.7.4": - version "6.7.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.4.tgz#2236f72b10e38277ee05ef06142522e1de470ff2" - integrity sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA== +"@typescript-eslint/utils@7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.1.1.tgz#bdeeb789eee4af5d3fb5400a69566d4dbf97ff3b" + integrity sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.7.4" - "@typescript-eslint/types" "6.7.4" - "@typescript-eslint/typescript-estree" "6.7.4" + "@typescript-eslint/scope-manager" "7.1.1" + "@typescript-eslint/types" "7.1.1" + "@typescript-eslint/typescript-estree" "7.1.1" semver "^7.5.4" "@typescript-eslint/visitor-keys@5.59.5": @@ -3026,12 +3027,12 @@ "@typescript-eslint/types" "5.59.5" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@6.7.4": - version "6.7.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz#80dfecf820fc67574012375859085f91a4dff043" - integrity sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA== +"@typescript-eslint/visitor-keys@7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.1.1.tgz#e6538a58c9b157f03bcbb29e3b6a92fe39a6ab0d" + integrity sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ== dependencies: - "@typescript-eslint/types" "6.7.4" + "@typescript-eslint/types" "7.1.1" eslint-visitor-keys "^3.4.1" "@typescript-eslint/visitor-keys@^5.42.0": @@ -4605,10 +4606,10 @@ eslint-plugin-ft-flow@^2.0.1: lodash "^4.17.21" string-natural-compare "^3.0.1" -eslint-plugin-jest@^26.5.3: - version "26.5.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.5.3.tgz#a3ceeaf4a757878342b8b00eca92379b246e5505" - integrity sha512-sICclUqJQnR1bFRZGLN2jnSVsYOsmPYYnroGCIMVSvTS3y8XR3yjzy1EcTQmk6typ5pRgyIWzbjqxK6cZHEZuQ== +eslint-plugin-jest@^27.9.0: + version "27.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz#7c98a33605e1d8b8442ace092b60e9919730000b" + integrity sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug== dependencies: "@typescript-eslint/utils" "^5.10.0" @@ -7303,6 +7304,13 @@ mimic-response@^3.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" From 0f44ca644bcf7c124226b42ad484d1e6643c4270 Mon Sep 17 00:00:00 2001 From: legobt <6wbvkn0j@anonaddy.me> Date: Mon, 20 May 2024 06:39:26 -0700 Subject: [PATCH 183/223] chore: Increase iOS script portability (#44417) Summary: `pod install` and CocoaPods are actually not macOS specific. Still, the pod lifecycle scripts of `react-native` depend on macOS-only utilities and will fail on Linux. This is an attempt to make the scripts portable and make the pod install cleanly on Linux as well as macOS. ## Changelog: [INTERNAL] [FIXED] - Skip XCode patching when not run on macOS [INTERNAL] [FIXED] - Fall back to `which gcc`/`which g++` to identify C/C++ compiler when `xcrun` not available [INTERNAL] [FEAT] - Recognize CC and CXX env vars supplied to the script and prefer them over autodetection Pull Request resolved: https://github.com/facebook/react-native/pull/44417 Reviewed By: NickGerleman Differential Revision: D57055928 Pulled By: cipolleschi fbshipit-source-id: 1c49f70c52b4667abf0a215cbee52ee6aa6dd052 --- packages/react-native/scripts/ios-configure-glog.sh | 11 +++++++++-- packages/react-native/scripts/react_native_pods.rb | 4 +++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/react-native/scripts/ios-configure-glog.sh b/packages/react-native/scripts/ios-configure-glog.sh index f13c61b40e229a..02a875d31e408a 100755 --- a/packages/react-native/scripts/ios-configure-glog.sh +++ b/packages/react-native/scripts/ios-configure-glog.sh @@ -42,8 +42,15 @@ EOF patch -p1 config.sub fix_glog_0.3.5_apple_silicon.patch fi -export CC="$(xcrun -find -sdk $PLATFORM_NAME cc) -arch $CURRENT_ARCH -isysroot $(xcrun -sdk $PLATFORM_NAME --show-sdk-path)" -export CXX="$CC" +XCRUN="$(which xcrun)" +if [ -n "$XCRUN" ]; then + export CC="$(xcrun -find -sdk $PLATFORM_NAME cc) -arch $CURRENT_ARCH -isysroot $(xcrun -sdk $PLATFORM_NAME --show-sdk-path)" + export CXX="$CC" +else + export CC="$CC:-$(which gcc)" + export CXX="$CXX:-$(which g++ || true)" +fi +export CXX="$CXX:-$CC" # Remove automake symlink if it exists if [ -h "test-driver" ]; then diff --git a/packages/react-native/scripts/react_native_pods.rb b/packages/react-native/scripts/react_native_pods.rb index 751d0761e6036e..7a8ed1836aed97 100644 --- a/packages/react-native/scripts/react_native_pods.rb +++ b/packages/react-native/scripts/react_native_pods.rb @@ -292,7 +292,9 @@ def react_native_post_install( ReactNativePodsUtils.set_use_hermes_build_setting(installer, hermes_enabled) ReactNativePodsUtils.set_node_modules_user_settings(installer, react_native_path) ReactNativePodsUtils.set_ccache_compiler_and_linker_build_settings(installer, react_native_path, ccache_enabled) - ReactNativePodsUtils.apply_xcode_15_patch(installer) + if Environment.new().ruby_platform().include?('darwin') + ReactNativePodsUtils.apply_xcode_15_patch(installer) + end ReactNativePodsUtils.updateOSDeploymentTarget(installer) ReactNativePodsUtils.set_dynamic_frameworks_flags(installer) ReactNativePodsUtils.add_ndebug_flag_to_pods_in_release(installer) From 053f1d9822831187149bb57effc677dad99d723c Mon Sep 17 00:00:00 2001 From: Kudo Chien Date: Mon, 13 May 2024 04:04:07 -0700 Subject: [PATCH 184/223] Fix dangling surfaces in ReactHostImpl (#44393) Summary: Though the `ReactHost.destroy()` is not being used from OSS code, we use it at Expo for expo-dev-client to change loading apps from different dev servers. Without cleanup the `mAttachedSurfaces`, it will have dangling or duplicated attached surfaces that cause duplicated react trees. This PR tries to cleanup the `mAttachedSurfaces` from destroying. ## Changelog: [ANDROID] [FIXED] - Fixed dangling `mAttachedSurfaces` after `ReactHost.destroy()` Pull Request resolved: https://github.com/facebook/react-native/pull/44393 Test Plan: have to manually call `ReactHost.destroy()` and recreate the MainActivity without killing the process. then reload the app will startSurface for the same attached surfaces. Reviewed By: RSNara Differential Revision: D56901863 Pulled By: javache fbshipit-source-id: c7f822501d971810ac6aa7262b15da69ec41355e --- .../main/java/com/facebook/react/runtime/ReactHostImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java index 989a71f2e2946a..054c36a260e207 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java @@ -1526,9 +1526,9 @@ private Task getOrCreateDestroyTask(final String reason, @Nullable Excepti // Step 3: Stop all React Native surfaces stopAttachedSurfaces(method, reactInstance); - - // TODO(T161461674): Should we clear mAttachedSurfaces? - // Not clearing mAttachedSurfaces could lead to a memory leak. + synchronized (mAttachedSurfaces) { + mAttachedSurfaces.clear(); + } return task; }, From 17c0b1766f7e3c1c3a59f7701704f0ea6a6f6bc3 Mon Sep 17 00:00:00 2001 From: Distiller Date: Tue, 4 Jun 2024 15:08:03 +0000 Subject: [PATCH 185/223] Release 0.74.2 #publish-packages-to-npm&latest --- package.json | 4 ++-- packages/assets/package.json | 2 +- packages/babel-plugin-codegen/package.json | 4 ++-- packages/community-cli-plugin/package.json | 6 +++--- packages/debugger-frontend/package.json | 2 +- packages/dev-middleware/package.json | 4 ++-- packages/eslint-config-react-native/package.json | 4 ++-- packages/eslint-plugin-react-native/package.json | 2 +- packages/eslint-plugin-specs/package.json | 4 ++-- packages/hermes-inspector-msggen/package.json | 2 +- packages/metro-config/package.json | 6 +++--- packages/normalize-color/package.json | 2 +- packages/polyfills/package.json | 2 +- packages/react-native-babel-preset/package.json | 4 ++-- .../react-native-babel-transformer/package.json | 4 ++-- packages/react-native-bots/package.json | 2 +- .../package.json | 4 ++-- packages/react-native-codegen/package.json | 2 +- packages/react-native-gradle-plugin/package.json | 2 +- .../react-native-popup-menu-android/package.json | 4 ++-- packages/react-native-test-renderer/package.json | 2 +- .../Libraries/Core/ReactNativeVersion.js | 2 +- packages/react-native/React/Base/RCTVersion.m | 2 +- .../react-native/ReactAndroid/gradle.properties | 2 +- .../modules/systeminfo/ReactNativeVersion.java | 2 +- .../ReactCommon/cxxreact/ReactNativeVersion.h | 2 +- packages/react-native/package.json | 16 ++++++++-------- packages/react-native/template/package.json | 10 +++++----- packages/rn-tester-e2e/package.json | 2 +- packages/rn-tester/package.json | 4 ++-- packages/typescript-config/package.json | 2 +- packages/virtualized-lists/package.json | 2 +- 32 files changed, 57 insertions(+), 57 deletions(-) diff --git a/package.json b/package.json index a9d5f19dc93d1c..134d9f8045a888 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,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.74.83", - "@react-native/metro-config": "0.74.83", + "@react-native/metro-babel-transformer": "0.74.84", + "@react-native/metro-config": "0.74.84", "@tsconfig/node18": "1.0.1", "@types/react": "^18.2.6", "@typescript-eslint/parser": "^7.1.1", diff --git a/packages/assets/package.json b/packages/assets/package.json index 6f90b34940d191..75aa3d1c537977 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/assets-registry", - "version": "0.74.83", + "version": "0.74.84", "description": "Asset support code for React Native.", "license": "MIT", "repository": { diff --git a/packages/babel-plugin-codegen/package.json b/packages/babel-plugin-codegen/package.json index 867a299fbb0231..cdce7e67d22477 100644 --- a/packages/babel-plugin-codegen/package.json +++ b/packages/babel-plugin-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-plugin-codegen", - "version": "0.74.83", + "version": "0.74.84", "description": "Babel plugin to generate native module and view manager code for React Native.", "license": "MIT", "repository": { @@ -25,7 +25,7 @@ "index.js" ], "dependencies": { - "@react-native/codegen": "0.74.83" + "@react-native/codegen": "0.74.84" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/packages/community-cli-plugin/package.json b/packages/community-cli-plugin/package.json index 795a00a5b4aff0..7a4f219798c9a2 100644 --- a/packages/community-cli-plugin/package.json +++ b/packages/community-cli-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/community-cli-plugin", - "version": "0.74.83", + "version": "0.74.84", "description": "Core CLI commands for React Native", "keywords": [ "react-native", @@ -24,8 +24,8 @@ "dependencies": { "@react-native-community/cli-server-api": "13.6.8", "@react-native-community/cli-tools": "13.6.8", - "@react-native/dev-middleware": "0.74.83", - "@react-native/metro-babel-transformer": "0.74.83", + "@react-native/dev-middleware": "0.74.84", + "@react-native/metro-babel-transformer": "0.74.84", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", diff --git a/packages/debugger-frontend/package.json b/packages/debugger-frontend/package.json index ed28e469f3ec60..6f03569daf9070 100644 --- a/packages/debugger-frontend/package.json +++ b/packages/debugger-frontend/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/debugger-frontend", - "version": "0.74.83", + "version": "0.74.84", "description": "Debugger frontend for React Native based on Chrome DevTools", "keywords": [ "react-native", diff --git a/packages/dev-middleware/package.json b/packages/dev-middleware/package.json index f0cb48e124806a..3163fd968c8a7d 100644 --- a/packages/dev-middleware/package.json +++ b/packages/dev-middleware/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/dev-middleware", - "version": "0.74.83", + "version": "0.74.84", "description": "Dev server middleware for React Native", "keywords": [ "react-native", @@ -23,7 +23,7 @@ ], "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.83", + "@react-native/debugger-frontend": "0.74.84", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", diff --git a/packages/eslint-config-react-native/package.json b/packages/eslint-config-react-native/package.json index 139658f767539e..9f350c8337617a 100644 --- a/packages/eslint-config-react-native/package.json +++ b/packages/eslint-config-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-config", - "version": "0.74.83", + "version": "0.74.84", "description": "ESLint config for React Native", "license": "MIT", "repository": { @@ -22,7 +22,7 @@ "dependencies": { "@babel/core": "^7.20.0", "@babel/eslint-parser": "^7.20.0", - "@react-native/eslint-plugin": "0.74.83", + "@react-native/eslint-plugin": "0.74.84", "@typescript-eslint/eslint-plugin": "^7.1.1", "@typescript-eslint/parser": "^7.1.1", "eslint-config-prettier": "^8.5.0", diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index 4692f413aebab7..0202dace517199 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin", - "version": "0.74.83", + "version": "0.74.84", "description": "ESLint rules for @react-native/eslint-config", "license": "MIT", "repository": { diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index c6d4e0b86d7f29..c910bd83b4542d 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/eslint-plugin-specs", - "version": "0.74.83", + "version": "0.74.84", "description": "ESLint rules to validate NativeModule and Component Specs", "license": "MIT", "repository": { @@ -31,7 +31,7 @@ "@babel/eslint-parser": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.20.0", "@babel/preset-flow": "^7.20.0", - "@react-native/codegen": "0.74.83", + "@react-native/codegen": "0.74.84", "make-dir": "^2.1.0", "pirates": "^4.0.1", "source-map-support": "0.5.0" diff --git a/packages/hermes-inspector-msggen/package.json b/packages/hermes-inspector-msggen/package.json index 3500d0a8a1de88..517f24d39a882f 100644 --- a/packages/hermes-inspector-msggen/package.json +++ b/packages/hermes-inspector-msggen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/hermes-inspector-msggen", - "version": "0.74.83", + "version": "0.74.84", "private": true, "description": "Hermes Inspector Message Generator for React Native", "license": "MIT", diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json index 6d6881c1bddb3c..026e3c12dfcc59 100644 --- a/packages/metro-config/package.json +++ b/packages/metro-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-config", - "version": "0.74.83", + "version": "0.74.84", "description": "Metro configuration for React Native.", "license": "MIT", "repository": { @@ -26,8 +26,8 @@ "dist" ], "dependencies": { - "@react-native/js-polyfills": "0.74.83", - "@react-native/metro-babel-transformer": "0.74.83", + "@react-native/js-polyfills": "0.74.84", + "@react-native/metro-babel-transformer": "0.74.84", "metro-config": "^0.80.3", "metro-runtime": "^0.80.3" } diff --git a/packages/normalize-color/package.json b/packages/normalize-color/package.json index 9cf2b5982125ca..25305edc0e95f2 100644 --- a/packages/normalize-color/package.json +++ b/packages/normalize-color/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/normalize-colors", - "version": "0.74.83", + "version": "0.74.84", "description": "Color normalization for React Native.", "license": "MIT", "repository": { diff --git a/packages/polyfills/package.json b/packages/polyfills/package.json index 73f5b4c7f076ec..3d3dc47eb48d58 100644 --- a/packages/polyfills/package.json +++ b/packages/polyfills/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/js-polyfills", - "version": "0.74.83", + "version": "0.74.84", "description": "Polyfills for React Native.", "license": "MIT", "repository": { diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index 23dc9240b21560..a3c4704c827710 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/babel-preset", - "version": "0.74.83", + "version": "0.74.84", "description": "Babel preset for React Native applications", "main": "src/index.js", "repository": { @@ -54,7 +54,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.83", + "@react-native/babel-plugin-codegen": "0.74.84", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index fe7412aa7a0f5f..98fefceed31117 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/metro-babel-transformer", - "version": "0.74.83", + "version": "0.74.84", "description": "Babel transformer for React Native applications.", "main": "src/index.js", "repository": { @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.83", + "@react-native/babel-preset": "0.74.84", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, diff --git a/packages/react-native-bots/package.json b/packages/react-native-bots/package.json index 36e8659a6ac6ea..129aea504dddbc 100644 --- a/packages/react-native-bots/package.json +++ b/packages/react-native-bots/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/bots", "description": "React Native Bots", - "version": "0.74.83", + "version": "0.74.84", "private": true, "license": "MIT", "repository": { diff --git a/packages/react-native-codegen-typescript-test/package.json b/packages/react-native-codegen-typescript-test/package.json index 03940dc6309396..d01ddfe372fc5b 100644 --- a/packages/react-native-codegen-typescript-test/package.json +++ b/packages/react-native-codegen-typescript-test/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen-typescript-test", - "version": "0.74.83", + "version": "0.74.84", "private": true, "description": "TypeScript related unit test for @react-native/codegen", "license": "MIT", @@ -19,7 +19,7 @@ "prepare": "yarn run build" }, "dependencies": { - "@react-native/codegen": "0.74.83" + "@react-native/codegen": "0.74.84" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index 50864999c071aa..2f1851f51c9f51 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/codegen", - "version": "0.74.83", + "version": "0.74.84", "description": "Code generation tools for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-gradle-plugin/package.json b/packages/react-native-gradle-plugin/package.json index 4c098fdfe6c23b..b44a0a6e9e4843 100644 --- a/packages/react-native-gradle-plugin/package.json +++ b/packages/react-native-gradle-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/gradle-plugin", - "version": "0.74.83", + "version": "0.74.84", "description": "Gradle Plugin for React Native", "license": "MIT", "repository": { diff --git a/packages/react-native-popup-menu-android/package.json b/packages/react-native-popup-menu-android/package.json index 2ab2c9f58336e0..d8aa2eda1ac062 100644 --- a/packages/react-native-popup-menu-android/package.json +++ b/packages/react-native-popup-menu-android/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/popup-menu-android", - "version": "0.74.83", + "version": "0.74.84", "description": "PopupMenu for the Android platform", "main": "index.js", "files": [ @@ -17,7 +17,7 @@ ], "license": "MIT", "devDependencies": { - "@react-native/codegen": "0.74.83" + "@react-native/codegen": "0.74.84" }, "peerDependencies": { "@types/react": "^18.2.6", diff --git a/packages/react-native-test-renderer/package.json b/packages/react-native-test-renderer/package.json index 979a4319cb01af..f3e232fbaebee3 100644 --- a/packages/react-native-test-renderer/package.json +++ b/packages/react-native-test-renderer/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/test-renderer", "private": true, - "version": "0.74.83", + "version": "0.74.84", "description": "A Test rendering library for React Native", "license": "MIT", "devDependencies": { diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js index 89778df289530c..c3bd7491bd5eea 100644 --- a/packages/react-native/Libraries/Core/ReactNativeVersion.js +++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js @@ -16,7 +16,7 @@ const version: $ReadOnly<{ }> = { major: 0, minor: 74, - patch: 1, + patch: 2, prerelease: null, }; diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index e8abdcdd19f480..568023ba844f58 100644 --- a/packages/react-native/React/Base/RCTVersion.m +++ b/packages/react-native/React/Base/RCTVersion.m @@ -23,7 +23,7 @@ __rnVersion = @{ RCTVersionMajor: @(0), RCTVersionMinor: @(74), - RCTVersionPatch: @(1), + RCTVersionPatch: @(2), RCTVersionPrerelease: [NSNull null], }; }); diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties index 1beee95e10c069..7d82024e6fb6bb 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.74.1 +VERSION_NAME=0.74.2 react.internal.publishingGroup=com.facebook.react android.useAndroidX=true diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java index 2100da0f4bab88..21967fa4b098eb 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java @@ -17,6 +17,6 @@ public class ReactNativeVersion { public static final Map VERSION = MapBuilder.of( "major", 0, "minor", 74, - "patch", 1, + "patch", 2, "prerelease", null); } diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h index 69ae15eaad85af..e5a00f22912621 100644 --- a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h +++ b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h @@ -17,7 +17,7 @@ namespace facebook::react { constexpr struct { int32_t Major = 0; int32_t Minor = 74; - int32_t Patch = 1; + int32_t Patch = 2; std::string_view Prerelease = ""; } ReactNativeVersion; diff --git a/packages/react-native/package.json b/packages/react-native/package.json index dda4639f07e807..1d1a0b15989ecd 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.74.1", + "version": "0.74.2", "description": "A framework for building native apps using React", "license": "MIT", "repository": { @@ -110,13 +110,13 @@ "@react-native-community/cli": "13.6.8", "@react-native-community/cli-platform-android": "13.6.8", "@react-native-community/cli-platform-ios": "13.6.8", - "@react-native/assets-registry": "0.74.83", - "@react-native/codegen": "0.74.83", - "@react-native/community-cli-plugin": "0.74.83", - "@react-native/gradle-plugin": "0.74.83", - "@react-native/js-polyfills": "0.74.83", - "@react-native/normalize-colors": "0.74.83", - "@react-native/virtualized-lists": "0.74.83", + "@react-native/assets-registry": "0.74.84", + "@react-native/codegen": "0.74.84", + "@react-native/community-cli-plugin": "0.74.84", + "@react-native/gradle-plugin": "0.74.84", + "@react-native/js-polyfills": "0.74.84", + "@react-native/normalize-colors": "0.74.84", + "@react-native/virtualized-lists": "0.74.84", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 9c705241a2fc93..70b2b0b1a42684 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -11,16 +11,16 @@ }, "dependencies": { "react": "18.2.0", - "react-native": "0.74.1" + "react-native": "0.74.2" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", - "@react-native/babel-preset": "0.74.83", - "@react-native/eslint-config": "0.74.83", - "@react-native/metro-config": "0.74.83", - "@react-native/typescript-config": "0.74.83", + "@react-native/babel-preset": "0.74.84", + "@react-native/eslint-config": "0.74.84", + "@react-native/metro-config": "0.74.84", + "@react-native/typescript-config": "0.74.84", "@types/react": "^18.2.6", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.6.3", diff --git a/packages/rn-tester-e2e/package.json b/packages/rn-tester-e2e/package.json index 785d2be365d3b8..6aff87fefec097 100644 --- a/packages/rn-tester-e2e/package.json +++ b/packages/rn-tester-e2e/package.json @@ -1,7 +1,7 @@ { "name": "@react-native/tester-e2e", "private": true, - "version": "0.74.83", + "version": "0.74.84", "license": "MIT", "description": "React Native E2E tester app.", "homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/rn-tester-e2e", diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index 2704684785931c..dd55c2c0d580c2 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/tester", - "version": "0.74.83", + "version": "0.74.84", "private": true, "description": "React Native tester app.", "license": "MIT", @@ -26,7 +26,7 @@ "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", "nullthrows": "^1.1.1", - "@react-native/popup-menu-android": "0.74.83" + "@react-native/popup-menu-android": "0.74.84" }, "peerDependencies": { "react": "18.2.0", diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 3f8865432adbe2..92e633652ae579 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/typescript-config", - "version": "0.74.83", + "version": "0.74.84", "description": "Default TypeScript configuration for React Native apps", "license": "MIT", "repository": { diff --git a/packages/virtualized-lists/package.json b/packages/virtualized-lists/package.json index 6e88c846c27aa4..791a5ba68c2a23 100644 --- a/packages/virtualized-lists/package.json +++ b/packages/virtualized-lists/package.json @@ -1,6 +1,6 @@ { "name": "@react-native/virtualized-lists", - "version": "0.74.83", + "version": "0.74.84", "description": "Virtualized lists for React Native.", "license": "MIT", "repository": { From 3888bf323884dd2f64e324ee360d990ea52882af Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 4 Jun 2024 18:00:01 +0100 Subject: [PATCH 186/223] Update Podfile.lock Changelog: [Internal] --- packages/rn-tester/Podfile.lock | 502 ++++++++++++++++---------------- 1 file changed, 251 insertions(+), 251 deletions(-) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 9d88daef88e538..719fc010232ce6 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,13 +1,13 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - - FBLazyVector (0.74.1) + - FBLazyVector (0.74.2) - fmt (9.1.0) - glog (0.3.5) - - hermes-engine (0.74.1): - - hermes-engine/Pre-built (= 0.74.1) - - hermes-engine/Pre-built (0.74.1) - - MyNativeView (0.74.83): + - hermes-engine (0.74.2): + - hermes-engine/Pre-built (= 0.74.2) + - hermes-engine/Pre-built (0.74.2) + - MyNativeView (0.74.84): - DoubleConversion - glog - hermes-engine @@ -28,7 +28,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - NativeCxxModuleExample (0.74.83): + - NativeCxxModuleExample (0.74.84): - DoubleConversion - glog - hermes-engine @@ -66,27 +66,27 @@ PODS: - DoubleConversion - fmt (= 9.1.0) - glog - - RCTDeprecation (0.74.1) - - RCTRequired (0.74.1) - - RCTTypeSafety (0.74.1): - - FBLazyVector (= 0.74.1) - - RCTRequired (= 0.74.1) - - React-Core (= 0.74.1) - - React (0.74.1): - - React-Core (= 0.74.1) - - React-Core/DevSupport (= 0.74.1) - - React-Core/RCTWebSocket (= 0.74.1) - - React-RCTActionSheet (= 0.74.1) - - React-RCTAnimation (= 0.74.1) - - React-RCTBlob (= 0.74.1) - - React-RCTImage (= 0.74.1) - - React-RCTLinking (= 0.74.1) - - React-RCTNetwork (= 0.74.1) - - React-RCTSettings (= 0.74.1) - - React-RCTText (= 0.74.1) - - React-RCTVibration (= 0.74.1) - - React-callinvoker (0.74.1) - - React-Codegen (0.74.1): + - RCTDeprecation (0.74.2) + - RCTRequired (0.74.2) + - RCTTypeSafety (0.74.2): + - FBLazyVector (= 0.74.2) + - RCTRequired (= 0.74.2) + - React-Core (= 0.74.2) + - React (0.74.2): + - React-Core (= 0.74.2) + - React-Core/DevSupport (= 0.74.2) + - React-Core/RCTWebSocket (= 0.74.2) + - React-RCTActionSheet (= 0.74.2) + - React-RCTAnimation (= 0.74.2) + - React-RCTBlob (= 0.74.2) + - React-RCTImage (= 0.74.2) + - React-RCTLinking (= 0.74.2) + - React-RCTNetwork (= 0.74.2) + - React-RCTSettings (= 0.74.2) + - React-RCTText (= 0.74.2) + - React-RCTVibration (= 0.74.2) + - React-callinvoker (0.74.2) + - React-Codegen (0.74.2): - DoubleConversion - glog - hermes-engine @@ -106,12 +106,12 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.74.1): + - React-Core (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.1) + - React-Core/Default (= 0.74.2) - React-cxxreact - React-featureflags - React-hermes @@ -123,7 +123,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/CoreModulesHeaders (0.74.1): + - React-Core/CoreModulesHeaders (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -140,7 +140,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/Default (0.74.1): + - React-Core/Default (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -156,13 +156,13 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/DevSupport (0.74.1): + - React-Core/DevSupport (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.1) - - React-Core/RCTWebSocket (= 0.74.1) + - React-Core/Default (= 0.74.2) + - React-Core/RCTWebSocket (= 0.74.2) - React-cxxreact - React-featureflags - React-hermes @@ -174,7 +174,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTActionSheetHeaders (0.74.1): + - React-Core/RCTActionSheetHeaders (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -191,7 +191,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTAnimationHeaders (0.74.1): + - React-Core/RCTAnimationHeaders (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -208,7 +208,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTBlobHeaders (0.74.1): + - React-Core/RCTBlobHeaders (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -225,7 +225,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTImageHeaders (0.74.1): + - React-Core/RCTImageHeaders (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -242,7 +242,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTLinkingHeaders (0.74.1): + - React-Core/RCTLinkingHeaders (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -259,7 +259,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTNetworkHeaders (0.74.1): + - React-Core/RCTNetworkHeaders (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -276,7 +276,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTPushNotificationHeaders (0.74.1): + - React-Core/RCTPushNotificationHeaders (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -293,7 +293,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTSettingsHeaders (0.74.1): + - React-Core/RCTSettingsHeaders (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -310,7 +310,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTTextHeaders (0.74.1): + - React-Core/RCTTextHeaders (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -327,7 +327,7 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTVibrationHeaders (0.74.1): + - React-Core/RCTVibrationHeaders (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -344,12 +344,12 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-Core/RCTWebSocket (0.74.1): + - React-Core/RCTWebSocket (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - RCTDeprecation - - React-Core/Default (= 0.74.1) + - React-Core/Default (= 0.74.2) - React-cxxreact - React-featureflags - React-hermes @@ -361,36 +361,36 @@ PODS: - React-utils - SocketRocket (= 0.7.0) - Yoga - - React-CoreModules (0.74.1): + - React-CoreModules (0.74.2): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - - RCTTypeSafety (= 0.74.1) + - RCTTypeSafety (= 0.74.2) - React-Codegen - - React-Core/CoreModulesHeaders (= 0.74.1) - - React-jsi (= 0.74.1) + - React-Core/CoreModulesHeaders (= 0.74.2) + - React-jsi (= 0.74.2) - React-jsinspector - React-NativeModulesApple - React-RCTBlob - - React-RCTImage (= 0.74.1) + - React-RCTImage (= 0.74.2) - ReactCommon - SocketRocket (= 0.7.0) - - React-cxxreact (0.74.1): + - React-cxxreact (0.74.2): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1) - - React-debug (= 0.74.1) - - React-jsi (= 0.74.1) + - React-callinvoker (= 0.74.2) + - React-debug (= 0.74.2) + - React-jsi (= 0.74.2) - React-jsinspector - - React-logger (= 0.74.1) - - React-perflogger (= 0.74.1) - - React-runtimeexecutor (= 0.74.1) - - React-debug (0.74.1) - - React-Fabric (0.74.1): + - React-logger (= 0.74.2) + - React-perflogger (= 0.74.2) + - React-runtimeexecutor (= 0.74.2) + - React-debug (0.74.2) + - React-Fabric (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -401,20 +401,20 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/animations (= 0.74.1) - - React-Fabric/attributedstring (= 0.74.1) - - React-Fabric/componentregistry (= 0.74.1) - - React-Fabric/componentregistrynative (= 0.74.1) - - React-Fabric/components (= 0.74.1) - - React-Fabric/core (= 0.74.1) - - React-Fabric/imagemanager (= 0.74.1) - - React-Fabric/leakchecker (= 0.74.1) - - React-Fabric/mounting (= 0.74.1) - - React-Fabric/scheduler (= 0.74.1) - - React-Fabric/telemetry (= 0.74.1) - - React-Fabric/templateprocessor (= 0.74.1) - - React-Fabric/textlayoutmanager (= 0.74.1) - - React-Fabric/uimanager (= 0.74.1) + - React-Fabric/animations (= 0.74.2) + - React-Fabric/attributedstring (= 0.74.2) + - React-Fabric/componentregistry (= 0.74.2) + - React-Fabric/componentregistrynative (= 0.74.2) + - React-Fabric/components (= 0.74.2) + - React-Fabric/core (= 0.74.2) + - React-Fabric/imagemanager (= 0.74.2) + - React-Fabric/leakchecker (= 0.74.2) + - React-Fabric/mounting (= 0.74.2) + - React-Fabric/scheduler (= 0.74.2) + - React-Fabric/telemetry (= 0.74.2) + - React-Fabric/templateprocessor (= 0.74.2) + - React-Fabric/textlayoutmanager (= 0.74.2) + - React-Fabric/uimanager (= 0.74.2) - React-graphics - React-jsi - React-jsiexecutor @@ -423,7 +423,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.74.1): + - React-Fabric/animations (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -442,7 +442,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.74.1): + - React-Fabric/attributedstring (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -461,7 +461,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.74.1): + - React-Fabric/componentregistry (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -480,7 +480,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.74.1): + - React-Fabric/componentregistrynative (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -499,7 +499,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.74.1): + - React-Fabric/components (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -510,17 +510,17 @@ PODS: - React-Core - React-cxxreact - React-debug - - React-Fabric/components/inputaccessory (= 0.74.1) - - React-Fabric/components/legacyviewmanagerinterop (= 0.74.1) - - React-Fabric/components/modal (= 0.74.1) - - React-Fabric/components/rncore (= 0.74.1) - - React-Fabric/components/root (= 0.74.1) - - React-Fabric/components/safeareaview (= 0.74.1) - - React-Fabric/components/scrollview (= 0.74.1) - - React-Fabric/components/text (= 0.74.1) - - React-Fabric/components/textinput (= 0.74.1) - - React-Fabric/components/unimplementedview (= 0.74.1) - - React-Fabric/components/view (= 0.74.1) + - React-Fabric/components/inputaccessory (= 0.74.2) + - React-Fabric/components/legacyviewmanagerinterop (= 0.74.2) + - React-Fabric/components/modal (= 0.74.2) + - React-Fabric/components/rncore (= 0.74.2) + - React-Fabric/components/root (= 0.74.2) + - React-Fabric/components/safeareaview (= 0.74.2) + - React-Fabric/components/scrollview (= 0.74.2) + - React-Fabric/components/text (= 0.74.2) + - React-Fabric/components/textinput (= 0.74.2) + - React-Fabric/components/unimplementedview (= 0.74.2) + - React-Fabric/components/view (= 0.74.2) - React-graphics - React-jsi - React-jsiexecutor @@ -529,7 +529,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/inputaccessory (0.74.1): + - React-Fabric/components/inputaccessory (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -548,7 +548,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.74.1): + - React-Fabric/components/legacyviewmanagerinterop (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -567,7 +567,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/modal (0.74.1): + - React-Fabric/components/modal (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -586,7 +586,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/rncore (0.74.1): + - React-Fabric/components/rncore (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -605,7 +605,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.74.1): + - React-Fabric/components/root (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -624,7 +624,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/safeareaview (0.74.1): + - React-Fabric/components/safeareaview (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -643,7 +643,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.74.1): + - React-Fabric/components/scrollview (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -662,7 +662,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/text (0.74.1): + - React-Fabric/components/text (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -681,7 +681,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/textinput (0.74.1): + - React-Fabric/components/textinput (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -700,7 +700,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/unimplementedview (0.74.1): + - React-Fabric/components/unimplementedview (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -719,7 +719,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.74.1): + - React-Fabric/components/view (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -739,7 +739,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - Yoga - - React-Fabric/core (0.74.1): + - React-Fabric/core (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -758,7 +758,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.74.1): + - React-Fabric/imagemanager (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -777,7 +777,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.74.1): + - React-Fabric/leakchecker (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -796,7 +796,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.74.1): + - React-Fabric/mounting (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -815,7 +815,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.74.1): + - React-Fabric/scheduler (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -834,7 +834,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.74.1): + - React-Fabric/telemetry (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -853,7 +853,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.74.1): + - React-Fabric/templateprocessor (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -872,7 +872,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/textlayoutmanager (0.74.1): + - React-Fabric/textlayoutmanager (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -892,7 +892,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.74.1): + - React-Fabric/uimanager (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog @@ -911,45 +911,45 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricImage (0.74.1): + - React-FabricImage (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - - RCTRequired (= 0.74.1) - - RCTTypeSafety (= 0.74.1) + - RCTRequired (= 0.74.2) + - RCTTypeSafety (= 0.74.2) - React-Fabric - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.74.1) + - React-jsiexecutor (= 0.74.2) - React-logger - React-rendererdebug - React-utils - ReactCommon - Yoga - - React-featureflags (0.74.1) - - React-graphics (0.74.1): + - React-featureflags (0.74.2) + - React-graphics (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog - RCT-Folly/Fabric (= 2024.01.01.00) - - React-Core/Default (= 0.74.1) + - React-Core/Default (= 0.74.2) - React-utils - - React-hermes (0.74.1): + - React-hermes (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.1) + - React-cxxreact (= 0.74.2) - React-jsi - - React-jsiexecutor (= 0.74.1) + - React-jsiexecutor (= 0.74.2) - React-jsinspector - - React-perflogger (= 0.74.1) + - React-perflogger (= 0.74.2) - React-runtimeexecutor - - React-ImageManager (0.74.1): + - React-ImageManager (0.74.2): - glog - RCT-Folly/Fabric - React-Core/Default @@ -958,45 +958,45 @@ PODS: - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.74.1): + - React-jserrorhandler (0.74.2): - RCT-Folly/Fabric (= 2024.01.01.00) - React-debug - React-jsi - React-Mapbuffer - - React-jsi (0.74.1): + - React-jsi (0.74.2): - boost (= 1.83.0) - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-jsiexecutor (0.74.1): + - React-jsiexecutor (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-cxxreact (= 0.74.1) - - React-jsi (= 0.74.1) + - React-cxxreact (= 0.74.2) + - React-jsi (= 0.74.2) - React-jsinspector - - React-perflogger (= 0.74.1) - - React-jsinspector (0.74.1): + - React-perflogger (= 0.74.2) + - React-jsinspector (0.74.2): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-featureflags - React-jsi - - React-runtimeexecutor (= 0.74.1) - - React-jsitracing (0.74.1): + - React-runtimeexecutor (= 0.74.2) + - React-jsitracing (0.74.2): - React-jsi - - React-logger (0.74.1): + - React-logger (0.74.2): - glog - - React-Mapbuffer (0.74.1): + - React-Mapbuffer (0.74.2): - glog - React-debug - - React-nativeconfig (0.74.1) - - React-NativeModulesApple (0.74.1): + - React-nativeconfig (0.74.2) + - React-NativeModulesApple (0.74.2): - glog - hermes-engine - React-callinvoker @@ -1007,10 +1007,10 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.74.1) - - React-RCTActionSheet (0.74.1): - - React-Core/RCTActionSheetHeaders (= 0.74.1) - - React-RCTAnimation (0.74.1): + - React-perflogger (0.74.2) + - React-RCTActionSheet (0.74.2): + - React-Core/RCTActionSheetHeaders (= 0.74.2) + - React-RCTAnimation (0.74.2): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1018,7 +1018,7 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTAppDelegate (0.74.1): + - React-RCTAppDelegate (0.74.2): - RCT-Folly (= 2024.01.01.00) - RCTRequired - RCTTypeSafety @@ -1042,7 +1042,7 @@ PODS: - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.74.1): + - React-RCTBlob (0.74.2): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1055,7 +1055,7 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.74.1): + - React-RCTFabric (0.74.2): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1075,7 +1075,7 @@ PODS: - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.74.1): + - React-RCTImage (0.74.2): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1084,14 +1084,14 @@ PODS: - React-NativeModulesApple - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.74.1): + - React-RCTLinking (0.74.2): - React-Codegen - - React-Core/RCTLinkingHeaders (= 0.74.1) - - React-jsi (= 0.74.1) + - React-Core/RCTLinkingHeaders (= 0.74.2) + - React-jsi (= 0.74.2) - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule/core (= 0.74.1) - - React-RCTNetwork (0.74.1): + - ReactCommon/turbomodule/core (= 0.74.2) + - React-RCTNetwork (0.74.2): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1099,14 +1099,14 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTPushNotification (0.74.1): + - React-RCTPushNotification (0.74.2): - RCTTypeSafety - React-Codegen - React-Core/RCTPushNotificationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTSettings (0.74.1): + - React-RCTSettings (0.74.2): - RCT-Folly (= 2024.01.01.00) - RCTTypeSafety - React-Codegen @@ -1114,29 +1114,29 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - React-RCTTest (0.74.1): + - React-RCTTest (0.74.2): - RCT-Folly (= 2024.01.01.00) - - React-Core (= 0.74.1) - - React-CoreModules (= 0.74.1) - - React-jsi (= 0.74.1) - - ReactCommon/turbomodule/core (= 0.74.1) - - React-RCTText (0.74.1): - - React-Core/RCTTextHeaders (= 0.74.1) + - React-Core (= 0.74.2) + - React-CoreModules (= 0.74.2) + - React-jsi (= 0.74.2) + - ReactCommon/turbomodule/core (= 0.74.2) + - React-RCTText (0.74.2): + - React-Core/RCTTextHeaders (= 0.74.2) - Yoga - - React-RCTVibration (0.74.1): + - React-RCTVibration (0.74.2): - RCT-Folly (= 2024.01.01.00) - React-Codegen - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - ReactCommon - - React-rendererdebug (0.74.1): + - React-rendererdebug (0.74.2): - DoubleConversion - fmt (= 9.1.0) - RCT-Folly (= 2024.01.01.00) - React-debug - - React-rncore (0.74.1) - - React-RuntimeApple (0.74.1): + - React-rncore (0.74.2) + - React-RuntimeApple (0.74.2): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-callinvoker @@ -1154,7 +1154,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - React-utils - - React-RuntimeCore (0.74.1): + - React-RuntimeCore (0.74.2): - glog - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) @@ -1167,9 +1167,9 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.74.1): - - React-jsi (= 0.74.1) - - React-RuntimeHermes (0.74.1): + - React-runtimeexecutor (0.74.2): + - React-jsi (= 0.74.2) + - React-RuntimeHermes (0.74.2): - hermes-engine - RCT-Folly/Fabric (= 2024.01.01.00) - React-featureflags @@ -1180,7 +1180,7 @@ PODS: - React-nativeconfig - React-RuntimeCore - React-utils - - React-runtimescheduler (0.74.1): + - React-runtimescheduler (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) @@ -1192,15 +1192,15 @@ PODS: - React-rendererdebug - React-runtimeexecutor - React-utils - - React-utils (0.74.1): + - React-utils (0.74.2): - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - React-debug - - React-jsi (= 0.74.1) - - ReactCommon (0.74.1): - - ReactCommon/turbomodule (= 0.74.1) - - ReactCommon-Samples (0.74.1): + - React-jsi (= 0.74.2) + - ReactCommon (0.74.2): + - ReactCommon/turbomodule (= 0.74.2) + - ReactCommon-Samples (0.74.2): - DoubleConversion - fmt (= 9.1.0) - hermes-engine @@ -1211,44 +1211,44 @@ PODS: - React-jsi - React-NativeModulesApple - ReactCommon - - ReactCommon/turbomodule (0.74.1): + - ReactCommon/turbomodule (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1) - - React-cxxreact (= 0.74.1) - - React-jsi (= 0.74.1) - - React-logger (= 0.74.1) - - React-perflogger (= 0.74.1) - - ReactCommon/turbomodule/bridging (= 0.74.1) - - ReactCommon/turbomodule/core (= 0.74.1) - - ReactCommon/turbomodule/bridging (0.74.1): + - React-callinvoker (= 0.74.2) + - React-cxxreact (= 0.74.2) + - React-jsi (= 0.74.2) + - React-logger (= 0.74.2) + - React-perflogger (= 0.74.2) + - ReactCommon/turbomodule/bridging (= 0.74.2) + - ReactCommon/turbomodule/core (= 0.74.2) + - ReactCommon/turbomodule/bridging (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1) - - React-cxxreact (= 0.74.1) - - React-jsi (= 0.74.1) - - React-logger (= 0.74.1) - - React-perflogger (= 0.74.1) - - ReactCommon/turbomodule/core (0.74.1): + - React-callinvoker (= 0.74.2) + - React-cxxreact (= 0.74.2) + - React-jsi (= 0.74.2) + - React-logger (= 0.74.2) + - React-perflogger (= 0.74.2) + - ReactCommon/turbomodule/core (0.74.2): - DoubleConversion - fmt (= 9.1.0) - glog - hermes-engine - RCT-Folly (= 2024.01.01.00) - - React-callinvoker (= 0.74.1) - - React-cxxreact (= 0.74.1) - - React-debug (= 0.74.1) - - React-jsi (= 0.74.1) - - React-logger (= 0.74.1) - - React-perflogger (= 0.74.1) - - React-utils (= 0.74.1) - - ScreenshotManager (0.74.83): + - React-callinvoker (= 0.74.2) + - React-cxxreact (= 0.74.2) + - React-debug (= 0.74.2) + - React-jsi (= 0.74.2) + - React-logger (= 0.74.2) + - React-perflogger (= 0.74.2) + - React-utils (= 0.74.2) + - ScreenshotManager (0.74.84): - DoubleConversion - glog - hermes-engine @@ -1355,7 +1355,7 @@ EXTERNAL SOURCES: :podspec: "../react-native/third-party-podspecs/glog.podspec" hermes-engine: :podspec: "../react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2024-04-25-RNv0.74.1-b54a3a01c531f4f5f1904cb0770033e8b7153dff + :tag: hermes-2024-06-03-RNv0.74.2-bb1e74fe1e95c2b5a2f4f9311152da052badc2bc MyNativeView: :path: NativeComponentExample NativeCxxModuleExample: @@ -1468,66 +1468,66 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 - FBLazyVector: 898d14d17bf19e2435cafd9ea2a1033efe445709 + FBLazyVector: 4bc164e5b5e6cfc288d2b5ff28643ea15fa1a589 fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 - glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: 16b8530de1b383cdada1476cf52d1b52f0692cbc - MyNativeView: f907f1651c854a5b884e5c82d84d5348b33f35de - NativeCxxModuleExample: 48a9768ef2cba1408c84572984041ad8801c4a81 + glog: fdfdfe5479092de0c4bdbebedd9056951f092c4f + hermes-engine: 01d3e052018c2a13937aca1860fbedbccd4a41b7 + MyNativeView: a13eaef18acc153aecddff297bd2b0d3c616798f + NativeCxxModuleExample: de8e0c86469c4aee4528c8a1a30454d5b7a2caf0 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47 - RCTDeprecation: efb313d8126259e9294dc4ee0002f44a6f676aba - RCTRequired: f49ea29cece52aee20db633ae7edc4b271435562 - RCTTypeSafety: a11979ff0570d230d74de9f604f7d19692157bc4 - React: 88794fad7f460349dbc9df8a274d95f37a009f5d - React-callinvoker: 7a7023e34a55c89ea2aa62486bb3c1164ab0be0c - React-Codegen: 51420855264c290b2697dfad4b27f1bea41ada86 - React-Core: 60075333bc22b5a793d3f62e207368b79bff2e64 - React-CoreModules: 147c314d6b3b1e069c9ad64cbbbeba604854ff86 - React-cxxreact: 5de27fd8bff4764acb2eac3ee66001e0e2b910e7 - React-debug: 6397f0baf751b40511d01e984b01467d7e6d8127 - React-Fabric: 6fa475e16e0a37b38d462cec32b70fd5cf886305 - React-FabricImage: 7e09b3704e3fa084b4d44b5b5ef6e2e3d3334ec0 - React-featureflags: 2eb79dd9df4095bff519379f2a4c915069e330bb - React-graphics: 82a482a3aa5d9659b74cdf2c8b57faf67eaa10fb - React-hermes: d93936b02de2fd7e67c11e92c16d4278a14d0134 - React-ImageManager: ebb3c4812e2c5acba5a89728c2d77729471329ad - React-jserrorhandler: a08e0adcf1612900dde82b8bf8e93e7d2ad953b3 - React-jsi: f46d09ee5079a4f3b637d30d0e59b8ea6470632c - React-jsiexecutor: e73579560957aa3ca9dc02ab90e163454279d48c - React-jsinspector: e8ba20dde269c7c1d45784b858fa1cf4383f0bbb - React-jsitracing: 233d1a798fe0ff33b8e630b8f00f62c4a8115fbc - React-logger: 7e7403a2b14c97f847d90763af76b84b152b6fce - React-Mapbuffer: 11029dcd47c5c9e057a4092ab9c2a8d10a496a33 - React-nativeconfig: b0073a590774e8b35192fead188a36d1dca23dec - React-NativeModulesApple: df46ff3e3de5b842b30b4ca8a6caae6d7c8ab09f - React-perflogger: 3d31e0d1e8ad891e43a09ac70b7b17a79773003a - React-RCTActionSheet: c4a3a134f3434c9d7b0c1054f1a8cfed30c7a093 - React-RCTAnimation: 0e5d15320eeece667fcceb6c785acf9a184e9da1 - React-RCTAppDelegate: c4f6c0700b8950a8b18c2e004996eec1807d430a - React-RCTBlob: c46aaaee693d371a1c7cae2a8c8ee2aa7fbc1adb - React-RCTFabric: 0dbf28ce96c7f2843483e32a725a5b5793584ff3 - React-RCTImage: a04dba5fcc823244f5822192c130ecf09623a57f - React-RCTLinking: 533bf13c745fcb2a0c14e0e49fd149586a7f0d14 - React-RCTNetwork: a29e371e0d363d7b4c10ab907bc4d6ae610541e9 - React-RCTPushNotification: cf631deef7fb15f14a8183d14bc11e99c8ecfb8a - React-RCTSettings: 127813224780861d0d30ecda17a40d1dfebe7d73 - React-RCTTest: 4cd2287d741c31e48e700116f8d212f5d673412a - React-RCTText: 8a823f245ecf82edb7569646e3c4d8041deb800a - React-RCTVibration: 46b5fae74e63f240f22f39de16ad6433da3b65d9 - React-rendererdebug: 4653f8da6ab1d7b01af796bdf8ca47a927539e39 - React-rncore: 4f1e645acb5107bd4b4cf29eff17b04a7cd422f3 - React-RuntimeApple: 013b606e743efb5ee14ef03c32379b78bfe74354 - React-RuntimeCore: 7205be45a25713b5418bbf2db91ddfcca0761d8b - React-runtimeexecutor: a278d4249921853d4a3f24e4d6e0ff30688f3c16 - React-RuntimeHermes: 44c628568ce8feedc3acfbd48fc07b7f0f6d2731 - React-runtimescheduler: e2152ed146b6a35c07386fc2ac4827b27e6aad12 - React-utils: 3285151c9d1e3a28a9586571fc81d521678c196d - ReactCommon: f42444e384d82ab89184aed5d6f3142748b54768 - ReactCommon-Samples: b9fb0fa6f1fdd843109d73a30aa49e5407ec8d90 - ScreenshotManager: 1a62f8f0989fd02220d54eda0ef0ccb39b5527ac + RCTDeprecation: b03c35057846b685b3ccadc9bfe43e349989cdb2 + RCTRequired: 194626909cfa8d39ca6663138c417bc6c431648c + RCTTypeSafety: 552aff5b8e8341660594db00e53ac889682bc120 + React: a57fe42044fe6ed3e828f8867ce070a6c5872754 + React-callinvoker: 6bedefb354a8848b534752417954caa3a5cf34f9 + React-Codegen: 7b38b4f2d723bd0874514582a29526cde4281677 + React-Core: 289ee3dfc1639bb9058c1e77427bb48169c26d7a + React-CoreModules: eda5ce541a1f552158317abd90a5a0f6a4f8d6f7 + React-cxxreact: 56bd17ccc6d4248116f7f95884ddb8c528379fb6 + React-debug: 164b8e302404d92d4bec39778a5e03bcb1b6eb08 + React-Fabric: 05620c36074e3ab397dd8f9db0deb6d3c38b4efa + React-FabricImage: 2a8a7f5729f5c44e32e6f58f7225ee1017ed0704 + React-featureflags: d97a6393993052e951e16a3b81206e22110be8d2 + React-graphics: ef07d701f4eb72ae6fca6ed0a7260a04f2a58dec + React-hermes: 6ccc301ababfa17a9aad25a7e33faf325fd024b4 + React-ImageManager: 00404bfe122626bc6493621f2a31ce802115a9b3 + React-jserrorhandler: 5e2632590a84363855b2083e6b3d501e93bc3f04 + React-jsi: 828703c235f4eea1647897ee8030efdc6e8e9f14 + React-jsiexecutor: 713d7bbef0a410cee5b3b78f73ed1fc16e177ba7 + React-jsinspector: e1fa5325a47f34645195c63e3312ddb6a2efef5d + React-jsitracing: 0fa7f78d8fdda794667cb2e6f19c874c1cf31d7e + React-logger: 29fa3e048f5f67fe396bc08af7606426d9bd7b5d + React-Mapbuffer: bf56147c9775491e53122a94c423ac201417e326 + React-nativeconfig: 9f223cd321823afdecf59ed00861ab2d69ee0fc1 + React-NativeModulesApple: ff7efaff7098639db5631236cfd91d60abff04c0 + React-perflogger: 32ed45d9cee02cf6639acae34251590dccd30994 + React-RCTActionSheet: 19f967ddaea258182b56ef11437133b056ba2adf + React-RCTAnimation: d7f4137fc44a08bba465267ea7cb1dbdb7c4ec87 + React-RCTAppDelegate: 2b3f4d8009796af209a0d496e73276b743acee08 + React-RCTBlob: c6c3e1e0251700b7bea036b893913f22e2b9cb47 + React-RCTFabric: 93a3ea55169d19294f07092013c1c9ea7a015c9b + React-RCTImage: 40528ab74a4fef0f0e2ee797a074b26d120b6cc6 + React-RCTLinking: 385b5beb96749aae9ae1606746e883e1c9f8a6a7 + React-RCTNetwork: ffc9f05bd8fa5b3bce562199ba41235ad0af645c + React-RCTPushNotification: aa71ec3f333746944b29491fddc12d53bf85c1e0 + React-RCTSettings: 21914178bb65cb2c20c655ae1fb401617ae74618 + React-RCTTest: 501b9b159e69009f6c2a5e23d5225f59cea65027 + React-RCTText: 7f8dba1a311e99f4de15bbace2350e805f33f024 + React-RCTVibration: e4ccf673579d0d94a96b3a0b64492db08f8324d5 + React-rendererdebug: ac70f40de137ce7bdbc55eaee60c467a215d9923 + React-rncore: edfff7a3f7f82ca1e0ba26978c6d84c7a8970dac + React-RuntimeApple: a0c98b75571aa5f44ddc7c6e9fd55803fa4db00f + React-RuntimeCore: 4b8db1fe2f3f4a3a5ecb22e1a419824e3e2cd7ef + React-runtimeexecutor: 5961acc7a77b69f964e1645a5d6069e124ce6b37 + React-RuntimeHermes: c5825bfae4815fdf4e9e639340c3a986a491884c + React-runtimescheduler: 56b642bf605ba5afa500d35790928fc1d51565ad + React-utils: 4476b7fcbbd95cfd002f3e778616155241d86e31 + ReactCommon: ecad995f26e0d1e24061f60f4e5d74782f003f12 + ReactCommon-Samples: f00190ee5cf6d6b81fa0482c7100daa5434bc7d2 + ScreenshotManager: f91b842c0f6106e39b7ad5a6ffc092ece82ee778 SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d - Yoga: 348f8b538c3ed4423eb58a8e5730feec50bce372 + Yoga: ae3c32c514802d30f687a04a6a35b348506d411f PODFILE CHECKSUM: 60b84dd598fc04e9ed84dbc82e2cb3b99b1d7adf From 9a5faac12b7ff929341bcbb12a604e10110443a3 Mon Sep 17 00:00:00 2001 From: Soe Lynn Date: Wed, 29 May 2024 07:49:13 -0700 Subject: [PATCH 187/223] overflow props is not honored in ScrollView in new architecture (#44699) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44699 Changelog: [Internal] In Fabric, overflow props for ScrollView is not passed down. Hence, the overflow props is ignored and FlatList content is always clipped. Reported from OSS https://github.com/facebook/react-native/issues/44683 Reviewed By: sammy-SC Differential Revision: D57895399 fbshipit-source-id: 6ce65bea0803971060e8229b66563123dd6fc114 --- .../ScrollView/RCTScrollViewComponentView.mm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm b/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm index 24e256a09d3602..547dd819a74ea0 100644 --- a/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +++ b/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm @@ -122,8 +122,8 @@ - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { _props = ScrollViewShadowNode::defaultSharedProps(); - _scrollView = [[RCTEnhancedScrollView alloc] initWithFrame:self.bounds]; + _scrollView.clipsToBounds = _props->getClipsContentToBounds(); _scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; _scrollView.delaysContentTouches = NO; ((RCTEnhancedScrollView *)_scrollView).overridingDelegate = self; @@ -253,6 +253,11 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared & } } + // Overflow prop + if (oldScrollViewProps.getClipsContentToBounds() != newScrollViewProps.getClipsContentToBounds()) { + _scrollView.clipsToBounds = newScrollViewProps.getClipsContentToBounds(); + } + MAP_SCROLL_VIEW_PROP(zoomScale); if (oldScrollViewProps.contentInset != newScrollViewProps.contentInset) { From a2b52af3bcc273cf85f01510c24d4e8da1b45656 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Tue, 4 Jun 2024 05:57:33 -0700 Subject: [PATCH 188/223] Fix border drawn over children on iOS (#44777) Summary: Fixes https://github.com/facebook/react-native/issues/44690 In the code responsible for drawing border on iOS there's a comment saying: > iOS draws borders in front of the content whereas CSS draws them behind the content. For this reason, only use iOS border drawing when clipping or when the border is hidden. The condition that follows checks whether the content is clipped and the width and alpha channel of the border: https://github.com/facebook/react-native/blob/e0a2e86d0346bd7e40adf69311daa538ca8c9c5f/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm#L643-L644. The problem is when the color is not set at all - `colorComponentsFromColor(borderMetrics.borderColors.left).alpha` will be equal to 0 since the relevant `SharedColor` is `null`: https://github.com/facebook/react-native/blob/e0a2e86d0346bd7e40adf69311daa538ca8c9c5f/packages/react-native/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.mm#L76-L86 Then it uses the path with the default iOS behavior (drawing the border on top of the content) instead of the custom one (with the border below) and it seems like it defaults to drawing black when the passed color is `nil`. This PR simply adds one more check to make sure the color is actually set before choosing the default platform behavior. ## Changelog: [IOS] [FIXED] - Fixed border being drawn over children when no color was set Pull Request resolved: https://github.com/facebook/react-native/pull/44777 Test Plan: Tested on the code from the issue. |Before|After| |-|-| |Screenshot 2024-06-04 at 11 18 14|Screenshot 2024-06-04 at 11 17 38| Reviewed By: cortinico Differential Revision: D58131337 Pulled By: cipolleschi fbshipit-source-id: 7da247d81ecec586de6f0023e0cb399f9966213d --- .../Mounting/ComponentViews/View/RCTViewComponentView.mm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm b/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm index 8b9f511d89aa57..8026a4bafc7635 100644 --- a/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +++ b/packages/react-native/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm @@ -633,8 +633,9 @@ - (void)invalidateLayer // iOS draws borders in front of the content whereas CSS draws them behind // the content. For this reason, only use iOS border drawing when clipping // or when the border is hidden. - borderMetrics.borderWidths.left == 0 || - colorComponentsFromColor(borderMetrics.borderColors.left).alpha == 0 || self.clipsToBounds); + borderMetrics.borderWidths.left == 0 || self.clipsToBounds || + (colorComponentsFromColor(borderMetrics.borderColors.left).alpha == 0 && + (*borderMetrics.borderColors.left).getUIColor() != nullptr)); CGColorRef backgroundColor = [_backgroundColor resolvedColorWithTraitCollection:self.traitCollection].CGColor; From d9e42785f386326b98b189599a9efc3e6dc902b9 Mon Sep 17 00:00:00 2001 From: Kudo Chien Date: Thu, 6 Jun 2024 03:50:50 -0700 Subject: [PATCH 189/223] Support customizeRootView from RCTRootViewFactory (#44775) Summary: The new `customizeRootView` does not have the feature parity as `createRootViewWithBridge` where reusing RCTRootViewFactory to create a root view, it does not call `customizeRootView`. This PR moves the `customizeRootView` support from RCTAppDelegate into RCTRootViewFactory and improves the customizeRootView support. [IOS] [CHANGED] - Support `customizeRootView` from `RCTRootViewFactory` Pull Request resolved: https://github.com/facebook/react-native/pull/44775 Test Plan: Add customizeRootView to **packages/rn-tester/RNTester/AppDelegate.mm** and test whether RNTester has blue background color in both new arch and old arch mode. ```objc - (void)customizeRootView:(RCTRootView *)rootView { rootView.backgroundColor = [UIColor blueColor]; } ``` Reviewed By: dmytrorykun Differential Revision: D58179693 Pulled By: cipolleschi fbshipit-source-id: 0fac9a1bd5b2583a2700b3a3d2c80d0f608c4481 --- .../Libraries/AppDelegate/RCTAppDelegate.mm | 5 ++++- .../Libraries/AppDelegate/RCTRootViewFactory.h | 8 ++++++++ .../Libraries/AppDelegate/RCTRootViewFactory.mm | 14 +++++++++++--- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm index d79fbb42b35a92..18b299b539193c 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTAppDelegate.mm @@ -65,7 +65,6 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( [RCTComponentViewFactory currentComponentViewFactory].thirdPartyFabricComponentsProvider = self; } [self _logWarnIfCreateRootViewWithBridgeIsOverridden]; - [self customizeRootView:(RCTRootView *)rootView]; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIViewController *rootViewController = [self createRootViewController]; @@ -261,6 +260,10 @@ - (RCTRootViewFactory *)createRCTRootViewFactory return [weakSelf createBridgeWithDelegate:delegate launchOptions:launchOptions]; }; + configuration.customizeRootView = ^(UIView *_Nonnull rootView) { + [weakSelf customizeRootView:(RCTRootView *)rootView]; + }; + return [[RCTRootViewFactory alloc] initWithConfiguration:configuration andTurboModuleManagerDelegate:self]; } diff --git a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h index 502203fcdf9c1a..d5cd14cce15f0d 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h +++ b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.h @@ -23,6 +23,7 @@ typedef UIView *_Nonnull ( ^RCTCreateRootViewWithBridgeBlock)(RCTBridge *bridge, NSString *moduleName, NSDictionary *initProps); typedef RCTBridge *_Nonnull ( ^RCTCreateBridgeWithDelegateBlock)(id delegate, NSDictionary *launchOptions); +typedef void (^RCTCustomizeRootViewBlock)(UIView *rootView); typedef NSURL *_Nullable (^RCTSourceURLForBridgeBlock)(RCTBridge *bridge); typedef NSURL *_Nullable (^RCTBundleURLBlock)(void); typedef NSArray> *_Nonnull (^RCTExtraModulesForBridgeBlock)(RCTBridge *bridge); @@ -91,6 +92,13 @@ typedef BOOL (^RCTBridgeDidNotFindModuleBlock)(RCTBridge *bridge, NSString *modu */ @property (nonatomic, nullable) RCTCreateBridgeWithDelegateBlock createBridgeWithDelegate; +/** + * Block that allows to customize the rootView that is passed to React Native. + * + * @parameter: rootView - The root view to customize. + */ +@property (nonatomic, nullable) RCTCustomizeRootViewBlock customizeRootView; + @end #pragma mark - RCTRootViewFactory diff --git a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm index 901b1c9996bd7b..7131d3f876cac0 100644 --- a/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm +++ b/packages/react-native/Libraries/AppDelegate/RCTRootViewFactory.mm @@ -145,17 +145,25 @@ - (UIView *)viewWithModuleName:(NSString *)moduleName initWithSurface:surface sizeMeasureMode:RCTSurfaceSizeMeasureModeWidthExact | RCTSurfaceSizeMeasureModeHeightExact]; + if (self->_configuration.customizeRootView != nil) { + self->_configuration.customizeRootView(surfaceHostingProxyRootView); + } return surfaceHostingProxyRootView; } [self createBridgeIfNeeded:launchOptions]; [self createBridgeAdapterIfNeeded]; + UIView *rootView; if (self->_configuration.createRootViewWithBridge != nil) { - return self->_configuration.createRootViewWithBridge(self.bridge, moduleName, initProps); + rootView = self->_configuration.createRootViewWithBridge(self.bridge, moduleName, initProps); + } else { + rootView = [self createRootViewWithBridge:self.bridge moduleName:moduleName initProps:initProps]; } - - return [self createRootViewWithBridge:self.bridge moduleName:moduleName initProps:initProps]; + if (self->_configuration.customizeRootView != nil) { + self->_configuration.customizeRootView(rootView); + } + return rootView; } - (RCTBridge *)createBridgeWithDelegate:(id)delegate launchOptions:(NSDictionary *)launchOptions From e210c7c5741202a6e1b372731b50fdb59a7232bb Mon Sep 17 00:00:00 2001 From: Fabrizio Bertoglio Date: Thu, 28 Mar 2024 16:05:06 -0700 Subject: [PATCH 190/223] Fix Multiline TextInput with a fixed height scrolls to the bottom when prepending new lines to the text (#38679) Summary: ### Please re-state the problem that we are trying to solve in this issue. Multiline TextInput with a fixed height will scroll to the bottom of the screen when prepending new lines to the text. ### What is the root cause of that problem? The issue is caused by iOS UITextView: - The cursor moves to the end of the text when prepending new lines. - Moving the cursor to the end of the text triggers the scroll to the bottom. The behavior was reproduced on an iOS App (without react-native). The example included below implements a Component RCTUITextView based on UITextView, which modifies the UITextView attributedText with the textViewDidChange callback (source code available in this [comment](https://github.com/Expensify/App/issues/19507#issuecomment-1595730348)). Adding a new line on top of the UITextView on iOS results in: Issue 1) The cursor moves to the end of TextInput text Issue 2) The TextInput scrolls to the bottom
Reproducing the issue on an iOS App without react-native

Issue 1) is already fixed in react-native, which restores the previous cursor position (on Fabric with [_setAttributedString](https://github.com/fabriziobertoglio1987/react-native/blob/71e7bbbc2cf21abacf7009e300f5bba737e20d17/packages/react-native/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm#L600-L610)) after changing the text. Issue 2) needs to be fixed in react-native. ### What changes do you think we should make in order to solve the problem? Setting the correct TextInput scroll position after re-setting the cursor. ## Changelog: [IOS] [FIXED] - Fix Multiline TextInput with a fixed height scrolls to the bottom when changing AttributedText Pull Request resolved: https://github.com/facebook/react-native/pull/38679 Test Plan: Fabric (reproduces on controlled/not controlled TextInput example): | Before | After | | ----------- | ----------- | |