@office-iss/react-native-win32 0.70.2 → 0.71.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (559) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +2 -0
  3. package/.flowconfig +3 -6
  4. package/CHANGELOG.json +281 -43
  5. package/CHANGELOG.md +105 -24
  6. package/IntegrationTests/AccessibilityManagerTest.js +1 -1
  7. package/IntegrationTests/AppEventsTest.js +0 -1
  8. package/IntegrationTests/BUCK +0 -1
  9. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
  10. package/IntegrationTests/ImageSnapshotTest.js +1 -1
  11. package/IntegrationTests/IntegrationTestsApp.js +2 -3
  12. package/IntegrationTests/SimpleSnapshotTest.js +1 -1
  13. package/IntegrationTests/SyncMethodTest.js +1 -1
  14. package/IntegrationTests/TimersTest.js +4 -4
  15. package/IntegrationTests/WebSocketTest.js +3 -3
  16. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +80 -0
  17. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -3
  18. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  19. package/Libraries/Alert/Alert.d.ts +90 -0
  20. package/Libraries/Alert/Alert.js +7 -1
  21. package/Libraries/Alert/Alert.win32.js +1 -0
  22. package/Libraries/Alert/NativeAlertManager.js +2 -0
  23. package/Libraries/Alert/RCTAlertManager.ios.js +2 -1
  24. package/Libraries/Animated/Animated.d.ts +587 -0
  25. package/Libraries/Animated/Animated.js +13 -11
  26. package/Libraries/Animated/AnimatedEvent.js +12 -17
  27. package/Libraries/Animated/AnimatedImplementation.js +21 -23
  28. package/Libraries/Animated/AnimatedMock.js +11 -13
  29. package/Libraries/Animated/AnimatedWeb.js +2 -2
  30. package/Libraries/Animated/Easing.d.ts +37 -0
  31. package/Libraries/Animated/Easing.js +2 -2
  32. package/Libraries/Animated/NativeAnimatedHelper.js +32 -22
  33. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  34. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  35. package/Libraries/Animated/SpringConfig.js +2 -7
  36. package/Libraries/Animated/animations/Animation.js +3 -4
  37. package/Libraries/Animated/animations/DecayAnimation.js +5 -8
  38. package/Libraries/Animated/animations/SpringAnimation.js +9 -14
  39. package/Libraries/Animated/animations/TimingAnimation.js +9 -13
  40. package/Libraries/Animated/bezier.js +2 -2
  41. package/Libraries/Animated/components/AnimatedFlatList.js +5 -6
  42. package/Libraries/Animated/components/AnimatedImage.js +5 -6
  43. package/Libraries/Animated/components/AnimatedScrollView.js +110 -14
  44. package/Libraries/Animated/components/AnimatedSectionList.js +4 -5
  45. package/Libraries/Animated/components/AnimatedText.js +5 -6
  46. package/Libraries/Animated/components/AnimatedView.js +5 -6
  47. package/Libraries/Animated/createAnimatedComponent.js +13 -20
  48. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +2 -2
  49. package/Libraries/Animated/nodes/AnimatedAddition.js +6 -8
  50. package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
  51. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +6 -8
  52. package/Libraries/Animated/nodes/AnimatedDivision.js +7 -9
  53. package/Libraries/Animated/nodes/AnimatedInterpolation.js +7 -10
  54. package/Libraries/Animated/nodes/AnimatedModulo.js +6 -8
  55. package/Libraries/Animated/nodes/AnimatedMultiplication.js +7 -9
  56. package/Libraries/Animated/nodes/AnimatedNode.js +10 -8
  57. package/Libraries/Animated/nodes/AnimatedProps.js +12 -30
  58. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -22
  59. package/Libraries/Animated/nodes/AnimatedSubtraction.js +7 -9
  60. package/Libraries/Animated/nodes/AnimatedTracking.js +8 -12
  61. package/Libraries/Animated/nodes/AnimatedTransform.js +38 -31
  62. package/Libraries/Animated/nodes/AnimatedValue.js +9 -10
  63. package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -7
  64. package/Libraries/Animated/nodes/AnimatedWithChildren.js +4 -5
  65. package/Libraries/Animated/useAnimatedProps.js +8 -16
  66. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  67. package/Libraries/Animated/useAnimatedValue.js +25 -0
  68. package/Libraries/AppState/AppState.d.ts +58 -0
  69. package/Libraries/AppState/AppState.js +3 -7
  70. package/Libraries/AppState/NativeAppState.js +1 -0
  71. package/Libraries/BatchedBridge/MessageQueue.js +9 -5
  72. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  73. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  74. package/Libraries/Blob/BlobManager.js +5 -3
  75. package/Libraries/Blob/File.js +2 -3
  76. package/Libraries/Blob/FileReader.js +6 -5
  77. package/Libraries/Blob/NativeBlobModule.js +1 -0
  78. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  79. package/Libraries/Blob/URL.js +11 -9
  80. package/Libraries/BugReporting/NativeBugReporting.js +1 -0
  81. package/Libraries/BugReporting/getReactData.js +1 -1
  82. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +128 -0
  83. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +208 -0
  84. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +40 -8
  85. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +40 -8
  86. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -0
  87. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -0
  88. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  89. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +58 -0
  90. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +7 -8
  91. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  92. package/Libraries/Components/Button.d.ts +42 -0
  93. package/Libraries/Components/Button.flow.js +265 -0
  94. package/Libraries/Components/Button.js +62 -18
  95. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  96. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -0
  97. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -2
  98. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +92 -0
  99. package/Libraries/Components/{MaskedView/MaskedViewIOS.android.js → DatePicker/DatePickerIOS.flow.android.js} +3 -2
  100. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +113 -0
  101. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +8 -7
  102. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +4 -2
  103. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +7 -6
  104. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -0
  105. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +9 -8
  106. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +13 -14
  107. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  108. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  109. package/Libraries/Components/Keyboard/Keyboard.js +35 -8
  110. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  111. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +35 -15
  112. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -0
  113. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  114. package/Libraries/Components/Pressable/Pressable.js +73 -15
  115. package/Libraries/Components/Pressable/Pressable.win32.js +77 -19
  116. package/Libraries/Components/Pressable/useAndroidRippleForView.js +6 -3
  117. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +3 -3
  118. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  119. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  120. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
  121. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +62 -0
  122. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +4 -4
  123. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +1 -1
  124. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +2 -2
  125. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +5 -6
  126. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -4
  127. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  128. package/Libraries/Components/RefreshControl/RefreshControl.js +4 -3
  129. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  130. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  131. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  132. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +19 -0
  133. package/Libraries/Components/SafeAreaView/SafeAreaView.js +5 -4
  134. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +5 -4
  135. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -1
  136. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -1
  137. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -1
  138. package/Libraries/Components/ScrollView/ScrollView.d.ts +911 -0
  139. package/Libraries/Components/ScrollView/ScrollView.js +87 -52
  140. package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
  141. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +2 -1
  142. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +3 -3
  143. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +243 -269
  144. package/Libraries/Components/Slider/Slider.d.ts +132 -0
  145. package/Libraries/Components/Slider/Slider.js +9 -9
  146. package/Libraries/Components/Slider/SliderNativeComponent.js +4 -5
  147. package/Libraries/Components/Sound/NativeSoundManager.js +1 -0
  148. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -0
  149. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -0
  150. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  151. package/Libraries/Components/StatusBar/StatusBar.js +7 -7
  152. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +10 -10
  153. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  154. package/Libraries/Components/Switch/Switch.js +7 -7
  155. package/Libraries/Components/Switch/SwitchNativeComponent.js +9 -4
  156. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +40 -12
  157. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  158. package/Libraries/Components/TextInput/InputAccessoryView.js +3 -4
  159. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  160. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +3 -2
  161. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -2
  162. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
  163. package/Libraries/Components/TextInput/TextInput.d.ts +840 -0
  164. package/Libraries/Components/TextInput/TextInput.flow.js +1057 -0
  165. package/Libraries/Components/TextInput/TextInput.js +344 -38
  166. package/Libraries/Components/TextInput/TextInput.win32.d.ts +1 -1
  167. package/Libraries/Components/TextInput/TextInput.win32.js +1 -1
  168. package/Libraries/Components/TextInput/TextInput.win32.js.map +1 -1
  169. package/Libraries/Components/TextInput/TextInputNativeCommands.js +2 -2
  170. package/Libraries/Components/TextInput/TextInputState.js +22 -5
  171. package/Libraries/Components/TextInput/TextInputState.win32.js +24 -5
  172. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -0
  173. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  174. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  175. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  176. package/Libraries/Components/Touchable/Touchable.flow.js +258 -0
  177. package/Libraries/Components/Touchable/Touchable.js +12 -12
  178. package/Libraries/Components/Touchable/Touchable.win32.js +12 -12
  179. package/Libraries/Components/Touchable/TouchableBounce.js +44 -10
  180. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +68 -0
  181. package/Libraries/Components/Touchable/TouchableHighlight.js +32 -9
  182. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
  183. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +54 -20
  184. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +109 -0
  185. package/Libraries/Components/Touchable/TouchableOpacity.js +54 -16
  186. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +2 -1
  187. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  188. package/Libraries/Components/Touchable/TouchableWin32.js +0 -1
  189. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  190. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +143 -0
  191. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +64 -10
  192. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
  193. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  194. package/Libraries/Components/View/ReactNativeStyleAttributes.js +13 -2
  195. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -0
  196. package/Libraries/Components/View/View.d.ts +29 -0
  197. package/Libraries/Components/View/View.js +91 -8
  198. package/Libraries/Components/View/View.win32.js +176 -89
  199. package/Libraries/Components/View/ViewAccessibility.d.ts +360 -0
  200. package/Libraries/Components/View/ViewAccessibility.js +70 -1
  201. package/Libraries/Components/View/ViewNativeComponent.js +3 -3
  202. package/Libraries/Components/View/ViewPropTypes.d.ts +245 -0
  203. package/Libraries/Components/View/ViewPropTypes.js +105 -13
  204. package/Libraries/Components/View/ViewPropTypes.win32.js +105 -13
  205. package/Libraries/Components/View/ViewWin32.Props.d.ts +6 -1
  206. package/Libraries/Components/View/ViewWin32.Props.js.map +1 -1
  207. package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
  208. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  209. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  210. package/Libraries/Core/ExceptionsManager.js +8 -0
  211. package/Libraries/Core/ExtendedError.js +11 -8
  212. package/Libraries/Core/InitializeCore.js +2 -1
  213. package/Libraries/Core/NativeExceptionsManager.js +3 -4
  214. package/Libraries/Core/RawEventEmitter.js +2 -1
  215. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  216. package/Libraries/Core/ReactNativeVersion.js +2 -2
  217. package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
  218. package/Libraries/Core/ReactNativeVersionCheck.win32.js +1 -0
  219. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  220. package/Libraries/Core/Timers/JSTimers.js +13 -11
  221. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  222. package/Libraries/Core/setUpBatchedBridge.js +1 -5
  223. package/Libraries/Core/setUpDeveloperTools.js +4 -6
  224. package/Libraries/Core/setUpReactDevTools.js +4 -1
  225. package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
  226. package/Libraries/Core/setUpTimers.js +1 -1
  227. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
  228. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
  229. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
  230. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  231. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  232. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
  233. package/Libraries/Events/EventPolyfill.js +1 -1
  234. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
  235. package/Libraries/Image/AssetSourceResolver.js +4 -6
  236. package/Libraries/Image/Image.android.js +63 -45
  237. package/Libraries/Image/Image.d.ts +322 -0
  238. package/Libraries/Image/Image.flow.js +64 -0
  239. package/Libraries/Image/Image.ios.js +55 -28
  240. package/Libraries/Image/Image.win32.js +54 -25
  241. package/Libraries/Image/ImageBackground.js +18 -7
  242. package/Libraries/Image/ImageInjection.js +2 -1
  243. package/Libraries/Image/ImageProps.js +88 -5
  244. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  245. package/Libraries/Image/ImageSource.d.ts +76 -0
  246. package/Libraries/Image/ImageSourceUtils.js +80 -0
  247. package/Libraries/Image/ImageUtils.js +21 -0
  248. package/Libraries/Image/ImageViewNativeComponent.js +8 -5
  249. package/Libraries/Image/NativeImageEditor.js +1 -0
  250. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  251. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  252. package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
  253. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  254. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  255. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
  256. package/Libraries/Image/nativeImageSource.js +2 -2
  257. package/Libraries/Image/resolveAssetSource.js +5 -5
  258. package/Libraries/Inspector/BorderBox.js +1 -1
  259. package/Libraries/Inspector/BoxInspector.js +3 -4
  260. package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
  261. package/Libraries/Inspector/ElementBox.js +4 -5
  262. package/Libraries/Inspector/ElementProperties.js +10 -11
  263. package/Libraries/Inspector/Inspector.js +22 -108
  264. package/Libraries/Inspector/Inspector.win32.js +23 -109
  265. package/Libraries/Inspector/InspectorOverlay.js +5 -5
  266. package/Libraries/Inspector/InspectorOverlay.win32.js +5 -5
  267. package/Libraries/Inspector/InspectorPanel.js +12 -10
  268. package/Libraries/Inspector/NetworkOverlay.js +7 -3
  269. package/Libraries/Inspector/PerformanceOverlay.js +3 -3
  270. package/Libraries/Inspector/StyleInspector.js +2 -2
  271. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
  272. package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
  273. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  274. package/Libraries/Interaction/InteractionManager.js +8 -8
  275. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  276. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  277. package/Libraries/Interaction/PanResponder.flow.js +257 -0
  278. package/Libraries/Interaction/PanResponder.js +4 -3
  279. package/Libraries/JSInspector/JSInspector.js +0 -3
  280. package/Libraries/JSInspector/NetworkAgent.js +3 -3
  281. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  282. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
  283. package/Libraries/Linking/Linking.d.ts +61 -0
  284. package/Libraries/Linking/Linking.js +3 -2
  285. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  286. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  287. package/Libraries/Lists/CellRenderMask.js +13 -3
  288. package/Libraries/Lists/ChildListCollection.js +72 -0
  289. package/Libraries/Lists/FillRateHelper.js +28 -17
  290. package/Libraries/Lists/FlatList.d.ts +292 -0
  291. package/Libraries/Lists/FlatList.js +70 -70
  292. package/Libraries/Lists/SectionList.d.ts +300 -0
  293. package/Libraries/Lists/SectionList.js +5 -5
  294. package/Libraries/Lists/SectionListModern.js +6 -6
  295. package/Libraries/Lists/StateSafePureComponent.js +85 -0
  296. package/Libraries/Lists/ViewabilityHelper.js +33 -12
  297. package/Libraries/Lists/VirtualizeUtils.js +17 -13
  298. package/Libraries/Lists/VirtualizedList.d.ts +317 -0
  299. package/Libraries/Lists/VirtualizedList.js +548 -890
  300. package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
  301. package/Libraries/Lists/VirtualizedListContext.js +7 -48
  302. package/Libraries/Lists/VirtualizedListProps.js +279 -0
  303. package/Libraries/Lists/VirtualizedSectionList.js +6 -3
  304. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  305. package/Libraries/LogBox/Data/LogBoxData.js +9 -8
  306. package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
  307. package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
  308. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
  309. package/Libraries/LogBox/LogBox.d.ts +28 -0
  310. package/Libraries/LogBox/LogBox.js +11 -11
  311. package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
  312. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  313. package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
  314. package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
  315. package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
  316. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
  317. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
  318. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
  319. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +6 -5
  320. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
  321. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
  322. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  323. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
  324. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
  325. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +5 -5
  326. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
  327. package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
  328. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
  329. package/Libraries/Modal/Modal.d.ts +104 -0
  330. package/Libraries/Modal/Modal.js +14 -14
  331. package/Libraries/Modal/NativeModalManager.js +1 -0
  332. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
  333. package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
  334. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
  335. package/Libraries/NativeComponent/BaseViewConfig.win32.js +8 -3
  336. package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
  337. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
  338. package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
  339. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  340. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
  341. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  342. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  343. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  344. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  345. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
  346. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  347. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  348. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  349. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  350. package/Libraries/Network/RCTNetworking.android.js +4 -3
  351. package/Libraries/Network/RCTNetworking.ios.js +3 -2
  352. package/Libraries/Network/RCTNetworking.win32.js +1 -0
  353. package/Libraries/Network/convertRequestBody.js +1 -2
  354. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
  355. package/Libraries/NewAppScreen/components/Header.js +6 -2
  356. package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
  357. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
  358. package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
  359. package/Libraries/NewAppScreen/index.js +1 -1
  360. package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
  361. package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
  362. package/Libraries/Performance/Systrace.d.ts +66 -0
  363. package/Libraries/Performance/Systrace.js +110 -195
  364. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  365. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
  366. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
  367. package/Libraries/Pressability/Pressability.js +12 -10
  368. package/Libraries/Pressability/Pressability.win32.js +9 -7
  369. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  370. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  371. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
  372. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
  373. package/Libraries/ReactNative/AppContainer.js +17 -7
  374. package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
  375. package/Libraries/ReactNative/AppRegistry.js +11 -14
  376. package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
  377. package/Libraries/ReactNative/FabricUIManager.js +3 -3
  378. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  379. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  380. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  381. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  382. package/Libraries/ReactNative/PaperUIManager.js +2 -2
  383. package/Libraries/ReactNative/PaperUIManager.win32.js +1 -1
  384. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
  385. package/Libraries/ReactNative/RendererImplementation.js +112 -0
  386. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  387. package/Libraries/ReactNative/RendererProxy.js +26 -0
  388. package/Libraries/ReactNative/RootTag.js +0 -1
  389. package/Libraries/ReactNative/UIManager.d.ts +157 -0
  390. package/Libraries/ReactNative/UIManager.js +1 -1
  391. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
  392. package/Libraries/ReactNative/renderApplication.js +38 -20
  393. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  394. package/Libraries/ReactNative/requireNativeComponent.js +2 -2
  395. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
  396. package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
  397. package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
  398. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
  399. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
  400. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
  401. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
  402. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
  403. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  404. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  405. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  406. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
  407. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
  408. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
  409. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  410. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  411. package/Libraries/Settings/Settings.d.ts +18 -0
  412. package/Libraries/Share/NativeShareModule.js +1 -0
  413. package/Libraries/Share/Share.d.ts +80 -0
  414. package/Libraries/Share/Share.js +7 -5
  415. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  416. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  417. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  418. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  419. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
  420. package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
  421. package/Libraries/StyleSheet/StyleSheet.js +15 -11
  422. package/Libraries/StyleSheet/StyleSheet.win32.js +16 -12
  423. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
  424. package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
  425. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
  426. package/Libraries/StyleSheet/normalizeColor.js +3 -3
  427. package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
  428. package/Libraries/StyleSheet/processAspectRatio.js +53 -0
  429. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  430. package/Libraries/StyleSheet/processColor.js +3 -4
  431. package/Libraries/StyleSheet/processColorArray.js +1 -0
  432. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  433. package/Libraries/StyleSheet/processTransform.js +114 -105
  434. package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
  435. package/Libraries/Text/Text.d.ts +209 -0
  436. package/Libraries/Text/Text.js +94 -12
  437. package/Libraries/Text/TextNativeComponent.js +49 -41
  438. package/Libraries/Text/TextNativeComponent.win32.js +67 -48
  439. package/Libraries/Text/TextProps.js +64 -7
  440. package/Libraries/{Components/MaskedView/MaskedViewIOS.win32.js → TurboModule/RCTExport.d.ts} +3 -4
  441. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
  442. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
  443. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  444. package/Libraries/Types/CoreEventTypes.d.ts +263 -0
  445. package/Libraries/Types/CoreEventTypes.js +2 -1
  446. package/Libraries/Types/CoreEventTypes.win32.js +2 -1
  447. package/Libraries/Utilities/AcessibilityMapping.js +154 -0
  448. package/Libraries/Utilities/Appearance.d.ts +43 -0
  449. package/Libraries/Utilities/Appearance.js +3 -3
  450. package/Libraries/Utilities/BackHandler.android.js +3 -5
  451. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  452. package/Libraries/Utilities/BackHandler.win32.js +3 -5
  453. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  454. package/Libraries/Utilities/DevSettings.js +4 -2
  455. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  456. package/Libraries/Utilities/Dimensions.js +2 -2
  457. package/Libraries/Utilities/Dimensions.win32.js +2 -2
  458. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
  459. package/Libraries/Utilities/HMRClient.js +23 -8
  460. package/Libraries/Utilities/LoadingView.ios.js +1 -1
  461. package/Libraries/Utilities/NativeAppearance.js +1 -0
  462. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  463. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
  464. package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
  465. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  466. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  467. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  468. package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
  469. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  470. package/Libraries/Utilities/Platform.android.js +11 -5
  471. package/Libraries/Utilities/Platform.d.ts +102 -0
  472. package/Libraries/Utilities/Platform.ios.js +12 -5
  473. package/Libraries/Utilities/Platform.win32.js +11 -5
  474. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  475. package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
  476. package/Libraries/Utilities/codegenNativeCommands.js +1 -10
  477. package/Libraries/Utilities/codegenNativeComponent.js +4 -1
  478. package/Libraries/Utilities/createPerformanceLogger.js +7 -8
  479. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  480. package/Libraries/Utilities/groupByEveryN.js +1 -1
  481. package/Libraries/Utilities/stringifySafe.js +3 -1
  482. package/Libraries/Utilities/useColorScheme.js +3 -2
  483. package/Libraries/Utilities/useRefEffect.js +1 -1
  484. package/Libraries/Vibration/NativeVibration.js +1 -0
  485. package/Libraries/Vibration/Vibration.d.ts +43 -0
  486. package/Libraries/Vibration/Vibration.js +1 -0
  487. package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
  488. package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
  489. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  490. package/Libraries/WebSocket/WebSocket.js +11 -3
  491. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  492. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  493. package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
  494. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
  495. package/Libraries/__tests__/ButtonWin32-test.js +16 -0
  496. package/Libraries/platform-types.d.ts +25 -0
  497. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  498. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  499. package/babel.config.js +3 -0
  500. package/flow/jest.js +2 -2
  501. package/flow-typed/npm/{react-dom_v16.x.x.js → react-dom_v17.x.x.js} +58 -31
  502. package/flow-typed/npm/yargs_v17.x.x.js +341 -0
  503. package/index.js +89 -55
  504. package/index.win32.js +89 -55
  505. package/interface.js +8 -0
  506. package/jest/react-native-env.js +18 -0
  507. package/jest/renderer.js +2 -2
  508. package/jest/setup.js +7 -9
  509. package/jest.config.js +9 -2
  510. package/overrides.json +40 -101
  511. package/package.json +34 -33
  512. package/src/Libraries/Components/TextInput/TextInput.win32.tsx +2 -1
  513. package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +2 -2
  514. package/src/Libraries/Components/Touchable/TouchableWin32.Props.tsx +2 -1
  515. package/src/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
  516. package/src/Libraries/Components/View/ViewWin32.Props.ts +10 -1
  517. package/src/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
  518. package/src/Libraries/platform-types.d.ts +25 -0
  519. package/types/index.d.ts +215 -0
  520. package/IntegrationTests/AsyncStorageTest.js +0 -261
  521. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  522. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  523. package/Libraries/Core/setUpSystrace.js +0 -21
  524. package/Libraries/Image/ImagePickerIOS.js +0 -103
  525. package/Libraries/Image/NativeImagePickerIOS.js +0 -38
  526. package/Libraries/Lists/VirtualizedList.win32.js +0 -9
  527. package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
  528. package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
  529. package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
  530. package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
  531. package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
  532. package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
  533. package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
  534. package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
  535. package/Libraries/Storage/AsyncStorage.js +0 -385
  536. package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
  537. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
  538. package/Libraries/Utilities/JSDevSupportModule.js +0 -37
  539. package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
  540. package/rntypes/BatchedBridge.d.ts +0 -23
  541. package/rntypes/Devtools.d.ts +0 -20
  542. package/rntypes/LaunchScreen.d.ts +0 -9
  543. package/rntypes/globals.d.ts +0 -497
  544. package/rntypes/index.d.ts +0 -9754
  545. package/rntypes/legacy-properties.d.ts +0 -238
  546. package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +0 -427
  547. package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +0 -391
  548. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +0 -4565
  549. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +0 -1153
  550. package/src/rntypes/BatchedBridge.d.ts +0 -23
  551. package/src/rntypes/Devtools.d.ts +0 -20
  552. package/src/rntypes/LaunchScreen.d.ts +0 -9
  553. package/src/rntypes/globals.d.ts +0 -497
  554. package/src/rntypes/index.d.ts +0 -9754
  555. package/src/rntypes/legacy-properties.d.ts +0 -238
  556. package/src/typings-index.ts +0 -37
  557. package/typings-index.d.ts +0 -23
  558. package/typings-index.js +0 -47
  559. package/typings-index.js.map +0 -1
