react-native-windows 0.74.10 → 0.75.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 (327) hide show
  1. package/.flowconfig +8 -2
  2. package/Common/Common.vcxproj +8 -0
  3. package/Common/Utilities.cpp +2 -2
  4. package/Directory.Build.targets +5 -0
  5. package/Folly/Folly.vcxproj +10 -2
  6. package/Folly/Folly.vcxproj.filters +0 -7
  7. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +970 -0
  8. package/Folly/TEMP_UntilFollyUpdate/json.cpp +1110 -0
  9. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +4 -2
  10. package/Libraries/Animated/AnimatedImplementation.js +2 -0
  11. package/Libraries/Animated/NativeAnimatedHelper.js +4 -0
  12. package/Libraries/Animated/createAnimatedComponent.js +10 -4
  13. package/Libraries/Animated/useAnimatedProps.js +56 -28
  14. package/Libraries/BatchedBridge/MessageQueue.js +1 -0
  15. package/Libraries/Components/Button.js +10 -5
  16. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +11 -2
  17. package/Libraries/Components/Flyout/Flyout.js +10 -10
  18. package/Libraries/Components/Flyout/FlyoutNativeComponent.js +8 -7
  19. package/Libraries/Components/Pressable/Pressable.js +13 -6
  20. package/Libraries/Components/Pressable/Pressable.windows.js +13 -6
  21. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +4 -0
  22. package/Libraries/Components/ScrollView/ScrollView.js +109 -29
  23. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +6 -0
  24. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +6 -0
  25. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +13 -1
  26. package/Libraries/Components/StatusBar/StatusBar.js +1 -21
  27. package/Libraries/Components/Switch/Switch.windows.js +2 -0
  28. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +0 -15
  29. package/Libraries/Components/TextInput/InputAccessoryView.js +10 -1
  30. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +0 -12
  31. package/Libraries/Components/TextInput/TextInput.d.ts +0 -19
  32. package/Libraries/Components/TextInput/TextInput.js +20 -73
  33. package/Libraries/Components/TextInput/TextInput.windows.js +21 -75
  34. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +27 -12
  35. package/Libraries/Components/Touchable/Touchable.js +2 -2
  36. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +4 -10
  37. package/Libraries/Components/Touchable/TouchableHighlight.js +3 -1
  38. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +3 -1
  39. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +4 -32
  40. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -1
  41. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +3 -1
  42. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +8 -0
  43. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +117 -111
  44. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +129 -110
  45. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -0
  46. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  47. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  48. package/Libraries/Components/View/View.js +0 -11
  49. package/Libraries/Components/View/View.windows.js +0 -11
  50. package/Libraries/Components/View/ViewAccessibility.js +4 -4
  51. package/Libraries/Components/View/ViewAccessibility.windows.js +4 -4
  52. package/Libraries/Components/View/ViewPropTypes.d.ts +21 -59
  53. package/Libraries/Components/View/ViewPropTypes.js +7 -0
  54. package/Libraries/Components/View/ViewPropTypes.windows.js +7 -0
  55. package/Libraries/Core/Devtools/loadBundleFromServer.js +3 -3
  56. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +153 -0
  57. package/Libraries/Core/Devtools/parseErrorStack.js +5 -5
  58. package/Libraries/Core/Devtools/parseHermesStack.js +22 -16
  59. package/Libraries/Core/ErrorHandlers.js +116 -0
  60. package/Libraries/Core/ExceptionsManager.js +2 -2
  61. package/Libraries/Core/ReactNativeVersion.js +3 -3
  62. package/Libraries/Core/setUpDeveloperTools.js +3 -1
  63. package/Libraries/Core/setUpPerformance.js +6 -4
  64. package/Libraries/Core/setUpReactDevTools.js +70 -10
  65. package/Libraries/Core/setUpTimers.js +50 -31
  66. package/Libraries/Debugging/DebuggingOverlayRegistry.js +1 -1
  67. package/Libraries/Image/Image.android.js +23 -13
  68. package/Libraries/Image/Image.d.ts +14 -15
  69. package/Libraries/Image/Image.ios.js +21 -11
  70. package/Libraries/Image/Image.windows.js +21 -11
  71. package/Libraries/Image/ImageProps.js +16 -5
  72. package/Libraries/Image/ImageTypes.flow.js +7 -2
  73. package/Libraries/Image/ImageUtils.js +1 -0
  74. package/Libraries/Image/ImageViewNativeComponent.js +2 -1
  75. package/Libraries/Inspector/ElementBox.js +6 -3
  76. package/Libraries/Inspector/ElementProperties.js +1 -1
  77. package/Libraries/Interaction/TouchHistoryMath.js +4 -4
  78. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +6 -26
  79. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  80. package/Libraries/LogBox/Data/LogBoxData.js +39 -29
  81. package/Libraries/LogBox/Data/LogBoxLog.js +114 -2
  82. package/Libraries/LogBox/Data/parseLogBoxLog.js +168 -53
  83. package/Libraries/LogBox/LogBox.js +29 -12
  84. package/Libraries/LogBox/LogBoxNotificationContainer.js +4 -0
  85. package/Libraries/LogBox/UI/LogBoxInspector.js +8 -70
  86. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
  87. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +6 -42
  88. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
  89. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +5 -66
  90. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +5 -66
  91. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
  92. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +8 -5
  93. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +8 -5
  94. package/Libraries/LogBox/UI/LogBoxNotification.js +13 -152
  95. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
  96. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
  97. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
  98. package/Libraries/NativeComponent/BaseViewConfig.android.js +5 -0
  99. package/Libraries/NativeComponent/BaseViewConfig.ios.js +5 -0
  100. package/Libraries/NativeComponent/BaseViewConfig.windows.js +5 -0
  101. package/Libraries/NativeComponent/NativeComponentRegistry.js +12 -5
  102. package/Libraries/NativeComponent/StaticViewConfigValidator.js +3 -0
  103. package/Libraries/Network/XMLHttpRequest.js +5 -1
  104. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +3 -3
  105. package/Libraries/Pressability/Pressability.js +3 -51
  106. package/Libraries/Pressability/Pressability.windows.js +3 -51
  107. package/Libraries/ReactNative/AppRegistry.d.ts +4 -0
  108. package/Libraries/ReactNative/AppRegistry.js +2 -4
  109. package/Libraries/ReactNative/BridgelessUIManager.js +1 -21
  110. package/Libraries/ReactNative/FabricUIManager.js +0 -51
  111. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -0
  112. package/Libraries/ReactNative/RendererImplementation.js +20 -2
  113. package/Libraries/ReactNative/UIManager.d.ts +0 -21
  114. package/Libraries/ReactNative/UIManagerProperties.js +0 -3
  115. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +5 -341
  116. package/Libraries/ReactNative/getNativeComponentAttributes.js +8 -8
  117. package/Libraries/Renderer/implementations/ReactFabric-dev.js +15682 -27088
  118. package/Libraries/Renderer/implementations/ReactFabric-prod.js +5082 -4381
  119. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3480 -2571
  120. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +15943 -27543
  121. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +5303 -4606
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3450 -2572
  123. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  124. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  125. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  126. package/Libraries/Renderer/shims/ReactNativeTypes.js +24 -3
  127. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -2
  128. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  129. package/Libraries/Share/Share.d.ts +16 -10
  130. package/Libraries/Share/Share.js +14 -15
  131. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -1
  132. package/Libraries/StyleSheet/StyleSheet.js +3 -10
  133. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +21 -21
  134. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -18
  135. package/Libraries/StyleSheet/flattenStyle.js +1 -0
  136. package/Libraries/StyleSheet/processFilter.js +132 -0
  137. package/Libraries/StyleSheet/processTransform.js +18 -3
  138. package/Libraries/Text/Text.js +151 -128
  139. package/Libraries/Text/Text.windows.js +144 -127
  140. package/Libraries/Text/TextNativeComponent.js +5 -4
  141. package/Libraries/Text/TextProps.js +6 -6
  142. package/Libraries/Text/TextProps.windows.js +6 -6
  143. package/Libraries/TurboModule/TurboModuleRegistry.js +2 -1
  144. package/Libraries/Types/CodegenTypes.js +3 -0
  145. package/Libraries/Utilities/{LoadingView.android.js → DevLoadingView.js} +33 -11
  146. package/Libraries/Utilities/Dimensions.js +1 -0
  147. package/Libraries/Utilities/HMRClient.js +36 -8
  148. package/Libraries/Utilities/HMRClientProdShim.js +1 -0
  149. package/Libraries/Utilities/NativePlatformConstantsWin.js +2 -2
  150. package/Libraries/Utilities/Platform.android.js +4 -4
  151. package/Libraries/Utilities/RCTLog.js +1 -0
  152. package/Libraries/Utilities/ReactNativeTestTools.js +12 -24
  153. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +11 -6
  154. package/Libraries/__tests__/ViewWindows-test.js +6 -6
  155. package/Libraries/promiseRejectionTrackingOptions.js +1 -0
  156. package/Microsoft.ReactNative/Base/FollyIncludes.h +1 -1
  157. package/Microsoft.ReactNative/ComponentView.idl +0 -17
  158. package/Microsoft.ReactNative/Fabric/AbiState.cpp +3 -45
  159. package/Microsoft.ReactNative/Fabric/AbiState.h +0 -6
  160. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +10 -6
  161. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +4 -4
  162. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +12 -3
  163. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +1 -1
  164. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +7 -12
  165. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +1 -2
  166. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +9 -3
  167. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.h +1 -1
  168. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -18
  169. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +3 -5
  170. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +23 -11
  171. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +5 -2
  172. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +2 -10
  173. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -36
  174. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -12
  175. package/Microsoft.ReactNative/Modules/DevSettingsModule.cpp +4 -0
  176. package/Microsoft.ReactNative/Modules/DevSettingsModule.h +1 -0
  177. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -2
  178. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -4
  179. package/Microsoft.ReactNative/Modules/NativeUIManager.h +1 -1
  180. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.cpp +2 -2
  181. package/Microsoft.ReactNative/Modules/PlatformConstantsWinModule.h +3 -3
  182. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -17
  183. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  184. package/Microsoft.ReactNative/Timer.idl +1 -3
  185. package/Microsoft.ReactNative/Utils/BatchingEventEmitter.cpp +1 -1
  186. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +2 -3
  187. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  188. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +2 -2
  189. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  190. package/Microsoft.ReactNative/packages.lock.json +45 -72
  191. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  192. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -0
  193. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -0
  194. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.cpp +14 -6
  195. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +2 -2
  196. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +1 -1
  197. package/Microsoft.ReactNative.Managed/packages.lock.json +3 -3
  198. package/PropertySheets/ARM64EC.props +13 -0
  199. package/PropertySheets/Application/ARM64EC.props +13 -0
  200. package/PropertySheets/DynamicLibrary/ARM64EC.props +13 -0
  201. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +4 -4
  202. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  203. package/PropertySheets/JSEngine.props +2 -0
  204. package/PropertySheets/StaticLibrary/ARM64EC.props +13 -0
  205. package/README.md +21 -21
  206. package/ReactCommon/ReactCommon.vcxproj +11 -1
  207. package/ReactCommon/ReactCommon.vcxproj.filters +19 -12
  208. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +67 -0
  209. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +180 -0
  210. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +351 -0
  211. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +6 -3
  212. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Base.h +152 -0
  213. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +2 -1
  214. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +13 -15
  215. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/EventEmitter.h +137 -0
  216. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Function.h +283 -0
  217. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.cpp +7 -10
  218. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +162 -0
  219. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -4
  220. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +33 -8
  221. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.cpp +45 -0
  222. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/JSRuntimeFactory.h +67 -0
  223. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +104 -74
  224. package/Scripts/StripAdditionalPlatformsFromNuspec.ps1 +1 -1
  225. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +10 -6
  226. package/Scripts/rnw-dependencies.ps1 +36 -23
  227. package/Shared/HermesRuntimeHolder.cpp +19 -1
  228. package/Shared/HermesRuntimeHolder.h +8 -1
  229. package/Shared/HermesSamplingProfiler.cpp +1 -2
  230. package/Shared/Networking/WinRTWebSocketResource.cpp +3 -3
  231. package/Shared/OInstance.cpp +1 -2
  232. package/Shared/Shared.vcxitems +21 -15
  233. package/Shared/Shared.vcxitems.filters +8 -3
  234. package/Shared/Threading/BatchingQueueThread.cpp +6 -2
  235. package/Shared/Threading/BatchingQueueThread.h +2 -2
  236. package/Shared/Utils/CppWinrtLessExceptions.h +2 -2
  237. package/codegen/NativeAppStateSpec.g.h +8 -8
  238. package/codegen/NativeBlobModuleSpec.g.h +0 -10
  239. package/codegen/NativeDOMSpec.g.h +136 -0
  240. package/codegen/NativeDevSettingsSpec.g.h +11 -5
  241. package/codegen/NativeIdleCallbacksSpec.g.h +64 -0
  242. package/codegen/NativeIntersectionObserverSpec.g.h +14 -14
  243. package/codegen/NativeMicrotasksSpec.g.h +34 -0
  244. package/codegen/NativePerformanceSpec.g.h +35 -7
  245. package/codegen/NativePlatformConstantsWindowsSpec.g.h +81 -0
  246. package/codegen/NativePushNotificationManagerIOSSpec.g.h +15 -19
  247. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +111 -39
  248. package/codegen/NativeUIManagerSpec.g.h +5 -17
  249. package/codegen/react/components/rnwcore/Props.cpp +1 -1
  250. package/codegen/react/components/rnwcore/Props.h +16 -12
  251. package/codegen/react/components/rnwcore/States.h +0 -26
  252. package/codegen/rnwcoreJSI-generated.cpp +688 -463
  253. package/codegen/rnwcoreJSI.h +1374 -2867
  254. package/fmt/TEMP_UntilFmtUpdate/core.h +2925 -0
  255. package/fmt/fmt.vcxproj +10 -2
  256. package/jest/mockComponent.js +7 -0
  257. package/jest/renderer.js +25 -14
  258. package/jest/setup.js +19 -13
  259. package/package.json +29 -27
  260. package/rn-get-polyfills.js +1 -0
  261. package/src/private/core/composeStyles.js +27 -0
  262. package/src/private/featureflags/ReactNativeFeatureFlags.js +93 -33
  263. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +23 -4
  264. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +56 -0
  265. package/src/private/fusebox/setUpFuseboxReactDevToolsDispatcher.js +108 -0
  266. package/src/private/specs/modules/NativeBlobModule.js +4 -2
  267. package/src/private/specs/modules/NativeDevSettings.js +1 -0
  268. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +0 -4
  269. package/src/private/specs/modules/NativeUIManager.js +0 -7
  270. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +24 -24
  271. package/src/private/webapis/dom/nodes/ReactNativeElement.js +11 -14
  272. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +2 -3
  273. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +24 -54
  274. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -13
  275. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  276. package/src/private/webapis/dom/nodes/specs/__mocks__/NativeDOMMock.js +413 -0
  277. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +4 -4
  278. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -4
  279. package/src/private/webapis/dom/oldstylecollections/NodeList.js +5 -5
  280. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  281. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  282. package/src/private/webapis/performance/EventCounts.js +1 -1
  283. package/src/private/webapis/performance/MemoryInfo.js +9 -9
  284. package/src/private/webapis/performance/Performance.js +10 -56
  285. package/src/private/webapis/performance/PerformanceObserver.js +30 -22
  286. package/src/private/webapis/performance/RawPerformanceEntry.js +2 -7
  287. package/src/private/webapis/performance/ReactNativeStartupTiming.js +18 -18
  288. package/src/private/webapis/performance/UserTiming.js +63 -0
  289. package/src/private/webapis/performance/{NativePerformance.js → specs/NativePerformance.js} +3 -2
  290. package/src/private/webapis/performance/{NativePerformanceObserver.js → specs/NativePerformanceObserver.js} +2 -2
  291. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformance.js +1 -1
  292. package/src/private/webapis/performance/{__mocks__ → specs/__mocks__}/NativePerformanceObserver.js +3 -4
  293. package/stubs/glog/logging.h +1 -0
  294. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  295. package/template/cs-lib/proj/MyLib.csproj +1 -1
  296. package/template/metro.config.js +13 -2
  297. package/templates/cpp-app/template.config.js +1 -1
  298. package/templates/cpp-lib/example/metro.config.js +2 -2
  299. package/templates/cpp-lib/template.config.js +1 -1
  300. package/templates/old/generateWrapper.js +4 -1
  301. package/types/modules/globals.d.ts +4 -0
  302. package/Libraries/Lists/FlatList.windows.js +0 -717
  303. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -13
  304. package/Libraries/Utilities/LoadingView.ios.js +0 -50
  305. package/Libraries/Utilities/LoadingView.js +0 -16
  306. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +0 -178
  307. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.cpp +0 -39
  308. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/utils/jsi-utils.h +0 -31
  309. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/YGEnums.h +0 -137
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/algorithm/CalculateLayout.cpp +0 -2375
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/enums/ExperimentalFeature.h +0 -40
  312. package/codegen/NativeAnimationsDebugModuleSpec.g.h +0 -40
  313. package/codegen/NativePlatformConstantsWinSpec.g.h +0 -81
  314. package/jest/ReactNativeInternalFeatureFlagsMock.js +0 -13
  315. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +0 -44
  316. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +0 -92
  317. package/src/private/specs/modules/NativeAnimationsDebugModule.js +0 -20
  318. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +0 -85
  319. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +0 -80
  320. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +0 -161
  321. package/src/private/webapis/performance/__tests__/EventCounts-test.js +0 -116
  322. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +0 -82
  323. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +0 -108
  324. package/src/private/webapis/performance/__tests__/Performance-test.js +0 -117
  325. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +0 -208
  326. package/template/metro.devMode.config.js +0 -56
  327. /package/src/private/specs/modules/{NativePlatformConstantsWin.js → NativePlatformConstantsWindows.js} +0 -0
