react-native-windows 0.68.3 → 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 (378) 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/DynamicReader.cpp +3 -3
  150. package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -0
  151. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +36 -2
  152. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.h +1 -0
  153. package/Microsoft.ReactNative/Fabric/DWriteHelpers.cpp +19 -0
  154. package/Microsoft.ReactNative/Fabric/DWriteHelpers.h +13 -0
  155. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -19
  156. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  157. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +36 -10
  158. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +2 -0
  159. package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +107 -0
  160. package/Microsoft.ReactNative/Fabric/SliderComponentView.h +51 -0
  161. package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +109 -0
  162. package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +52 -0
  163. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +197 -0
  164. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +308 -0
  165. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +52 -0
  166. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.cpp +31 -0
  167. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputEventEmitter.h +33 -0
  168. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.cpp +81 -0
  169. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputProps.h +132 -0
  170. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.cpp +193 -0
  171. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputShadowNode.h +85 -0
  172. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.cpp +76 -0
  173. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputState.h +99 -0
  174. package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +35 -3
  175. package/Microsoft.ReactNative/Fabric/ViewComponentView.h +1 -0
  176. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +5 -0
  177. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +5 -0
  178. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +46 -0
  179. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +30 -0
  180. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +2 -0
  181. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -9
  182. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +3 -1
  183. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +119 -57
  184. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +18 -1
  185. package/Microsoft.ReactNative/IViewManager.idl +3 -3
  186. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +13 -107
  187. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +2 -2
  188. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -0
  189. package/Microsoft.ReactNative/Modules/AppStateModule.h +2 -0
  190. package/Microsoft.ReactNative/Modules/CreateModules.cpp +3 -3
  191. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +7 -5
  192. package/Microsoft.ReactNative/Modules/TimingModule.cpp +2 -2
  193. package/Microsoft.ReactNative/Modules/TimingModule.h +2 -2
  194. package/Microsoft.ReactNative/ReactHost/{ReactContext.cpp → MsoReactContext.cpp} +1 -1
  195. package/Microsoft.ReactNative/ReactHost/{ReactContext.h → MsoReactContext.h} +0 -0
  196. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +14 -1
  197. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  198. package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -1
  199. package/Microsoft.ReactNative/ReactRootView.cpp +2 -1
  200. package/Microsoft.ReactNative/RedBox.cpp +3 -2
  201. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +3 -2
  202. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +32 -0
  203. package/Microsoft.ReactNative/Views/ControlViewManager.h +11 -0
  204. package/Microsoft.ReactNative/Views/DevMenu.cpp +2 -2
  205. package/Microsoft.ReactNative/Views/FrameworkElementTransferProperties.cpp +13 -2
  206. package/Microsoft.ReactNative/Views/FrameworkElementViewManager.cpp +149 -22
  207. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +1 -1
  208. package/Microsoft.ReactNative/Views/Image/Microsoft.UI.Composition.Effects_Impl.h +5 -11
  209. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +2 -1
  210. package/Microsoft.ReactNative/Views/SliderViewManager.cpp +12 -4
  211. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +1 -1
  212. package/Microsoft.ReactNative/Views/TextViewManager.cpp +2 -2
  213. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +163 -37
  214. package/Microsoft.ReactNative/Views/TouchEventHandler.h +11 -4
  215. package/Microsoft.ReactNative/Views/ViewPanel.cpp +3 -23
  216. package/Microsoft.ReactNative/Views/ViewPanel.h +2 -3
  217. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +21 -0
  218. package/Microsoft.ReactNative/XamlUIService.cpp +1 -1
  219. package/Microsoft.ReactNative/XamlView.h +8 -3
  220. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +3 -5
  221. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +1 -1
  222. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +11 -2
  223. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +1 -0
  224. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -1
  225. package/Microsoft.ReactNative.Cxx/JSValueReader.h +2 -2
  226. package/Microsoft.ReactNative.Cxx/JSValueWriter.h +5 -5
  227. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +5 -1
  228. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +2 -3
  229. package/Microsoft.ReactNative.Cxx/NativeModules.h +1 -1
  230. package/Microsoft.ReactNative.Cxx/ReactContext.h +3 -3
  231. package/Microsoft.ReactNative.Cxx/ReactNonAbiValue.h +3 -3
  232. package/Microsoft.ReactNative.Cxx/XamlUtils.h +44 -5
  233. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +0 -6
  234. package/Mso/activeObject/activeObject.h +2 -2
  235. package/Mso/compilerAdapters/cppMacros.h +3 -5
  236. package/Mso/errorCode/errorProvider.h +2 -2
  237. package/Mso/errorCode/maybe.h +4 -4
  238. package/Mso/functional/functor.h +6 -6
  239. package/Mso/functional/functorRef.h +2 -2
  240. package/Mso/future/details/executor.h +2 -2
  241. package/Mso/future/details/futureFuncInl.h +4 -4
  242. package/Mso/future/details/ifuture.h +3 -3
  243. package/Mso/future/details/maybeInvoker.h +6 -6
  244. package/Mso/future/details/promiseGroupInl.h +4 -4
  245. package/Mso/future/details/promiseInl.h +4 -4
  246. package/Mso/future/details/resultTraits.h +4 -4
  247. package/Mso/future/details/whenAllInl.h +1 -1
  248. package/Mso/future/future.h +13 -13
  249. package/Mso/guid/msoGuidDetails.h +1 -1
  250. package/Mso/memoryApi/memoryApi.h +13 -7
  251. package/Mso/motifCpp/gTestAdapter.h +1 -1
  252. package/Mso/motifCpp/testInfo.h +7 -9
  253. package/Mso/object/make.h +8 -8
  254. package/Mso/object/objectRefCount.h +3 -5
  255. package/Mso/object/objectWithWeakRef.h +10 -14
  256. package/Mso/object/queryCast.h +4 -4
  257. package/Mso/object/refCountedObject.h +4 -4
  258. package/Mso/object/unknownObject.h +7 -7
  259. package/Mso/platformAdapters/windowsFirst.h +1 -1
  260. package/Mso/smartPtr/cntPtr.h +8 -8
  261. package/Mso/src/dispatchQueue/uiScheduler_winrt.cpp +2 -2
  262. package/Mso/src/future/futureImpl.h +1 -1
  263. package/Mso/src/memoryApi/memoryApi.cpp +4 -4
  264. package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
  265. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +26 -0
  266. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.Common.props +12 -0
  267. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  268. package/PropertySheets/React.Cpp.props +13 -0
  269. package/PropertySheets/WinUI.props +3 -6
  270. package/ReactCommon/ReactCommon.vcxproj +2 -4
  271. package/ReactCommon/ReactCommon.vcxproj.filters +4 -1
  272. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/JSCRuntime.cpp +1480 -0
  273. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/decorator.h +753 -0
  274. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/jsi.h +1331 -0
  275. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1431 -0
  276. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +103 -0
  277. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +87 -0
  278. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +61 -0
  279. package/ReactCommon/Yoga.cpp +1 -1
  280. package/Scripts/{Microsoft.ReactNative.ProjectReunion.nuspec → Microsoft.ReactNative.WindowsAppSDK.nuspec} +7 -9
  281. package/Scripts/OfficeReact.Win32.nuspec +1 -3
  282. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -1
  283. package/Scripts/copyRNLibraries.js +8 -8
  284. package/Scripts/just.js +1 -1
  285. package/Scripts/rnw-dependencies.ps1 +41 -10
  286. package/Scripts/run-desktop-integration-tests.js +6 -6
  287. package/Shared/AbiSafe.h +3 -3
  288. package/Shared/BaseScriptStoreImpl.cpp +1 -1
  289. package/Shared/CppRuntimeOptions.h +50 -0
  290. package/Shared/DevSupportManager.cpp +32 -36
  291. package/Shared/DevSupportManager.h +1 -2
  292. package/Shared/HermesRuntimeHolder.cpp +23 -14
  293. package/Shared/HermesRuntimeHolder.h +8 -2
  294. package/Shared/IDevSupportManager.h +1 -2
  295. package/Shared/InspectorPackagerConnection.cpp +7 -5
  296. package/Shared/InspectorPackagerConnection.h +2 -2
  297. package/Shared/JSI/ChakraApi.cpp +0 -1
  298. package/Shared/JSI/ChakraRuntime.cpp +1 -2
  299. package/Shared/JSI/RuntimeHolder.h +2 -0
  300. package/Shared/Modules/HttpModule.cpp +1 -1
  301. package/Shared/Modules/HttpModule.h +2 -2
  302. package/Shared/Modules/WebSocketModule.cpp +1 -1
  303. package/Shared/Modules/WebSocketModule.h +8 -5
  304. package/Shared/{IHttpResource.h → Networking/IHttpResource.h} +4 -4
  305. package/Shared/{IWebSocketResource.h → Networking/IWebSocketResource.h} +2 -2
  306. package/Shared/Networking/OriginPolicy.h +15 -0
  307. package/Shared/Networking/OriginPolicyHttpFilter.cpp +746 -0
  308. package/Shared/Networking/OriginPolicyHttpFilter.h +112 -0
  309. package/Shared/{WinRTHttpResource.cpp → Networking/WinRTHttpResource.cpp} +129 -99
  310. package/Shared/{WinRTHttpResource.h → Networking/WinRTHttpResource.h} +8 -12
  311. package/Shared/Networking/WinRTTypes.h +30 -0
  312. package/Shared/{WinRTWebSocketResource.cpp → Networking/WinRTWebSocketResource.cpp} +2 -2
  313. package/Shared/{WinRTWebSocketResource.h → Networking/WinRTWebSocketResource.h} +3 -3
  314. package/Shared/OInstance.cpp +5 -5
  315. package/Shared/RuntimeOptions.cpp +93 -15
  316. package/Shared/RuntimeOptions.h +22 -9
  317. package/Shared/Shared.vcxitems +122 -7
  318. package/Shared/Shared.vcxitems.filters +40 -21
  319. package/Shared/Threading/BatchingQueueThread.cpp +1 -1
  320. package/Shared/tracing/fbsystrace.h +2 -2
  321. package/codegen/NativeActionSheetManagerSpec.g.h +6 -0
  322. package/codegen/NativeAnimatedModuleSpec.g.h +43 -37
  323. package/codegen/NativeAnimatedTurboModuleSpec.g.h +43 -37
  324. package/codegen/NativePushNotificationManagerIOSSpec.g.h +2 -0
  325. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  326. package/codegen/react/components/rnwcore/EventEmitters.cpp +133 -0
  327. package/codegen/react/components/rnwcore/EventEmitters.h +0 -18
  328. package/codegen/react/components/rnwcore/Props.cpp +0 -13
  329. package/codegen/react/components/rnwcore/Props.h +0 -16
  330. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  331. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -10
  332. package/include/Shared/cdebug.h +9 -9
  333. package/index.js +30 -25
  334. package/index.windows.js +30 -25
  335. package/jest/preprocessor.js +24 -107
  336. package/jest/preprocessor_DO_NOT_USE.js +122 -0
  337. package/metro.config.js +3 -70
  338. package/package.json +29 -28
  339. package/react-native.config.js +40 -6
  340. package/rntypes/index.d.ts +19 -7
  341. package/stubs/glog/logging.h +1 -1
  342. package/template/cpp-app/src/App.h +0 -4
  343. package/template/cs-app/src/App.xaml.cs +0 -5
  344. package/template/cs-app/src/MainPage.xaml.cs +1 -10
  345. package/template/cs-app-WinAppSDK/MyApp/App.xaml +16 -0
  346. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +70 -0
  347. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml +14 -0
  348. package/template/cs-app-WinAppSDK/MyApp/MainWindow.xaml.cs +38 -0
  349. package/template/cs-app-WinAppSDK/MyApp/Package.appxmanifest +48 -0
  350. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-arm64.pubxml +19 -0
  351. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x64.pubxml +19 -0
  352. package/template/cs-app-WinAppSDK/MyApp/Properties/PublishProfiles/win10-x86.pubxml +19 -0
  353. package/template/cs-app-WinAppSDK/MyApp/Properties/launchSettings.json +10 -0
  354. package/template/cs-app-WinAppSDK/MyApp/app.manifest +15 -0
  355. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +23 -0
  356. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +49 -0
  357. package/template/cs-app-WinAppSDK/proj/MyApp.sln +43 -0
  358. package/template/cs-app-WinAppSDK/proj/NuGet.Config +17 -0
  359. package/template/metro.devMode.config.js +2 -51
  360. package/typings-index.js +5 -1
  361. package/typings-index.js.map +1 -1
  362. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -44
  363. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -45
  364. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  365. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.windows.js +0 -45
  366. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -360
  367. package/Libraries/Components/View/ReactNativeViewViewConfig.windows.js +0 -390
  368. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -83
  369. package/Libraries/ReactNative/UIManagerInjection.js +0 -15
  370. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -24527
  371. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -8309
  372. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -8961
  373. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -24948
  374. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -8400
  375. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -9049
  376. package/PropertySheets/CppEnablePackageReferences.props +0 -13
  377. package/Shared/cdebug.cpp +0 -6
  378. package/include/Shared/ViewManager.h +0 -34
