react-native-windows 0.80.1 → 0.81.0-preview.4

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 (679) hide show
  1. package/.flowconfig +10 -5
  2. package/Directory.Build.props +1 -1
  3. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  4. package/Libraries/Alert/Alert.js +3 -3
  5. package/Libraries/Alert/Alert.windows.js +5 -2
  6. package/Libraries/Alert/NativeAlertManager.js +1 -0
  7. package/Libraries/Alert/RCTAlertManager.android.js +19 -13
  8. package/Libraries/Alert/RCTAlertManager.ios.js +10 -12
  9. package/Libraries/Alert/RCTAlertManager.js +1 -3
  10. package/Libraries/Alert/RCTAlertManager.js.flow +5 -7
  11. package/Libraries/Animated/Animated.js +0 -1
  12. package/Libraries/Animated/Animated.js.flow +0 -1
  13. package/Libraries/Animated/AnimatedEvent.js +4 -3
  14. package/Libraries/Animated/AnimatedExports.js +0 -1
  15. package/Libraries/Animated/AnimatedExports.js.flow +5 -1
  16. package/Libraries/Animated/AnimatedImplementation.js +44 -44
  17. package/Libraries/Animated/AnimatedMock.js +2 -2
  18. package/Libraries/Animated/Easing.js +1 -1
  19. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  20. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  21. package/Libraries/Animated/SpringConfig.js +1 -1
  22. package/Libraries/Animated/animations/Animation.js +10 -2
  23. package/Libraries/Animated/components/AnimatedScrollView.js +58 -56
  24. package/Libraries/Animated/components/AnimatedText.js +2 -5
  25. package/Libraries/Animated/components/AnimatedView.js +2 -1
  26. package/Libraries/Animated/createAnimatedComponent.js +39 -37
  27. package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
  28. package/Libraries/Animated/nodes/AnimatedProps.js +31 -4
  29. package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
  30. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
  31. package/Libraries/AppState/NativeAppState.js +1 -0
  32. package/Libraries/AppTheme/AppTheme.js +1 -1
  33. package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
  34. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  35. package/Libraries/Blob/BlobManager.js +4 -0
  36. package/Libraries/Blob/NativeBlobModule.js +1 -0
  37. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  38. package/Libraries/Blob/URL.js +1 -1
  39. package/Libraries/Blob/URLSearchParams.js +5 -1
  40. package/Libraries/Blob/URLSearchParams.js.flow +2 -1
  41. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
  42. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
  43. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  44. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  45. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
  46. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.windows.js +1 -1
  47. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -19
  48. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  49. package/Libraries/Components/Button.js +10 -7
  50. package/Libraries/Components/Button.windows.js +4 -4
  51. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  52. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
  53. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -3
  54. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
  55. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
  56. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
  57. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
  58. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
  59. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +1 -1
  60. package/Libraries/Components/Glyph/GlyphNativeComponent.js +1 -1
  61. package/Libraries/Components/Keyboard/Keyboard.js +1 -1
  62. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
  63. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
  64. package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
  65. package/Libraries/Components/Popup/PopupNativeComponent.js +1 -1
  66. package/Libraries/Components/Pressable/Pressable.js +17 -8
  67. package/Libraries/Components/Pressable/Pressable.windows.js +17 -14
  68. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
  69. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  70. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -3
  71. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -3
  72. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -1
  73. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  74. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
  75. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -3
  76. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
  77. package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
  78. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -3
  79. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  80. package/Libraries/Components/ScrollView/ScrollView.d.ts +33 -6
  81. package/Libraries/Components/ScrollView/ScrollView.js +25 -15
  82. package/Libraries/Components/ScrollView/ScrollView.windows.js +25 -14
  83. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  84. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
  85. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
  86. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
  87. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  88. package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
  89. package/Libraries/Components/Sound/SoundManager.js +1 -1
  90. package/Libraries/Components/StaticRenderer.js +1 -1
  91. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
  92. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
  93. package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
  94. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  95. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -3
  96. package/Libraries/Components/Switch/Switch.js +10 -3
  97. package/Libraries/Components/Switch/Switch.windows.js +10 -3
  98. package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -3
  99. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -24
  100. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -3
  101. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
  102. package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
  103. package/Libraries/Components/TextInput/TextInput.flow.js +13 -15
  104. package/Libraries/Components/TextInput/TextInput.flow.windows.js +12 -15
  105. package/Libraries/Components/TextInput/TextInput.js +42 -39
  106. package/Libraries/Components/TextInput/TextInput.windows.js +69 -38
  107. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  108. package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
  109. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -17
  110. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
  111. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
  112. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
  113. package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
  114. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
  115. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
  116. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
  117. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  118. package/Libraries/Components/Touchable/Position.js +1 -1
  119. package/Libraries/Components/Touchable/Touchable.js +17 -3
  120. package/Libraries/Components/Touchable/Touchable.windows.js +17 -3
  121. package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
  122. package/Libraries/Components/Touchable/TouchableBounce.windows.js +9 -3
  123. package/Libraries/Components/Touchable/TouchableHighlight.js +14 -5
  124. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +14 -5
  125. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -3
  126. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +5 -3
  127. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
  128. package/Libraries/Components/Touchable/TouchableOpacity.js +10 -5
  129. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +10 -5
  130. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
  131. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +3 -3
  132. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -3
  133. package/Libraries/Components/View/ReactNativeStyleAttributes.js +7 -16
  134. package/Libraries/Components/View/View.js +114 -29
  135. package/Libraries/Components/View/View.windows.js +261 -217
  136. package/Libraries/Components/View/ViewAccessibility.js +1 -8
  137. package/Libraries/Components/View/ViewAccessibility.windows.js +1 -8
  138. package/Libraries/Components/View/ViewPropTypes.d.ts +21 -1
  139. package/Libraries/Components/View/ViewPropTypes.js +9 -1
  140. package/Libraries/Components/View/ViewPropTypes.windows.js +9 -1
  141. package/Libraries/Core/Devtools/getDevServer.js +1 -1
  142. package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
  143. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +49 -7
  144. package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
  145. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
  146. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  147. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  148. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  149. package/Libraries/Core/ExceptionsManager.js +27 -16
  150. package/Libraries/Core/InitializeCore.js +2 -23
  151. package/Libraries/Core/NativeExceptionsManager.js +1 -0
  152. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  153. package/Libraries/Core/ReactNativeVersion.js +3 -2
  154. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  155. package/Libraries/Core/Timers/JSTimers.js +1 -1
  156. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  157. package/Libraries/Core/Timers/immediateShim.js +1 -1
  158. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  159. package/Libraries/Core/checkNativeVersion.js +1 -0
  160. package/Libraries/Core/setUpDeveloperTools.js +13 -11
  161. package/Libraries/Core/setUpReactDevTools.js +21 -4
  162. package/Libraries/Debugging/DebuggingOverlay.js +12 -14
  163. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -1
  164. package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
  165. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
  166. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  167. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  168. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  169. package/Libraries/Image/AssetRegistry.js +4 -10
  170. package/Libraries/Image/Image.android.js +113 -107
  171. package/Libraries/Image/Image.ios.js +10 -2
  172. package/Libraries/Image/Image.windows.js +30 -20
  173. package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
  174. package/Libraries/Image/ImageInjection.js +1 -1
  175. package/Libraries/Image/ImageSource.d.ts +5 -0
  176. package/Libraries/Image/ImageViewNativeComponent.js +3 -3
  177. package/Libraries/Image/NativeImageEditor.js +1 -0
  178. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  179. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  180. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  181. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  182. package/Libraries/Image/RelativeImageStub.js +2 -1
  183. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -4
  184. package/Libraries/Image/resolveAssetSource.js +1 -1
  185. package/Libraries/Image/resolveAssetSource.windows.js +1 -1
  186. package/Libraries/Interaction/FrameRateLogger.js +1 -1
  187. package/Libraries/Interaction/InteractionManager.js +64 -54
  188. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  189. package/Libraries/Interaction/TaskQueue.js +8 -9
  190. package/Libraries/Interaction/TouchHistoryMath.js +1 -1
  191. package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
  192. package/Libraries/Linking/Linking.js +1 -1
  193. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  194. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  195. package/Libraries/Lists/FlatList.d.ts +9 -5
  196. package/Libraries/Lists/FlatList.js +6 -7
  197. package/Libraries/Lists/SectionList.js +4 -4
  198. package/Libraries/Lists/SectionListModern.js +9 -3
  199. package/Libraries/Lists/VirtualizedList.js +3 -2
  200. package/Libraries/LogBox/Data/LogBoxData.js +7 -4
  201. package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
  202. package/Libraries/LogBox/LogBox.js +72 -99
  203. package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
  204. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
  205. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +2 -1
  206. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
  207. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
  208. package/Libraries/Modal/Modal.d.ts +8 -2
  209. package/Libraries/Modal/Modal.js +24 -3
  210. package/Libraries/Modal/Modal.windows.js +24 -3
  211. package/Libraries/Modal/NativeModalManager.js +1 -0
  212. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -1
  213. package/Libraries/NativeComponent/BaseViewConfig.android.js +21 -18
  214. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -17
  215. package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
  216. package/Libraries/NativeComponent/BaseViewConfig.windows.js +9 -18
  217. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
  218. package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
  219. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  220. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  221. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  222. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  223. package/Libraries/NativeModules/specs/NativeDialogManagerWindows.js +1 -0
  224. package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
  225. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  226. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  227. package/Libraries/Network/FormData.js +1 -1
  228. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  229. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  230. package/Libraries/Network/RCTNetworking.android.js +2 -2
  231. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  232. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  233. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  234. package/Libraries/Network/XMLHttpRequest.js +3 -3
  235. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  236. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -3
  237. package/Libraries/Pressability/Pressability.js +1 -1
  238. package/Libraries/Pressability/Pressability.windows.js +1 -1
  239. package/Libraries/Promise.js +1 -1
  240. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  241. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
  242. package/Libraries/ReactNative/AppContainer-dev.js +4 -4
  243. package/Libraries/ReactNative/AppContainer-prod.js +0 -1
  244. package/Libraries/ReactNative/AppContainer.js +1 -1
  245. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  246. package/Libraries/ReactNative/AppRegistryImpl.js +2 -13
  247. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  248. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  249. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  250. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  251. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
  252. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  253. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
  254. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +81 -62
  255. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
  256. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  257. package/Libraries/ReactNative/RendererProxy.js +1 -1
  258. package/Libraries/ReactNative/RootTag.js +2 -2
  259. package/Libraries/ReactNative/renderApplication.js +1 -1
  260. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
  261. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
  262. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +3 -3
  263. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
  264. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
  265. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
  266. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -36
  267. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +261 -0
  268. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  269. package/Libraries/Settings/Settings.ios.js +1 -1
  270. package/Libraries/Settings/Settings.js +1 -1
  271. package/Libraries/Settings/SettingsFallback.js +1 -1
  272. package/Libraries/Share/NativeShareModule.js +1 -0
  273. package/Libraries/Share/Share.js +1 -1
  274. package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
  275. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  276. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  277. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
  278. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  279. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
  280. package/Libraries/StyleSheet/PointPropType.js +1 -1
  281. package/Libraries/StyleSheet/Rect.js +1 -1
  282. package/Libraries/StyleSheet/StyleSheet.js +1 -0
  283. package/Libraries/StyleSheet/StyleSheetTypes.js +0 -1
  284. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  285. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  286. package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
  287. package/Libraries/StyleSheet/processBoxShadow.js +0 -1
  288. package/Libraries/StyleSheet/processColor.js +1 -1
  289. package/Libraries/StyleSheet/processColorArray.js +1 -1
  290. package/Libraries/StyleSheet/processFilter.js +1 -2
  291. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  292. package/Libraries/StyleSheet/processTransform.js +1 -1
  293. package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
  294. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  295. package/Libraries/Text/Text.d.ts +1 -2
  296. package/Libraries/Text/Text.js +255 -246
  297. package/Libraries/Text/Text.windows.js +282 -301
  298. package/Libraries/Text/TextAncestor.js +3 -9
  299. package/Libraries/Text/TextAncestorContext.js +23 -0
  300. package/Libraries/Text/TextNativeComponent.js +4 -0
  301. package/Libraries/Text/TextProps.js +2 -5
  302. package/Libraries/Text/TextProps.windows.js +2 -6
  303. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  304. package/Libraries/Types/CodegenTypes.js +1 -1
  305. package/Libraries/Types/CodegenTypesNamespace.js +2 -1
  306. package/Libraries/Types/CoreEventTypes.d.ts +4 -0
  307. package/Libraries/Types/ReactDevToolsTypes.js +0 -1
  308. package/Libraries/Utilities/Appearance.js +1 -1
  309. package/Libraries/Utilities/BackHandler.js.flow +1 -1
  310. package/Libraries/Utilities/DevLoadingView.js +1 -1
  311. package/Libraries/Utilities/DeviceInfo.js +1 -1
  312. package/Libraries/Utilities/Dimensions.js +1 -1
  313. package/Libraries/Utilities/HMRClient.js +13 -3
  314. package/Libraries/Utilities/HMRClientProdShim.js +1 -1
  315. package/Libraries/Utilities/NativeAppearance.js +1 -0
  316. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  317. package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
  318. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  319. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  320. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  321. package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
  322. package/Libraries/Utilities/PixelRatio.js +1 -1
  323. package/Libraries/Utilities/Platform.android.js +2 -5
  324. package/Libraries/Utilities/Platform.ios.js +2 -5
  325. package/Libraries/Utilities/Platform.js +1 -1
  326. package/Libraries/Utilities/Platform.js.flow +2 -2
  327. package/Libraries/Utilities/Platform.windows.js +2 -5
  328. package/Libraries/Utilities/PlatformTypes.js +2 -2
  329. package/Libraries/Utilities/RCTLog.js +1 -1
  330. package/Libraries/Utilities/SceneTracker.js +1 -1
  331. package/Libraries/Utilities/binaryToBase64.js +1 -1
  332. package/Libraries/Utilities/codegenNativeCommands.js +5 -3
  333. package/Libraries/Utilities/codegenNativeComponent.js +4 -4
  334. package/Libraries/Utilities/createPerformanceLogger.js +27 -20
  335. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
  336. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  337. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  338. package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
  339. package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
  340. package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
  341. package/Libraries/Utilities/logError.js +1 -1
  342. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  343. package/Libraries/Utilities/stringifySafe.js +1 -1
  344. package/Libraries/Utilities/stringifyViewConfig.js +1 -1
  345. package/Libraries/Utilities/useColorScheme.js +1 -1
  346. package/Libraries/Utilities/useWindowDimensions.js +1 -1
  347. package/Libraries/Utilities/warnOnce.js +1 -1
  348. package/Libraries/Vibration/NativeVibration.js +1 -0
  349. package/Libraries/Vibration/Vibration.js +1 -2
  350. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  351. package/Libraries/WebSocket/WebSocket.js +1 -1
  352. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  353. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  354. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  355. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  356. package/Microsoft.ReactNative/CompositionSwitcher.idl +163 -162
  357. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +3 -3
  358. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +3 -3
  359. package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +2 -1
  360. package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +2 -2
  361. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +3 -3
  362. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +2 -1
  363. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +1 -1
  364. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +104 -4
  365. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +18 -7
  366. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.cpp +169 -0
  367. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.h +42 -0
  368. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
  369. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +41 -33
  370. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +68 -1
  371. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +9 -0
  372. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +19 -0
  373. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +3 -3
  374. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +108 -24
  375. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +1 -0
  376. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +21 -17
  377. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -4
  378. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +19 -0
  379. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +76 -0
  380. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -1
  381. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  382. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +6 -0
  383. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +62 -39
  384. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.cpp +75 -24
  385. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.h +4 -25
  386. package/Microsoft.ReactNative/JsiApi.cpp +1 -1
  387. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
  388. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +3 -0
  389. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -2
  390. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -1
  391. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -3
  392. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +27 -11
  393. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +19 -2
  394. package/Microsoft.ReactNative/QuirkSettings.cpp +16 -0
  395. package/Microsoft.ReactNative/QuirkSettings.h +3 -0
  396. package/Microsoft.ReactNative/QuirkSettings.idl +5 -0
  397. package/Microsoft.ReactNative/ReactHost/DebuggerNotifications.h +54 -0
  398. package/Microsoft.ReactNative/ReactHost/React.h +11 -4
  399. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +199 -29
  400. package/Microsoft.ReactNative/ReactHost/ReactHost.h +22 -4
  401. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +68 -52
  402. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  403. package/Microsoft.ReactNative/ReactRootView.cpp +108 -0
  404. package/Microsoft.ReactNative/ReactRootView.h +6 -0
  405. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +1 -0
  406. package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -1
  407. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +36 -8
  408. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +6 -2
  409. package/Microsoft.ReactNative/Views/ViewManager.h +0 -1
  410. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +9 -1
  411. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +41 -0
  412. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +16 -0
  413. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +125 -0
  414. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +167 -1
  415. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
  416. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +110 -38
  417. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +5 -5
  418. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +0 -2
  419. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +0 -19
  420. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +45 -34
  421. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +1 -1
  422. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +1 -0
  423. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +36 -33
  424. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +10 -10
  425. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +14 -8
  426. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +44 -31
  427. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +13 -14
  428. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +19 -4
  429. package/Microsoft.ReactNative.Cxx/node-api/node_api.h +270 -0
  430. package/Microsoft.ReactNative.Cxx/node-api/node_api_types.h +52 -0
  431. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +13 -4
  432. package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +10 -0
  433. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  434. package/PropertySheets/JSEngine.props +1 -1
  435. package/PropertySheets/React.Cpp.props +6 -4
  436. package/README.md +1 -1
  437. package/ReactCommon/ReactCommon.vcxproj +29 -21
  438. package/ReactCommon/ReactCommon.vcxproj.filters +36 -13
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +5 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +6 -2
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +111 -7
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +57 -4
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +17 -1
  444. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +175 -0
  445. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +1 -0
  446. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +69 -56
  447. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +35 -18
  448. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +445 -0
  449. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +92 -0
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +35 -0
  451. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +37 -1
  452. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +250 -80
  453. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +528 -0
  454. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +1 -2
  455. package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +9 -12
  456. package/ReactCommon/cgmanifest.json +1 -1
  457. package/Scripts/Analyze-Crash.ps1 +87 -3
  458. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  459. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -0
  460. package/Scripts/Tfs/Start-TestServers.ps1 +2 -1
  461. package/Scripts/creaternwapp.cmd +10 -6
  462. package/Scripts/rnw-dependencies.ps1 +33 -4
  463. package/Shared/CreateModules.h +0 -35
  464. package/Shared/DevServerHelper.h +13 -3
  465. package/Shared/DevSettings.h +6 -5
  466. package/Shared/DevSupportManager.cpp +79 -20
  467. package/Shared/DevSupportManager.h +7 -19
  468. package/Shared/Hermes/HermesRuntimeAgentDelegate.cpp +99 -0
  469. package/Shared/Hermes/HermesRuntimeAgentDelegate.h +81 -0
  470. package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +274 -0
  471. package/Shared/Hermes/HermesRuntimeTargetDelegate.h +77 -0
  472. package/Shared/HermesRuntimeHolder.cpp +29 -111
  473. package/Shared/HermesRuntimeHolder.h +214 -32
  474. package/Shared/IDevSupportManager.h +5 -2
  475. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.cpp +108 -0
  476. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.h +19 -0
  477. package/Shared/Inspector/ReactInspectorThread.h +18 -0
  478. package/Shared/JSI/RuntimeHolder.h +5 -2
  479. package/Shared/Modules/BlobModule.cpp +0 -90
  480. package/Shared/Modules/BlobModule.h +0 -40
  481. package/Shared/Modules/FileReaderModule.cpp +0 -104
  482. package/Shared/Modules/FileReaderModule.h +0 -38
  483. package/Shared/Modules/HttpModule.cpp +0 -172
  484. package/Shared/Modules/HttpModule.h +0 -47
  485. package/Shared/Modules/WebSocketModule.cpp +0 -287
  486. package/Shared/Modules/WebSocketModule.h +1 -94
  487. package/Shared/OInstance.cpp +45 -139
  488. package/Shared/OInstance.h +0 -1
  489. package/Shared/Shared.vcxitems +33 -32
  490. package/Shared/Shared.vcxitems.filters +38 -51
  491. package/Shared/TurboModuleManager.cpp +0 -1
  492. package/codegen/NativeDOMSpec.g.h +6 -0
  493. package/codegen/NativeDeviceInfoSpec.g.h +2 -0
  494. package/codegen/NativeIntersectionObserverSpec.g.h +19 -5
  495. package/codegen/NativeMutationObserverSpec.g.h +4 -4
  496. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +159 -93
  497. package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
  498. package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
  499. package/codegen/react/components/rnwcore/ModalHostView.g.h +4 -0
  500. package/codegen/react/components/rnwcore/Props.cpp +535 -24
  501. package/codegen/react/components/rnwcore/Props.h +138 -0
  502. package/codegen/react/components/rnwcore/States.h +9 -78
  503. package/codegen/react/components/rnwcore/VirtualView.g.h +226 -0
  504. package/codegen/rnwcoreJSI-generated.cpp +101 -31
  505. package/codegen/rnwcoreJSI.h +169 -88
  506. package/include/Shared/II18nModule.h +0 -1
  507. package/index.js +22 -2
  508. package/index.windows.js +131 -221
  509. package/interface.js +1 -1
  510. package/jest/MockNativeMethods.js +9 -3
  511. package/jest/RefreshControlMock.js +32 -0
  512. package/jest/assetFileTransformer.js +1 -0
  513. package/jest/local-setup.js +4 -3
  514. package/jest/mock.js +39 -0
  515. package/jest/mockComponent.js +47 -17
  516. package/jest/mockNativeComponent.js +26 -15
  517. package/jest/mocks/AccessibilityInfo.js +62 -0
  518. package/jest/mocks/ActivityIndicator.js +23 -0
  519. package/jest/mocks/AppState.js +19 -0
  520. package/jest/mocks/Clipboard.js +16 -0
  521. package/jest/mocks/Image.js +23 -0
  522. package/jest/mocks/InitializeCore.js +9 -0
  523. package/jest/mocks/Linking.js +28 -0
  524. package/jest/mocks/Modal.js +33 -0
  525. package/jest/mocks/NativeComponentRegistry.js +30 -0
  526. package/jest/mocks/NativeModules.js +239 -0
  527. package/jest/mocks/RefreshControl.js +31 -0
  528. package/jest/mocks/RendererProxy.js +45 -0
  529. package/jest/mocks/ScrollView.js +58 -0
  530. package/jest/mocks/Text.js +27 -0
  531. package/jest/mocks/TextInput.js +32 -0
  532. package/jest/mocks/UIManager.js +60 -0
  533. package/jest/mocks/Vibration.js +16 -0
  534. package/jest/mocks/View.js +27 -0
  535. package/jest/mocks/ViewNativeComponent.js +23 -0
  536. package/jest/mocks/requireNativeComponent.js +22 -0
  537. package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
  538. package/jest/react-native-env.js +1 -0
  539. package/jest/renderer.js +1 -2
  540. package/jest/resolver.js +1 -0
  541. package/jest/setup.js +64 -449
  542. package/package.json +24 -24
  543. package/src/private/animated/NativeAnimatedHelper.js +8 -1
  544. package/src/private/animated/createAnimatedPropsHook.js +14 -4
  545. package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
  546. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  547. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  548. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  549. package/src/private/components/virtualview/VirtualView.js +145 -0
  550. package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
  551. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
  552. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
  553. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
  554. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  555. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
  556. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
  557. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
  558. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
  559. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
  560. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  561. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
  562. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
  563. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  564. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
  565. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  566. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  567. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  568. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.windows.js +8 -9
  569. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  570. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  571. package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
  572. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
  573. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
  574. package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
  575. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  576. package/src/private/setup/setUpPerformanceObserver.js +7 -0
  577. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
  578. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
  579. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
  580. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
  581. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
  582. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
  583. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
  584. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
  585. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
  586. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
  587. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
  588. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
  589. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
  590. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
  591. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  592. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  593. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
  594. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
  595. package/src/private/styles/composeStyles.js +5 -12
  596. package/src/private/types/HostInstance.js +1 -1
  597. package/src/private/webapis/dom/events/Event.js +3 -0
  598. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  599. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
  600. package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
  601. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
  602. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  603. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
  604. package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
  605. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
  606. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  607. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  608. package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
  609. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  610. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
  611. package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
  612. package/src/private/webapis/errors/DOMException.js +166 -0
  613. package/src/private/webapis/geometry/DOMRect.js +5 -0
  614. package/src/private/webapis/geometry/DOMRectList.js +4 -1
  615. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  616. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
  617. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
  618. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  619. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
  620. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
  621. package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
  622. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  623. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
  624. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
  625. package/src/private/webapis/performance/EventTiming.js +1 -1
  626. package/src/private/webapis/performance/LongTasks.js +1 -1
  627. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  628. package/src/private/webapis/performance/Performance.js +20 -9
  629. package/src/private/webapis/performance/PerformanceEntry.js +5 -1
  630. package/src/private/webapis/performance/PerformanceObserver.js +32 -28
  631. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  632. package/src/private/webapis/performance/ResourceTiming.js +108 -0
  633. package/src/private/webapis/performance/UserTiming.js +1 -1
  634. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
  635. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  636. package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
  637. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  638. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  639. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  640. package/template/metro.config.js +2 -4
  641. package/templates/cpp-app/metro.config.js +2 -4
  642. package/templates/cpp-lib/example/metro.config.js +2 -3
  643. package/templates/cpp-lib/template.config.js +24 -0
  644. package/templates/cpp-lib/windows/MyLib/MyLib.h +20 -1
  645. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +0 -1
  646. package/types/modules/Devtools.d.ts +23 -9
  647. package/Libraries/BugReporting/BugReporting.js +0 -140
  648. package/Libraries/BugReporting/NativeBugReporting.js +0 -13
  649. package/Libraries/BugReporting/dumpReactTree.js +0 -151
  650. package/Libraries/BugReporting/getReactData.js +0 -187
  651. package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
  652. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +0 -78
  653. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -196
  654. package/ReactCommon/TEMP_UntilReactCommonUpdate/jserrorhandler/JsErrorHandler.cpp +0 -429
  655. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.cpp +0 -45
  656. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.h +0 -91
  657. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/CullingContext.cpp +0 -49
  658. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +0 -191
  659. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +0 -670
  660. package/Shared/InspectorPackagerConnection.cpp +0 -232
  661. package/Shared/InspectorPackagerConnection.h +0 -61
  662. package/Shared/Modules/ExceptionsManagerModule.cpp +0 -209
  663. package/Shared/Modules/ExceptionsManagerModule.h +0 -32
  664. package/Shared/Modules/I18nModule.cpp +0 -36
  665. package/Shared/Modules/I18nModule.h +0 -28
  666. package/Shared/Modules/NetworkingModule.cpp +0 -432
  667. package/Shared/Modules/NetworkingModule.h +0 -34
  668. package/Shared/Modules/PlatformConstantsModule.cpp +0 -60
  669. package/Shared/Modules/PlatformConstantsModule.h +0 -23
  670. package/Shared/Modules/SourceCodeModule.cpp +0 -35
  671. package/Shared/Modules/SourceCodeModule.h +0 -27
  672. package/Shared/Modules/StatusBarManagerModule.cpp +0 -25
  673. package/Shared/Modules/StatusBarManagerModule.h +0 -19
  674. package/codegen/NativeBugReportingSpec.g.h +0 -41
  675. package/jest/mockModal.js +0 -32
  676. package/jest/mockScrollView.js +0 -35
  677. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
  678. /package/Shared/{HermesSamplingProfiler.cpp → Hermes/HermesSamplingProfiler.cpp} +0 -0
  679. /package/Shared/{HermesSamplingProfiler.h → Hermes/HermesSamplingProfiler.h} +0 -0