@@ -12,13 +12,15 @@
12
12
 
13
13
  import type {HighResTimeStamp, PerformanceEntryType} from './PerformanceEntry';
14
14
  import type {PerformanceEntryList} from './PerformanceObserver';
15
+ import type {
16
+ PerformanceMarkOptions,
17
+ PerformanceMeasureOptions,
18
+ } from './UserTiming';
15
19
 
16
20
  import warnOnce from '../../../../Libraries/Utilities/warnOnce';
17
21
  import EventCounts from './EventCounts';
18
22
  import MemoryInfo from './MemoryInfo';
19
- import NativePerformance from './NativePerformance';
20
- import NativePerformanceObserver from './NativePerformanceObserver';
21
- import {ALWAYS_LOGGED_ENTRY_TYPES, PerformanceEntry} from './PerformanceEntry';
23
+ import {ALWAYS_LOGGED_ENTRY_TYPES} from './PerformanceEntry';
22
24
  import {warnNoNativePerformanceObserver} from './PerformanceObserver';
23
25
  import {
24
26
  performanceEntryTypeToRaw,
@@ -26,22 +28,17 @@ import {
26
28
  } from './RawPerformanceEntry';
27
29
  import {RawPerformanceEntryTypeValues} from './RawPerformanceEntry';
28
30
  import ReactNativeStartupTiming from './ReactNativeStartupTiming';
29
-
30
- type DetailType = mixed;
31
-
32
- export type PerformanceMarkOptions = {
33
- detail?: DetailType,
34
- startTime?: HighResTimeStamp,
35
- };
31
+ import NativePerformance from './specs/NativePerformance';
32
+ import NativePerformanceObserver from './specs/NativePerformanceObserver';
33
+ import {PerformanceMark, PerformanceMeasure} from './UserTiming';
36
34
 
37
35
  declare var global: {
38
36
  // This value is defined directly via JSI, if available.
39
37
  +nativePerformanceNow?: ?() => number,
40
38
  };
41
39
 
42
- const getCurrentTimeStamp: () => HighResTimeStamp = global.nativePerformanceNow
43
- ? global.nativePerformanceNow
44
- : () => Date.now();
40
+ const getCurrentTimeStamp: () => HighResTimeStamp =
41
+ NativePerformance?.now ?? global.nativePerformanceNow ?? (() => Date.now());
45
42
 
46
43
  // We want some of the performance entry types to be always logged,
47
44
  // even if they are not currently observed - this is either to be able to
@@ -54,49 +51,6 @@ if (NativePerformanceObserver?.setIsBuffered) {
54
51
  );
55
52
  }
