react-native-windows 0.68.1 → 0.69.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 (392) hide show
  1. package/.flowconfig +1 -3
  2. package/Chakra/ChakraHelpers.cpp +0 -1
  3. package/Directory.Build.props +3 -0
  4. package/Directory.Build.targets +1 -1
  5. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +1411 -0
  6. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +336 -0
  7. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +182 -0
  8. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +7 -0
  9. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  10. package/Libraries/Alert/Alert.windows.js +2 -2
  11. package/Libraries/Animated/AnimatedImplementation.js +1 -1
  12. package/Libraries/Animated/NativeAnimatedHelper.js +55 -9
  13. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  14. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  15. package/Libraries/Animated/animations/TimingAnimation.js +6 -11
  16. package/Libraries/Animated/createAnimatedComponent.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedColor.js +95 -29
  18. package/Libraries/Animated/nodes/AnimatedInterpolation.js +19 -22
  19. package/Libraries/Animated/nodes/AnimatedNode.js +2 -2
  20. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  21. package/Libraries/AppState/AppState.js +1 -1
  22. package/Libraries/Blob/URL.js +7 -1
  23. package/Libraries/Components/Button.js +3 -0
  24. package/Libraries/Components/Button.windows.js +4 -0
  25. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +5 -0
  26. package/Libraries/Components/Pressable/Pressable.js +3 -3
  27. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  28. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +47 -38
  29. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +15 -7
  30. package/Libraries/Components/ScrollView/ScrollView.js +1 -1
  31. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -3
  32. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +3 -1
  33. package/Libraries/Components/Slider/Slider.js +0 -2
  34. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -1
  35. package/Libraries/Components/StatusBar/StatusBar.js +6 -1
  36. package/Libraries/Components/Switch/Switch.js +11 -1
  37. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +114 -109
  38. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +17 -9
  39. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +13 -5
  40. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +10 -0
  41. package/Libraries/Components/TextInput/TextInput.js +1 -8
  42. package/Libraries/Components/TextInput/TextInput.windows.js +4 -9
  43. package/Libraries/Components/TextInput/TextInputState.js +10 -2
  44. package/Libraries/Components/TextInput/TextInputState.windows.js +10 -3
  45. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
  46. package/Libraries/Components/Touchable/TouchableBounce.js +1 -0
  47. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -0
  48. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +6 -5
  49. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -0
  50. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -1
  51. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
  52. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -0
  53. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
  54. package/Libraries/Components/View/ReactNativeViewAttributes.js +1 -0
  55. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +1 -0
  56. package/Libraries/Components/View/View.windows.js +33 -1
  57. package/Libraries/Components/View/ViewNativeComponent.js +68 -8
  58. package/Libraries/Components/View/ViewPropTypes.js +36 -4
  59. package/Libraries/Components/View/ViewPropTypes.windows.js +36 -4
  60. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  61. package/Libraries/Core/ExceptionsManager.js +1 -1
  62. package/Libraries/Core/RawEventEmitter.js +38 -0
  63. package/Libraries/Core/ReactNativeVersion.js +2 -2
  64. package/Libraries/Core/polyfillPromise.js +32 -0
  65. package/Libraries/Core/setUpReactDevTools.js +3 -2
  66. package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
  67. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  68. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +3 -3
  69. package/Libraries/Events/CustomEvent.js +32 -0
  70. package/Libraries/Events/EventPolyfill.js +239 -0
  71. package/Libraries/Image/Image.android.js +0 -6
  72. package/Libraries/Image/Image.ios.js +0 -6
  73. package/Libraries/Image/Image.windows.js +2 -8
  74. package/Libraries/Image/ImageViewNativeComponent.js +18 -3
  75. package/Libraries/Image/TextInlineImageNativeComponent.js +23 -15
  76. package/Libraries/Inspector/Inspector.js +2 -4
  77. package/Libraries/Interaction/BridgeSpyStallHandler.js +4 -3
  78. package/Libraries/Interaction/InteractionManager.js +1 -12
  79. package/Libraries/Interaction/TaskQueue.js +5 -4
  80. package/Libraries/LayoutAnimation/LayoutAnimation.js +13 -0
  81. package/Libraries/Linking/Linking.js +1 -1
  82. package/Libraries/Lists/FlatList.js +27 -6
  83. package/Libraries/Lists/VirtualizedList.js +71 -55
  84. package/Libraries/Lists/VirtualizedListContext.js +7 -3
  85. package/Libraries/Lists/VirtualizedSectionList.js +2 -2
  86. package/Libraries/Lists/__tests__/{FillRateHelper-test.windows.js → FillRateHelper-test.js} +2 -2
  87. package/Libraries/Lists/__tests__/{FlatList-test.windows.js → FlatList-test.js} +2 -2
  88. package/Libraries/Lists/__tests__/{SectionList-test.windows.js → SectionList-test.js} +14 -14
  89. package/Libraries/Lists/__tests__/{VirtualizeUtils-test.windows.js → VirtualizeUtils-test.js} +3 -3
  90. package/Libraries/Lists/__tests__/{VirtualizedList-test.windows.js → VirtualizedList-test.js} +91 -42
  91. package/Libraries/Lists/__tests__/{VirtualizedSectionList-test.windows.js → VirtualizedSectionList-test.js} +13 -13
  92. package/Libraries/LogBox/Data/LogBoxData.js +2 -2
  93. package/Libraries/LogBox/Data/LogBoxLog.js +1 -1
  94. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  95. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  96. package/Libraries/LogBox/LogBox.js +2 -21
  97. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -0
  98. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +2 -1
  99. package/Libraries/NativeComponent/BaseViewConfig.android.js +295 -0
  100. package/Libraries/NativeComponent/BaseViewConfig.ios.js +333 -0
  101. package/Libraries/NativeComponent/BaseViewConfig.windows.js +334 -0
  102. package/Libraries/NativeComponent/NativeComponentRegistry.js +0 -2
  103. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +24 -0
  104. package/Libraries/NativeComponent/StaticViewConfigValidator.js +7 -42
  105. package/Libraries/NativeComponent/ViewConfig.js +4 -4
  106. package/Libraries/NativeComponent/ViewConfigIgnore.js +54 -0
  107. package/Libraries/Network/FormData.js +7 -1
  108. package/Libraries/Pressability/Pressability.js +115 -46
  109. package/Libraries/Pressability/Pressability.windows.js +190 -74
  110. package/Libraries/Pressability/PressabilityDebug.js +5 -9
  111. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  112. package/Libraries/ReactNative/AppContainer.js +1 -1
  113. package/Libraries/ReactNative/{DummyUIManager.js → BridgelessUIManager.js} +62 -40
  114. package/Libraries/ReactNative/PaperUIManager.windows.js +5 -5
  115. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +39 -0
  116. package/Libraries/ReactNative/UIManager.js +2 -3
  117. package/Libraries/ReactNative/renderApplication.js +4 -0
  118. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +8 -0
  119. package/Libraries/Renderer/implementations/ReactFabric-dev.js +5908 -4906
  120. package/Libraries/Renderer/implementations/ReactFabric-prod.js +2100 -1918
  121. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +2567 -2352
  122. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5610 -4844
  123. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1710 -1556
  124. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1830 -1639
  125. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
  126. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -1
  127. package/Libraries/StyleSheet/EdgeInsetsPropType.js +4 -1
  128. package/Libraries/StyleSheet/StyleSheetTypes.js +59 -66
  129. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  130. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  131. package/Libraries/StyleSheet/private/_TransformStyle.js +53 -0
  132. package/Libraries/StyleSheet/processTransform.windows.js +272 -0
  133. package/Libraries/Text/Text.js +13 -7
  134. package/Libraries/Text/Text.windows.js +16 -7
  135. package/Libraries/Text/TextNativeComponent.js +2 -0
  136. package/Libraries/Text/TextProps.js +10 -0
  137. package/Libraries/Types/CoreEventTypes.js +13 -1
  138. package/Libraries/Types/CoreEventTypes.windows.js +26 -1
  139. package/Libraries/Utilities/Appearance.js +0 -8
  140. package/Libraries/Utilities/HMRClient.js +1 -1
  141. package/Libraries/Utilities/ReactNativeTestTools.js +1 -0
  142. package/Libraries/Utilities/codegenNativeComponent.js +17 -6
  143. package/Libraries/Utilities/stringifySafe.js +4 -1
  144. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +3 -3
  145. package/Libraries/WebSocket/WebSocket.js +1 -1
  146. package/Libraries/vendor/emitter/_EmitterSubscription.js +1 -1
  147. package/Libraries/vendor/emitter/_EventEmitter.js +1 -1
  148. package/Libraries/vendor/emitter/_EventSubscription.js +1 -1
  149. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +1 -4
  150. package/Microsoft.ReactNative/DynamicReader.cpp +3 -3
  151. package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
  152. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
  153. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
  154. package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
  155. package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
  156. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
  157. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  158. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
  159. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
  160. package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
  161. package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
  162. package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
  163. package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
  164. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
  165. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
  166. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
  167. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
  168. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
  169. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
  170. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
  171. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
  172. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
  173. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
  174. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
  175. package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
  176. package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
  177. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
  178. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
  179. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
  180. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
  181. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
  182. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
  183. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
  184. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
  185. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
  186. package/Microsoft.ReactNative/IViewManager.idl +3 -3
  187. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
  188. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
  189. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
  190. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
  191. package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
  192. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
  193. package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
  194. package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
  195. package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
  196. package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
  197. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +15 -2
  198. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  199. package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
  200. package/Microsoft.ReactNative/ReactInstanceSettings.idl +12 -2
  201. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +1 -1
  202. package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
  203. package/Microsoft.ReactNative/RedBox.cpp +3 -2
  204. package/Microsoft.ReactNative/TurboModulesProvider.cpp +3 -2
  205. package/Microsoft.ReactNative/TurboModulesProvider.h +4 -1
  206. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +41 -0
  207. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
  208. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
  209. package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
  210. package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
  211. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
  212. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
  213. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
  214. package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
  215. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
  216. package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
  217. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  218. package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
  219. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
  220. package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
  221. package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
  222. package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
  223. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
  224. package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
  225. package/Microsoft.ReactNative/XamlView.h +8 -3
  226. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
  227. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
  228. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
  229. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
  230. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +19 -14
  231. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +4 -0
  232. package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
  233. package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
  234. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
  235. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
  236. package/Microsoft.ReactNative.Cxx/NativeModules.h +3 -3
  237. package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
  238. package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
  239. package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
  240. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
  241. package/Mso/activeObject/activeObject.h +2 -2
  242. package/Mso/compilerAdapters/cppMacros.h +3 -5
  243. package/Mso/errorCode/errorProvider.h +2 -2
  244. package/Mso/errorCode/maybe.h +4 -4
  245. package/Mso/functional/functor.h +6 -6
  246. package/Mso/functional/functorRef.h +2 -2
  247. package/Mso/future/details/executor.h +2 -2
  248. package/Mso/future/details/futureFuncInl.h +4 -4
  249. package/Mso/future/details/ifuture.h +3 -3
  250. package/Mso/future/details/maybeInvoker.h +6 -6
  251. package/Mso/future/details/promiseGroupInl.h +4 -4
  252. package/Mso/future/details/promiseInl.h +4 -4
  253. package/Mso/future/details/resultTraits.h +4 -4
  254. package/Mso/future/details/whenAllInl.h +1 -1
  255. package/Mso/future/future.h +13 -13
  256. package/Mso/guid/msoGuidDetails.h +1 -1
  257. package/Mso/memoryApi/memoryApi.h +13 -7
  258. package/Mso/motifCpp/gTestAdapter.h +1 -1
  259. package/Mso/motifCpp/testInfo.h +7 -9
  260. package/Mso/object/make.h +8 -8
  261. package/Mso/object/objectRefCount.h +3 -5
  262. package/Mso/object/objectWithWeakRef.h +10 -14
  263. package/Mso/object/queryCast.h +4 -4
  264. package/Mso/object/refCountedObject.h +4 -4
  265. package/Mso/object/unknownObject.h +7 -7
  266. package/Mso/platformAdapters/windowsFirst.h +1 -1
  267. package/Mso/smartPtr/cntPtr.h +8 -8
  268. package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +96 -4
  269. package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
  270. package/Mso/src/future/futureImpl.h +1 -1
  271. package/Mso/src/memoryApi/memoryApi.cpp +4 -4
  272. package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
  273. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
  274. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
  275. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  276. package/PropertySheets/JSEngine.props +1 -1
  277. package/PropertySheets/React.Cpp.props +13 -0
  278. package/PropertySheets/WinUI.props +3 -6
  279. package/ReactCommon/ReactCommon.vcxproj +2 -4
  280. package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
  281. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
  282. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
  283. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
  284. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
  285. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
  286. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
  287. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
  288. package/ReactCommon/Yoga.cpp +1 -1
  289. package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
  290. package/Scripts/OfficeReact.Win32.nuspec +1 -3
  291. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
  292. package/Scripts/copyRNLibraries.js +8 -8
  293. package/Scripts/just.js +1 -1
  294. package/Scripts/rnw-dependencies.ps1 +41 -10
  295. package/Scripts/run-desktop-integration-tests.js +6 -6
  296. package/Shared/AbiSafe.h +3 -3
  297. package/Shared/BaseScriptStoreImpl.cpp +1 -1
  298. package/Shared/CppRuntimeOptions.h +50 -0
  299. package/Shared/CreateModules.h +4 -0
  300. package/Shared/DevSupportManager.cpp +34 -33
  301. package/Shared/DevSupportManager.h +1 -2
  302. package/Shared/HermesRuntimeHolder.cpp +23 -14
  303. package/Shared/HermesRuntimeHolder.h +8 -2
  304. package/Shared/IDevSupportManager.h +1 -2
  305. package/Shared/InspectorPackagerConnection.cpp +7 -5
  306. package/Shared/InspectorPackagerConnection.h +2 -2
  307. package/Shared/JSI/ChakraApi.cpp +0 -1
  308. package/Shared/JSI/ChakraRuntime.cpp +1 -2
  309. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +1 -1
  310. package/Shared/JSI/RuntimeHolder.h +2 -0
  311. package/Shared/Modules/HttpModule.cpp +198 -0
  312. package/Shared/Modules/HttpModule.h +53 -0
  313. package/Shared/Modules/WebSocketModule.cpp +5 -1
  314. package/Shared/Modules/WebSocketModule.h +8 -5
  315. package/Shared/Networking/IHttpResource.h +53 -0
  316. package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +3 -3
  317. package/Shared/Networking/OriginPolicy.h +15 -0
  318. package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
  319. package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
  320. package/Shared/Networking/WinRTHttpResource.cpp +347 -0
  321. package/Shared/Networking/WinRTHttpResource.h +67 -0
  322. package/Shared/Networking/WinRTTypes.h +30 -0
  323. package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +31 -22
  324. package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
  325. package/Shared/OInstance.cpp +37 -11
  326. package/Shared/RuntimeOptions.cpp +93 -15
  327. package/Shared/RuntimeOptions.h +22 -9
  328. package/Shared/Shared.vcxitems +126 -5
  329. package/Shared/Shared.vcxitems.filters +55 -15
  330. package/Shared/Threading/BatchingQueueThread.cpp +1 -1
  331. package/Shared/Utils/WinRTConversions.cpp +22 -0
  332. package/Shared/Utils/WinRTConversions.h +15 -0
  333. package/Shared/tracing/fbsystrace.h +2 -2
  334. package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
  335. package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
  336. package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
  337. package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
  338. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  339. package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
  340. package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
  341. package/codegen/react/components/rnwcore/Props.cpp +0 -13
  342. package/codegen/react/components/rnwcore/Props.h +0 -16
  343. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  344. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
  345. package/include/Shared/cdebug.h +9 -9
  346. package/index.js +30 -25
  347. package/index.windows.js +30 -25
  348. package/jest/preprocessor.js +24 -107
  349. package/jest/preprocessor_DO_NOT_USE.js +122 -0
  350. package/metro.config.js +3 -70
  351. package/package.json +29 -28
  352. package/react-native.config.js +40 -6
  353. package/rntypes/index.d.ts +19 -7
  354. package/stubs/glog/logging.h +1 -1
  355. package/template/cpp-app/src/App.h +0 -4
  356. package/template/cs-app/src/App.xaml.cs +0 -5
  357. package/template/cs-app/src/MainPage.xaml.cs +1 -10
  358. package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
  359. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
  360. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
  361. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
  362. package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
  363. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
  364. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
  365. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
  366. package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
  367. package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
  368. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
  369. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
  370. package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
  371. package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
  372. package/template/metro.devMode.config.js +2 -51
  373. package/typings-index.js +5 -1
  374. package/typings-index.js.map +1 -1
  375. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
  376. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
  377. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  378. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
  379. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
  380. package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
  381. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
  382. package/Libraries/ReactNative/UIManagerInjection.js +0 -15
  383. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
  384. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
  385. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
  386. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
  387. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
  388. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
  389. package/PropertySheets/CppEnablePackageReferences.props +0 -13
  390. package/Shared/IHttpResource.h +0 -34
  391. package/Shared/cdebug.cpp +0 -6
  392. package/include/Shared/ViewManager.h +0 -34
