react-native-windows 0.84.0 → 0.85.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/.flowconfig +1 -5
  2. package/Directory.Build.props +1 -16
  3. package/Directory.Build.targets +12 -4
  4. package/Folly/ThreadNameStub.cpp +4 -6
  5. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  6. package/Libraries/Animated/Animated.d.ts +8 -1
  7. package/Libraries/Animated/AnimatedEvent.js +4 -4
  8. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  9. package/Libraries/Animated/animations/Animation.js +3 -3
  10. package/Libraries/Animated/animations/DecayAnimation.js +4 -4
  11. package/Libraries/Animated/animations/SpringAnimation.js +5 -5
  12. package/Libraries/Animated/animations/TimingAnimation.js +5 -5
  13. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  14. package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
  16. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  17. package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
  18. package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
  19. package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
  20. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  21. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  22. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  23. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  24. package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
  25. package/Libraries/Animated/useAnimatedColor.js +25 -0
  26. package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
  27. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  28. package/Libraries/AppState/AppState.js +1 -1
  29. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  30. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +34 -30
  33. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  34. package/Libraries/Components/Button.js +2 -2
  35. package/Libraries/Components/Button.windows.js +2 -2
  36. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  37. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  38. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  39. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  40. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  41. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  42. package/Libraries/Components/Pressable/Pressable.js +3 -3
  43. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  44. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  45. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  46. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  47. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  48. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +5 -5
  49. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
  50. package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
  51. package/Libraries/Components/ScrollView/ScrollView.js +19 -9
  52. package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -9
  53. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
  54. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +8 -18
  55. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
  56. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  57. package/Libraries/Components/StaticRenderer.js +1 -1
  58. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  59. package/Libraries/Components/Switch/Switch.js +3 -3
  60. package/Libraries/Components/Switch/Switch.windows.js +3 -3
  61. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  62. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  63. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  64. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  65. package/Libraries/Components/TextInput/TextInput.flow.windows.js +23 -22
  66. package/Libraries/Components/TextInput/TextInput.js +8 -4
  67. package/Libraries/Components/TextInput/TextInput.windows.js +3 -4
  68. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +33 -48
  69. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  70. package/Libraries/Components/Touchable/Touchable.js +2 -2
  71. package/Libraries/Components/Touchable/Touchable.windows.js +2 -2
  72. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  73. package/Libraries/Components/Touchable/TouchableBounce.windows.js +4 -4
  74. package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
  75. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -9
  76. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  77. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +7 -7
  78. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
  79. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -4
  80. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  81. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  82. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  83. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  84. package/Libraries/Components/View/View.windows.js +1 -1
  85. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  86. package/Libraries/Components/View/ViewAccessibility.windows.js +7 -7
  87. package/Libraries/Components/View/ViewPropTypes.js +14 -14
  88. package/Libraries/Components/View/ViewPropTypes.windows.js +18 -16
  89. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  90. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  91. package/Libraries/Core/ExceptionsManager.js +2 -2
  92. package/Libraries/Core/ExtendedError.js +3 -3
  93. package/Libraries/Core/RawEventEmitter.js +1 -1
  94. package/Libraries/Core/ReactNativeVersion.js +2 -2
  95. package/Libraries/Core/Timers/JSTimers.js +3 -2
  96. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  97. package/Libraries/Core/setUpErrorHandling.js +4 -2
  98. package/Libraries/Core/setUpReactDevTools.js +23 -6
  99. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  100. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  101. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  102. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  103. package/Libraries/Image/AssetSourceResolver.js +1 -1
  104. package/Libraries/Image/AssetSourceResolver.windows.js +1 -1
  105. package/Libraries/Image/Image.android.js +172 -306
  106. package/Libraries/Image/ImageProps.js +9 -11
  107. package/Libraries/Image/ImageSource.js +2 -2
  108. package/Libraries/Image/ImageSourceUtils.js +8 -4
  109. package/Libraries/Image/ImageTypes.flow.js +2 -2
  110. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  111. package/Libraries/Image/nativeImageSource.js +1 -1
  112. package/Libraries/Interaction/InteractionManager.js +5 -4
  113. package/Libraries/Interaction/PanResponder.js +1 -1
  114. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  115. package/Libraries/Linking/Linking.js +1 -1
  116. package/Libraries/Lists/FlatList.js +3 -3
  117. package/Libraries/Lists/SectionList.js +1 -1
  118. package/Libraries/Lists/SectionListModern.js +2 -2
  119. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  120. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  121. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  122. package/Libraries/LogBox/LogBox.js +42 -19
  123. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  124. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  125. package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
  126. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  127. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  128. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -9
  129. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  130. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  131. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  132. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  134. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  135. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  136. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +15 -16
  137. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  138. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  139. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  140. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +3 -5
  141. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  142. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  143. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  144. package/Libraries/Modal/Modal.d.ts +4 -0
  145. package/Libraries/Modal/Modal.js +3 -3
  146. package/Libraries/Modal/Modal.windows.js +7 -3
  147. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  148. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  149. package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -17
  150. package/Libraries/Network/RCTNetworking.android.js +1 -1
  151. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  152. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  153. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  154. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  155. package/Libraries/Network/XMLHttpRequest.js +1 -1
  156. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  157. package/Libraries/Pressability/Pressability.js +5 -5
  158. package/Libraries/Pressability/Pressability.windows.js +5 -5
  159. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  160. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  161. package/Libraries/Pressability/usePressability.js +3 -14
  162. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  163. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  164. package/Libraries/ReactNative/AppContainer.js +1 -1
  165. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  166. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  167. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  168. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  169. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  170. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  171. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  172. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  173. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  174. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  175. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  176. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  177. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +1 -3
  178. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  179. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  180. package/Libraries/StyleSheet/PointPropType.js +1 -1
  181. package/Libraries/StyleSheet/Rect.js +1 -1
  182. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  183. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  184. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  185. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  186. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  187. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
  188. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  189. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  190. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  191. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  192. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  193. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  194. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  195. package/Libraries/StyleSheet/processColorArray.js +2 -2
  196. package/Libraries/StyleSheet/processFilter.js +2 -2
  197. package/Libraries/Text/Text.js +295 -627
  198. package/Libraries/Text/Text.windows.js +342 -717
  199. package/Libraries/Text/TextNativeComponent.js +14 -7
  200. package/Libraries/Text/TextProps.js +4 -4
  201. package/Libraries/Text/TextProps.windows.js +4 -4
  202. package/Libraries/Types/CodegenTypes.js +1 -1
  203. package/Libraries/Types/CoreEventTypes.js +21 -21
  204. package/Libraries/Types/CoreEventTypes.windows.js +21 -21
  205. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  206. package/Libraries/Utilities/Appearance.js +6 -1
  207. package/Libraries/Utilities/Dimensions.js +1 -1
  208. package/Libraries/Utilities/HMRClient.js +32 -5
  209. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  210. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  211. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  212. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  213. package/Libraries/Utilities/logError.js +1 -1
  214. package/Libraries/Utilities/stringifySafe.js +3 -3
  215. package/Libraries/Utilities/useMergeRefs.js +2 -2
  216. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  217. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  218. package/Microsoft.ReactNative/CallInvoker.cpp +14 -4
  219. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
  220. package/Microsoft.ReactNative/Fabric/AbiPortalShadowNode.cpp +2 -2
  221. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
  222. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +73 -97
  223. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -1
  224. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -1
  225. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +4 -4
  226. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +135 -18
  227. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -0
  228. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +7 -2
  229. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +2 -0
  230. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +63 -15
  231. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +3 -1
  232. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  233. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -1
  234. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -0
  235. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -0
  236. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +3 -0
  237. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -3
  238. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +2 -7
  239. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -0
  240. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -61
  241. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -26
  242. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -1
  243. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -17
  244. package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -4
  245. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -2
  246. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +16 -15
  247. package/Microsoft.ReactNative/Modules/AppearanceModule.h +5 -1
  248. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +2 -7
  249. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +0 -1
  250. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +4 -4
  251. package/Microsoft.ReactNative/QuirkSettings.cpp +0 -133
  252. package/Microsoft.ReactNative/QuirkSettings.h +0 -43
  253. package/Microsoft.ReactNative/QuirkSettings.idl +0 -41
  254. package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +0 -4
  255. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -2
  256. package/Microsoft.ReactNative/ReactHost/React.h +0 -5
  257. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -1
  258. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -26
  259. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -5
  260. package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -2
  261. package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +3 -0
  262. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +7 -0
  263. package/Microsoft.ReactNative/ReactPackageBuilder.h +1 -0
  264. package/Microsoft.ReactNative/RedBox.cpp +0 -9
  265. package/Microsoft.ReactNative/RedBoxHandler.cpp +0 -4
  266. package/Microsoft.ReactNative/TurboModulesProvider.cpp +5 -10
  267. package/Microsoft.ReactNative/TurboModulesProvider.h +2 -0
  268. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  269. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -7
  270. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +0 -22
  271. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +8 -2
  272. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +36 -20
  273. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -3
  274. package/Microsoft.ReactNative.Cxx/NativeModules.h +8 -2
  275. package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -9
  276. package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -9
  277. package/PropertySheets/Autolink.props +1 -1
  278. package/PropertySheets/Bundle.props +1 -1
  279. package/PropertySheets/Codegen.props +1 -1
  280. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  281. package/PropertySheets/NuGet.LockFile.props +8 -0
  282. package/PropertySheets/React.Cpp.props +4 -4
  283. package/PropertySheets/ReactNativeArchitecture.props +6 -24
  284. package/ReactCommon/ReactCommon.vcxproj +5 -6
  285. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1 -1
  286. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +15 -4
  287. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +13 -0
  288. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp +69 -0
  289. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp +717 -0
  290. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  291. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  292. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +151 -0
  293. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +50 -0
  294. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBuffer.cpp +178 -0
  295. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +69 -39
  296. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  297. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -39
  298. package/Scripts/creaternwapp.cmd +1 -9
  299. package/Scripts/creaternwlib.cmd +4 -24
  300. package/Shared/DevSettings.h +0 -3
  301. package/Shared/Networking/WinRTWebSocketResource.cpp +23 -408
  302. package/Shared/Networking/WinRTWebSocketResource.h +3 -119
  303. package/Shared/Shared.vcxitems +63 -38
  304. package/Shared/Shared.vcxitems.filters +54 -0
  305. package/Shared/Utils.cpp +0 -88
  306. package/Shared/Utils.h +0 -14
  307. package/Shared/WebSocketResourceFactory.cpp +28 -0
  308. package/Shared/tracing/fbsystrace.h +1 -0
  309. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +172 -160
  310. package/codegen/react/components/rnwcore/ModalHostView.g.h +8 -0
  311. package/codegen/react/components/rnwcore/Props.cpp +17 -7
  312. package/codegen/react/components/rnwcore/Props.h +3 -1
  313. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +4 -4
  314. package/codegen/rnwcoreJSI.h +93 -77
  315. package/index.js +9 -0
  316. package/index.windows.js +9 -0
  317. package/jest/RefreshControlMock.js +2 -2
  318. package/jest/assetFileTransformer.js +8 -3
  319. package/jest/mockComponent.js +3 -4
  320. package/jest/mockNativeComponent.js +1 -1
  321. package/jest/mocks/ActivityIndicator.js +2 -2
  322. package/jest/mocks/Image.js +2 -2
  323. package/jest/mocks/Modal.js +2 -2
  324. package/jest/mocks/RefreshControl.js +3 -3
  325. package/jest/mocks/RendererProxy.js +2 -2
  326. package/jest/mocks/ScrollView.js +5 -5
  327. package/jest/mocks/Text.js +2 -2
  328. package/jest/mocks/TextInput.js +2 -2
  329. package/jest/mocks/View.js +2 -2
  330. package/jest/mocks/ViewNativeComponent.js +1 -1
  331. package/jest/mocks/requireNativeComponent.js +1 -1
  332. package/jest/mocks/useColorScheme.js +1 -1
  333. package/jest/setup.js +68 -31
  334. package/package.json +27 -22
  335. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  336. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  337. package/src/private/components/virtualview/VirtualView.js +14 -21
  338. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  339. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  340. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  341. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  342. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  343. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  344. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  345. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  346. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  347. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  348. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  349. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  350. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  351. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  352. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  353. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  354. package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
  355. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  356. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
  357. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  358. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  359. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  360. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  361. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  362. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  363. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  364. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  365. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  366. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  367. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +7 -3
  368. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  369. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  370. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  371. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  372. package/src/private/styles/composeStyles.js +1 -1
  373. package/src/private/utilities/toError.js +27 -0
  374. package/src/private/utilities/toExtendedError.js +30 -0
  375. package/src/private/webapis/dom/events/Event.js +1 -1
  376. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  377. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  378. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  379. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  380. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  381. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  382. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  383. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  384. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  385. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  386. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  387. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  388. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  389. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  390. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  391. package/src/private/webapis/performance/LongTasks.js +3 -3
  392. package/src/private/webapis/performance/Performance.js +4 -4
  393. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  394. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  395. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  396. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  397. package/src/types/globals.d.ts +4 -4
  398. package/template/cpp-lib/proj/MyLib.sln +0 -33
  399. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  400. package/template/cs-lib/proj/MyLib.sln +0 -33
  401. package/template/metro.config.js +12 -2
  402. package/templates/cpp-app/metro.config.js +12 -2
  403. package/templates/cpp-app/windows/MyApp/MyApp.cpp +9 -6
  404. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +1 -1
  405. package/templates/cpp-app/windows/MyApp.sln +0 -33
  406. package/templates/cpp-lib/example/metro.config.js +12 -2
  407. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +1 -1
  408. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  409. package/types/index.d.ts +2 -0
  410. package/Folly/.clang-format +0 -2
  411. package/Folly/Folly.natvis +0 -25
  412. package/Folly/Folly.vcxproj +0 -378
  413. package/Folly/Folly.vcxproj.filters +0 -558
  414. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +0 -978
  415. package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +0 -1205
  416. package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +0 -155
  417. package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +0 -633
  418. package/Folly/TEMP_UntilFollyUpdate/json/dynamic-inl.h +0 -1438
  419. package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +0 -1118
  420. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +0 -188
  421. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +0 -348
  422. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +0 -182
  423. package/Folly/TEMP_UntilFollyUpdate/portability/Unistd.cpp +0 -33
  424. package/Folly/cgmanifest.json +0 -25
  425. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  426. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +0 -64
  427. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  428. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -75
  429. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +0 -27
  430. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +0 -81
  431. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -24
  432. package/Microsoft.ReactNative/ReactSupport.cpp +0 -221
  433. package/Microsoft.ReactNative/ReactSupport.h +0 -13
  434. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.cpp +0 -107
  435. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -62
  436. package/Microsoft.ReactNative/Utils/UwpScriptStore.cpp +0 -56
  437. package/Microsoft.ReactNative/Utils/UwpScriptStore.h +0 -23
  438. package/Microsoft.ReactNative/XamlUIService.cpp +0 -68
  439. package/Microsoft.ReactNative/XamlUIService.h +0 -37
  440. package/Microsoft.ReactNative/XamlUIService.idl +0 -53
  441. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +0 -259
  442. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +0 -381
  443. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +0 -145
  444. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +0 -100
  445. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +0 -256
  446. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -363
  447. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +0 -93
  448. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -148
  449. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +0 -190
  450. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +0 -123
  451. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +0 -27
  452. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +0 -414
  453. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +0 -91
  454. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -80
  455. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +0 -138
  456. package/fmt/.clang-format +0 -2
  457. package/fmt/cgmanifest.json +0 -15
  458. package/fmt/fmt.vcxproj +0 -153
  459. package/fmt/fmt.vcxproj.filters +0 -59
  460. package/fmt/pch.cpp +0 -4
  461. package/fmt/pch.h +0 -2
