react-native-tvos 0.75.3-0 → 0.76.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (968) hide show
  1. package/Libraries/Alert/Alert.js +3 -0
  2. package/Libraries/Animated/AnimatedEvent.js +1 -1
  3. package/Libraries/Animated/AnimatedImplementation.js +7 -7
  4. package/Libraries/Animated/NativeAnimatedAllowlist.js +111 -0
  5. package/Libraries/Animated/animations/Animation.js +11 -1
  6. package/Libraries/Animated/animations/DecayAnimation.js +1 -1
  7. package/Libraries/Animated/animations/SpringAnimation.js +1 -1
  8. package/Libraries/Animated/animations/TimingAnimation.js +2 -1
  9. package/Libraries/Animated/components/AnimatedScrollView.js +3 -2
  10. package/Libraries/Animated/createAnimatedComponent.js +10 -9
  11. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  12. package/Libraries/Animated/nodes/AnimatedInterpolation.js +3 -2
  13. package/Libraries/Animated/nodes/AnimatedNode.js +42 -33
  14. package/Libraries/Animated/nodes/AnimatedObject.js +56 -50
  15. package/Libraries/Animated/nodes/AnimatedProps.js +77 -40
  16. package/Libraries/Animated/nodes/AnimatedStyle.js +103 -59
  17. package/Libraries/Animated/nodes/AnimatedTracking.js +1 -1
  18. package/Libraries/Animated/nodes/AnimatedTransform.js +102 -67
  19. package/Libraries/Animated/nodes/AnimatedValue.js +2 -1
  20. package/Libraries/Animated/nodes/AnimatedWithChildren.js +21 -22
  21. package/Libraries/Animated/useAnimatedProps.js +142 -7
  22. package/Libraries/AppDelegate/RCTAppDelegate.h +10 -5
  23. package/Libraries/AppDelegate/RCTAppDelegate.mm +24 -50
  24. package/Libraries/AppDelegate/RCTRootViewFactory.h +5 -23
  25. package/Libraries/AppDelegate/RCTRootViewFactory.mm +21 -26
  26. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +2 -3
  27. package/Libraries/BatchedBridge/NativeModules.js +2 -0
  28. package/Libraries/Blob/FileReader.js +1 -1
  29. package/Libraries/Blob/RCTFileReaderModule.mm +4 -3
  30. package/Libraries/Blob/URL.js +2 -62
  31. package/Libraries/Blob/URLSearchParams.js +71 -0
  32. package/Libraries/Blob/URLSearchParams.js.flow +23 -0
  33. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
  34. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +17 -0
  35. package/Libraries/Components/Pressable/Pressable.js +3 -36
  36. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +1 -1
  37. package/Libraries/Components/ScrollView/ScrollView.js +132 -171
  38. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +3 -0
  39. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  40. package/Libraries/Components/StatusBar/StatusBar.js +3 -1
  41. package/Libraries/Components/TV/TVTextScrollView.js +1 -1
  42. package/Libraries/Components/TV/TVViewPropTypes.js +1 -0
  43. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
  44. package/Libraries/Components/TextInput/TextInput.d.ts +32 -2
  45. package/Libraries/Components/TextInput/TextInput.js +230 -94
  46. package/Libraries/Components/View/ReactNativeStyleAttributes.js +23 -1
  47. package/Libraries/Components/View/ReactNativeViewAttributes.js +2 -0
  48. package/Libraries/Components/View/ViewAccessibility.d.ts +15 -0
  49. package/Libraries/Components/View/ViewNativeComponent.js +5 -1
  50. package/Libraries/Components/View/ViewPropTypes.js +14 -0
  51. package/Libraries/Core/ExceptionsManager.js +2 -0
  52. package/Libraries/Core/InitializeCore.js +3 -1
  53. package/Libraries/Core/ReactFiberErrorDialog.js +3 -0
  54. package/Libraries/Core/ReactNativeVersion.js +2 -2
  55. package/Libraries/Core/setUpDeveloperTools.js +5 -1
  56. package/Libraries/Core/setUpErrorHandling.js +7 -1
  57. package/Libraries/Core/setUpGlobals.js +1 -0
  58. package/Libraries/Core/setUpReactRefresh.js +0 -4
  59. package/Libraries/Image/AssetSourceResolver.js +28 -1
  60. package/Libraries/Image/Image.android.js +9 -14
  61. package/Libraries/Image/Image.ios.js +11 -22
  62. package/Libraries/Image/ImageBackground.js +1 -8
  63. package/Libraries/Image/ImageUtils.js +9 -9
  64. package/Libraries/Image/ImageViewNativeComponent.js +1 -0
  65. package/Libraries/Image/RCTImageLoader.mm +19 -10
  66. package/Libraries/Image/RCTImageView.mm +2 -2
  67. package/Libraries/Image/RCTResizeMode.h +28 -0
  68. package/Libraries/Image/React-RCTImage.podspec +1 -1
  69. package/Libraries/Inspector/Inspector.js +3 -2
  70. package/Libraries/Inspector/InspectorPanel.js +16 -10
  71. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  72. package/Libraries/Interaction/TaskQueue.js +1 -0
  73. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -0
  74. package/Libraries/Lists/FlatList.js +1 -1
  75. package/Libraries/Lists/SectionList.js +2 -2
  76. package/Libraries/Lists/SectionListModern.js +3 -3
  77. package/Libraries/LogBox/Data/LogBoxData.js +24 -3
  78. package/Libraries/LogBox/LogBoxNotificationContainer.js +3 -2
  79. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +9 -8
  80. package/Libraries/Modal/Modal.js +0 -1
  81. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +3 -1
  82. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h +2 -0
  83. package/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.mm +27 -0
  84. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +17 -1
  85. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -0
  86. package/Libraries/NativeComponent/BaseViewConfig.android.js +9 -1
  87. package/Libraries/NativeComponent/BaseViewConfig.ios.js +17 -1
  88. package/Libraries/NativeComponent/NativeComponentRegistry.js +22 -22
  89. package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -21
  90. package/Libraries/NativeComponent/TVViewConfig.js +4 -0
  91. package/Libraries/Network/RCTNetworkTask.h +1 -1
  92. package/Libraries/Network/RCTNetworkTask.mm +13 -9
  93. package/Libraries/Network/RCTNetworking.mm +6 -0
  94. package/Libraries/Network/XMLHttpRequest.js +4 -2
  95. package/Libraries/Pressability/Pressability.js +37 -0
  96. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  97. package/Libraries/ReactNative/AppContainer-dev.js +1 -5
  98. package/Libraries/ReactNative/AppContainer-prod.js +1 -5
  99. package/Libraries/ReactNative/AppContainer.js +0 -1
  100. package/Libraries/ReactNative/AppRegistry.js +0 -6
  101. package/Libraries/ReactNative/BridgelessUIManager.js +1 -0
  102. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
  103. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +5 -5
  104. package/Libraries/ReactNative/RendererImplementation.js +26 -4
  105. package/Libraries/ReactNative/getNativeComponentAttributes.js +12 -0
  106. package/Libraries/ReactNative/renderApplication.js +0 -2
  107. package/Libraries/Renderer/shims/ReactNativeTypes.js +11 -4
  108. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  109. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +152 -2
  110. package/Libraries/StyleSheet/StyleSheetTypes.js +60 -5
  111. package/Libraries/StyleSheet/processBackgroundImage.js +384 -0
  112. package/Libraries/StyleSheet/processBoxShadow.js +209 -0
  113. package/Libraries/StyleSheet/processFilter.js +231 -42
  114. package/Libraries/Text/BaseText/RCTBaseTextViewManager.mm +1 -0
  115. package/Libraries/Text/RCTTextAttributes.h +1 -0
  116. package/Libraries/Text/RCTTextAttributes.mm +8 -0
  117. package/Libraries/Text/Text/RCTTextShadowView.mm +46 -0
  118. package/Libraries/Text/Text.js +394 -196
  119. package/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm +3 -1
  120. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +20 -9
  121. package/Libraries/Text/TextNativeComponent.js +2 -1
  122. package/Libraries/TurboModule/TurboModuleRegistry.js +13 -50
  123. package/Libraries/Types/CodegenTypes.js +3 -1
  124. package/Libraries/Utilities/Appearance.js +108 -84
  125. package/Libraries/Utilities/DevLoadingView.js +2 -4
  126. package/Libraries/Utilities/HMRClient.js +8 -6
  127. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  128. package/Libraries/Utilities/createPerformanceLogger.js +0 -9
  129. package/Libraries/Utilities/stringifyViewConfig.js +22 -0
  130. package/Libraries/Utilities/useColorScheme.js +3 -3
  131. package/Libraries/WebSocket/WebSocket.js +1 -1
  132. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  133. package/Libraries/vendor/emitter/EventEmitter.js +6 -5
  134. package/README.md +38 -26
  135. package/React/Base/RCTBridge.mm +20 -2
  136. package/React/Base/RCTBundleURLProvider.h +19 -0
  137. package/React/Base/RCTBundleURLProvider.mm +62 -8
  138. package/React/Base/RCTConvert.h +0 -3
  139. package/React/Base/RCTConvert.mm +0 -13
  140. package/React/Base/RCTKeyCommands.m +1 -2
  141. package/React/Base/RCTVersion.m +2 -2
  142. package/React/CoreModules/RCTAppearance.mm +5 -0
  143. package/React/CoreModules/RCTDevLoadingView.mm +5 -0
  144. package/React/CoreModules/RCTDevMenu.mm +1 -1
  145. package/React/CoreModules/RCTDeviceInfo.mm +15 -8
  146. package/React/CoreModules/RCTPerfMonitor.mm +7 -13
  147. package/React/CoreModules/RCTRedBox.mm +4 -0
  148. package/React/CoreModules/RCTStatusBarManager.mm +5 -1
  149. package/React/CoreModules/React-CoreModules.podspec +3 -1
  150. package/React/CxxBridge/NSDataBigString.mm +2 -25
  151. package/React/CxxBridge/RCTCxxBridge.mm +27 -5
  152. package/React/DevSupport/RCTInspectorDevServerHelper.mm +6 -0
  153. package/React/DevSupport/RCTInspectorNetworkHelper.h +29 -0
  154. package/React/DevSupport/RCTInspectorNetworkHelper.mm +115 -0
  155. package/React/DevSupport/RCTInspectorUtils.h +26 -0
  156. package/React/DevSupport/RCTInspectorUtils.mm +50 -0
  157. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +4 -1
  158. package/React/Fabric/Mounting/ComponentViews/Modal/RCTFabricModalHostViewController.mm +2 -2
  159. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +23 -1
  160. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm +24 -2
  161. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h +9 -0
  162. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +160 -10
  163. package/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +74 -35
  164. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +61 -12
  165. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputUtils.mm +8 -0
  166. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +356 -59
  167. package/React/Fabric/Mounting/RCTMountingManager.mm +0 -5
  168. package/React/Fabric/RCTScheduler.mm +2 -1
  169. package/React/Fabric/RCTSurfacePresenter.mm +0 -31
  170. package/React/Fabric/Utils/RCTBoxShadow.h +21 -0
  171. package/React/Fabric/Utils/RCTBoxShadow.mm +301 -0
  172. package/React/Modules/RCTRedBoxExtraDataViewController.m +105 -85
  173. package/React/Views/RCTBorderDrawing.h +9 -5
  174. package/React/Views/RCTBorderDrawing.m +29 -17
  175. package/React/Views/RCTModalHostView.m +2 -1
  176. package/React/Views/RCTModalHostViewController.m +1 -1
  177. package/React/Views/RCTModalHostViewManager.m +23 -3
  178. package/React/Views/RCTView.m +9 -5
  179. package/React/Views/RCTViewManager.h +3 -0
  180. package/React/Views/RCTViewManager.m +64 -8
  181. package/React/Views/RefreshControl/RCTRefreshControl.m +18 -0
  182. package/React/Views/ScrollView/RCTScrollView.m +20 -0
  183. package/React-Core.podspec +4 -1
  184. package/ReactAndroid/api/ReactAndroid.api +624 -268
  185. package/ReactAndroid/build.gradle.kts +109 -278
  186. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +10 -55
  187. package/ReactAndroid/gradle.properties +1 -1
  188. package/ReactAndroid/hermes-engine/build.gradle.kts +1 -2
  189. package/ReactAndroid/publish.gradle +1 -1
  190. package/ReactAndroid/src/main/AndroidManifest.xml +1 -1
  191. package/ReactAndroid/src/main/java/com/facebook/annotationprocessors/common/ProcessorBase.kt +23 -0
  192. package/ReactAndroid/src/main/java/com/facebook/react/CompositeReactPackage.java +2 -2
  193. package/ReactAndroid/src/main/java/com/facebook/react/CoreModulesPackage.java +6 -1
  194. package/ReactAndroid/src/main/java/com/facebook/react/DebugCorePackage.java +1 -1
  195. package/ReactAndroid/src/main/java/com/facebook/react/HeadlessJsTaskService.java +56 -12
  196. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +6 -0
  197. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +7 -1
  198. package/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +10 -3
  199. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +37 -4
  200. package/ReactAndroid/src/main/java/com/facebook/react/ReactHost.kt +26 -3
  201. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +117 -41
  202. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +13 -6
  203. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java +2 -17
  204. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +6 -2
  205. package/ReactAndroid/src/main/java/com/facebook/react/animated/AdditionAnimatedNode.kt +52 -0
  206. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNode.kt +74 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNodeValueListener.kt +13 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/animated/{AnimatedNodeWithUpdateableConfig.java → AnimatedNodeWithUpdateableConfig.kt} +4 -4
  209. package/ReactAndroid/src/main/java/com/facebook/react/animated/{AnimationDriver.java → AnimationDriver.kt} +13 -14
  210. package/ReactAndroid/src/main/java/com/facebook/react/animated/ColorAnimatedNode.kt +111 -0
  211. package/ReactAndroid/src/main/java/com/facebook/react/animated/DecayAnimation.kt +73 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.kt +51 -0
  213. package/ReactAndroid/src/main/java/com/facebook/react/animated/DivisionAnimatedNode.kt +55 -0
  214. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +100 -0
  215. package/ReactAndroid/src/main/java/com/facebook/react/animated/FrameBasedAnimationDriver.kt +104 -0
  216. package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.kt +278 -0
  217. package/ReactAndroid/src/main/java/com/facebook/react/animated/ModulusAnimatedNode.kt +3 -3
  218. package/ReactAndroid/src/main/java/com/facebook/react/animated/MultiplicationAnimatedNode.kt +50 -0
  219. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +40 -1
  220. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +81 -52
  221. package/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.kt +120 -0
  222. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.kt +120 -0
  223. package/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.kt +187 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/animated/StyleAnimatedNode.kt +61 -0
  225. package/ReactAndroid/src/main/java/com/facebook/react/animated/SubtractionAnimatedNode.kt +52 -0
  226. package/ReactAndroid/src/main/java/com/facebook/react/animated/TrackingAnimatedNode.kt +36 -0
  227. package/ReactAndroid/src/main/java/com/facebook/react/animated/TransformAnimatedNode.kt +87 -0
  228. package/ReactAndroid/src/main/java/com/facebook/react/animated/ValueAnimatedNode.kt +50 -0
  229. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ActivityEventListener.java +4 -0
  230. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BaseJavaModule.java +8 -0
  231. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ColorPropConverter.java +5 -0
  232. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromMap.java +2 -1
  233. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicFromObject.java +4 -1
  234. package/ReactAndroid/src/main/java/com/facebook/react/bridge/DynamicNative.kt +51 -0
  235. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSBundleLoaderDelegate.kt +52 -0
  236. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{JavaJSExecutor.java → JavaJSExecutor.kt} +13 -18
  237. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{JavaScriptExecutorFactory.java → JavaScriptExecutorFactory.kt} +5 -5
  238. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaScriptModule.kt +24 -0
  239. package/ReactAndroid/src/main/java/com/facebook/react/{animated/AnimatedNodeValueListener.java → bridge/PerformanceCounter.kt} +4 -4
  240. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{Promise.java → Promise.kt} +19 -29
  241. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +13 -0
  242. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactInstanceManagerInspectorTarget.java +10 -0
  243. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactMarkerConstants.java +2 -0
  244. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactNoCrashSoftException.java +3 -1
  245. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.kt +179 -0
  246. package/ReactAndroid/src/main/java/com/facebook/react/bridge/interop/InteropModuleRegistry.java +2 -1
  247. package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThread.java +2 -0
  248. package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/MessageQueueThreadImpl.java +28 -47
  249. package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/ReactQueueConfigurationImpl.java +5 -19
  250. package/ReactAndroid/src/main/java/com/facebook/react/bridge/queue/ReactQueueConfigurationSpec.java +4 -6
  251. package/ReactAndroid/src/main/java/com/facebook/react/common/ClearableSynchronizedPool.kt +51 -0
  252. package/ReactAndroid/src/main/java/com/facebook/react/common/DebugServerException.kt +107 -0
  253. package/ReactAndroid/src/main/java/com/facebook/react/common/JavascriptException.kt +2 -10
  254. package/ReactAndroid/src/main/java/com/facebook/react/common/MapBuilder.java +6 -1
  255. package/ReactAndroid/src/main/java/com/facebook/react/common/ShakeDetector.kt +124 -0
  256. package/ReactAndroid/src/main/java/com/facebook/react/common/assets/ReactFontManager.kt +197 -0
  257. package/ReactAndroid/src/main/java/com/facebook/react/common/build/{ReactBuildConfig.java → ReactBuildConfig.kt} +9 -6
  258. package/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.kt +111 -0
  259. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.kt +38 -0
  260. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -62
  261. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultComponentsRegistry.kt +5 -20
  262. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +7 -55
  263. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHost.kt +16 -16
  264. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactHostDelegate.kt +1 -1
  265. package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultReactNativeHost.kt +1 -0
  266. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +0 -73
  267. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.java +29 -10
  268. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.kt +120 -0
  269. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevInternalSettings.kt +3 -7
  270. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +10 -1
  271. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +12 -5
  272. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialog.kt +29 -1
  273. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.kt +2 -3
  274. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.kt +10 -12
  275. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PausedInDebuggerOverlayDialogManager.java +19 -5
  276. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PerftestDevSupportManager.kt +38 -0
  277. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/RedBoxDialogSurfaceDelegate.java +31 -0
  278. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.kt +168 -0
  279. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.java +94 -0
  280. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkRequestListener.java +34 -0
  281. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.kt +4 -1
  282. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.kt +2 -0
  283. package/ReactAndroid/src/main/java/com/facebook/react/fabric/BindingImpl.kt +2 -0
  284. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.kt +45 -0
  285. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +75 -38
  286. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.kt +43 -0
  287. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +64 -0
  288. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/LayoutMetricsConversions.kt +3 -3
  289. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +23 -25
  290. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +110 -360
  291. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +16 -22
  292. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/MountItemFactory.kt +1 -4
  293. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PreAllocateViewMountItem.java +1 -5
  294. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.kt +40 -0
  295. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEventMountItem.kt +40 -0
  296. package/ReactAndroid/src/main/java/com/facebook/react/flipper/ReactNativeFlipper.kt +2 -2
  297. package/ReactAndroid/src/main/java/com/facebook/react/internal/SystraceSection.kt +23 -0
  298. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +157 -13
  299. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +266 -26
  300. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +54 -6
  301. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +55 -7
  302. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +294 -30
  303. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +54 -6
  304. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeNewArchitectureFeatureFlagsDefaults.kt +43 -0
  305. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleInteropUtils.java +2 -5
  306. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java +19 -57
  307. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java +2 -15
  308. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +13 -14
  309. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/AppearanceModule.kt +14 -14
  310. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/FileReaderModule.java +6 -0
  311. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ChoreographerCompat.kt +16 -0
  312. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{DefaultHardwareBackBtnHandler.java → DefaultHardwareBackBtnHandler.kt} +4 -6
  313. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.kt +65 -0
  314. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.kt +79 -0
  315. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/HeadlessJsTaskSupportModule.kt +51 -0
  316. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JSTimers.kt +21 -0
  317. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerExecutor.java → JavaScriptTimerExecutor.kt} +7 -8
  318. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +363 -0
  319. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/PermissionAwareActivity.kt +30 -0
  320. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{PermissionListener.java → PermissionListener.kt} +9 -9
  321. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/RCTNativeAppEventEmitter.kt +17 -0
  322. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.kt +144 -0
  323. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.kt +83 -0
  324. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DevMenuModule.kt +46 -0
  325. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DidJSUpdateUiDuringFrameDetector.kt +36 -48
  326. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/interfaces/DeveloperSettings.kt +2 -0
  327. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java +1 -0
  328. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.kt +163 -0
  329. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactNetworkImageRequest.kt +31 -0
  330. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.kt +56 -0
  331. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/SystraceRequestListener.kt +152 -0
  332. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.kt +2 -6
  333. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nUtil.kt +4 -3
  334. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpCompat.java +35 -0
  335. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/RequestBodyUtil.java +1 -7
  336. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.kt +189 -0
  337. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/StatusBarModule.kt +4 -28
  338. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/AndroidInfoHelpers.java +48 -0
  339. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
  340. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.kt +55 -0
  341. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java +2 -2
  342. package/ReactAndroid/src/main/java/com/facebook/react/runtime/CoreReactPackage.java +7 -2
  343. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostDelegate.kt +0 -18
  344. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +222 -184
  345. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.java +47 -45
  346. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactSurfaceView.kt +2 -1
  347. package/ReactAndroid/src/main/java/com/facebook/react/runtime/hermes/HermesInstance.kt +11 -4
  348. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Executors.kt +44 -0
  349. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +5 -2
  350. package/ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt +119 -0
  351. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +263 -0
  352. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +64 -32
  353. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +109 -0
  354. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.kt +85 -0
  355. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +44 -0
  356. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +89 -17
  357. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/IViewGroupManager.kt +35 -0
  358. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/{IViewManagerWithChildren.java → IViewManagerWithChildren.kt} +3 -3
  359. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +58 -11
  360. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutDirectionUtil.kt +29 -0
  361. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java +2 -2
  362. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LengthPercentage.kt +8 -7
  363. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyManager.java +23 -7
  364. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java +4 -2
  365. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.kt +21 -0
  366. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +2 -1
  367. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +1 -1
  368. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIImplementation.java +14 -0
  369. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +16 -0
  370. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModuleConstantsHelper.java +9 -7
  371. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +33 -5
  372. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java +20 -10
  373. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +41 -0
  374. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.kt +4 -1
  375. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BoxShadowBorderRadius.kt +29 -0
  376. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +151 -83
  377. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CompositeBackgroundDrawable.kt +85 -0
  378. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/InsetBoxShadowDrawable.kt +191 -0
  379. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/OutsetBoxShadowDrawable.kt +159 -0
  380. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/BlackHoleEventDispatcher.kt +57 -0
  381. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ContentSizeChangeEvent.kt +37 -0
  382. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +2 -2
  383. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.java +55 -29
  384. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator.kt +48 -0
  385. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BackgroundImageLayer.kt +28 -0
  386. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderInsets.kt +105 -0
  387. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +27 -12
  388. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderStyle.kt +26 -0
  389. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BoxShadow.kt +50 -0
  390. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/ComputedBorderRadius.kt +30 -6
  391. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/CornerRadii.kt +19 -0
  392. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Gradient.kt +76 -0
  393. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/LogicalEdge.kt +79 -0
  394. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/Overflow.kt +26 -0
  395. package/ReactAndroid/src/main/java/com/facebook/react/views/debuggingoverlay/DebuggingOverlayManager.kt +3 -13
  396. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayout.kt +125 -0
  397. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.kt +259 -0
  398. package/ReactAndroid/src/main/java/com/facebook/react/views/image/MultiPostprocessor.kt +61 -0
  399. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageDownloadListener.kt +1 -1
  400. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.kt +307 -0
  401. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +725 -0
  402. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ImageSource.kt +1 -1
  403. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt +35 -0
  404. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostHelper.kt +1 -0
  405. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ModalHostShadowNode.kt +1 -4
  406. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.kt +13 -30
  407. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.kt +80 -99
  408. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.kt +70 -0
  409. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.kt +165 -0
  410. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaView.kt +65 -0
  411. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewManager.kt +51 -0
  412. package/ReactAndroid/src/main/java/com/facebook/react/views/safeareaview/ReactSafeAreaViewShadowNode.kt +12 -0
  413. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/OnScrollDispatchHelper.kt +50 -0
  414. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +80 -11
  415. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +64 -20
  416. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +79 -11
  417. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +22 -33
  418. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +65 -19
  419. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VelocityHelper.kt +51 -0
  420. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/ReactSwipeRefreshLayout.java +11 -0
  421. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitch.kt +110 -0
  422. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactRawTextManager.java +8 -0
  423. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +73 -20
  424. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +143 -77
  425. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +36 -32
  426. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +11 -0
  427. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +79 -104
  428. package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/span/ReactOpacitySpan.kt +33 -0
  429. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +89 -9
  430. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +67 -38
  431. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.kt +95 -0
  432. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +2 -0
  433. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundManager.java +6 -4
  434. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +257 -96
  435. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.java +87 -26
  436. package/ReactAndroid/src/main/java/com/facebook/react/views/view/WindowUtil.kt +63 -0
  437. package/ReactAndroid/src/main/java/com/facebook/systrace/Systrace.kt +23 -0
  438. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java +1 -0
  439. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java +2 -0
  440. package/ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java +4 -0
  441. package/ReactAndroid/src/main/jni/CMakeLists.txt +182 -3
  442. package/ReactAndroid/src/main/jni/first-party/fbgloginit/CMakeLists.txt +1 -1
  443. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/CMakeLists.txt +24 -0
  444. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/SoMerging-utils.cmake +23 -0
  445. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/jni_lib_merge.c +158 -0
  446. package/ReactAndroid/src/main/jni/first-party/jni-lib-merge/jni_lib_merge.h +108 -0
  447. package/ReactAndroid/src/main/jni/first-party/yogajni/CMakeLists.txt +5 -1
  448. package/ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp +12 -1
  449. package/ReactAndroid/src/main/jni/react/devsupport/CMakeLists.txt +5 -1
  450. package/ReactAndroid/src/main/jni/react/fabric/Binding.cpp +35 -19
  451. package/ReactAndroid/src/main/jni/react/fabric/Binding.h +3 -0
  452. package/ReactAndroid/src/main/jni/react/fabric/CMakeLists.txt +9 -1
  453. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.cpp +6 -43
  454. package/ReactAndroid/src/main/jni/react/fabric/CoreComponentsRegistry.h +4 -27
  455. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +76 -40
  456. package/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.h +25 -1
  457. package/ReactAndroid/src/main/jni/react/fabric/MountItem.cpp +0 -7
  458. package/ReactAndroid/src/main/jni/react/fabric/MountItem.h +1 -7
  459. package/ReactAndroid/src/main/jni/react/fabric/OnLoad.cpp +0 -2
  460. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +49 -13
  461. package/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +3 -2
  462. package/ReactAndroid/src/main/jni/react/featureflags/CMakeLists.txt +5 -1
  463. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +369 -33
  464. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +79 -7
  465. package/ReactAndroid/src/main/jni/react/hermes/instrumentation/CMakeLists.txt +7 -6
  466. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/CMakeLists.txt +5 -6
  467. package/ReactAndroid/src/main/jni/react/hermes/reactexecutor/OnLoad.cpp +0 -1
  468. package/ReactAndroid/src/main/jni/react/hermes/tooling/CMakeLists.txt +41 -0
  469. package/ReactAndroid/src/main/jni/react/jni/CMakeLists.txt +3 -1
  470. package/ReactAndroid/src/main/jni/react/jni/InspectorNetworkRequestListener.cpp +76 -0
  471. package/ReactAndroid/src/main/jni/react/jni/InspectorNetworkRequestListener.h +44 -0
  472. package/ReactAndroid/src/main/jni/react/jni/JDynamicNative.cpp +46 -0
  473. package/ReactAndroid/src/main/jni/react/jni/JDynamicNative.h +56 -0
  474. package/ReactAndroid/src/main/jni/react/jni/JReactMarker.cpp +1 -0
  475. package/ReactAndroid/src/main/jni/react/jni/JWeakRefUtils.h +23 -0
  476. package/ReactAndroid/src/main/jni/react/jni/MethodInvoker.cpp +3 -1
  477. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +4 -0
  478. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.cpp +71 -18
  479. package/ReactAndroid/src/main/jni/react/jni/ReactInstanceManagerInspectorTarget.h +17 -6
  480. package/ReactAndroid/src/main/jni/react/jscexecutor/CMakeLists.txt +6 -7
  481. package/ReactAndroid/src/main/jni/react/jsctooling/CMakeLists.txt +34 -0
  482. package/ReactAndroid/src/main/jni/react/mapbuffer/CMakeLists.txt +5 -1
  483. package/ReactAndroid/src/main/jni/react/newarchdefaults/CMakeLists.txt +10 -2
  484. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.cpp +16 -33
  485. package/ReactAndroid/src/main/jni/react/newarchdefaults/DefaultComponentsRegistry.h +2 -11
  486. package/ReactAndroid/src/main/jni/react/reactnativeblob/CMakeLists.txt +4 -1
  487. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/CMakeLists.txt +8 -4
  488. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.cpp +4 -3
  489. package/ReactAndroid/src/main/jni/react/runtime/hermes/jni/JHermesInstance.h +8 -3
  490. package/ReactAndroid/src/main/jni/react/runtime/jni/CMakeLists.txt +4 -1
  491. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +64 -22
  492. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +35 -6
  493. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +1 -0
  494. package/ReactAndroid/src/main/jni/react/runtime/jsc/jni/CMakeLists.txt +7 -5
  495. package/ReactAndroid/src/main/jni/react/turbomodule/CMakeLists.txt +7 -2
  496. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +156 -166
  497. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.h +23 -17
  498. package/ReactAndroid/src/main/jni/react/uimanager/CMakeLists.txt +17 -5
  499. package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -1
  500. package/ReactAndroid/src/main/jni/third-party/glog/CMakeLists.txt +1 -1
  501. package/ReactAndroid/src/main/res/devsupport/drawable/paused_in_debugger_background.xml +1 -1
  502. package/ReactAndroid/src/main/res/devsupport/drawable/paused_in_debugger_dialog_background.xml +7 -0
  503. package/ReactAndroid/src/main/res/devsupport/drawable-hdpi/ic_resume.png +0 -0
  504. package/ReactAndroid/src/main/res/devsupport/drawable-mdpi/ic_resume.png +0 -0
  505. package/ReactAndroid/src/main/res/devsupport/drawable-xhdpi/ic_resume.png +0 -0
  506. package/ReactAndroid/src/main/res/devsupport/drawable-xxhdpi/ic_resume.png +0 -0
  507. package/ReactAndroid/src/main/res/devsupport/drawable-xxxhdpi/ic_resume.png +0 -0
  508. package/ReactAndroid/src/main/res/devsupport/layout/paused_in_debugger_view.xml +19 -18
  509. package/ReactAndroid/src/main/res/devsupport/values/strings.xml +2 -2
  510. package/ReactAndroid/src/main/res/devsupport/values/styles.xml +4 -0
  511. package/ReactAndroid/src/main/res/devsupport/xml/rn_dev_preferences.xml +0 -6
  512. package/ReactAndroid/src/main/res/views/uimanager/values/ids.xml +3 -0
  513. package/ReactCommon/cxxreact/CMakeLists.txt +2 -1
  514. package/ReactCommon/cxxreact/CxxModule.h +0 -2
  515. package/ReactCommon/cxxreact/JSExecutor.cpp +2 -7
  516. package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -0
  517. package/ReactCommon/cxxreact/ReactMarker.cpp +10 -2
  518. package/ReactCommon/cxxreact/ReactMarker.h +5 -1
  519. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  520. package/ReactCommon/cxxreact/SystraceSection.h +15 -10
  521. package/ReactCommon/cxxreact/tests/jsarg_helpers.cpp +1 -1
  522. package/ReactCommon/hermes/executor/CMakeLists.txt +3 -3
  523. package/ReactCommon/hermes/inspector-modern/CMakeLists.txt +2 -5
  524. package/ReactCommon/jsc/CMakeLists.txt +5 -3
  525. package/ReactCommon/jserrorhandler/CMakeLists.txt +1 -1
  526. package/ReactCommon/jserrorhandler/JsErrorHandler.cpp +40 -1
  527. package/ReactCommon/jserrorhandler/JsErrorHandler.h +12 -1
  528. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +6 -0
  529. package/ReactCommon/jsi/jsi/decorator.h +57 -4
  530. package/ReactCommon/jsi/jsi/instrumentation.h +15 -3
  531. package/ReactCommon/jsi/jsi/jsi.cpp +6 -2
  532. package/ReactCommon/jsiexecutor/CMakeLists.txt +1 -1
  533. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +10 -4
  534. package/ReactCommon/jsiexecutor/jsireact/JSINativeModules.cpp +5 -1
  535. package/ReactCommon/jsinspector-modern/Base64.h +98 -0
  536. package/ReactCommon/jsinspector-modern/CMakeLists.txt +6 -1
  537. package/ReactCommon/jsinspector-modern/CdpJson.h +1 -1
  538. package/ReactCommon/jsinspector-modern/ExecutionContext.cpp +3 -4
  539. package/ReactCommon/jsinspector-modern/FallbackRuntimeAgentDelegate.h +5 -5
  540. package/ReactCommon/jsinspector-modern/HostAgent.cpp +45 -22
  541. package/ReactCommon/jsinspector-modern/HostAgent.h +7 -1
  542. package/ReactCommon/jsinspector-modern/HostTarget.cpp +36 -7
  543. package/ReactCommon/jsinspector-modern/HostTarget.h +25 -5
  544. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +14 -3
  545. package/ReactCommon/jsinspector-modern/InspectorFlags.h +1 -1
  546. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +5 -1
  547. package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +18 -1
  548. package/ReactCommon/jsinspector-modern/InspectorPackagerConnection.h +4 -5
  549. package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +440 -0
  550. package/ReactCommon/jsinspector-modern/NetworkIOAgent.h +266 -0
  551. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -0
  552. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +22 -0
  553. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +46 -0
  554. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +31 -0
  555. package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +2 -2
  556. package/ReactCommon/jsinspector-modern/RuntimeTargetDebuggerSessionObserver.cpp +112 -0
  557. package/ReactCommon/jsinspector-modern/Utf8.h +56 -0
  558. package/ReactCommon/jsinspector-modern/WebSocketInterfaces.h +6 -0
  559. package/ReactCommon/jsinspector-modern/tests/ConsoleApiTest.cpp +54 -0
  560. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +801 -0
  561. package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +6 -0
  562. package/ReactCommon/jsinspector-modern/tests/InspectorPackagerConnectionTest.cpp +29 -12
  563. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +38 -0
  564. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +2 -1
  565. package/ReactCommon/jsinspector-modern/tests/RuntimeTargetDebuggerSessionObserverTest.cpp +214 -0
  566. package/ReactCommon/jsinspector-modern/tests/Utf8.cpp +58 -0
  567. package/ReactCommon/logger/CMakeLists.txt +1 -1
  568. package/ReactCommon/react/bridging/Bool.h +1 -1
  569. package/ReactCommon/react/bridging/CMakeLists.txt +1 -1
  570. package/ReactCommon/react/config/CMakeLists.txt +1 -1
  571. package/ReactCommon/react/config/ReactNativeConfig.cpp +0 -3
  572. package/ReactCommon/react/debug/CMakeLists.txt +1 -1
  573. package/ReactCommon/react/featureflags/CMakeLists.txt +1 -1
  574. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +107 -11
  575. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +132 -12
  576. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +479 -47
  577. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +58 -10
  578. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +106 -10
  579. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +29 -5
  580. package/ReactCommon/react/nativemodule/core/CMakeLists.txt +2 -1
  581. package/ReactCommon/react/nativemodule/core/ReactCommon/CxxTurboModuleUtils.h +6 -38
  582. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +68 -66
  583. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +2 -2
  584. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.h +21 -2
  585. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +13 -0
  586. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -1
  587. package/ReactCommon/react/nativemodule/dom/CMakeLists.txt +5 -1
  588. package/ReactCommon/react/nativemodule/featureflags/CMakeLists.txt +1 -1
  589. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +132 -12
  590. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +54 -6
  591. package/ReactCommon/react/nativemodule/idlecallbacks/CMakeLists.txt +1 -1
  592. package/ReactCommon/react/nativemodule/microtasks/CMakeLists.txt +1 -1
  593. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.cpp +0 -11
  594. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +2 -0
  595. package/ReactCommon/react/nativemodule/samples/platform/android/CMakeLists.txt +2 -2
  596. package/ReactCommon/react/nativemodule/samples/platform/android/NativeSampleTurboModuleSpec.java +16 -0
  597. package/ReactCommon/react/nativemodule/samples/platform/android/ReactCommon/SampleTurboModuleSpec.cpp +9 -0
  598. package/ReactCommon/react/nativemodule/samples/platform/android/SampleTurboModule.java +20 -1
  599. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.h +11 -0
  600. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTNativeSampleTurboModuleSpec.mm +34 -0
  601. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.h +1 -1
  602. package/ReactCommon/react/nativemodule/samples/platform/ios/ReactCommon/RCTSampleTurboModule.mm +4 -0
  603. package/ReactCommon/react/nativemodule/webperformance/NativePerformance.cpp +28 -16
  604. package/ReactCommon/react/nativemodule/webperformance/NativePerformanceObserver.cpp +8 -1
  605. package/ReactCommon/react/performance/timeline/CMakeLists.txt +2 -1
  606. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +12 -2
  607. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +8 -4
  608. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  609. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +1 -22
  610. package/ReactCommon/react/renderer/animations/utils.h +45 -0
  611. package/ReactCommon/react/renderer/attributedstring/CMakeLists.txt +1 -1
  612. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +4 -0
  613. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +2 -0
  614. package/ReactCommon/react/renderer/attributedstring/conversions.h +55 -2
  615. package/ReactCommon/react/renderer/attributedstring/primitives.h +9 -0
  616. package/ReactCommon/react/renderer/componentregistry/CMakeLists.txt +1 -1
  617. package/ReactCommon/react/renderer/componentregistry/native/CMakeLists.txt +1 -1
  618. package/ReactCommon/react/renderer/components/image/CMakeLists.txt +1 -1
  619. package/ReactCommon/react/renderer/components/image/conversions.h +9 -0
  620. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/CMakeLists.txt +1 -1
  621. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/RCTLegacyViewManagerInteropCoordinator.mm +2 -3
  622. package/ReactCommon/react/renderer/components/modal/ModalHostViewState.h +10 -1
  623. package/{ReactAndroid/src/main/java/com/facebook/react/bridge/PerformanceCounter.java → ReactCommon/react/renderer/components/modal/ModalHostViewUtils.h} +5 -6
  624. package/ReactCommon/react/renderer/components/modal/ModalHostViewUtils.mm +20 -0
  625. package/ReactCommon/react/renderer/components/progressbar/CMakeLists.txt +1 -1
  626. package/ReactCommon/react/renderer/components/root/CMakeLists.txt +1 -1
  627. package/ReactCommon/react/renderer/components/safeareaview/CMakeLists.txt +46 -0
  628. package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewState.cpp +10 -1
  629. package/ReactCommon/react/renderer/components/safeareaview/SafeAreaViewState.h +20 -0
  630. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.cpp +99 -0
  631. package/ReactCommon/react/renderer/components/scrollview/ScrollEvent.h +44 -0
  632. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.cpp +16 -72
  633. package/ReactCommon/react/renderer/components/scrollview/ScrollViewEventEmitter.h +12 -18
  634. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +9 -0
  635. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +1 -0
  636. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +8 -0
  637. package/ReactCommon/react/renderer/components/text/CMakeLists.txt +1 -2
  638. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.cpp +35 -17
  639. package/ReactCommon/react/renderer/components/text/ParagraphShadowNode.h +3 -0
  640. package/ReactCommon/react/renderer/components/textinput/CMakeLists.txt +1 -1
  641. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.cpp +27 -0
  642. package/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputShadowNode.h +3 -0
  643. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputEventEmitter.cpp +1 -1
  644. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.cpp +29 -0
  645. package/ReactCommon/react/renderer/components/textinput/platform/ios/react/renderer/components/iostextinput/TextInputShadowNode.h +3 -0
  646. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +20 -0
  647. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +2 -0
  648. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +115 -75
  649. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +18 -1
  650. package/ReactCommon/react/renderer/components/view/CMakeLists.txt +1 -1
  651. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +4 -1
  652. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +21 -0
  653. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +4 -0
  654. package/ReactCommon/react/renderer/components/view/conversions.h +307 -23
  655. package/ReactCommon/react/renderer/components/view/primitives.h +8 -1
  656. package/ReactCommon/react/renderer/consistency/CMakeLists.txt +1 -1
  657. package/ReactCommon/react/renderer/core/CMakeLists.txt +1 -1
  658. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +21 -12
  659. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +5 -3
  660. package/ReactCommon/react/renderer/core/EventDispatcher.h +1 -1
  661. package/ReactCommon/react/renderer/core/EventEmitter.cpp +1 -1
  662. package/ReactCommon/react/renderer/core/EventEmitter.h +2 -0
  663. package/ReactCommon/react/renderer/core/EventListener.cpp +6 -3
  664. package/ReactCommon/react/renderer/core/EventListener.h +1 -1
  665. package/ReactCommon/react/renderer/core/EventLogger.h +4 -1
  666. package/ReactCommon/react/renderer/core/EventPayloadType.h +1 -1
  667. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +35 -11
  668. package/ReactCommon/react/renderer/core/EventTarget.cpp +8 -1
  669. package/ReactCommon/react/renderer/core/EventTarget.h +6 -1
  670. package/ReactCommon/react/renderer/core/LayoutableShadowNode.cpp +26 -6
  671. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +2 -3
  672. package/ReactCommon/react/renderer/core/Props.h +5 -0
  673. package/ReactCommon/react/renderer/core/PropsMacros.h +15 -11
  674. package/ReactCommon/react/renderer/core/RawProps.cpp +1 -6
  675. package/ReactCommon/react/renderer/core/RawProps.h +0 -8
  676. package/ReactCommon/react/renderer/core/RawPropsKeyMap.cpp +1 -1
  677. package/ReactCommon/react/renderer/core/RawPropsParser.cpp +19 -73
  678. package/ReactCommon/react/renderer/core/RawPropsParser.h +0 -9
  679. package/ReactCommon/react/renderer/core/RawValue.h +6 -7
  680. package/ReactCommon/react/renderer/core/ShadowNode.cpp +5 -4
  681. package/ReactCommon/react/renderer/core/ShadowNode.h +5 -5
  682. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +3 -0
  683. package/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp +3 -1
  684. package/ReactCommon/react/renderer/core/tests/EventTargetTests.cpp +3 -1
  685. package/ReactCommon/react/renderer/core/tests/FindNodeAtPointTest.cpp +49 -0
  686. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +1 -1
  687. package/ReactCommon/react/renderer/debug/CMakeLists.txt +2 -2
  688. package/ReactCommon/react/renderer/dom/CMakeLists.txt +1 -1
  689. package/ReactCommon/react/renderer/element/CMakeLists.txt +1 -1
  690. package/ReactCommon/react/renderer/graphics/BackgroundImage.h +46 -0
  691. package/ReactCommon/react/renderer/graphics/BlendMode.h +72 -0
  692. package/ReactCommon/react/renderer/graphics/BoxShadow.h +25 -0
  693. package/ReactCommon/react/renderer/graphics/CMakeLists.txt +1 -1
  694. package/ReactCommon/react/renderer/graphics/Color.cpp +27 -0
  695. package/ReactCommon/react/renderer/graphics/Color.h +6 -0
  696. package/ReactCommon/react/renderer/graphics/Filter.h +19 -5
  697. package/ReactCommon/react/renderer/graphics/Isolation.h +31 -0
  698. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -0
  699. package/ReactCommon/react/renderer/graphics/Transform.cpp +3 -2
  700. package/ReactCommon/react/renderer/graphics/Transform.h +11 -0
  701. package/ReactCommon/react/renderer/graphics/ValueUnit.h +3 -2
  702. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h +21 -0
  703. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +48 -20
  704. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/HostPlatformColor.h +31 -8
  705. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.h +31 -0
  706. package/ReactCommon/react/renderer/graphics/platform/ios/react/renderer/graphics/HostPlatformColor.mm +9 -0
  707. package/ReactCommon/react/renderer/graphics/tests/ColorTest.cpp +38 -0
  708. package/ReactCommon/react/renderer/imagemanager/CMakeLists.txt +1 -1
  709. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTImagePrimitivesConversions.h +7 -0
  710. package/ReactCommon/react/renderer/imagemanager/primitives.h +1 -0
  711. package/ReactCommon/react/renderer/mapbuffer/CMakeLists.txt +1 -1
  712. package/ReactCommon/react/renderer/mounting/CMakeLists.txt +1 -1
  713. package/ReactCommon/react/renderer/mounting/Differentiator.cpp +15 -52
  714. package/ReactCommon/react/renderer/mounting/MountingCoordinator.cpp +10 -3
  715. package/ReactCommon/react/renderer/mounting/MountingCoordinator.h +22 -1
  716. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +4 -32
  717. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +2 -28
  718. package/ReactCommon/react/renderer/mounting/stubs/StubViewTree.cpp +0 -5
  719. package/ReactCommon/react/renderer/observers/events/CMakeLists.txt +4 -1
  720. package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.cpp +75 -18
  721. package/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.h +19 -2
  722. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.cpp +14 -10
  723. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserver.h +6 -3
  724. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.cpp +24 -8
  725. package/ReactCommon/react/renderer/observers/intersection/IntersectionObserverManager.h +6 -3
  726. package/ReactCommon/react/renderer/runtimescheduler/CMakeLists.txt +2 -0
  727. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +2 -0
  728. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +30 -7
  729. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +25 -3
  730. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerEventTimingDelegate.h +25 -0
  731. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.cpp +19 -6
  732. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h +12 -2
  733. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +116 -53
  734. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h +36 -12
  735. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +149 -2
  736. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +29 -22
  737. package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -7
  738. package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +0 -10
  739. package/ReactCommon/react/renderer/telemetry/CMakeLists.txt +1 -1
  740. package/ReactCommon/react/renderer/textlayoutmanager/CMakeLists.txt +1 -2
  741. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +44 -0
  742. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.cpp +70 -40
  743. package/ReactCommon/react/renderer/textlayoutmanager/platform/android/react/renderer/textlayoutmanager/TextLayoutManager.h +17 -7
  744. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.cpp +14 -7
  745. package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/TextLayoutManager.h +16 -7
  746. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.h +2 -0
  747. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +6 -2
  748. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTFontUtils.mm +3 -2
  749. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +83 -13
  750. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextPrimitivesConversions.h +18 -0
  751. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.h +17 -7
  752. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/TextLayoutManager.mm +34 -10
  753. package/ReactCommon/react/renderer/uimanager/CMakeLists.txt +1 -1
  754. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +9 -11
  755. package/ReactCommon/react/renderer/uimanager/UIManager.h +0 -6
  756. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +16 -72
  757. package/ReactCommon/react/renderer/uimanager/UIManagerMountHook.h +6 -0
  758. package/ReactCommon/react/renderer/uimanager/consistency/CMakeLists.txt +1 -1
  759. package/ReactCommon/react/renderer/uimanager/primitives.h +8 -3
  760. package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +1 -4
  761. package/ReactCommon/react/runtime/BufferedRuntimeExecutor.h +1 -1
  762. package/ReactCommon/react/runtime/CMakeLists.txt +2 -6
  763. package/ReactCommon/react/runtime/JSRuntimeFactory.h +8 -0
  764. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -0
  765. package/ReactCommon/react/runtime/ReactInstance.cpp +117 -50
  766. package/ReactCommon/react/runtime/TimerManager.cpp +156 -75
  767. package/ReactCommon/react/runtime/TimerManager.h +16 -4
  768. package/ReactCommon/react/runtime/hermes/CMakeLists.txt +3 -5
  769. package/ReactCommon/react/runtime/hermes/HermesInstance.cpp +24 -15
  770. package/ReactCommon/react/runtime/hermes/HermesInstance.h +3 -2
  771. package/ReactCommon/react/runtime/nativeviewconfig/CMakeLists.txt +1 -1
  772. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.h +9 -4
  773. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHermesInstance.mm +18 -7
  774. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.h +5 -0
  775. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +33 -52
  776. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.h +6 -3
  777. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +10 -10
  778. package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +22 -16
  779. package/ReactCommon/react/test_utils/ios/Shims/ShimRCTInstance.mm +4 -5
  780. package/ReactCommon/react/timing/CMakeLists.txt +18 -0
  781. package/ReactCommon/react/timing/React-timing.podspec +44 -0
  782. package/ReactCommon/react/timing/primitives.h +31 -0
  783. package/ReactCommon/react/timing/tests/PrimitivesTest.cpp +47 -0
  784. package/ReactCommon/react/utils/CMakeLists.txt +1 -1
  785. package/ReactCommon/react/utils/CoreFeatures.cpp +0 -1
  786. package/ReactCommon/react/utils/CoreFeatures.h +0 -4
  787. package/ReactCommon/reactperflogger/CMakeLists.txt +7 -2
  788. package/ReactCommon/reactperflogger/React-perflogger.podspec +15 -2
  789. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +117 -0
  790. package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.h +53 -0
  791. package/ReactCommon/reactperflogger/fusebox/tests/FuseboxTracerTest.cpp +90 -0
  792. package/ReactCommon/reactperflogger/reactperflogger/HermesPerfettoDataSource.cpp +19 -4
  793. package/ReactCommon/reactperflogger/reactperflogger/HermesPerfettoDataSource.h +9 -1
  794. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfetto.cpp +42 -6
  795. package/ReactCommon/reactperflogger/reactperflogger/ReactPerfetto.h +6 -1
  796. package/ReactCommon/runtimeexecutor/CMakeLists.txt +1 -1
  797. package/ReactCommon/yoga/yoga/YGNodeStyle.cpp +5 -0
  798. package/ReactCommon/yoga/yoga/YGNodeStyle.h +3 -1
  799. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +48 -19
  800. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.h +2 -1
  801. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +28 -2
  802. package/ReactCommon/yoga/yoga/config/Config.cpp +24 -5
  803. package/ReactCommon/yoga/yoga/config/Config.h +3 -0
  804. package/ReactCommon/yoga/yoga/node/LayoutResults.cpp +1 -0
  805. package/ReactCommon/yoga/yoga/node/LayoutResults.h +1 -0
  806. package/ReactCommon/yoga/yoga/node/Node.cpp +7 -1
  807. package/ReactCommon/yoga/yoga/style/Style.h +18 -0
  808. package/cli.js +23 -5
  809. package/flow/jest.js +2 -2
  810. package/gradle/libs.versions.toml +5 -5
  811. package/index.js +3 -1
  812. package/jest/mockComponent.js +4 -1
  813. package/jest/mockModal.js +1 -3
  814. package/jest/mockScrollView.js +1 -1
  815. package/jest/renderer.js +2 -2
  816. package/jest/setup.js +16 -13
  817. package/package.json +15 -16
  818. package/react-native.config.js +26 -5
  819. package/scripts/bundle.js +5 -2
  820. package/scripts/cocoapods/helpers.rb +73 -6
  821. package/scripts/cocoapods/new_architecture.rb +17 -3
  822. package/scripts/cocoapods/privacy_manifest_utils.rb +23 -8
  823. package/scripts/cocoapods/utils.rb +30 -18
  824. package/scripts/ios-configure-glog.sh +2 -0
  825. package/scripts/react-native-xcode.sh +3 -2
  826. package/scripts/react_native_pods.rb +73 -2
  827. package/sdks/.hermesversion +1 -1
  828. package/sdks/hermes-engine/hermes-engine.podspec +9 -3
  829. package/sdks/hermes-engine/utils/build-apple-framework.sh +13 -16
  830. package/sdks/hermes-engine/utils/build-ios-framework.sh +20 -5
  831. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  832. package/sdks/hermesc/osx-bin/hermes +0 -0
  833. package/sdks/hermesc/osx-bin/hermesc +0 -0
  834. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  835. package/sdks/hermesc/win64-bin/msvcp140.dll +0 -0
  836. package/sdks/hermesc/win64-bin/vcruntime140.dll +0 -0
  837. package/sdks/hermesc/win64-bin/vcruntime140_1.dll +0 -0
  838. package/src/private/animated/NativeAnimatedHelper.js +438 -0
  839. package/src/private/animated/NativeAnimatedValidation.js +64 -0
  840. package/src/private/components/HScrollViewNativeComponents.js +56 -0
  841. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +29 -0
  842. package/src/private/components/VScrollViewNativeComponents.js +48 -0
  843. package/src/private/components/useSyncOnScroll.js +48 -0
  844. package/src/private/featureflags/ReactNativeFeatureFlags.js +166 -16
  845. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +29 -5
  846. package/src/private/fusebox/FuseboxSessionObserver.js +42 -0
  847. package/{Libraries/Core → src/private/renderer/errorhandling}/ErrorHandlers.js +14 -4
  848. package/src/private/setup/setUpDOM.js +28 -0
  849. package/src/private/setup/setUpIntersectionObserver.js +27 -0
  850. package/src/private/setup/setUpMutationObserver.js +26 -0
  851. package/src/private/setup/setUpPerformanceObserver.js +64 -0
  852. package/src/private/specs/modules/NativeAppearance.js +3 -3
  853. package/src/private/specs/modules/NativeLinkingManager.js +1 -1
  854. package/src/private/specs/modules/NativeSampleTurboModule.js +14 -1
  855. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +6 -4
  856. package/{Libraries/IntersectionObserver → src/private/webapis/intersectionobserver}/IntersectionObserver.js +5 -3
  857. package/{Libraries/IntersectionObserver → src/private/webapis/intersectionobserver}/IntersectionObserverEntry.js +3 -3
  858. package/{Libraries/IntersectionObserver → src/private/webapis/intersectionobserver}/IntersectionObserverManager.js +14 -17
  859. package/src/private/{specs/modules → webapis/intersectionobserver/specs}/NativeIntersectionObserver.js +2 -2
  860. package/{Libraries/IntersectionObserver → src/private/webapis/intersectionobserver/specs}/__mocks__/NativeIntersectionObserver.js +4 -4
  861. package/{Libraries/MutationObserver → src/private/webapis/mutationobserver}/MutationObserver.js +5 -3
  862. package/{Libraries/MutationObserver → src/private/webapis/mutationobserver}/MutationObserverManager.js +24 -15
  863. package/{Libraries/MutationObserver → src/private/webapis/mutationobserver}/MutationRecord.js +4 -6
  864. package/src/private/{specs/modules → webapis/mutationobserver/specs}/NativeMutationObserver.js +2 -2
  865. package/{Libraries/MutationObserver → src/private/webapis/mutationobserver/specs}/__mocks__/NativeMutationObserver.js +5 -5
  866. package/src/private/webapis/performance/{EventCounts.js → EventTiming.js} +65 -3
  867. package/src/private/webapis/performance/LongTasks.js +39 -0
  868. package/src/private/webapis/performance/Performance.js +22 -9
  869. package/src/private/webapis/performance/PerformanceEntry.js +36 -18
  870. package/src/private/webapis/performance/PerformanceObserver.js +29 -43
  871. package/src/private/webapis/performance/RawPerformanceEntry.js +24 -1
  872. package/src/private/webapis/performance/UserTiming.js +17 -12
  873. package/src/private/webapis/performance/specs/NativePerformanceObserver.js +1 -1
  874. package/third-party-podspecs/DoubleConversion.podspec +4 -1
  875. package/third-party-podspecs/RCT-Folly.podspec +3 -1
  876. package/third-party-podspecs/boost.podspec +4 -1
  877. package/third-party-podspecs/fmt.podspec +4 -1
  878. package/third-party-podspecs/glog.podspec +4 -1
  879. package/types/experimental.d.ts +12 -98
  880. package/Libraries/Animated/NativeAnimatedHelper.js +0 -615
  881. package/Libraries/Core/setUpIntersectionObserver.js +0 -16
  882. package/Libraries/Core/setUpMutationObserver.js +0 -16
  883. package/Libraries/Core/setUpPerformanceObserver.js +0 -18
  884. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +0 -13
  885. package/Libraries/MutationObserver/NativeMutationObserver.js +0 -13
  886. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +0 -135
  887. package/ReactAndroid/src/main/java/com/facebook/annotationprocessors/common/ProcessorBase.java +0 -24
  888. package/ReactAndroid/src/main/java/com/facebook/react/animated/AdditionAnimatedNode.java +0 -56
  889. package/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNode.java +0 -78
  890. package/ReactAndroid/src/main/java/com/facebook/react/animated/ColorAnimatedNode.java +0 -131
  891. package/ReactAndroid/src/main/java/com/facebook/react/animated/DecayAnimation.java +0 -79
  892. package/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.java +0 -66
  893. package/ReactAndroid/src/main/java/com/facebook/react/animated/DivisionAnimatedNode.java +0 -64
  894. package/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.java +0 -116
  895. package/ReactAndroid/src/main/java/com/facebook/react/animated/FrameBasedAnimationDriver.java +0 -109
  896. package/ReactAndroid/src/main/java/com/facebook/react/animated/InterpolationAnimatedNode.java +0 -311
  897. package/ReactAndroid/src/main/java/com/facebook/react/animated/MultiplicationAnimatedNode.java +0 -56
  898. package/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.java +0 -161
  899. package/ReactAndroid/src/main/java/com/facebook/react/animated/PropsAnimatedNode.java +0 -145
  900. package/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.java +0 -207
  901. package/ReactAndroid/src/main/java/com/facebook/react/animated/StyleAnimatedNode.java +0 -70
  902. package/ReactAndroid/src/main/java/com/facebook/react/animated/SubtractionAnimatedNode.java +0 -60
  903. package/ReactAndroid/src/main/java/com/facebook/react/animated/TrackingAnimatedNode.java +0 -50
  904. package/ReactAndroid/src/main/java/com/facebook/react/animated/TransformAnimatedNode.java +0 -93
  905. package/ReactAndroid/src/main/java/com/facebook/react/animated/ValueAnimatedNode.java +0 -66
  906. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +0 -64
  907. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JSBundleLoaderDelegate.java +0 -51
  908. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaScriptModule.java +0 -25
  909. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +0 -162
  910. package/ReactAndroid/src/main/java/com/facebook/react/common/ClearableSynchronizedPool.java +0 -53
  911. package/ReactAndroid/src/main/java/com/facebook/react/common/DebugServerException.java +0 -104
  912. package/ReactAndroid/src/main/java/com/facebook/react/common/HasJavascriptExceptionMetadata.java +0 -17
  913. package/ReactAndroid/src/main/java/com/facebook/react/common/LongArray.java +0 -75
  914. package/ReactAndroid/src/main/java/com/facebook/react/common/ShakeDetector.java +0 -144
  915. package/ReactAndroid/src/main/java/com/facebook/react/common/assets/ReactFontManager.java +0 -239
  916. package/ReactAndroid/src/main/java/com/facebook/react/common/futures/SimpleSettableFuture.java +0 -121
  917. package/ReactAndroid/src/main/java/com/facebook/react/common/network/OkHttpCallUtil.java +0 -36
  918. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevLoadingViewImplementation.java +0 -156
  919. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PerftestDevSupportManager.java +0 -50
  920. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.java +0 -214
  921. package/ReactAndroid/src/main/java/com/facebook/react/fabric/CoreComponentsRegistry.kt +0 -30
  922. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +0 -54
  923. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventBeatManager.java +0 -48
  924. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +0 -74
  925. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +0 -56
  926. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEventMountItem.java +0 -57
  927. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ChoreographerCompat.java +0 -18
  928. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/DeviceEventManagerModule.java +0 -76
  929. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +0 -91
  930. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/HeadlessJsTaskSupportModule.java +0 -61
  931. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JSTimers.java +0 -21
  932. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +0 -428
  933. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/PermissionAwareActivity.java +0 -29
  934. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/RCTNativeAppEventEmitter.java +0 -18
  935. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactChoreographer.java +0 -172
  936. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +0 -104
  937. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/FrescoModule.java +0 -225
  938. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactNetworkImageRequest.java +0 -33
  939. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/ReactOkHttpNetworkFetcher.java +0 -80
  940. package/ReactAndroid/src/main/java/com/facebook/react/modules/fresco/SystraceRequestListener.java +0 -160
  941. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/PermissionsModule.java +0 -204
  942. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/PackagerConnectionSettings.java +0 -65
  943. package/ReactAndroid/src/main/java/com/facebook/react/runtime/internal/bolts/Executors.java +0 -53
  944. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.java +0 -141
  945. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.java +0 -84
  946. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/IViewGroupManager.java +0 -42
  947. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewHierarchyDumper.java +0 -45
  948. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.java +0 -25
  949. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/BoxShadowDrawable.kt +0 -102
  950. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/BlackHoleEventDispatcher.java +0 -62
  951. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ContentSizeChangeEvent.java +0 -52
  952. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator.java +0 -50
  953. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayout.java +0 -123
  954. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java +0 -302
  955. package/ReactAndroid/src/main/java/com/facebook/react/views/image/MultiPostprocessor.java +0 -76
  956. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.java +0 -289
  957. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.java +0 -638
  958. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ProgressBarContainerView.java +0 -99
  959. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/ReactProgressBarViewManager.java +0 -203
  960. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/OnScrollDispatchHelper.java +0 -58
  961. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VelocityHelper.java +0 -64
  962. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/ReactSwitch.java +0 -124
  963. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +0 -87
  964. package/ReactAndroid/src/main/jni/react/fabric/JBackgroundExecutor.cpp +0 -28
  965. package/ReactAndroid/src/main/jni/react/fabric/JBackgroundExecutor.h +0 -23
  966. package/src/private/core/setUpDOM.js +0 -18
  967. package/src/private/webapis/performance/PerformanceEventTiming.js +0 -55
  968. /package/src/private/{core → styles}/composeStyles.js +0 -0
