@office-iss/react-native-win32 0.0.0-canary.296 → 0.0.0-canary.298

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/.flowconfig +6 -2
  2. package/CHANGELOG.json +49 -1
  3. package/CHANGELOG.md +23 -4
  4. package/IntegrationTests/AccessibilityManagerTest.js +1 -1
  5. package/IntegrationTests/AppEventsTest.js +1 -1
  6. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
  7. package/IntegrationTests/ImageCachePolicyTest.js +2 -2
  8. package/IntegrationTests/ImageSnapshotTest.js +1 -1
  9. package/IntegrationTests/IntegrationTestHarnessTest.js +1 -1
  10. package/IntegrationTests/IntegrationTestsApp.js +1 -1
  11. package/IntegrationTests/LayoutEventsTest.js +1 -1
  12. package/IntegrationTests/PromiseTest.js +1 -1
  13. package/IntegrationTests/SimpleSnapshotTest.js +1 -1
  14. package/IntegrationTests/SyncMethodTest.js +1 -1
  15. package/IntegrationTests/TimersTest.js +1 -1
  16. package/IntegrationTests/WebSocketTest.js +1 -1
  17. package/Libraries/Alert/Alert.js +1 -1
  18. package/Libraries/Alert/Alert.win32.js +1 -1
  19. package/Libraries/Alert/RCTAlertManager.ios.js +1 -1
  20. package/Libraries/Alert/RCTAlertManager.js.flow +1 -1
  21. package/Libraries/Animated/Animated.js +0 -1
  22. package/Libraries/Animated/Animated.js.flow +0 -1
  23. package/Libraries/Animated/AnimatedExports.js +2 -3
  24. package/Libraries/Animated/AnimatedExports.js.flow +1 -2
  25. package/Libraries/Animated/Easing.js +1 -1
  26. package/Libraries/Animated/SpringConfig.js +1 -1
  27. package/Libraries/Animated/animations/Animation.js +5 -2
  28. package/Libraries/Animated/components/AnimatedFlatList.js +7 -6
  29. package/Libraries/Animated/components/AnimatedScrollView.js +53 -52
  30. package/Libraries/Animated/components/AnimatedSectionList.js +11 -7
  31. package/Libraries/Animated/createAnimatedComponent.js +37 -33
  32. package/Libraries/Animated/nodes/AnimatedObject.js +2 -3
  33. package/Libraries/Animated/nodes/AnimatedProps.js +37 -5
  34. package/Libraries/Animated/nodes/AnimatedStyle.js +35 -34
  35. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +6 -1
  36. package/Libraries/AppState/AppState.js +6 -1
  37. package/Libraries/BatchedBridge/BatchedBridge.js +1 -1
  38. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  39. package/Libraries/Blob/BlobManager.js +4 -0
  40. package/Libraries/Blob/URL.js +1 -1
  41. package/Libraries/Blob/URLSearchParams.js +5 -1
  42. package/Libraries/Blob/URLSearchParams.js.flow +2 -1
  43. package/Libraries/BugReporting/BugReporting.js +1 -1
  44. package/Libraries/BugReporting/dumpReactTree.js +1 -1
  45. package/Libraries/BugReporting/getReactData.js +1 -1
  46. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +1 -1
  47. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +1 -1
  48. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.js.flow +1 -1
  49. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +1 -1
  50. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +20 -19
  51. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +1 -1
  52. package/Libraries/Components/Button.js +3 -3
  53. package/Libraries/Components/Button.win32.js +3 -3
  54. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  55. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +1 -1
  56. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +3 -4
  57. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +1 -1
  58. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +1 -1
  59. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js.flow +1 -1
  60. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidFallback.js +1 -1
  61. package/Libraries/Components/Keyboard/Keyboard.js +1 -1
  62. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
  63. package/Libraries/Components/LayoutConformance/LayoutConformance.js +0 -1
  64. package/Libraries/Components/Pressable/Pressable.js +9 -6
  65. package/Libraries/Components/Pressable/Pressable.win32.js +9 -6
  66. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +14 -13
  67. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +14 -2
  68. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +1 -1
  69. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidTypes.js +29 -20
  70. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +1 -1
  71. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +1 -1
  72. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  73. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  74. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  75. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  76. package/Libraries/Components/ScrollView/ScrollView.d.ts +23 -5
  77. package/Libraries/Components/ScrollView/ScrollView.js +22 -14
  78. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  79. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -1
  80. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -1
  81. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +19 -6
  82. package/Libraries/Components/ScrollView/processDecelerationRate.js +1 -1
  83. package/Libraries/Components/Sound/SoundManager.js +1 -1
  84. package/Libraries/Components/StaticRenderer.js +1 -1
  85. package/Libraries/Components/StatusBar/StatusBar.js +1 -1
  86. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +1 -1
  87. package/Libraries/Components/Switch/Switch.js +8 -2
  88. package/Libraries/Components/Switch/SwitchNativeComponent.js +1 -1
  89. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +1 -17
  90. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  91. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +1 -1
  92. package/Libraries/Components/TextInput/TextInput.d.ts +9 -3
  93. package/Libraries/Components/TextInput/TextInput.flow.js +12 -14
  94. package/Libraries/Components/TextInput/TextInput.flow.win32.js +12 -14
  95. package/Libraries/Components/TextInput/TextInput.js +40 -35
  96. package/Libraries/Components/TextInput/TextInput.win32.js +41 -35
  97. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  98. package/Libraries/Components/TextInput/TextInputState.win32.js +1 -1
  99. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +1 -1
  100. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +1 -1
  101. package/Libraries/Components/ToastAndroid/ToastAndroid.js +1 -1
  102. package/Libraries/Components/ToastAndroid/ToastAndroid.js.flow +1 -1
  103. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +1 -1
  104. package/Libraries/Components/ToastAndroid/ToastAndroidFallback.js +1 -1
  105. package/Libraries/Components/Touchable/BoundingDimensions.js +1 -1
  106. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  107. package/Libraries/Components/Touchable/Position.js +1 -1
  108. package/Libraries/Components/Touchable/Touchable.js +10 -0
  109. package/Libraries/Components/Touchable/Touchable.win32.js +10 -0
  110. package/Libraries/Components/Touchable/TouchableBounce.js +9 -3
  111. package/Libraries/Components/Touchable/TouchableHighlight.js +9 -4
  112. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  113. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +2 -0
  114. package/Libraries/Components/Touchable/TouchableOpacity.js +7 -3
  115. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +3 -3
  116. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
  117. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
  118. package/Libraries/Components/View/View.js +112 -26
  119. package/Libraries/Components/View/View.win32.js +1 -1
  120. package/Libraries/Components/View/ViewAccessibility.js +1 -1
  121. package/Libraries/Components/View/ViewAccessibility.win32.js +1 -1
  122. package/Libraries/Components/View/ViewPropTypes.d.ts +18 -2
  123. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  124. package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
  125. package/Libraries/Core/Devtools/getDevServer.js +1 -1
  126. package/Libraries/Core/Devtools/loadBundleFromServer.js +49 -7
  127. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +49 -7
  128. package/Libraries/Core/Devtools/openFileInEditor.js +1 -1
  129. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -1
  130. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  131. package/Libraries/Core/Devtools/parseHermesStack.js +1 -1
  132. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  133. package/Libraries/Core/ExceptionsManager.js +1 -1
  134. package/Libraries/Core/InitializeCore.js +2 -23
  135. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  136. package/Libraries/Core/ReactNativeVersion.js +3 -2
  137. package/Libraries/Core/Timers/JSTimers.js +1 -1
  138. package/Libraries/Core/Timers/immediateShim.js +1 -1
  139. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  140. package/Libraries/Core/setUpDeveloperTools.js +13 -11
  141. package/Libraries/Debugging/DebuggingOverlay.js +12 -14
  142. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +1 -1
  143. package/Libraries/Debugging/DebuggingOverlayRegistry.js +0 -1
  144. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +0 -1
  145. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -1
  146. package/Libraries/EventEmitter/RCTEventEmitter.js +1 -1
  147. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +1 -1
  148. package/Libraries/Image/AssetRegistry.js +4 -10
  149. package/Libraries/Image/AssetSourceResolver.js +17 -4
  150. package/Libraries/Image/Image.android.js +112 -106
  151. package/Libraries/Image/Image.ios.js +10 -2
  152. package/Libraries/Image/Image.win32.js +11 -3
  153. package/Libraries/Image/ImageAnalyticsTagContext.js +2 -2
  154. package/Libraries/Image/ImageInjection.js +1 -1
  155. package/Libraries/Image/RelativeImageStub.js +2 -1
  156. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  157. package/Libraries/Image/resolveAssetSource.js +1 -1
  158. package/Libraries/Interaction/FrameRateLogger.js +1 -1
  159. package/Libraries/Interaction/InteractionManager.js +62 -53
  160. package/Libraries/Interaction/TaskQueue.js +8 -9
  161. package/Libraries/Interaction/TouchHistoryMath.js +1 -1
  162. package/Libraries/Linking/Linking.js +1 -1
  163. package/Libraries/Lists/FlatList.d.ts +9 -5
  164. package/Libraries/Lists/FlatList.js +1 -1
  165. package/Libraries/Lists/SectionListModern.js +9 -3
  166. package/Libraries/LogBox/Data/parseLogBoxLog.js +2 -0
  167. package/Libraries/LogBox/LogBox.js +2 -0
  168. package/Libraries/LogBox/UI/LogBoxButton.js +2 -1
  169. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +2 -1
  170. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +2 -1
  171. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -2
  172. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.win32.js +3 -2
  173. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +2 -1
  174. package/Libraries/Modal/Modal.js +5 -1
  175. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +1 -1
  176. package/Libraries/NativeComponent/BaseViewConfig.android.js +17 -5
  177. package/Libraries/NativeComponent/BaseViewConfig.ios.js +4 -4
  178. package/Libraries/NativeComponent/BaseViewConfig.js.flow +1 -1
  179. package/Libraries/NativeComponent/BaseViewConfig.win32.js +4 -4
  180. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -1
  181. package/Libraries/NativeComponent/ViewConfigIgnore.js +3 -3
  182. package/Libraries/Network/FormData.js +1 -1
  183. package/Libraries/Network/RCTNetworking.android.js +2 -2
  184. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  185. package/Libraries/Network/RCTNetworking.js.flow +1 -1
  186. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  187. package/Libraries/Network/XMLHttpRequest.js +3 -3
  188. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +1 -1
  189. package/Libraries/Pressability/Pressability.js +1 -1
  190. package/Libraries/Pressability/Pressability.win32.js +1 -1
  191. package/Libraries/Promise.js +1 -1
  192. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +3 -2
  193. package/Libraries/ReactNative/AppContainer-dev.js +4 -4
  194. package/Libraries/ReactNative/AppContainer-prod.js +0 -1
  195. package/Libraries/ReactNative/AppContainer.js +1 -1
  196. package/Libraries/ReactNative/AppRegistryImpl.js +2 -3
  197. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +1 -1
  198. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  199. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +1 -1
  200. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
  201. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +1 -1
  202. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  203. package/Libraries/ReactNative/RendererProxy.js +1 -1
  204. package/Libraries/ReactNative/RootTag.js +2 -2
  205. package/Libraries/ReactNative/renderApplication.js +1 -1
  206. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
  207. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +2 -1
  208. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js.flow +1 -1
  209. package/Libraries/Renderer/shims/ReactNativeTypes.js +21 -25
  210. package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +270 -0
  211. package/Libraries/Settings/Settings.ios.js +1 -1
  212. package/Libraries/Settings/Settings.js +1 -1
  213. package/Libraries/Settings/SettingsFallback.js +1 -1
  214. package/Libraries/Share/Share.js +1 -1
  215. package/Libraries/StyleSheet/EdgeInsetsPropType.js +1 -1
  216. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  217. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  218. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +1 -1
  219. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -1
  220. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +1 -1
  221. package/Libraries/StyleSheet/PointPropType.js +1 -1
  222. package/Libraries/StyleSheet/Rect.js +1 -1
  223. package/Libraries/StyleSheet/StyleSheetExports.js.flow +3 -1
  224. package/Libraries/StyleSheet/StyleSheetTypes.js +4 -3
  225. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  226. package/Libraries/StyleSheet/private/_TransformStyle.js +49 -21
  227. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  228. package/Libraries/StyleSheet/processBackgroundImage.js +1 -1
  229. package/Libraries/StyleSheet/processBoxShadow.js +0 -1
  230. package/Libraries/StyleSheet/processColor.js +1 -1
  231. package/Libraries/StyleSheet/processColorArray.js +1 -1
  232. package/Libraries/StyleSheet/processFilter.js +1 -2
  233. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  234. package/Libraries/StyleSheet/processTransform.js +1 -1
  235. package/Libraries/StyleSheet/processTransformOrigin.js +1 -1
  236. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  237. package/Libraries/Text/Text.d.ts +7 -0
  238. package/Libraries/Text/Text.js +256 -245
  239. package/Libraries/Text/Text.win32.js +294 -285
  240. package/Libraries/Text/TextAncestor.js +3 -2
  241. package/Libraries/Text/TextNativeComponent.js +4 -0
  242. package/Libraries/Text/TextNativeComponent.win32.js +4 -0
  243. package/Libraries/Text/TextProps.js +2 -34
  244. package/Libraries/Text/TextProps.win32.js +2 -33
  245. package/Libraries/Types/CodegenTypes.js +1 -1
  246. package/Libraries/Types/CodegenTypesNamespace.js +1 -1
  247. package/Libraries/Types/CoreEventTypes.d.ts +4 -0
  248. package/Libraries/Types/ReactDevToolsTypes.js +0 -1
  249. package/Libraries/Utilities/Appearance.js +1 -1
  250. package/Libraries/Utilities/BackHandler.js.flow +1 -1
  251. package/Libraries/Utilities/DevLoadingView.js +1 -1
  252. package/Libraries/Utilities/DeviceInfo.js +1 -1
  253. package/Libraries/Utilities/Dimensions.js +1 -1
  254. package/Libraries/Utilities/Dimensions.win32.js +1 -1
  255. package/Libraries/Utilities/HMRClient.js +1 -1
  256. package/Libraries/Utilities/HMRClientProdShim.js +1 -1
  257. package/Libraries/Utilities/PerformanceLoggerContext.js +2 -2
  258. package/Libraries/Utilities/PixelRatio.js +1 -1
  259. package/Libraries/Utilities/Platform.android.js +1 -1
  260. package/Libraries/Utilities/Platform.ios.js +1 -1
  261. package/Libraries/Utilities/Platform.js +1 -1
  262. package/Libraries/Utilities/Platform.win32.js +1 -1
  263. package/Libraries/Utilities/PlatformTypes.js +1 -1
  264. package/Libraries/Utilities/RCTLog.js +1 -1
  265. package/Libraries/Utilities/SceneTracker.js +1 -1
  266. package/Libraries/Utilities/binaryToBase64.js +1 -1
  267. package/Libraries/Utilities/codegenNativeCommands.js +1 -1
  268. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  269. package/Libraries/Utilities/createPerformanceLogger.js +27 -20
  270. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +1 -1
  271. package/Libraries/Utilities/defineLazyObjectProperty.js +1 -1
  272. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  273. package/Libraries/Utilities/differ/insetsDiffer.js +1 -1
  274. package/Libraries/Utilities/differ/matricesDiffer.js +1 -1
  275. package/Libraries/Utilities/differ/pointsDiffer.js +1 -1
  276. package/Libraries/Utilities/logError.js +1 -1
  277. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  278. package/Libraries/Utilities/stringifySafe.js +1 -1
  279. package/Libraries/Utilities/stringifyViewConfig.js +1 -1
  280. package/Libraries/Utilities/useColorScheme.js +1 -1
  281. package/Libraries/Utilities/useWindowDimensions.js +1 -1
  282. package/Libraries/Utilities/warnOnce.js +1 -1
  283. package/Libraries/Vibration/Vibration.js +1 -2
  284. package/Libraries/WebSocket/WebSocket.js +1 -1
  285. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  286. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  287. package/Libraries/vendor/core/ErrorUtils.js +29 -5
  288. package/index.js +1 -2
  289. package/index.win32.js +3 -1
  290. package/interface.js +1 -1
  291. package/jest/MockNativeMethods.js +9 -3
  292. package/jest/RefreshControlMock.js +32 -0
  293. package/jest/assetFileTransformer.js +1 -0
  294. package/jest/local-setup.js +4 -3
  295. package/jest/mock.js +39 -0
  296. package/jest/mockComponent.js +47 -17
  297. package/jest/mockNativeComponent.js +26 -15
  298. package/jest/mocks/AccessibilityInfo.js +62 -0
  299. package/jest/mocks/ActivityIndicator.js +23 -0
  300. package/jest/mocks/AppState.js +19 -0
  301. package/{flow/Stringish.js → jest/mocks/Clipboard.js} +6 -4
  302. package/jest/mocks/Image.js +23 -0
  303. package/jest/mocks/InitializeCore.js +9 -0
  304. package/jest/mocks/Linking.js +28 -0
  305. package/jest/mocks/Modal.js +33 -0
  306. package/jest/mocks/NativeComponentRegistry.js +30 -0
  307. package/jest/mocks/NativeModules.js +239 -0
  308. package/jest/mocks/RefreshControl.js +31 -0
  309. package/jest/mocks/RendererProxy.js +45 -0
  310. package/jest/mocks/ScrollView.js +58 -0
  311. package/jest/mocks/Text.js +27 -0
  312. package/jest/mocks/TextInput.js +32 -0
  313. package/jest/mocks/UIManager.js +60 -0
  314. package/jest/mocks/Vibration.js +16 -0
  315. package/jest/mocks/View.js +27 -0
  316. package/jest/mocks/ViewNativeComponent.js +23 -0
  317. package/jest/mocks/requireNativeComponent.js +22 -0
  318. package/{Libraries/Utilities/infoLog.js → jest/mocks/useColorScheme.js} +7 -9
  319. package/jest/react-native-env.js +1 -0
  320. package/jest/renderer.js +1 -2
  321. package/jest/resolver.js +32 -0
  322. package/jest/setup.js +63 -445
  323. package/overrides.json +45 -38
  324. package/package.json +14 -14
  325. package/src/private/animated/NativeAnimatedHelper.js +8 -1
  326. package/src/private/animated/NativeAnimatedHelper.win32.js +8 -1
  327. package/src/private/animated/createAnimatedPropsHook.js +11 -4
  328. package/src/private/animated/createAnimatedPropsMemoHook.js +0 -1
  329. package/src/private/components/safeareaview/SafeAreaView_INTERNAL_DO_NOT_USE.js +0 -1
  330. package/src/private/components/scrollview/HScrollViewNativeComponents.js +0 -1
  331. package/src/private/components/scrollview/VScrollViewNativeComponents.js +0 -1
  332. package/src/private/devsupport/devmenu/elementinspector/BorderBox.js +1 -1
  333. package/src/private/devsupport/devmenu/elementinspector/BoxInspector.js +1 -1
  334. package/src/private/devsupport/devmenu/elementinspector/ElementBox.js +1 -1
  335. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  336. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +1 -1
  337. package/src/private/devsupport/devmenu/elementinspector/InspectorOverlay.js +1 -1
  338. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -1
  339. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +1 -1
  340. package/src/private/devsupport/devmenu/elementinspector/ReactDevToolsOverlay.js +1 -1
  341. package/src/private/devsupport/devmenu/elementinspector/StyleInspector.js +1 -1
  342. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +1 -1
  343. package/src/private/devsupport/devmenu/elementinspector/getInspectorDataForViewAtPoint.js +1 -1
  344. package/src/private/devsupport/devmenu/elementinspector/resolveBoxStyle.js +1 -1
  345. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +1 -1
  346. package/src/private/devsupport/rndevtools/FuseboxSessionObserver.js +0 -1
  347. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.android.js +8 -9
  348. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.ios.js +12 -15
  349. package/src/private/devsupport/rndevtools/ReactDevToolsSettingsManager.win32.js +8 -9
  350. package/src/private/devsupport/rndevtools/setUpFuseboxReactDevToolsDispatcher.js +0 -1
  351. package/src/private/devsupport/rndevtools/specs/NativeReactDevToolsRuntimeSettingsModule.js +0 -1
  352. package/src/private/featureflags/ReactNativeFeatureFlags.js +65 -5
  353. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +2 -0
  354. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +10 -2
  355. package/src/private/renderer/errorhandling/ErrorHandlers.js +1 -1
  356. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +44 -0
  357. package/src/private/specs_DEPRECATED/components/ActivityIndicatorViewNativeComponent.js +1 -1
  358. package/src/private/specs_DEPRECATED/components/AndroidDrawerLayoutNativeComponent.js +1 -1
  359. package/src/private/specs_DEPRECATED/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -1
  360. package/src/private/specs_DEPRECATED/components/AndroidSwipeRefreshLayoutNativeComponent.js +1 -1
  361. package/src/private/specs_DEPRECATED/components/PullToRefreshViewNativeComponent.js +1 -1
  362. package/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js +1 -1
  363. package/src/private/specs_DEPRECATED/components/RCTSafeAreaViewNativeComponent.js +1 -1
  364. package/src/private/specs_DEPRECATED/components/UnimplementedNativeViewNativeComponent.js +1 -1
  365. package/src/private/specs_DEPRECATED/modules/NativeBugReporting.js +1 -1
  366. package/src/private/specs_DEPRECATED/modules/NativeFrameRateLogger.js +1 -1
  367. package/src/private/specs_DEPRECATED/modules/NativePermissionsAndroid.js +1 -1
  368. package/src/private/specs_DEPRECATED/modules/NativePushNotificationManagerIOS.js +1 -1
  369. package/src/private/styles/composeStyles.js +12 -5
  370. package/src/private/types/HostInstance.js +1 -1
  371. package/src/private/webapis/dom/events/Event.js +3 -0
  372. package/src/private/webapis/dom/events/EventTarget.js +3 -0
  373. package/src/private/webapis/dom/nodes/ReactNativeDocument.js +1 -1
  374. package/src/private/webapis/dom/nodes/ReactNativeElement.js +7 -24
  375. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +1 -1
  376. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +1 -1
  377. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +4 -2
  378. package/src/private/webapis/dom/nodes/ReadOnlyText.js +1 -1
  379. package/src/private/webapis/dom/nodes/internals/NodeInternals.js +1 -1
  380. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  381. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  382. package/src/private/webapis/dom/nodes/internals/Traversal.js +1 -1
  383. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +38 -0
  384. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +4 -1
  385. package/src/private/webapis/dom/oldstylecollections/NodeList.js +4 -1
  386. package/src/private/webapis/errors/DOMException.js +166 -0
  387. package/src/private/webapis/geometry/DOMRect.js +5 -0
  388. package/src/private/webapis/geometry/DOMRectList.js +4 -1
  389. package/src/private/webapis/geometry/DOMRectReadOnly.js +6 -0
  390. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +3 -0
  391. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +3 -0
  392. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +70 -18
  393. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +11 -0
  394. package/src/private/webapis/mutationobserver/MutationObserver.js +13 -38
  395. package/src/private/webapis/mutationobserver/MutationRecord.js +3 -0
  396. package/src/private/webapis/mutationobserver/internals/MutationObserverManager.js +7 -29
  397. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +1 -4
  398. package/src/private/webapis/performance/EventTiming.js +1 -1
  399. package/src/private/webapis/performance/LongTasks.js +1 -1
  400. package/src/private/webapis/performance/MemoryInfo.js +4 -1
  401. package/src/private/webapis/performance/Performance.js +20 -9
  402. package/src/private/webapis/performance/PerformanceEntry.js +5 -1
  403. package/src/private/webapis/performance/PerformanceObserver.js +1 -1
  404. package/src/private/webapis/performance/ReactNativeStartupTiming.js +4 -1
  405. package/src/private/webapis/performance/UserTiming.js +1 -1
  406. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -1
  407. package/src/private/webapis/performance/internals/Utilities.js +1 -1
  408. package/src/private/webapis/structuredClone/structuredClone.js +233 -0
  409. package/src/private/webapis/utils/ArrayLikeUtils.js +1 -1
  410. package/src/private/webapis/webidl/PlatformObjects.js +59 -0
  411. package/src/types/globals.d.ts +42 -0
  412. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +18 -2
  413. package/src-win/Libraries/Text/Text.d.ts +7 -0
  414. package/types/index.d.ts +1 -1
  415. package/types/modules/Devtools.d.ts +23 -9
  416. package/Libraries/Interaction/JSEventLoopWatchdog.js +0 -88
  417. package/flow/HermesInternalType.js +0 -114
  418. package/flow/console.js +0 -49
  419. package/flow/global.js +0 -88
  420. package/jest/mockModal.js +0 -32
  421. package/jest/mockScrollView.js +0 -35