@@ -0,0 +1,103 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <jsi/jsi.h>
11
+ #include <LongLivedObject.h>
12
+
13
+ #include <memory>
14
+
15
+ namespace facebook {
16
+ namespace react {
17
+
18
+ // Helper for passing jsi::Function arg to other methods.
19
+ class CallbackWrapper : public LongLivedObject {
20
+ private:
21
+ CallbackWrapper(
22
+ jsi::Function &&callback,
23
+ jsi::Runtime &runtime,
24
+ std::shared_ptr<CallInvoker> jsInvoker)
25
+ : longLivedObjectCollection_(),
26
+ callback_(std::move(callback)),
27
+ runtime_(runtime),
28
+ jsInvoker_(std::move(jsInvoker)) {}
29
+
30
+ CallbackWrapper(
31
+ std::shared_ptr<LongLivedObjectCollection> longLivedObjectCollection,
32
+ jsi::Function &&callback,
33
+ jsi::Runtime &runtime,
34
+ std::shared_ptr<CallInvoker> jsInvoker)
35
+ : longLivedObjectCollection_(longLivedObjectCollection),
36
+ callback_(std::move(callback)),
37
+ runtime_(runtime),
38
+ jsInvoker_(std::move(jsInvoker)) {}
39
+
40
+ // Use a weak_ptr to avoid a retain cycle: LongLivedObjectCollection owns all
41
+ // CallbackWrappers. So, CallbackWrapper cannot own its
42
+ // LongLivedObjectCollection.
43
+ std::weak_ptr<LongLivedObjectCollection> longLivedObjectCollection_;
44
+ jsi::Function callback_;
45
+ jsi::Runtime &runtime_;
46
+ std::shared_ptr<CallInvoker> jsInvoker_;
47
+
48
+ public:
49
+ static std::weak_ptr<CallbackWrapper> createWeak(
50
+ jsi::Function &&callback,
51
+ jsi::Runtime &runtime,
52
+ std::shared_ptr<CallInvoker> jsInvoker) {
53
+ auto wrapper = std::shared_ptr<CallbackWrapper>(
54
+ new CallbackWrapper(std::move(callback), runtime, jsInvoker));
55
+ LongLivedObjectCollection::get().add(wrapper);
56
+ return wrapper;
57
+ }
58
+
59
+ static std::weak_ptr<CallbackWrapper> createWeak(
60
+ std::shared_ptr<LongLivedObjectCollection> longLivedObjectCollection,
61
+ jsi::Function &&callback,
62
+ jsi::Runtime &runtime,
63
+ std::shared_ptr<CallInvoker> jsInvoker) {
64
+ auto wrapper = std::shared_ptr<CallbackWrapper>(new CallbackWrapper(
65
+ longLivedObjectCollection, std::move(callback), runtime, jsInvoker));
66
+ longLivedObjectCollection->add(wrapper);
67
+ return wrapper;
68
+ }
69
+
70
+ // Delete the enclosed jsi::Function
71
+ void destroy() {
72
+ allowRelease();
73
+ }
74
+
75
+ jsi::Function &callback() {
76
+ return callback_;
77
+ }
78
+
79
+ jsi::Runtime &runtime() {
80
+ return runtime_;
81
+ }
82
+
83
+ CallInvoker &jsInvoker() {
84
+ return *(jsInvoker_);
85
+ }
86
+
87
+ std::shared_ptr<CallInvoker> jsInvokerPtr() {
88
+ return jsInvoker_;
89
+ }
90
+
91
+ void allowRelease() override {
92
+ if (auto longLivedObjectCollection = longLivedObjectCollection_.lock()) {
93
+ if (longLivedObjectCollection != nullptr) {
94
+ longLivedObjectCollection->remove(this);
95
+ return;
96
+ }
97
+ }
98
+ LongLivedObject::allowRelease();
99
+ }
100
+ };
101
+
102
+ } // namespace react
103
+ } // namespace facebook
@@ -0,0 +1,87 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <string>
11
+ #include <unordered_map>
12
+
13
+ #include <jsi/jsi.h>
14
+
15
+ #include <ReactCommon/CallInvoker.h>
16
+
17
+ namespace facebook {
18
+ namespace react {
19
+
20
+ /**
21
+ * For now, support the same set of return types as existing impl.
22
+ * This can be improved to support richer typed objects.
23
+ */
24
+ enum TurboModuleMethodValueKind {
25
+ VoidKind,
26
+ BooleanKind,
27
+ NumberKind,
28
+ StringKind,
29
+ ObjectKind,
30
+ ArrayKind,
31
+ FunctionKind,
32
+ PromiseKind,
33
+ };
34
+
35
+ /**
36
+ * Base HostObject class for every module to be exposed to JS
37
+ */
38
+ class JSI_EXPORT TurboModule : public facebook::jsi::HostObject {
39
+ public:
40
+ TurboModule(const std::string &name, std::shared_ptr<CallInvoker> jsInvoker);
41
+
42
+ virtual facebook::jsi::Value get(
43
+ facebook::jsi::Runtime &runtime,
44
+ const facebook::jsi::PropNameID &propName) override {
45
+ std::string propNameUtf8 = propName.utf8(runtime);
46
+ auto p = methodMap_.find(propNameUtf8);
47
+ if (p == methodMap_.end()) {
48
+ // Method was not found, let JS decide what to do.
49
+ return jsi::Value::undefined();
50
+ }
51
+ MethodMetadata meta = p->second;
52
+ return jsi::Function::createFromHostFunction(
53
+ runtime,
54
+ propName,
55
+ static_cast<unsigned int>(meta.argCount),
56
+ [this, meta](
57
+ facebook::jsi::Runtime &rt,
58
+ const facebook::jsi::Value &,
59
+ const facebook::jsi::Value *args,
60
+ size_t count) { return meta.invoker(rt, *this, args, count); });
61
+ }
62
+
63
+ const std::string name_;
64
+ std::shared_ptr<CallInvoker> jsInvoker_;
65
+
66
+ protected:
67
+ struct MethodMetadata {
68
+ size_t argCount;
69
+ facebook::jsi::Value (*invoker)(
70
+ facebook::jsi::Runtime &rt,
71
+ TurboModule &turboModule,
72
+ const facebook::jsi::Value *args,
73
+ size_t count);
74
+ };
75
+
76
+ std::unordered_map<std::string, MethodMetadata> methodMap_;
77
+ };
78
+
79
+ /**
80
+ * An app/platform-specific provider function to get an instance of a module
81
+ * given a name.
82
+ */
83
+ using TurboModuleProviderFunctionType =
84
+ std::function<std::shared_ptr<TurboModule>(const std::string &name)>;
85
+
86
+ } // namespace react
87
+ } // namespace facebook
@@ -0,0 +1,61 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <cassert>
11
+ #include <string>
12
+
13
+ #include <jsi/jsi.h>
14
+
15
+ #include <ReactCommon/CallInvoker.h>
16
+ #include <CallbackWrapper.h>
17
+ #include <LongLivedObject.h>
18
+
19
+ namespace facebook {
20
+ namespace react {
21
+
22
+ jsi::Object deepCopyJSIObject(jsi::Runtime &rt, const jsi::Object &obj);
23
+ jsi::Array deepCopyJSIArray(jsi::Runtime &rt, const jsi::Array &arr);
24
+
25
+ struct Promise : public LongLivedObject {
26
+ Promise(jsi::Runtime &rt, jsi::Function resolve, jsi::Function reject);
27
+
28
+ void resolve(const jsi::Value &result);
29
+ void reject(const std::string &error);
30
+
31
+ jsi::Runtime &runtime_;
32
+ jsi::Function resolve_;
33
+ jsi::Function reject_;
34
+ };
35
+
36
+ using PromiseSetupFunctionType =
37
+ std::function<void(jsi::Runtime &rt, std::shared_ptr<Promise>)>;
38
+ jsi::Value createPromiseAsJSIValue(
39
+ jsi::Runtime &rt,
40
+ const PromiseSetupFunctionType func);
41
+
42
+ class RAIICallbackWrapperDestroyer {
43
+ public:
44
+ RAIICallbackWrapperDestroyer(std::weak_ptr<CallbackWrapper> callbackWrapper)
45
+ : callbackWrapper_(callbackWrapper) {}
46
+
47
+ ~RAIICallbackWrapperDestroyer() {
48
+ auto strongWrapper = callbackWrapper_.lock();
49
+ if (!strongWrapper) {
50
+ return;
51
+ }
52
+
53
+ strongWrapper->destroy();
54
+ }
55
+
56
+ private:
57
+ std::weak_ptr<CallbackWrapper> callbackWrapper_;
58
+ };
59
+
60
+ } // namespace react
61
+ } // namespace facebook
@@ -2229,7 +2229,7 @@ static float YGDistributeFreeSpaceSecondPass(
2229
2229
  depth,
2230
2230
  generationCount);
