react-native-tvos 0.77.0-0rc5 → 0.78.0-0rc4

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 (652) hide show
  1. package/Libraries/Animated/animations/Animation.js +22 -1
  2. package/Libraries/Animated/animations/DecayAnimation.js +1 -0
  3. package/Libraries/Animated/animations/SpringAnimation.js +1 -0
  4. package/Libraries/Animated/animations/TimingAnimation.js +1 -0
  5. package/Libraries/Animated/nodes/AnimatedAddition.js +9 -2
  6. package/Libraries/Animated/nodes/AnimatedColor.js +4 -1
  7. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +10 -2
  8. package/Libraries/Animated/nodes/AnimatedDivision.js +9 -2
  9. package/Libraries/Animated/nodes/AnimatedInterpolation.js +5 -1
  10. package/Libraries/Animated/nodes/AnimatedModulo.js +5 -2
  11. package/Libraries/Animated/nodes/AnimatedMultiplication.js +9 -2
  12. package/Libraries/Animated/nodes/AnimatedNode.js +25 -46
  13. package/Libraries/Animated/nodes/AnimatedObject.js +9 -2
  14. package/Libraries/Animated/nodes/AnimatedProps.js +5 -1
  15. package/Libraries/Animated/nodes/AnimatedStyle.js +5 -1
  16. package/Libraries/Animated/nodes/AnimatedSubtraction.js +9 -2
  17. package/Libraries/Animated/nodes/AnimatedTracking.js +5 -1
  18. package/Libraries/Animated/nodes/AnimatedTransform.js +5 -1
  19. package/Libraries/Animated/nodes/AnimatedValue.js +63 -4
  20. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
  21. package/Libraries/Animated/useAnimatedProps.js +14 -56
  22. package/Libraries/AppDelegate/RCTAppDelegate.h +6 -48
  23. package/Libraries/AppDelegate/RCTAppDelegate.mm +5 -230
  24. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.h +21 -0
  25. package/Libraries/AppDelegate/RCTDefaultReactNativeFactoryDelegate.mm +123 -0
  26. package/Libraries/AppDelegate/RCTReactNativeFactory.h +98 -0
  27. package/Libraries/AppDelegate/RCTReactNativeFactory.mm +263 -0
  28. package/Libraries/AppDelegate/RCTRootViewFactory.mm +1 -1
  29. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +0 -1
  30. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +1 -1
  31. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  32. package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
  33. package/Libraries/Components/LayoutConformance/LayoutConformance.js +59 -0
  34. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
  35. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  36. package/Libraries/Components/TV/TVFocusGuideView.js +0 -1
  37. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  38. package/Libraries/Components/TextInput/TextInput.d.ts +5 -0
  39. package/Libraries/Components/TextInput/TextInput.flow.js +6 -0
  40. package/Libraries/Components/TextInput/TextInput.js +6 -0
  41. package/Libraries/Components/View/ViewPropTypes.d.ts +8 -7
  42. package/Libraries/Components/View/ViewPropTypes.js +0 -9
  43. package/Libraries/Core/ReactNativeVersion.js +2 -2
  44. package/Libraries/Core/setUpBatchedBridge.js +1 -16
  45. package/Libraries/EventEmitter/RCTEventEmitter.js +2 -6
  46. package/Libraries/Image/AssetSourceResolver.js +11 -0
  47. package/Libraries/Image/RCTImageLoader.mm +9 -1
  48. package/Libraries/Image/RCTImageView.mm +3 -3
  49. package/Libraries/Inspector/BorderBox.js +26 -14
  50. package/Libraries/Inspector/BoxInspector.js +60 -42
  51. package/Libraries/Inspector/ElementBox.js +55 -48
  52. package/Libraries/Inspector/StyleInspector.js +36 -30
  53. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  54. package/Libraries/Lists/FlatList.d.ts +1 -1
  55. package/Libraries/Modal/Modal.js +2 -0
  56. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +1 -1
  57. package/Libraries/NativeComponent/BaseViewConfig.android.js +0 -2
  58. package/Libraries/NativeComponent/BaseViewConfig.ios.js +0 -2
  59. package/Libraries/Network/RCTNetworking.android.js +24 -16
  60. package/Libraries/Network/RCTNetworking.ios.js +1 -46
  61. package/Libraries/Network/RCTNetworking.js.flow +1 -46
  62. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
  63. package/Libraries/Pressability/Pressability.js +2 -2
  64. package/Libraries/ReactNative/UIManagerProperties.js +3 -1
  65. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15829 -26461
  66. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3907 -2560
  67. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4399 -2878
  68. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16103 -26908
  69. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +4034 -2695
  70. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4535 -3045
  71. package/Libraries/Renderer/shims/ReactNativeTypes.js +5 -6
  72. package/Libraries/StyleSheet/processTransform.js +6 -0
  73. package/Libraries/Text/Text/NSTextStorage+FontScaling.m +9 -0
  74. package/Libraries/Text/Text.d.ts +6 -1
  75. package/Libraries/Text/TextInput/Multiline/RCTUITextView.h +2 -0
  76. package/Libraries/Text/TextInput/Multiline/RCTUITextView.mm +26 -0
  77. package/Libraries/Text/TextInput/RCTBackedTextInputViewProtocol.h +2 -0
  78. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +26 -1
  79. package/Libraries/Text/TextInput/RCTBaseTextInputViewManager.mm +2 -0
  80. package/Libraries/Text/TextInput/Singleline/RCTUITextField.h +1 -0
  81. package/Libraries/Text/TextInput/Singleline/RCTUITextField.mm +26 -0
  82. package/Libraries/Text/TextProps.js +2 -2
  83. package/Libraries/Utilities/BackHandler.android.js +5 -4
  84. package/Libraries/Utilities/BackHandler.ios.js +3 -4
  85. package/README-core.md +2 -2
  86. package/React/Base/RCTConvert.mm +3 -1
  87. package/React/Base/RCTVersion.m +2 -2
  88. package/React/CoreModules/RCTDevSettings.h +0 -1
  89. package/React/CoreModules/RCTDeviceInfo.mm +4 -0
  90. package/React/CxxLogUtils/RCTDefaultCxxLogFunction.mm +3 -5
  91. package/React/DevSupport/RCTInspectorDevServerHelper.mm +1 -6
  92. package/React/DevSupport/RCTPausedInDebuggerOverlayController.mm +3 -5
  93. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec-generated.mm +0 -24
  94. package/React/FBReactNativeSpec/FBReactNativeSpec/FBReactNativeSpec.h +0 -28
  95. package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +90 -57
  96. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +241 -104
  97. package/React/Fabric/Mounting/ComponentViews/InputAccessory/RCTInputAccessoryContentView.mm +0 -5
  98. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +39 -10
  99. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +3 -3
  100. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +107 -34
  101. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +5 -0
  102. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +1 -0
  103. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +12 -4
  104. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +3 -0
  105. package/React/Fabric/Mounting/RCTMountingManager.mm +6 -9
  106. package/React/Fabric/RCTScheduler.mm +1 -1
  107. package/React/I18n/strings/da.lproj/fbt_language_pack.bin +0 -0
  108. package/React/Modules/RCTUIManager.mm +1 -2
  109. package/React/React-RCTFBReactNativeSpec.podspec +1 -0
  110. package/React/React-RCTFabric.podspec +3 -2
  111. package/React/Tests/Text/RCTParagraphComponentViewTests.mm +12 -12
  112. package/React/Views/RCTComponentData.mm +1 -5
  113. package/React/Views/RCTLayout.m +3 -0
  114. package/React/Views/RCTShadowView.h +3 -3
  115. package/React/Views/RCTShadowView.m +52 -20
  116. package/React/Views/RCTTVView.m +5 -2
  117. package/React/Views/RCTView.m +6 -2
  118. package/React/Views/RCTViewManager.m +0 -7
  119. package/React/Views/ScrollView/RCTScrollView.m +109 -45
  120. package/React-Core.podspec +1 -1
  121. package/ReactAndroid/api/ReactAndroid.api +123 -227
  122. package/ReactAndroid/build.gradle.kts +8 -13
  123. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +13 -3
  124. package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +2 -0
  125. package/ReactAndroid/external-artifacts/build.gradle.kts +5 -5
  126. package/ReactAndroid/gradle.properties +3 -3
  127. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesMemoryDumper.java → HermesMemoryDumper.kt} +5 -5
  128. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/{HermesSamplingProfiler.java → HermesSamplingProfiler.kt} +8 -10
  129. package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +12 -59
  130. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +8 -0
  131. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +8 -0
  132. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +37 -0
  133. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +12 -1
  134. package/ReactAndroid/src/main/java/com/facebook/react/{ReactPackageLogger.java → ReactPackageLogger.kt} +3 -3
  135. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +8 -8
  136. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +1 -1
  137. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -3
  138. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactSoftExceptionLogger.kt +6 -0
  139. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.kt +5 -3
  140. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +4 -8
  141. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +11 -5
  142. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +0 -7
  143. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +1 -3
  144. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.kt +6 -1
  145. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +11 -23
  146. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +3 -30
  147. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/HMRClient.java +4 -1
  148. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +2 -0
  149. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/StackTraceHelper.java +4 -4
  150. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +21 -26
  151. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerBinding.kt +1 -14
  152. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManagerProviderImpl.java +2 -11
  153. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.kt +88 -0
  154. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +6 -6
  155. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +39 -8
  156. package/ReactAndroid/src/main/java/com/facebook/react/interfaces/exceptionmanager/ReactJsExceptionHandler.kt +7 -7
  157. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +21 -21
  158. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +36 -36
  159. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +8 -8
  160. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +10 -10
  161. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +40 -40
  162. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +8 -8
  163. package/ReactAndroid/src/main/java/com/facebook/react/internal/interop/InteropEventEmitter.kt +3 -3
  164. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.kt +55 -0
  165. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.kt +185 -0
  166. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/{HeadlessJsTaskEventListener.java → HeadlessJsTaskEventListener.kt} +5 -6
  167. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.kt +20 -0
  168. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/LinearCountingRetryPolicy.kt +4 -4
  169. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/NoRetryPolicy.kt +7 -8
  170. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +8 -5
  171. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +11 -17
  172. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +1 -1
  173. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.kt +16 -0
  174. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.kt +107 -0
  175. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java +18 -19
  176. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.kt +48 -0
  177. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  178. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.kt +397 -0
  179. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +0 -10
  180. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +1 -1
  181. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +8 -8
  182. package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +4 -10
  183. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +4 -0
  184. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +13 -12
  185. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +15 -12
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{ComponentNameResolver.java → ComponentNameResolver.kt} +4 -5
  187. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.kt +5 -2
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +0 -5
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.kt +21 -0
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.kt +18 -0
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{RootView.java → RootView.kt} +11 -12
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/RootViewManager.kt +1 -1
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{UIBlock.java → UIBlock.kt} +3 -3
  194. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +2 -5
  195. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +25 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +1 -1
  197. package/{Libraries/AppDelegate/RCTAppDelegate+Protected.h → ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerWithGeneratedInterface.kt} +3 -8
  198. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +12 -5
  199. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BackgroundDrawable.kt +46 -80
  200. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BorderDrawable.kt +5 -5
  201. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +5 -5
  202. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/{BatchEventDispatchedListener.java → BatchEventDispatchedListener.kt} +3 -3
  203. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.kt +46 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.kt +40 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +2 -6
  206. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.kt +19 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.kt +23 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +241 -0
  209. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.kt +193 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.kt +44 -0
  211. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.kt +37 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.kt +130 -0
  213. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.kt +1 -1
  214. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.kt +77 -0
  215. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.kt +196 -0
  216. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +16 -17
  217. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +5 -0
  218. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +56 -3
  219. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +11 -0
  220. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/{FpsListener.java → FpsListener.kt} +4 -4
  221. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +16 -0
  222. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +3 -3
  223. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.kt +136 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +2 -2
  225. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.kt +152 -0
  226. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchShadowNode.kt +52 -0
  227. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java +1 -7
  228. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +16 -2
  229. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +8 -13
  230. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.kt +50 -0
  231. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ShadowStyleSpan.kt +1 -1
  232. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +1 -9
  233. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.kt +111 -0
  234. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +90 -20
  235. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +2 -2
  236. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +22 -1
  237. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +43 -1
  238. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +86 -2
  239. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java +44 -2
  240. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaUnit.java +7 -1
  241. package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -6
  242. package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +6 -1
  243. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +96 -11
  244. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +9 -0
  245. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +1 -0
  246. package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +0 -3
  247. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +3 -0
  248. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +41 -25
  249. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +0 -2
  250. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +63 -91
  251. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.h +1 -7
  252. package/ReactAndroid/src/main/jni/react/fabric/MountItem.cpp +9 -9
  253. package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +6 -10
  254. package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +0 -2
  255. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +4 -0
  256. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +1 -0
  257. package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +0 -1
  258. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +49 -49
  259. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +11 -11
  260. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +1 -4
  261. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +0 -1
  262. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +0 -1
  263. package/ReactAndroid/src/main/jni/react/jni/JSLogging.cpp +4 -9
  264. package/ReactAndroid/src/main/jni/react/jni/JSLogging.h +0 -4
  265. package/ReactAndroid/src/main/jni/react/jni/JniJSModulesUnbundle.cpp +3 -4
  266. package/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +3 -4
  267. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.cpp +6 -0
  268. package/ReactAndroid/src/main/jni/react/jni/WritableNativeArray.h +1 -0
  269. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.cpp +6 -0
  270. package/ReactAndroid/src/main/jni/react/jni/WritableNativeMap.h +1 -0
  271. package/ReactAndroid/src/main/jni/react/jscexecutor/OnLoad.cpp +3 -7
  272. package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +0 -2
  273. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +0 -1
  274. package/ReactAndroid/src/main/jni/react/reactperflogger/CMakeLists.txt +0 -1
  275. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +2 -8
  276. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +2 -8
  277. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +0 -1
  278. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.cpp +18 -17
  279. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactExceptionManager.h +1 -1
  280. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +1 -1
  281. package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +0 -2
  282. package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +0 -1
  283. package/ReactAndroid/src/main/res/views/view/values/ids.xml +5 -0
  284. package/ReactCommon/React-Fabric.podspec +8 -0
  285. package/ReactCommon/React-FabricComponents.podspec +2 -2
  286. package/ReactCommon/React-FabricImage.podspec +4 -1
  287. package/ReactCommon/cxxreact/CxxNativeModule.cpp +3 -3
  288. package/ReactCommon/cxxreact/Instance.cpp +6 -6
  289. package/ReactCommon/cxxreact/JSBigString.cpp +1 -1
  290. package/ReactCommon/cxxreact/JSExecutor.cpp +4 -2
  291. package/ReactCommon/cxxreact/ModuleRegistry.cpp +6 -6
  292. package/ReactCommon/cxxreact/NativeToJsBridge.cpp +3 -3
  293. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  294. package/ReactCommon/cxxreact/SystraceSection.h +8 -141
  295. package/ReactCommon/cxxreact/TraceSection.h +181 -0
  296. package/ReactCommon/cxxreact/tests/jsbigstring.cpp +19 -0
  297. package/ReactCommon/hermes/executor/HermesExecutorFactory.cpp +2 -2
  298. package/ReactCommon/jsc/JSCRuntime.cpp +0 -2
  299. package/ReactCommon/jsc/React-jsc.podspec +1 -1
  300. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +27 -19
  301. package/ReactCommon/jserrorhandler/JsErrorHandler.h +5 -3
  302. package/ReactCommon/jserrorhandler/StackTraceParser.cpp +16 -16
  303. package/ReactCommon/jserrorhandler/StackTraceParser.h +1 -1
  304. package/ReactCommon/jserrorhandler/tests/StackTraceParserTest.cpp +252 -246
  305. package/ReactCommon/jsi/jsi/CMakeLists.txt +0 -3
  306. package/ReactCommon/jsi/jsi/JSIDynamic.cpp +1 -1
  307. package/ReactCommon/jsi/jsi/JSIDynamic.h +1 -1
  308. package/ReactCommon/jsi/jsi/decorator.h +61 -0
  309. package/ReactCommon/jsi/jsi/jsi-inl.h +4 -0
  310. package/ReactCommon/jsi/jsi/jsi.cpp +37 -0
  311. package/ReactCommon/jsi/jsi/jsi.h +81 -0
  312. package/ReactCommon/jsi/jsi/test/testlib.cpp +88 -0
  313. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +9 -9
  314. package/ReactCommon/jsinspector-modern/CMakeLists.txt +1 -1
  315. package/ReactCommon/jsinspector-modern/HostAgent.cpp +3 -7
  316. package/ReactCommon/jsinspector-modern/HostTarget.cpp +22 -1
  317. package/ReactCommon/jsinspector-modern/HostTarget.h +1 -1
  318. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +19 -4
  319. package/ReactCommon/jsinspector-modern/InspectorFlags.h +14 -0
  320. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +21 -10
  321. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +12 -11
  322. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +2 -16
  323. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +14 -14
  324. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.h +7 -13
  325. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestGenericEngineAdapter.cpp +1 -1
  326. package/ReactCommon/jsinspector-modern/tests/engines/JsiIntegrationTestHermesEngineAdapter.cpp +1 -3
  327. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +3 -3
  328. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +1 -1
  329. package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +26 -0
  330. package/ReactCommon/jsinspector-modern/tracing/CdpTracing.h +21 -0
  331. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +187 -0
  332. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +126 -0
  333. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +56 -0
  334. package/ReactCommon/react/featureflags/CMakeLists.txt +3 -0
  335. package/ReactCommon/react/featureflags/React-featureflags.podspec +7 -0
  336. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +15 -15
  337. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +18 -18
  338. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +88 -88
  339. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +9 -9
  340. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +17 -17
  341. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +454 -0
  342. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +5 -5
  343. package/ReactCommon/react/featureflags/tests/ReactNativeFeatureFlagsDynamicProviderTest.cpp +78 -0
  344. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +2 -3
  345. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +3 -3
  346. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +13 -4
  347. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +1 -0
  348. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +19 -11
  349. package/ReactCommon/react/nativemodule/cputime/CPUTime.h +55 -0
  350. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.cpp +35 -0
  351. package/ReactCommon/react/nativemodule/cputime/NativeCPUTime.h +28 -0
  352. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +18 -18
  353. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +8 -8
  354. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -0
  355. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.cpp +5 -8
  356. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +3 -3
  357. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +22 -43
  358. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.h +0 -15
  359. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  360. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +22 -2
  361. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +9 -4
  362. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  363. package/ReactCommon/react/renderer/animations/CMakeLists.txt +0 -1
  364. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +1 -1
  365. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +25 -19
  366. package/ReactCommon/react/renderer/animations/primitives.h +1 -1
  367. package/ReactCommon/react/renderer/animations/utils.h +3 -4
  368. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +31 -9
  369. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +85 -29
  370. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -0
  371. package/ReactCommon/react/renderer/attributedstring/conversions.h +5 -0
  372. package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +0 -1
  373. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.cpp +4 -1
  374. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +2 -0
  375. package/ReactCommon/react/renderer/components/image/ImageEventEmitter.cpp +2 -2
  376. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +5 -5
  377. package/ReactCommon/react/renderer/components/image/ImageProps.h +1 -1
  378. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +38 -10
  379. package/ReactCommon/react/renderer/components/image/ImageShadowNode.h +1 -1
  380. package/ReactCommon/react/renderer/components/image/ImageState.cpp +2 -3
  381. package/ReactCommon/react/renderer/components/image/ImageState.h +9 -6
  382. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -4
  383. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarShadowNode.h +7 -0
  384. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -2
  385. package/ReactCommon/react/renderer/components/scrollview/CMakeLists.txt +2 -2
  386. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +33 -0
  387. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +17 -0
  388. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +3 -2
  389. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +2 -1
  390. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -4
  391. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchShadowNode.h +7 -0
  392. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +12 -0
  393. package/ReactCommon/react/renderer/{uimanager/bindingUtils.h → components/text/ParagraphComponentDescriptor.cpp} +2 -8
  394. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +10 -7
  395. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.cpp +23 -0
  396. package/ReactCommon/react/renderer/components/textinput/BaseTextInputProps.h +8 -1
  397. package/ReactCommon/react/renderer/components/textinput/BaseTextInputShadowNode.h +243 -0
  398. package/ReactCommon/react/renderer/components/textinput/TextInputState.cpp +71 -0
  399. package/ReactCommon/react/renderer/components/textinput/{platform/ios/react/renderer/components/iostextinput/TextInputState.h → TextInputState.h} +27 -7
  400. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +6 -13
  401. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +0 -2
  402. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +145 -144
  403. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +27 -29
  404. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputComponentDescriptor.h +4 -5
  405. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.cpp +0 -26
  406. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputProps.h +0 -6
  407. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +0 -147
  408. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +5 -57
  409. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +60 -70
  410. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +3 -3
  411. package/ReactCommon/react/renderer/components/view/LayoutConformanceComponentDescriptor.h +18 -0
  412. package/ReactCommon/react/renderer/components/view/LayoutConformanceProps.h +36 -0
  413. package/ReactCommon/react/renderer/components/view/LayoutConformanceShadowNode.h +28 -0
  414. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +4 -0
  415. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +0 -1
  416. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +21 -22
  417. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  418. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +3 -1
  419. package/ReactCommon/react/renderer/components/view/conversions.h +117 -43
  420. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +3 -2
  421. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +3 -1
  422. package/ReactCommon/react/renderer/components/view/primitives.h +1 -1
  423. package/ReactCommon/react/renderer/components/view/tests/LayoutTest.cpp +12 -12
  424. package/ReactCommon/react/renderer/core/CMakeLists.txt +0 -1
  425. package/ReactCommon/react/renderer/core/ComponentDescriptor.cpp +4 -2
  426. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +4 -2
  427. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +17 -2
  428. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.cpp +26 -0
  429. package/ReactCommon/react/renderer/core/DynamicPropsUtilities.h +4 -0
  430. package/ReactCommon/react/renderer/core/EventEmitter.cpp +3 -3
  431. package/ReactCommon/react/renderer/core/Props.cpp +16 -5
  432. package/ReactCommon/react/renderer/core/Props.h +11 -4
  433. package/ReactCommon/react/renderer/core/RawProps.cpp +30 -5
  434. package/ReactCommon/react/renderer/core/RawProps.h +10 -1
  435. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +7 -2
  436. package/ReactCommon/react/renderer/core/RawPropsParser.h +7 -1
  437. package/ReactCommon/react/renderer/core/RawPropsPrimitives.h +1 -0
  438. package/ReactCommon/react/renderer/core/RawValue.h +315 -22
  439. package/ReactCommon/react/renderer/core/tests/DynamicPropsUtilitiesTest.cpp +95 -4
  440. package/ReactCommon/react/renderer/debug/debugStringConvertibleUtils.h +19 -4
  441. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +7 -1
  442. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +7 -5
  443. package/ReactCommon/react/renderer/graphics/Transform.cpp +11 -2
  444. package/ReactCommon/react/renderer/graphics/Transform.h +2 -1
  445. package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +4 -2
  446. package/ReactCommon/react/renderer/imagemanager/ImageManager.h +7 -0
  447. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +43 -0
  448. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +36 -0
  449. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +43 -0
  450. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +94 -0
  451. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +101 -0
  452. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageManager.cpp +9 -1
  453. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  454. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageManager.mm +9 -0
  455. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequestParams.h +30 -0
  456. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImageManager.mm +2 -2
  457. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +187 -152
  458. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +4 -5
  459. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +10 -16
  460. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -12
  461. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +44 -14
  462. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +8 -4
  463. package/ReactCommon/react/renderer/mounting/stubs/stubs.cpp +1 -1
  464. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +116 -193
  465. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +0 -3
  466. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +7 -4
  467. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +2 -1
  468. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +7 -8
  469. package/ReactCommon/react/renderer/observers/mutation/MutationObserverManager.cpp +6 -6
  470. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +3 -1
  471. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +2 -0
  472. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +11 -11
  473. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +14 -15
  474. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -3
  475. package/ReactCommon/react/renderer/scheduler/CMakeLists.txt +0 -1
  476. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +6 -37
  477. package/ReactCommon/react/renderer/scheduler/Scheduler.h +0 -3
  478. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +15 -11
  479. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +1 -0
  480. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +56 -2
  481. package/ReactCommon/react/renderer/scheduler/SurfaceManager.h +23 -3
  482. package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
  483. package/ReactCommon/react/renderer/textlayoutmanager/TextLayoutManager.cpp +26 -0
  484. package/ReactCommon/react/renderer/textlayoutmanager/{platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h → TextLayoutManager.h} +18 -17
  485. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +2 -3
  486. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +77 -89
  487. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +6 -10
  488. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +11 -5
  489. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +23 -1
  490. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +11 -32
  491. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +9 -23
  492. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.cpp +88 -0
  493. package/ReactCommon/react/renderer/uimanager/AppRegistryBinding.h +50 -0
  494. package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +0 -1
  495. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.h +3 -40
  496. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +23 -18
  497. package/ReactCommon/react/renderer/uimanager/UIManager.h +2 -0
  498. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -31
  499. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +0 -4
  500. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +10 -10
  501. package/ReactCommon/react/runtime/CMakeLists.txt +0 -1
  502. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -2
  503. package/ReactCommon/react/runtime/ReactInstance.cpp +43 -57
  504. package/ReactCommon/react/runtime/TimerManager.cpp +4 -4
  505. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +5 -1
  506. package/ReactCommon/react/runtime/hermes/HermesInstance.h +0 -2
  507. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +2 -6
  508. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +6 -15
  509. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +3 -1
  510. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +15 -15
  511. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +5 -4
  512. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +0 -3
  513. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +33 -17
  514. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +8 -2
  515. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.cpp → ReactPerfettoLogger.cpp} +25 -24
  516. package/ReactCommon/reactperflogger/reactperflogger/{ReactPerfLogger.h → ReactPerfettoLogger.h} +9 -9
  517. package/ReactCommon/yoga/yoga/YGEnums.cpp +6 -0
  518. package/ReactCommon/yoga/yoga/YGEnums.h +4 -1
  519. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +124 -24
  520. package/ReactCommon/yoga/yoga/YGNodeStyle.h +22 -1
  521. package/ReactCommon/yoga/yoga/YGValue.h +3 -0
  522. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +6 -6
  523. package/ReactCommon/yoga/yoga/algorithm/FlexLine.cpp +2 -2
  524. package/ReactCommon/yoga/yoga/algorithm/FlexLine.h +1 -1
  525. package/ReactCommon/yoga/yoga/algorithm/PixelGrid.cpp +9 -6
  526. package/ReactCommon/yoga/yoga/enums/Unit.h +4 -1
  527. package/ReactCommon/yoga/yoga/node/Node.cpp +8 -8
  528. package/ReactCommon/yoga/yoga/node/Node.h +5 -5
  529. package/ReactCommon/yoga/yoga/style/Style.h +14 -12
  530. package/ReactCommon/yoga/yoga/style/StyleLength.h +14 -7
  531. package/ReactCommon/yoga/yoga/style/StyleSizeLength.h +139 -0
  532. package/ReactCommon/yoga/yoga/style/StyleValueHandle.h +8 -0
  533. package/ReactCommon/yoga/yoga/style/StyleValuePool.h +60 -3
  534. package/gradle/libs.versions.toml +6 -2
  535. package/index.js +5 -0
  536. package/package.json +12 -13
  537. package/react-native.config.js +6 -0
  538. package/scripts/cocoapods/codegen_utils.rb +4 -4
  539. package/scripts/cocoapods/new_architecture.rb +3 -3
  540. package/scripts/cocoapods/utils.rb +4 -3
  541. package/scripts/codegen/generate-artifacts-executor.js +8 -4
  542. package/scripts/generate-codegen-artifacts.js +6 -1
  543. package/scripts/react-native-xcode.sh +1 -1
  544. package/scripts/react_native_pods.rb +3 -3
  545. package/scripts/xcode/ccache-clang++.sh +1 -1
  546. package/scripts/xcode/ccache-clang.sh +1 -1
  547. package/sdks/.hermesversion +1 -1
  548. package/sdks/hermes-engine/hermes-utils.rb +2 -2
  549. package/sdks/hermes-engine/utils/build-hermes-xcode.sh +1 -1
  550. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  551. package/sdks/hermesc/osx-bin/hermes +0 -0
  552. package/sdks/hermesc/osx-bin/hermesc +0 -0
  553. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  554. package/src/private/animated/NativeAnimatedValidation.js +1 -1
  555. package/src/private/featureflags/README.md +5 -0
  556. package/src/private/featureflags/ReactNativeFeatureFlags.js +32 -26
  557. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +5 -5
  558. package/src/private/renderer/errorhandling/ErrorHandlers.js +12 -55
  559. package/src/private/specs/modules/{NativeJSCSamplingProfiler.js → NativeCPUTime.js} +7 -2
  560. package/src/private/specs/modules/NativeFantom.js +37 -0
  561. package/src/private/utilities/ensureInstance.js +21 -0
  562. package/src/private/webapis/dom/nodes/ReactNativeElement.js +49 -6
  563. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +17 -9
  564. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +11 -11
  565. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +1 -1
  566. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -1
  567. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  568. package/src/private/webapis/performance/Performance.js +0 -12
  569. package/src/private/webapis/performance/specs/NativePerformance.js +0 -11
  570. package/types/index.d.ts +1 -0
  571. package/types/public/ReactNativeTVTypes.d.ts +49 -51
  572. package/Libraries/HeapCapture/HeapCapture.js +0 -29
  573. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -13
  574. package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -13
  575. package/Libraries/Performance/SamplingProfiler.js +0 -39
  576. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +0 -334
  577. package/React/Inspector/RCTInspectorPackagerConnection.m +0 -325
  578. package/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java +0 -50
  579. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java +0 -314
  580. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/JSCHeapCapture.java +0 -76
  581. package/ReactAndroid/src/main/java/com/facebook/react/fabric/EmptyReactNativeConfig.kt +0 -36
  582. package/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.kt +0 -33
  583. package/ReactAndroid/src/main/java/com/facebook/react/fabric/ReactNativeConfig.kt +0 -54
  584. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +0 -83
  585. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskConfig.java +0 -121
  586. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +0 -214
  587. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskRetryPolicy.java +0 -22
  588. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/XmlFormat.kt +0 -143
  589. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/CookieJarContainer.java +0 -17
  590. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +0 -124
  591. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ReactCookieJarContainer.java +0 -58
  592. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/WebSocketModule.java +0 -422
  593. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FabricViewStateManager.java +0 -98
  594. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +0 -25
  595. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactPointerEventsView.java +0 -20
  596. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +0 -45
  597. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcher.java +0 -37
  598. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherListener.java +0 -19
  599. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherProvider.java +0 -24
  600. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +0 -257
  601. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEventHelper.java +0 -210
  602. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +0 -43
  603. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +0 -39
  604. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +0 -165
  605. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventCoalescingKeyHelper.java +0 -85
  606. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +0 -204
  607. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewAccessibilityDelegate.java +0 -161
  608. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitchManager.java +0 -232
  609. package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageViewManager.java +0 -70
  610. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/LegacyLineHeightSpan.kt +0 -69
  611. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactDrawableHelper.java +0 -114
  612. package/ReactAndroid/src/main/jni/first-party/fb/CMakeLists.txt +0 -31
  613. package/ReactAndroid/src/main/jni/first-party/fb/assert.cpp +0 -39
  614. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ALog.h +0 -82
  615. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Build.h +0 -31
  616. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Countable.h +0 -45
  617. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Doxyfile +0 -18
  618. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/Environment.h +0 -93
  619. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ProgramLocation.h +0 -58
  620. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/RefPtr.h +0 -266
  621. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/StaticInitialized.h +0 -37
  622. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/ThreadLocal.h +0 -112
  623. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/assert.h +0 -43
  624. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/log.h +0 -350
  625. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/noncopyable.h +0 -20
  626. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/nonmovable.h +0 -20
  627. package/ReactAndroid/src/main/jni/first-party/fb/include/fb/visibility.h +0 -10
  628. package/ReactAndroid/src/main/jni/first-party/fb/log.cpp +0 -102
  629. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.cpp +0 -47
  630. package/ReactAndroid/src/main/jni/react/fabric/JEmptyReactNativeConfig.h +0 -38
  631. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.cpp +0 -41
  632. package/ReactAndroid/src/main/jni/react/fabric/ReactNativeConfigHolder.h +0 -35
  633. package/ReactAndroid/src/main/jni/react/perftests/OnLoad.cpp +0 -243
  634. package/ReactAndroid/src/main/jni/third-party/jsc/CMakeLists.txt +0 -15
  635. package/ReactCommon/React-nativeconfig.podspec +0 -36
  636. package/ReactCommon/cxxreact/tests/main.cpp +0 -15
  637. package/ReactCommon/react/config/CMakeLists.txt +0 -20
  638. package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -28
  639. package/ReactCommon/react/config/ReactNativeConfig.h +0 -42
  640. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.cpp +0 -95
  641. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputState.h +0 -80
  642. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputState.cpp +0 -10
  643. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +0 -78
  644. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +0 -69
  645. package/ReactCommon/react/renderer/uimanager/SurfaceRegistryBinding.cpp +0 -123
  646. package/ReactCommon/react/renderer/uimanager/bindingUtils.cpp +0 -79
  647. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +0 -413
  648. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +0 -181
  649. package/src/private/webapis/mutationobserver/specs/__mocks__/NativeMutationObserver.js +0 -327
  650. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewComponentDescriptor.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewComponentDescriptor.h} +0 -0
  651. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.cpp → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.cpp} +0 -0
  652. /package/ReactCommon/react/renderer/components/scrollview/{AndroidHorizontalScrollContentViewShadowNode.h → platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h} +0 -0
