From 8a1f1671001644142c71718b2651f4a167db034e Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Mon, 27 Mar 2023 18:48:06 +0100 Subject: [PATCH 1/2] Port [RN] Fix paths in objc-test.sh, temporarily exclude /IntegrationTests from main --- packages/react-native/template/package.json | 12 +++++++++ .../rn-tester/RNTester/RNTester.xctestplan | 1 + packages/rn-tester/package.json | 2 +- scripts/objc-test.sh | 27 ++++++++++++------- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index cd546c3f77d546..241e3143f56d04 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -31,5 +31,17 @@ }, "engines": { "node": ">=16" + }, + "overrides": { + "@react-native-community/cli": "11.0.0-alpha.0", + "@react-native-community/cli-platform-android": "11.0.0-alpha.0", + "@react-native-community/cli-platform-ios": "11.0.0-alpha.0", + "@react-native-community/cli-plugin-metro": "11.0.0-alpha.0" + }, + "resolutions": { + "@react-native-community/cli": "11.0.0-alpha.0", + "@react-native-community/cli-platform-android": "11.0.0-alpha.0", + "@react-native-community/cli-platform-ios": "11.0.0-alpha.0", + "@react-native-community/cli-plugin-metro": "11.0.0-alpha.0" } } diff --git a/packages/rn-tester/RNTester/RNTester.xctestplan b/packages/rn-tester/RNTester/RNTester.xctestplan index 147173b22f8bc4..3fcd0a248433aa 100644 --- a/packages/rn-tester/RNTester/RNTester.xctestplan +++ b/packages/rn-tester/RNTester/RNTester.xctestplan @@ -28,6 +28,7 @@ }, "testTargets" : [ { + "enabled": false, "target" : { "containerPath" : "container:RNTesterPods.xcodeproj", "identifier" : "E7DB215222B2F332005AC45F", diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index 28ae2dad4d0648..90924e232302f9 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -11,7 +11,7 @@ "directory": "packages/rn-tester" }, "scripts": { - "start": "../react-native/scripts/packager.sh", + "start": "react-native start", "install-android-jsc": "../../gradlew :packages:rn-tester:android:app:installJscDebug", "install-android-hermes": "../../gradlew :packages:rn-tester:android:app:installHermesDebug", "clean-android": "rm -rf android/app/build", diff --git a/scripts/objc-test.sh b/scripts/objc-test.sh index 83ff7639de7f40..490e7ada8b233a 100755 --- a/scripts/objc-test.sh +++ b/scripts/objc-test.sh @@ -75,9 +75,9 @@ waitForWebSocketServer() { runTests() { # shellcheck disable=SC1091 - source "./scripts/.tests.env" + source "$ROOT/scripts/.tests.env" xcodebuild build test \ - -workspace packages/rn-tester/RNTesterPods.xcworkspace \ + -workspace RNTesterPods.xcworkspace \ -scheme RNTester \ -sdk iphonesimulator \ -destination "platform=iOS Simulator,name=$IOS_DEVICE,OS=$IOS_TARGET_OS" \ @@ -86,7 +86,7 @@ runTests() { buildProject() { xcodebuild build \ - -workspace packages/rn-tester/RNTesterPods.xcworkspace \ + -workspace RNTesterPods.xcworkspace \ -scheme RNTester \ -sdk iphonesimulator } @@ -105,16 +105,21 @@ xcbeautifyFormat() { xcbeautify --report junit --report-path "$REPORTS_DIR/ios/results.xml" } -preloadBundles() { - # Preload the RNTesterApp bundle for better performance in integration tests - curl -s 'http://localhost:8081/packages/rn-tester/js/RNTesterApp.ios.bundle?platform=ios&dev=true' -o /dev/null - curl -s 'http://localhost:8081/packages/rn-tester/js/RNTesterApp.ios.bundle?platform=ios&dev=true&minify=false' -o /dev/null +preloadBundlesRNIntegrationTests() { + # Preload IntegrationTests bundles (/) + # TODO(T149119847): These need to be relocated into a dir with a Metro config curl -s 'http://localhost:8081/IntegrationTests/IntegrationTestsApp.bundle?platform=ios&dev=true' -o /dev/null curl -s 'http://localhost:8081/IntegrationTests/RCTRootViewIntegrationTestApp.bundle?platform=ios&dev=true' -o /dev/null } +preloadBundlesRNTester() { + # Preload RNTesterApp bundles (packages/rn-tester/) + curl -s 'http://localhost:8081/js/RNTesterApp.ios.bundle?platform=ios&dev=true' -o /dev/null + curl -s 'http://localhost:8081/js/RNTesterApp.ios.bundle?platform=ios&dev=true&minify=false' -o /dev/null +} + main() { - cd "$ROOT" || exit + cd "$ROOT/packages/rn-tester" || exit # If first argument is "test", actually start the packager and run tests. # Otherwise, just build RNTester and exit @@ -122,13 +127,15 @@ main() { # Start the WebSocket test server echo "Launch WebSocket Server" - sh "./IntegrationTests/launchWebSocketServer.sh" & + sh "$ROOT/IntegrationTests/launchWebSocketServer.sh" & waitForWebSocketServer # Start the packager yarn start --max-workers=1 || echo "Can't start packager automatically" & waitForPackager - preloadBundles + preloadBundlesRNTester + # TODO(T149119847) + # preloadBundlesRNIntegrationTests # Build and run tests. if [ -x "$(command -v xcbeautify)" ]; then From 4d245ccb95ae2160415b2f17032496d56c691ebf Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 21 Mar 2023 04:17:09 -0700 Subject: [PATCH 2/2] Add @react-native/metro-config package (#36502) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: Changelog: [General][Added] - Add `react-native/metro-config` package Pull Request resolved: https://github.com/facebook/react-native/pull/36502 ## Context ### React Native Metro config → React Native repo (https://github.com/facebook/react-native/pull/36502) We (the React Native team) are aiming to relocate the default Metro config for React Native out of `react-native-community/cli-plugin-metro` and **into the React Native repo + app template** as a new `react-native/metro-config` package. This is the first (and minimum viable) phase we can ship to separate the release process of Metro from RN CLI in order to reduce coupling and iterate faster for our users. **See full motivation, design, and test plan here: https://github.com/facebook/react-native/pull/36502** ## Changes - This PR adds the new `react-native/metro-config` package, reproduces all static values previously defined in RN CLI. The values which remain in RN CLI are dynamic values derived from CLI options passed by the user. {F906910591} Reviewed By: cortinico Differential Revision: D44099692 fbshipit-source-id: 672a67e19d866ac2c64fc84983b5d82c604918c6 --- package.json | 1 + packages/metro-config/index.js | 86 ++++++++++++++++ packages/metro-config/package.json | 18 ++++ packages/react-native/metro.config.js | 10 +- packages/react-native/package.json | 13 +-- .../react-native/template/metro.config.js | 23 +++-- packages/react-native/template/package.json | 17 +--- packages/rn-tester/metro.config.js | 12 ++- packages/rn-tester/package.json | 4 +- yarn.lock | 99 +++++++------------ 10 files changed, 180 insertions(+), 103 deletions(-) create mode 100644 packages/metro-config/index.js create mode 100644 packages/metro-config/package.json diff --git a/package.json b/package.json index e52ee17aea99c0..6c7f0ffd0e2f5a 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "@definitelytyped/dtslint": "^0.0.127", "@jest/create-cache-key-function": "^29.2.1", "@reactions/component": "^2.0.2", + "@react-native/metro-config": "^0.72.0", "@types/react": "^18.0.18", "@typescript-eslint/parser": "^5.30.5", "async": "^3.2.2", diff --git a/packages/metro-config/index.js b/packages/metro-config/index.js new file mode 100644 index 00000000000000..07a16e217c3d2b --- /dev/null +++ b/packages/metro-config/index.js @@ -0,0 +1,86 @@ +/** + * 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 + * @noformat + */ + +/*:: import type {ConfigT} from 'metro-config'; */ + +const {getDefaultConfig: getBaseConfig, mergeConfig} = require('metro-config'); + +const INTERNAL_CALLSITES_REGEX = new RegExp( + [ + '/Libraries/Renderer/implementations/.+\\.js$', + '/Libraries/BatchedBridge/MessageQueue\\.js$', + '/Libraries/YellowBox/.+\\.js$', + '/Libraries/LogBox/.+\\.js$', + '/Libraries/Core/Timers/.+\\.js$', + '/Libraries/WebSocket/.+\\.js$', + '/Libraries/vendor/.+\\.js$', + '/node_modules/react-devtools-core/.+\\.js$', + '/node_modules/react-refresh/.+\\.js$', + '/node_modules/scheduler/.+\\.js$', + '/node_modules/event-target-shim/.+\\.js$', + '/node_modules/invariant/.+\\.js$', + '/node_modules/react-native/index.js$', + '/metro-runtime/.+\\.js$', + '^\\[native code\\]$', + ].join('|'), +); + +/** + * Get the base Metro configuration for a React Native project. + */ +function getDefaultConfig( + projectRoot /*: string */ +) /*: ConfigT */ { + const config = { + resolver: { + resolverMainFields: ['react-native', 'browser', 'main'], + platforms: ['android', 'ios'], + unstable_conditionNames: ['import', 'require', 'react-native'], + }, + serializer: { + getPolyfills: () => require('@react-native/js-polyfills')(), + }, + server: { + port: Number(process.env.RCT_METRO_PORT) || 8081, + }, + symbolicator: { + customizeFrame: (frame /*: $ReadOnly<{file: ?string, ...}>*/) => { + const collapse = Boolean( + frame.file && INTERNAL_CALLSITES_REGEX.test(frame.file), + ); + return {collapse}; + }, + }, + transformer: { + allowOptionalDependencies: true, + assetRegistryPath: 'react-native/Libraries/Image/AssetRegistry', + asyncRequireModulePath: require.resolve( + 'metro-runtime/src/modules/asyncRequire', + ), + babelTransformerPath: require.resolve( + 'metro-react-native-babel-transformer', + ), + getTransformOptions: async () => ({ + transform: { + experimentalImportSupport: false, + inlineRequires: true, + }, + }), + }, + watchFolders: [], + }; + + return mergeConfig( + getBaseConfig.getDefaultValues(projectRoot), + config, + ); +} + +module.exports = {getDefaultConfig}; diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json new file mode 100644 index 00000000000000..d97d633c1b1dc2 --- /dev/null +++ b/packages/metro-config/package.json @@ -0,0 +1,18 @@ +{ + "name": "@react-native/metro-config", + "version": "0.72.0", + "description": "Metro configuration for React Native.", + "repository": { + "type": "git", + "url": "git@github.com:facebook/react-native.git", + "directory": "packages/metro-config" + }, + "license": "MIT", + "exports": "./index.js", + "dependencies": { + "@react-native/js-polyfills": "^0.72.1", + "metro-config": "0.76.0", + "metro-react-native-babel-transformer": "0.76.0", + "metro-runtime": "0.76.0" + } +} diff --git a/packages/react-native/metro.config.js b/packages/react-native/metro.config.js index 0805c2d035ef1b..bd787c451b2282 100644 --- a/packages/react-native/metro.config.js +++ b/packages/react-native/metro.config.js @@ -9,14 +9,15 @@ 'use strict'; +const {getDefaultConfig} = require('@react-native/metro-config'); +const {mergeConfig} = require('metro-config'); const path = require('path'); -const getPolyfills = require('./rn-get-polyfills'); /** * This cli config is needed for development purposes, e.g. for running * integration tests during local development or on CI services. */ -module.exports = { +const config = { // Make Metro able to resolve required packages that might be imported from /packages/react-native watchFolders: [ path.resolve(__dirname, '../../node_modules'), @@ -31,7 +32,6 @@ module.exports = { 'react-native': __dirname, }, }, - serializer: { - getPolyfills, - }, }; + +module.exports = mergeConfig(getDefaultConfig(__dirname), config); diff --git a/packages/react-native/package.json b/packages/react-native/package.json index fd7ffca1ebee5d..e2d0e37aef857e 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -79,13 +79,13 @@ }, "dependencies": { "@jest/create-cache-key-function": "^29.2.1", - "@react-native-community/cli": "11.0.0-alpha.0", - "@react-native-community/cli-platform-android": "11.0.0-alpha.0", - "@react-native-community/cli-platform-ios": "11.0.0-alpha.0", + "@react-native-community/cli": "11.0.0", + "@react-native-community/cli-platform-android": "11.0.0", + "@react-native-community/cli-platform-ios": "11.0.0", "@react-native/assets-registry": "^0.72.0", "@react-native/codegen": "^0.72.4", "@react-native/gradle-plugin": "^0.72.6", - "@react-native/js-polyfills": "^0.72.1", + "@react-native/js-polyfills": "^0.72.0", "@react-native/normalize-colors": "^0.72.0", "@react-native/virtualized-lists": "^0.72.3", "abort-controller": "^3.0.0", @@ -98,8 +98,9 @@ "jest-environment-node": "^29.2.1", "jsc-android": "^250231.0.0", "memoize-one": "^5.0.0", - "metro-runtime": "0.75.1", - "metro-source-map": "0.75.1", + "metro-react-native-babel-transformer": "0.76.0", + "metro-runtime": "0.76.0", + "metro-source-map": "0.76.0", "mkdirp": "^0.5.1", "nullthrows": "^1.1.1", "pretty-format": "^26.5.2", diff --git a/packages/react-native/template/metro.config.js b/packages/react-native/template/metro.config.js index e91aba937cd579..eec104b8e9190b 100644 --- a/packages/react-native/template/metro.config.js +++ b/packages/react-native/template/metro.config.js @@ -5,13 +5,16 @@ * @format */ -module.exports = { - transformer: { - getTransformOptions: async () => ({ - transform: { - experimentalImportSupport: false, - inlineRequires: true, - }, - }), - }, -}; +const {getDefaultConfig} = require('@react-native/metro-config'); + +const {mergeConfig} = require('metro-config'); + +/** + * Metro configuration + * https://facebook.github.io/metro/docs/configuration + * + * @type {import('metro-config').MetroConfig} + */ +const config = {}; + +module.exports = mergeConfig(getDefaultConfig(__dirname), config); diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json index 241e3143f56d04..77d222db5aaa69 100644 --- a/packages/react-native/template/package.json +++ b/packages/react-native/template/package.json @@ -18,30 +18,21 @@ "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.12.5", "@react-native/eslint-config": "^0.72.1", + "@react-native/metro-config": "^0.72.0", "@tsconfig/react-native": "^2.0.2", + "@types/metro-config": "^0.76.1", "@types/react": "^18.0.24", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.2.1", "eslint": "^8.19.0", "jest": "^29.2.1", - "metro-react-native-babel-preset": "0.75.1", + "metro-config": "0.76.0", + "metro-react-native-babel-preset": "0.76.0", "prettier": "^2.4.1", "react-test-renderer": "18.2.0", "typescript": "4.8.4" }, "engines": { "node": ">=16" - }, - "overrides": { - "@react-native-community/cli": "11.0.0-alpha.0", - "@react-native-community/cli-platform-android": "11.0.0-alpha.0", - "@react-native-community/cli-platform-ios": "11.0.0-alpha.0", - "@react-native-community/cli-plugin-metro": "11.0.0-alpha.0" - }, - "resolutions": { - "@react-native-community/cli": "11.0.0-alpha.0", - "@react-native-community/cli-platform-android": "11.0.0-alpha.0", - "@react-native-community/cli-platform-ios": "11.0.0-alpha.0", - "@react-native-community/cli-plugin-metro": "11.0.0-alpha.0" } } diff --git a/packages/rn-tester/metro.config.js b/packages/rn-tester/metro.config.js index a49778e984d0d8..afea15c559afd5 100644 --- a/packages/rn-tester/metro.config.js +++ b/packages/rn-tester/metro.config.js @@ -9,14 +9,17 @@ 'use strict'; +const {getDefaultConfig} = require('@react-native/metro-config'); +const {mergeConfig} = require('metro-config'); const path = require('path'); -const getPolyfills = require('../react-native/rn-get-polyfills'); /** * This cli config is needed for development purposes, e.g. for running * integration tests during local development or on CI services. + * + * @type {import('metro-config').MetroConfig} */ -module.exports = { +const config = { // Make Metro able to resolve required external dependencies watchFolders: [ path.resolve(__dirname, '../../node_modules'), @@ -32,7 +35,6 @@ module.exports = { 'react-native': path.resolve(__dirname, '../react-native'), }, }, - serializer: { - getPolyfills, - }, }; + +module.exports = mergeConfig(getDefaultConfig(__dirname), config); diff --git a/packages/rn-tester/package.json b/packages/rn-tester/package.json index 90924e232302f9..36e39e0697a1aa 100644 --- a/packages/rn-tester/package.json +++ b/packages/rn-tester/package.json @@ -20,9 +20,9 @@ "clean-ios": "rm -rf build/generated/ios Pods Podfile.lock" }, "dependencies": { + "flow-enums-runtime": "^0.0.5", "invariant": "^2.2.4", - "nullthrows": "^1.1.1", - "flow-enums-runtime": "^0.0.5" + "nullthrows": "^1.1.1" }, "peerDependencies": { "react": "18.2.0", diff --git a/yarn.lock b/yarn.lock index b7293aed5d1217..0dea5b9279d3c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2248,7 +2248,7 @@ optionalDependencies: npmlog "2 || ^3.1.0 || ^4.0.0" -"@react-native-community/cli-clean@^11.0.0-alpha.0": +"@react-native-community/cli-clean@^11.0.0": version "11.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.0.0.tgz#7225f8df011893de1cb740a0cad3dd2670574da5" integrity sha512-CWulRz6Ey2ntr3Ml/bMgSXhcE2yWj3R/Vrho2D00Y3wuU6p4cK/Af7YIidyn5E0NI/CMtXZ0cE1l5WME0o4wsA== @@ -2258,7 +2258,7 @@ execa "^1.0.0" prompts "^2.4.0" -"@react-native-community/cli-config@^11.0.0", "@react-native-community/cli-config@^11.0.0-alpha.0": +"@react-native-community/cli-config@^11.0.0": version "11.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.0.0.tgz#c41acda2ff7aa2a4f1b5cdd895e341f27009ff8f" integrity sha512-aKjv/lG7rr2WSN7MSP/P2HUJwoUI94Zct9eyxWEPBV5d48dVR4u7UXcGPRJSJTwVl7+RGNVThnGH8Gh55e1+Lw== @@ -2270,13 +2270,6 @@ glob "^7.1.3" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-10.0.0.tgz#4bb6d41c7e46449714dc7ba5d9f5b41ef0ea7c57" - integrity sha512-8UKLcvpSNxnUTRy8CkCl27GGLqZunQ9ncGYhSrWyKrU9SWBJJGeZwi2k2KaoJi5FvF2+cD0t8z8cU6lsq2ZZmA== - dependencies: - serve-static "^1.13.1" - "@react-native-community/cli-debugger-ui@^11.0.0-alpha.2": version "11.0.0-alpha.2" resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.0.0-alpha.2.tgz#edd28413f8bf7c1b6ae7d7f2f168166afedbb719" @@ -2284,7 +2277,7 @@ dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@^11.0.0-alpha.0": +"@react-native-community/cli-doctor@^11.0.0": version "11.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.0.0.tgz#bf4c8993cc0439c8347803e01aeafbd40bb3f69f" integrity sha512-eOvQw6YTDJXSPMYV7lM2bIKi80Ccwj+EAvYIYBHy77NwpL06MXNGUdNPuH/NgkYTR53gfJIMawddUm4qQN1b3w== @@ -2307,7 +2300,7 @@ sudo-prompt "^9.0.0" wcwidth "^1.0.1" -"@react-native-community/cli-hermes@^11.0.0-alpha.0": +"@react-native-community/cli-hermes@^11.0.0": version "11.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.0.0.tgz#0586e8a923174d81342f629abcd03ffab2020292" integrity sha512-HNkiFnW/U9laf1ekvGfWhfX6N9OzZFd5oFK0BTolvETAZt4qFWFbP7BqkpHhA7iaxs76sCnE/VEAwQQndQWKWg== @@ -2318,18 +2311,7 @@ hermes-profile-transformer "^0.0.6" ip "^1.1.5" -"@react-native-community/cli-platform-android@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.0.0-alpha.0.tgz#c4a4cd2104e67d78fbce72a9af75ea1941505110" - integrity sha512-4yaXpxxbQGoNOvrg7+bHaF22FT4jSEv4rDwC6/B7G9aQ2LkCW/45xpOaAwV8yk2HjjWyRXIhaHDc9dEg8T4BmA== - dependencies: - "@react-native-community/cli-tools" "^11.0.0-alpha.0" - chalk "^4.1.2" - execa "^1.0.0" - glob "^7.1.3" - logkitty "^0.7.1" - -"@react-native-community/cli-platform-android@^11.0.0": +"@react-native-community/cli-platform-android@11.0.0", "@react-native-community/cli-platform-android@^11.0.0": version "11.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.0.0.tgz#ef08118e3aac4cc02422109a8204afc4277d1714" integrity sha512-1jhP/1qONcAsIa7yoI6t+S4rW3Ctevv2W89uVgzNxyOK6GNSD0WWM1awO83iWo3YU+iknluUmHampq+nIiirNA== @@ -2340,19 +2322,7 @@ glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-ios@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.0.0-alpha.0.tgz#cc7c7c828c25dd8d0e134ce95fb1e50de1ff572a" - integrity sha512-dyycqtRnhU1ktgQBsvmie3RdlxtpIHCQ5uUQIW+ZCsnigkl6pC/ulyLxOFwAJmczEuH1RIj9kl/hJ81sxv5CjQ== - dependencies: - "@react-native-community/cli-tools" "^11.0.0-alpha.0" - chalk "^4.1.2" - execa "^1.0.0" - fast-xml-parser "^4.0.12" - glob "^7.1.3" - ora "^5.4.1" - -"@react-native-community/cli-platform-ios@^11.0.0": +"@react-native-community/cli-platform-ios@11.0.0", "@react-native-community/cli-platform-ios@^11.0.0": version "11.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.0.0.tgz#4c7bbcdeffe3307566a6183b5c50d6403b87c9f3" integrity sha512-xGWmmifNiZG0auKe2sCAhQ46yHAUZDNyAfPP3m4zXGYP3jaSAi01KldnBaboC9ZNNrjUNOmkKh4v6IrXXxxCXg== @@ -2364,7 +2334,7 @@ glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@^11.0.0-alpha.0": +"@react-native-community/cli-plugin-metro@^11.0.0": version "11.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.0.0.tgz#00fe753f8fe8b1294a0c08653a42ddb4961f60d7" integrity sha512-ekPZEhB6LP7OhiIw73UbEbwlgsHcISW1jCO6ZKwlv5gFxP7kZaq6yzh4dirbxFUECa28O4VmceKwTeicCsU0EQ== @@ -2379,7 +2349,7 @@ metro-resolver "0.76.0" readline "^1.3.0" -"@react-native-community/cli-server-api@^11.0.0", "@react-native-community/cli-server-api@^11.0.0-alpha.0": +"@react-native-community/cli-server-api@^11.0.0": version "11.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.0.0.tgz#ab6d46e5f243edb05b170b7007d531b853a2bc15" integrity sha512-9EcqWDp65GBF3qtXsoyCcHd7RLrl2BEBXcBqN/f6pBSsqHkwJFUNalEdL832Pd7aGnSnQ6TrFX/3AFJWXAd06A== @@ -2394,7 +2364,7 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@^11.0.0", "@react-native-community/cli-tools@^11.0.0-alpha.0": +"@react-native-community/cli-tools@^11.0.0": version "11.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.0.0.tgz#6a9e2c8577fc45bb16bded694cf9cec902d18840" integrity sha512-WfybGk4jK/QUIe+lA2zKyKd3ifjVBxjqZ10onfXYHxjqf02MXK4n1utOnzLfarS4WrbHSmLtHlzO7ytJAeQjFw== @@ -2409,27 +2379,27 @@ semver "^6.3.0" shell-quote "^1.7.3" -"@react-native-community/cli-types@^11.0.0-alpha.0": +"@react-native-community/cli-types@^11.0.0": version "11.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.0.0.tgz#8ad65b1d969e24e163b68bff4e8c0dac67f7804e" integrity sha512-w+1hOzV6VKqpCcO6/LF6lxrcl47tQ6ojlMCmhrB4Ah92gSbcmAluSWgb+kbzPIhsGxW0h/YnLR/4RXM9lnknDA== dependencies: joi "^17.2.1" -"@react-native-community/cli@11.0.0-alpha.0": - version "11.0.0-alpha.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.0.0-alpha.0.tgz#8e9f920a0c90348e71c85ef0867a0d306f62cc24" - integrity sha512-zd1p/FC1xVUnn5AxHRfy2GH1y72MV4W7uL23K7YJxqpegBuU2odggfKUsYTT5jIgiXsZYdaQvOFMLdBW0s5ejQ== - dependencies: - "@react-native-community/cli-clean" "^11.0.0-alpha.0" - "@react-native-community/cli-config" "^11.0.0-alpha.0" - "@react-native-community/cli-debugger-ui" "^10.0.0" - "@react-native-community/cli-doctor" "^11.0.0-alpha.0" - "@react-native-community/cli-hermes" "^11.0.0-alpha.0" - "@react-native-community/cli-plugin-metro" "^11.0.0-alpha.0" - "@react-native-community/cli-server-api" "^11.0.0-alpha.0" - "@react-native-community/cli-tools" "^11.0.0-alpha.0" - "@react-native-community/cli-types" "^11.0.0-alpha.0" +"@react-native-community/cli@11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.0.0.tgz#3648715669c80f28207931c12f70bb95df6a9a88" + integrity sha512-urzxlfjq5hp/3UyaB2DnT3YOffLCexUtX+X2Y4S224YdGsYL7ge+GiZN0c1aSBhcvgC6g7NxJO3rhRZ2qwcoNg== + dependencies: + "@react-native-community/cli-clean" "^11.0.0" + "@react-native-community/cli-config" "^11.0.0" + "@react-native-community/cli-debugger-ui" "^11.0.0-alpha.2" + "@react-native-community/cli-doctor" "^11.0.0" + "@react-native-community/cli-hermes" "^11.0.0" + "@react-native-community/cli-plugin-metro" "^11.0.0" + "@react-native-community/cli-server-api" "^11.0.0" + "@react-native-community/cli-tools" "^11.0.0" + "@react-native-community/cli-types" "^11.0.0" chalk "^4.1.2" commander "^9.4.1" execa "^1.0.0" @@ -6603,19 +6573,24 @@ metro-react-native-babel-transformer@0.75.1: metro-source-map "0.75.1" nullthrows "^1.1.1" +metro-react-native-babel-transformer@0.76.0: + version "0.76.0" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.0.tgz#8c8872f0d3a0ec9dad2480df53c92c10eac92c79" + integrity sha512-mLyUiGq2qPoEwV3oncD82HOtM4wAl8YmXtGY17D4iqH6/5pE32lRnDDYt0WnJYACZDs3RB3MhTjGCM7rJNwn/A== + dependencies: + "@babel/core" "^7.20.0" + babel-preset-fbjs "^3.4.0" + hermes-parser "0.8.0" + metro-babel-transformer "0.76.0" + metro-react-native-babel-preset "0.76.0" + metro-source-map "0.76.0" + nullthrows "^1.1.1" + metro-resolver@0.76.0: version "0.76.0" resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.0.tgz#3fa778adbab30859023a89e7a1241f4eb68171f2" integrity sha512-bU6HvKzPJOHGoe9na+tUa0g3pZqMUaSGE+noFx2qeSMtoIgOYkDzmuU9ZOAGcUOz0qJJtGs+QmgM+nBqfSS/pQ== -metro-runtime@0.75.1: - version "0.75.1" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.75.1.tgz#e34936400ef4af28aa4e5f43c7fd7b6fbad68c1b" - integrity sha512-AbmDCLPV2efz/LD3+k7bHTchUYmwEzB1L99UJYLYQksLlV1aoW+ri9hurXc/0mc55Jw6h4uKKe1nlAKJYZLJEg== - dependencies: - "@babel/runtime" "^7.0.0" - react-refresh "^0.4.0" - metro-runtime@0.76.0: version "0.76.0" resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.0.tgz#ccc4721010a24d4919bf50e9146d06d28266efb3"