@@ -0,0 +1,266 @@
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
+ #pragma once
9
+
10
+ #include "CdpJson.h"
11
+ #include "InspectorInterfaces.h"
12
+ #include "ScopedExecutor.h"
13
+
14
+ #include <folly/dynamic.h>
15
+ #include <mutex>
16
+ #include <sstream>
17
+ #include <string>
18
+ #include <unordered_map>
19
+ #include <utility>
20
+ #include <variant>
21
+
22
+ namespace facebook::react::jsinspector_modern {
23
+
24
+ using StreamID = const std::string;
25
+ using Headers = std::map<std::string, std::string>;
26
+ using IOReadError = const std::string;
27
+
28
+ namespace {
29
+ class Stream; // Defined in NetworkIOAgent.cpp
30
+ using StreamsMap = std::unordered_map<std::string, std::shared_ptr<Stream>>;
31
+ } // namespace
32
+
33
+ struct LoadNetworkResourceRequest {
34
+ std::string url;
35
+ };
36
+
37
+ struct ReadStreamParams {
38
+ StreamID handle;
39
+ std::optional<unsigned long> size;
40
+ std::optional<unsigned long> offset;
41
+ };
42
+
43
+ struct NetworkResource {
44
+ bool success{};
45
+ std::optional<std::string> stream;
46
+ std::optional<int> httpStatusCode;
47
+ std::optional<std::string> netErrorName;
48
+ std::optional<Headers> headers;
49
+ folly::dynamic toDynamic() const {
50
+ auto dynamicResource = folly::dynamic::object("success", success);
51
+
52
+ if (success) { // stream IFF successful
53
+ assert(stream);
54
+ dynamicResource("stream", *stream);
55
+ }
56
+
57
+ if (netErrorName) { // Only if unsuccessful
58
+ assert(!success);
59
+ dynamicResource("netErrorName", *netErrorName);
60
+ }
61
+
62
+ if (httpStatusCode) { // Guaranteed if successful
63
+ dynamicResource("httpStatusCode", *httpStatusCode);
64
+ } else {
65
+ assert(!success);
66
+ }
67
+
68
+ if (headers) { // Guaranteed if successful
69
+ auto dynamicHeaders = folly::dynamic::object();
70
+ for (const auto& pair : *headers) {
71
+ dynamicHeaders(pair.first, pair.second);
72
+ }
73
+ dynamicResource("headers", std::move(dynamicHeaders));
74
+ } else {
75
+ assert(!success);
76
+ }
77
+ return dynamicResource;
78
+ }
79
+ };
80
+
81
+ struct IOReadResult {
82
+ std::string data;
83
+ bool eof;
84
+ bool base64Encoded;
85
+ folly::dynamic toDynamic() const {
86
+ auto obj = folly::dynamic::object("data", data);
87
+ obj("eof", eof);
88
+ obj("base64Encoded", base64Encoded);
89
+ return obj;
90
+ }
91
+ };
92
+
93
+ /**
94
+ * Passed to `loadNetworkResource`, provides callbacks for processing incoming
95
+ * data and other events.
96
+ */
97
+ class NetworkRequestListener {
98
+ public:
99
+ NetworkRequestListener() = default;
100
+ NetworkRequestListener(const NetworkRequestListener&) = delete;
101
+ NetworkRequestListener& operator=(const NetworkRequestListener&) = delete;
102
+ NetworkRequestListener(NetworkRequestListener&&) noexcept = default;
103
+ NetworkRequestListener& operator=(NetworkRequestListener&&) noexcept =
104
+ default;
105
+ virtual ~NetworkRequestListener() = default;
106
+
107
+ /**
108
+ * To be called by the delegate on receipt of response headers, including
109
+ * on "unsuccessful" status codes.
110
+ *
111
+ * \param httpStatusCode The HTTP status code received.
112
+ * \param headers Response headers as an unordered_map.
113
+ */
114
+ virtual void onHeaders(int httpStatusCode, const Headers& headers) = 0;
115
+
116
+ /**
117
+ * To be called by the delegate on receipt of data chunks.
118
+ * \param data The data received.
119
+ */
120
+ virtual void onData(std::string_view data) = 0;
121
+
122
+ /**
123
+ * To be called by the delegate on any error with the request, either before
124
+ * headers are received or for a subsequent interrupion.
125
+ *
126
+ * \param message A short, human-readable message, which may be forwarded to
127
+ * the CDP client either in the `loadNetworkResource` response (if headers
128
+ * were not yet received), or as a CDP error in response to a subsequent
129
+ * `IO.read`.
130
+ */
131
+ virtual void onError(const std::string& message) = 0;
132
+
133
+ /**
134
+ * To be called by the delegate on successful completion of the request.
135
+ * Delegates must call *either* onCompletion() or onError() exactly once.
136
+ */
137
+ virtual void onCompletion() = 0;
138
+
139
+ /**
140
+ * Optionally (preferably) used to give NetworkIOAgent
141
+ a way to cancel an
142
+ * in-progress download.
143
+ *
144
+ * \param cancelFunction A function that can be called to cancel a download,
145
+ * may be called before or after the download is complete.
146
+ */
147
+ virtual void setCancelFunction(std::function<void()> cancelFunction) = 0;
148
+ };
149
+
150
+ /**
151
+ * Implemented by the HostTargetDelegate per-platform to perform network
152
+ * requests.
153
+ */
154
+ class LoadNetworkResourceDelegate {
155
+ public:
156
+ LoadNetworkResourceDelegate() = default;
157
+ LoadNetworkResourceDelegate(const LoadNetworkResourceDelegate&) = delete;
158
+ LoadNetworkResourceDelegate& operator=(const LoadNetworkResourceDelegate&) =
159
+ delete;
160
+ LoadNetworkResourceDelegate(LoadNetworkResourceDelegate&&) noexcept = delete;
161
+ LoadNetworkResourceDelegate& operator=(
162
+ LoadNetworkResourceDelegate&&) noexcept = delete;
163
+ virtual ~LoadNetworkResourceDelegate() = default;
164
+
165
+ /**
166
+ * Called by NetworkIOAgent on handling a
167
+ * `Network.loadNetworkResource` CDP request. Platform implementations should
168
+ * override this to perform a network request of the given URL, and use
169
+ * listener's callbacks (via the executor) on receipt of headers, data chunks,
170
+ * and errors.
171
+ *
172
+ * \param params A LoadNetworkResourceRequest, including the url.
173
+ * \param executor A listener-scoped executor used by the delegate to execute
174
+ * listener callbacks on headers, data chunks, and errors. Implementations
175
+ * *should* call listener->setCancelFunction() to provide a lambda that can be
176
+ * called to abort any in-flight network operation that is no longer needed.
177
+ */
178
+ virtual void loadNetworkResource(
179
+ [[maybe_unused]] const LoadNetworkResourceRequest& params,
180
+ [[maybe_unused]] ScopedExecutor<NetworkRequestListener> executor) = 0;
181
+ };
182
+
183
+ /**
184
+ * Provides an agent for handling CDP's Network.loadNetworkResource, IO.read and
185
+ * IO.close.
186
+ *
187
+ * Owns state of all in-progress and completed HTTP requests - ensure
188
+ * IO.close is used to free resources once consumed.
189
+ *
190
+ * Public methods must be called the same thread as the given executor.
191
+ */
192
+ class NetworkIOAgent {
193
+ public:
194
+ /**
195
+ * \param frontendChannel A channel used to send responses to the
196
+ * frontend.
197
+ * \param executor An executor used for any callbacks provided, and for
198
+ * processing incoming data or other events from network operations.
199
+ */
200
+ NetworkIOAgent(FrontendChannel frontendChannel, VoidExecutor executor)
201
+ : frontendChannel_(frontendChannel),
202
+ executor_(executor),
203
+ streams_(std::make_shared<StreamsMap>()) {}
204
+
205
+ /**
206
+ * Handle a CDP request. The response will be sent over the provided
207
+ * \c FrontendChannel synchronously or asynchronously.
208
+ * \param req The parsed request.
209
+ */
210
+ bool handleRequest(
211
+ const cdp::PreparsedRequest& req,
212
+ LoadNetworkResourceDelegate& delegate);
213
+
214
+ private:
215
+ /**
216
+ * A channel used to send responses and events to the frontend.
217
+ */
218
+ FrontendChannel frontendChannel_;
219
+
220
+ /**
221
+ * An executor used to create NetworkRequestListener-scoped executors for the
222
+ * delegate.
223
+ */
224
+ VoidExecutor executor_;
225
+
226
+ /**
227
+ * Map of stream objects, which contain data received, accept read requests
228
+ * and listen for delegate events. Delegates have a scoped executor for Stream
229
+ * instances, but Streams will not live beyond the destruction of this
230
+ * NetworkIOAgent instance + executor scope.
231
+ *
232
+ * This is a shared_ptr so that we may capture a weak_ptr in our
233
+ * Stream::create callback without creating a cycle.
234
+ */
235
+ std::shared_ptr<StreamsMap> streams_;
236
+
237
+ /**
238
+ * Stream IDs are strings of an incrementing integer, unique within each
239
+ * NewtworkIOAgent instance. This stores the next one to use.
240
+ */
241
+ unsigned long nextStreamId_{0};
242
+
243
+ /**
244
+ * Begin loading an HTTP resource, delegating platform-specific
245
+ * implementation, responding to the frontend on headers received or on error.
246
+ * Does not catch exceptions thrown by the delegate (such as
247
+ * NotImplementedException).
248
+ */
249
+ void handleLoadNetworkResource(
250
+ const cdp::PreparsedRequest& req,
251
+ LoadNetworkResourceDelegate& delegate);
252
+
253
+ /**
254
+ * Handle an IO.read CDP request. Emit a chunk of data from the stream, once
255
+ * enough has been downloaded, or report an error.
256
+ */
257
+ void handleIoRead(const cdp::PreparsedRequest& req);
258
+
259
+ /**
260
+ * Handle an IO.close CDP request. Safely aborts any in-flight request.
261
+ * Reports CDP ok if the stream is found, or a CDP error if not.
262
+ */
263
+ void handleIoClose(const cdp::PreparsedRequest& req);
264
+ };
265
+
266
+ } // namespace facebook::react::jsinspector_modern
@@ -54,6 +54,7 @@ Pod::Spec.new do |s|
54
54
  s.dependency "DoubleConversion"