@@ -114,9 +114,6 @@
114
114
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\jsiexecutor\jsireact\JSIExecutor.cpp">
115
115
  <Filter>jsiexecutor\jsireact</Filter>
116
116
  </ClCompile>
117
- <ClCompile Include="$(ReactNativeDir)\ReactCommon\jsitooling\react\runtime\JSRuntimeFactory.cpp">
118
- <Filter>jsitooling\react\runtime</Filter>
119
- </ClCompile>
120
117
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\jsiexecutor\jsireact\JSINativeModules.cpp">
121
118
  <Filter>jsiexecutor\jsireact</Filter>
122
119
  </ClCompile>
@@ -203,8 +200,6 @@
203
200
  <Filter>react\renderer\telemetry</Filter>
204
201
  </ClCompile>
205
202
  <ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\InspectorInterfaces.cpp" />
206
- <ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\EventLoopTaskReporter.cpp" />
207
- <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\RuntimeSamplingProfileTraceEventSerializer.cpp" />
208
203
  <ClCompile Include="$(YogaDir)\yoga\algorithm\AbsoluteLayout.cpp" />
209
204
  <ClCompile Include="$(YogaDir)\yoga\algorithm\Baseline.cpp" />
210
205
  <ClCompile Include="$(YogaDir)\yoga\algorithm\Cache.cpp" />
