@depup/react-native 0.86.2-depup.0 → 0.87.1-depup.0

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 (1283) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +19 -24
  2. package/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec +1 -1
  3. package/Libraries/Alert/Alert.js +38 -1
  4. package/Libraries/Animated/AnimatedEvent.js +1 -1
  5. package/Libraries/Animated/AnimatedExports.js +22 -0
  6. package/Libraries/Animated/AnimatedExports.js.flow +1 -1
  7. package/Libraries/Animated/AnimatedImplementation.js +126 -5
  8. package/Libraries/Animated/Easing.js +4 -3
  9. package/Libraries/Animated/NativeAnimatedAllowlist.js +37 -0
  10. package/Libraries/Animated/animations/Animation.js +14 -5
  11. package/Libraries/Animated/animations/DecayAnimation.js +1 -0
  12. package/Libraries/Animated/animations/SpringAnimation.js +1 -0
  13. package/Libraries/Animated/animations/TimingAnimation.js +9 -0
  14. package/Libraries/Animated/components/AnimatedScrollView.js +1 -1
  15. package/Libraries/Animated/createAnimatedComponent.js +3 -3
  16. package/Libraries/Animated/nodes/AnimatedColor.js +8 -8
  17. package/Libraries/Animated/nodes/AnimatedInterpolation.js +106 -0
  18. package/Libraries/Animated/nodes/AnimatedNode.js +1 -1
  19. package/Libraries/Animated/nodes/AnimatedProps.js +27 -3
  20. package/Libraries/Animated/nodes/AnimatedValue.js +10 -2
  21. package/Libraries/Animated/nodes/AnimatedValueXY.js +2 -2
  22. package/Libraries/AppDelegate/RCTAppDelegate.h +5 -9
  23. package/Libraries/AppDelegate/RCTAppDelegate.mm +0 -20
  24. package/Libraries/AppDelegate/RCTAppSetupUtils.h +0 -18
  25. package/Libraries/AppDelegate/RCTAppSetupUtils.mm +0 -78
  26. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +18 -21
  27. package/Libraries/AppDelegate/RCTReactNativeFactory.h +5 -41
  28. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +0 -82
  29. package/Libraries/AppDelegate/RCTRootViewFactory.h +4 -1
  30. package/Libraries/AppDelegate/RCTRootViewFactory.mm +3 -101
  31. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +2 -1
  32. package/Libraries/AppState/AppState.d.ts +4 -1
  33. package/Libraries/AppState/AppState.js +32 -17
  34. package/Libraries/BatchedBridge/MessageQueue.js +42 -51
  35. package/Libraries/BatchedBridge/NativeModules.js +7 -0
  36. package/Libraries/Blob/Blob.js +7 -1
  37. package/Libraries/Blob/FileReader.js +6 -0
  38. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  39. package/Libraries/Blob/URLSearchParams.js.flow +1 -1
  40. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +20 -9
  41. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -43
  42. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +59 -49
  43. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -2
  44. package/Libraries/Components/Button.js +98 -183
  45. package/Libraries/Components/Clipboard/Clipboard.js +5 -0
  46. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -2
  47. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +8 -69
  48. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +10 -1
  49. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +2 -0
  50. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +26 -31
  51. package/Libraries/Components/Keyboard/Keyboard.js +23 -60
  52. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +15 -7
  53. package/Libraries/Components/Pressable/Pressable.js +39 -17
  54. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +5 -6
  55. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +4 -4
  56. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  57. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +17 -0
  58. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  59. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -2
  60. package/Libraries/Components/RefreshControl/RefreshControl.js +40 -50
  61. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -2
  62. package/Libraries/Components/SafeAreaView/SafeAreaView.js +8 -8
  63. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -2
  64. package/Libraries/Components/ScrollView/ScrollView.d.ts +55 -43
  65. package/Libraries/Components/ScrollView/ScrollView.js +205 -118
  66. package/Libraries/Components/ScrollView/ScrollViewCommands.js +4 -4
  67. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  68. package/Libraries/Components/StatusBar/StatusBar.d.ts +7 -54
  69. package/Libraries/Components/StatusBar/StatusBar.js +84 -160
  70. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -2
  71. package/Libraries/Components/Switch/Switch.js +76 -75
  72. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -2
  73. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +1 -1
  74. package/Libraries/Components/TextInput/InputAccessoryView.js +13 -61
  75. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -2
  76. package/Libraries/Components/TextInput/TextInput.d.ts +9 -2
  77. package/Libraries/Components/TextInput/TextInput.flow.js +20 -3
  78. package/Libraries/Components/TextInput/TextInput.js +116 -111
  79. package/Libraries/Components/TextInput/TextInputNativeCommands.js +3 -3
  80. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +25 -19
  81. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  82. package/Libraries/Components/Touchable/Touchable.js +94 -95
  83. package/Libraries/Components/Touchable/TouchableHighlight.js +45 -112
  84. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +13 -25
  85. package/Libraries/Components/Touchable/TouchableOpacity.js +14 -84
  86. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +4 -3
  87. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -2
  88. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -0
  89. package/Libraries/Components/View/View.js +83 -86
  90. package/Libraries/Components/View/ViewAccessibility.d.ts +12 -2
  91. package/Libraries/Components/View/ViewAccessibility.js +17 -6
  92. package/Libraries/Components/View/ViewNativeComponent.js +4 -6
  93. package/Libraries/Components/View/ViewPropTypes.js +65 -13
  94. package/Libraries/Core/InitializeCore.js +9 -1
  95. package/Libraries/Core/ReactFiberErrorDialog.js +3 -3
  96. package/Libraries/Core/ReactNativeVersion.js +2 -2
  97. package/Libraries/Core/Timers/JSTimers.js +53 -52
  98. package/Libraries/Core/setUpGlobals.js +9 -4
  99. package/Libraries/Core/setUpNavigator.js +7 -2
  100. package/Libraries/Core/setUpReactDevTools.js +0 -118
  101. package/Libraries/Core/setUpXHR.js +6 -2
  102. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  103. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -2
  104. package/Libraries/EventEmitter/NativeEventEmitter.js +29 -0
  105. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +7 -7
  106. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +1 -1
  107. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +3 -0
  108. package/Libraries/FBLazyVector/FBLazyVector.podspec +1 -1
  109. package/Libraries/Image/AssetSourceResolver.js +18 -27
  110. package/Libraries/Image/Image.android.js +13 -2
  111. package/Libraries/Image/Image.ios.js +3 -1
  112. package/Libraries/Image/ImageBackground.js +30 -18
  113. package/Libraries/Image/ImageProps.js +116 -117
  114. package/Libraries/Image/ImageSource.d.ts +1 -1
  115. package/Libraries/Image/ImageSource.js +9 -9
  116. package/Libraries/Image/ImageSourceUtils.js +10 -7
  117. package/Libraries/Image/ImageTypes.flow.js +2 -0
  118. package/Libraries/Image/ImageViewNativeComponent.js +1 -1
  119. package/Libraries/Image/RCTImageLoader.mm +61 -64
  120. package/Libraries/Image/RCTImageStoreManager.h +0 -2
  121. package/Libraries/Image/React-RCTImage.podspec +1 -1
  122. package/Libraries/Image/RelativeImageStub.js +1 -1
  123. package/Libraries/Image/resolveAssetSource.js +1 -1
  124. package/Libraries/Interaction/PanResponder.js +102 -97
  125. package/Libraries/LayoutAnimation/LayoutAnimation.js +22 -6
  126. package/Libraries/Linking/Linking.js +24 -23
  127. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  128. package/Libraries/Lists/FlatList.d.ts +6 -17
  129. package/Libraries/Lists/FlatList.js +7 -8
  130. package/Libraries/Lists/SectionList.js +7 -0
  131. package/Libraries/Lists/VirtualizedList.js +3 -0
  132. package/Libraries/Lists/VirtualizedSectionList.js +4 -0
  133. package/Libraries/LogBox/LogBox.js +3 -3
  134. package/Libraries/LogBox/UI/AnsiHighlight.js +2 -1
  135. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +2 -2
  136. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +4 -1
  137. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +3 -1
  138. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +8 -2
  139. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +9 -2
  140. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +17 -4
  141. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +3 -1
  142. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -1
  143. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -0
  144. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +4 -2
  145. package/Libraries/LogBox/UI/LogBoxMessage.js +18 -5
  146. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +4 -1
  147. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +1 -0
  148. package/Libraries/LogBox/UI/LogBoxStyle.js +0 -4
  149. package/Libraries/Modal/Modal.d.ts +5 -4
  150. package/Libraries/Modal/Modal.js +71 -37
  151. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -2
  152. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  153. package/Libraries/NativeComponent/BaseViewConfig.android.js +17 -0
  154. package/Libraries/NativeComponent/ViewConfig.js +3 -3
  155. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
  156. package/Libraries/Network/RCTHTTPRequestHandler.h +1 -1
  157. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  158. package/Libraries/Performance/Systrace.js +36 -0
  159. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +4 -2
  160. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +29 -17
  161. package/Libraries/Pressability/Pressability.js +1 -1
  162. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +4 -0
  163. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  164. package/Libraries/ReactNative/AppContainer-dev.js +3 -1
  165. package/Libraries/ReactNative/AppRegistry.flow.js +1 -0
  166. package/Libraries/ReactNative/AppRegistry.js +15 -11
  167. package/Libraries/ReactNative/AppRegistryImpl.js +57 -11
  168. package/Libraries/ReactNative/DisplayMode.js +1 -1
  169. package/Libraries/ReactNative/FabricUIManager.js +29 -26
  170. package/Libraries/ReactNative/I18nManager.js +20 -0
  171. package/Libraries/ReactNative/UIManager.js +53 -0
  172. package/Libraries/ReactNative/renderApplication.js +1 -1
  173. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +5 -126
  174. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +5 -41
  175. package/Libraries/Renderer/README.md +2 -2
  176. package/Libraries/Renderer/shims/ReactNativeTypes.js +36 -36
  177. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +4 -4
  178. package/Libraries/Required/RCTRequired.podspec +1 -1
  179. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  180. package/Libraries/Settings/Settings.ios.js +22 -0
  181. package/Libraries/Share/Share.js +25 -28
  182. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +6 -0
  183. package/Libraries/StyleSheet/StyleSheet.js +42 -2
  184. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  185. package/Libraries/StyleSheet/StyleSheetExports.js +7 -5
  186. package/Libraries/StyleSheet/StyleSheetExports.js.flow +1 -1
  187. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +24 -3
  188. package/Libraries/StyleSheet/StyleSheetTypes.js +34 -6
  189. package/Libraries/StyleSheet/flattenStyle.js +28 -13
  190. package/Libraries/StyleSheet/private/_TransformStyle.js +16 -14
  191. package/Libraries/Text/React-RCTText.podspec +1 -1
  192. package/Libraries/Text/Text.js +12 -9
  193. package/Libraries/Text/TextEffectNativeComponent.js +31 -0
  194. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +0 -1
  195. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +0 -1
  196. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +0 -1
  197. package/Libraries/Text/TextProps.js +59 -93
  198. package/Libraries/Text/requireNativeTextEffect.js +28 -0
  199. package/Libraries/TurboModule/RCTExport.js +1 -1
  200. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  201. package/Libraries/Types/CoreEventTypes.d.ts +8 -0
  202. package/Libraries/Types/CoreEventTypes.js +32 -29
  203. package/Libraries/Types/UIManagerJSInterface.js +2 -2
  204. package/Libraries/Utilities/Appearance.d.ts +32 -17
  205. package/Libraries/Utilities/Appearance.js +35 -18
  206. package/Libraries/Utilities/BackHandler.android.js +13 -28
  207. package/Libraries/Utilities/BackHandler.js.flow +18 -2
  208. package/Libraries/Utilities/DevSettings.js +8 -1
  209. package/Libraries/Utilities/Dimensions.js +18 -12
  210. package/Libraries/Utilities/PixelRatio.js +5 -2
  211. package/Libraries/Utilities/Platform.js.flow +4 -0
  212. package/Libraries/Utilities/PlatformTypes.js +77 -0
  213. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  214. package/Libraries/Utilities/differ/deepDiffer.js +5 -2
  215. package/Libraries/Utilities/useColorScheme.js +11 -1
  216. package/Libraries/Utilities/useWindowDimensions.js +6 -0
  217. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  218. package/Libraries/Vibration/Vibration.js +14 -11
  219. package/Libraries/vendor/emitter/EventEmitter.js +3 -3
  220. package/README.md +7 -9
  221. package/React/Base/RCTBridge+Private.h +0 -22
  222. package/React/Base/RCTBridge.h +10 -8
  223. package/React/Base/RCTBridge.mm +5 -447
  224. package/React/Base/RCTBridgeDelegate.h +1 -56
  225. package/React/Base/RCTBridgeModule.h +0 -9
  226. package/React/Base/RCTBridgeProxy.h +8 -0
  227. package/React/Base/RCTBridgeProxy.mm +3 -20
  228. package/React/Base/RCTBundleManager.h +0 -3
  229. package/React/Base/RCTBundleManager.m +0 -31
  230. package/React/Base/RCTBundleURLProvider.mm +4 -4
  231. package/React/Base/RCTCallableJSModules.m +0 -18
  232. package/React/Base/RCTConstants.h +1 -0
  233. package/React/Base/RCTConstants.m +1 -0
  234. package/React/Base/RCTConvert.mm +3 -0
  235. package/React/Base/RCTDisplayLink.h +3 -1
  236. package/React/Base/RCTJavaScriptExecutor.h +0 -69
  237. package/React/Base/RCTModuleData.mm +2 -483
  238. package/React/Base/RCTModuleRegistry.m +0 -25
  239. package/React/Base/RCTRootView.m +3 -374
  240. package/React/Base/RCTUtils.h +0 -3
  241. package/React/Base/RCTUtils.mm +17 -27
  242. package/React/Base/RCTVersion.m +2 -2
  243. package/React/Base/RCTViewRegistry.m +1 -29
  244. package/React/Base/Surface/RCTSurface.mm +1 -582
  245. package/React/Base/Surface/RCTSurfaceRootShadowView.m +0 -89
  246. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +0 -1
  247. package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +0 -2
  248. package/React/CoreModules/RCTAlertController.mm +1 -0
  249. package/React/CoreModules/RCTAlertManager.mm +0 -5
  250. package/React/CoreModules/RCTLogBox.mm +0 -11
  251. package/React/CoreModules/RCTLogBoxView.h +0 -3
  252. package/React/CoreModules/RCTLogBoxView.mm +0 -31
  253. package/React/CoreModules/RCTPerfMonitor.mm +0 -2
  254. package/React/CoreModules/RCTStatusBarManager.mm +0 -11
  255. package/React/CoreModules/React-CoreModules.podspec +1 -1
  256. package/React/CxxModule/RCTCxxUtils.h +0 -8
  257. package/React/CxxModule/RCTCxxUtils.mm +0 -17
  258. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +179 -7
  259. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +100 -2
  260. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +373 -119
  261. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.cpp +1 -1
  262. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ComponentDescriptors.h +1 -1
  263. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.cpp +71 -71
  264. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +96 -96
  265. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.cpp +357 -363
  266. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +211 -212
  267. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/RCTComponentViewHelpers.h +107 -107
  268. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.cpp +1 -1
  269. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/ShadowNodes.h +11 -11
  270. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/States.h +2 -2
  271. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.h +4 -0
  272. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +4 -0
  273. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.h +4 -0
  274. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropCoordinatorAdapter.mm +5 -0
  275. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +0 -1
  276. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +14 -0
  277. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +13 -4
  278. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTVirtualViewContainerState.mm +12 -26
  279. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +39 -4
  280. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +1 -1
  281. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +5 -5
  282. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +0 -18
  283. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +9 -5
  284. package/React/Fabric/RCTSurfacePresenter.mm +86 -5
  285. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +2 -0
  286. package/React/I18n/RCTLocalizedString.mm +38 -2
  287. package/React/Modules/RCTEventEmitter.m +30 -10
  288. package/React/Modules/RCTI18nUtil.m +3 -1
  289. package/React/Modules/RCTUIManager.mm +0 -1501
  290. package/React/React-RCTFBReactNativeSpec.podspec +2 -2
  291. package/React/React-RCTFabric.podspec +1 -1
  292. package/React/Runtime/React-RCTRuntime.podspec +1 -1
  293. package/React/Tests/Text/RCTAttributedTextUtilsTest.mm +27 -0
  294. package/React/Views/RCTModalHostViewController.h +0 -15
  295. package/React/Views/RCTModalHostViewManager.h +0 -24
  296. package/React/Views/RCTShadowView.h +0 -2
  297. package/React/Views/RCTShadowView.m +0 -723
  298. package/React/Views/ScrollView/RCTScrollView.h +0 -81
  299. package/React/Views/ScrollView/RCTScrollableProtocol.h +0 -4
  300. package/React-Core-prebuilt.podspec +45 -17
  301. package/React-Core.podspec +10 -3
  302. package/React.podspec +1 -1
  303. package/ReactAndroid/api/ReactAndroid.api +128 -142
  304. package/ReactAndroid/build.gradle.kts +27 -22
  305. package/ReactAndroid/external-artifacts/build.gradle.kts +49 -0
  306. package/ReactAndroid/gradle.properties +1 -1
  307. package/ReactAndroid/hermes-engine/build.gradle.kts +14 -14
  308. package/ReactAndroid/publish.gradle +5 -5
  309. package/ReactAndroid/src/debug/AndroidManifest.xml +6 -0
  310. package/ReactAndroid/src/debugOptimized/AndroidManifest.xml +22 -0
  311. package/ReactAndroid/src/main/java/com/facebook/react/BaseReactPackage.kt +3 -7
  312. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +4 -2
  313. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +4 -6
  314. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +0 -3
  315. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.kt +212 -0
  316. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +0 -16
  317. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +6 -1
  318. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Arguments.kt +1 -0
  319. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.kt +287 -0
  320. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.kt +16 -0
  321. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +15 -2
  322. package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.kt +1 -3
  323. package/ReactAndroid/src/main/java/com/facebook/react/common/build/ReactBuildConfig.kt +4 -0
  324. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/MapBuffer.kt +50 -2
  325. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/ReadableMapBuffer.kt +63 -22
  326. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/WritableMapBuffer.kt +33 -0
  327. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +4 -12
  328. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactActivityDelegate.kt +14 -10
  329. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +6 -6
  330. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BundleDownloader.kt +50 -47
  331. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +1 -1
  332. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.kt +0 -4
  333. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +10 -10
  334. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LocalNetworkPermissionUtil.kt +49 -0
  335. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/MultipartStreamReader.kt +101 -26
  336. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +40 -38
  337. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -10
  338. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.kt +0 -3
  339. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ViewTransitionSnapshotManager.kt +15 -11
  340. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.kt +4 -4
  341. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.kt +7 -13
  342. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt +160 -187
  343. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SynchronousMountItem.kt +12 -8
  344. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +30 -66
  345. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +51 -111
  346. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +11 -23
  347. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +12 -24
  348. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +57 -123
  349. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +7 -5
  350. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -5
  351. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +11 -23
  352. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlags.kt +0 -24
  353. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +0 -4
  354. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +1 -0
  355. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +2 -2
  356. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.kt +3 -0
  357. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +50 -0
  358. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.kt +8 -4
  359. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +53 -3
  360. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +2 -2
  361. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +2 -77
  362. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
  363. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +2 -2
  364. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +1 -1
  365. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +9 -4
  366. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +4 -19
  367. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +2 -6
  368. package/ReactAndroid/src/main/java/com/facebook/react/touch/ReactInterceptingViewGroup.kt +4 -4
  369. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +47 -10
  370. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.kt +1 -49
  371. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/HasChildPressedStateDelay.kt +29 -0
  372. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.kt +796 -0
  373. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +2 -4
  374. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.kt +27 -27
  375. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.kt +184 -0
  376. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.kt +486 -0
  377. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +8 -8
  378. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ShadowNodeRegistry.kt +2 -2
  379. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/SkewMatrixHelper.kt +200 -0
  380. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.kt +3 -0
  381. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.kt +6 -1
  382. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +2 -2
  383. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIBlock.kt +7 -1
  384. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.kt +645 -0
  385. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.kt +2 -3
  386. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.kt +142 -0
  387. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupManager.kt +0 -10
  388. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +3 -3
  389. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.kt +527 -0
  390. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +3 -1
  391. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +6 -6
  392. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ColorStop.kt +6 -0
  393. package/ReactAndroid/src/main/java/com/facebook/react/util/AndroidVersion.kt +7 -0
  394. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayout.kt +8 -1
  395. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +0 -3
  396. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +2 -0
  397. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +4 -4
  398. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt +2 -0
  399. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.kt +1640 -0
  400. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +6 -6
  401. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.kt +1317 -0
  402. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollViewManager.kt +8 -8
  403. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.kt +1309 -0
  404. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +7 -7
  405. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainer.kt +19 -33
  406. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateClassic.kt +8 -6
  407. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +4 -4
  408. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/generate-nested-scroll-view.js +13 -20
  409. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.kt +7 -1
  410. package/ReactAndroid/src/main/java/com/facebook/react/views/text/MutableSpannableLayout.kt +107 -0
  411. package/ReactAndroid/src/main/java/com/facebook/react/views/text/PreparedLayoutTextView.kt +122 -10
  412. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +92 -2
  413. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.kt +3 -0
  414. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTypefaceUtils.kt +41 -0
  415. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.kt +48 -2
  416. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextDecorationStyle.kt +200 -0
  417. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextEffectRegistry.kt +45 -0
  418. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextEffectSpanFactory.kt +17 -0
  419. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +361 -15
  420. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/AnimatedEffectSpan.kt +37 -0
  421. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/{DrawCommandSpan.kt → CanvasEffectSpan.kt} +3 -4
  422. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/CustomStyleSpan.kt +23 -3
  423. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactStrikethroughSpan.kt +30 -3
  424. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactUnderlineSpan.kt +25 -3
  425. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/SetSpanOperation.kt +1 -1
  426. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/StatefulSpan.kt +21 -0
  427. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TextEffectSpan.kt +19 -0
  428. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/TouchableSpan.kt +29 -0
  429. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +83 -11
  430. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +6 -2
  431. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextSelectionWatcher.kt +1 -1
  432. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +3 -17
  433. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +8 -0
  434. package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +2 -0
  435. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/VirtualViewRenderState.kt +1 -1
  436. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +7 -8
  437. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.kt +45 -0
  438. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaBoxSizing.kt +27 -0
  439. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfig.kt +15 -0
  440. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaConfigJNIBase.kt +6 -0
  441. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDimension.kt +27 -0
  442. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.kt +31 -0
  443. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaEdge.kt +41 -0
  444. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.kt +37 -0
  445. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.kt +27 -0
  446. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaFlexDirection.kt +31 -0
  447. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.kt +33 -0
  448. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGutter.kt +29 -0
  449. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.kt +43 -0
  450. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaLogLevel.kt +39 -0
  451. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaMeasureMode.kt +29 -0
  452. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.kt +16 -0
  453. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.kt +12 -2
  454. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.kt +762 -0
  455. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIFinalizer.kt +4 -4
  456. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeType.kt +27 -0
  457. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaOverflow.kt +29 -0
  458. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaPositionType.kt +29 -0
  459. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.kt +24 -2
  460. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.kt +37 -0
  461. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaWrap.kt +29 -0
  462. package/ReactAndroid/src/main/jni/CMakeLists.txt +1 -2
  463. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +94 -0
  464. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionDelegateImpl.cpp +3 -0
  465. package/ReactAndroid/src/main/jni/react/fabric/AndroidAnimationChoreographer.h +10 -10
  466. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
  467. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +12 -15
  468. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -3
  469. package/ReactAndroid/src/main/jni/react/fabric/test/FabricMountingManagerTest.cpp +159 -0
  470. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +69 -153
  471. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +15 -33
  472. package/ReactAndroid/src/main/jni/react/jni/JReactMarker.cpp +10 -24
  473. package/ReactAndroid/src/main/jni/react/jni/JReactMarker.h +0 -2
  474. package/ReactAndroid/src/main/jni/react/mapbuffer/react/common/mapbuffer/JWritableMapBuffer.cpp +13 -0
  475. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +4 -1
  476. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +8 -0
  477. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +4 -0
  478. package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +5 -0
  479. package/ReactAndroid/src/main/res/views/uimanager/values-zu/strings.xml +3 -0
  480. package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +1 -1
  481. package/ReactApple/RCTAnimatedModuleProvider/React-RCTAnimatedModuleProvider.podspec +63 -0
  482. package/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec +1 -1
  483. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec +1 -1
  484. package/ReactCommon/React-Fabric.podspec +3 -1
  485. package/ReactCommon/React-FabricComponents.podspec +1 -1
  486. package/ReactCommon/React-FabricImage.podspec +1 -1
  487. package/ReactCommon/React-Mapbuffer.podspec +1 -1
  488. package/ReactCommon/ReactCommon.podspec +3 -13
  489. package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
  490. package/ReactCommon/cmake-utils/react-native-flags.cmake +1 -3
  491. package/ReactCommon/cxxreact/CMakeLists.txt +1 -0
  492. package/ReactCommon/cxxreact/ErrorUtils.h +2 -32
  493. package/ReactCommon/cxxreact/Instance.cpp +1 -26
  494. package/ReactCommon/cxxreact/Instance.h +0 -2
  495. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -2
  496. package/ReactCommon/cxxreact/RAMBundleRegistry.cpp +0 -12
  497. package/ReactCommon/cxxreact/RAMBundleRegistry.h +0 -5
  498. package/ReactCommon/cxxreact/React-cxxreact.podspec +3 -2
  499. package/ReactCommon/cxxreact/ReactMarker.cpp +4 -30
  500. package/ReactCommon/cxxreact/ReactMarker.h +38 -21
  501. package/ReactCommon/cxxreact/ReactNativeVersion.h +4 -4
  502. package/ReactCommon/cxxreact/TraceSection.h +1 -1
  503. package/ReactCommon/cxxreact/tests/methodcall.cpp +4 -0
  504. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  505. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +6 -79
  506. package/ReactCommon/hermes/executor/React-jsitracing.podspec +1 -1
  507. package/ReactCommon/jserrorhandler/ErrorUtils.cpp +42 -0
  508. package/{React/CxxLogUtils/RCTDefaultCxxLogFunction.h → ReactCommon/jserrorhandler/ErrorUtils.h} +2 -2
  509. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +1 -1
  510. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +3 -4
  511. package/ReactCommon/jsi/React-jsi.podspec +1 -1
  512. package/ReactCommon/jsi/jsi/hermes-interfaces.h +53 -0
  513. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -2
  514. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +3 -14
  515. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +4 -13
  516. package/ReactCommon/jsinspector-modern/HostAgent.cpp +54 -0
  517. package/ReactCommon/jsinspector-modern/HostTarget.h +0 -7
  518. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +10 -7
  519. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.cpp +4 -1
  520. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -1
  521. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +7 -0
  522. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +20 -0
  523. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -0
  524. package/ReactCommon/jsinspector-modern/SessionState.h +31 -0
  525. package/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec +1 -1
  526. package/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec +1 -1
  527. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +53 -0
  528. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +14 -1
  529. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -1
  530. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +11 -0
  531. package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -1
  532. package/ReactCommon/logger/React-logger.podspec +1 -1
  533. package/ReactCommon/oscompat/React-oscompat.podspec +1 -1
  534. package/ReactCommon/react/bridging/ArrayBuffer.h +180 -0
  535. package/ReactCommon/react/bridging/Bridging.h +1 -0
  536. package/ReactCommon/react/bridging/Convert.h +12 -0
  537. package/ReactCommon/react/bridging/React-bridging.podspec +44 -0
  538. package/ReactCommon/react/bridging/tests/BridgingTest.cpp +185 -11
  539. package/ReactCommon/react/bridging/tests/ClassTest.cpp +22 -0
  540. package/ReactCommon/react/cxxstableapi/CMakeLists.txt +18 -0
  541. package/ReactCommon/react/cxxstableapi/FrameworksGuard.h +35 -0
  542. package/ReactCommon/react/cxxstableapi/PrivateGuard.h +34 -0
  543. package/ReactCommon/react/cxxstableapi/React-cxxstableapi.podspec +34 -0
  544. package/ReactCommon/react/cxxstableapi/UmbrellaGuard.h +53 -0
  545. package/ReactCommon/react/debug/React-debug.podspec +1 -1
  546. package/ReactCommon/react/debug/redbox/JscSafeUrl.h +1 -1
  547. package/ReactCommon/react/featureflags/React-featureflags.podspec +1 -1
  548. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +21 -45
  549. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +26 -56
  550. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +134 -242
  551. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +14 -26
  552. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +20 -44
  553. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +43 -97
  554. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +10 -6
  555. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +3 -7
  556. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -8
  557. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +7 -13
  558. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +1 -0
  559. package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +49 -0
  560. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.cpp +4 -0
  561. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaInteropTurboModule.h +4 -0
  562. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +2 -2
  563. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +2 -2
  564. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.h +4 -0
  565. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +5 -1
  566. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +61 -4
  567. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.h +0 -9
  568. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +37 -139
  569. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleWithJSIBindings.h +0 -3
  570. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +6 -0
  571. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -1
  572. package/ReactCommon/react/nativemodule/dom/NativeDOM.cpp +10 -4
  573. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +2 -1
  574. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +25 -55
  575. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +11 -23
  576. package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +1 -1
  577. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +2 -1
  578. package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +2 -1
  579. package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +1 -1
  580. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +4 -0
  581. package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +2 -1
  582. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -1
  583. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.h +1 -1
  584. package/ReactCommon/react/nativemodule/viewtransition/React-viewtransitionnativemodule.podspec +1 -1
  585. package/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec +2 -1
  586. package/ReactCommon/react/networking/React-networking.podspec +1 -1
  587. package/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec +1 -1
  588. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -1
  589. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +95 -63
  590. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +20 -1
  591. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +7 -10
  592. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +20 -1
  593. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.h +1 -0
  594. package/ReactCommon/react/renderer/animated/internal/primitives.h +1 -1
  595. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +67 -6
  596. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +12 -0
  597. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +25 -13
  598. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +7 -0
  599. package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +48 -0
  600. package/ReactCommon/react/renderer/animated/tests/DecayAnimationDriverTest.cpp +245 -0
  601. package/ReactCommon/react/renderer/animated/tests/ManagedPropsMountingOverrideTests.cpp +204 -0
  602. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +10 -1
  603. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +1 -0
  604. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +17 -0
  605. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +0 -2
  606. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +6 -2
  607. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +25 -1
  608. package/ReactCommon/react/renderer/attributedstring/conversions.h +29 -1
  609. package/ReactCommon/react/renderer/attributedstring/primitives.h +4 -2
  610. package/ReactCommon/react/renderer/attributedstring/tests/ParagraphAttributesTest.cpp +73 -0
  611. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +6 -0
  612. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +79 -126
  613. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.cpp +4 -0
  614. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropShadowNode.h +4 -0
  615. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropState.h +4 -0
  616. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +5 -0
  617. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +4 -0
  618. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.cpp +5 -0
  619. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticComponentDescriptor.h +4 -0
  620. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.cpp +4 -0
  621. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerAutomaticShadowNode.h +4 -0
  622. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerInteropComponentDescriptor.h +4 -0
  623. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.h +4 -0
  624. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +5 -0
  625. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.h +4 -0
  626. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/platform/ios/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +5 -0
  627. package/ReactCommon/react/renderer/components/scrollview/BaseScrollViewProps.cpp +235 -352
  628. package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp +30 -46
  629. package/ReactCommon/react/renderer/components/text/BaseParagraphProps.cpp +17 -27
  630. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +8 -10
  631. package/ReactCommon/react/renderer/components/text/BaseTextShadowNode.cpp +19 -0
  632. package/ReactCommon/react/renderer/components/text/TextEffectComponentDescriptor.h +17 -0
  633. package/ReactCommon/react/renderer/components/text/TextEffectProps.cpp +59 -0
  634. package/ReactCommon/react/renderer/components/text/TextEffectProps.h +30 -0
  635. package/{Libraries/Text/VirtualText/RCTVirtualTextView.mm → ReactCommon/react/renderer/components/text/TextEffectShadowNode.cpp} +4 -6
  636. package/ReactCommon/react/renderer/components/text/TextEffectShadowNode.h +26 -0
  637. package/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp +18 -28
  638. package/ReactCommon/react/renderer/components/text/tests/BaseTextShadowNodeTest.cpp +15 -0
  639. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +42 -50
  640. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +168 -754
  641. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +0 -9
  642. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +248 -312
  643. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -6
  644. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +2 -12
  645. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +73 -27
  646. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +7 -9
  647. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -11
  648. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +82 -162
  649. package/ReactCommon/react/renderer/components/view/primitives.h +5 -0
  650. package/ReactCommon/react/renderer/components/view/propsConversions.h +74 -42
  651. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +5 -5
  652. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +353 -6
  653. package/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +1 -1
  654. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +41 -16
  655. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +19 -0
  656. package/ReactCommon/react/renderer/core/EventEmitter.cpp +20 -4
  657. package/ReactCommon/react/renderer/core/LayoutMetrics.h +3 -0
  658. package/ReactCommon/react/renderer/core/Props.cpp +8 -39
  659. package/ReactCommon/react/renderer/core/Props.h +63 -13
  660. package/ReactCommon/react/renderer/core/RawProps.cpp +20 -3
  661. package/ReactCommon/react/renderer/core/RawProps.h +44 -0
  662. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +11 -27
  663. package/ReactCommon/react/renderer/core/RawPropsKeyMap.h +3 -3
  664. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +4 -6
  665. package/ReactCommon/react/renderer/core/RawPropsParser.h +3 -3
  666. package/ReactCommon/react/renderer/core/StateData.h +4 -4
  667. package/ReactCommon/react/renderer/core/propsConversions.h +3 -7
  668. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +8 -0
  669. package/ReactCommon/react/renderer/core/tests/FindNodeAtPointTest.cpp +7 -7
  670. package/ReactCommon/react/renderer/core/tests/LayoutableShadowNodeTest.cpp +19 -19
  671. package/ReactCommon/react/renderer/core/tests/PropsConceptsTest.cpp +135 -0
  672. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +43 -53
  673. package/ReactCommon/react/renderer/css/React-renderercss.podspec +1 -1
  674. package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +1 -1
  675. package/ReactCommon/react/renderer/element/tests/ElementTest.cpp +3 -3
  676. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -1
  677. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +17 -0
  678. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -1
  679. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
  680. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.cpp +123 -33
  681. package/ReactCommon/react/renderer/mapbuffer/MapBuffer.h +26 -14
  682. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.cpp +96 -53
  683. package/ReactCommon/react/renderer/mapbuffer/MapBufferBuilder.h +4 -0
  684. package/ReactCommon/react/renderer/mapbuffer/tests/MapBufferTest.cpp +96 -1
  685. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +29 -318
  686. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +105 -33
  687. package/ReactCommon/react/renderer/mounting/ShadowTree.h +2 -0
  688. package/ReactCommon/react/renderer/mounting/internal/CullingContext.cpp +1 -1
  689. package/ReactCommon/react/renderer/mounting/tests/DifferentiatorUnflattenTest.cpp +11 -3
  690. package/ReactCommon/react/renderer/mounting/tests/OrderIndexTest.cpp +1 -1
  691. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +15 -250
  692. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeReactBranchingTest.cpp +141 -0
  693. package/ReactCommon/react/renderer/mounting/tests/StackingContextTest.cpp +1 -1
  694. package/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt +1 -0
  695. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +2 -1
  696. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +22 -2
  697. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +13 -2
  698. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +13 -0
  699. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h +9 -0
  700. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +43 -5
  701. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h +17 -1
  702. package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -0
  703. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +113 -8
  704. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +14 -6
  705. package/ReactCommon/react/renderer/scheduler/Scheduler.h +3 -2
  706. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +1 -85
  707. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +0 -6
  708. package/ReactCommon/react/renderer/scheduler/tests/SchedulerDelegateInvalidationTest.cpp +671 -0
  709. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +22 -5
  710. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +4 -2
  711. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.h +11 -0
  712. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +65 -26
  713. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +1 -1
  714. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +193 -1
  715. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +14 -2
  716. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +2 -1
  717. package/ReactCommon/react/renderer/textlayoutmanager/tests/TextLayoutManagerTest.cpp +86 -5
  718. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +31 -41
  719. package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -2
  720. package/ReactCommon/react/renderer/uimanager/UIManagerDelegate.h +1 -1
  721. package/ReactCommon/react/renderer/uimanager/tests/FindShadowNodeByTagTest.cpp +1 -52
  722. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +4 -4
  723. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.cpp +88 -39
  724. package/ReactCommon/react/renderer/viewtransition/ViewTransitionModule.h +12 -2
  725. package/ReactCommon/react/runtime/PlatformTimerRegistry.h +10 -0
  726. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -1
  727. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -1
  728. package/ReactCommon/react/runtime/ReactInstance.cpp +79 -64
  729. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +0 -89
  730. package/ReactCommon/react/runtime/iostests/MainQueueCoordinatorTests.mm +99 -0
  731. package/ReactCommon/react/runtime/iostests/RCTInstanceTests.mm +244 -0
  732. package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +1 -1
  733. package/ReactCommon/react/runtime/platform/ios/ReactCommon/ObjCTimerRegistry.h +1 -1
  734. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +47 -30
  735. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTJscInstance.mm +3 -2
  736. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTPerformanceLoggerUtils.mm +3 -2
  737. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +27 -3
  738. package/ReactCommon/react/runtime/tests/cxx/RuntimeExecutorShutdownTest.cpp +155 -0
  739. package/ReactCommon/react/timing/React-timing.podspec +1 -1
  740. package/ReactCommon/react/utils/React-utils.podspec +1 -1
  741. package/ReactCommon/react/utils/Telemetry.h +0 -13
  742. package/ReactCommon/react/utils/tests/Base64Tests.cpp +36 -0
  743. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
  744. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +0 -1
  745. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
  746. package/ReactCommon/runtimeexecutor/platform/ios/ReactCommon/RuntimeExecutorSyncUIThreadUtils.mm +21 -38
  747. package/ReactCommon/yoga/Yoga.podspec +2 -2
  748. package/ReactCommon/yoga/yoga/YGEnums.cpp +2 -0
  749. package/ReactCommon/yoga/yoga/YGEnums.h +1 -0
  750. package/ReactCommon/yoga/yoga/YGNode.cpp +27 -0
  751. package/ReactCommon/yoga/yoga/YGNode.h +69 -0
  752. package/ReactCommon/yoga/yoga/YGNodeLayout.h +0 -2
  753. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +283 -10
  754. package/ReactCommon/yoga/yoga/config/Config.h +1 -1
  755. package/ReactCommon/yoga/yoga/enums/Errata.h +1 -0
  756. package/ReactCommon/yoga/yoga/node/LayoutResults.h +8 -0
  757. package/ReactCommon/yoga/yoga/node/Node.cpp +32 -0
  758. package/ReactCommon/yoga/yoga/node/Node.h +33 -0
  759. package/changes.json +6 -14
  760. package/cli.js +3 -182
  761. package/flow/bom.js.flow +42 -42
  762. package/flow/cssom.js.flow +21 -21
  763. package/flow/dom.js.flow +128 -128
  764. package/flow/global.js +6 -0
  765. package/gradle/libs.versions.toml +7 -5
  766. package/index.js +53 -86
  767. package/index.js.flow +53 -23
  768. package/package.json +47 -66
  769. package/react-native.config.js +82 -1
  770. package/scripts/cocoapods/fabric.rb +1 -1
  771. package/scripts/cocoapods/jsengine.rb +1 -1
  772. package/scripts/cocoapods/new_architecture.rb +1 -1
  773. package/scripts/cocoapods/rncore.rb +36 -78
  774. package/scripts/cocoapods/rncore_facades.rb +232 -0
  775. package/scripts/cocoapods/rndependencies.rb +83 -16
  776. package/scripts/cocoapods/rndeps_facades.rb +193 -0
  777. package/scripts/cocoapods/spm.rb +79 -12
  778. package/scripts/cocoapods/utils.rb +7 -9
  779. package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +0 -1
  780. package/scripts/codegen/templates/Package.swift.spm-template +97 -0
  781. package/scripts/codegen/templates/ReactAppDependencyProvider.podspec.template +1 -1
  782. package/scripts/codegen/templates/ReactCodegen.podspec.template +2 -2
  783. package/scripts/hermes/hermes-utils.js +27 -58
  784. package/scripts/ios-configure-glog.sh +1 -1
  785. package/scripts/react-native-xcode.sh +20 -0
  786. package/scripts/react_native_pods.rb +71 -21
  787. package/scripts/react_native_pods_utils/script_phases.sh +4 -3
  788. package/scripts/replace-rncore-version.js +75 -88
  789. package/scripts/setup-apple-spm.js +1283 -0
  790. package/scripts/spm/autolinking-plugins.js +411 -0
  791. package/scripts/spm/download-spm-artifacts.js +1467 -0
  792. package/scripts/spm/expand-spm-dependencies.js +435 -0
  793. package/scripts/spm/flavored-frameworks.js +1008 -0
  794. package/scripts/spm/generate-spm-autolinking-config.js +221 -0
  795. package/scripts/spm/generate-spm-autolinking.js +2005 -0
  796. package/scripts/spm/generate-spm-package.js +314 -0
  797. package/scripts/spm/generate-spm-xcodeproj.js +2790 -0
  798. package/scripts/spm/read-podspec.js +695 -0
  799. package/scripts/spm/scaffold-package-swift.js +1247 -0
  800. package/scripts/spm/spm-pbxproj.js +784 -0
  801. package/scripts/spm/spm-types.js +546 -0
  802. package/scripts/spm/spm-utils.js +760 -0
  803. package/scripts/spm/sync-spm-autolinking.js +160 -0
  804. package/sdks/.hermesv1version +1 -1
  805. package/sdks/hermes-engine/hermes-engine.podspec +9 -39
  806. package/sdks/hermes-engine/hermes-utils.rb +19 -73
  807. package/sdks/hermes-engine/utils/replace_hermes_version.js +18 -4
  808. package/sdks/hermes-engine/version.properties +1 -2
  809. package/settings.gradle.kts +0 -43
  810. package/src/asset-registry.js +29 -0
  811. package/src/private/animated/NativeAnimatedHelper.js +45 -21
  812. package/src/private/assets/AssetRegistry.js +52 -0
  813. package/src/private/{specs_DEPRECATED/components → components/activityindicator/specs}/ActivityIndicatorViewNativeComponent.js +5 -5
  814. package/src/private/{specs_DEPRECATED/components → components/debuggingoverlay/specs}/DebuggingOverlayNativeComponent.js +8 -8
  815. package/src/private/{specs_DEPRECATED/components → components/drawerlayoutandroid/specs}/AndroidDrawerLayoutNativeComponent.js +8 -8
  816. package/src/private/{specs_DEPRECATED/components → components/inputaccessoryview/specs}/RCTInputAccessoryViewNativeComponent.js +4 -4
  817. package/src/private/{specs_DEPRECATED/components → components/modal/specs}/RCTModalHostViewNativeComponent.js +4 -9
  818. package/src/private/{specs_DEPRECATED/components → components/progressbarandroid/specs}/ProgressBarAndroidNativeComponent.js +5 -5
  819. package/src/private/{specs_DEPRECATED/components → components/refreshcontrol/specs}/AndroidSwipeRefreshLayoutNativeComponent.js +7 -7
  820. package/src/private/{specs_DEPRECATED/components → components/refreshcontrol/specs}/PullToRefreshViewNativeComponent.js +7 -7
  821. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +2 -2
  822. package/src/private/{specs_DEPRECATED/components → components/safeareaview/specs}/RCTSafeAreaViewNativeComponent.js +3 -3
  823. package/src/private/components/scrollview/HScrollViewNativeComponents.js +1 -1
  824. package/src/private/{specs_DEPRECATED/components → components/scrollview/specs}/AndroidHorizontalScrollContentViewNativeComponent.js +3 -3
  825. package/src/private/{specs_DEPRECATED/components → components/switch/specs}/AndroidSwitchNativeComponent.js +7 -7
  826. package/src/private/{specs_DEPRECATED/components → components/switch/specs}/SwitchNativeComponent.js +10 -7
  827. package/src/private/{specs_DEPRECATED/components → components/unimplementedview/specs}/UnimplementedNativeViewNativeComponent.js +4 -4
  828. package/src/private/components/virtualcollection/Virtual.js +5 -5
  829. package/src/private/components/virtualcollection/VirtualCollectionView.js +2 -6
  830. package/src/private/components/virtualcollection/column/VirtualColumn.js +1 -1
  831. package/src/private/components/virtualcollection/row/VirtualRow.js +1 -1
  832. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +3 -1
  833. package/src/private/devsupport/devmenu/specs/NativeDevMenu.js +4 -4
  834. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +4 -2
  835. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsSettingsManager.js +2 -2
  836. package/src/private/featureflags/ReactNativeFeatureFlags.js +46 -70
  837. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +88 -94
  838. package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -2
  839. package/src/private/renderer/events/ReactNativeResponder.js +49 -4
  840. package/src/private/renderer/events/ResponderTouchHistoryStore.js +11 -2
  841. package/src/private/renderer/events/dispatchNativeEvent.js +71 -36
  842. package/src/private/setup/setUpDOM.js +19 -9
  843. package/src/private/setup/setUpIntersectionObserver.js +7 -0
  844. package/src/private/setup/setUpMutationObserver.js +3 -1
  845. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityInfo.js +9 -9
  846. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +24 -24
  847. package/src/private/specs_DEPRECATED/modules/NativeActionSheetManager.js +28 -28
  848. package/src/private/specs_DEPRECATED/modules/NativeAlertManager.js +1 -1
  849. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +45 -25
  850. package/src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule.js +44 -24
  851. package/src/private/specs_DEPRECATED/modules/NativeAppState.js +4 -4
  852. package/src/private/specs_DEPRECATED/modules/NativeAppearance.js +8 -6
  853. package/src/private/specs_DEPRECATED/modules/NativeBlobModule.js +7 -7
  854. package/src/private/specs_DEPRECATED/modules/NativeClipboard.js +3 -3
  855. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +2 -2
  856. package/src/private/specs_DEPRECATED/modules/NativeDevSettings.js +11 -11
  857. package/src/private/specs_DEPRECATED/modules/NativeDeviceEventManager.js +1 -1
  858. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +4 -4
  859. package/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.js +7 -7
  860. package/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.js +4 -4
  861. package/src/private/specs_DEPRECATED/modules/NativeFileReaderModule.js +2 -2
  862. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +4 -4
  863. package/src/private/specs_DEPRECATED/modules/NativeHeadlessJsTaskSupport.js +2 -2
  864. package/src/private/specs_DEPRECATED/modules/NativeI18nManager.js +1 -1
  865. package/src/private/specs_DEPRECATED/modules/NativeImageEditor.js +13 -13
  866. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderAndroid.js +9 -6
  867. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +6 -6
  868. package/src/private/specs_DEPRECATED/modules/NativeImageStoreAndroid.js +2 -2
  869. package/src/private/specs_DEPRECATED/modules/NativeImageStoreIOS.js +8 -5
  870. package/src/private/specs_DEPRECATED/modules/NativeIntentAndroid.js +5 -5
  871. package/src/private/specs_DEPRECATED/modules/NativeJSCHeapCapture.js +1 -1
  872. package/src/private/specs_DEPRECATED/modules/NativeKeyboardObserver.js +2 -2
  873. package/src/private/specs_DEPRECATED/modules/NativeLinkingManager.js +6 -6
  874. package/src/private/specs_DEPRECATED/modules/NativeLogBox.js +2 -2
  875. package/src/private/specs_DEPRECATED/modules/NativeModalManager.js +2 -2
  876. package/src/private/specs_DEPRECATED/modules/NativeNetworkingAndroid.js +5 -5
  877. package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +6 -6
  878. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +6 -4
  879. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsAndroid.js +2 -2
  880. package/src/private/specs_DEPRECATED/modules/NativePlatformConstantsIOS.js +1 -1
  881. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +35 -31
  882. package/src/private/specs_DEPRECATED/modules/NativeRedBox.js +2 -2
  883. package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +24 -24
  884. package/src/private/specs_DEPRECATED/modules/NativeSegmentFetcher.js +2 -2
  885. package/src/private/specs_DEPRECATED/modules/NativeSettingsManager.js +3 -3
  886. package/src/private/specs_DEPRECATED/modules/NativeShareModule.js +2 -2
  887. package/src/private/specs_DEPRECATED/modules/NativeSoundManager.js +1 -1
  888. package/src/private/specs_DEPRECATED/modules/NativeSourceCode.js +1 -1
  889. package/src/private/specs_DEPRECATED/modules/NativeStatusBarManagerAndroid.js +5 -17
  890. package/src/private/specs_DEPRECATED/modules/NativeStatusBarManagerIOS.js +10 -15
  891. package/src/private/specs_DEPRECATED/modules/NativeTiming.js +3 -3
  892. package/src/private/specs_DEPRECATED/modules/NativeToastAndroid.js +4 -4
  893. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +35 -22
  894. package/src/private/specs_DEPRECATED/modules/NativeVibration.js +4 -4
  895. package/src/private/specs_DEPRECATED/modules/NativeWebSocketModule.js +7 -7
  896. package/src/private/types/HostInstance.js +38 -80
  897. package/src/private/viewtransition/specs/NativeViewTransition.js +6 -4
  898. package/src/private/webapis/dom/abort-api/AbortController.js +92 -0
  899. package/src/private/webapis/dom/abort-api/AbortSignal.js +243 -0
  900. package/src/private/webapis/dom/events/CustomEvent.js +1 -1
  901. package/src/private/webapis/dom/events/Event.js +12 -12
  902. package/src/private/webapis/dom/events/EventTarget.js +146 -37
  903. package/src/private/webapis/dom/events/internals/EventInternals.js +36 -0
  904. package/src/private/webapis/dom/events/internals/EventTargetInternals.js +38 -3
  905. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +11 -0
  906. package/src/private/webapis/dom/nodes/ReactNativeElement.js +105 -4
  907. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +11 -0
  908. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +9 -0
  909. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +34 -7
  910. package/src/private/webapis/dom/nodes/ReadOnlyText.js +33 -0
  911. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +46 -42
  912. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +12 -0
  913. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +4 -2
  914. package/src/private/webapis/dom/oldstylecollections/NodeList.js +10 -0
  915. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +4 -3
  916. package/src/private/webapis/errors/DOMException.js +50 -50
  917. package/src/private/webapis/geometry/DOMRectList.js +12 -0
  918. package/src/private/webapis/geometry/DOMRectList.js.flow +3 -1
  919. package/src/private/webapis/html/events/MessageEvent.js +3 -3
  920. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +2 -2
  921. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +13 -0
  922. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +3 -7
  923. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +5 -5
  924. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
  925. package/src/private/webapis/mutationobserver/MutationObserver.js +7 -7
  926. package/src/private/webapis/mutationobserver/MutationRecord.js +12 -0
  927. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +5 -7
  928. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +5 -5
  929. package/src/private/webapis/performance/EventTiming.js +3 -3
  930. package/src/private/webapis/performance/PerformanceEntry.js +3 -3
  931. package/src/private/webapis/performance/PerformanceObserver.js +4 -4
  932. package/src/private/webapis/performance/ResourceTiming.js +13 -13
  933. package/src/private/webapis/performance/UserTiming.js +3 -3
  934. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  935. package/src/private/webapis/performance/specs/NativePerformance.js +26 -20
  936. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  937. package/src/private/webapis/websockets/events/CloseEvent.js +3 -3
  938. package/src/private/webapis/xhr/events/ProgressEvent.js +3 -3
  939. package/src/react-private-interface.js +145 -0
  940. package/src/react-private-interface.js.flow +48 -0
  941. package/src/setup-env.js +22 -0
  942. package/src/types/globals.d.ts +35 -3
  943. package/src/unstable-internals-do-not-use.d.ts +214 -0
  944. package/src/unstable-internals-do-not-use.js +76 -0
  945. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  946. package/third-party-podspecs/ReactNativeDependencies.podspec +3 -3
  947. package/third-party-podspecs/glog.podspec +1 -1
  948. package/types/index.d.ts +0 -1
  949. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -4
  950. package/types/public/ReactNativeTypes.d.ts +6 -4
  951. package/types_generated/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +26 -31
  952. package/types_generated/Libraries/Alert/Alert.d.ts +44 -7
  953. package/types_generated/Libraries/Animated/AnimatedEvent.d.ts +2 -2
  954. package/types_generated/Libraries/Animated/AnimatedExports.d.ts +2 -2
  955. package/types_generated/Libraries/Animated/AnimatedImplementation.d.ts +108 -4
  956. package/types_generated/Libraries/Animated/Easing.d.ts +5 -4
  957. package/types_generated/Libraries/Animated/animations/Animation.d.ts +7 -7
  958. package/types_generated/Libraries/Animated/animations/DecayAnimation.d.ts +5 -5
  959. package/types_generated/Libraries/Animated/animations/SpringAnimation.d.ts +49 -49
  960. package/types_generated/Libraries/Animated/animations/TimingAnimation.d.ts +13 -13
  961. package/types_generated/Libraries/Animated/components/AnimatedFlatList.d.ts +3 -3
  962. package/types_generated/Libraries/Animated/components/AnimatedScrollView.d.ts +2 -2
  963. package/types_generated/Libraries/Animated/components/AnimatedSectionList.d.ts +3 -3
  964. package/types_generated/Libraries/Animated/createAnimatedComponent.d.ts +4 -4
  965. package/types_generated/Libraries/Animated/nodes/AnimatedColor.d.ts +2 -2
  966. package/types_generated/Libraries/Animated/nodes/AnimatedInterpolation.d.ts +9 -9
  967. package/types_generated/Libraries/Animated/nodes/AnimatedNode.d.ts +6 -3
  968. package/types_generated/Libraries/Animated/nodes/AnimatedValue.d.ts +3 -3
  969. package/types_generated/Libraries/AppState/AppState.d.ts +41 -22
  970. package/types_generated/Libraries/BatchedBridge/NativeModules.d.ts +8 -1
  971. package/types_generated/Libraries/Blob/BlobTypes.d.ts +4 -4
  972. package/types_generated/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +37 -46
  973. package/types_generated/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +92 -43
  974. package/types_generated/Libraries/Components/Button.d.ts +118 -197
  975. package/types_generated/Libraries/Components/Clipboard/Clipboard.d.ts +6 -1
  976. package/types_generated/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.d.ts +44 -63
  977. package/types_generated/Libraries/Components/Keyboard/Keyboard.d.ts +30 -61
  978. package/types_generated/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +30 -21
  979. package/types_generated/Libraries/Components/Pressable/Pressable.d.ts +41 -17
  980. package/types_generated/Libraries/Components/Pressable/useAndroidRippleForView.d.ts +6 -6
  981. package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +5 -5
  982. package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.d.ts +18 -1
  983. package/types_generated/Libraries/Components/RefreshControl/RefreshControl.d.ts +35 -52
  984. package/types_generated/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -11
  985. package/types_generated/Libraries/Components/ScrollView/ScrollView.d.ts +212 -88
  986. package/types_generated/Libraries/Components/ScrollView/ScrollViewStickyHeader.d.ts +4 -4
  987. package/types_generated/Libraries/Components/StatusBar/StatusBar.d.ts +29 -62
  988. package/types_generated/Libraries/Components/Switch/Switch.d.ts +75 -70
  989. package/types_generated/Libraries/Components/TextInput/InputAccessoryView.d.ts +16 -65
  990. package/types_generated/Libraries/Components/TextInput/TextInput.d.ts +118 -3
  991. package/types_generated/Libraries/Components/TextInput/TextInput.flow.d.ts +24 -9
  992. package/types_generated/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +18 -18
  993. package/types_generated/Libraries/Components/Touchable/TouchableHighlight.d.ts +24 -13
  994. package/types_generated/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +27 -64
  995. package/types_generated/Libraries/Components/Touchable/TouchableOpacity.d.ts +18 -6
  996. package/types_generated/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +28 -28
  997. package/types_generated/Libraries/Components/View/View.d.ts +13 -9
  998. package/types_generated/Libraries/Components/View/ViewAccessibility.d.ts +31 -20
  999. package/types_generated/Libraries/Components/View/ViewNativeComponent.d.ts +1 -2
  1000. package/types_generated/Libraries/Components/View/ViewPropTypes.d.ts +75 -24
  1001. package/types_generated/Libraries/Core/ExtendedError.d.ts +10 -10
  1002. package/types_generated/Libraries/EventEmitter/NativeEventEmitter.d.ts +34 -1
  1003. package/types_generated/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +4 -1
  1004. package/types_generated/Libraries/Image/AssetSourceResolver.d.ts +2 -13
  1005. package/types_generated/Libraries/Image/ImageBackground.d.ts +33 -22
  1006. package/types_generated/Libraries/Image/ImageProps.d.ts +201 -251
  1007. package/types_generated/Libraries/Image/ImageTypes.flow.d.ts +6 -5
  1008. package/types_generated/Libraries/Interaction/PanResponder.d.ts +103 -97
  1009. package/types_generated/Libraries/LayoutAnimation/LayoutAnimation.d.ts +18 -7
  1010. package/types_generated/Libraries/Linking/Linking.d.ts +28 -20
  1011. package/types_generated/Libraries/Lists/FlatList.d.ts +17 -18
  1012. package/types_generated/Libraries/Lists/SectionList.d.ts +10 -5
  1013. package/types_generated/Libraries/Lists/VirtualizedList.d.ts +3 -1
  1014. package/types_generated/Libraries/Lists/VirtualizedSectionList.d.ts +3 -1
  1015. package/types_generated/Libraries/LogBox/Data/LogBoxData.d.ts +2 -2
  1016. package/types_generated/Libraries/LogBox/Data/LogBoxLog.d.ts +2 -2
  1017. package/types_generated/Libraries/LogBox/Data/parseLogBoxLog.d.ts +2 -2
  1018. package/types_generated/Libraries/LogBox/LogBox.d.ts +4 -1
  1019. package/types_generated/Libraries/Modal/Modal.d.ts +70 -35
  1020. package/types_generated/Libraries/Network/FormData.d.ts +5 -5
  1021. package/types_generated/Libraries/Performance/Systrace.d.ts +11 -1
  1022. package/types_generated/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +31 -21
  1023. package/types_generated/Libraries/Pressability/Pressability.d.ts +5 -5
  1024. package/types_generated/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +15 -11
  1025. package/types_generated/Libraries/ReactNative/AppRegistry.flow.d.ts +5 -5
  1026. package/types_generated/Libraries/ReactNative/AppRegistryImpl.d.ts +56 -9
  1027. package/types_generated/Libraries/ReactNative/I18nManager.d.ts +20 -1
  1028. package/types_generated/Libraries/ReactNative/IPerformanceLogger.flow.d.ts +5 -5
  1029. package/types_generated/Libraries/ReactPrivate/ReactNativePrivateInterface.d.ts +6 -22
  1030. package/types_generated/Libraries/Renderer/shims/ReactNativeTypes.d.ts +34 -34
  1031. package/types_generated/Libraries/Share/Share.d.ts +36 -39
  1032. package/types_generated/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +7 -1
  1033. package/types_generated/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +3 -3
  1034. package/types_generated/Libraries/StyleSheet/StyleSheetTypes.d.ts +202 -181
  1035. package/types_generated/Libraries/StyleSheet/private/_TransformStyle.d.ts +3 -3
  1036. package/types_generated/Libraries/Text/Text.d.ts +10 -6
  1037. package/types_generated/Libraries/Text/TextProps.d.ts +57 -102
  1038. package/types_generated/Libraries/TurboModule/RCTExport.d.ts +2 -2
  1039. package/types_generated/Libraries/Types/CoreEventTypes.d.ts +14 -8
  1040. package/types_generated/Libraries/Utilities/Appearance.d.ts +25 -13
  1041. package/types_generated/Libraries/Utilities/BackHandler.d.ts +17 -1
  1042. package/types_generated/Libraries/Utilities/DevSettings.d.ts +9 -2
  1043. package/types_generated/Libraries/Utilities/Dimensions.d.ts +19 -13
  1044. package/types_generated/Libraries/Utilities/PixelRatio.d.ts +6 -3
  1045. package/types_generated/Libraries/Utilities/Platform.d.ts +5 -1
  1046. package/types_generated/Libraries/Utilities/PlatformTypes.d.ts +65 -6
  1047. package/types_generated/Libraries/Utilities/codegenNativeComponent.d.ts +5 -5
  1048. package/types_generated/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.d.ts +2 -2
  1049. package/types_generated/Libraries/Utilities/differ/deepDiffer.d.ts +2 -2
  1050. package/types_generated/Libraries/Utilities/useColorScheme.d.ts +12 -2
  1051. package/types_generated/Libraries/Utilities/useWindowDimensions.d.ts +7 -1
  1052. package/types_generated/Libraries/Vibration/Vibration.d.ts +14 -6
  1053. package/types_generated/index.d.ts +31 -25
  1054. package/types_generated/src/private/assets/AssetRegistry.d.ts +42 -0
  1055. package/types_generated/src/private/components/virtualcollection/VirtualCollectionView.d.ts +5 -5
  1056. package/types_generated/src/private/components/virtualcollection/column/VirtualColumn.d.ts +3 -3
  1057. package/types_generated/src/private/components/virtualcollection/row/VirtualRow.d.ts +3 -3
  1058. package/types_generated/src/private/components/virtualview/VirtualView.d.ts +7 -7
  1059. package/types_generated/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.d.ts +5 -5
  1060. package/types_generated/src/private/components/virtualview/VirtualViewNativeComponent.d.ts +5 -5
  1061. package/types_generated/src/private/renderer/events/dispatchNativeEvent.d.ts +26 -0
  1062. package/types_generated/src/private/specs_DEPRECATED/modules/NativeAppearance.d.ts +6 -5
  1063. package/types_generated/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.d.ts +7 -7
  1064. package/types_generated/src/private/specs_DEPRECATED/modules/NativeExceptionsManager.d.ts +5 -5
  1065. package/types_generated/src/private/specs_DEPRECATED/modules/NativeUIManager.d.ts +8 -8
  1066. package/types_generated/src/private/types/HostComponent.d.ts +3 -3
  1067. package/types_generated/src/private/types/HostInstance.d.ts +39 -74
  1068. package/types_generated/src/private/webapis/dom/events/CustomEvent.d.ts +2 -2
  1069. package/types_generated/src/private/webapis/dom/events/Event.d.ts +4 -4
  1070. package/types_generated/src/private/webapis/dom/events/EventTarget.d.ts +8 -8
  1071. package/types_generated/src/private/webapis/dom/nodes/ReactNativeDocument.d.ts +3 -1
  1072. package/types_generated/src/private/webapis/dom/nodes/ReactNativeElement.d.ts +57 -4
  1073. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyCharacterData.d.ts +3 -1
  1074. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyElement.d.ts +3 -1
  1075. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyNode.d.ts +4 -2
  1076. package/types_generated/src/private/webapis/dom/nodes/ReadOnlyText.d.ts +3 -1
  1077. package/types_generated/src/private/webapis/dom/nodes/specs/NativeDOM.d.ts +3 -3
  1078. package/types_generated/src/private/webapis/dom/oldstylecollections/HTMLCollection.d.ts +3 -1
  1079. package/types_generated/src/private/webapis/dom/oldstylecollections/NodeList.d.ts +3 -1
  1080. package/types_generated/src/react-private-interface.d.ts +33 -0
  1081. package/Libraries/AppDelegate/RCTArchConfiguratorProtocol.h +0 -38
  1082. package/Libraries/Image/AssetRegistry.js +0 -14
  1083. package/Libraries/Image/RCTImageShadowView.h +0 -17
  1084. package/Libraries/Image/RCTImageShadowView.mm +0 -28
  1085. package/Libraries/Image/RCTImageView.h +0 -32
  1086. package/Libraries/Image/RCTImageView.mm +0 -508
  1087. package/Libraries/Image/RCTImageViewManager.h +0 -17
  1088. package/Libraries/Image/RCTImageViewManager.mm +0 -115
  1089. package/Libraries/Interaction/InteractionManager.d.ts +0 -87
  1090. package/Libraries/Interaction/InteractionManager.js +0 -189
  1091. package/Libraries/Text/BaseText/RCTBaseTextShadowView.h +0 -35
  1092. package/Libraries/Text/BaseText/RCTBaseTextShadowView.mm +0 -162
  1093. package/Libraries/Text/BaseText/RCTBaseTextViewManager.h +0 -21
  1094. package/Libraries/Text/BaseText/RCTBaseTextViewManager.mm +0 -64
  1095. package/Libraries/Text/RCTTextAttributes.h +0 -107
  1096. package/Libraries/Text/RCTTextAttributes.mm +0 -358
  1097. package/Libraries/Text/RawText/RCTRawTextShadowView.h +0 -23
  1098. package/Libraries/Text/RawText/RCTRawTextShadowView.mm +0 -38
  1099. package/Libraries/Text/RawText/RCTRawTextViewManager.h +0 -21
  1100. package/Libraries/Text/RawText/RCTRawTextViewManager.mm +0 -32
  1101. package/Libraries/Text/Text/RCTTextShadowView.h +0 -33
  1102. package/Libraries/Text/Text/RCTTextShadowView.mm +0 -469
  1103. package/Libraries/Text/Text/RCTTextView.h +0 -34
  1104. package/Libraries/Text/Text/RCTTextView.mm +0 -298
  1105. package/Libraries/Text/Text/RCTTextViewManager.h +0 -19
  1106. package/Libraries/Text/Text/RCTTextViewManager.mm +0 -97
  1107. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.h +0 -21
  1108. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputView.mm +0 -67
  1109. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.h +0 -21
  1110. package/Libraries/Text/TextInput/Multiline/RCTMultilineTextInputViewManager.mm +0 -28
  1111. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.h +0 -30
  1112. package/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm +0 -367
  1113. package/Libraries/Text/TextInput/RCTBaseTextInputView.h +0 -68
  1114. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +0 -849
  1115. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.h +0 -17
  1116. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +0 -181
  1117. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.h +0 -17
  1118. package/Libraries/Text/TextInput/RCTInputAccessoryShadowView.mm +0 -24
  1119. package/Libraries/Text/TextInput/RCTInputAccessoryView.h +0 -22
  1120. package/Libraries/Text/TextInput/RCTInputAccessoryView.mm +0 -82
  1121. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.h +0 -17
  1122. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.mm +0 -78
  1123. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.h +0 -17
  1124. package/Libraries/Text/TextInput/RCTInputAccessoryViewManager.mm +0 -33
  1125. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.h +0 -21
  1126. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputView.mm +0 -43
  1127. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.h +0 -21
  1128. package/Libraries/Text/TextInput/Singleline/RCTSinglelineTextInputViewManager.mm +0 -35
  1129. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.h +0 -17
  1130. package/Libraries/Text/VirtualText/RCTVirtualTextShadowView.mm +0 -42
  1131. package/Libraries/Text/VirtualText/RCTVirtualTextView.h +0 -28
  1132. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.h +0 -17
  1133. package/Libraries/Text/VirtualText/RCTVirtualTextViewManager.mm +0 -30
  1134. package/Libraries/Utilities/SceneTracker.js +0 -42
  1135. package/Libraries/Wrapper/Example/RCTWrapperExampleView.h +0 -21
  1136. package/Libraries/Wrapper/Example/RCTWrapperExampleView.m +0 -57
  1137. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.h +0 -21
  1138. package/Libraries/Wrapper/Example/RCTWrapperExampleViewController.m +0 -27
  1139. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.h +0 -25
  1140. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewController.m +0 -50
  1141. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.h +0 -23
  1142. package/Libraries/Wrapper/Example/RCTWrapperReactRootViewManager.m +0 -35
  1143. package/Libraries/Wrapper/RCTWrapper.h +0 -73
  1144. package/Libraries/Wrapper/RCTWrapperShadowView.h +0 -27
  1145. package/Libraries/Wrapper/RCTWrapperShadowView.m +0 -138
  1146. package/Libraries/Wrapper/RCTWrapperView.h +0 -42
  1147. package/Libraries/Wrapper/RCTWrapperView.m +0 -99
  1148. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.h +0 -30
  1149. package/Libraries/Wrapper/RCTWrapperViewControllerHostingView.m +0 -137
  1150. package/Libraries/Wrapper/RCTWrapperViewManager.h +0 -25
  1151. package/Libraries/Wrapper/RCTWrapperViewManager.m +0 -31
  1152. package/React/Base/RCTRootContentView.h +0 -43
  1153. package/React/Base/RCTRootContentView.m +0 -111
  1154. package/React/Base/RCTRootViewInternal.h +0 -28
  1155. package/React/CxxBridge/RCTCxxBridge.mm +0 -1572
  1156. package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.h +0 -25
  1157. package/React/CxxBridge/RCTJSIExecutorRuntimeInstaller.mm +0 -34
  1158. package/React/CxxBridge/RCTObjcExecutor.h +0 -34
  1159. package/React/CxxBridge/RCTObjcExecutor.mm +0 -150
  1160. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +0 -34
  1161. package/React/CxxModule/DispatchMessageQueueThread.h +0 -50
  1162. package/React/CxxModule/RCTCxxMethod.h +0 -17
  1163. package/React/CxxModule/RCTCxxMethod.mm +0 -147
  1164. package/React/CxxModule/RCTNativeModule.h +0 -34
  1165. package/React/CxxModule/RCTNativeModule.mm +0 -241
  1166. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.mm +0 -205
  1167. package/React/Tests/Text/RCTTextAttributesTest.mm +0 -49
  1168. package/React/Views/RCTActivityIndicatorView.h +0 -16
  1169. package/React/Views/RCTActivityIndicatorView.m +0 -26
  1170. package/React/Views/RCTActivityIndicatorViewManager.h +0 -23
  1171. package/React/Views/RCTActivityIndicatorViewManager.m +0 -65
  1172. package/React/Views/RCTDebuggingOverlayManager.h +0 -17
  1173. package/React/Views/RCTDebuggingOverlayManager.m +0 -68
  1174. package/React/Views/RCTModalHostView.h +0 -64
  1175. package/React/Views/RCTModalHostView.m +0 -264
  1176. package/React/Views/RCTModalHostViewController.m +0 -74
  1177. package/React/Views/RCTModalHostViewManager.m +0 -131
  1178. package/React/Views/RCTModalManager.h +0 -22
  1179. package/React/Views/RCTModalManager.m +0 -46
  1180. package/React/Views/RCTRootShadowView.h +0 -35
  1181. package/React/Views/RCTRootShadowView.m +0 -53
  1182. package/React/Views/RCTShadowView+Internal.h +0 -18
  1183. package/React/Views/RCTShadowView+Internal.m +0 -23
  1184. package/React/Views/RCTSwitch.h +0 -22
  1185. package/React/Views/RCTSwitch.m +0 -24
  1186. package/React/Views/RCTSwitchManager.h +0 -17
  1187. package/React/Views/RCTSwitchManager.m +0 -70
  1188. package/React/Views/RefreshControl/RCTRefreshControl.h +0 -24
  1189. package/React/Views/RefreshControl/RCTRefreshControl.m +0 -230
  1190. package/React/Views/RefreshControl/RCTRefreshControlManager.h +0 -17
  1191. package/React/Views/RefreshControl/RCTRefreshControlManager.m +0 -47
  1192. package/React/Views/SafeAreaView/RCTSafeAreaShadowView.h +0 -21
  1193. package/React/Views/SafeAreaView/RCTSafeAreaShadowView.m +0 -57
  1194. package/React/Views/SafeAreaView/RCTSafeAreaView.h +0 -27
  1195. package/React/Views/SafeAreaView/RCTSafeAreaView.m +0 -79
  1196. package/React/Views/SafeAreaView/RCTSafeAreaViewLocalData.h +0 -25
  1197. package/React/Views/SafeAreaView/RCTSafeAreaViewLocalData.m +0 -25
  1198. package/React/Views/SafeAreaView/RCTSafeAreaViewManager.h +0 -21
  1199. package/React/Views/SafeAreaView/RCTSafeAreaViewManager.m +0 -32
  1200. package/React/Views/ScrollView/RCTScrollContentShadowView.h +0 -19
  1201. package/React/Views/ScrollView/RCTScrollContentShadowView.m +0 -35
  1202. package/React/Views/ScrollView/RCTScrollContentView.h +0 -19
  1203. package/React/Views/ScrollView/RCTScrollContentView.m +0 -36
  1204. package/React/Views/ScrollView/RCTScrollContentViewManager.h +0 -17
  1205. package/React/Views/ScrollView/RCTScrollContentViewManager.m +0 -31
  1206. package/React/Views/ScrollView/RCTScrollView.m +0 -1168
  1207. package/React/Views/ScrollView/RCTScrollViewManager.h +0 -25
  1208. package/React/Views/ScrollView/RCTScrollViewManager.m +0 -202
  1209. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +0 -251
  1210. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BridgeReactContext.java +0 -315
  1211. package/ReactAndroid/src/main/java/com/facebook/react/common/ClearableSynchronizedPool.kt +0 -51
  1212. package/ReactAndroid/src/main/java/com/facebook/react/fabric/AnimationBackendChoreographer.kt +0 -89
  1213. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +0 -736
  1214. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +0 -221
  1215. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -399
  1216. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactZIndexedViewGroup.kt +0 -35
  1217. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +0 -346
  1218. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +0 -666
  1219. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -147
  1220. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewGroupDrawingOrderHelper.kt +0 -113
  1221. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +0 -614
  1222. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +0 -1838
  1223. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactNestedScrollView.java +0 -1646
  1224. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +0 -1638
  1225. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaAlign.java +0 -51
  1226. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaBoxSizing.java +0 -33
  1227. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDimension.java +0 -33
  1228. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaDisplay.java +0 -37
  1229. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaEdge.java +0 -47
  1230. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaErrata.java +0 -41
  1231. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaExperimentalFeature.java +0 -33
  1232. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaFlexDirection.java +0 -37
  1233. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGridTrackType.java +0 -39
  1234. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaGutter.java +0 -35
  1235. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaJustify.java +0 -49
  1236. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaLogLevel.java +0 -45
  1237. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaMeasureMode.java +0 -35
  1238. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +0 -928
  1239. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeType.java +0 -33
  1240. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaOverflow.java +0 -35
  1241. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaPositionType.java +0 -35
  1242. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +0 -43
  1243. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaWrap.java +0 -35
  1244. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.cpp +0 -23
  1245. package/ReactAndroid/src/main/jni/react/fabric/JAnimationBackendChoreographer.h +0 -37
  1246. package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +0 -135
  1247. package/ReactCommon/cxxreact/JSIndexedRAMBundle.h +0 -72
  1248. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.cpp +0 -143
  1249. package/ReactCommon/hermes/inspector-modern/chrome/ConnectionDemux.h +0 -55
  1250. package/ReactCommon/hermes/inspector-modern/chrome/Registration.cpp +0 -78
  1251. package/ReactCommon/hermes/inspector-modern/chrome/Registration.h +0 -39
  1252. package/ReactCommon/hermes/inspector-modern/chrome/tests/ConnectionDemuxTests.cpp +0 -148
  1253. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +0 -168
  1254. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.cpp +0 -416
  1255. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.h +0 -31
  1256. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +0 -134
  1257. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +0 -290
  1258. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +0 -62
  1259. package/ReactCommon/react/renderer/core/RawPropsKey.h +0 -39
  1260. package/ReactCommon/react/renderer/mounting/internal/DiffMap.h +0 -170
  1261. package/ReactCommon/react/renderer/mounting/internal/LongestIncreasingSubsequence.h +0 -95
  1262. package/ReactCommon/react/renderer/mounting/internal/TinyMap.h +0 -147
  1263. package/ReactCommon/react/renderer/mounting/tests/LongestIncreasingSubsequenceTest.cpp +0 -154
  1264. package/interface.js +0 -21
  1265. package/jest-preset.js +0 -26
  1266. package/rn-get-polyfills.js +0 -13
  1267. package/sdks/.hermesversion +0 -1
  1268. package/src/private/components/virtualcollection/debug/FlingItemOverlay.js +0 -13
  1269. package/types/tsconfig.json +0 -15
  1270. package/types_generated/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.d.ts +0 -14
  1271. package/types_generated/Libraries/Components/ScrollView/ScrollViewNativeComponent.d.ts +0 -21
  1272. package/types_generated/Libraries/Components/ScrollView/ScrollViewNativeComponentType.d.ts +0 -134
  1273. package/types_generated/Libraries/Components/Switch/AndroidSwitchNativeComponent.d.ts +0 -14
  1274. package/types_generated/Libraries/Components/Switch/SwitchNativeComponent.d.ts +0 -14
  1275. package/types_generated/Libraries/Components/Touchable/Touchable.d.ts +0 -262
  1276. package/types_generated/Libraries/Interaction/InteractionManager.d.ts +0 -117
  1277. package/types_generated/Libraries/NativeModules/specs/NativeDialogManagerAndroid.d.ts +0 -17
  1278. package/types_generated/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.d.ts +0 -53
  1279. package/types_generated/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.d.ts +0 -36
  1280. package/types_generated/src/private/specs_DEPRECATED/components/SwitchNativeComponent.d.ts +0 -51
  1281. package/types_generated/src/private/specs_DEPRECATED/modules/NativeDialogManagerAndroid.d.ts +0 -37
  1282. package/types_generated/tsconfig.test.json +0 -16
  1283. /package/ReactCommon/{cxxreact → react/utils}/MoveWrapper.h +0 -0