55
55
  s.dependency "React-runtimeexecutor", version
56
56
  s.dependency "React-jsi"
57
+ s.dependency "React-perflogger", version
57
58
  if ENV["USE_HERMES"] == nil || ENV["USE_HERMES"] == "1"
58
59
  s.dependency "hermes-engine"
59
60
  end
@@ -26,6 +26,11 @@ RuntimeAgent::RuntimeAgent(
26
26
  targetController_.installBindingHandler(name);
27
27
  }
28
28
  }
29
+
30
+ if (sessionState_.isRuntimeDomainEnabled &&
31
+ sessionState_.isLogDomainEnabled) {
32
+ targetController_.notifyDebuggerSessionCreated();
33
+ }
29
34
  }
30
35
 
31
36
  bool RuntimeAgent::handleRequest(const cdp::PreparsedRequest& req) {
@@ -83,6 +88,18 @@ bool RuntimeAgent::handleRequest(const cdp::PreparsedRequest& req) {
83
88
 
84
89
  return true;
85
90
  }
91
+ if (req.method == "Runtime.enable" && sessionState_.isLogDomainEnabled) {
92
+ targetController_.notifyDebuggerSessionCreated();
93
+ }
94
+ if (req.method == "Log.enable" && sessionState_.isRuntimeDomainEnabled) {
95
+ targetController_.notifyDebuggerSessionCreated();
96
+ }
97
+ if (req.method == "Runtime.disable" && sessionState_.isLogDomainEnabled) {
98
+ targetController_.notifyDebuggerSessionDestroyed();
99
+ }
100
+ if (req.method == "Log.disable" && sessionState_.isRuntimeDomainEnabled) {
101
+ targetController_.notifyDebuggerSessionDestroyed();
102
+ }
86
103
  if (delegate_) {
87
104
  return delegate_->handleRequest(req);
88
105
  }
@@ -120,6 +137,11 @@ RuntimeAgent::ExportedState RuntimeAgent::getExportedState() {
120
137
  }
121
138
 
122
139
  RuntimeAgent::~RuntimeAgent() {
140
+ if (sessionState_.isRuntimeDomainEnabled &&
141
+ sessionState_.isLogDomainEnabled) {
142
+ targetController_.notifyDebuggerSessionDestroyed();
143
+ }
144
+
123
145
  // TODO: Eventually, there may be more than one Runtime per Page, and we'll
124
146
  // need to store multiple agent states here accordingly. For now let's do
125
147
  // the simple thing and assume (as we do elsewhere) that only one Runtime
@@ -13,6 +13,21 @@ using namespace facebook::jsi;
13
13
 
14
14
  namespace facebook::react::jsinspector_modern {
15
15
 
16
+ namespace {
17
+
18
+ void emitSessionStatusChangeForObserverWithValue(
19
+ jsi::Runtime& runtime,
20
+ const jsi::Value& value) {
21
+ auto globalObj = runtime.global();
22
+ auto observer =
23
+ globalObj.getPropertyAsObject(runtime, "__DEBUGGER_SESSION_OBSERVER__");
24
+ auto onSessionStatusChange =
25
+ observer.getPropertyAsFunction(runtime, "onSessionStatusChange");
26
+ onSessionStatusChange.call(runtime, value);
27
+ }
28
+
29
+ } // namespace
30
+
16
31
  std::shared_ptr<RuntimeTarget> RuntimeTarget::create(
17
32
  const ExecutionContextDescription& executionContextDescription,
18
33
  RuntimeTargetDelegate& delegate,
@@ -36,6 +51,7 @@ RuntimeTarget::RuntimeTarget(
36
51
  void RuntimeTarget::installGlobals() {
37
52
  // NOTE: RuntimeTarget::installConsoleHandler is in RuntimeTargetConsole.cpp
38
53
  installConsoleHandler();
54
+ installDebuggerSessionObserver();
39
55
  }
40
56
 
41
57
  std::shared_ptr<RuntimeAgent> RuntimeTarget::createAgent(
@@ -105,6 +121,28 @@ void RuntimeTarget::installBindingHandler(const std::string& bindingName) {
105
121
  });
106
122
  }
107
123
 
124
+ void RuntimeTarget::emitDebuggerSessionCreated() {
125
+ jsExecutor_([selfExecutor = executorFromThis()](jsi::Runtime& runtime) {
126
+ try {
127
+ emitSessionStatusChangeForObserverWithValue(runtime, jsi::Value(true));
128
+ } catch (jsi::JSError&) {
129
+ // Suppress any errors, they should not be visible to the user
130
+ // and should not affect runtime.
131
+ }
132
+ });
133
+ }
134
+
135
+ void RuntimeTarget::emitDebuggerSessionDestroyed() {
136
+ jsExecutor_([selfExecutor = executorFromThis()](jsi::Runtime& runtime) {
137
+ try {
138
+ emitSessionStatusChangeForObserverWithValue(runtime, jsi::Value(false));
139
+ } catch (jsi::JSError&) {
140
+ // Suppress any errors, they should not be visible to the user
141
+ // and should not affect runtime.
142
+ }
143
+ });
144
+ }
145
+
108
146
  RuntimeTargetController::RuntimeTargetController(RuntimeTarget& target)
109
147
  : target_(target) {}
110
148
 
@@ -113,4 +151,12 @@ void RuntimeTargetController::installBindingHandler(
113
151
  target_.installBindingHandler(bindingName);
114
152
  }
115
153
 
154
+ void RuntimeTargetController::notifyDebuggerSessionCreated() {
155
+ target_.emitDebuggerSessionCreated();
156
+ }
157
+
158
+ void RuntimeTargetController::notifyDebuggerSessionDestroyed() {
159
+ target_.emitDebuggerSessionDestroyed();
160
+ }
161
+
116
162
  } // namespace facebook::react::jsinspector_modern
@@ -106,6 +106,18 @@ class RuntimeTargetController {
106
106
  */
107
107
  void installBindingHandler(const std::string& bindingName);
108
108
 
109
+ /**
110
+ * Notifies the target to emit some message that debugger session is
111
+ * created.
112
+ */
113
+ void notifyDebuggerSessionCreated();
114
+
115
+ /**
116
+ * Notifies the target to emit some message that debugger session is
117
+ * destroyed.
118
+ */
119
+ void notifyDebuggerSessionDestroyed();
120
+
109
121
  private:
110
122
  RuntimeTarget& target_;
111
123
  };
@@ -206,6 +218,25 @@ class JSINSPECTOR_EXPORT RuntimeTarget
206
218
  */
207
219
  void installConsoleHandler();
208
220
 
221
+ /**
222
+ * Installs __DEBUGGER_SESSION_OBSERVER__ object on the JavaScript's global
223
+ * object, which later could be referenced from JavaScript side for
224
+ * determining the status of the debugger session.
225
+ */
226
+ void installDebuggerSessionObserver();
227
+
228
+ /**
229
+ * Propagates the debugger session state change to the JavaScript via calling
230
+ * onStatusChange on __DEBUGGER_SESSION_OBSERVER__.
231
+ */
232
+ void emitDebuggerSessionCreated();
233
+
234
+ /**
235
+ * Propagates the debugger session state change to the JavaScript via calling
236
+ * onStatusChange on __DEBUGGER_SESSION_OBSERVER__.
237
+ */
238
+ void emitDebuggerSessionDestroyed();
239
+
209
240
  // Necessary to allow RuntimeAgent to access RuntimeTarget's internals in a
210
241
  // controlled way (i.e. only RuntimeTargetController gets friend access, while
211
242
  // RuntimeAgent itself doesn't).
@@ -369,8 +369,8 @@ void RuntimeTarget::installConsoleHandler() {
369
369
  };
370
370
 
371
371
  /**
372
- * Call \param innerFn and forward any arguments to the original console
373
- * method named \param methodName, if possible.
372
+ * Call innerFn and forward any arguments to the original console method
373
+ * named methodName, if possible.
374
374
  */
375
375
  auto forwardToOriginalConsole = [originalConsole](
376
376
  const char* methodName,
@@ -0,0 +1,112 @@
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
+ #include <jsinspector-modern/RuntimeTarget.h>
9
+
10
+ namespace facebook::react::jsinspector_modern {
11
+
12
+ void RuntimeTarget::installDebuggerSessionObserver() {
13
+ jsExecutor_([](jsi::Runtime& runtime) {
14
+ auto globalObj = runtime.global();
15
+ try {
16
+ auto observer = jsi::Object(runtime);
17
+
18
+ observer.setProperty(runtime, "hasActiveSession", jsi::Value(false));
19
+
20
+ auto setFunction = globalObj.getPropertyAsFunction(runtime, "Set");
21
+ auto set = setFunction.callAsConstructor(runtime);
22
+ observer.setProperty(runtime, "subscribers", set);
23
+
24
+ observer.setProperty(
25
+ runtime,
26
+ "onSessionStatusChange",
27
+ jsi::Function::createFromHostFunction(
28
+ runtime,
29
+ jsi::PropNameID::forAscii(runtime, "onSessionStatusChange"),
30
+ 1,
31
+ [](jsi::Runtime& onSessionStatusChangeRuntime,
32
+ const jsi::Value& /* onSessionStatusChangeThisVal */,
33
+ const jsi::Value* onSessionStatusChangeArgs,
34
+ size_t onSessionStatusChangeArgsCount) {
35
+ if (onSessionStatusChangeArgsCount != 1 ||
36
+ !onSessionStatusChangeArgs[0].isBool()) {
37
+ throw jsi::JSError(
38
+ onSessionStatusChangeRuntime,
39
+ "Invalid arguments: onSessionStatusChange expects 1 boolean argument");
40
+ }
41
+
42
+ bool updatedStatus = onSessionStatusChangeArgs[0].getBool();
43
+
44
+ auto observerInstanceFromOnSessionStatusChange =
45
+ onSessionStatusChangeRuntime.global().getPropertyAsObject(
46
+ onSessionStatusChangeRuntime,
47
+ "__DEBUGGER_SESSION_OBSERVER__");
48
+ auto subscribersToNotify =
49
+ observerInstanceFromOnSessionStatusChange
50
+ .getPropertyAsObject(
51
+ onSessionStatusChangeRuntime, "subscribers");
52
+
53
+ observerInstanceFromOnSessionStatusChange.setProperty(
54
+ onSessionStatusChangeRuntime,
55
+ "hasActiveSession",
56
+ updatedStatus);
57
+
58
+ if (subscribersToNotify
59
+ .getProperty(onSessionStatusChangeRuntime, "size")
60
+ .asNumber() == 0) {
61
+ return jsi::Value::undefined();
62
+ }
63
+
64
+ auto forEachSubscriber =
65
+ subscribersToNotify.getPropertyAsFunction(
66
+ onSessionStatusChangeRuntime, "forEach");
67
+ auto forEachSubscriberCallback =
68
+ jsi::Function::createFromHostFunction(
69
+ onSessionStatusChangeRuntime,
70
+ jsi::PropNameID::forAscii(
71
+ onSessionStatusChangeRuntime, "forEachCallback"),
72
+ 1,
73
+ [updatedStatus](
74
+ jsi::Runtime& forEachCallbackRuntime,
75
+ const jsi::Value& /* forEachCallbackThisVal */,
76
+ const jsi::Value* forEachCallbackArgs,
77
+ size_t forEachCallbackArgsCount) {
78
+ if (forEachCallbackArgsCount < 1 ||
79
+ !forEachCallbackArgs[0].isObject() ||
80
+ !forEachCallbackArgs[0]
81
+ .getObject(forEachCallbackRuntime)
82
+ .isFunction(forEachCallbackRuntime)) {
83
+ throw jsi::JSError(
84
+ forEachCallbackRuntime,
85
+ "Invalid arguments: forEachSubscriberCallback expects function as a first argument");
86
+ }
87
+
88
+ forEachCallbackArgs[0]
89
+ .getObject(forEachCallbackRuntime)
90
+ .asFunction(forEachCallbackRuntime)
91
+ .call(forEachCallbackRuntime, updatedStatus);
92
+
93
+ return jsi::Value::undefined();
94
+ });
95
+
96
+ forEachSubscriber.callWithThis(
97
+ onSessionStatusChangeRuntime,
98
+ subscribersToNotify,
99
+ forEachSubscriberCallback);
100
+
101
+ return jsi::Value::undefined();
102
+ }));
103
+
104
+ globalObj.setProperty(runtime, "__DEBUGGER_SESSION_OBSERVER__", observer);
105
+ } catch (jsi::JSError&) {
106
+ // Suppress any errors, they should not be visible to the user
107
+ // and should not affect runtime.
108
+ }
109
+ });
110
+ }
111
+
112
+ } // namespace facebook::react::jsinspector_modern
@@ -0,0 +1,56 @@
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
+ #pragma once
9
+
10
+ #include <vector>
11
+
12
+ namespace facebook::react::jsinspector_modern {
13
+
14
+ /**
15
+ * Takes a vector of bytes representing a fragment of a UTF-8 string, and
16
+ * removes the minimum number (0-3) of trailing bytes so that the remainder is
17
+ * valid UTF-8. Useful for slicing binary data into UTF-8 strings.
18
+ *
19
+ * \param buffer Buffer to operate on - will be resized if necessary.
20
+ */
21
+ inline void truncateToValidUTF8(std::vector<char>& buffer) {
22
+ const auto length = buffer.size();
23
+ // Ensure we don't cut a UTF-8 code point in the middle by removing any
24
+ // trailing bytes representing an incomplete UTF-8 code point.
25
+
26
+ // If the last byte is a UTF-8 first byte or continuation byte (topmost bit
27
+ // is 1) (otherwise the last char is ASCII and we don't need to do
28
+ // anything).
29
+ if (length > 0 && (buffer[length - 1] & 0b10000000) == 0b10000000) {
30
+ int continuationBytes = 0;
31
+ // Find the first byte of the UTF-8 code point (topmost bits 11) and count
32
+ // the number of continuation bytes following it.
33
+ while ((buffer[length - continuationBytes - 1] & 0b11000000) !=
34
+ 0b11000000) {
35
+ continuationBytes++;
36
+ if (continuationBytes > 3 || continuationBytes >= length - 1) {
37
+ throw std::runtime_error("Invalid UTF-8 sequence");
38
+ }
39
+ }
40
+ char firstByteOfSequence = buffer[length - continuationBytes - 1];
41
+ // Check for the special case that our original cut point was at the end
42
+ // of a UTF-8 code-point, and therefore already valid. This will be the
43
+ // case if the first byte indicates continuationBytes continuation bytes
44
+ // should follow, i.e. its top bits are (1+continuationBytes) 1's followed
45
+ // by a 0.
46
+ char mask = static_cast<char>(0b11111000 << (3 - continuationBytes));
47
+ char expectedBitsAfterMask = static_cast<char>(mask << 1);
48
+ if (continuationBytes == 0 ||
49
+ (firstByteOfSequence & mask) != expectedBitsAfterMask) {
50
+ // Remove the trailing continuation bytes, if any, and the first byte.
51
+ buffer.resize(length - (continuationBytes + 1));
52
+ }
53
+ }
54
+ }
55
+
56
+ } // namespace facebook::react::jsinspector_modern
@@ -39,6 +39,8 @@ class IWebSocketDelegate {
39
39
 
40
40
  /**
41
41
  * Called when the socket has encountered an error.
42
+ * This method must be called on the inspector queue, and the
43
+ * WebSocketDelegate may not be destroyed while it is executing.
42
44
  * \param posixCode POSIX errno value if available, otherwise nullopt.
43
45
  * \param error Error description.
44
46
  */
@@ -48,6 +50,8 @@ class IWebSocketDelegate {
48
50
 
49
51
  /**
50
52
  * Called when a message has been received from the socket.
53
+ * This method must be called on the inspector queue, and the
54
+ * WebSocketDelegate may not be destroyed while it is executing.
51
55
  * \param message Message received, in UTF-8 encoding.
52
56
  */
53
57
  virtual void didReceiveMessage(std::string_view message) = 0;
@@ -55,6 +59,8 @@ class IWebSocketDelegate {
55
59
  /**
56
60
  * Called when the socket has been closed. The call is not required if
57
61
  * didFailWithError was called instead.
62
+ * This method must be called on the inspector queue, and the
63
+ * WebSocketDelegate may not be destroyed while it is executing.
58
64
  */
59
65
  virtual void didClose() = 0;
60
66
  };