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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/.flowconfig +1 -5
  2. package/Common/unicode.cpp +36 -0
  3. package/Common/unicode.h +8 -0
  4. package/Directory.Build.props +1 -16
  5. package/Directory.Build.targets +12 -4
  6. package/Folly/ThreadNameStub.cpp +4 -6
  7. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +3 -3
  8. package/Libraries/Animated/Animated.d.ts +8 -1
  9. package/Libraries/Animated/AnimatedEvent.js +4 -4
  10. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  11. package/Libraries/Animated/animations/Animation.js +3 -3
  12. package/Libraries/Animated/animations/DecayAnimation.js +4 -4
  13. package/Libraries/Animated/animations/SpringAnimation.js +5 -5
  14. package/Libraries/Animated/animations/TimingAnimation.js +5 -5
  15. package/Libraries/Animated/createAnimatedComponent.js +7 -7
  16. package/Libraries/Animated/nodes/AnimatedColor.js +2 -2
  17. package/Libraries/Animated/nodes/AnimatedInterpolation.js +12 -12
  18. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  19. package/Libraries/Animated/nodes/AnimatedObject.js +3 -3
  20. package/Libraries/Animated/nodes/AnimatedProps.js +6 -6
  21. package/Libraries/Animated/nodes/AnimatedStyle.js +7 -7
  22. package/Libraries/Animated/nodes/AnimatedTransform.js +13 -13
  23. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  24. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  25. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  26. package/Libraries/Animated/useAnimatedColor.d.ts +15 -0
  27. package/Libraries/Animated/useAnimatedColor.js +25 -0
  28. package/Libraries/Animated/useAnimatedValueXY.d.ts +15 -0
  29. package/Libraries/Animated/useAnimatedValueXY.js +26 -0
  30. package/Libraries/AppState/AppState.js +1 -1
  31. package/Libraries/BatchedBridge/MessageQueue.js +3 -3
  32. package/Libraries/BatchedBridge/NativeModules.js +12 -10
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +30 -26
  34. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +34 -30
  35. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +2 -2
  36. package/Libraries/Components/Button.js +2 -2
  37. package/Libraries/Components/Button.windows.js +2 -2
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +2 -2
  39. package/Libraries/Components/Keyboard/Keyboard.js +6 -6
  40. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -1
  41. package/Libraries/Components/LayoutConformance/LayoutConformance.js +1 -1
  42. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +1 -1
  43. package/Libraries/Components/Pressable/Pressable.d.ts +5 -0
  44. package/Libraries/Components/Pressable/Pressable.js +3 -3
  45. package/Libraries/Components/Pressable/Pressable.windows.js +3 -3
  46. package/Libraries/Components/Pressable/useAndroidRippleForView.js +4 -4
  47. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  48. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +3 -3
  49. package/Libraries/Components/RefreshControl/RefreshControl.js +5 -5
  50. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +5 -5
  51. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +8 -12
  52. package/Libraries/Components/ScrollView/ScrollView.d.ts +9 -0
  53. package/Libraries/Components/ScrollView/ScrollView.js +19 -9
  54. package/Libraries/Components/ScrollView/ScrollView.windows.js +19 -9
  55. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +8 -18
  56. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +8 -18
  57. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +4 -3
  58. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -1
  59. package/Libraries/Components/StaticRenderer.js +1 -1
  60. package/Libraries/Components/StatusBar/StatusBar.js +8 -8
  61. package/Libraries/Components/Switch/Switch.js +3 -3
  62. package/Libraries/Components/Switch/Switch.windows.js +3 -3
  63. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +33 -48
  64. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  65. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +6 -11
  66. package/Libraries/Components/TextInput/TextInput.flow.js +21 -20
  67. package/Libraries/Components/TextInput/TextInput.flow.windows.js +23 -22
  68. package/Libraries/Components/TextInput/TextInput.js +8 -4
  69. package/Libraries/Components/TextInput/TextInput.windows.js +3 -4
  70. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +33 -48
  71. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  72. package/Libraries/Components/Touchable/Touchable.js +2 -2
  73. package/Libraries/Components/Touchable/Touchable.windows.js +2 -2
  74. package/Libraries/Components/Touchable/TouchableBounce.js +4 -4
  75. package/Libraries/Components/Touchable/TouchableBounce.windows.js +4 -4
  76. package/Libraries/Components/Touchable/TouchableHighlight.js +8 -8
  77. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +9 -9
  78. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +7 -7
  79. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +7 -7
  80. package/Libraries/Components/Touchable/TouchableOpacity.js +4 -4
  81. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -4
  82. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -1
  83. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  84. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  85. package/Libraries/Components/View/ReactNativeStyleAttributes.js +68 -31
  86. package/Libraries/Components/View/View.windows.js +1 -1
  87. package/Libraries/Components/View/ViewAccessibility.js +7 -7
  88. package/Libraries/Components/View/ViewAccessibility.windows.js +7 -7
  89. package/Libraries/Components/View/ViewPropTypes.js +14 -14
  90. package/Libraries/Components/View/ViewPropTypes.windows.js +18 -16
  91. package/Libraries/Core/Devtools/parseHermesStack.js +8 -8
  92. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  93. package/Libraries/Core/ExceptionsManager.js +2 -2
  94. package/Libraries/Core/ExtendedError.js +3 -3
  95. package/Libraries/Core/RawEventEmitter.js +1 -1
  96. package/Libraries/Core/ReactNativeVersion.js +2 -2
  97. package/Libraries/Core/Timers/JSTimers.js +3 -2
  98. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  99. package/Libraries/Core/setUpErrorHandling.js +4 -2
  100. package/Libraries/Core/setUpReactDevTools.js +23 -6
  101. package/Libraries/Core/setUpSegmentFetcher.js +1 -1
  102. package/Libraries/Debugging/DebuggingOverlay.js +2 -2
  103. package/Libraries/EventEmitter/NativeEventEmitter.js +7 -9
  104. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +1 -1
  105. package/Libraries/Image/AssetSourceResolver.js +1 -1
  106. package/Libraries/Image/AssetSourceResolver.windows.js +1 -1
  107. package/Libraries/Image/Image.android.js +172 -306
  108. package/Libraries/Image/ImageProps.js +9 -11
  109. package/Libraries/Image/ImageSource.js +2 -2
  110. package/Libraries/Image/ImageSourceUtils.js +8 -4
  111. package/Libraries/Image/ImageTypes.flow.js +2 -2
  112. package/Libraries/Image/ImageViewNativeComponent.js +7 -16
  113. package/Libraries/Image/nativeImageSource.js +1 -1
  114. package/Libraries/Interaction/InteractionManager.js +5 -4
  115. package/Libraries/Interaction/PanResponder.js +1 -1
  116. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  117. package/Libraries/Linking/Linking.js +1 -1
  118. package/Libraries/Lists/FlatList.js +3 -3
  119. package/Libraries/Lists/SectionList.js +1 -1
  120. package/Libraries/Lists/SectionListModern.js +2 -2
  121. package/Libraries/LogBox/Data/LogBoxData.js +38 -24
  122. package/Libraries/LogBox/Data/LogBoxLog.js +43 -112
  123. package/Libraries/LogBox/Data/parseLogBoxLog.js +21 -117
  124. package/Libraries/LogBox/LogBox.js +42 -19
  125. package/Libraries/LogBox/LogBoxInspectorContainer.js +2 -2
  126. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  127. package/Libraries/LogBox/UI/LogBoxButton.js +14 -16
  128. package/Libraries/LogBox/UI/LogBoxInspector.js +2 -2
  129. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -9
  130. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -9
  131. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +1 -1
  132. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +1 -1
  133. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  134. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  135. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +1 -1
  136. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +10 -15
  137. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +25 -18
  138. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +15 -16
  139. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +5 -7
  140. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +8 -10
  141. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -6
  142. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +3 -5
  143. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +17 -29
  144. package/Libraries/LogBox/UI/LogBoxMessage.js +28 -37
  145. package/Libraries/LogBox/UI/LogBoxNotification.js +1 -1
  146. package/Libraries/Modal/Modal.d.ts +4 -0
  147. package/Libraries/Modal/Modal.js +3 -3
  148. package/Libraries/Modal/Modal.windows.js +7 -3
  149. package/Libraries/NativeComponent/BaseViewConfig.android.js +28 -52
  150. package/Libraries/NativeComponent/BaseViewConfig.ios.js +19 -21
  151. package/Libraries/NativeComponent/BaseViewConfig.windows.js +26 -17
  152. package/Libraries/Network/RCTNetworking.android.js +1 -1
  153. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  154. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  155. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  156. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +1 -1
  157. package/Libraries/Network/XMLHttpRequest.js +1 -1
  158. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  159. package/Libraries/Pressability/Pressability.js +5 -5
  160. package/Libraries/Pressability/Pressability.windows.js +5 -5
  161. package/Libraries/Pressability/PressabilityDebug.js +1 -1
  162. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  163. package/Libraries/Pressability/usePressability.js +3 -14
  164. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +2 -2
  165. package/Libraries/ReactNative/AppContainer-dev.js +18 -1
  166. package/Libraries/ReactNative/AppContainer.js +1 -1
  167. package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
  168. package/Libraries/ReactNative/AppRegistryImpl.js +2 -2
  169. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  170. package/Libraries/ReactNative/RendererImplementation.js +4 -4
  171. package/Libraries/ReactNative/UIManagerProperties.js +1 -1
  172. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +3 -2
  173. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3 -2
  174. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +3 -2
  175. package/Libraries/Renderer/shims/ReactFabric.js +1 -3
  176. package/Libraries/Renderer/shims/ReactFeatureFlags.js +1 -3
  177. package/Libraries/Renderer/shims/ReactNative.js +3 -2
  178. package/Libraries/Renderer/shims/ReactNativeTypes.js +1 -3
  179. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +1 -3
  180. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
  181. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +1 -3
  182. package/Libraries/StyleSheet/PointPropType.js +1 -1
  183. package/Libraries/StyleSheet/Rect.js +1 -1
  184. package/Libraries/StyleSheet/StyleSheet.d.ts +0 -5
  185. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  186. package/Libraries/StyleSheet/StyleSheet.js.flow +1 -1
  187. package/Libraries/StyleSheet/StyleSheetExports.js +16 -25
  188. package/Libraries/StyleSheet/StyleSheetExports.js.flow +2 -7
  189. package/Libraries/StyleSheet/StyleSheetTypes.js +33 -35
  190. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +5 -5
  191. package/Libraries/StyleSheet/private/_TransformStyle.js +7 -7
  192. package/Libraries/StyleSheet/processBackgroundImage.js +7 -7
  193. package/Libraries/StyleSheet/processBackgroundPosition.js +4 -4
  194. package/Libraries/StyleSheet/processBackgroundRepeat.js +4 -4
  195. package/Libraries/StyleSheet/processBackgroundSize.js +4 -4
  196. package/Libraries/StyleSheet/processBoxShadow.js +44 -4
  197. package/Libraries/StyleSheet/processColorArray.js +2 -2
  198. package/Libraries/StyleSheet/processFilter.js +2 -2
  199. package/Libraries/Text/Text.js +295 -627
  200. package/Libraries/Text/Text.windows.js +342 -717
  201. package/Libraries/Text/TextNativeComponent.js +14 -7
  202. package/Libraries/Text/TextProps.js +4 -4
  203. package/Libraries/Text/TextProps.windows.js +4 -4
  204. package/Libraries/Types/CodegenTypes.js +1 -1
  205. package/Libraries/Types/CoreEventTypes.js +21 -21
  206. package/Libraries/Types/CoreEventTypes.windows.js +21 -21
  207. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  208. package/Libraries/Utilities/Appearance.js +6 -1
  209. package/Libraries/Utilities/Dimensions.js +1 -1
  210. package/Libraries/Utilities/HMRClient.js +32 -5
  211. package/Libraries/Utilities/IPerformanceLogger.js +4 -4
  212. package/Libraries/Utilities/codegenNativeCommands.js +4 -4
  213. package/Libraries/Utilities/codegenNativeComponent.d.ts +2 -0
  214. package/Libraries/Utilities/codegenNativeComponent.js +2 -2
  215. package/Libraries/Utilities/logError.js +1 -1
  216. package/Libraries/Utilities/stringifySafe.js +3 -3
  217. package/Libraries/Utilities/useMergeRefs.js +2 -2
  218. package/Libraries/vendor/core/ErrorUtils.js +4 -4
  219. package/Libraries/vendor/emitter/EventEmitter.js +16 -20
  220. package/Microsoft.ReactNative/CallInvoker.cpp +14 -4
  221. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +1 -1
  222. package/Microsoft.ReactNative/Fabric/AbiPortalShadowNode.cpp +2 -2
  223. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
  224. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +73 -97
  225. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -1
  226. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +0 -1
  227. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +5 -0
  228. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +94 -26
  229. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +11 -0
  230. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +135 -18
  231. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +10 -0
  232. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +7 -2
  233. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +2 -0
  234. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +63 -15
  235. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +9 -5
  236. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +28 -6
  237. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +1 -1
  238. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  239. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +1 -1
  240. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +80 -0
  241. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.h +17 -0
  242. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +11 -0
  243. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +1 -0
  244. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +3 -0
  245. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +0 -3
  246. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +3 -8
  247. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -0
  248. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -63
  249. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -26
  250. package/Microsoft.ReactNative/Modules/AlertModule.cpp +2 -1
  251. package/Microsoft.ReactNative/Modules/AppStateModule.cpp +2 -17
  252. package/Microsoft.ReactNative/Modules/AppStateModule.h +0 -4
  253. package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -2
  254. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +16 -15
  255. package/Microsoft.ReactNative/Modules/AppearanceModule.h +5 -1
  256. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +2 -7
  257. package/Microsoft.ReactNative/Modules/DeviceInfoModule.h +0 -1
  258. package/Microsoft.ReactNative/Modules/I18nManagerModule.h +4 -4
  259. package/Microsoft.ReactNative/QuirkSettings.cpp +0 -133
  260. package/Microsoft.ReactNative/QuirkSettings.h +0 -43
  261. package/Microsoft.ReactNative/QuirkSettings.idl +0 -41
  262. package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +0 -4
  263. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +0 -2
  264. package/Microsoft.ReactNative/ReactHost/React.h +0 -5
  265. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +0 -1
  266. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +3 -26
  267. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -5
  268. package/Microsoft.ReactNative/ReactHost/React_Win.h +0 -2
  269. package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +3 -0
  270. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +7 -0
  271. package/Microsoft.ReactNative/ReactPackageBuilder.h +1 -0
  272. package/Microsoft.ReactNative/RedBox.cpp +0 -9
  273. package/Microsoft.ReactNative/RedBoxHandler.cpp +0 -4
  274. package/Microsoft.ReactNative/TurboModulesProvider.cpp +5 -10
  275. package/Microsoft.ReactNative/TurboModulesProvider.h +2 -0
  276. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +33 -25
  277. package/Microsoft.ReactNative/Utils/LocalBundleReader.h +5 -3
  278. package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -1
  279. package/Microsoft.ReactNative.Cxx/CppWinRTIncludes.h +0 -7
  280. package/Microsoft.ReactNative.Cxx/DesktopWindowBridge.h +0 -22
  281. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +8 -2
  282. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +36 -20
  283. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +0 -3
  284. package/Microsoft.ReactNative.Cxx/NativeModules.h +8 -2
  285. package/Microsoft.ReactNative.Cxx/XamlUtils.h +0 -9
  286. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +3 -3
  287. package/Microsoft.ReactNative.Managed/ReactContext.cs +0 -9
  288. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +10 -10
  289. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Debug.pubxml +1 -1
  290. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Release.pubxml +1 -1
  291. package/PropertySheets/Autolink.props +1 -1
  292. package/PropertySheets/Bundle.props +1 -1
  293. package/PropertySheets/Codegen.props +1 -1
  294. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  295. package/PropertySheets/JSEngine.props +1 -1
  296. package/PropertySheets/NuGet.LockFile.props +8 -0
  297. package/PropertySheets/React.Cpp.props +8 -7
  298. package/PropertySheets/ReactNativeArchitecture.props +6 -24
  299. package/PropertySheets/WinUI.props +2 -2
  300. package/ReactCommon/ReactCommon.vcxproj +5 -6
  301. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +1 -1
  302. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +15 -4
  303. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +13 -0
  304. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/defaults/DefaultTurboModules.cpp +69 -0
  305. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp +717 -0
  306. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +10 -10
  307. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +2 -21
  308. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +151 -0
  309. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +50 -0
  310. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBuffer.cpp +178 -0
  311. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +69 -39
  312. package/Scripts/JustMyXaml.ps1 +8 -8
  313. package/Scripts/OfficeReact.Win32.nuspec +0 -1
  314. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -39
  315. package/Scripts/UnitTest.ps1 +3 -1
  316. package/Scripts/creaternwapp.cmd +1 -9
  317. package/Scripts/creaternwlib.cmd +4 -24
  318. package/Scripts/rnw-dependencies.ps1 +15 -16
  319. package/Shared/DevSettings.h +0 -3
  320. package/Shared/DevSupportManager.cpp +55 -48
  321. package/Shared/DevSupportManager.h +0 -1
  322. package/Shared/Modules/IWebSocketModuleContentHandler.h +15 -0
  323. package/Shared/Modules/WebSocketModule.cpp +8 -3
  324. package/Shared/Networking/DefaultBlobResource.cpp +37 -0
  325. package/Shared/Networking/DefaultBlobResource.h +12 -0
  326. package/Shared/Networking/WinRTWebSocketResource.cpp +23 -408
  327. package/Shared/Networking/WinRTWebSocketResource.h +8 -120
  328. package/Shared/Shared.vcxitems +63 -38
  329. package/Shared/Shared.vcxitems.filters +54 -0
  330. package/Shared/Utils.cpp +0 -88
  331. package/Shared/Utils.h +0 -14
  332. package/Shared/WebSocketResourceFactory.cpp +28 -0
  333. package/Shared/tracing/fbsystrace.h +1 -0
  334. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +172 -160
  335. package/codegen/react/components/rnwcore/ModalHostView.g.h +8 -0
  336. package/codegen/react/components/rnwcore/Props.cpp +17 -7
  337. package/codegen/react/components/rnwcore/Props.h +3 -1
  338. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +4 -4
  339. package/codegen/rnwcoreJSI.h +93 -77
  340. package/index.js +9 -0
  341. package/index.windows.js +9 -0
  342. package/jest/RefreshControlMock.js +2 -2
  343. package/jest/assetFileTransformer.js +8 -3
  344. package/jest/mockComponent.js +3 -4
  345. package/jest/mockNativeComponent.js +1 -1
  346. package/jest/mocks/ActivityIndicator.js +2 -2
  347. package/jest/mocks/Image.js +2 -2
  348. package/jest/mocks/Modal.js +2 -2
  349. package/jest/mocks/RefreshControl.js +3 -3
  350. package/jest/mocks/RendererProxy.js +2 -2
  351. package/jest/mocks/ScrollView.js +5 -5
  352. package/jest/mocks/Text.js +2 -2
  353. package/jest/mocks/TextInput.js +2 -2
  354. package/jest/mocks/View.js +2 -2
  355. package/jest/mocks/ViewNativeComponent.js +1 -1
  356. package/jest/mocks/requireNativeComponent.js +1 -1
  357. package/jest/mocks/useColorScheme.js +1 -1
  358. package/jest/setup.js +68 -31
  359. package/just-task.js +13 -2
  360. package/package.json +25 -20
  361. package/src/private/animated/NativeAnimatedHelper.js +2 -2
  362. package/src/private/animated/createAnimatedPropsMemoHook.js +19 -19
  363. package/src/private/components/virtualview/VirtualView.js +14 -21
  364. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +11 -10
  365. package/src/private/components/virtualview/VirtualViewNativeComponent.js +4 -4
  366. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +2 -2
  367. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +3 -3
  368. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +4 -4
  369. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  370. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +39 -17
  371. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +15 -3
  372. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +2 -2
  373. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +2 -8
  374. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  375. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  376. package/src/private/devsupport/devmenu/elementinspector/useExternalInspection.js +102 -0
  377. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +12 -25
  378. package/src/private/devsupport/rndevtools/GlobalStateObserver.js +56 -0
  379. package/src/private/devsupport/rndevtools/TracingStateObserver.js +28 -0
  380. package/src/private/featureflags/ReactNativeFeatureFlags.js +71 -79
  381. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -2
  382. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +14 -12
  383. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  384. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  385. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +3 -3
  386. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  387. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +2 -2
  388. package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +2 -2
  389. package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +3 -3
  390. package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +1 -1
  391. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  392. package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +1 -1
  393. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +7 -3
  394. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  395. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +2 -2
  396. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  397. package/src/private/specs_DEPRECATED/modules/NativeImageLoaderIOS.js +1 -1
  398. package/src/private/styles/composeStyles.js +1 -1
  399. package/src/private/utilities/toError.js +27 -0
  400. package/src/private/utilities/toExtendedError.js +30 -0
  401. package/src/private/webapis/dom/events/Event.js +1 -1
  402. package/src/private/webapis/dom/events/EventHandlerAttributes.js +2 -2
  403. package/src/private/webapis/dom/events/EventTarget.js +3 -3
  404. package/src/private/webapis/dom/events/internals/EventInternals.js +2 -2
  405. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  406. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +2 -2
  407. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +14 -14
  408. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +2 -2
  409. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  410. package/src/private/webapis/geometry/DOMRectList.js +2 -2
  411. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +8 -8
  412. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +6 -6
  413. package/src/private/webapis/mutationobserver/MutationObserver.js +2 -2
  414. package/src/private/webapis/mutationobserver/MutationRecord.js +2 -2
  415. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +1 -1
  416. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +3 -3
  417. package/src/private/webapis/performance/LongTasks.js +3 -3
  418. package/src/private/webapis/performance/Performance.js +4 -4
  419. package/src/private/webapis/performance/PerformanceEntry.js +1 -1
  420. package/src/private/webapis/performance/PerformanceObserver.js +2 -2
  421. package/src/private/webapis/performance/specs/NativePerformance.js +8 -8
  422. package/src/private/webapis/structuredClone/structuredClone.js +2 -2
  423. package/src/types/globals.d.ts +4 -4
  424. package/template/cpp-lib/proj/MyLib.sln +0 -33
  425. package/template/cpp-lib/proj/MyLib.vcxproj +1 -1
  426. package/template/cs-lib/proj/MyLib.sln +0 -33
  427. package/template/metro.config.js +12 -2
  428. package/templates/cpp-app/metro.config.js +12 -2
  429. package/templates/cpp-app/windows/MyApp/MyApp.cpp +9 -6
  430. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +2 -2
  431. package/templates/cpp-app/windows/MyApp.sln +0 -33
  432. package/templates/cpp-lib/example/metro.config.js +12 -2
  433. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +2 -2
  434. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  435. package/types/index.d.ts +2 -0
  436. package/Folly/.clang-format +0 -2
  437. package/Folly/Folly.natvis +0 -25
  438. package/Folly/Folly.vcxproj +0 -378
  439. package/Folly/Folly.vcxproj.filters +0 -558
  440. package/Folly/TEMP_UntilFollyUpdate/ConstexprMath.h +0 -978
  441. package/Folly/TEMP_UntilFollyUpdate/Conv.cpp +0 -1205
  442. package/Folly/TEMP_UntilFollyUpdate/chrono/Hardware.h +0 -155
  443. package/Folly/TEMP_UntilFollyUpdate/concurrency/CacheLocality.cpp +0 -633
  444. package/Folly/TEMP_UntilFollyUpdate/json/dynamic-inl.h +0 -1438
  445. package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +0 -1118
  446. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +0 -188
  447. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +0 -348
  448. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.h +0 -182
  449. package/Folly/TEMP_UntilFollyUpdate/portability/Unistd.cpp +0 -33
  450. package/Folly/cgmanifest.json +0 -25
  451. package/Libraries/Components/View/ReactNativeViewAttributes.js +0 -60
  452. package/Libraries/Components/View/ReactNativeViewAttributes.windows.js +0 -64
  453. package/Libraries/Image/TextInlineImageNativeComponent.js +0 -49
  454. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper_emptyimpl.cpp +0 -75
  455. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService_emptyimpl.cpp +0 -27
  456. package/Microsoft.ReactNative/Fabric/Composition/Theme_emptyimpl.cpp +0 -81
  457. package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -24
  458. package/Microsoft.ReactNative/ReactSupport.cpp +0 -221
  459. package/Microsoft.ReactNative/ReactSupport.h +0 -13
  460. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.cpp +0 -107
  461. package/Microsoft.ReactNative/Utils/UwpPreparedScriptStore.h +0 -62
  462. package/Microsoft.ReactNative/Utils/UwpScriptStore.cpp +0 -56
  463. package/Microsoft.ReactNative/Utils/UwpScriptStore.h +0 -22
  464. package/Microsoft.ReactNative/XamlUIService.cpp +0 -68
  465. package/Microsoft.ReactNative/XamlUIService.h +0 -37
  466. package/Microsoft.ReactNative/XamlUIService.idl +0 -53
  467. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +0 -259
  468. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +0 -381
  469. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +0 -145
  470. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +0 -100
  471. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +0 -256
  472. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -363
  473. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +0 -93
  474. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -148
  475. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +0 -190
  476. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +0 -123
  477. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +0 -27
  478. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +0 -414
  479. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +0 -91
  480. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -80
  481. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +0 -138
  482. package/fmt/.clang-format +0 -2
  483. package/fmt/cgmanifest.json +0 -15
  484. package/fmt/fmt.vcxproj +0 -153
  485. package/fmt/fmt.vcxproj.filters +0 -59
  486. package/fmt/pch.cpp +0 -4
  487. package/fmt/pch.h +0 -2
