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

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 (672) 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/Fabric/AbiComponentDescriptor.cpp +3 -3
  357. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +3 -3
  358. package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +2 -1
  359. package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +2 -2
  360. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +3 -3
  361. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +2 -1
  362. package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +1 -1
  363. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +18 -7
  364. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.cpp +169 -0
  365. package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.h +42 -0
  366. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
  367. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +68 -1
  368. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +9 -0
  369. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +3 -3
  370. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +6 -6
  371. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +21 -17
  372. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -4
  373. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +19 -0
  374. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +76 -0
  375. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -1
  376. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  377. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +6 -0
  378. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +41 -37
  379. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.cpp +75 -24
  380. package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.h +4 -25
  381. package/Microsoft.ReactNative/JsiApi.cpp +1 -1
  382. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
  383. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +3 -0
  384. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -2
  385. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -1
  386. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -3
  387. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +27 -11
  388. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +19 -2
  389. package/Microsoft.ReactNative/QuirkSettings.cpp +16 -0
  390. package/Microsoft.ReactNative/QuirkSettings.h +3 -0
  391. package/Microsoft.ReactNative/QuirkSettings.idl +5 -0
  392. package/Microsoft.ReactNative/ReactHost/DebuggerNotifications.h +54 -0
  393. package/Microsoft.ReactNative/ReactHost/React.h +11 -4
  394. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +166 -29
  395. package/Microsoft.ReactNative/ReactHost/ReactHost.h +22 -4
  396. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +68 -52
  397. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  398. package/Microsoft.ReactNative/ReactRootView.cpp +108 -0
  399. package/Microsoft.ReactNative/ReactRootView.h +6 -0
  400. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +1 -0
  401. package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -1
  402. package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +36 -8
  403. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +6 -2
  404. package/Microsoft.ReactNative/Views/ViewManager.h +0 -1
  405. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +9 -1
  406. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +41 -0
  407. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +16 -0
  408. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +125 -0
  409. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +167 -1
  410. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
  411. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +110 -38
  412. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +5 -5
  413. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +0 -2
  414. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +0 -19
  415. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +45 -34
  416. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +1 -1
  417. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +1 -0
  418. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +36 -33
  419. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +10 -10
  420. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +14 -8
  421. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +44 -31
  422. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +13 -14
  423. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +19 -4
  424. package/Microsoft.ReactNative.Cxx/node-api/node_api.h +270 -0
  425. package/Microsoft.ReactNative.Cxx/node-api/node_api_types.h +52 -0
  426. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +13 -4
  427. package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +10 -0
  428. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  429. package/PropertySheets/JSEngine.props +1 -1
  430. package/PropertySheets/React.Cpp.props +6 -4
  431. package/README.md +1 -1
  432. package/ReactCommon/ReactCommon.vcxproj +29 -21
  433. package/ReactCommon/ReactCommon.vcxproj.filters +36 -13
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +5 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +6 -2
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +111 -7
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +57 -4
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +17 -1
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +175 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +1 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +69 -56
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +35 -18
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +445 -0
  444. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +92 -0
  445. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +35 -0
  446. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +37 -1
  447. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +250 -80
  448. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +528 -0
  449. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +1 -2
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +9 -12
  451. package/ReactCommon/cgmanifest.json +1 -1
  452. package/Scripts/Analyze-Crash.ps1 +87 -3
  453. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  454. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -0
  455. package/Scripts/Tfs/Start-TestServers.ps1 +2 -1
  456. package/Scripts/creaternwapp.cmd +10 -6
  457. package/Scripts/rnw-dependencies.ps1 +33 -4
  458. package/Shared/CreateModules.h +0 -35
  459. package/Shared/DevServerHelper.h +13 -3
  460. package/Shared/DevSettings.h +6 -5
  461. package/Shared/DevSupportManager.cpp +79 -20
  462. package/Shared/DevSupportManager.h +7 -19
  463. package/Shared/Hermes/HermesRuntimeAgentDelegate.cpp +99 -0
  464. package/Shared/Hermes/HermesRuntimeAgentDelegate.h +81 -0
  465. package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +274 -0
  466. package/Shared/Hermes/HermesRuntimeTargetDelegate.h +77 -0
  467. package/Shared/HermesRuntimeHolder.cpp +29 -111
  468. package/Shared/HermesRuntimeHolder.h +214 -32
  469. package/Shared/IDevSupportManager.h +5 -2
  470. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.cpp +108 -0
  471. package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.h +19 -0
  472. package/Shared/Inspector/ReactInspectorThread.h +18 -0
  473. package/Shared/JSI/RuntimeHolder.h +5 -2
  474. package/Shared/Modules/BlobModule.cpp +0 -90
  475. package/Shared/Modules/BlobModule.h +0 -40
  476. package/Shared/Modules/FileReaderModule.cpp +0 -104
  477. package/Shared/Modules/FileReaderModule.h +0 -38
  478. package/Shared/Modules/HttpModule.cpp +0 -172
  479. package/Shared/Modules/HttpModule.h +0 -47
  480. package/Shared/Modules/WebSocketModule.cpp +0 -287
  481. package/Shared/Modules/WebSocketModule.h +1 -94
  482. package/Shared/OInstance.cpp +45 -139
  483. package/Shared/OInstance.h +0 -1
  484. package/Shared/Shared.vcxitems +33 -32
  485. package/Shared/Shared.vcxitems.filters +38 -51
  486. package/Shared/TurboModuleManager.cpp +0 -1
  487. package/codegen/NativeDOMSpec.g.h +6 -0
  488. package/codegen/NativeDeviceInfoSpec.g.h +2 -0
  489. package/codegen/NativeIntersectionObserverSpec.g.h +19 -5
  490. package/codegen/NativeMutationObserverSpec.g.h +4 -4
  491. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +159 -93
  492. package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
  493. package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
  494. package/codegen/react/components/rnwcore/ModalHostView.g.h +4 -0
  495. package/codegen/react/components/rnwcore/Props.cpp +535 -24
  496. package/codegen/react/components/rnwcore/Props.h +138 -0
  497. package/codegen/react/components/rnwcore/States.h +9 -78
  498. package/codegen/react/components/rnwcore/VirtualView.g.h +226 -0
  499. package/codegen/rnwcoreJSI-generated.cpp +101 -31
  500. package/codegen/rnwcoreJSI.h +169 -88
  501. package/include/Shared/II18nModule.h +0 -1
  502. package/index.js +22 -2
  503. package/index.windows.js +131 -221
  504. package/interface.js +1 -1
  505. package/jest/MockNativeMethods.js +9 -3
  506. package/jest/RefreshControlMock.js +32 -0
  507. package/jest/assetFileTransformer.js +1 -0
  508. package/jest/local-setup.js +4 -3
  509. package/jest/mock.js +39 -0
  510. package/jest/mockComponent.js +47 -17
  511. package/jest/mockNativeComponent.js +26 -15
  512. package/jest/mocks/AccessibilityInfo.js +62 -0
  513. package/jest/mocks/ActivityIndicator.js +23 -0
  514. package/jest/mocks/AppState.js +19 -0
  515. package/jest/mocks/Clipboard.js +16 -0
  516. package/jest/mocks/Image.js +23 -0
  517. package/jest/mocks/InitializeCore.js +9 -0
  518. package/jest/mocks/Linking.js +28 -0
  519. package/jest/mocks/Modal.js +33 -0
  520. package/jest/mocks/NativeComponentRegistry.js +30 -0
  521. package/jest/mocks/NativeModules.js +239 -0
  522. package/jest/mocks/RefreshControl.js +31 -0
  523. package/jest/mocks/RendererProxy.js +45 -0
  524. package/jest/mocks/ScrollView.js +58 -0
  525. package/jest/mocks/Text.js +27 -0
  526. package/jest/mocks/TextInput.js +32 -0
  527. package/jest/mocks/UIManager.js +60 -0
  528. package/jest/mocks/Vibration.js +16 -0
  529. package/jest/mocks/View.js +27 -0
  530. package/jest/mocks/ViewNativeComponent.js +23 -0
  531. package/jest/mocks/requireNativeComponent.js +22 -0
  532. package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
  533. package/jest/react-native-env.js +1 -0
  534. package/jest/renderer.js +1 -2
  535. package/jest/resolver.js +1 -0
  536. package/jest/setup.js +64 -449
  537. package/package.json +24 -24
  538. package/src/private/animated/NativeAnimatedHelper.js +8 -1
  539. package/src/private/animated/createAnimatedPropsHook.js +14 -4
  540. package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
  541. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  542. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  543. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  544. package/src/private/components/virtualview/VirtualView.js +145 -0
  545. package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
  546. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
  547. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
  548. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
  549. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  550. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
  551. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
  552. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
  553. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
  554. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
  555. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  556. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
  557. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
  558. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  559. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
  560. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  561. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  562. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  563. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.windows.js +8 -9
  564. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  565. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  566. package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
  567. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
  568. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
  569. package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
  570. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  571. package/src/private/setup/setUpPerformanceObserver.js +7 -0
  572. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
  573. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
  574. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
  575. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
  576. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
  577. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
  578. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
  579. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
  580. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
  581. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
  582. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
  583. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
  584. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
  585. package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
  586. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  587. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  588. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
  589. package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
  590. package/src/private/styles/composeStyles.js +5 -12
  591. package/src/private/types/HostInstance.js +1 -1
  592. package/src/private/webapis/dom/events/Event.js +3 -0
  593. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  594. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
  595. package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
  596. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
  597. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  598. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
  599. package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
  600. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
  601. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  602. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  603. package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
  604. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  605. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
  606. package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
  607. package/src/private/webapis/errors/DOMException.js +166 -0
  608. package/src/private/webapis/geometry/DOMRect.js +5 -0
  609. package/src/private/webapis/geometry/DOMRectList.js +4 -1
  610. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  611. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
  612. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
  613. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  614. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
  615. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
  616. package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
  617. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  618. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
  619. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
  620. package/src/private/webapis/performance/EventTiming.js +1 -1
  621. package/src/private/webapis/performance/LongTasks.js +1 -1
  622. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  623. package/src/private/webapis/performance/Performance.js +20 -9
  624. package/src/private/webapis/performance/PerformanceEntry.js +5 -1
  625. package/src/private/webapis/performance/PerformanceObserver.js +32 -28
  626. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  627. package/src/private/webapis/performance/ResourceTiming.js +108 -0
  628. package/src/private/webapis/performance/UserTiming.js +1 -1
  629. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
  630. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  631. package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
  632. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  633. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  634. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  635. package/templates/cpp-lib/example/metro.config.js +1 -1
  636. package/templates/cpp-lib/template.config.js +24 -0
  637. package/templates/cpp-lib/windows/MyLib/MyLib.h +20 -1
  638. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +0 -1
  639. package/types/modules/Devtools.d.ts +23 -9
  640. package/Libraries/BugReporting/BugReporting.js +0 -140
  641. package/Libraries/BugReporting/NativeBugReporting.js +0 -13
  642. package/Libraries/BugReporting/dumpReactTree.js +0 -151
  643. package/Libraries/BugReporting/getReactData.js +0 -187
  644. package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
  645. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +0 -78
  646. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -196
  647. package/ReactCommon/TEMP_UntilReactCommonUpdate/jserrorhandler/JsErrorHandler.cpp +0 -429
  648. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.cpp +0 -45
  649. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.h +0 -91
  650. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/CullingContext.cpp +0 -49
  651. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +0 -191
  652. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +0 -670
  653. package/Shared/InspectorPackagerConnection.cpp +0 -232
  654. package/Shared/InspectorPackagerConnection.h +0 -61
  655. package/Shared/Modules/ExceptionsManagerModule.cpp +0 -209
  656. package/Shared/Modules/ExceptionsManagerModule.h +0 -32
  657. package/Shared/Modules/I18nModule.cpp +0 -36
  658. package/Shared/Modules/I18nModule.h +0 -28
  659. package/Shared/Modules/NetworkingModule.cpp +0 -432
  660. package/Shared/Modules/NetworkingModule.h +0 -34
  661. package/Shared/Modules/PlatformConstantsModule.cpp +0 -60
  662. package/Shared/Modules/PlatformConstantsModule.h +0 -23
  663. package/Shared/Modules/SourceCodeModule.cpp +0 -35
  664. package/Shared/Modules/SourceCodeModule.h +0 -27
  665. package/Shared/Modules/StatusBarManagerModule.cpp +0 -25
  666. package/Shared/Modules/StatusBarManagerModule.h +0 -19
  667. package/codegen/NativeBugReportingSpec.g.h +0 -41
  668. package/jest/mockModal.js +0 -32
  669. package/jest/mockScrollView.js +0 -35
  670. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
  671. /package/Shared/{HermesSamplingProfiler.cpp → Hermes/HermesSamplingProfiler.cpp} +0 -0
  672. /package/Shared/{HermesSamplingProfiler.h → Hermes/HermesSamplingProfiler.h} +0 -0
