react-native-windows 0.72.14 → 0.73.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 (587) hide show
  1. package/.flowconfig +16 -5
  2. package/Chakra/ChakraHelpers.cpp +1 -1
  3. package/Chakra/ChakraUtils.cpp +1 -1
  4. package/Chakra/ChakraValue.h +1 -1
  5. package/Common/packages.lock.json +13 -0
  6. package/Directory.Build.props +6 -2
  7. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1 -10
  8. package/Folly/TEMP_UntilFollyUpdate/hash/Hash.h +1016 -0
  9. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +1 -1
  10. package/Folly/cgmanifest.json +1 -1
  11. package/Folly/packages.lock.json +23 -0
  12. package/Libraries/Animated/Animated.js +1 -1
  13. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  14. package/Libraries/Animated/NativeAnimatedHelper.js +14 -10
  15. package/Libraries/Animated/NativeAnimatedModule.js +6 -2
  16. package/Libraries/Animated/NativeAnimatedTurboModule.js +7 -4
  17. package/Libraries/Animated/animations/Animation.js +57 -3
  18. package/Libraries/Animated/animations/DecayAnimation.js +9 -0
  19. package/Libraries/Animated/animations/SpringAnimation.js +8 -0
  20. package/Libraries/Animated/animations/TimingAnimation.js +8 -0
  21. package/Libraries/Animated/components/AnimatedFlatList.js +2 -1
  22. package/Libraries/Animated/components/AnimatedScrollView.js +2 -0
  23. package/Libraries/Animated/components/AnimatedSectionList.js +2 -1
  24. package/Libraries/Animated/createAnimatedComponent.js +1 -0
  25. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  26. package/Libraries/Animated/nodes/AnimatedObject.js +146 -0
  27. package/Libraries/Animated/nodes/AnimatedProps.js +19 -7
  28. package/Libraries/Animated/nodes/AnimatedStyle.js +29 -55
  29. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -17
  30. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
  31. package/Libraries/Animated/useAnimatedProps.js +9 -10
  32. package/Libraries/AppState/AppState.d.ts +1 -1
  33. package/Libraries/AppState/NativeAppState.js +8 -4
  34. package/Libraries/AppTheme/AppTheme.js +5 -5
  35. package/Libraries/BatchedBridge/MessageQueue.js +45 -36
  36. package/Libraries/Blob/Blob.js +6 -2
  37. package/Libraries/Blob/BlobManager.js +9 -10
  38. package/Libraries/Blob/BlobRegistry.js +14 -9
  39. package/Libraries/Blob/File.js +1 -1
  40. package/Libraries/Blob/FileReader.js +1 -2
  41. package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
  42. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -1
  43. package/Libraries/Components/Glyph/Glyph.js +1 -1
  44. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +26 -6
  45. package/Libraries/Components/Keyboard/KeyboardExt.d.ts +4 -1
  46. package/Libraries/Components/Keyboard/KeyboardExt.js +3 -0
  47. package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
  48. package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +4 -29
  49. package/Libraries/Components/Keyboard/KeyboardExtProps.js +0 -17
  50. package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
  51. package/Libraries/Components/Pressable/Pressable.js +3 -2
  52. package/Libraries/Components/Pressable/Pressable.windows.js +4 -3
  53. package/Libraries/Components/Pressable/useAndroidRippleForView.js +1 -1
  54. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +20 -0
  55. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.windows.js +7 -1
  56. package/Libraries/Components/SafeAreaView/SafeAreaView.js +7 -7
  57. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +7 -10
  58. package/Libraries/Components/ScrollView/ScrollView.js +3 -1
  59. package/Libraries/Components/ScrollView/ScrollView.windows.js +3 -1
  60. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +39 -46
  61. package/Libraries/Components/Switch/Switch.js +1 -0
  62. package/Libraries/Components/Switch/Switch.windows.js +259 -0
  63. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -0
  64. package/Libraries/Components/TextInput/TextInput.d.ts +49 -7
  65. package/Libraries/Components/TextInput/TextInput.flow.js +43 -10
  66. package/Libraries/Components/TextInput/TextInput.js +62 -10
  67. package/Libraries/Components/TextInput/TextInput.windows.js +100 -14
  68. package/Libraries/Components/ToastAndroid/{ToastAndroid.ios.js → ToastAndroid.js} +9 -1
  69. package/Libraries/Components/ToastAndroid/ToastAndroid.windows.js +9 -1
  70. package/Libraries/Components/Touchable/TouchableBounce.js +1 -1
  71. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  72. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +1 -1
  73. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  74. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -1
  75. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -1
  76. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -0
  77. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -0
  78. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +16 -6
  79. package/Libraries/Components/View/ReactNativeStyleAttributes.js +9 -0
  80. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  81. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  82. package/Libraries/Components/View/View.js +46 -32
  83. package/Libraries/Components/View/View.windows.js +23 -7
  84. package/Libraries/Components/View/ViewAccessibility.d.ts +27 -1
  85. package/Libraries/Components/View/ViewAccessibility.windows.js +3 -0
  86. package/Libraries/Components/View/ViewNativeComponent.js +1 -0
  87. package/Libraries/Components/View/ViewPropTypes.d.ts +104 -1
  88. package/Libraries/Components/View/ViewPropTypes.js +18 -3
  89. package/Libraries/Components/View/ViewPropTypes.windows.js +33 -3
  90. package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
  91. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -1
  92. package/Libraries/Core/ExceptionsManager.js +16 -7
  93. package/Libraries/Core/ExtendedError.js +12 -0
  94. package/Libraries/Core/ReactNativeVersion.js +3 -3
  95. package/Libraries/Core/ReactNativeVersionCheck.js +0 -2
  96. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
  97. package/Libraries/Core/setUpDeveloperTools.js +5 -1
  98. package/Libraries/Core/setUpIntersectionObserver.js +16 -0
  99. package/Libraries/Core/setUpMutationObserver.js +16 -0
  100. package/Libraries/Core/setUpPerformance.js +6 -13
  101. package/Libraries/Core/setUpPerformanceObserver.js +16 -0
  102. package/Libraries/Core/setUpRegeneratorRuntime.js +4 -2
  103. package/Libraries/DOM/Nodes/ReactNativeElement.js +135 -18
  104. package/Libraries/DOM/Nodes/ReadOnlyCharacterData.js +72 -0
  105. package/Libraries/DOM/Nodes/ReadOnlyElement.js +209 -21
  106. package/Libraries/DOM/Nodes/ReadOnlyNode.js +206 -17
  107. package/Libraries/DOM/Nodes/ReadOnlyText.js +30 -0
  108. package/Libraries/DOM/Nodes/Utilities/Traversal.js +54 -0
  109. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +0 -6
  110. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +15 -4
  111. package/Libraries/Image/Image.android.js +8 -2
  112. package/Libraries/Image/Image.d.ts +1 -1
  113. package/Libraries/Image/Image.ios.js +4 -1
  114. package/Libraries/Image/Image.windows.js +6 -3
  115. package/Libraries/Image/ImageBackground.js +3 -0
  116. package/Libraries/Inspector/DevtoolsOverlay.js +6 -3
  117. package/Libraries/Inspector/NetworkOverlay.js +2 -2
  118. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -5
  119. package/Libraries/Interaction/PanResponder.js +1 -4
  120. package/Libraries/IntersectionObserver/IntersectionObserver.js +252 -0
  121. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +140 -0
  122. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +221 -0
  123. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +41 -0
  124. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +162 -0
  125. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  126. package/Libraries/Lists/FlatList.d.ts +2 -1
  127. package/Libraries/Lists/FlatList.js +15 -5
  128. package/Libraries/Lists/SectionList.js +4 -0
  129. package/Libraries/LogBox/Data/LogBoxLog.js +4 -1
  130. package/Libraries/LogBox/Data/LogBoxSymbolication.js +5 -2
  131. package/Libraries/LogBox/Data/parseLogBoxLog.js +57 -20
  132. package/Libraries/LogBox/UI/AnsiHighlight.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +24 -31
  134. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  135. package/Libraries/LogBox/UI/LogBoxMessage.js +4 -7
  136. package/Libraries/MutationObserver/MutationObserver.js +184 -0
  137. package/Libraries/MutationObserver/MutationObserverManager.js +218 -0
  138. package/Libraries/MutationObserver/MutationRecord.js +82 -0
  139. package/Libraries/MutationObserver/NativeMutationObserver.js +58 -0
  140. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +327 -0
  141. package/Libraries/NativeComponent/BaseViewConfig.android.js +18 -3
  142. package/Libraries/NativeComponent/BaseViewConfig.ios.js +33 -0
  143. package/Libraries/NativeComponent/BaseViewConfig.windows.js +34 -4
  144. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -5
  145. package/Libraries/NativeModules/specs/NativeSourceCode.js +6 -6
  146. package/Libraries/Network/RCTNetworking.android.js +2 -1
  147. package/Libraries/Network/XMLHttpRequest.js +1 -1
  148. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -4
  149. package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +2 -2
  150. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +9 -2
  151. package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
  152. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  153. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +1 -0
  154. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -1
  155. package/Libraries/Pressability/Pressability.js +28 -3
  156. package/Libraries/Pressability/Pressability.windows.js +30 -5
  157. package/Libraries/ReactNative/AppContainer.js +2 -3
  158. package/Libraries/ReactNative/AppRegistry.d.ts +0 -5
  159. package/Libraries/ReactNative/AppRegistry.js +66 -53
  160. package/Libraries/ReactNative/BridgelessUIManager.js +38 -9
  161. package/Libraries/ReactNative/FabricUIManager.js +143 -34
  162. package/Libraries/ReactNative/I18nManager.js +5 -11
  163. package/Libraries/ReactNative/NativeI18nManager.js +7 -5
  164. package/Libraries/ReactNative/PaperUIManager.windows.js +2 -2
  165. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +151 -0
  166. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +81 -0
  167. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
  168. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +32 -0
  169. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +19 -3
  170. package/Libraries/ReactNative/UIManager.js +8 -0
  171. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +648 -0
  172. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +38 -2
  173. package/Libraries/Renderer/implementations/ReactFabric-dev.js +27 -27
  174. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  175. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  176. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27 -27
  177. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -3
  178. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -3
  179. package/Libraries/Renderer/shims/ReactFabric.js +5 -6
  180. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
  181. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  182. package/Libraries/Renderer/shims/ReactNativeTypes.js +35 -17
  183. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -3
  184. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
  185. package/Libraries/Settings/{Settings.android.js → Settings.js} +4 -4
  186. package/Libraries/Share/Share.d.ts +3 -9
  187. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +9 -4
  188. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +28 -13
  189. package/Libraries/StyleSheet/PlatformColorValueTypes.windows.js +10 -6
  190. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  191. package/Libraries/StyleSheet/StyleSheet.d.ts +10 -1
  192. package/Libraries/StyleSheet/StyleSheet.js +3 -0
  193. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +31 -17
  194. package/Libraries/StyleSheet/StyleSheetTypes.js +90 -6
  195. package/Libraries/StyleSheet/flattenStyle.js +4 -0
  196. package/Libraries/StyleSheet/private/_TransformStyle.js +16 -2
  197. package/Libraries/StyleSheet/processColor.js +1 -2
  198. package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
  199. package/Libraries/StyleSheet/splitLayoutProps.js +1 -0
  200. package/Libraries/Text/Text.d.ts +5 -5
  201. package/Libraries/Text/Text.js +17 -10
  202. package/Libraries/Text/Text.windows.js +53 -20
  203. package/Libraries/Text/TextProps.windows.js +275 -0
  204. package/Libraries/TurboModule/TurboModuleRegistry.js +47 -7
  205. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  206. package/Libraries/Types/CoreEventTypes.d.ts +5 -2
  207. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -12
  208. package/Libraries/Utilities/NativeDeviceInfo.js +8 -9
  209. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +23 -18
  210. package/Libraries/Utilities/NativePlatformConstantsIOS.js +16 -13
  211. package/Libraries/Utilities/NativePlatformConstantsWin.js +13 -10
  212. package/Libraries/Utilities/PerformanceLoggerContext.js +1 -1
  213. package/Libraries/Utilities/Platform.android.js +12 -8
  214. package/Libraries/Utilities/Platform.d.ts +1 -0
  215. package/Libraries/Utilities/Platform.flow.js +84 -0
  216. package/Libraries/Utilities/Platform.flow.windows.js +111 -0
  217. package/Libraries/Utilities/Platform.ios.js +12 -8
  218. package/Libraries/Utilities/Platform.windows.js +12 -8
  219. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  220. package/Libraries/Utilities/ReactNativeTestTools.js +1 -2
  221. package/Libraries/Utilities/SceneTracker.js +1 -1
  222. package/Libraries/Utilities/createPerformanceLogger.js +63 -32
  223. package/Libraries/Utilities/useColorScheme.js +7 -8
  224. package/Libraries/WebPerformance/MemoryInfo.js +1 -1
  225. package/Libraries/WebPerformance/NativePerformance.js +3 -8
  226. package/Libraries/WebPerformance/NativePerformanceObserver.js +4 -0
  227. package/Libraries/WebPerformance/Performance.js +42 -15
  228. package/Libraries/WebPerformance/PerformanceEntry.js +14 -6
  229. package/Libraries/WebPerformance/PerformanceEventTiming.js +18 -1
  230. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +40 -14
  231. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +4 -2
  232. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +21 -3
  233. package/Libraries/__tests__/ViewWindows-test.js +3 -3
  234. package/Libraries/platform-types.d.ts +6 -2
  235. package/Libraries/promiseRejectionTrackingOptions.js +1 -3
  236. package/Libraries/vendor/emitter/EventEmitter.js +17 -17
  237. package/Microsoft.ReactNative/Composition.Input.idl +103 -0
  238. package/Microsoft.ReactNative/CompositionContext.idl +31 -8
  239. package/Microsoft.ReactNative/CompositionRootView.idl +8 -4
  240. package/Microsoft.ReactNative/CompositionSwitcher.idl +28 -17
  241. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +15 -28
  242. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +7 -10
  243. package/Microsoft.ReactNative/Fabric/ComponentView.h +42 -4
  244. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +57 -4
  245. package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +22 -1
  246. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.cpp +137 -0
  247. package/Microsoft.ReactNative/Fabric/Composition/ActivityIndicatorComponentView.h +59 -0
  248. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +8 -2
  249. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.cpp +575 -0
  250. package/Microsoft.ReactNative/Fabric/Composition/Composition.Input.h +170 -0
  251. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +890 -226
  252. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +38 -6
  253. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +79 -0
  254. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +130 -27
  255. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +6 -1
  256. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +382 -228
  257. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +35 -8
  258. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +46 -8
  259. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +5 -21
  260. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +1 -1
  261. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +232 -4
  262. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +36 -1
  263. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +51 -14
  264. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +15 -6
  265. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView_emptyimpl.cpp +123 -0
  266. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +18 -0
  267. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +333 -137
  268. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +52 -8
  269. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +32 -26
  270. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +5 -3
  271. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +183 -175
  272. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +7 -4
  273. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +101 -2
  274. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +46 -2
  275. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +36 -9
  276. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +8 -2
  277. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +247 -42
  278. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +25 -8
  279. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +78 -50
  280. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +12 -4
  281. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +26 -28
  282. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +429 -89
  283. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +24 -3
  284. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +1 -0
  285. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -2
  286. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +5 -7
  287. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -6
  288. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -7
  289. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +1 -17
  290. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +74 -3
  291. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +12 -0
  292. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +53 -59
  293. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +3 -2
  294. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +5 -4
  295. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -1
  296. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +1 -1
  297. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +1 -1
  298. package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +3 -4
  299. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformTouch.h +10 -0
  300. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +59 -0
  301. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +31 -0
  302. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +69 -0
  303. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +25 -2
  304. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +23 -0
  305. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/KeyEvent.h +113 -0
  306. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/WindowsViewEvents.h +75 -0
  307. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +18 -21
  308. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +158 -7
  309. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +15 -17
  310. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +1 -1
  311. package/Microsoft.ReactNative/GlyphViewManager.cpp +1 -1
  312. package/Microsoft.ReactNative/IJSValueReader.idl +2 -2
  313. package/Microsoft.ReactNative/IJSValueWriter.idl +2 -2
  314. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +23 -1
  315. package/Microsoft.ReactNative/IReactContext.cpp +1 -1
  316. package/Microsoft.ReactNative/IReactNotificationService.cpp +4 -3
  317. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -4
  318. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -2
  319. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +1 -2
  320. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +1 -1
  321. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +3 -4
  322. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +1 -1
  323. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -2
  324. package/Microsoft.ReactNative/Modules/AppearanceModule.h +1 -1
  325. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +4 -2
  326. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +1 -1
  327. package/Microsoft.ReactNative/Modules/I18nManagerModule.cpp +2 -2
  328. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +1 -1
  329. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -15
  330. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +10 -6
  331. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +4 -1
  332. package/Microsoft.ReactNative/QuirkSettings.idl +1 -1
  333. package/Microsoft.ReactNative/ReactApplication.cpp +13 -11
  334. package/Microsoft.ReactNative/ReactApplication.h +4 -4
  335. package/Microsoft.ReactNative/ReactCoreInjection.h +6 -5
  336. package/Microsoft.ReactNative/ReactHost/JSCallInvokerScheduler.cpp +2 -2
  337. package/Microsoft.ReactNative/ReactHost/MsoUtils.cpp +1 -1
  338. package/Microsoft.ReactNative/ReactHost/React.h +3 -6
  339. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -16
  340. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +8 -16
  341. package/Microsoft.ReactNative/ReactInstanceSettings.cpp +6 -5
  342. package/Microsoft.ReactNative/ReactInstanceSettings.h +7 -7
  343. package/Microsoft.ReactNative/ReactNativeHost.h +4 -4
  344. package/Microsoft.ReactNative/ReactRootView.cpp +5 -4
  345. package/Microsoft.ReactNative/ReactRootView.h +2 -2
  346. package/Microsoft.ReactNative/ReactSupport.h +1 -1
  347. package/Microsoft.ReactNative/RedBox.cpp +1 -1
  348. package/Microsoft.ReactNative/RedBoxHandler.idl +1 -1
  349. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +1 -1
  350. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +49 -21
  351. package/Microsoft.ReactNative/Utils/ValueUtils.h +2 -1
  352. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.cpp +31 -59
  353. package/Microsoft.ReactNative/Views/DynamicAutomationPeer.h +3 -4
  354. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.cpp +15 -46
  355. package/Microsoft.ReactNative/Views/DynamicAutomationProperties.h +5 -13
  356. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +4 -4
  357. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +2 -8
  358. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +127 -86
  359. package/Microsoft.ReactNative/Views/ICompositionRootView.h +1 -1
  360. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
  361. package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +2 -2
  362. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +1 -1
  363. package/Microsoft.ReactNative/Views/SIPEventHandler.cpp +5 -5
  364. package/Microsoft.ReactNative/Views/SIPEventHandler.h +1 -1
  365. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +8 -5
  366. package/Microsoft.ReactNative/Views/SwitchViewManager.cpp +2 -2
  367. package/Microsoft.ReactNative/Views/Text/TextTransformVisitor.cpp +1 -1
  368. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +32 -14
  369. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +1 -1
  370. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +14 -2
  371. package/Microsoft.ReactNative/Views/ViewManagerBase.h +1 -1
  372. package/Microsoft.ReactNative/Views/ViewPanel.cpp +20 -219
  373. package/Microsoft.ReactNative/Views/ViewPanel.h +0 -30
  374. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +17 -158
  375. package/Microsoft.ReactNative/Views/cppwinrt/DynamicAutomationPeer.idl +9 -12
  376. package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +1 -9
  377. package/Microsoft.ReactNative/XamlHelper.cpp +1 -1
  378. package/Microsoft.ReactNative/XamlHelper.h +1 -1
  379. package/Microsoft.ReactNative/packages.lock.json +128 -0
  380. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +1 -1
  381. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -1
  382. package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.cpp +2 -2
  383. package/Microsoft.ReactNative.Cxx/JSValue.h +2 -2
  384. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +0 -1
  385. package/Microsoft.ReactNative.Cxx/NativeModules.h +4 -4
  386. package/Microsoft.ReactNative.Cxx/ReactHandleHelper.h +1 -1
  387. package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +2 -2
  388. package/Microsoft.ReactNative.Cxx/ReactNotificationService.h +10 -9
  389. package/Microsoft.ReactNative.Cxx/ReactPropertyBag.h +13 -12
  390. package/Microsoft.ReactNative.Managed/JSValueReaderGenerator.cs +5 -5
  391. package/Microsoft.ReactNative.Managed/JSValueWriterGenerator.cs +5 -5
  392. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +8 -2
  393. package/Microsoft.ReactNative.Managed/ReactPackageBuilderExtensions.cs +1 -1
  394. package/Microsoft.ReactNative.Managed/ReflectionReactPackageProvider.cs +1 -1
  395. package/Microsoft.ReactNative.Managed/packages.lock.json +9 -9
  396. package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +2 -0
  397. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +4 -2
  398. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.ViewManager.cs +1 -1
  399. package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +1 -1
  400. package/Microsoft.ReactNative.Managed.CodeGen/packages.lock.json +3197 -0
  401. package/Mso/compilerAdapters/compilerFeatures.h +1 -1
  402. package/Mso/compilerAdapters/functionDecorations.h +6 -6
  403. package/Mso/debugAssertApi/debugAssertDetails.h +1 -1
  404. package/Mso/dispatchQueue/dispatchQueue.h +3 -3
  405. package/Mso/motifCpp/motifCppTest.h +1 -1
  406. package/Mso/motifCpp/testCheck.h +1 -1
  407. package/Mso/oacr/oacr.h +1 -1
  408. package/Mso/smartPtr/smartPointerBase.h +1 -1
  409. package/Mso/src/dispatchQueue/looperScheduler.cpp +2 -2
  410. package/Mso/src/dispatchQueue/queueService.cpp +1 -1
  411. package/Mso/src/dispatchQueue/taskQueue.h +1 -1
  412. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +2 -2
  413. package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +122 -45
  414. package/Mso/src/eventWaitHandle/eventWaitHandleImpl_win.cpp +2 -2
  415. package/Mso/src/future/futureImpl.cpp +5 -5
  416. package/Mso/src/future/futureImpl.h +1 -1
  417. package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
  418. package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.Common.props → Microsoft.ReactNative.Composition.Common.props} +2 -2
  419. package/PropertySheets/External/{Microsoft.ReactNative.WinAppSDK.CSharpApp.props → Microsoft.ReactNative.Composition.CppApp.props} +7 -10
  420. package/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets +19 -0
  421. package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.props +14 -0
  422. package/PropertySheets/External/Microsoft.ReactNative.Composition.Package.targets +18 -0
  423. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +1 -1
  424. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  425. package/PropertySheets/HybridCRT.props +34 -0
  426. package/PropertySheets/JSEngine.props +1 -2
  427. package/PropertySheets/React.Cpp.props +0 -1
  428. package/PropertySheets/Warnings.props +1 -1
  429. package/PropertySheets/WinUI.props +1 -1
  430. package/ReactCommon/ReactCommon.vcxproj +15 -9
  431. package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
  432. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +32 -5
  433. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +20 -0
  434. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaLayoutableShadowNode.cpp +1038 -0
  435. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +228 -38
  436. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +895 -0
  437. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/ShadowTree.cpp +543 -0
  438. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManagerBinding.cpp +1509 -0
  439. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/bits/NumericBitfield.h +67 -0
  440. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/config/Config.h +93 -0
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/LayoutResults.h +88 -0
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.cpp +606 -0
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/node/Node.h +344 -0
  444. package/ReactCommon/Yoga.cpp +497 -3895
  445. package/ReactCommon/packages.lock.json +30 -0
  446. package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +22 -0
  447. package/Scripts/OfficeReact.Win32.nuspec +1 -0
  448. package/Scripts/rnw-dependencies.ps1 +79 -26
  449. package/Shared/BaseScriptStoreImpl.cpp +42 -13
  450. package/Shared/BaseScriptStoreImpl.h +1 -1
  451. package/Shared/Composition/AutoDraw.h +36 -0
  452. package/Shared/CxxMessageQueue.cpp +1 -1
  453. package/Shared/DevSettings.h +3 -0
  454. package/Shared/DevSupportManager.h +1 -1
  455. package/Shared/Hasher.cpp +64 -0
  456. package/Shared/Hasher.h +24 -0
  457. package/Shared/HermesRuntimeHolder.cpp +6 -6
  458. package/Shared/IDevSupportManager.h +1 -1
  459. package/Shared/JSI/ChakraApi.cpp +1 -1
  460. package/Shared/JSI/ChakraRuntime.cpp +10 -10
  461. package/Shared/JSI/ChakraRuntime.h +6 -6
  462. package/Shared/JSI/V8RuntimeHolder.cpp +1 -1
  463. package/Shared/Modules/IRequestBodyHandler.h +1 -1
  464. package/Shared/Modules/IUriHandler.h +1 -1
  465. package/Shared/Modules/PlatformConstantsModule.cpp +1 -1
  466. package/Shared/Modules/WebSocketModule.cpp +1 -1
  467. package/Shared/Networking/DefaultBlobResource.cpp +2 -2
  468. package/Shared/Networking/OriginPolicyHttpFilter.cpp +22 -16
  469. package/Shared/Networking/OriginPolicyHttpFilter.h +12 -11
  470. package/Shared/OInstance.cpp +9 -23
  471. package/Shared/OInstance.h +1 -1
  472. package/Shared/PackagerConnection.h +1 -1
  473. package/Shared/SafeLoadLibrary.cpp +8 -44
  474. package/Shared/SafeLoadLibrary.h +1 -5
  475. package/Shared/Shared.vcxitems +50 -20
  476. package/Shared/Shared.vcxitems.filters +26 -17
  477. package/Shared/Threading/BatchingQueueThread.cpp +5 -5
  478. package/Shared/Threading/BatchingQueueThread.h +4 -4
  479. package/Shared/TurboModuleManager.cpp +1 -1
  480. package/Shared/Utils.cpp +1 -1
  481. package/Shared/tracing/fbsystrace.h +1 -1
  482. package/codegen/NativeAnimatedModuleSpec.g.h +2 -0
  483. package/codegen/NativeAnimatedTurboModuleSpec.g.h +2 -0
  484. package/codegen/NativeAppStateSpec.g.h +11 -21
  485. package/codegen/NativeDeviceInfoSpec.g.h +4 -14
  486. package/codegen/NativeI18nManagerSpec.g.h +6 -16
  487. package/codegen/NativeIntersectionObserverSpec.g.h +96 -0
  488. package/codegen/NativeMutationObserverSpec.g.h +90 -0
  489. package/codegen/NativePerformanceObserverSpec.g.h +19 -13
  490. package/codegen/NativePerformanceSpec.g.h +6 -23
  491. package/codegen/NativePlatformConstantsAndroidSpec.g.h +22 -30
  492. package/codegen/NativePlatformConstantsIOSSpec.g.h +17 -25
  493. package/codegen/NativePlatformConstantsWinSpec.g.h +14 -22
  494. package/codegen/NativeSampleTurboModuleSpec.g.h +36 -0
  495. package/codegen/NativeSourceCodeSpec.g.h +3 -13
  496. package/codegen/react/components/rnwcore/EventEmitters.cpp +85 -58
  497. package/codegen/react/components/rnwcore/EventEmitters.h +17 -35
  498. package/codegen/react/components/rnwcore/Props.h +16 -17
  499. package/codegen/rnwcoreJSI-generated.cpp +1462 -319
  500. package/codegen/rnwcoreJSI.h +1609 -462
  501. package/fmt/packages.lock.json +13 -0
  502. package/index.windows.js +3 -3
  503. package/{Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js → jest/ReactNativeInternalFeatureFlagsMock.js} +2 -1
  504. package/jest/__tests__/setup-test.js +18 -0
  505. package/jest/mockModal.js +6 -4
  506. package/jest/setup.js +61 -30
  507. package/just-task.js +1 -0
  508. package/package.json +37 -42
  509. package/template/cs-app/proj/MyApp.csproj +0 -1
  510. package/template/cs-lib/proj/MyLib.csproj +0 -1
  511. package/templates/.clang-format +4 -0
  512. package/templates/cpp-app/metro.config.js +51 -0
  513. package/templates/cpp-app/template.config.js +119 -0
  514. package/templates/cpp-app/windows/ExperimentalFeatures.props +12 -0
  515. package/templates/cpp-app/windows/MyApp/MyApp.cpp +284 -0
  516. package/templates/cpp-app/windows/MyApp/MyApp.h +3 -0
  517. package/templates/cpp-app/windows/MyApp/MyApp.ico +0 -0
  518. package/templates/cpp-app/windows/MyApp/MyApp.rc +0 -0
  519. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +142 -0
  520. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj.filters +55 -0
  521. package/templates/cpp-app/windows/MyApp/_gitignore +1 -0
  522. package/templates/cpp-app/windows/MyApp/pch.cpp +1 -0
  523. package/templates/cpp-app/windows/MyApp/pch.h +35 -0
  524. package/templates/cpp-app/windows/MyApp/resource.h +18 -0
  525. package/templates/cpp-app/windows/MyApp/small.ico +0 -0
  526. package/templates/cpp-app/windows/MyApp/targetver.h +8 -0
  527. package/templates/cpp-app/windows/MyApp.Package/Images/LockScreenLogo.scale-200.png +0 -0
  528. package/templates/cpp-app/windows/MyApp.Package/Images/SplashScreen.scale-200.png +0 -0
  529. package/templates/cpp-app/windows/MyApp.Package/Images/Square150x150Logo.scale-200.png +0 -0
  530. package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.scale-200.png +0 -0
  531. package/templates/cpp-app/windows/MyApp.Package/Images/Square44x44Logo.targetsize-24_altform-unplated.png +0 -0
  532. package/templates/cpp-app/windows/MyApp.Package/Images/StoreLogo.png +0 -0
  533. package/templates/cpp-app/windows/MyApp.Package/Images/Wide310x150Logo.scale-200.png +0 -0
  534. package/templates/cpp-app/windows/MyApp.Package/MyApp.Package.wapproj +78 -0
  535. package/{template/cs-app-WinAppSDK/MyApp → templates/cpp-app/windows/MyApp.Package}/Package.appxmanifest +9 -8
  536. package/templates/cpp-app/windows/MyApp.sln +176 -0
  537. package/templates/cpp-app/windows/_gitignore +41 -0
  538. package/templates/old/generateWrapper.js +67 -0
  539. package/templates/old/uwp-cpp-app/template.config.js +15 -0
  540. package/templates/old/uwp-cpp-lib/template.config.js +15 -0
  541. package/templates/old/uwp-cs-app/template.config.js +15 -0
  542. package/templates/old/uwp-cs-lib/template.config.js +15 -0
  543. package/types/experimental.d.ts +44 -0
  544. package/types/index.d.ts +2 -1
  545. package/types/modules/Devtools.d.ts +1 -0
  546. package/types/modules/globals.d.ts +16 -1
  547. package/Libraries/Components/View/ViewWindows.d.ts +0 -19
  548. package/Libraries/Components/View/ViewWindows.js +0 -22
  549. package/Libraries/Components/View/ViewWindows.js.map +0 -1
  550. package/Libraries/Components/View/ViewWindowsProps.d.ts +0 -69
  551. package/Libraries/Components/View/ViewWindowsProps.js +0 -8
  552. package/Libraries/Components/View/ViewWindowsProps.js.map +0 -1
  553. package/Libraries/Utilities/AcessibilityMapping.js +0 -154
  554. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +0 -19
  555. package/Libraries/Utilities/useColorScheme.windows.js +0 -26
  556. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +0 -61
  557. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +0 -34
  558. package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +0 -42
  559. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +0 -11
  560. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +0 -51
  561. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +0 -237
  562. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +0 -59
  563. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +0 -159
  564. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +0 -94
  565. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -465
  566. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +0 -116
  567. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +0 -98
  568. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +0 -326
  569. package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +0 -30
  570. package/Shared/V8JSIRuntimeHolder.cpp +0 -71
  571. package/Shared/V8JSIRuntimeHolder.h +0 -56
  572. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -34
  573. package/template/cs-app-WinAppSDK/MyApp/App.xaml +0 -16
  574. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +0 -70
  575. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +0 -14
  576. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +0 -38
  577. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +0 -19
  578. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +0 -19
  579. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +0 -19
  580. package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +0 -10
  581. package/template/cs-app-WinAppSDK/MyApp/app.manifest +0 -15
  582. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +0 -24
  583. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +0 -53
  584. package/template/cs-app-WinAppSDK/proj/MyApp.sln +0 -43
  585. package/template/cs-app-WinAppSDK/proj/NuGet_Config +0 -19
  586. /package/Libraries/Components/DrawerAndroid/{DrawerLayoutAndroid.ios.js → DrawerLayoutAndroid.js} +0 -0
  587. /package/Libraries/{Renderer/public → ReactNative/ReactFabricPublicInstance}/ReactFabricPublicInstanceUtils.js +0 -0