@@ -0,0 +1,1467 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict-local
8
+ * @format
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ /*:: import type {DownloadArgs, ResolvedArtifact, ProcessResult, ArtifactResultEntry} from './spm-types'; */
14
+
15
+ /**
16
+ * download-spm-artifacts.js
17
+ *
18
+ * Downloads the three React Native iOS xcframeworks from Maven, extracts
19
+ * them to a local cache directory, and writes artifacts.json for use by
20
+ * generate-spm-package.js.
21
+ *
22
+ * Supports stable releases, nightlies, and snapshot builds, matching
23
+ * the same resolution logic used by the existing CocoaPods scripts.
24
+ *
25
+ * Artifacts handled:
26
+ * React – react-native-core tarball from Maven
27
+ * ReactNativeDependencies – react-native-dependencies tarball from Maven
28
+ * hermes-engine – hermes-ios tarball from Maven
29
+ *
30
+ * Usage:
31
+ * node scripts/download-spm-artifacts.js [options]
32
+ *
33
+ * Options:
34
+ * --version <ver> RN version. Defaults to version in package.json.
35
+ * Use "nightly" to resolve the latest nightly.
36
+ * --flavor <f> debug (default) or release.
37
+ * --output <dir> Where to write xcframeworks.
38
+ * Default: ~/Library/Caches/ReactNative/spm-artifacts/{version}/{flavor}/
39
+ * (downloaded tarballs are shared with CocoaPods in
40
+ * ~/Library/Caches/ReactNative/; RCT_SKIP_CACHES=1 bypasses.)
41
+ *
42
+ * Per-artifact version overrides (mirrors existing env vars):
43
+ * HERMES_VERSION=<ver|nightly|latest-v1>
44
+ * RN_DEP_VERSION=<ver|nightly>
45
+ * ENTERPRISE_REPOSITORY=<url> Custom Maven mirror (must match Maven structure)
46
+ *
47
+ * Output:
48
+ * <output>/React.xcframework/
49
+ * <output>/ReactNativeDependencies.xcframework/
50
+ * <output>/hermes-engine.xcframework/
51
+ * <output>/artifacts.json ← maps target names to xcframework paths
52
+ */
53
+
54
+ const {
55
+ defaultCacheDir,
56
+ displayPath,
57
+ makeLogger,
58
+ sharedCacheDir,
59
+ } = require('./spm-utils');
60
+ const {execFileSync} = require('child_process');
61
+ const fs = require('fs');
62
+ const path = require('path');
63
+ const stream = require('stream');
64
+ const yargs = require('yargs');
65
+
66
+ const {log, warn, die} = makeLogger('download-spm-artifacts');
67
+
68
+ function parseArgs(argv /*: Array<string> */) /*: DownloadArgs */ {
69
+ const parsed = yargs(argv)
70
+ .version(false)
71
+ .option('version', {
72
+ alias: 'v',
73
+ type: 'string',
74
+ describe:
75
+ 'RN version. Defaults to version in package.json. Use "nightly" to resolve the latest nightly.',
76
+ })
77
+ .option('flavor', {
78
+ type: 'string',
79
+ default: 'debug',
80
+ describe: 'debug or release',
81
+ })
82
+ .option('output', {
83
+ alias: 'o',
84
+ type: 'string',
85
+ describe:
86
+ 'Where to write xcframeworks. Default: ~/Library/Caches/ReactNative/spm-artifacts/{version}/{flavor}/',
87
+ })
88
+ .option('core-tarball', {
89
+ type: 'string',
90
+ describe:
91
+ 'Local React core tarball to use instead of downloading (e.g. the prebuild output). Env fallback: RN_CORE_TARBALL_PATH.',
92
+ })
93
+ .option('headers-tarball', {
94
+ type: 'string',
95
+ describe:
96
+ 'Local ReactNativeHeaders tarball to use instead of downloading. Env fallback: RN_HEADERS_TARBALL_PATH.',
97
+ })
98
+ .option('deps-tarball', {
99
+ type: 'string',
100
+ describe:
101
+ 'Local ReactNativeDependencies tarball to use instead of downloading (e.g. the deps prebuild output). Carries the headers sidecar beside the binary, so this subsumes --deps-headers-tarball for a local build. Env fallback: RN_DEPS_TARBALL_PATH.',
102
+ })
103
+ .option('deps-headers-tarball', {
104
+ type: 'string',
105
+ describe:
106
+ 'Local ReactNativeDependenciesHeaders tarball. Normally unneeded — the sidecar ships inside the ReactNativeDependencies tarball. Env fallback: RN_DEPS_HEADERS_TARBALL_PATH.',
107
+ })
108
+ .usage(
109
+ 'Usage: $0 [options]\n\nDownloads React Native iOS xcframeworks from Maven.',
110
+ )
111
+ .help()
112
+ .parseSync();
113
+
114
+ return {
115
+ version: parsed.version ?? null,
116
+ flavor: parsed.flavor.toLowerCase(),
117
+ output: parsed.output ?? null,
118
+ coreTarball:
119
+ parsed['core-tarball'] ?? process.env.RN_CORE_TARBALL_PATH ?? null,
120
+ headersTarball:
121
+ parsed['headers-tarball'] ?? process.env.RN_HEADERS_TARBALL_PATH ?? null,
122
+ depsTarball:
123
+ parsed['deps-tarball'] ?? process.env.RN_DEPS_TARBALL_PATH ?? null,
124
+ depsHeadersTarball:
125
+ parsed['deps-headers-tarball'] ??
126
+ process.env.RN_DEPS_HEADERS_TARBALL_PATH ??
127
+ null,
128
+ };
129
+ }
130
+
131
+ const MAVEN_RELEASE =
132
+ process.env.ENTERPRISE_REPOSITORY ?? 'https://repo1.maven.org/maven2';
133
+ const MAVEN_SNAPSHOT =
134
+ 'https://central.sonatype.com/repository/maven-snapshots';
135
+
136
+ function rnCoreReleaseUrl(
137
+ version /*: string */,
138
+ flavor /*: string */,
139
+ ) /*: string */ {
140
+ return (
141
+ `${MAVEN_RELEASE}/com/facebook/react/react-native-artifacts/${version}/` +
142
+ `react-native-artifacts-${version}-reactnative-core-${flavor}.tar.gz`
143
+ );
144
+ }
145
+ function rnDepsReleaseUrl(
146
+ version /*: string */,
147
+ flavor /*: string */,
148
+ ) /*: string */ {
149
+ return (
150
+ `${MAVEN_RELEASE}/com/facebook/react/react-native-artifacts/${version}/` +
151
+ `react-native-artifacts-${version}-reactnative-dependencies-${flavor}.tar.gz`
152
+ );
153
+ }
154
+ function hermesReleaseUrl(
155
+ version /*: string */,
156
+ flavor /*: string */,
157
+ ) /*: string */ {
158
+ return (
159
+ `${MAVEN_RELEASE}/com/facebook/hermes/hermes-ios/${version}/` +
160
+ `hermes-ios-${version}-hermes-ios-${flavor}.tar.gz`
161
+ );
162
+ }
163
+
164
+ /**
165
+ * Resolves a Maven snapshot URL by fetching maven-metadata.xml and extracting
166
+ * the latest timestamp+buildNumber. Mirrors computeNightlyTarballURL() in utils.js.
167
+ *
168
+ * @param {string} version Base version without -SNAPSHOT suffix (e.g. "0.85.0")
169
+ * @param {string} subGroup com/facebook/<subGroup>
170
+ * @param {string} coordinate Maven artifact coordinate (e.g. "react-native-artifacts")
171
+ * @param {string} artifactName Classifier part of the filename (e.g. "reactnative-core-debug.tar.gz")
172
+ */
173
+ async function resolveSnapshotUrl(
174
+ version /*: string */,
175
+ subGroup /*: string */,
176
+ coordinate /*: string */,
177
+ artifactName /*: string */,
178
+ ) /*: Promise<string> */ {
179
+ const metadataUrl =
180
+ `${MAVEN_SNAPSHOT}/com/facebook/${subGroup}/${coordinate}/` +
181
+ `${version}-SNAPSHOT/maven-metadata.xml`;
182
+
183
+ log(` Fetching snapshot metadata: ${metadataUrl}`);
184
+ const res = await fetch(metadataUrl);
185
+ if (!res.ok) {
186
+ throw new Error(
187
+ `Failed to fetch snapshot metadata (${res.status}): ${metadataUrl}`,
188
+ );
189
+ }
190
+ const xml = await res.text();
191
+
192
+ const ts = (xml.match(/<timestamp>(.*?)<\/timestamp>/) ?? [])[1];
193
+ const bn = (xml.match(/<buildNumber>(.*?)<\/buildNumber>/) ?? [])[1];
194
+ if (!ts || !bn) {
195
+ throw new Error(
196
+ `Could not parse timestamp/buildNumber from ${metadataUrl}`,
197
+ );
198
+ }
199
+
200
+ const fullVersion = `${version}-${ts}-${bn}`;
201
+ return (
202
+ `${MAVEN_SNAPSHOT}/com/facebook/${subGroup}/${coordinate}/` +
203
+ `${version}-SNAPSHOT/${coordinate}-${fullVersion}-${artifactName}`
204
+ );
205
+ }
206
+
207
+ async function rnCoreSnapshotUrl(
208
+ version /*: string */,
209
+ flavor /*: string */,
210
+ ) /*: Promise<string> */ {
211
+ return resolveSnapshotUrl(
212
+ version,
213
+ 'react',
214
+ 'react-native-artifacts',
215
+ `reactnative-core-${flavor}.tar.gz`,
216
+ );
217
+ }
218
+ async function rnDepsSnapshotUrl(
219
+ version /*: string */,
220
+ flavor /*: string */,
221
+ ) /*: Promise<string> */ {
222
+ return resolveSnapshotUrl(
223
+ version,
224
+ 'react',
225
+ 'react-native-artifacts',
226
+ `reactnative-dependencies-${flavor}.tar.gz`,
227
+ );
228
+ }
229
+ async function hermesSnapshotUrl(
230
+ version /*: string */,
231
+ flavor /*: string */,
232
+ ) /*: Promise<string> */ {
233
+ return resolveSnapshotUrl(
234
+ version,
235
+ 'hermes',
236
+ 'hermes-ios',
237
+ `hermes-ios-${flavor}.tar.gz`,
238
+ );
239
+ }
240
+
241
+ async function resolveNightlyVersion(
242
+ npmPackage /*: string */,
243
+ ) /*: Promise<string> */ {
244
+ log(` Resolving nightly version from npm: ${npmPackage}`);
245
+
246
+ const res = await fetch(`https://registry.npmjs.org/${npmPackage}/nightly`);
247
+ if (!res.ok) {
248
+ throw new Error(`npm lookup failed for ${npmPackage}: ${res.status}`);
249
+ }
250
+ const ver = (await res.json())?.version;
251
+ assertSafeVersion(ver, `${npmPackage}/nightly`);
252
+ log(` Resolved nightly: ${ver}`);
253
+ return ver;
254
+ }
255
+
256
+ // A version string flows into Maven URLs and local tarball filenames (which are
257
+ // then passed to tar/cp via execFileSync). Constrain it to a safe charset so a
258
+ // malformed/hostile registry response can't produce a surprising path or a
259
+ // confusing 404 — and so static analysis sees an explicit sanitizer.
260
+ function assertSafeVersion(
261
+ ver /*: unknown */,
262
+ source /*: string */,
263
+ ) /*: void */ {
264
+ if (typeof ver !== 'string' || !/^[A-Za-z0-9._-]+$/.test(ver)) {
265
+ throw new Error(
266
+ `npm response for ${source} has no usable "version" field (got: ${String(ver)})`,
267
+ );
268
+ }
269
+ }
270
+
271
+ /**
272
+ * Returns the cache-slot key for a given raw version label.
273
+ *
274
+ * Stable versions ('0.80.0', '0.81.0', …) become their own slot.
275
+ * Dev / nightly labels ('1000.0.0', 'nightly') resolve to the current
276
+ * nightly version (e.g. '0.85.0-nightly-20260515-abc') so each published
277
+ * nightly is its own slot — a new nightly invalidates automatically
278
+ * instead of sticking on a stale `1000.0.0` cache forever.
279
+ *
280
+ * If the npm registry lookup fails (offline, transient error), falls back
281
+ * to the raw label so a previously-cached slot under that label can still
282
+ * be used. A subsequent download attempt would surface the real error.
283
+ */
284
+ async function resolveCacheSlotVersion(
285
+ rawVersion /*: string */,
286
+ ) /*: Promise<string> */ {
287
+ if (rawVersion !== '1000.0.0' && rawVersion !== 'nightly') {
288
+ return rawVersion;
289
+ }
290
+ try {
291
+ return await resolveNightlyVersion('react-native');
292
+ } catch {
293
+ return rawVersion;
294
+ }
295
+ }
296
+
297
+ async function resolveLatestV1Version() /*: Promise<string> */ {
298
+ log(' Resolving latest-v1 Hermes from npm...');
299
+ // $FlowFixMe[incompatible-call] global fetch not in Flow stubs
300
+ const res = await fetch(
301
+ 'https://registry.npmjs.org/hermes-compiler/latest-v1',
302
+ );
303
+ if (!res.ok) {
304
+ throw new Error(`npm lookup failed: ${res.status}`);
305
+ }
306
+ const ver = (await res.json())?.version;
307
+ assertSafeVersion(ver, 'hermes-compiler/latest-v1');
308
+ log(` Resolved latest-v1: ${ver}`);
309
+ return ver;
310
+ }
311
+
312
+ async function exists(url /*: string */) /*: Promise<boolean> */ {
313
+ try {
314
+ // $FlowFixMe[incompatible-call] global fetch not in Flow stubs
315
+ const res = await fetch(url, {method: 'HEAD'});
316
+ return res.status === 200;
317
+ } catch {
318
+ return false;
319
+ }
320
+ }
321
+
322
+ /**
323
+ * Returns {url, version} for the React Native core xcframework tarball.
324
+ * Resolution order:
325
+ * 1. Stable release on Maven Central
326
+ * 2. Snapshot build on Sonatype
327
+ */
328
+ async function resolveRNCoreArtifact(
329
+ version /*: string */,
330
+ flavor /*: string */,
331
+ localTarball /*: ?string */,
332
+ ) /*: Promise<ResolvedArtifact> */ {
333
+ // Local-tarball override (--core-tarball / RN_CORE_TARBALL_PATH): use a
334
+ // locally built core tarball (e.g. the prebuild's output) instead of
335
+ // downloading. processArtifact() treats an existing local path as "already
336
+ // downloaded" and always re-extracts it. NOTE: distinct from CocoaPods'
337
+ // RCT_TESTONLY_RNCORE_TARBALL_PATH — that one belongs to pod install.
338
+ if (localTarball != null && localTarball !== '') {
339
+ if (!fs.existsSync(localTarball)) {
340
+ throw new Error(
341
+ `core tarball override is set to ${localTarball} but the file does not exist`,
342
+ );
343
+ }
344
+ log(` Using LOCAL core tarball: ${localTarball}`);
345
+ return {url: localTarball, version: `${version}-local`};
346
+ }
347
+ const releaseUrl = rnCoreReleaseUrl(version, flavor);
348
+ if (await exists(releaseUrl)) {
349
+ log(` Using stable release: ${releaseUrl}`);
350
+ return {url: releaseUrl, version};
351
+ }
352
+ log(` Release not found, trying snapshot...`);
353
+ const snapshotUrl = await rnCoreSnapshotUrl(version, flavor);
354
+ return {url: snapshotUrl, version};
355
+ }
356
+
357
+ /**
358
+ * Returns {url, version} for ReactNativeDependencies.
359
+ * Respects RN_DEP_VERSION env var.
360
+ */
361
+ async function resolveRNDepsArtifact(
362
+ rnVersion /*: string */,
363
+ flavor /*: string */,
364
+ localTarball /*: ?string */,
365
+ ) /*: Promise<ResolvedArtifact> */ {
366
+ // Local-tarball override (--deps-tarball / RN_DEPS_TARBALL_PATH): use a
367
+ // locally built deps tarball (the deps prebuild output) instead of
368
+ // downloading. It carries ReactNativeDependenciesHeaders.xcframework beside
369
+ // the binary, so the existing companion-staging path (COMPANION_XCFRAMEWORKS
370
+ // 'rndeps' -> ReactNativeDependenciesHeaders) supplies the sidecar too — no
371
+ // separate --deps-headers-tarball needed for a local build.
372
+ if (localTarball != null && localTarball !== '') {
373
+ if (!fs.existsSync(localTarball)) {
374
+ throw new Error(
375
+ `deps tarball override is set to ${localTarball} but the file does not exist`,
376
+ );
377
+ }
378
+ log(` Using LOCAL deps tarball: ${localTarball}`);
379
+ return {url: localTarball, version: `${rnVersion}-local`};
380
+ }
381
+ let version = process.env.RN_DEP_VERSION ?? rnVersion;
382
+ if (version === 'nightly') {
383
+ version = await resolveNightlyVersion('react-native');
384
+ }
385
+
386
+ const releaseUrl = rnDepsReleaseUrl(version, flavor);
387
+ if (await exists(releaseUrl)) {
388
+ log(` Using stable release: ${releaseUrl}`);
389
+ return {url: releaseUrl, version};
390
+ }
391
+ log(` Release not found, trying snapshot...`);
392
+ const snapshotUrl = await rnDepsSnapshotUrl(version, flavor);
393
+ return {url: snapshotUrl, version};
394
+ }
395
+
396
+ /**
397
+ * Resolves the `hermes-compiler` npm package's version from THIS project's own
398
+ * node_modules — the exact same lookup generate-spm-xcodeproj.js's
399
+ * resolveHermesCliPathSetting() uses to find the hermesc binary that will
400
+ * compile the JS bundle, and the same one react-native-xcode.sh falls back to
401
+ * for SwiftPM builds. Returns null when the package isn't resolvable (e.g.
402
+ * USE_HERMES=false apps that never installed it) so the caller can fall back
403
+ * to the npm dist-tag lookup.
404
+ */
405
+ function resolveLocalHermesCompilerVersion(
406
+ rnRoot /*: string */,
407
+ ) /*: string | null */ {
408
+ try {
409
+ const pkgPath = require.resolve('hermes-compiler/package.json', {
410
+ paths: [rnRoot],
411
+ });
412
+ // $FlowFixMe[incompatible-type] JSON.parse returns any
413
+ const pkg /*: {version: string} */ = JSON.parse(
414
+ fs.readFileSync(pkgPath, 'utf8'),
415
+ );
416
+ assertSafeVersion(pkg.version, 'local hermes-compiler/package.json');
417
+ return pkg.version;
418
+ } catch (error) {
419
+ // A MODULE_NOT_FOUND resolution failure is the expected case (e.g.
420
+ // USE_HERMES=false apps that never installed hermes-compiler) — fall back
421
+ // silently. Any other failure means hermes-compiler IS installed but its
422
+ // package.json is unreadable/malformed or carries an unsafe version; warn
423
+ // loudly rather than silently regressing to the live latest-v1 dist-tag,
424
+ // which would re-introduce the version-skew crash this resolves (#57917).
425
+ if (error.code !== 'MODULE_NOT_FOUND') {
426
+ log(
427
+ ` WARNING: hermes-compiler is installed but its version could not be resolved (${error.message}); falling back to the latest-v1 dist-tag, which may not match the pinned hermesc and can crash at launch with "Wrong bytecode version".`,
428
+ );
429
+ }
430
+ return null;
431
+ }
432
+ }
433
+
434
+ /**
435
+ * Returns {url, version} for Hermes. Hermes uses its own version space
436
+ * decoupled from React Native's nightly cadence — RN's `hermes-compiler`
437
+ * npm package publishes a `latest-v1` dist-tag that always resolves to a
438
+ * binary that's been built and uploaded to Maven.
439
+ *
440
+ * HERMES_VERSION unset → version pinned by the locally installed
441
+ * hermes-compiler package (node_modules).
442
+ * This is the SAME source
443
+ * resolveHermesCliPathSetting() reads for
444
+ * HERMES_CLI_PATH, so the downloaded VM and
445
+ * the hermesc that compiles the JS bundle
446
+ * always agree — a mismatched pair crashes at
447
+ * launch with "Wrong bytecode version" (#57917).
448
+ * Falls back to the 'latest-v1' npm dist-tag
449
+ * (RN's CocoaPods prebuild default; see
450
+ * scripts/ios-prebuild/hermes.js) only when
451
+ * hermes-compiler isn't locally resolvable.
452
+ * HERMES_VERSION=latest-v1 → 'latest-v1' dist-tag (explicit)
453
+ * HERMES_VERSION=nightly → hermes-compiler@nightly dist-tag
454
+ * HERMES_VERSION=<literal> → use that version verbatim
455
+ *
456
+ * Note: rnVersion / rawVersion are intentionally not consulted. There is no
457
+ * guarantee a hermes-ios artifact exists for any given RN nightly hash —
458
+ * tying them together produces 404s like #(repro case from spikes/MyApp).
459
+ */
460
+ async function resolveHermesArtifact(
461
+ rnVersion /*: string */,
462
+ flavor /*: string */,
463
+ rawVersion /*: string | null */,
464
+ rnRoot /*: string */,
465
+ ) /*: Promise<ResolvedArtifact> */ {
466
+ let version = process.env.HERMES_VERSION;
467
+
468
+ if (version == null) {
469
+ const localVersion = resolveLocalHermesCompilerVersion(rnRoot);
470
+ if (localVersion != null) {
471
+ log(` Using locally pinned hermes-compiler: ${localVersion}`);
472
+ }
473
+ version = localVersion ?? 'latest-v1';
474
+ }
475
+
476
+ if (version === 'nightly') {
477
+ version = await resolveNightlyVersion('hermes-compiler');
478
+ } else if (version === 'latest-v1') {
479
+ version = await resolveLatestV1Version();
480
+ }
481
+
482
+ const releaseUrl = hermesReleaseUrl(version, flavor);
483
+ if (await exists(releaseUrl)) {
484
+ log(` Using stable release: ${releaseUrl}`);
485
+ return {url: releaseUrl, version};
486
+ }
487
+ log(` Release not found, trying snapshot...`);
488
+ const snapshotUrl = await hermesSnapshotUrl(version, flavor);
489
+ return {url: snapshotUrl, version};
490
+ }
491
+
492
+ function formatBytes(bytes /*: number */) /*: string */ {
493
+ if (bytes < 1024 * 1024) {
494
+ return `${(bytes / 1024).toFixed(1)} KB`;
495
+ }
496
+ return `${(bytes / 1024 / 1024).toFixed(1)} MB`;
497
+ }
498
+
499
+ function formatSpeed(bytesPerSec /*: number */) /*: string */ {
500
+ if (bytesPerSec < 1024 * 1024) {
501
+ return `${(bytesPerSec / 1024).toFixed(0)} KB/s`;
502
+ }
503
+ return `${(bytesPerSec / 1024 / 1024).toFixed(1)} MB/s`;
504
+ }
505
+
506
+ /**
507
+ * Creates a multi-line progress display that keeps N lines pinned at the
508
+ * bottom of the terminal. Each line is prefixed and truncated to the current
509
+ * terminal width — without truncation, a long line (e.g. a FAILED message
510
+ * carrying a URL) wraps to a second row and `\x1b[2K` only clears the first,
511
+ * leaving stray fragments after the next update.
512
+ */
513
+ function createProgressDisplay(
514
+ lineCount /*: number */,
515
+ prefix /*: string */ = '',
516
+ ) /*: {update: (index: number, text: string) => void} */ {
517
+ let initialized = false;
518
+
519
+ function truncateToWidth(s /*: string */) /*: string */ {
520
+ // $FlowFixMe[prop-missing] columns lives on tty$WriteStream not stream$Writable
521
+ const cols = process.stdout.columns ?? 120;
522
+ const budget = Math.max(10, cols - 1);
523
+ let out = '';
524
+ let visLen = 0;
525
+ let i = 0;
526
+ while (i < s.length) {
527
+ if (s[i] === '\x1b' && s[i + 1] === '[') {
528
+ // CSI escape: forward through the final letter without counting.
529
+ let j = i + 2;
530
+ while (j < s.length && !/[a-zA-Z]/.test(s[j])) j++;
531
+ out += s.slice(i, j + 1);
532
+ i = j + 1;
533
+ } else {
534
+ if (visLen >= budget - 1) return out + '…\x1b[0m';
535
+ out += s[i];
536
+ visLen++;
537
+ i++;
538
+ }
539
+ }
540
+ return out;
541
+ }
542
+
543
+ function update(index /*: number */, text /*: string */) {
544
+ if (!initialized) {
545
+ for (let i = 0; i < lineCount; i++) {
546
+ process.stdout.write('\n');
547
+ }
548
+ initialized = true;
549
+ }
550
+ const moveUp = lineCount - index;
551
+ const line = truncateToWidth(prefix + text);
552
+ process.stdout.write(`\x1b[${moveUp}A\x1b[2K\r${line}\x1b[${moveUp}B\r`);
553
+ }
554
+
555
+ return {update};
556
+ }
557
+
558
+ /*::
559
+ type ProgressCallback = (label: string, downloaded: number, total: number, speed: number, done: boolean, elapsed: number) => void;
560
+ */
561
+
562
+ async function download(
563
+ url /*: string */,
564
+ destPath /*: string */,
565
+ onProgress /*:: ?: ProgressCallback */,
566
+ ) /*: Promise<void> */ {
567
+ if (fs.existsSync(destPath)) {
568
+ log(` Already cached: ${path.basename(destPath)}`);
569
+ return;
570
+ }
571
+
572
+ const tmpPath = destPath + '.download';
573
+ try {
574
+ // $FlowFixMe[incompatible-call] global fetch not in Flow stubs
575
+ const res = await fetch(url);
576
+ if (!res.ok) {
577
+ throw new Error(`HTTP ${res.status} ${res.statusText}: ${url}`);
578
+ }
579
+
580
+ const totalBytes = parseInt(res.headers.get('content-length') ?? '0', 10);
581
+ let downloadedBytes = 0;
582
+ let lastPrintTime = Date.now();
583
+ let lastPrintBytes = 0;
584
+ const startTime = Date.now();
585
+
586
+ const fileStream = fs.createWriteStream(tmpPath);
587
+
588
+ const reportProgress = (final /*: boolean */ = false) => {
589
+ const now = Date.now();
590
+ const elapsed = (now - startTime) / 1000;
591
+ const intervalMs = now - lastPrintTime;
592
+ const intervalBytes = downloadedBytes - lastPrintBytes;
593
+ const speed = intervalMs > 0 ? (intervalBytes / intervalMs) * 1000 : 0;
594
+
595
+ if (onProgress) {
596
+ onProgress(
597
+ path.basename(destPath),
598
+ downloadedBytes,
599
+ totalBytes,
600
+ speed,
601
+ final,
602
+ elapsed,
603
+ );
604
+ } else {
605
+ // Fallback: single-line progress (used when not in parallel mode)
606
+ let line = ` ${formatBytes(downloadedBytes)}`;
607
+ if (totalBytes > 0) {
608
+ const pct = ((downloadedBytes / totalBytes) * 100).toFixed(1);
609
+ line += ` / ${formatBytes(totalBytes)} (${pct}%)`;
610
+ }
611
+ line += ` @ ${formatSpeed(speed)}`;
612
+
613
+ if (final) {
614
+ const totalMb = formatBytes(downloadedBytes);
615
+ const totalSec = elapsed.toFixed(1);
616
+ const avgSpeed =
617
+ elapsed > 0 ? formatSpeed(downloadedBytes / elapsed) : '';
618
+ process.stdout.write(
619
+ `\r Done: ${totalMb} in ${totalSec}s (avg ${avgSpeed}) \n`,
620
+ );
621
+ } else {
622
+ process.stdout.write(`\r${line} `);
623
+ }
624
+ }
625
+
626
+ if (!final) {
627
+ lastPrintTime = now;
628
+ lastPrintBytes = downloadedBytes;
629
+ }
630
+ };
631
+
632
+ if (res.body) {
633
+ // fetch() returns a Web ReadableStream, not a Node.js Readable.
634
+ // Convert it so we can pipe to a file stream and track progress.
635
+ // $FlowFixMe[prop-missing] stream.Readable.fromWeb not in Flow stubs
636
+ const nodeReadable = stream.Readable.fromWeb(res.body);
637
+
638
+ await new Promise((resolve, reject) => {
639
+ let progressInterval;
640
+ try {
641
+ progressInterval = setInterval(() => reportProgress(), 500);
642
+
643
+ nodeReadable
644
+ .on('data', chunk => {
645
+ downloadedBytes += chunk.length;
646
+ })
647
+ .on('error', err => {
648
+ clearInterval(progressInterval);
649
+ reject(err);
650
+ })
651
+ .pipe(fileStream)
652
+ .on('finish', () => {
653
+ clearInterval(progressInterval);
654
+ reportProgress(true);
655
+ resolve();
656
+ })
657
+ .on('error', err => {
658
+ clearInterval(progressInterval);
659
+ reject(err);
660
+ });
661
+ } catch (err) {
662
+ if (progressInterval != null) clearInterval(progressInterval);
663
+ reject(err);
664
+ }
665
+ });
666
+ } else {
667
+ const buf = await res.arrayBuffer();
668
+ downloadedBytes = buf.byteLength;
669
+ fs.writeFileSync(tmpPath, Buffer.from(buf));
670
+ reportProgress(true);
671
+ }
672
+
673
+ fs.renameSync(tmpPath, destPath);
674
+ } catch (err) {
675
+ // Clean up partial .download temp file on failure
676
+ try {
677
+ fs.unlinkSync(tmpPath);
678
+ } catch {
679
+ // temp file may not exist yet
680
+ }
681
+ throw err;
682
+ }
683
+ }
684
+
685
+ /**
686
+ * Extracts a .tar.gz and returns the path to the first .xcframework found.
687
+ */
688
+ function extractXCFramework(
689
+ tarPath /*: string */,
690
+ extractDir /*: string */,
691
+ ) /*: string */ {
692
+ fs.mkdirSync(extractDir, {recursive: true});
693
+ log(` Extracting ${path.basename(tarPath)}...`);
694
+ execFileSync('tar', ['-xzf', tarPath, '-C', extractDir], {stdio: 'pipe'});
695
+
696
+ const found = findFirst(extractDir, name => name.endsWith('.xcframework'), 8);
697
+ if (found == null) {
698
+ throw new Error(`No .xcframework found after extracting ${tarPath}`);
699
+ }
700
+ log(` Found: ${path.relative(extractDir, found)}`);
701
+ return found;
702
+ }
703
+
704
+ function findFirst(
705
+ dir /*: string */,
706
+ predicate /*: (name: string) => boolean */,
707
+ depth /*: number */,
708
+ ) /*: string | null */ {
709
+ if (depth <= 0 || !fs.existsSync(dir)) {
710
+ return null;
711
+ }
712
+ for (const entry of fs.readdirSync(dir, {withFileTypes: true})) {
713
+ // $FlowFixMe[incompatible-type] Dirent.name is string|Buffer in Flow but always string here
714
+ const full /*: string */ = path.join(dir, entry.name);
715
+ // $FlowFixMe[incompatible-type] Dirent.name is string|Buffer in Flow but always string here
716
+ if (predicate(entry.name)) {
717
+ return full;
718
+ }
719
+ if (entry.isDirectory()) {
720
+ const hit = findFirst(full, predicate, depth - 1);
721
+ if (hit != null) {
722
+ return hit;
723
+ }
724
+ }
725
+ }
726
+ return null;
727
+ }
728
+
729
+ /**
730
+ * The hermes-ios tarball ships its public C++ API headers in
731
+ * `destroot/include/hermes` alongside the framework — which extractXCFramework
732
+ * discards (it keeps only the .xcframework). Stage the `hermes/` namespace into
733
+ * `<outputDir>/hermes-headers/hermes` so headers-compose can fold it into
734
+ * ReactNativeHeaders (making `<hermes/hermes.h>` resolve for any RN-linking
735
+ * target). Only `hermes/` is staged — `jsi/` is already vended elsewhere.
736
+ * Best-effort: a tarball without these headers just leaves hermes unavailable.
737
+ */
738
+ function stageHermesHeaders(
739
+ extractDir /*: string */,
740
+ outputDir /*: string */,
741
+ ) /*: void */ {
742
+ let includeDir = path.join(extractDir, 'destroot', 'include');
743
+ if (!fs.existsSync(path.join(includeDir, 'hermes', 'hermes.h'))) {
744
+ // Fall back to locating the include dir wherever it landed in the tarball.
745
+ const hit = findFirst(extractDir, name => name === 'include', 8);
746
+ if (hit != null) {
747
+ includeDir = hit;
748
+ }
749
+ }
750
+ const src = path.join(includeDir, 'hermes');
751
+ if (!fs.existsSync(path.join(src, 'hermes.h'))) {
752
+ log(' Hermes public headers not found in tarball — skipping header stage');
753
+ return;
754
+ }
755
+ const destRoot = path.join(outputDir, 'hermes-headers');
756
+ const dest = path.join(destRoot, 'hermes');
757
+ fs.rmSync(dest, {recursive: true, force: true});
758
+ fs.mkdirSync(destRoot, {recursive: true});
759
+ execFileSync('/bin/cp', ['-R', src, dest], {stdio: 'pipe'});
760
+ log(' Staged Hermes public headers → hermes-headers/hermes');
761
+ }
762
+
763
+ const DEPS_HEADERS_NAME = 'ReactNativeDependenciesHeaders';
764
+
765
+ // Headers-only companion xcframeworks that ship INSIDE another artifact's
766
+ // tarball: the ReactCore tarball carries ReactNativeHeaders.xcframework
767
+ // beside React.xcframework, and the ReactNativeDependencies tarball carries
768
+ // the ReactNativeDependenciesHeaders sidecar beside the binary (the binary is
769
+ // framework-type, so only the LIBRARY-type sidecar can serve the deps
770
+ // namespaces — folly/glog/boost/... — to SwiftPM; ReactNativeHeaders is
771
+ // pure-RN). extractXCFramework keeps only the first xcframework, so
772
+ // companions are staged separately into their own
773
+ // `<outputDir>/<name>.xcframework`.
774
+ const COMPANION_XCFRAMEWORKS /*: {[label: string]: string} */ = {
775
+ 'react-core': 'ReactNativeHeaders',
776
+ rndeps: DEPS_HEADERS_NAME,
777
+ };
778
+
779
+ /**
780
+ * Stages a companion xcframework out of an extract dir. Returns true when
781
+ * staged; false when the tarball predates the companion.
782
+ */
783
+ function stageCompanionXcframework(
784
+ extractDir /*: string */,
785
+ outputDir /*: string */,
786
+ name /*: string */,
787
+ ) /*: boolean */ {
788
+ const src = findFirst(extractDir, n => n === `${name}.xcframework`, 8);
789
+ if (src == null) {
790
+ return false;
791
+ }
792
+ const dest = path.join(outputDir, `${name}.xcframework`);
793
+ fs.rmSync(dest, {recursive: true, force: true});
794
+ fs.renameSync(src, dest);
795
+ log(` Staged companion ${name}.xcframework`);
796
+ return true;
797
+ }
798
+
799
+ /**
800
+ * Self-heal: stage a companion xcframework into an already-extracted slot
801
+ * (the fast path skips extraction, so the companion was never staged).
802
+ * Prefers a CACHED tarball (no network); downloads only as a last resort.
803
+ */
804
+ async function ensureCompanionStaged(
805
+ url /*: string */,
806
+ downloadDir /*: string */,
807
+ sharedTarballName /*: ?string */,
808
+ outputDir /*: string */,
809
+ name /*: string */,
810
+ ) /*: Promise<void> */ {
811
+ const candidates = [
812
+ !/^https?:\/\//.test(url) ? url : null, // local-tarball override
813
+ path.join(downloadDir, url.split('/').pop() ?? ''),
814
+ sharedTarballName != null
815
+ ? path.join(sharedCacheDir(), sharedTarballName)
816
+ : null,
817
+ ].filter(Boolean);
818
+ let tarPath /*: ?string */ = candidates.find(
819
+ p => p != null && fs.existsSync(p),
820
+ );
821
+ if (tarPath == null) {
822
+ if (!/^https?:\/\//.test(url)) {
823
+ return; // local override missing — nothing to recover from
824
+ }
825
+ const localPath = path.join(
826
+ downloadDir,
827
+ url.split('/').pop() ?? 'artifact.tar.gz',
828
+ );
829
+ fs.mkdirSync(downloadDir, {recursive: true});
830
+ await download(url, localPath);
831
+ tarPath = localPath;
832
+ }
833
+ const tmp = path.join(outputDir, `.companion-tmp-${name}`);
834
+ fs.rmSync(tmp, {recursive: true, force: true});
835
+ fs.mkdirSync(tmp, {recursive: true});
836
+ try {
837
+ execFileSync('tar', ['-xzf', tarPath, '-C', tmp], {stdio: 'pipe'});
838
+ stageCompanionXcframework(tmp, outputDir, name);
839
+ } finally {
840
+ fs.rmSync(tmp, {recursive: true, force: true});
841
+ }
842
+ }
843
+
844
+ /**
845
+ * Self-heal: stage Hermes headers into an already-extracted slot (the fast
846
+ * path skips extraction, so the headers were never staged). Prefers a CACHED
847
+ * hermes tarball (no network); downloads only as a last resort so the slot
848
+ * can't get stuck "incomplete" forever. No-op only when the headers can't be
849
+ * obtained at all (e.g. a missing local-tarball override).
850
+ */
851
+ async function ensureHermesHeadersStaged(
852
+ url /*: string */,
853
+ downloadDir /*: string */,
854
+ sharedTarballName /*: ?string */,
855
+ outputDir /*: string */,
856
+ ) /*: Promise<void> */ {
857
+ const candidates = [
858
+ !/^https?:\/\//.test(url) ? url : null, // local-tarball override
859
+ path.join(downloadDir, url.split('/').pop() ?? ''),
860
+ sharedTarballName != null
861
+ ? path.join(sharedCacheDir(), sharedTarballName)
862
+ : null,
863
+ ].filter(Boolean);
864
+ let tarPath /*: ?string */ = candidates.find(
865
+ p => p != null && fs.existsSync(p),
866
+ );
867
+ if (tarPath == null) {
868
+ if (!/^https?:\/\//.test(url)) {
869
+ return; // local override missing — nothing to recover from
870
+ }
871
+ const localPath = path.join(
872
+ downloadDir,
873
+ url.split('/').pop() ?? 'hermes.tar.gz',
874
+ );
875
+ fs.mkdirSync(downloadDir, {recursive: true});
876
+ await download(url, localPath);
877
+ tarPath = localPath;
878
+ }
879
+ const tmp = path.join(outputDir, '.hermes-hdr-tmp');
880
+ fs.rmSync(tmp, {recursive: true, force: true});
881
+ fs.mkdirSync(tmp, {recursive: true});
882
+ try {
883
+ execFileSync('tar', ['-xzf', tarPath, '-C', tmp], {stdio: 'pipe'});
884
+ stageHermesHeaders(tmp, outputDir);
885
+ } finally {
886
+ fs.rmSync(tmp, {recursive: true, force: true});
887
+ }
888
+ }
889
+
890
+ /**
891
+ * Downloads a tarball, extracts the xcframework, and places it directly in
892
+ * the output directory as <xcframeworkName>.xcframework/.
893
+ *
894
+ * SPM binaryTarget(path:) accepts a bare .xcframework directory — no zip or
895
+ * checksum needed for local path-based targets.
896
+ *
897
+ * @param {string} label Internal label (used for log messages)
898
+ * @param {string} xcframeworkName The SPM target name (e.g. "React", "hermes-engine")
899
+ * @param resolvedArtifact {url, version} from resolve*Artifact()
900
+ * @param {string} downloadDir Where to cache downloaded tarballs
901
+ * @param {string} outputDir Where to place the final <name>.xcframework directory
902
+ * @param sharedTarballName Filename in the flat shared cache to reuse/populate
903
+ * (matches CocoaPods' convention), or null to not share.
904
+ */
905
+ async function processArtifact(
906
+ label /*: string */,
907
+ xcframeworkName /*: string */,
908
+ resolvedArtifact /*: ResolvedArtifact */,
909
+ downloadDir /*: string */,
910
+ outputDir /*: string */,
911
+ onProgress /*:: ?: ProgressCallback */,
912
+ sharedTarballName /*:: ?: ?string */,
913
+ ) /*: Promise<ProcessResult> */ {
914
+ const {url, version} = resolvedArtifact;
915
+
916
+ const destXcfwPath = path.join(outputDir, `${xcframeworkName}.xcframework`);
917
+ // Local-tarball override: `url` is an existing local file. Always
918
+ // re-extract (a changed local tarball must win over a previous extraction)
919
+ // and never touch the shared cache.
920
+ const isLocalTarball = !/^https?:\/\//.test(url) && fs.existsSync(url);
921
+ if (isLocalTarball && fs.existsSync(destXcfwPath)) {
922
+ fs.rmSync(destXcfwPath, {recursive: true, force: true});
923
+ }
924
+ if (fs.existsSync(destXcfwPath)) {
925
+ if (onProgress) {
926
+ onProgress(xcframeworkName, 0, 0, 0, true, 0);
927
+ } else {
928
+ log(` Already extracted: ${xcframeworkName}.xcframework`);
929
+ }
930
+ // The xcframework is cached, but a slot from older tooling won't have the
931
+ // Hermes headers staged. Backfill them from a cached tarball (no network).
932
+ if (
933
+ label === 'hermes' &&
934
+ !fs.existsSync(path.join(outputDir, 'hermes-headers', 'hermes'))
935
+ ) {
936
+ try {
937
+ await ensureHermesHeadersStaged(
938
+ url,
939
+ downloadDir,
940
+ sharedTarballName,
941
+ outputDir,
942
+ );
943
+ } catch (e) {
944
+ log(` Hermes header backfill failed (${e.message}) — continuing`);
945
+ }
946
+ }
947
+ // Same for the headers-only companions (ReactNativeHeaders from the core
948
+ // tarball, the ReactNativeDependenciesHeaders sidecar from the deps
949
+ // tarball): backfill into slots extracted by older tooling from the
950
+ // cached tarball.
951
+ const companion = COMPANION_XCFRAMEWORKS[label];
952
+ if (
953
+ companion != null &&
954
+ !fs.existsSync(path.join(outputDir, `${companion}.xcframework`))
955
+ ) {
956
+ try {
957
+ await ensureCompanionStaged(
958
+ url,
959
+ downloadDir,
960
+ sharedTarballName,
961
+ outputDir,
962
+ companion,
963
+ );
964
+ } catch (e) {
965
+ log(` ${companion} backfill failed (${e.message}) — continuing`);
966
+ }
967
+ }
968
+ return {label, version, xcframeworkPath: destXcfwPath, url};
969
+ }
970
+
971
+ // Tarball acquisition: prefer the flat shared cache (~/Library/Caches/
972
+ // ReactNative/<name>) that CocoaPods also populates, so SPM and `pod install`
973
+ // reuse the same download. RCT_SKIP_CACHES=1 bypasses it (mirrors CocoaPods).
974
+ const skipCaches = process.env.RCT_SKIP_CACHES === '1';
975
+ const sharedPath =
976
+ !skipCaches && sharedTarballName != null
977
+ ? path.join(sharedCacheDir(), sharedTarballName)
978
+ : null;
979
+
980
+ const downloadAndCache = async () /*: Promise<string> */ => {
981
+ const tarName = url.split('/').pop() ?? '';
982
+ const localPath = path.join(downloadDir, tarName);
983
+ await download(
984
+ url,
985
+ localPath,
986
+ onProgress
987
+ ? (name, downloaded, total, speed, done, elapsed) =>
988
+ onProgress(xcframeworkName, downloaded, total, speed, done, elapsed)
989
+ : undefined,
990
+ );
991
+ // Best-effort: save into the flat shared cache for future SPM/CocoaPods runs.
992
+ if (sharedPath != null) {
993
+ try {
994
+ fs.mkdirSync(sharedCacheDir(), {recursive: true});
995
+ fs.copyFileSync(localPath, sharedPath);
996
+ } catch {
997
+ // ignore shared-cache write failures
998
+ }
999
+ }
1000
+ return localPath;
1001
+ };
1002
+
1003
+ let tarPath /*: string */ = '';
1004
+ let fromShared = false;
1005
+ if (isLocalTarball) {
1006
+ tarPath = url;
1007
+ if (onProgress) {
1008
+ onProgress(xcframeworkName, 0, 0, 0, true, 0);
1009
+ } else {
1010
+ log(` Using local tarball: ${url}`);
1011
+ }
1012
+ } else if (sharedPath != null && fs.existsSync(sharedPath)) {
1013
+ // Shared cache hit — skip the download entirely.
1014
+ tarPath = sharedPath;
1015
+ fromShared = true;
1016
+ if (onProgress) {
1017
+ onProgress(xcframeworkName, 0, 0, 0, true, 0);
1018
+ } else {
1019
+ log(` Shared cache hit: ${path.basename(sharedPath)}`);
1020
+ }
1021
+ } else {
1022
+ tarPath = await downloadAndCache();
1023
+ }
1024
+
1025
+ // Extract to a temp dir, rename to the expected name, then move into outputDir
1026
+ if (onProgress) {
1027
+ onProgress(xcframeworkName, 0, 0, 0, false, 0);
1028
+ }
1029
+ const tmpExtractDir = path.join(outputDir, '.extract-tmp', label);
1030
+ let xcfwPath /*: string */ = '';
1031
+ try {
1032
+ xcfwPath = extractXCFramework(tarPath, tmpExtractDir);
1033
+ } catch (e) {
1034
+ // A poisoned shared tarball must not permanently break SPM: drop it and
1035
+ // re-download to the local dir once.
1036
+ if (fromShared) {
1037
+ try {
1038
+ fs.rmSync(tarPath, {force: true});
1039
+ } catch {}
1040
+ tarPath = await downloadAndCache();
1041
+ xcfwPath = extractXCFramework(tarPath, tmpExtractDir);
1042
+ } else {
1043
+ throw e;
1044
+ }
1045
+ }
1046
+
1047
+ const actualBasename = path.basename(xcfwPath);
1048
+ const expectedBasename = `${xcframeworkName}.xcframework`;
1049
+ if (actualBasename !== expectedBasename) {
1050
+ const renamed = path.join(tmpExtractDir, expectedBasename);
1051
+ fs.renameSync(xcfwPath, renamed);
1052
+ fs.renameSync(renamed, destXcfwPath);
1053
+ } else {
1054
+ fs.renameSync(xcfwPath, destXcfwPath);
1055
+ }
1056
+
1057
+ // Hermes ships its public headers in the same tarball; stage them next to
1058
+ // the xcframeworks so headers-compose can fold `hermes/` into
1059
+ // ReactNativeHeaders. (Other artifacts have no such headers — no-op.)
1060
+ if (label === 'hermes') {
1061
+ try {
1062
+ stageHermesHeaders(tmpExtractDir, outputDir);
1063
+ } catch (e) {
1064
+ log(` Hermes header staging failed (${e.message}) — continuing`);
1065
+ }
1066
+ }
1067
+
1068
+ // Headers-only companions ship inside the same tarball (ReactNativeHeaders
1069
+ // in the core tarball, the ReactNativeDependenciesHeaders sidecar in the
1070
+ // deps tarball) — stage them as their own artifacts.
1071
+ const companionName = COMPANION_XCFRAMEWORKS[label];
1072
+ if (companionName != null) {
1073
+ if (!stageCompanionXcframework(tmpExtractDir, outputDir, companionName)) {
1074
+ log(
1075
+ ` ${companionName}.xcframework not present in the ${label} tarball (pre-companion artifact)`,
1076
+ );
1077
+ }
1078
+ }
1079
+
1080
+ fs.rmSync(tmpExtractDir, {recursive: true, force: true});
1081
+
1082
+ return {label, version, xcframeworkPath: destXcfwPath, url};
1083
+ }
1084
+
1085
+ async function main(argv /*:: ?: Array<string> */) /*: Promise<void> */ {
1086
+ const args = parseArgs(argv ?? process.argv.slice(2));
1087
+ const rnRoot = path.resolve(__dirname, '../..');
1088
+ const flavor = args.flavor;
1089
+
1090
+ // Resolve base RN version
1091
+ // rawVersion preserves the original --version arg (e.g. 'nightly') before resolution.
1092
+ // It is passed to Hermes resolution so it can independently resolve its nightly.
1093
+ let rawVersion = args.version;
1094
+ let rnVersion = args.version;
1095
+ if (rnVersion == null) {
1096
+ // $FlowFixMe[incompatible-type] JSON.parse returns any
1097
+ const rnPkg /*: {version: string} */ = JSON.parse(
1098
+ fs.readFileSync(path.join(rnRoot, 'package.json'), 'utf8'),
1099
+ );
1100
+ rnVersion = rnPkg.version;
1101
+ }
1102
+ if (rnVersion === '1000.0.0') {
1103
+ log('Detected dev version (1000.0.0), resolving as nightly...');
1104
+ rawVersion = 'nightly';
1105
+ }
1106
+ if (rnVersion === 'nightly' || rnVersion === '1000.0.0') {
1107
+ rnVersion = await resolveNightlyVersion('react-native');
1108
+ }
1109
+ if (rnVersion == null) {
1110
+ die('Could not determine RN version');
1111
+ }
1112
+ // Re-bind to const so Flow keeps the non-null narrowing across the closures
1113
+ // below (let-bound vars are widened across function boundaries).
1114
+ const resolvedRnVersion /*: string */ = rnVersion;
1115
+
1116
+ // Cache key: stable versions slot under their own number. Dev / nightly
1117
+ // labels use the resolved nightly hash (e.g. "0.85.0-nightly-20260515-abc")
1118
+ // so each published nightly is its own slot — picks up new specs and fixes
1119
+ // automatically instead of sticking on a stale "1000.0.0" cache forever.
1120
+ const cacheVersionKey =
1121
+ rawVersion === 'nightly' || rawVersion === '1000.0.0' || rawVersion == null
1122
+ ? resolvedRnVersion
1123
+ : rawVersion;
1124
+ const outputDir =
1125
+ args.output != null
1126
+ ? path.resolve(args.output)
1127
+ : defaultCacheDir(cacheVersionKey, flavor);
1128
+ // Tarballs are cached in a .downloads/ subdirectory to keep them separate
1129
+ // from the extracted .xcframework directories.
1130
+ const downloadDir = path.join(outputDir, '.downloads');
1131
+
1132
+ fs.mkdirSync(outputDir, {recursive: true});
1133
+ fs.mkdirSync(downloadDir, {recursive: true});
1134
+
1135
+ log(`RN version : ${resolvedRnVersion}`);
1136
+ log(`Flavor : ${flavor}`);
1137
+ log(`Output : ${displayPath(outputDir)}`);
1138
+ log('');
1139
+
1140
+ // Download all three artifacts in parallel for faster setup
1141
+ log('Downloading artifacts in parallel...');
1142
+
1143
+ // `sharedName` builds the flat shared-cache filename in the canonical
1144
+ // ~/Library/Caches/ReactNative/ dir, matching the names other RN tooling uses
1145
+ // (CocoaPods' rncore.rb / rndependencies.rb for core+deps, and the hermes
1146
+ // prebuilt tarball name) so SPM and `pod install` reuse the same downloads.
1147
+ // `v` is each artifact's resolved version (RN version for core/deps, the
1148
+ // hermes-ios version for hermes).
1149
+ const artifactSpecs = [
1150
+ {
1151
+ label: 'react-core',
1152
+ name: 'React',
1153
+ resolve: () =>
1154
+ resolveRNCoreArtifact(resolvedRnVersion, flavor, args.coreTarball),
1155
+ // Local overrides skip the shared cache (test artifacts must not
1156
+ // poison the canonical downloads).
1157
+ sharedName:
1158
+ args.coreTarball != null
1159
+ ? null
1160
+ : (v /*: string */) => `reactnative-core-${v}-${flavor}.tar.gz`,
1161
+ },
1162
+ {
1163
+ label: 'rndeps',
1164
+ name: 'ReactNativeDependencies',
1165
+ resolve: () =>
1166
+ resolveRNDepsArtifact(resolvedRnVersion, flavor, args.depsTarball),
1167
+ // Local override skips the shared cache (as with core) so a local deps
1168
+ // build can't poison the canonical downloads.
1169
+ sharedName:
1170
+ args.depsTarball != null
1171
+ ? null
1172
+ : (v /*: string */) =>
1173
+ `reactnative-dependencies-${v}-${flavor}.tar.gz`,
1174
+ },
1175
+ {
1176
+ label: 'hermes',
1177
+ name: 'hermes-engine',
1178
+ resolve: () =>
1179
+ resolveHermesArtifact(resolvedRnVersion, flavor, rawVersion, rnRoot),
1180
+ sharedName: (v /*: string */) => `hermes-ios-${v}-${flavor}.tar.gz`,
1181
+ },
1182
+ ];
1183
+
1184
+ // ReactNativeHeaders is normally staged straight out of the ReactCore
1185
+ // tarball (it ships beside React.xcframework). The override exists for
1186
+ // testing a standalone headers tarball (e.g. the prebuild output at
1187
+ // .build/output/xcframeworks/<flavor>/ReactNativeHeaders.xcframework.tar.gz,
1188
+ // published on Maven under classifier reactnative-headers-<flavor>).
1189
+ const headersTarball = args.headersTarball;
1190
+ if (headersTarball != null && headersTarball !== '') {
1191
+ if (!fs.existsSync(headersTarball)) {
1192
+ die(
1193
+ `headers tarball override is set to ${headersTarball} but the file does not exist`,
1194
+ );
1195
+ }
1196
+ artifactSpecs.push({
1197
+ label: 'rnheaders',
1198
+ name: 'ReactNativeHeaders',
1199
+ resolve: () =>
1200
+ Promise.resolve({
1201
+ url: headersTarball,
1202
+ version: `${resolvedRnVersion}-local`,
1203
+ }),
1204
+ sharedName: null,
1205
+ });
1206
+ }
1207
+
1208
+ // ReactNativeDependenciesHeaders: normally staged straight out of the deps
1209
+ // tarball (the sidecar ships inside it). The override exists for testing a
1210
+ // standalone sidecar tarball (classifier
1211
+ // reactnative-dependencies-headers-<flavor>).
1212
+ const depsHeadersTarball = args.depsHeadersTarball;
1213
+ if (depsHeadersTarball != null && depsHeadersTarball !== '') {
1214
+ if (!fs.existsSync(depsHeadersTarball)) {
1215
+ die(
1216
+ `deps-headers tarball override is set to ${depsHeadersTarball} but the file does not exist`,
1217
+ );
1218
+ }
1219
+ artifactSpecs.push({
1220
+ label: 'rndeps-headers',
1221
+ name: DEPS_HEADERS_NAME,
1222
+ resolve: () =>
1223
+ Promise.resolve({
1224
+ url: depsHeadersTarball,
1225
+ version: `${resolvedRnVersion}-local`,
1226
+ }),
1227
+ sharedName: null,
1228
+ });
1229
+ }
1230
+
1231
+ const progress = createProgressDisplay(
1232
+ artifactSpecs.length,
1233
+ '\x1b[32m[download-spm-artifacts]\x1b[0m ',
1234
+ );
1235
+
1236
+ const makeCallback = (index /*: number */) /*: ProgressCallback */ =>
1237
+ (name, downloaded, total, speed, done, elapsed) => {
1238
+ if (done && downloaded === 0 && total === 0) {
1239
+ progress.update(index, ` ${name}: already cached`);
1240
+ } else if (done) {
1241
+ const avg = elapsed > 0 ? formatSpeed(downloaded / elapsed) : '';
1242
+ progress.update(
1243
+ index,
1244
+ ` ${name}: done ${formatBytes(downloaded)} in ${elapsed.toFixed(1)}s (${avg})`,
1245
+ );
1246
+ } else if (total > 0) {
1247
+ const pct = ((downloaded / total) * 100).toFixed(1);
1248
+ progress.update(
1249
+ index,
1250
+ ` ${name}: ${formatBytes(downloaded)} / ${formatBytes(total)} (${pct}%) @ ${formatSpeed(speed)}`,
1251
+ );
1252
+ } else {
1253
+ progress.update(index, ` ${name}: extracting...`);
1254
+ }
1255
+ };
1256
+
1257
+ const results /*: Array<ArtifactResultEntry> */ = await Promise.all(
1258
+ artifactSpecs.map(async (spec, index) => {
1259
+ try {
1260
+ const artifact = await spec.resolve();
1261
+ progress.update(index, ` ${spec.name}: resolving...`);
1262
+ const sharedTarballName =
1263
+ spec.sharedName != null ? spec.sharedName(artifact.version) : null;
1264
+ const r = await processArtifact(
1265
+ spec.label,
1266
+ spec.name,
1267
+ artifact,
1268
+ downloadDir,
1269
+ outputDir,
1270
+ makeCallback(index),
1271
+ sharedTarballName,
1272
+ );
1273
+ const ok /*: ArtifactResultEntry */ = {
1274
+ name: spec.name,
1275
+ error: undefined,
1276
+ ...r,
1277
+ };
1278
+ return ok;
1279
+ } catch (e) {
1280
+ progress.update(index, ` ${spec.name}: FAILED - ${e.message}`);
1281
+ const failed /*: ArtifactResultEntry */ = {
1282
+ name: spec.name,
1283
+ error: e.message,
1284
+ };
1285
+ return failed;
1286
+ }
1287
+ }),
1288
+ );
1289
+ log('');
1290
+
1291
+ const succeeded = results.filter(r => r.error == null);
1292
+ const failed = results.filter(r => r.error != null);
1293
+
1294
+ log('='.repeat(60));
1295
+ if (succeeded.length > 0) {
1296
+ log('Extracted xcframeworks:');
1297
+ log('');
1298
+ for (const r of succeeded) {
1299
+ if (r.error == null) {
1300
+ log(` ${r.name}`);
1301
+ log(` path: ${displayPath(r.xcframeworkPath)}`);
1302
+ log('');
1303
+ }
1304
+ }
1305
+ }
1306
+ // Abort on ANY failure — every artifact (React, ReactNativeDependencies,
1307
+ // hermes-engine + the headers companions) is required; proceeding with a
1308
+ // partial set would only surface as a confusing build error in Xcode. We
1309
+ // also intentionally do NOT
1310
+ // write artifacts.json when there are failures: the orchestrator uses its
1311
+ // presence as the "already present" signal, so a partial write would mask
1312
+ // the problem and prevent retries.
1313
+ if (failed.length > 0) {
1314
+ log('Failed:');
1315
+ for (const r of failed) {
1316
+ warn(` ${r.name}: ${r.error ?? 'unknown error'}`);
1317
+ }
1318
+ die(
1319
+ `Failed to download ${failed.length} of ${results.length} artifact(s): ` +
1320
+ failed.map(r => r.name).join(', '),
1321
+ );
1322
+ }
1323
+
1324
+ // Write artifacts.json only on full success.
1325
+ const artifactsJson /*: {[string]: {xcframeworkPath: string, url: string}} */ =
1326
+ {};
1327
+ for (const r of succeeded) {
1328
+ if (r.error == null) {
1329
+ artifactsJson[r.name] = {xcframeworkPath: r.xcframeworkPath, url: r.url};
1330
+ }
1331
+ }
1332
+ // The headers-only companions are staged by their parent's extraction (or
1333
+ // by the --headers-tarball / --deps-headers-tarball overrides above, which
1334
+ // already produced entries). A slot without them cannot resolve any
1335
+ // non-React namespace (ReactNativeHeaders) or the <folly/...>-style deps
1336
+ // includes (the sidecar; ReactNativeHeaders is pure-RN) — fail closed
1337
+ // rather than hand Xcode a package graph that breaks with header-not-found
1338
+ // errors much later.
1339
+ const companions = [
1340
+ {
1341
+ name: 'ReactNativeHeaders',
1342
+ parent: 'React',
1343
+ advice:
1344
+ 'The React core tarball predates the headers-spec layout — use a ' +
1345
+ 'matching react-native version, or pass --headers-tarball / ' +
1346
+ 'RN_HEADERS_TARBALL_PATH.',
1347
+ },
1348
+ {
1349
+ name: DEPS_HEADERS_NAME,
1350
+ parent: 'ReactNativeDependencies',
1351
+ advice:
1352
+ 'The ReactNativeDependencies tarball predates the headers sidecar — ' +
1353
+ 'use a matching react-native version, or pass ' +
1354
+ '--deps-headers-tarball / RN_DEPS_HEADERS_TARBALL_PATH.',
1355
+ },
1356
+ ];
1357
+ for (const {name, parent, advice} of companions) {
1358
+ if (artifactsJson[name] != null) {
1359
+ continue;
1360
+ }
1361
+ const companionPath = path.join(outputDir, `${name}.xcframework`);
1362
+ if (!fs.existsSync(companionPath)) {
1363
+ die(`${name}.xcframework is missing from the artifact slot. ${advice}`);
1364
+ }
1365
+ const parentEntry = artifactsJson[parent];
1366
+ artifactsJson[name] = {
1367
+ xcframeworkPath: companionPath,
1368
+ url: parentEntry != null ? parentEntry.url : '',
1369
+ };
1370
+ }
1371
+ const artifactsJsonPath = path.join(outputDir, 'artifacts.json');
1372
+ fs.writeFileSync(
1373
+ artifactsJsonPath,
1374
+ JSON.stringify(artifactsJson, null, 2) + '\n',
1375
+ 'utf8',
1376
+ );
1377
+ log(`Artifact index: ${displayPath(artifactsJsonPath)}`);
1378
+ }
1379
+
1380
+ // Canonical set of xcframework artifacts an SPM slot must provide. The
1381
+ // xcodeproj references them as package products; missing any one surfaces as
1382
+ // "Missing package product" only at Xcode build time. Used by
1383
+ // `setup-apple-spm.js` to validate the cache before skipping a re-download.
1384
+ // ReactNativeHeaders (pure-RN) and ReactNativeDependenciesHeaders (the deps
1385
+ // sidecar) are the two headers-only targets — both required: without the
1386
+ // sidecar no <folly/...>-style include resolves.
1387
+ const REQUIRED_ARTIFACTS = [
1388
+ 'React',
1389
+ 'ReactNativeHeaders',
1390
+ 'ReactNativeDependencies',
1391
+ 'ReactNativeDependenciesHeaders',
1392
+ 'hermes-engine',
1393
+ ];
1394
+
1395
+ /**
1396
+ * Returns null if `artifacts.json` is present, complete (covers every entry
1397
+ * in REQUIRED_ARTIFACTS), and each entry's xcframework dir exists on disk.
1398
+ * Otherwise returns a string describing what's wrong — caller treats that as
1399
+ * "needs re-download". Catches stale partial-write states from older runs
1400
+ * that didn't fail loudly on download errors.
1401
+ */
1402
+ function validateArtifactsCache(
1403
+ artifactsDir /*: string */,
1404
+ ) /*: string | null */ {
1405
+ const artifactsJsonPath = path.join(artifactsDir, 'artifacts.json');
1406
+ if (!fs.existsSync(artifactsJsonPath)) {
1407
+ return `artifacts.json missing in ${artifactsDir}`;
1408
+ }
1409
+ let json /*: {[string]: {xcframeworkPath: string, url: string}} */ = {};
1410
+ try {
1411
+ // $FlowFixMe[unclear-type] JSON.parse returns any
1412
+ const parsed /*: any */ = JSON.parse(
1413
+ fs.readFileSync(artifactsJsonPath, 'utf8'),
1414
+ );
1415
+ json = parsed;
1416
+ } catch (e) {
1417
+ return `artifacts.json is unreadable: ${e.message}`;
1418
+ }
1419
+ for (const name of REQUIRED_ARTIFACTS) {
1420
+ const entry = json[name];
1421
+ if (entry == null) {
1422
+ return `artifacts.json missing entry for "${name}"`;
1423
+ }
1424
+ if (!fs.existsSync(entry.xcframeworkPath)) {
1425
+ return `xcframework for "${name}" not found at ${entry.xcframeworkPath}`;
1426
+ }
1427
+ }
1428
+ // The Hermes public headers must be staged for headers-compose to fold
1429
+ // `<hermes/...>` into ReactNativeHeaders. A slot from older tooling won't
1430
+ // have them — report incomplete so ensureArtifacts re-runs the download
1431
+ // (which, with the xcframeworks already present, only backfills the headers
1432
+ // from the cached tarball — no network re-download).
1433
+ if (!fs.existsSync(path.join(artifactsDir, 'hermes-headers', 'hermes'))) {
1434
+ return 'Hermes public headers not staged (hermes-headers/hermes)';
1435
+ }
1436
+ return null;
1437
+ }
1438
+
1439
+ if (require.main === module) {
1440
+ main().catch(err => {
1441
+ console.error(`\x1b[31m${err.message}\x1b[0m`);
1442
+ process.exitCode = 1;
1443
+ });
1444
+ }
1445
+
1446
+ module.exports = {
1447
+ main,
1448
+ resolveCacheSlotVersion,
1449
+ resolveHermesArtifact,
1450
+ resolveLocalHermesCompilerVersion,
1451
+ REQUIRED_ARTIFACTS,
1452
+ validateArtifactsCache,
1453
+ // Exposed for unit tests (pure / fetch-stubbable helpers).
1454
+ rnCoreReleaseUrl,
1455
+ rnDepsReleaseUrl,
1456
+ hermesReleaseUrl,
1457
+ resolveSnapshotUrl,
1458
+ resolveNightlyVersion,
1459
+ resolveLatestV1Version,
1460
+ resolveRNCoreArtifact,
1461
+ resolveRNDepsArtifact,
1462
+ exists,
1463
+ formatBytes,
1464
+ formatSpeed,
1465
+ findFirst,
1466
+ extractXCFramework,
1467
+ };