@@ -14,7 +14,9 @@
14
14
  #include <jsinspector-modern/InspectorInterfaces.h>
15
15
  #include <jsinspector-modern/tracing/InstanceTracingProfile.h>
16
16
  #include <react/featureflags/ReactNativeFeatureFlags.h>
17
+ #include <cstdio>
17
18
  #include <mutex>
19
+ #include "Hermes/HermesRuntimeTargetDelegate.h"
18
20
  #include "SafeLoadLibrary.h"
19
21
 
20
22
  #define CRASH_ON_ERROR(result) VerifyElseCrash(result == napi_ok);
@@ -27,6 +29,12 @@ using namespace Microsoft::NodeApiJsi;
27
29
 
28
30
  namespace Microsoft::ReactNative {
29
31
 
32
+ /*static*/ const hermes_inspector_vtable *HermesInspectorApi::vtable = nullptr;
33
+
34
+ void setHermesInspectorVTable(const hermes_inspector_vtable *vtable) {
35
+ HermesInspectorApi::vtable = vtable;
36
+ }
37
+
30
38
  React::ReactPropertyId<React::ReactNonAbiValue<std::shared_ptr<HermesRuntimeHolder>>>
31
39
  HermesRuntimeHolderProperty() noexcept {
32
40
  static React::ReactPropertyId<React::ReactNonAbiValue<std::shared_ptr<HermesRuntimeHolder>>> propId{
@@ -36,9 +44,6 @@ HermesRuntimeHolderProperty() noexcept {
36
44
 
37
45
  namespace {
38
46
 
39
- int32_t NAPI_CDECL addInspectorPage(const char *title, const char *vm, void *connectFunc) noexcept;
40
- void NAPI_CDECL removeInspectorPage(int32_t pageId) noexcept;
41
-
42
47
  class HermesFuncResolver : public IFuncResolver {
43
48
  public:
44
49
  HermesFuncResolver() : libHandle_(LoadLibraryAsPeerFirst(L"hermes.dll")) {}
@@ -55,7 +60,9 @@ HermesApi &initHermesApi() noexcept {
55
60
  static HermesFuncResolver funcResolver;
56
61
  static HermesApi s_hermesApi(&funcResolver);
57
62
  HermesApi::setCurrent(&s_hermesApi);
58
- CRASH_ON_ERROR(s_hermesApi.hermes_set_inspector(&addInspectorPage, &removeInspectorPage));
63
+ const hermes_inspector_vtable *inspectorVTable{};
64
+ s_hermesApi.hermes_get_inspector_vtable(&inspectorVTable);
65
+ setHermesInspectorVTable(inspectorVTable);
59
66
  return s_hermesApi;
60
67
  }
61
68
 
@@ -233,65 +240,6 @@ class HermesScriptCache {
233
240
  std::shared_ptr<facebook::jsi::PreparedScriptStore> scriptStore_;
234
241
  };
235
242
 
236
- class HermesLocalConnection : public facebook::react::jsinspector_modern::ILocalConnection {
237
- public:
238
- HermesLocalConnection(
239
- std::unique_ptr<facebook::react::jsinspector_modern::IRemoteConnection> remoteConnection,
240
- void *connectFunc) noexcept {
241
- CRASH_ON_ERROR(getHermesApi().hermes_create_local_connection(
242
- connectFunc,
243
- reinterpret_cast<hermes_remote_connection>(remoteConnection.release()),
244
- &OnRemoteConnectionSendMessage,
245
- &OnRemoteConnectionDisconnect,
246
- &OnRemoteConnectionDelete,
247
- nullptr,
248
- &localConnection_));
249
- }
250
-
251
- ~HermesLocalConnection() override {
252
- CRASH_ON_ERROR(getHermesApi().hermes_delete_local_connection(localConnection_));
253
- }
254
-
255
- void sendMessage(std::string message) {
256
- CRASH_ON_ERROR(getHermesApi().hermes_local_connection_send_message(localConnection_, message.c_str()));
257
- }
258
-
259
- void disconnect() {
260
- CRASH_ON_ERROR(getHermesApi().hermes_local_connection_disconnect(localConnection_));
261
- }
262
-
263
- private:
264
- static void NAPI_CDECL OnRemoteConnectionSendMessage(hermes_remote_connection remoteConnection, const char *message) {
265
- reinterpret_cast<facebook::react::jsinspector_modern::IRemoteConnection *>(remoteConnection)->onMessage(message);
266
- }
267
-
268
- static void NAPI_CDECL OnRemoteConnectionDisconnect(hermes_remote_connection remoteConnection) {
269
- reinterpret_cast<facebook::react::jsinspector_modern::IRemoteConnection *>(remoteConnection)->onDisconnect();
270
- }
271
-
272
- static void NAPI_CDECL OnRemoteConnectionDelete(void *remoteConnection, void * /*deleterData*/) {
273
- delete reinterpret_cast<facebook::react::jsinspector_modern::IRemoteConnection *>(remoteConnection);
274
- }
275
-
276
- private:
277
- hermes_local_connection localConnection_{};
278
- };
279
-
280
- int32_t NAPI_CDECL addInspectorPage(const char *title, const char *vm, void *connectFunc) noexcept {
281
- return facebook::react::jsinspector_modern::getInspectorInstance().addPage(
282
- title,
283
- vm,
284
- [connectFunc, hermesApi = HermesApi::current()](
285
- std::unique_ptr<facebook::react::jsinspector_modern::IRemoteConnection> remoteConnection) {
286
- HermesApi::Scope apiScope(hermesApi);
287
- return std::make_unique<HermesLocalConnection>(std::move(remoteConnection), connectFunc);
288
- });
289
- }
290
-
291
- void NAPI_CDECL removeInspectorPage(int32_t pageId) noexcept {
292
- facebook::react::jsinspector_modern::getInspectorInstance().removePage(pageId);
293
- }
294
-
295
243
  } // namespace
296
244
 
297
245
  //==============================================================================
@@ -307,9 +255,9 @@ HermesRuntimeHolder::HermesRuntimeHolder(
307
255
  m_preparedScriptStore(std::move(preparedScriptStore)) {}
308
256
 
309
257
  HermesRuntimeHolder::~HermesRuntimeHolder() {
310
- if (m_runtime) {
311
- CRASH_ON_ERROR(getHermesApi().jsr_delete_runtime(m_runtime));
312
- }
258
+ // if (m_runtime) {
259
+ // CRASH_ON_ERROR(getHermesApi().jsr_delete_runtime(m_runtime));
260
+ // }
313
261
  }
314
262
 
315
263
  void HermesRuntimeHolder::initRuntime() noexcept {
@@ -323,9 +271,6 @@ void HermesRuntimeHolder::initRuntime() noexcept {
323
271
  CRASH_ON_ERROR(api.jsr_create_config(&config));
324
272
  CRASH_ON_ERROR(api.hermes_config_enable_default_crash_handler(config, devSettings->enableDefaultCrashHandler));
325
273
  CRASH_ON_ERROR(api.jsr_config_enable_inspector(config, devSettings->useDirectDebugger));
326
- CRASH_ON_ERROR(api.jsr_config_set_inspector_runtime_name(config, devSettings->debuggerRuntimeName.c_str()));
327
- CRASH_ON_ERROR(api.jsr_config_set_inspector_port(config, devSettings->debuggerPort));
328
- CRASH_ON_ERROR(api.jsr_config_set_inspector_break_on_start(config, devSettings->debuggerBreakOnNextLine));
329
274
  CRASH_ON_ERROR(api.jsr_config_set_explicit_microtasks(
330
275
  config, facebook::react::ReactNativeFeatureFlags::enableBridgelessArchitecture()));
331
276
 
@@ -338,6 +283,7 @@ void HermesRuntimeHolder::initRuntime() noexcept {
338
283
  jsr_runtime runtime{};
339
284
  CRASH_ON_ERROR(api.jsr_create_runtime(config, &runtime));
340
285
  CRASH_ON_ERROR(api.jsr_delete_config(config));
286
+ m_runtime = runtime;
341
287
 
342
288
  napi_env env{};
343
289
  CRASH_ON_ERROR(api.jsr_runtime_get_node_api_env(runtime, &env));
@@ -364,12 +310,13 @@ std::shared_ptr<facebook::jsi::Runtime> HermesRuntimeHolder::getRuntime() noexce
364
310
  return m_jsiRuntime;
365
311
  }
366
312
 
367
- void HermesRuntimeHolder::crashHandler(int fileDescriptor) noexcept {
368
- CRASH_ON_ERROR(getHermesApi().hermes_dump_crash_data(m_runtime, fileDescriptor));
313
+ std::shared_ptr<facebook::react::jsinspector_modern::RuntimeTargetDelegate>
314
+ HermesRuntimeHolder::createRuntimeTargetDelegate() {
315
+ return std::make_shared<Microsoft::ReactNative::HermesRuntimeTargetDelegate>(shared_from_this());
369
316
  }
370
317
 
371
- void HermesRuntimeHolder::teardown() noexcept {
372
- // TODO: (@vmoroz) Implement
318
+ void HermesRuntimeHolder::crashHandler(int fileDescriptor) noexcept {
319
+ CRASH_ON_ERROR(getHermesApi().hermes_dump_crash_data(m_runtime, fileDescriptor));
373
320
  }
374
321
 
375
322
  std::shared_ptr<HermesRuntimeHolder> HermesRuntimeHolder::loadFrom(
@@ -403,6 +350,10 @@ void HermesRuntimeHolder::removeFromProfiling() const noexcept {
403
350
  CRASH_ON_ERROR(getHermesApi().hermes_sampling_profiler_dump_to_file(fileName.c_str()));
404
351
  }
405
352
 
353
+ hermes_runtime HermesRuntimeHolder::getHermesRuntime() noexcept {
354
+ return reinterpret_cast<hermes_runtime>(m_runtime);
355
+ }
356
+
406
357
  //==============================================================================
407
358
  // HermesJSRuntime implementation
408
359
  //==============================================================================
@@ -414,44 +365,11 @@ facebook::jsi::Runtime &HermesJSRuntime::getRuntime() noexcept {
414
365
  return *m_holder->getRuntime();
415
366
  }
416
367
 
417
- void HermesJSRuntime::addConsoleMessage(
418
- facebook::jsi::Runtime &runtime,
419
- facebook::react::jsinspector_modern::ConsoleMessage message) {
420
- return;
421
- }
422
-
423
- bool HermesJSRuntime::supportsConsole() const {
424
- return false;
425
- }
426
-
427
- std::unique_ptr<facebook::react::jsinspector_modern::StackTrace> HermesJSRuntime::captureStackTrace(
428
- facebook::jsi::Runtime &runtime,
429
- size_t framesToSkip) {
430
- return std::make_unique<facebook::react::jsinspector_modern::StackTrace>();
431
- }
432
-
433
- void HermesJSRuntime::enableSamplingProfiler() {
434
- return; // [Windows TODO: stubbed implementation #14700]
435
- }
436
-
437
- void HermesJSRuntime::disableSamplingProfiler() {
438
- return; // [Windows TODO: stubbed implementation #14700]
439
- }
440
-
441
- facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile HermesJSRuntime::collectSamplingProfile() {
442
- return facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile(
443
- "stubbed_impl", {}); // [Windows TODO: stubbed implementation #14700]
444
- }
445
-
446
- std::unique_ptr<facebook::react::jsinspector_modern::RuntimeAgentDelegate> HermesJSRuntime::createAgentDelegate(
447
- facebook::react::jsinspector_modern::FrontendChannel frontendChannel,
448
- facebook::react::jsinspector_modern::SessionState &sessionState,
449
- std::unique_ptr<facebook::react::jsinspector_modern::RuntimeAgentDelegate::ExportedState> previouslyExportedState,
450
- const facebook::react::jsinspector_modern::ExecutionContextDescription &executionContextDescription,
451
- facebook::react::RuntimeExecutor runtimeExecutor) {
452
- (void)frontendChannel;
453
- (void)sessionState;
454
- return nullptr;
368
+ facebook::react::jsinspector_modern::RuntimeTargetDelegate &HermesJSRuntime::getRuntimeTargetDelegate() {
369
+ if (!m_runtimeTargetDelegate) {
370
+ m_runtimeTargetDelegate = m_holder->createRuntimeTargetDelegate();
371
+ }
372
+ return *m_runtimeTargetDelegate;
455
373
  }
456
374
 
457
375
  } // namespace Microsoft::ReactNative
@@ -8,16 +8,219 @@
8
8
  #include <ReactPropertyBag.h>
9
9
  #include <cxxreact/MessageQueueThread.h>
10
10
  #include <hermes/hermes_api.h>
11
- #include <jsitooling/react/runtime/JSRuntimeFactory.h>
11
+ #include <react/runtime/JSRuntimeFactory.h>
12
12
 
13
13
  namespace Microsoft::ReactNative {
14
14
 
15
- class HermesRuntimeHolder : public Microsoft::JSI::RuntimeHolderLazyInit {
15
+ template <typename TLambda, typename TFunctor>
16
+ class FunctorAdapter {
17
+ static_assert(sizeof(TLambda) == -1, "Unsupported signature");
18
+ };
19
+
20
+ template <typename TLambda, typename TResult, typename... TArgs>
21
+ class FunctorAdapter<TLambda, TResult(NAPI_CDECL)(void *, TArgs...)> {
22
+ public:
23
+ static TResult NAPI_CDECL Invoke(void *data, TArgs... args) {
24
+ return reinterpret_cast<TLambda *>(data)->operator()(args...);
25
+ }
26
+ };
27
+
28
+ template <typename TFunctor, typename TLambda>
29
+ inline TFunctor AsFunctor(TLambda &&lambda) {
30
+ using TLambdaType = std::remove_reference_t<TLambda>;
31
+ using TAdapter =
32
+ FunctorAdapter<TLambdaType, std::remove_pointer_t<decltype(std::remove_reference_t<TFunctor>::invoke)>>;
33
+ return TFunctor{
34
+ static_cast<void *>(new TLambdaType(std::forward<TLambdaType>(lambda))), &TAdapter::Invoke, [](void *data) {
35
+ delete static_cast<TLambdaType *>(data);
36
+ }};
37
+ }
38
+
39
+ template <typename TFunctor, typename TInvoke>
40
+ class FunctorWrapperBase {
41
+ static_assert(sizeof(TInvoke) == -1, "Unsupported signature");
42
+ };
43
+
44
+ template <typename TFunctor, typename TResult, typename... TArgs>
45
+ class FunctorWrapperBase<TFunctor, TResult(NAPI_CDECL *)(void *, TArgs...)> {
46
+ public:
47
+ FunctorWrapperBase(TFunctor functor) : functor_(functor) {}
48
+
49
+ ~FunctorWrapperBase() {
50
+ if (functor_.release != nullptr) {
51
+ functor_.release(functor_.data);
52
+ }
53
+ }
54
+
55
+ TResult operator()(TArgs... args) {
56
+ return functor_.invoke(functor_.data, args...);
57
+ }
58
+
59
+ private:
60
+ TFunctor functor_;
61
+ };
62
+
63
+ template <typename TFunctor>
64
+ class FunctorWrapper : public FunctorWrapperBase<TFunctor, decltype(std::declval<TFunctor>().invoke)> {
65
+ public:
66
+ using FunctorWrapperBase<TFunctor, decltype(std::declval<TFunctor>().invoke)>::FunctorWrapperBase;
67
+ };
68
+
69
+ class HermesCdpDebugApiDeleter {
70
+ public:
71
+ void operator()(hermes_cdp_debug_api cdp_debug_api);
72
+ };
73
+
74
+ class HermesCdpAgentDeleter {
75
+ public:
76
+ void operator()(hermes_cdp_agent cdp_agent);
77
+ };
78
+
79
+ class HermesCdpStateDeleter {
80
+ public:
81
+ void operator()(hermes_cdp_state cdp_state);
82
+ };
83
+
84
+ class HermesStackTraceDeleter {
85
+ public:
86
+ void operator()(hermes_stack_trace stack_trace);
87
+ };
88
+
89
+ class HermesSamplingProfileDeleter {
90
+ public:
91
+ void operator()(hermes_sampling_profile sampling_profile);
92
+ };
93
+
94
+ using HermesUniqueCdpDebugApi = std::unique_ptr<hermes_cdp_debug_api_s, HermesCdpDebugApiDeleter>;
95
+ using HermesUniqueCdpAgent = std::unique_ptr<hermes_cdp_agent_s, HermesCdpAgentDeleter>;
96
+ using HermesUniqueCdpState = std::unique_ptr<hermes_cdp_state_s, HermesCdpStateDeleter>;
97
+ using HermesUniqueStackTrace = std::unique_ptr<hermes_stack_trace_s, HermesStackTraceDeleter>;
98
+ using HermesUniqueSamplingProfile = std::unique_ptr<hermes_sampling_profile_s, HermesSamplingProfileDeleter>;
99
+
100
+ class HermesInspectorApi {
101
+ public:
102
+ HermesInspectorApi() = delete;
103
+
104
+ static void checkStatus(hermes_status status) {
105
+ if (status != hermes_status_ok) {
106
+ throw std::runtime_error("Hermes API call failed");
107
+ }
108
+ }
109
+
110
+ static HermesUniqueCdpDebugApi createCdpDebugApi(hermes_runtime runtime) {
111
+ hermes_cdp_debug_api cdp_debug_api{};
112
+ checkStatus(vtable->create_cdp_debug_api(runtime, &cdp_debug_api));
113
+ return HermesUniqueCdpDebugApi{cdp_debug_api};
114
+ }
115
+
116
+ static void addConsoleMessage(
117
+ hermes_cdp_debug_api cdpDebugApi,
118
+ double timestamp,
119
+ hermes_console_api_type type,
120
+ const char *argsPropertyName,
121
+ hermes_stack_trace stackTrace) {
122
+ checkStatus(vtable->add_console_message(cdpDebugApi, timestamp, type, argsPropertyName, stackTrace));
123
+ }
124
+
125
+ static HermesUniqueCdpAgent createCdpAgent(
126
+ hermes_cdp_debug_api cdpDebugApi,
127
+ int32_t execitionContextId,
128
+ hermes_enqueue_runtime_task_functor enqueueRuntimeTaskCallback,
129
+ hermes_enqueue_frontend_message_functor enqueueFrontendMessageCallback,
130
+ hermes_cdp_state cdp_state) {
131
+ hermes_cdp_agent cdp_agent{};
132
+ checkStatus(vtable->create_cdp_agent(
133
+ cdpDebugApi,
134
+ execitionContextId,
135
+ enqueueRuntimeTaskCallback,
136
+ enqueueFrontendMessageCallback,
137
+ cdp_state,
138
+ &cdp_agent));
139
+ return HermesUniqueCdpAgent{cdp_agent};
140
+ }
141
+
142
+ static HermesUniqueCdpState getCdpState(hermes_cdp_agent cdp_agent) {
143
+ hermes_cdp_state cdp_state{};
144
+ checkStatus(vtable->cdp_agent_get_state(cdp_agent, &cdp_state));
145
+ return HermesUniqueCdpState{cdp_state};
146
+ }
147
+
148
+ static void handleCommand(hermes_cdp_agent cdpAgent, const char *jsonUtf8, size_t jsonSize) {
149
+ checkStatus(vtable->cdp_agent_handle_command(cdpAgent, jsonUtf8, jsonSize));
150
+ }
151
+
152
+ static void enableRuntimeDomain(hermes_cdp_agent cdpAgent) {
153
+ checkStatus(vtable->cdp_agent_enable_runtime_domain(cdpAgent));
154
+ }
155
+
156
+ static void enableDebuggerDomain(hermes_cdp_agent cdpAgent) {
157
+ checkStatus(vtable->cdp_agent_enable_debugger_domain(cdpAgent));
158
+ }
159
+
160
+ static HermesUniqueStackTrace captureStackTrace(hermes_runtime runtime) {
161
+ hermes_stack_trace stack_trace{};
162
+ checkStatus(vtable->capture_stack_trace(runtime, &stack_trace));
163
+ return HermesUniqueStackTrace{stack_trace};
164
+ }
165
+
166
+ static void enableSamplingProfiler(hermes_runtime runtime) {
167
+ checkStatus(vtable->enable_sampling_profiler(runtime));
168
+ }
169
+
170
+ static void disableSamplingProfiler(hermes_runtime runtime) {
171
+ checkStatus(vtable->disable_sampling_profiler(runtime));
172
+ }
173
+
174
+ static HermesUniqueSamplingProfile collectSamplingProfile(
175
+ hermes_runtime runtime,
176
+ void *cb_data,
177
+ hermes_on_sampling_profile_info_callback on_info_callback,
178
+ hermes_on_sampling_profile_sample_callback on_sample_callback,
179
+ hermes_on_sampling_profile_frame_callback on_frame_callback) {
180
+ hermes_sampling_profile profile{};
181
+ checkStatus(vtable->collect_sampling_profile(
182
+ runtime, cb_data, on_info_callback, on_sample_callback, on_frame_callback, &profile));
183
+ return HermesUniqueSamplingProfile{profile};
184
+ }
185
+
186
+ private:
187
+ friend HermesCdpDebugApiDeleter;
188
+ friend HermesCdpAgentDeleter;
189
+ friend HermesCdpStateDeleter;
190
+ friend HermesStackTraceDeleter;
191
+ friend HermesSamplingProfileDeleter;
192
+
193
+ friend void setHermesInspectorVTable(const hermes_inspector_vtable *vtable);
194
+
195
+ static const hermes_inspector_vtable *vtable;
196
+ };
197
+
198
+ inline void HermesCdpDebugApiDeleter::operator()(hermes_cdp_debug_api cdp_debug_api) {
199
+ HermesInspectorApi::vtable->release_cdp_debug_api(cdp_debug_api);
200
+ }
201
+
202
+ inline void HermesCdpAgentDeleter::operator()(hermes_cdp_agent cdp_agent) {
203
+ HermesInspectorApi::vtable->release_cdp_agent(cdp_agent);
204
+ }
205
+
206
+ inline void HermesCdpStateDeleter::operator()(hermes_cdp_state cdp_state) {
207
+ HermesInspectorApi::vtable->release_cdp_state(cdp_state);
208
+ }
209
+
210
+ inline void HermesStackTraceDeleter::operator()(hermes_stack_trace stack_trace) {
211
+ HermesInspectorApi::vtable->release_stack_trace(stack_trace);
212
+ }
213
+
214
+ inline void HermesSamplingProfileDeleter::operator()(hermes_sampling_profile sampling_profile) {
215
+ HermesInspectorApi::vtable->release_sampling_profile(sampling_profile);
216
+ }
217
+
218
+ class HermesRuntimeHolder : public Microsoft::JSI::RuntimeHolderLazyInit,
219
+ public std::enable_shared_from_this<HermesRuntimeHolder> {
16
220
  public: // RuntimeHolderLazyInit implementation.
17
221
  std::shared_ptr<facebook::jsi::Runtime> getRuntime() noexcept override;
18
222
  facebook::react::JSIEngineOverride getRuntimeType() noexcept override;
19
223
  void crashHandler(int fileDescriptor) noexcept override;
20
- void teardown() noexcept override;
21
224
 
22
225
  public:
23
226
  HermesRuntimeHolder(
@@ -26,6 +229,8 @@ class HermesRuntimeHolder : public Microsoft::JSI::RuntimeHolderLazyInit {
26
229
  std::shared_ptr<facebook::jsi::PreparedScriptStore> preparedScriptStore) noexcept;
27
230
  ~HermesRuntimeHolder();
28
231
 
232
+ std::shared_ptr<facebook::react::jsinspector_modern::RuntimeTargetDelegate> createRuntimeTargetDelegate() override;
233
+
29
234
  static std::shared_ptr<HermesRuntimeHolder> loadFrom(
30
235
  winrt::Microsoft::ReactNative::ReactPropertyBag const &propertyBag) noexcept;
31
236
 
@@ -40,6 +245,8 @@ class HermesRuntimeHolder : public Microsoft::JSI::RuntimeHolderLazyInit {
40
245
  static void disableSamplingProfiler() noexcept;
41
246
  static void dumpSampledTraceToFile(const std::string &fileName) noexcept;
42
247
 
248
+ hermes_runtime getHermesRuntime() noexcept;
249
+
43
250
  private:
44
251
  void initRuntime() noexcept;
45
252
 
@@ -53,42 +260,17 @@ class HermesRuntimeHolder : public Microsoft::JSI::RuntimeHolderLazyInit {
53
260
  std::shared_ptr<facebook::jsi::PreparedScriptStore> m_preparedScriptStore;
54
261
  };
55
262
 
56
- class HermesJSRuntime : public facebook::react::JSRuntime {
263
+ class HermesJSRuntime final : public facebook::react::JSRuntime {
57
264
  public:
58
265
  HermesJSRuntime(std::shared_ptr<Microsoft::JSI::RuntimeHolderLazyInit> hermesRuntimeHolder);
59
266
 
60
267
  facebook::jsi::Runtime &getRuntime() noexcept override;
61
- void addConsoleMessage(facebook::jsi::Runtime &runtime, facebook::react::jsinspector_modern::ConsoleMessage message)
62
- override;
63
- bool supportsConsole() const override;
64
- std::unique_ptr<facebook::react::jsinspector_modern::StackTrace> captureStackTrace(
65
- facebook::jsi::Runtime &runtime,
66
- size_t framesToSkip = 0) override;
67
-
68
- /**
69
- * Start sampling profiler.
70
- */
71
- void enableSamplingProfiler() override;
72
-
73
- /**
74
- * Stop sampling profiler.
75
- */
76
- void disableSamplingProfiler() override;
77
-
78
- /**
79
- * Return recorded sampling profile for the previous sampling session.
80
- */
81
- facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile collectSamplingProfile() override;
82
-
83
- std::unique_ptr<facebook::react::jsinspector_modern::RuntimeAgentDelegate> createAgentDelegate(
84
- facebook::react::jsinspector_modern::FrontendChannel frontendChannel,
85
- facebook::react::jsinspector_modern::SessionState &sessionState,
86
- std::unique_ptr<facebook::react::jsinspector_modern::RuntimeAgentDelegate::ExportedState> previouslyExportedState,
87
- const facebook::react::jsinspector_modern::ExecutionContextDescription &executionContextDescription,
88
- facebook::react::RuntimeExecutor runtimeExecutor) override;
268
+
269
+ facebook::react::jsinspector_modern::RuntimeTargetDelegate &getRuntimeTargetDelegate() override;
89
270
 
90
271
  private:
91
272
  std::shared_ptr<Microsoft::JSI::RuntimeHolderLazyInit> m_holder;
273
+ std::shared_ptr<facebook::react::jsinspector_modern::RuntimeTargetDelegate> m_runtimeTargetDelegate;
92
274
  };
93
275
 
94
276
  } // namespace Microsoft::ReactNative
@@ -23,9 +23,12 @@ struct IDevSupportManager {
23
23
  const uint16_t sourceBundlePort,
24
24
  std::function<void()> onChangeCallback) = 0;
25
25
  virtual void StopPollingLiveReload() = 0;
26
+ virtual void OpenDevTools(const std::string &bundleAppId) = 0;
26
27
 
27
- virtual void EnsureHermesInspector(const std::string &packagerHost, const uint16_t packagerPort) noexcept = 0;
28
- virtual void UpdateBundleStatus(bool isLastDownloadSuccess, int64_t updateTimestamp) noexcept = 0;
28
+ virtual void EnsureInspectorPackagerConnection(
29
+ const std::string &packagerHost,
30
+ const uint16_t packagerPort,
31
+ const std::string &bundleAppId) noexcept = 0;
29
32
  };
30
33
 
31
34
  std::shared_ptr<IDevSupportManager> CreateDevSupportManager();
@@ -0,0 +1,108 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #include "ReactInspectorPackagerConnectionDelegate.h"
5
+
6
+ #include <Networking/WinRTWebSocketResource.h>
7
+ #include <dispatchQueue/dispatchQueue.h>
8
+ #include <winrt/Microsoft.ReactNative.h>
9
+ #include "ReactInspectorThread.h"
10
+
11
+ namespace Microsoft::ReactNative {
12
+
13
+ namespace {
14
+
15
+ class ReactInspectorWebSocket : public facebook::react::jsinspector_modern::IWebSocket {
16
+ public:
17
+ ReactInspectorWebSocket(
18
+ std::string const &url,
19
+ std::weak_ptr<facebook::react::jsinspector_modern::IWebSocketDelegate> delegate);
20
+ void send(std::string_view message) override;
21
+ ~ReactInspectorWebSocket() override;
22
+
23
+ private:
24
+ std::shared_ptr<Microsoft::React::Networking::WinRTWebSocketResource> m_packagerWebSocketConnection;
25
+ std::weak_ptr<facebook::react::jsinspector_modern::IWebSocketDelegate> m_weakDelegate;
26
+ std::atomic<bool> m_didConnect{false};
27
+ };
28
+
29
+ ReactInspectorWebSocket::ReactInspectorWebSocket(
30
+ std::string const &url,
31
+ std::weak_ptr<facebook::react::jsinspector_modern::IWebSocketDelegate> delegate)
32
+ : m_weakDelegate{delegate} {
33
+ std::vector<winrt::Windows::Security::Cryptography::Certificates::ChainValidationResult> certExceptions;
34
+
35
+ m_packagerWebSocketConnection =
36
+ std::make_shared<Microsoft::React::Networking::WinRTWebSocketResource>(std::move(certExceptions));
37
+
38
+ m_packagerWebSocketConnection->SetOnConnect([this, delegate]() {
39
+ ReactInspectorThread::Instance().InvokeElsePost([this, delegate]() {
40
+ m_didConnect = true;
41
+ if (const auto strongDelegate = delegate.lock()) {
42
+ strongDelegate->didOpen();
43
+ }
44
+ });
45
+ });
46
+ m_packagerWebSocketConnection->SetOnMessage([delegate](auto &&, const std::string &message, bool isBinary) {
47
+ ReactInspectorThread::Instance().InvokeElsePost([delegate, message]() {
48
+ if (const auto strongDelegate = delegate.lock()) {
49
+ strongDelegate->didReceiveMessage(message);
50
+ }
51
+ });
52
+ });
53
+ m_packagerWebSocketConnection->SetOnError(
54
+ [delegate](const Microsoft::React::Networking::IWebSocketResource::Error &error) {
55
+ ReactInspectorThread::Instance().InvokeElsePost([delegate, error]() {
56
+ if (const auto strongDelegate = delegate.lock()) {
57
+ strongDelegate->didFailWithError(std::nullopt, error.Message);
58
+ }
59
+ });
60
+ });
61
+ m_packagerWebSocketConnection->SetOnClose([this, delegate](auto &&...) {
62
+ ReactInspectorThread::Instance().InvokeElsePost([this, delegate]() {
63
+ // Only call didClose() if we successfully connected first
64
+ // This prevents didClose() from being called during failed connection attempts
65
+ if (m_didConnect) {
66
+ if (const auto strongDelegate = delegate.lock()) {
67
+ strongDelegate->didClose();
68
+ }
69
+ }
70
+ });
71
+ });
72
+
73
+ Microsoft::React::Networking::IWebSocketResource::Protocols protocols;
74
+ Microsoft::React::Networking::IWebSocketResource::Options options;
75
+ m_packagerWebSocketConnection->Connect(std::string{url}, protocols, options);
76
+ }
77
+
78
+ void ReactInspectorWebSocket::send(std::string_view message) {
79
+ m_packagerWebSocketConnection->Send(std::string{message});
80
+ }
81
+
82
+ ReactInspectorWebSocket::~ReactInspectorWebSocket() {
83
+ // Don't close WebSocket during shutdown - the OS will clean it up
84
+ // Attempting to close async during DLL unload causes thread pool failures
85
+ // The connection will be terminated when the process exits anyway
86
+ }
87
+
88
+ } // namespace
89
+
90
+ std::unique_ptr<facebook::react::jsinspector_modern::IWebSocket>
91
+ ReactInspectorPackagerConnectionDelegate::connectWebSocket(
92
+ const std::string &url,
93
+ std::weak_ptr<facebook::react::jsinspector_modern::IWebSocketDelegate> delegate) {
94
+ return std::make_unique<ReactInspectorWebSocket>(url, delegate);
95
+ }
96
+
97
+ winrt::fire_and_forget RunWithDelayAsync(std::function<void(void)> callback, std::chrono::milliseconds delayMs) {
98
+ co_await winrt::resume_after(delayMs);
99
+ ReactInspectorThread::Instance().InvokeElsePost([callback]() { callback(); });
100
+ }
101
+
102
+ void ReactInspectorPackagerConnectionDelegate::scheduleCallback(
103
+ std::function<void(void)> callback,
104
+ std::chrono::milliseconds delayMs) {
105
+ RunWithDelayAsync(callback, delayMs);
106
+ }
107
+
108
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,19 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+ #include <jsinspector-modern/InspectorPackagerConnection.h>
6
+
7
+ namespace Microsoft::ReactNative {
8
+
9
+ class ReactInspectorPackagerConnectionDelegate final
10
+ : public facebook::react::jsinspector_modern::InspectorPackagerConnectionDelegate {
11
+ public: // InspectorPackagerConnectionDelegate implementation
12
+ std::unique_ptr<facebook::react::jsinspector_modern::IWebSocket> connectWebSocket(
13
+ const std::string &url,
14
+ std::weak_ptr<facebook::react::jsinspector_modern::IWebSocketDelegate> delegate) override;
15
+
16
+ void scheduleCallback(std::function<void(void)> callback, std::chrono::milliseconds delayMs) override;
17
+ };
18
+
19
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,18 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+
6
+ #include <dispatchQueue/dispatchQueue.h>
7
+
8
+ namespace Microsoft::ReactNative {
9
+
10
+ class ReactInspectorThread {
11
+ public:
12
+ static Mso::DispatchQueue &Instance() {
13
+ static Mso::DispatchQueue queue = Mso::DispatchQueue::MakeSerialQueue();
14
+ return queue;
15
+ }
16
+ };
17
+
18
+ } // namespace Microsoft::ReactNative
@@ -4,6 +4,7 @@
4
4
  #include <memory>
5
5
 
6
6
  #include <DevSettings.h>
7
+ #include <jsinspector-modern/RuntimeTarget.h>
7
8
 
8
9
  namespace Microsoft::JSI {
9
10
 
@@ -18,11 +19,13 @@ struct RuntimeHolderLazyInit {
18
19
  virtual std::shared_ptr<facebook::jsi::Runtime> getRuntime() noexcept = 0;
19
20
  virtual facebook::react::JSIEngineOverride getRuntimeType() noexcept = 0;
20
21
 
21
- virtual void teardown() noexcept {};
22
-
23
22
  // You can call this when a crash happens to attempt recording additional data
24
23
  // The fileDescriptor supplied is a raw file stream an implementation might write JSON to.
25
24
  virtual void crashHandler(int fileDescriptor) noexcept {};
25
+
26
+ virtual std::shared_ptr<facebook::react::jsinspector_modern::RuntimeTargetDelegate> createRuntimeTargetDelegate() {
27
+ return nullptr;
28
+ }
26
29
  };
27
30
 
28
31
  } // namespace Microsoft::JSI