@@ -0,0 +1,30 @@
1
+ {
2
+ "version": 1,
3
+ "dependencies": {
4
+ "native,Version=v0.0": {
5
+ "boost": {
6
+ "type": "Direct",
7
+ "requested": "[1.76.0, )",
8
+ "resolved": "1.76.0",
9
+ "contentHash": "p+w3YvNdXL8Cu9Fzrmexssu0tZbWxuf6ywsQqHjDlKFE5ojXHof1HIyMC3zDLfLnh80dIeFcEUAuR2Asg/XHRA=="
10
+ },
11
+ "fmt": {
12
+ "type": "Project"
13
+ },
14
+ "folly": {
15
+ "type": "Project",
16
+ "dependencies": {
17
+ "boost": "[1.76.0, )",
18
+ "fmt": "[1.0.0, )"
19
+ }
20
+ }
21
+ },
22
+ "native,Version=v0.0/win10-arm": {},
23
+ "native,Version=v0.0/win10-arm-aot": {},
24
+ "native,Version=v0.0/win10-arm64-aot": {},
25
+ "native,Version=v0.0/win10-x64": {},
26
+ "native,Version=v0.0/win10-x64-aot": {},
27
+ "native,Version=v0.0/win10-x86": {},
28
+ "native,Version=v0.0/win10-x86-aot": {}
29
+ }
30
+ }
@@ -0,0 +1,22 @@
1
+ param(
2
+ )
3
+
4
+ [string] $RepoRoot = Resolve-Path "$PSScriptRoot\..\.."
5
+
6
+ $StartingLocation = Get-Location
7
+ Set-Location -Path $RepoRoot
8
+
9
+ try
10
+ {
11
+ $packagesSolutions = Get-ChildItem -File -Recurse -Path packages *.sln | Where-Object { !$_.FullName.Contains('node_modules') -and !$_.FullName.Contains('e2etest') }
12
+ $vnextSolutions = Get-ChildItem -File -Path vnext *.sln
13
+
14
+ $($packagesSolutions; $vnextSolutions) | Foreach {
15
+ Write-Host Restoring $_.FullName
16
+ & msbuild /t:Restore /p:RestoreForceEvaluate=true $_.FullName
17
+ }
18
+ }
19
+ finally
20
+ {
21
+ Set-Location -Path "$StartingLocation"
22
+ }
@@ -46,6 +46,7 @@
46
46
  <file src="$nugetroot$\inc\stubs\**\*.*" target="inc" />
