diff --git a/.circleci/config.yml b/.circleci/config.yml
index fd41533373fc..c1ef65677615 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -60,15 +60,14 @@ references:
gems_cache_key: &gems_cache_key v1-gems-{{ checksum "Gemfile.lock" }}
gradle_cache_key: &gradle_cache_key v1-gradle-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "packages/react-native/ReactAndroid/gradle.properties" }}
hermes_workspace_cache_key: &hermes_workspace_cache_key v4-hermes-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/hermes/hermesversion" }}
- hermes_workspace_debug_cache_key: &hermes_workspace_debug_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
- hermes_workspace_release_cache_key: &hermes_workspace_release_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
+ hermes_workspace_debug_cache_key: &hermes_workspace_debug_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }}
+ hermes_workspace_release_cache_key: &hermes_workspace_release_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}-{{ checksum "packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh" }}
hermes_linux_cache_key: &hermes_linux_cache_key v1-hermes-{{ .Environment.CIRCLE_JOB }}-linux-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
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_tarball_debug_cache_key: &hermes_tarball_debug_cache_key v4-hermes-tarball-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
hermes_tarball_release_cache_key: &hermes_tarball_release_cache_key v3-hermes-tarball-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
pods_cache_key: &pods_cache_key v8-pods-{{ .Environment.CIRCLE_JOB }}-{{ checksum "packages/rn-tester/Podfile.lock.bak" }}-{{ checksum "packages/rn-tester/Podfile" }}
windows_yarn_cache_key: &windows_yarn_cache_key v1-win-yarn-cache-{{ arch }}-{{ checksum "yarn.lock" }}
- windows_choco_cache_key: &windows_choco_cache_key v1-win-choco-cache-{{ .Environment.CIRCLE_JOB }}
yarn_cache_key: &yarn_cache_key v5-yarn-cache-{{ .Environment.CIRCLE_JOB }}
rbenv_cache_key: &rbenv_cache_key v1-rbenv-{{ checksum "/tmp/required_ruby" }}
@@ -131,7 +130,7 @@ executors:
xcode: *xcode_version
resource_class: macos.x86.medium.gen2
environment:
- - BUILD_FROM_SOURCE: true
+ - RCT_BUILD_HERMES_FROM_SOURCE: true
# -------------------------
# COMMANDS
@@ -202,7 +201,11 @@ commands:
# Set ruby dependencies
rbenv global << parameters.ruby_version >>
- gem install bundler
+ if [[ $(echo << parameters.ruby_version >> | awk -F'.' '{print $1}') == "2" ]]; then
+ gem install bundler -v 2.4.22
+ else
+ gem install bundler
+ fi
bundle check || bundle install --path vendor/bundle --clean
- save_cache:
key: *rbenv_cache_key
@@ -998,116 +1001,6 @@ jobs:
-scheme RNTester \
-sdk iphonesimulator
- # -------------------------
- # JOBS: Windows
- # -------------------------
- test_windows:
- executor:
- name: win/default
- parameters:
- run_disabled_tests:
- type: boolean
- default: false
- environment:
- - ANDROID_HOME: "C:\\Android\\android-sdk"
- - ANDROID_NDK: "C:\\Android\\android-sdk\\ndk\\20.1.5948944"
- - ANDROID_BUILD_VERSION: 33
- - ANDROID_TOOLS_VERSION: 33.0.0
- - GRADLE_OPTS: -Dorg.gradle.daemon=false
- - CHOCO_CACHE_DIR: "C:\\ChocoCache"
- steps:
- - checkout_code_with_cache
-
- - restore_cache:
- keys:
- - *windows_choco_cache_key
-
- - run:
- name: Choco cache
- # Cache our dependencies which can be flakey to download
- command: |
- if (!Test-Path $env:CHOCO_CACHE_DIR) {
- mkdir $env:CHOCO_CACHE_DIR
- }
- choco config set --name cacheLocation --value $env:CHOCO_CACHE_DIR
-
- - run:
- name: Disable NVM
- # Use choco to manage node versions due to https://github.com/npm/cli/issues/4234
- command: nvm off
-
- - run:
- name: Install Node JS
- # Note: Version set separately for non-Windows builds, see above.
- command: choco install nodejs-lts
-
- # Setup Dependencies
- - run:
- name: Enable Yarn with corepack
- command: corepack enable
-
- # it looks like that, last week, envinfo released version 7.9.0 which does not works
- # with Windows. I have opened an issue here: https://github.com/tabrindle/envinfo/issues/238
- # TODO: T156811874 - Revert this to npx envinfo@latest when the issue is addressed
- - run:
- name: Display Environment info
- command: |
- npm install -g envinfo
- envinfo -v
- envinfo
-
- - restore_cache:
- keys:
- - *windows_yarn_cache_key
- - run:
- name: "Yarn: Install Dependencies"
- command: yarn install --frozen-lockfile --non-interactive
-
- - save_cache:
- key: *windows_yarn_cache_key
- paths:
- - C:\Users\circleci\AppData\Local\Yarn
-
- - run:
- name: Install Android SDK Tools
- command: choco install android-sdk;
-
- - save_cache:
- key: *windows_choco_cache_key
- paths:
- - $env:CHOCO_CACHE_DIR
-
- - run:
- name: Setup Android SDKs
- command: |
- sdkmanager --licenses
- sdkmanager "system-images;android-21;google_apis;armeabi-v7a"
- sdkmanager "platforms;android-%ANDROID_BUILD_VERSION%"
- sdkmanager "build-tools;%ANDROID_TOOLS_VERSION%"
- sdkmanager "add-ons;addon-google_apis-google-23"
- sdkmanager "extras;android;m2repository"
-
- # -------------------------
- # Run Tests
- - run:
- name: "Flow: Check Android"
- command: yarn flow-check-android
- - run:
- name: "Flow: Check iOS"
- command: yarn flow-check-ios
- - run:
- name: "Run Tests: JavaScript Tests"
- command: yarn test
-
- # Optionally, run disabled tests
- - when:
- condition: << parameters.run_disabled_tests >>
- steps:
- - run: echo "Failing tests may be moved here temporarily."
- - run:
- name: Android Build
- command: ./gradlew.bat packages:rn-tester:android:app:assembleRelease
-
# -------------------------
# JOBS: Coverage
# -------------------------
@@ -1142,14 +1035,22 @@ 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
command: |
apt update
apt install -y wget git curl
- curl -sL https://deb.nodesource.com/setup_16.x | bash -
+
+ apt-get update
+ apt-get install -y ca-certificates curl gnupg
+ mkdir -p /etc/apt/keyrings
+ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
+ NODE_MAJOR=16
+ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
+ apt-get update
+
apt install -y nodejs
npm install --global yarn
- checkout
@@ -1362,9 +1263,9 @@ jobs:
name: Build HermesC for Windows
command: |
if (-not(Test-Path -Path $Env:HERMES_WS_DIR\win64-bin\hermesc.exe)) {
- choco install --no-progress cmake --version 3.14.7
+ choco install -y --no-progress cmake --version 3.14.7
if (-not $?) { throw "Failed to install CMake" }
- choco install --no-progress python3
+ choco install -y --no-progress python3
if (-not $?) { throw "Failed to install Python" }
cd $Env:HERMES_WS_DIR\icu
@@ -1871,8 +1772,6 @@ workflows:
- test_js:
name: test_js_prev_lts
executor: nodeprevlts
- - test_windows:
- run_disabled_tests: false
# This workflow should only be triggered by release script
package_release:
diff --git a/Gemfile.lock b/Gemfile.lock
index 49ea432421ea..e8decb7a0f16 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,26 +1,29 @@
GEM
remote: https://rubygems.org/
specs:
- CFPropertyList (3.0.6)
+ CFPropertyList (3.0.7)
+ base64
+ nkf
rexml
- activesupport (7.0.8)
+ activesupport (7.0.8.4)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
- addressable (2.8.5)
+ addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
atomos (0.1.3)
+ base64 (0.2.0)
claide (1.1.0)
- cocoapods (1.13.0)
+ cocoapods (1.15.2)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
- cocoapods-core (= 1.13.0)
+ cocoapods-core (= 1.15.2)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
- cocoapods-downloader (>= 1.6.0, < 2.0)
+ cocoapods-downloader (>= 2.1, < 3.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.6.0, < 2.0)
@@ -33,7 +36,7 @@ GEM
nap (~> 1.0)
ruby-macho (>= 2.3.0, < 3.0)
xcodeproj (>= 1.23.0, < 2.0)
- cocoapods-core (1.13.0)
+ cocoapods-core (1.15.2)
activesupport (>= 5.0, < 8)
addressable (~> 2.8)
algoliasearch (~> 1.0)
@@ -44,7 +47,7 @@ GEM
public_suffix (~> 4.0)
typhoeus (~> 1.0)
cocoapods-deintegrate (1.0.5)
- cocoapods-downloader (1.6.3)
+ cocoapods-downloader (2.1)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.1)
@@ -53,31 +56,34 @@ GEM
netrc (~> 0.11)
cocoapods-try (1.2.0)
colored2 (3.1.2)
- concurrent-ruby (1.2.2)
+ concurrent-ruby (1.3.3)
escape (0.0.4)
ethon (0.16.0)
ffi (>= 1.15.0)
- ffi (1.16.3)
+ ffi (1.17.0)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
httpclient (2.8.3)
- i18n (1.14.1)
+ i18n (1.14.5)
concurrent-ruby (~> 1.0)
- json (2.6.3)
- minitest (5.20.0)
+ json (2.7.2)
+ minitest (5.23.1)
molinillo (0.8.0)
nanaimo (0.3.0)
nap (1.1.0)
netrc (0.11.0)
+ nkf (0.2.0)
public_suffix (4.0.7)
- rexml (3.2.6)
+ rexml (3.2.9)
+ strscan
ruby-macho (2.5.1)
- typhoeus (1.4.0)
+ strscan (3.1.0)
+ typhoeus (1.4.1)
ethon (>= 0.9.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
- xcodeproj (1.23.0)
+ xcodeproj (1.24.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
diff --git a/package.json b/package.json
index 4304eb5b9ff4..0eb36a89fb9e 100644
--- a/package.json
+++ b/package.json
@@ -57,7 +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.11",
+ "@react-native/metro-config": "^0.72.12",
"@types/react": "^18.0.18",
"@typescript-eslint/parser": "^5.30.5",
"async": "^3.2.2",
@@ -85,9 +85,9 @@
"jest": "^29.2.1",
"jest-junit": "^10.0.0",
"jscodeshift": "^0.14.0",
- "metro-babel-register": "0.76.7",
- "metro-memory-fs": "0.76.7",
- "metro-react-native-babel-transformer": "0.76.7",
+ "metro-babel-register": "^0.76.9",
+ "metro-memory-fs": "^0.76.9",
+ "metro-react-native-babel-transformer": "^0.76.9",
"mkdirp": "^0.5.1",
"mock-fs": "^5.1.4",
"prettier": "^2.4.1",
diff --git a/packages/metro-config/package.json b/packages/metro-config/package.json
index 22aca896a2a9..87bae89f0cb5 100644
--- a/packages/metro-config/package.json
+++ b/packages/metro-config/package.json
@@ -1,6 +1,6 @@
{
"name": "@react-native/metro-config",
- "version": "0.72.11",
+ "version": "0.72.12",
"description": "Metro configuration for React Native.",
"repository": {
"type": "git",
@@ -11,8 +11,8 @@
"exports": "./index.js",
"dependencies": {
"@react-native/js-polyfills": "^0.72.1",
- "metro-config": "0.76.8",
- "metro-react-native-babel-transformer": "0.76.8",
- "metro-runtime": "0.76.8"
+ "metro-config": "^0.76.9",
+ "metro-react-native-babel-transformer": "^0.76.9",
+ "metro-runtime": "^0.76.9"
}
}
diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json
index 5787e743d72f..95c58eccfaa7 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.72.7",
+ "version": "0.72.8",
"description": "⚛️ Code generation tools for React Native",
"homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/react-native-codegen",
"repository": {
@@ -20,7 +20,10 @@
"dependencies": {
"@babel/parser": "^7.20.0",
"flow-parser": "^0.206.0",
+ "glob": "^7.1.1",
+ "invariant": "^2.2.4",
"jscodeshift": "^0.14.0",
+ "mkdirp": "^0.5.1",
"nullthrows": "^1.1.1"
},
"devDependencies": {
@@ -35,10 +38,7 @@
"@babel/plugin-transform-flow-strip-types": "^7.20.0",
"@babel/preset-env": "^7.20.0",
"chalk": "^4.0.0",
- "glob": "^7.1.1",
- "invariant": "^2.2.4",
"micromatch": "^4.0.4",
- "mkdirp": "^0.5.1",
"prettier": "^2.4.1",
"rimraf": "^3.0.2"
},
diff --git a/packages/react-native/Libraries/Animated/NativeAnimatedHelper.js b/packages/react-native/Libraries/Animated/NativeAnimatedHelper.js
index 2dd197617641..e96cbd75c16e 100644
--- a/packages/react-native/Libraries/Animated/NativeAnimatedHelper.js
+++ b/packages/react-native/Libraries/Animated/NativeAnimatedHelper.js
@@ -562,10 +562,13 @@ function transformDataType(value: number | string): number | string {
if (typeof value !== 'string') {
return value;
}
- if (/deg$/.test(value)) {
+
+ // Normalize degrees and radians to a number expressed in radians
+ if (value.endsWith('deg')) {
const degrees = parseFloat(value) || 0;
- const radians = (degrees * Math.PI) / 180.0;
- return radians;
+ return (degrees * Math.PI) / 180.0;
+ } else if (value.endsWith('rad')) {
+ return parseFloat(value) || 0;
} else {
return value;
}
diff --git a/packages/react-native/Libraries/Animated/__tests__/Interpolation-test.js b/packages/react-native/Libraries/Animated/__tests__/Interpolation-test.js
index 0e8e342da760..9726b9191218 100644
--- a/packages/react-native/Libraries/Animated/__tests__/Interpolation-test.js
+++ b/packages/react-native/Libraries/Animated/__tests__/Interpolation-test.js
@@ -349,4 +349,20 @@ describe('Interpolation', () => {
expect(interpolation(1e-12)).toBe('rgba(0, 0, 0, 0)');
expect(interpolation(2 / 3)).toBe('rgba(0, 0, 0, 0.667)');
});
+
+ it.each([
+ ['radians', ['1rad', '2rad'], [1, 2]],
+ ['degrees', ['90deg', '180deg'], [Math.PI / 2, Math.PI]],
+ ['numbers', [1024, Math.PI], [1024, Math.PI]],
+ ['unknown', ['5foo', '10foo'], ['5foo', '10foo']],
+ ])(
+ 'should convert %s to numbers in the native config',
+ (_, outputRange, expected) => {
+ const config = new AnimatedInterpolation(
+ {},
+ {inputRange: [0, 1], outputRange},
+ ).__getNativeConfig();
+ expect(config.outputRange).toEqual(expected);
+ },
+ );
});
diff --git a/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec b/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec
index 1c1ae9b5a4a9..2405e7b374aa 100644
--- a/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec
+++ b/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec
@@ -96,15 +96,19 @@ Pod::Spec.new do |s|
s.dependency "React-utils"
s.dependency "React-debug"
+ rel_path_from_pods_root_to_app = Pathname.new(ENV['APP_PATH']).relative_path_from(Pod::Config.instance.installation_root)
+ rel_path_from_pods_to_app = Pathname.new(ENV['APP_PATH']).relative_path_from(File.join(Pod::Config.instance.installation_root, 'Pods'))
+
+
s.script_phases = {
:name => "Generate Legacy Components Interop",
:script => "
WITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"
source $WITH_ENVIRONMENT
-${NODE_BINARY} ${REACT_NATIVE_PATH}/scripts/codegen/generate-legacy-interop-components.js -p #{ENV['APP_PATH']} -o ${REACT_NATIVE_PATH}/Libraries/AppDelegate
+${NODE_BINARY} ${REACT_NATIVE_PATH}/scripts/codegen/generate-legacy-interop-components.js -p #{rel_path_from_pods_to_app} -o ${REACT_NATIVE_PATH}/Libraries/AppDelegate
",
:execution_position => :before_compile,
- :input_files => ["#{ENV['APP_PATH']}/react-native.config.js"],
+ :input_files => ["#{rel_path_from_pods_root_to_app}/react-native.config.js"],
:output_files => ["${REACT_NATIVE_PATH}/Libraries/AppDelegate/RCTLegacyInteropComponents.mm"],
}
end
diff --git a/packages/react-native/Libraries/Core/ReactNativeVersion.js b/packages/react-native/Libraries/Core/ReactNativeVersion.js
index d6749c75e652..cc855f4838fa 100644
--- a/packages/react-native/Libraries/Core/ReactNativeVersion.js
+++ b/packages/react-native/Libraries/Core/ReactNativeVersion.js
@@ -12,6 +12,6 @@
exports.version = {
major: 0,
minor: 72,
- patch: 6,
+ patch: 15,
prerelease: null,
};
diff --git a/packages/react-native/Libraries/LogBox/Data/LogBoxData.js b/packages/react-native/Libraries/LogBox/Data/LogBoxData.js
index d3e06b045130..abc2401ac421 100644
--- a/packages/react-native/Libraries/LogBox/Data/LogBoxData.js
+++ b/packages/react-native/Libraries/LogBox/Data/LogBoxData.js
@@ -30,6 +30,7 @@ export type LogData = $ReadOnly<{|
message: Message,
category: Category,
componentStack: ComponentStack,
+ stack?: string,
|}>;
export type Observer = (
@@ -198,7 +199,7 @@ export function addLog(log: LogData): void {
// otherwise spammy logs would pause rendering.
setImmediate(() => {
try {
- const stack = parseErrorStack(errorForStackTrace?.stack);
+ const stack = parseErrorStack(log.stack ?? errorForStackTrace?.stack);
appendNewLog(
new LogBoxLog({
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 42a2a9e6950d..20ab886c9554 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 7b91d697a880..904c275a3fe5 100644
--- a/packages/react-native/Libraries/LogBox/Data/parseLogBoxLog.js
+++ b/packages/react-native/Libraries/LogBox/Data/parseLogBoxLog.js
@@ -14,12 +14,38 @@ import type {LogBoxLogData} from './LogBoxLog';
import parseErrorStack from '../../Core/Devtools/parseErrorStack';
import UTFSequence from '../../UTFSequence';
import stringifySafe from '../../Utilities/stringifySafe';
+import ansiRegex from 'ansi-regex';
+
+const ANSI_REGEX = ansiRegex().source;
const BABEL_TRANSFORM_ERROR_FORMAT =
/^(?:TransformError )?(?:SyntaxError: |ReferenceError: )(.*): (.*) \((\d+):(\d+)\)\n\n([\s\S]+)/;
+
+// https://github.com/babel/babel/blob/33dbb85e9e9fe36915273080ecc42aee62ed0ade/packages/babel-code-frame/src/index.ts#L183-L184
+const BABEL_CODE_FRAME_MARKER_PATTERN = new RegExp(
+ [
+ // Beginning of a line (per 'm' flag)
+ '^',
+ // Optional ANSI escapes for colors
+ `(?:${ANSI_REGEX})*`,
+ // Marker
+ '>',
+ // Optional ANSI escapes for colors
+ `(?:${ANSI_REGEX})*`,
+ // Left padding for line number
+ ' +',
+ // Line number
+ '[0-9]+',
+ // Gutter
+ ' \\|',
+ ].join(''),
+ 'm',
+);
+
const BABEL_CODE_FRAME_ERROR_FORMAT =
// eslint-disable-next-line no-control-regex
/^(?:TransformError )?(?:.*):? (?:.*?)(\/.*): ([\s\S]+?)\n([ >]{2}[\d\s]+ \|[\s\S]+|\u{001b}[\s\S]+)/u;
+
const METRO_ERROR_FORMAT =
/^(?:InternalError Metro has encountered an error:) (.*): (.*) \((\d+):(\d+)\)\n\n([\s\S]+)/u;
@@ -166,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;
}
@@ -241,27 +267,31 @@ export function parseLogBoxException(
};
}
- const babelCodeFrameError = message.match(BABEL_CODE_FRAME_ERROR_FORMAT);
+ // Perform a cheap match first before trying to parse the full message, which
+ // can get expensive for arbitrary input.
+ if (BABEL_CODE_FRAME_MARKER_PATTERN.test(message)) {
+ const babelCodeFrameError = message.match(BABEL_CODE_FRAME_ERROR_FORMAT);
- if (babelCodeFrameError) {
- // Codeframe errors are thrown from any use of buildCodeFrameError.
- const [fileName, content, codeFrame] = babelCodeFrameError.slice(1);
- return {
- level: 'syntax',
- stack: [],
- isComponentError: false,
- componentStack: [],
- codeFrame: {
- fileName,
- location: null, // We are not given the location.
- content: codeFrame,
- },
- message: {
- content,
- substitutions: [],
- },
- category: `${fileName}-${1}-${1}`,
- };
+ if (babelCodeFrameError) {
+ // Codeframe errors are thrown from any use of buildCodeFrameError.
+ const [fileName, content, codeFrame] = babelCodeFrameError.slice(1);
+ return {
+ level: 'syntax',
+ stack: [],
+ isComponentError: false,
+ componentStack: [],
+ codeFrame: {
+ fileName,
+ location: null, // We are not given the location.
+ content: codeFrame,
+ },
+ message: {
+ content,
+ substitutions: [],
+ },
+ category: `${fileName}-${1}-${1}`,
+ };
+ }
}
if (message.match(/^TransformError /)) {
diff --git a/packages/react-native/Libraries/promiseRejectionTrackingOptions.js b/packages/react-native/Libraries/promiseRejectionTrackingOptions.js
index a57f3666899d..3973bb494551 100644
--- a/packages/react-native/Libraries/promiseRejectionTrackingOptions.js
+++ b/packages/react-native/Libraries/promiseRejectionTrackingOptions.js
@@ -10,6 +10,8 @@
import typeof {enable} from 'promise/setimmediate/rejection-tracking';
+import LogBox from './LogBox/LogBox';
+
type ExtractOptionsType =
(((options?: ?P) => void)) => P;
let rejectionTrackingOptions: $Call = {
@@ -34,19 +36,36 @@ let rejectionTrackingOptions: $Call = {
? rejection
: JSON.stringify((rejection: $FlowFixMe));
}
+ // It could although this object is not a standard error, it still has stack information to unwind
+ // $FlowFixMe ignore types just check if stack is there
+ if (rejection.stack && typeof rejection.stack === 'string') {
+ stack = rejection.stack;
+ }
}
- const warning =
- `Possible Unhandled Promise Rejection (id: ${id}):\n` +
- `${message ?? ''}\n` +
- (stack == null ? '' : stack);
- console.warn(warning);
+ const warning = `Possible unhandled promise rejection (id: ${id}):\n${
+ message ?? ''
+ }`;
+ if (__DEV__) {
+ LogBox.addLog({
+ level: 'warn',
+ message: {
+ content: warning,
+ substitutions: [],
+ },
+ componentStack: [],
+ stack,
+ category: 'possible_unhandled_promise_rejection',
+ });
+ } else {
+ console.warn(warning);
+ }
},
onHandled: id => {
const warning =
- `Promise Rejection Handled (id: ${id})\n` +
+ `Promise rejection handled (id: ${id})\n` +
'This means you can ignore any previous messages of the form ' +
- `"Possible Unhandled Promise Rejection (id: ${id}):"`;
+ `"Possible unhandled promise rejection (id: ${id}):"`;
console.warn(warning);
},
};
diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m
index 3cfd3c28f04d..8298bfb04bf6 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: @(72),
- RCTVersionPatch: @(6),
+ RCTVersionPatch: @(15),
RCTVersionPrerelease: [NSNull null],
};
});
diff --git a/packages/react-native/ReactAndroid/build.gradle b/packages/react-native/ReactAndroid/build.gradle
index f44b6e498055..c2b76ed511e0 100644
--- a/packages/react-native/ReactAndroid/build.gradle
+++ b/packages/react-native/ReactAndroid/build.gradle
@@ -243,7 +243,7 @@ task createNativeDepsDirectories {
}
task downloadBoost(dependsOn: createNativeDepsDirectories, type: Download) {
- src("https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION.replace("_", ".")}/source/boost_${BOOST_VERSION}.tar.gz")
+ src("https://archives.boost.io/release/${BOOST_VERSION.replace("_", ".")}/source/boost_${BOOST_VERSION}.tar.gz")
onlyIfModified(true)
overwrite(false)
retries(5)
diff --git a/packages/react-native/ReactAndroid/gradle.properties b/packages/react-native/ReactAndroid/gradle.properties
index 7c3b5d2ea2f6..aa71625b6347 100644
--- a/packages/react-native/ReactAndroid/gradle.properties
+++ b/packages/react-native/ReactAndroid/gradle.properties
@@ -1,4 +1,4 @@
-VERSION_NAME=0.72.6
+VERSION_NAME=0.72.15
GROUP=com.facebook.react
# JVM Versions
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 28b259596e5d..c67d041787af 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
@@ -113,6 +113,7 @@ public void requestPermissions(
@Override
public void onRequestPermissionsResult(
int requestCode, String[] permissions, int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
mDelegate.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
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 c0df88da2c6c..63ecfc75acaf 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
@@ -429,6 +429,7 @@ public void onCatalystInstanceDestroy() {
mEventDispatcher.unregisterEventEmitter(FABRIC);
mReactApplicationContext.unregisterComponentCallbacks(mViewManagerRegistry);
+ mViewManagerRegistry.invalidate();
// Remove lifecycle listeners (onHostResume, onHostPause) since the FabricUIManager is going
// away. Then stop the mDispatchUIFrameCallback false will cause the choreographer
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 f9da6987613e..88acd7e7e5f5 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", 72,
- "patch", 6,
+ "patch", 15,
"prerelease", null);
}
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 5fa72a0ffd02..41e4a62c2fc1 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
@@ -25,6 +25,7 @@
import com.facebook.react.modules.blob.FileReaderModule;
import com.facebook.react.modules.camera.ImageStoreManager;
import com.facebook.react.modules.clipboard.ClipboardModule;
+import com.facebook.react.modules.devloading.DevLoadingModule;
import com.facebook.react.modules.devtoolssettings.DevToolsSettingsManagerModule;
import com.facebook.react.modules.dialog.DialogModule;
import com.facebook.react.modules.fresco.FrescoModule;
@@ -72,6 +73,7 @@
AppearanceModule.class,
AppStateModule.class,
BlobModule.class,
+ DevLoadingModule.class,
FileReaderModule.class,
ClipboardModule.class,
DialogModule.class,
@@ -113,6 +115,8 @@ public MainReactPackage(MainPackageConfig config) {
return new AppStateModule(context);
case BlobModule.NAME:
return new BlobModule(context);
+ case DevLoadingModule.NAME:
+ return new DevLoadingModule(context);
case FileReaderModule.NAME:
return new FileReaderModule(context);
case ClipboardModule.NAME:
@@ -371,6 +375,7 @@ public ReactModuleInfoProvider getReactModuleInfoProvider() {
AppearanceModule.class,
AppStateModule.class,
BlobModule.class,
+ DevLoadingModule.class,
FileReaderModule.class,
ClipboardModule.class,
DialogModule.class,
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 ed4ec63c05d5..ce701230dce4 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
@@ -175,7 +175,7 @@ public void removeRootView(int rootViewTag) {
*
* @return The num of root view
*/
- private int getRootViewNum() {
+ public int getRootViewNum() {
return mOperationsQueue.getNativeViewHierarchyManager().getRootViewNum();
}
@@ -608,12 +608,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)
@@ -792,6 +786,7 @@ public void onHostDestroy() {}
public void onCatalystInstanceDestroyed() {
mViewOperationsEnabled = false;
+ mViewManagers.invalidate();
}
public void setViewHierarchyUpdateDebugListener(
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 78b174f02504..a3d3917b77ee 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
@@ -719,7 +719,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);
}
diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.java
index 96448f6c01a2..2bd1d754f3a3 100644
--- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.java
+++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.java
@@ -10,6 +10,8 @@
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
+import com.facebook.common.logging.FLog;
+import com.facebook.react.common.ReactConstants;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -65,6 +67,17 @@ public boolean shouldEnableCustomDrawingOrder() {
* ViewGroup#getChildDrawingOrder}.
*/
public int getChildDrawingOrder(int childCount, int index) {
+ if (mDrawingOrderIndices != null
+ && (index >= mDrawingOrderIndices.length || mDrawingOrderIndices[index] >= childCount)) {
+ FLog.w(
+ ReactConstants.TAG,
+ "getChildDrawingOrder index out of bounds! Please check any custom view manipulations you"
+ + " may have done. childCount = %d, index = %d",
+ childCount,
+ index);
+ update();
+ }
+
if (mDrawingOrderIndices == null) {
ArrayList viewsToSort = new ArrayList<>();
for (int i = 0; i < childCount; i++) {
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 995f6eea7033..1f3c219250a7 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
@@ -103,12 +103,28 @@ public void onSurfaceStopped(final int surfaceId) {
viewManagers = new ArrayList<>(mViewManagers.values());
}
Runnable runnable =
- new Runnable() {
- @Override
- public void run() {
- for (ViewManager viewManager : viewManagers) {
- viewManager.onSurfaceStopped(surfaceId);
- }
+ () -> {
+ for (ViewManager viewManager : viewManagers) {
+ viewManager.onSurfaceStopped(surfaceId);
+ }
+ };
+ if (UiThreadUtil.isOnUiThread()) {
+ runnable.run();
+ } else {
+ UiThreadUtil.runOnUiThread(runnable);
+ }
+ }
+
+ /** Called on instance destroy */
+ public void invalidate() {
+ final List viewManagers;
+ synchronized (this) {
+ viewManagers = new ArrayList<>(mViewManagers.values());
+ }
+ Runnable runnable =
+ () -> {
+ for (ViewManager viewManager : viewManagers) {
+ viewManager.invalidate();
}
};
if (UiThreadUtil.isOnUiThread()) {
diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java
index 438ec3fd0b57..9cbb6d11731f 100644
--- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java
+++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java
@@ -204,6 +204,11 @@ public ColorPropSetter(ReactProp prop, Method setter, int defaultValue) {
mDefaultValue = defaultValue;
}
+ public ColorPropSetter(ReactPropGroup prop, Method setter, int index, int defaultValue) {
+ super(prop, "mixed", setter, index);
+ mDefaultValue = defaultValue;
+ }
+
@Override
protected Object getValueOrDefault(Object value, Context context) {
if (value == null) {
@@ -331,6 +336,10 @@ public BoxedColorPropSetter(ReactProp prop, Method setter) {
super(prop, "mixed", setter);
}
+ public BoxedColorPropSetter(ReactPropGroup prop, Method setter, int index) {
+ super(prop, "mixed", setter, index);
+ }
+
@Override
protected @Nullable Object getValueOrDefault(Object value, Context context) {
if (value != null) {
@@ -463,7 +472,11 @@ private static void createPropSetters(
}
} else if (propTypeClass == int.class) {
for (int i = 0; i < names.length; i++) {
- props.put(names[i], new IntPropSetter(annotation, method, i, annotation.defaultInt()));
+ if ("Color".equals(annotation.customType())) {
+ props.put(names[i], new ColorPropSetter(annotation, method, i, annotation.defaultInt()));
+ } else {
+ props.put(names[i], new IntPropSetter(annotation, method, i, annotation.defaultInt()));
+ }
}
} else if (propTypeClass == float.class) {
for (int i = 0; i < names.length; i++) {
@@ -476,7 +489,11 @@ private static void createPropSetters(
}
} else if (propTypeClass == Integer.class) {
for (int i = 0; i < names.length; i++) {
- props.put(names[i], new BoxedIntPropSetter(annotation, method, i));
+ if ("Color".equals(annotation.customType())) {
+ props.put(names[i], new BoxedColorPropSetter(annotation, method, i));
+ } else {
+ props.put(names[i], new BoxedIntPropSetter(annotation, method, i));
+ }
}
} else {
throw new RuntimeException(
diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java
index 0d39356857e2..c5a747cfb392 100644
--- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java
+++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java
@@ -420,10 +420,10 @@ private void updateSubviewClipStatus(Rect clippingRect, int idx, int clippedSoFa
if (!intersects && child.getParent() != null && !isAnimating) {
// We can try saving on invalidate call here as the view that we remove is out of visible area
// therefore invalidation is not necessary.
- super.removeViewsInLayout(idx - clippedSoFar, 1);
+ removeViewsInLayout(idx - clippedSoFar, 1);
needUpdateClippingRecursive = true;
} else if (intersects && child.getParent() == null) {
- super.addViewInLayout(child, idx - clippedSoFar, sDefaultLayoutParam, true);
+ addViewInLayout(child, idx - clippedSoFar, sDefaultLayoutParam, true);
invalidate();
needUpdateClippingRecursive = true;
} else if (intersects) {
@@ -501,23 +501,18 @@ private boolean customDrawOrderDisabled() {
return ViewUtil.getUIManagerType(getId()) == UIManagerType.FABRIC;
}
- @Override
- public void addView(View child, int index, ViewGroup.LayoutParams params) {
- // This will get called for every overload of addView so there is not need to override every
- // method.
+ private void handleAddView(View view) {
+ UiThreadUtil.assertOnUiThread();
if (!customDrawOrderDisabled()) {
- getDrawingOrderHelper().handleAddView(child);
+ getDrawingOrderHelper().handleAddView(view);
setChildrenDrawingOrderEnabled(getDrawingOrderHelper().shouldEnableCustomDrawingOrder());
} else {
setChildrenDrawingOrderEnabled(false);
}
-
- super.addView(child, index, params);
}
- @Override
- public void removeView(View view) {
+ private void handleRemoveView(View view) {
UiThreadUtil.assertOnUiThread();
if (!customDrawOrderDisabled()) {
@@ -526,22 +521,60 @@ public void removeView(View view) {
} else {
setChildrenDrawingOrderEnabled(false);
}
+ }
+
+ private void handleRemoveViews(int start, int count) {
+ int endIndex = start + count;
+ for (int index = start; index < endIndex; index++) {
+ if (index < getChildCount()) {
+ handleRemoveView(getChildAt(index));
+ }
+ }
+ }
+
+ @Override
+ public void addView(View child, int index, ViewGroup.LayoutParams params) {
+ // This will get called for every overload of addView so there is not need to override every
+ // method.
+ handleAddView(child);
+ super.addView(child, index, params);
+ }
+ @Override
+ protected boolean addViewInLayout(
+ View child, int index, LayoutParams params, boolean preventRequestLayout) {
+ handleAddView(child);
+ return super.addViewInLayout(child, index, params, preventRequestLayout);
+ }
+
+ @Override
+ public void removeView(View view) {
+ handleRemoveView(view);
super.removeView(view);
}
@Override
public void removeViewAt(int index) {
- UiThreadUtil.assertOnUiThread();
+ handleRemoveView(getChildAt(index));
+ super.removeViewAt(index);
+ }
- if (!customDrawOrderDisabled()) {
- getDrawingOrderHelper().handleRemoveView(getChildAt(index));
- setChildrenDrawingOrderEnabled(getDrawingOrderHelper().shouldEnableCustomDrawingOrder());
- } else {
- setChildrenDrawingOrderEnabled(false);
- }
+ @Override
+ public void removeViewInLayout(View view) {
+ handleRemoveView(view);
+ super.removeViewInLayout(view);
+ }
- super.removeViewAt(index);
+ @Override
+ public void removeViewsInLayout(int start, int count) {
+ handleRemoveViews(start, count);
+ super.removeViewsInLayout(start, count);
+ }
+
+ @Override
+ public void removeViews(int start, int count) {
+ handleRemoveViews(start, count);
+ super.removeViews(start, count);
}
@Override
@@ -665,7 +698,7 @@ public void run() {
clippedSoFar++;
}
}
- super.removeViewsInLayout(index - clippedSoFar, 1);
+ removeViewsInLayout(index - clippedSoFar, 1);
}
removeFromArray(index);
}
diff --git a/packages/react-native/ReactCommon/React-Fabric.podspec b/packages/react-native/ReactCommon/React-Fabric.podspec
index 0644c97ba22b..f6a9217ff62e 100644
--- a/packages/react-native/ReactCommon/React-Fabric.podspec
+++ b/packages/react-native/ReactCommon/React-Fabric.podspec
@@ -33,7 +33,8 @@ Pod::Spec.new do |s|
s.source = source
s.source_files = "dummyFile.cpp"
s.pod_target_xcconfig = { "USE_HEADERMAP" => "YES",
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" }
+ "CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
+ "DEFINES_MODULE" => "YES" }
if ENV['USE_FRAMEWORKS']
s.header_mappings_dir = './'
diff --git a/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h b/packages/react-native/ReactCommon/cxxreact/ReactNativeVersion.h
index ffabd8f3ff04..3d001236b0e2 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 = 72;
- int32_t Patch = 6;
+ int32_t Patch = 15;
std::string_view Prerelease = "";
} ReactNativeVersion;
diff --git a/packages/react-native/ReactCommon/jsc/JSCRuntime.cpp b/packages/react-native/ReactCommon/jsc/JSCRuntime.cpp
index 523b1be36937..8448d022b026 100644
--- a/packages/react-native/ReactCommon/jsc/JSCRuntime.cpp
+++ b/packages/react-native/ReactCommon/jsc/JSCRuntime.cpp
@@ -403,11 +403,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() {
diff --git a/packages/react-native/ReactCommon/react/debug/React-debug.podspec b/packages/react-native/ReactCommon/react/debug/React-debug.podspec
index dab4a31652ed..e5c0f885fcb0 100644
--- a/packages/react-native/ReactCommon/react/debug/React-debug.podspec
+++ b/packages/react-native/ReactCommon/react/debug/React-debug.podspec
@@ -27,7 +27,10 @@ Pod::Spec.new do |s|
s.source = source
s.source_files = "**/*.{cpp,h}"
s.header_dir = "react/debug"
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++17" }
+ s.pod_target_xcconfig = {
+ "CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
+ "DEFINES_MODULE" => "YES"
+ }
if ENV['USE_FRAMEWORKS']
s.module_name = "React_debug"
diff --git a/packages/react-native/ReactCommon/react/debug/flags.h b/packages/react-native/ReactCommon/react/debug/flags.h
index dae3ecc4e51f..a475e9e45bfc 100644
--- a/packages/react-native/ReactCommon/react/debug/flags.h
+++ b/packages/react-native/ReactCommon/react/debug/flags.h
@@ -17,5 +17,7 @@
// control and use as a more reliable xplat flag. For any build that doesn't
// have NDEBUG defined, we enable REACT_NATIVE_DEBUG for convenience.
#ifndef NDEBUG
+#ifndef COCOAPODS
#define REACT_NATIVE_DEBUG 1
#endif
+#endif
diff --git a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm
index 745154f52086..e6a29f4fbf6d 100644
--- a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm
+++ b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm
@@ -74,19 +74,35 @@ static Class getViewManagerFromComponentName(const std::string &componentName)
return nil;
}
-static std::shared_ptr const constructCoordinator(
- ContextContainer::Shared const &contextContainer,
- ComponentDescriptor::Flavor const &flavor)
+static Class getViewManagerClass(const std::string &componentName, RCTBridge *bridge)
+{
+ Class viewManager = getViewManagerFromComponentName(componentName);
+ if (viewManager != nil) {
+ return viewManager;
+ }
+
+ // If all the heuristics fail, let's try to retrieve the view manager from the bridge/bridgeProxy
+ if (bridge != nil) {
+ return [[bridge moduleForName:RCTNSStringFromString(componentName)] class];
+ }
+
+ return nil;
+}
+
+static const std::shared_ptr constructCoordinator(
+ const ContextContainer::Shared &contextContainer,
+ const ComponentDescriptor::Flavor &flavor)
{
- auto componentName = *std::static_pointer_cast(flavor);
- Class viewManagerClass = getViewManagerFromComponentName(componentName);
- assert(viewManagerClass);
auto optionalBridge = contextContainer->find>("Bridge");
RCTBridge *bridge;
if (optionalBridge) {
bridge = unwrapManagedObjectWeakly(optionalBridge.value());
}
+ auto componentName = *std::static_pointer_cast(flavor);
+ Class viewManagerClass = getViewManagerClass(componentName, bridge);
+ assert(viewManagerClass);
+
auto optionalEventDispatcher = contextContainer->find>("RCTEventDispatcher");
RCTEventDispatcher *eventDispatcher;
if (optionalEventDispatcher) {
diff --git a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm
index d1b0bfff4fcb..73ede6873b44 100644
--- a/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm
+++ b/packages/react-native/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm
@@ -92,6 +92,10 @@ - (void)setProps:(folly::dynamic const &)props forView:(UIView *)view
if (props.isObject()) {
NSDictionary *convertedProps = convertFollyDynamicToId(props);
[_componentData setProps:convertedProps forView:view];
+
+ if ([view respondsToSelector:@selector(didSetProps:)]) {
+ [view performSelector:@selector(didSetProps:) withObject:[convertedProps allKeys]];
+ }
}
}
diff --git a/packages/react-native/ReactCommon/react/renderer/core/PropsParserContext.h b/packages/react-native/ReactCommon/react/renderer/core/PropsParserContext.h
index 7297fbba321e..c589380bd273 100644
--- a/packages/react-native/ReactCommon/react/renderer/core/PropsParserContext.h
+++ b/packages/react-native/ReactCommon/react/renderer/core/PropsParserContext.h
@@ -17,6 +17,11 @@ namespace react {
// It should be used as infrequently as possible - most props can and should
// be parsed without any context.
struct PropsParserContext {
+ PropsParserContext(
+ SurfaceId const surfaceId,
+ ContextContainer const &contextContainer)
+ : surfaceId(surfaceId), contextContainer(contextContainer) {}
+
// Non-copyable
PropsParserContext(const PropsParserContext &) = delete;
PropsParserContext &operator=(const PropsParserContext &) = delete;
diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec b/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec
index 19cc4ea84a7a..5d034bd75122 100644
--- a/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec
+++ b/packages/react-native/ReactCommon/react/renderer/graphics/React-graphics.podspec
@@ -49,7 +49,11 @@ Pod::Spec.new do |s|
header_search_paths = header_search_paths + ["\"$(PODS_TARGET_SRCROOT)/platform/ios\""]
end
- s.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", "HEADER_SEARCH_PATHS" => header_search_paths.join(" ") }
+ s.pod_target_xcconfig = {
+ "USE_HEADERMAP" => "NO",
+ "HEADER_SEARCH_PATHS" => header_search_paths.join(" "),
+ "DEFINES_MODULE" => "YES"
+ }
s.dependency "glog"
s.dependency "RCT-Folly/Fabric", folly_version
diff --git a/packages/react-native/ReactCommon/react/utils/React-utils.podspec b/packages/react-native/ReactCommon/react/utils/React-utils.podspec
index d262c5592410..d4ea2ddd7b02 100644
--- a/packages/react-native/ReactCommon/react/utils/React-utils.podspec
+++ b/packages/react-native/ReactCommon/react/utils/React-utils.podspec
@@ -44,7 +44,9 @@ Pod::Spec.new do |s|
s.exclude_files = "tests"
s.pod_target_xcconfig = {
"CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
- "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')}
+ "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
+ "DEFINES_MODULE" => "YES"
+ }
if ENV['USE_FRAMEWORKS']
s.module_name = "React_utils"
diff --git a/packages/react-native/flow-typed/npm/ansi-regex_v5.x.x.js b/packages/react-native/flow-typed/npm/ansi-regex_v5.x.x.js
new file mode 100644
index 000000000000..150902f4a12e
--- /dev/null
+++ b/packages/react-native/flow-typed/npm/ansi-regex_v5.x.x.js
@@ -0,0 +1,14 @@
+/**
+ * @flow strict
+ * @format
+ */
+
+declare module 'ansi-regex' {
+ declare export type Options = {
+ /**
+ * Match only the first ANSI escape.
+ */
+ +onlyFirst?: boolean,
+ };
+ declare export default function ansiRegex(options?: Options): RegExp;
+}
diff --git a/packages/react-native/package.json b/packages/react-native/package.json
index cb56d2c9b274..4698071ca573 100644
--- a/packages/react-native/package.json
+++ b/packages/react-native/package.json
@@ -1,6 +1,6 @@
{
"name": "react-native",
- "version": "0.72.6",
+ "version": "0.72.15",
"bin": "./cli.js",
"description": "A framework for building native apps using React",
"license": "MIT",
@@ -79,11 +79,11 @@
},
"dependencies": {
"@jest/create-cache-key-function": "^29.2.1",
- "@react-native-community/cli": "11.3.7",
- "@react-native-community/cli-platform-android": "11.3.7",
- "@react-native-community/cli-platform-ios": "11.3.7",
+ "@react-native-community/cli": "^11.4.1",
+ "@react-native-community/cli-platform-android": "^11.4.1",
+ "@react-native-community/cli-platform-ios": "^11.4.1",
"@react-native/assets-registry": "^0.72.0",
- "@react-native/codegen": "^0.72.7",
+ "@react-native/codegen": "^0.72.8",
"@react-native/gradle-plugin": "^0.72.11",
"@react-native/js-polyfills": "^0.72.1",
"@react-native/normalize-colors": "^0.72.0",
@@ -91,15 +91,16 @@
"abort-controller": "^3.0.0",
"anser": "^1.4.9",
"base64-js": "^1.1.2",
- "deprecated-react-native-prop-types": "4.1.0",
+ "deprecated-react-native-prop-types": "^4.2.3",
+ "ansi-regex": "^5.0.0",
"event-target-shim": "^5.0.1",
"flow-enums-runtime": "^0.0.5",
"invariant": "^2.2.4",
"jest-environment-node": "^29.2.1",
"jsc-android": "^250231.0.0",
"memoize-one": "^5.0.0",
- "metro-runtime": "0.76.8",
- "metro-source-map": "0.76.8",
+ "metro-runtime": "^0.76.9",
+ "metro-source-map": "^0.76.9",
"mkdirp": "^0.5.1",
"nullthrows": "^1.1.1",
"pretty-format": "^26.5.2",
diff --git a/packages/react-native/scripts/cocoapods/__tests__/codegen-test.rb b/packages/react-native/scripts/cocoapods/__tests__/codegen-test.rb
index 70573b4f3162..17aeded0da2f 100644
--- a/packages/react-native/scripts/cocoapods/__tests__/codegen-test.rb
+++ b/packages/react-native/scripts/cocoapods/__tests__/codegen-test.rb
@@ -68,7 +68,7 @@ def testCheckAndGenerateEmptyThirdPartyProvider_whenFileAlreadyExists_doNothing(
assert_equal(Pod::Executable.executed_commands.length, 0)
end
- def testCheckAndGenerateEmptyThirdPartyProvider_whenHeaderMissingAndCodegenMissing_raiseError()
+ def testCheckAndGenerateEmptyThirdPartyProvider_whenHeaderMissingAndCodegenMissing_dontBuildCodegen()
# Arrange
FileMock.mocked_existing_files([
@@ -76,7 +76,7 @@ def testCheckAndGenerateEmptyThirdPartyProvider_whenHeaderMissingAndCodegenMissi
])
# Act
- assert_raise {
+ assert_nothing_raised {
checkAndGenerateEmptyThirdPartyProvider!(@prefix, false, dir_manager: DirMock, file_manager: FileMock)
}
@@ -84,16 +84,16 @@ def testCheckAndGenerateEmptyThirdPartyProvider_whenHeaderMissingAndCodegenMissi
assert_equal(Pathname.pwd_invocation_count, 1)
assert_equal(Pod::Config.instance.installation_root.relative_path_from_invocation_count, 1)
assert_equal(FileMock.exist_invocation_params, [
- @prefix + "/React/Fabric/" + @third_party_provider_header
+ @prefix + "/React/Fabric/" + @third_party_provider_header,
+ @prefix + "/React/Fabric/tmpSchemaList.txt",
])
assert_equal(DirMock.exist_invocation_params, [
@base_path + "/"+ @prefix + "/../react-native-codegen",
- @base_path + "/"+ @prefix + "/../@react-native/codegen",
])
- assert_equal(Pod::UI.collected_messages, [])
+ assert_equal(Pod::UI.collected_messages, ["[Codegen] generating an empty RCTThirdPartyFabricComponentsProvider"])
assert_equal($collected_commands, [])
- assert_equal(FileMock.open_files.length, 0)
- assert_equal(Pod::Executable.executed_commands.length, 0)
+ assert_equal(FileMock.open_files.length, 1)
+ assert_equal(Pod::Executable.executed_commands.length, 1)
end
def testCheckAndGenerateEmptyThirdPartyProvider_whenImplementationMissingAndCodegenrepoExists_dontBuildCodegen()
@@ -145,7 +145,7 @@ def testCheckAndGenerateEmptyThirdPartyProvider_whenImplementationMissingAndCode
def testCheckAndGenerateEmptyThirdPartyProvider_whenBothMissing_buildCodegen()
# Arrange
- codegen_cli_path = @base_path + "/" + @prefix + "/../@react-native/codegen"
+ codegen_cli_path = @base_path + "/" + @prefix + "/../react-native-codegen"
DirMock.mocked_existing_dirs([
codegen_cli_path,
])
@@ -160,15 +160,14 @@ def testCheckAndGenerateEmptyThirdPartyProvider_whenBothMissing_buildCodegen()
@prefix + "/React/Fabric/" + @tmp_schema_list_file
])
assert_equal(DirMock.exist_invocation_params, [
- @base_path + "/" + @prefix + "/../react-native-codegen",
codegen_cli_path,
codegen_cli_path + "/lib",
])
assert_equal(Pod::UI.collected_messages, [
- "[Codegen] building #{codegen_cli_path}.",
+ "[Codegen] building #{codegen_cli_path}",
"[Codegen] generating an empty RCTThirdPartyFabricComponentsProvider"
])
- assert_equal($collected_commands, ["~/app/ios/../../../@react-native/codegen/scripts/oss/build.sh"])
+ assert_equal($collected_commands, ["~/app/ios/../../../react-native-codegen/scripts/oss/build.sh"])
assert_equal(FileMock.open_files[0].collected_write, ["[]"])
assert_equal(FileMock.open_files[0].fsync_invocation_count, 1)
assert_equal(Pod::Executable.executed_commands[0], {
diff --git a/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb b/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb
index 84ef4a6c3462..417ebf89c80a 100644
--- a/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb
+++ b/packages/react-native/scripts/cocoapods/__tests__/jsengine-test.rb
@@ -107,7 +107,6 @@ def test_setupHermes_whenHermesScriptSucceeds_installsPods
assert_equal($podInvocation["libevent"][:version], "~> 2.1.12")
hermes_engine_pod_invocation = $podInvocation["hermes-engine"]
assert_equal(hermes_engine_pod_invocation[:podspec], "../../sdks/hermes-engine/hermes-engine.podspec")
- assert_equal(hermes_engine_pod_invocation[:tag], "")
end
def test_setupHermes_installsPods_installsFabricSubspecWhenFabricEnabled
@@ -122,7 +121,6 @@ def test_setupHermes_installsPods_installsFabricSubspecWhenFabricEnabled
assert_equal($podInvocation["React-jsi"][:path], "../../ReactCommon/jsi")
hermes_engine_pod_invocation = $podInvocation["hermes-engine"]
assert_equal(hermes_engine_pod_invocation[:podspec], "../../sdks/hermes-engine/hermes-engine.podspec")
- assert_equal(hermes_engine_pod_invocation[:tag], "")
assert_equal($podInvocation["React-hermes"][:path], "../../ReactCommon/hermes")
assert_equal($podInvocation["libevent"][:version], "~> 2.1.12")
end
diff --git a/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb b/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb
index a7157c469f7d..dcda34722cf3 100644
--- a/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb
+++ b/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb
@@ -128,7 +128,7 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths
NewArchitectureHelper.install_modules_dependencies(spec, true, '2021.07.22.00')
# Assert
- assert_equal(spec.compiler_flags, NewArchitectureHelper.folly_compiler_flags)
+ assert_equal(spec.compiler_flags, "$(inherited) #{NewArchitectureHelper.folly_compiler_flags} -DRCT_NEW_ARCH_ENABLED=1")
assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/DoubleConversion\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\"")
assert_equal(spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"], "c++17")
assert_equal(spec.pod_target_xcconfig["OTHER_CPLUSPLUSFLAGS"], "$(inherited) -DRCT_NEW_ARCH_ENABLED=1 -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1")
@@ -166,7 +166,7 @@ def test_installModulesDependencies_whenNewArchDisabledAndSearchPathsAndCompiler
NewArchitectureHelper.install_modules_dependencies(spec, false, '2021.07.22.00')
# Assert
- assert_equal(spec.compiler_flags, "-Wno-nullability-completeness #{NewArchitectureHelper.folly_compiler_flags}")
+ assert_equal(spec.compiler_flags, "$(inherited) -Wno-nullability-completeness #{NewArchitectureHelper.folly_compiler_flags}")
assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "#{other_flags} \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/DoubleConversion\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\"")
assert_equal(spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"], "c++17")
assert_equal(
diff --git a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb
index 47d6c632dbab..9c430ec9c213 100644
--- a/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb
+++ b/packages/react-native/scripts/cocoapods/__tests__/utils-test.rb
@@ -179,11 +179,33 @@ def test_hasPod_whenInstallerHasPod_returnTrue
# ============================ #
# Test - Exclude Architectures #
# ============================ #
- def test_excludeArchitectures_whenHermesEngineIsNotIncluded_excludeNothing
+ def test_excludeArchitectures_whenHermesEngineIsNotIncluded_withNoValue_leaveUnset
+ # Arrange
+ user_project_mock = prepare_empty_user_project_mock()
+ pods_projects_mock = PodsProjectMock.new()
+ installer = InstallerMock.new(PodsProjectMock.new(), [
+ AggregatedProjectMock.new(user_project_mock)
+ ])
+
+ # Act
+ ReactNativePodsUtils.exclude_i386_architecture_while_using_hermes(installer)
+
+ # Assert
+ user_project_mock.build_configurations.each do |config|
+ assert_equal(config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"], nil)
+ end
+ assert_equal(user_project_mock.save_invocation_count, 0)
+ assert_equal(pods_projects_mock.save_invocation_count, 0)
+ end
+
+ def test_excludeArchitectures_whenHermesEngineIsNotIncluded_withExistingValue_preserveExistingValue
# Arrange
user_project_mock = prepare_empty_user_project_mock()
+ user_project_mock.build_configurations.each do |config|
+ config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
+ end
pods_projects_mock = PodsProjectMock.new()
- installer = InstallerMock.new(PodsProjectMock.new(), [
+ installer = InstallerMock.new(pods_projects_mock, [
AggregatedProjectMock.new(user_project_mock)
])
@@ -192,13 +214,14 @@ def test_excludeArchitectures_whenHermesEngineIsNotIncluded_excludeNothing
# Assert
user_project_mock.build_configurations.each do |config|
- assert_equal(config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"], "")
+ assert_equal(config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"], "arm64")
end
- assert_equal(user_project_mock.save_invocation_count, 1)
+
+ assert_equal(user_project_mock.save_invocation_count, 0)
assert_equal(pods_projects_mock.save_invocation_count, 0)
end
- def test_excludeArchitectures_whenHermesEngineIsIncluded_excludeI386
+ def test_excludeArchitectures_whenHermesEngineIsIncluded_withNoValue_onlyExcludeI386
# Arrange
user_project_mock = prepare_empty_user_project_mock()
pods_projects_mock = PodsProjectMock.new([], {"hermes-engine" => {}})
@@ -218,6 +241,29 @@ def test_excludeArchitectures_whenHermesEngineIsIncluded_excludeI386
assert_equal(pods_projects_mock.save_invocation_count, 1)
end
+ def test_excludeArchitectures_whenHermesEngineIsIncluded_withExistingValue_appendI386
+ # Arrange
+ user_project_mock = prepare_empty_user_project_mock()
+ user_project_mock.build_configurations.each do |config|
+ config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
+ end
+ pods_projects_mock = PodsProjectMock.new([], {"hermes-engine" => {}})
+ installer = InstallerMock.new(pods_projects_mock, [
+ AggregatedProjectMock.new(user_project_mock)
+ ])
+
+ # Act
+ ReactNativePodsUtils.exclude_i386_architecture_while_using_hermes(installer)
+
+ # Assert
+ user_project_mock.build_configurations.each do |config|
+ assert_equal(config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"], "arm64 i386")
+ end
+
+ assert_equal(user_project_mock.save_invocation_count, 1)
+ assert_equal(pods_projects_mock.save_invocation_count, 1)
+ end
+
# ================= #
# Test - Fix Config #
# ================= #
diff --git a/packages/react-native/scripts/cocoapods/codegen.rb b/packages/react-native/scripts/cocoapods/codegen.rb
index 56d120fcceda..e9d0cff52fe3 100644
--- a/packages/react-native/scripts/cocoapods/codegen.rb
+++ b/packages/react-native/scripts/cocoapods/codegen.rb
@@ -11,23 +11,12 @@
# - dir_manager: a class that implements the `Dir` interface. Defaults to `Dir`, the Dependency can be injected for testing purposes.
# @throws an error if it could not find the codegen folder.
def build_codegen!(react_native_path, relative_installation_root, dir_manager: Dir)
- codegen_repo_path = "#{relative_installation_root}/#{react_native_path}/../react-native-codegen";
- codegen_npm_path = "#{relative_installation_root}/#{react_native_path}/../@react-native/codegen";
- codegen_cli_path = ""
+ codegen_repo_path = "#{relative_installation_root}/#{react_native_path}/../react-native-codegen";
+ return unless dir_manager.exist?(codegen_repo_path) && !dir_manager.exist?("#{codegen_repo_path}/lib")
- if dir_manager.exist?(codegen_repo_path)
- codegen_cli_path = codegen_repo_path
- elsif dir_manager.exist?(codegen_npm_path)
- codegen_cli_path = codegen_npm_path
- else
- raise "[codegen] Could not find react-native-codegen."
- end
-
- if !dir_manager.exist?("#{codegen_cli_path}/lib")
- Pod::UI.puts "[Codegen] building #{codegen_cli_path}."
- system("#{codegen_cli_path}/scripts/oss/build.sh")
- end
- end
+ Pod::UI.puts "[Codegen] building #{codegen_repo_path}"
+ system("#{codegen_repo_path}/scripts/oss/build.sh")
+end
# It generates an empty `ThirdPartyProvider`, required by Fabric to load the components
#
diff --git a/packages/react-native/scripts/cocoapods/jsengine.rb b/packages/react-native/scripts/cocoapods/jsengine.rb
index 062290ac07d6..416a4ddf3bdf 100644
--- a/packages/react-native/scripts/cocoapods/jsengine.rb
+++ b/packages/react-native/scripts/cocoapods/jsengine.rb
@@ -30,12 +30,8 @@ def setup_hermes!(react_native_path: "../node_modules/react-native", fabric_enab
abort unless prep_status == 0
pod 'React-jsi', :path => "#{react_native_path}/ReactCommon/jsi"
- # This `:tag => hermestag` below is only to tell CocoaPods to update hermes-engine when React Native version changes.
- # We have custom logic to compute the source for hermes-engine. See sdks/hermes-engine/*
- hermestag_file = File.join(react_native_dir, "sdks", ".hermesversion")
- hermestag = File.exist?(hermestag_file) ? File.read(hermestag_file).strip : ''
- pod 'hermes-engine', :podspec => "#{react_native_path}/sdks/hermes-engine/hermes-engine.podspec", :tag => hermestag
+ pod 'hermes-engine', :podspec => "#{react_native_path}/sdks/hermes-engine/hermes-engine.podspec"
pod 'React-hermes', :path => "#{react_native_path}/ReactCommon/hermes"
pod 'libevent', '~> 2.1.12'
end
diff --git a/packages/react-native/scripts/cocoapods/new_architecture.rb b/packages/react-native/scripts/cocoapods/new_architecture.rb
index 1eb04c2c7f52..190f769f7f0f 100644
--- a/packages/react-native/scripts/cocoapods/new_architecture.rb
+++ b/packages/react-native/scripts/cocoapods/new_architecture.rb
@@ -87,6 +87,10 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version)
current_config = hash["pod_target_xcconfig"] != nil ? hash["pod_target_xcconfig"] : {}
current_headers = current_config["HEADER_SEARCH_PATHS"] != nil ? current_config["HEADER_SEARCH_PATHS"] : ""
+ flags_to_add = new_arch_enabled ?
+ "#{@@folly_compiler_flags} -DRCT_NEW_ARCH_ENABLED=1" :
+ "#{@@folly_compiler_flags}"
+
header_search_paths = ["\"$(PODS_ROOT)/boost\""]
if ENV['USE_FRAMEWORKS']
header_search_paths << "\"$(PODS_ROOT)/DoubleConversion\""
@@ -100,7 +104,7 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version)
header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\""
end
header_search_paths_string = header_search_paths.join(" ")
- spec.compiler_flags = compiler_flags.empty? ? @@folly_compiler_flags : "#{compiler_flags} #{@@folly_compiler_flags}"
+ spec.compiler_flags = compiler_flags.empty? ? "$(inherited) #{flags_to_add}" : "$(inherited) #{compiler_flags} #{flags_to_add}"
current_config["HEADER_SEARCH_PATHS"] = current_headers.empty? ?
header_search_paths_string :
"#{current_headers} #{header_search_paths_string}"
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 000000000000..aa00f2db6ff5
--- /dev/null
+++ b/packages/react-native/scripts/cocoapods/privacy_manifest_utils.rb
@@ -0,0 +1,165 @@
+# 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"]
+ next unless api_type
+ 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 d4bf3a09478b..6507f8ba8cae 100644
--- a/packages/react-native/scripts/cocoapods/utils.rb
+++ b/packages/react-native/scripts/cocoapods/utils.rb
@@ -54,17 +54,49 @@ def self.turn_off_resource_bundle_react_core(installer)
end
def self.exclude_i386_architecture_while_using_hermes(installer)
- projects = self.extract_projects(installer)
+ is_using_hermes = self.has_pod(installer, 'hermes-engine')
- # Hermes does not support `i386` architecture
- excluded_archs_default = self.has_pod(installer, 'hermes-engine') ? "i386" : ""
+ if is_using_hermes
+ key = "EXCLUDED_ARCHS[sdk=iphonesimulator*]"
- projects.each do |project|
- project.build_configurations.each do |config|
- config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = excluded_archs_default
- end
+ projects = self.extract_projects(installer)
- project.save()
+ projects.each do |project|
+ project.build_configurations.each do |config|
+ current_setting = config.build_settings[key] || ""
+
+ excluded_archs_includes_I386 = current_setting.include?("i386")
+
+ if !excluded_archs_includes_I386
+ # Hermes does not support `i386` architecture
+ config.build_settings[key] = "#{current_setting} i386".strip
+ end
+ end
+
+ project.save()
+ end
+ end
+ end
+
+ def self.fix_flipper_for_xcode_15_3(installer)
+
+ installer.pods_project.targets.each do |target|
+ if target.name == 'Flipper'
+ file_path = 'Pods/Flipper/xplat/Flipper/FlipperTransportTypes.h'
+ if !File.exist?(file_path)
+ return
+ end
+
+ contents = File.read(file_path)
+ if contents.include?('#include ')
+ return
+ end
+ mod_content = contents.gsub("#pragma once", "#pragma once\n#include ")
+ File.chmod(0755, file_path)
+ File.open(file_path, 'w') do |file|
+ file.puts(mod_content)
+ end
+ end
end
end
@@ -137,7 +169,7 @@ def self.apply_xcode_15_patch(installer, xcodebuild_manager: Xcodebuild)
# fix for weak linking
self.safe_init(config, other_ld_flags_key)
- if self.is_using_xcode15_or_greter(:xcodebuild_manager => xcodebuild_manager)
+ if self.is_using_xcode15_0(:xcodebuild_manager => xcodebuild_manager)
self.add_value_to_setting_if_missing(config, other_ld_flags_key, xcode15_compatibility_flags)
else
self.remove_value_from_setting_if_present(config, other_ld_flags_key, xcode15_compatibility_flags)
@@ -321,7 +353,7 @@ def self.remove_value_from_setting_if_present(config, setting_name, value)
end
end
- def self.is_using_xcode15_or_greter(xcodebuild_manager: Xcodebuild)
+ def self.is_using_xcode15_0(xcodebuild_manager: Xcodebuild)
xcodebuild_version = xcodebuild_manager.version
# The output of xcodebuild -version is something like
@@ -332,7 +364,8 @@ def self.is_using_xcode15_or_greter(xcodebuild_manager: Xcodebuild)
regex = /(\d+)\.(\d+)(?:\.(\d+))?/
if match_data = xcodebuild_version.match(regex)
major = match_data[1].to_i
- return major >= 15
+ minor = match_data[2].to_i
+ return major == 15 && minor == 0
end
return false
diff --git a/packages/react-native/scripts/codegen/generate-legacy-interop-components.js b/packages/react-native/scripts/codegen/generate-legacy-interop-components.js
index 49ac074c9164..fc94a96080cd 100644
--- a/packages/react-native/scripts/codegen/generate-legacy-interop-components.js
+++ b/packages/react-native/scripts/codegen/generate-legacy-interop-components.js
@@ -11,6 +11,7 @@
const yargs = require('yargs');
const fs = require('fs');
+const p = require('path');
const CONFIG_FILE_NAME = 'react-native.config.js';
const PROJECT_FIELD = 'project';
@@ -93,7 +94,11 @@ function extractComponentsNames(reactNativeConfig) {
}
function generateRCTLegacyInteropComponents() {
- const configFilePath = `${appRoot}/${CONFIG_FILE_NAME}`;
+ const cwd = process.cwd();
+ const configFilePath = p.join(cwd, appRoot, CONFIG_FILE_NAME);
+ console.log(
+ `Looking for a react-native.config.js file at ${configFilePath}...`,
+ );
let reactNativeConfig = null;
try {
reactNativeConfig = require(configFilePath);
@@ -107,7 +112,7 @@ function generateRCTLegacyInteropComponents() {
console.log('Skip LegacyInterop generation');
return;
}
-
+ console.log(`Components found: ${componentNames}`);
let componentsArray = componentNames.map(name => `\t\t\t@"${name}",`);
// Remove the last comma
if (componentsArray.length > 0) {
@@ -118,6 +123,7 @@ function generateRCTLegacyInteropComponents() {
const filePath = `${outputPath}/${OUTPUT_FILE_NAME}`;
fs.writeFileSync(filePath, fileBody(componentsArray.join('\n')));
+ console.log(`${filePath} updated!`);
}
generateRCTLegacyInteropComponents();
diff --git a/packages/react-native/scripts/react_native_pods.rb b/packages/react-native/scripts/react_native_pods.rb
index 0c28e6818f98..ba4caf297730 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/new_architecture.rb'
require_relative './cocoapods/local_podspec_patch.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'
@@ -74,7 +75,8 @@ def use_react_native! (
flipper_configuration: FlipperConfiguration.disabled,
app_path: '..',
config_file_dir: '',
- ios_folder: 'ios'
+ ios_folder: 'ios',
+ privacy_file_aggregation_enabled: true
)
# Set the app_path as env variable so the podspecs can access it.
@@ -93,6 +95,7 @@ def use_react_native! (
fabric_enabled = fabric_enabled || new_arch_enabled
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
@@ -238,6 +241,8 @@ def react_native_post_install(
if ReactNativePodsUtils.has_pod(installer, 'Flipper')
flipper_post_install(installer)
end
+
+ privacy_file_aggregation_enabled = ENV['RCT_AGGREGATE_PRIVACY_FILES'] == '1'
fabric_enabled = ReactNativePodsUtils.has_pod(installer, 'React-Fabric')
@@ -248,6 +253,13 @@ def react_native_post_install(
ReactNativePodsUtils.apply_flags_for_fabric(installer, fabric_enabled: fabric_enabled)
ReactNativePodsUtils.apply_xcode_15_patch(installer)
ReactNativePodsUtils.updateIphoneOSDeploymentTarget(installer)
+ ReactNativePodsUtils.fix_flipper_for_xcode_15_3(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)
is_new_arch_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == "1"
diff --git a/packages/react-native/sdks/.hermesversion b/packages/react-native/sdks/.hermesversion
index 0a1e3d05e6d2..36091c201070 100644
--- a/packages/react-native/sdks/.hermesversion
+++ b/packages/react-native/sdks/.hermesversion
@@ -1 +1 @@
-hermes-2023-08-07-RNv0.72.4-813b2def12bc9df02654b3e3653ae4a68d0572e0
\ No newline at end of file
+hermes-2024-04-29-RNv0.72.14-3815fec63d1a6667ca3195160d6e12fee6a0d8d5
\ No newline at end of file
diff --git a/packages/react-native/sdks/hermes-engine/hermes-engine.podspec b/packages/react-native/sdks/hermes-engine/hermes-engine.podspec
index 87d0710b4b99..1932ca66ea13 100644
--- a/packages/react-native/sdks/hermes-engine/hermes-engine.podspec
+++ b/packages/react-native/sdks/hermes-engine/hermes-engine.podspec
@@ -17,7 +17,7 @@ version = package['version']
# sdks/.hermesversion
hermestag_file = File.join(react_native_path, "sdks", ".hermesversion")
-build_from_source = ENV['BUILD_FROM_SOURCE'] === 'true'
+build_from_source = ENV['RCT_BUILD_HERMES_FROM_SOURCE'] === 'true'
git = "https://github.com/facebook/hermes.git"
diff --git a/packages/react-native/sdks/hermes-engine/hermes-utils.rb b/packages/react-native/sdks/hermes-engine/hermes-utils.rb
index 06f36447d50a..62500dacf4e6 100644
--- a/packages/react-native/sdks/hermes-engine/hermes-utils.rb
+++ b/packages/react-native/sdks/hermes-engine/hermes-utils.rb
@@ -17,7 +17,7 @@ def abort_if_invalid_tarball_provided!()
# - 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 building from source (the latest commit on main).
#
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 c9b91fbb3413..274c91943e71 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
@@ -52,13 +52,9 @@ function build_host_hermesc {
# Utility function to configure an Apple framework
function configure_apple_framework {
- local build_cli_tools enable_bitcode enable_debugger cmake_build_type xcode_15_flags xcode_major_version
+ local build_cli_tools enable_debugger cmake_build_type xcode_15_flags xcode_major_version
+
- if [[ $1 == iphoneos || $1 == catalyst ]]; then
- enable_bitcode="true"
- else
- enable_bitcode="false"
- fi
if [[ $1 == macosx ]]; then
build_cli_tools="true"
else
@@ -94,7 +90,7 @@ function configure_apple_framework {
-DHERMES_ENABLE_LIBFUZZER:BOOLEAN=false \
-DHERMES_ENABLE_FUZZILLI:BOOLEAN=false \
-DHERMES_ENABLE_TEST_SUITE:BOOLEAN=false \
- -DHERMES_ENABLE_BITCODE:BOOLEAN="$enable_bitcode" \
+ -DHERMES_ENABLE_BITCODE:BOOLEAN=false \
-DHERMES_BUILD_APPLE_FRAMEWORK:BOOLEAN=true \
-DHERMES_BUILD_APPLE_DSYM:BOOLEAN=true \
-DHERMES_ENABLE_TOOLS:BOOLEAN="$build_cli_tools" \
diff --git a/packages/react-native/template/Gemfile b/packages/react-native/template/Gemfile
index 6a7d5c7a49c3..b550fb64d2d5 100644
--- a/packages/react-native/template/Gemfile
+++ b/packages/react-native/template/Gemfile
@@ -3,5 +3,7 @@ source 'https://rubygems.org'
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby ">= 2.6.10"
-gem 'cocoapods', '~> 1.13'
+# Cocoapods 1.15 introduced a bug which break the build. We will remove the upper
+# bound in the template on Cocoapods with next React Native release.
+gem 'cocoapods', '>= 1.13', '< 1.15'
gem 'activesupport', '>= 6.1.7.3', '< 7.1.0'
diff --git a/packages/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj b/packages/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj
index 2ad587963337..8a8f96bc8b14 100644
--- a/packages/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj
+++ b/packages/react-native/template/ios/HelloWorld.xcodeproj/project.pbxproj
@@ -12,6 +12,7 @@
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
+ 6132EF182BDFF13200BBE14D /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 6132EF172BDFF13200BBE14D /* PrivacyInfo.xcprivacy */; };
7699B88040F8A987B510C191 /* libPods-HelloWorld-HelloWorldTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-HelloWorld-HelloWorldTests.a */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
/* End PBXBuildFile section */
@@ -41,6 +42,7 @@
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 = ""; };
5B7EB9410499542E8C5724F5 /* Pods-HelloWorld-HelloWorldTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld-HelloWorldTests.debug.xcconfig"; path = "Target Support Files/Pods-HelloWorld-HelloWorldTests/Pods-HelloWorld-HelloWorldTests.debug.xcconfig"; sourceTree = ""; };
5DCACB8F33CDC322A6C60F78 /* libPods-HelloWorld.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HelloWorld.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 6132EF172BDFF13200BBE14D /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = HelloWorld/PrivacyInfo.xcprivacy; sourceTree = ""; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = HelloWorld/LaunchScreen.storyboard; sourceTree = ""; };
89C6BE57DB24E9ADA2F236DE /* Pods-HelloWorld-HelloWorldTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HelloWorld-HelloWorldTests.release.xcconfig"; path = "Target Support Files/Pods-HelloWorld-HelloWorldTests/Pods-HelloWorld-HelloWorldTests.release.xcconfig"; sourceTree = ""; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
@@ -116,6 +118,7 @@
83CBB9F61A601CBA00E9B192 = {
isa = PBXGroup;
children = (
+ 6132EF172BDFF13200BBE14D /* PrivacyInfo.xcprivacy */,
13B07FAE1A68108700A75B9A /* HelloWorld */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
00E356EF1AD99517003FC87E /* HelloWorldTests */,
@@ -242,6 +245,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 6132EF182BDFF13200BBE14D /* PrivacyInfo.xcprivacy in Resources */,
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
);
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 000000000000..ef1896e70c88
--- /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
+
+
+
diff --git a/packages/react-native/template/package.json b/packages/react-native/template/package.json
index 96710f5cd1cb..f04c1e4cb95e 100644
--- a/packages/react-native/template/package.json
+++ b/packages/react-native/template/package.json
@@ -11,21 +11,21 @@
},
"dependencies": {
"react": "18.2.0",
- "react-native": "0.72.6"
+ "react-native": "0.72.15"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@babel/preset-env": "^7.20.0",
"@babel/runtime": "^7.20.0",
"@react-native/eslint-config": "^0.72.2",
- "@react-native/metro-config": "^0.72.11",
+ "@react-native/metro-config": "^0.72.12",
"@tsconfig/react-native": "^3.0.0",
"@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.76.8",
+ "metro-react-native-babel-preset": "^0.76.9",
"prettier": "^2.4.1",
"react-test-renderer": "18.2.0",
"typescript": "4.8.4"
diff --git a/packages/react-native/third-party-podspecs/boost.podspec b/packages/react-native/third-party-podspecs/boost.podspec
index 3d9331c95d12..bbbb7380e51a 100644
--- a/packages/react-native/third-party-podspecs/boost.podspec
+++ b/packages/react-native/third-party-podspecs/boost.podspec
@@ -10,7 +10,7 @@ Pod::Spec.new do |spec|
spec.homepage = 'http://www.boost.org'
spec.summary = 'Boost provides free peer-reviewed portable C++ source libraries.'
spec.authors = 'Rene Rivera'
- spec.source = { :http => 'https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2',
+ spec.source = { :http => 'https://archives.boost.io/release/1.76.0/source/boost_1_76_0.tar.bz2',
:sha256 => 'f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41' }
# Pinning to the same version as React.podspec.
diff --git a/packages/rn-tester/Gemfile b/packages/rn-tester/Gemfile
index 4de6c10e5d6d..081fa4ff8054 100644
--- a/packages/rn-tester/Gemfile
+++ b/packages/rn-tester/Gemfile
@@ -1,6 +1,8 @@
# Gemfile
source 'https://rubygems.org'
-gem 'cocoapods', '~> 1.12'
+# Cocoapods 1.15 introduced a bug which break the build. We will remove the upper
+# bound in the template on Cocoapods with next React Native release.
+gem 'cocoapods', '>= 1.13', '< 1.15'
gem 'rexml'
gem 'activesupport', '>= 6.1.7.3', '< 7.1.0'
diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock
index 6bec2783e937..31b7c553d5d5 100644
--- a/packages/rn-tester/Podfile.lock
+++ b/packages/rn-tester/Podfile.lock
@@ -2,14 +2,14 @@ PODS:
- boost (1.76.0)
- CocoaAsyncSocket (7.6.5)
- DoubleConversion (1.1.6)
- - FBLazyVector (0.72.5)
- - FBReactNativeSpec (0.72.5):
+ - FBLazyVector (0.72.14)
+ - FBReactNativeSpec (0.72.14):
- RCT-Folly (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
- - React-Core (= 0.72.5)
- - React-jsi (= 0.72.5)
- - ReactCommon/turbomodule/core (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
+ - React-Core (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - ReactCommon/turbomodule/core (= 0.72.14)
- Flipper (0.182.0):
- Flipper-Folly (~> 2.6)
- Flipper-Boost-iOSX (1.76.0.1.11)
@@ -70,9 +70,9 @@ PODS:
- FlipperKit/FlipperKitNetworkPlugin
- fmt (6.2.1)
- glog (0.3.5)
- - hermes-engine (0.72.5):
- - hermes-engine/Pre-built (= 0.72.5)
- - hermes-engine/Pre-built (0.72.5)
+ - hermes-engine (0.72.14):
+ - hermes-engine/Pre-built (= 0.72.14)
+ - hermes-engine/Pre-built (0.72.14)
- libevent (2.1.12)
- OCMock (3.9.1)
- OpenSSL-Universal (1.1.1100)
@@ -98,26 +98,26 @@ PODS:
- fmt (~> 6.2.1)
- glog
- libevent
- - RCTRequired (0.72.5)
- - RCTTypeSafety (0.72.5):
- - FBLazyVector (= 0.72.5)
- - RCTRequired (= 0.72.5)
- - React-Core (= 0.72.5)
- - React (0.72.5):
- - React-Core (= 0.72.5)
- - React-Core/DevSupport (= 0.72.5)
- - React-Core/RCTWebSocket (= 0.72.5)
- - React-RCTActionSheet (= 0.72.5)
- - React-RCTAnimation (= 0.72.5)
- - React-RCTBlob (= 0.72.5)
- - React-RCTImage (= 0.72.5)
- - React-RCTLinking (= 0.72.5)
- - React-RCTNetwork (= 0.72.5)
- - React-RCTSettings (= 0.72.5)
- - React-RCTText (= 0.72.5)
- - React-RCTVibration (= 0.72.5)
- - React-callinvoker (0.72.5)
- - React-Codegen (0.72.5):
+ - RCTRequired (0.72.14)
+ - RCTTypeSafety (0.72.14):
+ - FBLazyVector (= 0.72.14)
+ - RCTRequired (= 0.72.14)
+ - React-Core (= 0.72.14)
+ - React (0.72.14):
+ - React-Core (= 0.72.14)
+ - React-Core/DevSupport (= 0.72.14)
+ - React-Core/RCTWebSocket (= 0.72.14)
+ - React-RCTActionSheet (= 0.72.14)
+ - React-RCTAnimation (= 0.72.14)
+ - React-RCTBlob (= 0.72.14)
+ - React-RCTImage (= 0.72.14)
+ - React-RCTLinking (= 0.72.14)
+ - React-RCTNetwork (= 0.72.14)
+ - React-RCTSettings (= 0.72.14)
+ - React-RCTText (= 0.72.14)
+ - React-RCTVibration (= 0.72.14)
+ - React-callinvoker (0.72.14)
+ - React-Codegen (0.72.14):
- DoubleConversion
- FBReactNativeSpec
- glog
@@ -136,11 +136,11 @@ PODS:
- React-utils
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- - React-Core (0.72.5):
+ - React-Core (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-Core/Default (= 0.72.5)
+ - React-Core/Default (= 0.72.14)
- React-cxxreact
- React-hermes
- React-jsi
@@ -150,7 +150,7 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/CoreModulesHeaders (0.72.5):
+ - React-Core/CoreModulesHeaders (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -164,7 +164,7 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/Default (0.72.5):
+ - React-Core/Default (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -177,23 +177,23 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/DevSupport (0.72.5):
+ - React-Core/DevSupport (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-Core/Default (= 0.72.5)
- - React-Core/RCTWebSocket (= 0.72.5)
+ - React-Core/Default (= 0.72.14)
+ - React-Core/RCTWebSocket (= 0.72.14)
- React-cxxreact
- React-hermes
- React-jsi
- React-jsiexecutor
- - React-jsinspector (= 0.72.5)
+ - React-jsinspector (= 0.72.14)
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTActionSheetHeaders (0.72.5):
+ - React-Core/RCTActionSheetHeaders (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -207,7 +207,7 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTAnimationHeaders (0.72.5):
+ - React-Core/RCTAnimationHeaders (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -221,7 +221,7 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTBlobHeaders (0.72.5):
+ - React-Core/RCTBlobHeaders (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -235,7 +235,7 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTImageHeaders (0.72.5):
+ - React-Core/RCTImageHeaders (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -249,7 +249,7 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTLinkingHeaders (0.72.5):
+ - React-Core/RCTLinkingHeaders (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -263,7 +263,7 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTNetworkHeaders (0.72.5):
+ - React-Core/RCTNetworkHeaders (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -277,7 +277,7 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTPushNotificationHeaders (0.72.5):
+ - React-Core/RCTPushNotificationHeaders (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -291,7 +291,7 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTSettingsHeaders (0.72.5):
+ - React-Core/RCTSettingsHeaders (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -305,7 +305,7 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTTextHeaders (0.72.5):
+ - React-Core/RCTTextHeaders (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -319,7 +319,7 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTVibrationHeaders (0.72.5):
+ - React-Core/RCTVibrationHeaders (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -333,11 +333,11 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-Core/RCTWebSocket (0.72.5):
+ - React-Core/RCTWebSocket (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-Core/Default (= 0.72.5)
+ - React-Core/Default (= 0.72.14)
- React-cxxreact
- React-hermes
- React-jsi
@@ -347,591 +347,591 @@ PODS:
- React-utils
- SocketRocket (= 0.6.1)
- Yoga
- - React-CoreModules (0.72.5):
+ - React-CoreModules (0.72.14):
- RCT-Folly (= 2021.07.22.00)
- - RCTTypeSafety (= 0.72.5)
- - React-Codegen (= 0.72.5)
- - React-Core/CoreModulesHeaders (= 0.72.5)
- - React-jsi (= 0.72.5)
+ - RCTTypeSafety (= 0.72.14)
+ - React-Codegen (= 0.72.14)
+ - React-Core/CoreModulesHeaders (= 0.72.14)
+ - React-jsi (= 0.72.14)
- React-RCTBlob
- - React-RCTImage (= 0.72.5)
- - ReactCommon/turbomodule/core (= 0.72.5)
+ - React-RCTImage (= 0.72.14)
+ - ReactCommon/turbomodule/core (= 0.72.14)
- SocketRocket (= 0.6.1)
- - React-cxxreact (0.72.5):
+ - React-cxxreact (0.72.14):
- boost (= 1.76.0)
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-callinvoker (= 0.72.5)
- - React-debug (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsinspector (= 0.72.5)
- - React-logger (= 0.72.5)
- - React-perflogger (= 0.72.5)
- - React-runtimeexecutor (= 0.72.5)
- - React-debug (0.72.5)
- - React-Fabric (0.72.5):
+ - React-callinvoker (= 0.72.14)
+ - React-debug (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsinspector (= 0.72.14)
+ - React-logger (= 0.72.14)
+ - React-perflogger (= 0.72.14)
+ - React-runtimeexecutor (= 0.72.14)
+ - React-debug (0.72.14)
+ - React-Fabric (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-Fabric/animations (= 0.72.5)
- - React-Fabric/attributedstring (= 0.72.5)
- - React-Fabric/butter (= 0.72.5)
- - React-Fabric/componentregistry (= 0.72.5)
- - React-Fabric/componentregistrynative (= 0.72.5)
- - React-Fabric/components (= 0.72.5)
- - React-Fabric/config (= 0.72.5)
- - React-Fabric/core (= 0.72.5)
- - React-Fabric/debug_renderer (= 0.72.5)
- - React-Fabric/imagemanager (= 0.72.5)
- - React-Fabric/leakchecker (= 0.72.5)
- - React-Fabric/mapbuffer (= 0.72.5)
- - React-Fabric/mounting (= 0.72.5)
- - React-Fabric/scheduler (= 0.72.5)
- - React-Fabric/telemetry (= 0.72.5)
- - React-Fabric/templateprocessor (= 0.72.5)
- - React-Fabric/textlayoutmanager (= 0.72.5)
- - React-Fabric/uimanager (= 0.72.5)
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-Fabric/animations (= 0.72.14)
+ - React-Fabric/attributedstring (= 0.72.14)
+ - React-Fabric/butter (= 0.72.14)
+ - React-Fabric/componentregistry (= 0.72.14)
+ - React-Fabric/componentregistrynative (= 0.72.14)
+ - React-Fabric/components (= 0.72.14)
+ - React-Fabric/config (= 0.72.14)
+ - React-Fabric/core (= 0.72.14)
+ - React-Fabric/debug_renderer (= 0.72.14)
+ - React-Fabric/imagemanager (= 0.72.14)
+ - React-Fabric/leakchecker (= 0.72.14)
+ - React-Fabric/mapbuffer (= 0.72.14)
+ - React-Fabric/mounting (= 0.72.14)
+ - React-Fabric/scheduler (= 0.72.14)
+ - React-Fabric/telemetry (= 0.72.14)
+ - React-Fabric/templateprocessor (= 0.72.14)
+ - React-Fabric/textlayoutmanager (= 0.72.14)
+ - React-Fabric/uimanager (= 0.72.14)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/animations (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/animations (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/attributedstring (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/attributedstring (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/butter (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/butter (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/componentregistry (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/componentregistry (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/componentregistrynative (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/componentregistrynative (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-Fabric/components/activityindicator (= 0.72.5)
- - React-Fabric/components/image (= 0.72.5)
- - React-Fabric/components/inputaccessory (= 0.72.5)
- - React-Fabric/components/legacyviewmanagerinterop (= 0.72.5)
- - React-Fabric/components/modal (= 0.72.5)
- - React-Fabric/components/rncore (= 0.72.5)
- - React-Fabric/components/root (= 0.72.5)
- - React-Fabric/components/safeareaview (= 0.72.5)
- - React-Fabric/components/scrollview (= 0.72.5)
- - React-Fabric/components/text (= 0.72.5)
- - React-Fabric/components/textinput (= 0.72.5)
- - React-Fabric/components/unimplementedview (= 0.72.5)
- - React-Fabric/components/view (= 0.72.5)
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-Fabric/components/activityindicator (= 0.72.14)
+ - React-Fabric/components/image (= 0.72.14)
+ - React-Fabric/components/inputaccessory (= 0.72.14)
+ - React-Fabric/components/legacyviewmanagerinterop (= 0.72.14)
+ - React-Fabric/components/modal (= 0.72.14)
+ - React-Fabric/components/rncore (= 0.72.14)
+ - React-Fabric/components/root (= 0.72.14)
+ - React-Fabric/components/safeareaview (= 0.72.14)
+ - React-Fabric/components/scrollview (= 0.72.14)
+ - React-Fabric/components/text (= 0.72.14)
+ - React-Fabric/components/textinput (= 0.72.14)
+ - React-Fabric/components/unimplementedview (= 0.72.14)
+ - React-Fabric/components/view (= 0.72.14)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/activityindicator (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/activityindicator (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/image (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/image (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/inputaccessory (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/inputaccessory (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/legacyviewmanagerinterop (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/legacyviewmanagerinterop (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/modal (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/modal (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/rncore (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/rncore (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/root (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/root (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/safeareaview (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/safeareaview (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/scrollview (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/scrollview (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/text (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/text (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/textinput (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/textinput (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/unimplementedview (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/unimplementedview (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/components/view (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/components/view (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
+ - ReactCommon/turbomodule/core (= 0.72.14)
- Yoga
- - React-Fabric/config (0.72.5):
+ - React-Fabric/config (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/core (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/core (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/debug_renderer (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/debug_renderer (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/imagemanager (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/imagemanager (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/leakchecker (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/leakchecker (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/mapbuffer (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/mapbuffer (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/mounting (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/mounting (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/scheduler (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/scheduler (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/telemetry (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/telemetry (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/templateprocessor (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/templateprocessor (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/textlayoutmanager (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/textlayoutmanager (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- React-Fabric/uimanager
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-Fabric/uimanager (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-Fabric/uimanager (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - RCTRequired (= 0.72.5)
- - RCTTypeSafety (= 0.72.5)
+ - RCTRequired (= 0.72.14)
+ - RCTTypeSafety (= 0.72.14)
- React-Core
- React-debug
- - React-graphics (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-jsiexecutor (= 0.72.5)
+ - React-graphics (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-jsiexecutor (= 0.72.14)
- React-logger
- React-runtimescheduler
- React-utils
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-graphics (0.72.5):
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-graphics (0.72.14):
- glog
- RCT-Folly/Fabric (= 2021.07.22.00)
- - React-Core/Default (= 0.72.5)
- - React-hermes (0.72.5):
+ - React-Core/Default (= 0.72.14)
+ - React-hermes (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- RCT-Folly/Futures (= 2021.07.22.00)
- - React-cxxreact (= 0.72.5)
+ - React-cxxreact (= 0.72.14)
- React-jsi
- - React-jsiexecutor (= 0.72.5)
- - React-jsinspector (= 0.72.5)
- - React-perflogger (= 0.72.5)
- - React-ImageManager (0.72.5):
+ - React-jsiexecutor (= 0.72.14)
+ - React-jsinspector (= 0.72.14)
+ - React-perflogger (= 0.72.14)
+ - React-ImageManager (0.72.14):
- glog
- RCT-Folly/Fabric
- React-Core/Default
@@ -939,24 +939,24 @@ PODS:
- React-Fabric
- React-RCTImage
- React-utils
- - React-jsi (0.72.5):
+ - React-jsi (0.72.14):
- boost (= 1.76.0)
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-jsiexecutor (0.72.5):
+ - React-jsiexecutor (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-cxxreact (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-perflogger (= 0.72.5)
- - React-jsinspector (0.72.5)
- - React-logger (0.72.5):
+ - React-cxxreact (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-perflogger (= 0.72.14)
+ - React-jsinspector (0.72.14)
+ - React-logger (0.72.14):
- glog
- - React-NativeModulesApple (0.72.5):
+ - React-NativeModulesApple (0.72.14):
- hermes-engine
- React-callinvoker
- React-Core
@@ -965,17 +965,17 @@ PODS:
- React-runtimeexecutor
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- - React-perflogger (0.72.5)
- - React-RCTActionSheet (0.72.5):
- - React-Core/RCTActionSheetHeaders (= 0.72.5)
- - React-RCTAnimation (0.72.5):
+ - React-perflogger (0.72.14)
+ - React-RCTActionSheet (0.72.14):
+ - React-Core/RCTActionSheetHeaders (= 0.72.14)
+ - React-RCTAnimation (0.72.14):
- RCT-Folly (= 2021.07.22.00)
- - RCTTypeSafety (= 0.72.5)
- - React-Codegen (= 0.72.5)
- - React-Core/RCTAnimationHeaders (= 0.72.5)
- - React-jsi (= 0.72.5)
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-RCTAppDelegate (0.72.5):
+ - RCTTypeSafety (= 0.72.14)
+ - React-Codegen (= 0.72.14)
+ - React-Core/RCTAnimationHeaders (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-RCTAppDelegate (0.72.14):
- RCT-Folly
- RCTRequired
- RCTTypeSafety
@@ -987,78 +987,78 @@ PODS:
- React-RCTNetwork
- React-runtimescheduler
- ReactCommon/turbomodule/core
- - React-RCTBlob (0.72.5):
+ - React-RCTBlob (0.72.14):
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-Codegen (= 0.72.5)
- - React-Core/RCTBlobHeaders (= 0.72.5)
- - React-Core/RCTWebSocket (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-RCTNetwork (= 0.72.5)
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-RCTFabric (0.72.5):
+ - React-Codegen (= 0.72.14)
+ - React-Core/RCTBlobHeaders (= 0.72.14)
+ - React-Core/RCTWebSocket (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-RCTNetwork (= 0.72.14)
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-RCTFabric (0.72.14):
- glog
- hermes-engine
- RCT-Folly/Fabric (= 2021.07.22.00)
- - React-Core (= 0.72.5)
- - React-Fabric (= 0.72.5)
+ - React-Core (= 0.72.14)
+ - React-Fabric (= 0.72.14)
- React-ImageManager
- - React-RCTImage (= 0.72.5)
+ - React-RCTImage (= 0.72.14)
- React-RCTText
- React-runtimescheduler
- React-utils
- Yoga
- - React-RCTImage (0.72.5):
+ - React-RCTImage (0.72.14):
- RCT-Folly (= 2021.07.22.00)
- - RCTTypeSafety (= 0.72.5)
- - React-Codegen (= 0.72.5)
- - React-Core/RCTImageHeaders (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-RCTNetwork (= 0.72.5)
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-RCTLinking (0.72.5):
- - React-Codegen (= 0.72.5)
- - React-Core/RCTLinkingHeaders (= 0.72.5)
- - React-jsi (= 0.72.5)
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-RCTNetwork (0.72.5):
+ - RCTTypeSafety (= 0.72.14)
+ - React-Codegen (= 0.72.14)
+ - React-Core/RCTImageHeaders (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-RCTNetwork (= 0.72.14)
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-RCTLinking (0.72.14):
+ - React-Codegen (= 0.72.14)
+ - React-Core/RCTLinkingHeaders (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-RCTNetwork (0.72.14):
- RCT-Folly (= 2021.07.22.00)
- - RCTTypeSafety (= 0.72.5)
- - React-Codegen (= 0.72.5)
- - React-Core/RCTNetworkHeaders (= 0.72.5)
- - React-jsi (= 0.72.5)
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-RCTPushNotification (0.72.5):
- - RCTTypeSafety (= 0.72.5)
- - React-Codegen (= 0.72.5)
- - React-Core/RCTPushNotificationHeaders (= 0.72.5)
- - React-jsi (= 0.72.5)
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-RCTSettings (0.72.5):
+ - RCTTypeSafety (= 0.72.14)
+ - React-Codegen (= 0.72.14)
+ - React-Core/RCTNetworkHeaders (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-RCTPushNotification (0.72.14):
+ - RCTTypeSafety (= 0.72.14)
+ - React-Codegen (= 0.72.14)
+ - React-Core/RCTPushNotificationHeaders (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-RCTSettings (0.72.14):
- RCT-Folly (= 2021.07.22.00)
- - RCTTypeSafety (= 0.72.5)
- - React-Codegen (= 0.72.5)
- - React-Core/RCTSettingsHeaders (= 0.72.5)
- - React-jsi (= 0.72.5)
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-RCTTest (0.72.5):
+ - RCTTypeSafety (= 0.72.14)
+ - React-Codegen (= 0.72.14)
+ - React-Core/RCTSettingsHeaders (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-RCTTest (0.72.14):
- RCT-Folly (= 2021.07.22.00)
- - React-Core (= 0.72.5)
- - React-CoreModules (= 0.72.5)
- - React-jsi (= 0.72.5)
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-RCTText (0.72.5):
- - React-Core/RCTTextHeaders (= 0.72.5)
- - React-RCTVibration (0.72.5):
+ - React-Core (= 0.72.14)
+ - React-CoreModules (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-RCTText (0.72.14):
+ - React-Core/RCTTextHeaders (= 0.72.14)
+ - React-RCTVibration (0.72.14):
- RCT-Folly (= 2021.07.22.00)
- - React-Codegen (= 0.72.5)
- - React-Core/RCTVibrationHeaders (= 0.72.5)
- - React-jsi (= 0.72.5)
- - ReactCommon/turbomodule/core (= 0.72.5)
- - React-rncore (0.72.5)
- - React-runtimeexecutor (0.72.5):
- - React-jsi (= 0.72.5)
- - React-runtimescheduler (0.72.5):
+ - React-Codegen (= 0.72.14)
+ - React-Core/RCTVibrationHeaders (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - ReactCommon/turbomodule/core (= 0.72.14)
+ - React-rncore (0.72.14)
+ - React-runtimeexecutor (0.72.14):
+ - React-jsi (= 0.72.14)
+ - React-runtimescheduler (0.72.14):
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
@@ -1066,11 +1066,11 @@ PODS:
- React-debug
- React-jsi
- React-runtimeexecutor
- - React-utils (0.72.5):
+ - React-utils (0.72.14):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-debug
- - ReactCommon-Samples (0.72.5):
+ - ReactCommon-Samples (0.72.14):
- DoubleConversion
- hermes-engine
- RCT-Folly
@@ -1079,26 +1079,26 @@ PODS:
- React-cxxreact
- React-NativeModulesApple
- ReactCommon/turbomodule/core
- - ReactCommon/turbomodule/bridging (0.72.5):
+ - ReactCommon/turbomodule/bridging (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-callinvoker (= 0.72.5)
- - React-cxxreact (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-logger (= 0.72.5)
- - React-perflogger (= 0.72.5)
- - ReactCommon/turbomodule/core (0.72.5):
+ - React-callinvoker (= 0.72.14)
+ - React-cxxreact (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-logger (= 0.72.14)
+ - React-perflogger (= 0.72.14)
+ - ReactCommon/turbomodule/core (0.72.14):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- - React-callinvoker (= 0.72.5)
- - React-cxxreact (= 0.72.5)
- - React-jsi (= 0.72.5)
- - React-logger (= 0.72.5)
- - React-perflogger (= 0.72.5)
+ - React-callinvoker (= 0.72.14)
+ - React-cxxreact (= 0.72.14)
+ - React-jsi (= 0.72.14)
+ - React-logger (= 0.72.14)
+ - React-perflogger (= 0.72.14)
- ScreenshotManager (0.0.1):
- RCT-Folly (= 2021.07.22.00)
- React-Core
@@ -1213,7 +1213,6 @@ EXTERNAL SOURCES:
:podspec: "../react-native/third-party-podspecs/glog.podspec"
hermes-engine:
:podspec: "../react-native/sdks/hermes-engine/hermes-engine.podspec"
- :tag: hermes-2023-08-07-RNv0.72.4-813b2def12bc9df02654b3e3653ae4a68d0572e0
RCT-Folly:
:podspec: "../react-native/third-party-podspecs/RCT-Folly.podspec"
RCTRequired:
@@ -1298,11 +1297,11 @@ EXTERNAL SOURCES:
:path: "../react-native/ReactCommon/yoga"
SPEC CHECKSUMS:
- boost: 57d2868c099736d80fcd648bf211b4431e51a558
+ boost: 7dcd2de282d72e344012f7d6564d024930a6a440
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
- FBLazyVector: 71803c074f6325f10b5ec891c443b6bbabef0ca7
- FBReactNativeSpec: 205267901c7e35f68af8c55a646120b6c0fca3a4
+ FBLazyVector: d98eefb42c5a64cb28ef966bd9096c76770d8f24
+ FBReactNativeSpec: 08daee5de1f4368946e7bd2d29a577435f84c640
Flipper: 6edb735e6c3e332975d1b17956bcc584eccf5818
Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c
Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30
@@ -1313,54 +1312,54 @@ SPEC CHECKSUMS:
FlipperKit: 2efad7007d6745a3f95e4034d547be637f89d3f6
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
- hermes-engine: f6cf92a471053245614d9d8097736f6337d5b86c
+ hermes-engine: b213bace5f31766ad1434d2d9b2cbf04cf92a2b6
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1
- RCTRequired: df81ab637d35fac9e6eb94611cfd20f0feb05455
- RCTTypeSafety: 4636e4a36c7c2df332bda6d59b19b41c443d4287
- React: e0cc5197a804031a6c53fb38483c3485fcb9d6f3
- React-callinvoker: 1a635856fe0c3d8b13fccd4ed7e76283b99b0868
- React-Codegen: 03363aad02c23c96a268293f0de3fb61a74f5f2d
- React-Core: 252f8e9ca5a4e91af9b9be58670846d662b1c49f
- React-CoreModules: f8b9e91fac7bd5d18729ce961a4978c70b5031cc
- React-cxxreact: 70284b32dcd367439d7dae84d9f72660544181b5
- React-debug: ee33d7ba43766d9b10b32561527b57ccfbcb6bd1
- React-Fabric: 03aad7b2c0b4df23d72ad480fe8965788d41ba29
- React-graphics: 50db6eb731c3faf9ab74a74946e2f469ba8d465a
- React-hermes: 91f97ea2669dc5847e1f26c243aaad913319c570
- React-ImageManager: a64dd40c4eb20412adea18d746453c691330723d
- React-jsi: bd68b7779746014f01ea72d1b738809e132d7f1e
- React-jsiexecutor: ff70a72027dea5cc7d71cfcc6fad7f599f63987a
- React-jsinspector: aef73cbd43b70675f572214d10fa438c89bf11ba
- React-logger: 2e4aee3e11b3ec4fa6cfd8004610bbb3b8d6cca4
- React-NativeModulesApple: 797bc6078d566eef3fb3f74127e6e1d2e945a15f
- React-perflogger: cd8886513f68e1c135a1e79d20575c6489641597
- React-RCTActionSheet: 726d2615ca62a77ce3e2c13d87f65379cdc73498
- React-RCTAnimation: 8f2716b881c37c64858e4ecee0f58bfa57ff9afd
- React-RCTAppDelegate: d4a213f29e81682f6b9c7d22f62a2ccab6d125ae
- React-RCTBlob: dfaa933231c3497915bbcc9d98fcff7b6b60582c
- React-RCTFabric: a7c36529eb41d7ba14751c30ddbc35732e74a5c1
- React-RCTImage: 747e3d7b656a67470f9c234baedb8d41bbc4e745
- React-RCTLinking: 148332b5b0396b280b05534f7d168e560a3bbd5f
- React-RCTNetwork: 1d818121a8e678f064de663a6db7aaefc099e53c
- React-RCTPushNotification: f843b7bdd33e4c5db94b75b9baa958fa48add08c
- React-RCTSettings: 4b95d26ebc88bfd3b6535b2d7904914ff88dbfc2
- React-RCTTest: 1fbeb76d64f5c54af9787ad614311ec2682a8a5f
- React-RCTText: ce4499e4f2d8f85dc4b93ff0559313a016c4f3e2
- React-RCTVibration: 45372e61b35e96d16893540958d156675afbeb63
- React-rncore: 1bda313fa5cb97e8140f993d2a5b318a9a2545a6
- React-runtimeexecutor: 7e31e2bc6d0ecc83d4ba05eadc98401007abc10c
- React-runtimescheduler: cc32add98c45c5df18436a6a52a7e1f6edec102c
- React-utils: 7a9918a1ffdd39aba67835d42386f592ea3f8e76
- ReactCommon: 91ece8350ebb3dd2be9cef662abd78b6948233c0
- ReactCommon-Samples: 0e28678a39b229b068ac256758fccd4ff1776304
- ScreenshotManager: 4e5729bfcd19014d277e57eb60e8e75db64b2953
+ RCTRequired: 264adaca1d8b1a9c078761891898d4142df05313
+ RCTTypeSafety: 279a89da7058a69899778a127be73fab38b84499
+ React: 725b4e11f6ffb43d6f9b14e82879073623db4071
+ React-callinvoker: c2ba5e7e1187d0f37705b9dcaaf9bbf24d3fe9dc
+ React-Codegen: 2ae15890ca79d6d0e562e8c09f8ac9fcb5d909d6
+ React-Core: 89fe417d4957766ef20b4bec921a0721e914d988
+ React-CoreModules: 57ea4ca8627be90b1a29916e0640d879e5684305
+ React-cxxreact: 8bcd7336084fbaaad0304935896f2cb62659894d
+ React-debug: d360c17c84e514b9143e78217072183d4fcfb9c0
+ React-Fabric: f1c7997ea3cb10d0870d24fbeb2e5283f1dda01c
+ React-graphics: 0e8dbbbb400ce6afacb2b42c11850fdf58f70b14
+ React-hermes: d2e7945d1b480a2e732d64303564d9870edf22e9
+ React-ImageManager: 243e53404232612315aafdeda3995f0e58f8811b
+ React-jsi: 53bff70353449aa006546c00024736de3ed66219
+ React-jsiexecutor: e9a70be9304ef2e66eeebac35710f958b076dc14
+ React-jsinspector: 275d9f80210f15f0af9a4b7fd5683fab9738e28e
+ React-logger: 8da4802de77a0eb62512396ad6bb1769904c2f0e
+ React-NativeModulesApple: 3107f777453f953906d9ba9dc5f8cbd91a6ef913
+ React-perflogger: daabc494c6328efc1784a4b49b8b74fca305d11c
+ React-RCTActionSheet: 0e0e64a7cf6c07f1de73d1f0a92d26a70262b256
+ React-RCTAnimation: faef65b19e73029c4828167985b0a7c01c62756d
+ React-RCTAppDelegate: b24e761d235760656226364bb259e3f1508559c2
+ React-RCTBlob: 9e9784a84b824b6d7e2cce05a8087c8c3a47a559
+ React-RCTFabric: 25cffd7ad36bf244947864caf3627402f073aac9
+ React-RCTImage: 15e211cbb629210ab9c1fa37e07e7100362b12ed
+ React-RCTLinking: 50d5faf19b02541cefb78ee5d505029283c8ef95
+ React-RCTNetwork: dfa9fb4ad2ae459b9193a14204b1d9da907d15a7
+ React-RCTPushNotification: a8905b946fd65eb0fbbcdaee2fdc053210d403d9
+ React-RCTSettings: 37611fa97d44a9c5a7ea844cfb953d3513f7ace0
+ React-RCTTest: c23caa7d86e287d21b4f5ab9e9d321e6df7b8432
+ React-RCTText: 39ed334f64484d07b85a8159cf117814ff069ff6
+ React-RCTVibration: 62462803b5fe0842e0be6d9ef86dd74e0df4a614
+ React-rncore: 610eaede9a22ba40cfeea8a34b5110f285be9170
+ React-runtimeexecutor: e5c2f0a1493d72c61b97465ccfedc339157b3179
+ React-runtimescheduler: f284b4fdad43fe811041129099f1339b54783135
+ React-utils: 22a77b05da25ce49c744faa82e73856dcae1734e
+ ReactCommon: ff94462e007c568d8cdebc32e3c97af86ec93bb5
+ ReactCommon-Samples: 135e532856297dde0301cdd29e7e2b162d2fdbfa
+ ScreenshotManager: 0e3bc01ae69e0d00ded2461f7b1e9d1393eef3ff
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
- Yoga: 86fed2e4d425ee4c6eab3813ba1791101ee153c6
+ Yoga: c32e0be1a17f8f1f0e633a3122f7666441f52c82
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
PODFILE CHECKSUM: 9fa6f105e2187b680e978d57b28e2f700c8bd295
-COCOAPODS: 1.13.0
+COCOAPODS: 1.14.3
diff --git a/packages/rn-tester/PrivacyInfo.xcprivacy b/packages/rn-tester/PrivacyInfo.xcprivacy
new file mode 100644
index 000000000000..41b8317f0652
--- /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 f43cd892f012..7b4c0c68129d 100644
--- a/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj
+++ b/packages/rn-tester/RNTesterPods.xcodeproj/project.pbxproj
@@ -59,6 +59,7 @@
E7DB216622B2F3EC005AC45F /* RCTRootViewIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E7DB216122B2F3EC005AC45F /* RCTRootViewIntegrationTests.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 */
@@ -179,6 +180,7 @@
E7DB216022B2F3EC005AC45F /* RNTesterSnapshotTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNTesterSnapshotTests.m; sourceTree = ""; };
E7DB216122B2F3EC005AC45F /* RCTRootViewIntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRootViewIntegrationTests.m; sourceTree = ""; };
E7DB218B22B41FCD005AC45F /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = XCTest.framework; sourceTree = DEVELOPER_DIR; };
+ F0D621C22BBB9E38005960AC /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -226,6 +228,7 @@
isa = PBXGroup;
children = (
0CC3BE1A25DDB68A0033CAEB /* RNTester.entitlements */,
+ F0D621C22BBB9E38005960AC /* PrivacyInfo.xcprivacy */,
AC474BFB29BBD4A1002BDAED /* RNTester.xctestplan */,
E771AEEA22B44E3100EA1189 /* Info.plist */,
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
@@ -515,6 +518,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;
@@ -944,6 +948,7 @@
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
+ _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
@@ -961,6 +966,17 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_LABEL = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
+ "${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",
+ );
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@@ -978,6 +994,8 @@
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
+ "-Wl",
+ "-ld_classic",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../react-native";
SDKROOT = iphoneos;
@@ -1029,6 +1047,10 @@
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "$(inherited)",
+ _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
+ );
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
@@ -1044,6 +1066,17 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_LABEL = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
+ "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
+ "${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",
+ );
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_CFLAGS = (
@@ -1060,6 +1093,8 @@
OTHER_LDFLAGS = (
"-ObjC",
"-lc++",
+ "-Wl",
+ "-ld_classic",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../react-native";
SDKROOT = iphoneos;
diff --git a/scripts/circle-ci-artifacts-utils.js b/scripts/circle-ci-artifacts-utils.js
index 3a9d9d2a0c83..48d02327b088 100644
--- a/scripts/circle-ci-artifacts-utils.js
+++ b/scripts/circle-ci-artifacts-utils.js
@@ -140,8 +140,11 @@ async function _findUrlForJob(jobName, artifactPath) {
_throwIfJobIsUnsuccessful(job);
const artifacts = await _getJobsArtifacts(job.job_number);
- return artifacts.find(artifact => artifact.path.indexOf(artifactPath) > -1)
- .url;
+ let artifact = artifacts.find(a => a.path.indexOf(artifactPath) > -1);
+ if (!artifact) {
+ throw new Error(`I could not find the artifact with path ${artifactPath}`);
+ }
+ return artifact.url;
}
function _throwIfJobIsNull(job) {
@@ -168,6 +171,17 @@ async function artifactURLForMavenLocal() {
return _findUrlForJob('build_and_publish_npm_package-2', 'maven-local.zip');
}
+async function artifactURLForReactNative() {
+ let shortCommit = exec('git rev-parse HEAD', {silent: true})
+ .toString()
+ .trim()
+ .slice(0, 9);
+ return _findUrlForJob(
+ 'build_npm_package',
+ `react-native-1000.0.0-${shortCommit}.tgz`,
+ );
+}
+
async function artifactURLForHermesRNTesterAPK(emulatorArch) {
return _findUrlForJob(
'test_android',
@@ -194,5 +208,6 @@ module.exports = {
artifactURLForHermesRNTesterAPK,
artifactURLForMavenLocal,
artifactURLHermesDebug,
+ artifactURLForReactNative,
baseTmpPath,
};
diff --git a/scripts/test-e2e-local.js b/scripts/test-e2e-local.js
index 0be3c7bb6a49..75fc970d30ad 100644
--- a/scripts/test-e2e-local.js
+++ b/scripts/test-e2e-local.js
@@ -16,11 +16,10 @@
* and to make it more accessible for other devs to play around with.
*/
-const {exec, pushd, popd, pwd, cd} = require('shelljs');
+const {exec, pushd, popd, pwd, cd, sed} = require('shelljs');
const updateTemplatePackage = require('./update-template-package');
const yargs = require('yargs');
const path = require('path');
-const fs = require('fs');
const {
checkPackagerRunning,
@@ -184,20 +183,16 @@ async function testRNTestProject(circleCIArtifacts) {
// create the local npm package to feed the CLI
// base setup required (specular to publish-npm.js)
- const baseVersion = require('../packages/react-native/package.json').version;
// in local testing, 1000.0.0 mean we are on main, every other case means we are
// working on a release version
- const buildType = baseVersion !== '1000.0.0' ? 'release' : 'dry-run';
+ const shortCommit = exec('git rev-parse HEAD', {silent: true})
+ .toString()
+ .trim()
+ .slice(0, 9);
- // we need to add the unique timestamp to avoid npm/yarn to use some local caches
- const dateIdentifier = new Date()
- .toISOString()
- .slice(0, -8)
- .replace(/[-:]/g, '')
- .replace(/[T]/g, '-');
-
- const releaseVersion = `${baseVersion}-${dateIdentifier}`;
+ const releaseVersion = `1000.0.0-${shortCommit}`;
+ const buildType = 'dry-run';
// Prepare some variables for later use
const repoRoot = pwd();
@@ -206,8 +201,9 @@ async function testRNTestProject(circleCIArtifacts) {
const mavenLocalPath =
circleCIArtifacts != null
- ? path.join(circleCIArtifacts.baseTmpPath(), 'maven-local.zip')
+ ? path.join(circleCIArtifacts.baseTmpPath(), 'maven-local')
: '/private/tmp/maven-local';
+
const hermesPath = await prepareArtifacts(
circleCIArtifacts,
mavenLocalPath,
@@ -218,52 +214,51 @@ async function testRNTestProject(circleCIArtifacts) {
);
updateTemplatePackage({
- 'react-native': `file:${localNodeTGZPath}`,
+ 'react-native': `file://${localNodeTGZPath}`,
});
- // create locally the node module
- exec('npm pack --pack-destination ', {cwd: reactNativePackagePath});
-
- // node pack does not creates a version of React Native with the right name on main.
- // Let's add some defensive programming checks:
- if (!fs.existsSync(localNodeTGZPath)) {
- const tarfile = fs
- .readdirSync(reactNativePackagePath)
- .find(name => name.startsWith('react-native-') && name.endsWith('.tgz'));
- if (!tarfile) {
- throw new Error("Couldn't find a zipped version of react-native");
- }
- exec(
- `cp ${path.join(reactNativePackagePath, tarfile)} ${localNodeTGZPath}`,
- );
- }
-
pushd('/tmp/');
// need to avoid the pod install step - we'll do it later
exec(
- `node ${reactNativePackagePath}/cli.js init RNTestProject --template ${localNodeTGZPath} --skip-install`,
+ `node ${reactNativePackagePath}/cli.js init RNTestProject --template ${reactNativePackagePath} --skip-install`,
);
cd('RNTestProject');
exec('yarn install');
+ // When using CircleCI artifacts, the CI will zip maven local into a
+ // /tmp/maven-local subfolder struct.
+ // When we generate the project manually, there is no such structure.
+ const expandedMavenLocal =
+ circleCIArtifacts == null
+ ? mavenLocalPath
+ : `${mavenLocalPath}/tmp/maven-local`;
// need to do this here so that Android will be properly setup either way
exec(
- `echo "REACT_NATIVE_MAVEN_LOCAL_REPO=${mavenLocalPath}" >> android/gradle.properties`,
+ `echo "REACT_NATIVE_MAVEN_LOCAL_REPO=${expandedMavenLocal}" >> android/gradle.properties`,
);
- // doing the pod install here so that it's easier to play around RNTestProject
- cd('ios');
- exec('bundle install');
- exec(
- `HERMES_ENGINE_TARBALL_PATH=${hermesPath} USE_HERMES=${
- argv.hermes ? 1 : 0
- } bundle exec pod install --ansi`,
- );
-
- cd('..');
+ // Update gradle properties to set Hermes as false
+ if (!argv.hermes) {
+ sed(
+ '-i',
+ 'hermesEnabled=true',
+ 'hermesEnabled=false',
+ 'android/gradle.properties',
+ );
+ }
if (argv.platform === 'iOS') {
+ // doing the pod install here so that it's easier to play around RNTestProject
+ cd('ios');
+ exec('bundle install');
+ exec(
+ `HERMES_ENGINE_TARBALL_PATH=${hermesPath} USE_HERMES=${
+ argv.hermes ? 1 : 0
+ } bundle exec pod install --ansi`,
+ );
+
+ cd('..');
exec('yarn ios');
} else {
// android
diff --git a/scripts/testing-utils.js b/scripts/testing-utils.js
index b48d1a85d25d..b10a322bc9dc 100644
--- a/scripts/testing-utils.js
+++ b/scripts/testing-utils.js
@@ -170,16 +170,21 @@ async function downloadArtifactsFromCircleCI(
) {
const mavenLocalURL = await circleCIArtifacts.artifactURLForMavenLocal();
const hermesURL = await circleCIArtifacts.artifactURLHermesDebug();
+ const reactNativeURL = await circleCIArtifacts.artifactURLForReactNative();
const hermesPath = path.join(
circleCIArtifacts.baseTmpPath(),
'hermes-ios-debug.tar.gz',
);
- console.info('[Download] Maven Local Artifacts');
- circleCIArtifacts.downloadArtifact(mavenLocalURL, mavenLocalPath);
+ console.info(`[Download] Maven Local Artifacts from ${mavenLocalURL}`);
+ const mavenLocalZipPath = `${mavenLocalPath}.zip`;
+ circleCIArtifacts.downloadArtifact(mavenLocalURL, mavenLocalZipPath);
+ exec(`unzip -oq ${mavenLocalZipPath} -d ${mavenLocalPath}`);
console.info('[Download] Hermes');
circleCIArtifacts.downloadArtifact(hermesURL, hermesPath);
+ console.info(`[Download] React Native from ${reactNativeURL}`);
+ circleCIArtifacts.downloadArtifact(reactNativeURL, localNodeTGZPath);
return hermesPath;
}
diff --git a/yarn.lock b/yarn.lock
index 9c98b30366cf..ee14fb56a815 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2337,50 +2337,49 @@
optionalDependencies:
npmlog "2 || ^3.1.0 || ^4.0.0"
-"@react-native-community/cli-clean@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.3.7.tgz#cb4c2f225f78593412c2d191b55b8570f409a48f"
- integrity sha512-twtsv54ohcRyWVzPXL3F9VHGb4Qhn3slqqRs3wEuRzjR7cTmV2TIO2b1VhaqF4HlCgNd+cGuirvLtK2JJyaxMg==
+"@react-native-community/cli-clean@11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.4.1.tgz#0155a02e4158c8a61ba3d7a2b08f3ebebed81906"
+ integrity sha512-cwUbY3c70oBGv3FvQJWe2Qkq6m1+/dcEBonMDTYyH6i+6OrkzI4RkIGpWmbG1IS5JfE9ISUZkNL3946sxyWNkw==
dependencies:
- "@react-native-community/cli-tools" "11.3.7"
+ "@react-native-community/cli-tools" "11.4.1"
chalk "^4.1.2"
execa "^5.0.0"
prompts "^2.4.0"
-"@react-native-community/cli-config@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.3.7.tgz#4ce95548252ecb094b576369abebf9867c95d277"
- integrity sha512-FDBLku9xskS+bx0YFJFLCmUJhEZ4/MMSC9qPYOGBollWYdgE7k/TWI0IeYFmMALAnbCdKQAYP5N29N55Tad8lg==
+"@react-native-community/cli-config@11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.4.1.tgz#c27f91d2753f0f803cc79bbf299f19648a5d5627"
+ integrity sha512-sLdv1HFVqu5xNpeaR1+std0t7FFZaobpmpR0lFCOzKV7H/l611qS2Vo8zssmMK+oQbCs5JsX3SFPciODeIlaWA==
dependencies:
- "@react-native-community/cli-tools" "11.3.7"
+ "@react-native-community/cli-tools" "11.4.1"
chalk "^4.1.2"
cosmiconfig "^5.1.0"
deepmerge "^4.3.0"
glob "^7.1.3"
joi "^17.2.1"
-"@react-native-community/cli-debugger-ui@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.7.tgz#2147b73313af8de3c9b396406d5d344b904cf2bb"
- integrity sha512-aVmKuPKHZENR8SrflkMurZqeyLwbKieHdOvaZCh1Nn/0UC5CxWcyST2DB2XQboZwsvr3/WXKJkSUO+SZ1J9qTQ==
+"@react-native-community/cli-debugger-ui@11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.4.1.tgz#783cc276e1360baf8235dc8c6ebbbce0fe01d944"
+ integrity sha512-+pgIjGNW5TrJF37XG3djIOzP+WNoPp67to/ggDhrshuYgpymfb9XpDVsURJugy0Sy3RViqb83kQNK765QzTIvw==
dependencies:
serve-static "^1.13.1"
-"@react-native-community/cli-doctor@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.3.7.tgz#7d5f5b1aea78134bba713fa97795986345ff1344"
- integrity sha512-YEHUqWISOHnsl5+NM14KHelKh68Sr5/HeEZvvNdIcvcKtZic3FU7Xd1WcbNdo3gCq5JvzGFfufx02Tabh5zmrg==
+"@react-native-community/cli-doctor@11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.4.1.tgz#516ef5932de3e12989695e7cb7aba82b81e7b2de"
+ integrity sha512-O6oPiRsl8pdkcyNktpzvJAXUqdocoY4jh7Tt7wA69B1JKCJA7aPCecwJgpUZb63ZYoxOtRtYM3BYQKzRMLIuUw==
dependencies:
- "@react-native-community/cli-config" "11.3.7"
- "@react-native-community/cli-platform-android" "11.3.7"
- "@react-native-community/cli-platform-ios" "11.3.7"
- "@react-native-community/cli-tools" "11.3.7"
+ "@react-native-community/cli-config" "11.4.1"
+ "@react-native-community/cli-platform-android" "11.4.1"
+ "@react-native-community/cli-platform-ios" "11.4.1"
+ "@react-native-community/cli-tools" "11.4.1"
chalk "^4.1.2"
command-exists "^1.2.8"
envinfo "^7.7.2"
execa "^5.0.0"
hermes-profile-transformer "^0.0.6"
- ip "^1.1.5"
node-stream-zip "^1.9.1"
ora "^5.4.1"
prompts "^2.4.0"
@@ -2390,64 +2389,63 @@
wcwidth "^1.0.1"
yaml "^2.2.1"
-"@react-native-community/cli-hermes@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.3.7.tgz#091e730a1f8bace6c3729e8744bad6141002e0e8"
- integrity sha512-chkKd8n/xeZkinRvtH6QcYA8rjNOKU3S3Lw/3Psxgx+hAYV0Gyk95qJHTalx7iu+PwjOOqqvCkJo5jCkYLkoqw==
+"@react-native-community/cli-hermes@11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.4.1.tgz#abf487ae8ab53c66f6f1178bcd37ecbbbac9fb5c"
+ integrity sha512-1VAjwcmv+i9BJTMMVn5Grw7AcgURhTyfHVghJ1YgBE2euEJxPuqPKSxP54wBOQKnWUwsuDQAtQf+jPJoCxJSSA==
dependencies:
- "@react-native-community/cli-platform-android" "11.3.7"
- "@react-native-community/cli-tools" "11.3.7"
+ "@react-native-community/cli-platform-android" "11.4.1"
+ "@react-native-community/cli-tools" "11.4.1"
chalk "^4.1.2"
hermes-profile-transformer "^0.0.6"
- ip "^1.1.5"
-"@react-native-community/cli-platform-android@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.7.tgz#7845bc48258b6bb55df208a23b3690647f113995"
- integrity sha512-WGtXI/Rm178UQb8bu1TAeFC/RJvYGnbHpULXvE20GkmeJ1HIrMjkagyk6kkY3Ej25JAP2R878gv+TJ/XiRhaEg==
+"@react-native-community/cli-platform-android@11.4.1", "@react-native-community/cli-platform-android@^11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.4.1.tgz#ec5fc97e87834f2e33cb0d34dcef6c17b20f60fc"
+ integrity sha512-VMmXWIzk0Dq5RAd+HIEa3Oe7xl2jso7+gOr6E2HALF4A3fCKUjKZQ6iK2t6AfnY04zftvaiKw6zUXtrfl52AVQ==
dependencies:
- "@react-native-community/cli-tools" "11.3.7"
+ "@react-native-community/cli-tools" "11.4.1"
chalk "^4.1.2"
execa "^5.0.0"
glob "^7.1.3"
logkitty "^0.7.1"
-"@react-native-community/cli-platform-ios@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.7.tgz#87478f907634713b7236c77870446a5ca1f35ff1"
- integrity sha512-Z/8rseBput49EldX7MogvN6zJlWzZ/4M97s2P+zjS09ZoBU7I0eOKLi0N9wx+95FNBvGQQ/0P62bB9UaFQH2jw==
+"@react-native-community/cli-platform-ios@11.4.1", "@react-native-community/cli-platform-ios@^11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.4.1.tgz#12d72741273b684734d5ed021415b7f543a6f009"
+ integrity sha512-RPhwn+q3IY9MpWc9w/Qmzv03mo8sXdah2eSZcECgweqD5SHWtOoRCUt11zM8jASpAQ8Tm5Je7YE9bHvdwGl4hA==
dependencies:
- "@react-native-community/cli-tools" "11.3.7"
+ "@react-native-community/cli-tools" "11.4.1"
chalk "^4.1.2"
execa "^5.0.0"
fast-xml-parser "^4.0.12"
glob "^7.1.3"
ora "^5.4.1"
-"@react-native-community/cli-plugin-metro@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.7.tgz#2e8a9deb30b40495c5c1347a1837a824400fa00f"
- integrity sha512-0WhgoBVGF1f9jXcuagQmtxpwpfP+2LbLZH4qMyo6OtYLWLG13n2uRep+8tdGzfNzl1bIuUTeE9yZSAdnf9LfYQ==
+"@react-native-community/cli-plugin-metro@11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.4.1.tgz#8d51c59a9a720f99150d4153e757d5d1d1dabd22"
+ integrity sha512-JxbIqknYcQ5Z4rWROtu5LNakLfMiKoWcMoPqIrBLrV5ILm1XUJj1/8fATCcotZqV3yzB3SCJ3RrhKx7dQ3YELw==
dependencies:
- "@react-native-community/cli-server-api" "11.3.7"
- "@react-native-community/cli-tools" "11.3.7"
+ "@react-native-community/cli-server-api" "11.4.1"
+ "@react-native-community/cli-tools" "11.4.1"
chalk "^4.1.2"
execa "^5.0.0"
- metro "0.76.8"
- metro-config "0.76.8"
- metro-core "0.76.8"
- metro-react-native-babel-transformer "0.76.8"
- metro-resolver "0.76.8"
- metro-runtime "0.76.8"
+ metro "^0.76.9"
+ metro-config "^0.76.9"
+ metro-core "^0.76.9"
+ metro-react-native-babel-transformer "^0.76.9"
+ metro-resolver "^0.76.9"
+ metro-runtime "^0.76.9"
readline "^1.3.0"
-"@react-native-community/cli-server-api@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.3.7.tgz#2cce54b3331c9c51b9067129c297ab2e9a142216"
- integrity sha512-yoFyGdvR3HxCnU6i9vFqKmmSqFzCbnFSnJ29a+5dppgPRetN+d//O8ard/YHqHzToFnXutAFf2neONn23qcJAg==
+"@react-native-community/cli-server-api@11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.4.1.tgz#3dda094c4ab2369db34fe991c320e3cd78f097b3"
+ integrity sha512-isxXE8X5x+C4kN90yilD08jaLWD34hfqTfn/Xbl1u/igtdTsCaQGvWe9eaFamrpWFWTpVtj6k+vYfy8AtYSiKA==
dependencies:
- "@react-native-community/cli-debugger-ui" "11.3.7"
- "@react-native-community/cli-tools" "11.3.7"
+ "@react-native-community/cli-debugger-ui" "11.4.1"
+ "@react-native-community/cli-tools" "11.4.1"
compression "^1.7.1"
connect "^3.6.5"
errorhandler "^1.5.1"
@@ -2456,10 +2454,10 @@
serve-static "^1.13.1"
ws "^7.5.1"
-"@react-native-community/cli-tools@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.3.7.tgz#37aa7efc7b4a1b7077d541f1d7bb11a2ab7b6ff2"
- integrity sha512-peyhP4TV6Ps1hk+MBHTFaIR1eI3u+OfGBvr5r0wPwo3FAJvldRinMgcB/TcCcOBXVORu7ba1XYjkubPeYcqAyA==
+"@react-native-community/cli-tools@11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.4.1.tgz#f6c69967e077b10cd8a884a83e53eb199dd9ee9f"
+ integrity sha512-GuQIuY/kCPfLeXB1aiPZ5HvF+e/wdO42AYuNEmT7FpH/0nAhdTxA9qjL8m3vatDD2/YK7WNOSVNsl2UBZuOISg==
dependencies:
appdirsjs "^1.2.4"
chalk "^4.1.2"
@@ -2471,27 +2469,27 @@
semver "^7.5.2"
shell-quote "^1.7.3"
-"@react-native-community/cli-types@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.3.7.tgz#12fe7cff3da08bd27e11116531b2e001939854b9"
- integrity sha512-OhSr/TiDQkXjL5YOs8+hvGSB+HltLn5ZI0+A3DCiMsjUgTTsYh+Z63OtyMpNjrdCEFcg0MpfdU2uxstCS6Dc5g==
+"@react-native-community/cli-types@11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.4.1.tgz#3842dc37ba3b09f929b485bcbd8218de19349ac2"
+ integrity sha512-B3q9A5BCneLDSoK/iSJ06MNyBn1qTxjdJeOgeS3MiCxgJpPcxyn/Yrc6+h0Cu9T9sgWj/dmectQPYWxtZeo5VA==
dependencies:
joi "^17.2.1"
-"@react-native-community/cli@11.3.7":
- version "11.3.7"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.3.7.tgz#564c0054269d8385fa9d301750b2e56dbb5c0cc9"
- integrity sha512-Ou8eDlF+yh2rzXeCTpMPYJ2fuqsusNOhmpYPYNQJQ2h6PvaF30kPomflgRILems+EBBuggRtcT+I+1YH4o/q6w==
- dependencies:
- "@react-native-community/cli-clean" "11.3.7"
- "@react-native-community/cli-config" "11.3.7"
- "@react-native-community/cli-debugger-ui" "11.3.7"
- "@react-native-community/cli-doctor" "11.3.7"
- "@react-native-community/cli-hermes" "11.3.7"
- "@react-native-community/cli-plugin-metro" "11.3.7"
- "@react-native-community/cli-server-api" "11.3.7"
- "@react-native-community/cli-tools" "11.3.7"
- "@react-native-community/cli-types" "11.3.7"
+"@react-native-community/cli@^11.4.1":
+ version "11.4.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.4.1.tgz#9a6346486622860dad721da406df70e29a45491f"
+ integrity sha512-NdAageVMtNhtvRsrq4NgJf5Ey2nA1CqmLvn7PhSawg+aIzMKmZuzWxGVwr9CoPGyjvNiqJlCWrLGR7NzOyi/sA==
+ dependencies:
+ "@react-native-community/cli-clean" "11.4.1"
+ "@react-native-community/cli-config" "11.4.1"
+ "@react-native-community/cli-debugger-ui" "11.4.1"
+ "@react-native-community/cli-doctor" "11.4.1"
+ "@react-native-community/cli-hermes" "11.4.1"
+ "@react-native-community/cli-plugin-metro" "11.4.1"
+ "@react-native-community/cli-server-api" "11.4.1"
+ "@react-native-community/cli-tools" "11.4.1"
+ "@react-native-community/cli-types" "11.4.1"
chalk "^4.1.2"
commander "^9.4.1"
execa "^5.0.0"
@@ -3968,14 +3966,14 @@ depd@~1.1.2:
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
-deprecated-react-native-prop-types@4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.1.0.tgz#8ed03a64c21b7fbdd2d000957b6838d4f38d2c66"
- integrity sha512-WfepZHmRbbdTvhcolb8aOKEvQdcmTMn5tKLbqbXmkBvjFjRVWAYqsXk/DBsV8TZxws8SdGHLuHaJrHSQUPRdfw==
+deprecated-react-native-prop-types@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.2.3.tgz#0ef845c1a80ef1636bd09060e4cdf70f9727e5ad"
+ integrity sha512-2rLTiMKidIFFYpIVM69UnQKngLqQfL6I11Ch8wGSBftS18FUXda+o2we2950X+1dmbgps28niI3qwyH4eX3Z1g==
dependencies:
- "@react-native/normalize-colors" "*"
- invariant "*"
- prop-types "*"
+ "@react-native/normalize-colors" "<0.73.0"
+ invariant "^2.2.4"
+ prop-types "^15.8.1"
deprecation@^2.0.0, deprecation@^2.3.1:
version "2.3.1"
@@ -5287,18 +5285,13 @@ interpret@^1.0.0:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=
-invariant@*, invariant@^2.2.4:
+invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
dependencies:
loose-envify "^1.0.0"
-ip@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
- integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
-
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -6407,10 +6400,10 @@ merge2@^1.3.0, merge2@^1.4.1:
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-metro-babel-register@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.76.7.tgz#329f6eebe94218e2c1806c605af0960f98c32ad7"
- integrity sha512-VyH7adyIfG1V+aXqyNb0tpPZ/V/Ci/Ter7lbU7P0XDL2LlXLO5zTd16cpZanPiQYQhu7MJsT2Wfu8voyJVL1rQ==
+metro-babel-register@^0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.76.9.tgz#0da0111e96ce3f5b6b9b5841f0b0d859f2ac04f6"
+ integrity sha512-5xWbE8VZ4fmu53Ykm8SgfQrBg4MoqKkrHFExR646hYl/0r+Mi6yNNThaSXaMV/dld1IEmobAvjRav1+YxwB0sg==
dependencies:
"@babel/core" "^7.20.0"
"@babel/plugin-transform-flow-strip-types" "^7.20.0"
@@ -6420,53 +6413,53 @@ metro-babel-register@0.76.7:
babel-plugin-replace-ts-export-assignment "^0.0.2"
escape-string-regexp "^1.0.5"
-metro-babel-transformer@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.8.tgz#5efd1027353b36b73706164ef09c290dceac096a"
- integrity sha512-Hh6PW34Ug/nShlBGxkwQJSgPGAzSJ9FwQXhUImkzdsDgVu6zj5bx258J8cJVSandjNoQ8nbaHK6CaHlnbZKbyA==
+metro-babel-transformer@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.9.tgz#659ba481d471b5f748c31a8f9397094b629f50ec"
+ integrity sha512-dAnAmBqRdTwTPVn4W4JrowPolxD1MDbuU97u3MqtWZgVRvDpmr+Cqnn5oSxLQk3Uc+Zy3wkqVrB/zXNRlLDSAQ==
dependencies:
"@babel/core" "^7.20.0"
hermes-parser "0.12.0"
nullthrows "^1.1.1"
-metro-cache-key@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.8.tgz#8a0a5e991c06f56fcc584acadacb313c312bdc16"
- integrity sha512-buKQ5xentPig9G6T37Ww/R/bC+/V1MA5xU/D8zjnhlelsrPG6w6LtHUS61ID3zZcMZqYaELWk5UIadIdDsaaLw==
+metro-cache-key@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.9.tgz#6f17f821d6f306fa9028b7e79445eb18387d03d9"
+ integrity sha512-ugJuYBLngHVh1t2Jj+uP9pSCQl7enzVXkuh6+N3l0FETfqjgOaSHlcnIhMPn6yueGsjmkiIfxQU4fyFVXRtSTw==
-metro-cache@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.8.tgz#296c1c189db2053b89735a8f33dbe82575f53661"
- integrity sha512-QBJSJIVNH7Hc/Yo6br/U/qQDUpiUdRgZ2ZBJmvAbmAKp2XDzsapnMwK/3BGj8JNWJF7OLrqrYHsRsukSbUBpvQ==
+metro-cache@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.9.tgz#64326d7a8b470c3886a5e97d5e2a20acab20bc5f"
+ integrity sha512-W6QFEU5AJG1gH4Ltv8S2IvhmEhSDYnbPafyj5fGR3YLysdykj+olKv9B0V+YQXtcLGyY5CqpXLYUx595GdiKzA==
dependencies:
- metro-core "0.76.8"
+ metro-core "0.76.9"
rimraf "^3.0.2"
-metro-config@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.8.tgz#20bd5397fcc6096f98d2a813a7cecb38b8af062d"
- integrity sha512-SL1lfKB0qGHALcAk2zBqVgQZpazDYvYFGwCK1ikz0S6Y/CM2i2/HwuZN31kpX6z3mqjv/6KvlzaKoTb1otuSAA==
+metro-config@0.76.9, metro-config@^0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.76.9.tgz#5e60aff9d8894c1ee6bbc5de23b7c8515a0b84a3"
+ integrity sha512-oYyJ16PY3rprsfoi80L+gDJhFJqsKI3Pob5LKQbJpvL+gGr8qfZe1eQzYp5Xxxk9DOHKBV1xD94NB8GdT/DA8Q==
dependencies:
connect "^3.6.5"
cosmiconfig "^5.0.5"
jest-validate "^29.2.1"
- metro "0.76.8"
- metro-cache "0.76.8"
- metro-core "0.76.8"
- metro-runtime "0.76.8"
+ metro "0.76.9"
+ metro-cache "0.76.9"
+ metro-core "0.76.9"
+ metro-runtime "0.76.9"
-metro-core@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.8.tgz#917c8157c63406cb223522835abb8e7c6291dcad"
- integrity sha512-sl2QLFI3d1b1XUUGxwzw/KbaXXU/bvFYrSKz6Sg19AdYGWFyzsgZ1VISRIDf+HWm4R/TJXluhWMEkEtZuqi3qA==
+metro-core@0.76.9, metro-core@^0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.76.9.tgz#5f55f0fbde41d28957e4f3bb187d32251403f00e"
+ integrity sha512-DSeEr43Wrd5Q7ySfRzYzDwfV89g2OZTQDf1s3exOcLjE5fb7awoLOkA2h46ZzN8NcmbbM0cuJy6hOwF073/yRQ==
dependencies:
lodash.throttle "^4.1.1"
- metro-resolver "0.76.8"
+ metro-resolver "0.76.9"
-metro-file-map@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.8.tgz#a1db1185b6c316904ba6b53d628e5d1323991d79"
- integrity sha512-A/xP1YNEVwO1SUV9/YYo6/Y1MmzhL4ZnVgcJC3VmHp/BYVOXVStzgVbWv2wILe56IIMkfXU+jpXrGKKYhFyHVw==
+metro-file-map@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.9.tgz#dd3d76ec23fc0ba8cb7b3a3b8075bb09e0b5d378"
+ integrity sha512-7vJd8kksMDTO/0fbf3081bTrlw8SLiploeDf+vkkf0OwlrtDUWPOikfebp+MpZB2S61kamKjCNRfRkgrbPfSwg==
dependencies:
anymatch "^3.0.3"
debug "^2.2.0"
@@ -6483,10 +6476,10 @@ metro-file-map@0.76.8:
optionalDependencies:
fsevents "^2.3.2"
-metro-inspector-proxy@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.8.tgz#6b8678a7461b0b42f913a7881cc9319b4d3cddff"
- integrity sha512-Us5o5UEd4Smgn1+TfHX4LvVPoWVo9VsVMn4Ldbk0g5CQx3Gu0ygc/ei2AKPGTwsOZmKxJeACj7yMH2kgxQP/iw==
+metro-inspector-proxy@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.9.tgz#0d333e64a7bc9d156d712265faa7b7ae88c775e8"
+ integrity sha512-idIiPkb8CYshc0WZmbzwmr4B1QwsQUbpDwBzHwxE1ni27FWKWhV9CD5p+qlXZHgfwJuMRfPN+tIaLSR8+vttYg==
dependencies:
connect "^3.6.5"
debug "^2.2.0"
@@ -6494,29 +6487,29 @@ metro-inspector-proxy@0.76.8:
ws "^7.5.1"
yargs "^17.6.2"
-metro-memory-fs@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-memory-fs/-/metro-memory-fs-0.76.7.tgz#e5579a46be8da936f9bded9134e8d8a0268526b9"
- integrity sha512-dGfgPtF47F5N6ssQTZWd/TVz0OeZTDCpZMEV5La0nclcKNge4YlvgpOD+HTCklGL0+Onjw+W0+DjqjNH90amKA==
+metro-memory-fs@^0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-memory-fs/-/metro-memory-fs-0.76.9.tgz#4505cdd8cd36c8513443f66afcf60fe7db0f2344"
+ integrity sha512-/kItNz3uAcTVPZOf9xWfxsqulJrwu4GrXHxGhrrDykxPwVQQJY+q+SPx7pm9f6vACtczlbzdkxa/HGMuQ1UjZw==
-metro-minify-terser@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.8.tgz#915ab4d1419257fc6a0b9fa15827b83fe69814bf"
- integrity sha512-Orbvg18qXHCrSj1KbaeSDVYRy/gkro2PC7Fy2tDSH1c9RB4aH8tuMOIXnKJE+1SXxBtjWmQ5Yirwkth2DyyEZA==
+metro-minify-terser@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.76.9.tgz#3f6271da74dd57179852118443b62cc8dc578aab"
+ integrity sha512-ju2nUXTKvh96vHPoGZH/INhSvRRKM14CbGAJXQ98+g8K5z1v3luYJ/7+dFQB202eVzJdTB2QMtBjI1jUUpooCg==
dependencies:
terser "^5.15.0"
-metro-minify-uglify@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.8.tgz#74745045ea2dd29f8783db483b2fce58385ba695"
- integrity sha512-6l8/bEvtVaTSuhG1FqS0+Mc8lZ3Bl4RI8SeRIifVLC21eeSDp4CEBUWSGjpFyUDfi6R5dXzYaFnSgMNyfxADiQ==
+metro-minify-uglify@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.9.tgz#e88c30c27911c053e1ee20e12077f0f4cbb154f8"
+ integrity sha512-MXRrM3lFo62FPISlPfTqC6n9HTEI3RJjDU5SvpE7sJFfJKLx02xXQEltsL/wzvEqK+DhRQ5DEYACTwf5W4Z3yA==
dependencies:
uglify-es "^3.1.9"
-metro-react-native-babel-preset@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz#dfe15c040d0918147a8b0e9f530d558287acbb54"
- integrity sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw==
+metro-react-native-babel-preset@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.9.tgz#15868142122af14313429d7572c15cf01c16f077"
+ integrity sha512-eCBtW/UkJPDr6HlMgFEGF+964DZsUEF9RGeJdZLKWE7d/0nY3ABZ9ZAGxzu9efQ35EWRox5bDMXUGaOwUe5ikQ==
dependencies:
"@babel/core" "^7.20.0"
"@babel/plugin-proposal-async-generator-functions" "^7.0.0"
@@ -6558,116 +6551,60 @@ metro-react-native-babel-preset@0.76.7:
babel-plugin-transform-flow-enums "^0.0.2"
react-refresh "^0.4.0"
-metro-react-native-babel-preset@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.8.tgz#7476efae14363cbdfeeec403b4f01d7348e6c048"
- integrity sha512-Ptza08GgqzxEdK8apYsjTx2S8WDUlS2ilBlu9DR1CUcHmg4g3kOkFylZroogVAUKtpYQNYwAvdsjmrSdDNtiAg==
- dependencies:
- "@babel/core" "^7.20.0"
- "@babel/plugin-proposal-async-generator-functions" "^7.0.0"
- "@babel/plugin-proposal-class-properties" "^7.18.0"
- "@babel/plugin-proposal-export-default-from" "^7.0.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0"
- "@babel/plugin-proposal-numeric-separator" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.20.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
- "@babel/plugin-proposal-optional-chaining" "^7.20.0"
- "@babel/plugin-syntax-dynamic-import" "^7.8.0"
- "@babel/plugin-syntax-export-default-from" "^7.0.0"
- "@babel/plugin-syntax-flow" "^7.18.0"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-syntax-optional-chaining" "^7.0.0"
- "@babel/plugin-transform-arrow-functions" "^7.0.0"
- "@babel/plugin-transform-async-to-generator" "^7.20.0"
- "@babel/plugin-transform-block-scoping" "^7.0.0"
- "@babel/plugin-transform-classes" "^7.0.0"
- "@babel/plugin-transform-computed-properties" "^7.0.0"
- "@babel/plugin-transform-destructuring" "^7.20.0"
- "@babel/plugin-transform-flow-strip-types" "^7.20.0"
- "@babel/plugin-transform-function-name" "^7.0.0"
- "@babel/plugin-transform-literals" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0"
- "@babel/plugin-transform-parameters" "^7.0.0"
- "@babel/plugin-transform-react-display-name" "^7.0.0"
- "@babel/plugin-transform-react-jsx" "^7.0.0"
- "@babel/plugin-transform-react-jsx-self" "^7.0.0"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0"
- "@babel/plugin-transform-runtime" "^7.0.0"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0"
- "@babel/plugin-transform-spread" "^7.0.0"
- "@babel/plugin-transform-sticky-regex" "^7.0.0"
- "@babel/plugin-transform-typescript" "^7.5.0"
- "@babel/plugin-transform-unicode-regex" "^7.0.0"
- "@babel/template" "^7.0.0"
- babel-plugin-transform-flow-enums "^0.0.2"
- react-refresh "^0.4.0"
-
-metro-react-native-babel-transformer@0.76.7:
- version "0.76.7"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.7.tgz#ccc7c25b49ee8a1860aafdbf48bfa5441d206f8f"
- integrity sha512-W6lW3J7y/05ph3c2p3KKJNhH0IdyxdOCbQ5it7aM2MAl0SM4wgKjaV6EYv9b3rHklpV6K3qMH37UKVcjMooWiA==
- dependencies:
- "@babel/core" "^7.20.0"
- babel-preset-fbjs "^3.4.0"
- hermes-parser "0.12.0"
- metro-react-native-babel-preset "0.76.7"
- nullthrows "^1.1.1"
-
-metro-react-native-babel-transformer@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.8.tgz#c3a98e1f4cd5faf1e21eba8e004b94a90c4db69b"
- integrity sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A==
+metro-react-native-babel-transformer@^0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.9.tgz#464aab85669ed39f7a59f1fd993a05de9543b09e"
+ integrity sha512-xXzHcfngSIkbQj+U7i/anFkNL0q2QVarYSzr34CFkzKLa79Rp16B8ki7z9eVVqo9W3B4TBcTXl3BipgRoOoZSQ==
dependencies:
"@babel/core" "^7.20.0"
babel-preset-fbjs "^3.4.0"
hermes-parser "0.12.0"
- metro-react-native-babel-preset "0.76.8"
+ metro-react-native-babel-preset "0.76.9"
nullthrows "^1.1.1"
-metro-resolver@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.8.tgz#0862755b9b84e26853978322464fb37c6fdad76d"
- integrity sha512-KccOqc10vrzS7ZhG2NSnL2dh3uVydarB7nOhjreQ7C4zyWuiW9XpLC4h47KtGQv3Rnv/NDLJYeDqaJ4/+140HQ==
+metro-resolver@0.76.9, metro-resolver@^0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.9.tgz#79c244784b16ca56076bc1fc816d2ba74860e882"
+ integrity sha512-s86ipNRas9vNR5lChzzSheF7HoaQEmzxBLzwFA6/2YcGmUCowcoyPAfs1yPh4cjMw9F1T4KlMLaiwniGE7HCyw==
-metro-runtime@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.8.tgz#74b2d301a2be5f3bbde91b8f1312106f8ffe50c3"
- integrity sha512-XKahvB+iuYJSCr3QqCpROli4B4zASAYpkK+j3a0CJmokxCDNbgyI4Fp88uIL6rNaZfN0Mv35S0b99SdFXIfHjg==
+metro-runtime@0.76.9, metro-runtime@^0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.9.tgz#f8ebe150f8896ce1aef5d7f3a52844f8b4f721fb"
+ integrity sha512-/5vezDpGUtA0Fv6cJg0+i6wB+QeBbvLeaw9cTSG7L76liP0b91f8vOcYzGaUbHI8pznJCCTerxRzpQ8e3/NcDw==
dependencies:
"@babel/runtime" "^7.0.0"
react-refresh "^0.4.0"
-metro-source-map@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.8.tgz#f085800152a6ba0b41ca26833874d31ec36c5a53"
- integrity sha512-Hh0ncPsHPVf6wXQSqJqB3K9Zbudht4aUtNpNXYXSxH+pteWqGAXnjtPsRAnCsCWl38wL0jYF0rJDdMajUI3BDw==
+metro-source-map@0.76.9, metro-source-map@^0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.9.tgz#0f976ada836717f307427d3830aea52a2ca7ed5f"
+ integrity sha512-q5qsMlu8EFvsT46wUUh+ao+efDsicT30zmaPATNhq+PcTawDbDgnMuUD+FT0bvxxnisU2PWl91RdzKfNc2qPQA==
dependencies:
"@babel/traverse" "^7.20.0"
"@babel/types" "^7.20.0"
invariant "^2.2.4"
- metro-symbolicate "0.76.8"
+ metro-symbolicate "0.76.9"
nullthrows "^1.1.1"
- ob1 "0.76.8"
+ ob1 "0.76.9"
source-map "^0.5.6"
vlq "^1.0.0"
-metro-symbolicate@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.8.tgz#f102ac1a306d51597ecc8fdf961c0a88bddbca03"
- integrity sha512-LrRL3uy2VkzrIXVlxoPtqb40J6Bf1mlPNmUQewipc3qfKKFgtPHBackqDy1YL0njDsWopCKcfGtFYLn0PTUn3w==
+metro-symbolicate@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.9.tgz#f1627ef6f73bb0c4d48c55684d3c87866a0b0920"
+ integrity sha512-Yyq6Ukj/IeWnGST09kRt0sBK8TwzGZWoU7YAcQlh14+AREH454Olx4wbFTpkkhUkV05CzNCvUuXQ0efFxhA1bw==
dependencies:
invariant "^2.2.4"
- metro-source-map "0.76.8"
+ metro-source-map "0.76.9"
nullthrows "^1.1.1"
source-map "^0.5.6"
through2 "^2.0.1"
vlq "^1.0.0"
-metro-transform-plugins@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.8.tgz#d77c28a6547a8e3b72250f740fcfbd7f5408f8ba"
- integrity sha512-PlkGTQNqS51Bx4vuufSQCdSn2R2rt7korzngo+b5GCkeX5pjinPjnO2kNhQ8l+5bO0iUD/WZ9nsM2PGGKIkWFA==
+metro-transform-plugins@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.9.tgz#73e34f2014d3df3c336a882b13e541bceb826d37"
+ integrity sha512-YEQeNlOCt92I7S9A3xbrfaDfwfgcxz9PpD/1eeop3c4cO3z3Q3otYuxw0WJ/rUIW8pZfOm5XCehd+1NRbWlAaw==
dependencies:
"@babel/core" "^7.20.0"
"@babel/generator" "^7.20.0"
@@ -6675,28 +6612,29 @@ metro-transform-plugins@0.76.8:
"@babel/traverse" "^7.20.0"
nullthrows "^1.1.1"
-metro-transform-worker@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.8.tgz#b9012a196cee205170d0c899b8b175b9305acdea"
- integrity sha512-mE1fxVAnJKmwwJyDtThildxxos9+DGs9+vTrx2ktSFMEVTtXS/bIv2W6hux1pqivqAfyJpTeACXHk5u2DgGvIQ==
+metro-transform-worker@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.9.tgz#281fad223f0447e1ff9cc44d6f7e33dfab9ab120"
+ integrity sha512-F69A0q0qFdJmP2Clqr6TpTSn4WTV9p5A28h5t9o+mB22ryXBZfUQ6BFBBW/6Wp2k/UtPH+oOsBfV9guiqm3d2Q==
dependencies:
"@babel/core" "^7.20.0"
"@babel/generator" "^7.20.0"
"@babel/parser" "^7.20.0"
"@babel/types" "^7.20.0"
babel-preset-fbjs "^3.4.0"
- metro "0.76.8"
- metro-babel-transformer "0.76.8"
- metro-cache "0.76.8"
- metro-cache-key "0.76.8"
- metro-source-map "0.76.8"
- metro-transform-plugins "0.76.8"
+ metro "0.76.9"
+ metro-babel-transformer "0.76.9"
+ metro-cache "0.76.9"
+ metro-cache-key "0.76.9"
+ metro-minify-terser "0.76.9"
+ metro-source-map "0.76.9"
+ metro-transform-plugins "0.76.9"
nullthrows "^1.1.1"
-metro@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.8.tgz#ba526808b99977ca3f9ac5a7432fd02a340d13a6"
- integrity sha512-oQA3gLzrrYv3qKtuWArMgHPbHu8odZOD9AoavrqSFllkPgOtmkBvNNDLCELqv5SjBfqjISNffypg+5UGG3y0pg==
+metro@0.76.9, metro@^0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/metro/-/metro-0.76.9.tgz#605fddf1a54d27762ddba2f636420ae2408862df"
+ integrity sha512-gcjcfs0l5qIPg0lc5P7pj0x7vPJ97tan+OnEjiYLbKjR1D7Oa78CE93YUPyymUPH6q7VzlzMm1UjT35waEkZUw==
dependencies:
"@babel/code-frame" "^7.0.0"
"@babel/core" "^7.20.0"
@@ -6720,22 +6658,21 @@ metro@0.76.8:
jest-worker "^27.2.0"
jsc-safe-url "^0.2.2"
lodash.throttle "^4.1.1"
- metro-babel-transformer "0.76.8"
- metro-cache "0.76.8"
- metro-cache-key "0.76.8"
- metro-config "0.76.8"
- metro-core "0.76.8"
- metro-file-map "0.76.8"
- metro-inspector-proxy "0.76.8"
- metro-minify-terser "0.76.8"
- metro-minify-uglify "0.76.8"
- metro-react-native-babel-preset "0.76.8"
- metro-resolver "0.76.8"
- metro-runtime "0.76.8"
- metro-source-map "0.76.8"
- metro-symbolicate "0.76.8"
- metro-transform-plugins "0.76.8"
- metro-transform-worker "0.76.8"
+ metro-babel-transformer "0.76.9"
+ metro-cache "0.76.9"
+ metro-cache-key "0.76.9"
+ metro-config "0.76.9"
+ metro-core "0.76.9"
+ metro-file-map "0.76.9"
+ metro-inspector-proxy "0.76.9"
+ metro-minify-uglify "0.76.9"
+ metro-react-native-babel-preset "0.76.9"
+ metro-resolver "0.76.9"
+ metro-runtime "0.76.9"
+ metro-source-map "0.76.9"
+ metro-symbolicate "0.76.9"
+ metro-transform-plugins "0.76.9"
+ metro-transform-worker "0.76.9"
mime-types "^2.1.27"
node-fetch "^2.2.0"
nullthrows "^1.1.1"
@@ -6993,10 +6930,10 @@ oauth-sign@~0.9.0:
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-ob1@0.76.8:
- version "0.76.8"
- resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.8.tgz#ac4c459465b1c0e2c29aaa527e09fc463d3ffec8"
- integrity sha512-dlBkJJV5M/msj9KYA9upc+nUWVwuOFFTbu28X6kZeGwcuW+JxaHSBZ70SYQnk5M+j5JbNLR6yKHmgW4M5E7X5g==
+ob1@0.76.9:
+ version "0.76.9"
+ resolved "https://registry.npmjs.org/ob1/-/ob1-0.76.9.tgz#a493e4b83a0fb39200de639804b5d06eed5599dc"
+ integrity sha512-g0I/OLnSxf6OrN3QjSew3bTDJCdbZoWxnh8adh1z36alwCuGF1dgDeRA25bTYSakrG5WULSaWJPOdgnf1O/oQw==
object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
@@ -7392,7 +7329,7 @@ prompts@^2.0.1, prompts@^2.4.0:
kleur "^3.0.3"
sisteransi "^1.0.5"
-prop-types@*, prop-types@^15.8.1:
+prop-types@^15.8.1:
version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==