@@ -216,6 +211,20 @@
216
211
  <ClCompile Include="$(YogaDir)\yoga\debug\Log.cpp" />
217
212
  <ClCompile Include="$(YogaDir)\yoga\node\LayoutResults.cpp" />
218
213
  <ClCompile Include="$(YogaDir)\yoga\node\Node.cpp" />
214
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\InspectorFlags.cpp" />
215
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\EventLoopReporter.cpp" />
216
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\RuntimeSamplingProfileTraceEventSerializer.cpp" />
217
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\PerformanceTracer.cpp" />
218
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\jsitooling\react\runtime\JSRuntimeFactory.cpp" />
219
+ <CLCompile Include="$(ReactNativeDir)\ReactCommon\reactperflogger\fusebox\FuseboxTracer.cpp" />
220
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\mounting\internal\CullingContext.cpp" />
221
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\mounting\internal\sliceChildShadowNodeViewPairs.cpp" />
222
+ <CLCompile Include="$(ReactNativeDir)\ReactCommon\react\performance\timeline\PerformanceEntryReporter.cpp" />
223
+ <CLCompile Include="$(ReactNativeDir)\ReactCommon\react\performance\timeline\PerformanceObserverRegistry.cpp" />
224
+ <CLCompile Include="$(ReactNativeDir)\ReactCommon\react\performance\timeline\PerformanceEntryCircularBuffer.cpp" />
225
+ <CLCompile Include="$(ReactNativeDir)\ReactCommon\react\performance\timeline\PerformanceObserver.cpp" />
226
+ <CLCompile Include="$(ReactNativeDir)\ReactCommon\react\performance\timeline\PerformanceEntryKeyedBuffer.cpp" />
227
+ <ClCompile Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\network\NetworkReporter.cpp" />
219
228
  </ItemGroup>