@@ -15,6 +15,7 @@
15
15
 
16
16
  import type {EventPhase} from './Event';
17
17
 
18
+ import {setPlatformObject} from '../../webidl/PlatformObjects';
18
19
  import Event from './Event';
19
20
  import {
20
21
  getStopImmediatePropagationFlag,
@@ -229,6 +230,8 @@ export default class EventTarget {
229
230
  }
230
231
  }
231
232
 
233
+ setPlatformObject(EventTarget);
234
+
232
235
  function validateCallback(callback: EventListener, methodName: string): void {
233
236
  if (typeof callback !== 'function' && typeof callback !== 'object') {
234
237
  throw new TypeError(
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  // flowlint unsafe-getters-setters:off
@@ -4,15 +4,14 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  // flowlint unsafe-getters-setters:off
12
12
 
13
13
  import type {
14
14
  InternalInstanceHandle,
15
- Node as ShadowNode,
16
15
  ViewConfig,
17
16
  } from '../../../../../Libraries/Renderer/shims/ReactNativeTypes';
18
17
  import type {
@@ -26,7 +25,6 @@ import type {InstanceHandle} from './internals/NodeInternals';
26
25
  import type ReactNativeDocument from './ReactNativeDocument';
27
26
 
28
27
  import TextInputState from '../../../../../Libraries/Components/TextInput/TextInputState';
29
- import {getFabricUIManager} from '../../../../../Libraries/ReactNative/FabricUIManager';
30
28
  import {create as createAttributePayload} from '../../../../../Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload';
31
29
  import warnForStyleProps from '../../../../../Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps';
32
30
  import {
@@ -37,7 +35,6 @@ import {
37
35
  } from './internals/NodeInternals';
38
36
  import ReadOnlyElement, {getBoundingClientRect} from './ReadOnlyElement';
39
37
  import NativeDOM from './specs/NativeDOM';
40
- import nullthrows from 'nullthrows';
41
38
 
42
39
  const noop = () => {};
43
40
 
@@ -153,18 +150,14 @@ class ReactNativeElement extends ReadOnlyElement implements NativeMethods {
153
150
  measure(callback: MeasureOnSuccessCallback) {
154
151
  const node = getNativeElementReference(this);
155
152
  if (node != null) {
156
- // $FlowExpectedError[incompatible-type] This is an element instance so the native node reference is always a shadow node.
157
- const shadowNode: ShadowNode = node;
158
- nullthrows(getFabricUIManager()).measure(shadowNode, callback);
153
+ NativeDOM.measure(node, callback);
159
154
  }
160
155
  }
161
156
 
162
157
  measureInWindow(callback: MeasureInWindowOnSuccessCallback) {
163
158
  const node = getNativeElementReference(this);
164
159
  if (node != null) {
165
- // $FlowExpectedError[incompatible-type] This is an element instance so the native node reference is always a shadow node.
166
- const shadowNode: ShadowNode = node;
167
- nullthrows(getFabricUIManager()).measureInWindow(shadowNode, callback);
160
+ NativeDOM.measureInWindow(node, callback);
168
161
  }
169
162
  }
170
163
 
@@ -187,14 +180,9 @@ class ReactNativeElement extends ReadOnlyElement implements NativeMethods {
187
180
  const fromStateNode = getNativeElementReference(relativeToNativeNode);
188
181
 
189
182
  if (toStateNode != null && fromStateNode != null) {
190
- // $FlowExpectedError[incompatible-type] This is an element instance so the native node reference is always a shadow node.
191
- const toStateShadowNode: ShadowNode = toStateNode;
192
- // $FlowExpectedError[incompatible-type] This is an element instance so the native node reference is always a shadow node.
193
- const fromStateShadowNode: ShadowNode = fromStateNode;
194
-
195
- nullthrows(getFabricUIManager()).measureLayout(
196
- toStateShadowNode,
197
- fromStateShadowNode,
183
+ NativeDOM.measureLayout(
184
+ toStateNode,
185
+ fromStateNode,
198
186
  onFail != null ? onFail : noop,
199
187
  onSuccess != null ? onSuccess : noop,
200
188
  );
@@ -214,12 +202,7 @@ class ReactNativeElement extends ReadOnlyElement implements NativeMethods {
214
202
  const node = getNativeElementReference(this);
215
203
 
216
204
  if (node != null && updatePayload != null) {
217
- // $FlowExpectedError[incompatible-type] This is an element instance so the native node reference is always a shadow node.
218
- const shadowNode: ShadowNode = node;
219
- nullthrows(getFabricUIManager()).setNativeProps(
220
- shadowNode,
221
- updatePayload,
222
- );
205
+ NativeDOM.setNativeProps(node, updatePayload);
223
206
  }
224
207
  }
225
208
  }
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  // flowlint unsafe-getters-setters:off
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  // flowlint unsafe-getters-setters:off
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  // flowlint unsafe-getters-setters:off
@@ -15,7 +15,7 @@ import type {InstanceHandle} from './internals/NodeInternals';
15
15
  import type ReactNativeDocument from './ReactNativeDocument';
16
16
  import type ReadOnlyElement from './ReadOnlyElement';
17
17
 
18
- import * as ReactNativeFeatureFlags from '../../../featureflags/ReactNativeFeatureFlags';
18
+ import {setPlatformObject} from '../../webidl/PlatformObjects';
19
19
  import {createNodeList} from '../oldstylecollections/NodeList';
20
20
  import {
21
21
  getNativeNodeReference,
@@ -288,6 +288,8 @@ export default class ReadOnlyNode {
288
288
  static DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number = 32;
289
289
  }
290
290
 
291
+ setPlatformObject(ReadOnlyNode);
292
+
291
293
  export function getChildNodes(
292
294
  node: ReadOnlyNode,
293
295
  ): $ReadOnlyArray<ReadOnlyNode> {
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  // flowlint unsafe-getters-setters:off
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  import type {InternalInstanceHandle} from '../../../../../../Libraries/Renderer/shims/ReactNativeTypes';
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  import type ReadOnlyNode from '../ReadOnlyNode';
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  import type {RootTag} from '../../../../../../Libraries/ReactNative/RootTag';
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict-local
8
+ * @format
9
9
  */
10
10
 
11
11
  import type ReadOnlyElement from '../ReadOnlyElement';
@@ -13,6 +13,7 @@ import type {Node as ShadowNode} from '../../../../../../Libraries/Renderer/shim
13
13
  import type {TurboModule} from '../../../../../../Libraries/TurboModule/RCTExport';
14
14
  import type {InstanceHandle} from '../internals/NodeInternals';
15
15
 
16
+ import {getFabricUIManager} from '../../../../../../Libraries/ReactNative/FabricUIManager';
16
17
  import * as TurboModuleRegistry from '../../../../../../Libraries/TurboModule/TurboModuleRegistry';
17
18
  import nullthrows from 'nullthrows';
18
19
 
@@ -154,10 +155,23 @@ export interface Spec extends TurboModule {
154
155
  onFail: () => void,
155
156
  onSuccess: MeasureLayoutOnSuccessCallback,
156
157
  ) => void;
158
+
159
+ /**
160
+ * Legacy direct manipulation APIs (for `ReactNativeElement`).
161
+ */
162
+
163
+ +setNativeProps?: (
164
+ nativeElementReference: mixed,
165
+ updatePayload: mixed,
166
+ ) => void;
157
167
  }
158
168
 
159
169
  const RawNativeDOM = (TurboModuleRegistry.get<Spec>('NativeDOMCxx'): ?Spec);
160
170
 
171
+ export function getRawNativeDOMForTests(): ?Spec {
172
+ return RawNativeDOM;
173
+ }
174
+
161
175
  // This is the actual interface of this module, but the native module codegen
162
176
  // isn't expressive enough yet.
163
177
  export interface RefinedSpec {
@@ -408,6 +422,14 @@ export interface RefinedSpec {
408
422
  onFail: () => void,
409
423
  onSuccess: MeasureLayoutOnSuccessCallback,
410
424
  ) => void;
425
+
426
+ /**
427
+ * Legacy direct manipulation APIs
428
+ */
429
+ +setNativeProps: (
430
+ nativeElementReference: NativeElementReference,
431
+ updatePayload: {...},
432
+ ) => void;
411
433
  }
412
434
 
413
435
  const NativeDOM: RefinedSpec = {
@@ -574,6 +596,22 @@ const NativeDOM: RefinedSpec = {
574
596
  onSuccess,
575
597
  );
576
598
  },
599
+
600
+ /**
601
+ * Legacy direct manipulation APIs
602
+ */
603
+ setNativeProps(nativeNodeReference, updatePayload) {
604
+ // TODO: remove when RawNativeDOM.setNativeProps is NOT nullable.
605
+ if (RawNativeDOM?.setNativeProps == null) {
606
+ nullthrows(getFabricUIManager()).setNativeProps(
607
+ nativeNodeReference,
608
+ updatePayload,
609
+ );
610
+ return;
611
+ }
612
+
613
+ return RawNativeDOM.setNativeProps(nativeNodeReference, updatePayload);
614
+ },
577
615
  };
578
616
 
579
617
  export default NativeDOM;
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict
8
+ * @format
9
9
  */
10
10
 
11
11
  // flowlint unsafe-getters-setters:off
@@ -13,6 +13,7 @@
13
13
  import type {ArrayLike} from '../../utils/ArrayLikeUtils';
14
14
 
15
15
  import {createValueIterator} from '../../utils/ArrayLikeUtils';
16
+ import {setPlatformObject} from '../../webidl/PlatformObjects';
16
17
 
17
18
  // IMPORTANT: The type definition for this module is defined in `HTMLCollection.js.flow`
18
19
  // because Flow only supports indexers in classes in declaration files.
@@ -69,6 +70,8 @@ export default class HTMLCollection<T> implements Iterable<T>, ArrayLike<T> {
69
70
  }
70
71
  }
71
72
 
73
+ setPlatformObject(HTMLCollection);
74
+
72
75
  /**
73
76
  * This is an internal method to create instances of `HTMLCollection`,
74
77
  * which avoids leaking its constructor to end users.
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict
8
+ * @format
9
9
  */
10
10
 
11
11
  // flowlint unsafe-getters-setters:off
@@ -17,6 +17,7 @@ import {
17
17
  createKeyIterator,
18
18
  createValueIterator,
19
19
  } from '../../utils/ArrayLikeUtils';
20
+ import {setPlatformObject} from '../../webidl/PlatformObjects';
20
21
 
21
22
  // IMPORTANT: The Flow type definition for this module is defined in `NodeList.js.flow`
22
23
  // because Flow only supports indexers in classes in declaration files.
@@ -93,6 +94,8 @@ export default class NodeList<T> implements Iterable<T>, ArrayLike<T> {
93
94
  }
94
95
  }
95
96
 
97
+ setPlatformObject(NodeList);
98
+
96
99
  /**
97
100
  * This is an internal method to create instances of `NodeList`,
98
101
  * which avoids leaking its constructor to end users.
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ /**
12
+ * This module implements the `DOMException` interface from WebIDL.
13
+ * See https://webidl.spec.whatwg.org/#idl-DOMException.
14
+ */
15
+
16
+ // flowlint unsafe-getters-setters:off
17
+
18
+ import {setPlatformObject} from '../webidl/PlatformObjects';
19
+
20
+ const ERROR_NAME_TO_ERROR_CODE_MAP: {[string]: number} = {
21
+ IndexSizeError: 1,
22
+ HierarchyRequestError: 3,
23
+ WrongDocumentError: 4,
24
+ InvalidCharacterError: 5,
25
+ NoModificationAllowedError: 7,
26
+ NotFoundError: 8,
27
+ NotSupportedError: 9,
28
+ InUseAttributeError: 10,
29
+ InvalidStateError: 11,
30
+ SyntaxError: 12,
31
+ InvalidModificationError: 13,
32
+ NamespaceError: 14,
33
+ InvalidAccessError: 15,
34
+ TypeMismatchError: 17,
35
+ SecurityError: 18,
36
+ NetworkError: 19,
37
+ AbortError: 20,
38
+ URLMismatchError: 21,
39
+ QuotaExceededError: 22,
40
+ TimeoutError: 23,
41
+ InvalidNodeTypeError: 24,
42
+ DataCloneError: 25,
43
+ };
44
+
45
+ const ERROR_CODES: {[string]: number} = {
46
+ INDEX_SIZE_ERR: 1,
47
+ DOMSTRING_SIZE_ERR: 2,
48
+ HIERARCHY_REQUEST_ERR: 3,
49
+ WRONG_DOCUMENT_ERR: 4,
50
+ INVALID_CHARACTER_ERR: 5,
51
+ NO_DATA_ALLOWED_ERR: 6,
52
+ NO_MODIFICATION_ALLOWED_ERR: 7,
53
+ NOT_FOUND_ERR: 8,
54
+ NOT_SUPPORTED_ERR: 9,
55
+ INUSE_ATTRIBUTE_ERR: 10,
56
+ INVALID_STATE_ERR: 11,
57
+ SYNTAX_ERR: 12,
58
+ INVALID_MODIFICATION_ERR: 13,
59
+ NAMESPACE_ERR: 14,
60
+ INVALID_ACCESS_ERR: 15,
61
+ VALIDATION_ERR: 16,
62
+ TYPE_MISMATCH_ERR: 17,
63
+ SECURITY_ERR: 18,
64
+ NETWORK_ERR: 19,
65
+ ABORT_ERR: 20,
66
+ URL_MISMATCH_ERR: 21,
67
+ QUOTA_EXCEEDED_ERR: 22,
68
+ TIMEOUT_ERR: 23,
69
+ INVALID_NODE_TYPE_ERR: 24,
70
+ DATA_CLONE_ERR: 25,
71
+ };
72
+
73
+ /* eslint-disable lint/require-extends-error */
74
+ // $FlowExpectedError[incompatible-variance] name is writable in Error but not in DOMException, but this is how it works on Web.
75
+ export default class DOMException extends Error {
76
+ static +INDEX_SIZE_ERR: 1;
77
+ static +DOMSTRING_SIZE_ERR: 2;
78
+ static +HIERARCHY_REQUEST_ERR: 3;
79
+ static +WRONG_DOCUMENT_ERR: 4;
80
+ static +INVALID_CHARACTER_ERR: 5;
81
+ static +NO_DATA_ALLOWED_ERR: 6;
82
+ static +NO_MODIFICATION_ALLOWED_ERR: 7;
83
+ static +NOT_FOUND_ERR: 8;
84
+ static +NOT_SUPPORTED_ERR: 9;
85
+ static +INUSE_ATTRIBUTE_ERR: 10;
86
+ static +INVALID_STATE_ERR: 11;
87
+ static +SYNTAX_ERR: 12;
88
+ static +INVALID_MODIFICATION_ERR: 13;
89
+ static +NAMESPACE_ERR: 14;
90
+ static +INVALID_ACCESS_ERR: 15;
91
+ static +VALIDATION_ERR: 16;
92
+ static +TYPE_MISMATCH_ERR: 17;
93
+ static +SECURITY_ERR: 18;
94
+ static +NETWORK_ERR: 19;
95
+ static +ABORT_ERR: 20;
96
+ static +URL_MISMATCH_ERR: 21;
97
+ static +QUOTA_EXCEEDED_ERR: 22;
98
+ static +TIMEOUT_ERR: 23;
99
+ static +INVALID_NODE_TYPE_ERR: 24;
100
+ static +DATA_CLONE_ERR: 25;
101
+
102
+ +INDEX_SIZE_ERR: 1;
103
+ +DOMSTRING_SIZE_ERR: 2;
104
+ +HIERARCHY_REQUEST_ERR: 3;
105
+ +WRONG_DOCUMENT_ERR: 4;
106
+ +INVALID_CHARACTER_ERR: 5;
107
+ +NO_DATA_ALLOWED_ERR: 6;
108
+ +NO_MODIFICATION_ALLOWED_ERR: 7;
109
+ +NOT_FOUND_ERR: 8;
110
+ +NOT_SUPPORTED_ERR: 9;
111
+ +INUSE_ATTRIBUTE_ERR: 10;
112
+ +INVALID_STATE_ERR: 11;
113
+ +SYNTAX_ERR: 12;
114
+ +INVALID_MODIFICATION_ERR: 13;
115
+ +NAMESPACE_ERR: 14;
116
+ +INVALID_ACCESS_ERR: 15;
117
+ +VALIDATION_ERR: 16;
118
+ +TYPE_MISMATCH_ERR: 17;
119
+ +SECURITY_ERR: 18;
120
+ +NETWORK_ERR: 19;
121
+ +ABORT_ERR: 20;
122
+ +URL_MISMATCH_ERR: 21;
123
+ +QUOTA_EXCEEDED_ERR: 22;
124
+ +TIMEOUT_ERR: 23;
125
+ +INVALID_NODE_TYPE_ERR: 24;
126
+ +DATA_CLONE_ERR: 25;
127
+
128
+ #name: string;
129
+ #code: number;
130
+
131
+ constructor(message?: string, name?: string) {
132
+ super(message);
133
+
134
+ if (typeof name === 'undefined') {
135
+ this.#name = 'Error';
136
+ this.#code = 0;
137
+ } else {
138
+ this.#name = String(name);
139
+ this.#code = ERROR_NAME_TO_ERROR_CODE_MAP[this.name] ?? 0;
140
+ }
141
+ }
142
+
143
+ get name(): string {
144
+ return this.#name;
145
+ }
146
+
147
+ get code(): number {
148
+ return this.#code;
149
+ }
150
+ }
151
+
152
+ for (const code in ERROR_CODES) {
153
+ Object.defineProperty(DOMException, code, {
154
+ enumerable: true,
155
+ value: ERROR_CODES[code],
156
+ });
157
+
158
+ Object.defineProperty(DOMException.prototype, code, {
159
+ enumerable: true,
160
+ value: ERROR_CODES[code],
161
+ });
162
+ }
163
+
164
+ setPlatformObject(DOMException, {
165
+ clone: exception => new DOMException(exception.message, exception.name),
166
+ });
@@ -14,6 +14,7 @@
14
14
  * licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
15
15
  */
16
16
 
17
+ import {setPlatformObject} from '../webidl/PlatformObjects';
17
18
  import DOMRectReadOnly, {type DOMRectInit} from './DOMRectReadOnly';
18
19
 
19
20
  // flowlint unsafe-getters-setters:off
@@ -80,3 +81,7 @@ export default class DOMRect extends DOMRectReadOnly {
80
81
  return new DOMRect(rect.x, rect.y, rect.width, rect.height);
81
82
  }
82
83
  }
84
+
85
+ setPlatformObject(DOMRect, {
86
+ clone: rect => new DOMRect(rect.x, rect.y, rect.width, rect.height),
87
+ });
@@ -4,8 +4,8 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @format
8
7
  * @flow strict
8
+ * @format
9
9
  */
10
10
 
11
11
  // flowlint unsafe-getters-setters:off
@@ -14,6 +14,7 @@ import type {ArrayLike} from '../utils/ArrayLikeUtils';
14
14
  import type DOMRectReadOnly from './DOMRectReadOnly';
15
15
 
16
16
  import {createValueIterator} from '../utils/ArrayLikeUtils';
17
+ import {setPlatformObject} from '../webidl/PlatformObjects';
17
18
 
18
19
  // IMPORTANT: The Flow type definition for this module is defined in `DOMRectList.js.flow`
19
20
  // because Flow only supports indexers in classes in declaration files.
@@ -63,6 +64,8 @@ export default class DOMRectList implements Iterable<DOMRectReadOnly> {
63
64
  }
64
65
  }
65
66
 
67
+ setPlatformObject(DOMRectList);
68
+
66
69
  /**
67
70
  * This is an internal method to create instances of `DOMRectList`,
68
71
  * which avoids leaking its constructor to end users.
@@ -14,6 +14,8 @@
14
14
  * licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
15
15
  */
16
16
 
17
+ import {setPlatformObject} from '../webidl/PlatformObjects';
18
+
17
19
  // flowlint sketchy-null:off, unsafe-getters-setters:off
18
20
 
19
21
  export interface DOMRectInit {
@@ -186,3 +188,7 @@ export default class DOMRectReadOnly {
186
188
  this.#height = castToNumber(height);
187
189
  }
188
190
  }
191
+
192
+ setPlatformObject(DOMRectReadOnly, {
193
+ clone: rect => new DOMRectReadOnly(rect.x, rect.y, rect.width, rect.height),
194
+ });
@@ -14,6 +14,7 @@ import type {IntersectionObserverId} from './internals/IntersectionObserverManag
14
14
  import type IntersectionObserverEntry from './IntersectionObserverEntry';
15
15
 
16
16
  import ReactNativeElement from '../dom/nodes/ReactNativeElement';
17
+ import {setPlatformObject} from '../webidl/PlatformObjects';
17
18
  import * as IntersectionObserverManager from './internals/IntersectionObserverManager';
18
19
 
19
20
  export type IntersectionObserverCallback = (
@@ -250,6 +251,8 @@ export default class IntersectionObserver {
250
251
  }
251
252
  }
252
253
 
254
+ setPlatformObject(IntersectionObserver);
255
+
253
256
  /**
254
257
  * Converts the user defined `threshold` value into an array of sorted valid
255
258
  * threshold options for `IntersectionObserver` (double ∈ [0, 1]).
@@ -14,6 +14,7 @@ import type ReactNativeElement from '../dom/nodes/ReactNativeElement';
14
14
  import type {NativeIntersectionObserverEntry} from './specs/NativeIntersectionObserver';
15
15
 
16
16
  import DOMRectReadOnly from '../geometry/DOMRectReadOnly';
17
+ import {setPlatformObject} from '../webidl/PlatformObjects';
17
18
 
18
19
  /**
19
20
  * The [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)
@@ -159,6 +160,8 @@ export default class IntersectionObserverEntry {
159
160
  }
160
161
  }
161
162
 
163
+ setPlatformObject(IntersectionObserverEntry);
164
+
162
165
  export function createIntersectionObserverEntry(
163
166
  entry: NativeIntersectionObserverEntry,
164
167
  target: ReactNativeElement,