react-native 0.83.9 → 0.83.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec +1 -1
  2. package/Libraries/Animated/components/AnimatedScrollView.js +1 -1
  3. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +1 -1
  4. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  5. package/Libraries/Components/Button.js +2 -2
  6. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +1 -1
  7. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  8. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  9. package/Libraries/Components/View/ViewAccessibility.d.ts +1 -1
  10. package/Libraries/Components/View/ViewAccessibility.js +1 -1
  11. package/Libraries/Core/ReactNativeVersion.js +1 -1
  12. package/Libraries/Core/Timers/JSTimers.js +1 -1
  13. package/Libraries/Core/setUpNavigator.js +1 -1
  14. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +1 -1
  15. package/Libraries/FBLazyVector/FBLazyVector.podspec +1 -1
  16. package/Libraries/Image/ImageSource.d.ts +1 -1
  17. package/Libraries/Image/RCTImageLoader.mm +1 -1
  18. package/Libraries/Image/React-RCTImage.podspec +1 -1
  19. package/Libraries/Interaction/PanResponder.js +1 -1
  20. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  21. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  22. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  23. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  24. package/Libraries/Renderer/README.md +2 -2
  25. package/Libraries/Required/RCTRequired.podspec +1 -1
  26. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  27. package/Libraries/Text/React-RCTText.podspec +1 -1
  28. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  29. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  30. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  31. package/README.md +6 -6
  32. package/React/Base/RCTVersion.m +1 -1
  33. package/React/CoreModules/React-CoreModules.podspec +1 -1
  34. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +1 -1
  35. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +1 -1
  36. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +34 -5
  37. package/React/React-RCTFBReactNativeSpec.podspec +1 -1
  38. package/React/React-RCTFabric.podspec +1 -1
  39. package/React/Runtime/React-RCTRuntime.podspec +1 -1
  40. package/React/Tests/Mounting/RCTViewComponentViewTests.mm +145 -0
  41. package/React/Views/ScrollView/RCTScrollView.m +1 -1
  42. package/React-Core.podspec +1 -1
  43. package/React.podspec +1 -1
  44. package/ReactAndroid/build.gradle.kts +1 -1
  45. package/ReactAndroid/gradle.properties +1 -1
  46. package/ReactAndroid/publish.gradle +5 -5
  47. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
  48. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
  49. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +2 -2
  50. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +1 -1
  51. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.kt +1 -1
  52. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +3 -3
  53. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  54. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +1 -1
  55. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +1 -1
  56. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +1 -1
  57. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +1 -1
  58. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +2 -2
  59. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +2 -2
  60. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextSelectionWatcher.kt +1 -1
  61. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
  62. package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +1 -1
  63. package/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec +1 -1
  64. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec +1 -1
  65. package/ReactCommon/React-Fabric.podspec +1 -1
  66. package/ReactCommon/React-FabricComponents.podspec +1 -1
  67. package/ReactCommon/React-FabricImage.podspec +1 -1
  68. package/ReactCommon/React-Mapbuffer.podspec +1 -1
  69. package/ReactCommon/ReactCommon.podspec +1 -1
  70. package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
  71. package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -1
  72. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  73. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  74. package/ReactCommon/hermes/executor/React-jsitracing.podspec +1 -1
  75. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +1 -1
  76. package/ReactCommon/jsi/React-jsi.podspec +1 -1
  77. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
  78. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +7 -3
  79. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -1
  80. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +1 -5
  81. package/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec +1 -1
  82. package/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec +1 -1
  83. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -1
  84. package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -1
  85. package/ReactCommon/logger/React-logger.podspec +1 -1
  86. package/ReactCommon/oscompat/React-oscompat.podspec +1 -1
  87. package/ReactCommon/react/debug/React-debug.podspec +1 -1
  88. package/ReactCommon/react/debug/redbox/JscSafeUrl.h +1 -1
  89. package/ReactCommon/react/featureflags/React-featureflags.podspec +1 -1
  90. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +1 -1
  91. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +1 -1
  92. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +1 -1
  93. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +1 -1
  94. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -1
  95. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -1
  96. package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +1 -1
  97. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -1
  98. package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +1 -1
  99. package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +1 -1
  100. package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +1 -1
  101. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -1
  102. package/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec +1 -1
  103. package/ReactCommon/react/networking/React-networking.podspec +1 -1
  104. package/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec +1 -1
  105. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -1
  106. package/ReactCommon/react/renderer/animated/internal/primitives.h +1 -1
  107. package/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +1 -1
  108. package/ReactCommon/react/renderer/css/React-renderercss.podspec +1 -1
  109. package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +1 -1
  110. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -1
  111. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -1
  112. package/ReactCommon/react/renderer/mounting/internal/CullingContext.cpp +1 -1
  113. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -1
  114. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -1
  115. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -1
  116. package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +1 -1
  117. package/ReactCommon/react/timing/React-timing.podspec +1 -1
  118. package/ReactCommon/react/utils/React-utils.podspec +1 -1
  119. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
  120. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
  121. package/ReactCommon/yoga/Yoga.podspec +2 -2
  122. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +2 -0
  123. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +11 -7
  124. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +2 -0
  125. package/ReactCommon/yoga/yoga/node/Node.cpp +6 -1
  126. package/package.json +10 -10
  127. package/scripts/cocoapods/rncore.rb +26 -8
  128. package/scripts/cocoapods/rndependencies.rb +26 -5
  129. package/scripts/cocoapods/spm.rb +1 -1
  130. package/scripts/cocoapods/utils.rb +2 -2
  131. package/scripts/codegen/templates/ReactAppDependencyProvider.podspec.template +1 -1
  132. package/scripts/codegen/templates/ReactCodegen.podspec.template +1 -1
  133. package/scripts/ios-configure-glog.sh +1 -1
  134. package/sdks/hermes-engine/hermes-engine.podspec +6 -1
  135. package/sdks/hermes-engine/hermes-utils.rb +27 -5
  136. package/src/private/types/HostInstance.js +1 -1
  137. package/src/types/globals.d.ts +2 -2
  138. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  139. package/third-party-podspecs/ReactNativeDependencies.podspec +1 -1
  140. package/third-party-podspecs/glog.podspec +1 -1
  141. package/types/public/ReactNativeTypes.d.ts +2 -2
  142. package/types_generated/Libraries/Animated/components/AnimatedScrollView.d.ts +2 -2
  143. package/types_generated/Libraries/Components/Button.d.ts +3 -3
  144. package/types_generated/Libraries/Components/TextInput/TextInput.flow.d.ts +2 -2
  145. package/types_generated/Libraries/Components/View/ViewAccessibility.d.ts +4 -4
  146. package/types_generated/Libraries/Interaction/PanResponder.d.ts +2 -2
  147. package/types_generated/src/private/types/HostInstance.d.ts +2 -2
