react-native-tvos 0.83.1-0 → 0.84.0-0rc0

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 (563) hide show
  1. package/Libraries/Animated/AnimatedEvent.js +2 -2
  2. package/Libraries/Animated/animations/Animation.js +1 -3
  3. package/Libraries/Animated/createAnimatedComponent.js +8 -5
  4. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  5. package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
  6. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  7. package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
  8. package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
  9. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
  10. package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
  11. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  12. package/Libraries/AppDelegate/RCTReactNativeFactory.h +3 -0
  13. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +33 -31
  14. package/Libraries/AppDelegate/RCTRootViewFactory.h +10 -4
  15. package/Libraries/AppDelegate/RCTRootViewFactory.mm +21 -5
  16. package/Libraries/BatchedBridge/MessageQueue.js +24 -22
  17. package/Libraries/Blob/RCTBlobPlugins.mm +14 -14
  18. package/Libraries/Blob/URL.js +34 -3
  19. package/Libraries/Blob/URLSearchParams.js +1 -0
  20. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +9 -1
  21. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
  22. package/Libraries/Components/Button.js +2 -5
  23. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
  24. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
  25. package/Libraries/Components/Keyboard/Keyboard.js +2 -2
  26. package/Libraries/Components/Pressable/Pressable.js +8 -8
  27. package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
  28. package/Libraries/Components/TextInput/TextInput.js +33 -34
  29. package/Libraries/Components/Touchable/PooledClass.js +2 -2
  30. package/Libraries/Components/Touchable/TouchableBounce.js +6 -6
  31. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  32. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
  33. package/Libraries/Components/View/ViewPropTypes.js +16 -6
  34. package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
  35. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  36. package/Libraries/Core/ExceptionsManager.js +3 -3
  37. package/Libraries/Core/RawEventEmitter.js +1 -1
  38. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  39. package/Libraries/Core/ReactNativeVersion.js +3 -3
  40. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  41. package/Libraries/Core/setUpErrorHandling.js +1 -1
  42. package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
  43. package/Libraries/Image/Image.android.js +2 -2
  44. package/Libraries/Image/Image.ios.js +2 -2
  45. package/Libraries/Image/ImageProps.js +1 -1
  46. package/Libraries/Image/ImageTypes.flow.js +2 -2
  47. package/Libraries/Image/RCTImagePlugins.h +1 -0
  48. package/Libraries/Image/RCTImagePlugins.mm +30 -17
  49. package/Libraries/Interaction/InteractionManager.js +3 -3
  50. package/Libraries/Interaction/PanResponder.js +1 -1
  51. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  52. package/Libraries/Linking/Linking.js +1 -1
  53. package/Libraries/LinkingIOS/RCTLinkingPlugins.mm +10 -13
  54. package/Libraries/Lists/FlatList.js +2 -2
  55. package/Libraries/LogBox/Data/LogBoxData.js +31 -4
  56. package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
  57. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  58. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
  59. package/Libraries/LogBox/LogBox.js +7 -7
  60. package/Libraries/NativeAnimation/RCTAnimationPlugins.mm +14 -14
  61. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +7 -0
  62. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -0
  63. package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
  64. package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
  65. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
  66. package/Libraries/Network/RCTInspectorNetworkReporter.mm +26 -3
  67. package/Libraries/Network/RCTNetworkPlugins.mm +22 -16
  68. package/Libraries/Network/RCTNetworking.android.js +3 -3
  69. package/Libraries/Network/RCTNetworking.ios.js +2 -2
  70. package/Libraries/Network/RCTNetworking.js.flow +2 -2
  71. package/Libraries/Pressability/Pressability.js +9 -9
  72. package/Libraries/PushNotificationIOS/RCTPushNotificationPlugins.mm +10 -13
  73. package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
  74. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  75. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  76. package/Libraries/ReactNative/PaperUIManager.js +1 -1
  77. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  78. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
  79. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
  80. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  81. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  82. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  83. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
  84. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  85. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  86. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
  87. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
  88. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
  89. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  90. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  91. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  92. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  93. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  94. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  95. package/Libraries/Settings/RCTSettingsManager.mm +1 -1
  96. package/Libraries/Settings/RCTSettingsPlugins.mm +10 -13
  97. package/Libraries/Settings/Settings.ios.js +1 -1
  98. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
  99. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  100. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
  101. package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
  102. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
  103. package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
  104. package/Libraries/StyleSheet/processFilter.js +1 -1
  105. package/Libraries/Text/Text.js +46 -6
  106. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +3 -2
  107. package/Libraries/Text/TextNativeComponent.js +1 -1
  108. package/Libraries/Text/TextProps.js +7 -7
  109. package/Libraries/TypeSafety/RCTTypedModuleConstants.h +36 -1
  110. package/Libraries/Types/CodegenTypes.js +1 -1
  111. package/Libraries/Types/CoreEventTypes.js +31 -0
  112. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  113. package/Libraries/Utilities/Appearance.js +2 -2
  114. package/Libraries/Utilities/DevLoadingView.js +8 -1
  115. package/Libraries/Utilities/DevSettings.js +3 -3
  116. package/Libraries/Utilities/HMRClient.js +4 -3
  117. package/Libraries/Utilities/RCTLog.js +3 -3
  118. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  119. package/Libraries/Utilities/SceneTracker.js +1 -1
  120. package/Libraries/Utilities/codegenNativeCommands.js +1 -1
  121. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
  122. package/Libraries/Utilities/logError.js +1 -1
  123. package/Libraries/Utilities/stringifySafe.js +7 -7
  124. package/Libraries/Utilities/useRefEffect.js +1 -1
  125. package/Libraries/Vibration/RCTVibrationPlugins.mm +10 -13
  126. package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
  127. package/Libraries/promiseRejectionTrackingOptions.js +8 -8
  128. package/Libraries/vendor/core/ErrorUtils.js +10 -10
  129. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  130. package/README.md +56 -18
  131. package/React/Base/RCTAssert.m +2 -2
  132. package/React/Base/RCTBridge.h +0 -4
  133. package/React/Base/RCTBridge.mm +1 -12
  134. package/React/Base/RCTBundleManager.h +59 -7
  135. package/React/Base/RCTBundleManager.m +112 -1
  136. package/React/Base/RCTBundleURLProvider.h +24 -0
  137. package/React/Base/RCTBundleURLProvider.mm +49 -4
  138. package/React/Base/RCTConvert.mm +2 -0
  139. package/React/Base/RCTModuleData.mm +2 -2
  140. package/React/Base/RCTUtils.h +4 -0
  141. package/React/Base/RCTUtils.mm +60 -3
  142. package/React/Base/RCTVersion.m +3 -3
  143. package/React/CoreModules/CoreModulesPlugins.mm +97 -35
  144. package/React/CoreModules/PlatformStubs/RCTStatusBarManager.mm +1 -1
  145. package/React/CoreModules/RCTAccessibilityManager.mm +18 -1
  146. package/React/CoreModules/RCTAppState.mm +1 -1
  147. package/React/CoreModules/RCTDevLoadingView.mm +116 -36
  148. package/React/CoreModules/RCTDevSettings.h +36 -1
  149. package/React/CoreModules/RCTDevSettings.mm +44 -8
  150. package/React/CoreModules/RCTExceptionsManager.mm +5 -2
  151. package/React/CoreModules/RCTPlatform.mm +3 -2
  152. package/React/CoreModules/RCTStatusBarManager.mm +1 -1
  153. package/React/CxxBridge/RCTCxxBridge.mm +1 -2
  154. package/React/CxxModule/RCTCxxMethod.mm +1 -1
  155. package/React/CxxModule/RCTCxxUtils.mm +2 -12
  156. package/React/DevSupport/RCTDevLoadingViewProtocol.h +4 -1
  157. package/React/DevSupport/RCTPackagerConnection.h +4 -2
  158. package/React/DevSupport/RCTPackagerConnection.mm +30 -33
  159. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +9 -2
  160. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +62 -17
  161. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +529 -494
  162. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/EventEmitters.h +1 -0
  163. package/React/FBReactNativeSpec/react/renderer/components/FBReactNativeSpec/Props.h +14 -0
  164. package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +11 -0
  165. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +6 -0
  166. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +2 -0
  167. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +40 -4
  168. package/React/Fabric/Mounting/ComponentViews/VirtualView/RCTVirtualViewComponentView.mm +5 -7
  169. package/React/Fabric/Mounting/ComponentViews/VirtualViewExperimental/RCTVirtualViewExperimentalComponentView.mm +5 -7
  170. package/React/Fabric/RCTSurfaceTouchHandler.mm +1 -1
  171. package/React/Fabric/Surface/RCTFabricSurface.mm +1 -1
  172. package/React/Inspector/RCTCxxInspectorWebSocketAdapter.mm +6 -2
  173. package/React/Modules/RCTEventEmitter.m +1 -0
  174. package/React/Views/RCTModalHostView.h +2 -0
  175. package/React/Views/RCTTVView.m +2 -0
  176. package/ReactAndroid/api/ReactAndroid.api +14 -73
  177. package/ReactAndroid/build.gradle.kts +2 -0
  178. package/ReactAndroid/gradle.properties +1 -1
  179. package/ReactAndroid/hermes-engine/build.gradle.kts +1 -12
  180. package/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.kt +1 -4
  181. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +3 -0
  182. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.kt +10 -13
  183. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +1 -119
  184. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.kt +0 -10
  185. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageHelper.kt +1 -1
  186. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt +4 -29
  187. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +43 -2
  188. package/ReactAndroid/src/main/java/com/facebook/react/ViewManagerOnDemandReactPackage.kt +53 -4
  189. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +0 -18
  190. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +6 -96
  191. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaMethodWrapper.kt +17 -2
  192. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.kt +2 -2
  193. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +1 -33
  194. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Promise.kt +6 -6
  195. package/ReactAndroid/src/main/java/com/facebook/react/bridge/PromiseImpl.kt +6 -6
  196. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeArray.kt +1 -12
  197. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +4 -5
  198. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ChangeBundleLocationDialog.kt +11 -10
  199. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
  200. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +58 -13
  201. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +10 -60
  202. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +7 -7
  203. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.kt +1 -4
  204. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +17 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +144 -0
  206. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
  207. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingState.kt +17 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt +15 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{interfaces → inspector}/TracingStateProvider.kt +1 -1
  210. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevLoadingViewManager.kt +6 -1
  211. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +2 -2
  212. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/RedBoxHandler.kt +2 -2
  213. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +1 -1
  214. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +31 -6
  215. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +7 -6
  216. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +1 -1
  217. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +1 -1
  218. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +2 -1
  219. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +63 -45
  220. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +106 -76
  221. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +22 -16
  222. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +23 -17
  223. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +117 -84
  224. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android.kt +3 -1
  225. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +0 -2
  226. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +22 -16
  227. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +5 -43
  228. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.kt +0 -3
  229. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +36 -1
  230. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/FpsDebugFrameCallback.kt +3 -27
  231. package/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.kt +7 -2
  232. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +23 -0
  233. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +3 -3
  234. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +15 -8
  235. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +0 -9
  236. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +46 -12
  237. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +3 -3
  238. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +11 -17
  239. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +52 -0
  240. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +92 -3
  241. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +62 -8
  242. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSKeyDispatcher.kt +65 -0
  243. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSPointerDispatcher.java +19 -2
  244. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +1 -2
  245. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +5 -36
  246. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +9 -91
  247. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.kt +1 -1
  248. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAxOrderHelper.kt +47 -0
  249. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java +0 -2
  250. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +4 -23
  251. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TransformHelper.kt +1 -7
  252. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +1 -11
  253. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -47
  254. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +0 -16
  255. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutlineDrawable.kt +1 -1
  256. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +3 -36
  257. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyDownEvent.kt +23 -0
  258. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyEvent.kt +156 -0
  259. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/KeyUpEvent.kt +24 -0
  260. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +29 -4
  261. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +12 -9
  262. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +1 -1
  263. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +36 -3
  264. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +21 -11
  265. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +7 -0
  266. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewAccessibilityDelegate.kt +31 -15
  267. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.kt +127 -32
  268. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +19 -21
  269. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +3 -11
  270. package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +3 -12
  271. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
  272. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +98 -3
  273. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +62 -26
  274. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +145 -103
  275. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +31 -22
  276. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +1 -3
  277. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +5 -23
  278. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +2 -7
  279. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +0 -24
  280. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  281. package/ReactAndroid/src/main/jni/react/jni/JSLoader.h +2 -1
  282. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +0 -1
  283. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +1 -29
  284. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +1 -2
  285. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -4
  286. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +145 -17
  287. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +193 -19
  288. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
  289. package/ReactAndroid/src/main/jni/react/tracing/PerformanceTracerCxxInterop.cpp +1 -1
  290. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +62 -63
  291. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +5 -7
  292. package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
  293. package/ReactAndroid/src/main/res/devsupport/drawable/ic_perf_issue.xml +10 -0
  294. package/ReactAndroid/src/main/res/devsupport/layout/dev_loading_view.xml +41 -15
  295. package/ReactAndroid/src/main/res/devsupport/layout/fps_view.xml +1 -1
  296. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +1 -0
  297. package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +16 -0
  298. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.h +2 -0
  299. package/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm +38 -5
  300. package/ReactCommon/cxxreact/JSBigString.h +14 -5
  301. package/ReactCommon/cxxreact/JSIndexedRAMBundle.cpp +4 -5
  302. package/ReactCommon/cxxreact/ReactMarker.cpp +0 -1
  303. package/ReactCommon/cxxreact/ReactNativeVersion.h +5 -5
  304. package/ReactCommon/devtoolsruntimesettings/DevToolsRuntimeSettings.cpp +1 -1
  305. package/ReactCommon/hermes/React-hermes.podspec +1 -0
  306. package/ReactCommon/jsi/jsi/jsi.cpp +6 -1
  307. package/ReactCommon/jsi/jsi/jsi.h +73 -0
  308. package/ReactCommon/jsi/jsi/test/testlib.cpp +2 -2
  309. package/ReactCommon/jsiexecutor/CMakeLists.txt +3 -1
  310. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -0
  311. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
  312. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +3 -8
  313. package/ReactCommon/jsinspector-modern/ConsoleTask.cpp +27 -0
  314. package/ReactCommon/jsinspector-modern/ConsoleTask.h +38 -0
  315. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.cpp +46 -0
  316. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +102 -0
  317. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.cpp +55 -0
  318. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +48 -0
  319. package/ReactCommon/jsinspector-modern/HostAgent.cpp +9 -10
  320. package/ReactCommon/jsinspector-modern/HostAgent.h +2 -2
  321. package/ReactCommon/jsinspector-modern/HostTarget.cpp +7 -6
  322. package/ReactCommon/jsinspector-modern/HostTarget.h +73 -16
  323. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +40 -8
  324. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
  325. package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
  326. package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
  327. package/ReactCommon/jsinspector-modern/InstanceTarget.h +2 -2
  328. package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +9 -1
  329. package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +4 -1
  330. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +3 -2
  331. package/ReactCommon/jsinspector-modern/RuntimeAgent.h +1 -1
  332. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +12 -0
  333. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -13
  334. package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +106 -1
  335. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +30 -18
  336. package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -4
  337. package/ReactCommon/jsinspector-modern/tests/ConsoleCreateTaskTest.cpp +131 -0
  338. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +53 -0
  339. package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +20 -0
  340. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +25 -55
  341. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +1 -0
  342. package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +116 -0
  343. package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
  344. package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +60 -0
  345. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +43 -0
  346. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +144 -0
  347. package/ReactCommon/jsinspector-modern/tracing/{TraceRecordingStateSerializer.h → HostTracingProfileSerializer.h} +16 -8
  348. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +67 -16
  349. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +21 -2
  350. package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +5 -0
  351. package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
  352. package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
  353. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +104 -0
  354. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +59 -0
  355. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +2 -1
  356. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +18 -7
  357. package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +139 -0
  358. package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
  359. package/ReactCommon/jsitooling/React-jsitooling.podspec +4 -0
  360. package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.cpp +54 -0
  361. package/{ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h → ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.h} +4 -6
  362. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +43 -31
  363. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +55 -40
  364. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +234 -180
  365. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +24 -18
  366. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +43 -31
  367. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +91 -64
  368. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h +5 -1
  369. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSStable.h +0 -4
  370. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +12 -9
  371. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +7 -2
  372. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +30 -10
  373. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +17 -6
  374. package/ReactCommon/react/nativemodule/core/iostests/RCTTurboModuleTests.mm +0 -1
  375. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +1 -4
  376. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +0 -4
  377. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +43 -60
  378. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +11 -36
  379. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +53 -38
  380. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +22 -16
  381. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -0
  382. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +24 -3
  383. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +76 -13
  384. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +74 -64
  385. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +17 -13
  386. package/ReactCommon/react/networking/NetworkReporter.cpp +26 -22
  387. package/ReactCommon/react/networking/React-networking.podspec +0 -1
  388. package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +4 -2
  389. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  390. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +10 -2
  391. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  392. package/ReactCommon/react/renderer/animated/AnimatedModule.cpp +104 -78
  393. package/ReactCommon/react/renderer/animated/AnimatedModule.h +10 -2
  394. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +174 -75
  395. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.h +19 -1
  396. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +68 -46
  397. package/ReactCommon/react/renderer/animated/drivers/FrameAnimationDriver.cpp +1 -0
  398. package/ReactCommon/react/renderer/animated/internal/AnimatedMountingOverrideDelegate.cpp +1 -1
  399. package/ReactCommon/react/renderer/animated/nodes/ColorAnimatedNode.cpp +0 -1
  400. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.cpp +103 -4
  401. package/ReactCommon/react/renderer/animated/nodes/InterpolationAnimatedNode.h +9 -0
  402. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +5 -1
  403. package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.h +9 -0
  404. package/ReactCommon/react/renderer/animated/nodes/RoundAnimatedNode.cpp +1 -1
  405. package/ReactCommon/react/renderer/animated/nodes/ValueAnimatedNode.cpp +1 -1
  406. package/ReactCommon/react/renderer/animated/tests/AnimatedNodeTests.cpp +67 -0
  407. package/ReactCommon/react/renderer/animated/tests/AnimationDriverTests.cpp +59 -0
  408. package/ReactCommon/react/renderer/animated/tests/AnimationTestsBase.h +2 -1
  409. package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +307 -0
  410. package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +323 -1
  411. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +133 -0
  412. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.cpp +100 -0
  413. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h +246 -0
  414. package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
  415. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +93 -94
  416. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +23 -5
  417. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.cpp +75 -0
  418. package/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h +32 -0
  419. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +2 -2
  420. package/ReactCommon/react/renderer/attributedstring/AttributedStringBox.h +3 -0
  421. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +2 -2
  422. package/ReactCommon/react/renderer/components/image/ImageProps.h +2 -2
  423. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +9 -2
  424. package/ReactCommon/react/renderer/components/image/conversions.h +5 -0
  425. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +2 -1
  426. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +5 -1
  427. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +21 -1
  428. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +14 -0
  429. package/ReactCommon/react/renderer/core/DynamicEventPayload.cpp +10 -0
  430. package/ReactCommon/react/renderer/core/DynamicEventPayload.h +6 -1
  431. package/ReactCommon/react/renderer/core/DynamicPointerEvent.cpp +30 -0
  432. package/ReactCommon/react/renderer/core/DynamicPointerEvent.h +29 -0
  433. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +1 -1
  434. package/ReactCommon/react/renderer/core/EventEmitter.cpp +11 -14
  435. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +3 -3
  436. package/ReactCommon/react/renderer/core/Props.cpp +23 -8
  437. package/ReactCommon/react/renderer/core/Props.h +6 -4
  438. package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -10
  439. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +32 -0
  440. package/ReactCommon/react/renderer/css/CSSSyntaxParser.h +7 -0
  441. package/ReactCommon/react/renderer/debug/CMakeLists.txt +7 -0
  442. package/ReactCommon/react/renderer/debug/flags.h +3 -2
  443. package/ReactCommon/react/renderer/graphics/BlendMode.h +2 -0
  444. package/ReactCommon/react/renderer/graphics/Filter.h +2 -0
  445. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +3 -0
  446. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +23 -12
  447. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +8 -3
  448. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +16 -4
  449. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +9 -4
  450. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +8 -4
  451. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
  452. package/ReactCommon/react/renderer/imagemanager/primitives.h +15 -6
  453. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +0 -11
  454. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +0 -4
  455. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +0 -20
  456. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +3 -3
  457. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +2 -3
  458. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +6 -0
  459. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
  460. package/ReactCommon/react/runtime/PlatformTimerRegistry.h +2 -0
  461. package/ReactCommon/react/runtime/ReactInstance.cpp +21 -14
  462. package/ReactCommon/react/runtime/ReactInstance.h +5 -1
  463. package/ReactCommon/react/runtime/TimerManager.cpp +11 -53
  464. package/ReactCommon/react/runtime/TimerManager.h +7 -12
  465. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +3 -2
  466. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +10 -6
  467. package/ReactCommon/yoga/yoga/algorithm/FlexDirection.h +6 -6
  468. package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +4 -4
  469. package/ReactCommon/yoga/yoga/style/Style.h +8 -8
  470. package/ReactCommon/yoga/yoga/style/StyleLength.h +7 -0
  471. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +7 -0
  472. package/flow/HermesInternalType.js +6 -6
  473. package/flow/bom.js.flow +35 -28
  474. package/flow/cssom.js.flow +3 -3
  475. package/flow/dom.js.flow +34 -33
  476. package/index.js +3 -0
  477. package/index.js.flow +8 -0
  478. package/jest/mock.js +2 -2
  479. package/jest/mockComponent.js +1 -1
  480. package/jest/setup.js +1 -1
  481. package/package.json +12 -12
  482. package/react-native.config.js +0 -17
  483. package/scripts/cocoapods/new_architecture.rb +7 -1
  484. package/scripts/cocoapods/spm.rb +28 -10
  485. package/scripts/cocoapods/utils.rb +4 -4
  486. package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +7 -6
  487. package/scripts/ios-configure-glog.sh +6 -1
  488. package/scripts/react_native_pods.rb +8 -0
  489. package/sdks/.hermesv1version +1 -1
  490. package/sdks/.hermesversion +1 -1
  491. package/sdks/hermes-engine/hermes-engine.podspec +39 -31
  492. package/sdks/hermes-engine/hermes-utils.rb +7 -14
  493. package/sdks/hermes-engine/version.properties +2 -2
  494. package/src/private/animated/NativeAnimatedHelper.js +130 -125
  495. package/src/private/animated/NativeAnimatedValidation.js +7 -4
  496. package/src/private/animated/createAnimatedPropsHook.js +13 -5
  497. package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
  498. package/src/private/components/virtualview/VirtualView.js +16 -9
  499. package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
  500. package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
  501. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  502. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
  503. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
  504. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
  505. package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
  506. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
  507. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
  508. package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
  509. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
  510. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
  511. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
  512. package/src/private/webapis/dom/events/CustomEvent.js +3 -3
  513. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  514. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  515. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
  516. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
  517. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js.flow +2 -0
  518. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  519. package/src/private/webapis/dom/oldstylecollections/NodeList.js.flow +4 -1
  520. package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
  521. package/src/private/webapis/html/events/MessageEvent.js +3 -3
  522. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
  523. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
  524. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
  525. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
  526. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
  527. package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
  528. package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
  529. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
  530. package/src/private/webapis/performance/Performance.js +1 -1
  531. package/src/private/webapis/performance/UserTiming.js +1 -1
  532. package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
  533. package/src/private/webapis/structuredClone/structuredClone.js +3 -3
  534. package/src/types/globals.d.ts +30 -1
  535. package/third-party-podspecs/RCT-Folly.podspec +1 -0
  536. package/React/CxxModule/RCTCxxModule.h +0 -29
  537. package/React/CxxModule/RCTCxxModule.mm +0 -87
  538. package/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.kt +0 -146
  539. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CallbackImpl.kt +0 -45
  540. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +0 -25
  541. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +0 -61
  542. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NotThreadSafeBridgeIdleDebugListener.kt +0 -36
  543. package/ReactAndroid/src/main/java/com/facebook/react/bridge/OnBatchCompleteListener.kt +0 -21
  544. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.kt +0 -54
  545. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.kt +0 -78
  546. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.kt +0 -105
  547. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
  548. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +0 -157
  549. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeKind.kt +0 -32
  550. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/debug/NotThreadSafeViewHierarchyUpdateDebugListener.kt +0 -30
  551. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationController.kt +0 -87
  552. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutAnimationListener.kt +0 -23
  553. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -37
  554. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +0 -20
  555. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +0 -175
  556. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +0 -75
  557. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
  558. package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
  559. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +0 -212
  560. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +0 -40
  561. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
  562. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
  563. /package/ReactCommon/jsi/jsi/{hermes.h → hermes-interfaces.h} +0 -0
