react-native-windows 0.71.7 → 0.72.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.flowconfig +13 -3
- package/Directory.Build.props +19 -19
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
- package/Libraries/Alert/Alert.d.ts +4 -4
- package/Libraries/Alert/Alert.windows.js +2 -0
- package/Libraries/Alert/NativeDialogManagerWindows.js +1 -0
- package/Libraries/Animated/Animated.d.ts +17 -6
- package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
- package/Libraries/Animated/bezier.js +1 -1
- package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
- package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
- package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
- package/Libraries/Animated/createAnimatedComponent.js +26 -239
- package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
- package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
- package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedProps.js +7 -10
- package/Libraries/AppTheme/AppTheme.js +1 -0
- package/Libraries/AppTheme/AppThemeTypes.d.ts +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +2 -1
- package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -0
- package/Libraries/Blob/Blob.js +4 -0
- package/Libraries/Blob/FileReader.js +30 -2
- package/Libraries/Blob/URL.js +3 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -3
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
- package/Libraries/Components/Button.js +3 -2
- package/Libraries/Components/Button.windows.js +3 -2
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
- package/Libraries/Components/Flyout/Flyout.d.ts +55 -19
- package/Libraries/Components/Flyout/Flyout.js +110 -51
- package/Libraries/Components/Flyout/FlyoutNativeComponent.js +45 -0
- package/Libraries/Components/Glyph/Glyph.d.ts +29 -12
- package/Libraries/Components/Glyph/Glyph.js +43 -30
- package/Libraries/Components/Glyph/GlyphNativeComponent.js +31 -0
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
- package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +2 -2
- package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
- package/Libraries/Components/Popup/Popup.d.ts +41 -19
- package/Libraries/Components/Popup/Popup.js +86 -52
- package/Libraries/Components/Popup/PopupNativeComponent.js +49 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
- package/Libraries/Components/Pressable/Pressable.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
- package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +1 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
- package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
- package/Libraries/Components/ScrollView/ScrollView.js +149 -91
- package/Libraries/Components/ScrollView/ScrollView.windows.js +1939 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +175 -0
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +3 -0
- package/Libraries/Components/Switch/Switch.js +3 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
- package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
- package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
- package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
- package/Libraries/Components/TextInput/TextInput.js +130 -103
- package/Libraries/Components/TextInput/TextInput.windows.js +152 -115
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
- package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
- package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
- package/Libraries/Components/Touchable/Touchable.js +6 -3
- package/Libraries/Components/Touchable/Touchable.windows.js +6 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +2 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +189 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
- package/Libraries/Components/View/View.js +71 -45
- package/Libraries/Components/View/View.windows.js +40 -16
- package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
- package/Libraries/Components/View/ViewAccessibility.js +10 -1
- package/Libraries/Components/View/ViewAccessibility.windows.js +9 -0
- package/Libraries/Components/View/ViewNativeComponent.js +32 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
- package/Libraries/Components/View/ViewPropTypes.js +1 -1
- package/Libraries/Components/View/ViewPropTypes.windows.js +3 -1
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
- package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/InitializeCore.js +2 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +1 -9
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/immediateShim.js +1 -0
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/setUpAlert.js +1 -1
- package/Libraries/Core/setUpDOM.js +18 -0
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpGlobals.js +5 -2
- package/Libraries/Core/setUpNavigator.js +6 -5
- package/Libraries/Core/setUpPerformance.js +23 -13
- package/Libraries/Core/setUpReactDevTools.js +2 -0
- package/Libraries/Core/setUpSegmentFetcher.js +0 -41
- package/Libraries/Core/setUpTimers.js +2 -2
- package/Libraries/DOM/Geometry/DOMRect.js +82 -0
- package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
- package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
- package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
- package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
- package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
- package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +35 -0
- package/Libraries/{Utilities/NativeDevSplitBundleLoader.js → DevToolsSettings/NativeDevToolsSettingsManager.js} +7 -2
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
- package/Libraries/Events/EventPolyfill.js +1 -1
- package/Libraries/Image/AssetRegistry.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +3 -3
- package/Libraries/Image/Image.android.js +4 -1
- package/Libraries/Image/Image.d.ts +63 -2
- package/Libraries/Image/Image.ios.js +3 -0
- package/Libraries/Image/Image.windows.js +3 -0
- package/Libraries/Image/ImageBackground.js +1 -0
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +4 -4
- package/Libraries/Image/RelativeImageStub.js +1 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Inspector/DevtoolsOverlay.js +29 -19
- package/Libraries/Inspector/ElementBox.js +4 -1
- package/Libraries/Inspector/Inspector.js +5 -6
- package/Libraries/Inspector/InspectorOverlay.js +3 -3
- package/Libraries/Inspector/NetworkOverlay.js +1 -1
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
- package/Libraries/Interaction/PanResponder.js +5 -6
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
- package/Libraries/Linking/Linking.js +1 -4
- package/Libraries/Lists/FillRateHelper.js +4 -238
- package/Libraries/Lists/FlatList.d.ts +15 -22
- package/Libraries/Lists/FlatList.js +9 -6
- package/Libraries/Lists/SectionList.d.ts +10 -6
- package/Libraries/Lists/SectionList.js +5 -3
- package/Libraries/Lists/SectionListModern.js +3 -3
- package/Libraries/Lists/ViewabilityHelper.js +8 -344
- package/Libraries/Lists/VirtualizeUtils.js +4 -244
- package/Libraries/Lists/VirtualizedList.js +10 -1867
- package/Libraries/Lists/VirtualizedListContext.js +6 -104
- package/Libraries/Lists/VirtualizedSectionList.js +9 -602
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +167 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +172 -0
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +193 -0
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +118 -0
- package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
- package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
- package/Libraries/Modal/Modal.js +2 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +77 -19
- package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
- package/Libraries/NativeComponent/ViewConfig.js +1 -0
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.windows.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/Pressability/Pressability.js +11 -5
- package/Libraries/Pressability/Pressability.windows.js +11 -4
- package/Libraries/ReactNative/AppContainer.js +7 -1
- package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
- package/Libraries/ReactNative/AppRegistry.js +10 -13
- package/Libraries/ReactNative/FabricUIManager.js +24 -8
- package/Libraries/ReactNative/NativeUIManager.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
- package/Libraries/ReactNative/UIManager.js +142 -1
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
- package/Libraries/ReactNative/requireNativeComponent.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
- package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +38 -20
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
- package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
- package/Libraries/StyleSheet/flattenStyle.js +2 -0
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/Text/Text.d.ts +12 -2
- package/Libraries/Text/Text.js +50 -41
- package/Libraries/Text/Text.windows.js +48 -38
- package/Libraries/Text/TextProps.js +3 -4
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CodegenTypes.js +1 -0
- package/Libraries/UTFSequence.js +3 -1
- package/Libraries/Utilities/Appearance.d.ts +10 -0
- package/Libraries/Utilities/Appearance.js +13 -0
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
- package/Libraries/Utilities/HMRClient.js +16 -10
- package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
- package/Libraries/Utilities/IPerformanceLogger.js +49 -0
- package/Libraries/Utilities/LoadingView.android.js +28 -11
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
- package/Libraries/Utilities/PixelRatio.js +2 -2
- package/Libraries/Utilities/Platform.windows.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +2 -0
- package/Libraries/Utilities/createPerformanceLogger.js +55 -43
- package/Libraries/Utilities/stringifySafe.js +2 -7
- package/Libraries/Utilities/useColorScheme.js +1 -1
- package/Libraries/Utilities/useWindowDimensions.js +3 -3
- package/Libraries/WebPerformance/EventCounts.js +78 -0
- package/Libraries/WebPerformance/MemoryInfo.js +54 -0
- package/Libraries/WebPerformance/NativePerformance.js +38 -0
- package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
- package/Libraries/WebPerformance/Performance.js +312 -0
- package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
- package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
- package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
- package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
- package/Libraries/platform-types.d.ts +3 -5
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
- package/Libraries/vendor/emitter/EventEmitter.js +9 -1
- package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -15
- package/Microsoft.ReactNative/CompositionHwndHost.idl +6 -0
- package/Microsoft.ReactNative/CompositionRootView.idl +35 -0
- package/Microsoft.ReactNative/CompositionSwitcher.idl +19 -0
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +174 -0
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +91 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +48 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.h +48 -0
- package/Microsoft.ReactNative/Fabric/ComponentView.h +19 -2
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +144 -0
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +63 -0
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +27 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +97 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +227 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +38 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +112 -95
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +12 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +27 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +8 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +147 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +46 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +31 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +37 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +255 -50
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +34 -15
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +127 -47
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +11 -7
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +109 -39
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +10 -7
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +106 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +63 -0
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +116 -0
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +43 -0
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +53 -38
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +12 -8
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +262 -0
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +62 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +35 -30
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +11 -9
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +9 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +2 -1
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +72 -0
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +16 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +168 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +49 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +19 -53
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +8 -9
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +100 -0
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +43 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +61 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +34 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +42 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +10 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +248 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +135 -4
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +18 -240
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -17
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +13 -2
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +87 -0
- package/Microsoft.ReactNative/IReactContext.cpp +4 -0
- package/Microsoft.ReactNative/IReactContext.h +1 -0
- package/Microsoft.ReactNative/IReactContext.idl +5 -0
- package/Microsoft.ReactNative/IReactDispatcher.cpp +4 -0
- package/Microsoft.ReactNative/IReactDispatcher.h +1 -0
- package/Microsoft.ReactNative/IReactPackageBuilderFabric.idl +23 -0
- package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +23 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -118
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -7
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +100 -4
- package/Microsoft.ReactNative/Modules/AlertModule.h +4 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +9 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +2 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +7 -5
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +17 -3
- package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +1 -0
- package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +4 -0
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +3 -0
- package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +4 -4
- package/Microsoft.ReactNative/Modules/ClipboardModule.h +2 -2
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +27 -7
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +9 -5
- package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +10 -12
- package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +4 -4
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -1
- package/Microsoft.ReactNative/QuirkSettings.cpp +17 -0
- package/Microsoft.ReactNative/QuirkSettings.h +5 -0
- package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
- package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
- package/Microsoft.ReactNative/ReactApplication.h +3 -0
- package/Microsoft.ReactNative/ReactApplication.idl +3 -0
- package/Microsoft.ReactNative/ReactCoreInjection.cpp +29 -0
- package/Microsoft.ReactNative/ReactCoreInjection.h +6 -0
- package/Microsoft.ReactNative/ReactCoreInjection.idl +13 -0
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
- package/Microsoft.ReactNative/ReactHost/React.h +2 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +57 -16
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
- package/Microsoft.ReactNative/ReactInstanceSettings.h +12 -0
- package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
- package/Microsoft.ReactNative/ReactNativeHost.cpp +17 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +18 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.h +24 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +2 -2
- package/Microsoft.ReactNative/RedBox.cpp +2 -1
- package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -32
- package/Microsoft.ReactNative/Utils/Helpers.h +0 -8
- package/Microsoft.ReactNative/Utils/ImageUtils.cpp +69 -6
- package/Microsoft.ReactNative/Utils/ImageUtils.h +3 -1
- package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +416 -0
- package/Microsoft.ReactNative/Utils/KeyboardUtils.h +15 -0
- package/Microsoft.ReactNative/Utils/TransformableText.h +1 -0
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -9
- package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -2
- package/Microsoft.ReactNative/ViewProps.idl +30 -0
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
- package/Microsoft.ReactNative/Views/DevMenu.cpp +369 -230
- package/Microsoft.ReactNative/Views/DevMenu.h +3 -15
- package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +6 -3
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +11 -3
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +5 -1
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +29 -22
- package/Microsoft.ReactNative/Views/Image/ReactImage.h +2 -2
- package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +10 -405
- package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -3
- package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -0
- package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
- package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +6 -1
- package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -0
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +38 -2
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +3 -0
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -4
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -8
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +1 -1
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +12 -3
- package/Microsoft.ReactNative/XamlHelper.cpp +36 -0
- package/Microsoft.ReactNative/XamlHelper.h +27 -0
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +4 -4
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +4 -4
- package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -8
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +4 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +3 -0
- package/Microsoft.ReactNative.Cxx/NativeModules.h +16 -1
- package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
- package/Microsoft.ReactNative.Managed/packages.lock.json +5 -5
- package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +3 -0
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/JSEngine.props +2 -3
- package/PropertySheets/Warnings.props +1 -1
- package/ReactCommon/ReactCommon.vcxproj +2 -4
- package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
- package/ReactCommon/Yoga.cpp +60 -127
- package/Scripts/OfficeReact.Win32.nuspec +1 -0
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
- package/Scripts/rnw-dependencies.ps1 +12 -4
- package/Shared/Composition/CompositionSwitcher.interop.h +1 -0
- package/Shared/DevServerHelper.h +11 -2
- package/Shared/DevSettings.h +1 -0
- package/Shared/DevSupportManager.cpp +11 -1
- package/Shared/DevSupportManager.h +1 -0
- package/Shared/HermesRuntimeHolder.cpp +53 -30
- package/Shared/HermesRuntimeHolder.h +26 -11
- package/Shared/HermesSamplingProfiler.cpp +61 -8
- package/Shared/HermesSamplingProfiler.h +6 -3
- package/Shared/HermesShim.cpp +86 -82
- package/Shared/HermesShim.h +28 -8
- package/Shared/JSI/ChakraRuntime.cpp +7 -4
- package/Shared/JSI/ChakraRuntime.h +4 -4
- package/Shared/JSI/NapiJsiV8RuntimeHolder.h +2 -0
- package/Shared/JSI/RuntimeHolder.h +2 -2
- package/Shared/Logging.cpp +1 -1
- package/Shared/Modules/BlobModule.cpp +3 -4
- package/Shared/Modules/BlobModule.h +0 -4
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +13 -17
- package/Shared/Networking/OriginPolicyHttpFilter.h +11 -12
- package/Shared/Networking/WinRTWebSocketResource.cpp +59 -45
- package/Shared/OInstance.cpp +9 -2
- package/Shared/Shared.vcxitems +265 -58
- package/Shared/Shared.vcxitems.filters +312 -42
- package/Shared/V8JSIRuntimeHolder.cpp +1 -0
- package/Shared/V8JSIRuntimeHolder.h +7 -2
- package/codegen/NativeAppearanceSpec.g.h +9 -3
- package/codegen/NativeClipboardSpec.g.h +3 -3
- package/codegen/NativeDevToolsSettingsManagerSpec.g.h +51 -0
- package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -0
- package/codegen/NativeFileReaderModuleSpec.g.h +6 -6
- package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +3 -3
- package/codegen/NativeImageLoaderAndroidSpec.g.h +25 -9
- package/codegen/NativeImageLoaderIOSSpec.g.h +20 -12
- package/codegen/NativeIntentAndroidSpec.g.h +15 -15
- package/codegen/NativeLinkingManagerSpec.g.h +12 -12
- package/codegen/NativePerformanceObserverSpec.g.h +48 -10
- package/codegen/NativePerformanceSpec.g.h +63 -0
- package/codegen/NativePermissionsAndroidSpec.g.h +9 -9
- package/codegen/NativePlatformConstantsWinSpec.g.h +1 -1
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +6 -6
- package/codegen/NativeSampleTurboModuleSpec.g.h +25 -19
- package/codegen/NativeShareModuleSpec.g.h +9 -3
- package/codegen/NativeUIManagerSpec.g.h +12 -12
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +1 -2
- package/codegen/react/components/rnwcore/EventEmitters.cpp +21 -29
- package/codegen/react/components/rnwcore/EventEmitters.h +30 -30
- package/codegen/react/components/rnwcore/Props.cpp +47 -48
- package/codegen/react/components/rnwcore/Props.h +59 -166
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +1 -2
- package/codegen/react/components/rnwcore/ShadowNodes.h +11 -22
- package/codegen/react/components/rnwcore/States.h +15 -30
- package/codegen/rnwcoreJSI-generated.cpp +87 -25
- package/codegen/rnwcoreJSI.h +1077 -417
- package/generate.js +6 -1
- package/include/Include.vcxitems +0 -1
- package/include/Include.vcxitems.filters +0 -3
- package/index.js +56 -42
- package/index.windows.js +56 -42
- package/interface.js +1 -1
- package/jest/local-setup.js +33 -0
- package/jest/mockComponent.js +4 -2
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mockScrollView.js +2 -1
- package/jest/react-native-env.js +1 -3
- package/jest/setup.js +11 -8
- package/just-task.js +12 -5
- package/package.json +32 -29
- package/rn-get-polyfills.js +1 -1
- package/template/metro.config.js +2 -0
- package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
- package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
- package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
- package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
- package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +0 -47
- package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
- package/Libraries/Components/Flyout/Flyout.js.map +0 -1
- package/Libraries/Components/Flyout/FlyoutProps.d.ts +0 -25
- package/Libraries/Components/Flyout/FlyoutProps.js +0 -3
- package/Libraries/Components/Flyout/FlyoutProps.js.map +0 -1
- package/Libraries/Components/Glyph/Glyph.js.map +0 -1
- package/Libraries/Components/Glyph/GlyphProps.d.ts +0 -16
- package/Libraries/Components/Glyph/GlyphProps.js +0 -8
- package/Libraries/Components/Glyph/GlyphProps.js.map +0 -1
- package/Libraries/Components/Popup/Popup.js.map +0 -1
- package/Libraries/Components/Popup/PopupProps.d.ts +0 -27
- package/Libraries/Components/Popup/PopupProps.js +0 -8
- package/Libraries/Components/Popup/PopupProps.js.map +0 -1
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +0 -45
- package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
- package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
- package/Libraries/Components/Slider/Slider.d.ts +0 -132
- package/Libraries/Components/Slider/Slider.js +0 -282
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
- package/Libraries/Interaction/Batchinator.js +0 -76
- package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
- package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
- package/Libraries/Interaction/PanResponder.flow.js +0 -257
- package/Libraries/Lists/CellRenderMask.js +0 -155
- package/Libraries/Lists/ChildListCollection.js +0 -72
- package/Libraries/Lists/StateSafePureComponent.js +0 -85
- package/Libraries/Lists/VirtualizedList.d.ts +0 -347
- package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
- package/Libraries/Lists/VirtualizedListProps.js +0 -279
- package/Libraries/Performance/PureComponentDebug.js +0 -74
- package/Libraries/Reliability/UserFlow.js +0 -158
- package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
- package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
- package/Libraries/Utilities/MatrixMath.js +0 -748
- package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
- package/Libraries/Utilities/clamp.js +0 -23
- package/Libraries/Utilities/deprecatedPropType.js +0 -36
- package/Libraries/Utilities/groupByEveryN.js +0 -51
- package/Libraries/Utilities/mergeIntoFast.js +0 -26
- package/Libraries/Utilities/setAndForwardRef.js +0 -71
- package/Libraries/Utilities/truncate.js +0 -51
- package/Microsoft.ReactNative/Fabric/platform/react/components/image/conversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ConcreteViewShadowNode.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewEventEmitter.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewProps.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/ConcreteComponentDescriptor.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/PropsParserContext.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/propsConversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/graphics/Color.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/imagemanager/primitives.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputProps.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputState.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/conversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/primitives.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/propsConversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +0 -135
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +0 -217
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +0 -100
- package/Shared/AsyncStorage/AsyncStorageManager.cpp +0 -149
- package/Shared/AsyncStorage/AsyncStorageManager.h +0 -71
- package/Shared/AsyncStorage/FollyDynamicConverter.cpp +0 -51
- package/Shared/AsyncStorage/FollyDynamicConverter.h +0 -24
- package/Shared/AsyncStorage/KeyValueStorage.cpp +0 -248
- package/Shared/AsyncStorage/KeyValueStorage.h +0 -50
- package/Shared/AsyncStorage/StorageFileIO.cpp +0 -160
- package/Shared/AsyncStorage/StorageFileIO.h +0 -40
- package/Shared/AsyncStorageModule.h +0 -25
- package/Shared/Modules/AsyncStorageModule.cpp +0 -87
- package/Shared/Modules/AsyncStorageModuleWin32.cpp +0 -496
- package/Shared/Modules/AsyncStorageModuleWin32.h +0 -75
- package/codegen/NativeDatePickerAndroidSpec.g.h +0 -33
- package/codegen/NativeDevSplitBundleLoaderSpec.g.h +0 -33
- package/include/Shared/AsyncStorageModuleWin32Config.h +0 -15
- package/types/index.d.ts +0 -216
- package/types/modules/BatchedBridge.d.ts +0 -32
- package/types/modules/Codegen.d.ts +0 -74
- package/types/modules/Devtools.d.ts +0 -31
- package/types/modules/LaunchScreen.d.ts +0 -18
- package/types/modules/globals.d.ts +0 -577
- package/types/private/TimerMixin.d.ts +0 -19
- package/types/private/Utilities.d.ts +0 -10
- package/types/public/DeprecatedPropertiesAlias.d.ts +0 -205
- package/types/public/Insets.d.ts +0 -15
- package/types/public/ReactNativeRenderer.d.ts +0 -149
- package/types/public/ReactNativeTypes.d.ts +0 -143
|
@@ -1,496 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
|
|
4
|
-
#include "pch.h"
|
|
5
|
-
|
|
6
|
-
#include "AsyncStorageModuleWin32.h"
|
|
7
|
-
#include "AsyncStorageModuleWin32Config.h"
|
|
8
|
-
|
|
9
|
-
#include <cstdio>
|
|
10
|
-
|
|
11
|
-
/// Implements AsyncStorageModule using winsqlite3.dll (requires Windows version 10.0.10586)
|
|
12
|
-
|
|
13
|
-
using facebook::react::AsyncStorageModuleWin32;
|
|
14
|
-
using facebook::xplat::module::CxxModule;
|
|
15
|
-
|
|
16
|
-
namespace {
|
|
17
|
-
|
|
18
|
-
std::string &AsyncStorageDBPath() {
|
|
19
|
-
static std::string asyncStorageDBPath;
|
|
20
|
-
return asyncStorageDBPath;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
void InvokeError(const CxxModule::Callback &callback, const char *message) {
|
|
24
|
-
callback({folly::dynamic::object("message", message)});
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
using ExecCallback = int(SQLITE_CALLBACK *)(void *, int, char **, char **);
|
|
28
|
-
|
|
29
|
-
// Execute the provided SQLite statement (and optional execCallback & user data
|
|
30
|
-
// in pv). On error, throw a runtime_error with the SQLite error message
|
|
31
|
-
void Exec(sqlite3 *db, const char *statement, ExecCallback execCallback = nullptr, void *pv = nullptr) {
|
|
32
|
-
char *errMsg = nullptr;
|
|
33
|
-
int rc = sqlite3_exec(db, statement, execCallback, pv, &errMsg);
|
|
34
|
-
if (errMsg) {
|
|
35
|
-
std::runtime_error exception(errMsg);
|
|
36
|
-
sqlite3_free(errMsg);
|
|
37
|
-
sqlite3_close(db);
|
|
38
|
-
throw exception;
|
|
39
|
-
}
|
|
40
|
-
if (rc != SQLITE_OK) {
|
|
41
|
-
std::runtime_error exception(sqlite3_errmsg(db));
|
|
42
|
-
sqlite3_free(errMsg);
|
|
43
|
-
sqlite3_close(db);
|
|
44
|
-
throw exception;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// Execute the provided SQLite statement (and optional execCallback & user data
|
|
49
|
-
// in pv). On error, reports it to the callback and returns false.
|
|
50
|
-
bool Exec(
|
|
51
|
-
sqlite3 *db,
|
|
52
|
-
const CxxModule::Callback &callback,
|
|
53
|
-
const char *statement,
|
|
54
|
-
ExecCallback execCallback = nullptr,
|
|
55
|
-
void *pv = nullptr) {
|
|
56
|
-
char *errMsg = nullptr;
|
|
57
|
-
int rc = sqlite3_exec(db, statement, execCallback, pv, &errMsg);
|
|
58
|
-
if (errMsg) {
|
|
59
|
-
InvokeError(callback, errMsg);
|
|
60
|
-
sqlite3_free(errMsg);
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
if (rc != SQLITE_OK) {
|
|
64
|
-
InvokeError(callback, sqlite3_errmsg(db));
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
return true;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Convenience wrapper for using Exec with lambda expressions
|
|
71
|
-
template <class Fn>
|
|
72
|
-
bool Exec(sqlite3 *db, const CxxModule::Callback &callback, const char *statement, Fn &fn) {
|
|
73
|
-
return Exec(
|
|
74
|
-
db,
|
|
75
|
-
callback,
|
|
76
|
-
statement,
|
|
77
|
-
[](void *pv, int i, char **x, char **y) { return (*static_cast<Fn *>(pv))(i, x, y); },
|
|
78
|
-
&fn);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Checks that the args parameter is an array, that args.size() is less than
|
|
82
|
-
// SQLITE_LIMIT_VARIABLE_NUMBER, and that every member of args is a string.
|
|
83
|
-
// Invokes callback to report an error and returns false.
|
|
84
|
-
bool CheckArgs(sqlite3 *db, folly::dynamic &args, const CxxModule::Callback &callback) {
|
|
85
|
-
if (!args.isArray()) {
|
|
86
|
-
InvokeError(callback, "Invalid keys type. Expected an array");
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
int varLimit = sqlite3_limit(db, SQLITE_LIMIT_VARIABLE_NUMBER, -1);
|
|
90
|
-
auto argCount = args.size();
|
|
91
|
-
if (argCount > INT_MAX || static_cast<int>(argCount) > varLimit) {
|
|
92
|
-
char errorMsg[60];
|
|
93
|
-
sprintf_s(errorMsg, "Too many keys. Maximum supported keys :%d", varLimit);
|
|
94
|
-
InvokeError(callback, errorMsg);
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
for (int i = 0; i < static_cast<int>(argCount); i++) {
|
|
98
|
-
if (!args[i].isString()) {
|
|
99
|
-
InvokeError(callback, "Invalid key type. Expected a string");
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// RAII object to manage SQLite transaction. On destruction, if
|
|
106
|
-
// Commit() has not been called, rolls back the transactions
|
|
107
|
-
// The provided sqlite connection handle & Callback must outlive
|
|
108
|
-
// the Sqlite3Transaction object
|
|
109
|
-
class Sqlite3Transaction final {
|
|
110
|
-
sqlite3 *m_db{nullptr};
|
|
111
|
-
const CxxModule::Callback *m_callback{nullptr};
|
|
112
|
-
|
|
113
|
-
public:
|
|
114
|
-
Sqlite3Transaction() = default;
|
|
115
|
-
Sqlite3Transaction(sqlite3 *db, const CxxModule::Callback &callback) : m_db(db), m_callback(&callback) {
|
|
116
|
-
if (!Exec(m_db, *m_callback, "BEGIN TRANSACTION")) {
|
|
117
|
-
m_db = nullptr;
|
|
118
|
-
m_callback = nullptr;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
Sqlite3Transaction(const Sqlite3Transaction &) = delete;
|
|
122
|
-
Sqlite3Transaction(Sqlite3Transaction &&other) noexcept : m_db(other.m_db), m_callback(other.m_callback) {
|
|
123
|
-
other.m_db = nullptr;
|
|
124
|
-
other.m_callback = nullptr;
|
|
125
|
-
}
|
|
126
|
-
Sqlite3Transaction &operator=(const Sqlite3Transaction &) = delete;
|
|
127
|
-
Sqlite3Transaction &operator=(Sqlite3Transaction &&rhs) noexcept {
|
|
128
|
-
if (this != &rhs) {
|
|
129
|
-
Commit();
|
|
130
|
-
std::swap(m_db, rhs.m_db);
|
|
131
|
-
std::swap(m_callback, rhs.m_callback);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
explicit operator bool() const {
|
|
136
|
-
return m_db != nullptr;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
void Rollback() {
|
|
140
|
-
if (m_db) {
|
|
141
|
-
Exec(m_db, *m_callback, "ROLLBACK");
|
|
142
|
-
m_db = nullptr;
|
|
143
|
-
m_callback = nullptr;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
bool Commit() {
|
|
148
|
-
if (!m_db) {
|
|
149
|
-
return false;
|
|
150
|
-
}
|
|
151
|
-
auto result = Exec(m_db, *m_callback, "COMMIT");
|
|
152
|
-
m_db = nullptr;
|
|
153
|
-
m_callback = nullptr;
|
|
154
|
-
return result;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
~Sqlite3Transaction() {
|
|
158
|
-
Rollback();
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
// Appends argcount variables to prefix in a comma-separated list.
|
|
163
|
-
std::string MakeSQLiteParameterizedStatement(const char *prefix, int argCount) {
|
|
164
|
-
assert(argCount != 0);
|
|
165
|
-
std::string result(prefix);
|
|
166
|
-
result.reserve(result.size() + (argCount * 2) + 1);
|
|
167
|
-
result += '(';
|
|
168
|
-
for (int x = 0; x < argCount - 1; x++) {
|
|
169
|
-
result += "?,";
|
|
170
|
-
}
|
|
171
|
-
result += "?)";
|
|
172
|
-
return result;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// Checks if sqliteResult is SQLITE_OK. If not, reports the error via
|
|
176
|
-
// callback & returns false.
|
|
177
|
-
bool CheckSQLiteResult(sqlite3 *db, const CxxModule::Callback &callback, int sqliteResult) {
|
|
178
|
-
if (sqliteResult == SQLITE_OK) {
|
|
179
|
-
return true;
|
|
180
|
-
} else {
|
|
181
|
-
InvokeError(callback, sqlite3_errmsg(db));
|
|
182
|
-
return false;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
using Statement = std::unique_ptr<sqlite3_stmt, decltype(&sqlite3_finalize)>;
|
|
187
|
-
|
|
188
|
-
// Creates a prepared SQLite statement. On error, returns nullptr
|
|
189
|
-
Statement PrepareStatement(sqlite3 *db, const CxxModule::Callback &callback, const char *stmt) {
|
|
190
|
-
sqlite3_stmt *pStmt{nullptr};
|
|
191
|
-
if (!CheckSQLiteResult(db, callback, sqlite3_prepare_v2(db, stmt, -1, &pStmt, nullptr))) {
|
|
192
|
-
return {nullptr, sqlite3_finalize};
|
|
193
|
-
}
|
|
194
|
-
return {pStmt, &sqlite3_finalize};
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// Binds the index-th variable in this prepared statement to str.
|
|
198
|
-
bool BindString(
|
|
199
|
-
sqlite3 *db,
|
|
200
|
-
const CxxModule::Callback &callback,
|
|
201
|
-
const Statement &stmt,
|
|
202
|
-
int index,
|
|
203
|
-
const std::string &str) {
|
|
204
|
-
return CheckSQLiteResult(db, callback, sqlite3_bind_text(stmt.get(), index, str.c_str(), -1, SQLITE_TRANSIENT));
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
} // namespace
|
|
208
|
-
|
|
209
|
-
namespace facebook {
|
|
210
|
-
namespace react {
|
|
211
|
-
|
|
212
|
-
AsyncStorageModuleWin32::AsyncStorageModuleWin32() {
|
|
213
|
-
if (sqlite3_open_v2(
|
|
214
|
-
AsyncStorageDBPath().c_str(),
|
|
215
|
-
&m_db,
|
|
216
|
-
SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_FULLMUTEX,
|
|
217
|
-
nullptr) != SQLITE_OK) {
|
|
218
|
-
auto exception = std::runtime_error(sqlite3_errmsg(m_db));
|
|
219
|
-
sqlite3_close(m_db);
|
|
220
|
-
throw exception;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
int userVersion = 0;
|
|
224
|
-
auto getUserVersionCallback = [](void *pv, int cCol, char **rgszColText, char **rgszColName) {
|
|
225
|
-
if (cCol < 1) {
|
|
226
|
-
return 1;
|
|
227
|
-
}
|
|
228
|
-
*static_cast<int *>(pv) = atoi(rgszColText[0]);
|
|
229
|
-
return SQLITE_OK;
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
Exec(m_db, "PRAGMA user_version", getUserVersionCallback, &userVersion);
|
|
233
|
-
|
|
234
|
-
if (userVersion == 0) {
|
|
235
|
-
Exec(
|
|
236
|
-
m_db,
|
|
237
|
-
"CREATE TABLE IF NOT EXISTS AsyncLocalStorage(key TEXT PRIMARY KEY, value TEXT NOT NULL); PRAGMA user_version=1");
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
AsyncStorageModuleWin32::~AsyncStorageModuleWin32() {
|
|
242
|
-
decltype(m_tasks) tasks;
|
|
243
|
-
{
|
|
244
|
-
// If there is an in-progress async task, cancel it and wait on the
|
|
245
|
-
// condition_variable for the async task to acknowledge cancellation by
|
|
246
|
-
// nulling out m_action. Once m_action is null, it is safe to proceed
|
|
247
|
-
// wth closing the DB connection
|
|
248
|
-
winrt::slim_lock_guard guard{m_lock};
|
|
249
|
-
swap(tasks, m_tasks);
|
|
250
|
-
if (m_action) {
|
|
251
|
-
m_action.Cancel();
|
|
252
|
-
m_cv.wait(m_lock, [this]() { return m_action == nullptr; });
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
sqlite3_close(m_db);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
std::string AsyncStorageModuleWin32::getName() {
|
|
259
|
-
return "AsyncLocalStorage";
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
std::map<std::string, dynamic> AsyncStorageModuleWin32::getConstants() {
|
|
263
|
-
return {};
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
std::vector<CxxModule::Method> AsyncStorageModuleWin32::getMethods() {
|
|
267
|
-
return {
|
|
268
|
-
Method("multiGet", this, &AsyncStorageModuleWin32::multiGet),
|
|
269
|
-
Method("multiSet", this, &AsyncStorageModuleWin32::multiSet),
|
|
270
|
-
Method("multiRemove", this, &AsyncStorageModuleWin32::multiRemove),
|
|
271
|
-
Method("clear", this, &AsyncStorageModuleWin32::clear),
|
|
272
|
-
Method("getAllKeys", this, &AsyncStorageModuleWin32::getAllKeys)};
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
void AsyncStorageModuleWin32::multiGet(folly::dynamic args, Callback jsCallback) {
|
|
276
|
-
auto &keys = args[0];
|
|
277
|
-
if (keys.size() == 0) {
|
|
278
|
-
jsCallback({{}, {}});
|
|
279
|
-
return;
|
|
280
|
-
}
|
|
281
|
-
AddTask(DBTask::Type::multiGet, std::move(keys), std::move(jsCallback));
|
|
282
|
-
}
|
|
283
|
-
void AsyncStorageModuleWin32::multiSet(folly::dynamic args, Callback jsCallback) {
|
|
284
|
-
auto &kvps = args[0];
|
|
285
|
-
if (kvps.size() == 0) {
|
|
286
|
-
jsCallback({});
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
AddTask(DBTask::Type::multiSet, std::move(kvps), std::move(jsCallback));
|
|
290
|
-
}
|
|
291
|
-
void AsyncStorageModuleWin32::multiRemove(folly::dynamic args, Callback jsCallback) {
|
|
292
|
-
auto &keys = args[0];
|
|
293
|
-
if (keys.size() == 0) {
|
|
294
|
-
jsCallback({{}, {}});
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
297
|
-
AddTask(DBTask::Type::multiRemove, std::move(keys), std::move(jsCallback));
|
|
298
|
-
}
|
|
299
|
-
void AsyncStorageModuleWin32::clear(folly::dynamic, Callback jsCallback) {
|
|
300
|
-
AddTask(DBTask::Type::clear, std::move(jsCallback));
|
|
301
|
-
}
|
|
302
|
-
void AsyncStorageModuleWin32::getAllKeys(folly::dynamic, Callback jsCallback) {
|
|
303
|
-
AddTask(DBTask::Type::getAllKeys, std::move(jsCallback));
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// Under the lock, add a task to m_tasks and, if no async task is in progress,
|
|
307
|
-
// schedule it
|
|
308
|
-
void AsyncStorageModuleWin32::AddTask(
|
|
309
|
-
AsyncStorageModuleWin32::DBTask::Type type,
|
|
310
|
-
folly::dynamic &&args,
|
|
311
|
-
Callback &&jsCallback) {
|
|
312
|
-
winrt::slim_lock_guard guard(m_lock);
|
|
313
|
-
m_tasks.emplace_back(type, std::move(args), std::move(jsCallback));
|
|
314
|
-
if (!m_action)
|
|
315
|
-
m_action = RunTasks();
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
// On a background thread, while the async task has not been cancelled and
|
|
319
|
-
// there are more tasks to do, run the tasks. When there are either no more
|
|
320
|
-
// tasks or cancellation has been requested, set m_action to null to report
|
|
321
|
-
// that and complete the coroutine. N.B., it is important that detecting that
|
|
322
|
-
// m_tasks is empty and acknowledging completion is done atomically; otherwise
|
|
323
|
-
// there would be a race between the background task detecting m_tasks.empty()
|
|
324
|
-
// and AddTask checking the coroutine is running.
|
|
325
|
-
winrt::Windows::Foundation::IAsyncAction AsyncStorageModuleWin32::RunTasks() {
|
|
326
|
-
auto cancellationToken = co_await winrt::get_cancellation_token();
|
|
327
|
-
co_await winrt::resume_background();
|
|
328
|
-
while (!cancellationToken()) {
|
|
329
|
-
decltype(m_tasks) tasks;
|
|
330
|
-
sqlite3 *db{nullptr};
|
|
331
|
-
{
|
|
332
|
-
winrt::slim_lock_guard guard(m_lock);
|
|
333
|
-
if (m_tasks.empty()) {
|
|
334
|
-
m_action = nullptr;
|
|
335
|
-
m_cv.notify_all();
|
|
336
|
-
co_return;
|
|
337
|
-
}
|
|
338
|
-
std::swap(tasks, m_tasks);
|
|
339
|
-
db = m_db;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
for (auto &task : tasks) {
|
|
343
|
-
task(db);
|
|
344
|
-
if (cancellationToken())
|
|
345
|
-
break;
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
winrt::slim_lock_guard guard(m_lock);
|
|
349
|
-
m_action = nullptr;
|
|
350
|
-
m_cv.notify_all();
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
void AsyncStorageModuleWin32::DBTask::operator()(sqlite3 *db) {
|
|
354
|
-
switch (m_type) {
|
|
355
|
-
case Type::multiGet:
|
|
356
|
-
multiGet(db);
|
|
357
|
-
break;
|
|
358
|
-
case Type::multiSet:
|
|
359
|
-
multiSet(db);
|
|
360
|
-
break;
|
|
361
|
-
case Type::multiRemove:
|
|
362
|
-
multiRemove(db);
|
|
363
|
-
break;
|
|
364
|
-
case Type::clear:
|
|
365
|
-
clear(db);
|
|
366
|
-
break;
|
|
367
|
-
case Type::getAllKeys:
|
|
368
|
-
getAllKeys(db);
|
|
369
|
-
break;
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
void AsyncStorageModuleWin32::DBTask::multiGet(sqlite3 *db) {
|
|
374
|
-
folly::dynamic result = folly::dynamic::array;
|
|
375
|
-
if (!CheckArgs(db, m_args, m_callback)) {
|
|
376
|
-
return;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
auto argCount = static_cast<int>(m_args.size());
|
|
380
|
-
auto sql = MakeSQLiteParameterizedStatement("SELECT key, value FROM AsyncLocalStorage WHERE key IN ", argCount);
|
|
381
|
-
auto pStmt = PrepareStatement(db, m_callback, sql.data());
|
|
382
|
-
if (!pStmt) {
|
|
383
|
-
return;
|
|
384
|
-
}
|
|
385
|
-
for (int i = 0; i < argCount; i++) {
|
|
386
|
-
if (!BindString(db, m_callback, pStmt, i + 1, m_args[i].getString()))
|
|
387
|
-
return;
|
|
388
|
-
}
|
|
389
|
-
for (auto stepResult = sqlite3_step(pStmt.get()); stepResult != SQLITE_DONE; stepResult = sqlite3_step(pStmt.get())) {
|
|
390
|
-
if (stepResult != SQLITE_ROW) {
|
|
391
|
-
InvokeError(m_callback, sqlite3_errmsg(db));
|
|
392
|
-
return;
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
auto key = reinterpret_cast<const char *>(sqlite3_column_text(pStmt.get(), 0));
|
|
396
|
-
if (!key) {
|
|
397
|
-
InvokeError(m_callback, sqlite3_errmsg(db));
|
|
398
|
-
return;
|
|
399
|
-
}
|
|
400
|
-
auto value = reinterpret_cast<const char *>(sqlite3_column_text(pStmt.get(), 1));
|
|
401
|
-
if (!value) {
|
|
402
|
-
InvokeError(m_callback, sqlite3_errmsg(db));
|
|
403
|
-
return;
|
|
404
|
-
}
|
|
405
|
-
result.push_back(folly::dynamic::array(key, value));
|
|
406
|
-
}
|
|
407
|
-
m_callback({{}, result});
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
void AsyncStorageModuleWin32::DBTask::multiSet(sqlite3 *db) {
|
|
411
|
-
Sqlite3Transaction transaction(db, m_callback);
|
|
412
|
-
if (!transaction) {
|
|
413
|
-
return;
|
|
414
|
-
}
|
|
415
|
-
auto pStmt = PrepareStatement(db, m_callback, "INSERT OR REPLACE INTO AsyncLocalStorage VALUES(?, ?)");
|
|
416
|
-
if (!pStmt) {
|
|
417
|
-
return;
|
|
418
|
-
}
|
|
419
|
-
for (auto &&arg : m_args) {
|
|
420
|
-
if (!BindString(db, m_callback, pStmt, 1, arg[0].getString()) ||
|
|
421
|
-
!BindString(db, m_callback, pStmt, 2, arg[1].getString())) {
|
|
422
|
-
return;
|
|
423
|
-
}
|
|
424
|
-
auto rc = sqlite3_step(pStmt.get());
|
|
425
|
-
if (rc != SQLITE_DONE && !CheckSQLiteResult(db, m_callback, rc)) {
|
|
426
|
-
return;
|
|
427
|
-
}
|
|
428
|
-
if (!CheckSQLiteResult(db, m_callback, sqlite3_reset(pStmt.get()))) {
|
|
429
|
-
return;
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
if (!transaction.Commit()) {
|
|
433
|
-
return;
|
|
434
|
-
}
|
|
435
|
-
m_callback({});
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
void AsyncStorageModuleWin32::DBTask::multiRemove(sqlite3 *db) {
|
|
439
|
-
if (!CheckArgs(db, m_args, m_callback)) {
|
|
440
|
-
return;
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
auto argCount = static_cast<int>(m_args.size());
|
|
444
|
-
auto sql = MakeSQLiteParameterizedStatement("DELETE FROM AsyncLocalStorage WHERE key IN ", argCount);
|
|
445
|
-
auto pStmt = PrepareStatement(db, m_callback, sql.data());
|
|
446
|
-
if (!pStmt) {
|
|
447
|
-
return;
|
|
448
|
-
}
|
|
449
|
-
for (int i = 0; i < argCount; i++) {
|
|
450
|
-
if (!BindString(db, m_callback, pStmt, i + 1, m_args[i].getString()))
|
|
451
|
-
return;
|
|
452
|
-
}
|
|
453
|
-
for (auto stepResult = sqlite3_step(pStmt.get()); stepResult != SQLITE_DONE; stepResult = sqlite3_step(pStmt.get())) {
|
|
454
|
-
if (stepResult != SQLITE_ROW) {
|
|
455
|
-
InvokeError(m_callback, sqlite3_errmsg(db));
|
|
456
|
-
return;
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
m_callback({});
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
void AsyncStorageModuleWin32::DBTask::clear(sqlite3 *db) {
|
|
463
|
-
if (Exec(db, m_callback, "DELETE FROM AsyncLocalStorage")) {
|
|
464
|
-
m_callback({});
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
void AsyncStorageModuleWin32::DBTask::getAllKeys(sqlite3 *db) {
|
|
469
|
-
folly::dynamic result = folly::dynamic::array;
|
|
470
|
-
auto getAllKeysCallback = [&](int cCol, char **rgszColText, char **) {
|
|
471
|
-
if (cCol >= 1) {
|
|
472
|
-
result.push_back(rgszColText[0]);
|
|
473
|
-
}
|
|
474
|
-
return SQLITE_OK;
|
|
475
|
-
};
|
|
476
|
-
|
|
477
|
-
if (Exec(db, m_callback, "SELECT key FROM AsyncLocalStorage", getAllKeysCallback)) {
|
|
478
|
-
m_callback({{}, result});
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
} // namespace react
|
|
483
|
-
} // namespace facebook
|
|
484
|
-
|
|
485
|
-
namespace react {
|
|
486
|
-
namespace windows {
|
|
487
|
-
|
|
488
|
-
REACTWINDOWS_API_(void) SetAsyncStorageDBPath(std::string &&dbPath) {
|
|
489
|
-
if (!AsyncStorageDBPath().empty())
|
|
490
|
-
throw std::logic_error("AsyncStorageDBPath already set");
|
|
491
|
-
|
|
492
|
-
AsyncStorageDBPath() = std::move(dbPath);
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
} // namespace windows
|
|
496
|
-
} // namespace react
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
|
|
4
|
-
#pragma once
|
|
5
|
-
|
|
6
|
-
#include <AsyncStorage/AsyncStorageManager.h>
|
|
7
|
-
#include <cxxreact/CxxModule.h>
|
|
8
|
-
#include <cxxreact/MessageQueueThread.h>
|
|
9
|
-
#include <folly/dynamic.h>
|
|
10
|
-
|
|
11
|
-
#include <winrt/Windows.Foundation.h>
|
|
12
|
-
#include <winsqlite/winsqlite3.h>
|
|
13
|
-
#include <memory>
|
|
14
|
-
|
|
15
|
-
namespace facebook {
|
|
16
|
-
namespace react {
|
|
17
|
-
|
|
18
|
-
class AsyncStorageModuleWin32 : public facebook::xplat::module::CxxModule {
|
|
19
|
-
public:
|
|
20
|
-
AsyncStorageModuleWin32();
|
|
21
|
-
~AsyncStorageModuleWin32();
|
|
22
|
-
std::string getName() override;
|
|
23
|
-
std::map<std::string, dynamic> getConstants() override;
|
|
24
|
-
std::vector<facebook::xplat::module::CxxModule::Method> getMethods() override;
|
|
25
|
-
|
|
26
|
-
private:
|
|
27
|
-
class DBTask {
|
|
28
|
-
public:
|
|
29
|
-
enum class Type { multiGet, multiSet, multiRemove, clear, getAllKeys };
|
|
30
|
-
DBTask(Type type, folly::dynamic &&args, Callback &&callback)
|
|
31
|
-
: m_type{type}, m_args{std::move(args)}, m_callback{std::move(callback)} {}
|
|
32
|
-
DBTask(const DBTask &) = delete;
|
|
33
|
-
DBTask(DBTask &&) = default;
|
|
34
|
-
DBTask &operator=(const DBTask &) = delete;
|
|
35
|
-
DBTask &operator=(DBTask &&) = default;
|
|
36
|
-
void operator()(sqlite3 *db);
|
|
37
|
-
|
|
38
|
-
private:
|
|
39
|
-
Type m_type;
|
|
40
|
-
folly::dynamic m_args;
|
|
41
|
-
Callback m_callback;
|
|
42
|
-
|
|
43
|
-
void multiGet(sqlite3 *db);
|
|
44
|
-
void multiSet(sqlite3 *db);
|
|
45
|
-
void multiRemove(sqlite3 *db);
|
|
46
|
-
void clear(sqlite3 *db);
|
|
47
|
-
void getAllKeys(sqlite3 *db);
|
|
48
|
-
};
|
|
49
|
-
winrt::slim_mutex m_lock;
|
|
50
|
-
winrt::slim_condition_variable m_cv;
|
|
51
|
-
winrt::Windows::Foundation::IAsyncAction m_action{nullptr};
|
|
52
|
-
std::vector<DBTask> m_tasks;
|
|
53
|
-
sqlite3 *m_db;
|
|
54
|
-
|
|
55
|
-
// params - array<std::string> Keys , Callback(error, returnValue)
|
|
56
|
-
void multiGet(folly::dynamic args, Callback jsCallback);
|
|
57
|
-
// params - array<array<std::string>> KeyValuePairs , Callback(error)
|
|
58
|
-
void multiSet(folly::dynamic args, Callback jsCallback);
|
|
59
|
-
// params - array<std::string> Keys , Callback(error)
|
|
60
|
-
void multiRemove(folly::dynamic args, Callback jsCallback);
|
|
61
|
-
// params - args is unused, Callback(error)
|
|
62
|
-
void clear(folly::dynamic, Callback jsCallback);
|
|
63
|
-
// params - args is unused, Callback(error, returnValue)
|
|
64
|
-
void getAllKeys(folly::dynamic, Callback jsCallback);
|
|
65
|
-
|
|
66
|
-
void AddTask(DBTask::Type type, folly::dynamic &&args, Callback &&jsCallback);
|
|
67
|
-
void AddTask(DBTask::Type type, Callback &&jsCallback) {
|
|
68
|
-
AddTask(type, folly::dynamic{}, std::move(jsCallback));
|
|
69
|
-
}
|
|
70
|
-
winrt::Windows::Foundation::IAsyncAction RunTasks();
|
|
71
|
-
|
|
72
|
-
static std::string m_dbPath;
|
|
73
|
-
};
|
|
74
|
-
} // namespace react
|
|
75
|
-
} // namespace facebook
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/*
|
|
3
|
-
* This file is auto-generated from a NativeModule spec file in js.
|
|
4
|
-
*
|
|
5
|
-
* This is a C++ Spec class that should be used with MakeTurboModuleProvider to register native modules
|
|
6
|
-
* in a way that also verifies at compile time that the native module matches the interface required
|
|
7
|
-
* by the TurboModule JS spec.
|
|
8
|
-
*/
|
|
9
|
-
#pragma once
|
|
10
|
-
|
|
11
|
-
#include "NativeModules.h"
|
|
12
|
-
#include <tuple>
|
|
13
|
-
|
|
14
|
-
namespace Microsoft::ReactNativeSpecs {
|
|
15
|
-
|
|
16
|
-
struct DatePickerAndroidSpec : winrt::Microsoft::ReactNative::TurboModuleSpec {
|
|
17
|
-
static constexpr auto methods = std::tuple{
|
|
18
|
-
Method<void(::React::JSValue, Promise<::React::JSValue>) noexcept>{0, L"open"},
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
template <class TModule>
|
|
22
|
-
static constexpr void ValidateModule() noexcept {
|
|
23
|
-
constexpr auto methodCheckResults = CheckMethods<TModule, DatePickerAndroidSpec>();
|
|
24
|
-
|
|
25
|
-
REACT_SHOW_METHOD_SPEC_ERRORS(
|
|
26
|
-
0,
|
|
27
|
-
"open",
|
|
28
|
-
" REACT_METHOD(open) void open(::React::JSValue && options, ::React::ReactPromise<::React::JSValue> &&result) noexcept { /* implementation */ }\n"
|
|
29
|
-
" REACT_METHOD(open) static void open(::React::JSValue && options, ::React::ReactPromise<::React::JSValue> &&result) noexcept { /* implementation */ }\n");
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
} // namespace Microsoft::ReactNativeSpecs
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/*
|
|
3
|
-
* This file is auto-generated from a NativeModule spec file in js.
|
|
4
|
-
*
|
|
5
|
-
* This is a C++ Spec class that should be used with MakeTurboModuleProvider to register native modules
|
|
6
|
-
* in a way that also verifies at compile time that the native module matches the interface required
|
|
7
|
-
* by the TurboModule JS spec.
|
|
8
|
-
*/
|
|
9
|
-
#pragma once
|
|
10
|
-
|
|
11
|
-
#include "NativeModules.h"
|
|
12
|
-
#include <tuple>
|
|
13
|
-
|
|
14
|
-
namespace Microsoft::ReactNativeSpecs {
|
|
15
|
-
|
|
16
|
-
struct DevSplitBundleLoaderSpec : winrt::Microsoft::ReactNative::TurboModuleSpec {
|
|
17
|
-
static constexpr auto methods = std::tuple{
|
|
18
|
-
Method<void(std::string, Promise<::React::JSValue>) noexcept>{0, L"loadBundle"},
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
template <class TModule>
|
|
22
|
-
static constexpr void ValidateModule() noexcept {
|
|
23
|
-
constexpr auto methodCheckResults = CheckMethods<TModule, DevSplitBundleLoaderSpec>();
|
|
24
|
-
|
|
25
|
-
REACT_SHOW_METHOD_SPEC_ERRORS(
|
|
26
|
-
0,
|
|
27
|
-
"loadBundle",
|
|
28
|
-
" REACT_METHOD(loadBundle) void loadBundle(std::string bundlePath, ::React::ReactPromise<::React::JSValue> &&result) noexcept { /* implementation */ }\n"
|
|
29
|
-
" REACT_METHOD(loadBundle) static void loadBundle(std::string bundlePath, ::React::ReactPromise<::React::JSValue> &&result) noexcept { /* implementation */ }\n");
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
} // namespace Microsoft::ReactNativeSpecs
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Microsoft Corporation.
|
|
2
|
-
// Licensed under the MIT License.
|
|
3
|
-
|
|
4
|
-
#pragma once
|
|
5
|
-
|
|
6
|
-
#include <ReactWindowsAPI.h>
|
|
7
|
-
#include <string>
|
|
8
|
-
|
|
9
|
-
namespace react {
|
|
10
|
-
namespace windows {
|
|
11
|
-
|
|
12
|
-
REACTWINDOWS_API_(void) SetAsyncStorageDBPath(std::string &&path);
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
} // namespace react
|