From 45ded3c6df3d8226611e65a5e456c88740356fd0 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Thu, 15 Jun 2023 11:13:14 -0700 Subject: [PATCH] Make React-utils its own pod (#37659) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/37659 changelog: [internal] To better align with how BUCK is setup internally, let's make React utils its own pod. Reviewed By: dmytrorykun Differential Revision: D46358021 fbshipit-source-id: 1a34fc99c75d9500cb5aab0ee614d08afc8dad17 --- .../AppDelegate/React-RCTAppDelegate.podspec | 2 + packages/react-native/React-Core.podspec | 1 + .../React/React-RCTFabric.podspec | 2 + .../ReactCommon/React-Fabric.podspec | 8 +- .../platform/ios/React-ImageManager.podspec | 4 +- .../react/utils/React-utils.podspec | 57 +++++++ .../cocoapods/__tests__/codegen_utils-test.rb | 5 +- .../__tests__/new_architecture-test.rb | 5 +- .../scripts/cocoapods/codegen_utils.rb | 2 + .../scripts/cocoapods/new_architecture.rb | 2 + .../react-native/scripts/react_native_pods.rb | 1 + packages/rn-tester/Podfile.lock | 157 +++++++++++------- 12 files changed, 176 insertions(+), 70 deletions(-) create mode 100644 packages/react-native/ReactCommon/react/utils/React-utils.podspec diff --git a/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec b/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec index 9888ded6fb3b8e..c22ba9279aeb76 100644 --- a/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec +++ b/packages/react-native/Libraries/AppDelegate/React-RCTAppDelegate.podspec @@ -49,6 +49,7 @@ header_search_paths = [ "$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers", "$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers/", "$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers/", + "${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers/" ] : []).map{|p| "\"#{p}\""}.join(" ") Pod::Spec.new do |s| @@ -93,6 +94,7 @@ Pod::Spec.new do |s| s.dependency "React-RCTFabric" s.dependency "React-graphics" s.dependency "React-debug" + s.dependency "React-utils" s.script_phases = { :name => "Generate Legacy Components Interop", diff --git a/packages/react-native/React-Core.podspec b/packages/react-native/React-Core.podspec index fe840820e65520..2fad76d2d9726a 100644 --- a/packages/react-native/React-Core.podspec +++ b/packages/react-native/React-Core.podspec @@ -130,6 +130,7 @@ Pod::Spec.new do |s| s.dependency "React-perflogger", version s.dependency "React-jsi", version s.dependency "React-jsiexecutor", version + s.dependency "React-utils" s.dependency "SocketRocket", socket_rocket_version s.dependency "Yoga" s.dependency "glog" diff --git a/packages/react-native/React/React-RCTFabric.podspec b/packages/react-native/React/React-RCTFabric.podspec index 543f01691cb084..1c1ac9f67937b7 100644 --- a/packages/react-native/React/React-RCTFabric.podspec +++ b/packages/react-native/React/React-RCTFabric.podspec @@ -44,6 +44,7 @@ if ENV['USE_FRAMEWORKS'] header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-ImageManager/React_ImageManager.framework/Headers\"" header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\"" header_search_paths << "\"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\"" + header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\"" end Pod::Spec.new do |s| @@ -81,6 +82,7 @@ Pod::Spec.new do |s| s.dependency "React-RCTText" s.dependency "React-FabricImage" s.dependency "React-debug" + s.dependency "React-utils" if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1" s.dependency "hermes-engine" diff --git a/packages/react-native/ReactCommon/React-Fabric.podspec b/packages/react-native/ReactCommon/React-Fabric.podspec index 96cef2b9e79049..1f5a9b955fd5ea 100644 --- a/packages/react-native/ReactCommon/React-Fabric.podspec +++ b/packages/react-native/ReactCommon/React-Fabric.podspec @@ -52,7 +52,7 @@ Pod::Spec.new do |s| s.dependency "DoubleConversion" s.dependency "React-Core" s.dependency "React-debug" - # s.dependency "React-utils" + s.dependency "React-utils" # s.dependency "React-runtimescheduler" s.dependency "React-cxxreact" @@ -324,10 +324,4 @@ Pod::Spec.new do |s| ss.header_dir = "react/renderer/runtimescheduler" ss.pod_target_xcconfig = { "GCC_WARN_PEDANTIC" => "YES" } end - - s.subspec "utils" do |ss| - ss.source_files = "react/utils/*.{m,mm,cpp,h}" - ss.header_dir = "react/utils" - end - end diff --git a/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec b/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec index a5f2bd21334955..5dd7f9ef452028 100644 --- a/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +++ b/packages/react-native/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec @@ -48,7 +48,8 @@ Pod::Spec.new do |s| "\"$(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-debug/React_debug.framework/Headers\"" + "\"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\"", + "\"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\"" ] end @@ -63,5 +64,6 @@ Pod::Spec.new do |s| s.dependency "React-Core/Default" s.dependency "React-RCTImage" s.dependency "React-debug" + s.dependency "React-utils" s.dependency "glog" end diff --git a/packages/react-native/ReactCommon/react/utils/React-utils.podspec b/packages/react-native/ReactCommon/react/utils/React-utils.podspec new file mode 100644 index 00000000000000..d262c559241052 --- /dev/null +++ b/packages/react-native/ReactCommon/react/utils/React-utils.podspec @@ -0,0 +1,57 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "..", "..", "..", "package.json"))) +version = package['version'] + +source = { :git => 'https://github.com/facebook/react-native.git' } +if version == '1000.0.0' + # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in. + source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1") +else + source[:tag] = "v#{version}" +end + +folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' +folly_version = '2021.07.22.00' + +header_search_paths = [ + "\"$(PODS_ROOT)/RCT-Folly\"", + "\"$(PODS_TARGET_SRCROOT)\"", + "\"$(PODS_TARGET_SRCROOT)/ReactCommon\"", +] + +if ENV["USE_FRAMEWORKS"] + header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\"" +end + +Pod::Spec.new do |s| + s.name = "React-utils" + s.version = version + s.summary = "-" # TODO + s.homepage = "https://reactnative.dev/" + s.license = package["license"] + s.author = "Meta Platforms, Inc. and its affiliates" + s.platforms = { :ios => min_ios_version_supported } + s.source = source + s.source_files = "**/*.{cpp,h,mm}" + s.compiler_flags = folly_compiler_flags + s.header_dir = "react/utils" + s.exclude_files = "tests" + s.pod_target_xcconfig = { + "CLANG_CXX_LANGUAGE_STANDARD" => "c++17", + "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')} + + if ENV['USE_FRAMEWORKS'] + s.module_name = "React_utils" + s.header_mappings_dir = "../.." + end + + s.dependency "RCT-Folly", folly_version + s.dependency "React-debug" + s.dependency "glog" +end diff --git a/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb b/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb index b738548d5cf945..297ed18bca59bb 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/codegen_utils-test.rb @@ -578,7 +578,7 @@ def get_podspec_fabric_and_script_phases(script_phases) 'React-rncore': [], 'React-Fabric': [], 'React-debug': [], - + 'React-utils': [], }) specs[:'script_phases'] = script_phases @@ -590,12 +590,13 @@ def get_podspec_when_use_frameworks specs = get_podspec_no_fabric_no_script() specs["pod_target_xcconfig"]["FRAMEWORK_SEARCH_PATHS"].concat([]) - specs["pod_target_xcconfig"]["HEADER_SEARCH_PATHS"].concat(" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_TARGET_SRCROOT)\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-Fabric/React_Fabric.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-FabricImage/React_FabricImage.framework/Headers\" \"$(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)/ReactCommon/ReactCommon.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\"") + specs["pod_target_xcconfig"]["HEADER_SEARCH_PATHS"].concat(" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_TARGET_SRCROOT)\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-Fabric/React_Fabric.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-FabricImage/React_FabricImage.framework/Headers\" \"$(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)/ReactCommon/ReactCommon.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\"") specs[:dependencies].merge!({ 'React-graphics': [], 'React-Fabric': [], 'React-debug': [], + 'React-utils': [], }) return specs 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 702d02982c2c4b..1f0c04c216a168 100644 --- a/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb +++ b/packages/react-native/scripts/cocoapods/__tests__/new_architecture-test.rb @@ -129,7 +129,7 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths # Assert assert_equal(spec.compiler_flags, NewArchitectureHelper.folly_compiler_flags) - assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(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}/React-FabricImage/React_FabricImage.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-debug/React_debug.framework/Headers\"") + assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(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}/React-FabricImage/React_FabricImage.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-debug/React_debug.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.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") assert_equal( @@ -149,6 +149,7 @@ def test_installModulesDependencies_whenNewArchEnabledAndNewArchAndNoSearchPaths { :dependency_name => "React-Fabric" }, { :dependency_name => "React-graphics" }, { :dependency_name => "React-debug" }, + { :dependency_name => "React-utils" }, { :dependency_name => "hermes-engine" } ]) end @@ -167,7 +168,7 @@ def test_installModulesDependencies_whenNewArchDisabledAndSearchPathsAndCompiler # Assert assert_equal(spec.compiler_flags, "-Wno-nullability-completeness #{NewArchitectureHelper.folly_compiler_flags}") - assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "#{other_flags} \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(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}/React-FabricImage/React_FabricImage.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-debug/React_debug.framework/Headers\"") + assert_equal(spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"], "#{other_flags} \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/Yoga\" \"$(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}/React-FabricImage/React_FabricImage.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-debug/React_debug.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\"") assert_equal(spec.pod_target_xcconfig["CLANG_CXX_LANGUAGE_STANDARD"], "c++17") assert_equal( spec.dependencies, diff --git a/packages/react-native/scripts/cocoapods/codegen_utils.rb b/packages/react-native/scripts/cocoapods/codegen_utils.rb index 97715206cf5e17..1ea549fa094961 100644 --- a/packages/react-native/scripts/cocoapods/codegen_utils.rb +++ b/packages/react-native/scripts/cocoapods/codegen_utils.rb @@ -101,6 +101,7 @@ def get_react_codegen_spec(package_json_file, folly_version: '2021.07.22.00', fa "\"$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers\"", "\"$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers\"", "\"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\"", + "\"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.framework/Headers\"" ]) end @@ -142,6 +143,7 @@ def get_react_codegen_spec(package_json_file, folly_version: '2021.07.22.00', fa 'React-graphics': [], 'React-Fabric': [], 'React-debug': [], + 'React-utils': [], }); end diff --git a/packages/react-native/scripts/cocoapods/new_architecture.rb b/packages/react-native/scripts/cocoapods/new_architecture.rb index 3b128b01d29d3d..b9a51834c91269 100644 --- a/packages/react-native/scripts/cocoapods/new_architecture.rb +++ b/packages/react-native/scripts/cocoapods/new_architecture.rb @@ -110,6 +110,7 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version) header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core\"" header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\"" header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-debug/React_debug.framework/Headers\"" + header_search_paths << "\"${PODS_CONFIGURATION_BUILD_DIR}/React-utils/React_utils.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}" @@ -137,6 +138,7 @@ def self.install_modules_dependencies(spec, new_arch_enabled, folly_version) spec.dependency "React-Fabric" spec.dependency "React-graphics" spec.dependency "React-debug" + spec.dependency "React-utils" if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1" spec.dependency "hermes-engine" diff --git a/packages/react-native/scripts/react_native_pods.rb b/packages/react-native/scripts/react_native_pods.rb index eb55940a379eb4..40d5ee3b2b2579 100644 --- a/packages/react-native/scripts/react_native_pods.rb +++ b/packages/react-native/scripts/react_native_pods.rb @@ -118,6 +118,7 @@ def use_react_native! ( pod 'React-rncore', :path => "#{prefix}/ReactCommon" pod 'React-cxxreact', :path => "#{prefix}/ReactCommon/cxxreact" pod 'React-debug', :path => "#{prefix}/ReactCommon/react/debug" + pod 'React-utils', :path => "#{prefix}/ReactCommon/react/utils" if hermes_enabled setup_hermes!(:react_native_path => prefix, :fabric_enabled => fabric_enabled) diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 75cf0dff61df6d..b595f3ccdc18c0 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -137,6 +137,7 @@ PODS: - React-jsiexecutor - React-NativeModulesApple - React-rncore + - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - React-Core (1000.0.0): @@ -149,6 +150,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/CoreModulesHeaders (1000.0.0): @@ -161,6 +163,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/Default (1000.0.0): @@ -172,6 +175,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/DevSupport (1000.0.0): @@ -186,6 +190,7 @@ PODS: - React-jsiexecutor (= 1000.0.0) - React-jsinspector (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/RCTActionSheetHeaders (1000.0.0): @@ -198,6 +203,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/RCTAnimationHeaders (1000.0.0): @@ -210,6 +216,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/RCTBlobHeaders (1000.0.0): @@ -222,6 +229,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/RCTImageHeaders (1000.0.0): @@ -234,6 +242,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/RCTLinkingHeaders (1000.0.0): @@ -246,6 +255,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/RCTNetworkHeaders (1000.0.0): @@ -258,6 +268,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/RCTPushNotificationHeaders (1000.0.0): @@ -270,6 +281,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/RCTSettingsHeaders (1000.0.0): @@ -282,6 +294,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/RCTTextHeaders (1000.0.0): @@ -294,6 +307,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/RCTVibrationHeaders (1000.0.0): @@ -306,6 +320,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-Core/RCTWebSocket (1000.0.0): @@ -318,6 +333,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-perflogger (= 1000.0.0) + - React-utils - SocketRocket (= 0.6.0) - Yoga - React-CoreModules (1000.0.0): @@ -372,11 +388,11 @@ PODS: - React-Fabric/templateprocessor (= 1000.0.0) - React-Fabric/textlayoutmanager (= 1000.0.0) - React-Fabric/uimanager (= 1000.0.0) - - React-Fabric/utils (= 1000.0.0) - React-graphics (= 1000.0.0) - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/animations (1000.0.0): - DoubleConversion @@ -392,6 +408,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/attributedstring (1000.0.0): - DoubleConversion @@ -407,6 +424,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/butter (1000.0.0): - DoubleConversion @@ -422,6 +440,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/componentregistry (1000.0.0): - DoubleConversion @@ -437,6 +456,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/componentregistrynative (1000.0.0): - DoubleConversion @@ -452,6 +472,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components (1000.0.0): - DoubleConversion @@ -478,6 +499,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components/inputaccessory (1000.0.0): - DoubleConversion @@ -493,6 +515,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components/legacyviewmanagerinterop (1000.0.0): - DoubleConversion @@ -508,6 +531,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components/modal (1000.0.0): - DoubleConversion @@ -523,6 +547,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components/rncore (1000.0.0): - DoubleConversion @@ -538,6 +563,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components/root (1000.0.0): - DoubleConversion @@ -553,6 +579,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components/safeareaview (1000.0.0): - DoubleConversion @@ -568,6 +595,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components/scrollview (1000.0.0): - DoubleConversion @@ -583,6 +611,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components/text (1000.0.0): - DoubleConversion @@ -598,6 +627,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components/textinput (1000.0.0): - DoubleConversion @@ -613,6 +643,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components/unimplementedview (1000.0.0): - DoubleConversion @@ -628,6 +659,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/components/view (1000.0.0): - DoubleConversion @@ -643,6 +675,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - Yoga - React-Fabric/config (1000.0.0): @@ -659,6 +692,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/core (1000.0.0): - DoubleConversion @@ -674,6 +708,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/debug_renderer (1000.0.0): - DoubleConversion @@ -689,6 +724,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/imagemanager (1000.0.0): - DoubleConversion @@ -704,6 +740,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/leakchecker (1000.0.0): - DoubleConversion @@ -719,6 +756,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/mapbuffer (1000.0.0): - DoubleConversion @@ -734,6 +772,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/mounting (1000.0.0): - DoubleConversion @@ -749,6 +788,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/runtimescheduler (1000.0.0): - DoubleConversion @@ -764,6 +804,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/scheduler (1000.0.0): - DoubleConversion @@ -779,6 +820,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/telemetry (1000.0.0): - DoubleConversion @@ -794,6 +836,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/templateprocessor (1000.0.0): - DoubleConversion @@ -809,6 +852,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/textlayoutmanager (1000.0.0): - DoubleConversion @@ -825,6 +869,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-Fabric/uimanager (1000.0.0): - DoubleConversion @@ -840,21 +885,7 @@ PODS: - React-jsi (= 1000.0.0) - React-jsiexecutor (= 1000.0.0) - React-logger - - ReactCommon/turbomodule/core (= 1000.0.0) - - React-Fabric/utils (1000.0.0): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2021.07.22.00) - - RCTRequired (= 1000.0.0) - - RCTTypeSafety (= 1000.0.0) - - React-Core - - React-cxxreact - - React-debug - - React-graphics (= 1000.0.0) - - React-jsi (= 1000.0.0) - - React-jsiexecutor (= 1000.0.0) - - React-logger + - React-utils - ReactCommon/turbomodule/core (= 1000.0.0) - React-FabricImage (1000.0.0): - DoubleConversion @@ -893,6 +924,7 @@ PODS: - React-debug - React-Fabric - React-RCTImage + - React-utils - React-jsi (1000.0.0): - boost (= 1.76.0) - DoubleConversion @@ -962,6 +994,7 @@ PODS: - React-ImageManager - React-RCTImage (= 1000.0.0) - React-RCTText + - React-utils - Yoga - React-RCTImage (1000.0.0): - RCT-Folly (= 2021.07.22.00) @@ -1013,6 +1046,10 @@ PODS: - React-rncore (1000.0.0) - React-runtimeexecutor (1000.0.0): - React-jsi (= 1000.0.0) + - React-utils (1000.0.0): + - glog + - RCT-Folly (= 2021.07.22.00) + - React-debug - ReactCommon-Samples (1000.0.0): - DoubleConversion - hermes-engine @@ -1120,6 +1157,7 @@ DEPENDENCIES: - React-RCTVibration (from `../react-native/Libraries/Vibration`) - React-rncore (from `../react-native/ReactCommon`) - React-runtimeexecutor (from `../react-native/ReactCommon/runtimeexecutor`) + - React-utils (from `../react-native/ReactCommon/react/utils`) - ReactCommon-Samples (from `../react-native/ReactCommon/react/nativemodule/samples`) - ReactCommon/turbomodule/core (from `../react-native/ReactCommon`) - ScreenshotManager (from `NativeModuleExample`) @@ -1229,6 +1267,8 @@ EXTERNAL SOURCES: :path: "../react-native/ReactCommon" React-runtimeexecutor: :path: "../react-native/ReactCommon/runtimeexecutor" + React-utils: + :path: "../react-native/ReactCommon/react/utils" ReactCommon: :path: "../react-native/ReactCommon" ReactCommon-Samples: @@ -1242,8 +1282,8 @@ SPEC CHECKSUMS: boost: 57d2868c099736d80fcd648bf211b4431e51a558 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 - FBLazyVector: ca580232ba491b6601ee57bcdc874fda97a459a5 - FBReactNativeSpec: 4db5acd51db3de49e59e3740f03c94ce1282a31e + FBLazyVector: f4492a543c5a8fa1502d3a5867e3f7252497cfe8 + FBReactNativeSpec: 7a256eec25705f77ac6d6c6187ec2d89a180fa6c Flipper: 6edb735e6c3e332975d1b17956bcc584eccf5818 Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 @@ -1254,53 +1294,54 @@ SPEC CHECKSUMS: FlipperKit: 2efad7007d6745a3f95e4034d547be637f89d3f6 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: 99bd064df01718db56b8f75e6b5ea3051c7dad0a - hermes-engine: 4ea4b12e82d2ccfd03b29e3d9191b716b4c8f476 + hermes-engine: 3d4707423e276e19d41573fc74ac39cf57c56b17 libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 OCMock: 9491e4bec59e0b267d52a9184ff5605995e74be8 OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c RCT-Folly: b0d1393cb3763d71efca99db314c65f0072eb0fe - RCTRequired: 5394bb1f71591633e1158bdf0534206cb5ccbeb5 - RCTTypeSafety: ba46a7f654566047a9358f2e74b2eafd97ccba9b - React: 8a004085056a81c7820f65a8bc0a92e1f7ef6878 - React-callinvoker: c2b59f2cbf0d8bcdc18b33f53e097907c12a149c - React-Codegen: 9ecf53f804f4d1d2a5d29bb2154e22a30c381f81 - React-Core: d730664c1ee918190a0c26bbf5c993f57e46ff5d - React-CoreModules: 390071843c203f516ec8dbc1c9ce1a815d35e908 - React-cxxreact: 39409697255baeb1ac42e436daee59913036109d - React-debug: d69fb5b4e3a47e8d5f8fdb01c1ec8983b7c1afec - React-Fabric: b19750f6cd0fae4e87173b1c2b6f9c94621b6679 - React-FabricImage: dc031099e2ae4734b70f1f66b7edf4f1cc40335a - React-graphics: e2c5d8a680cd5db24ab87756f688ecd24fd4628e - React-hermes: 4e22050b18127c27759488b703c0a9d5e6a341ba - React-ImageManager: f6792f5987f85271cbbc31e99dc16e63fd82fccb - React-jsi: 57f6f99db8d596dd599450f921b77229616e983b - React-jsiexecutor: 05d7b49ae31548ed320bb17d97bf5d648406278b - React-jsinspector: 03d477e4dd236c5411ef9a2f8c52cc2951ab6149 - React-logger: adce225eaf6d94e0e2568ba586c3f6e857fc8862 - React-NativeModulesApple: 67bb14d796e45adad89238b96a26b0f0daa5fa72 - React-perflogger: 8889aa68bda6d4cb649f890677d36c7b1eadfcd9 - React-RCTActionSheet: f5f5aa4079e8316562171fdf6346883d79fc51b1 - React-RCTAnimation: 0a3247bc23fd71f8eff8ccdb1bdeebbcb1de8af3 - React-RCTAppDelegate: 4d24c5365e3581fe22a05f0fadf5595b18d8c456 - React-RCTBlob: 484c22d88cbfc3d3441c1e54686f7793eaf30fa3 - React-RCTFabric: cd58dfa8a168d41363f84e78abe2d71d081581fb - React-RCTImage: 65ef7ecc938dea1decadd876448c47bc71e9d60b - React-RCTLinking: 100b9d0a895d95ea1e59e62375fe9b95d83fe031 - React-RCTNetwork: 710d044df7ddbe7be1ecae2608fc2ae2c5096c9a - React-RCTPushNotification: 502720de4bfd05358169c10e1ab791a794f550b0 - React-RCTSettings: f0f73ba95d32777386c294572c0e7f757bd33e08 - React-RCTTest: 6978788114214cf1f3004c04c5c2b882d9c0c0ea - React-RCTText: a64c63e34beec7c9893042a200d48accde4a406e - React-RCTVibration: e16f969546e42256468f7681d6d6ec3d2cab4524 - React-rncore: 4b86b32071e99b892eefaeee55dcec300e3e9194 - React-runtimeexecutor: 5499cb980788a75a5a474ab07b480e73f87e76b0 - ReactCommon: ed5e5ad966bbc436641a15fedb1b20dd68a2d147 - ReactCommon-Samples: cc63a8216d5e2090cc82c9427cd8d6675bef4d0f + RCTRequired: 82c56a03b3efd524bfdb581a906add903f78f978 + RCTTypeSafety: 034ade4e3b36be976b8378f825ccadbe104fa852 + React: cb6dc75e09f32aeddb4d8fb58a394a67219a92fe + React-callinvoker: bae59cbd6affd712bbfc703839dad868ff35069d + React-Codegen: 42dae0c7801d765934f76cfbaefcb5742524cc98 + React-Core: b04375fb8581bb80b6c87c25061a1998c61b0006 + React-CoreModules: fa9b32bbc7818672a7ca91eeef4867e133b566ec + React-cxxreact: 21b73aa1e245d6c701e62150312c3748756bbf42 + React-debug: d1cd203242675d48eecec6c2553933c0e0a3874f + React-Fabric: e85af38574589ce0d1a353623ecda0f94435da16 + React-FabricImage: 8552a7e0919bc2ab09c6869a7507ad7a46e552d9 + React-graphics: a85048af7e210ec4fed185ef201726f7b4825cc0 + React-hermes: fa4837e1d1e55f462ad3e485794056189b495d7e + React-ImageManager: 528eb68fe16f08d4c76cd32949e6bcd9e4aeae4b + React-jsi: ae20bc6ced4999f64acc5163cbfa67f878f346f4 + React-jsiexecutor: 754993beb8627912e5b25344cad02ed11a616d9f + React-jsinspector: bede0a6ac88f2463eafc1301239fe943adf06fa7 + React-logger: c20eb15d006d5c303cf6bfbb11243c8d579d9f56 + React-NativeModulesApple: 518f3f3d2d9e4944f99df30e601f8774d1fa1663 + React-perflogger: c294d51cfc18b90caa1604ef3a0fe2dd76b9e15e + React-RCTActionSheet: 943bd5f540f3af1e5a149c13c4de81858edf718a + React-RCTAnimation: a430a8c32e7947b7b014f7bd1ef6825168ad4841 + React-RCTAppDelegate: c847ea72bc6fd48b7b6693755c232a3cecbbc970 + React-RCTBlob: 9de0f88a876429c31b96b63975173c60978b5586 + React-RCTFabric: 911e88ea1b9f0b083b1502fb8dabda0a68142d42 + React-RCTImage: 8addd5fae983149d4506fbf8b36be30585adadf4 + React-RCTLinking: aec004e7f55b71be0f68913b1d993964fc8013e1 + React-RCTNetwork: 67229afd0642c55d4493cad5129238a7a1599441 + React-RCTPushNotification: 9e4bba7bb3a4682281216a81f3342caecf84cef7 + React-RCTSettings: 9b6f5a70aa3b859b2686794c3441e278b4f6e0a6 + React-RCTTest: d4004e03f9e5ca2607eb05bee5a0618b189a127a + React-RCTText: 6d0a9927391dc26325c2edf60ef7d36f637e709c + React-RCTVibration: ae65884c71d67f356396d6fcc44eec48b5afef70 + React-rncore: fe8c75a4beb121d0f923f0a45a17910083ccb681 + React-runtimeexecutor: e1c32bc249dd3cf3919cb4664fd8dc84ef70cff7 + React-utils: 2c3b06a36a63d6fce240ac5cb1de003b95222810 + ReactCommon: de6e7a92ad50207b08bcf696a61d9b509876e131 + ReactCommon-Samples: 13b7118480fb9abeee8a98bc1cceff06984cfde4 ScreenshotManager: d39b964a374e5012e2b8c143e29ead86b1da6a3c SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 - Yoga: 456e136b8de9c5360b609bd3238656cea243958f + Yoga: 239f77be94241af2a02e7018fe6165a715bc25f1 YogaKit: f782866e155069a2cca2517aafea43200b01fd5a -PODFILE CHECKSUM: bdab6add69d555774de227d7119a8f5ae02a670e +PODFILE CHECKSUM: e220946495183a79874329aff76ec197027be224 COCOAPODS: 1.12.1