220
229
  <ItemGroup>
221
230
  <ClInclude Include="..\stubs\sys\mman.h">
@@ -302,9 +311,6 @@
302
311
  <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsi\jsi\jsi-inl.h">
303
312
  <Filter>jsi\jsi</Filter>
304
313
  </ClInclude>
305
- <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsitooling\react\runtime\JSRuntimeFactory.h">
306
- <Filter>jsitooling\react\runtime</Filter>
307
- </ClInclude>
308
314
  <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon\TurboModuleBinding.h">
309
315
  <Filter>turbomodule\core</Filter>
310
316
  </ClInclude>
@@ -339,25 +345,42 @@
339
345
  <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\CallbackWrapper.h">
340
346
  <Filter>react\bridging</Filter>
341
347
  </ClInclude>
342
- <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\EventEmitter.h" >
348
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\EventEmitter.h">
343
349
  <Filter>react\bridging</Filter>
344
350
  </ClInclude>
345
- <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\Function.h" >
351
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\Function.h">
346
352
  <Filter>react\bridging</Filter>
347
353
  </ClInclude>
348
- <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\Base.h" >
354
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\Base.h">
349
355
  <Filter>react\bridging</Filter>
350
356
  </ClInclude>
351
- <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\Convert.h" >
357
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\Convert.h">
352
358
  <Filter>react\bridging</Filter>