2231
2231
  node->setLayoutHadOverflow(
2232
- node->getLayout().hadOverflow() |
2232
+ node->getLayout().hadOverflow() ||
2233
2233
  currentRelativeChild->getLayout().hadOverflow());
2234
2234
  }
2235
2235
  return deltaFreeSpace;
@@ -1,18 +1,16 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
3
3
  <metadata>
4
- <id>Microsoft.ReactNative.ProjectReunion</id>
4
+ <id>$id$</id>
5
+ <version>$version$</version>
6
+ <description>React Native for Windows for Windows App SDK apps</description>
7
+ <authors>Microsoft</authors>
5
8
  <projectUrl>https://github.com/microsoft/react-native-windows</projectUrl>
6
9
  <requireLicenseAcceptance>true</requireLicenseAcceptance>
7
10
  <license type="expression">MIT</license>
8
11
  <copyright>&#169; Microsoft Corporation. All rights reserved.</copyright>
9
- <repository type="git"
10
- url="https://github.com/microsoft/react-native-windows.git"
11
- commit="$CommitId$" />
12
- <tags>react react-native react-native-windows microsoft c c++ cpp c# csharp reunion projectreunion</tags>
13
- <version>$version$</version>
14
- <authors>Microsoft</authors>
15
- <description>React Native for Windows for Project Reunion apps</description>
12
+ <repository type="git" url="https://github.com/microsoft/react-native-windows.git" commit="$CommitId$" />
13
+ <tags>react react-native react-native-windows microsoft c c++ cpp c# csharp WindowsAppSDK</tags>
16
14
  <dependencies>