@@ -4,37 +4,37 @@
4
4
  #include <sstream>
5
5
  #include <string>
6
6
 
7
- struct basic_dostream : public std::streambuf {};
7
+ struct basic_dostream {};
8
8
 
9
- extern basic_dostream cdebug;
9
+ inline constexpr basic_dostream cdebug{};
10
10
 
11
- inline basic_dostream &operator<<(basic_dostream &o, const char *str) {
11
+ inline const basic_dostream &operator<<(const basic_dostream &o, const char *str) {
12
12
  OutputDebugStringA(str);
13
13
  return o;
14
14
  }
15
- inline basic_dostream &operator<<(basic_dostream &o, const wchar_t *str) {
15
+ inline const basic_dostream &operator<<(const basic_dostream &o, const wchar_t *str) {
16
16
  OutputDebugStringW(str);
17
17
  return o;
18
18
  }
19
19
  template <typename T>
20
- basic_dostream &operator<<(basic_dostream &o, const T &t) {
20
+ const basic_dostream &operator<<(const basic_dostream &o, const T &t) {
21
21
  auto str = std::to_string(t);
22
22
  return o << str;
23
23
  }
24
24
 
25
- inline basic_dostream &operator<<(basic_dostream &o, const std::string_view &sv) {
25
+ inline const basic_dostream &operator<<(const basic_dostream &o, const std::string_view &sv) {
26
26
  return o << sv.data();
27
27
  }
28
28
 
29
- inline basic_dostream &operator<<(basic_dostream &o, const std::string &sv) {
29
+ inline const basic_dostream &operator<<(const basic_dostream &o, const std::string &sv) {
30
30
  return o << sv.data();
31
31
  }
32
32
 
33
- inline basic_dostream &operator<<(basic_dostream &o, const std::wstring_view &sv) {
33
+ inline const basic_dostream &operator<<(const basic_dostream &o, const std::wstring_view &sv) {
34
34
  return o << sv.data();
35
35
  }
36
36
 
37
- inline basic_dostream &operator<<(basic_dostream &o, const std::wstring &sv) {
37
+ inline const basic_dostream &operator<<(const basic_dostream &o, const std::wstring &sv) {
38
38
  return o << sv.data();
39
39
  }
40
40
 
package/index.js CHANGED
@@ -30,7 +30,6 @@ import typeof RefreshControl from './Libraries/Components/RefreshControl/Refresh
30
30
  import typeof SafeAreaView from './Libraries/Components/SafeAreaView/SafeAreaView';
31
31
  import typeof ScrollView from './Libraries/Components/ScrollView/ScrollView';
32
32
  import typeof SectionList from './Libraries/Lists/SectionList';
33
- import typeof SegmentedControlIOS from './Libraries/Components/SegmentedControlIOS/SegmentedControlIOS';
34
33
  import typeof Slider from './Libraries/Components/Slider/Slider';
35
34
  import typeof StatusBar from './Libraries/Components/StatusBar/StatusBar';
36
35
  import typeof Switch from './Libraries/Components/Switch/Switch';
@@ -193,16 +192,6 @@ module.exports = {
193
192
  get SectionList(): SectionList {
194
193
  return require('./Libraries/Lists/SectionList').default;
195
194
  },
196
- // $FlowFixMe[value-as-type]
197
- get SegmentedControlIOS(): SegmentedControlIOS {
198
- warnOnce(
199
- 'segmented-control-ios-moved',
200
- 'SegmentedControlIOS has been extracted from react-native core and will be removed in a future release. ' +
201
- "It can now be installed and imported from '@react-native-segmented-control/segmented-control' instead of 'react-native'. " +
202
- 'See https://github.com/react-native-segmented-control/segmented-control',
203
- );
204
- return require('./Libraries/Components/SegmentedControlIOS/SegmentedControlIOS');
205
- },
206
195
  get Slider(): Slider {
207
196
  warnOnce(
208
197
  'slider-moved',
@@ -446,32 +435,32 @@ module.exports = {
446
435
  },
447
436
  // Deprecated Prop Types
448
437
  get ColorPropType(): $FlowFixMe {
449
- console.warn(
450
- 'ColorPropType will be removed from React Native. Migrate to ' +
438
+ invariant(
439
+ false,
440
+ 'ColorPropType has been removed from React Native. Migrate to ' +
451
441
  "ColorPropType exported from 'deprecated-react-native-prop-types'.",
452
442
  );
453
- return require('deprecated-react-native-prop-types').ColorPropType;
454
443
  },
455
444
  get EdgeInsetsPropType(): $FlowFixMe {
456
- console.warn(
457
- 'EdgeInsetsPropType will be removed from React Native. Migrate to ' +
445
+ invariant(
446
+ false,
447
+ 'EdgeInsetsPropType has been removed from React Native. Migrate to ' +
458
448
  "EdgeInsetsPropType exported from 'deprecated-react-native-prop-types'.",
459
449
  );
460
- return require('deprecated-react-native-prop-types').EdgeInsetsPropType;
461
450
  },
462
451
  get PointPropType(): $FlowFixMe {
463
- console.warn(
464
- 'PointPropType will be removed from React Native. Migrate to ' +
452
+ invariant(
453
+ false,
454
+ 'PointPropType has been removed from React Native. Migrate to ' +
465
455
  "PointPropType exported from 'deprecated-react-native-prop-types'.",
466
456
  );
467
- return require('deprecated-react-native-prop-types').PointPropType;
468
457
  },
469
458
  get ViewPropTypes(): $FlowFixMe {
470
- console.warn(
471
- 'ViewPropTypes will be removed from React Native. Migrate to ' +
459
+ invariant(
460
+ false,
461
+ 'ViewPropTypes has been removed from React Native. Migrate to ' +
472
462
  "ViewPropTypes exported from 'deprecated-react-native-prop-types'.",
473
463
  );
474
- return require('deprecated-react-native-prop-types').ViewPropTypes;
475
464
  },
476
465
  };
477
466
 
@@ -647,8 +636,8 @@ if (__DEV__) {
647
636
  invariant(
648
637
  false,
649
638
  'ViewPagerAndroid has been removed from React Native. ' +
650
- "It can now be installed and imported from '@react-native-community/viewpager' instead of 'react-native'. " +
651
- 'See https://github.com/callstack/react-native-viewpager',
639
+ "It can now be installed and imported from 'react-native-pager-view' instead of 'react-native'. " +
640
+ 'See https://github.com/callstack/react-native-pager-view',
652
641
  );
653
642
  },
654
643
  });
@@ -669,6 +658,22 @@ if (__DEV__) {
669
658
  },
670
659
  });
671
660
 
661
+ /* $FlowFixMe[prop-missing] This is intentional: Flow will error when
662
+ * attempting to access SegmentedControlIOS. */
663
+ /* $FlowFixMe[invalid-export] This is intentional: Flow will error when
664
+ * attempting to access SegmentedControlIOS. */
665
+ Object.defineProperty(module.exports, 'SegmentedControlIOS', {
666
+ configurable: true,
667
+ get() {
668
+ invariant(
669
+ false,
670
+ 'SegmentedControlIOS has been removed from React Native. ' +
671
+ "It can now be installed and imported from '@react-native-community/segmented-checkbox' instead of 'react-native'." +
672
+ 'See https://github.com/react-native-segmented-control/segmented-control',
673
+ );
674
+ },
675
+ });
676
+
672
677
  /* $FlowFixMe[prop-missing] This is intentional: Flow will error when
673
678
  * attempting to access StatusBarIOS. */
674
679
  /* $FlowFixMe[invalid-export] This is intentional: Flow will error when
package/index.windows.js CHANGED
@@ -30,7 +30,6 @@ import typeof RefreshControl from './Libraries/Components/RefreshControl/Refresh
30
30
  import typeof SafeAreaView from './Libraries/Components/SafeAreaView/SafeAreaView';
31
31
  import typeof ScrollView from './Libraries/Components/ScrollView/ScrollView';
32
32
  import typeof SectionList from './Libraries/Lists/SectionList';
33
- import typeof SegmentedControlIOS from './Libraries/Components/SegmentedControlIOS/SegmentedControlIOS';
34
33
  import typeof Slider from './Libraries/Components/Slider/Slider';
35
34
  import typeof StatusBar from './Libraries/Components/StatusBar/StatusBar';
36
35
  import typeof Switch from './Libraries/Components/Switch/Switch';
@@ -196,16 +195,6 @@ module.exports = {
196
195
  get SectionList(): SectionList {
197
196
  return require('./Libraries/Lists/SectionList').default;
198
197
  },
199
- // $FlowFixMe[value-as-type]
200
- get SegmentedControlIOS(): SegmentedControlIOS {
201
- warnOnce(
202
- 'segmented-control-ios-moved',
203
- 'SegmentedControlIOS has been extracted from react-native core and will be removed in a future release. ' +
204
- "It can now be installed and imported from '@react-native-segmented-control/segmented-control' instead of 'react-native'. " +
205
- 'See https://github.com/react-native-segmented-control/segmented-control',
206
- );
207
- return require('./Libraries/Components/SegmentedControlIOS/SegmentedControlIOS');
208
- },
209
198
  get Slider(): Slider {
210
199
  warnOnce(
211
200
  'slider-moved',
@@ -451,32 +440,32 @@ module.exports = {
451
440
  },
452
441
  // Deprecated Prop Types
453
442
  get ColorPropType(): $FlowFixMe {
454
- console.warn(
455
- 'ColorPropType will be removed from React Native. Migrate to ' +
443
+ invariant(
444
+ false,
445
+ 'ColorPropType has been removed from React Native. Migrate to ' +
456
446
  "ColorPropType exported from 'deprecated-react-native-prop-types'.",
457
447
  );
458
- return require('deprecated-react-native-prop-types').ColorPropType;
459
448
  },
460
449
  get EdgeInsetsPropType(): $FlowFixMe {
461
- console.warn(
462
- 'EdgeInsetsPropType will be removed from React Native. Migrate to ' +
450
+ invariant(
451
+ false,
452
+ 'EdgeInsetsPropType has been removed from React Native. Migrate to ' +
463
453
  "EdgeInsetsPropType exported from 'deprecated-react-native-prop-types'.",
464
454
  );
465
- return require('deprecated-react-native-prop-types').EdgeInsetsPropType;
466
455
  },
467
456
  get PointPropType(): $FlowFixMe {
468
- console.warn(
469
- 'PointPropType will be removed from React Native. Migrate to ' +
457
+ invariant(
458
+ false,
459
+ 'PointPropType has been removed from React Native. Migrate to ' +
470
460
  "PointPropType exported from 'deprecated-react-native-prop-types'.",
471
461
  );
472
- return require('deprecated-react-native-prop-types').PointPropType;
473
462
  },
474
463
  get ViewPropTypes(): $FlowFixMe {
475
- console.warn(
476
- 'ViewPropTypes will be removed from React Native. Migrate to ' +
464
+ invariant(
465
+ false,
466
+ 'ViewPropTypes has been removed from React Native. Migrate to ' +
477
467
  "ViewPropTypes exported from 'deprecated-react-native-prop-types'.",
478
468
  );
479
- return require('deprecated-react-native-prop-types').ViewPropTypes;
480
469
  },
481
470
 
482
471
  // Additional windows exports (Typescript components exported as flow any)
@@ -705,8 +694,8 @@ if (__DEV__) {
705
694
  invariant(
706
695
  false,
707
696
  'ViewPagerAndroid has been removed from React Native. ' +
708
- "It can now be installed and imported from '@react-native-community/viewpager' instead of 'react-native'. " +
709
- 'See https://github.com/callstack/react-native-viewpager',
697
+ "It can now be installed and imported from 'react-native-pager-view' instead of 'react-native'. " +
698
+ 'See https://github.com/callstack/react-native-pager-view',
710
699
  );
711
700
  },
712
701
  });
@@ -727,6 +716,22 @@ if (__DEV__) {
727
716
  },
728
717
  });
729
718
 
719
+ /* $FlowFixMe[prop-missing] This is intentional: Flow will error when
720
+ * attempting to access SegmentedControlIOS. */
721
+ /* $FlowFixMe[invalid-export] This is intentional: Flow will error when
722
+ * attempting to access SegmentedControlIOS. */
723
+ Object.defineProperty(module.exports, 'SegmentedControlIOS', {
724
+ configurable: true,
725
+ get() {
726
+ invariant(
727
+ false,
728
+ 'SegmentedControlIOS has been removed from React Native. ' +
729
+ "It can now be installed and imported from '@react-native-community/segmented-checkbox' instead of 'react-native'." +
730
+ 'See https://github.com/react-native-segmented-control/segmented-control',
731
+ );
732
+ },
733
+ });
734
+
730
735
  /* $FlowFixMe[prop-missing] This is intentional: Flow will error when
731
736
  * attempting to access StatusBarIOS. */
732
737
  /* $FlowFixMe[invalid-export] This is intentional: Flow will error when
@@ -12,112 +12,29 @@
12
12
 
13
13
  'use strict';
14
14
 
15
- const babelRegisterOnly = require('metro-babel-register');
16
- const createCacheKeyFunction =
17
- require('@jest/create-cache-key-function').default;
18
-
19
- const {transformSync: babelTransformSync} = require('@babel/core');
20
- const generate = require('@babel/generator').default;
21
-
22
- const nodeFiles = new RegExp(
23
- [
24
- '/metro(?:-[^/]*)?/', // metro, metro-core, metro-source-map, metro-etc.
25
- ].join('|'),
15
+ // NOTE: Avoiding using a package like 'chalk' here, for simplicity
16
+ const YELLOW = process.stderr.isTTY ? '\u001b[33m' : '';
17
+ const BOLD = process.stderr.isTTY ? '\u001b[1m' : '';
18
+ const RESET = process.stderr.isTTY ? '\u001b[0m' : '';
19
+ const UNDERLINE = process.stderr.isTTY ? '\u001b[4m' : '';
20
+
21
+ console.warn(
22
+ '\n' +
23
+ YELLOW +
24
+ BOLD +
25
+ 'react-native/jest/preprocessor.js' +
26
+ RESET +
27
+ YELLOW +
28
+ ' is deprecated and will be removed.\n' +
29
+ 'Use "preset": "react-native" in your Jest config instead.\n' +
30
+ 'See ' +
31
+ UNDERLINE +
32
+ 'https://jestjs.io/docs/tutorial-react-native' +
33
+ RESET +
34
+ YELLOW +
35
+ ' for more setup instructions.' +
36
+ RESET +
37
+ '\n',
26
38
  );
27
- const nodeOptions = babelRegisterOnly.config([nodeFiles]);
28
-
29
- babelRegisterOnly([]);
30
-
31
- const transformer = require('metro-react-native-babel-transformer');
32
- module.exports = {
33
- process(src /*: string */, file /*: string */) /*: string */ {
34
- if (nodeFiles.test(file)) {
35
- // node specific transforms only
36
- return babelTransformSync(src, {
37
- filename: file,
38
- sourceType: 'script',
39
- ...nodeOptions,
40
- ast: false,
41
- }).code;
42
- }
43
-
44
- const {ast} = transformer.transform({
45
- filename: file,
46
- options: {
47
- ast: true, // needed for open source (?) https://github.com/facebook/react-native/commit/f8d6b97140cffe8d18b2558f94570c8d1b410d5c#r28647044
48
- dev: true,
49
- enableBabelRuntime: false,
50
- experimentalImportSupport: false,
51
- globalPrefix: '',
52
- hot: false,
53
- inlineRequires: true,
54
- minify: false,
55
- platform: '',
56
- projectRoot: '',
57
- publicPath: '/assets',
58
- retainLines: true,
59
- sourceType: 'unambiguous', // b7 required. detects module vs script mode
60
- },
61
- src,
62
- plugins: [
63
- [require('@babel/plugin-transform-block-scoping')],
64
- // the flow strip types plugin must go BEFORE class properties!
65
- // there'll be a test case that fails if you don't.
66
- [require('@babel/plugin-transform-flow-strip-types')],
67
- [
68
- require('@babel/plugin-proposal-class-properties'),
69
- // use `this.foo = bar` instead of `this.defineProperty('foo', ...)`
70
- {loose: true},
71
- ],
72
- [require('@babel/plugin-transform-computed-properties')],
73
- [require('@babel/plugin-transform-destructuring')],
74
- [require('@babel/plugin-transform-function-name')],
75
- [require('@babel/plugin-transform-literals')],
76
- [require('@babel/plugin-transform-parameters')],
77
- [require('@babel/plugin-transform-shorthand-properties')],
78
- [require('@babel/plugin-transform-react-jsx')],
79
- [require('@babel/plugin-transform-regenerator')],
80
- [require('@babel/plugin-transform-sticky-regex')],
81
- [require('@babel/plugin-transform-unicode-regex')],
82
- [
83
- require('@babel/plugin-transform-modules-commonjs'),
84
- {strict: false, allowTopLevelThis: true},
85
- ],
86
- [require('@babel/plugin-transform-classes')],
87
- [require('@babel/plugin-transform-arrow-functions')],
88
- [require('@babel/plugin-transform-spread')],
89
- [require('@babel/plugin-proposal-object-rest-spread')],
90
- [
91
- require('@babel/plugin-transform-template-literals'),
92
- {loose: true}, // dont 'a'.concat('b'), just use 'a'+'b'
93
- ],
94
- [require('@babel/plugin-transform-exponentiation-operator')],
95
- [require('@babel/plugin-transform-object-assign')],
96
- [require('@babel/plugin-transform-for-of'), {loose: true}],
97
- [require('@babel/plugin-transform-react-display-name')],
98
- [require('@babel/plugin-transform-react-jsx-source')],
99
- ],
100
- });
101
-
102
- return generate(
103
- ast,
104
- // $FlowFixMe[prop-missing] Error found when improving flow typing for libs
105
- {
106
- code: true,
107
- comments: false,
108
- compact: false,
109
- filename: file,
110
- retainLines: true,
111
- sourceFileName: file,
112
- sourceMaps: true,
113
- },
114
- src,
115
- ).code;
116
- },
117
39
 
118
- getCacheKey: (createCacheKeyFunction([
119
- __filename,
120
- require.resolve('metro-react-native-babel-transformer'),
121
- require.resolve('@babel/core/package.json'),
122
- ]) /*: any */),
123
- };
40
+ module.exports = require('./preprocessor_DO_NOT_USE');
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ * @flow
9
+ */
10
+
11
+ /* eslint-env node */
12
+
13
+ 'use strict';
14
+
15
+ const babelRegisterOnly = require('metro-babel-register');
16
+ const createCacheKeyFunction =
17
+ require('@jest/create-cache-key-function').default;
18
+
19
+ const {transformSync: babelTransformSync} = require('@babel/core');
20
+ const generate = require('@babel/generator').default;
21
+
22
+ const nodeFiles = new RegExp(
23
+ [
24
+ '/metro(?:-[^/]*)?/', // metro, metro-core, metro-source-map, metro-etc.
25
+ ].join('|'),
26
+ );
27
+ const nodeOptions = babelRegisterOnly.config([nodeFiles]);
28
+
29
+ babelRegisterOnly([]);
30
+
31
+ const transformer = require('metro-react-native-babel-transformer');
32
+ module.exports = {
33
+ process(src /*: string */, file /*: string */) /*: {code: string, ...} */ {
34
+ if (nodeFiles.test(file)) {
35
+ // node specific transforms only
36
+ return babelTransformSync(src, {
37
+ filename: file,
38
+ sourceType: 'script',
39
+ ...nodeOptions,
40
+ ast: false,
41
+ });
42
+ }
43
+
44
+ const {ast} = transformer.transform({
45
+ filename: file,
46
+ options: {
47
+ ast: true, // needed for open source (?) https://github.com/facebook/react-native/commit/f8d6b97140cffe8d18b2558f94570c8d1b410d5c#r28647044
48
+ dev: true,
49
+ enableBabelRuntime: false,
50
+ experimentalImportSupport: false,
51
+ globalPrefix: '',
52
+ hot: false,
53
+ inlineRequires: true,
54
+ minify: false,
55
+ platform: '',
56
+ projectRoot: '',
57
+ publicPath: '/assets',
58
+ retainLines: true,
59
+ sourceType: 'unambiguous', // b7 required. detects module vs script mode
60
+ },
61
+ src,
62
+ plugins: [
63
+ [require('@babel/plugin-transform-block-scoping')],
64
+ // the flow strip types plugin must go BEFORE class properties!
65
+ // there'll be a test case that fails if you don't.
66
+ [require('@babel/plugin-transform-flow-strip-types')],
67
+ [
68
+ require('@babel/plugin-proposal-class-properties'),
69
+ // use `this.foo = bar` instead of `this.defineProperty('foo', ...)`
70
+ {loose: true},
71
+ ],
72
+ [require('@babel/plugin-transform-computed-properties')],
73
+ [require('@babel/plugin-transform-destructuring')],
74
+ [require('@babel/plugin-transform-function-name')],
75
+ [require('@babel/plugin-transform-literals')],
76
+ [require('@babel/plugin-transform-parameters')],
77
+ [require('@babel/plugin-transform-shorthand-properties')],
78
+ [require('@babel/plugin-transform-react-jsx')],
79
+ [require('@babel/plugin-transform-regenerator')],
80
+ [require('@babel/plugin-transform-sticky-regex')],
81
+ [require('@babel/plugin-transform-unicode-regex')],
82
+ [
83
+ require('@babel/plugin-transform-modules-commonjs'),
84
+ {strict: false, allowTopLevelThis: true},
85
+ ],
86
+ [require('@babel/plugin-transform-classes')],
87
+ [require('@babel/plugin-transform-arrow-functions')],
88
+ [require('@babel/plugin-transform-spread')],
89
+ [require('@babel/plugin-proposal-object-rest-spread')],
90
+ [
91
+ require('@babel/plugin-transform-template-literals'),
92
+ {loose: true}, // dont 'a'.concat('b'), just use 'a'+'b'
93
+ ],
94
+ [require('@babel/plugin-transform-exponentiation-operator')],
95
+ [require('@babel/plugin-transform-for-of'), {loose: true}],
96
+ [require('@babel/plugin-transform-react-display-name')],
97
+ [require('@babel/plugin-transform-react-jsx-source')],
98
+ ],
99
+ });
100
+
101
+ return generate(
102
+ ast,
103
+ // $FlowFixMe[prop-missing] Error found when improving flow typing for libs
104
+ {
105
+ code: true,
106
+ comments: false,
107
+ compact: false,
108
+ filename: file,
109
+ retainLines: true,
110
+ sourceFileName: file,
111
+ sourceMaps: true,
112
+ },
113
+ src,
114
+ );
115
+ },
116
+
117
+ getCacheKey: (createCacheKeyFunction([
118
+ __filename,
119
+ require.resolve('metro-react-native-babel-transformer'),
120
+ require.resolve('@babel/core/package.json'),
121
+ ]) /*: any */),
122
+ };
package/metro.config.js CHANGED
@@ -3,76 +3,6 @@
3
3
  */
4
4
  const fs = require('fs');
5
5
  const path = require('path');
6
- const rnwPath = __dirname;
7
- const {resolve} = require('metro-resolver');
8
- const exclusionList = require('metro-config/src/defaults/exclusionList');
9
-
10
- const virtualizedListPath = fs.realpathSync(
11
- path.resolve(
12
- require.resolve('@react-native-windows/virtualized-list/package.json'),
13
- '..',
14
- ),
15
- );
16
-
17
- function reactNativePlatformResolver(platformImplementations) {
18
- return (context, _realModuleName, platform, moduleName) => {
19
- let backupResolveRequest = context.resolveRequest;
20
- delete context.resolveRequest;
21
-
22
- try {
23
- let modifiedModuleName = moduleName;
24
- if (platformImplementations[platform]) {
25
- if (moduleName === 'react-native') {
26
- modifiedModuleName = platformImplementations[platform];
27
- } else if (moduleName.startsWith('react-native/')) {
28
- modifiedModuleName = `${
29
- platformImplementations[platform]
30
- }/${modifiedModuleName.slice('react-native/'.length)}`;
31
- }
32
- }
33
- let result = resolve(context, modifiedModuleName, platform);
34
- return result;
35
- } catch (e) {
36
- throw e;
37
- } finally {
38
- context.resolveRequest = backupResolveRequest;
39
- }
40
- };
41
- }
42
-
43
- module.exports = {
44
- // WatchFolders is only needed due to the yarn workspace layout of node_modules, we need to watch the symlinked locations separately
45
- watchFolders: [
46
- // Include hoisted modules
47
- path.resolve(__dirname, '../node_modules'),
48
- // Add virtualized-list dependency, whose unsymlinked representation is not in node_modules, only in our repo
49
- virtualizedListPath,
50
- ],
51
-
52
- resolver: {
53
- resolveRequest: reactNativePlatformResolver({
54
- windows: 'react-native-windows',
55
- }),
56
- extraNodeModules: {
57
- // Redirect react-native-windows to this folder
58
- 'react-native-windows': rnwPath,
59
- '@react-native-windows/virtualized-list': virtualizedListPath,
60
- },
61
- blockList: exclusionList([
62
- // Avoid error EBUSY: resource busy or locked, open '...\vnext\msbuild.ProjectImports.zip' when building 'vnext\Microsoft.ReactNative.sln' with '/bl'
63
- /.*\.ProjectImports\.zip/,
64
- ]),
65
- },
66
-
67
- transformer: {
68
- getTransformOptions: async () => ({
69
- transform: {
70
- experimentalImportSupport: false,
71
- inlineRequires: true,
72
- },
73
- }),
74
- },
75
- };
76
6
 
77
7
  // Check that we have built our JS files before running the bundler, otherwise we'll get a harder to diagnose "Unable to resolve module" error
78
8
  if (
@@ -87,3 +17,6 @@ if (
87
17
  '\nThis package must be built before running the bundler. Did you mean to run "yarn build" first?\n',
88
18
  );
89
19
  }
20
+
21
+ const {makeMetroConfig} = require('@rnw-scripts/metro-dev-config');
22
+ module.exports = makeMetroConfig();