react-native-windows 0.76.2 → 0.77.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 (459) hide show
  1. package/.flowconfig +5 -1
  2. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +1 -0
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +13 -0
  4. package/Libraries/Animated/AnimatedEvent.js +1 -1
  5. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  6. package/Libraries/Animated/NativeAnimatedAllowlist.js +20 -9
  7. package/Libraries/Animated/NativeAnimatedAllowlist.windows.js +122 -0
  8. package/Libraries/Animated/animations/Animation.js +60 -25
  9. package/Libraries/Animated/animations/DecayAnimation.js +26 -38
  10. package/Libraries/Animated/animations/SpringAnimation.js +33 -39
  11. package/Libraries/Animated/animations/TimingAnimation.js +34 -42
  12. package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
  13. package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
  14. package/Libraries/Animated/createAnimatedComponent.js +60 -33
  15. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  16. package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
  17. package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
  18. package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
  19. package/Libraries/Animated/nodes/AnimatedProps.js +96 -46
  20. package/Libraries/Animated/nodes/AnimatedProps.windows.js +281 -0
  21. package/Libraries/Animated/nodes/AnimatedStyle.js +108 -39
  22. package/Libraries/Animated/nodes/AnimatedStyle.windows.js +251 -0
  23. package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
  24. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  25. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
  26. package/Libraries/Animated/useAnimatedProps.js +41 -35
  27. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
  28. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
  29. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +82 -5
  30. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
  31. package/Libraries/Components/Button.js +9 -4
  32. package/Libraries/Components/Button.windows.js +19 -5
  33. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  34. package/Libraries/Components/Glyph/Glyph.js +2 -1
  35. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
  36. package/Libraries/Components/Popup/PopupNativeComponent.js +0 -1
  37. package/Libraries/Components/Pressable/Pressable.js +4 -4
  38. package/Libraries/Components/Pressable/Pressable.windows.js +10 -4
  39. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
  40. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
  41. package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
  42. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
  43. package/Libraries/Components/ScrollView/ScrollView.js +49 -88
  44. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  45. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
  46. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
  47. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +0 -5
  48. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
  49. package/Libraries/Components/Switch/Switch.js +8 -6
  50. package/Libraries/Components/Switch/Switch.windows.js +8 -6
  51. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  52. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
  53. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
  54. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
  55. package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
  56. package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
  57. package/Libraries/Components/TextInput/TextInput.js +37 -13
  58. package/Libraries/Components/TextInput/TextInput.windows.js +47 -16
  59. package/Libraries/Components/TextInput/TextInputState.js +11 -13
  60. package/Libraries/Components/TextInput/TextInputState.windows.js +11 -13
  61. package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
  62. package/Libraries/Components/Touchable/Position.js +7 -2
  63. package/Libraries/Components/Touchable/Touchable.js +4 -0
  64. package/Libraries/Components/Touchable/Touchable.windows.js +4 -0
  65. package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
  66. package/Libraries/Components/Touchable/TouchableBounce.windows.js +227 -0
  67. package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
  68. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +5 -5
  69. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +371 -0
  70. package/Libraries/Components/Touchable/TouchableOpacity.js +6 -5
  71. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
  72. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
  73. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -3
  74. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
  75. package/Libraries/Components/View/View.js +4 -4
  76. package/Libraries/Components/View/View.windows.js +88 -57
  77. package/Libraries/Components/View/ViewAccessibility.d.ts +10 -0
  78. package/Libraries/Components/View/ViewAccessibility.windows.js +2 -0
  79. package/Libraries/Components/View/ViewNativeComponent.js +6 -98
  80. package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
  81. package/Libraries/Components/View/ViewPropTypes.js +0 -3
  82. package/Libraries/Components/View/ViewPropTypes.windows.js +2 -3
  83. package/Libraries/Core/ExceptionsManager.js +50 -29
  84. package/Libraries/Core/ReactNativeVersion.js +3 -3
  85. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
  86. package/Libraries/Core/setUpBatchedBridge.js +1 -10
  87. package/Libraries/Core/setUpDeveloperTools.js +1 -5
  88. package/Libraries/Core/setUpErrorHandling.js +20 -18
  89. package/Libraries/Core/setUpReactDevTools.js +107 -8
  90. package/Libraries/Core/setUpSegmentFetcher.js +1 -0
  91. package/Libraries/Core/setUpTimers.js +21 -18
  92. package/Libraries/Debugging/DebuggingOverlay.js +4 -5
  93. package/Libraries/Image/AssetSourceResolver.js +12 -1
  94. package/Libraries/Image/AssetSourceResolver.windows.js +12 -1
  95. package/Libraries/Image/Image.android.js +1 -5
  96. package/Libraries/Image/Image.d.ts +20 -29
  97. package/Libraries/Image/Image.ios.js +0 -2
  98. package/Libraries/Image/Image.windows.js +5 -1
  99. package/Libraries/Image/ImageBackground.js +2 -5
  100. package/Libraries/Image/ImageProps.js +7 -6
  101. package/Libraries/Image/ImageResizeMode.d.ts +8 -1
  102. package/Libraries/Image/ImageResizeMode.js +4 -1
  103. package/Libraries/Image/ImageSource.d.ts +0 -2
  104. package/Libraries/Image/ImageSource.js +0 -2
  105. package/Libraries/Image/ImageTypes.flow.js +11 -9
  106. package/Libraries/Image/ImageUtils.js +6 -3
  107. package/Libraries/Image/ImageViewNativeComponent.js +5 -3
  108. package/Libraries/Inspector/Inspector.js +1 -0
  109. package/Libraries/Inspector/NetworkOverlay.js +4 -0
  110. package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
  111. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
  112. package/Libraries/Interaction/InteractionManager.js +6 -1
  113. package/Libraries/Interaction/InteractionManagerStub.js +176 -0
  114. package/Libraries/Interaction/TouchHistoryMath.js +22 -19
  115. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  116. package/Libraries/Lists/FlatList.d.ts +1 -2
  117. package/Libraries/Lists/FlatList.js +2 -2
  118. package/Libraries/Lists/SectionListModern.js +7 -7
  119. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
  120. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  121. package/Libraries/LogBox/Data/LogBoxData.js +3 -3
  122. package/Libraries/LogBox/LogBox.js +18 -5
  123. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  124. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  125. package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
  126. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
  127. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -1
  128. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  129. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  130. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
  131. package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
  132. package/Libraries/Modal/Modal.d.ts +12 -0
  133. package/Libraries/Modal/Modal.js +31 -4
  134. package/Libraries/Modal/Modal.windows.js +370 -0
  135. package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
  136. package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
  137. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -11
  138. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
  139. package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
  140. package/Libraries/Network/XHRInterceptor.js +63 -14
  141. package/Libraries/Network/XMLHttpRequest.js +26 -1
  142. package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
  143. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
  144. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  145. package/Libraries/Pressability/HoverState.js +2 -0
  146. package/Libraries/Pressability/Pressability.js +2 -3
  147. package/Libraries/Pressability/Pressability.windows.js +2 -3
  148. package/Libraries/Pressability/usePressability.js +4 -1
  149. package/Libraries/ReactNative/AppContainer.js +1 -1
  150. package/Libraries/ReactNative/AppRegistry.js +1 -11
  151. package/Libraries/ReactNative/DisplayMode.js +1 -1
  152. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
  153. package/Libraries/ReactNative/RendererImplementation.js +18 -17
  154. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
  155. package/Libraries/ReactNative/renderApplication.js +9 -8
  156. package/Libraries/ReactNative/requireNativeComponent.js +5 -2
  157. package/Libraries/Renderer/shims/ReactFabric.js +3 -3
  158. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  159. package/Libraries/Renderer/shims/ReactNative.js +3 -3
  160. package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
  161. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
  162. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  163. package/Libraries/StyleSheet/StyleSheet.js +7 -1
  164. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
  165. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
  166. package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
  167. package/Libraries/StyleSheet/processTransform.js +3 -34
  168. package/Libraries/Text/Text.js +248 -249
  169. package/Libraries/Text/Text.windows.js +298 -292
  170. package/Libraries/Text/TextNativeComponent.js +0 -1
  171. package/Libraries/Text/TextProps.windows.js +2 -0
  172. package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
  173. package/Libraries/Types/CoreEventTypes.d.ts +3 -10
  174. package/Libraries/Types/CoreEventTypes.js +4 -6
  175. package/Libraries/Types/CoreEventTypes.windows.js +4 -6
  176. package/Libraries/Utilities/Appearance.js +3 -1
  177. package/Libraries/Utilities/BackHandler.android.js +6 -18
  178. package/Libraries/Utilities/BackHandler.d.ts +0 -4
  179. package/Libraries/Utilities/BackHandler.ios.js +0 -7
  180. package/Libraries/Utilities/BackHandler.windows.js +6 -18
  181. package/Libraries/Utilities/HMRClient.js +3 -4
  182. package/Libraries/Utilities/Platform.flow.js +2 -2
  183. package/Libraries/Utilities/Platform.flow.windows.js +3 -2
  184. package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
  185. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  186. package/Libraries/Utilities/useMergeRefs.js +26 -7
  187. package/Libraries/WebSocket/WebSocketEvent.js +4 -1
  188. package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
  189. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
  190. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  191. package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +9 -8
  192. package/Microsoft.ReactNative/AsynchronousEventBeat.h +5 -5
  193. package/Microsoft.ReactNative/CompositionComponentView.idl +2 -1
  194. package/Microsoft.ReactNative/FBReactNativeSpec/FBReactNativeSpecJSI.h +5 -0
  195. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +6 -3
  196. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +1 -1
  197. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +7 -0
  198. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +2 -0
  199. package/Microsoft.ReactNative/Fabric/ComponentView.cpp +45 -50
  200. package/Microsoft.ReactNative/Fabric/ComponentView.h +14 -22
  201. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +943 -0
  202. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +80 -0
  203. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +223 -21
  204. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +19 -1
  205. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +187 -6
  206. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +10 -1
  207. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +8 -32
  208. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +349 -929
  209. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +32 -29
  210. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.cpp +9 -2
  211. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.h +2 -1
  212. package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
  213. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +181 -123
  214. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.h +16 -8
  215. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +99 -37
  216. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +25 -3
  217. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +64 -3
  218. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +12 -0
  219. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +51 -3
  220. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +3 -0
  221. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +18 -8
  222. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +3 -0
  223. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +6 -8
  224. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +56 -7
  225. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +8 -0
  226. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +3 -2
  227. package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +9 -3
  228. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +1 -1
  229. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +35 -0
  230. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +7 -0
  231. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +1 -1
  232. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -12
  233. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +4 -4
  234. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +4 -8
  235. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +16 -15
  236. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +1 -5
  237. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +26 -0
  238. package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +1 -1
  239. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +15 -0
  240. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +9 -0
  241. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +20 -1
  242. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -6
  243. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  244. package/Microsoft.ReactNative/ReactNativeIsland.idl +3 -2
  245. package/Microsoft.ReactNative/SynchronousEventBeat.cpp +14 -4
  246. package/Microsoft.ReactNative/SynchronousEventBeat.h +4 -2
  247. package/Microsoft.ReactNative/ViewProps.idl +2 -0
  248. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.cpp +78 -0
  249. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.h +51 -0
  250. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.inc +48 -0
  251. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.cpp +41 -0
  252. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.h +127 -0
  253. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.inc +125 -0
  254. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_posix.cpp +16 -0
  255. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_win.cpp +23 -0
  256. package/Microsoft.ReactNative.Cxx/ComponentView.Experimental.interop.h +14 -0
  257. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +834 -0
  258. package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +117 -0
  259. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +366 -0
  260. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +560 -0
  261. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +1611 -0
  262. package/Microsoft.ReactNative.Cxx/JSI/threadsafe.h +79 -0
  263. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +7 -11
  264. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -1
  265. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +2878 -0
  266. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.h +36 -0
  267. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +64 -0
  268. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +22 -0
  269. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModule.cpp +63 -63
  270. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +165 -0
  271. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.cpp +105 -0
  272. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModuleUtils.h +57 -58
  273. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +42 -0
  274. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +151 -0
  275. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Base.h +177 -154
  276. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +25 -0
  277. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +21 -0
  278. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +67 -0
  279. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +90 -0
  280. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Convert.h +170 -172
  281. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +51 -0
  282. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/EventEmitter.h +134 -136
  283. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Function.h +283 -283
  284. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.cpp +63 -0
  285. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +61 -0
  286. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +93 -0
  287. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +104 -0
  288. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +107 -0
  289. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/flags.h +22 -0
  290. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +72 -0
  291. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +553 -0
  292. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +167 -0
  293. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +186 -0
  294. package/Microsoft.ReactNative.Cxx/stubs/glog/logging.h +82 -0
  295. package/PropertySheets/Bundle.Common.targets +1 -1
  296. package/PropertySheets/Bundle.props +3 -0
  297. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  298. package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  299. package/PropertySheets/OutputMSBuildProperties.targets +3 -1
  300. package/ReactCommon/ReactCommon.vcxproj +5 -0
  301. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +2 -3
  302. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +61 -0
  303. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +26 -23
  304. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +150 -0
  305. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +252 -0
  306. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +795 -0
  307. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +59 -0
  308. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +188 -39
  309. package/Scripts/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  310. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +97 -62
  311. package/Shared/InspectorPackagerConnection.cpp +3 -6
  312. package/Shared/InspectorPackagerConnection.h +2 -2
  313. package/Shared/InstanceManager.h +1 -1
  314. package/Shared/OInstance.h +1 -1
  315. package/Shared/Shared.vcxitems +20 -2
  316. package/Shared/Shared.vcxitems.filters +4 -1
  317. package/Shared/TurboModuleManager.cpp +29 -4
  318. package/codegen/NativeAccessibilityInfoSpec.g.h +28 -9
  319. package/codegen/NativeAccessibilityManagerSpec.g.h +20 -13
  320. package/codegen/NativeActionSheetManagerSpec.g.h +5 -0
  321. package/codegen/NativeAlertManagerSpec.g.h +1 -0
  322. package/codegen/NativeAnimatedModuleSpec.g.h +1 -0
  323. package/codegen/NativeAnimatedTurboModuleSpec.g.h +1 -0
  324. package/codegen/NativeAppStateSpec.g.h +1 -0
  325. package/codegen/NativeAppThemeSpec.g.h +1 -0
  326. package/codegen/NativeAppearanceSpec.g.h +1 -0
  327. package/codegen/NativeBlobModuleSpec.g.h +1 -0
  328. package/codegen/NativeBugReportingSpec.g.h +1 -0
  329. package/codegen/NativeClipboardSpec.g.h +1 -0
  330. package/codegen/NativeDOMSpec.g.h +1 -0
  331. package/codegen/NativeDevLoadingViewSpec.g.h +1 -0
  332. package/codegen/NativeDevMenuSpec.g.h +1 -0
  333. package/codegen/NativeDevSettingsSpec.g.h +1 -0
  334. package/codegen/NativeDeviceEventManagerSpec.g.h +1 -0
  335. package/codegen/NativeDeviceInfoSpec.g.h +1 -0
  336. package/codegen/NativeDialogManagerAndroidSpec.g.h +1 -0
  337. package/codegen/NativeDialogManagerWindowsSpec.g.h +1 -0
  338. package/codegen/NativeExceptionsManagerSpec.g.h +2 -7
  339. package/codegen/NativeFileReaderModuleSpec.g.h +1 -0
  340. package/codegen/NativeFrameRateLoggerSpec.g.h +1 -0
  341. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +1 -0
  342. package/codegen/NativeI18nManagerSpec.g.h +1 -0
  343. package/codegen/NativeIdleCallbacksSpec.g.h +1 -0
  344. package/codegen/NativeImageEditorSpec.g.h +1 -0
  345. package/codegen/NativeImageLoaderAndroidSpec.g.h +1 -0
  346. package/codegen/NativeImageLoaderIOSSpec.g.h +1 -0
  347. package/codegen/NativeImageStoreAndroidSpec.g.h +1 -0
  348. package/codegen/NativeImageStoreIOSSpec.g.h +1 -0
  349. package/codegen/NativeIntentAndroidSpec.g.h +1 -0
  350. package/codegen/NativeIntersectionObserverSpec.g.h +3 -0
  351. package/codegen/NativeJSCHeapCaptureSpec.g.h +1 -0
  352. package/codegen/NativeJSCSamplingProfilerSpec.g.h +1 -0
  353. package/codegen/NativeKeyboardObserverSpec.g.h +1 -0
  354. package/codegen/NativeLinkingManagerSpec.g.h +1 -0
  355. package/codegen/NativeLogBoxSpec.g.h +1 -0
  356. package/codegen/NativeMicrotasksSpec.g.h +1 -0
  357. package/codegen/NativeModalManagerSpec.g.h +1 -0
  358. package/codegen/NativeMutationObserverSpec.g.h +1 -0
  359. package/codegen/NativeNetworkingAndroidSpec.g.h +1 -0
  360. package/codegen/NativeNetworkingIOSSpec.g.h +1 -0
  361. package/codegen/NativePerformanceSpec.g.h +128 -3
  362. package/codegen/NativePermissionsAndroidSpec.g.h +1 -0
  363. package/codegen/NativePlatformConstantsAndroidSpec.g.h +1 -0
  364. package/codegen/NativePlatformConstantsIOSSpec.g.h +1 -0
  365. package/codegen/NativePlatformConstantsWindowsSpec.g.h +1 -0
  366. package/codegen/NativePushNotificationManagerIOSSpec.g.h +1 -0
  367. package/codegen/NativeReactDevToolsRuntimeSettingsModuleSpec.g.h +67 -0
  368. package/codegen/NativeReactDevToolsSettingsManagerSpec.g.h +41 -0
  369. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +126 -137
  370. package/codegen/NativeRedBoxSpec.g.h +1 -0
  371. package/codegen/NativeSampleTurboModuleSpec.g.h +1 -0
  372. package/codegen/NativeSegmentFetcherSpec.g.h +1 -0
  373. package/codegen/NativeSettingsManagerSpec.g.h +1 -0
  374. package/codegen/NativeShareModuleSpec.g.h +1 -0
  375. package/codegen/NativeSoundManagerSpec.g.h +1 -0
  376. package/codegen/NativeSourceCodeSpec.g.h +1 -0
  377. package/codegen/NativeStatusBarManagerAndroidSpec.g.h +1 -0
  378. package/codegen/NativeStatusBarManagerIOSSpec.g.h +1 -0
  379. package/codegen/NativeTimingSpec.g.h +1 -0
  380. package/codegen/NativeToastAndroidSpec.g.h +1 -0
  381. package/codegen/NativeUIManagerSpec.g.h +1 -0
  382. package/codegen/NativeVibrationSpec.g.h +1 -0
  383. package/codegen/NativeWebSocketModuleSpec.g.h +1 -0
  384. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  385. package/codegen/react/components/rnwcore/Props.cpp +1 -0
  386. package/codegen/react/components/rnwcore/Props.h +1 -0
  387. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  388. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -11
  389. package/codegen/react/components/rnwcore/States.h +0 -12
  390. package/codegen/rnwcoreJSI-generated.cpp +219 -186
  391. package/codegen/rnwcoreJSI.h +942 -511
  392. package/index.js +10 -3
  393. package/index.windows.js +10 -3
  394. package/jest/setup.js +36 -1
  395. package/just-task.js +15 -0
  396. package/package.json +22 -22
  397. package/src/private/animated/NativeAnimatedHelper.js +18 -16
  398. package/src/private/animated/useAnimatedPropsMemo.js +348 -0
  399. package/src/private/animated/useAnimatedPropsMemo.windows.js +356 -0
  400. package/src/private/components/HScrollViewNativeComponents.js +1 -27
  401. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
  402. package/src/private/components/VScrollViewNativeComponents.js +2 -25
  403. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  404. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  405. package/src/private/debugging/ReactDevToolsSettingsManager.windows.js +20 -0
  406. package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
  407. package/src/private/devmenu/DevMenu.d.ts +20 -0
  408. package/src/private/devmenu/DevMenu.js +31 -0
  409. package/src/private/featureflags/ReactNativeFeatureFlags.js +95 -86
  410. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
  411. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -19
  412. package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
  413. package/src/private/setup/setUpDOM.js +14 -6
  414. package/src/private/setup/setUpMutationObserver.js +5 -0
  415. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
  416. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
  417. package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
  418. package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
  419. package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
  420. package/src/private/specs/modules/NativeAppearance.js +4 -10
  421. package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
  422. package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
  423. package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
  424. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
  425. package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
  426. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
  427. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
  428. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
  429. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  430. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
  431. package/src/private/webapis/performance/EventTiming.js +13 -8
  432. package/src/private/webapis/performance/Performance.js +66 -73
  433. package/src/private/webapis/performance/PerformanceEntry.js +2 -5
  434. package/src/private/webapis/performance/PerformanceObserver.js +65 -164
  435. package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
  436. package/src/private/webapis/performance/UserTiming.js +11 -7
  437. package/src/private/webapis/performance/Utilities.js +18 -0
  438. package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
  439. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
  440. package/templates/cpp-lib/template.config.js +13 -7
  441. package/templates/templateUtils.js +10 -0
  442. package/types/index.d.ts +1 -1
  443. package/types/public/ReactNativeTypes.d.ts +4 -8
  444. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
  445. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
  446. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
  447. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +0 -35
  448. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
  449. package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +0 -101
  451. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +0 -569
  452. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +0 -52
  453. package/codegen/NativePerformanceObserverSpec.g.h +0 -130
  454. package/src/private/components/useSyncOnScroll.js +0 -48
  455. package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
  456. package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
  457. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
  458. package/types/experimental.d.ts +0 -59
  459. /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
