@office-iss/react-native-win32 0.71.5 → 0.72.0-preview.2

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 (326) hide show
  1. package/.flowconfig +15 -3
  2. package/CHANGELOG.json +321 -45
  3. package/CHANGELOG.md +149 -26
  4. package/IntegrationTests/IntegrationTestHarnessTest.js +1 -0
  5. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
  6. package/Libraries/Alert/Alert.d.ts +4 -4
  7. package/Libraries/Alert/Alert.win32.js +1 -0
  8. package/Libraries/Animated/Animated.d.ts +17 -6
  9. package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
  10. package/Libraries/Animated/NativeAnimatedHelper.win32.js +606 -0
  11. package/Libraries/Animated/bezier.js +1 -1
  12. package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
  13. package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
  14. package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
  15. package/Libraries/Animated/createAnimatedComponent.js +26 -239
  16. package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
  17. package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
  18. package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
  19. package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
  20. package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
  21. package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
  22. package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
  23. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  24. package/Libraries/Animated/useAnimatedProps.js +7 -10
  25. package/Libraries/BatchedBridge/MessageQueue.js +2 -1
  26. package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
  27. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  28. package/Libraries/Blob/Blob.js +4 -0
  29. package/Libraries/Blob/FileReader.js +30 -2
  30. package/Libraries/Blob/URL.js +3 -1
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +2 -3
  34. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
  35. package/Libraries/Components/Button.js +3 -2
  36. package/Libraries/Components/Button.win32.js +451 -0
  37. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
  39. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
  40. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  41. package/Libraries/Components/Pressable/Pressable.js +1 -1
  42. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
  43. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
  44. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +1 -2
  45. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
  46. package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
  47. package/Libraries/Components/ScrollView/ScrollView.js +149 -91
  48. package/Libraries/Components/ScrollView/ScrollView.win32.js +1939 -0
  49. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
  50. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
  51. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
  52. package/Libraries/Components/StatusBar/StatusBar.js +3 -0
  53. package/Libraries/Components/Switch/Switch.js +3 -1
  54. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
  55. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
  56. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
  57. package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +51 -0
  58. package/Libraries/Components/TextInput/TextInput.Types.win32.js +3 -0
  59. package/Libraries/Components/TextInput/TextInput.Types.win32.js.map +1 -0
  60. package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
  61. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  62. package/Libraries/Components/TextInput/TextInput.js +130 -103
  63. package/Libraries/Components/TextInput/TextInput.win32.js +202 -890
  64. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  65. package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
  66. package/Libraries/Components/Touchable/Touchable.js +6 -3
  67. package/Libraries/Components/Touchable/Touchable.win32.js +6 -3
  68. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  69. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
  70. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
  71. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  72. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
  73. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  74. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +179 -0
  75. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
  76. package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
  77. package/Libraries/Components/View/View.js +35 -16
  78. package/Libraries/Components/View/View.win32.js +38 -16
  79. package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
  80. package/Libraries/Components/View/ViewAccessibility.js +10 -1
  81. package/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
  82. package/Libraries/Components/View/ViewNativeComponent.js +32 -8
  83. package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
  84. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  85. package/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
  86. package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
  87. package/Libraries/Components/View/ViewWin32.js +2 -35
  88. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  89. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  90. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  91. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  92. package/Libraries/Core/ExceptionsManager.js +2 -2
  93. package/Libraries/Core/InitializeCore.js +2 -1
  94. package/Libraries/Core/ReactNativeVersion.js +3 -3
  95. package/Libraries/Core/ReactNativeVersionCheck.js +4 -8
  96. package/Libraries/Core/ReactNativeVersionCheck.win32.js +4 -8
  97. package/Libraries/Core/Timers/JSTimers.js +1 -1
  98. package/Libraries/Core/Timers/immediateShim.js +1 -0
  99. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  100. package/Libraries/Core/setUpAlert.js +1 -1
  101. package/Libraries/Core/setUpDOM.js +18 -0
  102. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  103. package/Libraries/Core/setUpGlobals.js +5 -2
  104. package/Libraries/Core/setUpNavigator.js +6 -5
  105. package/Libraries/Core/setUpPerformance.js +23 -13
  106. package/Libraries/Core/setUpReactDevTools.js +2 -0
  107. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  108. package/Libraries/Core/setUpTimers.js +2 -2
  109. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  110. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  111. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  112. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  113. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  114. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  115. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  116. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  117. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  118. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  119. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  120. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  121. package/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js +35 -0
  122. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +24 -0
  123. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  124. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  125. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  126. package/Libraries/Events/EventPolyfill.js +1 -1
  127. package/Libraries/Image/AssetRegistry.js +1 -1
  128. package/Libraries/Image/AssetSourceResolver.js +3 -3
  129. package/Libraries/Image/Image.android.js +4 -1
  130. package/Libraries/Image/Image.d.ts +63 -2
  131. package/Libraries/Image/Image.ios.js +3 -0
  132. package/Libraries/Image/Image.win32.js +3 -0
  133. package/Libraries/Image/ImageBackground.js +1 -0
  134. package/Libraries/Image/ImageProps.js +1 -1
  135. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  136. package/Libraries/Image/RelativeImageStub.js +1 -1
  137. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  138. package/Libraries/Image/resolveAssetSource.js +1 -1
  139. package/Libraries/Inspector/DevtoolsOverlay.js +26 -19
  140. package/Libraries/Inspector/ElementBox.js +4 -1
  141. package/Libraries/Inspector/Inspector.js +5 -6
  142. package/Libraries/Inspector/Inspector.win32.js +7 -6
  143. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  144. package/Libraries/Inspector/InspectorOverlay.win32.js +2 -1
  145. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  146. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  147. package/Libraries/Interaction/PanResponder.js +5 -6
  148. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  149. package/Libraries/Linking/Linking.js +1 -4
  150. package/Libraries/Lists/FillRateHelper.js +4 -238
  151. package/Libraries/Lists/FlatList.d.ts +15 -22
  152. package/Libraries/Lists/FlatList.js +9 -6
  153. package/Libraries/Lists/SectionList.d.ts +10 -6
  154. package/Libraries/Lists/SectionList.js +5 -3
  155. package/Libraries/Lists/SectionListModern.js +3 -3
  156. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  157. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  158. package/Libraries/Lists/VirtualizedList.js +10 -1867
  159. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  160. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  161. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  162. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  163. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  164. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  165. package/Libraries/LogBox/LogBox.js +1 -1
  166. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  167. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +168 -0
  168. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +3 -0
  169. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +193 -0
  170. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  171. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  172. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +7 -3
  173. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  174. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  175. package/Libraries/Modal/Modal.js +2 -2
  176. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  177. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  178. package/Libraries/NativeComponent/BaseViewConfig.win32.js +43 -19
  179. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  180. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  181. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  182. package/Libraries/Network/RCTNetworking.android.js +2 -2
  183. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  184. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  185. package/Libraries/Network/XMLHttpRequest.js +1 -1
  186. package/Libraries/Pressability/Pressability.js +10 -4
  187. package/Libraries/Pressability/Pressability.win32.js +9 -3
  188. package/Libraries/ReactNative/AppContainer.js +7 -1
  189. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  190. package/Libraries/ReactNative/AppRegistry.js +10 -13
  191. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  192. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  193. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  194. package/Libraries/ReactNative/UIManager.js +168 -1
  195. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  196. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  197. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  198. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  199. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  200. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  201. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  202. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  203. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  204. package/Libraries/Renderer/shims/ReactNativeTypes.js +6 -6
  205. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  206. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  207. package/Libraries/Share/Share.js +1 -1
  208. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  209. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  210. package/Libraries/StyleSheet/StyleSheet.win32.js +1 -1
  211. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  212. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  213. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  214. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  215. package/Libraries/StyleSheet/processColor.js +1 -1
  216. package/Libraries/Text/Text.d.ts +12 -2
  217. package/Libraries/Text/Text.js +50 -41
  218. package/Libraries/Text/TextProps.js +3 -4
  219. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  220. package/Libraries/Types/CodegenTypes.js +1 -0
  221. package/Libraries/UTFSequence.js +3 -1
  222. package/Libraries/Utilities/Appearance.d.ts +10 -0
  223. package/Libraries/Utilities/Appearance.js +13 -0
  224. package/Libraries/Utilities/Dimensions.js +1 -1
  225. package/Libraries/Utilities/Dimensions.win32.js +1 -1
  226. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  227. package/Libraries/Utilities/HMRClient.js +16 -10
  228. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  229. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  230. package/Libraries/Utilities/LoadingView.android.js +28 -11
  231. package/Libraries/Utilities/NativeAppearance.js +1 -0
  232. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  233. package/Libraries/Utilities/PixelRatio.js +2 -2
  234. package/Libraries/Utilities/Platform.win32.js +1 -1
  235. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  236. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  237. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  238. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  239. package/Libraries/Utilities/stringifySafe.js +2 -7
  240. package/Libraries/Utilities/useColorScheme.win32.js +26 -0
  241. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  242. package/Libraries/WebPerformance/EventCounts.js +78 -0
  243. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  244. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  245. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  246. package/Libraries/WebPerformance/Performance.js +312 -0
  247. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  248. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  249. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  250. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  251. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  252. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  253. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  254. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  255. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  256. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  257. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  258. package/flow/global.js +29 -4
  259. package/flow/jest.js +258 -164
  260. package/flow/use-sync-external-store.js +1 -0
  261. package/index.js +56 -42
  262. package/index.win32.js +56 -42
  263. package/interface.js +1 -1
  264. package/jest/local-setup.js +33 -0
  265. package/jest/mockComponent.js +4 -2
  266. package/jest/mockNativeComponent.js +1 -1
  267. package/jest/mockScrollView.js +2 -1
  268. package/jest/react-native-env.js +1 -3
  269. package/jest/setup.js +11 -8
  270. package/overrides.json +122 -85
  271. package/package.json +40 -30
  272. package/rn-get-polyfills.js +1 -1
  273. package/src/Libraries/Components/TextInput/TextInput.Types.win32.ts +68 -0
  274. package/src/Libraries/Components/Touchable/TouchableWin32.tsx +3 -3
  275. package/src/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
  276. package/src/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
  277. package/types/index.d.ts +2 -6
  278. package/types/modules/Codegen.d.ts +4 -4
  279. package/types/modules/globals.d.ts +27 -25
  280. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -20
  281. package/types/public/ReactNativeRenderer.d.ts +2 -7
  282. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  283. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  284. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  285. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  286. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  287. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  288. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  289. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  290. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  291. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -47
  292. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  293. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  294. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  295. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  296. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  297. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -45
  298. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  299. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  300. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  301. package/Libraries/Components/Slider/Slider.js +0 -282
  302. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  303. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +0 -23
  304. package/Libraries/Interaction/Batchinator.js +0 -76
  305. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  306. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  307. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  308. package/Libraries/Lists/CellRenderMask.js +0 -155
  309. package/Libraries/Lists/ChildListCollection.js +0 -72
  310. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  311. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  312. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  313. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  314. package/Libraries/Performance/PureComponentDebug.js +0 -74
  315. package/Libraries/Reliability/UserFlow.js +0 -158
  316. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  317. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  318. package/Libraries/Utilities/MatrixMath.js +0 -748
  319. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  320. package/Libraries/Utilities/clamp.js +0 -23
  321. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  322. package/Libraries/Utilities/groupByEveryN.js +0 -51
  323. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  324. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  325. package/Libraries/Utilities/truncate.js +0 -51
  326. package/flow/JSITimerInternalType.js +0 -30
