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
@@ -1,151 +0,0 @@
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
- * @format
8
- * @flow strict
9
- */
10
-
11
- 'use strict';
12
-
13
- /*
14
- const getReactData = require('getReactData').default;
15
-
16
- const INDENTATION_SIZE = 2;
17
- const MAX_DEPTH = 2;
18
- const MAX_STRING_LENGTH = 50;
19
- */
20
-
21
- /**
22
- * Dump all React Native root views and their content. This function tries
23
- * it best to get the content but ultimately relies on implementation details
24
- * of React and will fail in future versions.
25
- */
26
- function dumpReactTree(): string {
27
- try {
28
- return getReactTree();
29
- } catch (e) {
30
- return 'Failed to dump react tree: ' + e;
31
- }
32
- }
33
-
34
- function getReactTree() {
35
- // TODO(sema): Reenable tree dumps using the Fiber tree structure. #15945684
36
- return (
37
- 'React tree dumps have been temporarily disabled while React is ' +
38
- 'upgraded to Fiber.'
39
- );
40
- /*
41
- let output = '';
42
- const rootIds = Object.getOwnPropertyNames(ReactNativeMount._instancesByContainerID);
43
- for (const rootId of rootIds) {
44
- const instance = ReactNativeMount._instancesByContainerID[rootId];
45
- output += `============ Root ID: ${rootId} ============\n`;
46
- output += dumpNode(instance, 0);
47
- output += `============ End root ID: ${rootId} ============\n`;
48
- }
49
- return output;
50
- */
51
- }
52
-
53
- /*
54
- function dumpNode(node: Object, indentation: number) {
55
- const data = getReactData(node);
56
- if (data.nodeType === 'Text') {
57
- return indent(indentation) + data.text + '\n';
58
- } else if (data.nodeType === 'Empty') {
59
- return '';
60
- }
61
- let output = indent(indentation) + `<${data.name}`;
62
- if (data.nodeType === 'Composite') {
63
- for (const propName of Object.getOwnPropertyNames(data.props || {})) {
64
- if (isNormalProp(propName)) {
65
- try {
66
- const value = convertValue(data.props[propName]);
67
- if (value) {
68
- output += ` ${propName}=${value}`;
69
- }
70
- } catch (e) {
71
- const message = `[Failed to get property: ${e}]`;
72
- output += ` ${propName}=${message}`;
73
- }
74
- }
75
- }
76
- }
77
- let childOutput = '';
78
- for (const child of data.children || []) {
79
- childOutput += dumpNode(child, indentation + 1);
80
- }
81
-
82
- if (childOutput) {
83
- output += '>\n' + childOutput + indent(indentation) + `</${data.name}>\n`;
84
- } else {
85
- output += ' />\n';
86
- }
87
-
88
- return output;
89
- }
90
-
91
- function isNormalProp(name: string): boolean {
92
- switch (name) {
93
- case 'children':
94
- case 'key':
95
- case 'ref':
96
- return false;
97
- default:
98
- return true;
99
- }
100
- }
101
-
102
- function convertObject(object: Object, depth: number) {
103
- if (depth >= MAX_DEPTH) {
104
- return '[...omitted]';
105
- }
106
- let output = '{';
107
- let first = true;
108
- for (const key of Object.getOwnPropertyNames(object)) {
109
- if (!first) {
110
- output += ', ';
111
- }
112
- output += `${key}: ${convertValue(object[key], depth + 1)}`;
113
- first = false;
114
- }
115
- return output + '}';
116
- }
117
-
118
- function convertValue(value, depth = 0): ?string {
119
- if (!value) {
120
- return null;
121
- }
122
-
123
- switch (typeof value) {
124
- case 'string':
125
- return JSON.stringify(possiblyEllipsis(value).replace('\n', '\\n'));
126
- case 'boolean':
127
- case 'number':
128
- return JSON.stringify(value);
129
- case 'function':
130
- return '[function]';
131
- case 'object':
132
- return convertObject(value, depth);
133
- default:
134
- return null;
135
- }
136
- }
137
-
138
- function possiblyEllipsis(value: string) {
139
- if (value.length > MAX_STRING_LENGTH) {
140
- return value.slice(0, MAX_STRING_LENGTH) + '...';
141
- } else {
142
- return value;
143
- }
144
- }
145
-
146
- function indent(size: number) {
147
- return ' '.repeat(size * INDENTATION_SIZE);
148
- }
149
- */
150
-
151
- export default dumpReactTree;
@@ -1,187 +0,0 @@
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
- * @format
8
- * @flow
9
- */
10
-
11
- 'use strict';
12
-
13
- /**
14
- * Convert a react internal instance to a sanitized data object.
15
- *
16
- * This is shamelessly stolen from react-devtools:
17
- * https://github.com/facebook/react-devtools/blob/HEAD/backend/getData.js
18
- */
19
- function getData(element: Object): Object {
20
- let children = null;
21
- let props = null;
22
- let state = null;
23
- let context = null;
24
- let updater = null;
25
- let name = null;
26
- let type = null;
27
- let text = null;
28
- let publicInstance = null;
29
- let nodeType = 'Native';
30
- // If the parent is a native node without rendered children, but with
31
- // multiple string children, then the `element` that gets passed in here is
32
- // a plain value -- a string or number.
33
- if (typeof element !== 'object') {
34
- nodeType = 'Text';
35
- text = element + '';
36
- } else if (
37
- element._currentElement === null ||
38
- element._currentElement === false
39
- ) {
40
- nodeType = 'Empty';
41
- } else if (element._renderedComponent) {
42
- nodeType = 'NativeWrapper';
43
- children = [element._renderedComponent];
44
- props = element._instance.props;
45
- state = element._instance.state;
46
- context = element._instance.context;
47
- if (context && Object.keys(context).length === 0) {
48
- context = null;
49
- }
50
- } else if (element._renderedChildren) {
51
- children = childrenList(element._renderedChildren);
52
- } else if (element._currentElement && element._currentElement.props) {
53
- // This is a native node without rendered children -- meaning the children
54
- // prop is just a string or (in the case of the <option>) a list of
55
- // strings & numbers.
56
- children = element._currentElement.props.children;
57
- }
58
-
59
- if (!props && element._currentElement && element._currentElement.props) {
60
- props = element._currentElement.props;
61
- }
62
-
63
- // != used deliberately here to catch undefined and null
64
- if (element._currentElement != null) {
65
- type = element._currentElement.type;
66
- if (typeof type === 'string') {
67
- name = type;
68
- } else if (element.getName) {
69
- nodeType = 'Composite';
70
- name = element.getName();
71
- // 0.14 top-level wrapper
72
- // TODO(jared): The backend should just act as if these don't exist.
73
- if (
74
- element._renderedComponent &&
75
- element._currentElement.props ===
76
- element._renderedComponent._currentElement
77
- ) {
78
- nodeType = 'Wrapper';
79
- }
80
- if (name === null) {
81
- name = 'No display name';
82
- }
83
- } else if (element._stringText) {
84
- nodeType = 'Text';
85
- text = element._stringText;
86
- } else {
87
- name = type.displayName || type.name || 'Unknown';
88
- }
89
- }
90
-
91
- if (element._instance) {
92
- const inst = element._instance;
93
- updater = {
94
- setState: inst.setState && inst.setState.bind(inst),
95
- forceUpdate: inst.forceUpdate && inst.forceUpdate.bind(inst),
96
- setInProps: inst.forceUpdate && setInProps.bind(null, element),
97
- setInState: inst.forceUpdate && setInState.bind(null, inst),
98
- setInContext: inst.forceUpdate && setInContext.bind(null, inst),
99
- };
100
- publicInstance = inst;
101
-
102
- // TODO: React ART currently falls in this bucket, but this doesn't
103
- // actually make sense and we should clean this up after stabilizing our
104
- // API for backends
105
- if (inst._renderedChildren) {
106
- children = childrenList(inst._renderedChildren);
107
- }
108
- }
109
-
110
- return {
111
- nodeType,
112
- type,
113
- name,
114
- props,
115
- state,
116
- context,
117
- children,
118
- text,
119
- updater,
120
- publicInstance,
121
- };
122
- }
123
-
124
- function setInProps(
125
- internalInst: any,
126
- path: Array<string | number>,
127
- value: any,
128
- ) {
129
- const element = internalInst._currentElement;
130
- internalInst._currentElement = {
131
- ...element,
132
- props: copyWithSet(element.props, path, value),
133
- };
134
- internalInst._instance.forceUpdate();
135
- }
136
-
137
- function setInState(inst: any, path: Array<string | number>, value: any) {
138
- setIn(inst.state, path, value);
139
- inst.forceUpdate();
140
- }
141
-
142
- function setInContext(inst: any, path: Array<string | number>, value: any) {
143
- setIn(inst.context, path, value);
144
- inst.forceUpdate();
145
- }
146
-
147
- function setIn(obj: Object, path: Array<string | number>, value: any) {
148
- const last = path.pop();
149
- const parent = path.reduce((obj_, attr) => (obj_ ? obj_[attr] : null), obj);
150
- if (parent) {
151
- parent[last] = value;
152
- }
153
- }
154
-
155
- function childrenList(children: any) {
156
- const res = [];
157
- for (const name in children) {
158
- res.push(children[name]);
159
- }
160
- return res;
161
- }
162
-
163
- function copyWithSetImpl(
164
- obj: any | Array<any>,
165
- path: Array<string | number>,
166
- idx: number,
167
- value: any,
168
- ): any {
169
- if (idx >= path.length) {
170
- return value;
171
- }
172
- const key = path[idx];
173
- const updated = Array.isArray(obj) ? obj.slice() : {...obj};
174
- // $FlowFixMe[incompatible-use] number or string is fine here
175
- updated[key] = copyWithSetImpl(obj[key], path, idx + 1, value);
176
- return updated;
177
- }
178
-
179
- function copyWithSet(
180
- obj: Object | Array<any>,
181
- path: Array<string | number>,
182
- value: any,
183
- ): Object | Array<any> {
184
- return copyWithSetImpl(obj, path, 0, value);
185
- }
186
-
187
- export default getData;
@@ -1,88 +0,0 @@
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
- * @format
8
- * @flow
9
- */
10
-
11
- 'use strict';
12
-
13
- const infoLog = require('../Utilities/infoLog').default;
14
-
15
- type Handler = {
16
- onIterate?: () => void,
17
- onStall: (params: {lastInterval: number, busyTime: number, ...}) => ?string,
18
- ...
19
- };
20
-
21
- /**
22
- * A utility for tracking stalls in the JS event loop that prevent timers and
23
- * other events from being processed in a timely manner.
24
- *
25
- * The "stall" time is defined as the amount of time in access of the acceptable
26
- * threshold, which is typically around 100-200ms. So if the threshold is set to
27
- * 100 and a timer fires 150 ms later than it was scheduled because the event
28
- * loop was tied up, that would be considered a 50ms stall.
29
- *
30
- * By default, logs stall events to the console when installed. Can also be
31
- * queried with `getStats`.
32
- */
33
- const JSEventLoopWatchdog = {
34
- getStats: function (): Object {
35
- return {stallCount, totalStallTime, longestStall, acceptableBusyTime};
36
- },
37
- reset: function () {
38
- infoLog('JSEventLoopWatchdog: reset');
39
- totalStallTime = 0;
40
- stallCount = 0;
41
- longestStall = 0;
42
- lastInterval = global.performance.now();
43
- },
44
- addHandler: function (handler: Handler) {
45
- handlers.push(handler);
46
- },
47
- install: function ({thresholdMS}: {thresholdMS: number, ...}) {
48
- acceptableBusyTime = thresholdMS;
49
- if (installed) {
50
- return;
51
- }
52
- installed = true;
53
- lastInterval = global.performance.now();
54
- function iteration() {
55
- const now = global.performance.now();
56
- const busyTime = now - lastInterval;
57
- if (busyTime >= thresholdMS) {
58
- const stallTime = busyTime - thresholdMS;
59
- stallCount++;
60
- totalStallTime += stallTime;
61
- longestStall = Math.max(longestStall, stallTime);
62
- let msg =
63
- `JSEventLoopWatchdog: JS thread busy for ${busyTime}ms. ` +
64
- `${totalStallTime}ms in ${stallCount} stalls so far. `;
65
- handlers.forEach(handler => {
66
- msg += handler.onStall({lastInterval, busyTime}) || '';
67
- });
68
- infoLog(msg);
69
- }
70
- handlers.forEach(handler => {
71
- handler.onIterate && handler.onIterate();
72
- });
73
- lastInterval = now;
74
- setTimeout(iteration, thresholdMS / 5);
75
- }
76
- iteration();
77
- },
78
- };
79
-
80
- let acceptableBusyTime = 0;
81
- let installed = false;
82
- let totalStallTime = 0;
83
- let stallCount = 0;
84
- let longestStall = 0;
85
- let lastInterval = 0;
86
- const handlers: Array<Handler> = [];
87
-
88
- export default JSEventLoopWatchdog;
@@ -1,78 +0,0 @@
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 "JSExecutor.h"
9
-
10
- #include "RAMBundleRegistry.h"
11
-
12
- #include <jsinspector-modern/ReactCdp.h>
13
- #include <jsinspector-modern/tracing/InstanceTracingProfile.h>
14
- #include <react/timing/primitives.h>
15
-
16
- #include <array>
17
- #include <chrono>
18
-
19
- namespace facebook::react {
20
-
21
- std::string JSExecutor::getSyntheticBundlePath(
22
- uint32_t bundleId,
23
- const std::string& bundlePath) {
24
- if (bundleId == RAMBundleRegistry::MAIN_BUNDLE_ID) {
25
- return bundlePath;
26
- }
27
-
28
- std::array<char, 32> buffer{};
29
- std::snprintf(buffer.data(), buffer.size(), "seg-%u.js", bundleId);
30
- return buffer.data();
31
- }
32
-
33
- double JSExecutor::performanceNow() {
34
- return chronoToDOMHighResTimeStamp(std::chrono::steady_clock::now());
35
- }
36
-
37
- void JSExecutor::addConsoleMessage(jsi::Runtime& runtime, jsinspector_modern::ConsoleMessage message){
38
- return;
39
- }
40
-
41
- bool JSExecutor::supportsConsole() const {
42
- return false;
43
- }
44
-
45
- std::unique_ptr<facebook::react::jsinspector_modern::StackTrace> JSExecutor::captureStackTrace(
46
- facebook::jsi::Runtime &runtime,
47
- size_t framesToSkip) {
48
- return std::make_unique<facebook::react::jsinspector_modern::StackTrace>();
49
- }
50
-
51
- void JSExecutor::enableSamplingProfiler() {
52
- return; // [Windows TODO: stubbed implementation #14700]
53
- }
54
-
55
- void JSExecutor::disableSamplingProfiler() {
56
- return; // [Windows TODO: stubbed implementation #14700]
57
- }
58
-
59
- facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile JSExecutor::collectSamplingProfile() {
60
- return facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile(
61
- "stubbed_impl", {}); // [Windows TODO: stubbed implementation #14700]
62
- }
63
-
64
- std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate>
65
- JSExecutor::createAgentDelegate(
66
- jsinspector_modern::FrontendChannel frontendChannel,
67
- jsinspector_modern::SessionState& sessionState,
68
- std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate::ExportedState>,
69
- const jsinspector_modern::ExecutionContextDescription&
70
- executionContextDescription,
71
- RuntimeExecutor runtimeExecutor) {
72
- (void)executionContextDescription;
73
- (void)runtimeExecutor;
74
- return std::make_unique<jsinspector_modern::FallbackRuntimeAgentDelegate>(
75
- std::move(frontendChannel), sessionState, getDescription());
76
- }
77
-
78
- } // namespace facebook::react
@@ -1,196 +0,0 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- #pragma once
9
-
10
- #include <memory>
11
- #include <string>
12
-
13
- #include <cxxreact/NativeModule.h>
14
- #include <folly/dynamic.h>
15
- #include <jsinspector-modern/InspectorInterfaces.h>
16
- #include <jsinspector-modern/FallbackRuntimeAgentDelegate.h>
17
- #include <jsinspector-modern/ReactCdp.h>
18
- #include <jsinspector-modern/ConsoleMessage.h>
19
- #include <jsinspector-modern/StackTrace.h>
20
-
21
- #ifndef RN_EXPORT
22
- #define RN_EXPORT __attribute__((visibility("default")))
23
- #endif
24
-
25
- namespace facebook::react {
26
-
27
- class JSBigString;
28
- class JSExecutor;
29
- class JSModulesUnbundle;
30
- class MessageQueueThread;
31
- class ModuleRegistry;
32
- class RAMBundleRegistry;
33
-
34
- // This interface describes the delegate interface required by
35
- // Executor implementations to call from JS into native code.
36
- class ExecutorDelegate {
37
- public:
38
- virtual ~ExecutorDelegate() {}
39
-
40
- virtual std::shared_ptr<ModuleRegistry> getModuleRegistry() = 0;
41
-
42
- virtual void callNativeModules(
43
- JSExecutor& executor,
44
- folly::dynamic&& calls,
45
- bool isEndOfBatch) = 0;
46
- virtual MethodCallResult callSerializableNativeHook(
47
- JSExecutor& executor,
48
- unsigned int moduleId,
49
- unsigned int methodId,
50
- folly::dynamic&& args) = 0;
51
- };
52
-
53
- class JSExecutorFactory {
54
- public:
55
- virtual std::unique_ptr<JSExecutor> createJSExecutor(
56
- std::shared_ptr<ExecutorDelegate> delegate,
57
- std::shared_ptr<MessageQueueThread> jsQueue) = 0;
58
- virtual ~JSExecutorFactory() {}
59
- };
60
-
61
- class RN_EXPORT JSExecutor : public jsinspector_modern::RuntimeTargetDelegate {
62
- public:
63
- /**
64
- * Prepares the JS runtime for React Native by installing global variables.
65
- * Called once before any JS is evaluated.
66
- */
67
- virtual void initializeRuntime() = 0;
68
- /**
69
- * Execute an application script bundle in the JS context.
70
- */
71
- virtual void loadBundle(
72
- std::unique_ptr<const JSBigString> script,
73
- std::string sourceURL) = 0;
74
-
75
- /**
76
- * Add an application "RAM" bundle registry
77
- */
78
- virtual void setBundleRegistry(
79
- std::unique_ptr<RAMBundleRegistry> bundleRegistry) = 0;
80
-
81
- /**
82
- * Register a file path for an additional "RAM" bundle
83
- */
84
- virtual void registerBundle(
85
- uint32_t bundleId,
86
- const std::string& bundlePath) = 0;
87
-
88
- /**
89
- * Executes BatchedBridge.callFunctionReturnFlushedQueue with the module ID,
90
- * method ID and optional additional arguments in JS. The executor is
91
- * responsible for using Bridge->callNativeModules to invoke any necessary
92
- * native modules methods.
93
- */
94
- virtual void callFunction(
95
- const std::string& moduleId,
96
- const std::string& methodId,
97
- const folly::dynamic& arguments) = 0;
98
-
99
- /**
100
- * Executes BatchedBridge.invokeCallbackAndReturnFlushedQueue with the cbID,
101
- * and optional additional arguments in JS and returns the next queue. The
102
- * executor is responsible for using Bridge->callNativeModules to invoke any
103
- * necessary native modules methods.
104
- */
105
- virtual void invokeCallback(
106
- const double callbackId,
107
- const folly::dynamic& arguments) = 0;
108
-
109
- virtual void setGlobalVariable(
110
- std::string propName,
111
- std::unique_ptr<const JSBigString> jsonValue) = 0;
112
-
113
- virtual void* getJavaScriptContext() {
114
- return nullptr;
115
- }
116
-
117
- /**
118
- * Returns whether or not the underlying executor supports debugging via the
119
- * Chrome remote debugging protocol. If true, the executor should also
120
- * override the \c createAgentDelegate method.
121
- */
122
- virtual bool isInspectable() {
123
- return false;
124
- }
125
-
126
- /**
127
- * The description is displayed in the dev menu, if there is one in
128
- * this build. There is a default, but if this method returns a
129
- * non-empty string, it will be used instead.
130
- */
131
- virtual std::string getDescription() = 0;
132
-
133
- virtual void handleMemoryPressure([[maybe_unused]] int pressureLevel) {}
134
-
135
- virtual void destroy() {}
136
- virtual ~JSExecutor() override {}
137
-
138
- virtual void flush() {}
139
-
140
- static std::string getSyntheticBundlePath(
141
- uint32_t bundleId,
142
- const std::string& bundlePath);
143
-
144
- static double performanceNow();
145
-
146
- virtual void addConsoleMessage(jsi::Runtime& runtime, jsinspector_modern::ConsoleMessage message);
147
-
148
- virtual bool supportsConsole() const;
149
-
150
- /**
151
- * \returns an opaque representation of a stack trace. This may be passed back
152
- * to the `RuntimeTargetDelegate` as part of `addConsoleMessage` or other APIs
153
- * that report stack traces.
154
- * \param framesToSkip The number of call frames to skip. The first call frame
155
- * is the topmost (current) frame on the Runtime's call stack, which will
156
- * typically be the (native) JSI HostFunction that called this method.
157
- * \note The method is called on the JS thread, and receives a valid reference
158
- * to the current \c jsi::Runtime. The callee MAY use its own intrinsic
159
- * Runtime reference, if it has one, without checking it for equivalence with
160
- * the one provided here.
161
- */
162
- std::unique_ptr<jsinspector_modern::StackTrace> captureStackTrace(
163
- jsi::Runtime& runtime,
164
- size_t framesToSkip = 0) override;
165
-
166
-
167
- /**
168
- * Start sampling profiler.
169
- */
170
- virtual void enableSamplingProfiler() override;
171
-
172
- /**
173
- * Stop sampling profiler.
174
- */
175
- virtual void disableSamplingProfiler() override;
176
-
177
- /**
178
- * Return recorded sampling profile for the previous sampling session.
179
- */
180
- virtual facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile collectSamplingProfile() override;
181
-
182
- /**
183
- * Create a RuntimeAgentDelegate that can be used to debug the JS VM instance.
184
- */
185
- virtual std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate>
186
- createAgentDelegate(
187
- jsinspector_modern::FrontendChannel frontendChannel,
188
- jsinspector_modern::SessionState& sessionState,
189
- std::unique_ptr<jsinspector_modern::RuntimeAgentDelegate::ExportedState>
190
- previouslyExportedState,
191
- const jsinspector_modern::ExecutionContextDescription&
192
- executionContextDescription,
193
- RuntimeExecutor runtimeExecutor) override;
194
- };
195
-
196
- } // namespace facebook::react