@@ -13,11 +13,18 @@
13
13
  const AUTO_SET_TIMESTAMP = -1;
14
14
  const DUMMY_INSTANCE_KEY = 0;
15
15
 
16
- // Defines map of annotations for markEvent
16
+ // Defines map of annotations
17
17
  // Use as following:
18
18
  // {string: {key1: value1, key2: value2}}
19
19
  export type AnnotationsMap = $Shape<{
20
20
  string: ?{[string]: string, ...},
21
+ int: ?{[string]: number, ...},
22
+ double: ?{[string]: number, ...},
23
+ bool: ?{[string]: boolean, ...},
24
+ string_array: ?{[string]: $ReadOnlyArray<string>, ...},
25
+ int_array: ?{[string]: $ReadOnlyArray<number>, ...},
26
+ double_array: ?{[string]: $ReadOnlyArray<number>, ...},
27
+ bool_array: ?{[string]: $ReadOnlyArray<boolean>, ...},
21
28
  }>;
22
29
 
23
30
  const QuickPerformanceLogger = {
@@ -54,17 +61,34 @@ const QuickPerformanceLogger = {
54
61
 
55
62
  markerAnnotate(
56
63
  markerId: number,
57
- annotationKey: string,
58
- annotationValue: string,
64
+ annotations: AnnotationsMap,
59
65
  instanceKey: number = DUMMY_INSTANCE_KEY,
60
66
  ): void {
61
- if (global.nativeQPLMarkerAnnotate) {
62
- global.nativeQPLMarkerAnnotate(
63
- markerId,
64
- instanceKey,
65
- annotationKey,
66
- annotationValue,
67
- );
67
+ if (global.nativeQPLMarkerAnnotateWithMap) {
68
+ global.nativeQPLMarkerAnnotateWithMap(markerId, annotations, instanceKey);
69
+ } else if (global.nativeQPLMarkerAnnotate) {
70
+ for (const type of [
71
+ 'string',
72
+ 'int',
73
+ 'double',
74
+ 'bool',
75
+ 'string_array',
76
+ 'int_array',
77
+ 'double_array',
78
+ 'bool_array',
79
+ ]) {
80
+ const keyValsOfType = annotations[type];
81
+ if (keyValsOfType != null) {
82
+ for (const annotationKey of Object.keys(keyValsOfType)) {
83
+ global.nativeQPLMarkerAnnotate(
84
+ markerId,
85
+ instanceKey,
86
+ annotationKey,
87
+ keyValsOfType[annotationKey].toString(),
88
+ );
89
+ }
90
+ }
91
+ }
68
92
  }
69
93
  },
70
94
 
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ */
9
+
10
+ type EventName = string | (() => string);
11
+ type EventArgs = {[key: string]: string} | void | null;
12
+
13
+ /**
14
+ * Indicates if the application is currently being traced.
15
+ *
16
+ * Calling methods on this module when the application isn't being traced is
17
+ * cheap, but this method can be used to avoid computing expensive values for
18
+ * those functions.
19
+ *
20
+ * @example
21
+ * if (Systrace.isEnabled()) {
22
+ * const expensiveArgs = computeExpensiveArgs();
23
+ * Systrace.beginEvent('myEvent', expensiveArgs);
24
+ * }
25
+ */
26
+ export function isEnabled(): boolean;
27
+
28
+ /**
29
+ * @deprecated This function is now a no-op but it's left for backwards
30
+ * compatibility. `isEnabled` will now synchronously check if we're actively
31
+ * profiling or not. This is necessary because we don't have callbacks to know
32
+ * when profiling has started/stopped on Android APIs.
33
+ */
34
+ export function setEnabled(_doEnable: boolean): void;
35
+
36
+ /**
37
+ * Marks the start of a synchronous event that should end in the same stack
38
+ * frame. The end of this event should be marked using the `endEvent` function.
39
+ */
40
+ export function beginEvent(eventName: EventName, args?: EventArgs): void;
41
+
42
+ /**
43
+ * Marks the end of a synchronous event started in the same stack frame.
44
+ */
45
+ export function endEvent(args?: EventArgs): void;
46
+
47
+ /**
48
+ * Marks the start of a potentially asynchronous event. The end of this event
49
+ * should be marked calling the `endAsyncEvent` function with the cookie
50
+ * returned by this function.
51
+ */
52
+ export function beginAsyncEvent(eventName: EventName, args?: EventArgs): number;
53
+
54
+ /**
55
+ * Registers a new value for a counter event.
56
+ */
57
+ export function endAsyncEvent(
58
+ eventName: EventName,
59
+ cookie: number,
60
+ args?: EventArgs,
61
+ ): void;
62
+
63
+ /**
64
+ * counterEvent registers the value to the eventName on the systrace timeline
65
+ **/
66
+ export function counterEvent(eventName: EventName, value: number): void;
@@ -8,217 +8,132 @@
8
8
  * @format
9
9
  */
10
10
 
11
- 'use strict';
12
-
13
- const invariant = require('invariant');
11
+ import typeof * as SystraceModule from './Systrace';
14
12
 
15
13
  const TRACE_TAG_REACT_APPS = 1 << 17; // eslint-disable-line no-bitwise
16
- const TRACE_TAG_JS_VM_CALLS = 1 << 27; // eslint-disable-line no-bitwise
17
14
 
18
- let _enabled = false;
19
15
  let _asyncCookie = 0;
20
- const _markStack = [];
21
- let _markStackIndex = -1;
22
- let _canInstallReactHook = false;
23
-
24
- // Implements a subset of User Timing API necessary for React measurements.
25
- // https://developer.mozilla.org/en-US/docs/Web/API/User_Timing_API
26
- const REACT_MARKER = '\u269B';
27
- const userTimingPolyfill = __DEV__
28
- ? {
29
- mark(markName: string) {
30
- if (_enabled) {
31
- _markStackIndex++;
32
- _markStack[_markStackIndex] = markName;
33
- let systraceLabel = markName;
34
- // Since perf measurements are a shared namespace in User Timing API,
35
- // we prefix all React results with a React emoji.
36
- if (markName[0] === REACT_MARKER) {
37
- // This is coming from React.
38
- // Removing component IDs keeps trace colors stable.
39
- const indexOfId = markName.lastIndexOf(' (#');
40
- const cutoffIndex = indexOfId !== -1 ? indexOfId : markName.length;
41
- // Also cut off the emoji because it breaks Systrace
42
- systraceLabel = markName.slice(2, cutoffIndex);
43
- }
44
- Systrace.beginEvent(systraceLabel);
45
- }
46
- },
47
- measure(measureName: string, startMark: ?string, endMark: ?string) {
48
- if (_enabled) {
49
- invariant(
50
- typeof measureName === 'string' &&
51
- typeof startMark === 'string' &&
52
- typeof endMark === 'undefined',
53
- 'Only performance.measure(string, string) overload is supported.',
54
- );
55
- const topMark = _markStack[_markStackIndex];
56
- invariant(
57
- startMark === topMark,
58
- 'There was a mismatching performance.measure() call. ' +
59
- 'Expected "%s" but got "%s."',
60
- topMark,
61
- startMark,
62
- );
63
- _markStackIndex--;
64
- // We can't use more descriptive measureName because Systrace doesn't
65
- // let us edit labels post factum.
66
- Systrace.endEvent();
67
- }
68
- },
69
- clearMarks(markName: string) {
70
- if (_enabled) {
71
- if (_markStackIndex === -1) {
72
- return;
73
- }
74
- if (markName === _markStack[_markStackIndex]) {
75
- // React uses this for "cancelling" started measurements.
76
- // Systrace doesn't support deleting measurements, so we just stop them.
77
- if (userTimingPolyfill != null) {
78
- userTimingPolyfill.measure(markName, markName);
79
- }
80
- }
81
- }
82
- },
83
- clearMeasures() {
84
- // React calls this to avoid memory leaks in browsers, but we don't keep
85
- // measurements anyway.
86
- },
87
- }
88
- : null;
89
16
 
90
- function installPerformanceHooks(
91
- polyfill: null | $TEMPORARY$object<{
92
- clearMarks(markName: string): void,
93
- clearMeasures(): void,
94
- mark(markName: string): void,
95
- measure(measureName: string, startMark: ?string, endMark: ?string): void,
96
- }>,
97
- ) {
98
- if (polyfill) {
99
- if (global.performance === undefined) {
100
- global.performance = {};
101
- }
17
+ type EventName = string | (() => string);
18
+ type EventArgs = ?{[string]: string};
102
19
 
103
- Object.keys(polyfill).forEach(methodName => {
104
- if (typeof global.performance[methodName] !== 'function') {
105
- global.performance[methodName] = polyfill[methodName];
106
- }
107
- });
108
- }
20
+ /**
21
+ * Indicates if the application is currently being traced.
22
+ *
23
+ * Calling methods on this module when the application isn't being traced is
24
+ * cheap, but this method can be used to avoid computing expensive values for
25
+ * those functions.
26
+ *
27
+ * @example
28
+ * if (Systrace.isEnabled()) {
29
+ * const expensiveArgs = computeExpensiveArgs();
30
+ * Systrace.beginEvent('myEvent', expensiveArgs);
31
+ * }
32
+ */
33
+ export function isEnabled(): boolean {
34
+ return global.nativeTraceIsTracing
35
+ ? global.nativeTraceIsTracing(TRACE_TAG_REACT_APPS)
36
+ : Boolean(global.__RCTProfileIsProfiling);
109
37
  }
110
38
 
111
- const Systrace = {
112
- installReactHook() {
113
- if (_enabled) {
114
- if (__DEV__) {
115
- installPerformanceHooks(userTimingPolyfill);
116
- }
117
- }
118
- _canInstallReactHook = true;
119
- },
120
-
121
- setEnabled(enabled: boolean) {
122
- if (_enabled !== enabled) {
123
- if (__DEV__) {
124
- if (enabled) {
125
- global.nativeTraceBeginLegacy &&
126
- global.nativeTraceBeginLegacy(TRACE_TAG_JS_VM_CALLS);
127
- } else {
128
- global.nativeTraceEndLegacy &&
129
- global.nativeTraceEndLegacy(TRACE_TAG_JS_VM_CALLS);
130
- }
131
- if (_canInstallReactHook) {
132
- if (enabled) {
133
- installPerformanceHooks(userTimingPolyfill);
134
- }
135
- }
136
- }
137
- _enabled = enabled;
138
- }
139
- },
140
-
141
- isEnabled(): boolean {
142
- return _enabled;
143
- },
39
+ /**
40
+ * @deprecated This function is now a no-op but it's left for backwards
41
+ * compatibility. `isEnabled` will now synchronously check if we're actively
42
+ * profiling or not. This is necessary because we don't have callbacks to know
43
+ * when profiling has started/stopped on Android APIs.
44
+ */
45
+ export function setEnabled(_doEnable: boolean): void {}
144
46
 
145
- /**
146
- * beginEvent/endEvent for starting and then ending a profile within the same call stack frame
147
- **/
148
- beginEvent(
149
- profileName?: string | (() => string),
150
- args?: {[string]: string, ...},
151
- ) {
152
- if (_enabled) {
153
- const profileNameString =
154
- typeof profileName === 'function' ? profileName() : profileName;
155
- global.nativeTraceBeginSection(
156
- TRACE_TAG_REACT_APPS,
157
- profileNameString,
158
- args,
159
- );
160
- }
161
- },
47
+ /**
48
+ * Marks the start of a synchronous event that should end in the same stack
49
+ * frame. The end of this event should be marked using the `endEvent` function.
50
+ */
51
+ export function beginEvent(eventName: EventName, args?: EventArgs): void {
52
+ if (isEnabled()) {
53
+ const eventNameString =
54
+ typeof eventName === 'function' ? eventName() : eventName;
55
+ global.nativeTraceBeginSection(TRACE_TAG_REACT_APPS, eventNameString, args);
56
+ }
57
+ }
162
58
 
163
- endEvent() {
164
- if (_enabled) {
165
- global.nativeTraceEndSection(TRACE_TAG_REACT_APPS);
166
- }
167
- },
59
+ /**
60
+ * Marks the end of a synchronous event started in the same stack frame.
61
+ */
62
+ export function endEvent(args?: EventArgs): void {
63
+ if (isEnabled()) {
64
+ global.nativeTraceEndSection(TRACE_TAG_REACT_APPS, args);
65
+ }
66
+ }
168
67
 
169
- /**
170
- * beginAsyncEvent/endAsyncEvent for starting and then ending a profile where the end can either
171
- * occur on another thread or out of the current stack frame, eg await
172
- * the returned cookie variable should be used as input into the endAsyncEvent call to end the profile
173
- **/
174
- beginAsyncEvent(profileName?: string | (() => string)): number {
175
- const cookie = _asyncCookie;
176
- if (_enabled) {
177
- _asyncCookie++;
178
- const profileNameString =
179
- typeof profileName === 'function' ? profileName() : profileName;
180
- global.nativeTraceBeginAsyncSection(
181
- TRACE_TAG_REACT_APPS,
182
- profileNameString,
183
- cookie,
184
- );
185
- }
186
- return cookie;
187
- },
68
+ /**
69
+ * Marks the start of a potentially asynchronous event. The end of this event
70
+ * should be marked calling the `endAsyncEvent` function with the cookie
71
+ * returned by this function.
72
+ */
73
+ export function beginAsyncEvent(
74
+ eventName: EventName,
75
+ args?: EventArgs,
76
+ ): number {
77
+ const cookie = _asyncCookie;
78
+ if (isEnabled()) {
79
+ _asyncCookie++;
80
+ const eventNameString =
81
+ typeof eventName === 'function' ? eventName() : eventName;
82
+ global.nativeTraceBeginAsyncSection(
83
+ TRACE_TAG_REACT_APPS,
84
+ eventNameString,
85
+ cookie,
86
+ args,
87
+ );
88
+ }
89
+ return cookie;
90
+ }
188
91
 
189
- endAsyncEvent(profileName?: string | (() => string), cookie?: number) {
190
- if (_enabled) {
191
- const profileNameString =
192
- typeof profileName === 'function' ? profileName() : profileName;
193
- global.nativeTraceEndAsyncSection(
194
- TRACE_TAG_REACT_APPS,
195
- profileNameString,
196
- cookie,
197
- );
198
- }
199
- },
92
+ /**
93
+ * Marks the end of a potentially asynchronous event, which was started with
94
+ * the given cookie.
95
+ */
96
+ export function endAsyncEvent(
97
+ eventName: EventName,
98
+ cookie: number,
99
+ args?: EventArgs,
100
+ ): void {
101
+ if (isEnabled()) {
102
+ const eventNameString =
103
+ typeof eventName === 'function' ? eventName() : eventName;
104
+ global.nativeTraceEndAsyncSection(
105
+ TRACE_TAG_REACT_APPS,
106
+ eventNameString,
107
+ cookie,
108
+ args,
109
+ );
110
+ }
111
+ }
200
112
 
201
- /**
202
- * counterEvent registers the value to the profileName on the systrace timeline
203
- **/
204
- counterEvent(profileName?: string | (() => string), value?: number) {
205
- if (_enabled) {
206
- const profileNameString =
207
- typeof profileName === 'function' ? profileName() : profileName;
208
- global.nativeTraceCounter &&
209
- global.nativeTraceCounter(
210
- TRACE_TAG_REACT_APPS,
211
- profileNameString,
212
- value,
213
- );
214
- }
215
- },
216
- };
113
+ /**
114
+ * Registers a new value for a counter event.
115
+ */
116
+ export function counterEvent(eventName: EventName, value: number): void {
117
+ if (isEnabled()) {
118
+ const eventNameString =
119
+ typeof eventName === 'function' ? eventName() : eventName;
120
+ global.nativeTraceCounter &&
121
+ global.nativeTraceCounter(TRACE_TAG_REACT_APPS, eventNameString, value);
122
+ }
123
+ }
217
124
 
218
125
  if (__DEV__) {
126
+ const Systrace: SystraceModule = {
127
+ isEnabled,
128
+ setEnabled,
129
+ beginEvent,
130
+ endEvent,
131
+ beginAsyncEvent,
132
+ endAsyncEvent,
133
+ counterEvent,
134
+ };
135
+
219
136
  // The metro require polyfill can not have dependencies (true for all polyfills).
220
137
  // Ensure that `Systrace` is available in polyfill by exposing it globally.
221
138
  global[(global.__METRO_GLOBAL_PREFIX__ || '') + '__SYSTRACE'] = Systrace;
222
139
  }
223
-
224
- module.exports = Systrace;
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {TurboModule} from '../TurboModule/RCTExport';
12
+
12
13
  import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
13
14
 
14
15
  // TODO: Use proper enum types.
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ */
9
+
10
+ export interface Rationale {
11
+ title: string;
12
+ message: string;
13
+ buttonPositive: string;
14
+ buttonNegative?: string | undefined;
15
+ buttonNeutral?: string | undefined;
16
+ }
17
+
18
+ export type Permission =
19
+ | 'android.permission.READ_CALENDAR'
20
+ | 'android.permission.WRITE_CALENDAR'
21
+ | 'android.permission.CAMERA'
22
+ | 'android.permission.READ_CONTACTS'
23
+ | 'android.permission.WRITE_CONTACTS'
24
+ | 'android.permission.GET_ACCOUNTS'
25
+ | 'android.permission.ACCESS_BACKGROUND_LOCATION'
26
+ | 'android.permission.ACCESS_FINE_LOCATION'
27
+ | 'android.permission.ACCESS_COARSE_LOCATION'
28
+ | 'android.permission.RECORD_AUDIO'
29
+ | 'android.permission.READ_PHONE_STATE'
30
+ | 'android.permission.CALL_PHONE'
31
+ | 'android.permission.READ_CALL_LOG'
32
+ | 'android.permission.WRITE_CALL_LOG'
33
+ | 'com.android.voicemail.permission.ADD_VOICEMAIL'
34
+ | 'com.android.voicemail.permission.READ_VOICEMAIL'
35
+ | 'com.android.voicemail.permission.WRITE_VOICEMAIL'
36
+ | 'android.permission.USE_SIP'
37
+ | 'android.permission.PROCESS_OUTGOING_CALLS'
38
+ | 'android.permission.BODY_SENSORS'
39
+ | 'android.permission.BODY_SENSORS_BACKGROUND'
40
+ | 'android.permission.SEND_SMS'
41
+ | 'android.permission.RECEIVE_SMS'
42
+ | 'android.permission.READ_SMS'
43
+ | 'android.permission.RECEIVE_WAP_PUSH'
44
+ | 'android.permission.RECEIVE_MMS'
45
+ | 'android.permission.READ_EXTERNAL_STORAGE'
46
+ | 'android.permission.READ_MEDIA_IMAGES'
47
+ | 'android.permission.READ_MEDIA_VIDEO'
48
+ | 'android.permission.READ_MEDIA_AUDIO'
49
+ | 'android.permission.WRITE_EXTERNAL_STORAGE'
50
+ | 'android.permission.BLUETOOTH_CONNECT'
51
+ | 'android.permission.BLUETOOTH_SCAN'
52
+ | 'android.permission.BLUETOOTH_ADVERTISE'
53
+ | 'android.permission.ACCESS_MEDIA_LOCATION'
54
+ | 'android.permission.ACCEPT_HANDOVER'
55
+ | 'android.permission.ACTIVITY_RECOGNITION'
56
+ | 'android.permission.ANSWER_PHONE_CALLS'
57
+ | 'android.permission.READ_PHONE_NUMBERS'
58
+ | 'android.permission.UWB_RANGING'
59
+ | 'android.permission.POST_NOTIFICATIONS'
60
+ | 'android.permission.NEARBY_WIFI_DEVICES';
61
+
62
+ export type PermissionStatus = 'granted' | 'denied' | 'never_ask_again';
63
+
64
+ export interface PermissionsAndroidStatic {
65
+ /**
66
+ * A list of permission results that are returned
67
+ */
68
+ RESULTS: {[key: string]: PermissionStatus};
69
+ /**
70
+ * A list of specified "dangerous" permissions that require prompting the user
71
+ */
72
+ PERMISSIONS: {[key: string]: Permission};
73
+ new (): PermissionsAndroidStatic;
74
+ /**
75
+ * @deprecated Use check instead
76
+ */
77
+ checkPermission(permission: Permission): Promise<boolean>;
78
+ /**
79
+ * Returns a promise resolving to a boolean value as to whether the specified
80
+ * permissions has been granted
81
+ */
82
+ check(permission: Permission): Promise<boolean>;
83
+ /**
84
+ * @deprecated Use request instead
85
+ */
86
+ requestPermission(
87
+ permission: Permission,
88
+ rationale?: Rationale,
89
+ ): Promise<boolean>;
90
+ /**
91
+ * Prompts the user to enable a permission and returns a promise resolving to a
92
+ * string value indicating whether the user allowed or denied the request
93
+ *
94
+ * If the optional rationale argument is included (which is an object with a
95
+ * title and message), this function checks with the OS whether it is necessary
96
+ * to show a dialog explaining why the permission is needed
97
+ * (https://developer.android.com/training/permissions/requesting.html#explain)
98
+ * and then shows the system permission dialog
99
+ */
100
+ request(
101
+ permission: Permission,
102
+ rationale?: Rationale,
103
+ ): Promise<PermissionStatus>;
104
+ /**
105
+ * Prompts the user to enable multiple permissions in the same dialog and
106
+ * returns an object with the permissions as keys and strings as values
107
+ * indicating whether the user allowed or denied the request
108
+ */
109
+ requestMultiple(
110
+ permissions: Array<Permission>,
111
+ ): Promise<{[key in Permission]: PermissionStatus}>;
112
+ }
113
+
114
+ export const PermissionsAndroid: PermissionsAndroidStatic;
115
+ export type PermissionsAndroid = PermissionsAndroidStatic;
@@ -8,16 +8,17 @@
8
8
  * @flow strict
9
9
  */
10
10
 
11
- const Platform = require('../Utilities/Platform');
12
-
13
- import NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';
14
- import NativePermissionsAndroid from './NativePermissionsAndroid';
15
11
  import type {
16
12
  PermissionStatus,
17
13
  PermissionType,
18
14
  } from './NativePermissionsAndroid';
15
+
16
+ import NativeDialogManagerAndroid from '../NativeModules/specs/NativeDialogManagerAndroid';
17
+ import NativePermissionsAndroid from './NativePermissionsAndroid';
19
18
  import invariant from 'invariant';
20
19
 
20
+ const Platform = require('../Utilities/Platform');
21
+
21
22
  export type Rationale = {
22
23
  title: string,
23
24
  message: string,
@@ -8,24 +8,25 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import {isHoverEnabled} from './HoverState';
12
- import invariant from 'invariant';
13
- import SoundManager from '../Components/Sound/SoundManager';
14
- import {normalizeRect, type RectOrSize} from '../StyleSheet/Rect';
11
+ import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
15
12
  import type {
16
13
  BlurEvent,
17
14
  FocusEvent,
18
- PressEvent,
19
15
  MouseEvent,
16
+ PressEvent,
20
17
  } from '../Types/CoreEventTypes';
18
+
19
+ import SoundManager from '../Components/Sound/SoundManager';
20
+ import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
21
+ import UIManager from '../ReactNative/UIManager';
22
+ import {type RectOrSize, normalizeRect} from '../StyleSheet/Rect';
23
+ import {type PointerEvent} from '../Types/CoreEventTypes';
24
+ import Platform from '../Utilities/Platform';
25
+ import {isHoverEnabled} from './HoverState';
21
26
  import PressabilityPerformanceEventEmitter from './PressabilityPerformanceEventEmitter.js';
22
27
  import {type PressabilityTouchSignal as TouchSignal} from './PressabilityTypes.js';
23
- import Platform from '../Utilities/Platform';
24
- import UIManager from '../ReactNative/UIManager';
25
- import type {HostComponent} from '../Renderer/shims/ReactNativeTypes';
28
+ import invariant from 'invariant';
26
29
  import * as React from 'react';
27
- import ReactNativeFeatureFlags from '../ReactNative/ReactNativeFeatureFlags';
28
- import {type PointerEvent} from '../Types/CoreEventTypes';
29
30
 
30
31
  export type PressabilityConfig = $ReadOnly<{|
31
32
  /**
@@ -549,6 +550,7 @@ export default class Pressability {
549
550
 
550
551
  if (process.env.NODE_ENV === 'test') {
551
552
  // We are setting this in order to find this node in ReactNativeTestTools
553
+ // $FlowFixMe[prop-missing]
552
554
  responderEventHandlers.onStartShouldSetResponder.testOnly_pressabilityConfig =
553
555
  () => this._config;
554
556
  }