@@ -10,6 +10,7 @@
10
10
 
11
11
  import type {ExceptionData} from '../../Core/NativeExceptionsManager';
12
12
  import type {LogBoxLogData} from './LogBoxLog';
13
+ import type {Stack} from './LogBoxSymbolication';
13
14
 
14
15
  import parseErrorStack from '../../Core/Devtools/parseErrorStack';
15
16
  import UTFSequence from '../../UTFSequence';
@@ -19,10 +20,7 @@ import ansiRegex from 'ansi-regex';
19
20
  const ANSI_REGEX = ansiRegex().source;
20
21
 
21
22
  const RE_TRANSFORM_ERROR = /^TransformError /;
22
- const RE_COMPONENT_STACK_LINE = /\n {4}(in|at) /;
23
- const RE_COMPONENT_STACK_LINE_GLOBAL = /\n {4}(in|at) /g;
24
- const RE_COMPONENT_STACK_LINE_OLD = / {4}in/;
25
- const RE_COMPONENT_STACK_LINE_NEW = / {4}at/;
23
+ const RE_COMPONENT_STACK_LINE = /\n {4}at/;
26
24
  const RE_COMPONENT_STACK_LINE_STACK_FRAME = /@.*\n/;
27
25
 
28
26
  // "TransformError " (Optional) and either "SyntaxError: " or "ReferenceError: "