@@ -553,6 +553,8 @@ bool layoutAbsoluteDescendants(
553
553
  containingNodeAvailableInnerHeight) ||
554
554
  hasNewLayout;
555
555
 
556
+ cleanupContentsNodesRecursively(
557
+ child, /* didPerformLayout */ hasNewLayout);
556
558
  if (hasNewLayout) {
557
559
  child->setHasNewLayout(hasNewLayout);
558
560
  }
@@ -480,7 +480,9 @@ static void zeroOutLayoutRecursively(yoga::Node* const node) {
480
480
  }
481
481
  }
482
482
 
483
- static void cleanupContentsNodesRecursively(yoga::Node* const node) {
483
+ void cleanupContentsNodesRecursively(
484
+ yoga::Node* const node,
485
+ bool didPerformLayout) {
484
486
  if (node->hasContentsChildren()) [[unlikely]] {
485
487
  node->cloneContentsChildrenIfNeeded();
486
488
  for (auto child : node->getChildren()) {
@@ -488,11 +490,13 @@ static void cleanupContentsNodesRecursively(yoga::Node* const node) {
488
490
  child->getLayout() = {};
489
491
  child->setLayoutDimension(0, Dimension::Width);
490
492
  child->setLayoutDimension(0, Dimension::Height);
491
- child->setHasNewLayout(true);
493
+ if (didPerformLayout) {
494
+ child->setHasNewLayout(true);
495
+ }
492
496
  child->setDirty(false);
493
497
  child->cloneChildrenIfNeeded();
494
498
 
495
- cleanupContentsNodesRecursively(child);
499
+ cleanupContentsNodesRecursively(child, didPerformLayout);
496
500
  }
497
501
  }
498
502
  }
@@ -1317,7 +1321,7 @@ static void calculateLayoutImpl(
1317
1321
 
1318
1322
  // Clean and update all display: contents nodes with a direct path to the
1319
1323
  // current node as they will not be traversed
1320
- cleanupContentsNodesRecursively(node);
1324
+ cleanupContentsNodesRecursively(node, performLayout);
1321
1325
  return;
1322
1326
  }
1323
1327
 
@@ -1335,7 +1339,7 @@ static void calculateLayoutImpl(
1335
1339
 
1336
1340
  // Clean and update all display: contents nodes with a direct path to the
1337
1341
  // current node as they will not be traversed
1338
- cleanupContentsNodesRecursively(node);
1342
+ cleanupContentsNodesRecursively(node, performLayout);
1339
1343
  return;
1340
1344
  }
1341
1345
 
@@ -1353,7 +1357,7 @@ static void calculateLayoutImpl(
1353
1357
  ownerHeight)) {
1354
1358
  // Clean and update all display: contents nodes with a direct path to the
1355
1359
  // current node as they will not be traversed
1356
- cleanupContentsNodesRecursively(node);
1360
+ cleanupContentsNodesRecursively(node, /* didPerformLayout */ false);
1357
1361
  return;
1358
1362
  }
1359
1363
 
@@ -1365,7 +1369,7 @@ static void calculateLayoutImpl(
1365
1369
 
1366
1370
  // Clean and update all display: contents nodes with a direct path to the
1367
1371
  // current node as they will not be traversed
1368
- cleanupContentsNodesRecursively(node);
1372
+ cleanupContentsNodesRecursively(node, performLayout);
1369
1373
 
1370
1374
  // STEP 1: CALCULATE VALUES FOR REMAINDER OF ALGORITHM
1371
1375
  const FlexDirection mainAxis =
@@ -35,4 +35,6 @@ bool calculateLayoutInternal(
35
35
  uint32_t depth,
36
36
  uint32_t generationCount);
37
37
 
38
+ void cleanupContentsNodesRecursively(yoga::Node* node, bool didPerformLayout);
39
+
38
40
  } // namespace facebook::yoga
@@ -392,7 +392,12 @@ void Node::cloneChildrenIfNeeded() {
392
392
  child = resolveRef(config_->cloneNode(child, this, i));
393
393
  child->setOwner(this);
394
394
 
395
- if (child->hasContentsChildren()) [[unlikely]] {
395
+ if (child->style().display() == Display::Contents) [[unlikely]] {
396
+ // The contents node's children are treated as children of the
397
+ // contents node's parent for layout purposes, so they need
398
+ // to be cloned as well.
399
+ child->cloneChildrenIfNeeded();
400
+ } else if (child->hasContentsChildren()) [[unlikely]] {
396
401
  child->cloneContentsChildrenIfNeeded();
397
402
  }
398
403
  }
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.83.9",
3
+ "version": "0.83.10",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "git+https://github.com/facebook/react-native.git",
8
+ "url": "git+https://github.com/react/react-native.git",
9
9
  "directory": "packages/react-native"
10
10
  },
11
11
  "homepage": "https://reactnative.dev/",
@@ -19,7 +19,7 @@
19
19
  "app-framework",
20
20
  "mobile-development"
21
21
  ],
