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/.gitignore b/.gitignore index 6acb4ded1775..7adaf008e98d 100644 --- a/.gitignore +++ b/.gitignore @@ -107,6 +107,8 @@ package-lock.json /packages/react-native/template/vendor .ruby-version /**/.ruby-version +./vendor/ +vendor/ # iOS / CocoaPods /packages/react-native/template/ios/build/ diff --git a/Gemfile b/Gemfile index 34784a7cd94f..1f6572542434 100644 --- a/Gemfile +++ b/Gemfile @@ -4,4 +4,4 @@ source 'https://rubygems.org' ruby ">= 2.6.10" gem 'cocoapods', '~> 1.12' -gem 'activesupport', '>= 6.1.7.1' +gem 'activesupport', '>= 6.1.7.3', '< 7.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 9d2fbb59b3a6..9ce65361f470 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.1) 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,32 @@ GEM netrc (~> 0.11) cocoapods-try (1.2.0) colored2 (3.1.2) - concurrent-ruby (1.2.2) + concurrent-ruby (1.2.3) escape (0.0.4) ethon (0.16.0) ffi (>= 1.15.0) - ffi (1.16.1) + ffi (1.16.3) 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.4) concurrent-ruby (~> 1.0) - json (2.6.3) - minitest (5.20.0) + json (2.7.2) + minitest (5.22.3) 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) ruby-macho (2.5.1) - typhoeus (1.4.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) @@ -89,7 +93,7 @@ PLATFORMS ruby DEPENDENCIES - activesupport (>= 6.1.7.1) + activesupport (>= 6.1.7.3, < 7.1.0) cocoapods (~> 1.12) RUBY VERSION 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 6dab16597e09..069df8102c09 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: 5, + patch: 14, 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/Libraries/vendor/emitter/EventEmitter.js b/packages/react-native/Libraries/vendor/emitter/EventEmitter.js index 6bd20257222d..a98ce92939b3 100644 --- a/packages/react-native/Libraries/vendor/emitter/EventEmitter.js +++ b/packages/react-native/Libraries/vendor/emitter/EventEmitter.js @@ -109,7 +109,9 @@ export default class EventEmitter Registration<$ElementType>, > = this._registry[eventType]; if (registrations != null) { - for (const registration of [...registrations]) { + // Copy `registrations` to take a snapshot when we invoke `emit`, in case + // registrations are added or removed when listeners are invoked. + for (const registration of Array.from(registrations)) { registration.listener.apply(registration.context, args); } } diff --git a/packages/react-native/React/Base/RCTVersion.m b/packages/react-native/React/Base/RCTVersion.m index 5e55a32eafcd..a702f7f4c889 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: @(5), + RCTVersionPatch: @(14), 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 828a27569c1e..ec7d486e5b2f 100644 --- a/packages/react-native/ReactAndroid/gradle.properties +++ b/packages/react-native/ReactAndroid/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=0.72.5 +VERSION_NAME=0.72.14 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 a6694a899383..2c6093b5e54c 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", 5, + "patch", 14, "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 1bea8e04d2c0..14ce0e9ba199 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 = 5; + int32_t Patch = 14; 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 0750f1ffffe4..bd3e8c3c59db 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -1,6 +1,6 @@ { "name": "react-native", - "version": "0.72.5", + "version": "0.72.14", "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 845e60836e3b..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 # # ================= # @@ -526,7 +572,7 @@ def test_applyXcode15Patch_whenXcodebuild15_correctlyAppliesNecessaryPatch # Assert user_project_mock.build_configurations.each do |config| assert_equal("$(inherited) _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION", config.build_settings["GCC_PREPROCESSOR_DEFINITIONS"]) - assert_equal("$(inherited) -Wl -ld_classic ", config.build_settings["OTHER_LDFLAGS"]) + assert_equal("$(inherited) -Wl -ld_classic", config.build_settings["OTHER_LDFLAGS"]) end # User project and Pods project @@ -576,7 +622,7 @@ def test_applyXcode15Patch_whenXcodebuild14ButProjectHasSettings_correctlyRemove # Assert user_project_mock.build_configurations.each do |config| assert_equal("$(inherited) _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION", config.build_settings["GCC_PREPROCESSOR_DEFINITIONS"]) - assert_equal("$(inherited) ", config.build_settings["OTHER_LDFLAGS"]) + assert_equal("$(inherited)", config.build_settings["OTHER_LDFLAGS"]) end # User project and Pods project 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/utils.rb b/packages/react-native/scripts/cocoapods/utils.rb index d34b17e01e01..2ced5a363b2e 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,10 +169,10 @@ 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_to_setting_if_present(config, other_ld_flags_key, xcode15_compatibility_flags) + self.remove_value_from_setting_if_present(config, other_ld_flags_key, xcode15_compatibility_flags) end end project.save() @@ -298,24 +330,30 @@ def self.safe_init(config, setting_name) def self.add_value_to_setting_if_missing(config, setting_name, value) old_config = config.build_settings[setting_name] - if !old_config.include?(value) - config.build_settings[setting_name] << value + if old_config.is_a?(Array) + old_config = old_config.join(" ") + end + + trimmed_value = value.strip() + if !old_config.include?(trimmed_value) + config.build_settings[setting_name] = "#{old_config.strip()} #{trimmed_value}".strip() end end - def self.remove_value_to_setting_if_present(config, setting_name, value) + def self.remove_value_from_setting_if_present(config, setting_name, value) old_config = config.build_settings[setting_name] - if old_config.include?(value) - # Old config can be either an Array or a String - if old_config.is_a?(Array) - old_config = old_config.join(" ") - end - new_config = old_config.gsub(value, "") - config.build_settings[setting_name] = new_config + if old_config.is_a?(Array) + old_config = old_config.join(" ") + end + + trimmed_value = value.strip() + if old_config.include?(trimmed_value) + new_config = old_config.gsub(trimmed_value, "") + config.build_settings[setting_name] = new_config.strip() 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 @@ -326,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 @@ -466,6 +505,44 @@ def self.set_imagemanager_search_path(target_installation_result) ]) end + def self.get_privacy_manifest_paths_from(user_project) + privacy_manifests = user_project + .files + .select { |p| + p.path&.end_with?('PrivacyInfo.xcprivacy') + } + return privacy_manifests + end + + def self.add_privacy_manifest_if_needed(installer) + user_project = installer.aggregate_targets + .map{ |t| t.user_project } + .first + privacy_manifest = self.get_privacy_manifest_paths_from(user_project).first + if privacy_manifest.nil? + file_timestamp_reason = { + "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategoryFileTimestamp", + "NSPrivacyAccessedAPITypeReasons" => ["C617.1"], + } + user_defaults_reason = { + "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategoryUserDefaults", + "NSPrivacyAccessedAPITypeReasons" => ["CA92.1"], + } + boot_time_reason = { + "NSPrivacyAccessedAPIType" => "NSPrivacyAccessedAPICategorySystemBootTime", + "NSPrivacyAccessedAPITypeReasons" => ["35F9.1"], + } + privacy_manifest = { + "NSPrivacyCollectedDataTypes" => [], + "NSPrivacyTracking" => false, + "NSPrivacyAccessedAPITypes" => [file_timestamp_reason, user_defaults_reason, boot_time_reason] + } + path = File.join(user_project.path.parent, "PrivacyInfo.xcprivacy") + Xcodeproj::Plist.write_to_path(privacy_manifest, path) + Pod::UI.puts "Your app does not have a privacy manifest! A template has been generated containing Required Reasons API usage in the core React Native library. Please add the PrivacyInfo.xcprivacy file to your project and complete data use, tracking and any additional required reasons your app is using according to Apple's guidance: https://developer.apple.com/.../privacy_manifest_files. Then, you will need to manually add this file to your project in Xcode.".red + end + end + def self.react_native_pods return [ "DoubleConversion", diff --git a/packages/react-native/scripts/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..9247b1a1692f 100644 --- a/packages/react-native/scripts/react_native_pods.rb +++ b/packages/react-native/scripts/react_native_pods.rb @@ -248,6 +248,8 @@ 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) + ReactNativePodsUtils.add_privacy_manifest_if_needed(installer) 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 1fa2c2e1abde..b550fb64d2d5 100644 --- a/packages/react-native/template/Gemfile +++ b/packages/react-native/template/Gemfile @@ -3,4 +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.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 '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 b7e4eb4d3824..3f3e530ab757 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.5" + "react-native": "0.72.14" }, "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 a66fd6c04cbc..081fa4ff8054 100644 --- a/packages/rn-tester/Gemfile +++ b/packages/rn-tester/Gemfile @@ -1,5 +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 9e2d6d6aa9a8..1a4e1c1e5bea 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -1,25 +1,81 @@ PODS: - boost (1.76.0) + - CocoaAsyncSocket (7.6.5) - DoubleConversion (1.1.6) - - FBLazyVector (0.72.4) - - FBReactNativeSpec (0.72.4): + - FBLazyVector (0.72.13) + - FBReactNativeSpec (0.72.13): - RCT-Folly (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) - - React-Core (= 0.72.4) - - React-jsi (= 0.72.4) - - ReactCommon/turbomodule/core (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) + - React-Core (= 0.72.13) + - React-jsi (= 0.72.13) + - ReactCommon/turbomodule/core (= 0.72.13) + - Flipper (0.182.0): + - Flipper-Folly (~> 2.6) + - Flipper-Boost-iOSX (1.76.0.1.11) + - Flipper-DoubleConversion (3.2.0.1) + - Flipper-Fmt (7.1.7) + - Flipper-Folly (2.6.10): + - Flipper-Boost-iOSX + - Flipper-DoubleConversion + - Flipper-Fmt (= 7.1.7) + - Flipper-Glog + - libevent (~> 2.1.12) + - OpenSSL-Universal (= 1.1.1100) + - Flipper-Glog (0.5.0.5) + - Flipper-PeerTalk (0.0.4) + - FlipperKit (0.182.0): + - FlipperKit/Core (= 0.182.0) + - FlipperKit/Core (0.182.0): + - Flipper (~> 0.182.0) + - FlipperKit/CppBridge + - FlipperKit/FBCxxFollyDynamicConvert + - FlipperKit/FBDefines + - FlipperKit/FKPortForwarding + - SocketRocket (~> 0.6.0) + - FlipperKit/CppBridge (0.182.0): + - Flipper (~> 0.182.0) + - FlipperKit/FBCxxFollyDynamicConvert (0.182.0): + - Flipper-Folly (~> 2.6) + - FlipperKit/FBDefines (0.182.0) + - FlipperKit/FKPortForwarding (0.182.0): + - CocoaAsyncSocket (~> 7.6) + - Flipper-PeerTalk (~> 0.0.4) + - FlipperKit/FlipperKitHighlightOverlay (0.182.0) + - FlipperKit/FlipperKitLayoutHelpers (0.182.0): + - FlipperKit/Core + - FlipperKit/FlipperKitHighlightOverlay + - FlipperKit/FlipperKitLayoutTextSearchable + - FlipperKit/FlipperKitLayoutIOSDescriptors (0.182.0): + - FlipperKit/Core + - FlipperKit/FlipperKitHighlightOverlay + - FlipperKit/FlipperKitLayoutHelpers + - YogaKit (~> 1.18) + - FlipperKit/FlipperKitLayoutPlugin (0.182.0): + - FlipperKit/Core + - FlipperKit/FlipperKitHighlightOverlay + - FlipperKit/FlipperKitLayoutHelpers + - FlipperKit/FlipperKitLayoutIOSDescriptors + - FlipperKit/FlipperKitLayoutTextSearchable + - YogaKit (~> 1.18) + - FlipperKit/FlipperKitLayoutTextSearchable (0.182.0) + - FlipperKit/FlipperKitNetworkPlugin (0.182.0): + - FlipperKit/Core + - FlipperKit/FlipperKitReactPlugin (0.182.0): + - FlipperKit/Core + - FlipperKit/FlipperKitUserDefaultsPlugin (0.182.0): + - FlipperKit/Core + - FlipperKit/SKIOSNetworkPlugin (0.182.0): + - FlipperKit/Core + - FlipperKit/FlipperKitNetworkPlugin - fmt (6.2.1) - glog (0.3.5) - - hermes-engine (0.72.4): - - hermes-engine/Hermes (= 0.72.4) - - hermes-engine/JSI (= 0.72.4) - - hermes-engine/Public (= 0.72.4) - - hermes-engine/Hermes (0.72.4) - - hermes-engine/JSI (0.72.4) - - hermes-engine/Public (0.72.4) + - hermes-engine (0.72.13): + - hermes-engine/Pre-built (= 0.72.13) + - hermes-engine/Pre-built (0.72.13) - libevent (2.1.12) - OCMock (3.9.1) + - OpenSSL-Universal (1.1.1100) - RCT-Folly (2021.07.22.00): - boost - DoubleConversion @@ -42,26 +98,26 @@ PODS: - fmt (~> 6.2.1) - glog - libevent - - RCTRequired (0.72.4) - - RCTTypeSafety (0.72.4): - - FBLazyVector (= 0.72.4) - - RCTRequired (= 0.72.4) - - React-Core (= 0.72.4) - - React (0.72.4): - - React-Core (= 0.72.4) - - React-Core/DevSupport (= 0.72.4) - - React-Core/RCTWebSocket (= 0.72.4) - - React-RCTActionSheet (= 0.72.4) - - React-RCTAnimation (= 0.72.4) - - React-RCTBlob (= 0.72.4) - - React-RCTImage (= 0.72.4) - - React-RCTLinking (= 0.72.4) - - React-RCTNetwork (= 0.72.4) - - React-RCTSettings (= 0.72.4) - - React-RCTText (= 0.72.4) - - React-RCTVibration (= 0.72.4) - - React-callinvoker (0.72.4) - - React-Codegen (0.72.4): + - RCTRequired (0.72.13) + - RCTTypeSafety (0.72.13): + - FBLazyVector (= 0.72.13) + - RCTRequired (= 0.72.13) + - React-Core (= 0.72.13) + - React (0.72.13): + - React-Core (= 0.72.13) + - React-Core/DevSupport (= 0.72.13) + - React-Core/RCTWebSocket (= 0.72.13) + - React-RCTActionSheet (= 0.72.13) + - React-RCTAnimation (= 0.72.13) + - React-RCTBlob (= 0.72.13) + - React-RCTImage (= 0.72.13) + - React-RCTLinking (= 0.72.13) + - React-RCTNetwork (= 0.72.13) + - React-RCTSettings (= 0.72.13) + - React-RCTText (= 0.72.13) + - React-RCTVibration (= 0.72.13) + - React-callinvoker (0.72.13) + - React-Codegen (0.72.13): - DoubleConversion - FBReactNativeSpec - glog @@ -80,11 +136,11 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-Core (0.72.4): + - React-Core (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.72.4) + - React-Core/Default (= 0.72.13) - React-cxxreact - React-hermes - React-jsi @@ -94,7 +150,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/CoreModulesHeaders (0.72.4): + - React-Core/CoreModulesHeaders (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -108,7 +164,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/Default (0.72.4): + - React-Core/Default (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -121,23 +177,23 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/DevSupport (0.72.4): + - React-Core/DevSupport (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.72.4) - - React-Core/RCTWebSocket (= 0.72.4) + - React-Core/Default (= 0.72.13) + - React-Core/RCTWebSocket (= 0.72.13) - React-cxxreact - React-hermes - React-jsi - React-jsiexecutor - - React-jsinspector (= 0.72.4) + - React-jsinspector (= 0.72.13) - React-perflogger - React-runtimeexecutor - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTActionSheetHeaders (0.72.4): + - React-Core/RCTActionSheetHeaders (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -151,7 +207,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTAnimationHeaders (0.72.4): + - React-Core/RCTAnimationHeaders (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -165,7 +221,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTBlobHeaders (0.72.4): + - React-Core/RCTBlobHeaders (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -179,7 +235,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTImageHeaders (0.72.4): + - React-Core/RCTImageHeaders (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -193,7 +249,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTLinkingHeaders (0.72.4): + - React-Core/RCTLinkingHeaders (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -207,7 +263,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTNetworkHeaders (0.72.4): + - React-Core/RCTNetworkHeaders (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -221,7 +277,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTPushNotificationHeaders (0.72.4): + - React-Core/RCTPushNotificationHeaders (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -235,7 +291,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTSettingsHeaders (0.72.4): + - React-Core/RCTSettingsHeaders (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -249,7 +305,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTTextHeaders (0.72.4): + - React-Core/RCTTextHeaders (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -263,7 +319,7 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTVibrationHeaders (0.72.4): + - React-Core/RCTVibrationHeaders (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -277,11 +333,11 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-Core/RCTWebSocket (0.72.4): + - React-Core/RCTWebSocket (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.72.4) + - React-Core/Default (= 0.72.13) - React-cxxreact - React-hermes - React-jsi @@ -291,591 +347,591 @@ PODS: - React-utils - SocketRocket (= 0.6.1) - Yoga - - React-CoreModules (0.72.4): + - React-CoreModules (0.72.13): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.4) - - React-Codegen (= 0.72.4) - - React-Core/CoreModulesHeaders (= 0.72.4) - - React-jsi (= 0.72.4) + - RCTTypeSafety (= 0.72.13) + - React-Codegen (= 0.72.13) + - React-Core/CoreModulesHeaders (= 0.72.13) + - React-jsi (= 0.72.13) - React-RCTBlob - - React-RCTImage (= 0.72.4) - - ReactCommon/turbomodule/core (= 0.72.4) + - React-RCTImage (= 0.72.13) + - ReactCommon/turbomodule/core (= 0.72.13) - SocketRocket (= 0.6.1) - - React-cxxreact (0.72.4): + - React-cxxreact (0.72.13): - boost (= 1.76.0) - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.72.4) - - React-debug (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsinspector (= 0.72.4) - - React-logger (= 0.72.4) - - React-perflogger (= 0.72.4) - - React-runtimeexecutor (= 0.72.4) - - React-debug (0.72.4) - - React-Fabric (0.72.4): + - React-callinvoker (= 0.72.13) + - React-debug (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsinspector (= 0.72.13) + - React-logger (= 0.72.13) + - React-perflogger (= 0.72.13) + - React-runtimeexecutor (= 0.72.13) + - React-debug (0.72.13) + - React-Fabric (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-Fabric/animations (= 0.72.4) - - React-Fabric/attributedstring (= 0.72.4) - - React-Fabric/butter (= 0.72.4) - - React-Fabric/componentregistry (= 0.72.4) - - React-Fabric/componentregistrynative (= 0.72.4) - - React-Fabric/components (= 0.72.4) - - React-Fabric/config (= 0.72.4) - - React-Fabric/core (= 0.72.4) - - React-Fabric/debug_renderer (= 0.72.4) - - React-Fabric/imagemanager (= 0.72.4) - - React-Fabric/leakchecker (= 0.72.4) - - React-Fabric/mapbuffer (= 0.72.4) - - React-Fabric/mounting (= 0.72.4) - - React-Fabric/scheduler (= 0.72.4) - - React-Fabric/telemetry (= 0.72.4) - - React-Fabric/templateprocessor (= 0.72.4) - - React-Fabric/textlayoutmanager (= 0.72.4) - - React-Fabric/uimanager (= 0.72.4) - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-Fabric/animations (= 0.72.13) + - React-Fabric/attributedstring (= 0.72.13) + - React-Fabric/butter (= 0.72.13) + - React-Fabric/componentregistry (= 0.72.13) + - React-Fabric/componentregistrynative (= 0.72.13) + - React-Fabric/components (= 0.72.13) + - React-Fabric/config (= 0.72.13) + - React-Fabric/core (= 0.72.13) + - React-Fabric/debug_renderer (= 0.72.13) + - React-Fabric/imagemanager (= 0.72.13) + - React-Fabric/leakchecker (= 0.72.13) + - React-Fabric/mapbuffer (= 0.72.13) + - React-Fabric/mounting (= 0.72.13) + - React-Fabric/scheduler (= 0.72.13) + - React-Fabric/telemetry (= 0.72.13) + - React-Fabric/templateprocessor (= 0.72.13) + - React-Fabric/textlayoutmanager (= 0.72.13) + - React-Fabric/uimanager (= 0.72.13) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/animations (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/animations (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/attributedstring (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/attributedstring (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/butter (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/butter (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/componentregistry (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/componentregistry (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/componentregistrynative (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/componentregistrynative (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-Fabric/components/activityindicator (= 0.72.4) - - React-Fabric/components/image (= 0.72.4) - - React-Fabric/components/inputaccessory (= 0.72.4) - - React-Fabric/components/legacyviewmanagerinterop (= 0.72.4) - - React-Fabric/components/modal (= 0.72.4) - - React-Fabric/components/rncore (= 0.72.4) - - React-Fabric/components/root (= 0.72.4) - - React-Fabric/components/safeareaview (= 0.72.4) - - React-Fabric/components/scrollview (= 0.72.4) - - React-Fabric/components/text (= 0.72.4) - - React-Fabric/components/textinput (= 0.72.4) - - React-Fabric/components/unimplementedview (= 0.72.4) - - React-Fabric/components/view (= 0.72.4) - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-Fabric/components/activityindicator (= 0.72.13) + - React-Fabric/components/image (= 0.72.13) + - React-Fabric/components/inputaccessory (= 0.72.13) + - React-Fabric/components/legacyviewmanagerinterop (= 0.72.13) + - React-Fabric/components/modal (= 0.72.13) + - React-Fabric/components/rncore (= 0.72.13) + - React-Fabric/components/root (= 0.72.13) + - React-Fabric/components/safeareaview (= 0.72.13) + - React-Fabric/components/scrollview (= 0.72.13) + - React-Fabric/components/text (= 0.72.13) + - React-Fabric/components/textinput (= 0.72.13) + - React-Fabric/components/unimplementedview (= 0.72.13) + - React-Fabric/components/view (= 0.72.13) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/activityindicator (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/activityindicator (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/image (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/image (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/inputaccessory (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/inputaccessory (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/legacyviewmanagerinterop (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/legacyviewmanagerinterop (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/modal (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/modal (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/rncore (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/rncore (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/root (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/root (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/safeareaview (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/safeareaview (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/scrollview (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/scrollview (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/text (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/text (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/textinput (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/textinput (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/unimplementedview (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/unimplementedview (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/components/view (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/components/view (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) + - ReactCommon/turbomodule/core (= 0.72.13) - Yoga - - React-Fabric/config (0.72.4): + - React-Fabric/config (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/core (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/core (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/debug_renderer (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/debug_renderer (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/imagemanager (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/imagemanager (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/leakchecker (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/leakchecker (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/mapbuffer (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/mapbuffer (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/mounting (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/mounting (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/scheduler (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/scheduler (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/telemetry (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/telemetry (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/templateprocessor (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/templateprocessor (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/textlayoutmanager (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/textlayoutmanager (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - React-Fabric/uimanager - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-Fabric/uimanager (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-Fabric/uimanager (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 0.72.4) - - RCTTypeSafety (= 0.72.4) + - RCTRequired (= 0.72.13) + - RCTTypeSafety (= 0.72.13) - React-Core - React-debug - - React-graphics (= 0.72.4) - - React-jsi (= 0.72.4) - - React-jsiexecutor (= 0.72.4) + - React-graphics (= 0.72.13) + - React-jsi (= 0.72.13) + - React-jsiexecutor (= 0.72.13) - React-logger - React-runtimescheduler - React-utils - - ReactCommon/turbomodule/core (= 0.72.4) - - React-graphics (0.72.4): + - ReactCommon/turbomodule/core (= 0.72.13) + - React-graphics (0.72.13): - glog - RCT-Folly/Fabric (= 2021.07.22.00) - - React-Core/Default (= 0.72.4) - - React-hermes (0.72.4): + - React-Core/Default (= 0.72.13) + - React-hermes (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - RCT-Folly/Futures (= 2021.07.22.00) - - React-cxxreact (= 0.72.4) + - React-cxxreact (= 0.72.13) - React-jsi - - React-jsiexecutor (= 0.72.4) - - React-jsinspector (= 0.72.4) - - React-perflogger (= 0.72.4) - - React-ImageManager (0.72.4): + - React-jsiexecutor (= 0.72.13) + - React-jsinspector (= 0.72.13) + - React-perflogger (= 0.72.13) + - React-ImageManager (0.72.13): - glog - RCT-Folly/Fabric - React-Core/Default @@ -883,24 +939,24 @@ PODS: - React-Fabric - React-RCTImage - React-utils - - React-jsi (0.72.4): + - React-jsi (0.72.13): - boost (= 1.76.0) - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-jsiexecutor (0.72.4): + - React-jsiexecutor (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-cxxreact (= 0.72.4) - - React-jsi (= 0.72.4) - - React-perflogger (= 0.72.4) - - React-jsinspector (0.72.4) - - React-logger (0.72.4): + - React-cxxreact (= 0.72.13) + - React-jsi (= 0.72.13) + - React-perflogger (= 0.72.13) + - React-jsinspector (0.72.13) + - React-logger (0.72.13): - glog - - React-NativeModulesApple (0.72.4): + - React-NativeModulesApple (0.72.13): - hermes-engine - React-callinvoker - React-Core @@ -909,17 +965,17 @@ PODS: - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-perflogger (0.72.4) - - React-RCTActionSheet (0.72.4): - - React-Core/RCTActionSheetHeaders (= 0.72.4) - - React-RCTAnimation (0.72.4): + - React-perflogger (0.72.13) + - React-RCTActionSheet (0.72.13): + - React-Core/RCTActionSheetHeaders (= 0.72.13) + - React-RCTAnimation (0.72.13): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.4) - - React-Codegen (= 0.72.4) - - React-Core/RCTAnimationHeaders (= 0.72.4) - - React-jsi (= 0.72.4) - - ReactCommon/turbomodule/core (= 0.72.4) - - React-RCTAppDelegate (0.72.4): + - RCTTypeSafety (= 0.72.13) + - React-Codegen (= 0.72.13) + - React-Core/RCTAnimationHeaders (= 0.72.13) + - React-jsi (= 0.72.13) + - ReactCommon/turbomodule/core (= 0.72.13) + - React-RCTAppDelegate (0.72.13): - RCT-Folly - RCTRequired - RCTTypeSafety @@ -931,78 +987,78 @@ PODS: - React-RCTNetwork - React-runtimescheduler - ReactCommon/turbomodule/core - - React-RCTBlob (0.72.4): + - React-RCTBlob (0.72.13): - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.72.4) - - React-Core/RCTBlobHeaders (= 0.72.4) - - React-Core/RCTWebSocket (= 0.72.4) - - React-jsi (= 0.72.4) - - React-RCTNetwork (= 0.72.4) - - ReactCommon/turbomodule/core (= 0.72.4) - - React-RCTFabric (0.72.4): + - React-Codegen (= 0.72.13) + - React-Core/RCTBlobHeaders (= 0.72.13) + - React-Core/RCTWebSocket (= 0.72.13) + - React-jsi (= 0.72.13) + - React-RCTNetwork (= 0.72.13) + - ReactCommon/turbomodule/core (= 0.72.13) + - React-RCTFabric (0.72.13): - glog - hermes-engine - RCT-Folly/Fabric (= 2021.07.22.00) - - React-Core (= 0.72.4) - - React-Fabric (= 0.72.4) + - React-Core (= 0.72.13) + - React-Fabric (= 0.72.13) - React-ImageManager - - React-RCTImage (= 0.72.4) + - React-RCTImage (= 0.72.13) - React-RCTText - React-runtimescheduler - React-utils - Yoga - - React-RCTImage (0.72.4): + - React-RCTImage (0.72.13): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.4) - - React-Codegen (= 0.72.4) - - React-Core/RCTImageHeaders (= 0.72.4) - - React-jsi (= 0.72.4) - - React-RCTNetwork (= 0.72.4) - - ReactCommon/turbomodule/core (= 0.72.4) - - React-RCTLinking (0.72.4): - - React-Codegen (= 0.72.4) - - React-Core/RCTLinkingHeaders (= 0.72.4) - - React-jsi (= 0.72.4) - - ReactCommon/turbomodule/core (= 0.72.4) - - React-RCTNetwork (0.72.4): + - RCTTypeSafety (= 0.72.13) + - React-Codegen (= 0.72.13) + - React-Core/RCTImageHeaders (= 0.72.13) + - React-jsi (= 0.72.13) + - React-RCTNetwork (= 0.72.13) + - ReactCommon/turbomodule/core (= 0.72.13) + - React-RCTLinking (0.72.13): + - React-Codegen (= 0.72.13) + - React-Core/RCTLinkingHeaders (= 0.72.13) + - React-jsi (= 0.72.13) + - ReactCommon/turbomodule/core (= 0.72.13) + - React-RCTNetwork (0.72.13): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.4) - - React-Codegen (= 0.72.4) - - React-Core/RCTNetworkHeaders (= 0.72.4) - - React-jsi (= 0.72.4) - - ReactCommon/turbomodule/core (= 0.72.4) - - React-RCTPushNotification (0.72.4): - - RCTTypeSafety (= 0.72.4) - - React-Codegen (= 0.72.4) - - React-Core/RCTPushNotificationHeaders (= 0.72.4) - - React-jsi (= 0.72.4) - - ReactCommon/turbomodule/core (= 0.72.4) - - React-RCTSettings (0.72.4): + - RCTTypeSafety (= 0.72.13) + - React-Codegen (= 0.72.13) + - React-Core/RCTNetworkHeaders (= 0.72.13) + - React-jsi (= 0.72.13) + - ReactCommon/turbomodule/core (= 0.72.13) + - React-RCTPushNotification (0.72.13): + - RCTTypeSafety (= 0.72.13) + - React-Codegen (= 0.72.13) + - React-Core/RCTPushNotificationHeaders (= 0.72.13) + - React-jsi (= 0.72.13) + - ReactCommon/turbomodule/core (= 0.72.13) + - React-RCTSettings (0.72.13): - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.72.4) - - React-Codegen (= 0.72.4) - - React-Core/RCTSettingsHeaders (= 0.72.4) - - React-jsi (= 0.72.4) - - ReactCommon/turbomodule/core (= 0.72.4) - - React-RCTTest (0.72.4): + - RCTTypeSafety (= 0.72.13) + - React-Codegen (= 0.72.13) + - React-Core/RCTSettingsHeaders (= 0.72.13) + - React-jsi (= 0.72.13) + - ReactCommon/turbomodule/core (= 0.72.13) + - React-RCTTest (0.72.13): - RCT-Folly (= 2021.07.22.00) - - React-Core (= 0.72.4) - - React-CoreModules (= 0.72.4) - - React-jsi (= 0.72.4) - - ReactCommon/turbomodule/core (= 0.72.4) - - React-RCTText (0.72.4): - - React-Core/RCTTextHeaders (= 0.72.4) - - React-RCTVibration (0.72.4): + - React-Core (= 0.72.13) + - React-CoreModules (= 0.72.13) + - React-jsi (= 0.72.13) + - ReactCommon/turbomodule/core (= 0.72.13) + - React-RCTText (0.72.13): + - React-Core/RCTTextHeaders (= 0.72.13) + - React-RCTVibration (0.72.13): - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.72.4) - - React-Core/RCTVibrationHeaders (= 0.72.4) - - React-jsi (= 0.72.4) - - ReactCommon/turbomodule/core (= 0.72.4) - - React-rncore (0.72.4) - - React-runtimeexecutor (0.72.4): - - React-jsi (= 0.72.4) - - React-runtimescheduler (0.72.4): + - React-Codegen (= 0.72.13) + - React-Core/RCTVibrationHeaders (= 0.72.13) + - React-jsi (= 0.72.13) + - ReactCommon/turbomodule/core (= 0.72.13) + - React-rncore (0.72.13) + - React-runtimeexecutor (0.72.13): + - React-jsi (= 0.72.13) + - React-runtimescheduler (0.72.13): - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) @@ -1010,11 +1066,11 @@ PODS: - React-debug - React-jsi - React-runtimeexecutor - - React-utils (0.72.4): + - React-utils (0.72.13): - glog - RCT-Folly (= 2021.07.22.00) - React-debug - - ReactCommon-Samples (0.72.4): + - ReactCommon-Samples (0.72.13): - DoubleConversion - hermes-engine - RCT-Folly @@ -1023,41 +1079,64 @@ PODS: - React-cxxreact - React-NativeModulesApple - ReactCommon/turbomodule/core - - ReactCommon/turbomodule/bridging (0.72.4): + - ReactCommon/turbomodule/bridging (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.72.4) - - React-cxxreact (= 0.72.4) - - React-jsi (= 0.72.4) - - React-logger (= 0.72.4) - - React-perflogger (= 0.72.4) - - ReactCommon/turbomodule/core (0.72.4): + - React-callinvoker (= 0.72.13) + - React-cxxreact (= 0.72.13) + - React-jsi (= 0.72.13) + - React-logger (= 0.72.13) + - React-perflogger (= 0.72.13) + - ReactCommon/turbomodule/core (0.72.13): - DoubleConversion - glog - hermes-engine - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.72.4) - - React-cxxreact (= 0.72.4) - - React-jsi (= 0.72.4) - - React-logger (= 0.72.4) - - React-perflogger (= 0.72.4) + - React-callinvoker (= 0.72.13) + - React-cxxreact (= 0.72.13) + - React-jsi (= 0.72.13) + - React-logger (= 0.72.13) + - React-perflogger (= 0.72.13) - ScreenshotManager (0.0.1): - RCT-Folly (= 2021.07.22.00) - React-Core - SocketRocket (0.6.1) - Yoga (1.14.0) + - YogaKit (1.18.1): + - Yoga (~> 1.14) DEPENDENCIES: - boost (from `../react-native/third-party-podspecs/boost.podspec`) - DoubleConversion (from `../react-native/third-party-podspecs/DoubleConversion.podspec`) - FBLazyVector (from `../react-native/Libraries/FBLazyVector`) - FBReactNativeSpec (from `../react-native/React/FBReactNativeSpec`) + - Flipper (= 0.182.0) + - Flipper-Boost-iOSX (= 1.76.0.1.11) + - Flipper-DoubleConversion (= 3.2.0.1) + - Flipper-Fmt (= 7.1.7) + - Flipper-Folly (= 2.6.10) + - Flipper-Glog (= 0.5.0.5) + - Flipper-PeerTalk (= 0.0.4) + - FlipperKit (= 0.182.0) + - FlipperKit/Core (= 0.182.0) + - FlipperKit/CppBridge (= 0.182.0) + - FlipperKit/FBCxxFollyDynamicConvert (= 0.182.0) + - FlipperKit/FBDefines (= 0.182.0) + - FlipperKit/FKPortForwarding (= 0.182.0) + - FlipperKit/FlipperKitHighlightOverlay (= 0.182.0) + - FlipperKit/FlipperKitLayoutPlugin (= 0.182.0) + - FlipperKit/FlipperKitLayoutTextSearchable (= 0.182.0) + - FlipperKit/FlipperKitNetworkPlugin (= 0.182.0) + - FlipperKit/FlipperKitReactPlugin (= 0.182.0) + - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.182.0) + - FlipperKit/SKIOSNetworkPlugin (= 0.182.0) - glog (from `../react-native/third-party-podspecs/glog.podspec`) - hermes-engine (from `../react-native/sdks/hermes-engine/hermes-engine.podspec`) - libevent (~> 2.1.12) - OCMock (~> 3.9.1) + - OpenSSL-Universal (= 1.1.1100) - RCT-Folly (from `../react-native/third-party-podspecs/RCT-Folly.podspec`) - RCT-Folly/Fabric (from `../react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTRequired (from `../react-native/Libraries/RCTRequired`) @@ -1066,6 +1145,7 @@ DEPENDENCIES: - React-callinvoker (from `../react-native/ReactCommon/callinvoker`) - React-Codegen (from `build/generated/ios`) - React-Core (from `../react-native/`) + - React-Core/DevSupport (from `../react-native/`) - React-Core/RCTWebSocket (from `../react-native/`) - React-CoreModules (from `../react-native/React/CoreModules`) - React-cxxreact (from `../react-native/ReactCommon/cxxreact`) @@ -1104,10 +1184,21 @@ DEPENDENCIES: SPEC REPOS: trunk: + - CocoaAsyncSocket + - Flipper + - Flipper-Boost-iOSX + - Flipper-DoubleConversion + - Flipper-Fmt + - Flipper-Folly + - Flipper-Glog + - Flipper-PeerTalk + - FlipperKit - fmt - libevent - OCMock + - OpenSSL-Universal - SocketRocket + - YogaKit EXTERNAL SOURCES: boost: @@ -1122,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: @@ -1207,58 +1297,69 @@ EXTERNAL SOURCES: :path: "../react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost: 57d2868c099736d80fcd648bf211b4431e51a558 + boost: 7dcd2de282d72e344012f7d6564d024930a6a440 + CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 - FBLazyVector: 5d4a3b7f411219a45a6d952f77d2c0a6c9989da5 - FBReactNativeSpec: be23280a4f9ace91746c88be25b524f97007afa6 + FBLazyVector: d5c36294933aa344046699700b9ae9c2e10db18e + FBReactNativeSpec: ec0157141d244103c09ec0f942e40af80adee214 + Flipper: 6edb735e6c3e332975d1b17956bcc584eccf5818 + Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c + Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 + Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b + Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3 + Flipper-Glog: 70c50ce58ddaf67dc35180db05f191692570f446 + Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 + FlipperKit: 2efad7007d6745a3f95e4034d547be637f89d3f6 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b - hermes-engine: d6b0f7383443a062c1a6155a0a3486e4d18bcc6a + hermes-engine: 6b116ce065327cef44156096edaa1e839ee69a03 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 + OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 - RCTRequired: c0569ecc035894e4a68baecb30fe6a7ea6e399f9 - RCTTypeSafety: e90354072c21236e0bcf1699011e39acd25fea2f - React: a1be3c6dc0a6e949ccd3e659781aa47bbae1868f - React-callinvoker: 1020b33f6cb1a1824f9ca2a86609fbce2a73c6ed - React-Codegen: 9dc9ce39d004aa9a7c481e0c367d6e585e558c62 - React-Core: 52075b80f10c26f62219d7b5d13d7d8089f027b3 - React-CoreModules: 21abab85d7ad9038ce2b1c33d39e3baaf7dc9244 - React-cxxreact: 4ad1cc861e32fb533dad6ff7a4ea25680fa1c994 - React-debug: 17366a3d5c5d2f5fc04f09101a4af38cb42b54ae - React-Fabric: bd595702c2a473faca32b59c427d927e9d3a4cc1 - React-graphics: 89d631f399096ffb5f93e19ca6908ba93a123797 - React-hermes: 37377d0a56aa0cf55c65248271866ce3268cde3f - React-ImageManager: e57287a6a9d34b95c5f348a2f8773d9f6007c507 - React-jsi: 6de8b0ccc6b765b58e4eee9ee38049dbeaf5c221 - React-jsiexecutor: c7f826e40fa9cab5d37cab6130b1af237332b594 - React-jsinspector: aaed4cf551c4a1c98092436518c2d267b13a673f - React-logger: da1ebe05ae06eb6db4b162202faeafac4b435e77 - React-NativeModulesApple: edb5ace14f73f4969df6e7b1f3e41bef0012740f - React-perflogger: 496a1a3dc6737f964107cb3ddae7f9e265ddda58 - React-RCTActionSheet: 02904b932b50e680f4e26e7a686b33ebf7ef3c00 - React-RCTAnimation: 88feaf0a85648fb8fd497ce749829774910276d6 - React-RCTAppDelegate: 5792ac0f0feccb584765fdd7aa81ea320c4d9b0b - React-RCTBlob: 0dbc9e2a13d241b37d46b53e54630cbad1f0e141 - React-RCTFabric: 0d443ab3cc3f0af82442ec95747d503cee955f26 - React-RCTImage: b111645ab901f8e59fc68fbe31f5731bdbeef087 - React-RCTLinking: 3d719727b4c098aad3588aa3559361ee0579f5de - React-RCTNetwork: b44d3580be05d74556ba4efbf53570f17e38f734 - React-RCTPushNotification: e8e403bd93e63051855334eae1851f5a3ef23ede - React-RCTSettings: c0c54b330442c29874cd4dae6e94190dc11a6f6f - React-RCTTest: 3dc1bbd75178ca6fe1dddbcdcafd5f02dd6e6935 - React-RCTText: 9b9f5589d9b649d7246c3f336e116496df28cfe6 - React-RCTVibration: 691c67f3beaf1d084ceed5eb5c1dddd9afa8591e - React-rncore: 24d25af89f365c9537f1d3f99e0175d10e41d227 - React-runtimeexecutor: d465ba0c47ef3ed8281143f59605cacc2244d5c7 - React-runtimescheduler: 4941cc1b3cf08b792fbf666342c9fc95f1969035 - React-utils: b79f2411931f9d3ea5781404dcbb2fa8a837e13a - ReactCommon: 4b2bdcb50a3543e1c2b2849ad44533686610826d - ReactCommon-Samples: f5369d4fca506f8bf51155f8512cf26c094b2db9 - ScreenshotManager: 4e5729bfcd19014d277e57eb60e8e75db64b2953 + RCTRequired: 2fb3c1ac6546029f44d04083771e60a106073853 + RCTTypeSafety: 59916726dadf1e2f3d502f2f3cf7393fe451f501 + React: a268c36512fe4ae45f55816af7dac225de38a602 + React-callinvoker: b8a85e82fe8e7d8f3b4b4ff03c292c498fe8e747 + React-Codegen: c37a542f671838c7977d565afedadb6afa76f4f7 + React-Core: 515d1f7f7a02d99a4d29fda4495e69c43375a035 + React-CoreModules: ce9bc448da0091a8d0d9d63f95213e52d170db31 + React-cxxreact: 4deb455d65dd11513fa8d228442005e1febedfe2 + React-debug: 30e2b157b34f426e0ad51ec6bc1b8231e7f27c48 + React-Fabric: 5a9a8e724e75128623716a9265e1864d9535b029 + React-graphics: 463bc5519c20eff4b7aa973e1f3700fc725c9821 + React-hermes: cad4ee3887376efa0c1498b33a295b00055e0644 + React-ImageManager: 8266d8c29c6ac878bdca362b1403ed0b31e776c1 + React-jsi: 5162e7a01e31e956147e674915fcdeab0b6e324f + React-jsiexecutor: 08ea8c7c359e5953776d9b51eb606a02b0999c61 + React-jsinspector: 525fb67d3402476e6d2796907892137e4a632e35 + React-logger: c3a0ff270a52e0051489f1f29a5de047ba7e8ca0 + React-NativeModulesApple: 83cd035f454ac54f4f72ce7b01c34054fa6d60f8 + React-perflogger: de3900e86d8a4d896999b08e0b130ad8b83ebf11 + React-RCTActionSheet: 92433ffdf1b479aab3fe32250047f100a10ce59f + React-RCTAnimation: 6f116d7b25705f185f48dedf65eb4e98f98d860c + React-RCTAppDelegate: efc96d53a6673082eb6b2d8c91a7ef349b639f7a + React-RCTBlob: 088c2942e3b171b4f8dba9b7f48aa5fff5c2ab97 + React-RCTFabric: 1485a97a7f46430c897e2fd6512eba7aa48dc0da + React-RCTImage: 66b3b6d840a3b329b2406956a58db80f1344d097 + React-RCTLinking: 032518be6aebadd7f032f23c8975be98eff042cb + React-RCTNetwork: dc775d132167fcdfcb3bba4b11d57cf07a834a3e + React-RCTPushNotification: 65a86d5470e6979361018cf0397c92f9b88f47f3 + React-RCTSettings: 0bd22fc8293bc396cdb0769a12830273c8c5096b + React-RCTTest: a7d408520fc53ba9f4ffda8ad0e7df4a4f4ae705 + React-RCTText: d312733e5008713f7293e3d44f41f34d432cd4b0 + React-RCTVibration: 754103c3c8c09d6fd2e1ee49d9a32f53e9f2d615 + React-rncore: 6e7aa006b41791c969137c4c6eba11be62e12e8a + React-runtimeexecutor: 318cd0b384ccb12a2f86870f8591b759caad7f7d + React-runtimescheduler: 8dd5ce1d291c417dd90cd651eccc70821c237a38 + React-utils: 46700f6d6cacc4288f897b94571bf92895678885 + ReactCommon: 71dc6b65f95ea81a83490115d7a5fc62378ecdcc + ReactCommon-Samples: 3973281ae73898264ebc87417853b8d2e51e5e11 + ScreenshotManager: 0e3bc01ae69e0d00ded2461f7b1e9d1393eef3ff SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 - Yoga: 3efc43e0d48686ce2e8c60f99d4e6bd349aff981 + Yoga: 6e6ec2d9e1eb4ecb97be4dc9bdd91f7cae2adf98 + YogaKit: f782866e155069a2cca2517aafea43200b01fd5a PODFILE CHECKSUM: 9fa6f105e2187b680e978d57b28e2f700c8bd295 -COCOAPODS: 1.12.1 +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 be4bc78b9c7f..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; } @@ -214,7 +219,19 @@ function buildArtifactsLocally( expandHermesSourceTarball(); } - // need to move the scripts inside the local hermes cloned folder + // need to move the podspec file from hermes-engine to hermes folder + // cp sdks/hermes-engine/hermes-engine.podspec /hermes-engine.podspec + cp( + `${reactNativePackagePath}/sdks/hermes-engine/hermes-engine.podspec`, + `${reactNativePackagePath}/sdks/hermes/hermes-engine.podspec`, + ); + // need to move the hermes-utils file from hermes-engine to hermes folder + // cp sdks/hermes-engine/hermes-utils.rb /hermes-utils.rb + cp( + `${reactNativePackagePath}/sdks/hermes-engine/hermes-utils.rb`, + `${reactNativePackagePath}/sdks/hermes/hermes-utils.rb`, + ); + // need to move the shell scripts file from hermes-engine to hermes folder // cp sdks/hermes-engine/utils/*.sh /utils/. cp( `${reactNativePackagePath}/sdks/hermes-engine/utils/*.sh`, 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==