@@ -36,20 +34,6 @@ const RE_COMPONENT_STACK_LINE_STACK_FRAME = /@.*\n/;
36
34
  const RE_BABEL_TRANSFORM_ERROR_FORMAT =
37
35
  /^(?:TransformError )?(?:SyntaxError: |ReferenceError: )(.*): (.*) \((\d+):(\d+)\)\n\n([\s\S]+)/;
38
36
 
39
- // Capturing groups:
40
- // 1: component name
41
- // "at"
42
- // 2: file path including extension
43
- // 3: line number
44
- const RE_COMPONENT_STACK_WITH_SOURCE =
45
- /(.*) \(at (.*\.(?:js|jsx|ts|tsx)):([\d]+)\)/;
46
-
47
- // Capturing groups:
48
- // 1: component name
49
- // "at"
50
- // 2: parent component name
51
- const RE_COMPONENT_STACK_NO_SOURCE = /(.*) \(created by .*\)/;
52
-
53
37
  // Capturing groups:
54
38
  // - non-capturing "TransformError " (optional)
55
39
  // - non-capturing Error message
@@ -93,21 +77,12 @@ const RE_BABEL_CODE_FRAME_MARKER_PATTERN = new RegExp(
93
77
  'm',
94
78
  );
95
79
 
96
- export function hasComponentStack(args: $ReadOnlyArray<unknown>): boolean {
97
- for (const arg of args) {
98
- if (typeof arg === 'string' && isComponentStack(arg)) {
99
- return true;
100
- }
101
- }
102
- return false;
103
- }
104
-
105
80
  export type ExtendedExceptionData = ExceptionData & {
106
81
  isComponentError: boolean,
107
82
  ...
108
83
  };