56
53
 
57
- export class PerformanceMark extends PerformanceEntry {
58
- detail: DetailType;
59
-
60
- constructor(markName: string, markOptions?: PerformanceMarkOptions) {
61
- super({
62
- name: markName,
63
- entryType: 'mark',
64
- startTime: markOptions?.startTime ?? getCurrentTimeStamp(),
65
- duration: 0,
66
- });
67
-
68
- if (markOptions) {
69
- this.detail = markOptions.detail;
70
- }
71
- }
72
- }
73
-
74
- export type TimeStampOrName = HighResTimeStamp | string;
75
-
76
- export type PerformanceMeasureOptions = {
77
- detail?: DetailType,
78
- start?: TimeStampOrName,
79
- end?: TimeStampOrName,
80
- duration?: HighResTimeStamp,
81
- };
82
-
83
- export class PerformanceMeasure extends PerformanceEntry {
84
- detail: DetailType;
85
-
86
- constructor(measureName: string, measureOptions?: PerformanceMeasureOptions) {
87
- super({
88
- name: measureName,
89
- entryType: 'measure',
90
- startTime: 0,
91
- duration: measureOptions?.duration ?? 0,
92
- });
93
-
94
- if (measureOptions) {
95
- this.detail = measureOptions.detail;
96
- }
97
- }
98
- }
99
-
100
54
  function warnNoNativePerformance() {
101
55
  warnOnce(
102
56
  'missing-native-performance',
@@ -11,7 +11,6 @@
11
11
  import type {HighResTimeStamp, PerformanceEntryType} from './PerformanceEntry';
12
12
 
13
13
  import warnOnce from '../../../../Libraries/Utilities/warnOnce';
14
- import NativePerformanceObserver from './NativePerformanceObserver';
15
14
  import {PerformanceEntry} from './PerformanceEntry';
16
15
  import PerformanceEventTiming from './PerformanceEventTiming';
17
16
  import {
@@ -19,22 +18,25 @@ import {
19
18
  rawToPerformanceEntry,
20
19
  rawToPerformanceEntryType,
21
20
  } from './RawPerformanceEntry';
21
+ import NativePerformanceObserver from './specs/NativePerformanceObserver';
22
22
 
23
23
  export type PerformanceEntryList = $ReadOnlyArray<PerformanceEntry>;
24
24
 
25
+ export {PerformanceEntry} from './PerformanceEntry';
26
+
25
27
  export class PerformanceObserverEntryList {
26
- _entries: PerformanceEntryList;
28
+ #entries: PerformanceEntryList;
27
29
 
28
30
  constructor(entries: PerformanceEntryList) {
29
- this._entries = entries;
31
+ this.#entries = entries;
30
32
  }
31
33
 
32
34
  getEntries(): PerformanceEntryList {
33
- return this._entries;
35
+ return this.#entries;
34
36
  }
35
37
 
36
38
  getEntriesByType(type: PerformanceEntryType): PerformanceEntryList {
37
- return this._entries.filter(entry => entry.entryType === type);
39
+ return this.#entries.filter(entry => entry.entryType === type);
38
40
  }
39
41
 
40
42
  getEntriesByName(
@@ -42,9 +44,9 @@ export class PerformanceObserverEntryList {
42
44
  type?: PerformanceEntryType,
43
45
  ): PerformanceEntryList {
44
46
  if (type === undefined) {
45
- return this._entries.filter(entry => entry.name === name);
47
+ return this.#entries.filter(entry => entry.name === name);
46
48
  } else {
47
- return this._entries.filter(
49
+ return this.#entries.filter(
48
50
  entry => entry.name === name && entry.entryType === type,
49
51
  );
50
52
  }
@@ -98,11 +100,17 @@ const onPerformanceEntry = () => {
98
100
  const durationThreshold = observerConfig.entryTypes.get(entry.entryType);
99
101
  return entry.duration >= (durationThreshold ?? 0);
100
102
  });
101
- observerConfig.callback(
102
- new PerformanceObserverEntryList(entriesForObserver),
103
- observer,
104
- droppedEntriesCount,
105
- );
103
+ if (entriesForObserver.length !== 0) {
104
+ try {
105
+ observerConfig.callback(
106
+ new PerformanceObserverEntryList(entriesForObserver),
107
+ observer,
108
+ droppedEntriesCount,
109
+ );
110
+ } catch (error) {
111
+ console.error(error);
112
+ }
113
+ }
106
114
  }
107
115
  };
108
116
 
@@ -167,11 +175,11 @@ function getSupportedPerformanceEntryTypes(): $ReadOnlyArray<PerformanceEntryTyp
167
175
  * observer.observe({ type: "event" });
168
176
  */
169
177
  export default class PerformanceObserver {
170
- _callback: PerformanceObserverCallback;
171
- _type: 'single' | 'multiple' | void;
178
+ #callback: PerformanceObserverCallback;
179
+ #type: 'single' | 'multiple' | void;
172
180
 
173
181
  constructor(callback: PerformanceObserverCallback) {
174
- this._callback = callback;
182
+ this.#callback = callback;
175
183
  }
176
184
 
177
185
  observe(options: PerformanceObserverInit): void {
@@ -180,17 +188,17 @@ export default class PerformanceObserver {
180
188
  return;
181
189
  }
182
190
 
183
- this._validateObserveOptions(options);
191
+ this.#validateObserveOptions(options);
184
192
 
185
193
  let requestedEntryTypes;
186
194
 
187
195
  if (options.entryTypes) {
188
- this._type = 'multiple';
196
+ this.#type = 'multiple';
189
197
  requestedEntryTypes = new Map(
190
198
  options.entryTypes.map(t => [t, undefined]),
191
199
  );
192
200
  } else {
193
- this._type = 'single';
201
+ this.#type = 'single';
194
202
  requestedEntryTypes = new Map([
195
203
  [options.type, options.durationThreshold],
196
204
  ]);
@@ -209,7 +217,7 @@ export default class PerformanceObserver {
209
217
  }
210
218
 
211
219
  registeredObservers.set(this, {
212
- callback: this._callback,
220
+ callback: this.#callback,
213
221
  entryTypes: nextEntryTypes,
214
222
  });
215
223
 
@@ -276,7 +284,7 @@ export default class PerformanceObserver {
276
284
  applyDurationThresholds();
277
285
  }
278
286
 
279
- _validateObserveOptions(options: PerformanceObserverInit): void {
287
+ #validateObserveOptions(options: PerformanceObserverInit): void {
280
288
  const {type, entryTypes, durationThreshold} = options;
281
289
 
282
290
  if (!type && !entryTypes) {
@@ -291,13 +299,13 @@ export default class PerformanceObserver {
291
299
  );
292
300
  }
293
301
 
294
- if (this._type === 'multiple' && type) {
302
+ if (this.#type === 'multiple' && type) {
295
303
  throw new Error(
296
304
  "Failed to execute 'observe' on 'PerformanceObserver': This observer has performed observe({entryTypes:...}, therefore it cannot perform observe({type:...})",
297
305
  );
298
306
  }
299
307
 
300
- if (this._type === 'single' && entryTypes) {
308
+ if (this.#type === 'single' && entryTypes) {
301
309
  throw new Error(
302
310
  "Failed to execute 'observe' on 'PerformanceObserver': This PerformanceObserver has performed observe({type:...}, therefore it cannot perform observe({entryTypes:...})",
303
311
  );
@@ -8,17 +8,16 @@
8
8
  * @flow strict
9
9
  */
10
10
 
11
+ import type {PerformanceEntryType} from './PerformanceEntry';
11
12
  import type {
12
13
  RawPerformanceEntry,
13
14
  RawPerformanceEntryType,
14
- } from './NativePerformanceObserver';
15
- import type {PerformanceEntryType} from './PerformanceEntry';
15
+ } from './specs/NativePerformanceObserver';
16
16
 
17
17
  import {PerformanceEntry} from './PerformanceEntry';
18
18
  import PerformanceEventTiming from './PerformanceEventTiming';
19
19
 
20
20
  export const RawPerformanceEntryTypeValues = {
21
- UNDEFINED: 0,
22
21
  MARK: 1,
23
22
  MEASURE: 2,
24
23
  EVENT: 3,
@@ -56,10 +55,6 @@ export function rawToPerformanceEntryType(
56
55
  return 'measure';
57
56
  case RawPerformanceEntryTypeValues.EVENT:
58
57
  return 'event';
59
- case RawPerformanceEntryTypeValues.UNDEFINED:
60
- throw new TypeError(
61
- "rawToPerformanceEntryType: UNDEFINED can't be cast to PerformanceEntryType",
62
- );
63
58
  default:
64
59
  throw new TypeError(
65
60
  `rawToPerformanceEntryType: unexpected performance entry type received: ${type}`,
@@ -27,22 +27,22 @@ export default class ReactNativeStartupTiming {
27
27
  // We do NOT match web spect here for two reasons:
28
28
  // 1. The `ReactNativeStartupTiming` is non-standard API
29
29
  // 2. The timing information is relative to the time origin, which means `0` has valid meaning
30
- _startTime: ?number;
31
- _endTime: ?number;
32
- _initializeRuntimeStart: ?number;
33
- _initializeRuntimeEnd: ?number;
34
- _executeJavaScriptBundleEntryPointStart: ?number;
35
- _executeJavaScriptBundleEntryPointEnd: ?number;
30
+ #startTime: ?number;
31
+ #endTime: ?number;
32
+ #initializeRuntimeStart: ?number;
33
+ #initializeRuntimeEnd: ?number;
34
+ #executeJavaScriptBundleEntryPointStart: ?number;
35
+ #executeJavaScriptBundleEntryPointEnd: ?number;
36
36
 
37
37
  constructor(startUpTiming: ?ReactNativeStartupTimingLike) {
38
38
  if (startUpTiming != null) {
39
- this._startTime = startUpTiming.startTime;
40
- this._endTime = startUpTiming.endTime;
41
- this._initializeRuntimeStart = startUpTiming.initializeRuntimeStart;
42
- this._initializeRuntimeEnd = startUpTiming.initializeRuntimeEnd;
43
- this._executeJavaScriptBundleEntryPointStart =
39
+ this.#startTime = startUpTiming.startTime;
40
+ this.#endTime = startUpTiming.endTime;
41
+ this.#initializeRuntimeStart = startUpTiming.initializeRuntimeStart;
42
+ this.#initializeRuntimeEnd = startUpTiming.initializeRuntimeEnd;
43
+ this.#executeJavaScriptBundleEntryPointStart =
44
44
  startUpTiming.executeJavaScriptBundleEntryPointStart;
45
- this._executeJavaScriptBundleEntryPointEnd =
45
+ this.#executeJavaScriptBundleEntryPointEnd =
46
46
  startUpTiming.executeJavaScriptBundleEntryPointEnd;
47
47
  }
48
48
  }
@@ -51,41 +51,41 @@ export default class ReactNativeStartupTiming {
51
51
  * Start time of the RN app startup process. This is provided by the platform by implementing the `ReactMarker.setAppStartTime` API in the native platform code.
52
52
  */
53
53
  get startTime(): ?number {
54
- return this._startTime;
54
+ return this.#startTime;
55
55
  }
56
56
 
57
57
  /**
58
58
  * End time of the RN app startup process. This is equal to `executeJavaScriptBundleEntryPointEnd`.
59
59
  */
60
60
  get endTime(): ?number {
61
- return this._endTime;
61
+ return this.#endTime;
62
62
  }
63
63
 
64
64
  /**
65
65
  * Start time when RN runtime get initialized. This is when RN infra first kicks in app startup process.
66
66
  */
67
67
  get initializeRuntimeStart(): ?number {
68
- return this._initializeRuntimeStart;
68
+ return this.#initializeRuntimeStart;
69
69
  }
70
70
 
71
71
  /**
72
72
  * End time when RN runtime get initialized. This is the last marker before ends of the app startup process.
73
73
  */
74
74
  get initializeRuntimeEnd(): ?number {
75
- return this._initializeRuntimeEnd;
75
+ return this.#initializeRuntimeEnd;
76
76
  }
77
77
 
78
78
  /**
79
79
  * Start time of JS bundle being executed. This indicates the RN JS bundle is loaded and start to be evaluated.
80
80
  */
81
81
  get executeJavaScriptBundleEntryPointStart(): ?number {
82
- return this._executeJavaScriptBundleEntryPointStart;
82
+ return this.#executeJavaScriptBundleEntryPointStart;
83
83
  }
84
84
 
85
85
  /**
86
86
  * End time of JS bundle being executed. This indicates all the synchronous entry point jobs are finished.
87
87
  */
88
88
  get executeJavaScriptBundleEntryPointEnd(): ?number {
89
- return this._executeJavaScriptBundleEntryPointEnd;
89
+ return this.#executeJavaScriptBundleEntryPointEnd;
90
90
  }
91
91
  }
@@ -0,0 +1,63 @@
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 type {HighResTimeStamp} from './PerformanceEntry';
12
+
13
+ import {PerformanceEntry} from './PerformanceEntry';
14
+
15
+ type DetailType = mixed;
16
+
17
+ export type PerformanceMarkOptions = {
18
+ detail?: DetailType,
19
+ startTime?: HighResTimeStamp,
20
+ };
21
+
22
+ export type TimeStampOrName = HighResTimeStamp | string;
23
+
24
+ export type PerformanceMeasureOptions = {
25
+ detail?: DetailType,
26
+ start?: TimeStampOrName,
27
+ end?: TimeStampOrName,
28
+ duration?: HighResTimeStamp,
29
+ };
30
+
31
+ export class PerformanceMark extends PerformanceEntry {
32
+ detail: DetailType;
33
+
34
+ constructor(markName: string, markOptions?: PerformanceMarkOptions) {
35
+ super({
36
+ name: markName,
37
+ entryType: 'mark',
38
+ startTime: markOptions?.startTime ?? performance.now(),
39
+ duration: 0,
40
+ });
41
+
42
+ if (markOptions) {
43
+ this.detail = markOptions.detail;
44
+ }
45
+ }
46
+ }
47
+
48
+ export class PerformanceMeasure extends PerformanceEntry {
49
+ detail: DetailType;
50
+
51
+ constructor(measureName: string, measureOptions?: PerformanceMeasureOptions) {
52
+ super({
53
+ name: measureName,
54
+ entryType: 'measure',
55
+ startTime: 0,
56
+ duration: measureOptions?.duration ?? 0,
57
+ });
58
+
59
+ if (measureOptions) {
60
+ this.detail = measureOptions.detail;
61
+ }
62
+ }
63
+ }
@@ -8,15 +8,16 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport';
11
+ import type {TurboModule} from '../../../../../Libraries/TurboModule/RCTExport';
12
12
 
13
- import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry';
13
+ import * as TurboModuleRegistry from '../../../../../Libraries/TurboModule/TurboModuleRegistry';
14
14
 
15
15
  export type NativeMemoryInfo = {[key: string]: ?number};
16
16
 
17
17
  export type ReactNativeStartupTiming = {[key: string]: ?number};
18
18
 
19
19
  export interface Spec extends TurboModule {
20
+ +now?: () => number;
20
21
  +mark: (name: string, startTime: number) => void;
21
22
  +measure: (
22
23
  name: string,
@@ -8,9 +8,9 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport';
11
+ import type {TurboModule} from '../../../../../Libraries/TurboModule/RCTExport';
12
12
 
13
- import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry';
13
+ import * as TurboModuleRegistry from '../../../../../Libraries/TurboModule/TurboModuleRegistry';
14
14
 
15
15
  export type RawPerformanceEntryType = number;
16
16
 
@@ -14,8 +14,8 @@ import type {
14
14
  Spec as NativePerformance,
15
15
  } from '../NativePerformance';
16
16
 
17
+ import {RawPerformanceEntryTypeValues} from '../../RawPerformanceEntry';
17
18
  import NativePerformanceObserver from '../NativePerformanceObserver';
18
- import {RawPerformanceEntryTypeValues} from '../RawPerformanceEntry';
19
19
 
20
20
  const marks: Map<string, number> = new Map();
21
21
 
@@ -15,7 +15,7 @@ import type {
15
15
  Spec as NativePerformanceObserver,
16
16
  } from '../NativePerformanceObserver';
17
17
 
18
- import {RawPerformanceEntryTypeValues} from '../RawPerformanceEntry';
18
+ import {RawPerformanceEntryTypeValues} from '../../RawPerformanceEntry';
19
19
 
20
20
  const reportingType: Set<RawPerformanceEntryType> = new Set();
21
21
  const isAlwaysLogged: Set<RawPerformanceEntryType> = new Set();
@@ -95,11 +95,10 @@ const NativePerformanceObserverMock: NativePerformanceObserver = {
95
95
  durationThresholds.set(entryType, durationThreshold);
96
96
  },
97
97
 
98
- clearEntries: (entryType: RawPerformanceEntryType, entryName?: string) => {
98
+ clearEntries: (entryType?: RawPerformanceEntryType, entryName?: string) => {
99
99
  entries = entries.filter(
100
100
  e =>
101
- (entryType !== RawPerformanceEntryTypeValues.UNDEFINED &&
102
- e.entryType !== entryType) ||
101
+ (entryType != null && e.entryType !== entryType) ||
103
102
  (entryName != null && e.name !== entryName),
104
103
  );
105
104
  },
@@ -69,6 +69,7 @@ inline std::ostream &GetNullLog() noexcept {
69
69
  }
70
70
 
71
71
  #define LOG(b) GlogStub::GetNullLog()
72
+ #define LOG_EVERY_N(severity, n) GlogStub::GetNullLog()
72
73
 
73
74
  typedef int LogSeverity;
74
75
  inline void FlushLogFiles(LogSeverity min_severity) {}
@@ -20,7 +20,7 @@
20
20
  </PropertyGroup>
21
21
  <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.WindowsSdk.Default.props" Condition="Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.WindowsSdk.Default.props')" />
22
22
  <PropertyGroup Label="Fallback Windows SDK Versions">
23
- <WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.19041.0</WindowsTargetPlatformVersion>
23
+ <WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.22621.0</WindowsTargetPlatformVersion>
24
24
  <WindowsTargetPlatformMinVersion Condition=" '$(WindowsTargetPlatformMinVersion)' == '' ">10.0.17763.0</WindowsTargetPlatformMinVersion>
25
25
  </PropertyGroup>
26
26
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@@ -24,7 +24,7 @@
24
24
  </PropertyGroup>
25
25
  <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.WindowsSdk.Default.props" Condition="Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.WindowsSdk.Default.props')" />
26
26
  <PropertyGroup Label="Fallback Windows SDK Versions">
27
- <TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.19041.0</TargetPlatformVersion>
27
+ <TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.22621.0</TargetPlatformVersion>
28
28
  <TargetPlatformMinVersion Condition=" '$(TargetPlatformMinVersion)' == '' ">10.0.17763.0</TargetPlatformMinVersion>
29
29
  </PropertyGroup>
30
30
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
@@ -8,6 +8,11 @@ const rnwPath = fs.realpathSync(
8
8
  path.resolve(require.resolve('react-native-windows/package.json'), '..'),
9
9
  );
10
10
 
11
+ //{{#devMode}} [devMode
12
+ const rnwRootNodeModules = path.resolve(rnwPath, '..', 'node_modules');
13
+ const rnwPackages = path.resolve(rnwPath, '..', 'packages');
14
+ // devMode]{{/devMode}}
15
+
11
16
  /**
12
17
  * Metro configuration
13
18
  * https://facebook.github.io/metro/docs/configuration
@@ -16,6 +21,9 @@ const rnwPath = fs.realpathSync(
16
21
  */
17
22
 
18
23
  const config = {
24
+ //{{#devMode}} [devMode
25
+ watchFolders: [rnwPath, rnwRootNodeModules, rnwPackages],
26
+ // devMode]{{/devMode}}
19
27
  resolver: {
20
28
  blockList: exclusionList([
21
29
  // This stops "react-native run-windows" from causing the metro server to crash if its already running
@@ -27,6 +35,11 @@ const config = {
27
35
  new RegExp(`${rnwPath}/target/.*`),
28
36
  /.*\.ProjectImports\.zip/,
29
37
  ]),
38
+ //{{#devMode}} [devMode
39
+ extraNodeModules: {
40
+ 'react-native-windows': rnwPath,
41
+ },
42
+ // devMode]{{/devMode}}
30
43
  },
31
44
  transformer: {
32
45
  getTransformOptions: async () => ({
@@ -35,8 +48,6 @@ const config = {
35
48
  inlineRequires: true,
36
49
  },
37
50
  }),
38
- // This fixes the 'missing-asset-registry-path` error (see https://github.com/microsoft/react-native-windows/issues/11437)
39
- assetRegistryPath: 'react-native/Libraries/Image/AssetRegistry',
40
51
  },
41
52
  };
42
53
 
@@ -113,7 +113,7 @@ async function postInstall(config = {}, options = {}) {
113
113
  'test:windows': 'jest --config jest.config.windows.js',
114
114
  },
115
115
  devDependencies: {
116
- '@rnx-kit/jest-preset': '^0.1.16',
116
+ '@rnx-kit/jest-preset': '^0.1.17',
117
117
  },
118
118
  });
119
119
 
@@ -3,10 +3,10 @@ const fs = require('fs');
3
3
  const path = require('path');
4
4
  const escape = require('escape-string-regexp');
5
5
  const exclusionList = require('metro-config/src/defaults/exclusionList');
6
- const pak = require('../package.json');
6
+ const pack = require('../package.json');
7
7
 
8
8
  const root = path.resolve(__dirname, '..');
9
- const modules = Object.keys({ ...pak.peerDependencies });
9
+ const modules = Object.keys({ ...pack.peerDependencies });
10
10
 
11
11
  const rnwPath = fs.realpathSync(
12
12
  path.resolve(require.resolve('react-native-windows/package.json'), '..'),
@@ -212,7 +212,7 @@ async function postInstall(config = {}, options = {}) {
212
212
  'react-native-windows': rnwVersion,
213
213
  },
214
214
  devDependencies: {
215
- '@rnx-kit/jest-preset': '^0.1.16',
215
+ '@rnx-kit/jest-preset': '^0.1.17',
216
216
  },
217
217
  });
218
218
 
@@ -7,6 +7,7 @@
7
7
  */
8
8
 
9
9
  const generateWindows = require('../../generate');
10
+ const templateUtils = require('../templateUtils');
10
11
 
11
12
  function makeGenerateWindowsWrapper(
12
13
  language = 'cpp',
@@ -33,6 +34,8 @@ function makeGenerateWindowsWrapper(
33
34
  const postInstall = async (config = {}, options = {}) => {
34
35
  const experimentalFeatures = config?.project?.windows?.experimentalFeatures;
35
36
 
37
+ const rnwInfo = templateUtils.getRnwInfo(config, options);
38
+
36
39
  const generateOptions = {
37
40
  overwrite: !!options.overwrite,
38
41
  language,
@@ -41,7 +44,7 @@ function makeGenerateWindowsWrapper(
41
44
  experimentalFeatures?.UseExperimentalNuget ?? false,
42
45
  useWinUI3: experimentalFeatures?.UseWinUI3 ?? false,
43
46
  useHermes: experimentalFeatures?.UseHermes ?? true,
44
- useDevMode: false,
47
+ useDevMode: rnwInfo.devMode,
45
48
  verbose: !!options.logging,
46
49
  telemetry: !!options.telemetry,
47
50
  };
@@ -132,6 +132,10 @@ declare interface Headers {
132
132
  get(name: string): string | null;
133
133
  has(name: string): boolean;
134
134
  set(name: string, value: string): void;
135
+ entries(): IterableIterator<[string, string]>;
136
+ keys(): IterableIterator<string>;
137
+ values(): IterableIterator<string>;
138
+ [Symbol.iterator](): IterableIterator<[string, string]>;
135
139
  }
136
140
 
137
141
  declare var Headers: {