17
15
  <group targetFramework=".NETCoreApp3.0" />
18
16
  <group targetFramework="UAP10.0" />
@@ -27,6 +25,6 @@
27
25
  <file src="$nugetroot$\$baseplatform$\$baseconfiguration$\Microsoft.ReactNative\Microsoft.ReactNative.winmd" target="lib\uap10.0\Microsoft.ReactNative.winmd" />
28
26
  <file src="$nugetroot$\$baseplatform$\$baseconfiguration$\Microsoft.ReactNative\Microsoft.ReactNative.winmd" target="lib\net46\Microsoft.ReactNative.winmd" />
29
27
  <file src="$nugetroot$\$baseplatform$\$baseconfiguration$\Microsoft.ReactNative\Microsoft.ReactNative.dll" target="runtimes\win10-x64\native\Microsoft.ReactNative.dll" />
30
- <file src="$nugetroot$\$baseplatform$\$baseconfiguration$\Microsoft.ReactNative.ProjectReunion\Microsoft.ReactNative.ProjectReunion.dll" target="lib\net5.0\Microsoft.ReactNative.ProjectReunion.dll" />
28
+ <file src="$nugetroot$\$baseplatform$\$baseconfiguration$\Microsoft.ReactNative.WindowsAppSDK\Microsoft.ReactNative.WindowsAppSDK.dll" target="lib\net5.0\Microsoft.ReactNative.WindowsAppSDK.dll" />
31
29
  </files>