109
84
  export type Category = string;
110
- export type CodeFrame = $ReadOnly<{
85
+ export type CodeFrame = Readonly<{
111
86
  content: string,
112
87
  location: ?{
113
88
  row: number,
@@ -121,22 +96,19 @@ export type CodeFrame = $ReadOnly<{
121
96
  // it is not integrated into the LogBox UI.
122
97
  collapse?: boolean,
123
98
  }>;
124
- export type Message = $ReadOnly<{
99
+ export type Message = Readonly<{
125
100
  content: string,
126
- substitutions: $ReadOnlyArray<
127
- $ReadOnly<{
101
+ substitutions: ReadonlyArray<
102
+ Readonly<{
128
103
  length: number,
129
104
  offset: number,
130
105
  }>,
131
106
  >,
132
107
  }>;
133
108
 
134
- export type ComponentStack = $ReadOnlyArray<CodeFrame>;
135
- export type ComponentStackType = 'legacy' | 'stack';
136
-
137
109
  const SUBSTITUTION = UTFSequence.BOM + '%s';
138
110
 
139
- export function parseInterpolation(args: $ReadOnlyArray<unknown>): $ReadOnly<{
111
+ export function parseInterpolation(args: ReadonlyArray<unknown>): Readonly<{
140
112
  category: Category,
141
113
  message: Message,
142
114
  }> {
@@ -212,75 +184,21 @@ export function parseInterpolation(args: $ReadOnlyArray<unknown>): $ReadOnly<{
212
184
  }
213
185
 
214
186
  function isComponentStack(consoleArgument: string) {
215
- const isOldComponentStackFormat =
216
- RE_COMPONENT_STACK_LINE_OLD.test(consoleArgument);
217
- const isNewComponentStackFormat =
218
- RE_COMPONENT_STACK_LINE_NEW.test(consoleArgument);
219
- const isNewJSCComponentStackFormat =
220
- RE_COMPONENT_STACK_LINE_STACK_FRAME.test(consoleArgument);
221
-
187
+ // Component stacks are formatted as call stack frames:
188
+ // - Hermes format: " at Component (/path/to/file.js:1:2)"
189
+ // - JSC format: "Component@/path/to/file.js:1:2"
222
190
  return (
223
- isOldComponentStackFormat ||
224
- isNewComponentStackFormat ||
225
- isNewJSCComponentStackFormat
191
+ RE_COMPONENT_STACK_LINE.test(consoleArgument) ||
192
+ RE_COMPONENT_STACK_LINE_STACK_FRAME.test(consoleArgument)
226
193
  );
227
194
  }
228
195
 
229
196
  export function parseComponentStack(message: string): {
230
- type: ComponentStackType,
231
- stack: ComponentStack,
197
+ stack: Stack,
232
198
  } {
233
- // In newer versions of React, the component stack is formatted as a call stack frame.
234
- // First try to parse the component stack as a call stack frame, and if that doesn't
235
- // work then we'll fallback to the old custom component stack format parsing.
236
199
  const stack = parseErrorStack(message);
237
- if (stack && stack.length > 0) {
238
- return {
239
- type: 'stack',
240
- stack: stack.map(frame => ({
241
- content: frame.methodName,
242
- collapse: frame.collapse || false,
243
- fileName: frame.file == null ? 'unknown' : frame.file,
244
- location: {
245
- column: frame.column == null ? -1 : frame.column,
246
- row: frame.lineNumber == null ? -1 : frame.lineNumber,
247
- },
248
- })),
249
- };
250
- }
251
- const legacyStack = message
252
- .split(RE_COMPONENT_STACK_LINE_GLOBAL)
253
- .map(s => {
254
- if (!s) {
255
- return null;
256
- }
257
- const match = s.match(RE_COMPONENT_STACK_WITH_SOURCE);
258
- if (match) {
259
- let [content, fileName, row] = match.slice(1);
260
- return {
261
- content,
262
- fileName,
263
- location: {column: -1, row: parseInt(row, 10)},
264
- };
265
- }
266
-
267
- // In some cases, the component stack doesn't have a source.
268
- const matchWithoutSource = s.match(RE_COMPONENT_STACK_NO_SOURCE);
269
- if (matchWithoutSource) {
270
- return {
271
- content: matchWithoutSource[1],
272
- fileName: '',
273
- location: null,
274
- };
275
- }
276
-
277
- return null;
278
- })
279
- .filter(Boolean);
280
-
281
200
  return {
282
- type: 'legacy',
283
- stack: legacyStack,
201
+ stack: stack ?? [],
284
202
  };
285
203
  }
286
204
 
@@ -300,7 +218,6 @@ export function parseLogBoxException(
300
218
  type: 'Metro Error',
301
219
  stack: [],
302
220
  isComponentError: false,
303
- componentStackType: 'legacy',
304
221
  componentStack: [],
305
222
  codeFrame: {
306
223
  fileName,
@@ -329,7 +246,6 @@ export function parseLogBoxException(
329
246
  level: 'syntax',
330
247
  stack: [],
331
248
  isComponentError: false,
332
- componentStackType: 'legacy',
333
249
  componentStack: [],
334
250
  codeFrame: {
335
251
  fileName,
@@ -360,7 +276,6 @@ export function parseLogBoxException(
360
276
  level: 'syntax',
361
277
  stack: [],
362
278
  isComponentError: false,
363
- componentStackType: 'legacy',
364
279
  componentStack: [],
365
280
  codeFrame: {
366
281
  fileName,
@@ -382,7 +297,6 @@ export function parseLogBoxException(
382
297
  level: 'syntax',
383
298
  stack: error.stack,
384
299
  isComponentError: error.isComponentError,
385
- componentStackType: 'legacy',
386
300
  componentStack: [],
387
301
  message: {
388
302
  content: message,
@@ -396,12 +310,11 @@ export function parseLogBoxException(
396
310
  const componentStack = error.componentStack;
397
311
  if (error.isFatal || error.isComponentError) {
398
312
  if (componentStack != null) {
399
- const {type, stack} = parseComponentStack(componentStack);
313
+ const {stack} = parseComponentStack(componentStack);
400
314
  return {
401
315
  level: 'fatal',
402
316
  stack: error.stack,
403
317
  isComponentError: error.isComponentError,
404
- componentStackType: type,
405
318
  componentStack: stack,
406
319
  extraData: error.extraData,
407
320
  ...parseInterpolation([message]),
@@ -411,7 +324,6 @@ export function parseLogBoxException(
411
324
  level: 'fatal',
412
325
  stack: error.stack,
413
326
  isComponentError: error.isComponentError,
414
- componentStackType: 'legacy',
415
327
  componentStack: [],
416
328
  extraData: error.extraData,
417
329
  ...parseInterpolation([message]),
@@ -421,12 +333,11 @@ export function parseLogBoxException(
421
333
 
422
334
  if (componentStack != null) {
423
335
  // It is possible that console errors have a componentStack.
424
- const {type, stack} = parseComponentStack(componentStack);
336
+ const {stack} = parseComponentStack(componentStack);
425
337
  return {
426
338
  level: 'error',
427
339
  stack: error.stack,
428
340
  isComponentError: error.isComponentError,
429
- componentStackType: type,
430
341
  componentStack: stack,
431
342
  extraData: error.extraData,
432
343
  ...parseInterpolation([message]),
@@ -456,16 +367,14 @@ export function withoutANSIColorStyles(message: unknown): unknown {
456
367
  );
457
368
  }
458
369
 
459
- export function parseLogBoxLog(args: $ReadOnlyArray<unknown>): {
460
- componentStack: ComponentStack,
461
- componentStackType: ComponentStackType,
370
+ export function parseLogBoxLog(args: ReadonlyArray<unknown>): {
371
+ componentStack: Stack,
462
372
  category: Category,
463
373
  message: Message,
464
374
  } {
465
375
  const message = withoutANSIColorStyles(args[0]);
466
376
  let argsWithoutComponentStack: Array<unknown> = [];
467
- let componentStack: ComponentStack = [];
468
- let componentStackType = 'legacy';
377
+ let componentStack: Stack = [];
469
378
 
470
379
  // Extract component stack from warnings like "Some warning%s".
471
380
  if (
@@ -477,9 +386,8 @@ export function parseLogBoxLog(args: $ReadOnlyArray<unknown>): {
477
386
  if (typeof lastArg === 'string' && isComponentStack(lastArg)) {
478
387
  argsWithoutComponentStack = args.slice(0, -1);
479
388
  argsWithoutComponentStack[0] = message.slice(0, -2);
480
- const {type, stack} = parseComponentStack(lastArg);
389
+ const {stack} = parseComponentStack(lastArg);
481
390
  componentStack = stack;
482
- componentStackType = type;
483
391
  }
484
392
  }
485
393
 
@@ -497,9 +405,8 @@ export function parseLogBoxLog(args: $ReadOnlyArray<unknown>): {
497
405
  argsWithoutComponentStack.push(arg.slice(0, messageEndIndex));
498
406
  }
499
407
 
500
- const {type, stack} = parseComponentStack(arg);
408
+ const {stack} = parseComponentStack(arg);
501
409
  componentStack = stack;
502
- componentStackType = type;
503
410
  } else {
504
411
  argsWithoutComponentStack.push(arg);
505
412
  }
@@ -509,8 +416,5 @@ export function parseLogBoxLog(args: $ReadOnlyArray<unknown>): {
509
416
  return {
510
417
  ...parseInterpolation(argsWithoutComponentStack),
511
418
  componentStack,
512
- /* $FlowFixMe[incompatible-type] Natural Inference rollout. See
513
- * https://fburl.com/workplace/6291gfvu */
514
- componentStackType,
515
419
  };
516
420
  }
@@ -9,12 +9,41 @@
9
9
  */
10
10
 
11
11
  import type {IgnorePattern, LogData} from './Data/LogBoxData';
12
+ import type {Stack} from './Data/LogBoxSymbolication';
12
13
  import type {ExtendedExceptionData} from './Data/parseLogBoxLog';
13
14
 
15
+ import toExtendedError from '../../src/private/utilities/toExtendedError';
14
16
  import Platform from '../Utilities/Platform';
15
17
  import RCTLog from '../Utilities/RCTLog';
16
18
  import * as React from 'react';
17
19
 
20
+ // TODO: Remove support for LegacyComponentStackFrame in a future version.
21
+ // This is kept for backward compatibility with external callers of LogBox.addLog.
22
+ function convertLegacyComponentStack(componentStack: Stack): Stack {
23
+ if (componentStack.length === 0) {
24
+ return [];
25
+ }
26
+ // Detect legacy format by checking for 'content' property
27
+ const firstFrame = componentStack[0];
28
+ if (
29
+ firstFrame != null &&
30
+ typeof firstFrame === 'object' &&
31
+ // $FlowExpectedError[prop-missing]
32
+ typeof firstFrame.content === 'string'
33
+ ) {
34
+ // Convert from legacy ComponentStack to Stack format
35
+ return (componentStack: $FlowFixMe).map(frame => ({
36
+ methodName: frame.content,
37
+ lineNumber: frame.location.row,
38
+ column: frame.location.column,
39
+ file: frame.fileName,
40
+ collapse: frame.collapse ?? false,
41
+ }));
42
+ }
43
+ // Already in the new Stack format
44
+ return componentStack;
45
+ }
46
+
18
47
  export type {LogData, ExtendedExceptionData, IgnorePattern};
19
48
 
20
49
  let LogBox;
@@ -23,7 +52,7 @@ interface ILogBox {
23
52
  install(): void;
24
53
  uninstall(): void;
25
54
  isInstalled(): boolean;
26
- ignoreLogs($ReadOnlyArray<IgnorePattern>): void;
55
+ ignoreLogs(ReadonlyArray<IgnorePattern>): void;
27
56
  ignoreAllLogs(value?: boolean): void;
28
57
  clearAllLogs(): void;
29
58
  addLog(log: LogData): void;
@@ -117,7 +146,7 @@ if (__DEV__) {
117
146
  /**
118
147
  * Silence any logs that match the given strings or regexes.
119
148
  */
120
- ignoreLogs(patterns: $ReadOnlyArray<IgnorePattern>): void {
149
+ ignoreLogs(patterns: ReadonlyArray<IgnorePattern>): void {
121
150
  LogBoxData.addIgnorePatterns(patterns);
122
151
  },
123
152
 
@@ -136,7 +165,10 @@ if (__DEV__) {
136
165
 
137
166
  addLog(log: LogData): void {
138
167
  if (isLogBoxInstalled) {
139
- LogBoxData.addLog(log);
168
+ LogBoxData.addLog({
169
+ ...log,
170
+ componentStack: convertLegacyComponentStack(log.componentStack),
171
+ });
140
172
  }
141
173
  },
142
174
 
@@ -147,11 +179,7 @@ if (__DEV__) {
147
179
  let format = args[0];
148
180
  if (typeof format === 'string') {
149
181
  const filterResult =
150
- require('../LogBox/Data/LogBoxData').checkWarningFilter(
151
- // For legacy reasons, we strip the warning prefix from the message.
152
- // Can remove this once we remove the warning module altogether.
153
- format.replace(/^Warning: /, ''),
154
- );
182
+ require('../LogBox/Data/LogBoxData').checkWarningFilter(format);
155
183
  if (filterResult.monitorEvent !== 'warning_unhandled') {
156
184
  if (filterResult.suppressCompletely) {
157
185
  return;
@@ -169,7 +197,6 @@ if (__DEV__) {
169
197
  const result = parseLogBoxLog(args);
170
198
  const category = result.category;
171
199
  const message = result.message;
172
- let componentStackType = result.componentStackType;
173
200
  let componentStack = result.componentStack;
174
201
  if (
175
202
  (!componentStack || componentStack.length === 0) &&
@@ -180,7 +207,6 @@ if (__DEV__) {
180
207
  if (ownerStack != null && ownerStack.length > 0) {
181
208
  const parsedComponentStack = parseComponentStack(ownerStack);
182
209
  componentStack = parsedComponentStack.stack;
183
- componentStackType = parsedComponentStack.type;
184
210
  }
185
211
  }
186
212
  if (!LogBoxData.isMessageIgnored(message.content)) {
@@ -189,11 +215,10 @@ if (__DEV__) {
189
215
  category,
190
216
  message,
191
217
  componentStack,
192
- componentStackType,
193
218
  });
194
219
  }
195
- } catch (err) {
196
- LogBoxData.reportLogBoxError(err);
220
+ } catch (err: unknown) {
221
+ LogBoxData.reportLogBoxError(toExtendedError(err));
197
222
  }
198
223
  }
199
224
  },
@@ -224,8 +249,7 @@ if (__DEV__) {
224
249
 
225
250
  try {
226
251
  if (!isRCTLogAdviceWarning(...args)) {
227
- const {category, message, componentStack, componentStackType} =
228
- parseLogBoxLog(args);
252
+ const {category, message, componentStack} = parseLogBoxLog(args);
229
253
 
230
254
  if (!LogBoxData.isMessageIgnored(message.content)) {
231
255
  LogBoxData.addLog({
@@ -233,12 +257,11 @@ if (__DEV__) {
233
257
  category,
234
258
  message,
235
259
  componentStack,
236
- componentStackType,
237
260
  });
238
261
  }
239
262
  }
240
- } catch (err) {
241
- LogBoxData.reportLogBoxError(err);
263
+ } catch (err: unknown) {
264
+ LogBoxData.reportLogBoxError(toExtendedError(err));
242
265
  }
243
266
  };
244
267
  } else {
@@ -255,7 +278,7 @@ if (__DEV__) {
255
278
  return false;
256
279
  },
257
280
 
258
- ignoreLogs(patterns: $ReadOnlyArray<IgnorePattern>): void {
281
+ ignoreLogs(patterns: ReadonlyArray<IgnorePattern>): void {
259
282
  // Do nothing.
260
283
  },
261
284
 
@@ -16,8 +16,8 @@ import * as LogBoxData from './Data/LogBoxData';
16
16
  import LogBoxInspector from './UI/LogBoxInspector';
17
17
  import * as React from 'react';
18
18
 
19
- type Props = $ReadOnly<{
20
- logs: $ReadOnlyArray<LogBoxLog>,
19
+ type Props = Readonly<{
20
+ logs: ReadonlyArray<LogBoxLog>,
21
21
  selectedLogIndex: number,
22
22
  isDisabled?: ?boolean,
23
23
  }>;
@@ -16,8 +16,8 @@ import LogBoxLog from './Data/LogBoxLog';
16
16
  import LogBoxLogNotification from './UI/LogBoxNotification';
17
17
  import * as React from 'react';
18
18
 
19
- type Props = $ReadOnly<{
20
- logs: $ReadOnlyArray<LogBoxLog>,
19
+ type Props = Readonly<{
20
+ logs: ReadonlyArray<LogBoxLog>,
21
21
  selectedLogIndex: number,
22
22
  isDisabled?: ?boolean,
23
23
  }>;
@@ -19,9 +19,9 @@ import * as LogBoxStyle from './LogBoxStyle';
19
19
  import * as React from 'react';
20
20
  import {useState} from 'react';
21
21
 
22
- type Props = $ReadOnly<{
22
+ component LogBoxButton(
23
23
  id?: string,
24
- backgroundColor: $ReadOnly<{
24
+ backgroundColor: Readonly<{
25
25
  default: string,
26
26
  pressed: string,
27
27
  }>,
@@ -29,14 +29,12 @@ type Props = $ReadOnly<{
29
29
  hitSlop?: ?EdgeInsetsProp,
30
30
  onPress?: ?(event: GestureResponderEvent) => void,
31
31
  style?: ViewStyleProp,
32
- }>;
33
-
34
- function LogBoxButton(props: Props): React.Node {
32
+ ) {
35
33
  const [pressed, setPressed] = useState(false);
36
34
 
37
- let backgroundColor = props.backgroundColor;
38
- if (!backgroundColor) {
39
- backgroundColor = {
35
+ let resolvedBackgroundColor = backgroundColor;
36
+ if (!resolvedBackgroundColor) {
37
+ resolvedBackgroundColor = {
40
38
  default: LogBoxStyle.getBackgroundColor(0.95),
41
39
  pressed: LogBoxStyle.getBackgroundColor(0.6),
42
40
  };
@@ -44,25 +42,25 @@ function LogBoxButton(props: Props): React.Node {
44
42
 
45
43
  const content = (
46
44
  <View
47
- id={props.id}
45
+ id={id}
48
46
  style={StyleSheet.compose(
49
47
  {
50
48
  backgroundColor: pressed
51
- ? backgroundColor.pressed
52
- : backgroundColor.default,
49
+ ? resolvedBackgroundColor.pressed
50
+ : resolvedBackgroundColor.default,
53
51
  },
54
- props.style,
52
+ style,
55
53
  )}>
56
- {props.children}
54
+ {children}
57
55
  </View>
58
56
  );
59
57
 
60
- return props.onPress == null ? (
58
+ return onPress == null ? (
61
59
  content
62
60
  ) : (
63
61
  <TouchableWithoutFeedback
64
- hitSlop={props.hitSlop}
65
- onPress={props.onPress}
62
+ hitSlop={hitSlop}
63
+ onPress={onPress}
66
64
  onPressIn={() => setPressed(true)}
67
65
  onPressOut={() => setPressed(false)}>
68
66
  {content}
@@ -20,11 +20,11 @@ import * as LogBoxStyle from './LogBoxStyle';
20
20
  import * as React from 'react';
21
21
  import {useEffect} from 'react';
22
22
 
23
- type Props = $ReadOnly<{
23
+ type Props = Readonly<{
24
24
  onDismiss: () => void,
25
25
  onChangeSelectedIndex: (index: number) => void,
26
26
  onMinimize: () => void,
27
- logs: $ReadOnlyArray<LogBoxLog>,
27
+ logs: ReadonlyArray<LogBoxLog>,
28
28
  selectedIndex: number,
29
29
  fatalType?: ?LogLevel,
30
30
  }>;
@@ -23,12 +23,7 @@ import LogBoxInspectorSection from './LogBoxInspectorSection';
23
23
  import * as LogBoxStyle from './LogBoxStyle';
24
24
  import * as React from 'react';
25
25
 
26
- type Props = $ReadOnly<{
27
- componentCodeFrame: ?CodeFrame,
28
- codeFrame: ?CodeFrame,
29
- }>;
30
-
31
- function CodeFrameDisplay({codeFrame}: {codeFrame: CodeFrame}): React.Node {
26
+ component CodeFrameDisplay(codeFrame: CodeFrame) {
32
27
  function getFileName() {
33
28
  // $FlowFixMe[incompatible-use]
34
29
  const matches = /[^/]*$/.exec(codeFrame.fileName);
@@ -77,8 +72,10 @@ function CodeFrameDisplay({codeFrame}: {codeFrame: CodeFrame}): React.Node {
77
72
  );
78
73
  }
79
74
 
80
- function LogBoxInspectorCodeFrame(props: Props): React.Node {
81
- const {codeFrame, componentCodeFrame} = props;
75
+ component LogBoxInspectorCodeFrame(
76
+ componentCodeFrame: ?CodeFrame,
77
+ codeFrame: ?CodeFrame,
78
+ ) {
82
79
  let sources = [];
83
80
  if (codeFrame != null) {
84
81
  sources.push(codeFrame);
@@ -103,7 +100,7 @@ function LogBoxInspectorCodeFrame(props: Props): React.Node {
103
100
  );
104
101
  }
105
102
 
106
- function AppInfo() {
103
+ component AppInfo() {
107
104
  const appInfo = LogBoxData.getAppInfo();
108
105
  if (appInfo == null) {
109
106
  return null;
@@ -23,12 +23,7 @@ import LogBoxInspectorSection from './LogBoxInspectorSection';
23
23
  import * as LogBoxStyle from './LogBoxStyle';
24
24
  import * as React from 'react';
25
25
 
26
- type Props = $ReadOnly<{
27
- componentCodeFrame: ?CodeFrame,
28
- codeFrame: ?CodeFrame,
29
- }>;
30
-
31
- function CodeFrameDisplay({codeFrame}: {codeFrame: CodeFrame}): React.Node {
26
+ component CodeFrameDisplay(codeFrame: CodeFrame) {
32
27
  function getFileName() {
33
28
  // $FlowFixMe[incompatible-use]
34
29
  const matches = /[^/]*$/.exec(codeFrame.fileName);
@@ -77,8 +72,10 @@ function CodeFrameDisplay({codeFrame}: {codeFrame: CodeFrame}): React.Node {
77
72
  );
78
73
  }
79
74
 
80
- function LogBoxInspectorCodeFrame(props: Props): React.Node {
81
- const {codeFrame, componentCodeFrame} = props;
75
+ component LogBoxInspectorCodeFrame(
76
+ componentCodeFrame: ?CodeFrame,
77
+ codeFrame: ?CodeFrame,
78
+ ) {
82
79
  let sources = [];
83
80
  if (codeFrame != null) {
84
81
  sources.push(codeFrame);
@@ -103,7 +100,7 @@ function LogBoxInspectorCodeFrame(props: Props): React.Node {
103
100
  );
104
101
  }
105
102
 
106
- function AppInfo() {
103
+ component AppInfo() {
107
104
  const appInfo = LogBoxData.getAppInfo();
108
105
  if (appInfo == null) {
109
106
  return null;
@@ -17,7 +17,7 @@ import LogBoxInspectorFooterButton from './LogBoxInspectorFooterButton';
17
17
  import * as LogBoxStyle from './LogBoxStyle';
18
18
  import * as React from 'react';
19
19
 
20
- type Props = $ReadOnly<{
20
+ type Props = Readonly<{
21
21
  onDismiss: () => void,
22
22
  onMinimize: () => void,
23
23
  level?: ?LogLevel,
@@ -16,7 +16,7 @@ import LogBoxButton from './LogBoxButton';
16
16
  import * as LogBoxStyle from './LogBoxStyle';
17
17
  import * as React from 'react';
18
18
 
19
- type ButtonProps = $ReadOnly<{
19
+ type ButtonProps = Readonly<{
20
20
  id: string,
21
21
  onPress: () => void,
22
22
  text: string,
@@ -20,7 +20,7 @@ import LogBoxInspectorHeaderButton from './LogBoxInspectorHeaderButton';
20
20
  import * as LogBoxStyle from './LogBoxStyle';
21
21
  import * as React from 'react';
22
22
 
23
- type Props = $ReadOnly<{
23
+ type Props = Readonly<{
24
24
  onSelectIndex: (selectedIndex: number) => void,
25
25
  selectedIndex: number,
26
26
  total: number,
@@ -20,7 +20,7 @@ import LogBoxInspectorHeaderButton from './LogBoxInspectorHeaderButton';
20
20
  import * as LogBoxStyle from './LogBoxStyle';
21
21
  import * as React from 'react';
22
22
 
23
- type Props = $ReadOnly<{
23
+ type Props = Readonly<{
24
24
  onSelectIndex: (selectedIndex: number) => void,
25
25
  selectedIndex: number,
26
26
  total: number,
@@ -38,7 +38,7 @@ const backgroundForLevel = (level: LogLevel) =>
38
38
  })[level];
39
39
 
40
40
  export default function LogBoxInspectorHeaderButton(
41
- props: $ReadOnly<{
41
+ props: Readonly<{
42
42
  id: string,
43
43
  disabled: boolean,
44
44
  image: ImageSource,