353
359
  </ClInclude>
354
360
  <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\InspectorInterfaces.h" />
355
361
  <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\InstanceTracingProfile.h" />
356
362
  <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\RuntimeSamplingProfile.h" />
357
- <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\EventLoopTaskReporter.h" />
358
363
  <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\RuntimeSamplingProfileTraceEventSerializer.h" />
359
364
  <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\runtimescheduler\RuntimeScheduler_Legacy.h" />
360
365
  <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\runtimescheduler\RuntimeScheduler_Modern.h" />
361
366
  <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\core\PropsParserContext.h" />
367
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\EventLoopReporter.h" />
368
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\PerformanceTracer.h" />
369
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\ProfileTreeNode.h" />
370
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\TraceEventProfile.h" />
371
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\jsinspector-modern\tracing\NetworkReporter.h" />
372
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\bridging\LongLivedObject.h" />
373
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\textinput\basePrimitives.h" />
374
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\textinput\BaseTextInputProps.h" />
375
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\textlayoutmanager\TextLayoutManager.h" />
376
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\imagemanager\platform\cxx\react\renderer\imagemanager\ImageRequestParams.h" />
377
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\mapbuffer\MapBuffer.h" />
378
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\mapbuffer\MapBufferBuilder.h" />
379
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\attributedstring\conversions.h" />
380
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\mounting\internal\CullingContext.h" />
381
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\mounting\internal\sliceChildShadowNodeViewPairs.h" />
382
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\mounting\internal\ShadowViewNodePair.h" />
383
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\mounting\internal\TinyMap.h" />
384
+ <ClInclude Include="$(ReactNativeDir)\ReactCommon\react\renderer\graphics\Rect.h" />
362
385
  </ItemGroup>