32
30
  </package>
@@ -49,17 +49,15 @@
49
49
  <file src="$nugetroot$\inc\Shared\InstanceManager.h" target="inc"/>
50
50
  <file src="$nugetroot$\inc\Shared\IReactRootView.h" target="inc"/>
51
51
  <file src="$nugetroot$\inc\Shared\IRedBoxHandler.h" target="inc"/>
52
- <file src="$nugetroot$\inc\Shared\IWebSocketResource.h" target="inc"/>
53
52
  <file src="$nugetroot$\inc\Shared\JSBigAbiString.h" target="inc"/>
54
53
  <file src="$nugetroot$\inc\Shared\LayoutAnimation.h" target="inc"/>
55
54
  <file src="$nugetroot$\inc\Shared\Logging.h" target="inc"/>
56
55
  <file src="$nugetroot$\inc\Shared\MemoryMappedBuffer.h" target="inc"/>
57
56
  <file src="$nugetroot$\inc\Shared\Modules\I18nModule.h" target="inc"/>
58
57
  <file src="$nugetroot$\inc\Shared\NativeModuleProvider.h" target="inc"/>
58
+ <file src="$nugetroot$\inc\Shared\Networking\IWebSocketResource.h" target="inc"/>
59
59
  <file src="$nugetroot$\inc\Shared\RuntimeOptions.h" target="inc"/>