@@ -14,7 +14,6 @@ import androidx.annotation.Nullable;
14
14
  import com.facebook.common.logging.FLog;
15
15
  import com.facebook.fbreact.specs.NativeNetworkingAndroidSpec;
16
16
  import com.facebook.react.bridge.Arguments;
17
- import com.facebook.react.bridge.GuardedAsyncTask;
18
17
  import com.facebook.react.bridge.ReactApplicationContext;
19
18
  import com.facebook.react.bridge.ReactMethod;
20
19
  import com.facebook.react.bridge.ReadableArray;
@@ -97,14 +96,14 @@ public final class NetworkingModule extends NativeNetworkingAndroidSpec {
97
96
  customClientBuilder = null;
98
97
 
99
98
  private final OkHttpClient mClient;
100
- private final ForwardingCookieHandler mCookieHandler;
99
+ private final ForwardingCookieHandler mCookieHandler = new ForwardingCookieHandler();
101
100
  private final @Nullable String mDefaultUserAgent;
102
- private final CookieJarContainer mCookieJarContainer;
103
- private final Set<Integer> mRequestIds;
101
+ private final @Nullable CookieJarContainer mCookieJarContainer;
102
+ private final Set<Integer> mRequestIds = new HashSet<>();
104
103
  private final List<RequestBodyHandler> mRequestBodyHandlers = new ArrayList<>();
105
104
  private final List<UriHandler> mUriHandlers = new ArrayList<>();
106
105
  private final List<ResponseHandler> mResponseHandlers = new ArrayList<>();
107
- private boolean mShuttingDown;
106
+ private boolean mShuttingDown = false;
108
107
 
109
108
  public NetworkingModule(
110
109
  ReactApplicationContext reactContext,
@@ -121,11 +120,14 @@ public final class NetworkingModule extends NativeNetworkingAndroidSpec {
121
120
  client = clientBuilder.build();
122
121
  }
123
122
  mClient = client;
124
- mCookieHandler = new ForwardingCookieHandler(reactContext);
125
- mCookieJarContainer = (CookieJarContainer) mClient.cookieJar();
126
- mShuttingDown = false;
123
+
124
+ CookieJar cookieJar = client.cookieJar();
125
+ if (cookieJar instanceof CookieJarContainer) {
126
+ mCookieJarContainer = (CookieJarContainer) client.cookieJar();
127
+ } else {
128
+ mCookieJarContainer = null;
129
+ }
127
130
  mDefaultUserAgent = defaultUserAgent;
128
- mRequestIds = new HashSet<>();
129
131
  }
130
132
 
131
133
  /**
@@ -186,7 +188,9 @@ public final class NetworkingModule extends NativeNetworkingAndroidSpec {
186
188
 
187
189
  @Override
188
190
  public void initialize() {
189
- mCookieJarContainer.setCookieJar(new JavaNetCookieJar(mCookieHandler));
191
+ if (mCookieJarContainer != null) {
192
+ mCookieJarContainer.setCookieJar(new JavaNetCookieJar(mCookieHandler));
193
+ }
190
194
  }
191
195
 
192
196
  @Override
@@ -195,7 +199,9 @@ public final class NetworkingModule extends NativeNetworkingAndroidSpec {
195
199
  cancelAllRequests();
196
200
 
197
201
  mCookieHandler.destroy();
198
- mCookieJarContainer.removeCookieJar();
202
+ if (mCookieJarContainer != null) {
203
+ mCookieJarContainer.removeCookieJar();
204
+ }
199
205
 
200
206
  mRequestBodyHandlers.clear();
201
207
  mResponseHandlers.clear();
@@ -666,14 +672,7 @@ public final class NetworkingModule extends NativeNetworkingAndroidSpec {
666
672
  }
667
673
 
668
674
  private void cancelRequest(final int requestId) {
669
- // We have to use AsyncTask since this might trigger a NetworkOnMainThreadException, this is an
670
- // open issue on OkHttp: https://github.com/square/okhttp/issues/869
671
- new GuardedAsyncTask<Void, Void>(getReactApplicationContext()) {
672
- @Override
673
- protected void doInBackgroundGuarded(Void... params) {
674
- OkHttpCallUtil.cancelTag(mClient, Integer.valueOf(requestId));
675
- }
676
- }.execute();
675
+ OkHttpCallUtil.cancelTag(mClient, Integer.valueOf(requestId));
677
676
  }
678
677
 
679
678
  @ReactMethod
@@ -0,0 +1,48 @@
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
+
8
+ @file:Suppress("DEPRECATION_ERROR") // Conflicting okhttp versions
9
+
10
+ package com.facebook.react.modules.network
11
+
12
+ import java.util.ArrayList
13
+ import okhttp3.Cookie
14
+ import okhttp3.CookieJar
15
+ import okhttp3.Headers
16
+ import okhttp3.HttpUrl
17
+
18
+ /** Basic okhttp3 CookieJar container */
19
+ public class ReactCookieJarContainer : CookieJarContainer {
20
+
21
+ private var cookieJar: CookieJar? = null
22
+
23
+ override fun setCookieJar(cookieJar: CookieJar) {
24
+ this.cookieJar = cookieJar
25
+ }
26
+
27
+ override fun removeCookieJar() {
28
+ cookieJar = null
29
+ }
30
+
31
+ override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {
32
+ cookieJar?.saveFromResponse(url, cookies)
33
+ }
34
+
35
+ override fun loadForRequest(url: HttpUrl): List<Cookie> {
36
+ val cookieJar = cookieJar ?: return emptyList()
37
+ val cookies = cookieJar.loadForRequest(url)
38
+ val validatedCookies = ArrayList<Cookie>()
39
+ for (cookie in cookies) {
40
+ try {
41
+ val cookieChecker = Headers.Builder()
42
+ cookieChecker.add(cookie.name(), cookie.value())
43
+ validatedCookies.add(cookie)
44
+ } catch (ignored: IllegalArgumentException) {}
45
+ }
46
+ return validatedCookies
47
+ }
48
+ }
@@ -16,7 +16,7 @@ import java.util.Map;
16
16
  public class ReactNativeVersion {
17
17
  public static final Map<String, Object> VERSION = MapBuilder.<String, Object>of(
18
18
  "major", 0,
19
- "minor", 77,
19
+ "minor", 78,
20
20
  "patch", 0,
21
- "prerelease", "0rc5");
21
+ "prerelease", "0rc4");
22
22
  }