363
386
  </Project>
@@ -6,6 +6,9 @@
6
6
  */
7
7
 
8
8
  #include "CxxNativeModule.h"
9
+
10
+ #ifndef RCT_FIT_RM_OLD_RUNTIME
11
+
9
12
  #include "Instance.h"
10
13
 
11
14
  #include <folly/json.h>
@@ -251,3 +254,5 @@ void CxxNativeModule::lazyInit() {
251
254
  }
252
255
 
253
256
  } // namespace facebook::react
257
+
258
+ #endif // RCT_FIT_RM_OLD_RUNTIME
@@ -7,6 +7,8 @@
7
7
 
8
8
  #include "NativeToJsBridge.h"
9
9
 
10
+ #ifndef RCT_FIT_RM_OLD_RUNTIME
11
+
10
12
  #include <ReactCommon/CallInvoker.h>
11
13
  #include <folly/json.h>
12
14
  #include <glog/logging.h>
@@ -341,7 +343,9 @@ NativeToJsBridge::getDecoratedNativeMethodCallInvoker(
341
343
 
342
344
  jsinspector_modern::RuntimeTargetDelegate&
343
345
  NativeToJsBridge::getInspectorTargetDelegate() {
344
- return *m_executor;
346
+ return m_executor->getRuntimeTargetDelegate();
345
347
  }
346
348
 
347
- } // namespace facebook::react
349
+ } // namespace facebook::react
350
+
351
+ #endif // RCT_FIT_RM_OLD_RUNTIME
@@ -1173,7 +1173,7 @@ TEST_P(JSITest, DecoratorTest) {
1173
1173
 
1174
1174
  class CountRuntime final : public WithRuntimeDecorator<Count> {
1175
1175
  public:
1176
- explicit CountRuntime(std::unique_ptr<Runtime> rt)
1176
+ explicit CountRuntime(std::shared_ptr<Runtime> rt)
1177
1177
  : WithRuntimeDecorator<Count>(*rt, count_),
1178
1178
  rt_(std::move(rt)),
1179
1179
  count_(kInit) {}
@@ -1183,7 +1183,7 @@ TEST_P(JSITest, DecoratorTest) {
1183
1183
  }
1184
1184
 
1185
1185
  private:
1186
- std::unique_ptr<Runtime> rt_;
1186
+ std::shared_ptr<Runtime> rt_;
1187
1187
  Count count_;
1188
1188
  };
1189
1189
 
@@ -1222,7 +1222,7 @@ TEST_P(JSITest, MultiDecoratorTest) {
1222
1222
  class MultiRuntime final
1223
1223
  : public WithRuntimeDecorator<std::tuple<Inc, Nest>> {
1224
1224
  public:
1225
- explicit MultiRuntime(std::unique_ptr<Runtime> rt)
1225
+ explicit MultiRuntime(std::shared_ptr<Runtime> rt)
1226
1226
  : WithRuntimeDecorator<std::tuple<Inc, Nest>>(*rt, tuple_),
1227
1227
  rt_(std::move(rt)) {}
1228
1228
 
@@ -1234,7 +1234,7 @@ TEST_P(JSITest, MultiDecoratorTest) {
1234
1234
  }
1235
1235
 
1236
1236
  private:
1237
- std::unique_ptr<Runtime> rt_;
1237
+ std::shared_ptr<Runtime> rt_;
1238
1238
  std::tuple<Inc, Nest> tuple_;
1239
1239
  };
1240
1240
 
@@ -1658,10 +1658,7 @@ TEST_P(JSITest, CreateFromUtf16Test) {
1658
1658
  auto cp = eval("loneSurrogate.charCodeAt(0)").getNumber();
1659
1659
  EXPECT_EQ(cp, 55357); // 0xD83D in decimal
1660
1660
  }
1661
- Windows] */
1662
1661
 
1663
- /*
1664
- [Windows
1665
1662
  TEST_P(JSITest, GetStringDataTest) {
1666
1663
  // This Runtime Decorator is used to test the default getStringData
1667
1664
  // implementation for VMs that do not provide their own implementation
@@ -1752,6 +1749,113 @@ TEST_P(JSITest, ObjectCreateWithPrototype) {
1752
1749
  }
1753
1750
  Windows] */
1754
1751
 
1752
+ TEST_P(JSITest, SetRuntimeData) {
1753
+ class RD : public RuntimeDecorator<Runtime, Runtime> {
1754
+ public:
1755
+ explicit RD(Runtime& rt) : RuntimeDecorator(rt) {}
1756
+
1757
+ void setRuntimeDataImpl(
1758
+ const facebook::jsi::UUID& uuid,
1759
+ const void* data,
1760
+ void (*deleter)(const void* data)) override {
1761
+ Runtime::setRuntimeDataImpl(uuid, data, deleter);
1762
+ }
1763
+
1764
+ const void* getRuntimeDataImpl(const facebook::jsi::UUID& uuid) override {
1765
+ return Runtime::getRuntimeDataImpl(uuid);
1766
+ }
1767
+ };
1768
+
1769
+ RD rd1 = RD(rt);
1770
+ facebook::jsi::UUID uuid1{0xe67ab3d6u, 0x09a0u, 0x11f0u, 0xa641u, 0x325096b39f47ull};
1771
+ auto str = std::make_shared<std::string>("hello world");
1772
+ rd1.setRuntimeData(uuid1, str);
1773
+
1774
+ facebook::jsi::UUID uuid2{0xa12f99fcu, 0x09a2u, 0x11f0u, 0x84deu, 0x325096b39f47ull};
1775
+ auto obj1 = std::make_shared<Object>(rd1);
1776
+ rd1.setRuntimeData(uuid2, obj1);
1777
+
1778
+ auto storedStr =
1779
+ std::static_pointer_cast<std::string>(rd1.getRuntimeData(uuid1));
1780
+ auto storedObj = std::static_pointer_cast<Object>(rd1.getRuntimeData(uuid2));
1781
+ EXPECT_EQ(storedStr, str);
1782
+ EXPECT_EQ(storedObj, obj1);
1783
+
1784
+ // Override the existing value at uuid1
1785
+ auto weakOldStr = std::weak_ptr<std::string>(str);
1786
+ str = std::make_shared<std::string>("goodbye world");
1787
+ rd1.setRuntimeData(uuid1, str);
1788
+ storedStr = std::static_pointer_cast<std::string>(rd1.getRuntimeData(uuid1));
1789
+ EXPECT_EQ(str, storedStr);
1790
+ // Verify that the old data was not held on after it was overwritten.
1791
+ EXPECT_EQ(weakOldStr.use_count(), 0);
1792
+
1793
+ auto rt2 = factory();
1794
+ RD* rd2 = new RD(*rt2);
1795
+ facebook::jsi::UUID uuid3{0x16f55892u, 0x1034u, 0x11f0u, 0x8f65u, 0x325096b39f47ull};
1796
+ auto obj2 = std::make_shared<Object>(*rd2);
1797
+ rd2->setRuntimeData(uuid3, obj2);
1798
+
1799
+ auto storedObj2 =
1800
+ std::static_pointer_cast<Object>(rd2->getRuntimeData(uuid3));
1801
+ EXPECT_EQ(storedObj2, obj2);
1802
+
1803
+ // UUID1 is for some data in runtime rd1, not rd2
1804
+ EXPECT_FALSE(rd2->getRuntimeData(uuid1));
1805
+
1806
+ // Verify that when runtime is deleted, its runtime data map gets removed from
1807
+ // the global map. So nothing should be holding on to the stored data.
1808
+ auto weakObj2 = std::weak_ptr<Object>(obj2);
1809
+ obj2.reset();
1810
+ storedObj2.reset();
1811
+ delete rd2;
1812
+ rt2.reset();
1813
+ EXPECT_EQ(weakObj2.use_count(), 0);
1814
+
1815
+ // Only the second runtime was destroyed, so custom data from the first
1816
+ // runtime should remain unaffected.
1817
+ storedStr = std::static_pointer_cast<std::string>(rd1.getRuntimeData(uuid1));
1818
+ EXPECT_EQ(storedStr, str);
1819
+
1820
+ // Overwrite Object.defineProperty, which is called in the default
1821
+ // implementation of setRuntimeDataImpl, to test that even if the JSI
1822
+ // operations on this secret property fail, we are still able to properly
1823
+ // clean up the custom data.
1824
+ auto rt3 = factory();
1825
+ RD* rd3 = new RD(*rt3);
1826
+ facebook::jsi::UUID uuid4{0xa5682986u, 0x1edcu, 0x11f0u, 0xa4fau, 0x325096b39f47ull};
1827
+ rd3->global()
1828
+ .getPropertyAsObject(*rd3, "Object")
1829
+ .setProperty(*rd3, "defineProperty", Value(false));
1830
+
1831
+ auto obj3 = std::make_shared<Object>(*rd3);
1832
+ auto weakObj3 = std::weak_ptr<Object>(obj3);
1833
+ EXPECT_THROW(rd3->setRuntimeData(uuid4, obj3), JSIException);
1834
+ obj3.reset();
1835
+ delete rd3;
1836
+ rt3.reset();
1837
+ EXPECT_EQ(weakObj3.use_count(), 0);
1838
+ }
1839
+
1840
+ TEST_P(JSITest, CastInterface) {
1841
+ // This Runtime Decorator is used to test the default implementation of
1842
+ // jsi::Runtime::castInterface
1843
+ class RD : public RuntimeDecorator<Runtime, Runtime> {
1844
+ public:
1845
+ explicit RD(Runtime& rt) : RuntimeDecorator(rt) {}
1846
+
1847
+ ICast* castInterface(const facebook::jsi::UUID& interfaceUuid) override {
1848
+ return Runtime::castInterface(interfaceUuid);
1849
+ }
1850
+ };
1851
+
1852
+ RD rd = RD(rt);
1853
+ auto randomUuid = facebook::jsi::UUID{0xf2cd96cfu, 0x455eu, 0x42d9u, 0x850au, 0x13e2cde59b8bull};
1854
+ auto ptr = rd.castInterface(randomUuid);
1855
+
1856
+ EXPECT_EQ(ptr, nullptr);
1857
+ }
1858
+
1755
1859
  INSTANTIATE_TEST_CASE_P(
1756
1860
  Runtimes,
1757
1861
  JSITest,
@@ -14,6 +14,7 @@
14
14
  #include <jsinspector-modern/network/NetworkReporter.h>
15
15
 
16
16
  #include <sstream>
17
+ #include <tuple>
17
18
  #include <utility>
18
19
  #include <variant>
19
20
 
@@ -31,7 +32,7 @@ static constexpr std::array kTextMIMETypePrefixes{
31
32
  "application/javascript" // Not in Chromium but emitted by Metro
32
33
  };
33
34
 
34
- // namespace { [Windows #13587]
35
+ namespace {
35
36
 
36
37
  struct InitStreamResult {
37
38
  uint32_t httpStatusCode;
@@ -45,6 +46,8 @@ using StreamInitCallback =
45
46
  using IOReadCallback =
46
47
  std::function<void(std::variant<IOReadError, IOReadResult>)>;
47
48
 
49
+ } // namespace [Windows #13587]
50
+
48
51
  /**
49
52
  * Private class owning state and implementing the listener for a particular
50
53
  * request
@@ -291,8 +294,8 @@ bool NetworkIOAgent::handleRequest(
291
294
 
292
295
  // @cdp Network.getResponseBody support is experimental.
293
296
  if (req.method == "Network.getResponseBody") {
294
- // TODO(T218468200)
295
- return false;
297
+ handleGetResponseBody(req);
298
+ return true;
296
299
  }
297
300
  }
298
301
 
@@ -471,4 +474,54 @@ void NetworkIOAgent::handleIoClose(const cdp::PreparsedRequest& req) {
471
474
  }
472
475
  }
473
476
 
474
- } // namespace facebook::react::jsinspector_modern
477
+ void NetworkIOAgent::handleGetResponseBody(const cdp::PreparsedRequest& req) {
478
+ long long requestId = req.id;
479
+ if (!req.params.isObject()) {
480
+ frontendChannel_(cdp::jsonError(
481
+ requestId,
482
+ cdp::ErrorCode::InvalidParams,
483
+ "Invalid params: not an object."));
484
+ return;
485
+ }
486
+ if ((req.params.count("requestId") == 0u) ||
487
+ !req.params.at("requestId").isString()) {
488
+ frontendChannel_(cdp::jsonError(
489
+ requestId,
490
+ cdp::ErrorCode::InvalidParams,
491
+ "Invalid params: requestId is missing or not a string."));
492
+ return;
493
+ }
494
+
495
+ auto& networkReporter = NetworkReporter::getInstance();
496
+
497
+ if (!networkReporter.isDebuggingEnabled()) {
498
+ frontendChannel_(cdp::jsonError(
499
+ requestId,
500
+ cdp::ErrorCode::InvalidRequest,
501
+ "Invalid request: The \"Network\" domain is not enabled."));
502
+ return;
503
+ }
504
+
505
+ auto storedResponse =
506
+ networkReporter.getResponseBody(req.params.at("requestId").asString());
507
+
508
+ if (!storedResponse) {
509
+ frontendChannel_(cdp::jsonError(
510
+ requestId,
511
+ cdp::ErrorCode::InternalError,
512
+ "Internal error: Could not retrieve response body for the given requestId."));
513
+ return;
514
+ }
515
+
516
+ std::string responseBody;
517
+ bool base64Encoded = false;
518
+ std::tie(responseBody, base64Encoded) = *storedResponse;
519
+
520
+ auto result = GetResponseBodyResult{
521
+ .body = responseBody,
522
+ .base64Encoded = base64Encoded,
523
+ };
524
+
525
+ frontendChannel_(cdp::jsonResult(requestId, result.toDynamic()));
526
+ }
527
+ } // namespace facebook::react::jsinspector_modern
@@ -88,6 +88,17 @@ struct IOReadResult {
88
88
  }
89
89
  };
90
90
 
91
+ struct GetResponseBodyResult {
92
+ std::string body;
93
+ bool base64Encoded;
94
+ folly::dynamic toDynamic() const {
95
+ folly::dynamic params = folly::dynamic::object;
96
+ params["body"] = body;
97
+ params["base64Encoded"] = base64Encoded;
98
+ return params;
99
+ }
100
+ };
101
+
91
102
  /**
92
103
  * Passed to `loadNetworkResource`, provides callbacks for processing incoming
93
104
  * data and other events.
@@ -259,6 +270,11 @@ class NetworkIOAgent {
259
270
  * Reports CDP ok if the stream is found, or a CDP error if not.
260
271
  */
261
272
  void handleIoClose(const cdp::PreparsedRequest& req);
273
+
274
+ /**
275
+ * Handle a Network.getResponseBody CDP request.
276
+ */
277
+ void handleGetResponseBody(const cdp::PreparsedRequest& req);
262
278
  };
263
279
 
264
- } // namespace facebook::react::jsinspector_modern
280
+ } // namespace facebook::react::jsinspector_modern
@@ -0,0 +1,175 @@
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 "HttpUtils.h"
9
+
10
+ #include <algorithm>
11
+
12
+ namespace facebook::react::jsinspector_modern {
13
+
14
+ std::string httpReasonPhrase(uint16_t status) {
15
+ switch (status) {
16
+ case 100:
17
+ return "Continue";
18
+ case 101:
19
+ return "Switching Protocols";
20
+ case 102:
21
+ return "Processing";
22
+ case 103:
23
+ return "Early Hints";
24
+
25
+ case 200:
26
+ return "OK";
27
+ case 201:
28
+ return "Created";
29
+ case 202:
30
+ return "Accepted";
31
+ case 203:
32
+ return "Non-Authoritative Information";
33
+ case 204:
34
+ return "No Content";
35
+ case 205:
36
+ return "Reset Content";
37
+ case 206:
38
+ return "Partial Content";
39
+ case 207:
40
+ return "Multi-Status";
41
+ case 208:
42
+ return "Already Reported";
43
+ case 226:
44
+ return "IM Used";
45
+
46
+ case 300:
47
+ return "Multiple Choices";
48
+ case 301:
49
+ return "Moved Permanently";
50
+ case 302:
51
+ return "Found";
52
+ case 303:
53
+ return "See Other";
54
+ case 304:
55
+ return "Not Modified";
56
+ case 305:
57
+ return "Use Proxy";
58
+ case 307:
59
+ return "Temporary Redirect";
60
+ case 308:
61
+ return "Permanent Redirect";
62
+
63
+ case 400:
64
+ return "Bad Request";
65
+ case 401:
66
+ return "Unauthorized";
67
+ case 402:
68
+ return "Payment Required";
69
+ case 403:
70
+ return "Forbidden";
71
+ case 404:
72
+ return "Not Found";
73
+ case 405:
74
+ return "Method Not Allowed";
75
+ case 406:
76
+ return "Not Acceptable";
77
+ case 407:
78
+ return "Proxy Authentication Required";
79
+ case 408:
80
+ return "Request Timeout";
81
+ case 409:
82
+ return "Conflict";
83
+ case 410:
84
+ return "Gone";
85
+ case 411:
86
+ return "Length Required";
87
+ case 412:
88
+ return "Precondition Failed";
89
+ case 413:
90
+ return "Payload Too Large";
91
+ case 414:
92
+ return "URI Too Long";
93
+ case 415:
94
+ return "Unsupported Media Type";
95
+ case 416:
96
+ return "Range Not Satisfiable";
97
+ case 417:
98
+ return "Expectation Failed";
99
+ case 418:
100
+ return "I'm a teapot";
101
+ case 421:
102
+ return "Misdirected Request";
103
+ case 422:
104
+ return "Unprocessable Entity";
105
+ case 423:
106
+ return "Locked";
107
+ case 424:
108
+ return "Failed Dependency";
109
+ case 425:
110
+ return "Too Early";
111
+ case 426:
112
+ return "Upgrade Required";
113
+ case 428:
114
+ return "Precondition Required";
115
+ case 429:
116
+ return "Too Many Requests";
117
+ case 431:
118
+ return "Request Header Fields Too Large";
119
+ case 451:
120
+ return "Unavailable For Legal Reasons";
121
+
122
+ case 500:
123
+ return "Internal Server Error";
124
+ case 501:
125
+ return "Not Implemented";
126
+ case 502:
127
+ return "Bad Gateway";
128
+ case 503:
129
+ return "Service Unavailable";
130
+ case 504:
131
+ return "Gateway Time-out";
132
+ case 505:
133
+ return "HTTP Version Not Supported";
134
+ case 506:
135
+ return "Variant Also Negotiates";
136
+ case 507:
137
+ return "Insufficient Storage";
138
+ case 508:
139
+ return "Loop Detected";
140
+ case 510:
141
+ return "Not Extended";
142
+ case 511:
143
+ return "Network Authentication Required";
144
+ }
145
+
146
+ return "<Unknown>";
147
+ }
148
+
149
+ std::string mimeTypeFromHeaders(const Headers& headers) {
150
+ std::string mimeType = "application/octet-stream";
151
+
152
+ for (const auto& [name, value] : headers) {
153
+ std::string lowerName = name;
154
+ std::transform(
155
+ lowerName.begin(), lowerName.end(), lowerName.begin(), [](unsigned char c) { // [Windows #13587]
156
+ return static_cast<char>(::tolower(c)); // [Windows #13587]
157
+ });
158
+ if (lowerName == "content-type") {
159
+ // Parse MIME type (discarding any parameters after ";") from the
160
+ // Content-Type header
161
+ // https://datatracker.ietf.org/doc/html/rfc7231#section-3.1.1.1
162
+ size_t pos = value.find(';');
163
+ if (pos != std::string::npos) {
164
+ mimeType = value.substr(0, pos);
165
+ } else {
166
+ mimeType = value;
167
+ }
168
+ break;
169
+ }
170
+ }
171
+
172
+ return mimeType;
173
+ }
174
+
175
+ } // namespace facebook::react::jsinspector_modern
@@ -15,6 +15,7 @@
15
15
  #include <react/bridging/Error.h>
16
16
  #include <react/bridging/EventEmitter.h>
17
17
  #include <react/bridging/Function.h>
18
+ #include <react/bridging/HighResTimeStamp.h>
18
19
  #include <react/bridging/Number.h>
19
20
  #include <react/bridging/Object.h>
20
21
  #include <react/bridging/Promise.h>