@@ -0,0 +1,167 @@
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 strict
9
+ */
10
+
11
+ // flowlint unsafe-getters-setters:off
12
+
13
+ import type NodeList from '../OldStyleCollections/NodeList';
14
+ import type ReadOnlyElement from './ReadOnlyElement';
15
+
16
+ export default class ReadOnlyNode {
17
+ get childNodes(): NodeList<ReadOnlyNode> {
18
+ throw new TypeError('Unimplemented');
19
+ }
20
+
21
+ get firstChild(): ReadOnlyNode | null {
22
+ throw new TypeError('Unimplemented');
23
+ }
24
+
25
+ get isConnected(): boolean {
26
+ throw new TypeError('Unimplemented');
27
+ }
28
+
29
+ get lastChild(): ReadOnlyNode | null {
30
+ throw new TypeError('Unimplemented');
31
+ }
32
+
33
+ get nextSibling(): ReadOnlyNode | null {
34
+ throw new TypeError('Unimplemented');
35
+ }
36
+
37
+ get nodeName(): string {
38
+ throw new TypeError('Unimplemented');
39
+ }
40
+
41
+ get nodeType(): number {
42
+ throw new TypeError('Unimplemented');
43
+ }
44
+
45
+ get nodeValue(): string | null {
46
+ throw new TypeError('Unimplemented');
47
+ }
48
+
49
+ get parentElement(): ReadOnlyElement | null {
50
+ throw new TypeError('Unimplemented');
51
+ }
52
+
53
+ get parentNode(): ReadOnlyNode | null {
54
+ throw new TypeError('Unimplemented');
55
+ }
56
+
57
+ get previousSibling(): ReadOnlyNode | null {
58
+ throw new TypeError('Unimplemented');
59
+ }
60
+
61
+ get textContent(): string | null {
62
+ throw new TypeError('Unimplemented');
63
+ }
64
+
65
+ compareDocumentPosition(otherNode: ReadOnlyNode): number {
66
+ throw new TypeError('Unimplemented');
67
+ }
68
+
69
+ contains(otherNode: ReadOnlyNode): boolean {
70
+ throw new TypeError('Unimplemented');
71
+ }
72
+
73
+ getRootNode(): ReadOnlyNode {
74
+ throw new TypeError('Unimplemented');
75
+ }
76
+
77
+ hasChildNodes(): boolean {
78
+ throw new TypeError('Unimplemented');
79
+ }
80
+
81
+ /*
82
+ * Node types, as returned by the `nodeType` property.
83
+ */
84
+
85
+ /**
86
+ * Type of Element, HTMLElement and ReactNativeElement instances.
87
+ */
88
+ static ELEMENT_NODE: number = 1;
89
+ /**
90
+ * Currently Unused in React Native.
91
+ */
92
+ static ATTRIBUTE_NODE: number = 2;
93
+ /**
94
+ * Text nodes.
95
+ */
96
+ static TEXT_NODE: number = 3;
97
+ /**
98
+ * @deprecated Unused in React Native.
99
+ */
100
+ static CDATA_SECTION_NODE: number = 4;
101
+ /**
102
+ * @deprecated
103
+ */
104
+ static ENTITY_REFERENCE_NODE: number = 5;
105
+ /**
106
+ * @deprecated
107
+ */
108
+ static ENTITY_NODE: number = 6;
109
+ /**
110
+ * @deprecated Unused in React Native.
111
+ */
112
+ static PROCESSING_INSTRUCTION_NODE: number = 7;
113
+ /**
114
+ * @deprecated Unused in React Native.
115
+ */
116
+ static COMMENT_NODE: number = 8;
117
+ /**
118
+ * @deprecated Unused in React Native.
119
+ */
120
+ static DOCUMENT_NODE: number = 9;
121
+ /**
122
+ * @deprecated Unused in React Native.
123
+ */
124
+ static DOCUMENT_TYPE_NODE: number = 10;
125
+ /**
126
+ * @deprecated Unused in React Native.
127
+ */
128
+ static DOCUMENT_FRAGMENT_NODE: number = 11;
129
+ /**
130
+ * @deprecated
131
+ */
132
+ static NOTATION_NODE: number = 12;
133
+
134
+ /*
135
+ * Document position flags. Used to check the return value of
136
+ * `compareDocumentPosition()`.
137
+ */
138
+
139
+ /**
140
+ * Both nodes are in different documents.
141
+ */
142
+ static DOCUMENT_POSITION_DISCONNECTED: number = 1;
143
+ /**
144
+ * `otherNode` precedes the node in either a pre-order depth-first traversal of a tree containing both
145
+ * (e.g., as an ancestor or previous sibling or a descendant of a previous sibling or previous sibling of an ancestor)
146
+ * or (if they are disconnected) in an arbitrary but consistent ordering.
147
+ */
148
+ static DOCUMENT_POSITION_PRECEDING: number = 2;
149
+ /**
150
+ * `otherNode` follows the node in either a pre-order depth-first traversal of a tree containing both
151
+ * (e.g., as a descendant or following sibling or a descendant of a following sibling or following sibling of an ancestor)
152
+ * or (if they are disconnected) in an arbitrary but consistent ordering.
153
+ */
154
+ static DOCUMENT_POSITION_FOLLOWING: number = 4;
155
+ /**
156
+ * `otherNode` is an ancestor of the node.
157
+ */
158
+ static DOCUMENT_POSITION_CONTAINS: number = 8;
159
+ /**
160
+ * `otherNode` is a descendant of the node.
161
+ */
162
+ static DOCUMENT_POSITION_CONTAINED_BY: number = 16;
163
+ /**
164
+ * @deprecated Unused in React Native.
165
+ */
166
+ static DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number = 32;
167
+ }
@@ -0,0 +1,46 @@
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 strict
9
+ */
10
+
11
+ /**
12
+ * This definition is different from the current built-in type `$ArrayLike`
13
+ * provided by Flow, in that this is an interface and that one is an object.
14
+ *
15
+ * The difference is important because, when using objects, Flow thinks
16
+ * a `length` property would be copied over when using the spread operator,
17
+ * which is incorrect.
18
+ */
19
+ export interface ArrayLike<T> extends Iterable<T> {
20
+ // This property should've been read-only as well, but Flow doesn't handle
21
+ // read-only indexers correctly (thinks reads are writes and fails).
22
+ [indexer: number]: T;
23
+ +length: number;
24
+ }
25
+
26
+ export function* createValueIterator<T>(arrayLike: ArrayLike<T>): Iterator<T> {
27
+ for (let i = 0; i < arrayLike.length; i++) {
28
+ yield arrayLike[i];
29
+ }
30
+ }
31
+
32
+ export function* createKeyIterator<T>(
33
+ arrayLike: ArrayLike<T>,
34
+ ): Iterator<number> {
35
+ for (let i = 0; i < arrayLike.length; i++) {
36
+ yield i;
37
+ }
38
+ }
39
+
40
+ export function* createEntriesIterator<T>(
41
+ arrayLike: ArrayLike<T>,
42
+ ): Iterator<[number, T]> {
43
+ for (let i = 0; i < arrayLike.length; i++) {
44
+ yield [i, arrayLike[i]];
45
+ }
46
+ }
@@ -0,0 +1,76 @@
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 strict
9
+ */
10
+
11
+ // flowlint unsafe-getters-setters:off
12
+
13
+ import type DOMRectReadOnly from '../Geometry/DOMRectReadOnly';
14
+ import type {ArrayLike} from './ArrayLikeUtils';
15
+
16
+ import {createValueIterator} from './ArrayLikeUtils';
17
+
18
+ // IMPORTANT: The Flow type definition for this module is defined in `DOMRectList.js.flow`
19
+ // because Flow only supports indexers in classes in declaration files.
20
+
21
+ // $FlowIssue[prop-missing] Flow doesn't understand [Symbol.iterator]() {} and thinks this class doesn't implement the Iterable interface.
22
+ export default class DOMRectList implements Iterable<DOMRectReadOnly> {
23
+ _length: number;
24
+
25
+ /**
26
+ * Use `createDOMRectList` to create instances of this class.
27
+ *
28
+ * @private This is not defined in the declaration file, so users will not see
29
+ * the signature of the constructor.
30
+ */
31
+ constructor(elements: $ReadOnlyArray<DOMRectReadOnly>) {
32
+ for (let i = 0; i < elements.length; i++) {
33
+ Object.defineProperty(this, i, {
34
+ value: elements[i],
35
+ enumerable: true,
36
+ configurable: false,
37
+ writable: false,
38
+ });
39
+ }
40
+
41
+ this._length = elements.length;
42
+ }
43
+
44
+ get length(): number {
45
+ return this._length;
46
+ }
47
+
48
+ item(index: number): DOMRectReadOnly | null {
49
+ if (index < 0 || index >= this._length) {
50
+ return null;
51
+ }
52
+
53
+ // assigning to the interface allows us to access the indexer property in a
54
+ // type-safe way.
55
+ // eslint-disable-next-line consistent-this
56
+ const arrayLike: ArrayLike<DOMRectReadOnly> = this;
57
+ return arrayLike[index];
58
+ }
59
+
60
+ // $FlowIssue[unsupported-syntax] Flow does not support computed properties in classes.
61
+ [Symbol.iterator](): Iterator<DOMRectReadOnly> {
62
+ return createValueIterator(this);
63
+ }
64
+ }
65
+
66
+ /**
67
+ * This is an internal method to create instances of `DOMRectList`,
68
+ * which avoids leaking its constructor to end users.
69
+ * We can do that because the external definition of `DOMRectList` lives in
70
+ * `DOMRectList.js.flow`, not here.
71
+ */
72
+ export function createDOMRectList(
73
+ elements: $ReadOnlyArray<DOMRectReadOnly>,
74
+ ): DOMRectList {
75
+ return new DOMRectList(elements);
76
+ }
@@ -0,0 +1,82 @@
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 strict
9
+ */
10
+
11
+ // flowlint unsafe-getters-setters:off
12
+
13
+ import type {ArrayLike} from './ArrayLikeUtils';
14
+
15
+ import {createValueIterator} from './ArrayLikeUtils';
16
+
17
+ // IMPORTANT: The type definition for this module is defined in `HTMLCollection.js.flow`
18
+ // because Flow only supports indexers in classes in declaration files.
19
+
20
+ // $FlowIssue[prop-missing] Flow doesn't understand [Symbol.iterator]() {} and thinks this class doesn't implement the Iterable<T> interface.
21
+ export default class HTMLCollection<T> implements Iterable<T>, ArrayLike<T> {
22
+ _length: number;
23
+
24
+ /**
25
+ * Use `createHTMLCollection` to create instances of this class.
26
+ *
27
+ * @private This is not defined in the declaration file, so users will not see
28
+ * the signature of the constructor.
29
+ */
30
+ constructor(elements: $ReadOnlyArray<T>) {
31
+ for (let i = 0; i < elements.length; i++) {
32
+ Object.defineProperty(this, i, {
33
+ value: elements[i],
34
+ enumerable: true,
35
+ configurable: false,
36
+ writable: false,
37
+ });
38
+ }
39
+
40
+ this._length = elements.length;
41
+ }
42
+
43
+ get length(): number {
44
+ return this._length;
45
+ }
46
+
47
+ item(index: number): T | null {
48
+ if (index < 0 || index >= this._length) {
49
+ return null;
50
+ }
51
+
52
+ // assigning to the interface allows us to access the indexer property in a
53
+ // type-safe way.
54
+ // eslint-disable-next-line consistent-this
55
+ const arrayLike: ArrayLike<T> = this;
56
+ return arrayLike[index];
57
+ }
58
+
59
+ /**
60
+ * @deprecated Unused in React Native.
61
+ */
62
+ namedItem(name: string): T | null {
63
+ return null;
64
+ }
65
+
66
+ // $FlowIssue[unsupported-syntax] Flow does not support computed properties in classes.
67
+ [Symbol.iterator](): Iterator<T> {
68
+ return createValueIterator(this);
69
+ }
70
+ }
71
+
72
+ /**
73
+ * This is an internal method to create instances of `HTMLCollection`,
74
+ * which avoids leaking its constructor to end users.
75
+ * We can do that because the external definition of `HTMLCollection` lives in
76
+ * `HTMLCollection.js.flow`, not here.
77
+ */
78
+ export function createHTMLCollection<T>(
79
+ elements: $ReadOnlyArray<T>,
80
+ ): HTMLCollection<T> {
81
+ return new HTMLCollection(elements);
82
+ }
@@ -0,0 +1,104 @@
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 strict
9
+ */
10
+
11
+ // flowlint unsafe-getters-setters:off
12
+
13
+ import type {ArrayLike} from './ArrayLikeUtils';
14
+
15
+ import {
16
+ createEntriesIterator,
17
+ createKeyIterator,
18
+ createValueIterator,
19
+ } from './ArrayLikeUtils';
20
+
21
+ // IMPORTANT: The Flow type definition for this module is defined in `NodeList.js.flow`
22
+ // because Flow only supports indexers in classes in declaration files.
23
+
24
+ // $FlowIssue[prop-missing] Flow doesn't understand [Symbol.iterator]() {} and thinks this class doesn't implement the Iterable<T> interface.
25
+ export default class NodeList<T> implements Iterable<T>, ArrayLike<T> {
26
+ _length: number;
27
+
28
+ /**
29
+ * Use `createNodeList` to create instances of this class.
30
+ *
31
+ * @private This is not defined in the declaration file, so users will not see
32
+ * the signature of the constructor.
33
+ */
34
+ constructor(elements: $ReadOnlyArray<T>) {
35
+ for (let i = 0; i < elements.length; i++) {
36
+ Object.defineProperty(this, i, {
37
+ value: elements[i],
38
+ writable: false,
39
+ });
40
+ }
41
+ this._length = elements.length;
42
+ }
43
+
44
+ get length(): number {
45
+ return this._length;
46
+ }
47
+
48
+ item(index: number): T | null {
49
+ if (index < 0 || index >= this._length) {
50
+ return null;
51
+ }
52
+
53
+ // assigning to the interface allows us to access the indexer property in a
54
+ // type-safe way.
55
+ // eslint-disable-next-line consistent-this
56
+ const arrayLike: ArrayLike<T> = this;
57
+ return arrayLike[index];
58
+ }
59
+
60
+ entries(): Iterator<[number, T]> {
61
+ return createEntriesIterator(this);
62
+ }
63
+
64
+ forEach<ThisType>(
65
+ callbackFn: (value: T, index: number, array: NodeList<T>) => mixed,
66
+ thisArg?: ThisType,
67
+ ): void {
68
+ // assigning to the interface allows us to access the indexer property in a
69
+ // type-safe way.
70
+ // eslint-disable-next-line consistent-this
71
+ const arrayLike: ArrayLike<T> = this;
72
+
73
+ for (let index = 0; index < this._length; index++) {
74
+ if (thisArg == null) {
75
+ callbackFn(arrayLike[index], index, this);
76
+ } else {
77
+ callbackFn.call(thisArg, arrayLike[index], index, this);
78
+ }
79
+ }
80
+ }
81
+
82
+ keys(): Iterator<number> {
83
+ return createKeyIterator(this);
84
+ }
85
+
86
+ values(): Iterator<T> {
87
+ return createValueIterator(this);
88
+ }
89
+
90
+ // $FlowIssue[unsupported-syntax] Flow does not support computed properties in classes.
91
+ [Symbol.iterator](): Iterator<T> {
92
+ return createValueIterator(this);
93
+ }
94
+ }
95
+
96
+ /**
97
+ * This is an internal method to create instances of `NodeList`,
98
+ * which avoids leaking its constructor to end users.
99
+ * We can do that because the external definition of `NodeList` lives in
100
+ * `NodeList.js.flow`, not here.
101
+ */
102
+ export function createNodeList<T>(elements: $ReadOnlyArray<T>): NodeList<T> {
103
+ return new NodeList(elements);
104
+ }
@@ -0,0 +1,35 @@
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-local
8
+ * @format
9
+ */
10
+
11
+ import DevSettings from '../Utilities/DevSettings';
12
+ import NativeDevToolsSettingsManager from './NativeDevToolsSettingsManager';
13
+
14
+ module.exports = {
15
+ setConsolePatchSettings(newSettings: string) {
16
+ NativeDevToolsSettingsManager?.setConsolePatchSettings(newSettings);
17
+ },
18
+ getConsolePatchSettings(): ?string {
19
+ return NativeDevToolsSettingsManager?.getConsolePatchSettings();
20
+ },
21
+ setProfilingSettings(newSettings: string) {
22
+ if (NativeDevToolsSettingsManager?.setProfilingSettings != null) {
23
+ NativeDevToolsSettingsManager.setProfilingSettings(newSettings);
24
+ }
25
+ },
26
+ getProfilingSettings(): ?string {
27
+ if (NativeDevToolsSettingsManager?.getProfilingSettings != null) {
28
+ return NativeDevToolsSettingsManager.getProfilingSettings();
29
+ }
30
+ return null;
31
+ },
32
+ reload(): void {
33
+ DevSettings?.reload();
34
+ },
35
+ };
@@ -0,0 +1,20 @@
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
+ export interface DevToolsSettingsManagerStatic {
12
+ reload(): void;
13
+ setConsolePatchSettings(newSettings: string): void;
14
+ getConsolePatchSettings(): string | null;
15
+ setProfilingSettings(newSettings: string): void;
16
+ getProfilingSettings(): string | null;
17
+ }
18
+
19
+ export const DevToolsSettingsManager: DevToolsSettingsManagerStatic;
20
+ export type DevToolsSettingsManager = DevToolsSettingsManagerStatic;
@@ -0,0 +1,49 @@
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-local
8
+ * @format
9
+ */
10
+
11
+ import Settings from '../Settings/Settings';
12
+ import DevSettings from '../Utilities/DevSettings';
13
+
14
+ const CONSOLE_PATCH_SETTINGS_KEY = 'ReactDevTools::ConsolePatchSettings';
15
+ const PROFILING_SETTINGS_KEY = 'ReactDevTools::ProfilingSettings';
16
+
17
+ const DevToolsSettingsManager = {
18
+ setConsolePatchSettings(newConsolePatchSettings: string): void {
19
+ Settings.set({
20
+ [CONSOLE_PATCH_SETTINGS_KEY]: newConsolePatchSettings,
21
+ });
22
+ },
23
+ getConsolePatchSettings(): ?string {
24
+ const value = Settings.get(CONSOLE_PATCH_SETTINGS_KEY);
25
+ if (typeof value === 'string') {
26
+ return value;
27
+ }
28
+ return null;
29
+ },
30
+
31
+ setProfilingSettings(newProfilingSettings: string): void {
32
+ Settings.set({
33
+ [PROFILING_SETTINGS_KEY]: newProfilingSettings,
34
+ });
35
+ },
36
+ getProfilingSettings(): ?string {
37
+ const value = Settings.get(PROFILING_SETTINGS_KEY);
38
+ if (typeof value === 'string') {
39
+ return value;
40
+ }
41
+ return null;
42
+ },
43
+
44
+ reload(): void {
45
+ DevSettings?.reload();
46
+ },
47
+ };
48
+
49
+ module.exports = DevToolsSettingsManager;
@@ -0,0 +1,35 @@
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-local
8
+ * @format
9
+ */
10
+
11
+ import DevSettings from '../Utilities/DevSettings';
12
+ import NativeDevToolsSettingsManager from './NativeDevToolsSettingsManager';
13
+
14
+ module.exports = {
15
+ setConsolePatchSettings(newSettings: string) {
16
+ NativeDevToolsSettingsManager?.setConsolePatchSettings(newSettings);
17
+ },
18
+ getConsolePatchSettings(): ?string {
19
+ return NativeDevToolsSettingsManager?.getConsolePatchSettings();
20
+ },
21
+ setProfilingSettings(newSettings: string) {
22
+ if (NativeDevToolsSettingsManager?.setProfilingSettings != null) {
23
+ NativeDevToolsSettingsManager.setProfilingSettings(newSettings);
24
+ }
25
+ },
26
+ getProfilingSettings(): ?string {
27
+ if (NativeDevToolsSettingsManager?.getProfilingSettings != null) {
28
+ return NativeDevToolsSettingsManager.getProfilingSettings();
29
+ }
30
+ return null;
31
+ },
32
+ reload(): void {
33
+ DevSettings?.reload();
34
+ },
35
+ };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ import type {TurboModule} from '../TurboModule/RCTExport';
12
+
13
+ import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
14
+
15
+ export interface Spec extends TurboModule {
16
+ +setConsolePatchSettings: (newConsolePatchSettings: string) => void;
17
+ +getConsolePatchSettings: () => ?string;
18
+ +setProfilingSettings?: (newProfilingSettings: string) => void;
19
+ +getProfilingSettings?: () => ?string;
20
+ }
21
+
22
+ export default (TurboModuleRegistry.get<Spec>(
23
+ 'DevToolsSettingsManager',
24
+ ): ?Spec);
@@ -7,9 +7,8 @@
7
7
  * @format