@@ -0,0 +1,397 @@
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
+
8
+ @file:Suppress("DEPRECATION_ERROR") // Conflicting okhttp versions
9
+
10
+ package com.facebook.react.modules.websocket
11
+
12
+ import com.facebook.common.logging.FLog
13
+ import com.facebook.fbreact.specs.NativeWebSocketModuleSpec
14
+ import com.facebook.react.bridge.Arguments
15
+ import com.facebook.react.bridge.ReactApplicationContext
16
+ import com.facebook.react.bridge.ReadableArray
17
+ import com.facebook.react.bridge.ReadableMap
18
+ import com.facebook.react.bridge.ReadableType
19
+ import com.facebook.react.bridge.WritableMap
20
+ import com.facebook.react.common.ReactConstants
21
+ import com.facebook.react.module.annotations.ReactModule
22
+ import com.facebook.react.modules.network.CustomClientBuilder
23
+ import com.facebook.react.modules.network.ForwardingCookieHandler
24
+ import java.io.IOException
25
+ import java.net.URI
26
+ import java.net.URISyntaxException
27
+ import java.util.HashMap
28
+ import java.util.concurrent.ConcurrentHashMap
29
+ import java.util.concurrent.TimeUnit
30
+ import okhttp3.OkHttpClient
31
+ import okhttp3.Request
32
+ import okhttp3.Response
33
+ import okhttp3.WebSocket
34
+ import okhttp3.WebSocketListener
35
+ import okio.ByteString
36
+
37
+ @ReactModule(name = WebSocketModule.NAME)
38
+ public class WebSocketModule(context: ReactApplicationContext) :
39
+ NativeWebSocketModuleSpec(context) {
40
+
41
+ public interface ContentHandler {
42
+ public fun onMessage(text: String, params: WritableMap)
43
+
44
+ public fun onMessage(byteString: ByteString, params: WritableMap)
45
+ }
46
+
47
+ private val webSocketConnections: MutableMap<Int, WebSocket> = ConcurrentHashMap()
48
+ private val contentHandlers: MutableMap<Int, ContentHandler> = ConcurrentHashMap()
49
+ private val cookieHandler: ForwardingCookieHandler = ForwardingCookieHandler()
50
+
51
+ override fun invalidate() {
52
+ for (socket in webSocketConnections.values) {
53
+ socket.close(1_001 /* endpoint is going away */, null)
54
+ }
55
+ webSocketConnections.clear()
56
+ contentHandlers.clear()
57
+ }
58
+
59
+ private fun sendEvent(eventName: String, params: WritableMap) {
60
+ val reactAppContext = reactApplicationContext
61
+ if (reactAppContext.hasActiveReactInstance()) {
62
+ reactAppContext.emitDeviceEvent(eventName, params)
63
+ }
64
+ }
65
+
66
+ public fun setContentHandler(id: Int, contentHandler: ContentHandler?): Unit {
67
+ if (contentHandler != null) {
68
+ contentHandlers[id] = contentHandler
69
+ } else {
70
+ contentHandlers.remove(id)
71
+ }
72
+ }
73
+
74
+ override fun connect(
75
+ url: String,
76
+ protocols: ReadableArray?,
77
+ options: ReadableMap?,
78
+ socketID: Double
79
+ ) {
80
+ val id = socketID.toInt()
81
+ val okHttpBuilder =
82
+ OkHttpClient.Builder()
83
+ .connectTimeout(10, TimeUnit.SECONDS)
84
+ .writeTimeout(10, TimeUnit.SECONDS)
85
+ .readTimeout(0, TimeUnit.MINUTES) // Disable timeouts for read
86
+
87
+ applyCustomBuilder(okHttpBuilder)
88
+
89
+ val client = okHttpBuilder.build()
90
+
91
+ val builder = Request.Builder().tag(id).url(url)
92
+
93
+ val cookie = this.getCookie(url)
94
+ if (cookie != null) {
95
+ builder.addHeader("Cookie", cookie)
96
+ }
97
+
98
+ var hasOriginHeader = false
99
+
100
+ if (options?.hasKey("headers") == true && options.getType("headers") == ReadableType.Map) {
101
+ val headers = checkNotNull(options.getMap("headers"))
102
+ val iterator = headers.keySetIterator()
103
+
104
+ while (iterator.hasNextKey()) {
105
+ val key = iterator.nextKey()
106
+ if (ReadableType.String == headers.getType(key)) {
107
+ if (key.equals("origin", ignoreCase = true)) {
108
+ hasOriginHeader = true
109
+ }
110
+ builder.addHeader(
111
+ key,
112
+ checkNotNull(headers.getString(key)) { "value for name $key == null" },
113
+ )
114
+ } else {
115
+ FLog.w(ReactConstants.TAG, "Ignoring: requested $key, value not a string")
116
+ }
117
+ }
118
+ }
119
+
120
+ if (!hasOriginHeader) {
121
+ builder.addHeader("origin", getDefaultOrigin(url))
122
+ }
123
+
124
+ if (protocols != null && protocols.size() > 0) {
125
+ val protocolsValue = StringBuilder("")
126
+ for (i in 0..<protocols.size()) {
127
+ val v = protocols.getString(i)?.trim()
128
+ if (!v.isNullOrEmpty() && !v.contains(",")) {
129
+ protocolsValue.append(v)
130
+ protocolsValue.append(",")
131
+ }
132
+ }
133
+ if (protocolsValue.length > 0) {
134
+ protocolsValue.replace(protocolsValue.length - 1, protocolsValue.length, "")
135
+ builder.addHeader("Sec-WebSocket-Protocol", protocolsValue.toString())
136
+ }
137
+ }
138
+
139
+ client.newWebSocket(
140
+ builder.build(),
141
+ object : WebSocketListener() {
142
+ override fun onOpen(webSocket: WebSocket, response: Response) {
143
+ webSocketConnections[id] = webSocket
144
+ val params = Arguments.createMap()
145
+ params.putInt("id", id)
146
+ params.putString("protocol", response.header("Sec-WebSocket-Protocol", ""))
147
+ sendEvent("websocketOpen", params)
148
+ }
149
+
150
+ override fun onClosing(websocket: WebSocket, code: Int, reason: String) {
151
+ websocket.close(code, reason)
152
+ }
153
+
154
+ override fun onClosed(webSocket: WebSocket, code: Int, reason: String) {
155
+ val params = Arguments.createMap()
156
+ params.putInt("id", id)
157
+ params.putInt("code", code)
158
+ params.putString("reason", reason)
159
+ sendEvent("websocketClosed", params)
160
+ }
161
+
162
+ override fun onFailure(webSocket: WebSocket, t: Throwable, response: Response?) {
163
+ notifyWebSocketFailed(id, t.message)
164
+ }
165
+
166
+ override fun onMessage(webSocket: WebSocket, text: String) {
167
+ val params = Arguments.createMap()
168
+ params.putInt("id", id)
169
+ params.putString("type", "text")
170
+
171
+ val contentHandler = contentHandlers[id]
172
+ if (contentHandler != null) {
173
+ contentHandler.onMessage(text, params)
174
+ } else {
175
+ params.putString("data", text)
176
+ }
177
+ sendEvent("websocketMessage", params)
178
+ }
179
+
180
+ override fun onMessage(webSocket: WebSocket, bytes: ByteString) {
181
+ val params = Arguments.createMap()
182
+ params.putInt("id", id)
183
+ params.putString("type", "binary")
184
+
185
+ val contentHandler = contentHandlers[id]
186
+ if (contentHandler != null) {
187
+ contentHandler.onMessage(bytes, params)
188
+ } else {
189
+ val text = bytes.base64()
190
+
191
+ params.putString("data", text)
192
+ }
193
+
194
+ sendEvent("websocketMessage", params)
195
+ }
196
+ })
197
+
198
+ // Trigger shutdown of the dispatcher's executor so this process can exit cleanly
199
+ client.dispatcher().executorService().shutdown()
200
+ }
201
+
202
+ override fun close(code: Double, reason: String?, socketID: Double) {
203
+ val id = socketID.toInt()
204
+ val client = webSocketConnections[id]
205
+ if (client == null) {
206
+ // WebSocket is already closed
207
+ // Don't do anything, mirror the behavior on web
208
+ return
209
+ }
210
+ try {
211
+ client.close(code.toInt(), reason)
212
+ webSocketConnections.remove(id)
213
+ contentHandlers.remove(id)
214
+ } catch (e: Exception) {
215
+ FLog.e(ReactConstants.TAG, "Could not close WebSocket connection for id $id", e)
216
+ }
217
+ }
218
+
219
+ override fun send(message: String, socketID: Double) {
220
+ val id = socketID.toInt()
221
+ val client = webSocketConnections[id]
222
+ if (client == null) {
223
+ // This is a programmer error -- display development warning
224
+ var params: WritableMap = Arguments.createMap()
225
+ params.putInt("id", id)
226
+ params.putString("message", "client is null")
227
+ sendEvent("websocketFailed", params)
228
+ params = Arguments.createMap()
229
+ params.putInt("id", id)
230
+ params.putInt("code", 0)
231
+ params.putString("reason", "client is null")
232
+ sendEvent("websocketClosed", params)
233
+ webSocketConnections.remove(id)
234
+ contentHandlers.remove(id)
235
+ return
236
+ }
237
+ try {
238
+ client.send(message)
239
+ } catch (e: Exception) {
240
+ notifyWebSocketFailed(id, e.message)
241
+ }
242
+ }
243
+
244
+ override fun sendBinary(base64String: String, socketID: Double) {
245
+ val id = socketID.toInt()
246
+ val client = webSocketConnections[id]
247
+ if (client == null) {
248
+ // This is a programmer error -- display development warning
249
+ var params: WritableMap = Arguments.createMap()
250
+ params.putInt("id", id)
251
+ params.putString("message", "client is null")
252
+ sendEvent("websocketFailed", params)
253
+ params = Arguments.createMap()
254
+ params.putInt("id", id)
255
+ params.putInt("code", 0)
256
+ params.putString("reason", "client is null")
257
+ sendEvent("websocketClosed", params)
258
+ webSocketConnections.remove(id)
259
+ contentHandlers.remove(id)
260
+ return
261
+ }
262
+ try {
263
+ val decodedString = checkNotNull(ByteString.decodeBase64(base64String)) { "bytes == null" }
264
+ client.send(decodedString)
265
+ } catch (e: Exception) {
266
+ notifyWebSocketFailed(id, e.message)
267
+ }
268
+ }
269
+
270
+ public fun sendBinary(byteString: ByteString, id: Int): Unit {
271
+ val client = webSocketConnections[id]
272
+ if (client == null) {
273
+ // This is a programmer error -- display development warning
274
+ var params: WritableMap = Arguments.createMap()
275
+ params.putInt("id", id)
276
+ params.putString("message", "client is null")
277
+ sendEvent("websocketFailed", params)
278
+ params = Arguments.createMap()
279
+ params.putInt("id", id)
280
+ params.putInt("code", 0)
281
+ params.putString("reason", "client is null")
282
+ sendEvent("websocketClosed", params)
283
+ webSocketConnections.remove(id)
284
+ contentHandlers.remove(id)
285
+ return
286
+ }
287
+ try {
288
+ client.send(byteString)
289
+ } catch (e: Exception) {
290
+ notifyWebSocketFailed(id, e.message)
291
+ }
292
+ }
293
+
294
+ override fun ping(socketID: Double) {
295
+ val id = socketID.toInt()
296
+ val client = webSocketConnections[id]
297
+ if (client == null) {
298
+ // This is a programmer error -- display development warning
299
+ var params: WritableMap = Arguments.createMap()
300
+ params.putInt("id", id)
301
+ params.putString("message", "client is null")
302
+ sendEvent("websocketFailed", params)
303
+ params = Arguments.createMap()
304
+ params.putInt("id", id)
305
+ params.putInt("code", 0)
306
+ params.putString("reason", "client is null")
307
+ sendEvent("websocketClosed", params)
308
+ webSocketConnections.remove(id)
309
+ contentHandlers.remove(id)
310
+ return
311
+ }
312
+ try {
313
+ client.send(ByteString.EMPTY)
314
+ } catch (e: Exception) {
315
+ notifyWebSocketFailed(id, e.message)
316
+ }
317
+ }
318
+
319
+ private fun notifyWebSocketFailed(id: Int, message: String?) {
320
+ val params = Arguments.createMap()
321
+ params.putInt("id", id)
322
+ params.putString("message", message)
323
+ sendEvent("websocketFailed", params)
324
+ }
325
+
326
+ /**
327
+ * Get the cookie for a specific domain
328
+ *
329
+ * @param uri
330
+ * @return The cookie header or null if none is set
331
+ */
332
+ private fun getCookie(uri: String): String? {
333
+ try {
334
+ val origin = URI(getDefaultOrigin(uri))
335
+ val cookieMap = cookieHandler.get(origin, HashMap<String, List<String>>())
336
+ val cookieList = cookieMap["Cookie"]
337
+ if (cookieList.isNullOrEmpty()) {
338
+ return null
339
+ }
340
+ return cookieList[0]
341
+ } catch (e: URISyntaxException) {
342
+ throw IllegalArgumentException("Unable to get cookie from $uri")
343
+ } catch (e: IOException) {
344
+ throw IllegalArgumentException("Unable to get cookie from $uri")
345
+ }
346
+ }
347
+
348
+ override fun addListener(eventName: String): Unit = Unit
349
+
350
+ override fun removeListeners(count: Double): Unit = Unit
351
+
352
+ public companion object {
353
+ public const val NAME: String = NativeWebSocketModuleSpec.NAME
354
+
355
+ private var customClientBuilder: CustomClientBuilder? = null
356
+
357
+ @JvmStatic
358
+ public fun setCustomClientBuilder(ccb: CustomClientBuilder?): Unit {
359
+ customClientBuilder = ccb
360
+ }
361
+
362
+ private fun applyCustomBuilder(builder: OkHttpClient.Builder) {
363
+ customClientBuilder?.apply(builder)
364
+ }
365
+
366
+ /**
367
+ * Get the default HTTP(S) origin for a specific WebSocket URI
368
+ *
369
+ * @param uri
370
+ * @return A string of the endpoint converted to HTTP protocol (http[s]://host[:port])
371
+ */
372
+ private fun getDefaultOrigin(uri: String): String {
373
+ try {
374
+ val requestURI = URI(uri)
375
+ val scheme =
376
+ when (requestURI.scheme) {
377
+ "wss" -> "https"
378
+ "ws" -> "http"
379
+ "http",
380
+ "https" -> requestURI.scheme
381
+ else -> ""
382
+ }
383
+
384
+ val defaultOrigin =
385
+ if (requestURI.port != -1) {
386
+ String.format("%s://%s:%s", scheme, requestURI.host, requestURI.port)
387
+ } else {
388
+ String.format("%s://%s", scheme, requestURI.host)
389
+ }
390
+
391
+ return defaultOrigin
392
+ } catch (e: URISyntaxException) {
393
+ throw IllegalArgumentException("Unable to set $uri as default origin header")
394
+ }
395
+ }
396
+ }
397
+ }
@@ -12,7 +12,6 @@ import com.facebook.react.ReactPackage
12
12
  import com.facebook.react.ReactPackageTurboModuleManagerDelegate
