react-native-windows 0.80.1 → 0.81.0-preview.4
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.
- package/.flowconfig +10 -5
- package/Directory.Build.props +1 -1
- package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
- package/Libraries/Alert/Alert.js +3 -3
- package/Libraries/Alert/Alert.windows.js +5 -2
- package/Libraries/Alert/NativeAlertManager.js +1 -0
- package/Libraries/Alert/RCTAlertManager.android.js +19 -13
- package/Libraries/Alert/RCTAlertManager.ios.js +10 -12
- package/Libraries/Alert/RCTAlertManager.js +1 -3
- package/Libraries/Alert/RCTAlertManager.js.flow +5 -7
- package/Libraries/Animated/Animated.js +0 -1
- package/Libraries/Animated/Animated.js.flow +0 -1
- package/Libraries/Animated/AnimatedEvent.js +4 -3
- package/Libraries/Animated/AnimatedExports.js +0 -1
- package/Libraries/Animated/AnimatedExports.js.flow +5 -1
- package/Libraries/Animated/AnimatedImplementation.js +44 -44
- package/Libraries/Animated/AnimatedMock.js +2 -2
- package/Libraries/Animated/Easing.js +1 -1
- package/Libraries/Animated/NativeAnimatedModule.js +1 -0
- package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
- package/Libraries/Animated/SpringConfig.js +1 -1
- package/Libraries/Animated/animations/Animation.js +10 -2
- package/Libraries/Animated/components/AnimatedScrollView.js +58 -56
- package/Libraries/Animated/components/AnimatedText.js +2 -5
- package/Libraries/Animated/components/AnimatedView.js +2 -1
- package/Libraries/Animated/createAnimatedComponent.js +39 -37
- package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +31 -4
- package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
- package/Libraries/AppState/NativeAppState.js +1 -0
- package/Libraries/AppTheme/AppTheme.js +1 -1
- package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -1
- package/Libraries/Blob/BlobManager.js +4 -0
- package/Libraries/Blob/NativeBlobModule.js +1 -0
- package/Libraries/Blob/NativeFileReaderModule.js +1 -0
- package/Libraries/Blob/URL.js +1 -1
- package/Libraries/Blob/URLSearchParams.js +5 -1
- package/Libraries/Blob/URLSearchParams.js.flow +2 -1
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -2
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +1 -2
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
- package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.windows.js +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +19 -19
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
- package/Libraries/Components/Button.js +10 -7
- package/Libraries/Components/Button.windows.js +4 -4
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/Clipboard/NativeClipboard.js +1 -2
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +2 -3
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
- package/Libraries/Components/Flyout/FlyoutNativeComponent.js +1 -1
- package/Libraries/Components/Glyph/GlyphNativeComponent.js +1 -1
- package/Libraries/Components/Keyboard/Keyboard.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
- package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -2
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
- package/Libraries/Components/Popup/PopupNativeComponent.js +1 -1
- package/Libraries/Components/Pressable/Pressable.js +17 -8
- package/Libraries/Components/Pressable/Pressable.windows.js +17 -14
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +2 -3
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +2 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +2 -3
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +9 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +3 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -3
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +33 -6
- package/Libraries/Components/ScrollView/ScrollView.js +25 -15
- package/Libraries/Components/ScrollView/ScrollView.windows.js +25 -14
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
- package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
- package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
- package/Libraries/Components/Sound/NativeSoundManager.js +1 -2
- package/Libraries/Components/Sound/SoundManager.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -2
- package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -2
- package/Libraries/Components/StatusBar/StatusBar.d.ts +4 -0
- package/Libraries/Components/StatusBar/StatusBar.js +6 -1
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +2 -3
- package/Libraries/Components/Switch/Switch.js +10 -3
- package/Libraries/Components/Switch/Switch.windows.js +10 -3
- package/Libraries/Components/Switch/SwitchNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +9 -24
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +2 -3
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
- package/Libraries/Components/TextInput/TextInput.flow.js +13 -15
- package/Libraries/Components/TextInput/TextInput.flow.windows.js +12 -15
- package/Libraries/Components/TextInput/TextInput.js +42 -39
- package/Libraries/Components/TextInput/TextInput.windows.js +69 -38
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -17
- package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -2
- package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
- package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
- package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
- package/Libraries/Components/Touchable/PooledClass.js +1 -1
- package/Libraries/Components/Touchable/Position.js +1 -1
- package/Libraries/Components/Touchable/Touchable.js +17 -3
- package/Libraries/Components/Touchable/Touchable.windows.js +17 -3
- package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +9 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +14 -5
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +14 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +5 -3
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +5 -3
- package/Libraries/Components/Touchable/TouchableOpacity.d.ts +1 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +10 -5
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +10 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +3 -3
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +2 -3
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +7 -16
- package/Libraries/Components/View/View.js +114 -29
- package/Libraries/Components/View/View.windows.js +261 -217
- package/Libraries/Components/View/ViewAccessibility.js +1 -8
- package/Libraries/Components/View/ViewAccessibility.windows.js +1 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +21 -1
- package/Libraries/Components/View/ViewPropTypes.js +9 -1
- package/Libraries/Components/View/ViewPropTypes.windows.js +9 -1
- package/Libraries/Core/Devtools/getDevServer.js +1 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
- package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +49 -7
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
- package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
- package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
- package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
- package/Libraries/Core/ExceptionsManager.js +27 -16
- package/Libraries/Core/InitializeCore.js +2 -23
- package/Libraries/Core/NativeExceptionsManager.js +1 -0
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -2
- package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/NativeTiming.js +1 -0
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/checkNativeVersion.js +1 -0
- package/Libraries/Core/setUpDeveloperTools.js +13 -11
- package/Libraries/Core/setUpReactDevTools.js +21 -4
- package/Libraries/Debugging/DebuggingOverlay.js +12 -14
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +2 -1
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +3 -3
- package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
- package/Libraries/Image/AssetRegistry.js +4 -10
- package/Libraries/Image/Image.android.js +113 -107
- package/Libraries/Image/Image.ios.js +10 -2
- package/Libraries/Image/Image.windows.js +30 -20
- package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/ImageSource.d.ts +5 -0
- package/Libraries/Image/ImageViewNativeComponent.js +3 -3
- package/Libraries/Image/NativeImageEditor.js +1 -0
- package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
- package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
- package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
- package/Libraries/Image/NativeImageStoreIOS.js +1 -0
- package/Libraries/Image/RelativeImageStub.js +2 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +4 -4
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Image/resolveAssetSource.windows.js +1 -1
- package/Libraries/Interaction/FrameRateLogger.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +64 -54
- package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
- package/Libraries/Interaction/TaskQueue.js +8 -9
- package/Libraries/Interaction/TouchHistoryMath.js +1 -1
- package/Libraries/LayoutAnimation/LayoutAnimation.js +12 -8
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Linking/NativeIntentAndroid.js +1 -0
- package/Libraries/Linking/NativeLinkingManager.js +1 -0
- package/Libraries/Lists/FlatList.d.ts +9 -5
- package/Libraries/Lists/FlatList.js +6 -7
- package/Libraries/Lists/SectionList.js +4 -4
- package/Libraries/Lists/SectionListModern.js +9 -3
- package/Libraries/Lists/VirtualizedList.js +3 -2
- package/Libraries/LogBox/Data/LogBoxData.js +7 -4
- package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
- package/Libraries/LogBox/LogBox.js +72 -99
- package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
- package/Libraries/Modal/Modal.d.ts +8 -2
- package/Libraries/Modal/Modal.js +24 -3
- package/Libraries/Modal/Modal.windows.js +24 -3
- package/Libraries/Modal/NativeModalManager.js +1 -0
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +21 -18
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -17
- package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +9 -18
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
- package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
- package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
- package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
- package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
- package/Libraries/NativeModules/specs/NativeDialogManagerWindows.js +1 -0
- package/Libraries/NativeModules/specs/NativeLogBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
- package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
- package/Libraries/Network/FormData.js +1 -1
- package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
- package/Libraries/Network/NativeNetworkingIOS.js +1 -0
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.js.flow +1 -1
- package/Libraries/Network/RCTNetworking.windows.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +3 -3
- package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -3
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Pressability/Pressability.windows.js +1 -1
- package/Libraries/Promise.js +1 -1
- package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
- package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
- package/Libraries/ReactNative/AppContainer-dev.js +4 -4
- package/Libraries/ReactNative/AppContainer-prod.js +0 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.flow.js +2 -2
- package/Libraries/ReactNative/AppRegistryImpl.js +2 -13
- package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
- package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
- package/Libraries/ReactNative/NativeI18nManager.js +1 -0
- package/Libraries/ReactNative/NativeUIManager.js +1 -0
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +81 -62
- package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
- package/Libraries/ReactNative/RendererImplementation.js +1 -1
- package/Libraries/ReactNative/RendererProxy.js +1 -1
- package/Libraries/ReactNative/RootTag.js +2 -2
- package/Libraries/ReactNative/renderApplication.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +3 -3
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -36
- package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +261 -0
- package/Libraries/Settings/NativeSettingsManager.js +1 -0
- package/Libraries/Settings/Settings.ios.js +1 -1
- package/Libraries/Settings/Settings.js +1 -1
- package/Libraries/Settings/SettingsFallback.js +1 -1
- package/Libraries/Share/NativeShareModule.js +1 -0
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
- package/Libraries/StyleSheet/PointPropType.js +1 -1
- package/Libraries/StyleSheet/Rect.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -0
- package/Libraries/StyleSheet/StyleSheetTypes.js +0 -1
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processAspectRatio.js +1 -1
- package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
- package/Libraries/StyleSheet/processBoxShadow.js +0 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/StyleSheet/processColorArray.js +1 -1
- package/Libraries/StyleSheet/processFilter.js +1 -2
- package/Libraries/StyleSheet/processFontVariant.js +1 -1
- package/Libraries/StyleSheet/processTransform.js +1 -1
- package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
- package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
- package/Libraries/Text/Text.d.ts +1 -2
- package/Libraries/Text/Text.js +255 -246
- package/Libraries/Text/Text.windows.js +282 -301
- package/Libraries/Text/TextAncestor.js +3 -9
- package/Libraries/Text/TextAncestorContext.js +23 -0
- package/Libraries/Text/TextNativeComponent.js +4 -0
- package/Libraries/Text/TextProps.js +2 -5
- package/Libraries/Text/TextProps.windows.js +2 -6
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CodegenTypesNamespace.js +2 -1
- package/Libraries/Types/CoreEventTypes.d.ts +4 -0
- package/Libraries/Types/ReactDevToolsTypes.js +0 -1
- package/Libraries/Utilities/Appearance.js +1 -1
- package/Libraries/Utilities/BackHandler.js.flow +1 -1
- package/Libraries/Utilities/DevLoadingView.js +1 -1
- package/Libraries/Utilities/DeviceInfo.js +1 -1
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/HMRClient.js +13 -3
- package/Libraries/Utilities/HMRClientProdShim.js +1 -1
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
- package/Libraries/Utilities/NativeDeviceInfo.js +1 -2
- package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
- package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
- package/Libraries/Utilities/PixelRatio.js +1 -1
- package/Libraries/Utilities/Platform.android.js +2 -5
- package/Libraries/Utilities/Platform.ios.js +2 -5
- package/Libraries/Utilities/Platform.js +1 -1
- package/Libraries/Utilities/Platform.js.flow +2 -2
- package/Libraries/Utilities/Platform.windows.js +2 -5
- package/Libraries/Utilities/PlatformTypes.js +2 -2
- package/Libraries/Utilities/RCTLog.js +1 -1
- package/Libraries/Utilities/SceneTracker.js +1 -1
- package/Libraries/Utilities/binaryToBase64.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +5 -3
- package/Libraries/Utilities/codegenNativeComponent.js +4 -4
- package/Libraries/Utilities/createPerformanceLogger.js +27 -20
- package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
- package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
- package/Libraries/Utilities/differ/deepDiffer.js +1 -1
- package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
- package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
- package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
- package/Libraries/Utilities/logError.js +1 -1
- package/Libraries/Utilities/mapWithSeparator.js +1 -1
- package/Libraries/Utilities/stringifySafe.js +1 -1
- package/Libraries/Utilities/stringifyViewConfig.js +1 -1
- package/Libraries/Utilities/useColorScheme.js +1 -1
- package/Libraries/Utilities/useWindowDimensions.js +1 -1
- package/Libraries/Utilities/warnOnce.js +1 -1
- package/Libraries/Vibration/NativeVibration.js +1 -0
- package/Libraries/Vibration/Vibration.js +1 -2
- package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
- package/Libraries/WebSocket/WebSocket.js +1 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.js +6 -6
- package/Microsoft.ReactNative/CompositionSwitcher.idl +163 -162
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +3 -3
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.h +3 -3
- package/Microsoft.ReactNative/Fabric/AbiShadowNode.cpp +2 -1
- package/Microsoft.ReactNative/Fabric/AbiShadowNode.h +2 -2
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +3 -3
- package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.cpp +2 -1
- package/Microsoft.ReactNative/Fabric/AbiViewShadowNode.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +104 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +18 -7
- package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.cpp +169 -0
- package/Microsoft.ReactNative/Fabric/Composition/DebuggerUIIsland.h +42 -0
- package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +41 -33
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +68 -1
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +9 -0
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +19 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +3 -3
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +108 -24
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +1 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +21 -17
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +4 -4
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.cpp +19 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputState.h +76 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -1
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/HostPlatformColor.h +6 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +62 -39
- package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.cpp +75 -24
- package/Microsoft.ReactNative/Fabric/platform/react/threading/TaskDispatchThread.h +4 -25
- package/Microsoft.ReactNative/JsiApi.cpp +1 -1
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +3 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +0 -2
- package/Microsoft.ReactNative/Modules/AppThemeModuleUwp.cpp +0 -1
- package/Microsoft.ReactNative/Modules/CreateModules.cpp +0 -3
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +27 -11
- package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +19 -2
- package/Microsoft.ReactNative/QuirkSettings.cpp +16 -0
- package/Microsoft.ReactNative/QuirkSettings.h +3 -0
- package/Microsoft.ReactNative/QuirkSettings.idl +5 -0
- package/Microsoft.ReactNative/ReactHost/DebuggerNotifications.h +54 -0
- package/Microsoft.ReactNative/ReactHost/React.h +11 -4
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +199 -29
- package/Microsoft.ReactNative/ReactHost/ReactHost.h +22 -4
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +68 -52
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +108 -0
- package/Microsoft.ReactNative/ReactRootView.h +6 -0
- package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +1 -0
- package/Microsoft.ReactNative/Views/DevMenu.cpp +1 -1
- package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +36 -8
- package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +6 -2
- package/Microsoft.ReactNative/Views/ViewManager.h +0 -1
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +9 -1
- package/Microsoft.ReactNative.Cxx/JSI/decorator.h +41 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +16 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +125 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.h +167 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +2 -2
- package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +110 -38
- package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +5 -5
- package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +0 -2
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +0 -19
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +45 -34
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +1 -1
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +1 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +36 -33
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +10 -10
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +14 -8
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +44 -31
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +13 -14
- package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +19 -4
- package/Microsoft.ReactNative.Cxx/node-api/node_api.h +270 -0
- package/Microsoft.ReactNative.Cxx/node-api/node_api_types.h +52 -0
- package/Mso/src/dispatchQueue/threadPoolScheduler_win.cpp +13 -4
- package/PropertySheets/External/Microsoft.ReactNative.Cpp.Dependencies.props +10 -0
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/JSEngine.props +1 -1
- package/PropertySheets/React.Cpp.props +6 -4
- package/README.md +1 -1
- package/ReactCommon/ReactCommon.vcxproj +29 -21
- package/ReactCommon/ReactCommon.vcxproj.filters +36 -13
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +5 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +6 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +111 -7
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +57 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +17 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +175 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/Bridging.h +1 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.cpp +69 -56
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +35 -18
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +445 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +92 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +35 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +37 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +250 -80
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +528 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +1 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/reactperflogger/reactperflogger/ReactPerfettoLogger.cpp +9 -12
- package/ReactCommon/cgmanifest.json +1 -1
- package/Scripts/Analyze-Crash.ps1 +87 -3
- package/Scripts/OfficeReact.Win32.nuspec +0 -1
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +2 -0
- package/Scripts/Tfs/Start-TestServers.ps1 +2 -1
- package/Scripts/creaternwapp.cmd +10 -6
- package/Scripts/rnw-dependencies.ps1 +33 -4
- package/Shared/CreateModules.h +0 -35
- package/Shared/DevServerHelper.h +13 -3
- package/Shared/DevSettings.h +6 -5
- package/Shared/DevSupportManager.cpp +79 -20
- package/Shared/DevSupportManager.h +7 -19
- package/Shared/Hermes/HermesRuntimeAgentDelegate.cpp +99 -0
- package/Shared/Hermes/HermesRuntimeAgentDelegate.h +81 -0
- package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +274 -0
- package/Shared/Hermes/HermesRuntimeTargetDelegate.h +77 -0
- package/Shared/HermesRuntimeHolder.cpp +29 -111
- package/Shared/HermesRuntimeHolder.h +214 -32
- package/Shared/IDevSupportManager.h +5 -2
- package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.cpp +108 -0
- package/Shared/Inspector/ReactInspectorPackagerConnectionDelegate.h +19 -0
- package/Shared/Inspector/ReactInspectorThread.h +18 -0
- package/Shared/JSI/RuntimeHolder.h +5 -2
- package/Shared/Modules/BlobModule.cpp +0 -90
- package/Shared/Modules/BlobModule.h +0 -40
- package/Shared/Modules/FileReaderModule.cpp +0 -104
- package/Shared/Modules/FileReaderModule.h +0 -38
- package/Shared/Modules/HttpModule.cpp +0 -172
- package/Shared/Modules/HttpModule.h +0 -47
- package/Shared/Modules/WebSocketModule.cpp +0 -287
- package/Shared/Modules/WebSocketModule.h +1 -94
- package/Shared/OInstance.cpp +45 -139
- package/Shared/OInstance.h +0 -1
- package/Shared/Shared.vcxitems +33 -32
- package/Shared/Shared.vcxitems.filters +38 -51
- package/Shared/TurboModuleManager.cpp +0 -1
- package/codegen/NativeDOMSpec.g.h +6 -0
- package/codegen/NativeDeviceInfoSpec.g.h +2 -0
- package/codegen/NativeIntersectionObserverSpec.g.h +19 -5
- package/codegen/NativeMutationObserverSpec.g.h +4 -4
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +159 -93
- package/codegen/react/components/rnwcore/EventEmitters.cpp +25 -0
- package/codegen/react/components/rnwcore/EventEmitters.h +25 -0
- package/codegen/react/components/rnwcore/ModalHostView.g.h +4 -0
- package/codegen/react/components/rnwcore/Props.cpp +535 -24
- package/codegen/react/components/rnwcore/Props.h +138 -0
- package/codegen/react/components/rnwcore/States.h +9 -78
- package/codegen/react/components/rnwcore/VirtualView.g.h +226 -0
- package/codegen/rnwcoreJSI-generated.cpp +101 -31
- package/codegen/rnwcoreJSI.h +169 -88
- package/include/Shared/II18nModule.h +0 -1
- package/index.js +22 -2
- package/index.windows.js +131 -221
- package/interface.js +1 -1
- package/jest/MockNativeMethods.js +9 -3
- package/jest/RefreshControlMock.js +32 -0
- package/jest/assetFileTransformer.js +1 -0
- package/jest/local-setup.js +4 -3
- package/jest/mock.js +39 -0
- package/jest/mockComponent.js +47 -17
- package/jest/mockNativeComponent.js +26 -15
- package/jest/mocks/AccessibilityInfo.js +62 -0
- package/jest/mocks/ActivityIndicator.js +23 -0
- package/jest/mocks/AppState.js +19 -0
- package/jest/mocks/Clipboard.js +16 -0
- package/jest/mocks/Image.js +23 -0
- package/jest/mocks/InitializeCore.js +9 -0
- package/jest/mocks/Linking.js +28 -0
- package/jest/mocks/Modal.js +33 -0
- package/jest/mocks/NativeComponentRegistry.js +30 -0
- package/jest/mocks/NativeModules.js +239 -0
- package/jest/mocks/RefreshControl.js +31 -0
- package/jest/mocks/RendererProxy.js +45 -0
- package/jest/mocks/ScrollView.js +58 -0
- package/jest/mocks/Text.js +27 -0
- package/jest/mocks/TextInput.js +32 -0
- package/jest/mocks/UIManager.js +60 -0
- package/jest/mocks/Vibration.js +16 -0
- package/jest/mocks/View.js +27 -0
- package/jest/mocks/ViewNativeComponent.js +23 -0
- package/jest/mocks/requireNativeComponent.js +22 -0
- package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
- package/jest/react-native-env.js +1 -0
- package/jest/renderer.js +1 -2
- package/jest/resolver.js +1 -0
- package/jest/setup.js +64 -449
- package/package.json +24 -24
- package/src/private/animated/NativeAnimatedHelper.js +8 -1
- package/src/private/animated/createAnimatedPropsHook.js +14 -4
- package/src/private/animated/createAnimatedPropsMemoHook.js +2 -3
- package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
- package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
- package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
- package/src/private/components/virtualview/VirtualView.js +145 -0
- package/src/private/components/virtualview/VirtualViewNativeComponent.js +90 -0
- package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
- package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
- package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
- package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
- package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.windows.js +8 -9
- package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
- package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +88 -8
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +15 -3
- package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
- package/src/private/setup/setUpPerformanceObserver.js +7 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +8 -5
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/components/AndroidSwitchNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/DebuggingOverlayNativeComponent.js +5 -4
- package/src/private/specs_DEPRECATED/components/ProgressBarAndroidNativeComponent.js +7 -4
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +10 -7
- package/src/private/specs_DEPRECATED/components/RCTInputAccessoryViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +15 -6
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +9 -6
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +5 -5
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +4 -4
- package/src/private/specs_DEPRECATED/modules/NativeDeviceInfo.js +1 -0
- package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeUIManager.js +9 -6
- package/src/private/styles/composeStyles.js +5 -12
- package/src/private/types/HostInstance.js +1 -1
- package/src/private/webapis/dom/events/Event.js +3 -0
- package/src/private/webapis/dom/events/EventTarget.js +3 -0
- package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
- package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
- package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
- package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
- package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
- package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
- package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
- package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
- package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
- package/src/private/webapis/errors/DOMException.js +166 -0
- package/src/private/webapis/geometry/DOMRect.js +5 -0
- package/src/private/webapis/geometry/DOMRectList.js +4 -1
- package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
- package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +4 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +15 -7
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +83 -18
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +12 -0
- package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
- package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
- package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
- package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
- package/src/private/webapis/performance/EventTiming.js +1 -1
- package/src/private/webapis/performance/LongTasks.js +1 -1
- package/src/private/webapis/performance/MemoryInfo.js +4 -1
- package/src/private/webapis/performance/Performance.js +20 -9
- package/src/private/webapis/performance/PerformanceEntry.js +5 -1
- package/src/private/webapis/performance/PerformanceObserver.js +32 -28
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
- package/src/private/webapis/performance/ResourceTiming.js +108 -0
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +50 -33
- package/src/private/webapis/performance/internals/Utilities.js +1 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +1 -1
- package/src/private/webapis/structuredClone/structuredClone.js +233 -0
- package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
- package/src/private/webapis/webidl/PlatformObjects.js +59 -0
- package/template/metro.config.js +2 -4
- package/templates/cpp-app/metro.config.js +2 -4
- package/templates/cpp-lib/example/metro.config.js +2 -3
- package/templates/cpp-lib/template.config.js +24 -0
- package/templates/cpp-lib/windows/MyLib/MyLib.h +20 -1
- package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +0 -1
- package/types/modules/Devtools.d.ts +23 -9
- package/Libraries/BugReporting/BugReporting.js +0 -140
- package/Libraries/BugReporting/NativeBugReporting.js +0 -13
- package/Libraries/BugReporting/dumpReactTree.js +0 -151
- package/Libraries/BugReporting/getReactData.js +0 -187
- package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +0 -78
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -196
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jserrorhandler/JsErrorHandler.cpp +0 -429
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.cpp +0 -45
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsitooling/react/runtime/JSRuntimeFactory.h +0 -91
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/CullingContext.cpp +0 -49
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mounting/internal/sliceChildShadowNodeViewPairs.cpp +0 -191
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +0 -670
- package/Shared/InspectorPackagerConnection.cpp +0 -232
- package/Shared/InspectorPackagerConnection.h +0 -61
- package/Shared/Modules/ExceptionsManagerModule.cpp +0 -209
- package/Shared/Modules/ExceptionsManagerModule.h +0 -32
- package/Shared/Modules/I18nModule.cpp +0 -36
- package/Shared/Modules/I18nModule.h +0 -28
- package/Shared/Modules/NetworkingModule.cpp +0 -432
- package/Shared/Modules/NetworkingModule.h +0 -34
- package/Shared/Modules/PlatformConstantsModule.cpp +0 -60
- package/Shared/Modules/PlatformConstantsModule.h +0 -23
- package/Shared/Modules/SourceCodeModule.cpp +0 -35
- package/Shared/Modules/SourceCodeModule.h +0 -27
- package/Shared/Modules/StatusBarManagerModule.cpp +0 -25
- package/Shared/Modules/StatusBarManagerModule.h +0 -19
- package/codegen/NativeBugReportingSpec.g.h +0 -41
- package/jest/mockModal.js +0 -32
- package/jest/mockScrollView.js +0 -35
- package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +0 -20
- /package/Shared/{HermesSamplingProfiler.cpp → Hermes/HermesSamplingProfiler.cpp} +0 -0
- /package/Shared/{HermesSamplingProfiler.h → Hermes/HermesSamplingProfiler.h} +0 -0
|
@@ -67,7 +67,28 @@ if ($ExeName) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
Write-Host Analyzing crash dump $DumpFilePath
|
|
70
|
-
|
|
70
|
+
|
|
71
|
+
# First, do a quick check to see if this is a /GS crash (STATUS_STACK_BUFFER_OVERRUN, 0xc0000409)
|
|
72
|
+
$gsCheckLogfile = "$env:TEMP\gs_check.log"
|
|
73
|
+
& $cdb -z "$DumpFilePath" -c ".lastevent; q" > $gsCheckLogfile 2>&1
|
|
74
|
+
$isGSCrash = $false
|
|
75
|
+
if (Test-Path $gsCheckLogfile) {
|
|
76
|
+
$content = Get-Content $gsCheckLogfile -Raw
|
|
77
|
+
if ($content -match "c0000409|STATUS_STACK_BUFFER_OVERRUN") {
|
|
78
|
+
$isGSCrash = $true
|
|
79
|
+
Write-Host -ForegroundColor Yellow "`n*** DETECTED /GS STACK BUFFER OVERRUN CRASH (0xc0000409) ***"
|
|
80
|
+
Write-Host -ForegroundColor Yellow "This is a security-related crash that requires immediate attention.`n"
|
|
81
|
+
}
|
|
82
|
+
Remove-Item $gsCheckLogfile -ErrorAction SilentlyContinue
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
# Run analysis with !gs extension for /GS crashes
|
|
86
|
+
if ($isGSCrash) {
|
|
87
|
+
Write-Host "Running detailed /GS crash analysis..."
|
|
88
|
+
& $cdb -z "$DumpFilePath" -c ".lines; !analyze -v; !gs; .ecxr; kP; q" > $logfile
|
|
89
|
+
} else {
|
|
90
|
+
& $cdb -z "$DumpFilePath" -c ".lines; !analyze -v; .ecxr; kP; q" > $logfile
|
|
91
|
+
}
|
|
71
92
|
|
|
72
93
|
if ($LASTEXITCODE -ne 0) {
|
|
73
94
|
Write-Output "Failed to analyze the crash dump. Exiting"
|
|
@@ -82,10 +103,35 @@ if (!(Test-Path $logfile)) {
|
|
|
82
103
|
exit 4
|
|
83
104
|
}
|
|
84
105
|
|
|
106
|
+
# Check for /GS crash indicators in the analysis
|
|
107
|
+
$analysisContent = Get-Content $logfile -Raw
|
|
108
|
+
$gsClassification = "Unknown"
|
|
109
|
+
|
|
110
|
+
if ($analysisContent -match "GS_POSITIVE") {
|
|
111
|
+
$gsClassification = "GS_POSITIVE (High-confidence stack buffer overrun)"
|
|
112
|
+
Write-Host -ForegroundColor Red "`n*** HIGH-CONFIDENCE /GS CRASH DETECTED ***"
|
|
113
|
+
Write-Host -ForegroundColor Red "Problem Class: GS_POSITIVE"
|
|
114
|
+
Write-Host -ForegroundColor Red "This is a confirmed stack buffer overrun that MUST be fixed immediately."
|
|
115
|
+
Write-Host -ForegroundColor Red "Per SDL policy, this must be analyzed and fixed within 60 days.`n"
|
|
116
|
+
} elseif ($analysisContent -match "GS_SUSPECT") {
|
|
117
|
+
$gsClassification = "GS_SUSPECT (Suspected stack buffer overrun)"
|
|
118
|
+
Write-Host -ForegroundColor Yellow "`n*** SUSPECTED /GS CRASH DETECTED ***"
|
|
119
|
+
Write-Host -ForegroundColor Yellow "Problem Class: GS_SUSPECT"
|
|
120
|
+
Write-Host -ForegroundColor Yellow "This is a suspected stack buffer overrun that should be investigated.`n"
|
|
121
|
+
} elseif ($analysisContent -match "GS_FALSE_POSITIVE") {
|
|
122
|
+
$gsClassification = "GS_FALSE_POSITIVE (Can be safely ignored)"
|
|
123
|
+
Write-Host -ForegroundColor Green "`n/GS False Positive Detected"
|
|
124
|
+
Write-Host -ForegroundColor Green "Problem Class: GS_FALSE_POSITIVE - This can be safely ignored.`n"
|
|
125
|
+
} elseif ($isGSCrash) {
|
|
126
|
+
Write-Host -ForegroundColor Yellow "`n/GS crash detected but classification not determined."
|
|
127
|
+
Write-Host -ForegroundColor Yellow "Manual review of the crash dump is recommended.`n"
|
|
128
|
+
}
|
|
129
|
+
|
|
85
130
|
Get-Content $logfile | & "${env:SystemRoot}\System32\clip.exe"
|
|
86
131
|
|
|
87
132
|
Write-Host "
|
|
88
133
|
Written analysis to $PWD\$logfile
|
|
134
|
+
/GS Classification: $gsClassification
|
|
89
135
|
|
|
90
136
|
The contents have been copied to the clipboard.
|
|
91
137
|
If you wish to file a bug, please paste its contents in inside of a <details>...</details> tag.
|
|
@@ -93,15 +139,53 @@ You may also upload the file $DumpFilePath and associated .pdb symbol files to y
|
|
|
93
139
|
|
|
94
140
|
"
|
|
95
141
|
|
|
142
|
+
if ($gsClassification -eq "GS_POSITIVE (High-confidence stack buffer overrun)") {
|
|
143
|
+
Write-Host -ForegroundColor Red @"
|
|
144
|
+
|
|
145
|
+
===============================================================================
|
|
146
|
+
SDL POLICY REQUIREMENT: HIGH-CONFIDENCE /GS CRASH
|
|
147
|
+
===============================================================================
|
|
148
|
+
Per Microsoft SDL policy, this crash MUST be:
|
|
149
|
+
1. Analyzed and triaged immediately
|
|
150
|
+
2. Fixed within 60 days of being reported to Watson
|
|
151
|
+
3. Reported as a security vulnerability if exploitable
|
|
152
|
+
|
|
153
|
+
Action Items:
|
|
154
|
+
- Review the !gs analysis output in $logfile
|
|
155
|
+
- Identify the buffer overrun location and root cause
|
|
156
|
+
- File a security bug if this is exploitable
|
|
157
|
+
- Implement and test a fix
|
|
158
|
+
|
|
159
|
+
For more information, see: https://aka.ms/watson
|
|
160
|
+
===============================================================================
|
|
161
|
+
|
|
162
|
+
"@
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
|
|
96
166
|
Write-Warning "Note: the contents of $logfile, crash dump, and symbol files, might contain personally identifiable information. Please carefully review these contents before sharing them."
|
|
97
167
|
|
|
98
168
|
start notepad.exe $logfile
|
|
99
169
|
|
|
100
170
|
function FileIssue {
|
|
101
171
|
# We can't populate the !analyze output because the URL ends up being too long and GitHub rejects it. Following up internally but at least we can prepopulate the <details> tags etc.
|
|
102
|
-
|
|
172
|
+
|
|
173
|
+
$issueTitle = "[Crash] ENTER TITLE HERE"
|
|
174
|
+
$labels = "bug"
|
|
175
|
+
|
|
176
|
+
if ($gsClassification -eq "GS_POSITIVE (High-confidence stack buffer overrun)") {
|
|
177
|
+
$issueTitle = "[Security] /GS High-Confidence Stack Buffer Overrun"
|
|
178
|
+
$labels = "bug,security"
|
|
179
|
+
} elseif ($gsClassification -eq "GS_SUSPECT (Suspected stack buffer overrun)") {
|
|
180
|
+
$issueTitle = "[Security] /GS Suspected Stack Buffer Overrun"
|
|
181
|
+
$labels = "bug,security"
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
$title = [uri]::EscapeUriString($issueTitle)
|
|
103
185
|
$body = [uri]::EscapeUriString("ENTER YOUR ISSUE DESCRIPTION HERE
|
|
104
186
|
|
|
187
|
+
/GS Classification: $gsClassification
|
|
188
|
+
|
|
105
189
|
<details>
|
|
106
190
|
|
|
107
191
|
``````
|
|
@@ -110,7 +194,7 @@ function FileIssue {
|
|
|
110
194
|
</details>
|
|
111
195
|
")
|
|
112
196
|
|
|
113
|
-
start "https://github.com/$Repo/issues/new?title=$title&body=$body&labels
|
|
197
|
+
start "https://github.com/$Repo/issues/new?title=$title&body=$body&labels=$labels"
|
|
114
198
|
}
|
|
115
199
|
|
|
116
200
|
FileIssue
|
|
@@ -55,7 +55,6 @@
|
|
|
55
55
|
<file src="$nugetroot$\inc\Shared\LayoutAnimation.h" target="inc"/>
|
|
56
56
|
<file src="$nugetroot$\inc\Shared\Logging.h" target="inc"/>
|
|
57
57
|
<file src="$nugetroot$\inc\Shared\MemoryMappedBuffer.h" target="inc"/>
|
|
58
|
-
<file src="$nugetroot$\inc\Shared\Modules\I18nModule.h" target="inc"/>
|
|
59
58
|
<file src="$nugetroot$\inc\Shared\NativeModuleProvider.h" target="inc"/>
|
|
60
59
|
<file src="$nugetroot$\inc\Shared\Networking\IWebSocketResource.h" target="inc"/>
|
|
61
60
|
<file src="$nugetroot$\inc\Shared\Networking\OriginPolicy.h" target="inc"/>
|
|
@@ -78,6 +78,8 @@ New-Item $MSRNCxxTargetRoot\node-api -ItemType Directory -Force
|
|
|
78
78
|
Copy-Item -Force -Path $NodeApiJsiRoot\node-api\js_native_api.h -Destination $MSRNCxxTargetRoot\node-api\
|
|
79
79
|
Copy-Item -Force -Path $NodeApiJsiRoot\node-api\js_native_api_types.h -Destination $MSRNCxxTargetRoot\node-api\
|
|
80
80
|
Copy-Item -Force -Path $NodeApiJsiRoot\node-api\js_runtime_api.h -Destination $MSRNCxxTargetRoot\node-api\
|
|
81
|
+
Copy-Item -Force -Path $NodeApiJsiRoot\node-api\node_api.h -Destination $MSRNCxxTargetRoot\node-api\
|
|
82
|
+
Copy-Item -Force -Path $NodeApiJsiRoot\node-api\node_api_types.h -Destination $MSRNCxxTargetRoot\node-api\
|
|
81
83
|
|
|
82
84
|
# Microsoft.ReactNative.CXX project Node-API JSI files
|
|
83
85
|
New-Item $MSRNCxxTargetRoot\ApiLoaders -ItemType Directory -Force
|
|
@@ -16,7 +16,8 @@ Write-Host "Starting packager"
|
|
|
16
16
|
|
|
17
17
|
Set-Location -Path "$PSScriptRoot\..\.."
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
$npmCmd = (Get-Command npm.cmd -ErrorAction Stop).Source
|
|
20
|
+
Start-Process $npmCmd -PassThru `
|
|
20
21
|
-NoNewWindow `
|
|
21
22
|
-WorkingDirectory "$PSScriptRoot\..\.." `
|
|
22
23
|
-ArgumentList "run start" `
|
package/Scripts/creaternwapp.cmd
CHANGED
|
@@ -114,11 +114,14 @@ for /f "delims=" %%a in ('npm show react@%R_VERSION% version') do @set R_VERSION
|
|
|
114
114
|
set RNCLI_TEMPLATE=
|
|
115
115
|
if not "x%RN_VERSION:nightly=%"=="x%RN_VERSION%" (
|
|
116
116
|
@echo creaternwapp.cmd Override @react-native-community/template version
|
|
117
|
-
|
|
117
|
+
REM Do not change, this makes sure we always get a nightly template when still consuming a nightly RN and NOT a later "stable" template that may have been released
|
|
118
|
+
REM set RNCLI_TEMPLATE=--template "@react-native-community/template@^%RN_VERSION:~0,4%.0-"
|
|
119
|
+
REM Windows we need to manually update this with every integration #15124
|
|
120
|
+
set RNCLI_TEMPLATE=--template "@react-native-community/template@0.81.0-nightly-202565-2f67cec"
|
|
118
121
|
)
|
|
119
122
|
|
|
120
|
-
@echo creaternwapp.cmd: Creating base RN app project with: npx --yes @react-native-community/cli
|
|
121
|
-
call npx --yes @react-native-community/cli
|
|
123
|
+
@echo creaternwapp.cmd: Creating base RN app project with: npx --yes @react-native-community/cli@%RNCLI_VERSION% init %APP_NAME% --version %RN_VERSION% %RNCLI_TEMPLATE% --verbose --skip-install --install-pods false --skip-git-init true
|
|
124
|
+
call npx --yes @react-native-community/cli@%RNCLI_VERSION% init %APP_NAME% --version %RN_VERSION% %RNCLI_TEMPLATE% --verbose --skip-install --install-pods false --skip-git-init true
|
|
122
125
|
|
|
123
126
|
if %ERRORLEVEL% neq 0 (
|
|
124
127
|
@echo creaternwapp.cmd: Unable to create base RN app project
|
|
@@ -131,6 +134,7 @@ if not "x%RN_VERSION:nightly=%"=="x%RN_VERSION%" (
|
|
|
131
134
|
@echo creaternwapp.cmd Fixing react-native nightly issues
|
|
132
135
|
pwsh.exe -Command "(gc package.json) -replace '""react-native"": ""[^\*]*""', '""react-native"": ""%RN_VERSION%""' | Out-File -encoding utf8NoBOM package.json"
|
|
133
136
|
pwsh.exe -Command "(gc package.json) -replace '""@react-native/(.+-(config|preset))"": "".*""', '""@react-native/$1"": ""%RN_VERSION%""' | Out-File -encoding utf8NoBOM package.json"
|
|
137
|
+
pwsh.exe -Command "(gc package.json) -replace '""@react-native/new-app-screen"": "".*""', '""@react-native/new-app-screen"": ""%RN_VERSION%""' | Out-File -encoding utf8NoBOM package.json"
|
|
134
138
|
pwsh.exe -Command "(gc package.json) -replace '""@react-native-community/cli((-platform-)?(ios|android))?"": "".*""', '""@react-native-community/cli$1"": ""%RNCLI_VERSION%""' | Out-File -encoding utf8NoBOM package.json"
|
|
135
139
|
)
|
|
136
140
|
|
|
@@ -140,7 +144,7 @@ call yarn install
|
|
|
140
144
|
@echo creaternwapp.cmd: Creating commit to save current state
|
|
141
145
|
if not exist ".git\" call git init .
|
|
142
146
|
call git add .
|
|
143
|
-
call git commit -m "npx --yes @react-native-community/cli
|
|
147
|
+
call git commit -m "npx --yes @react-native-community/cli@%RNCLI_VERSION% init %APP_NAME% --version %RN_VERSION% %RNCLI_TEMPLATE% --verbose --skip-install --install-pods false --skip-git-init true"
|
|
144
148
|
|
|
145
149
|
if %USE_VERDACCIO% equ 1 (
|
|
146
150
|
@echo creaternwapp.cmd: Setting yarn to use verdaccio at http://localhost:4873
|
|
@@ -171,8 +175,8 @@ call yarn install
|
|
|
171
175
|
call git add .
|
|
172
176
|
call git commit -m "add rnw dependency"
|
|
173
177
|
|
|
174
|
-
@echo creaternwapp.cmd Running init-windows with: npx --yes @react-native-community/cli
|
|
175
|
-
call npx --yes @react-native-community/cli
|
|
178
|
+
@echo creaternwapp.cmd Running init-windows with: npx --yes @react-native-community/cli@%RNCLI_VERSION% init-windows --template %RNW_TEMPLATE_TYPE% --overwrite --logging
|
|
179
|
+
call npx --yes @react-native-community/cli@%RNCLI_VERSION% init-windows --template %RNW_TEMPLATE_TYPE% --overwrite --logging
|
|
176
180
|
|
|
177
181
|
@echo creaternwapp.cmd Done, see new %RNW_TEMPLATE_TYPE% project in %CD% with react@%R_VERSION%, react-native@%RN_VERSION%, and react-native-windows@%RNW_VERSION%
|
|
178
182
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
# Troubleshoot RNW dependencies
|
|
2
3
|
param(
|
|
3
4
|
[switch]$Install = $false,
|
|
@@ -61,8 +62,36 @@ if ($tagsToInclude.Contains('rnwDev')) {
|
|
|
61
62
|
$tagsToInclude.Add('appDev') | Out-null;
|
|
62
63
|
}
|
|
63
64
|
|
|
65
|
+
# Detect processor architecture to select appropriate VC Tools component
|
|
66
|
+
$ProcessorArchitecture = $Env:Processor_Architecture
|
|
67
|
+
|
|
68
|
+
# Getting $Env:Processor_Architecture on arm64 machines will return x86. So check if the environment
|
|
69
|
+
# variable "ProgramFiles(Arm)" is also set, if it is we know the actual processor architecture is arm64.
|
|
70
|
+
# The value will also be x86 on amd64 machines when running the x86 version of PowerShell.
|
|
71
|
+
if ($ProcessorArchitecture -eq "x86")
|
|
72
|
+
{
|
|
73
|
+
if ($null -ne ${Env:ProgramFiles(Arm)})
|
|
74
|
+
{
|
|
75
|
+
$ProcessorArchitecture = "arm64"
|
|
76
|
+
}
|
|
77
|
+
elseif ($null -ne ${Env:ProgramFiles(x86)})
|
|
78
|
+
{
|
|
79
|
+
$ProcessorArchitecture = "amd64"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
# Select the appropriate VC Tools component based on processor architecture
|
|
84
|
+
if ($ProcessorArchitecture -eq "arm64")
|
|
85
|
+
{
|
|
86
|
+
$vcToolsComponent = 'Microsoft.VisualStudio.Component.VC.Tools.ARM64'
|
|
87
|
+
}
|
|
88
|
+
else
|
|
89
|
+
{
|
|
90
|
+
$vcToolsComponent = 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64'
|
|
91
|
+
}
|
|
92
|
+
|
|
64
93
|
$vsComponents = @('Microsoft.Component.MSBuild',
|
|
65
|
-
|
|
94
|
+
$vcToolsComponent,
|
|
66
95
|
'Microsoft.VisualStudio.ComponentGroup.UWP.Support',
|
|
67
96
|
'Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core',
|
|
68
97
|
'Microsoft.VisualStudio.Component.Windows10SDK.19041',
|
|
@@ -241,7 +270,7 @@ function CheckNode {
|
|
|
241
270
|
Write-Verbose "Node version found: $nodeVersion";
|
|
242
271
|
$major = $nodeVersion.Major;
|
|
243
272
|
$minor = $nodeVersion.Minor;
|
|
244
|
-
return ($major -gt
|
|
273
|
+
return ($major -gt 22) -or (($major -eq 22) -and ($minor -ge 14));
|
|
245
274
|
} catch { Write-Debug $_ }
|
|
246
275
|
|
|
247
276
|
Write-Verbose "Node not found.";
|
|
@@ -437,10 +466,10 @@ $requirements = @(
|
|
|
437
466
|
},
|
|
438
467
|
@{
|
|
439
468
|
Id=[CheckId]::Node;
|
|
440
|
-
Name = 'Node.js (LTS, >=
|
|
469
|
+
Name = 'Node.js (LTS, >= 22.0)';
|
|
441
470
|
Tags = @('appDev');
|
|
442
471
|
Valid = { CheckNode; }
|
|
443
|
-
Install = { WinGetInstall OpenJS.NodeJS.LTS "
|
|
472
|
+
Install = { WinGetInstall OpenJS.NodeJS.LTS "22.14.0" };
|
|
444
473
|
HasVerboseOutput = $true;
|
|
445
474
|
},
|
|
446
475
|
@{
|
package/Shared/CreateModules.h
CHANGED
|
@@ -3,9 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
#pragma once
|
|
5
5
|
|
|
6
|
-
// React Native
|
|
7
|
-
#include <cxxreact/CxxModule.h>
|
|
8
|
-
|
|
9
6
|
// Windows API
|
|
10
7
|
#include <winrt/Windows.Foundation.h>
|
|
11
8
|
|
|
@@ -22,40 +19,8 @@ namespace Mso::React {
|
|
|
22
19
|
struct IReactContext;
|
|
23
20
|
}
|
|
24
21
|
|
|
25
|
-
namespace facebook::react {
|
|
26
|
-
|
|
27
|
-
class MessageQueueThread;
|
|
28
|
-
|
|
29
|
-
// This method is to create a unique_ptr of native timing module.
|
|
30
|
-
// @param A MessageQueueThread on which this native module lives.
|
|
31
|
-
// @return Native timing module
|
|
32
|
-
extern std::unique_ptr<facebook::xplat::module::CxxModule> CreateTimingModule(
|
|
33
|
-
const std::shared_ptr<facebook::react::MessageQueueThread> &nativeThread) noexcept;
|
|
34
|
-
|
|
35
|
-
} // namespace facebook::react
|
|
36
|
-
|
|
37
22
|
namespace Microsoft::React {
|
|
38
23
|
|
|
39
|
-
#pragma region CxxModules
|
|
40
|
-
|
|
41
|
-
extern const char *GetHttpModuleName() noexcept;
|
|
42
|
-
extern std::unique_ptr<facebook::xplat::module::CxxModule> CreateHttpModule(
|
|
43
|
-
winrt::Windows::Foundation::IInspectable const &inspectableProperties) noexcept;
|
|
44
|
-
|
|
45
|
-
extern const char *GetWebSocketModuleName() noexcept;
|
|
46
|
-
extern std::unique_ptr<facebook::xplat::module::CxxModule> CreateWebSocketModule(
|
|
47
|
-
winrt::Windows::Foundation::IInspectable const &inspectableProperties) noexcept;
|
|
48
|
-
|
|
49
|
-
extern const char *GetBlobModuleName() noexcept;
|
|
50
|
-
extern std::unique_ptr<facebook::xplat::module::CxxModule> CreateBlobModule(
|
|
51
|
-
winrt::Windows::Foundation::IInspectable const &inspectableProperties) noexcept;
|
|
52
|
-
|
|
53
|
-
extern const char *GetFileReaderModuleName() noexcept;
|
|
54
|
-
extern std::unique_ptr<facebook::xplat::module::CxxModule> CreateFileReaderModule(
|
|
55
|
-
winrt::Windows::Foundation::IInspectable const &inspectableProperties) noexcept;
|
|
56
|
-
|
|
57
|
-
#pragma endregion CxxModules
|
|
58
|
-
|
|
59
24
|
#pragma region TurboModules
|
|
60
25
|
|
|
61
26
|
extern const wchar_t *GetBlobTurboModuleName() noexcept;
|
package/Shared/DevServerHelper.h
CHANGED
|
@@ -76,12 +76,20 @@ class DevServerHelper {
|
|
|
76
76
|
const std::string &packagerHost,
|
|
77
77
|
const uint16_t packagerPort,
|
|
78
78
|
const std::string &deviceName,
|
|
79
|
-
const std::string &packageName
|
|
79
|
+
const std::string &packageName,
|
|
80
|
+
const std::string &deviceId) {
|
|
80
81
|
return string_format(
|
|
81
82
|
InspectorDeviceUrlFormat,
|
|
82
83
|
GetDeviceLocalHost(packagerHost, packagerPort).c_str(),
|
|
83
84
|
deviceName.c_str(),
|
|
84
|
-
packageName.c_str()
|
|
85
|
+
packageName.c_str(),
|
|
86
|
+
deviceId.c_str());
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static std::string
|
|
90
|
+
get_OpenDebuggerUrl(const std::string &packagerHost, const uint16_t packagerPort, const std::string &deviceId) {
|
|
91
|
+
return string_format(
|
|
92
|
+
OpenDebuggerUrlFormat, GetDeviceLocalHost(packagerHost, packagerPort).c_str(), deviceId.c_str());
|
|
85
93
|
}
|
|
86
94
|
|
|
87
95
|
static constexpr const char DefaultPackagerHost[] = "localhost";
|
|
@@ -105,11 +113,13 @@ class DevServerHelper {
|
|
|
105
113
|
static constexpr const char PackagerConnectionUrlFormat[] = "ws://%s/message";
|
|
106
114
|
static constexpr const char PackagerStatusUrlFormat[] = "http://%s/status";
|
|
107
115
|
static constexpr const char PackagerOpenStackFrameUrlFormat[] = "https://%s/open-stack-frame";
|
|
108
|
-
static constexpr const char InspectorDeviceUrlFormat[] = "ws://%s/inspector/device?name=%s&app=%s";
|
|
116
|
+
static constexpr const char InspectorDeviceUrlFormat[] = "ws://%s/inspector/device?name=%s&app=%s&device=%s";
|
|
117
|
+
static constexpr const char OpenDebuggerUrlFormat[] = "http://%s/open-debugger?device=%s";
|
|
109
118
|
|
|
110
119
|
static constexpr const char PackagerOkStatus[] = "packager-status:running";
|
|
111
120
|
const int LongPollFailureDelayMs = 5000;
|
|
112
121
|
|
|
122
|
+
// TODO: [vmoroz] avoid using vaiadic args for the format and move it to a utility class.
|
|
113
123
|
template <typename... Args>
|
|
114
124
|
static std::string string_format(const char *format, Args... args) {
|
|
115
125
|
size_t size = snprintf(nullptr, 0, format, args...) + 1;
|
package/Shared/DevSettings.h
CHANGED
|
@@ -23,6 +23,10 @@ struct RuntimeHolderLazyInit;
|
|
|
23
23
|
namespace facebook {
|
|
24
24
|
namespace react {
|
|
25
25
|
|
|
26
|
+
namespace jsinspector_modern {
|
|
27
|
+
class HostTarget;
|
|
28
|
+
} // namespace jsinspector_modern
|
|
29
|
+
|
|
26
30
|
enum class JSIEngineOverride : int32_t {
|
|
27
31
|
Default = 0, // No JSI, will use the legacy ExecutorFactory
|
|
28
32
|
Chakra = 1, // Use the JSIExecutorFactory with ChakraRuntime
|
|
@@ -106,17 +110,14 @@ struct DevSettings {
|
|
|
106
110
|
|
|
107
111
|
bool enableDefaultCrashHandler{false};
|
|
108
112
|
|
|
109
|
-
// Transitory. Used to indicate whether or not to load networking types in the default Cxx module registry.
|
|
110
|
-
bool omitNetworkingCxxModules{false};
|
|
111
|
-
|
|
112
113
|
// OC:8368383 - Memory leak under investigation.
|
|
113
114
|
bool useWebSocketTurboModule{false};
|
|
114
115
|
|
|
115
116
|
// Enable concurrent mode by installing runtimeScheduler
|
|
116
117
|
bool useRuntimeScheduler{false};
|
|
117
118
|
|
|
118
|
-
//
|
|
119
|
-
|
|
119
|
+
// The HostTarget instance for Fusebox
|
|
120
|
+
facebook::react::jsinspector_modern::HostTarget *inspectorHostTarget;
|
|
120
121
|
};
|
|
121
122
|
|
|
122
123
|
} // namespace react
|
|
@@ -9,14 +9,19 @@
|
|
|
9
9
|
#include <Shared/DevSettings.h>
|
|
10
10
|
|
|
11
11
|
#include <Executors/WebSocketJSExecutor.h>
|
|
12
|
+
#include "Inspector/ReactInspectorPackagerConnectionDelegate.h"
|
|
12
13
|
#include "PackagerConnection.h"
|
|
13
14
|
|
|
14
15
|
#include "Unicode.h"
|
|
15
16
|
#include "Utilities.h"
|
|
16
17
|
|
|
17
18
|
#include <Utils/CppWinrtLessExceptions.h>
|
|
19
|
+
#include <jsinspector-modern/InspectorFlags.h>
|
|
18
20
|
#include <winrt/Windows.Foundation.h>
|
|
21
|
+
#include <winrt/Windows.Security.Cryptography.Core.h>
|
|
22
|
+
#include <winrt/Windows.Security.Cryptography.h>
|
|
19
23
|
#include <winrt/Windows.Storage.Streams.h>
|
|
24
|
+
#include <winrt/Windows.System.Profile.h>
|
|
20
25
|
#include <winrt/Windows.Web.Http.Filters.h>
|
|
21
26
|
#include <winrt/Windows.Web.Http.Headers.h>
|
|
22
27
|
#include <winrt/Windows.Web.Http.h>
|
|
@@ -171,6 +176,49 @@ bool IsIgnorablePollHResult(HRESULT hr) {
|
|
|
171
176
|
return hr == WININET_E_INVALID_SERVER_RESPONSE;
|
|
172
177
|
}
|
|
173
178
|
|
|
179
|
+
std::string GetDeviceId(const std::string &packageName) {
|
|
180
|
+
const auto hash = winrt::Windows::Security::Cryptography::Core::HashAlgorithmProvider::OpenAlgorithm(
|
|
181
|
+
winrt::Windows::Security::Cryptography::Core::HashAlgorithmNames::Sha256())
|
|
182
|
+
.CreateHash();
|
|
183
|
+
hash.Append(winrt::Windows::System::Profile::SystemIdentification::GetSystemIdForPublisher().Id());
|
|
184
|
+
winrt::Windows::Storage::Streams::InMemoryRandomAccessStream stream;
|
|
185
|
+
winrt::Windows::Storage::Streams::DataWriter writer;
|
|
186
|
+
// If an app ID is provided, we will allow reconnection to DevTools.
|
|
187
|
+
// Apps must supply a unique app ID to each ReactNativeHost instance settings for this to behave correctly.
|
|
188
|
+
if (!packageName.empty()) {
|
|
189
|
+
const auto packageNameBuffer = winrt::Windows::Security::Cryptography::CryptographicBuffer::ConvertStringToBinary(
|
|
190
|
+
winrt::to_hstring(packageName), winrt::Windows::Security::Cryptography::BinaryStringEncoding::Utf16BE);
|
|
191
|
+
hash.Append(packageNameBuffer);
|
|
192
|
+
} else {
|
|
193
|
+
const auto processId = GetCurrentProcessId();
|
|
194
|
+
std::vector<uint8_t> processIdBytes(
|
|
195
|
+
reinterpret_cast<const uint8_t *>(&processId), reinterpret_cast<const uint8_t *>(&processId + 1));
|
|
196
|
+
winrt::array_view<uint8_t> processIdByteArray(processIdBytes);
|
|
197
|
+
const auto processIdBuffer =
|
|
198
|
+
winrt::Windows::Security::Cryptography::CryptographicBuffer::CreateFromByteArray(processIdByteArray);
|
|
199
|
+
hash.Append(processIdBuffer);
|
|
200
|
+
}
|
|
201
|
+
const auto hashBuffer = hash.GetValueAndReset();
|
|
202
|
+
const auto hashString = winrt::Windows::Security::Cryptography::CryptographicBuffer::EncodeToHexString(hashBuffer);
|
|
203
|
+
return winrt::to_string(hashString);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
std::string GetPackageName(const std::string &bundleAppId) {
|
|
207
|
+
if (!bundleAppId.empty()) {
|
|
208
|
+
return bundleAppId;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
std::string packageName{"RNW"};
|
|
212
|
+
wchar_t fullName[PACKAGE_FULL_NAME_MAX_LENGTH]{};
|
|
213
|
+
uint32_t size = ARRAYSIZE(fullName);
|
|
214
|
+
if (SUCCEEDED(GetCurrentPackageFullName(&size, fullName))) {
|
|
215
|
+
// we are in an unpackaged app
|
|
216
|
+
packageName = winrt::to_string(fullName);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return packageName;
|
|
220
|
+
}
|
|
221
|
+
|
|
174
222
|
std::future<winrt::Windows::Web::Http::HttpStatusCode> PollForLiveReload(const std::string &url) {
|
|
175
223
|
winrt::Windows::Web::Http::HttpClient httpClient;
|
|
176
224
|
winrt::Windows::Foundation::Uri uri(Microsoft::Common::Unicode::Utf8ToUtf16(url));
|
|
@@ -238,37 +286,48 @@ void DevSupportManager::StopPollingLiveReload() {
|
|
|
238
286
|
m_cancellation_token = true;
|
|
239
287
|
}
|
|
240
288
|
|
|
241
|
-
|
|
289
|
+
// TODO: (vmoroz) Use or delete this function
|
|
290
|
+
void DevSupportManager::OpenDevTools(const std::string &bundleAppId) {
|
|
291
|
+
winrt::Windows::Web::Http::Filters::HttpBaseProtocolFilter filter;
|
|
292
|
+
filter.CacheControl().ReadBehavior(winrt::Windows::Web::Http::Filters::HttpCacheReadBehavior::NoCache);
|
|
293
|
+
winrt::Windows::Web::Http::HttpClient httpClient(filter);
|
|
294
|
+
// TODO: Use currently configured dev server host
|
|
295
|
+
winrt::Windows::Foundation::Uri uri(
|
|
296
|
+
Microsoft::Common::Unicode::Utf8ToUtf16(facebook::react::DevServerHelper::get_OpenDebuggerUrl(
|
|
297
|
+
std::string{DevServerHelper::DefaultPackagerHost},
|
|
298
|
+
DevServerHelper::DefaultPackagerPort,
|
|
299
|
+
GetDeviceId(GetPackageName(bundleAppId)))));
|
|
300
|
+
|
|
301
|
+
winrt::Windows::Web::Http::HttpRequestMessage request(winrt::Windows::Web::Http::HttpMethod::Post(), uri);
|
|
302
|
+
httpClient.SendRequestAsync(request);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
void DevSupportManager::EnsureInspectorPackagerConnection(
|
|
242
306
|
[[maybe_unused]] const std::string &packagerHost,
|
|
243
|
-
[[maybe_unused]] const uint16_t packagerPort
|
|
307
|
+
[[maybe_unused]] const uint16_t packagerPort,
|
|
308
|
+
[[maybe_unused]] const std::string &bundleAppId) noexcept {
|
|
244
309
|
static std::once_flag once;
|
|
245
|
-
std::call_once(once, [this, &packagerHost, packagerPort]() {
|
|
246
|
-
|
|
247
|
-
std::string packageName("RNW");
|
|
248
|
-
wchar_t fullName[PACKAGE_FULL_NAME_MAX_LENGTH]{};
|
|
249
|
-
UINT32 size = ARRAYSIZE(fullName);
|
|
250
|
-
if (SUCCEEDED(GetCurrentPackageFullName(&size, fullName))) {
|
|
251
|
-
// we are in an unpackaged app
|
|
252
|
-
packageName = winrt::to_string(fullName);
|
|
253
|
-
}
|
|
254
|
-
|
|
310
|
+
std::call_once(once, [this, &packagerHost, packagerPort, &bundleAppId]() {
|
|
311
|
+
std::string packageName = GetPackageName(bundleAppId);
|
|
255
312
|
std::string deviceName("RNWHost");
|
|
256
313
|
auto hostNames = winrt::Windows::Networking::Connectivity::NetworkInformation::GetHostNames();
|
|
257
314
|
if (hostNames && hostNames.First() && hostNames.First().Current()) {
|
|
258
315
|
deviceName = winrt::to_string(hostNames.First().Current().DisplayName());
|
|
259
316
|
}
|
|
260
317
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
318
|
+
std::string deviceId = GetDeviceId(packageName);
|
|
319
|
+
std::string inspectorUrl = facebook::react::DevServerHelper::get_InspectorDeviceUrl(
|
|
320
|
+
packagerHost, packagerPort, deviceName, packageName, deviceId);
|
|
321
|
+
jsinspector_modern::InspectorFlags &inspectorFlags = jsinspector_modern::InspectorFlags::getInstance();
|
|
322
|
+
m_inspectorPackagerConnection = std::make_unique<jsinspector_modern::InspectorPackagerConnection>(
|
|
323
|
+
inspectorUrl,
|
|
324
|
+
deviceName,
|
|
325
|
+
packageName,
|
|
326
|
+
std::make_unique<Microsoft::ReactNative::ReactInspectorPackagerConnectionDelegate>());
|
|
327
|
+
m_inspectorPackagerConnection->connect();
|
|
265
328
|
});
|
|
266
329
|
}
|
|
267
330
|
|
|
268
|
-
void DevSupportManager::UpdateBundleStatus(bool isLastDownloadSuccess, int64_t updateTimestamp) noexcept {
|
|
269
|
-
m_BundleStatusProvider->updateBundleStatus(isLastDownloadSuccess, updateTimestamp);
|
|
270
|
-
}
|
|
271
|
-
|
|
272
331
|
std::pair<std::string, bool> GetJavaScriptFromServer(
|
|
273
332
|
const std::string &sourceBundleHost,
|
|
274
333
|
const uint16_t sourceBundlePort,
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#include <memory>
|
|
15
15
|
#include <string>
|
|
16
16
|
|
|
17
|
-
#include <InspectorPackagerConnection.h>
|
|
17
|
+
#include <jsinspector-modern/InspectorPackagerConnection.h>
|
|
18
18
|
|
|
19
19
|
namespace facebook {
|
|
20
20
|
namespace react {
|
|
@@ -48,29 +48,17 @@ class DevSupportManager final : public facebook::react::IDevSupportManager {
|
|
|
48
48
|
const uint16_t sourceBundlePort,
|
|
49
49
|
std::function<void()> onChangeCallback) override;
|
|
50
50
|
virtual void StopPollingLiveReload() override;
|
|
51
|
+
virtual void OpenDevTools(const std::string &bundleAppId) override;
|
|
51
52
|
|
|
52
|
-
virtual void
|
|
53
|
-
|
|
53
|
+
virtual void EnsureInspectorPackagerConnection(
|
|
54
|
+
const std::string &packagerHost,
|
|
55
|
+
const uint16_t packagerPort,
|
|
56
|
+
const std::string &bundleAppId) noexcept override;
|
|
54
57
|
|
|
55
58
|
private:
|
|
56
59
|
std::atomic_bool m_cancellation_token;
|
|
57
60
|
|
|
58
|
-
std::
|
|
59
|
-
|
|
60
|
-
struct BundleStatusProvider : public InspectorPackagerConnection::IBundleStatusProvider {
|
|
61
|
-
virtual InspectorPackagerConnection::BundleStatus getBundleStatus() {
|
|
62
|
-
return m_bundleStatus;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
void updateBundleStatus(bool isLastDownloadSuccess, int64_t updateTimestamp) {
|
|
66
|
-
m_bundleStatus.m_isLastDownloadSuccess = isLastDownloadSuccess;
|
|
67
|
-
m_bundleStatus.m_updateTimestamp = updateTimestamp;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
private:
|
|
71
|
-
InspectorPackagerConnection::BundleStatus m_bundleStatus;
|
|
72
|
-
};
|
|
73
|
-
std::shared_ptr<BundleStatusProvider> m_BundleStatusProvider = std::make_shared<BundleStatusProvider>();
|
|
61
|
+
std::unique_ptr<facebook::react::jsinspector_modern::InspectorPackagerConnection> m_inspectorPackagerConnection;
|
|
74
62
|
};
|
|
75
63
|
|
|
76
64
|
} // namespace Microsoft::ReactNative
|