@office-iss/react-native-win32 0.0.0-canary.296 → 0.0.0-canary.298
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 +6 -2
- package/CHANGELOG.json +49 -1
- package/CHANGELOG.md +23 -4
- package/IntegrationTests/AccessibilityManagerTest.js +1 -1
- package/IntegrationTests/AppEventsTest.js +1 -1
- package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
- package/IntegrationTests/ImageCachePolicyTest.js +2 -2
- package/IntegrationTests/ImageSnapshotTest.js +1 -1
- package/IntegrationTests/IntegrationTestHarnessTest.js +1 -1
- package/IntegrationTests/IntegrationTestsApp.js +1 -1
- package/IntegrationTests/LayoutEventsTest.js +1 -1
- package/IntegrationTests/PromiseTest.js +1 -1
- package/IntegrationTests/SimpleSnapshotTest.js +1 -1
- package/IntegrationTests/SyncMethodTest.js +1 -1
- package/IntegrationTests/TimersTest.js +1 -1
- package/IntegrationTests/WebSocketTest.js +1 -1
- package/Libraries/Alert/Alert.js +1 -1
- package/Libraries/Alert/Alert.win32.js +1 -1
- package/Libraries/Alert/RCTAlertManager.ios.js +1 -1
- package/Libraries/Alert/RCTAlertManager.js.flow +1 -1
- package/Libraries/Animated/Animated.js +0 -1
- package/Libraries/Animated/Animated.js.flow +0 -1
- package/Libraries/Animated/AnimatedExports.js +2 -3
- package/Libraries/Animated/AnimatedExports.js.flow +1 -2
- package/Libraries/Animated/Easing.js +1 -1
- package/Libraries/Animated/SpringConfig.js +1 -1
- package/Libraries/Animated/animations/Animation.js +5 -2
- package/Libraries/Animated/components/AnimatedFlatList.js +7 -6
- package/Libraries/Animated/components/AnimatedScrollView.js +53 -52
- package/Libraries/Animated/components/AnimatedSectionList.js +11 -7
- package/Libraries/Animated/createAnimatedComponent.js +37 -33
- package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +37 -5
- package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
- package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
- package/Libraries/AppState/AppState.js +6 -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/URL.js +1 -1
- package/Libraries/Blob/URLSearchParams.js +5 -1
- package/Libraries/Blob/URLSearchParams.js.flow +2 -1
- package/Libraries/BugReporting/BugReporting.js +1 -1
- package/Libraries/BugReporting/dumpReactTree.js +1 -1
- package/Libraries/BugReporting/getReactData.js +1 -1
- 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.win32.js +1 -1
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +20 -19
- package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +1 -1
- package/Libraries/Components/Button.js +3 -3
- package/Libraries/Components/Button.win32.js +3 -3
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +1 -1
- 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/Keyboard/Keyboard.js +1 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
- package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
- package/Libraries/Components/Pressable/Pressable.js +9 -6
- package/Libraries/Components/Pressable/Pressable.win32.js +9 -6
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +14 -2
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +1 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +29 -20
- package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +1 -1
- package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
- package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
- package/Libraries/Components/ScrollView/ScrollView.d.ts +23 -5
- package/Libraries/Components/ScrollView/ScrollView.js +22 -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/SoundManager.js +1 -1
- package/Libraries/Components/StaticRenderer.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +1 -1
- package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +1 -1
- package/Libraries/Components/Switch/Switch.js +8 -2
- package/Libraries/Components/Switch/SwitchNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +1 -17
- package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
- package/Libraries/Components/TextInput/TextInput.flow.js +12 -14
- package/Libraries/Components/TextInput/TextInput.flow.win32.js +12 -14
- package/Libraries/Components/TextInput/TextInput.js +40 -35
- package/Libraries/Components/TextInput/TextInput.win32.js +41 -35
- package/Libraries/Components/TextInput/TextInputState.js +1 -1
- package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
- 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/ToastAndroid.win32.js +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 +10 -0
- package/Libraries/Components/Touchable/Touchable.win32.js +10 -0
- package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +9 -4
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +2 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +7 -3
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
- package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
- package/Libraries/Components/View/View.js +112 -26
- package/Libraries/Components/View/View.win32.js +1 -1
- package/Libraries/Components/View/ViewAccessibility.js +1 -1
- package/Libraries/Components/View/ViewAccessibility.win32.js +1 -1
- package/Libraries/Components/View/ViewPropTypes.d.ts +18 -2
- package/Libraries/Components/View/ViewPropTypes.js +1 -1
- package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
- package/Libraries/Core/Devtools/getDevServer.js +1 -1
- package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
- package/Libraries/Core/Devtools/loadBundleFromServer.win32.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 +1 -1
- package/Libraries/Core/InitializeCore.js +2 -23
- package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -2
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/immediateShim.js +1 -1
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/setUpDeveloperTools.js +13 -11
- package/Libraries/Debugging/DebuggingOverlay.js +12 -14
- package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +1 -1
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
- package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
- package/Libraries/EventEmitter/NativeEventEmitter.js +1 -1
- package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
- package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
- package/Libraries/Image/AssetRegistry.js +4 -10
- package/Libraries/Image/AssetSourceResolver.js +17 -4
- package/Libraries/Image/Image.android.js +112 -106
- package/Libraries/Image/Image.ios.js +10 -2
- package/Libraries/Image/Image.win32.js +11 -3
- package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
- package/Libraries/Image/ImageInjection.js +1 -1
- package/Libraries/Image/RelativeImageStub.js +2 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Interaction/FrameRateLogger.js +1 -1
- package/Libraries/Interaction/InteractionManager.js +62 -53
- package/Libraries/Interaction/TaskQueue.js +8 -9
- package/Libraries/Interaction/TouchHistoryMath.js +1 -1
- package/Libraries/Linking/Linking.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +9 -5
- package/Libraries/Lists/FlatList.js +1 -1
- package/Libraries/Lists/SectionListModern.js +9 -3
- package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
- package/Libraries/LogBox/LogBox.js +2 -0
- package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -1
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +3 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
- package/Libraries/Modal/Modal.js +5 -1
- package/Libraries/Modal/RCTModalHostViewNativeComponent.js +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +17 -5
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +4 -4
- package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
- package/Libraries/NativeComponent/BaseViewConfig.win32.js +4 -4
- package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
- package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
- package/Libraries/Network/FormData.js +1 -1
- 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.win32.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +3 -3
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +1 -1
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/Pressability/Pressability.win32.js +1 -1
- package/Libraries/Promise.js +1 -1
- 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/AppRegistryImpl.js +2 -3
- 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 +1 -1
- 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 +1 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +21 -25
- package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +270 -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/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/StyleSheetExports.js.flow +3 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +4 -3
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
- 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 +7 -0
- package/Libraries/Text/Text.js +256 -245
- package/Libraries/Text/Text.win32.js +294 -285
- package/Libraries/Text/TextAncestor.js +3 -2
- package/Libraries/Text/TextNativeComponent.js +4 -0
- package/Libraries/Text/TextNativeComponent.win32.js +4 -0
- package/Libraries/Text/TextProps.js +2 -34
- package/Libraries/Text/TextProps.win32.js +2 -33
- package/Libraries/Types/CodegenTypes.js +1 -1
- package/Libraries/Types/CodegenTypesNamespace.js +1 -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/Dimensions.win32.js +1 -1
- package/Libraries/Utilities/HMRClient.js +1 -1
- package/Libraries/Utilities/HMRClientProdShim.js +1 -1
- package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
- package/Libraries/Utilities/PixelRatio.js +1 -1
- package/Libraries/Utilities/Platform.android.js +1 -1
- package/Libraries/Utilities/Platform.ios.js +1 -1
- package/Libraries/Utilities/Platform.js +1 -1
- package/Libraries/Utilities/Platform.win32.js +1 -1
- package/Libraries/Utilities/PlatformTypes.js +1 -1
- 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 +1 -1
- package/Libraries/Utilities/codegenNativeComponent.js +1 -1
- 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/Vibration.js +1 -2
- 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 +29 -5
- package/index.js +1 -2
- package/index.win32.js +3 -1
- 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/{flow/Stringish.js → jest/mocks/Clipboard.js} +6 -4
- 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 +32 -0
- package/jest/setup.js +63 -445
- package/overrides.json +45 -38
- package/package.json +14 -14
- package/src/private/animated/NativeAnimatedHelper.js +8 -1
- package/src/private/animated/NativeAnimatedHelper.win32.js +8 -1
- package/src/private/animated/createAnimatedPropsHook.js +11 -4
- package/src/private/animated/createAnimatedPropsMemoHook.js +0 -1
- 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/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.win32.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 +65 -5
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +10 -2
- package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
- package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +1 -1
- 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/styles/composeStyles.js +12 -5
- 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/intersectionobserver/IntersectionObserver.js +3 -0
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +70 -18
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +11 -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 +1 -1
- package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
- package/src/private/webapis/performance/UserTiming.js +1 -1
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -1
- package/src/private/webapis/performance/internals/Utilities.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/src/types/globals.d.ts +42 -0
- package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +18 -2
- package/src-win/Libraries/Text/Text.d.ts +7 -0
- package/types/index.d.ts +1 -1
- package/types/modules/Devtools.d.ts +23 -9
- package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
- package/flow/HermesInternalType.js +0 -114
- package/flow/console.js +0 -49
- package/flow/global.js +0 -88
- package/jest/mockModal.js +0 -32
- package/jest/mockScrollView.js +0 -35
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import DOMException from '../errors/DOMException';
|
|
12
|
+
import {
|
|
13
|
+
getPlatformObjectClone,
|
|
14
|
+
isPlatformObject,
|
|
15
|
+
} from '../webidl/PlatformObjects';
|
|
16
|
+
|
|
17
|
+
const VALID_ERROR_NAMES = new Set([
|
|
18
|
+
'Error',
|
|
19
|
+
'EvalError',
|
|
20
|
+
'RangeError',
|
|
21
|
+
'ReferenceError',
|
|
22
|
+
'SyntaxError',
|
|
23
|
+
'TypeError',
|
|
24
|
+
'URIError',
|
|
25
|
+
]);
|
|
26
|
+
|
|
27
|
+
const BASIC_CONSTRUCTORS = [Number, String, Boolean, Date];
|
|
28
|
+
|
|
29
|
+
const ObjectPrototype = Object.prototype;
|
|
30
|
+
|
|
31
|
+
// Technicall the memory value should be a parameter in
|
|
32
|
+
// `structuredCloneInternal` but as an optimization we can reuse the same map
|
|
33
|
+
// and avoid allocating a new one in every call to `structuredClone`.
|
|
34
|
+
// This is safe because we don't invoke user code in `structuredClone`, so at
|
|
35
|
+
// any given point we only have one memory object alive anyway.
|
|
36
|
+
const memory: Map<mixed, mixed> = new Map();
|
|
37
|
+
|
|
38
|
+
function structuredCloneInternal<T>(value: T): T {
|
|
39
|
+
// Handles `null` and `undefined`.
|
|
40
|
+
if (value == null) {
|
|
41
|
+
return value;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Handles remaining primitive values.
|
|
45
|
+
switch (typeof value) {
|
|
46
|
+
case 'boolean':
|
|
47
|
+
case 'number':
|
|
48
|
+
case 'string':
|
|
49
|
+
case 'bigint':
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Handles unsupported types (symbols and functions).
|
|
54
|
+
if (typeof value !== 'object') {
|
|
55
|
+
// value is symbol or function
|
|
56
|
+
throw new DOMException(
|
|
57
|
+
`Failed to execute 'structuredClone' on 'Window': ${String(value)} could not be cloned.`,
|
|
58
|
+
'DataCloneError',
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Handles circular references.
|
|
63
|
+
if (memory.has(value)) {
|
|
64
|
+
// $FlowExpectedError[incompatible-return] we know memory.get(value) is T
|
|
65
|
+
return memory.get(value);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Handles arrays.
|
|
69
|
+
if (Array.isArray(value)) {
|
|
70
|
+
const result = [];
|
|
71
|
+
memory.set(value, result);
|
|
72
|
+
|
|
73
|
+
for (const key of Object.keys(value)) {
|
|
74
|
+
result[key] = structuredCloneInternal(value[key]);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// $FlowExpectedError[incompatible-return] we know result is T
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Simple object fast path
|
|
82
|
+
// $FlowIssue[prop-missing] Why doesn't Flow know about Object.prototype?
|
|
83
|
+
if (Object.getPrototypeOf(value) === ObjectPrototype) {
|
|
84
|
+
const result = {};
|
|
85
|
+
memory.set(value, result);
|
|
86
|
+
|
|
87
|
+
for (const key of Object.keys(value)) {
|
|
88
|
+
// $FlowExpectedError[prop-missing]
|
|
89
|
+
result[key] = structuredCloneInternal(value[key]);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// $FlowExpectedError[incompatible-return] we know result is T
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Handles complex types (typeof === 'object').
|
|
97
|
+
|
|
98
|
+
for (const Cls of BASIC_CONSTRUCTORS) {
|
|
99
|
+
if (value instanceof Cls) {
|
|
100
|
+
const result = new Cls(value);
|
|
101
|
+
memory.set(value, result);
|
|
102
|
+
// $FlowExpectedError[incompatible-return] we know result is T
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (value instanceof Map) {
|
|
108
|
+
const result = new Map<mixed, mixed>();
|
|
109
|
+
memory.set(value, result);
|
|
110
|
+
|
|
111
|
+
for (const [innerKey, innerValue] of value) {
|
|
112
|
+
result.set(
|
|
113
|
+
structuredCloneInternal(innerKey),
|
|
114
|
+
structuredCloneInternal(innerValue),
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// $FlowExpectedError[incompatible-return] we know result is T
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (value instanceof Set) {
|
|
123
|
+
const result = new Set<mixed>();
|
|
124
|
+
memory.set(value, result);
|
|
125
|
+
|
|
126
|
+
for (const innerValue of value) {
|
|
127
|
+
result.add(structuredCloneInternal(innerValue));
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// $FlowExpectedError[incompatible-return] we know result is T
|
|
131
|
+
return result;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (value instanceof RegExp) {
|
|
135
|
+
const result = new RegExp(value.source, value.flags);
|
|
136
|
+
memory.set(value, result);
|
|
137
|
+
|
|
138
|
+
// $FlowExpectedError[incompatible-return] we know result is T
|
|
139
|
+
return result;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// We need to check platform objects before `Error` because `DOMException`
|
|
143
|
+
// is a platform object AND an `Error` subclass.
|
|
144
|
+
const clone = getPlatformObjectClone(value);
|
|
145
|
+
if (clone != null) {
|
|
146
|
+
const result = clone(value);
|
|
147
|
+
memory.set(value, result);
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if (value instanceof Error) {
|
|
152
|
+
const result = value.cause
|
|
153
|
+
? new Error(value.message, {cause: value.cause})
|
|
154
|
+
: new Error(value.message);
|
|
155
|
+
memory.set(value, result);
|
|
156
|
+
|
|
157
|
+
if (VALID_ERROR_NAMES.has(value.name)) {
|
|
158
|
+
result.name = value.name;
|
|
159
|
+
} else {
|
|
160
|
+
result.name = 'Error';
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
result.stack = value.stack;
|
|
164
|
+
|
|
165
|
+
// $FlowExpectedError[incompatible-return] we know result is T
|
|
166
|
+
return result;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// Known non-serializable objects.
|
|
170
|
+
if (isNonSerializableObject(value) || isPlatformObject(value)) {
|
|
171
|
+
throw new DOMException(
|
|
172
|
+
`Failed to execute 'structuredClone' on 'Window': ${String(value)} could not be cloned.`,
|
|
173
|
+
'DataCloneError',
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// Arbitrary object slow path
|
|
178
|
+
const result = {};
|
|
179
|
+
memory.set(value, result);
|
|
180
|
+
|
|
181
|
+
// We need to use Object.keys instead of iterating by indices because we
|
|
182
|
+
// also need to copy arbitrary fields set in the array.
|
|
183
|
+
for (const key of Object.keys(value)) {
|
|
184
|
+
// $FlowExpectedError[prop-missing]
|
|
185
|
+
result[key] = structuredCloneInternal(value[key]);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// $FlowExpectedError[incompatible-return] we know result is T
|
|
189
|
+
return result;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Basic implementation of `structuredClone`.
|
|
194
|
+
* See:
|
|
195
|
+
* - https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone.
|
|
196
|
+
* - https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
|
|
197
|
+
* - https://html.spec.whatwg.org/multipage/structured-data.html#structured-cloning
|
|
198
|
+
*
|
|
199
|
+
* Supports cloning all built-in types supported by the spec, circular
|
|
200
|
+
* references and referential equality of the same objects found in the
|
|
201
|
+
* structure.
|
|
202
|
+
*
|
|
203
|
+
* Shortcuts:
|
|
204
|
+
* - This implementation does NOT serialize and deserialize the value
|
|
205
|
+
* but implements the cloning in a single step.
|
|
206
|
+
*
|
|
207
|
+
* Known limitations:
|
|
208
|
+
* - It does not support transfering values.
|
|
209
|
+
*/
|
|
210
|
+
export default function structuredClone<T>(value: T): T {
|
|
211
|
+
try {
|
|
212
|
+
return structuredCloneInternal(value);
|
|
213
|
+
} finally {
|
|
214
|
+
memory.clear();
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
const NON_SERIALIZABLE_OBJECT_KEY = Symbol('nonSerializableObject');
|
|
219
|
+
|
|
220
|
+
function isNonSerializableObject<T: interface {}>(obj: T): boolean {
|
|
221
|
+
// $FlowExpectedError[invalid-in-lhs]
|
|
222
|
+
return NON_SERIALIZABLE_OBJECT_KEY in obj;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function markClassAsNonSerializable<T>(cls: Class<T>): void {
|
|
226
|
+
// $FlowExpectedError[incompatible-use]
|
|
227
|
+
cls.prototype[NON_SERIALIZABLE_OBJECT_KEY] = true;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// Non-serializable built-ins.
|
|
231
|
+
markClassAsNonSerializable(WeakMap);
|
|
232
|
+
markClassAsNonSerializable(WeakSet);
|
|
233
|
+
markClassAsNonSerializable(Promise);
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
const IS_PLATFORM_OBJECT_KEY = Symbol('isPlatformObject');
|
|
12
|
+
const CLONE_PLATFORM_OBJECT_KEY = Symbol('clonePlatformObject');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Marks the given object or instances of the given class as platform objects.
|
|
16
|
+
*
|
|
17
|
+
* Optionally, it sets the clone function for that platform object, which is a
|
|
18
|
+
* simplification of the serializable attribute of the Web interface.
|
|
19
|
+
*/
|
|
20
|
+
export const setPlatformObject: (<T: interface {}>(
|
|
21
|
+
obj: Class<T>,
|
|
22
|
+
options?: {clone: T => T},
|
|
23
|
+
) => void) &
|
|
24
|
+
(<T: interface {}>(obj: T, options?: {clone: T => T}) => void) =
|
|
25
|
+
function setPlatformObject(obj, options) {
|
|
26
|
+
if (typeof obj === 'function') {
|
|
27
|
+
// $FlowExpectedError[prop-missing]
|
|
28
|
+
obj.prototype[IS_PLATFORM_OBJECT_KEY] = true;
|
|
29
|
+
if (options) {
|
|
30
|
+
// $FlowExpectedError[prop-missing]
|
|
31
|
+
obj.prototype[CLONE_PLATFORM_OBJECT_KEY] = options.clone;
|
|
32
|
+
}
|
|
33
|
+
} else {
|
|
34
|
+
// $FlowExpectedError[prop-missing]
|
|
35
|
+
obj[IS_PLATFORM_OBJECT_KEY] = true;
|
|
36
|
+
if (options) {
|
|
37
|
+
// $FlowExpectedError[prop-missing]
|
|
38
|
+
obj[CLONE_PLATFORM_OBJECT_KEY] = options.clone;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Indicates if the given object is a platform object.
|
|
45
|
+
*/
|
|
46
|
+
export function isPlatformObject<T: interface {}>(obj: T): boolean {
|
|
47
|
+
// $FlowExpectedError[invalid-in-lhs]
|
|
48
|
+
return IS_PLATFORM_OBJECT_KEY in obj;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Returns the clone function for the given platform object, if it was set.
|
|
53
|
+
*/
|
|
54
|
+
export function getPlatformObjectClone<T: interface {}>(
|
|
55
|
+
obj: T,
|
|
56
|
+
): (T => T) | void {
|
|
57
|
+
// $FlowExpectedError[prop-missing]
|
|
58
|
+
return obj[CLONE_PLATFORM_OBJECT_KEY];
|
|
59
|
+
}
|
package/src/types/globals.d.ts
CHANGED
|
@@ -57,6 +57,48 @@ declare global {
|
|
|
57
57
|
|
|
58
58
|
const HermesInternal: null | {};
|
|
59
59
|
|
|
60
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly) */
|
|
61
|
+
interface DOMRectReadOnly {
|
|
62
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/bottom) */
|
|
63
|
+
readonly bottom: number;
|
|
64
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/height) */
|
|
65
|
+
readonly height: number;
|
|
66
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/left) */
|
|
67
|
+
readonly left: number;
|
|
68
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/right) */
|
|
69
|
+
readonly right: number;
|
|
70
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/top) */
|
|
71
|
+
readonly top: number;
|
|
72
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/width) */
|
|
73
|
+
readonly width: number;
|
|
74
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/x) */
|
|
75
|
+
readonly x: number;
|
|
76
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/y) */
|
|
77
|
+
readonly y: number;
|
|
78
|
+
toJSON(): any;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
interface DOMRect extends DOMRectReadOnly {
|
|
82
|
+
height: number;
|
|
83
|
+
width: number;
|
|
84
|
+
x: number;
|
|
85
|
+
y: number;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
interface DOMRectInit {
|
|
89
|
+
height?: number | undefined;
|
|
90
|
+
width?: number | undefined;
|
|
91
|
+
x?: number | undefined;
|
|
92
|
+
y?: number | undefined;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
var DOMRect: {
|
|
96
|
+
prototype: DOMRect;
|
|
97
|
+
new (x?: number, y?: number, width?: number, height?: number): DOMRect;
|
|
98
|
+
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/fromRect_static) */
|
|
99
|
+
fromRect(other?: DOMRectInit): DOMRect;
|
|
100
|
+
};
|
|
101
|
+
|
|
60
102
|
// #region Timer Functions
|
|
61
103
|
|
|
62
104
|
function clearInterval(handle: number): void;
|
|
@@ -13,11 +13,13 @@ import {GestureResponderHandlers} from 'react-native/types/public/ReactNativeRen
|
|
|
13
13
|
import {StyleProp} from 'react-native/Libraries/StyleSheet/StyleSheet';
|
|
14
14
|
import {ViewStyle} from 'react-native/Libraries/StyleSheet/StyleSheetTypes';
|
|
15
15
|
import {
|
|
16
|
+
BlurEvent,
|
|
17
|
+
FocusEvent,
|
|
16
18
|
LayoutChangeEvent,
|
|
19
|
+
PointerEvents,
|
|
17
20
|
MouseEvent, // Win32
|
|
18
21
|
NativeSyntheticEvent, // Win32
|
|
19
|
-
|
|
20
|
-
} from 'react-native/Libraries/Types/CoreEventTypes';
|
|
22
|
+
} from '../../Types/CoreEventTypes';
|
|
21
23
|
import {Touchable} from 'react-native/Libraries/Components/Touchable/Touchable';
|
|
22
24
|
import {AccessibilityProps} from './ViewAccessibility';
|
|
23
25
|
|
|
@@ -81,6 +83,20 @@ export interface ViewPropsIOS extends TVViewPropsIOS {
|
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
export interface ViewPropsAndroid {
|
|
86
|
+
/**
|
|
87
|
+
* Callback that is called when the view is blurred.
|
|
88
|
+
*
|
|
89
|
+
* Note: This will only be called if the view is focusable.
|
|
90
|
+
*/
|
|
91
|
+
onBlur?: ((e: BlurEvent) => void) | null | undefined;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Callback that is called when the view is focused.
|
|
95
|
+
*
|
|
96
|
+
* Note: This will only be called if the view is focusable.
|
|
97
|
+
*/
|
|
98
|
+
onFocus?: ((e: FocusEvent) => void) | null | undefined;
|
|
99
|
+
|
|
84
100
|
/**
|
|
85
101
|
* Whether this view should render itself (and all of its children) into a single hardware texture on the GPU.
|
|
86
102
|
*
|
|
@@ -296,6 +296,13 @@ export interface TextProps
|
|
|
296
296
|
* Controls how touch events are handled. Similar to `View`'s `pointerEvents`.
|
|
297
297
|
*/
|
|
298
298
|
pointerEvents?: ViewStyle['pointerEvents'] | undefined;
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Defines how far your touch may move off of the button, before deactivating the button.
|
|
302
|
+
*/
|
|
303
|
+
pressRetentionOffset?:
|
|
304
|
+
| {top: number; left: number; bottom: number; right: number}
|
|
305
|
+
| undefined;
|
|
299
306
|
}
|
|
300
307
|
|
|
301
308
|
/**
|
package/types/index.d.ts
CHANGED
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
/// <reference path="modules/BatchedBridge.d.ts" />
|
|
69
69
|
/// <reference path="modules/Codegen.d.ts" />
|
|
70
70
|
/// <reference path="modules/Devtools.d.ts" />
|
|
71
|
-
/// <reference
|
|
71
|
+
/// <reference path="../src/types/globals.d.ts" />
|
|
72
72
|
|
|
73
73
|
export * from '../Libraries/ActionSheetIOS/ActionSheetIOS';
|
|
74
74
|
export * from '../Libraries/Alert/Alert';
|
|
@@ -9,24 +9,38 @@
|
|
|
9
9
|
|
|
10
10
|
declare module 'react-native/Libraries/Core/Devtools/parseErrorStack' {
|
|
11
11
|
export type StackFrame = {
|
|
12
|
-
|
|
12
|
+
column: number | null | undefined;
|
|
13
|
+
file: string | null | undefined;
|
|
14
|
+
lineNumber: number | null | undefined;
|
|
13
15
|
methodName: string;
|
|
14
|
-
lineNumber: number;
|
|
15
|
-
column: number | null;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
export
|
|
19
|
-
framesToPop?: number | undefined;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export default function parseErrorStack(error: ExtendedError): StackFrame[];
|
|
18
|
+
export default function parseErrorStack(errorStack?: string): StackFrame[];
|
|
23
19
|
}
|
|
24
20
|
|
|
25
21
|
declare module 'react-native/Libraries/Core/Devtools/symbolicateStackTrace' {
|
|
26
22
|
import {StackFrame} from 'react-native/Libraries/Core/Devtools/parseErrorStack';
|
|
27
23
|
|
|
24
|
+
export type CodeFrame = Readonly<{
|
|
25
|
+
content: string;
|
|
26
|
+
location:
|
|
27
|
+
| {
|
|
28
|
+
row: number;
|
|
29
|
+
column: number;
|
|
30
|
+
[key: string]: any;
|
|
31
|
+
}
|
|
32
|
+
| null
|
|
33
|
+
| undefined;
|
|
34
|
+
fileName: string;
|
|
35
|
+
}>;
|
|
36
|
+
|
|
37
|
+
export type SymbolicatedStackTrace = Readonly<{
|
|
38
|
+
stack: ReadonlyArray<StackFrame>;
|
|
39
|
+
codeFrame: CodeFrame | null | undefined;
|
|
40
|
+
}>;
|
|
41
|
+
|
|
28
42
|
export default function symbolicateStackTrace(
|
|
29
43
|
stack: ReadonlyArray<StackFrame>,
|
|
30
44
|
extraData?: any,
|
|
31
|
-
): Promise<
|
|
45
|
+
): Promise<SymbolicatedStackTrace>;
|
|
32
46
|
}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*
|
|
7
|
-
* @format
|
|
8
|
-
* @flow
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
'use strict';
|
|
12
|
-
|
|
13
|
-
const infoLog = require('../Utilities/infoLog').default;
|
|
14
|
-
|
|
15
|
-
type Handler = {
|
|
16
|
-
onIterate?: () => void,
|
|
17
|
-
onStall: (params: {lastInterval: number, busyTime: number, ...}) => ?string,
|
|
18
|
-
...
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* A utility for tracking stalls in the JS event loop that prevent timers and
|
|
23
|
-
* other events from being processed in a timely manner.
|
|
24
|
-
*
|
|
25
|
-
* The "stall" time is defined as the amount of time in access of the acceptable
|
|
26
|
-
* threshold, which is typically around 100-200ms. So if the threshold is set to
|
|
27
|
-
* 100 and a timer fires 150 ms later than it was scheduled because the event
|
|
28
|
-
* loop was tied up, that would be considered a 50ms stall.
|
|
29
|
-
*
|
|
30
|
-
* By default, logs stall events to the console when installed. Can also be
|
|
31
|
-
* queried with `getStats`.
|
|
32
|
-
*/
|
|
33
|
-
const JSEventLoopWatchdog = {
|
|
34
|
-
getStats: function (): Object {
|
|
35
|
-
return {stallCount, totalStallTime, longestStall, acceptableBusyTime};
|
|
36
|
-
},
|
|
37
|
-
reset: function () {
|
|
38
|
-
infoLog('JSEventLoopWatchdog: reset');
|
|
39
|
-
totalStallTime = 0;
|
|
40
|
-
stallCount = 0;
|
|
41
|
-
longestStall = 0;
|
|
42
|
-
lastInterval = global.performance.now();
|
|
43
|
-
},
|
|
44
|
-
addHandler: function (handler: Handler) {
|
|
45
|
-
handlers.push(handler);
|
|
46
|
-
},
|
|
47
|
-
install: function ({thresholdMS}: {thresholdMS: number, ...}) {
|
|
48
|
-
acceptableBusyTime = thresholdMS;
|
|
49
|
-
if (installed) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
installed = true;
|
|
53
|
-
lastInterval = global.performance.now();
|
|
54
|
-
function iteration() {
|
|
55
|
-
const now = global.performance.now();
|
|
56
|
-
const busyTime = now - lastInterval;
|
|
57
|
-
if (busyTime >= thresholdMS) {
|
|
58
|
-
const stallTime = busyTime - thresholdMS;
|
|
59
|
-
stallCount++;
|
|
60
|
-
totalStallTime += stallTime;
|
|
61
|
-
longestStall = Math.max(longestStall, stallTime);
|
|
62
|
-
let msg =
|
|
63
|
-
`JSEventLoopWatchdog: JS thread busy for ${busyTime}ms. ` +
|
|
64
|
-
`${totalStallTime}ms in ${stallCount} stalls so far. `;
|
|
65
|
-
handlers.forEach(handler => {
|
|
66
|
-
msg += handler.onStall({lastInterval, busyTime}) || '';
|
|
67
|
-
});
|
|
68
|
-
infoLog(msg);
|
|
69
|
-
}
|
|
70
|
-
handlers.forEach(handler => {
|
|
71
|
-
handler.onIterate && handler.onIterate();
|
|
72
|
-
});
|
|
73
|
-
lastInterval = now;
|
|
74
|
-
setTimeout(iteration, thresholdMS / 5);
|
|
75
|
-
}
|
|
76
|
-
iteration();
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
let acceptableBusyTime = 0;
|
|
81
|
-
let installed = false;
|
|
82
|
-
let totalStallTime = 0;
|
|
83
|
-
let stallCount = 0;
|
|
84
|
-
let longestStall = 0;
|
|
85
|
-
let lastInterval = 0;
|
|
86
|
-
const handlers: Array<Handler> = [];
|
|
87
|
-
|
|
88
|
-
export default JSEventLoopWatchdog;
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*
|
|
7
|
-
* @flow strict
|
|
8
|
-
* @format
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
// Declarations for functionality exposed by the Hermes VM.
|
|
12
|
-
//
|
|
13
|
-
// For backwards-compatibility, code that uses such functionality must also
|
|
14
|
-
// check explicitly at run-time whether the object(s) and method(s) exist, and
|
|
15
|
-
// fail safely if not.
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* HermesInternalType is an object containing functions used to interact with
|
|
19
|
-
* the VM in a way that is not standardized by the JS spec.
|
|
20
|
-
* There are limited guarantees about these functions, and they should not be
|
|
21
|
-
* widely used. Consult with the Hermes team before using any of these.
|
|
22
|
-
* There may be other visible properties on this object; however, those are
|
|
23
|
-
* only exposed for testing purposes: do not use them.
|
|
24
|
-
*/
|
|
25
|
-
declare type $HermesInternalType = {
|
|
26
|
-
// All members are optional because they may not exist when OTA'd to older
|
|
27
|
-
// VMs.
|
|
28
|
-
|
|
29
|
-
+getNumGCs?: () => number,
|
|
30
|
-
+getGCTime?: () => number,
|
|
31
|
-
+getNativeCallTime?: () => number,
|
|
32
|
-
+getNativeCallCount?: () => number,
|
|
33
|
-
+getGCCPUTime?: () => number,
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Hermes can embed an "epilogue" to the bytecode file with arbitrary bytes.
|
|
37
|
-
* At most one epilogue will exist per bytecode module (which can be
|
|
38
|
-
* different than a JS module).
|
|
39
|
-
* Calling this function will return all such epilogues and convert the
|
|
40
|
-
* bytes to numbers in the range of 0-255.
|
|
41
|
-
*/
|
|
42
|
-
+getEpilogues?: () => Array<Array<number>>,
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Query the VM for various statistics about performance.
|
|
46
|
-
* There are no guarantees about what keys exist in it, but they can be
|
|
47
|
-
* printed for informational purposes.
|
|
48
|
-
* @return An object that maps strings to various types of performance
|
|
49
|
-
* statistics.
|
|
50
|
-
*/
|
|
51
|
-
+getInstrumentedStats?: () => {[string]: number | string, ...},
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Query the VM for any sort of runtime properties that it wants to report.
|
|
55
|
-
* There are no guarantees about what keys exist in it, but they can be
|
|
56
|
-
* printed for informational purposes.
|
|
57
|
-
* @return An object that maps strings to various types of runtime properties.
|
|
58
|
-
*/
|
|
59
|
-
+getRuntimeProperties?: () => {
|
|
60
|
-
'OSS Release Version': string,
|
|
61
|
-
Build: string,
|
|
62
|
-
[string]: mixed,
|
|
63
|
-
},
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Tell Hermes that at this point the surface has transitioned from TTI to
|
|
67
|
-
* post-TTI. The VM can change some of its internal behavior to optimize for
|
|
68
|
-
* post-TTI scenarios.
|
|
69
|
-
* This can be called several times but will have no effect after the first
|
|
70
|
-
* call.
|
|
71
|
-
*/
|
|
72
|
-
+ttiReached?: () => void,
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Tell Hermes that at this point the surface has transitioned from TTRC to
|
|
76
|
-
* post-TTRC. The VM can change some of its internal behavior to optimize for
|
|
77
|
-
* post-TTRC scenarios.
|
|
78
|
-
* This can be called several times but will have no effect after the first
|
|
79
|
-
* call.
|
|
80
|
-
*/
|
|
81
|
-
+ttrcReached?: () => void,
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Query the VM to see whether or not it enabled Promise.
|
|
85
|
-
*/
|
|
86
|
-
+hasPromise?: () => boolean,
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Enable promise rejection tracking with the given options.
|
|
90
|
-
* The API mirrored the `promise` npm package, therefore it's typed same as
|
|
91
|
-
* the `enable` function of module `promise/setimmediate/rejection-tracking`
|
|
92
|
-
* declared in ./flow-typed/npm/promise_v8.x.x.js.
|
|
93
|
-
*/
|
|
94
|
-
+enablePromiseRejectionTracker?: (
|
|
95
|
-
options: ?{
|
|
96
|
-
whitelist?: ?Array<mixed>,
|
|
97
|
-
allRejections?: ?boolean,
|
|
98
|
-
onUnhandled?: ?(number, mixed) => void,
|
|
99
|
-
onHandled?: ?(number, mixed) => void,
|
|
100
|
-
},
|
|
101
|
-
) => void,
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Query the VM to see whether or not it use the engine Job queue.
|
|
105
|
-
*/
|
|
106
|
-
+useEngineQueue?: () => boolean,
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Enqueue a JavaScript callback function as a Job into the engine Job queue.
|
|
110
|
-
*/
|
|
111
|
-
+enqueueJob?: <TArguments: Array<mixed>>(
|
|
112
|
-
jobCallback: (...args: TArguments) => mixed,
|
|
113
|
-
) => void,
|
|
114
|
-
};
|