22
- "bugs": "https://github.com/facebook/react-native/issues",
22
+ "bugs": "https://github.com/react/react-native/issues",
23
23
  "engines": {
24
24
  "node": ">= 20.19.4"
25
25
  },
@@ -160,13 +160,13 @@
160
160
  },
161
161
  "dependencies": {
162
162
  "@jest/create-cache-key-function": "^29.7.0",
163
- "@react-native/assets-registry": "0.83.9",
164
- "@react-native/codegen": "0.83.9",
165
- "@react-native/community-cli-plugin": "0.83.9",
166
- "@react-native/gradle-plugin": "0.83.9",
167
- "@react-native/js-polyfills": "0.83.9",
168
- "@react-native/normalize-colors": "0.83.9",
169
- "@react-native/virtualized-lists": "0.83.9",
163
+ "@react-native/assets-registry": "0.83.10",
164
+ "@react-native/codegen": "0.83.10",
165
+ "@react-native/community-cli-plugin": "0.83.10",
166
+ "@react-native/gradle-plugin": "0.83.10",
167
+ "@react-native/js-polyfills": "0.83.10",
168
+ "@react-native/normalize-colors": "0.83.10",
169
+ "@react-native/virtualized-lists": "0.83.10",
170
170
  "abort-controller": "^3.0.0",
171
171
  "anser": "^1.4.9",
172
172
  "ansi-regex": "^5.0.0",
@@ -386,18 +386,36 @@ class ReactNativeCoreUtils
386
386
  download_rncore_tarball(react_native_path, tarball_url, version, configuration, dsyms)
387
387
  end
388
388
 
389
+ def self.shared_cache_dir()
390
+ return File.join(Dir.home, "Library", "Caches", "ReactNative")
391
+ end
392
+
389
393
  def self.download_rncore_tarball(react_native_path, tarball_url, version, configuration, dsyms = false)
390
- destination_path = configuration == nil ?
391
- "#{artifacts_dir()}/reactnative-core-#{version}#{dsyms ? "-dSYM" : ""}.tar.gz" :
392
- "#{artifacts_dir()}/reactnative-core-#{version}#{dsyms ? "-dSYM" : ""}-#{configuration}.tar.gz"
394
+ filename = configuration == nil ?
395
+ "reactnative-core-#{version}#{dsyms ? "-dSYM" : ""}.tar.gz" :
396
+ "reactnative-core-#{version}#{dsyms ? "-dSYM" : ""}-#{configuration}.tar.gz"
397
+ destination_path = "#{artifacts_dir()}/#{filename}"
398
+
399
+ if File.exist?(destination_path)
400
+ rncore_log("Tarball #{filename} already exists in Pods. Skipping download.")
401
+ return destination_path
402
+ end
393
403
 
394
- unless File.exist?(destination_path)
404
+ `mkdir -p "#{artifacts_dir()}"`
405
+
406
+ cached_path = File.join(shared_cache_dir(), filename)
407
+ if File.exist?(cached_path)
408
+ rncore_log("Cache hit: copying #{filename} from shared cache (#{shared_cache_dir()})")
409
+ FileUtils.cp(cached_path, destination_path)
410
+ else
411
+ rncore_log("Cache miss: downloading #{filename} from #{tarball_url}")
395
412
  # Download to a temporary file first so we don't cache incomplete downloads.
396
- rncore_log("Downloading ReactNativeCore-prebuilt #{dsyms ? "dSYMs " : ""}#{configuration ? configuration.to_s : ""} tarball from #{tarball_url} to #{Pathname.new(destination_path).relative_path_from(Pathname.pwd).to_s}")
397
413
  tmp_file = "#{artifacts_dir()}/reactnative-core.download"
398
- `mkdir -p "#{artifacts_dir()}" && curl "#{tarball_url}" -Lo "#{tmp_file}" && mv "#{tmp_file}" "#{destination_path}"`
399
- else
400
- rncore_log("Using downloaded ReactNativeCore-prebuilt #{dsyms ? "dSYMs " : ""}#{configuration ? configuration.to_s : ""} tarball at #{Pathname.new(destination_path).relative_path_from(Pathname.pwd).to_s}")
414
+ `curl "#{tarball_url}" -Lo "#{tmp_file}" && mv "#{tmp_file}" "#{destination_path}"`
415
+ # Save to shared cache for future use
416
+ `mkdir -p "#{shared_cache_dir()}"`
417
+ FileUtils.cp(destination_path, cached_path)
418
+ rncore_log("Saved #{filename} to shared cache (#{shared_cache_dir()})")
401
419
  end
402
420
 
403
421
  return destination_path
@@ -232,15 +232,36 @@ class ReactNativeDependenciesUtils
232
232
  return {:http => url}
233
233
  end
234
234
 
235
+ def self.shared_cache_dir()
236
+ return File.join(Dir.home, "Library", "Caches", "ReactNative")
237
+ end
238
+
235
239
  def self.download_rndeps_tarball(react_native_path, tarball_url, version, configuration)
236
- destination_path = configuration == nil ?
237
- "#{artifacts_dir()}/reactnative-dependencies-#{version}.tar.gz" :
238
- "#{artifacts_dir()}/reactnative-dependencies-#{version}-#{configuration}.tar.gz"
240
+ filename = configuration == nil ?
241
+ "reactnative-dependencies-#{version}.tar.gz" :
242
+ "reactnative-dependencies-#{version}-#{configuration}.tar.gz"
243
+ destination_path = "#{artifacts_dir()}/#{filename}"
244
+
245
+ if File.exist?(destination_path)
246
+ rndeps_log("Tarball #{filename} already exists in Pods. Skipping download.")
247
+ return destination_path
248
+ end
239
249
 
240
- unless File.exist?(destination_path)
250
+ `mkdir -p "#{artifacts_dir()}"`
251
+
252
+ cached_path = File.join(shared_cache_dir(), filename)
253
+ if File.exist?(cached_path)
254
+ rndeps_log("Cache hit: copying #{filename} from shared cache (#{shared_cache_dir()})")
255
+ FileUtils.cp(cached_path, destination_path)
256
+ else
257
+ rndeps_log("Cache miss: downloading #{filename} from #{tarball_url}")
241
258
  # Download to a temporary file first so we don't cache incomplete downloads.
242
259
  tmp_file = "#{artifacts_dir()}/reactnative-dependencies.download"
243
- `mkdir -p "#{artifacts_dir()}" && curl "#{tarball_url}" -Lo "#{tmp_file}" && mv "#{tmp_file}" "#{destination_path}"`
260
+ `curl "#{tarball_url}" -Lo "#{tmp_file}" && mv "#{tmp_file}" "#{destination_path}"`
261
+ # Save to shared cache for future use
262
+ `mkdir -p "#{shared_cache_dir()}"`
263
+ FileUtils.cp(destination_path, cached_path)
264
+ rndeps_log("Saved #{filename} to shared cache (#{shared_cache_dir()})")
244
265
  end
245
266
 
246
267
  return destination_path
@@ -45,7 +45,7 @@ class SPMManager
45
45
  log_warning "If you're using Xcode 15 or earlier you might need to close and reopen the Xcode workspace"
46
46
  unless ENV["USE_FRAMEWORKS"] == "dynamic"
47
47
  @dependencies_by_pod.each do |pod_name, dependencies|
48
- log_warning "Pod #{pod_name} is using swift package(s) #{dependencies.map{|i| i[:products]}.flatten.uniq.join(", ")} with static linking, this might cause linker errors. Consider using USE_FRAMEWORKS=dynamic, see https://github.com/facebook/react-native/pull/44627#issuecomment-2123119711 for more information"
48
+ log_warning "Pod #{pod_name} is using swift package(s) #{dependencies.map{|i| i[:products]}.flatten.uniq.join(", ")} with static linking, this might cause linker errors. Consider using USE_FRAMEWORKS=dynamic, see https://github.com/react/react-native/pull/44627#issuecomment-2123119711 for more information"
49
49
  end
50
50
  end
51
51
  end
@@ -69,7 +69,7 @@ class ReactNativePodsUtils
69
69
  end
70
70
 
71
71
  def self.turn_off_resource_bundle_react_core(installer)
72
- # this is needed for Xcode 14, see more details here https://github.com/facebook/react-native/issues/34673
72
+ # this is needed for Xcode 14, see more details here https://github.com/react/react-native/issues/34673
73
73
  # we should be able to remove this once CocoaPods catches up to it, see more details here https://github.com/CocoaPods/CocoaPods/issues/11402
74
74
  installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result|
75
75
  if pod_name.to_s == 'React-Core'
@@ -237,7 +237,7 @@ class ReactNativePodsUtils
237
237
  # When installing pods with a yarn alias, yarn creates a fake yarn and node executables
238
238
  # in a temporary folder.
239
239
  # Using `node --print "process.argv[0]";` we are able to retrieve the actual path from which node is running.
240
- # see https://github.com/facebook/react-native/issues/43285 for more info. We've tweaked this slightly.
240
+ # see https://github.com/react/react-native/issues/43285 for more info. We've tweaked this slightly.
241
241
  node_binary = Shellwords.escape(`node --print "process.argv[0]"`.strip)
242
242
  system("echo 'export NODE_BINARY=#{node_binary}' > #{file_path}.local")
243
243
  end
@@ -4,7 +4,7 @@
4
4
  # LICENSE file in the root directory of this source tree.
5
5
 
6
6
  version = "{react-native-version}"
7
- source = { :git => 'https://github.com/facebook/react-native.git' }
7
+ source = { :git => 'https://github.com/react/react-native.git' }
8
8
  if version == '1000.0.0'
9
9
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
10
10
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -4,7 +4,7 @@
4
4
  # LICENSE file in the root directory of this source tree.
5
5
 
6
6
  version = "{react-native-version}"
7
- source = { :git => 'https://github.com/facebook/react-native.git' }
7
+ source = { :git => 'https://github.com/react/react-native.git' }
8
8
  if version == '1000.0.0'
9
9
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
10
10
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -57,7 +57,7 @@ if [ -h "test-driver" ]; then
57
57
  rm test-driver
58
58
  fi
59
59
 
60
- # Manually disable gflags include to fix issue https://github.com/facebook/react-native/issues/28446
60
+ # Manually disable gflags include to fix issue https://github.com/react/react-native/issues/28446
61
61
  sed -i.bak -e 's/\@ac_cv_have_libgflags\@/0/' src/glog/logging.h.in && rm src/glog/logging.h.in.bak
62
62
  sed -i.bak -e 's/HAVE_LIB_GFLAGS/HAVE_LIB_GFLAGS_DISABLED/' src/config.h.in && rm src/config.h.in.bak
63
63
 
@@ -4,6 +4,7 @@
4
4
  # LICENSE file in the root directory of this source tree.
5
5
 
6
6
  require "json"
7
+ require "pathname"
7
8
  require_relative "./hermes-utils.rb"
8
9
 
9
10
  begin
@@ -74,9 +75,13 @@ Pod::Spec.new do |spec|
74
75
  hermes_compiler_path = File.dirname(Pod::Executable.execute_command('node', ['-p',
75
76
  "require.resolve(\"hermes-compiler\", {paths: [\"#{react_native_path}\"]})", __dir__]).strip
76
77
  )
78
+ hermesc_path = File.join(hermes_compiler_path, 'hermesc', 'osx-bin', 'hermesc')
79
+
80
+ pods_root = Pod::Config.instance.sandbox.root
81
+ relative_hermesc = Pathname.new(hermesc_path).relative_path_from(pods_root)
77
82
 
78
83
  spec.user_target_xcconfig = {
79
- 'HERMES_CLI_PATH' => "#{hermes_compiler_path}/hermesc/osx-bin/hermesc"
84
+ 'HERMES_CLI_PATH' => "$(PODS_ROOT)/#{relative_hermesc}"
80
85
  }
81
86
  end
82
87
 
@@ -236,16 +236,38 @@ def download_stable_hermes(react_native_path, version, configuration)
236
236
  download_hermes_tarball(react_native_path, tarball_url, version, configuration)
237
237
  end
238
238
 
239
+ def shared_cache_dir()
240
+ return File.join(Dir.home, "Library", "Caches", "ReactNative")
241
+ end
242
+
239
243
  def download_hermes_tarball(react_native_path, tarball_url, version, configuration)
240
- destination_path = configuration == nil ?
241
- "#{artifacts_dir()}/hermes-ios-#{version}.tar.gz" :
242
- "#{artifacts_dir()}/hermes-ios-#{version}-#{configuration}.tar.gz"
244
+ filename = configuration == nil ?
245
+ "hermes-ios-#{version}.tar.gz" :
246
+ "hermes-ios-#{version}-#{configuration}.tar.gz"
247
+ destination_path = "#{artifacts_dir()}/#{filename}"
248
+
249
+ if File.exist?(destination_path)
250
+ hermes_log("Tarball #{filename} already exists in Pods. Skipping download.", :info)
251
+ return destination_path
252
+ end
243
253
 
244
- unless File.exist?(destination_path)
254
+ `mkdir -p "#{artifacts_dir()}"`
255
+
256
+ cached_path = File.join(shared_cache_dir(), filename)
257
+ if File.exist?(cached_path)
258
+ hermes_log("Cache hit: copying #{filename} from shared cache (#{shared_cache_dir()})", :info)
259
+ FileUtils.cp(cached_path, destination_path)
260
+ else
261
+ hermes_log("Cache miss: downloading #{filename} from #{tarball_url}", :info)
245
262
  # Download to a temporary file first so we don't cache incomplete downloads.
246
263
  tmp_file = "#{artifacts_dir()}/hermes-ios.download"
247
- `mkdir -p "#{artifacts_dir()}" && curl "#{tarball_url}" -Lo "#{tmp_file}" && mv "#{tmp_file}" "#{destination_path}"`
264
+ `curl "#{tarball_url}" -Lo "#{tmp_file}" && mv "#{tmp_file}" "#{destination_path}"`
265
+ # Save to shared cache for future use
266
+ `mkdir -p "#{shared_cache_dir()}"`
267
+ FileUtils.cp(destination_path, cached_path)
268
+ hermes_log("Saved #{filename} to shared cache (#{shared_cache_dir()})", :info)
248
269
  end
270
+
249
271
  return destination_path
250
272
  end
251
273
 
@@ -42,7 +42,7 @@ export type MeasureLayoutOnSuccessCallback = (
42
42
  * Note, however, that they are not available on composite components that aren't directly backed by a
43
43
  * native view. This will generally include most components that you define in your own app.
44
44
  * For more information, see [Direct Manipulation](https://reactnative.dev/docs/the-new-architecture/direct-manipulation-new-architecture).
45
- * @see https://github.com/facebook/react-native/blob/master/Libraries/Renderer/shims/ReactNativeTypes.js#L87
45
+ * @see https://github.com/react/react-native/blob/master/Libraries/Renderer/shims/ReactNativeTypes.js#L87
46
46
  */
47
47
  export interface LegacyHostInstanceMethods {
48
48
  /**
@@ -41,7 +41,7 @@ declare global {
41
41
  *
42
42
  * global.XMLHttpRequest = global.originalXMLHttpRequest;
43
43
  *
44
- * @see https://github.com/facebook/react-native/issues/934
44
+ * @see https://github.com/react/react-native/issues/934
45
45
  */
46
46
  const originalXMLHttpRequest: any;
47
47
 
@@ -237,7 +237,7 @@ declare global {
237
237
  /**
238
238
  * React Native's implementation of fetch allows this syntax for uploading files from
239
239
  * local filesystem.
240
- * See https://github.com/facebook/react-native/blob/master/Libraries/Network/convertRequestBody.js#L22
240
+ * See https://github.com/react/react-native/blob/master/Libraries/Network/convertRequestBody.js#L22
241
241
  */
242
242
  interface _SourceUri {
243
243
  uri: string;
@@ -73,7 +73,7 @@ Pod::Spec.new do |spec|
73
73
  'folly/portability/*.h',
74
74
  'folly/system/*.h',
75
75
 
76
- # workaround for https://github.com/facebook/react-native/issues/14326
76
+ # workaround for https://github.com/react/react-native/issues/14326
77
77
  spec.preserve_paths = 'folly/*.h',
78
78
  'folly/algorithm/simd/*.h',
79
79
  'folly/algorithm/simd/detail/*.h',
@@ -28,7 +28,7 @@ Pod::Spec.new do |spec|
28
28
  spec.version = version
29
29
  spec.summary = 'React Native Dependencies'
30
30
  spec.description = 'ReactNativeDependencies is a podspec that contains all the third-party dependencies of React Native.'
31
- spec.homepage = 'https://github.com/facebook/react-native'
31
+ spec.homepage = 'https://github.com/react/react-native'
32
32
  spec.license = package['license']
33
33
  spec.authors = 'meta'
34
34
  spec.platforms = min_supported_versions
@@ -27,7 +27,7 @@ Pod::Spec.new do |spec|
27
27
  'src/symbolize.cc',
28
28
  'src/utilities.cc',
29
29
  'src/vlog_is_on.cc'
30
- # workaround for https://github.com/facebook/react-native/issues/14326
30
+ # workaround for https://github.com/react/react-native/issues/14326
31
31
  spec.preserve_paths = 'src/*.h',
32
32
  'src/base/*.h'
33
33
  spec.exclude_files = "src/windows/**/*"
@@ -40,7 +40,7 @@ export type MeasureLayoutOnSuccessCallback = (
40
40
  * Note, however, that they are not available on composite components that aren't directly backed by a
41
41
  * native view. This will generally include most components that you define in your own app.
42
42
  * For more information, see [Direct Manipulation](https://reactnative.dev/docs/the-new-architecture/direct-manipulation-new-architecture).
43
- * @see https://github.com/facebook/react-native/blob/master/Libraries/Renderer/shims/ReactNativeTypes.js#L87
43
+ * @see https://github.com/react/react-native/blob/master/Libraries/Renderer/shims/ReactNativeTypes.js#L87
44
44
  */
45
45
  export interface NativeMethods {
46
46
  /**
@@ -123,7 +123,7 @@ export type NativeMethodsMixinType = NativeMethods;
123
123
  /**
124
124
  * Represents a native component, such as those returned from `requireNativeComponent`.
125
125
  *
126
- * @see https://github.com/facebook/react-native/blob/v0.62.0-rc.5/Libraries/Renderer/shims/ReactNativeTypes.js
126
+ * @see https://github.com/react/react-native/blob/v0.62.0-rc.5/Libraries/Renderer/shims/ReactNativeTypes.js
127
127
  *
128
128
  * @todo This should eventually be defined as an AbstractComponent, but that
129
129
  * should first be introduced in the React typings.
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<6770958805f9935f28150e371b774f6c>>
7
+ * @generated SignedSource<<ccca8e1da0d30d12a67984ccadfcc654>>
8
8
  *
9
9
  * This file was translated from Flow by scripts/js-api/build-types/index.js.
10
10
  * Original file: packages/react-native/Libraries/Animated/components/AnimatedScrollView.js
@@ -16,7 +16,7 @@ import * as React from "react";
16
16
  type AnimatedScrollViewInstance = React.ComponentRef<typeof ScrollView>;
17
17
  declare const AnimatedScrollView: AnimatedComponentType<ScrollViewProps, AnimatedScrollViewInstance>;
18
18
  /**
19
- * @see https://github.com/facebook/react-native/commit/b8c8562
19
+ * @see https://github.com/react/react-native/commit/b8c8562
20
20
  */
21
21
  declare const $$AnimatedScrollView: typeof AnimatedScrollView;
22
22
  declare type $$AnimatedScrollView = typeof $$AnimatedScrollView;
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<e274c506268d59995c9056015fe6b381>>
7
+ * @generated SignedSource<<7a4f5715c04a60392f2e9f86b0da8b94>>
8
8
  *
9
9
  * This file was translated from Flow by scripts/js-api/build-types/index.js.
10
10
  * Original file: packages/react-native/Libraries/Components/Button.js
@@ -92,7 +92,7 @@ export type ButtonProps = Readonly<{
92
92
  accessibilityLabel?: string | undefined;
93
93
  /**
94
94
  * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel
95
- * https://github.com/facebook/react-native/issues/34424
95
+ * https://github.com/react/react-native/issues/34424
96
96
  */
97
97
  "aria-label"?: string | undefined;
98
98
  /**
@@ -140,7 +140,7 @@ export type ButtonProps = Readonly<{
140
140
  [button:examples].
141
141
 
142
142
  [button:source]:
143
- https://github.com/facebook/react-native/blob/HEAD/Libraries/Components/Button.js
143
+ https://github.com/react/react-native/blob/HEAD/Libraries/Components/Button.js
144
144
 
145
145
  [button:examples]:
146
146
  https://js.coach/?menu%5Bcollections%5D=React%20Native&page=1&query=button
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<689652b3b22a8a19fec5e1e9cf40117b>>
7
+ * @generated SignedSource<<a8e95754ffbf8677e05e63df239faf23>>
8
8
  *
9
9
  * This file was translated from Flow by scripts/js-api/build-types/index.js.
10
10
  * Original file: packages/react-native/Libraries/Components/TextInput/TextInput.flow.js
@@ -719,7 +719,7 @@ type TextInputBaseProps = Readonly<{
719
719
  * - `borderBottomRightRadius`
720
720
  * - `borderBottomLeftRadius`
721
721
  *
722
- * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)
722
+ * see [Issue#7070](https://github.com/react/react-native/issues/7070)
723
723
  * for more detail.
724
724
  *
725
725
  * [Styles](docs/style.html)
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<a530b14853373cfdc40ec5a2df7cb8a0>>
7
+ * @generated SignedSource<<d632f414daf92e9a1de00d6d4e2f1ffe>>
8
8
  *
9
9
  * This file was translated from Flow by scripts/js-api/build-types/index.js.
10
10
  * Original file: packages/react-native/Libraries/Components/View/ViewAccessibility.js
@@ -223,7 +223,7 @@ export type AccessibilityProps = Readonly<Omit<AccessibilityPropsAndroid, keyof
223
223
  accessibilityHint?: string | undefined;
224
224
  /**
225
225
  * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel
226
- * https://github.com/facebook/react-native/issues/34424
226
+ * https://github.com/react/react-native/issues/34424
227
227
  */
228
228
  "aria-label"?: string | undefined;
229
229
  /**
@@ -295,7 +295,7 @@ export type AccessibilityProps = Readonly<Omit<AccessibilityPropsAndroid, keyof
295
295
  accessibilityHint?: string | undefined;
296
296
  /**
297
297
  * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel
298
- * https://github.com/facebook/react-native/issues/34424
298
+ * https://github.com/react/react-native/issues/34424
299
299
  */
300
300
  "aria-label"?: string | undefined;
301
301
  /**
@@ -367,7 +367,7 @@ export type AccessibilityProps = Readonly<Omit<AccessibilityPropsAndroid, keyof
367
367
  accessibilityHint?: string | undefined;
368
368
  /**
369
369
  * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel
370
- * https://github.com/facebook/react-native/issues/34424
370
+ * https://github.com/react/react-native/issues/34424
371
371
  */
372
372
  "aria-label"?: string | undefined;
373
373
  /**
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<6c3f52d452fe844d027bee1f6d755fa1>>
7
+ * @generated SignedSource<<d55e74e2efd5ee21a5a6947b85b1c69f>>
8
8
  *
9
9
  * This file was translated from Flow by scripts/js-api/build-types/index.js.
10
10
  * Original file: packages/react-native/Libraries/Interaction/PanResponder.js
@@ -103,7 +103,7 @@ import type { GestureResponderEvent } from "../Types/CoreEventTypes";
103
103
  * ### Working Example
104
104
  *
105
105
  * To see it in action, try the
106
- * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/HEAD/packages/rn-tester/js/examples/PanResponder/PanResponderExample.js)
106
+ * [PanResponder example in RNTester](https://github.com/react/react-native/blob/HEAD/packages/rn-tester/js/examples/PanResponder/PanResponderExample.js)
107
107
  */
108
108
 
109
109
  export type PanResponderGestureState = {
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<04d83f009e651f396d99029acaee044b>>
7
+ * @generated SignedSource<<6bde5bbe9e632ac3407d08e6936ee032>>
8
8
  *
9
9
  * This file was translated from Flow by scripts/js-api/build-types/index.js.
10
10
  * Original file: packages/react-native/src/private/types/HostInstance.js
@@ -22,7 +22,7 @@ export type MeasureLayoutOnSuccessCallback = (left: number, top: number, width:
22
22
  * Note, however, that they are not available on composite components that aren't directly backed by a
23
23
  * native view. This will generally include most components that you define in your own app.
24
24
  * For more information, see [Direct Manipulation](https://reactnative.dev/docs/the-new-architecture/direct-manipulation-new-architecture).
25
- * @see https://github.com/facebook/react-native/blob/master/Libraries/Renderer/shims/ReactNativeTypes.js#L87
25
+ * @see https://github.com/react/react-native/blob/master/Libraries/Renderer/shims/ReactNativeTypes.js#L87
26
26
  */
27
27
  export interface LegacyHostInstanceMethods {
28
28
  /**