react-native-windows 0.84.0-preview.9 → 0.85.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 (487) hide show
  1. package/.flowconfig +1 -5
  2. package/Common/unicode.cpp +36 -0
  3. package/Common/unicode.h +8 -0
  4. package/Directory.Build.props +1 -16
  5. package/Directory.Build.targets +12 -4
  6. package/Folly/ThreadNameStub.cpp +4 -6
  7. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  8. package/Libraries/Animated/Animated.d.ts +8 -1
  9. package/Libraries/Animated/AnimatedEvent.js +4 -4
  10. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  11. package/Libraries/Animated/animations/Animation.js +3 -3
  12. package/Libraries/Animated/animations/DecayAnimation.js +4 -4
  13. package/Libraries/Animated/animations/SpringAnimation.js +5 -5
  14. package/Libraries/Animated/animations/TimingAnimation.js +5 -5
  15. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  16. package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
  18. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  19. package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
  20. package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
  21. package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
  22. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  23. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  24. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  25. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  26. package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
  27. package/Libraries/Animated/useAnimatedColor.js +25 -0
  28. package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
  29. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  30. package/Libraries/AppState/AppState.js +1 -1
  31. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  32. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  34. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +34 -30
  35. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  36. package/Libraries/Components/Button.js +2 -2
  37. package/Libraries/Components/Button.windows.js +2 -2
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  39. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  40. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  41. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  42. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  43. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  44. package/Libraries/Components/Pressable/Pressable.js +3 -3
  45. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  46. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  47. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  48. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  49. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  50. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +5 -5
  51. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
  52. package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
  53. package/Libraries/Components/ScrollView/ScrollView.js +19 -9
  54. package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -9
  55. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
  56. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +8 -18
  57. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
  58. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  59. package/Libraries/Components/StaticRenderer.js +1 -1
  60. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  61. package/Libraries/Components/Switch/Switch.js +3 -3
  62. package/Libraries/Components/Switch/Switch.windows.js +3 -3
  63. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  64. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  65. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  66. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  67. package/Libraries/Components/TextInput/TextInput.flow.windows.js +23 -22
  68. package/Libraries/Components/TextInput/TextInput.js +8 -4
  69. package/Libraries/Components/TextInput/TextInput.windows.js +3 -4
  70. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +33 -48
  71. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  72. package/Libraries/Components/Touchable/Touchable.js +2 -2
  73. package/Libraries/Components/Touchable/Touchable.windows.js +2 -2
  74. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  75. package/Libraries/Components/Touchable/TouchableBounce.windows.js +4 -4
  76. package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
  77. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -9
  78. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  79. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +7 -7
  80. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
  81. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -4
  82. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  83. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  84. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  85. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  86. package/Libraries/Components/View/View.windows.js +1 -1
  87. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  88. package/Libraries/Components/View/ViewAccessibility.windows.js +7 -7
  89. package/Libraries/Components/View/ViewPropTypes.js +14 -14
  90. package/Libraries/Components/View/ViewPropTypes.windows.js +18 -16
  91. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  92. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  93. package/Libraries/Core/ExceptionsManager.js +2 -2
  94. package/Libraries/Core/ExtendedError.js +3 -3
  95. package/Libraries/Core/RawEventEmitter.js +1 -1
  96. package/Libraries/Core/ReactNativeVersion.js +2 -2
  97. package/Libraries/Core/Timers/JSTimers.js +3 -2
  98. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  99. package/Libraries/Core/setUpErrorHandling.js +4 -2
  100. package/Libraries/Core/setUpReactDevTools.js +23 -6
  101. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  102. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  103. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  104. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  105. package/Libraries/Image/AssetSourceResolver.js +1 -1
  106. package/Libraries/Image/AssetSourceResolver.windows.js +1 -1
  107. package/Libraries/Image/Image.android.js +172 -306
  108. package/Libraries/Image/ImageProps.js +9 -11
  109. package/Libraries/Image/ImageSource.js +2 -2
  110. package/Libraries/Image/ImageSourceUtils.js +8 -4
  111. package/Libraries/Image/ImageTypes.flow.js +2 -2
  112. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  113. package/Libraries/Image/nativeImageSource.js +1 -1
  114. package/Libraries/Interaction/InteractionManager.js +5 -4
  115. package/Libraries/Interaction/PanResponder.js +1 -1
  116. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  117. package/Libraries/Linking/Linking.js +1 -1
  118. package/Libraries/Lists/FlatList.js +3 -3
  119. package/Libraries/Lists/SectionList.js +1 -1
  120. package/Libraries/Lists/SectionListModern.js +2 -2
  121. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  122. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  123. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  124. package/Libraries/LogBox/LogBox.js +42 -19
  125. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  126. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  127. package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
  128. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  129. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  130. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -9
  131. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  132. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  134. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  135. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  136. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  137. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  138. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +15 -16
  139. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  140. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  141. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  142. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +3 -5
  143. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  144. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  145. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  146. package/Libraries/Modal/Modal.d.ts +4 -0
  147. package/Libraries/Modal/Modal.js +3 -3
  148. package/Libraries/Modal/Modal.windows.js +7 -3
  149. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  150. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  151. package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -17
  152. package/Libraries/Network/RCTNetworking.android.js +1 -1
  153. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  154. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  155. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  156. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  157. package/Libraries/Network/XMLHttpRequest.js +1 -1
  158. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  159. package/Libraries/Pressability/Pressability.js +5 -5
  160. package/Libraries/Pressability/Pressability.windows.js +5 -5
  161. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  162. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  163. package/Libraries/Pressability/usePressability.js +3 -14
  164. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  165. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  166. package/Libraries/ReactNative/AppContainer.js +1 -1
  167. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  168. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  169. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  170. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  171. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  172. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  173. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  174. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  175. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  176. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  177. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  178. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  179. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +1 -3
  180. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  181. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  182. package/Libraries/StyleSheet/PointPropType.js +1 -1
  183. package/Libraries/StyleSheet/Rect.js +1 -1
  184. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  185. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  186. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  187. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  188. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  189. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
  190. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  191. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  192. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  193. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  194. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  195. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  196. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  197. package/Libraries/StyleSheet/processColorArray.js +2 -2
  198. package/Libraries/StyleSheet/processFilter.js +2 -2
  199. package/Libraries/Text/Text.js +295 -627
  200. package/Libraries/Text/Text.windows.js +342 -717
  201. package/Libraries/Text/TextNativeComponent.js +14 -7
  202. package/Libraries/Text/TextProps.js +4 -4
  203. package/Libraries/Text/TextProps.windows.js +4 -4
  204. package/Libraries/Types/CodegenTypes.js +1 -1
  205. package/Libraries/Types/CoreEventTypes.js +21 -21
  206. package/Libraries/Types/CoreEventTypes.windows.js +21 -21
  207. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  208. package/Libraries/Utilities/Appearance.js +6 -1
  209. package/Libraries/Utilities/Dimensions.js +1 -1
  210. package/Libraries/Utilities/HMRClient.js +32 -5
  211. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  212. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  213. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  214. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  215. package/Libraries/Utilities/logError.js +1 -1
  216. package/Libraries/Utilities/stringifySafe.js +3 -3
  217. package/Libraries/Utilities/useMergeRefs.js +2 -2
  218. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  219. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  220. package/Microsoft.ReactNative/CallInvoker.cpp +14 -4
  221. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
  222. package/Microsoft.ReactNative/Fabric/AbiPortalShadowNode.cpp +2 -2
  223. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
  224. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +73 -97
  225. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -1
  226. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -1
  227. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +5 -0
  228. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +94 -26
  229. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +11 -0
  230. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +135 -18
  231. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -0
  232. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +7 -2
  233. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +2 -0
  234. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +63 -15
  235. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +9 -5
  236. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +28 -6
  237. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +1 -1
  238. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  239. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -1
  240. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +80 -0
  241. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.h +17 -0
  242. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -0
  243. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -0
  244. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +3 -0
  245. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -3
  246. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +3 -8
  247. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -0
  248. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -63
  249. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -26
  250. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -1
  251. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -17
  252. package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -4
  253. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -2
  254. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +16 -15
  255. package/Microsoft.ReactNative/Modules/AppearanceModule.h +5 -1
  256. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +2 -7
  257. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +0 -1
  258. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +4 -4
  259. package/Microsoft.ReactNative/QuirkSettings.cpp +0 -133
  260. package/Microsoft.ReactNative/QuirkSettings.h +0 -43
  261. package/Microsoft.ReactNative/QuirkSettings.idl +0 -41
  262. package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +0 -4
  263. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -2
  264. package/Microsoft.ReactNative/ReactHost/React.h +0 -5
  265. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -1
  266. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -26
  267. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -5
  268. package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -2
  269. package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +3 -0
  270. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +7 -0
  271. package/Microsoft.ReactNative/ReactPackageBuilder.h +1 -0
  272. package/Microsoft.ReactNative/RedBox.cpp +0 -9
  273. package/Microsoft.ReactNative/RedBoxHandler.cpp +0 -4
  274. package/Microsoft.ReactNative/TurboModulesProvider.cpp +5 -10
  275. package/Microsoft.ReactNative/TurboModulesProvider.h +2 -0
  276. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +33 -25
  277. package/Microsoft.ReactNative/Utils/LocalBundleReader.h +5 -3
  278. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  279. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -7
  280. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +0 -22
  281. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +8 -2
  282. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +36 -20
  283. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -3
  284. package/Microsoft.ReactNative.Cxx/NativeModules.h +8 -2
  285. package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -9
  286. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +3 -3
  287. package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -9
  288. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +10 -10
  289. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Debug.pubxml +1 -1
  290. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Release.pubxml +1 -1
  291. package/PropertySheets/Autolink.props +1 -1
  292. package/PropertySheets/Bundle.props +1 -1
  293. package/PropertySheets/Codegen.props +1 -1
  294. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  295. package/PropertySheets/JSEngine.props +1 -1
  296. package/PropertySheets/NuGet.LockFile.props +8 -0
  297. package/PropertySheets/React.Cpp.props +8 -7
  298. package/PropertySheets/ReactNativeArchitecture.props +6 -24
  299. package/PropertySheets/WinUI.props +2 -2
  300. package/ReactCommon/ReactCommon.vcxproj +5 -6
  301. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1 -1
  302. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +15 -4
  303. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +13 -0
  304. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp +69 -0
  305. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp +717 -0
  306. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  307. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  308. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +151 -0
  309. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +50 -0
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBuffer.cpp +178 -0
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +69 -39
  312. package/Scripts/JustMyXaml.ps1 +8 -8
  313. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  314. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -39
  315. package/Scripts/UnitTest.ps1 +3 -1
  316. package/Scripts/creaternwapp.cmd +1 -9
  317. package/Scripts/creaternwlib.cmd +4 -24
  318. package/Scripts/rnw-dependencies.ps1 +15 -16
  319. package/Shared/DevSettings.h +0 -3
  320. package/Shared/DevSupportManager.cpp +55 -48
  321. package/Shared/DevSupportManager.h +0 -1
  322. package/Shared/Modules/IWebSocketModuleContentHandler.h +15 -0
  323. package/Shared/Modules/WebSocketModule.cpp +8 -3
  324. package/Shared/Networking/DefaultBlobResource.cpp +37 -0
  325. package/Shared/Networking/DefaultBlobResource.h +12 -0
  326. package/Shared/Networking/WinRTWebSocketResource.cpp +23 -408
  327. package/Shared/Networking/WinRTWebSocketResource.h +8 -120
  328. package/Shared/Shared.vcxitems +63 -38
  329. package/Shared/Shared.vcxitems.filters +54 -0
  330. package/Shared/Utils.cpp +0 -88
  331. package/Shared/Utils.h +0 -14
  332. package/Shared/WebSocketResourceFactory.cpp +28 -0
  333. package/Shared/tracing/fbsystrace.h +1 -0
  334. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +172 -160
  335. package/codegen/react/components/rnwcore/ModalHostView.g.h +8 -0
  336. package/codegen/react/components/rnwcore/Props.cpp +17 -7
  337. package/codegen/react/components/rnwcore/Props.h +3 -1
  338. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +4 -4
  339. package/codegen/rnwcoreJSI.h +93 -77
  340. package/index.js +9 -0
  341. package/index.windows.js +9 -0
  342. package/jest/RefreshControlMock.js +2 -2
  343. package/jest/assetFileTransformer.js +8 -3
  344. package/jest/mockComponent.js +3 -4
  345. package/jest/mockNativeComponent.js +1 -1
  346. package/jest/mocks/ActivityIndicator.js +2 -2
  347. package/jest/mocks/Image.js +2 -2
  348. package/jest/mocks/Modal.js +2 -2
  349. package/jest/mocks/RefreshControl.js +3 -3
  350. package/jest/mocks/RendererProxy.js +2 -2
  351. package/jest/mocks/ScrollView.js +5 -5
  352. package/jest/mocks/Text.js +2 -2
  353. package/jest/mocks/TextInput.js +2 -2
  354. package/jest/mocks/View.js +2 -2
  355. package/jest/mocks/ViewNativeComponent.js +1 -1
  356. package/jest/mocks/requireNativeComponent.js +1 -1
  357. package/jest/mocks/useColorScheme.js +1 -1
  358. package/jest/setup.js +68 -31
  359. package/just-task.js +13 -2
  360. package/package.json +25 -20
  361. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  362. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  363. package/src/private/components/virtualview/VirtualView.js +14 -21
  364. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  365. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  366. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  367. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  368. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  369. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  370. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  371. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  372. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  373. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  374. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  375. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  376. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  377. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  378. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  379. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  380. package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
  381. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  382. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
  383. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  384. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  385. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  386. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  387. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  388. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  389. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  390. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  391. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  392. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  393. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +7 -3
  394. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  395. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  396. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  397. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  398. package/src/private/styles/composeStyles.js +1 -1
  399. package/src/private/utilities/toError.js +27 -0
  400. package/src/private/utilities/toExtendedError.js +30 -0
  401. package/src/private/webapis/dom/events/Event.js +1 -1
  402. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  403. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  404. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  405. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  406. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  407. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  408. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  409. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  410. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  411. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  412. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  413. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  414. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  415. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  416. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  417. package/src/private/webapis/performance/LongTasks.js +3 -3
  418. package/src/private/webapis/performance/Performance.js +4 -4
  419. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  420. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  421. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  422. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  423. package/src/types/globals.d.ts +4 -4
  424. package/template/cpp-lib/proj/MyLib.sln +0 -33
  425. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  426. package/template/cs-lib/proj/MyLib.sln +0 -33
  427. package/template/metro.config.js +12 -2
  428. package/templates/cpp-app/metro.config.js +12 -2
  429. package/templates/cpp-app/windows/MyApp/MyApp.cpp +9 -6
  430. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +2 -2
  431. package/templates/cpp-app/windows/MyApp.sln +0 -33
  432. package/templates/cpp-lib/example/metro.config.js +12 -2
  433. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +2 -2
  434. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  435. package/types/index.d.ts +2 -0
  436. package/Folly/.clang-format +0 -2
  437. package/Folly/Folly.natvis +0 -25
  438. package/Folly/Folly.vcxproj +0 -378
  439. package/Folly/Folly.vcxproj.filters +0 -558
  440. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +0 -978
  441. package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +0 -1205
  442. package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +0 -155
  443. package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +0 -633
  444. package/Folly/TEMP_UntilFollyUpdate/json/dynamic-inl.h +0 -1438
  445. package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +0 -1118
  446. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +0 -188
  447. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +0 -348
  448. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +0 -182
  449. package/Folly/TEMP_UntilFollyUpdate/portability/Unistd.cpp +0 -33
  450. package/Folly/cgmanifest.json +0 -25
  451. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  452. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +0 -64
  453. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  454. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -75
  455. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +0 -27
  456. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +0 -81
  457. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -24
  458. package/Microsoft.ReactNative/ReactSupport.cpp +0 -221
  459. package/Microsoft.ReactNative/ReactSupport.h +0 -13
  460. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.cpp +0 -107
  461. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -62
  462. package/Microsoft.ReactNative/Utils/UwpScriptStore.cpp +0 -56
  463. package/Microsoft.ReactNative/Utils/UwpScriptStore.h +0 -22
  464. package/Microsoft.ReactNative/XamlUIService.cpp +0 -68
  465. package/Microsoft.ReactNative/XamlUIService.h +0 -37
  466. package/Microsoft.ReactNative/XamlUIService.idl +0 -53
  467. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +0 -259
  468. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +0 -381
  469. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +0 -145
  470. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +0 -100
  471. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +0 -256
  472. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -363
  473. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +0 -93
  474. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -148
  475. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +0 -190
  476. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +0 -123
  477. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +0 -27
  478. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +0 -414
  479. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +0 -91
  480. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -80
  481. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +0 -138
  482. package/fmt/.clang-format +0 -2
  483. package/fmt/cgmanifest.json +0 -15
  484. package/fmt/fmt.vcxproj +0 -153
  485. package/fmt/fmt.vcxproj.filters +0 -59
  486. package/fmt/pch.cpp +0 -4
  487. package/fmt/pch.h +0 -2