8
8
  */
9
9
 
10
- import {
10
+ import EventEmitter, {
11
11
  EmitterSubscription,
12
- EventEmitter,
13
12
  } from '../vendor/emitter/EventEmitter';
14
13
 
15
14
  /**
@@ -7,9 +7,8 @@
7
7
  * @format
8
8
  */
9
9
 
10
- import {
10
+ import EventEmitter, {
11
11
  EmitterSubscription,
12
- EventEmitter,
13
12
  EventSubscriptionVendor,
14
13
  } from '../vendor/emitter/EventEmitter';
15
14
 
@@ -21,4 +21,12 @@ type RCTDeviceEventDefinitions = $FlowFixMe;
21
21
  *
22
22
  * NativeModules that emit events should instead subclass `NativeEventEmitter`.
23
23
  */
24
- export default (new EventEmitter(): IEventEmitter<RCTDeviceEventDefinitions>);
24
+ const RCTDeviceEventEmitter: IEventEmitter<RCTDeviceEventDefinitions> =
25
+ new EventEmitter();
26
+
27
+ Object.defineProperty(global, '__rctDeviceEventEmitter', {
28
+ configurable: true,
29
+ value: RCTDeviceEventEmitter,
30
+ });
31
+
32
+ export default (RCTDeviceEventEmitter: IEventEmitter<RCTDeviceEventDefinitions>);
@@ -159,7 +159,7 @@ class EventPolyfill implements IEvent {
159
159
  // data with the other in sync.
160
160
  _syntheticEvent: mixed;
161
161
 
162
- constructor(type: string, eventInitDict?: Event$Init): void {
162
+ constructor(type: string, eventInitDict?: Event$Init) {
163
163
  this.type = type;
164
164
  this.bubbles = !!(eventInitDict?.bubbles || false);
165
165
  this.cancelable = !!(eventInitDict?.cancelable || false);