47
47
 
48
48
  <file src="$nugetroot$\inc\Shared\AbiSafe.h" target="inc"/>
49
+ <file src="$nugetroot$\inc\Shared\Composition\AutoDraw.h" target="inc"/>
49
50
  <file src="$nugetroot$\inc\Shared\Composition\CompositionSwitcher.interop.h" target="inc"/>
50
51
  <file src="$nugetroot$\inc\Shared\DevSettings.h" target="inc"/>
51
52
  <file src="$nugetroot$\inc\ReactWin32\INativeUIManagerLegacy.h" target="inc"/>
@@ -81,6 +81,8 @@ $vsWorkloads = @('Microsoft.VisualStudio.Workload.ManagedDesktop',
81
81
  $vsAll = ($vsComponents + $vsWorkloads);
82
82
 
83
83
  # The minimum VS version to check for
84
+ # Note: For install to work, whatever min version you specify here must be met by the current package available on choco.
85
+ # I.E. Do NOT specify a Preview version here because choco doesn't have VS Preview packages.
84
86
  $vsver = "17.3";
85
87
 
86
88
  # The exact .NET SDK version to check for
@@ -177,30 +179,52 @@ function CheckVS {
177
179
  return $result;
178
180
  }
179
181
 
182
+ function GetVSChannelAndProduct {
183
+ param(
184
+ [string]$VsWhere
185
+ )
186
+
187
+ if ($VsWhere -ne $null) {
188
+ $channelId = & $VsWhere -version $vsver -property channelId;
189
+ $productId = & $VsWhere -version $vsver -property productId;
190
+
191
+ # Channel/product not found, check one more time for pre-release
192
+ if (($channelId -eq $null) -or ($productId -eq $null)) {
193
+ $channelId = & $VsWhere -version $vsver -property channelId -prerelease;
194
+ $productId = & $VsWhere -version $vsver -property productId -prerelease;
195
+ }
196
+
197
+ return $channelId, $productId;
198
+ }
199
+
200
+ return $null, $null;
201
+ }
202
+
180
203
  function InstallVS {
181
204
  $vsWhere = Get-VSWhere;
182
-
183
- if ($vsWhere -ne $null) {
184
- $channelId = & $vsWhere -version $vsver -property channelId;
185
- $productId = & $vsWhere -version $vsver -property productId;
186
- }
205
+
206
+ $channelId, $productId = GetVSChannelAndProduct -VsWhere $vsWhere
187
207
 
188
208
  if (($vsWhere -eq $null) -or ($channelId -eq $null) -or ($productId -eq $null)) {
189
- # No VSWhere / VS_Installer
209
+ # No VSWhere / VS_Installer, try to install
190
210
 
191
211
  EnsureChocoForInstall;
192
212
 
193
213
  if ($Enterprise) {
194
214
  # The CI machines need the enterprise version of VS as that is what is hardcoded in all the scripts
195
- & choco install -y visualstudio2022enterprise;
215
+ ChocoInstall visualstudio2022enterprise;
196
216
  } else {
197
- & choco install -y visualstudio2022community;
217
+ ChocoInstall visualstudio2022community;
198
218
  }
199
219
 
200
220
  $vsWhere = Get-VSWhere;
201
221
 
202
- $channelId = & $vsWhere -version $vsver -property channelId;
203
- $productId = & $vsWhere -version $vsver -property productId;
222
+ $channelId, $productId = GetVSChannelAndProduct -VsWhere $vsWhere
223
+ }
224
+
225
+ # Final check before attempting install
226
+ if (($vsWhere -eq $null) -or ($channelId -eq $null) -or ($productId -eq $null)) {
227
+ throw "Unable to find or install a compatible version of Visual Studio >= ($vsver).";
204
228
  }
205
229
 
206
230
  $vsInstaller = Join-Path -Path (Split-Path -Parent $vsWhere) -ChildPath "vs_installer.exe";
@@ -215,7 +239,7 @@ function CheckNode {
215
239
  $nodeVersion = (Get-Command node -ErrorAction Stop).Version;
216
240
  Write-Verbose "Node version found: $nodeVersion";
217
241
  $v = $nodeVersion.Major;
218
- return ($v -ge 16) -and (($v % 2) -eq 0);
242
+ return ($v -ge 18) -and (($v % 2) -eq 0);
219
243
  } catch { Write-Debug $_ }
220
244
 
221
245
  Write-Verbose "Node not found.";
@@ -399,7 +423,7 @@ $requirements = @(
399
423
  Name = 'Git';
400
424
  Tags = @('rnwDev');
401
425
  Valid = { try { (Get-Command git.exe -ErrorAction Stop) -ne $null } catch { $false }; }
402
- Install = { choco install -y git };
426
+ Install = { ChocoInstall git };
403
427
  InstallsWithChoco = $true;
404
428
  },
405
429
  @{
@@ -412,10 +436,10 @@ $requirements = @(
412
436
  },
413
437
  @{
414
438
  Id=[CheckId]::Node;
415
- Name = 'Node.js (LTS, >= 16.0)';
439
+ Name = 'Node.js (LTS, >= 18.0)';
416
440
  Tags = @('appDev');
417
441
  Valid = { CheckNode; }
418
- Install = { choco install -y nodejs-lts };
442
+ Install = { ChocoInstall nodejs-lts };
419
443
  InstallsWithChoco = $true;
420
444
  HasVerboseOutput = $true;
421
445
  },
@@ -424,7 +448,7 @@ $requirements = @(
424
448
  Name = 'Yarn';
425
449
  Tags = @('appDev');
426
450
  Valid = { CheckYarn }
427
- Install = { choco install -y yarn };
451
+ Install = { ChocoInstall yarn };
428
452
  InstallsWithChoco = $true;
429
453
  HasVerboseOutput = $true;
430
454
  },
@@ -449,7 +473,7 @@ $requirements = @(
449
473
  Tags = @('rnwDev');
450
474
  Valid = { ( cmd "/c assoc .binlog 2>nul" ) -ne $null; }
451
475
  Install = {
452
- choco install -y msbuild-structured-log-viewer;
476
+ ChocoInstall msbuild-structured-log-viewer;
453
477
  $slv = gci ${env:LocalAppData}\MSBuildStructuredLogViewer\StructuredLogViewer.exe -Recurse | select FullName | Sort-Object -Property FullName -Descending | Select-Object -First 1
454
478
  cmd /c "assoc .binlog=MSBuildLog >nul";
455
479
  cmd /c "ftype MSBuildLog=$($slv.FullName) %1 >nul";
@@ -463,7 +487,7 @@ $requirements = @(
463
487
  Name = 'Windows ADK';
464
488
  Tags = @('buildLab');
465
489
  Valid = { (Test-Path "${env:ProgramFiles(x86)}\Windows Kits\10\Windows Performance Toolkit\wpr.exe"); };
466
- Install = { choco install -y windows-adk };
490
+ Install = { ChocoInstall windows-adk };
467
491
  InstallsWithChoco = $true;
468
492
  Optional = $true;
469
493
  },
@@ -491,32 +515,61 @@ $requirements = @(
491
515
  Name = ".NET SDK (LTS, = $dotnetver)";
492
516
  Tags = @('appDev');
493
517
  Valid = { CheckDotNetCore; };
494
- Install = { & choco install -y dotnet-$dotnetver-sdk };
518
+ Install = { ChocoInstall dotnet-$dotnetver-sdk };
495
519
  InstallsWithChoco = $true;
496
520
  HasVerboseOutput = $true;
497
521
  }
498
522
  );
499
523
 
524
+ $ChocoCmd = ""; # This should get set when EnsureChocoForInstall is called
525
+
500
526
  function EnsureChocoForInstall {
501
- Write-Verbose "Checking for Choco...";
527
+ Write-Verbose "Checking for Chocolatey...";
502
528
  try {
503
- $chocoCmd = (Get-Command choco -ErrorAction Stop);
504
- if ($chocoCmd -ne $null) {
505
- Write-Verbose "Choco found.";
529
+ # Check if choco.exe is in PATH
530
+ if (Get-Command "choco.exe" -CommandType Application -ErrorAction Ignore) {
531
+ Set-Variable -Name "ChocoCmd" -Value "choco.exe" -Scope Script
532
+ Write-Verbose "Chocolatey found in PATH.";
533
+ return;
534
+ }
535
+
536
+ # Check for choco.exe in usual install location (taken from https://chocolatey.org/install.ps1)
537
+ $checkPath = if ($env:ChocolateyInstall) { $env:ChocolateyInstall } else { "$env:PROGRAMDATA\chocolatey" }
538
+
539
+ $FullPath = Join-Path $checkPath "bin\choco.exe";
540
+
541
+ if (Test-Path $FullPath) {
542
+ Set-Variable -Name "ChocoCmd" -Value $FullPath -Scope Script
543
+ Write-Verbose "Chocolatey found at $ChocoCmd.";
506
544
  return;
507
545
  }
546
+
508
547
  } catch { Write-Debug $_ }
509
548
 
510
- Write-Verbose "Choco not found.";
549
+ Write-Verbose "Chocolatey not found.";
511
550
 
512
- if (!$NoPrompt -and (Read-Host "Choco is necessary to install this component. Do you want to install Choco? [y/N]").ToUpperInvariant() -eq 'Y') {
513
- Write-Host "Installing Choco...";
551
+ if (!$NoPrompt -and (Read-Host "This script uses Chocolatey to install this component. Do you want to install Chocolatey? [y/N]").ToUpperInvariant() -eq 'Y') {
552
+ Write-Host "Installing Chocolatey...";
514
553
  [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
515
554
  iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'));
555
+ EnsureChocoForInstall;
516
556
  return;
517
557
  }
518
558
 
519
- throw "Choco needed to install.";
559
+ throw "Chocolatey needed to install.";
560
+ }
561
+
562
+ function ChocoInstall {
563
+ param(
564
+ [string]$ChocoPackage
565
+ )
566
+
567
+ if ($ChocoCmd -eq "") {
568
+ throw "`$ChocoCmd is not set, did you call EnsureChocoForInstall?";
569
+ }
570
+
571
+ Write-Verbose "Executing `"$ChocoCmd`" install -y `"$ChocoPackage`"";
572
+ & "$ChocoCmd" install -y "$ChocoPackage"
520
573
  }
521
574
 
522
575
  function IsElevated {
@@ -4,6 +4,7 @@
4
4
  #include "pch.h"
5
5
 
6
6
  #include "BaseScriptStoreImpl.h"
7
+ #include "Hasher.h"
7
8
  #include "MemoryMappedBuffer.h"
8
9
 
9
10
  #include <CppRuntimeOptions.h>
@@ -92,6 +93,7 @@ struct PreparedScriptPrefix {
92
93
  jsi::ScriptVersion_t scriptVersion;
93
94
  jsi::JSRuntimeVersion_t runtimeVersion;
94
95
  uint64_t sizeInBytes;
96
+ std::uint8_t hash[32];
95
97
  };
96
98
 
97
99
  struct PreparedScriptSuffix {
@@ -197,40 +199,40 @@ std::string BasePreparedScriptStoreImpl::getPreparedScriptFileName(
197
199
  // Essentially, we are trying to construct,
198
200
  // prep_<source_url>_<runtime_id>_<preparation_tag>.cache
199
201
 
200
- std::string prparedScriptFileName("prep_");
202
+ std::string preparedScriptFileName("prep_");
201
203
 
202
204
  const std::string &scriptUrl = scriptSignature.url;
203
205
 
204
206
  // As a crude heuristic we choose the last 64 characters of the source url.
205
207
  constexpr int MAXLENGTH = 64;
206
- prparedScriptFileName.append(
208
+ preparedScriptFileName.append(
207
209
  scriptUrl.begin() + ((scriptUrl.size() < MAXLENGTH) ? 0 : (scriptUrl.size() - MAXLENGTH)), scriptUrl.end());
208
210
 
209
211
  // Make a valid file name.
210
- std::replace(prparedScriptFileName.begin(), prparedScriptFileName.end(), '\\', '_');
211
- std::replace(prparedScriptFileName.begin(), prparedScriptFileName.end(), '/', '_');
212
- std::replace(prparedScriptFileName.begin(), prparedScriptFileName.end(), ':', '_');
213
- std::replace(prparedScriptFileName.begin(), prparedScriptFileName.end(), '.', '_');
212
+ std::replace(preparedScriptFileName.begin(), preparedScriptFileName.end(), '\\', '_');
213
+ std::replace(preparedScriptFileName.begin(), preparedScriptFileName.end(), '/', '_');
214
+ std::replace(preparedScriptFileName.begin(), preparedScriptFileName.end(), ':', '_');
215
+ std::replace(preparedScriptFileName.begin(), preparedScriptFileName.end(), '.', '_');
214
216
 
215
217
  if (runtimeSignature.runtimeName.empty()) {
216
218
  std::terminate();
217
219
  }
218
220
 
219
- prparedScriptFileName.append("_");
220
- prparedScriptFileName.append(runtimeSignature.runtimeName);
221
+ preparedScriptFileName.append("_");
222
+ preparedScriptFileName.append(runtimeSignature.runtimeName);
221
223
 
222
224
  if (prepareTag) {
223
- prparedScriptFileName.append("_");
224
- prparedScriptFileName.append(prepareTag);
225
+ preparedScriptFileName.append("_");
226
+ preparedScriptFileName.append(prepareTag);
225
227
  }
226
228
 
227
- // TODO :: Need to constuct a hash. ref:
229
+ // TODO :: Need to construct a hash. ref:
228
230
  // https://en.wikipedia.org/wiki/Base64#Filenames
229
231
 
230
232
  // extension
231
- prparedScriptFileName.append(".cache");
233
+ preparedScriptFileName.append(".cache");
232
234
 
233
- return prparedScriptFileName;
235
+ return preparedScriptFileName;
234
236
  }
235
237
 
236
238
  std::shared_ptr<const jsi::Buffer> BasePreparedScriptStoreImpl::tryGetPreparedScript(
@@ -269,6 +271,24 @@ std::shared_ptr<const jsi::Buffer> BasePreparedScriptStoreImpl::tryGetPreparedSc
269
271
  return nullptr;
270
272
  }
271
273
 
274
+ std::optional<std::vector<std::uint8_t>> hashBuffer = Microsoft::ReactNative::GetSHA256Hash(
275
+ reinterpret_cast<const std::uint8_t *>(buffer->data()) + sizeof(PreparedScriptPrefix),
276
+ static_cast<size_t>(prefix->sizeInBytes));
277
+ if (!hashBuffer) {
278
+ // Hashing failed.
279
+ return nullptr;
280
+ }
281
+
282
+ if (hashBuffer.value().size() < sizeof(prefix->hash)) {
283
+ // Unexpected hash size.
284
+ return nullptr;
285
+ }
286
+
287
+ if (memcmp(hashBuffer.value().data(), prefix->hash, sizeof(prefix->hash)) != 0) {
288
+ // Hash doesn't match. Store is possibly corrupted. It is safer to bail out.
289
+ return nullptr;
290
+ }
291
+
272
292
  const PreparedScriptSuffix *suffix = reinterpret_cast<const PreparedScriptSuffix *>(
273
293
  buffer->data() + sizeof(PreparedScriptPrefix) + prefix->sizeInBytes);
274
294
  if (strncmp(suffix->eof, PERSIST_EOF, sizeof(suffix->eof)) != 0) {
@@ -297,6 +317,15 @@ void BasePreparedScriptStoreImpl::persistPreparedScript(
297
317
  prefix->runtimeVersion = runtimeMetadata.version;
298
318
  prefix->sizeInBytes = preparedScript->size();
299
319
 
320
+ std::optional<std::vector<std::uint8_t>> hashBuffer =
321
+ Microsoft::ReactNative::GetSHA256Hash(preparedScript->data(), preparedScript->size());
322
+ if (!hashBuffer) {
323
+ // Hashing failed.
324
+ std::terminate();
325
+ }
326
+
327
+ memcpy_s(prefix->hash, sizeof(prefix->hash), hashBuffer.value().data(), hashBuffer.value().size());
328
+
300
329
  memcpy_s(
301
330
  newBuffer->data() + sizeof(PreparedScriptPrefix),
302
331
  newBuffer->size() - sizeof(PreparedScriptPrefix),
@@ -73,7 +73,7 @@ class BasePreparedScriptStoreImpl : public facebook::jsi::PreparedScriptStore {
73
73
  };
74
74
 
75
75
  // Dead simple script store implementation assuming that the script url is a
76
- // local filesystam path and assuming the script version is the script size, but
76
+ // local filesystem path and assuming the script version is the script size, but
77
77
  // with extension point to provide custom version provider.
78
78
  class BaseScriptStoreImpl : public facebook::jsi::ScriptStore {
79
79
  public:
@@ -0,0 +1,36 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #include <winrt/Microsoft.ReactNative.Composition.h>
5
+
6
+ namespace Microsoft::ReactNative::Composition {
7
+
8
+ class AutoDrawDrawingSurface {
9
+ public:
10
+ AutoDrawDrawingSurface(
11
+ winrt::Microsoft::ReactNative::Composition::IDrawingSurfaceBrush &drawingSurface,
12
+ POINT *offset) noexcept {
13
+ drawingSurface.as(m_drawingSurfaceInterop);
14
+ m_drawingSurfaceInterop->BeginDraw(m_d2dDeviceContext.put(), offset);
15
+ }
16
+
17
+ ~AutoDrawDrawingSurface() noexcept {
18
+ if (m_d2dDeviceContext) {
19
+ m_drawingSurfaceInterop->EndDraw();
20
+ }
21
+ }
22
+
23
+ operator ID2D1DeviceContext *() noexcept {
24
+ return m_d2dDeviceContext.get();
25
+ }
26
+
27
+ ID2D1DeviceContext *GetRenderTarget() noexcept {
28
+ return m_d2dDeviceContext.get();
29
+ }
30
+
31
+ private:
32
+ winrt::com_ptr<ICompositionDrawingSurfaceInterop> m_drawingSurfaceInterop;
33
+ winrt::com_ptr<ID2D1DeviceContext> m_d2dDeviceContext;
34
+ };
35
+
36
+ } // namespace Microsoft::ReactNative::Composition
@@ -223,7 +223,7 @@ class CxxMessageQueue::QueueRunner {
223
223
  CxxMessageQueue::CxxMessageQueue() : qr_(new QueueRunner()) {}
224
224
 
225
225
  CxxMessageQueue::~CxxMessageQueue() {
226
- // TODO(cjhopman): Add detach() so that the queue doesn't have to be
226
+ // TODO(@cjhopman): Add detach() so that the queue doesn't have to be
227
227
  // explicitly stopped.
228
228
  if (!qr_->isStopped()) {
229
229
  LOG(FATAL) << "Queue not stopped.";
@@ -102,6 +102,9 @@ struct DevSettings {
102
102
 
103
103
  // Transitory. Used to indicate whether or not to load networking types in the default Cxx module registry.
104
104
  bool omitNetworkingCxxModules{false};
105
+
106
+ // OC:8368383 - Memory leak under investigation.
107
+ bool useWebSocketTurboModule{false};
105
108
  };
106
109
 
107
110
  } // namespace react
@@ -50,7 +50,7 @@ class DevSupportManager final : public facebook::react::IDevSupportManager {
50
50
  virtual void StopPollingLiveReload() override;
51
51
 
52
52
  virtual void EnsureHermesInspector(const std::string &packagerHost, const uint16_t packagerPort) noexcept override;
53
- virtual void UpdateBundleStatus(bool isLastDownloadSucess, int64_t updateTimestamp) noexcept override;
53
+ virtual void UpdateBundleStatus(bool isLastDownloadSuccess, int64_t updateTimestamp) noexcept override;
54
54
 
55
55
  private:
56
56
  std::atomic_bool m_cancellation_token;
@@ -0,0 +1,64 @@
1
+ #include "pch.h"
2
+ #include "Hasher.h"
3
+
4
+ #ifndef NT_SUCCESS
5
+ #define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
6
+ #endif // NT_SUCCESS
7
+
8
+ #define CheckNTSuccess(s) \
9
+ do { \
10
+ NTSTATUS status = (s); \
11
+ if (!NT_SUCCESS(status)) { \
12
+ throw status; \
13
+ } \
14
+ } while (false)
15
+
16
+ namespace Microsoft::ReactNative {
17
+
18
+ std::optional<std::vector<std::uint8_t>> GetSHA256Hash(const void *pb, size_t cb) {
19
+ try {
20
+ SHA256Hasher hasher;
21
+ hasher.HashData(pb, cb);
22
+ return hasher.GetHashValue();
23
+ } catch (...) {
24
+ return std::nullopt;
25
+ }
26
+ }
27
+
28
+ SHA256Hasher::SHA256Hasher() {
29
+ CheckNTSuccess(BCryptOpenAlgorithmProvider(&m_hAlg, BCRYPT_SHA256_ALGORITHM, NULL, 0));
30
+
31
+ DWORD cbObject;
32
+ DWORD cbData;
33
+ CheckNTSuccess(BCryptGetProperty(m_hAlg, BCRYPT_OBJECT_LENGTH, (PBYTE)&cbObject, sizeof(DWORD), &cbData, 0));
34
+
35
+ m_hashObject.resize(cbObject);
36
+ CheckNTSuccess(
37
+ BCryptCreateHash(m_hAlg, &m_hHash, m_hashObject.data(), static_cast<ULONG>(m_hashObject.size()), NULL, 0, 0));
38
+ }
39
+
40
+ SHA256Hasher::~SHA256Hasher() {
41
+ BCryptDestroyHash(m_hHash);
42
+ BCryptCloseAlgorithmProvider(m_hAlg, 0);
43
+ }
44
+
45
+ void SHA256Hasher::HashData(const void *pb, size_t cb) {
46
+ if (cb > LONG_MAX) {
47
+ // Input too large
48
+ throw E_INVALIDARG;
49
+ }
50
+
51
+ CheckNTSuccess(BCryptHashData(m_hHash, (PBYTE)pb, (DWORD)cb, 0));
52
+ }
53
+
54
+ std::vector<std::uint8_t> SHA256Hasher::GetHashValue() {
55
+ DWORD hashLength;
56
+ DWORD cbData;
57
+ CheckNTSuccess(BCryptGetProperty(m_hAlg, BCRYPT_HASH_LENGTH, (PBYTE)&hashLength, sizeof(DWORD), &cbData, 0));
58
+
59
+ std::vector<uint8_t> hashValue(hashLength, 0);
60
+ CheckNTSuccess(BCryptFinishHash(m_hHash, &hashValue[0], static_cast<ULONG>(hashValue.size()), 0));
61
+
62
+ return hashValue;
63
+ }
64
+ } // namespace Microsoft::ReactNative
@@ -0,0 +1,24 @@
1
+ #include <bcrypt.h>
2
+ #include <optional>
3
+ #include <vector>
4
+
5
+ namespace Microsoft::ReactNative {
6
+ std::optional<std::vector<std::uint8_t>> GetSHA256Hash(const void *pb, size_t cb);
7
+
8
+ class SHA256Hasher {
9
+ public:
10
+ SHA256Hasher();
11
+ ~SHA256Hasher();
12
+
13
+ SHA256Hasher(const SHA256Hasher &) = delete;
14
+ SHA256Hasher &operator=(const SHA256Hasher &) = delete;
15
+
16
+ std::vector<std::uint8_t> GetHashValue();
17
+ void HashData(const void *pb, size_t cb);
18
+
19
+ private:
20
+ BCRYPT_ALG_HANDLE m_hAlg;
21
+ BCRYPT_HASH_HANDLE m_hHash;
22
+ std::vector<std::uint8_t> m_hashObject;
23
+ };
24
+ } // namespace Microsoft::ReactNative
@@ -38,7 +38,7 @@ void NAPI_CDECL removeInspectorPage(int32_t pageId) noexcept;
38
38
 
39
39
  class HermesFuncResolver : public IFuncResolver {
40
40
  public:
41
- HermesFuncResolver() : libHandle_(LoadLibraryAsPeerFirst(L"hermes.dll")) {}
41
+ HermesFuncResolver() : libHandle_(SafeLoadLibrary(L"hermes.dll")) {}
42
42
 
43
43
  FuncPtr getFuncPtr(const char *funcName) override {
44
44
  return reinterpret_cast<FuncPtr>(GetProcAddress(libHandle_, funcName));
@@ -233,11 +233,11 @@ class HermesScriptCache {
233
233
  class HermesLocalConnection : public facebook::react::ILocalConnection {
234
234
  public:
235
235
  HermesLocalConnection(
236
- std::unique_ptr<facebook::react::IRemoteConnection> remoteConneciton,
236
+ std::unique_ptr<facebook::react::IRemoteConnection> remoteConnection,
237
237
  void *connectFunc) noexcept {
238
238
  CRASH_ON_ERROR(getHermesApi().hermes_create_local_connection(
239
239
  connectFunc,
240
- reinterpret_cast<hermes_remote_connection>(remoteConneciton.release()),
240
+ reinterpret_cast<hermes_remote_connection>(remoteConnection.release()),
241
241
  &OnRemoteConnectionSendMessage,
242
242
  &OnRemoteConnectionDisconnect,
243
243
  &OnRemoteConnectionDelete,
@@ -279,9 +279,9 @@ int32_t NAPI_CDECL addInspectorPage(const char *title, const char *vm, void *con
279
279
  title,
280
280
  vm,
281
281
  [connectFunc,
282
- hermesApi = HermesApi::current()](std::unique_ptr<facebook::react::IRemoteConnection> remoteConneciton) {
282
+ hermesApi = HermesApi::current()](std::unique_ptr<facebook::react::IRemoteConnection> remoteConnection) {
283
283
  HermesApi::Scope apiScope(hermesApi);
284
- return std::make_unique<HermesLocalConnection>(std::move(remoteConneciton), connectFunc);
284
+ return std::make_unique<HermesLocalConnection>(std::move(remoteConnection), connectFunc);
285
285
  });
286
286
  }
287
287
 
@@ -359,7 +359,7 @@ void HermesRuntimeHolder::crashHandler(int fileDescriptor) noexcept {
359
359
  }
360
360
 
361
361
  void HermesRuntimeHolder::teardown() noexcept {
362
- // TODO: (vmoroz) Implement
362
+ // TODO: (@vmoroz) Implement
363
363
  }
364
364
 
365
365
  std::shared_ptr<HermesRuntimeHolder> HermesRuntimeHolder::loadFrom(
@@ -23,7 +23,7 @@ struct IDevSupportManager {
23
23
  virtual void StopPollingLiveReload() = 0;
24
24
 
25
25
  virtual void EnsureHermesInspector(const std::string &packagerHost, const uint16_t packagerPort) noexcept = 0;
26
- virtual void UpdateBundleStatus(bool isLastDownloadSucess, int64_t updateTimestamp) noexcept = 0;
26
+ virtual void UpdateBundleStatus(bool isLastDownloadSuccess, int64_t updateTimestamp) noexcept = 0;
27
27
  };
28
28
 
29
29
  std::shared_ptr<IDevSupportManager> CreateDevSupportManager();
@@ -96,7 +96,7 @@ ChakraApi::JsRefHolder::~JsRefHolder() noexcept {
96
96
  }
97
97
 
98
98
  /*static*/ void ChakraApi::DisposeRuntime(JsRuntimeHandle runtime) {
99
- ChakraVerifyElseThrow(JsDisposeRuntime(runtime) == JsErrorCode::JsNoError, "Cannot dispaose Chakra runtime.");
99
+ ChakraVerifyElseThrow(JsDisposeRuntime(runtime) == JsErrorCode::JsNoError, "Cannot dispose Chakra runtime.");
100
100
  }
101
101
 
102
102
  /*static*/ uint32_t ChakraApi::AddRef(JsRef ref) {
@@ -124,16 +124,16 @@ void ChakraRuntime::PromiseContinuation(JsValueRef funcRef) noexcept {
124
124
  }
125
125
  }
126
126
 
127
- JsValueRef ChakraRuntime::CreatePropertyDescriptor(JsValueRef value, PropertyAttibutes attrs) {
127
+ JsValueRef ChakraRuntime::CreatePropertyDescriptor(JsValueRef value, PropertyAttributes attrs) {
128
128
  JsValueRef descriptor = CreateObject();
129
129
  SetProperty(descriptor, m_propertyId.value, value);
130
- if (!(attrs & PropertyAttibutes::ReadOnly)) {
130
+ if (!(attrs & PropertyAttributes::ReadOnly)) {
131
131
  SetProperty(descriptor, m_propertyId.writable, BoolToBoolean(true));
132
132
  }
133
- if (!(attrs & PropertyAttibutes::DontEnum)) {
133
+ if (!(attrs & PropertyAttributes::DontEnum)) {
134
134
  SetProperty(descriptor, m_propertyId.enumerable, BoolToBoolean(true));
135
135
  }
136
- if (!(attrs & PropertyAttibutes::DontDelete)) {
136
+ if (!(attrs & PropertyAttributes::DontDelete)) {
137
137
  // The JavaScript 'configurable=true' allows property to be deleted.
138
138
  SetProperty(descriptor, m_propertyId.configurable, BoolToBoolean(true));
139
139
  }
@@ -607,7 +607,7 @@ facebook::jsi::Function ChakraRuntime::createFunctionFromHostFunction(
607
607
  DefineProperty(
608
608
  function,
609
609
  m_propertyId.hostFunctionSymbol,
610
- CreatePropertyDescriptor(hostFunctionHolder, PropertyAttibutes::DontEnumAndFrozen));
610
+ CreatePropertyDescriptor(hostFunctionHolder, PropertyAttributes::DontEnumAndFrozen));
611
611
 
612
612
  return MakePointer<facebook::jsi::Object>(function).getFunction(*this);
613
613
  }
@@ -763,7 +763,7 @@ JsValueRef ChakraRuntime::CreateExternalFunction(
763
763
  DefineProperty(
764
764
  function,
765
765
  m_propertyId.length,
766
- CreatePropertyDescriptor(IntToNumber(paramCount), PropertyAttibutes::DontEnumAndFrozen));
766
+ CreatePropertyDescriptor(IntToNumber(paramCount), PropertyAttributes::DontEnumAndFrozen));
767
767
  return function;
768
768
  }
769
769
 
@@ -773,14 +773,14 @@ JsValueRef CALLBACK ChakraRuntime::HostFunctionCall(
773
773
  JsValueRef *args,
774
774
  unsigned short argCount,
775
775
  void *callbackState) {
776
- HostFunctionWrapper *hostFuncWraper = static_cast<HostFunctionWrapper *>(callbackState);
777
- ChakraRuntime &chakraRuntime = hostFuncWraper->GetRuntime();
776
+ HostFunctionWrapper *hostFuncWrapper = static_cast<HostFunctionWrapper *>(callbackState);
777
+ ChakraRuntime &chakraRuntime = hostFuncWrapper->GetRuntime();
778
778
  return chakraRuntime.HandleCallbackExceptions([&]() {
779
779
  ChakraVerifyElseThrow(argCount > 0, "There must be at least 'this' argument.");
780
780
  const JsiValueView jsiThisArg{*args};
781
781
  const JsiValueViewArgs jsiArgs{args + 1, argCount - 1u};
782
782
 
783
- const facebook::jsi::HostFunctionType &hostFunc = hostFuncWraper->GetHostFunction();
783
+ const facebook::jsi::HostFunctionType &hostFunc = hostFuncWrapper->GetHostFunction();
784
784
  return RunInMethodContext("HostFunction", [&]() {
785
785
  return chakraRuntime.ToJsValueRef(hostFunc(chakraRuntime, jsiThisArg, jsiArgs.Data(), jsiArgs.Size()));
786
786
  });
@@ -913,7 +913,7 @@ JsValueRef CALLBACK ChakraRuntime::HostFunctionCall(
913
913
  const PropNameIDView propertyId{GetPropertyIdFromName(StringToPointer(propertyName).data())};
914
914
  return RunInMethodContext("HostObject::getOwnPropertyDescriptor", [&]() {
915
915
  auto value = chakraRuntime->ToJsValueRef(hostObject->get(*chakraRuntime, propertyId));
916
- auto descriptor = chakraRuntime->CreatePropertyDescriptor(value, PropertyAttibutes::None);
916
+ auto descriptor = chakraRuntime->CreatePropertyDescriptor(value, PropertyAttributes::None);
917
917
  return descriptor;
918
918
  });
919
919
  }