@@ -11,7 +11,6 @@ import de.undercouch.gradle.tasks.download.Download
11
11
  import org.apache.tools.ant.taskdefs.condition.Os
12
12
 
13
13
  plugins {
14
- id("maven-publish")
15
14
  id("signing")
16
15
  alias(libs.plugins.android.library)
17
16
  alias(libs.plugins.download)
@@ -350,10 +349,7 @@ android {
350
349
  java.srcDirs("$hermesDir/lib/Platform/Intl/java", "$hermesDir/lib/Platform/Unicode/java")
351
350
  }
352
351
 
353
- buildFeatures {
354
- prefab = true
355
- prefabPublishing = true
356
- }
352
+ buildFeatures { prefab = true }
357
353
 
358
354
  dependencies {
359
355
  implementation(libs.fbjni)
@@ -367,13 +363,6 @@ android {
367
363
  jniLibs.excludes.add("**/libfbjni.so")
368
364
  }
369
365
 
370
- publishing {
371
- multipleVariants {
372
- withSourcesJar()
373
- allVariants()
374
- }
375
- }
376
-
377
366
  prefab { create("hermesvm") { headers = prefabHeadersDir.absolutePath } }
378
367
  }
379
368
 
@@ -41,10 +41,7 @@ public class NativeModuleRegistryBuilder(
41
41
  // We use an iterable instead of an iterator here to ensure thread safety, and that this list
42
42
  // cannot be modified
43
43
  val moduleHolders =
44
- @Suppress("DEPRECATION")
45
- if (reactPackage is LazyReactPackage) {
46
- reactPackage.getNativeModuleIterator(reactApplicationContext)
47
- } else if (reactPackage is BaseReactPackage) {
44
+ if (reactPackage is BaseReactPackage) {
48
45
  reactPackage.getNativeModuleIterator(reactApplicationContext)
49
46
  } else {
50
47
  ReactPackageHelper.getNativeModuleIterator(reactPackage, reactApplicationContext)
@@ -124,6 +124,9 @@ public abstract class ReactActivity extends AppCompatActivity
124
124
  // as super.onBackPressed() will call all enabled callbacks in the dispatcher.
125
125
  mBackPressedCallback.setEnabled(false);
126
126
  super.onBackPressed();
127
+ // Re-enable callback to ensure custom back handling works after activity resume
128
+ // Without this, the callback remains disabled when the app returns from background
129
+ mBackPressedCallback.setEnabled(true);
127
130
  }
128
131
 
129
132
  @Override
@@ -68,9 +68,9 @@ public open class ReactDelegate {
68
68
  launchOptions: Bundle?,
69
69
  ) {
70
70
  this.activity = activity
71
- mainComponentName = appKey
71
+ this.mainComponentName = appKey
72
72
  this.launchOptions = launchOptions
73
- doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
73
+ this.doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
74
74
  this.reactNativeHost = reactNativeHost
75
75
  }
76
76
 
@@ -81,9 +81,9 @@ public open class ReactDelegate {
81
81
  launchOptions: Bundle?,
82
82
  ) {
83
83
  this.activity = activity
84
- mainComponentName = appKey
84
+ this.mainComponentName = appKey
85
85
  this.launchOptions = launchOptions
86
- doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
86
+ this.doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
87
87
  this.reactHost = reactHost
88
88
  }
89
89
 
@@ -95,11 +95,11 @@ public open class ReactDelegate {
95
95
  launchOptions: Bundle?,
96
96
  fabricEnabled: Boolean,
97
97
  ) {
98
- isFabricEnabled = fabricEnabled
98
+ this.isFabricEnabled = fabricEnabled
99
99
  this.activity = activity
100
- mainComponentName = appKey
100
+ this.mainComponentName = appKey
101
101
  this.launchOptions = launchOptions
102
- doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
102
+ this.doubleTapReloadRecognizer = DoubleTapReloadRecognizer()
103
103
  this.reactNativeHost = reactNativeHost
104
104
  }
105
105
 
@@ -178,13 +178,10 @@ public open class ReactDelegate {
178
178
  if (
179
179
  ReactNativeNewArchitectureFeatureFlags.enableBridgelessArchitecture() && reactHost != null
180
180
  ) {
181
- reactHost?.onBackPressed()
181
+ return reactHost?.onBackPressed() == true
182
+ } else if (reactNativeHost?.hasInstance() == true) {
183
+ reactNativeHost?.reactInstanceManager?.onBackPressed()
182
184
  return true
183
- } else {
184
- if (reactNativeHost?.hasInstance() == true) {
185
- reactNativeHost?.reactInstanceManager?.onBackPressed()
186
- return true
187
- }
188
185
  }
189
186
  return false
190
187
  }
@@ -57,11 +57,8 @@ import com.facebook.react.bridge.JSExceptionHandler;
57
57
  import com.facebook.react.bridge.JavaScriptExecutor;
58
58
  import com.facebook.react.bridge.JavaScriptExecutorFactory;
59
59
  import com.facebook.react.bridge.NativeModuleRegistry;
60
- import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener;
61
60
  import com.facebook.react.bridge.ReactApplicationContext;
62
61
  import com.facebook.react.bridge.ReactContext;
63
- import com.facebook.react.bridge.ReactCxxErrorHandler;
64
- import com.facebook.react.bridge.ReactInstanceManagerInspectorTarget;
65
62
  import com.facebook.react.bridge.ReactMarker;
66
63
  import com.facebook.react.bridge.ReactMarkerConstants;
67
64
  import com.facebook.react.bridge.ReactNoCrashSoftException;
@@ -77,16 +74,11 @@ import com.facebook.react.common.SurfaceDelegateFactory;
77
74
  import com.facebook.react.common.annotations.internal.LegacyArchitecture;
78
75
  import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel;
79
76
  import com.facebook.react.common.annotations.internal.LegacyArchitectureLogger;
80
- import com.facebook.react.common.build.ReactBuildConfig;
81
77
  import com.facebook.react.devsupport.DevSupportManagerFactory;
82
- import com.facebook.react.devsupport.InspectorFlags;
83
78
  import com.facebook.react.devsupport.ReactInstanceDevHelper;
84
- import com.facebook.react.devsupport.inspector.InspectorNetworkHelper;
85
- import com.facebook.react.devsupport.inspector.InspectorNetworkRequestListener;
86
79
  import com.facebook.react.devsupport.interfaces.DevBundleDownloadListener;
87
80
  import com.facebook.react.devsupport.interfaces.DevLoadingViewManager;
88
81
  import com.facebook.react.devsupport.interfaces.DevSupportManager;
89
- import com.facebook.react.devsupport.interfaces.DevSupportManager.PausedInDebuggerOverlayCommandListener;
90
82
  import com.facebook.react.devsupport.interfaces.PackagerStatusCallback;
91
83
  import com.facebook.react.devsupport.interfaces.PausedInDebuggerOverlayManager;
92
84
  import com.facebook.react.devsupport.interfaces.RedBoxHandler;
@@ -102,7 +94,6 @@ import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler;
102
94
  import com.facebook.react.modules.core.DeviceEventManagerModule;
103
95
  import com.facebook.react.modules.core.ReactChoreographer;
104
96
  import com.facebook.react.modules.debug.interfaces.DeveloperSettings;
105
- import com.facebook.react.modules.systeminfo.AndroidInfoHelpers;
106
97
  import com.facebook.react.packagerconnection.RequestHandler;
107
98
  import com.facebook.react.uimanager.DisplayMetricsHolder;
108
99
  import com.facebook.react.uimanager.ReactRoot;
@@ -114,8 +105,6 @@ import com.facebook.react.views.imagehelper.ResourceDrawableIdHelper;
114
105
  import com.facebook.soloader.SoLoader;
115
106
  import com.facebook.systrace.Systrace;
116
107
  import com.facebook.systrace.SystraceMessage;
117
- import java.lang.ref.WeakReference;
118
- import java.lang.reflect.Method;
119
108
  import java.util.ArrayList;
120
109
  import java.util.Collection;
121
110
  import java.util.Collections;
@@ -183,13 +172,11 @@ public class ReactInstanceManager {
183
172
  private final boolean mUseDeveloperSupport;
184
173
  private final boolean mRequireActivity;
185
174
  private final boolean mKeepActivity;
186
- private final @Nullable NotThreadSafeBridgeIdleDebugListener mBridgeIdleDebugListener;
187
175
  private final Object mReactContextLock = new Object();
188
176
  private @Nullable volatile ReactContext mCurrentReactContext;
189
177
  private final Context mApplicationContext;
190
178
  private @Nullable @ThreadConfined(UI) DefaultHardwareBackBtnHandler mDefaultBackButtonImpl;
191
179
  private @Nullable Activity mCurrentActivity;
192
- private @Nullable ReactInstanceManagerInspectorTarget mInspectorTarget;
193
180
  private final Collection<com.facebook.react.ReactInstanceEventListener>
194
181
  mReactInstanceEventListeners =
195
182
  Collections.synchronizedList(
@@ -246,7 +233,6 @@ public class ReactInstanceManager {
246
233
  DevSupportManagerFactory devSupportManagerFactory,
247
234
  boolean requireActivity,
248
235
  boolean keepActivity,
249
- @Nullable NotThreadSafeBridgeIdleDebugListener bridgeIdleDebugListener,
250
236
  LifecycleState initialLifecycleState,
251
237
  JSExceptionHandler jSExceptionHandler,
252
238
  @Nullable RedBoxHandler redBoxHandler,
@@ -292,7 +278,6 @@ public class ReactInstanceManager {
292
278
  devLoadingViewManager,
293
279
  pausedInDebuggerOverlayManager);
294
280
  Systrace.endSection(TRACE_TAG_REACT);
295
- mBridgeIdleDebugListener = bridgeIdleDebugListener;
296
281
  mLifecycleState = initialLifecycleState;
297
282
  mMemoryPressureRouter = new MemoryPressureRouter(applicationContext);
298
283
  mJSExceptionHandler = jSExceptionHandler;
@@ -316,8 +301,6 @@ public class ReactInstanceManager {
316
301
  mDevSupportManager.startInspector();
317
302
  }
318
303
 
319
- registerCxxErrorHandlerFunc();
320
-
321
304
  // Using `if (true)` just to prevent tests / lint errors.
322
305
  if (true) {
323
306
  // Legacy architecture of React Native is deprecated and can't be initialized anymore.
@@ -414,24 +397,6 @@ public class ReactInstanceManager {
414
397
  mDevSupportManager.handleException(e);
415
398
  }
416
399
 
417
- private void registerCxxErrorHandlerFunc() {
418
- if (!ReactBuildConfig.UNSTABLE_ENABLE_MINIFY_LEGACY_ARCHITECTURE) {
419
- Class[] parameterTypes = new Class[1];
420
- parameterTypes[0] = Exception.class;
421
- Method handleCxxErrorFunc = null;
422
- try {
423
- handleCxxErrorFunc = ReactInstanceManager.class.getMethod("handleCxxError", parameterTypes);
424
- } catch (NoSuchMethodException e) {
425
- FLog.e("ReactInstanceHolder", "Failed to set cxx error handler function", e);
426
- }
427
- ReactCxxErrorHandler.setHandleErrorFunc(this, handleCxxErrorFunc);
428
- }
429
- }
430
-
431
- private void unregisterCxxErrorHandlerFunc() {
432
- ReactCxxErrorHandler.setHandleErrorFunc(null, null);
433
- }
434
-
435
400
  static void initializeSoLoaderIfNecessary(Context applicationContext) {
436
401
  // Call SoLoader.initialize here, this is required for apps that does not use exopackage and
437
402
  // does not use SoLoader for loading other native code except from the one used by React Native
@@ -811,7 +776,6 @@ public class ReactInstanceManager {
811
776
 
812
777
  moveToBeforeCreateLifecycleState();
813
778
  mMemoryPressureRouter.destroy(mApplicationContext);
814
- unregisterCxxErrorHandlerFunc();
815
779
 
816
780
  mCreateReactContextThread = null;
817
781
  synchronized (mAttachedReactRoots) {
@@ -830,15 +794,6 @@ public class ReactInstanceManager {
830
794
  }
831
795
  }
832
796
 
833
- // If the host has been invalidated, now that the current context/instance
834
- // has been destroyed, we can safely destroy the host's inspector target.
835
- if (mInstanceManagerInvalidated) {
836
- if (mInspectorTarget != null) {
837
- mInspectorTarget.close();
838
- mInspectorTarget = null;
839
- }
840
- }
841
-
842
797
  mHasStartedCreatingInitialContext = false;
843
798
  if (!mKeepActivity) {
844
799
  mCurrentActivity = null;
@@ -1462,8 +1417,7 @@ public class ReactInstanceManager {
1462
1417
  .setJSExecutor(jsExecutor)
1463
1418
  .setRegistry(nativeModuleRegistry)
1464
1419
  .setJSBundleLoader(jsBundleLoader)
1465
- .setJSExceptionHandler(exceptionHandler)
1466
- .setInspectorTarget(getOrCreateInspectorTarget());
1420
+ .setJSExceptionHandler(exceptionHandler);
1467
1421
 
1468
1422
  ReactMarker.logMarker(CREATE_CATALYST_INSTANCE_START);
1469
1423
  // CREATE_CATALYST_INSTANCE_END is in JSCExecutor.cpp
@@ -1517,9 +1471,6 @@ public class ReactInstanceManager {
1517
1471
  catalystInstance.setFabricUIManager(uiManager);
1518
1472
  }
1519
1473
  }
1520
- if (mBridgeIdleDebugListener != null) {
1521
- catalystInstance.addBridgeIdleDebugListener(mBridgeIdleDebugListener);
1522
- }
1523
1474
  if (BuildConfig.ENABLE_PERFETTO || Systrace.isTracing(TRACE_TAG_REACT)) {
1524
1475
  catalystInstance.setGlobalVariable("__RCTProfileIsProfiling", "true");
1525
1476
  }
@@ -1572,73 +1523,4 @@ public class ReactInstanceManager {
1572
1523
  nativeModuleRegistryBuilder.processPackage(reactPackage);
1573
1524
  SystraceMessage.endSection(TRACE_TAG_REACT).flush();
1574
1525
  }
1575
-
1576
- private static class InspectorTargetDelegateImpl
1577
- implements ReactInstanceManagerInspectorTarget.TargetDelegate {
1578
- // This weak reference breaks the cycle between the C++ HostTarget and the
1579
- // Java ReactInstanceManager, preventing memory leaks in apps that create
1580
- // multiple ReactInstanceManagers over time.
1581
- private WeakReference<ReactInstanceManager> mReactInstanceManagerWeak;
1582
-
1583
- public InspectorTargetDelegateImpl(ReactInstanceManager inspectorTarget) {
1584
- mReactInstanceManagerWeak = new WeakReference<ReactInstanceManager>(inspectorTarget);
1585
- }
1586
-
1587
- @Override
1588
- public Map<String, String> getMetadata() {
1589
- ReactInstanceManager reactInstanceManager = mReactInstanceManagerWeak.get();
1590
-
1591
- return AndroidInfoHelpers.getInspectorHostMetadata(
1592
- reactInstanceManager != null ? reactInstanceManager.mApplicationContext : null);
1593
- }
1594
-
1595
- @Override
1596
- public void onReload() {
1597
- UiThreadUtil.runOnUiThread(
1598
- () -> {
1599
- ReactInstanceManager reactInstanceManager = mReactInstanceManagerWeak.get();
1600
- if (reactInstanceManager != null) {
1601
- reactInstanceManager.mDevSupportManager.handleReloadJS();
1602
- }
1603
- });
1604
- }
1605
-
1606
- @Override
1607
- public void onSetPausedInDebuggerMessage(@Nullable String message) {
1608
- ReactInstanceManager reactInstanceManager = mReactInstanceManagerWeak.get();
1609
- if (reactInstanceManager == null) {
1610
- return;
1611
- }
1612
- if (message == null) {
1613
- reactInstanceManager.mDevSupportManager.hidePausedInDebuggerOverlay();
1614
- } else {
1615
- reactInstanceManager.mDevSupportManager.showPausedInDebuggerOverlay(
1616
- message,
1617
- new PausedInDebuggerOverlayCommandListener() {
1618
- @Override
1619
- public void onResume() {
1620
- UiThreadUtil.assertOnUiThread();
1621
- if (reactInstanceManager.mInspectorTarget != null) {
1622
- reactInstanceManager.mInspectorTarget.sendDebuggerResumeCommand();
1623
- }
1624
- }
1625
- });
1626
- }
1627
- }
1628
-
1629
- @Override
1630
- public void loadNetworkResource(String url, InspectorNetworkRequestListener listener) {
1631
- InspectorNetworkHelper.loadNetworkResource(url, listener);
1632
- }
1633
- }
1634
-
1635
- private @Nullable ReactInstanceManagerInspectorTarget getOrCreateInspectorTarget() {
1636
- if (mInspectorTarget == null && InspectorFlags.getFuseboxEnabled()) {
1637
-
1638
- mInspectorTarget =
1639
- new ReactInstanceManagerInspectorTarget(new InspectorTargetDelegateImpl(this));
1640
- }
1641
-
1642
- return mInspectorTarget;
1643
- }
1644
1526
  }
@@ -19,7 +19,6 @@ import com.facebook.react.ReactInstanceManager.initializeSoLoaderIfNecessary
19
19
  import com.facebook.react.bridge.JSBundleLoader
20
20
  import com.facebook.react.bridge.JSExceptionHandler
21
21
  import com.facebook.react.bridge.JavaScriptExecutorFactory
22
- import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener
23
22
  import com.facebook.react.bridge.UIManagerProvider
24
23
  import com.facebook.react.common.LifecycleState
25
24
  import com.facebook.react.common.SurfaceDelegateFactory
@@ -49,7 +48,6 @@ public class ReactInstanceManagerBuilder {
49
48
  private var jsBundleAssetUrl: String? = null
50
49
  private var jsBundleLoader: JSBundleLoader? = null
51
50
  private var jsMainModulePath: String? = null
52
- private var bridgeIdleDebugListener: NotThreadSafeBridgeIdleDebugListener? = null
53
51
  private var application: Application? = null
54
52
  private var useDeveloperSupport = false
55
53
  private var devSupportManagerFactory: DevSupportManagerFactory? = null
@@ -145,13 +143,6 @@ public class ReactInstanceManagerBuilder {
145
143
  return this
146
144
  }
147
145
 
148
- public fun setBridgeIdleDebugListener(
149
- bridgeIdleDebugListener: NotThreadSafeBridgeIdleDebugListener
150
- ): ReactInstanceManagerBuilder {
151
- this.bridgeIdleDebugListener = bridgeIdleDebugListener
152
- return this
153
- }
154
-
155
146
  /** Required. This must be your `Application` instance. */
156
147
  public fun setApplication(application: Application): ReactInstanceManagerBuilder {
157
148
  this.application = application
@@ -359,7 +350,6 @@ public class ReactInstanceManagerBuilder {
359
350
  devSupportManagerFactory ?: DefaultDevSupportManagerFactory(),
360
351
  requireActivity,
361
352
  keepActivity,
362
- bridgeIdleDebugListener,
363
353
  checkNotNull(initialLifecycleState) { "Initial lifecycle state was not set" },
364
354
  jsExceptionHandler,
365
355
  redBoxHandler,
@@ -27,7 +27,7 @@ internal object ReactPackageHelper {
27
27
  ): Iterable<ModuleHolder> {
28
28
  FLog.d(
29
29
  ReactConstants.TAG,
30
- "${reactPackage.javaClass.simpleName} is not a LazyReactPackage, falling back to old version.",
30
+ "${reactPackage.javaClass.simpleName} is not a BaseReactPackage, falling back to old version.",
31
31
  )
32
32
  @Suppress("DEPRECATION")
33
33
  val nativeModules = reactPackage.createNativeModules(reactApplicationContext)
@@ -8,8 +8,6 @@
8
8
  package com.facebook.react
9
9
 
10
10
  import com.facebook.jni.HybridData
11
- import com.facebook.react.bridge.CxxModuleWrapper
12
- import com.facebook.react.bridge.ModuleSpec
13
11
  import com.facebook.react.bridge.NativeModule
14
12
  import com.facebook.react.bridge.ReactApplicationContext
15
13
  import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags
@@ -17,7 +15,6 @@ import com.facebook.react.internal.turbomodule.core.TurboModuleManagerDelegate
17
15
  import com.facebook.react.module.annotations.ReactModule
18
16
  import com.facebook.react.module.model.ReactModuleInfo
19
17
  import com.facebook.react.turbomodule.core.interfaces.TurboModule
20
- import javax.inject.Provider
21
18
 
22
19
  public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManagerDelegate {
23
20
  internal fun interface ModuleProvider {
@@ -61,26 +58,6 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
61
58
  continue
62
59
  }
63
60
 
64
- @Suppress("DEPRECATION")
65
- if (shouldSupportLegacyPackages() && reactPackage is LazyReactPackage) {
66
- // TODO(T145105887): Output warnings that LazyReactPackage was used
67
- val lazyPkg = reactPackage
68
- val moduleSpecs: List<ModuleSpec> =
69
- lazyPkg.internal_getNativeModules(reactApplicationContext)
70
- val moduleSpecProviderMap: MutableMap<String?, Provider<out NativeModule>> = mutableMapOf()
71
- for (moduleSpec in moduleSpecs) {
72
- moduleSpecProviderMap[moduleSpec.getName()] = moduleSpec.getProvider()
73
- }
74
-
75
- val moduleProvider = ModuleProvider { moduleName: String ->
76
- moduleSpecProviderMap[moduleName]?.get()
77
- }
78
-
79
- moduleProviders.add(moduleProvider)
80
- packageModuleInfos[moduleProvider] = lazyPkg.reactModuleInfoProvider.getReactModuleInfos()
81
- continue
82
- }
83
-
84
61
  if (shouldSupportLegacyPackages()) {
85
62
  // TODO(T145105887): Output warnings that ReactPackage was used
86
63
  @Suppress("DEPRECATION")
@@ -103,7 +80,7 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
103
80
  moduleClass.name,
104
81
  reactModule.canOverrideExistingModule,
105
82
  true,
106
- reactModule.isCxxModule,
83
+ false,
107
84
  ReactModuleInfo.classIsTurboModule(moduleClass),
108
85
  )
109
86
  else
@@ -112,7 +89,7 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
112
89
  moduleClass.name,
113
90
  module.canOverrideExistingModule(),
114
91
  true,
115
- CxxModuleWrapper::class.java.isAssignableFrom(moduleClass),
92
+ false,
116
93
  ReactModuleInfo.classIsTurboModule(moduleClass),
117
94
  )
118
95
 
@@ -128,8 +105,6 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
128
105
  }
129
106
  }
130
107
 
131
- override fun unstable_shouldEnableLegacyModuleInterop(): Boolean = shouldEnableLegacyModuleInterop
132
-
133
108
  override fun getModule(moduleName: String): TurboModule? {
134
109
  var resolvedModule: NativeModule? = null
135
110
 
@@ -176,7 +151,7 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
176
151
  }
177
152
 
178
153
  override fun getLegacyModule(moduleName: String): NativeModule? {
179
- if (!unstable_shouldEnableLegacyModuleInterop()) {
154
+ if (!shouldEnableLegacyModuleInterop) {
180
155
  return null
181
156
  }
182
157
 
@@ -214,7 +189,7 @@ public abstract class ReactPackageTurboModuleManagerDelegate : TurboModuleManage
214
189
  }
215
190
  }
216
191
 
217
- private fun shouldSupportLegacyPackages(): Boolean = unstable_shouldEnableLegacyModuleInterop()
192
+ private fun shouldSupportLegacyPackages(): Boolean = shouldEnableLegacyModuleInterop
218
193
 
219
194
  public abstract class Builder {
220
195
  private var packages: List<ReactPackage>? = null
@@ -57,6 +57,7 @@ import com.facebook.react.modules.appregistry.AppRegistry;
57
57
  import com.facebook.react.modules.deviceinfo.DeviceInfoModule;
58
58
  import com.facebook.react.uimanager.DisplayMetricsHolder;
59
59
  import com.facebook.react.uimanager.IllegalViewOperationException;
60
+ import com.facebook.react.uimanager.JSKeyDispatcher;
60
61
  import com.facebook.react.uimanager.JSPointerDispatcher;
61
62
  import com.facebook.react.uimanager.JSTouchDispatcher;
62
63
  import com.facebook.react.uimanager.PixelUtil;
@@ -106,6 +107,7 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
106
107
  private boolean mShouldLogContentAppeared;
107
108
  private @Nullable JSTouchDispatcher mJSTouchDispatcher;
108
109
  private @Nullable JSPointerDispatcher mJSPointerDispatcher;
110
+ private @Nullable JSKeyDispatcher mJSKeyDispatcher;
109
111
  private final ReactAndroidHWInputDeviceHelper mAndroidHWInputDeviceHelper =
110
112
  new ReactAndroidHWInputDeviceHelper();
111
113
  private boolean mWasMeasured = false;
@@ -334,10 +336,17 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
334
336
  FLog.w(TAG, "Unable to handle key event as the catalyst instance has not been attached");
335
337
  return super.dispatchKeyEvent(ev);
336
338
  }
339
+
337
340
  ReactContext context = getCurrentReactContext();
338
- if (context != null) {
339
- mAndroidHWInputDeviceHelper.handleKeyEvent(ev, context);
341
+ if (context == null) {
342
+ return super.dispatchKeyEvent(ev);
340
343
  }
344
+
345
+ mAndroidHWInputDeviceHelper.handleKeyEvent(ev, context);
346
+
347
+ // Dispatch during the capture phase before children handle the event as the focus could shift
348
+ dispatchJSKeyEvent(ev);
349
+
341
350
  return super.dispatchKeyEvent(ev);
342
351
  }
343
352
 
@@ -378,6 +387,31 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
378
387
  }
379
388
  }
380
389
 
390
+ protected void dispatchJSKeyEvent(KeyEvent ev) {
391
+ if (!ReactNativeFeatureFlags.enableKeyEvents()) {
392
+ // Silently return early if key events are disabled
393
+ return;
394
+ }
395
+ if (!hasActiveReactContext() || !isViewAttachedToReactInstance()) {
396
+ FLog.w(
397
+ TAG, "Unable to dispatch key event to JS as the catalyst instance has not been attached");
398
+ return;
399
+ }
400
+ if (mJSKeyDispatcher == null) {
401
+ FLog.w(TAG, "Unable to dispatch key event to JS before the dispatcher is available");
402
+ return;
403
+ }
404
+ ReactContext context = getCurrentReactContext();
405
+ if (context != null) {
406
+ EventDispatcher eventDispatcher =
407
+ UIManagerHelper.getEventDispatcher(context, getUIManagerType());
408
+ int surfaceId = UIManagerHelper.getSurfaceId(context);
409
+ if (eventDispatcher != null) {
410
+ mJSKeyDispatcher.handleKeyEvent(ev, eventDispatcher, surfaceId);
411
+ }
412
+ }
413
+ }
414
+
381
415
  @Override
382
416
  public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {
383
417
  // Override in order to still receive events to onInterceptTouchEvent even when some other
@@ -634,6 +668,10 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
634
668
  mJSPointerDispatcher = new JSPointerDispatcher(this);
635
669
  }
636
670
 
671
+ if (ReactNativeFeatureFlags.enableKeyEvents()) {
672
+ mJSKeyDispatcher = new JSKeyDispatcher();
673
+ }
674
+
637
675
  if (mRootViewEventListener != null) {
638
676
  mRootViewEventListener.onAttachedToReactInstance(this);
639
677
  }
@@ -712,6 +750,9 @@ public class ReactRootView extends FrameLayout implements RootView, ReactRoot {
712
750
  if (ReactFeatureFlags.dispatchPointerEvents) {
713
751
  mJSPointerDispatcher = new JSPointerDispatcher(this);
714
752
  }
753
+ if (ReactNativeFeatureFlags.enableKeyEvents()) {
754
+ mJSKeyDispatcher = new JSKeyDispatcher();
755
+ }
715
756
  }
716
757
 
717
758
  @VisibleForTesting
@@ -10,16 +10,65 @@ package com.facebook.react
10
10
  import com.facebook.react.bridge.ReactApplicationContext
11
11
  import com.facebook.react.uimanager.ViewManager
12
12
 
13
+ /**
14
+ * Interface for React Native packages that provide ViewManagers on-demand rather than eagerly.
15
+ *
16
+ * This interface enables lazy initialization of ViewManagers, improving startup performance by
17
+ * deferring the creation of ViewManager instances until they are actually needed by the JavaScript
18
+ * code. Instead of instantiating all ViewManagers during package initialization, implementing
19
+ * classes can defer creation until a specific ViewManager is requested by name.
20
+ *
21
+ * This pattern is particularly beneficial for applications with many ViewManagers, as it reduces
22
+ * memory footprint and initialization time by only creating the ViewManagers that are actively
23
+ * used.
24
+ *
25
+ * Implementing classes should maintain a registry or factory mechanism to create ViewManagers based
26
+ * on their names when requested.
27
+ *
28
+ * @see com.facebook.react.uimanager.ViewManager
29
+ * @see com.facebook.react.ReactPackage
30
+ */
13
31
  public interface ViewManagerOnDemandReactPackage {
14
32
  /**
15
- * Provides a list of names of ViewManagers with which these modules can be accessed from JS.
16
- * Typically, this is ViewManager.getName().
33
+ * Provides the names of all ViewManagers available in this package.
34
+ *
35
+ * This method returns a collection of ViewManager names that can be accessed from JavaScript. The
36
+ * names returned should match the values returned by [ViewManager.getName] for each ViewManager
37
+ * that this package can create. The React Native framework uses these names to determine which
38
+ * ViewManagers are available and to request their creation on-demand.
39
+ *
40
+ * This method is called during the initialization phase to register available ViewManagers
41
+ * without actually instantiating them, enabling lazy loading.
42
+ *
43
+ * @param reactContext The React application context, which provides access to the Android
44
+ * application context and React Native lifecycle information
45
+ * @return A collection of ViewManager names. Returns an empty collection if no ViewManagers are
46
+ * available. The returned names should be unique within this package
17
47
  */
18
48
  public fun getViewManagerNames(reactContext: ReactApplicationContext): Collection<String>
19
49
 
20
50
  /**
21
- * Creates and returns a ViewManager with a specific name {@param viewManagerName}. It's up to an
22
- * implementing package how to interpret the name.
51
+ * Creates and returns a ViewManager instance for the specified name.
52
+ *
53
+ * This method is called lazily when a ViewManager is actually needed by the JavaScript code,
54
+ * rather than during package initialization. The implementation should create and configure the
55
+ * appropriate ViewManager based on the provided name. The name parameter corresponds to one of
56
+ * the names returned by [getViewManagerNames].
57
+ *
58
+ * Implementations have flexibility in how they interpret the name and create ViewManagers. For
59
+ * example, they might use a factory pattern, reflection, or a simple name-to-class mapping.
60
+ *
61
+ * This method may be called on any thread, so implementations should ensure thread safety if
62
+ * necessary.
63
+ *
64
+ * @param reactContext The React application context, which provides access to the Android
65
+ * application context and React Native lifecycle information needed to initialize the
66
+ * ViewManager
67
+ * @param viewManagerName The name of the ViewManager to create, matching one of the names
68
+ * returned by [getViewManagerNames]
69
+ * @return A ViewManager instance for the specified name, or null if the name is not recognized or
70
+ * the ViewManager cannot be created. Returning null will result in a JavaScript error when the
71
+ * native component is used
23
72
  */
24
73
  public fun createViewManager(
25
74
  reactContext: ReactApplicationContext,
@@ -75,24 +75,6 @@ public interface CatalystInstance : MemoryPressureListener, JSInstance, JSBundle
75
75
  */
76
76
  public fun extendNativeModules(modules: NativeModuleRegistry)
77
77
 
78
- /**
79
- * Adds a idle listener for this Catalyst instance. The listener will receive notifications
80
- * whenever the bridge transitions from idle to busy and vice-versa, where the busy state is
81
- * defined as there being some non-zero number of calls to JS that haven't resolved via a
82
- * onBatchCompleted call. The listener should be purely passive and not affect application logic.
83
- */
84
- public fun addBridgeIdleDebugListener(
85
- @Suppress("DEPRECATION") listener: NotThreadSafeBridgeIdleDebugListener
86
- )
87
-
88
- /**
89
- * Removes a NotThreadSafeBridgeIdleDebugListener previously added with
90
- * [addBridgeIdleDebugListener]
91
- */
92
- public fun removeBridgeIdleDebugListener(
93
- @Suppress("DEPRECATION") listener: NotThreadSafeBridgeIdleDebugListener
94
- )
95
-
96
78
  /** This method registers the file path of an additional JS segment by its ID. */
97
79
  public fun registerSegment(segmentId: Int, path: String)
98
80