60
- <file src="$nugetroot$\inc\ReactWin32\ShadowNode.h" target="inc"/>
61
60
  <file src="$nugetroot$\inc\Shared\Tracing.h" target="inc"/>
62
- <file src="$nugetroot$\inc\include\Shared\ViewManager.h" target="inc"/>
63
61
 
64
62
  <!-- Test DLL -->
65
63
  <file src="$nugetroot$\inc\Test\WebSocketServer.h" target="inc\Test" />
@@ -38,7 +38,8 @@ Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\jsi\jsi\threadsafe.h -Destin
38
38
  # Microsoft.ReactNative.CXX project TurboModule files
39
39
  New-Item -ItemType Directory -Path $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon
40
40
  Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\callinvoker\ReactCommon\CallInvoker.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
41
- Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\nativemodule\core\ReactCommon\LongLivedObject.cpp -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
41
+ Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\bridging\LongLivedObject.cpp -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
42
+ Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\bridging\CallbackWrapper.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
42
43
  Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\nativemodule\core\ReactCommon\LongLivedObject.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
43
44
  Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\nativemodule\core\ReactCommon\TurboModule.cpp -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
44
45
  Copy-Item -Force -Path $ReactNativeRoot\ReactCommon\react\nativemodule\core\ReactCommon\TurboModule.h -Destination $TargetRoot\Microsoft.ReactNative.Cxx\ReactCommon\
@@ -18,13 +18,13 @@ const rnTypesDir = path.dirname(
18
18
  require.resolve('@types/react-native/package.json'),
19
19
  );
20
20
 
