react-native-windows 0.79.5 → 0.80.0-preview.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/.flowconfig +12 -3
  2. package/Directory.Build.props +11 -2
  3. package/Folly/TEMP_UntilFollyUpdate/json/json.cpp +1 -1
  4. package/Libraries/Alert/Alert.d.ts +4 -1
  5. package/Libraries/Alert/Alert.js +3 -0
  6. package/Libraries/Alert/Alert.windows.js +3 -0
  7. package/Libraries/Alert/RCTAlertManager.js +17 -0
  8. package/Libraries/Animated/Animated.js.flow +1 -3
  9. package/Libraries/Animated/AnimatedEvent.js +4 -3
  10. package/Libraries/Animated/AnimatedExports.js +2 -2
  11. package/Libraries/Animated/AnimatedExports.js.flow +140 -0
  12. package/Libraries/Animated/AnimatedImplementation.js +2 -123
  13. package/Libraries/Animated/Easing.js +13 -15
  14. package/Libraries/Animated/animations/Animation.js +8 -4
  15. package/Libraries/Animated/components/AnimatedFlatList.js +7 -6
  16. package/Libraries/Animated/components/AnimatedScrollView.js +48 -42
  17. package/Libraries/Animated/components/AnimatedSectionList.js +11 -7
  18. package/Libraries/Animated/createAnimatedComponent.js +105 -57
  19. package/Libraries/Animated/nodes/AnimatedNode.js +4 -3
  20. package/Libraries/Animated/nodes/AnimatedProps.js +46 -26
  21. package/Libraries/Animated/nodes/AnimatedValue.js +16 -7
  22. package/Libraries/Animated/nodes/AnimatedValueXY.js +3 -1
  23. package/Libraries/AppState/AppState.js +7 -2
  24. package/Libraries/BatchedBridge/MessageQueue.js +2 -2
  25. package/Libraries/BatchedBridge/NativeModules.js +2 -0
  26. package/Libraries/Blob/BlobManager.js +1 -0
  27. package/Libraries/Blob/FileReader.js +219 -8
  28. package/Libraries/Blob/URL.js +37 -12
  29. package/Libraries/Blob/URLSearchParams.js +106 -31
  30. package/Libraries/Blob/URLSearchParams.js.flow +12 -7
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +1 -1
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +1 -1
  33. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js +17 -0
  34. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +1 -0
  35. package/Libraries/Components/Button.d.ts +3 -0
  36. package/Libraries/Components/Button.js +1 -1
  37. package/Libraries/Components/Button.windows.js +27 -1
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -3
  39. package/Libraries/{NewAppScreen/components/Colors.js → Components/DrawerAndroid/DrawerLayoutAndroid.ios.js} +6 -10
  40. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +6 -66
  41. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +18 -0
  42. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +71 -0
  43. package/Libraries/Components/Flyout/Flyout.js +11 -0
  44. package/Libraries/Components/Keyboard/Keyboard.js +5 -3
  45. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +6 -3
  46. package/Libraries/Components/Keyboard/KeyboardExt.js.map +1 -1
  47. package/Libraries/Components/Popup/Popup.js +11 -0
  48. package/Libraries/Components/Pressable/Pressable.js +20 -4
  49. package/Libraries/Components/Pressable/Pressable.windows.js +20 -4
  50. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +25 -3
  51. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +29 -20
  52. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  53. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -1
  54. package/Libraries/Components/ScrollView/ScrollView.d.ts +3 -3
  55. package/Libraries/Components/ScrollView/ScrollView.js +132 -122
  56. package/Libraries/Components/ScrollView/ScrollView.windows.js +131 -122
  57. package/Libraries/Components/StaticRenderer.js +1 -1
  58. package/Libraries/Components/Switch/Switch.d.ts +3 -0
  59. package/Libraries/Components/Switch/Switch.js +8 -4
  60. package/Libraries/Components/Switch/Switch.windows.js +17 -4
  61. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -1
  62. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -4
  63. package/Libraries/Components/TextInput/TextInput.d.ts +70 -33
  64. package/Libraries/Components/TextInput/TextInput.flow.js +100 -51
  65. package/Libraries/Components/TextInput/TextInput.flow.windows.js +1246 -0
  66. package/Libraries/Components/TextInput/TextInput.js +88 -1027
  67. package/Libraries/Components/TextInput/TextInput.windows.js +104 -1092
  68. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  69. package/Libraries/Components/TextInput/TextInputState.windows.js +1 -1
  70. package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +2 -1
  71. package/Libraries/{Modal/ModalInjection.js → Components/ToastAndroid/ToastAndroid.ios.js} +3 -5
  72. package/Libraries/Components/ToastAndroid/ToastAndroid.js +4 -32
  73. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +109 -0
  74. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +45 -0
  75. package/Libraries/Components/Touchable/Touchable.js +5 -5
  76. package/Libraries/Components/Touchable/Touchable.windows.js +5 -5
  77. package/Libraries/Components/Touchable/TouchableBounce.js +14 -7
  78. package/Libraries/Components/Touchable/TouchableBounce.windows.js +14 -7
  79. package/Libraries/Components/Touchable/TouchableHighlight.js +10 -7
  80. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +10 -7
  81. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +6 -6
  82. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +6 -6
  83. package/Libraries/Components/Touchable/TouchableOpacity.js +13 -6
  84. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +13 -6
  85. package/Libraries/Components/View/View.js +18 -21
  86. package/Libraries/Components/View/View.windows.js +39 -41
  87. package/Libraries/Components/View/ViewAccessibility.d.ts +8 -0
  88. package/Libraries/Components/View/ViewAccessibility.js +25 -1
  89. package/Libraries/Components/View/ViewAccessibility.windows.js +9 -1
  90. package/Libraries/Components/View/ViewPropTypes.js +49 -3
  91. package/Libraries/Components/View/ViewPropTypes.windows.js +50 -2
  92. package/Libraries/Core/ReactNativeVersion.js +1 -1
  93. package/Libraries/Core/setUpReactDevTools.js +5 -5
  94. package/Libraries/Debugging/DebuggingOverlayRegistry.js +3 -3
  95. package/Libraries/EventEmitter/NativeEventEmitter.js +9 -4
  96. package/Libraries/Image/AssetSourceResolver.js +17 -4
  97. package/Libraries/Image/AssetSourceResolver.windows.js +17 -4
  98. package/Libraries/Image/Image.d.ts +26 -10
  99. package/Libraries/Image/Image.js +17 -0
  100. package/Libraries/Image/Image.js.flow +5 -5
  101. package/Libraries/Image/Image.windows.js +13 -1
  102. package/Libraries/Image/ImageBackground.js +2 -0
  103. package/Libraries/Image/ImageInjection.js +1 -1
  104. package/Libraries/Image/ImageProps.js +22 -17
  105. package/Libraries/Image/ImageSource.js +3 -1
  106. package/Libraries/Image/ImageSourceUtils.js +4 -2
  107. package/Libraries/Image/ImageTypes.flow.js +1 -1
  108. package/Libraries/Interaction/InteractionManager.d.ts +13 -0
  109. package/Libraries/Interaction/InteractionManager.js +1 -1
  110. package/Libraries/Interaction/PanResponder.js +3 -3
  111. package/Libraries/Interaction/TaskQueue.js +1 -0
  112. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -2
  113. package/Libraries/Linking/Linking.js +1 -1
  114. package/Libraries/Lists/FlatList.d.ts +2 -2
  115. package/Libraries/Lists/FlatList.js +8 -11
  116. package/Libraries/Lists/SectionList.js +39 -42
  117. package/Libraries/Lists/SectionListModern.js +25 -34
  118. package/Libraries/Lists/VirtualizedList.js +1 -0
  119. package/Libraries/Lists/VirtualizedSectionList.js +1 -0
  120. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  121. package/Libraries/LogBox/LogBoxNotificationContainer.js +1 -1
  122. package/Libraries/Modal/Modal.js +33 -7
  123. package/Libraries/Modal/Modal.windows.js +33 -10
  124. package/Libraries/NativeComponent/BaseViewConfig.android.js +2 -0
  125. package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -0
  126. package/Libraries/NativeComponent/BaseViewConfig.js +17 -0
  127. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -0
  128. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +2 -2
  129. package/Libraries/NativeModules/specs/NativeDevMenu.js +2 -2
  130. package/Libraries/Network/RCTNetworking.android.js +1 -1
  131. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  132. package/Libraries/Network/RCTNetworking.js +17 -0
  133. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  134. package/Libraries/Network/RCTNetworking.windows.js +1 -1
  135. package/Libraries/Network/XMLHttpRequest.js +781 -10
  136. package/Libraries/Performance/Systrace.js +7 -7
  137. package/Libraries/Pressability/Pressability.js +1 -1
  138. package/Libraries/Pressability/Pressability.windows.js +1 -1
  139. package/Libraries/ReactNative/AppContainer-dev.js +5 -4
  140. package/Libraries/ReactNative/AppRegistry.flow.js +49 -0
  141. package/Libraries/ReactNative/AppRegistry.js +2 -322
  142. package/Libraries/ReactNative/AppRegistry.js.flow +23 -0
  143. package/Libraries/ReactNative/AppRegistryImpl.js +316 -0
  144. package/Libraries/ReactNative/FabricUIManager.js +10 -0
  145. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -4
  146. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -4
  147. package/Libraries/ReactNative/RendererImplementation.js +10 -5
  148. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -0
  149. package/Libraries/ReactNative/renderApplication.js +9 -0
  150. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +3 -3
  151. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +51 -0
  152. package/Libraries/Renderer/implementations/ReactFabric-dev.js +4840 -4748
  153. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4947 -4829
  154. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3998 -3888
  155. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +5005 -4948
  156. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +2744 -2652
  157. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +5020 -4933
  158. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -3
  159. package/Libraries/Settings/Settings.ios.js +1 -0
  160. package/Libraries/Settings/Settings.js +13 -19
  161. package/Libraries/Settings/SettingsFallback.js +33 -0
  162. package/Libraries/StyleSheet/PlatformColorValueTypes.js +15 -0
  163. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +6 -0
  164. package/Libraries/StyleSheet/Rect.js +1 -0
  165. package/Libraries/StyleSheet/StyleSheet.js +31 -200
  166. package/Libraries/StyleSheet/StyleSheet.js.flow +188 -0
  167. package/Libraries/StyleSheet/StyleSheetExports.js +210 -0
  168. package/Libraries/StyleSheet/StyleSheetExports.js.flow +112 -0
  169. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  170. package/Libraries/StyleSheet/StyleSheetTypes.js +130 -52
  171. package/Libraries/StyleSheet/flattenStyle.js +14 -4
  172. package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
  173. package/Libraries/StyleSheet/processBackgroundImage.js +670 -214
  174. package/Libraries/Text/Text.d.ts +2 -5
  175. package/Libraries/Text/Text.js +3 -3
  176. package/Libraries/Text/Text.windows.js +3 -3
  177. package/Libraries/Text/TextNativeComponent.js +0 -4
  178. package/Libraries/Text/TextProps.js +5 -33
  179. package/Libraries/Text/TextProps.windows.js +5 -32
  180. package/Libraries/Types/CodegenTypesNamespace.d.ts +45 -0
  181. package/Libraries/{Blob/__mocks__/BlobModule.js → Types/CodegenTypesNamespace.js} +4 -6
  182. package/Libraries/Types/CoreEventTypes.d.ts +6 -1
  183. package/Libraries/Types/CoreEventTypes.js +1 -1
  184. package/Libraries/Types/CoreEventTypes.windows.js +1 -1
  185. package/Libraries/Utilities/Appearance.js +2 -0
  186. package/Libraries/Utilities/BackHandler.js +17 -0
  187. package/Libraries/Utilities/DeviceInfo.js +2 -0
  188. package/Libraries/Utilities/Dimensions.js +1 -1
  189. package/Libraries/Utilities/Platform.js +17 -0
  190. package/Libraries/Utilities/PlatformTypes.js +11 -3
  191. package/Libraries/Utilities/ReactNativeTestTools.js +2 -2
  192. package/Libraries/Utilities/codegenNativeCommands.d.ts +18 -0
  193. package/Libraries/Utilities/codegenNativeComponent.d.ts +26 -0
  194. package/Libraries/WebSocket/WebSocket.js +313 -8
  195. package/Libraries/vendor/core/ErrorUtils.js +28 -2
  196. package/Libraries/vendor/emitter/EventEmitter.js +6 -2
  197. package/Microsoft.ReactNative/CompositionSwitcher.idl +3 -0
  198. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +0 -6
  199. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +248 -6
  200. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +55 -160
  201. package/Microsoft.ReactNative/Fabric/Composition/CompositionTextRangeProvider.cpp +30 -9
  202. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +36 -0
  203. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +36 -33
  204. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +22 -0
  205. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +3 -0
  206. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +46 -0
  207. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +4 -1
  208. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +11 -0
  209. package/Microsoft.ReactNative/Fabric/Composition/TextDrawing.cpp +37 -5
  210. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +177 -25
  211. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +4 -0
  212. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.cpp +29 -0
  213. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputEventEmitter.h +2 -0
  214. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +17 -34
  215. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +225 -0
  216. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +23 -0
  217. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +9 -3
  218. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -0
  219. package/Microsoft.ReactNative/Fabric/ImageManager.cpp +1 -1
  220. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.cpp +16 -0
  221. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewEventEmitter.h +1 -0
  222. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +9 -0
  223. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +1 -0
  224. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +4 -0
  225. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.cpp +64 -0
  226. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/PlatformColorUtils.h +11 -0
  227. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +36 -96
  228. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.h +1 -1
  229. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +29 -0
  230. package/Microsoft.ReactNative/Modules/SampleTurboModule.cpp +4 -0
  231. package/Microsoft.ReactNative/Modules/SampleTurboModule.h +3 -0
  232. package/Microsoft.ReactNative/TurboModulesProvider.h +1 -1
  233. package/Microsoft.ReactNative/Utils/ThemeUtils.cpp +49 -0
  234. package/Microsoft.ReactNative/Utils/ThemeUtils.h +31 -0
  235. package/Microsoft.ReactNative.Cxx/JSI/JsiApiContext.h +1 -1
  236. package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
  237. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  238. package/PropertySheets/JSEngine.props +1 -1
  239. package/PropertySheets/React.Cpp.props +4 -0
  240. package/PropertySheets/Warnings.props +45 -0
  241. package/README.md +6 -2
  242. package/ReactCommon/ReactCommon.vcxproj +9 -4
  243. package/ReactCommon/ReactCommon.vcxproj.filters +6 -0
  244. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +253 -0
  245. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +5 -2
  246. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +4 -8
  247. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +184 -0
  248. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +22 -0
  249. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +2 -4
  250. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleWithJSIBindings.cpp +27 -0
  251. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +3 -2
  252. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +1 -1
  253. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityProps.cpp +308 -0
  254. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/DynamicEventPayload.cpp +42 -0
  255. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/css/CSSTokenizer.h +7 -51
  256. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +10 -5
  257. package/Scripts/creaternwapp.cmd +9 -3
  258. package/Scripts/rnw-dependencies.ps1 +16 -3
  259. package/Shared/Shared.vcxitems +3 -2
  260. package/Shared/Shared.vcxitems.filters +2 -1
  261. package/codegen/NativeAnimatedModuleSpec.g.h +2 -0
  262. package/codegen/NativeAnimatedTurboModuleSpec.g.h +2 -0
  263. package/codegen/NativePerformanceSpec.g.h +14 -0
  264. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +151 -127
  265. package/codegen/NativeSampleTurboModuleSpec.g.h +14 -8
  266. package/codegen/react/components/rnwcore/EventEmitters.cpp +48 -48
  267. package/codegen/rnwcoreJSI-generated.cpp +159 -129
  268. package/codegen/rnwcoreJSI.h +534 -408
  269. package/index.js +51 -331
  270. package/index.windows.js +70 -352
  271. package/interface.js +0 -4
  272. package/jest/resolver.js +31 -0
  273. package/jest/setup.js +6 -2
  274. package/package.json +29 -28
  275. package/src/private/animated/NativeAnimatedHelper.js +21 -8
  276. package/src/private/animated/createAnimatedPropsHook.js +11 -16
  277. package/src/private/animated/createAnimatedPropsMemoHook.js +1 -2
  278. package/src/private/components/{SafeAreaView_INTERNAL_DO_NOT_USE.js → safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js} +6 -6
  279. package/src/private/components/{HScrollViewNativeComponents.js → scrollview/HScrollViewNativeComponents.js} +8 -8
  280. package/src/private/components/scrollview/VScrollViewNativeComponents.js +25 -0
  281. package/src/private/{devmenu → devsupport/devmenu}/DevMenu.js +1 -1
  282. package/src/private/{inspector → devsupport/devmenu/elementinspector}/BorderBox.js +3 -3
  283. package/src/private/{inspector → devsupport/devmenu/elementinspector}/BoxInspector.js +6 -5
  284. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementBox.js +8 -6
  285. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ElementProperties.js +11 -10
  286. package/src/private/{inspector → devsupport/devmenu/elementinspector}/Inspector.js +14 -12
  287. package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorOverlay.js +5 -4
  288. package/src/private/{inspector → devsupport/devmenu/elementinspector}/InspectorPanel.js +9 -8
  289. package/src/private/{inspector → devsupport/devmenu/elementinspector}/NetworkOverlay.js +10 -9
  290. package/src/private/{inspector → devsupport/devmenu/elementinspector}/ReactDevToolsOverlay.js +7 -7
  291. package/src/private/{inspector → devsupport/devmenu/elementinspector}/StyleInspector.js +7 -6
  292. package/src/private/{inspector → devsupport/devmenu/elementinspector}/XHRInterceptor.js +2 -2
  293. package/src/private/{inspector → devsupport/devmenu/elementinspector}/getInspectorDataForViewAtPoint.js +4 -4
  294. package/src/private/{inspector → devsupport/devmenu/elementinspector}/resolveBoxStyle.js +1 -1
  295. package/src/private/{inspector → devsupport/devmenu/perfmonitor}/PerformanceOverlay.js +6 -5
  296. package/src/private/{specs_DEPRECATED/modules → devsupport/devmenu/specs}/NativeDevMenu.js +2 -2
  297. package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.android.js +1 -1
  298. package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.ios.js +1 -1
  299. package/src/private/{debugging → devsupport/rndevtools}/ReactDevToolsSettingsManager.windows.js +1 -1
  300. package/src/private/{debugging → devsupport/rndevtools}/setUpFuseboxReactDevToolsDispatcher.js +1 -1
  301. package/src/private/{fusebox → devsupport/rndevtools}/specs/NativeReactDevToolsRuntimeSettingsModule.js +2 -2
  302. package/src/private/{specs_DEPRECATED/modules → devsupport/rndevtools/specs}/NativeReactDevToolsSettingsManager.js +2 -2
  303. package/src/private/featureflags/ReactNativeFeatureFlags.js +82 -80
  304. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +12 -1
  305. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -13
  306. package/src/private/renderer/errorhandling/ErrorHandlers.js +2 -2
  307. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +1 -1
  308. package/src/private/specs_DEPRECATED/modules/NativeAnimatedTurboModule.js +1 -1
  309. package/src/private/specs_DEPRECATED/modules/NativeSampleTurboModule.js +3 -0
  310. package/src/private/styles/composeStyles.js +12 -5
  311. package/src/private/types/HostComponent.js +1 -1
  312. package/src/private/types/HostInstance.js +67 -1
  313. package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -5
  314. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +5 -18
  315. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +6 -0
  316. package/src/private/webapis/performance/Performance.js +1 -3
  317. package/src/private/webapis/performance/PerformanceEntry.js +6 -1
  318. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -0
  319. package/src/private/webapis/performance/specs/NativePerformance.js +10 -1
  320. package/src/types/globals.d.ts +42 -0
  321. package/stubs/double-conversion/double-conversion.h +3 -1
  322. package/templates/cpp-app/template.config.js +2 -1
  323. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +4 -0
  324. package/templates/cpp-lib/example/metro.config.js +1 -1
  325. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +4 -0
  326. package/templates/old/generateWrapper.js +1 -1
  327. package/templates/old/uwp-cpp-app/template.config.js +1 -1
  328. package/types/index.d.ts +6 -3
  329. package/types/public/ReactNativeTypes.d.ts +2 -2
  330. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +0 -38
  331. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +0 -22
  332. package/Libraries/Blob/FileReader_new.js +0 -231
  333. package/Libraries/Blob/FileReader_old.js +0 -186
  334. package/Libraries/Blob/__mocks__/FileReaderModule.js +0 -20
  335. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +0 -32
  336. package/Libraries/Core/__mocks__/ErrorUtils.js +0 -33
  337. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -19
  338. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +0 -49
  339. package/Libraries/Events/CustomEvent.js +0 -32
  340. package/Libraries/Events/EventPolyfill.js +0 -239
  341. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +0 -118
  342. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +0 -134
  343. package/Libraries/Network/XMLHttpRequest_new.js +0 -794
  344. package/Libraries/Network/XMLHttpRequest_old.js +0 -701
  345. package/Libraries/NewAppScreen/components/DebugInstructions.js +0 -41
  346. package/Libraries/NewAppScreen/components/DebugInstructions.windows.js +0 -30
  347. package/Libraries/NewAppScreen/components/Header.js +0 -77
  348. package/Libraries/NewAppScreen/components/HermesBadge.js +0 -53
  349. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +0 -148
  350. package/Libraries/NewAppScreen/components/ReloadInstructions.js +0 -39
  351. package/Libraries/NewAppScreen/components/ReloadInstructions.windows.js +0 -31
  352. package/Libraries/NewAppScreen/components/logo.png +0 -0
  353. package/Libraries/NewAppScreen/index.js +0 -25
  354. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +0 -58
  355. package/Libraries/Utilities/__mocks__/BackHandler.js +0 -45
  356. package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +0 -16
  357. package/Libraries/Utilities/__mocks__/PixelRatio.js +0 -25
  358. package/Libraries/WebSocket/WebSocketEvent.js +0 -30
  359. package/Libraries/WebSocket/WebSocket_new.js +0 -325
  360. package/Libraries/WebSocket/WebSocket_old.js +0 -297
  361. package/Libraries/WebSocket/__mocks__/event-target-shim.js +0 -27
  362. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +0 -30
  363. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +0 -81
  364. package/jest/__tests__/setup-test.js +0 -18
  365. package/src/private/components/VScrollViewNativeComponents.js +0 -25
  366. package/src/private/utilities/ensureInstance.js +0 -21
  367. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +0 -267
  368. package/types/modules/LaunchScreen.d.ts +0 -18
  369. /package/src/private/{devmenu → devsupport/devmenu}/DevMenu.d.ts +0 -0
  370. /package/src/private/{debugging → devsupport/rndevtools}/FuseboxSessionObserver.js +0 -0