@@ -68,20 +68,17 @@
68
68
  #include <react/threading/MessageQueueThreadImpl.h>
69
69
  #include "Inspector/ReactInspectorThread.h"
70
70
 
71
- #ifndef CORE_ABI
72
- #include <Utils/UwpPreparedScriptStore.h>
73
- #include <Utils/UwpScriptStore.h>
74
71
  #include "Modules/AccessibilityInfoModule.h"
75
72
  #include "Modules/AlertModule.h"
76
73
  #include "Modules/AppStateModule.h"
77
74
  #include "Modules/AppThemeModuleUwp.h"
75
+ #include "Modules/AppearanceModule.h"
78
76
  #include "Modules/ClipboardModule.h"
79
77
  #include "Modules/DeviceInfoModule.h"
78
+ #include "Modules/ExceptionsManager.h"
80
79
  #include "Modules/I18nManagerModule.h"
81
80
  #include "Modules/LinkingManagerModule.h"
82
81
  #include "Modules/LogBoxModule.h"
83
- #endif
84
- #include "Modules/ExceptionsManager.h"
85
82
  #include "Modules/PlatformConstantsWinModule.h"
86
83
  #include "Modules/ReactRootViewTagGenerator.h"
87
84
  #include "Modules/SourceCode.h"
@@ -244,8 +241,8 @@ void ReactInstanceWin::LoadModules(
244
241
  registerTurboModule(
245
242
  L"FabricUIManagerBinding",
246
243
  winrt::Microsoft::ReactNative::MakeModuleProvider<::Microsoft::ReactNative::FabricUIManager>());
244
+ turboModulesProvider->AddEagerInit("FabricUIManagerBinding");
247
245
 
248
- #ifndef CORE_ABI
249
246
  registerTurboModule(
250
247
  L"AccessibilityInfo",
251
248
  winrt::Microsoft::ReactNative::MakeTurboModuleProvider<::Microsoft::ReactNative::AccessibilityInfo>());
@@ -278,15 +275,6 @@ void ReactInstanceWin::LoadModules(
278
275
  L"NativeAnimatedModule",
279
276
  winrt::Microsoft::ReactNative::MakeModuleProvider<::Microsoft::ReactNative::NativeAnimatedModule>());
280
277
 
281
- #else
282
- registerTurboModule(
283
- L"ImageLoader", winrt::Microsoft::ReactNative::MakeTurboModuleProvider<::Microsoft::ReactNative::ImageLoader>());
284
-
285
- registerTurboModule(
286
- L"NativeAnimatedModule",
287
- winrt::Microsoft::ReactNative::MakeModuleProvider<::Microsoft::ReactNative::NativeAnimatedModule>());
288
- #endif
289
-
290
278
  turboModulesProvider->AddModuleProvider(
291
279
  L"SampleTurboModule",
292
280
  winrt::Microsoft::ReactNative::MakeTurboModuleProvider<::Microsoft::ReactNative::SampleTurboModule>(),
@@ -330,14 +318,12 @@ void ReactInstanceWin::LoadModules(
330
318
  registerTurboModule(
331
319
  L"DevSettings", winrt::Microsoft::ReactNative::MakeTurboModuleProvider<::Microsoft::ReactNative::DevSettings>());
332
320
 
333
- #ifndef CORE_ABI
334
321
  registerTurboModule(
335
322
  L"I18nManager", winrt::Microsoft::ReactNative::MakeTurboModuleProvider<::Microsoft::ReactNative::I18nManager>());
336
323
 
337
324
  registerTurboModule(
338
325
  L"LinkingManager",
339
326
  winrt::Microsoft::ReactNative::MakeTurboModuleProvider<::Microsoft::ReactNative::LinkingManager>());
340
- #endif
341
327
 
342
328
  registerTurboModule(L"Timing", winrt::Microsoft::ReactNative::MakeModuleProvider<::Microsoft::ReactNative::Timing>());
343
329
 
@@ -362,13 +348,11 @@ void ReactInstanceWin::InitDevMenu() noexcept {
362
348
  }
363
349
 
364
350
  void ReactInstanceWin::InitUIDependentCalls() noexcept {
365
- #ifndef CORE_ABI
366
351
  Microsoft::ReactNative::AppThemeHolder::InitAppThemeHolder(GetReactContext());
367
352
  Microsoft::ReactNative::I18nManager::InitI18nInfo(
368
353
  winrt::Microsoft::ReactNative::ReactPropertyBag(Options().Properties));
369
354
  Microsoft::ReactNative::Appearance::InitOnUIThread(GetReactContext());
370
355
  Microsoft::ReactNative::DeviceInfoHolder::InitDeviceInfoHolder(GetReactContext());
371
- #endif // CORE_ABI
372
356
  }
373
357
 
374
358
  std::shared_ptr<facebook::react::DevSettings> ReactInstanceWin::CreateDevSettings() noexcept {
@@ -400,11 +384,6 @@ std::shared_ptr<facebook::react::DevSettings> ReactInstanceWin::CreateDevSetting
400
384
  }
401
385
  };
402
386
 
403
- bool useRuntimeScheduler = winrt::Microsoft::ReactNative::implementation::QuirkSettings::GetUseRuntimeScheduler(
404
- winrt::Microsoft::ReactNative::ReactPropertyBag(m_reactContext->Properties()));
405
-
406
- devSettings->useRuntimeScheduler = useRuntimeScheduler;
407
-
408
387
  devSettings->inspectorHostTarget = m_options.InspectorHostTarget;
409
388
 
410
389
  return devSettings;
@@ -797,14 +776,12 @@ facebook::react::NativeLoggingHook ReactInstanceWin::GetLoggingCallback() noexce
797
776
  std::shared_ptr<IRedBoxHandler> ReactInstanceWin::GetRedBoxHandler() noexcept {
798
777
  if (m_options.RedBoxHandler) {
799
778
  return m_options.RedBoxHandler;
800
- #ifndef CORE_ABI
801
779
  } else if (UseDeveloperSupport()) {
802
780
  auto localWkReactHost = m_weakReactHost;
803
781
  return CreateDefaultRedBoxHandler(
804
782
  winrt::Microsoft::ReactNative::ReactPropertyBag(m_reactContext->Properties()),
805
783
  std::move(localWkReactHost),
806
784
  *m_uiQueue);
807
- #endif
808
785
  } else {
809
786
  return {};
810
787
  }
@@ -12,11 +12,6 @@
12
12
  #include "React_win.h"
13
13
  #include "activeObject/activeObject.h"
14
14
 
15
- #ifndef CORE_ABI
16
- #include <Modules/AppearanceModule.h>
17
- #include <Modules/I18nManagerModule.h>
18
- #endif
19
-
20
15
  #include <react/runtime/ReactInstance.h>
21
16
 
22
17
  namespace winrt::Microsoft::ReactNative {
@@ -3,9 +3,7 @@
3
3
 
4
4
  #pragma once
5
5
 
6
- #ifndef CORE_ABI
7
6
  #include <IReactInstance.h>
8
- #endif
9
7
 
10
8
  #include <functional/functor.h>
11
9
  #include <string>
@@ -3,6 +3,7 @@ import "ReactNativeHost.idl";
3
3
  import "ReactNativeIsland.idl";
4
4
  import "ReactInstanceSettings.idl";
5
5
  import "IReactPackageProvider.idl";
6
+ import "ReactNativeWindow.idl";
6
7
 
7
8
  #include "DocString.h"
8
9
 
@@ -14,6 +15,8 @@ namespace Microsoft.ReactNative {
14
15
  // Properties
15
16
  Microsoft.UI.Windowing.AppWindow AppWindow {get;};
16
17
 
18
+ ReactNativeWindow ReactNativeWindow {get;};
19
+
17
20
  ReactNativeHost ReactNativeHost {get;};
18
21
 
19
22
  ReactViewOptions ReactViewOptions {get;};
@@ -34,6 +34,13 @@ void ReactPackageBuilder::AddTurboModule(
34
34
  m_turboModulesProvider->AddModuleProvider(moduleName, moduleProvider, true);
35
35
  }
36
36
 
37
+ void ReactPackageBuilder::AddEagerInitTurboModule(
38
+ hstring const &moduleName,
39
+ ReactModuleProvider const &moduleProvider) noexcept {
40
+ m_turboModulesProvider->AddModuleProvider(moduleName, moduleProvider, true);
41
+ m_turboModulesProvider->AddEagerInit(winrt::to_string(moduleName));
42
+ }
43
+
37
44
  void ReactPackageBuilder::AddViewComponent(
38
45
  winrt::hstring componentName,
39
46
  ReactViewComponentProvider const &viewComponentProvider) noexcept {
@@ -20,6 +20,7 @@ struct ReactPackageBuilder : winrt::implements<ReactPackageBuilder, IReactPackag
20
20
  public: // IReactPackageBuilder
21
21
  void AddModule(hstring const &moduleName, ReactModuleProvider const &moduleProvider) noexcept;
22
22
  void AddTurboModule(hstring const &moduleName, ReactModuleProvider const &moduleProvider) noexcept;
23
+ void AddEagerInitTurboModule(hstring const &moduleName, ReactModuleProvider const &moduleProvider) noexcept;
23
24
 
24
25
  // IReactPackageBuilderFabric
25
26
  void AddViewComponent(winrt::hstring componentName, ReactViewComponentProvider const &viewComponentProvider) noexcept;
@@ -14,8 +14,6 @@
14
14
  #include <winrt/Windows.Foundation.Collections.h>
15
15
  #include <winrt/Windows.Foundation.h>
16
16
 
17
- #ifndef CORE_ABI
18
-
19
17
  #include <ReactCoreInjection.h>
20
18
  #include <Shobjidl.h>
21
19
  #include <Utils/Helpers.h>
@@ -27,7 +25,6 @@
27
25
  #include <winrt/Windows.Web.Http.h>
28
26
  #include "CppWinRTIncludes.h"
29
27
  #include "Utils/Helpers.h"
30
- #endif // CORE_ABI
31
28
  #include "XamlUtils.h"
32
29
 
33
30
  using namespace winrt::Windows::Foundation;
@@ -36,7 +33,6 @@ namespace Mso::React {
36
33
 
37
34
  using IInspectable = winrt::Windows::Foundation::IInspectable;
38
35
 
39
- #ifndef CORE_ABI
40
36
  struct RedBox : public std::enable_shared_from_this<RedBox> {
41
37
  RedBox(
42
38
  winrt::Microsoft::ReactNative::ReactPropertyBag &propBag,
@@ -272,7 +268,6 @@ struct DefaultRedBoxHandler final : public std::enable_shared_from_this<DefaultR
272
268
  std::vector<std::shared_ptr<RedBox>> m_redBoxes; // Protected by m_lockRedBox
273
269
  const Mso::WeakPtr<IReactHost> m_weakReactHost;
274
270
  };
275
- #endif // CORE_ABI
276
271
 
277
272
  struct RedBoxHandler final : public Mso::React::IRedBoxHandler {
278
273
  RedBoxHandler(winrt::Microsoft::ReactNative::IRedBoxHandler const &redBoxHandler) : m_redBoxHandler(redBoxHandler) {}
@@ -316,11 +311,7 @@ std::shared_ptr<IRedBoxHandler> CreateDefaultRedBoxHandler(
316
311
  const winrt::Microsoft::ReactNative::ReactPropertyBag &propBag,
317
312
  Mso::WeakPtr<IReactHost> &&weakReactHost,
318
313
  const Mso::React::IDispatchQueue2 &uiQueue) noexcept {
319
- #ifndef CORE_ABI
320
314
  return std::make_shared<DefaultRedBoxHandler>(propBag, std::move(weakReactHost), uiQueue);
321
- #else
322
- return nullptr;
323
- #endif
324
315
  }
325
316
 
326
317
  } // namespace Mso::React
@@ -61,11 +61,7 @@ struct DefaultRedBoxHandler : winrt::implements<DefaultRedBoxHandler, IRedBoxHan
61
61
  };
62
62
 
63
63
  IRedBoxHandler RedBoxHelper::CreateDefaultHandler(winrt::Microsoft::ReactNative::ReactNativeHost const &host) noexcept {
64
- #ifndef CORE_ABI
65
64
  return winrt::make<DefaultRedBoxHandler>(host);
66
- #else
67
- return nullptr;
68
- #endif
69
65
  }
70
66
 
71
67
  } // namespace winrt::Microsoft::ReactNative::implementation
@@ -494,16 +494,11 @@ std::shared_ptr<facebook::react::TurboModule> TurboModulesProvider::getModule(
494
494
  }
495
495
 
496
496
  std::vector<std::string> TurboModulesProvider::getEagerInitModuleNames() noexcept {
497
- std::vector<std::string> eagerModules;
498
- auto it = m_moduleProviders.find("UIManager");
499
- if (it != m_moduleProviders.end()) {
500
- eagerModules.push_back("UIManager");
501
- }
502
- it = m_moduleProviders.find("FabricUIManagerBinding");
503
- if (it != m_moduleProviders.end()) {
504
- eagerModules.push_back("FabricUIManagerBinding");
505
- }
506
- return eagerModules;
497
+ return m_eagerInitModuleNames;
498
+ }
499
+
500
+ void TurboModulesProvider::AddEagerInit(std::string moduleName) noexcept {
501
+ m_eagerInitModuleNames.push_back(moduleName);
507
502
  }
508
503
 
509
504
  void TurboModulesProvider::SetReactContext(const IReactContext &reactContext) noexcept {
@@ -26,6 +26,7 @@ class TurboModulesProvider final : public facebook::react::TurboModuleRegistry {
26
26
  winrt::hstring const &moduleName,
27
27
  ReactModuleProvider const &moduleProvider,
28
28
  bool overwriteExisting) noexcept;
29
+ void AddEagerInit(std::string moduleName) noexcept;
29
30
  std::shared_ptr<facebook::react::LongLivedObjectCollection> const &LongLivedObjectCollection() noexcept;
30
31
 
31
32
  private:
@@ -33,6 +34,7 @@ class TurboModulesProvider final : public facebook::react::TurboModuleRegistry {
33
34
  std::shared_ptr<facebook::react::LongLivedObjectCollection> m_longLivedObjectCollection{
34
35
  std::make_shared<facebook::react::LongLivedObjectCollection>()};
35
36
  std::unordered_map<std::string, ReactModuleProvider> m_moduleProviders;
37
+ std::vector<std::string> m_eagerInitModuleNames;
36
38
  IReactContext m_reactContext;
37
39
  };
38
40
 
@@ -54,7 +54,29 @@ std::string GetBundleFromEmbeddedResource(const winrt::Windows::Foundation::Uri
54
54
  return std::string(start, start + size);
55
55
  }
56
56
 
57
- std::future<std::string> LocalBundleReader::LoadBundleAsync(const std::wstring bundleUri) {
57
+ namespace {
58
+
59
+ std::string BufferToString(const winrt::Windows::Storage::Streams::IBuffer &buffer) {
60
+ std::string result(buffer.Length(), '\0');
61
+ if (!result.empty()) {
62
+ auto reader = winrt::Windows::Storage::Streams::DataReader::FromBuffer(buffer);
63
+ reader.ReadBytes(winrt::array_view<uint8_t>{
64
+ reinterpret_cast<uint8_t *>(&result[0]), reinterpret_cast<uint8_t *>(&result[result.length()])});
65
+ }
66
+ return result;
67
+ }
68
+
69
+ winrt::Windows::Storage::Streams::IBuffer BytesToBuffer(const void *data, uint32_t size) {
70
+ winrt::Windows::Storage::Streams::DataWriter writer;
71
+ auto bytes = static_cast<const uint8_t *>(data);
72
+ writer.WriteBytes(winrt::array_view<const uint8_t>(bytes, bytes + size));
73
+ return writer.DetachBuffer();
74
+ }
75
+
76
+ } // namespace
77
+
78
+ winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Storage::Streams::IBuffer>
79
+ LocalBundleReader::LoadBundleAsync(const std::wstring bundleUri) {
58
80
  try {
59
81
  co_await winrt::resume_background();
60
82
 
@@ -66,41 +88,26 @@ std::future<std::string> LocalBundleReader::LoadBundleAsync(const std::wstring b
66
88
  file = co_await winrt::Windows::Storage::StorageFile::GetFileFromApplicationUriAsync(uri);
67
89
  } else if (bundleUri.starts_with(L"resource://")) {
68
90
  winrt::Windows::Foundation::Uri uri(bundleUri);
69
- co_return GetBundleFromEmbeddedResource(uri);
91
+ auto bytes = GetBundleFromEmbeddedResource(uri);
92
+ co_return BytesToBuffer(bytes.data(), static_cast<uint32_t>(bytes.size()));
70
93
  } else {
71
94
  file = co_await winrt::Windows::Storage::StorageFile::GetFileFromPathAsync(bundleUri);
72
95
  }
73
96
 
74
- // Read the buffer manually to avoid a Utf8 -> Utf16 -> Utf8 encoding
75
- // roundtrip.
76
- auto fileBuffer{co_await winrt::Windows::Storage::FileIO::ReadBufferAsync(file)};
77
- auto dataReader{winrt::Windows::Storage::Streams::DataReader::FromBuffer(fileBuffer)};
78
-
79
- // No need to use length + 1, STL guarantees that string storage is null-terminated.
80
- std::string script(fileBuffer.Length(), '\0');
81
-
82
- // Construct the array_view to slice into the first fileBuffer.Length bytes.
83
- // DataReader.ReadBytes will read as many bytes as are present in the
84
- // array_view. The backing string has fileBuffer.Length() + 1 bytes, without
85
- // an explicit end it will read 1 byte to many and throw.
86
- dataReader.ReadBytes(winrt::array_view<uint8_t>{
87
- reinterpret_cast<uint8_t *>(&script[0]), reinterpret_cast<uint8_t *>(&script[script.length()])});
88
- dataReader.Close();
89
-
90
- co_return script;
97
+ co_return co_await winrt::Windows::Storage::FileIO::ReadBufferAsync(file);
91
98
  }
92
99
  // RuntimeScheduler only handles std::exception or jsi::JSError
93
- catch (winrt::hresult_error const &e) {
94
- throw std::exception(winrt::to_string(e.message()).c_str());
100
+ catch (winrt::hresult_error const &) {
101
+ throw;
95
102
  }
96
103
  }
97
104
 
98
105
  std::string LocalBundleReader::LoadBundle(const std::wstring &bundlePath) {
99
- return LoadBundleAsync(bundlePath).get();
106
+ return BufferToString(LoadBundleAsync(bundlePath).get());
100
107
  }
101
108
 
102
109
  StorageFileBigString::StorageFileBigString(const std::wstring &path) {
103
- m_futureBuffer = LocalBundleReader::LoadBundleAsync(path);
110
+ m_pendingLoad = LocalBundleReader::LoadBundleAsync(path);
104
111
  }
105
112
 
106
113
  bool StorageFileBigString::isAscii() const {
@@ -118,8 +125,9 @@ size_t StorageFileBigString::size() const {
118
125
  }
119
126
 
120
127
  void StorageFileBigString::ensure() const {
121
- if (m_string.empty()) {
122
- m_string = m_futureBuffer.get();
128
+ if (m_pendingLoad) {
129
+ m_string = BufferToString(m_pendingLoad.get());
130
+ m_pendingLoad = nullptr;
123
131
  }
124
132
  }
125
133
 
@@ -3,14 +3,16 @@
3
3
 
4
4
  #pragma once
5
5
  #include <cxxreact/JSBigString.h>
6
- #include <future>
6
+ #include <winrt/Windows.Foundation.h>
7
+ #include <winrt/Windows.Storage.Streams.h>
7
8
  #include <string>
8
9
 
9
10
  namespace Microsoft::ReactNative {
10
11
 
11
12
  class LocalBundleReader {
12
13
  public:
13
- static std::future<std::string> LoadBundleAsync(const std::wstring bundlePath);
14
+ static winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Storage::Streams::IBuffer> LoadBundleAsync(
15
+ const std::wstring bundlePath);
14
16
  static std::string LoadBundle(const std::wstring &bundlePath);
15
17
  };
16
18
 
@@ -24,7 +26,7 @@ class StorageFileBigString : public facebook::react::JSBigString {
24
26
  void ensure() const;
25
27
 
26
28
  private:
27
- mutable std::future<std::string> m_futureBuffer;
29
+ mutable winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Storage::Streams::IBuffer> m_pendingLoad;
28
30
  mutable std::string m_string;
29
31
  };
30
32
 
@@ -48,7 +48,7 @@ struct ColorComp {
48
48
  };
49
49
 
50
50
  winrt::Color ColorFromNumber(DWORD argb) noexcept {
51
- return xaml::FromArgb(GetAFromArgb(argb), GetRFromArgb(argb), GetGFromArgb(argb), GetBFromArgb(argb));
51
+ return winrt::Windows::UI::Color{GetAFromArgb(argb), GetRFromArgb(argb), GetGFromArgb(argb), GetBFromArgb(argb)};
52
52
  }
53
53
 
54
54
  REACTWINDOWS_API_(winrt::Color) ColorFrom(const folly::dynamic &d) {
@@ -2,14 +2,11 @@
2
2
  // Licensed under the MIT License.
3
3
 
4
4
  #pragma once
5
- #include "NamespaceRedirect.h"
6
-
7
5
  #include <winrt/Windows.Foundation.Collections.h>
8
6
  #include <winrt/Windows.Foundation.h>
9
7
 
10
8
  #include <winrt/Microsoft.UI.Xaml.h>
11
9
 
12
- #define XAML_CPPWINRT_NAMESPACE winrt::Microsoft::UI::Xaml
13
10
  namespace xaml = winrt::Microsoft::UI::Xaml;
14
11
  namespace comp = winrt::Microsoft::UI::Composition;
15
12
  namespace ui = winrt::Microsoft::UI;
@@ -28,7 +25,3 @@ using namespace Windows::UI::Core;
28
25
  using namespace Windows::Foundation;
29
26
  using namespace Windows::Foundation::Collections;
30
27
  } // namespace winrt
31
-
32
- #define _QUOTE(x) L#x
33
- #define QUOTE(x) _QUOTE(x)
34
- #define XAML_NAMESPACE_STR QUOTE(XAML_NAMESPACE)
@@ -8,9 +8,6 @@
8
8
  #include <winrt/Windows.Foundation.h>
9
9
  #include <functional>
10
10
 
11
- #if !defined(CORE_ABI) && !defined(__APPLE__) && \
12
- WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM | WINAPI_PARTITION_GAMES)
13
-
14
11
  #include <winrt/Microsoft.ReactNative.h>
15
12
 
16
13
  #include "CppWinRTIncludes.h"
@@ -63,25 +60,6 @@ inline std::unordered_map<uint32_t, ReactNotificationSubscription> SubscribeToWi
63
60
  return result;
64
61
  }
65
62
 
66
- #else
67
- namespace winrt::Microsoft::ReactNative {
68
-
69
- /// Stubs for UWP
70
- template <typename... T>
71
- void ForwardWindowMessage(const ReactNotificationService &svc, T &&...) noexcept {}
72
-
73
- template <typename... T>
74
- ReactNotificationSubscription SubscribeToWindowMessage(const ReactNotificationService &svc, T &&...) noexcept {
75
- return nullptr;
76
- }
77
-
78
- template <typename... T>
79
- std::unordered_map<uint32_t, ReactNotificationSubscription>
80
- SubscribeToWindowMessage(const ReactNotificationService &svc, std::initializer_list<uint32_t> msgs, T &&...) noexcept {
81
- return std::unordered_map<uint32_t, ReactNotificationSubscription>{};
82
- }
83
- #endif
84
-
85
63
  namespace details {
86
64
  struct IndirectLibraryDeleter {
87
65
  void operator()(void *l) {
@@ -18,7 +18,10 @@ ModuleRegistration::ModuleRegistration(wchar_t const *moduleName) noexcept : m_m
18
18
  void AddAttributedModules(IReactPackageBuilder const &packageBuilder, bool useTurboModules) noexcept {
19
19
  for (auto const *reg = ModuleRegistration::Head(); reg != nullptr; reg = reg->Next()) {
20
20
  if (useTurboModules || reg->ShouldRegisterAsTurboModule())
21
- packageBuilder.AddTurboModule(reg->ModuleName(), reg->MakeModuleProvider());
21
+ if (reg->IsEagerInit())
22
+ packageBuilder.AddEagerInitTurboModule(reg->ModuleName(), reg->MakeModuleProvider());
23
+ else
24
+ packageBuilder.AddTurboModule(reg->ModuleName(), reg->MakeModuleProvider());
22
25
  else
23
26
  packageBuilder.AddModule(reg->ModuleName(), reg->MakeModuleProvider());
24
27
  }
@@ -31,7 +34,10 @@ bool TryAddAttributedModule(
31
34
  for (auto const *reg = ModuleRegistration::Head(); reg != nullptr; reg = reg->Next()) {
32
35
  if (moduleName == reg->ModuleName()) {
33
36
  if (useTurboModule || reg->ShouldRegisterAsTurboModule()) {
34
- packageBuilder.AddTurboModule(moduleName, reg->MakeModuleProvider());
37
+ if (reg->IsEagerInit())
38
+ packageBuilder.AddEagerInitTurboModule(moduleName, reg->MakeModuleProvider());
39
+ else
40
+ packageBuilder.AddTurboModule(moduleName, reg->MakeModuleProvider());
35
41
  } else {
36
42
  packageBuilder.AddModule(moduleName, reg->MakeModuleProvider());
37
43
  }
@@ -17,19 +17,24 @@
17
17
  // The macros below are internal implementation details for macro defined in nativeModules.h
18
18
  //
19
19
 
20
+ // ADL-based fallback: returns false for any type not tagged by the macros below.
21
+ // Using ADL instead of explicit template specialization allows the macros to be
22
+ // used inside a namespace (explicit specializations of a global template must
23
+ // occur at global scope, which the macros cannot guarantee).
20
24
  template <typename T>
21
- struct IsReactTurboModule;
25
+ constexpr bool ReactIsReactTurboModuleImpl(T *) noexcept {
26
+ return false;
27
+ }
22
28
 
23
- // Default to false if no specific override
24
29
  template <typename T>
25
- struct IsReactTurboModule : std::false_type {};
30
+ struct IsReactTurboModule : std::bool_constant<ReactIsReactTurboModuleImpl(static_cast<T *>(nullptr))> {};
26
31
 
27
32
  #define INTERNAL_REACT_MODULE_REGISTRATION_AND_PROVIDER( \
28
- moduleStruct, moduleName, eventEmitterName, isReactTurboModule) \
33
+ moduleStruct, moduleName, eventEmitterName, isReactTurboModule, isEagerInit) \
29
34
  struct moduleStruct; \
30
35
  \
31
- template <> \
32
- struct IsReactTurboModule<moduleStruct> : std::isReactTurboModule##_type {}; \
36
+ constexpr bool ReactIsReactTurboModuleImpl(moduleStruct *) noexcept { return isReactTurboModule; } \
37
+ constexpr bool ReactIsEagerInitTurboModuleImpl(moduleStruct *) noexcept { return isEagerInit; } \
33
38
  \
34
39
  template <class TDummy> \
35
40
  struct moduleStruct##_ModuleRegistration final : winrt::Microsoft::ReactNative::ModuleRegistration { \
@@ -40,6 +45,7 @@ struct IsReactTurboModule : std::false_type {};
40
45
  } \
41
46
  \
42
47
  bool ShouldRegisterAsTurboModule() const noexcept override { return isReactTurboModule; } \
48
+ bool IsEagerInit() const noexcept override { return isEagerInit; } \
43
49
  \
44
50
  static const moduleStruct##_ModuleRegistration Registration; \
45
51
  }; \
@@ -55,7 +61,7 @@ struct IsReactTurboModule : std::false_type {};
55
61
  }
56
62
 
57
63
  #define INTERNAL_REACT_MODULE_3_ARGS(moduleStruct, moduleName, eventEmitterName) \
58
- INTERNAL_REACT_MODULE_REGISTRATION_AND_PROVIDER(moduleStruct, moduleName, eventEmitterName, false)
64
+ INTERNAL_REACT_MODULE_REGISTRATION_AND_PROVIDER(moduleStruct, moduleName, eventEmitterName, false, false)
59
65
 
60
66
  #define INTERNAL_REACT_MODULE_2_ARGS(moduleStruct, moduleName) \
61
67
  INTERNAL_REACT_MODULE_3_ARGS(moduleStruct, moduleName, L"")
@@ -66,17 +72,16 @@ struct IsReactTurboModule : std::false_type {};
66
72
  INTERNAL_REACT_RECOMPOSER_4( \
67
73
  (__VA_ARGS__, INTERNAL_REACT_MODULE_3_ARGS, INTERNAL_REACT_MODULE_2_ARGS, INTERNAL_REACT_MODULE_1_ARG, ))
68
74
 
69
- #define INTERNAL_REACT_MODULE_NO_REGISTRATION_AND_PROVIDER( \
70
- moduleStruct, moduleName, eventEmitterName, isReactTurboModule) \
71
- struct moduleStruct; \
72
- \
73
- template <> \
74
- struct IsReactTurboModule<moduleStruct> : std::isReactTurboModule##_type {}; \
75
- \
76
- template <class TRegistry> \
77
- constexpr void GetReactModuleInfo(moduleStruct *, TRegistry &registry) noexcept { \
78
- registry.RegisterModule( \
79
- moduleName, eventEmitterName, winrt::Microsoft::ReactNative::ReactAttributeId<__COUNTER__>{}); \
75
+ #define INTERNAL_REACT_MODULE_NO_REGISTRATION_AND_PROVIDER( \
76
+ moduleStruct, moduleName, eventEmitterName, isReactTurboModule) \
77
+ struct moduleStruct; \
78
+ \
79
+ [[maybe_unused]] constexpr bool ReactIsReactTurboModuleImpl(moduleStruct *) noexcept { return isReactTurboModule; } \
80
+ \
81
+ template <class TRegistry> \
82
+ constexpr void GetReactModuleInfo(moduleStruct *, TRegistry &registry) noexcept { \
83
+ registry.RegisterModule( \
84
+ moduleName, eventEmitterName, winrt::Microsoft::ReactNative::ReactAttributeId<__COUNTER__>{}); \
80
85
  }
81
86
 
82
87
  // Another version of REACT_MODULE but does not do auto registration
@@ -101,17 +106,27 @@ struct IsReactTurboModule : std::false_type {};
101
106
 
102
107
  // Register struct as a ReactNative module.
103
108
  #define INTERNAL_REACT_TURBO_MODULE_2_ARGS(moduleStruct, moduleName) \
104
- INTERNAL_REACT_MODULE_REGISTRATION_AND_PROVIDER(moduleStruct, moduleName, L"", true)
109
+ INTERNAL_REACT_MODULE_REGISTRATION_AND_PROVIDER(moduleStruct, moduleName, L"", true, false)
110
+
111
+ #define INTERNAL_REACT_EAGER_TURBO_MODULE_2_ARGS(moduleStruct, moduleName) \
112
+ INTERNAL_REACT_MODULE_REGISTRATION_AND_PROVIDER(moduleStruct, moduleName, L"", true, true)
105
113
 
106
114
  #define INTERNAL_REACT_TURBO_MODULE_1_ARG(moduleStruct) \
107
115
  INTERNAL_REACT_TURBO_MODULE_2_ARGS(moduleStruct, L## #moduleStruct)
108
116
 
117
+ #define INTERNAL_REACT_EAGER_TURBO_MODULE_1_ARG(moduleStruct) \
118
+ INTERNAL_REACT_EAGER_TURBO_MODULE_2_ARGS(moduleStruct, L## #moduleStruct)
119
+
109
120
  #define INTERNAL_REACT_TURBO_MODULE(...) \
110
121
  INTERNAL_REACT_RECOMPOSER_3((__VA_ARGS__, INTERNAL_REACT_TURBO_MODULE_2_ARGS, INTERNAL_REACT_TURBO_MODULE_1_ARG, ))
111
122
 
123
+ #define INTERNAL_REACT_EAGER_TURBO_MODULE(...) \
124
+ INTERNAL_REACT_RECOMPOSER_3( \
125
+ (__VA_ARGS__, INTERNAL_REACT_EAGER_TURBO_MODULE_2_ARGS, INTERNAL_REACT_EAGER_TURBO_MODULE_1_ARG, ))
126
+
112
127
  // Another version of REACT_MODULE but does not do auto registration
113
128
  #define INTERNAL_REACT_TURBO_MODULE_NOREG_2_ARGS(moduleStruct, moduleName) \
114
- INTERNAL_REACT_MODULE_NO_REGISTRATION_AND_PROVIDER(moduleStruct, moduleName, L"", true)
129
+ INTERNAL_REACT_MODULE_NO_REGISTRATION_AND_PROVIDER(moduleStruct, moduleName, L"", true, false)
115
130
 
116
131
  #define INTERNAL_REACT_TURBO_MODULE_NOREG_1_ARG(moduleStruct) \
117
132
  INTERNAL_REACT_TURBO_MODULE_NOREG_2_ARGS(moduleStruct, L## #moduleStruct)
@@ -150,6 +165,7 @@ struct ModuleRegistration {
150
165
 
151
166
  virtual ReactModuleProvider MakeModuleProvider() const noexcept = 0;
152
167
  virtual bool ShouldRegisterAsTurboModule() const noexcept = 0;
168
+ virtual bool IsEagerInit() const noexcept = 0;
153
169
 
154
170
  static ModuleRegistration const *Head() noexcept {
155
171
  return s_head;
@@ -1,4 +1 @@
1
1
  #pragma once
2
-
3
- #define XAML_NAMESPACE Microsoft.UI.Xaml
4
- #define COMP_NAMESPACE Microsoft.UI.Composition
@@ -47,6 +47,11 @@
47
47
  #define REACT_TURBO_MODULE(/* moduleStruct, [opt] moduleName */...) \
48
48
  INTERNAL_REACT_TURBO_MODULE(__VA_ARGS__)(__VA_ARGS__)
49
49
 
50
+ // Same as REACT_TURBO_MODULE, but will register using AddEagerInitTurboModule, and this module
51
+ // will be created and init'd on instance creation.
52
+ #define REACT_EAGER_TURBO_MODULE(/* moduleStruct, [opt] moduleName */...) \
53
+ INTERNAL_REACT_EAGER_TURBO_MODULE(__VA_ARGS__)(__VA_ARGS__)
54
+
50
55
  // REACT_MODULE_NOREG is REACT_MODULE without auto registration
51
56
  // they have the same arguments
52
57
  #define REACT_MODULE_NOREG(/* moduleStruct, [opt] moduleName, [opt] eventEmitterName */...) \
@@ -522,7 +527,8 @@ struct ModuleJsiInitMethodInfo<void (TModule::*)(ReactContext const &, facebook:
522
527
  return
523
528
  [module = static_cast<ModuleType *>(module), method](
524
529
  ReactContext const &reactContext, winrt::Windows::Foundation::IInspectable const &runtimeHandle) noexcept {
525
- (module->*method)(reactContext, GetOrCreateContextRuntime(reactContext, runtimeHandle));
530
+ if (runtimeHandle)
531
+ (module->*method)(reactContext, GetOrCreateContextRuntime(reactContext, runtimeHandle));
526
532
  };
527
533
  }
528
534
  };
@@ -918,7 +924,7 @@ struct ModuleEventFieldInfo<TFunc<void(TArgs...)> TModule::*> {
918
924
  return [module = static_cast<ModuleType *>(module), field](IReactContext const &) noexcept {
919
925
  // Default emitter will do nothing
920
926
  // This will be replaced with a method that will call the jsi EventEmitter when JS requests the emitter
921
- module->*field = [](TArgs... args) noexcept {};
927
+ module->*field = [](TArgs... /*args*/) noexcept {};
922
928
  };
923
929
  } else {
924
930
  return [module = static_cast<ModuleType *>(module), field, eventName, eventEmitterName](
@@ -30,12 +30,3 @@ WINRT_IMPL_GetModuleHandleW(_In_opt_ LPCWSTR lpModuleName);
30
30
  #endif
31
31
  WINRT_IMPL_LINK(GetModuleHandleW, 4);
32
32
  #undef WINRT_IMPL_LINK
33
-
34
- namespace XAML_CPPWINRT_NAMESPACE {
35
-
36
- // Using Windows::UI::ColorHelper causes the process to load Windows.UI.Xaml.dll which is not needed just to fill a
37
- // Color struct
38
- inline winrt::Windows::UI::Color FromArgb(uint8_t a, uint8_t r, uint8_t g, uint8_t b) {
39
- return winrt::Windows::UI::Color{a, r, g, b};
40
- }
41
- } // namespace XAML_CPPWINRT_NAMESPACE