21
- exports.copyTask = (baseDir) => {
22
- const reactNative = (...files) => files.map((f) => path.join(rnDir, f));
21
+ exports.copyTask = baseDir => {
22
+ const reactNative = (...files) => files.map(f => path.join(rnDir, f));
23
23
  const reactNativeTypes = (...files) =>
24
- files.map((f) => path.join(rnTypesDir, f));
25
- const reactCopies = (...files) => files.map((f) => path.join(rnCopiesDir, f));
26
- const src = (...files) => files.map((f) => path.join(baseDir, 'src', f));
27
- const base = (file) => path.join(baseDir, file);
24
+ files.map(f => path.join(rnTypesDir, f));
25
+ const reactCopies = (...files) => files.map(f => path.join(rnCopiesDir, f));
26
+ const src = (...files) => files.map(f => path.join(baseDir, 'src', f));
27
+ const base = file => path.join(baseDir, file);
28
28
 
29
29
  return series(
30
30
  exports.cleanTask(baseDir),
@@ -65,8 +65,8 @@ exports.copyTask = (baseDir) => {
65
65
  );
66
66
  };
67
67
 
68
- exports.cleanTask = (baseDir) => {
69
- const base = (file) => path.join(baseDir, file);
68
+ exports.cleanTask = baseDir => {
69
+ const base = file => path.join(baseDir, file);
70
70
 
71
71
  return cleanTask({
72
72
  paths: [
package/Scripts/just.js CHANGED
@@ -7,7 +7,7 @@
7
7
  function just(cmd) {
8
8
  const path = require('path');
9
9
 
10
- let startIndex = process.argv.findIndex((arg) => arg.startsWith('-'));
10
+ let startIndex = process.argv.findIndex(arg => arg.startsWith('-'));
11
11
  if (startIndex < 0) {
12
12
  startIndex = 2;
13
13
  }
@@ -72,6 +72,9 @@ $vsWorkloads = @('Microsoft.VisualStudio.Workload.ManagedDesktop',
72
72
  'Microsoft.VisualStudio.Workload.NativeDesktop',
73
73
  'Microsoft.VisualStudio.Workload.Universal');
74
74
 
75
+ # The minimum VS version to check for
76
+ $vsver = "16.5"
77
+
75
78
  $v = [System.Environment]::OSVersion.Version;
76
79
  if ($env:Agent_BuildDirectory) {
77
80
  $drive = (Resolve-Path $env:Agent_BuildDirectory).Drive
@@ -88,17 +91,25 @@ function CheckVS {
88
91
  if (!(Test-Path $vsWhere)) {
89
92
  return $false;
90
93
  }
91
- $output = & $vsWhere -version 16.5 -requires $vsComponents -property productPath
92
94
 
93
- return ($output -ne $null) -and (Test-Path $output);
95
+ [String[]]$output = & $vsWhere -version $vsver -requires $vsComponents -property productPath
96
+
97
+ if (($output.Count -eq 0) -or (!(Test-Path $output[0]))) {
98
+ Write-Debug "No Retail versions of Visual Studio found, trying pre-release..."
99
+ [String[]]$output = & $vsWhere -version $vsver -requires $vsComponents -property productPath -prerelease
100
+ }
101
+ if ($output.Count -gt 1) {
102
+ Write-Debug "More than one version of Visual Studio found, using the first one at $($output[0])"
103
+ }
104
+ return ($output.Count -ne 0) -and (Test-Path $output[0]);
94
105
  }
95
106
 
96
107
  function InstallVS {
97
108
  $installerPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer";
98
109
  $vsWhere = "$installerPath\vswhere.exe"
99
110
  if (Test-Path $vsWhere) {
100
- $channelId = & $vsWhere -version 16.5 -property channelId
101
- $productId = & $vsWhere -version 16.5 -property productId
111
+ $channelId = & $vsWhere -version $vsver -property channelId
112
+ $productId = & $vsWhere -version $vsver -property productId
102
113
  }
103
114
 
104
115
  if (!(Test-Path $vsWhere) -or ($channelId -eq $null) -or ($productId -eq $null)) {
@@ -109,8 +120,8 @@ function InstallVS {
109
120
  } else {
110
121
  & choco install -y visualstudio2019community
111
122
  }
112
- $channelId = & $vsWhere -version 16.5 -property channelId
113
- $productId = & $vsWhere -version 16.5 -property productId
123
+ $channelId = & $vsWhere -version $vsver -property channelId
124
+ $productId = & $vsWhere -version $vsver -property productId
114
125
  }
115
126
 
116
127
  $vsInstaller = "$installerPath\vs_installer.exe"
@@ -170,8 +181,17 @@ function CheckCppWinRT_VSIX {
170
181
  if (!(Test-Path $vsWhere)) {
171
182
  return $false;
172
183
  }
173
- $vsPath = & $vsWhere -version 16.5 -property installationPath;
174
- $natvis = Get-ChildItem "$vsPath\Common7\IDE\Extensions\cppwinrt.natvis" -Recurse;
184
+ [String[]]$vsPath = & $vsWhere -version $vsver -property installationPath;
185
+
186
+ if (($vsPath.Count -eq 0) -or (!(Test-Path $vsPath[0]))) {
187
+ Write-Debug "No Retail versions of Visual Studio found, trying pre-release..."
188
+ [String[]]$vsPath = & $vsWhere -version $vsver -property installationPath -prerelease
189
+ }
190
+
191
+ if ($vsPath.Count -gt 1) {
192
+ Write-Debug "More than one version of Visual Studio found, using the first one at $($vsPath[0])"
193
+ }
194
+ $natvis = Get-ChildItem "$($vsPath[0])\Common7\IDE\Extensions\cppwinrt.natvis" -Recurse;
175
195
  return $null -ne $natvis;
176
196
  } catch { return $false };
177
197
  }
@@ -185,8 +205,19 @@ function InstallCppWinRT_VSIX {
185
205
  if (!(Test-Path $vsWhere)) {
186
206
  return $false;
187
207
  }
188
- $productPath = & $vsWhere -version 16.5 -property productPath
189
- $VSIXInstaller_exe = Join-Path (Split-Path $productPath) "VSIXInstaller.exe"
208
+ [String[]]$productPath = & $vsWhere -version $vsver -property productPath
209
+
210
+ if (($productPath.Count -eq 0) -or (!(Test-Path $productPath[0]))) {
211
+ Write-Debug "No Retail versions of Visual Studio found, trying pre-release..."
212
+ [String[]]$productPath = & $vsWhere -version $vsver -property productPath -prerelease
213
+ }
214
+
215
+ if ($productPath.Count -gt 1) {
216
+ Write-Debug "More than one version of Visual Studio found, using the first one at $($productPath[0])"
217
+ }
218
+
219
+
220
+ $VSIXInstaller_exe = Join-Path (Split-Path $productPath[0]) "VSIXInstaller.exe"
190
221
  $process = Start-Process $VSIXInstaller_exe -PassThru -Wait -ArgumentList "/a /q $env:TEMP\Microsoft.Windows.CppWinRT.vsix"
191
222
  $process.WaitForExit();
192
223
  }
@@ -65,18 +65,18 @@ function launchMetroServer() {
65
65
  {cwd: __dirname},
66
66
  );
67
67
 
68
- serverEntries.metroServer.stdout.on('data', (chunk) => {
68
+ serverEntries.metroServer.stdout.on('data', chunk => {
69
69
  console.log(chunk.toString());
70
70
  if (chunk.toString().indexOf('Metro Bundler ready') >= 0) {
71
71
  resolve();
72
72
  }
73
73
  });
74
- serverEntries.metroServer.on('error', (err) => {
74
+ serverEntries.metroServer.on('error', err => {
75
75
  console.error('Metro process failed!' + err.toString());
76
76
  reject(err);
77
77
  });
78
78
 
79
- serverEntries.metroServer.on('exit', (code) => {
79
+ serverEntries.metroServer.on('exit', code => {
80
80
  if (code !== 0) {
81
81
  const err = `Metro process failed with error code: ${code}`;
82
82
  console.error(err);
@@ -97,17 +97,17 @@ function launchWebsocketServer() {
97
97
  {cwd: __dirname},
98
98
  );
99
99
 
100
- serverEntries.websocketServer.stdout.on('data', (chunk) => {
100
+ serverEntries.websocketServer.stdout.on('data', chunk => {
101
101
  console.log(chunk.toString());
102
102
  if (chunk.toString().indexOf('WebSocket integration test server') >= 0) {
103
103
  resolve();
104
104
  }
105
105
  });
106
- serverEntries.websocketServer.on('error', (err) => {
106
+ serverEntries.websocketServer.on('error', err => {
107
107
  reject(err);
108
108
  });
109
109
 
110
- serverEntries.websocketServer.on('exit', (code) => {
110
+ serverEntries.websocketServer.on('exit', code => {
111
111
  if (code !== 0) {
112
112
  const err = `Websocket test server process failed with error code: ${code}`;
113
113
  console.error(err);
package/Shared/AbiSafe.h CHANGED
@@ -72,7 +72,7 @@ struct IAbiFunctor; // Intentionally not implemented to allow the specialization
72
72
 
73
73
  template <class TResult, class... TArgs>
74
74
  struct IAbiFunctor<TResult(TArgs...)> : IAbiObject {
75
- virtual TResult Invoke(TArgs &&... args) noexcept = 0;
75
+ virtual TResult Invoke(TArgs &&...args) noexcept = 0;
76
76
  };
77
77
 
78
78
  // IAbiFunctorThrow is a representation of a function object (functors)
@@ -83,7 +83,7 @@ struct IAbiFunctorThrow; // Intentionally not implemented to allow the
83
83
 
84
84
  template <class TResult, class... TArgs>
85
85
  struct IAbiFunctorThrow<TResult(TArgs...)> : IAbiObject {
86
- virtual TResult Invoke(TArgs &&... args) = 0;
86
+ virtual TResult Invoke(TArgs &&...args) = 0;
87
87
  };
88
88
 
89
89
  // A base class to implement ABI safe types.
@@ -107,7 +107,7 @@ struct AbiObject : TAbiInterface {
107
107
 
108
108
  // A helper method to create new instance of ABI safe object and return AbiPtr.
109
109
  template <class T, class TResult = T, class... TArgs>
110
- AbiPtr<TResult> AbiMake(TArgs &&... args) {
110
+ AbiPtr<TResult> AbiMake(TArgs &&...args) {
111
111
  return AbiPtr<TResult>{new T{std::forward<TArgs>(args)...}};
112
112
  }
113
113
 
@@ -6,7 +6,7 @@
6
6
  #include "BaseScriptStoreImpl.h"
7
7
  #include "MemoryMappedBuffer.h"
8
8
 
9
- #include <RuntimeOptions.h>
9
+ #include <CppRuntimeOptions.h>
10
10
 
11
11
  // C++/WinRT
12
12
  #include <winrt/base.h>
@@ -0,0 +1,50 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+
6
+ #include <string>
7
+
8
+ namespace Microsoft::React {
9
+
10
+ /// <summary>
11
+ /// Sets a global boolean value identified by an arbitrary string.
12
+ /// </summary>
13
+ /// <param name="name">Global key</param>
14
+ void __cdecl SetRuntimeOptionBool(std::string &&name, bool value) noexcept;
15
+
16
+ /// <summary>
17
+ /// Sets a global signed integer value identified by an arbitrary string.
18
+ /// </summary>
19
+ /// <param name="name">Global boolean key</param>
20
+ void __cdecl SetRuntimeOptionInt(std::string &&name, std::int32_t value) noexcept;
21
+
22
+ /// <summary>
23
+ /// Sets a global string value identified by an arbitrary string.
24
+ /// </summary>
25
+ /// <param name="name">Global string key</param>
26
+ /// <param name="value">String value to store</param>
27
+ void __cdecl SetRuntimeOptionString(std::string &&name, std::string &&value) noexcept;
28
+
29
+ /// <summary>
30
+ /// Retrieves a global boolean value for the given key.
31
+ /// </summary>
32
+ /// <param name="name">Global boolean key</param>
33
+ /// <returns>Value stored for the given key, or false if the entry doesn't exist (default)</returns>
34
+ const bool __cdecl GetRuntimeOptionBool(const std::string &name) noexcept;
35
+
36
+ /// <summary>
37
+ /// Retrieves a global boolean value for the given key.
38
+ /// </summary>
39
+ /// <param name="name">Global key</param>
40
+ /// <returns>Value stored for the given key, or 0 if the entry doesn't exist (default)</returns>
41
+ const std::int32_t __cdecl GetRuntimeOptionInt(const std::string &name) noexcept;
42
+
43
+ /// <summary>
44
+ /// Retrieves a global string value for the given key.
45
+ /// </summary>
46
+ /// <param name="name">Global key</param>
47
+ /// <returns>Value stored for the given key, or an empty string if the entry doesn't exist (default)</returns>
48
+ const std::string __cdecl GetRuntimeOptionString(const std::string &name) noexcept;
49
+
50
+ } // namespace Microsoft::React
@@ -29,6 +29,10 @@ extern std::unique_ptr<facebook::xplat::module::CxxModule> CreateTimingModule(
29
29
 
30
30
  namespace Microsoft::React {
31
31
 
32
+ extern const char *GetHttpModuleName() noexcept;
33
+ extern std::unique_ptr<facebook::xplat::module::CxxModule> CreateHttpModule() noexcept;
34
+
35
+ extern const char *GetWebSocketModuleName() noexcept;
32
36
  extern std::unique_ptr<facebook::xplat::module::CxxModule> CreateWebSocketModule() noexcept;
33
37
 
34
38
  } // namespace Microsoft::React