@@ -1,325 +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
- import type {EventCallback} from '../../src/private/webapis/dom/events/EventTarget';
12
- import type {BlobData} from '../Blob/BlobTypes';
13
- import type {EventSubscription} from '../vendor/emitter/EventEmitter';
14
-
15
- import Event from '../../src/private/webapis/dom/events/Event';
16
- import {
17
- getEventHandlerAttribute,
18
- setEventHandlerAttribute,
19
- } from '../../src/private/webapis/dom/events/EventHandlerAttributes';
20
- import EventTarget from '../../src/private/webapis/dom/events/EventTarget';
21
- import MessageEvent from '../../src/private/webapis/html/events/MessageEvent';
22
- import CloseEvent from '../../src/private/webapis/websockets/events/CloseEvent';
23
- import Blob from '../Blob/Blob';
24
- import BlobManager from '../Blob/BlobManager';
25
- import NativeEventEmitter from '../EventEmitter/NativeEventEmitter';
26
- import binaryToBase64 from '../Utilities/binaryToBase64';
27
- import Platform from '../Utilities/Platform';
28
- import NativeWebSocketModule from './NativeWebSocketModule';
29
- import base64 from 'base64-js';
30
- import invariant from 'invariant';
31
-
32
- type ArrayBufferView =
33
- | Int8Array
34
- | Uint8Array
35
- | Uint8ClampedArray
36
- | Int16Array
37
- | Uint16Array
38
- | Int32Array
39
- | Uint32Array
40
- | Float32Array
41
- | Float64Array
42
- | DataView;
43
-
44
- type BinaryType = 'blob' | 'arraybuffer';
45
-
46
- const CONNECTING = 0;
47
- const OPEN = 1;
48
- const CLOSING = 2;
49
- const CLOSED = 3;
50
-
51
- const CLOSE_NORMAL = 1000;
52
-
53
- // Abnormal closure where no code is provided in a control frame
54
- // https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5
55
- const CLOSE_ABNORMAL = 1006;
56
-
57
- let nextWebSocketId = 0;
58
-
59
- type WebSocketEventDefinitions = {
60
- websocketOpen: [{id: number, protocol: string}],
61
- websocketClosed: [{id: number, code: number, reason: string}],
62
- websocketMessage: [
63
- | {type: 'binary', id: number, data: string}
64
- | {type: 'text', id: number, data: string}
65
- | {type: 'blob', id: number, data: BlobData},
66
- ],
67
- websocketFailed: [{id: number, message: string}],
68
- };
69
-
70
- /**
71
- * Browser-compatible WebSockets implementation.
72
- *
73
- * See https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
74
- * See https://github.com/websockets/ws
75
- */
76
- class WebSocket extends EventTarget {
77
- static CONNECTING: number = CONNECTING;
78
- static OPEN: number = OPEN;
79
- static CLOSING: number = CLOSING;
80
- static CLOSED: number = CLOSED;
81
-
82
- CONNECTING: number = CONNECTING;
83
- OPEN: number = OPEN;
84
- CLOSING: number = CLOSING;
85
- CLOSED: number = CLOSED;
86
-
87
- _socketId: number;
88
- _eventEmitter: NativeEventEmitter<WebSocketEventDefinitions>;
89
- _subscriptions: Array<EventSubscription>;
90
- _binaryType: ?BinaryType;
91
-
92
- bufferedAmount: number;
93
- extension: ?string;
94
- protocol: ?string;
95
- readyState: number = CONNECTING;
96
- url: ?string;
97
-
98
- constructor(
99
- url: string,
100
- protocols: ?string | ?Array<string>,
101
- options: ?{headers?: {origin?: string, ...}, ...},
102
- ) {
103
- super();
104
- this.url = url;
105
- if (typeof protocols === 'string') {
106
- protocols = [protocols];
107
- }
108
-
109
- const {headers = {}, ...unrecognized} = options || {};
110
-
111
- // Preserve deprecated backwards compatibility for the 'origin' option
112
- // $FlowFixMe[prop-missing]
113
- if (unrecognized && typeof unrecognized.origin === 'string') {
114
- console.warn(
115
- 'Specifying `origin` as a WebSocket connection option is deprecated. Include it under `headers` instead.',
116
- );
117
- /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_
118
- * oss) This comment suppresses an error found when Flow v0.54 was
119
- * deployed. To see the error delete this comment and run Flow. */
120
- headers.origin = unrecognized.origin;
121
- /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_
122
- * oss) This comment suppresses an error found when Flow v0.54 was
123
- * deployed. To see the error delete this comment and run Flow. */
124
- delete unrecognized.origin;
125
- }
126
-
127
- // Warn about and discard anything else
128
- if (Object.keys(unrecognized).length > 0) {
129
- console.warn(
130
- 'Unrecognized WebSocket connection option(s) `' +
131
- Object.keys(unrecognized).join('`, `') +
132
- '`. ' +
133
- 'Did you mean to put these under `headers`?',
134
- );
135
- }
136
-
137
- if (!Array.isArray(protocols)) {
138
- protocols = null;
139
- }
140
-
141
- this._eventEmitter = new NativeEventEmitter(
142
- // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior
143
- // If you want to use the native module on other platforms, please remove this condition and test its behavior
144
- Platform.OS !== 'ios' ? null : NativeWebSocketModule,
145
- );
146
- this._socketId = nextWebSocketId++;
147
- this._registerEvents();
148
- NativeWebSocketModule.connect(url, protocols, {headers}, this._socketId);
149
- }
150
-
151
- get binaryType(): ?BinaryType {
152
- return this._binaryType;
153
- }
154
-
155
- set binaryType(binaryType: BinaryType): void {
156
- if (binaryType !== 'blob' && binaryType !== 'arraybuffer') {
157
- throw new Error("binaryType must be either 'blob' or 'arraybuffer'");
158
- }
159
- if (this._binaryType === 'blob' || binaryType === 'blob') {
160
- invariant(
161
- BlobManager.isAvailable,
162
- 'Native module BlobModule is required for blob support',
163
- );
164
- if (binaryType === 'blob') {
165
- BlobManager.addWebSocketHandler(this._socketId);
166
- } else {
167
- BlobManager.removeWebSocketHandler(this._socketId);
168
- }
169
- }
170
- this._binaryType = binaryType;
171
- }
172
-
173
- close(code?: number, reason?: string): void {
174
- if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {
175
- return;
176
- }
177
-
178
- this.readyState = this.CLOSING;
179
- this._close(code, reason);
180
- }
181
-
182
- send(data: string | ArrayBuffer | ArrayBufferView | Blob): void {
183
- if (this.readyState === this.CONNECTING) {
184
- throw new Error('INVALID_STATE_ERR');
185
- }
186
-
187
- if (data instanceof Blob) {
188
- invariant(
189
- BlobManager.isAvailable,
190
- 'Native module BlobModule is required for blob support',
191
- );
192
- BlobManager.sendOverSocket(data, this._socketId);
193
- return;
194
- }
195
-
196
- if (typeof data === 'string') {
197
- NativeWebSocketModule.send(data, this._socketId);
198
- return;
199
- }
200
-
201
- if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {
202
- NativeWebSocketModule.sendBinary(binaryToBase64(data), this._socketId);
203
- return;
204
- }
205
-
206
- throw new Error('Unsupported data type');
207
- }
208
-
209
- ping(): void {
210
- if (this.readyState === this.CONNECTING) {
211
- throw new Error('INVALID_STATE_ERR');
212
- }
213
-
214
- NativeWebSocketModule.ping(this._socketId);
215
- }
216
-
217
- _close(code?: number, reason?: string): void {
218
- // See https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent
219
- const statusCode = typeof code === 'number' ? code : CLOSE_NORMAL;
220
- const closeReason = typeof reason === 'string' ? reason : '';
221
- NativeWebSocketModule.close(statusCode, closeReason, this._socketId);
222
-
223
- if (BlobManager.isAvailable && this._binaryType === 'blob') {
224
- BlobManager.removeWebSocketHandler(this._socketId);
225
- }
226
- }
227
-
228
- _unregisterEvents(): void {
229
- this._subscriptions.forEach(e => e.remove());
230
- this._subscriptions = [];
231
- }
232
-
233
- _registerEvents(): void {
234
- this._subscriptions = [
235
- this._eventEmitter.addListener('websocketMessage', ev => {
236
- if (ev.id !== this._socketId) {
237
- return;
238
- }
239
- let data: Blob | BlobData | ArrayBuffer | string = ev.data;
240
- switch (ev.type) {
241
- case 'binary':
242
- data = base64.toByteArray(ev.data).buffer;
243
- break;
244
- case 'blob':
245
- data = BlobManager.createFromOptions(ev.data);
246
- break;
247
- }
248
- this.dispatchEvent(new MessageEvent('message', {data}));
249
- }),
250
- this._eventEmitter.addListener('websocketOpen', ev => {
251
- if (ev.id !== this._socketId) {
252
- return;
253
- }
254
- this.readyState = this.OPEN;
255
- this.protocol = ev.protocol;
256
- this.dispatchEvent(new Event('open'));
257
- }),
258
- this._eventEmitter.addListener('websocketClosed', ev => {
259
- if (ev.id !== this._socketId) {
260
- return;
261
- }
262
- this.readyState = this.CLOSED;
263
- this.dispatchEvent(
264
- new CloseEvent('close', {
265
- code: ev.code,
266
- reason: ev.reason,
267
- // TODO: missing `wasClean` (exposed on iOS as `clean` but missing on Android)
268
- }),
269
- );
270
- this._unregisterEvents();
271
- this.close();
272
- }),
273
- this._eventEmitter.addListener('websocketFailed', ev => {
274
- if (ev.id !== this._socketId) {
275
- return;
276
- }
277
- this.readyState = this.CLOSED;
278
- this.dispatchEvent(new Event('error'));
279
- this.dispatchEvent(
280
- new CloseEvent('close', {
281
- code: CLOSE_ABNORMAL,
282
- reason: ev.message,
283
- // TODO: Expose `wasClean`
284
- }),
285
- );
286
- this._unregisterEvents();
287
- this.close();
288
- }),
289
- ];
290
- }
291
-
292
- get onclose(): EventCallback | null {
293
- return getEventHandlerAttribute(this, 'close');
294
- }
295
-
296
- set onclose(listener: ?EventCallback) {
297
- setEventHandlerAttribute(this, 'close', listener);
298
- }
299
-
300
- get onerror(): EventCallback | null {
301
- return getEventHandlerAttribute(this, 'error');
302
- }
303
-
304
- set onerror(listener: ?EventCallback) {
305
- setEventHandlerAttribute(this, 'error', listener);
306
- }
307
-
308
- get onmessage(): EventCallback | null {
309
- return getEventHandlerAttribute(this, 'message');
310
- }
311
-
312
- set onmessage(listener: ?EventCallback) {
313
- setEventHandlerAttribute(this, 'message', listener);
314
- }
315
-
316
- get onopen(): EventCallback | null {
317
- return getEventHandlerAttribute(this, 'open');
318
- }
319
-
320
- set onopen(listener: ?EventCallback) {
321
- setEventHandlerAttribute(this, 'open', listener);
322
- }
323
- }
324
-
325
- export default WebSocket;
@@ -1,297 +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
- import type {BlobData} from '../Blob/BlobTypes';
12
- import type {EventSubscription} from '../vendor/emitter/EventEmitter';
13
-
14
- import Blob from '../Blob/Blob';
15
- import BlobManager from '../Blob/BlobManager';
16
- import NativeEventEmitter from '../EventEmitter/NativeEventEmitter';
17
- import binaryToBase64 from '../Utilities/binaryToBase64';
18
- import Platform from '../Utilities/Platform';
19
- import NativeWebSocketModule from './NativeWebSocketModule';
20
- import WebSocketEvent from './WebSocketEvent';
21
- import base64 from 'base64-js';
22
- import EventTarget from 'event-target-shim';
23
- import invariant from 'invariant';
24
-
25
- type ArrayBufferView =
26
- | Int8Array
27
- | Uint8Array
28
- | Uint8ClampedArray
29
- | Int16Array
30
- | Uint16Array
31
- | Int32Array
32
- | Uint32Array
33
- | Float32Array
34
- | Float64Array
35
- | DataView;
36
-
37
- type BinaryType = 'blob' | 'arraybuffer';
38
-
39
- const CONNECTING = 0;
40
- const OPEN = 1;
41
- const CLOSING = 2;
42
- const CLOSED = 3;
43
-
44
- const CLOSE_NORMAL = 1000;
45
-
46
- // Abnormal closure where no code is provided in a control frame
47
- // https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5
48
- const CLOSE_ABNORMAL = 1006;
49
-
50
- const WEBSOCKET_EVENTS = ['close', 'error', 'message', 'open'];
51
-
52
- let nextWebSocketId = 0;
53
-
54
- type WebSocketEventDefinitions = {
55
- websocketOpen: [{id: number, protocol: string}],
56
- websocketClosed: [{id: number, code: number, reason: string}],
57
- websocketMessage: [
58
- | {type: 'binary', id: number, data: string}
59
- | {type: 'text', id: number, data: string}
60
- | {type: 'blob', id: number, data: BlobData},
61
- ],
62
- websocketFailed: [{id: number, message: string}],
63
- };
64
-
65
- /**
66
- * Browser-compatible WebSockets implementation.
67
- *
68
- * See https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
69
- * See https://github.com/websockets/ws
70
- */
71
- class WebSocket extends (EventTarget(...WEBSOCKET_EVENTS): typeof EventTarget) {
72
- static CONNECTING: number = CONNECTING;
73
- static OPEN: number = OPEN;
74
- static CLOSING: number = CLOSING;
75
- static CLOSED: number = CLOSED;
76
-
77
- CONNECTING: number = CONNECTING;
78
- OPEN: number = OPEN;
79
- CLOSING: number = CLOSING;
80
- CLOSED: number = CLOSED;
81
-
82
- _socketId: number;
83
- _eventEmitter: NativeEventEmitter<WebSocketEventDefinitions>;
84
- _subscriptions: Array<EventSubscription>;
85
- _binaryType: ?BinaryType;
86
-
87
- onclose: ?Function;
88
- onerror: ?Function;
89
- onmessage: ?Function;
90
- onopen: ?Function;
91
-
92
- bufferedAmount: number;
93
- extension: ?string;
94
- protocol: ?string;
95
- readyState: number = CONNECTING;
96
- url: ?string;
97
-
98
- constructor(
99
- url: string,
100
- protocols: ?string | ?Array<string>,
101
- options: ?{headers?: {origin?: string, ...}, ...},
102
- ) {
103
- super();
104
- this.url = url;
105
- if (typeof protocols === 'string') {
106
- protocols = [protocols];
107
- }
108
-
109
- const {headers = {}, ...unrecognized} = options || {};
110
-
111
- // Preserve deprecated backwards compatibility for the 'origin' option
112
- // $FlowFixMe[prop-missing]
113
- if (unrecognized && typeof unrecognized.origin === 'string') {
114
- console.warn(
115
- 'Specifying `origin` as a WebSocket connection option is deprecated. Include it under `headers` instead.',
116
- );
117
- /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_
118
- * oss) This comment suppresses an error found when Flow v0.54 was
119
- * deployed. To see the error delete this comment and run Flow. */
120
- headers.origin = unrecognized.origin;
121
- /* $FlowFixMe[prop-missing] (>=0.54.0 site=react_native_fb,react_native_
122
- * oss) This comment suppresses an error found when Flow v0.54 was
123
- * deployed. To see the error delete this comment and run Flow. */
124
- delete unrecognized.origin;
125
- }
126
-
127
- // Warn about and discard anything else
128
- if (Object.keys(unrecognized).length > 0) {
129
- console.warn(
130
- 'Unrecognized WebSocket connection option(s) `' +
131
- Object.keys(unrecognized).join('`, `') +
132
- '`. ' +
133
- 'Did you mean to put these under `headers`?',
134
- );
135
- }
136
-
137
- if (!Array.isArray(protocols)) {
138
- protocols = null;
139
- }
140
-
141
- this._eventEmitter = new NativeEventEmitter(
142
- // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior
143
- // If you want to use the native module on other platforms, please remove this condition and test its behavior
144
- Platform.OS !== 'ios' ? null : NativeWebSocketModule,
145
- );
146
- this._socketId = nextWebSocketId++;
147
- this._registerEvents();
148
- NativeWebSocketModule.connect(url, protocols, {headers}, this._socketId);
149
- }
150
-
151
- get binaryType(): ?BinaryType {
152
- return this._binaryType;
153
- }
154
-
155
- set binaryType(binaryType: BinaryType): void {
156
- if (binaryType !== 'blob' && binaryType !== 'arraybuffer') {
157
- throw new Error("binaryType must be either 'blob' or 'arraybuffer'");
158
- }
159
- if (this._binaryType === 'blob' || binaryType === 'blob') {
160
- invariant(
161
- BlobManager.isAvailable,
162
- 'Native module BlobModule is required for blob support',
163
- );
164
- if (binaryType === 'blob') {
165
- BlobManager.addWebSocketHandler(this._socketId);
166
- } else {
167
- BlobManager.removeWebSocketHandler(this._socketId);
168
- }
169
- }
170
- this._binaryType = binaryType;
171
- }
172
-
173
- close(code?: number, reason?: string): void {
174
- if (this.readyState === this.CLOSING || this.readyState === this.CLOSED) {
175
- return;
176
- }
177
-
178
- this.readyState = this.CLOSING;
179
- this._close(code, reason);
180
- }
181
-
182
- send(data: string | ArrayBuffer | ArrayBufferView | Blob): void {
183
- if (this.readyState === this.CONNECTING) {
184
- throw new Error('INVALID_STATE_ERR');
185
- }
186
-
187
- if (data instanceof Blob) {
188
- invariant(
189
- BlobManager.isAvailable,
190
- 'Native module BlobModule is required for blob support',
191
- );
192
- BlobManager.sendOverSocket(data, this._socketId);
193
- return;
194
- }
195
-
196
- if (typeof data === 'string') {
197
- NativeWebSocketModule.send(data, this._socketId);
198
- return;
199
- }
200
-
201
- if (data instanceof ArrayBuffer || ArrayBuffer.isView(data)) {
202
- NativeWebSocketModule.sendBinary(binaryToBase64(data), this._socketId);
203
- return;
204
- }
205
-
206
- throw new Error('Unsupported data type');
207
- }
208
-
209
- ping(): void {
210
- if (this.readyState === this.CONNECTING) {
211
- throw new Error('INVALID_STATE_ERR');
212
- }
213
-
214
- NativeWebSocketModule.ping(this._socketId);
215
- }
216
-
217
- _close(code?: number, reason?: string): void {
218
- // See https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent
219
- const statusCode = typeof code === 'number' ? code : CLOSE_NORMAL;
220
- const closeReason = typeof reason === 'string' ? reason : '';
221
- NativeWebSocketModule.close(statusCode, closeReason, this._socketId);
222
-
223
- if (BlobManager.isAvailable && this._binaryType === 'blob') {
224
- BlobManager.removeWebSocketHandler(this._socketId);
225
- }
226
- }
227
-
228
- _unregisterEvents(): void {
229
- this._subscriptions.forEach(e => e.remove());
230
- this._subscriptions = [];
231
- }
232
-
233
- _registerEvents(): void {
234
- this._subscriptions = [
235
- this._eventEmitter.addListener('websocketMessage', ev => {
236
- if (ev.id !== this._socketId) {
237
- return;
238
- }
239
- let data: Blob | BlobData | ArrayBuffer | string = ev.data;
240
- switch (ev.type) {
241
- case 'binary':
242
- data = base64.toByteArray(ev.data).buffer;
243
- break;
244
- case 'blob':
245
- data = BlobManager.createFromOptions(ev.data);
246
- break;
247
- }
248
- this.dispatchEvent(new WebSocketEvent('message', {data}));
249
- }),
250
- this._eventEmitter.addListener('websocketOpen', ev => {
251
- if (ev.id !== this._socketId) {
252
- return;
253
- }
254
- this.readyState = this.OPEN;
255
- this.protocol = ev.protocol;
256
- this.dispatchEvent(new WebSocketEvent('open'));
257
- }),
258
- this._eventEmitter.addListener('websocketClosed', ev => {
259
- if (ev.id !== this._socketId) {
260
- return;
261
- }
262
- this.readyState = this.CLOSED;
263
- this.dispatchEvent(
264
- new WebSocketEvent('close', {
265
- code: ev.code,
266
- reason: ev.reason,
267
- // TODO: missing `wasClean` (exposed on iOS as `clean` but missing on Android)
268
- }),
269
- );
270
- this._unregisterEvents();
271
- this.close();
272
- }),
273
- this._eventEmitter.addListener('websocketFailed', ev => {
274
- if (ev.id !== this._socketId) {
275
- return;
276
- }
277
- this.readyState = this.CLOSED;
278
- this.dispatchEvent(
279
- new WebSocketEvent('error', {
280
- message: ev.message,
281
- }),
282
- );
283
- this.dispatchEvent(
284
- new WebSocketEvent('close', {
285
- code: CLOSE_ABNORMAL,
286
- reason: ev.message,
287
- // TODO: Expose `wasClean`
288
- }),
289
- );
290
- this._unregisterEvents();
291
- this.close();
292
- }),
293
- ];
294
- }
295
- }
296
-
297
- export default WebSocket;
@@ -1,27 +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
- */
9
-
10
- // Jest fatals for the following statement (minimal repro case)
11
- //
12
- // exports.something = Symbol;
13
- //
14
- // Until it is fixed, mocking the entire node module makes the
15
- // problem go away.
16
-
17
- 'use strict';
18
-
19
- function EventTarget() {
20
- // Support both EventTarget and EventTarget(...)
21
- // as a super class, just like the original module does.
22
- if (arguments.length > 0) {
23
- return EventTarget;
24
- }
25
- }
26
-
27
- export default EventTarget;
@@ -1,30 +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
8
- * @format
9
- */
10
-
11
- import type {HostComponent} from '../../src/private/types/HostComponent';
12
- import type {HostInstance} from '../../src/private/types/HostInstance';
13
-
14
- import * as React from 'react';
15
-
16
- function takesHostComponentInstance(instance: HostInstance | null): void {}
17
-
18
- const MyHostComponent = (('Host': any): HostComponent<{...}>);
19
-
20
- <MyHostComponent
21
- ref={hostComponentRef => {
22
- takesHostComponentInstance(hostComponentRef);
23
-
24
- if (hostComponentRef == null) {
25
- return;
26
- }
27
-
28
- hostComponentRef.measureLayout(hostComponentRef, () => {});
29
- }}
30
- />;