@@ -1,145 +0,0 @@
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
-
9
- #if _MSC_VER
10
- #pragma warning(push)
11
- #pragma warning(disable : 4996) // deprecated APIs
12
- #endif
13
- #include "JSIndexedRAMBundle.h"
14
-
15
- #ifndef RCT_REMOVE_LEGACY_ARCH
16
-
17
- #include <glog/logging.h>
18
- #include <fstream>
19
- #include <memory>
20
- #include <sstream>
21
-
22
- #include <folly/lang/Bits.h>
23
- #include <glog/logging.h>
24
-
25
- namespace facebook::react {
26
-
27
- std::function<std::unique_ptr<JSModulesUnbundle>(std::string)>
28
- JSIndexedRAMBundle::buildFactory() {
29
- return [](const std::string& bundlePath) {
30
- return std::make_unique<JSIndexedRAMBundle>(bundlePath.c_str());
31
- };
32
- }
33
-
34
- JSIndexedRAMBundle::JSIndexedRAMBundle(const char* sourcePath) {
35
- m_bundle = std::make_unique<std::ifstream>(sourcePath, std::ifstream::binary);
36
- if (!m_bundle) {
37
- throw std::ios_base::failure(
38
- std::string("Bundle ") + sourcePath +
39
- "cannot be opened: " + std::to_string(m_bundle->rdstate()));
40
- }
41
- init();
42
- }
43
-
44
- JSIndexedRAMBundle::JSIndexedRAMBundle(
45
- std::unique_ptr<const JSBigString> script) {
46
- // tmpStream is needed because m_bundle is std::istream type
47
- // which has no member 'write'
48
- std::unique_ptr<std::stringstream> tmpStream =
49
- std::make_unique<std::stringstream>();
50
- tmpStream->write(script->c_str(), script->size());
51
- m_bundle = std::move(tmpStream);
52
- if (!m_bundle) {
53
- throw std::ios_base::failure(
54
- "Bundle from string cannot be opened: " +
55
- std::to_string(m_bundle->rdstate()));
56
- }
57
- init();
58
- }
59
-
60
- void JSIndexedRAMBundle::init() {
61
- // read in magic header, number of entries, and length of the startup section
62
- uint32_t header[3];
63
- static_assert(
64
- sizeof(header) == 12,
65
- "header size must exactly match the input file format");
66
-
67
- readBundle(reinterpret_cast<char*>(header), sizeof(header));
68
- size_t numTableEntries = folly::Endian::little(header[1]);
69
- std::streamsize startupCodeSize = folly::Endian::little(header[2]);
70
-
71
- // allocate memory for meta data and lookup table.
72
- m_table = ModuleTable(numTableEntries);
73
- m_baseOffset = sizeof(header) + m_table.byteLength();
74
-
75
- // read the lookup table from the file
76
- readBundle(reinterpret_cast<char*>(m_table.data.get()), m_table.byteLength());
77
-
78
- // read the startup code
79
- m_startupCode = std::make_unique<JSBigBufferString>(static_cast<size_t>(startupCodeSize - 1)); //Windows #15782
80
-
81
- readBundle(m_startupCode->mutableData(), startupCodeSize - 1);
82
- }
83
-
84
- JSIndexedRAMBundle::Module JSIndexedRAMBundle::getModule(
85
- uint32_t moduleId) const {
86
- Module ret;
87
- ret.name = std::to_string(moduleId) + ".js";
88
- ret.code = getModuleCode(moduleId);
89
- return ret;
90
- }
91
-
92
- std::unique_ptr<const JSBigString> JSIndexedRAMBundle::getStartupCode() {
93
- CHECK(m_startupCode)
94
- << "startup code for a RAM Bundle can only be retrieved once";
95
- return std::move(m_startupCode);
96
- }
97
-
98
- std::string JSIndexedRAMBundle::getModuleCode(const uint32_t id) const {
99
- const auto moduleData = id < m_table.numEntries ? &m_table.data[id] : nullptr;
100
-
101
- // entries without associated code have offset = 0 and length = 0
102
- const uint32_t length =
103
- moduleData != nullptr ? folly::Endian::little(moduleData->length) : 0;
104
- if (length == 0) {
105
- throw std::ios_base::failure(
106
- "Error loading module" + std::to_string(id) + "from RAM Bundle");
107
- }
108
-
109
- std::string ret(length - 1, '\0');
110
- readBundle(
111
- &ret.front(),
112
- length - 1,
113
- m_baseOffset + folly::Endian::little(moduleData->offset));
114
- return ret;
115
- }
116
-
117
- void JSIndexedRAMBundle::readBundle(char* buffer, std::streamsize bytes)
118
- const {
119
- if (!m_bundle->read(buffer, bytes)) {
120
- if ((m_bundle->rdstate() & std::ios::eofbit) != 0) {
121
- throw std::ios_base::failure("Unexpected end of RAM Bundle file");
122
- }
123
- throw std::ios_base::failure(
124
- "Error reading RAM Bundle: " + std::to_string(m_bundle->rdstate()));
125
- }
126
- }
127
-
128
- void JSIndexedRAMBundle::readBundle(
129
- char* buffer,
130
- const std::streamsize bytes,
131
- const std::ifstream::pos_type position) const {
132
- if (!m_bundle->seekg(position)) {
133
- throw std::ios_base::failure(
134
- "Error reading RAM Bundle: " + std::to_string(m_bundle->rdstate()));
135
- }
136
- readBundle(buffer, bytes);
137
- }
138
-
139
- } // namespace facebook::react
140
-
141
- #endif // RCT_REMOVE_LEGACY_ARCH
142
-
143
- #if _MSC_VER
144
- #pragma warning(pop)
145
- #endif
@@ -1,100 +0,0 @@
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
-
9
- #if _MSC_VER
10
- #pragma warning(push)
11
- #pragma warning(disable : 4996) // deprecated APIs
12
- #endif
13
- #include "MethodCall.h"
14
-
15
- #ifndef RCT_REMOVE_LEGACY_ARCH
16
-
17
- #include <folly/json.h>
18
- #include <stdexcept>
19
-
20
- namespace facebook::react {
21
-
22
- #define REQUEST_MODULE_IDS 0
23
- #define REQUEST_METHOD_IDS 1
24
- #define REQUEST_PARAMS 2
25
- #define REQUEST_CALLID 3
26
-
27
- static const char* errorPrefix = "Malformed calls from JS: ";
28
-
29
- std::vector<MethodCall> parseMethodCalls(folly::dynamic&& jsonData) {
30
- if (jsonData.isNull()) {
31
- return {};
32
- }
33
-
34
- if (!jsonData.isArray()) {
35
- throw std::invalid_argument(
36
- std::string(errorPrefix) + " input isn't array but " +
37
- jsonData.typeName());
38
- }
39
-
40
- if (jsonData.size() < REQUEST_PARAMS + 1) {
41
- throw std::invalid_argument(
42
- std::string(errorPrefix) +
43
- "size == " + std::to_string(jsonData.size()));
44
- }
45
-
46
- auto& moduleIds = jsonData[REQUEST_MODULE_IDS];
47
- auto& methodIds = jsonData[REQUEST_METHOD_IDS];
48
- auto& params = jsonData[REQUEST_PARAMS];
49
- int callId = -1;
50
-
51
- if (!moduleIds.isArray() || !methodIds.isArray() || !params.isArray()) {
52
- throw std::invalid_argument(
53
- std::string(errorPrefix) + "not all fields are arrays.\n\n" +
54
- folly::toJson(jsonData));
55
- }
56
-
57
- if (moduleIds.size() != methodIds.size() ||
58
- moduleIds.size() != params.size()) {
59
- throw std::invalid_argument(
60
- std::string(errorPrefix) + "field sizes are different.\n\n" +
61
- folly::toJson(jsonData));
62
- }
63
-
64
- if (jsonData.size() > REQUEST_CALLID) {
65
- if (!jsonData[REQUEST_CALLID].isNumber()) {
66
- throw std::invalid_argument(
67
- std::string(errorPrefix) + "invalid callId" +
68
- jsonData[REQUEST_CALLID].typeName());
69
- }
70
- callId = (int)jsonData[REQUEST_CALLID].asInt();
71
- }
72
-
73
- std::vector<MethodCall> methodCalls;
74
- for (size_t i = 0; i < moduleIds.size(); i++) {
75
- if (!params[i].isArray()) {
76
- throw std::invalid_argument(
77
- std::string(errorPrefix) + "method arguments isn't array but " +
78
- params[i].typeName());
79
- }
80
-
81
- methodCalls.emplace_back(
82
- static_cast<int>(moduleIds[i].asInt()),
83
- static_cast<int>(methodIds[i].asInt()),
84
- std::move(params[i]),
85
- callId);
86
-
87
- // only increment callid if contains valid callid as callid is optional
88
- callId += (callId != -1) ? 1 : 0;
89
- }
90
-
91
- return methodCalls;
92
- }
93
-
94
- } // namespace facebook::react
95
-
96
- #endif // RCT_REMOVE_LEGACY_ARCH
97
-
98
- #if _MSC_VER
99
- #pragma warning(pop)
100
- #endif
@@ -1,256 +0,0 @@
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
-
9
- #if _MSC_VER
10
- #pragma warning(push)
11
- #pragma warning(disable : 4996) // deprecated APIs
12
- #endif
13
- #include "ModuleRegistry.h"
14
-
15
- #ifndef RCT_REMOVE_LEGACY_ARCH
16
-
17
- #include <glog/logging.h>
18
- #include <reactperflogger/BridgeNativeModulePerfLogger.h>
19
- #include <utility>
20
-
21
- #include "NativeModule.h"
22
- #include "TraceSection.h"
23
-
24
- namespace facebook::react {
25
-
26
- namespace {
27
-
28
- std::string normalizeName(std::string name) {
29
- // TODO mhorowitz #10487027: This is super ugly. We should just
30
- // change iOS to emit normalized names, drop the "RK..." from
31
- // names hardcoded in Android, and then delete this and the
32
- // similar hacks in js.
33
- if (name.compare(0, 3, "RCT") == 0) {
34
- return name.substr(3);
35
- } else if (name.compare(0, 2, "RK") == 0) {
36
- return name.substr(2);
37
- }
38
- return name;
39
- }
40
-
41
- } // namespace
42
-
43
- ModuleRegistry::ModuleRegistry(
44
- std::vector<std::unique_ptr<NativeModule>> modules,
45
- ModuleNotFoundCallback callback)
46
- : modules_{std::move(modules)},
47
- moduleNotFoundCallback_{std::move(callback)} {}
48
-
49
- void ModuleRegistry::updateModuleNamesFromIndex(size_t index) {
50
- for (; index < modules_.size(); index++) {
51
- std::string name = normalizeName(modules_[index]->getName());
52
- modulesByName_[name] = index;
53
- }
54
- }
55
-
56
- void ModuleRegistry::registerModules(
57
- std::vector<std::unique_ptr<NativeModule>> modules) {
58
- TraceSection s_("ModuleRegistry::registerModules");
59
- // Noop if there are no NativeModules to add
60
- if (modules.empty()) {
61
- return;
62
- }
63
-
64
- if (modules_.empty() && unknownModules_.empty()) {
65
- modules_ = std::move(modules);
66
- } else {
67
- size_t modulesSize = modules_.size();
68
- size_t addModulesSize = modules.size();
69
- bool addToNames = !modulesByName_.empty();
70
- modules_.reserve(modulesSize + addModulesSize);
71
- std::move(modules.begin(), modules.end(), std::back_inserter(modules_));
72
- if (!unknownModules_.empty()) {
73
- for (size_t index = modulesSize; index < modulesSize + addModulesSize;
74
- index++) {
75
- std::string name = normalizeName(modules_[index]->getName());
76
- auto it = unknownModules_.find(name);
77
- if (it != unknownModules_.end()) {
78
- throw std::runtime_error(
79
- "module " + name +
80
- " was required without being registered and is now being registered.");
81
- } else if (addToNames) {
82
- modulesByName_[name] = index;
83
- }
84
- }
85
- } else if (addToNames) {
86
- updateModuleNamesFromIndex(modulesSize);
87
- }
88
- }
89
- }
90
-
91
- std::vector<std::string> ModuleRegistry::moduleNames() {
92
- TraceSection s_("ModuleRegistry::moduleNames");
93
- std::vector<std::string> names;
94
- for (size_t i = 0; i < modules_.size(); i++) {
95
- std::string name = normalizeName(modules_[i]->getName());
96
- modulesByName_[name] = i;
97
- names.push_back(std::move(name));
98
- }
99
- return names;
100
- }
101
-
102
- std::optional<ModuleConfig> ModuleRegistry::getConfig(const std::string& name) {
103
- TraceSection s("ModuleRegistry::getConfig", "module", name);
104
-
105
- // Initialize modulesByName_
106
- if (modulesByName_.empty() && !modules_.empty()) {
107
- moduleNames();
108
- }
109
-
110
- auto it = modulesByName_.find(name);
111
-
112
- if (it == modulesByName_.end()) {
113
- if (unknownModules_.find(name) != unknownModules_.end()) {
114
- BridgeNativeModulePerfLogger::moduleJSRequireBeginningFail(name.c_str());
115
- BridgeNativeModulePerfLogger::moduleJSRequireEndingStart(name.c_str());
116
- return std::nullopt;
117
- }
118
-
119
- if (!moduleNotFoundCallback_) {
120
- unknownModules_.insert(name);
121
- BridgeNativeModulePerfLogger::moduleJSRequireBeginningFail(name.c_str());
122
- BridgeNativeModulePerfLogger::moduleJSRequireEndingStart(name.c_str());
123
- return std::nullopt;
124
- }
125
-
126
- BridgeNativeModulePerfLogger::moduleJSRequireBeginningEnd(name.c_str());
127
-
128
- bool wasModuleLazilyLoaded = moduleNotFoundCallback_(name);
129
- it = modulesByName_.find(name);
130
-
131
- bool wasModuleRegisteredWithRegistry =
132
- wasModuleLazilyLoaded && it != modulesByName_.end();
133
-
134
- if (!wasModuleRegisteredWithRegistry) {
135
- BridgeNativeModulePerfLogger::moduleJSRequireEndingStart(name.c_str());
136
- unknownModules_.insert(name);
137
- return std::nullopt;
138
- }
139
- } else {
140
- BridgeNativeModulePerfLogger::moduleJSRequireBeginningEnd(name.c_str());
141
- }
142
-
143
- // If we've gotten this far, then we've signaled moduleJSRequireBeginningEnd
144
-
145
- size_t index = it->second;
146
-
147
- CHECK(index < modules_.size());
148
- NativeModule* module = modules_[index].get();
149
-
150
- // string name, object constants, array methodNames (methodId is index),
151
- // [array promiseMethodIds], [array syncMethodIds]
152
- folly::dynamic config = folly::dynamic::array(name);
153
-
154
- {
155
- TraceSection s_("ModuleRegistry::getConstants", "module", name);
156
- /**
157
- * In the case that there are constants, we'll initialize the NativeModule,
158
- * and signal moduleJSRequireEndingStart. Otherwise, we'll simply signal the
159
- * event. The Module will be initialized when we invoke one of its
160
- * NativeModule methods.
161
- */
162
- config.push_back(module->getConstants());
163
- }
164
-
165
- {
166
- TraceSection s_("ModuleRegistry::getMethods", "module", name);
167
- std::vector<MethodDescriptor> methods = module->getMethods();
168
-
169
- folly::dynamic methodNames = folly::dynamic::array;
170
- folly::dynamic promiseMethodIds = folly::dynamic::array;
171
- folly::dynamic syncMethodIds = folly::dynamic::array;
172
-
173
- for (auto& descriptor : methods) {
174
- // TODO: #10487027 compare tags instead of doing string comparison?
175
- methodNames.push_back(std::move(descriptor.name));
176
- if (descriptor.type == "promise") {
177
- promiseMethodIds.push_back(methodNames.size() - 1);
178
- } else if (descriptor.type == "sync") {
179
- syncMethodIds.push_back(methodNames.size() - 1);
180
- }
181
- }
182
-
183
- if (!methodNames.empty()) {
184
- config.push_back(std::move(methodNames));
185
- if (!promiseMethodIds.empty() || !syncMethodIds.empty()) {
186
- config.push_back(std::move(promiseMethodIds));
187
- if (!syncMethodIds.empty()) {
188
- config.push_back(std::move(syncMethodIds));
189
- }
190
- }
191
- }
192
- }
193
-
194
- if (config.size() == 2 && config[1].empty()) {
195
- // no constants or methods
196
- return std::nullopt;
197
- } else {
198
- return ModuleConfig{.index = index, .config = std::move(config)};
199
- }
200
- }
201
-
202
- std::string ModuleRegistry::getModuleName(unsigned int moduleId) {
203
- if (moduleId >= modules_.size()) {
204
- throw std::runtime_error(
205
- "moduleId " + std::to_string(moduleId) + " out of range [0.." +
206
- std::to_string(modules_.size()) + ")");
207
- }
208
-
209
- return modules_[moduleId]->getName();
210
- }
211
-
212
- std::string ModuleRegistry::getModuleSyncMethodName(
213
- unsigned int moduleId,
214
- unsigned int methodId) {
215
- if (moduleId >= modules_.size()) {
216
- throw std::runtime_error(
217
- "moduleId " + std::to_string(moduleId) + " out of range [0.." +
218
- std::to_string(modules_.size()) + ")");
219
- }
220
-
221
- return modules_[moduleId]->getSyncMethodName(methodId);
222
- }
223
-
224
- void ModuleRegistry::callNativeMethod(
225
- unsigned int moduleId,
226
- unsigned int methodId,
227
- folly::dynamic&& params,
228
- int callId) {
229
- if (moduleId >= modules_.size()) {
230
- throw std::runtime_error(
231
- "moduleId " + std::to_string(moduleId) + " out of range [0.." +
232
- std::to_string(modules_.size()) + ")");
233
- }
234
- modules_[moduleId]->invoke(methodId, std::move(params), callId);
235
- }
236
-
237
- MethodCallResult ModuleRegistry::callSerializableNativeHook(
238
- unsigned int moduleId,
239
- unsigned int methodId,
240
- folly::dynamic&& params) {
241
- if (moduleId >= modules_.size()) {
242
- throw std::runtime_error(
243
- "moduleId " + std::to_string(moduleId) + " out of range [0.." +
244
- std::to_string(modules_.size()) + ")");
245
- }
246
- return modules_[moduleId]->callSerializableNativeHook(
247
- methodId, std::move(params));
248
- }
249
-
250
- } // namespace facebook::react
251
-
252
- #endif // RCT_REMOVE_LEGACY_ARCH
253
-
254
- #if _MSC_VER
255
- #pragma warning(pop)
256
- #endif