13
13
  import com.facebook.react.bridge.JSBundleLoader
14
14
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
15
- import com.facebook.react.fabric.ReactNativeConfig
16
15
 
17
16
  /**
18
17
  * [ReactHostDelegate] is an interface that defines parameters required to initialize React Native.
@@ -54,13 +53,4 @@ public interface ReactHostDelegate {
54
53
  * the internals of React Native.
55
54
  */
56
55
  public fun handleInstanceException(error: Exception)
57
-
58
- /**
59
- * ReactNative Configuration that allows to customize the behavior of key/value pairs used by the
60
- * framework to enable/disable experimental capabilities
61
- *
62
- * [moduleProvider] is a function that returns the Native Module with the name received as a
63
- * parameter.
64
- */
65
- public fun getReactNativeConfig(): ReactNativeConfig
66
56
  }
@@ -194,7 +194,7 @@ public class ReactHostImpl implements ReactHost {
194
194
  mUIExecutor = uiExecutor;
195
195
  mMemoryPressureRouter = new MemoryPressureRouter(context);
196
196
  mAllowPackagerServerAccess = allowPackagerServerAccess;
197
- mUseDevSupport = useDevSupport || ReactBuildConfig.UNSTABLE_ENABLE_FUSEBOX_RELEASE;
197
+ mUseDevSupport = useDevSupport;
198
198
  if (devSupportManagerFactory == null) {
199
199
  devSupportManagerFactory = new DefaultDevSupportManagerFactory();
200
200
  }
@@ -17,6 +17,7 @@ import com.facebook.infer.annotation.ThreadConfined;
17
17
  import com.facebook.infer.annotation.ThreadSafe;
18
18
  import com.facebook.jni.HybridData;
19
19
  import com.facebook.proguard.annotations.DoNotStrip;
20
+ import com.facebook.react.BuildConfig;
20
21
  import com.facebook.react.DebugCorePackage;
21
22
  import com.facebook.react.ReactPackage;
22
23
  import com.facebook.react.ViewManagerOnDemandReactPackage;
@@ -130,9 +131,7 @@ final class ReactInstance {
130
131
  mQueueConfiguration.getNativeModulesQueueThread();
131
132
 
132
133
  ReactChoreographer.initialize(AndroidChoreographerProvider.getInstance());
133
- if (useDevSupport) {
134
- devSupportManager.startInspector();
135
- }
134
+ devSupportManager.startInspector();
136
135
 
137
136
  JSTimerExecutor jsTimerExecutor = createJSTimerExecutor();
138
137
  mJavaTimerManager =
@@ -146,7 +145,9 @@ final class ReactInstance {
146
145
  BindingsInstaller bindingsInstaller = delegate.getBindingsInstaller();
147
146
  // Notify JS if profiling is enabled
148
147
  boolean isProfiling =
149
- Systrace.isTracing(Systrace.TRACE_TAG_REACT_APPS | Systrace.TRACE_TAG_REACT_JS_VM_CALLS);
148
+ BuildConfig.ENABLE_PERFETTO
149
+ || Systrace.isTracing(
150
+ Systrace.TRACE_TAG_REACT_APPS | Systrace.TRACE_TAG_REACT_JS_VM_CALLS);
150
151
 
151
152
  mHybridData =
152
153
  initHybrid(
@@ -277,8 +278,7 @@ final class ReactInstance {
277
278
  getRuntimeScheduler(),
278
279
  mFabricUIManager,
279
280
  eventBeatManager,
280
- componentFactory,
281
- delegate.getReactNativeConfig());
281
+ componentFactory);
282
282
 
283
283
  // Initialize the FabricUIManager
284
284
  mFabricUIManager.initialize();
@@ -324,8 +324,8 @@ final class ReactInstance {
324
324
  }
325
325
 
326
326
  @Override
327
- public void reportJsException(ParsedError error) {
328
- JavaOnlyMap data = StackTraceHelper.convertParsedError(error);
327
+ public void reportJsException(ProcessedError error) {
328
+ JavaOnlyMap data = StackTraceHelper.convertProcessedError(error);
329
329
 
330
330
  try {
331
331
  NativeExceptionsManagerSpec exceptionsManager =
@@ -9,24 +9,18 @@ package com.facebook.react.runtime.hermes
9
9
 
10
10
  import com.facebook.jni.HybridData
11
11
  import com.facebook.jni.annotations.DoNotStrip
12
- import com.facebook.react.fabric.ReactNativeConfig
13
12
  import com.facebook.react.runtime.JSRuntimeFactory
14
13
  import com.facebook.soloader.SoLoader
15
14
 
16
- public class HermesInstance(
17
- reactNativeConfig: ReactNativeConfig?,
18
- allocInOldGenBeforeTTI: Boolean
19
- ) : JSRuntimeFactory(initHybrid(reactNativeConfig as Any?, allocInOldGenBeforeTTI)) {
15
+ public class HermesInstance(allocInOldGenBeforeTTI: Boolean) :
16
+ JSRuntimeFactory(initHybrid(allocInOldGenBeforeTTI)) {
20
17
 
21
- public constructor() : this(null, false)
18
+ public constructor() : this(false)
22
19
 
23
20
  public companion object {
24
21
  @JvmStatic
25
22
  @DoNotStrip
26
- protected external fun initHybrid(
27
- reactNativeConfig: Any?,
28
- allocInOldGenBeforeTTI: Boolean
29
- ): HybridData
23
+ protected external fun initHybrid(allocInOldGenBeforeTTI: Boolean): HybridData
30
24
 
31
25
  init {
32
26
  SoLoader.loadLibrary("hermesinstancejni")
@@ -298,6 +298,10 @@ public object BackgroundStyleApplicator {
298
298
  val borderInsets = compositeBackgroundDrawable.borderInsets
299
299
  val borderRadius = compositeBackgroundDrawable.borderRadius
300
300
 
301
+ /**
302
+ * z-ordering of user-provided shadow-list is opposite direction of LayerDrawable z-ordering
303
+ * https://drafts.csswg.org/css-backgrounds/#shadow-layers
304
+ */
301
305
  for (boxShadow in shadows.asReversed()) {
302
306
  val offsetX = boxShadow.offsetX
303
307
  val offsetY = boxShadow.offsetY