@@ -25,12 +25,12 @@ export type TimeStampOrName = DOMHighResTimeStamp | string;
25
25
 
26
26
  export type PerformanceMeasureInit = {
27
27
  detail?: DetailType,
28
- startTime?: DOMHighResTimeStamp,
29
- duration?: DOMHighResTimeStamp,
28
+ startTime: DOMHighResTimeStamp,
29
+ duration: DOMHighResTimeStamp,
30
30
  };
31
31
 
32
32
  export class PerformanceMark extends PerformanceEntry {
33
- detail: DetailType;
33
+ #detail: DetailType;
34
34
 
35
35
  constructor(markName: string, markOptions?: PerformanceMarkOptions) {
36
36
  super({
@@ -41,20 +41,24 @@ export class PerformanceMark extends PerformanceEntry {
41
41
  });
42
42
 
43
43
  if (markOptions) {
44
- this.detail = markOptions.detail;
44
+ this.#detail = markOptions.detail;
45
45
  }
46
46
  }
47
+
48
+ get detail(): DetailType {
49
+ return this.#detail;
50
+ }
47
51
  }
48
52
 
49
53
  export class PerformanceMeasure extends PerformanceEntry {
50
54
  #detail: DetailType;
51
55
 
52
- constructor(measureName: string, measureOptions?: PerformanceMeasureInit) {
56
+ constructor(measureName: string, measureOptions: PerformanceMeasureInit) {
53
57
  super({
54
58
  name: measureName,
55
59
  entryType: 'measure',
56
- startTime: measureOptions?.startTime ?? 0,
57
- duration: measureOptions?.duration ?? 0,
60
+ startTime: measureOptions.startTime,
61
+ duration: measureOptions.duration,
58
62
  });
59
63
 
60
64
  if (measureOptions) {
@@ -0,0 +1,18 @@
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
+ import warnOnce from '../../../../Libraries/Utilities/warnOnce';
12
+
13
+ export function warnNoNativePerformance() {
14
+ warnOnce(
15
+ 'missing-native-performance',
16
+ 'Missing native implementation of Performance',
17
+ );
18
+ }
@@ -16,10 +16,39 @@ export type NativeMemoryInfo = {[key: string]: ?number};
16
16
 
17
17
  export type ReactNativeStartupTiming = {[key: string]: ?number};
18
18
 
19
+ export type RawPerformanceEntryType = number;
20
+
21
+ export type RawPerformanceEntry = {
22
+ name: string,
23
+ entryType: RawPerformanceEntryType,
24
+ startTime: number,
25
+ duration: number,
26
+
27
+ // For "event" entries only:
28
+ processingStart?: number,
29
+ processingEnd?: number,
30
+ interactionId?: number,
31
+ };
32
+
33
+ export type OpaqueNativeObserverHandle = mixed;
34
+
35
+ export type NativeBatchedObserverCallback = () => void;
36
+ export type NativePerformanceMarkResult = number;
37
+ export type NativePerformanceMeasureResult = $ReadOnlyArray<number>; // [startTime, duration]
38
+
39
+ export type PerformanceObserverInit = {
40
+ entryTypes?: $ReadOnlyArray<number>,
41
+ type?: number,
42
+ buffered?: boolean,
43
+ durationThreshold?: number,
44
+ };
45
+
19
46
  export interface Spec extends TurboModule {
20
47
  +now?: () => number;
21
- +mark: (name: string, startTime: number) => void;
22
- +measure: (
48
+ // TODO: remove when `markWithResult` is fully rolled out.
49
+ +mark?: (name: string, startTime: number) => void;
50
+ // TODO: remove when `measureWithResult` is fully rolled out.
51
+ +measure?: (
23
52
  name: string,
24
53
  startTime: number,
25
54
  endTime: number,
@@ -27,8 +56,48 @@ export interface Spec extends TurboModule {
27
56
  startMark?: string,
28
57
  endMark?: string,
29
58
  ) => void;
59
+ +markWithResult?: (
60
+ name: string,
61
+ startTime?: number,
62
+ ) => NativePerformanceMarkResult;
63
+ +measureWithResult?: (
64
+ name: string,
65
+ startTime: number,
66
+ endTime: number,
67
+ duration?: number,
68
+ startMark?: string,
69
+ endMark?: string,
70
+ ) => NativePerformanceMeasureResult;
71
+ +clearMarks?: (entryName?: string) => void;
72
+ +clearMeasures?: (entryName?: string) => void;
73
+ +getEntries?: () => $ReadOnlyArray<RawPerformanceEntry>;
74
+ +getEntriesByName?: (
75
+ entryName: string,
76
+ entryType?: ?RawPerformanceEntryType,
77
+ ) => $ReadOnlyArray<RawPerformanceEntry>;
78
+ +getEntriesByType?: (
79
+ entryType: RawPerformanceEntryType,
80
+ ) => $ReadOnlyArray<RawPerformanceEntry>;
81
+ +getEventCounts?: () => $ReadOnlyArray<[string, number]>;
30
82
  +getSimpleMemoryInfo: () => NativeMemoryInfo;
31
83
  +getReactNativeStartupTiming: () => ReactNativeStartupTiming;
84
+
85
+ +createObserver?: (
86
+ callback: NativeBatchedObserverCallback,
87
+ ) => OpaqueNativeObserverHandle;
88
+ +getDroppedEntriesCount?: (observer: OpaqueNativeObserverHandle) => number;
89
+
90
+ +observe?: (
91
+ observer: OpaqueNativeObserverHandle,
92
+ options: PerformanceObserverInit,
93
+ ) => void;
94
+ +disconnect?: (observer: OpaqueNativeObserverHandle) => void;
95
+ +takeRecords?: (
96
+ observer: OpaqueNativeObserverHandle,
97
+ sort: boolean,
98
+ ) => $ReadOnlyArray<RawPerformanceEntry>;
99
+
100
+ +getSupportedPerformanceEntryTypes?: () => $ReadOnlyArray<RawPerformanceEntryType>;
32
101
  }
33
102
 
34
103
  export default (TurboModuleRegistry.get<Spec>('NativePerformanceCxx'): ?Spec);
@@ -0,0 +1,267 @@
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
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ import type {
12
+ NativeBatchedObserverCallback,
13
+ NativeMemoryInfo,
14
+ NativePerformanceMarkResult,
15
+ NativePerformanceMeasureResult,
16
+ OpaqueNativeObserverHandle,
17
+ PerformanceObserverInit,
18
+ RawPerformanceEntry,
19
+ RawPerformanceEntryType,
20
+ ReactNativeStartupTiming,
21
+ } from '../NativePerformance';
22
+ import typeof NativePerformance from '../NativePerformance';
23
+
24
+ import {RawPerformanceEntryTypeValues} from '../../RawPerformanceEntry';
25
+
26
+ type MockObserver = {
27
+ handleEntry: (entry: RawPerformanceEntry) => void,
28
+ callback: NativeBatchedObserverCallback,
29
+ didScheduleFlushBuffer: boolean,
30
+ entries: Array<RawPerformanceEntry>,
31
+ options: PerformanceObserverInit,
32
+ droppedEntriesCount: number,
33
+ };
34
+
35
+ const eventCounts: Map<string, number> = new Map();
36
+ const observers: Set<MockObserver> = new Set();
37
+ const marks: Map<string, number> = new Map();
38
+ let entries: Array<RawPerformanceEntry> = [];
39
+
40
+ function getMockObserver(
41
+ opaqueNativeObserverHandle: OpaqueNativeObserverHandle,
42
+ ): MockObserver {
43
+ return opaqueNativeObserverHandle as $FlowFixMe as MockObserver;
44
+ }
45
+
46
+ function createMockObserver(callback: NativeBatchedObserverCallback) {
47
+ const observer: MockObserver = {
48
+ callback,
49
+ didScheduleFlushBuffer: false,
50
+ entries: [],
51
+ options: {},
52
+ droppedEntriesCount: 0,
53
+ handleEntry: (entry: RawPerformanceEntry) => {
54
+ if (
55
+ observer.options.type !== entry.entryType &&
56
+ !observer.options.entryTypes?.includes(entry.entryType)
57
+ ) {
58
+ return;
59
+ }
60
+
61
+ if (
62
+ entry.entryType === RawPerformanceEntryTypeValues.EVENT &&
63
+ entry.duration < (observer.options?.durationThreshold ?? 0)
64
+ ) {
65
+ return;
66
+ }
67
+
68
+ observer.entries.push(entry);
69
+
70
+ if (!observer.didScheduleFlushBuffer) {
71
+ observer.didScheduleFlushBuffer = true;
72
+ // $FlowFixMe[incompatible-call]
73
+ global.queueMicrotask(() => {
74
+ observer.didScheduleFlushBuffer = false;
75
+ // We want to emulate the way it's done in native (i.e. async/batched)
76
+ observer.callback();
77
+ });
78
+ }
79
+ },
80
+ };
81
+
82
+ return observer;
83
+ }
84
+
85
+ export function reportEntry(entry: RawPerformanceEntry) {
86
+ entries.push(entry);
87
+
88
+ switch (entry.entryType) {
89
+ case RawPerformanceEntryTypeValues.MARK:
90
+ marks.set(entry.name, entry.startTime);
91
+ break;
92
+ case RawPerformanceEntryTypeValues.MEASURE:
93
+ break;
94
+ case RawPerformanceEntryTypeValues.EVENT:
95
+ eventCounts.set(entry.name, (eventCounts.get(entry.name) ?? 0) + 1);
96
+ break;
97
+ }
98
+
99
+ for (const observer of observers) {
100
+ observer.handleEntry(entry);
101
+ }
102
+ }
103
+
104
+ let currentTime: number = 12;
105
+
106
+ const NativePerformanceMock = {
107
+ setCurrentTime: (time: number): void => {
108
+ currentTime = time;
109
+ },
110
+
111
+ now: (): number => currentTime,
112
+
113
+ markWithResult: (
114
+ name: string,
115
+ startTime?: number,
116
+ ): NativePerformanceMarkResult => {
117
+ const computedStartTime = startTime ?? performance.now();
118
+
119
+ marks.set(name, computedStartTime);
120
+ reportEntry({
121
+ entryType: RawPerformanceEntryTypeValues.MARK,
122
+ name,
123
+ startTime: computedStartTime,
124
+ duration: 0,
125
+ });
126
+
127
+ return computedStartTime;
128
+ },
129
+
130
+ measureWithResult: (
131
+ name: string,
132
+ startTime: number,
133
+ endTime: number,
134
+ duration?: number,
135
+ startMark?: string,
136
+ endMark?: string,
137
+ ): NativePerformanceMeasureResult => {
138
+ const start = startMark != null ? marks.get(startMark) : startTime;
139
+ const end = endMark != null ? marks.get(endMark) : endTime;
140
+
141
+ if (start === undefined) {
142
+ throw new Error('startMark does not exist');
143
+ }
144
+
145
+ if (end === undefined) {
146
+ throw new Error('endMark does not exist');
147
+ }
148
+
149
+ const computedDuration = duration ?? end - start;
150
+ reportEntry({
151
+ entryType: RawPerformanceEntryTypeValues.MEASURE,
152
+ name,
153
+ startTime: start,
154
+ duration: computedDuration,
155
+ });
156
+
157
+ return [start, computedDuration];
158
+ },
159
+
160
+ getSimpleMemoryInfo: (): NativeMemoryInfo => {
161
+ return {};
162
+ },
163
+
164
+ getReactNativeStartupTiming: (): ReactNativeStartupTiming => {
165
+ return {
166
+ startTime: 0,
167
+ endTime: 0,
168
+ executeJavaScriptBundleEntryPointStart: 0,
169
+ executeJavaScriptBundleEntryPointEnd: 0,
170
+ initializeRuntimeStart: 0,
171
+ initializeRuntimeEnd: 0,
172
+ };
173
+ },
174
+
175
+ getEventCounts: (): $ReadOnlyArray<[string, number]> => {
176
+ return Array.from(eventCounts.entries());
177
+ },
178
+
179
+ createObserver: (
180
+ callback: NativeBatchedObserverCallback,
181
+ ): OpaqueNativeObserverHandle => {
182
+ return createMockObserver(callback);
183
+ },
184
+
185
+ getDroppedEntriesCount: (observer: OpaqueNativeObserverHandle): number => {
186
+ return getMockObserver(observer).droppedEntriesCount;
187
+ },
188
+
189
+ observe: (
190
+ observer: OpaqueNativeObserverHandle,
191
+ options: PerformanceObserverInit,
192
+ ): void => {
193
+ const mockObserver = getMockObserver(observer);
194
+ mockObserver.options = options;
195
+ observers.add(mockObserver);
196
+ },
197
+
198
+ disconnect: (observer: OpaqueNativeObserverHandle): void => {
199
+ const mockObserver = getMockObserver(observer);
200
+ observers.delete(mockObserver);
201
+ },
202
+
203
+ takeRecords: (
204
+ observer: OpaqueNativeObserverHandle,
205
+ ): $ReadOnlyArray<RawPerformanceEntry> => {
206
+ const mockObserver = getMockObserver(observer);
207
+ const observerEntries = mockObserver.entries;
208
+ mockObserver.entries = [];
209
+ return observerEntries.sort((a, b) => a.startTime - b.startTime);
210
+ },
211
+
212
+ clearMarks: (entryName?: string) => {
213
+ if (entryName != null) {
214
+ marks.delete(entryName);
215
+ } else {
216
+ marks.clear();
217
+ }
218
+
219
+ entries = entries.filter(
220
+ entry =>
221
+ entry.entryType !== RawPerformanceEntryTypeValues.MARK ||
222
+ (entryName != null && entry.name !== entryName),
223
+ );
224
+ },
225
+
226
+ clearMeasures: (entryName?: string) => {
227
+ entries = entries.filter(
228
+ entry =>
229
+ entry.entryType !== RawPerformanceEntryTypeValues.MEASURE ||
230
+ (entryName != null && entry.name !== entryName),
231
+ );
232
+ },
233
+
234
+ getEntries: (): $ReadOnlyArray<RawPerformanceEntry> => {
235
+ return [...entries].sort((a, b) => a.startTime - b.startTime);
236
+ },
237
+
238
+ getEntriesByName: (
239
+ entryName: string,
240
+ entryType?: ?RawPerformanceEntryType,
241
+ ): $ReadOnlyArray<RawPerformanceEntry> => {
242
+ return NativePerformanceMock.getEntries().filter(
243
+ entry =>
244
+ (entryType == null || entry.entryType === entryType) &&
245
+ entry.name === entryName,
246
+ );
247
+ },
248
+
249
+ getEntriesByType: (
250
+ entryType: RawPerformanceEntryType,
251
+ ): $ReadOnlyArray<RawPerformanceEntry> => {
252
+ return entries.filter(entry => entry.entryType === entryType);
253
+ },
254
+
255
+ getSupportedPerformanceEntryTypes:
256
+ (): $ReadOnlyArray<RawPerformanceEntryType> => {
257
+ return [
258
+ RawPerformanceEntryTypeValues.MARK,
259
+ RawPerformanceEntryTypeValues.MEASURE,
260
+ RawPerformanceEntryTypeValues.EVENT,
261
+ ];
262
+ },
263
+ };
264
+
265
+ (NativePerformanceMock: NativePerformance);
266
+
267
+ export default NativePerformanceMock;
@@ -199,15 +199,21 @@ async function postInstall(config = {}, options = {}) {
199
199
  const namespaceCpp = namespace.replace(/\./g, '::');
200
200
 
201
201
  // Update package.json codegen
202
- await templateUtils.updateProjectPackageJson(libConfig, libOptions, {
203
- codegenConfig: {
204
- windows: {
205
- namespace: namespaceCpp + 'Codegen',
206
- outputDirectory: `windows/${projectName}/codegen`,
207
- separateDataTypes: true,
202
+ await templateUtils.updateProjectPackageJson(
203
+ libConfig,
204
+ libOptions,
205
+ {
206
+ codegenConfig: {
207
+ windows: {
208
+ namespace: namespaceCpp + 'Codegen',
209
+ outputDirectory: `windows/${projectName}/codegen`,
210
+ separateDataTypes: true,
211
+ },
208
212
  },
209
213
  },
210
- });
214
+ true, // save options from command
215
+ true, // if a "files" property exists, make sure "windows" is included
216
+ );
211
217
 
212
218
  if (exExists) {
213
219
  const {rnwVersion} = templateUtils.getRnwInfo(exConfig, exOptions);
@@ -115,6 +115,7 @@ async function updateProjectPackageJson(
115
115
  options = {},
116
116
  props = {},
117
117
  saveOptions = true,
118
+ ensureWindowsInFiles = false,
118
119
  ) {
119
120
  const projectRoot = config?.root ?? process.cwd();
120
121
  const projectPackage =
@@ -139,6 +140,15 @@ async function updateProjectPackageJson(
139
140
  if (options?.logging) {
140
141
  console.log(`Modifying ${path.join(projectRoot, 'package.json')}...`);
141
142
  }
143
+
144
+ // add "windows" to files if property exists
145
+ if (ensureWindowsInFiles && projectPackage.json.files !== undefined) {
146
+ props.files = projectPackage.json.files;
147
+ if (!props.files.includes('windows')) {
148
+ props.files.push('windows');
149
+ }
150
+ }
151
+
142
152
  await projectPackage.mergeProps(props);
143
153
  }
144
154
 
package/types/index.d.ts CHANGED
@@ -104,7 +104,6 @@ export * from '../Libraries/Components/View/ViewAccessibility';
104
104
  export * from '../Libraries/Components/View/ViewPropTypes';
105
105
  export * from '../Libraries/Components/Button';
106
106
  export * from '../Libraries/Core/registerCallableModule';
107
- export * from '../Libraries/DevToolsSettings/DevToolsSettingsManager';
108
107
  export * from '../Libraries/EventEmitter/NativeEventEmitter';
109
108
  export * from '../Libraries/EventEmitter/RCTDeviceEventEmitter';
110
109
  export * from '../Libraries/EventEmitter/RCTNativeAppEventEmitter';
@@ -142,6 +141,7 @@ export * as TurboModuleRegistry from '../Libraries/TurboModule/TurboModuleRegist
142
141
  export * from '../Libraries/Types/CoreEventTypes';
143
142
  export * from '../Libraries/Utilities/Appearance';
144
143
  export * from '../Libraries/Utilities/BackHandler';
144
+ export * from '../src/private/devmenu/DevMenu';
145
145
  export * from '../Libraries/Utilities/DevSettings';
146
146
  export * from '../Libraries/Utilities/Dimensions';
147
147
  export * from '../Libraries/Utilities/PixelRatio';
@@ -86,9 +86,7 @@ export interface NativeMethods {
86
86
  * _Can also be called with a relativeNativeNodeHandle but is deprecated._
87
87
  */
88
88
  measureLayout(
89
- relativeToNativeComponentRef:
90
- | React.ElementRef<HostComponent<unknown>>
91
- | number,
89
+ relativeToNativeComponentRef: HostInstance | number,
92
90
  onSuccess: MeasureLayoutOnSuccessCallback,
93
91
  onFail?: () => void,
94
92
  ): void;
@@ -111,10 +109,6 @@ export interface NativeMethods {
111
109
  * Removes focus from an input or view. This is the opposite of `focus()`.
112
110
  */
113
111
  blur(): void;
114
-
115
- refs: {
116
- [key: string]: React.Component<any, any>;
117
- };
118
112
  }
119
113
 
120
114
  /**
@@ -126,6 +120,8 @@ export type NativeMethodsMixin = NativeMethods;
126
120
  */
127
121
  export type NativeMethodsMixinType = NativeMethods;
128
122
 
123
+ export type HostInstance = NativeMethods;
124
+
129
125
  /**
130
126
  * Represents a native component, such as those returned from `requireNativeComponent`.
131
127
  *
@@ -139,5 +135,5 @@ export interface HostComponent<P>
139
135
  React.ComponentClass<P>,
140
136
  Exclude<keyof React.ComponentClass<P>, 'new'>
141
137
  > {
142
- new (props: P, context?: any): React.Component<P> & Readonly<NativeMethods>;
138
+ new (props: P, context?: any): React.Component<P> & HostInstance;
143
139
  }
@@ -1,35 +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
- * @flow strict-local
8
- * @format
9
- */
10
-
11
- import DevSettings from '../Utilities/DevSettings';
12
- import NativeDevToolsSettingsManager from './NativeDevToolsSettingsManager';
13
-
14
- module.exports = {
15
- setConsolePatchSettings(newSettings: string) {
16
- NativeDevToolsSettingsManager?.setConsolePatchSettings(newSettings);
17
- },
18
- getConsolePatchSettings(): ?string {
19
- return NativeDevToolsSettingsManager?.getConsolePatchSettings();
20
- },
21
- setProfilingSettings(newSettings: string) {
22
- if (NativeDevToolsSettingsManager?.setProfilingSettings != null) {
23
- NativeDevToolsSettingsManager.setProfilingSettings(newSettings);
24
- }
25
- },
26
- getProfilingSettings(): ?string {
27
- if (NativeDevToolsSettingsManager?.getProfilingSettings != null) {
28
- return NativeDevToolsSettingsManager.getProfilingSettings();
29
- }
30
- return null;
31
- },
32
- reload(): void {
33
- DevSettings?.reload();
34
- },
35
- };
@@ -1,20 +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
- * @flow strict
8
- * @format
9
- */
10
-
11
- export interface DevToolsSettingsManagerStatic {
12
- reload(): void;
13
- setConsolePatchSettings(newSettings: string): void;
14
- getConsolePatchSettings(): string | null;
15
- setProfilingSettings(newSettings: string): void;
16
- getProfilingSettings(): string | null;
17
- }
18
-
19
- export const DevToolsSettingsManager: DevToolsSettingsManagerStatic;
20
- export type DevToolsSettingsManager = DevToolsSettingsManagerStatic;
@@ -1,49 +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
- * @flow strict-local
8
- * @format
9
- */
10
-
11
- import Settings from '../Settings/Settings';
12
- import DevSettings from '../Utilities/DevSettings';
13
-
14
- const CONSOLE_PATCH_SETTINGS_KEY = 'ReactDevTools::ConsolePatchSettings';
15
- const PROFILING_SETTINGS_KEY = 'ReactDevTools::ProfilingSettings';
16
-
17
- const DevToolsSettingsManager = {
18
- setConsolePatchSettings(newConsolePatchSettings: string): void {
19
- Settings.set({
20
- [CONSOLE_PATCH_SETTINGS_KEY]: newConsolePatchSettings,
21
- });
22
- },
23
- getConsolePatchSettings(): ?string {
24
- const value = Settings.get(CONSOLE_PATCH_SETTINGS_KEY);
25
- if (typeof value === 'string') {
26
- return value;
27
- }
28
- return null;
29
- },
30
-
31
- setProfilingSettings(newProfilingSettings: string): void {
32
- Settings.set({
33
- [PROFILING_SETTINGS_KEY]: newProfilingSettings,
34
- });
35
- },
36
- getProfilingSettings(): ?string {
37
- const value = Settings.get(PROFILING_SETTINGS_KEY);
38
- if (typeof value === 'string') {
39
- return value;
40
- }
41
- return null;
42
- },
43
-
44
- reload(): void {
45
- DevSettings?.reload();
46
- },
47
- };
48
-
49
- module.exports = DevToolsSettingsManager;
@@ -1,35 +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
- * @flow strict-local
8
- * @format
9
- */
10
-
11
- import DevSettings from '../Utilities/DevSettings';
12
- import NativeDevToolsSettingsManager from './NativeDevToolsSettingsManager';
13
-
14
- module.exports = {
15
- setConsolePatchSettings(newSettings: string) {
16
- NativeDevToolsSettingsManager?.setConsolePatchSettings(newSettings);
17
- },
18
- getConsolePatchSettings(): ?string {
19
- return NativeDevToolsSettingsManager?.getConsolePatchSettings();
20
- },
21
- setProfilingSettings(newSettings: string) {
22
- if (NativeDevToolsSettingsManager?.setProfilingSettings != null) {
23
- NativeDevToolsSettingsManager.setProfilingSettings(newSettings);
24
- }
25
- },
26
- getProfilingSettings(): ?string {
27
- if (NativeDevToolsSettingsManager?.getProfilingSettings != null) {
28
- return NativeDevToolsSettingsManager.getProfilingSettings();
29
- }
30
- return null;
31
- },
32
- reload(): void {
33
- DevSettings?.reload();
34
- },
35
- };
@@ -1,13 +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
- * @flow strict
8
- * @format
9
- */
10
-
11
- export * from '../../src/private/specs/modules/NativeDevToolsSettingsManager';
12
- import NativeDevToolsSettingsManager from '../../src/private/specs/modules/NativeDevToolsSettingsManager';
13
- export default NativeDevToolsSettingsManager;