react-native-windows 0.70.7 → 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 (917) hide show
  1. package/.flowconfig +3 -6
  2. package/Directory.Build.props +2 -2
  3. package/Folly/Folly.vcxproj +4 -2
  4. package/Folly/Folly.vcxproj.filters +7 -3
  5. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +59 -43
  6. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +192 -0
  7. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +7 -5
  8. package/Folly/cgmanifest.json +2 -1
  9. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +80 -0
  10. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -3
  11. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  12. package/Libraries/Alert/Alert.d.ts +90 -0
  13. package/Libraries/Alert/Alert.js +7 -1
  14. package/Libraries/Alert/Alert.windows.js +2 -1
  15. package/Libraries/Alert/NativeAlertManager.js +2 -0
  16. package/Libraries/Alert/RCTAlertManager.ios.js +2 -1
  17. package/Libraries/Animated/Animated.d.ts +587 -0
  18. package/Libraries/Animated/Animated.js +13 -11
  19. package/Libraries/Animated/AnimatedEvent.js +12 -17
  20. package/Libraries/Animated/AnimatedImplementation.js +21 -23
  21. package/Libraries/Animated/AnimatedMock.js +11 -13
  22. package/Libraries/Animated/AnimatedWeb.js +2 -2
  23. package/Libraries/Animated/Easing.d.ts +37 -0
  24. package/Libraries/Animated/Easing.js +2 -2
  25. package/Libraries/Animated/NativeAnimatedHelper.js +32 -22
  26. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  27. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  28. package/Libraries/Animated/SpringConfig.js +2 -7
  29. package/Libraries/Animated/animations/Animation.js +3 -4
  30. package/Libraries/Animated/animations/DecayAnimation.js +5 -8
  31. package/Libraries/Animated/animations/SpringAnimation.js +9 -14
  32. package/Libraries/Animated/animations/TimingAnimation.js +9 -13
  33. package/Libraries/Animated/bezier.js +2 -2
  34. package/Libraries/Animated/components/AnimatedFlatList.js +5 -6
  35. package/Libraries/Animated/components/AnimatedImage.js +5 -6
  36. package/Libraries/Animated/components/AnimatedScrollView.js +110 -14
  37. package/Libraries/Animated/components/AnimatedSectionList.js +4 -5
  38. package/Libraries/Animated/components/AnimatedText.js +5 -6
  39. package/Libraries/Animated/components/AnimatedView.js +5 -6
  40. package/Libraries/Animated/createAnimatedComponent.js +13 -20
  41. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +2 -2
  42. package/Libraries/Animated/nodes/AnimatedAddition.js +6 -8
  43. package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
  44. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +6 -8
  45. package/Libraries/Animated/nodes/AnimatedDivision.js +7 -9
  46. package/Libraries/Animated/nodes/AnimatedInterpolation.js +7 -10
  47. package/Libraries/Animated/nodes/AnimatedModulo.js +6 -8
  48. package/Libraries/Animated/nodes/AnimatedMultiplication.js +7 -9
  49. package/Libraries/Animated/nodes/AnimatedNode.js +10 -8
  50. package/Libraries/Animated/nodes/AnimatedProps.js +12 -30
  51. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -22
  52. package/Libraries/Animated/nodes/AnimatedSubtraction.js +7 -9
  53. package/Libraries/Animated/nodes/AnimatedTracking.js +8 -12
  54. package/Libraries/Animated/nodes/AnimatedTransform.js +38 -31
  55. package/Libraries/Animated/nodes/AnimatedValue.js +9 -10
  56. package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -7
  57. package/Libraries/Animated/nodes/AnimatedWithChildren.js +4 -5
  58. package/Libraries/Animated/useAnimatedProps.js +8 -16
  59. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  60. package/Libraries/Animated/useAnimatedValue.js +25 -0
  61. package/Libraries/AppState/AppState.d.ts +58 -0
  62. package/Libraries/AppState/AppState.js +3 -7
  63. package/Libraries/AppState/NativeAppState.js +1 -0
  64. package/Libraries/BatchedBridge/MessageQueue.js +9 -5
  65. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  66. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  67. package/Libraries/Blob/BlobManager.js +5 -3
  68. package/Libraries/Blob/File.js +2 -3
  69. package/Libraries/Blob/FileReader.js +6 -5
  70. package/Libraries/Blob/NativeBlobModule.js +1 -0
  71. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  72. package/Libraries/Blob/URL.js +11 -9
  73. package/Libraries/BugReporting/NativeBugReporting.js +1 -0
  74. package/Libraries/BugReporting/getReactData.js +1 -1
  75. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +128 -0
  76. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +208 -0
  77. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +40 -8
  78. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +40 -8
  79. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -0
  80. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -0
  81. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  82. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +58 -0
  83. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +7 -8
  84. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  85. package/Libraries/Components/Button.d.ts +42 -0
  86. package/Libraries/Components/Button.flow.js +265 -0
  87. package/Libraries/Components/Button.js +62 -18
  88. package/Libraries/Components/Button.windows.js +62 -18
  89. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  90. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -0
  91. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -2
  92. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +92 -0
  93. package/Libraries/Components/{MaskedView/MaskedViewIOS.android.js → DatePicker/DatePickerIOS.flow.android.js} +3 -2
  94. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +113 -0
  95. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +8 -7
  96. package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +4 -2
  97. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +7 -6
  98. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -0
  99. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +9 -8
  100. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +13 -14
  101. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  102. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  103. package/Libraries/Components/Keyboard/Keyboard.js +35 -8
  104. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  105. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +35 -15
  106. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -0
  107. package/Libraries/Components/Popup/PopupProps.d.ts +1 -0
  108. package/Libraries/Components/Popup/PopupProps.js.map +1 -1
  109. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  110. package/Libraries/Components/Pressable/Pressable.js +73 -15
  111. package/Libraries/Components/Pressable/Pressable.windows.js +78 -20
  112. package/Libraries/Components/Pressable/useAndroidRippleForView.js +6 -3
  113. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +3 -3
  114. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  115. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  116. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
  117. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +62 -0
  118. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +4 -4
  119. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +1 -1
  120. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +2 -2
  121. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +5 -6
  122. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -4
  123. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  124. package/Libraries/Components/RefreshControl/RefreshControl.js +4 -3
  125. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +4 -3
  126. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  127. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  128. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  129. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +19 -0
  130. package/Libraries/Components/SafeAreaView/SafeAreaView.js +5 -4
  131. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +5 -4
  132. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -1
  133. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -1
  134. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -1
  135. package/Libraries/Components/ScrollView/ScrollView.d.ts +911 -0
  136. package/Libraries/Components/ScrollView/ScrollView.js +87 -52
  137. package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
  138. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +2 -1
  139. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +3 -3
  140. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +243 -269
  141. package/Libraries/Components/Slider/Slider.d.ts +132 -0
  142. package/Libraries/Components/Slider/Slider.js +9 -9
  143. package/Libraries/Components/Slider/SliderNativeComponent.js +4 -5
  144. package/Libraries/Components/Sound/NativeSoundManager.js +1 -0
  145. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -0
  146. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -0
  147. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  148. package/Libraries/Components/StatusBar/StatusBar.js +7 -7
  149. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +10 -10
  150. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  151. package/Libraries/Components/Switch/Switch.js +7 -7
  152. package/Libraries/Components/Switch/SwitchNativeComponent.js +9 -4
  153. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +40 -12
  154. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  155. package/Libraries/Components/TextInput/InputAccessoryView.js +3 -4
  156. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  157. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +3 -2
  158. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -2
  159. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
  160. package/Libraries/Components/TextInput/TextInput.d.ts +840 -0
  161. package/Libraries/Components/TextInput/TextInput.flow.js +1057 -0
  162. package/Libraries/Components/TextInput/TextInput.js +344 -38
  163. package/Libraries/Components/TextInput/TextInput.windows.js +348 -38
  164. package/Libraries/Components/TextInput/TextInputNativeCommands.js +2 -2
  165. package/Libraries/Components/TextInput/TextInputState.js +22 -5
  166. package/Libraries/Components/TextInput/TextInputState.windows.js +22 -5
  167. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -0
  168. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  169. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  170. package/Libraries/Components/Touchable/Touchable.flow.js +258 -0
  171. package/Libraries/Components/Touchable/Touchable.js +12 -12
  172. package/Libraries/Components/Touchable/Touchable.windows.js +12 -12
  173. package/Libraries/Components/Touchable/TouchableBounce.js +44 -10
  174. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +68 -0
  175. package/Libraries/Components/Touchable/TouchableHighlight.js +32 -9
  176. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +32 -9
  177. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
  178. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +54 -20
  179. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +109 -0
  180. package/Libraries/Components/Touchable/TouchableOpacity.js +54 -16
  181. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +54 -16
  182. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +143 -0
  183. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +64 -10
  184. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +64 -10
  185. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
  186. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  187. package/Libraries/Components/View/ReactNativeStyleAttributes.js +13 -2
  188. package/Libraries/Components/View/View.d.ts +29 -0
  189. package/Libraries/Components/View/View.js +91 -8
  190. package/Libraries/Components/View/View.windows.js +181 -94
  191. package/Libraries/Components/View/ViewAccessibility.d.ts +360 -0
  192. package/Libraries/Components/View/ViewAccessibility.js +70 -1
  193. package/Libraries/Components/View/ViewAccessibility.windows.js +69 -0
  194. package/Libraries/Components/View/ViewNativeComponent.js +3 -3
  195. package/Libraries/Components/View/ViewPropTypes.d.ts +245 -0
  196. package/Libraries/Components/View/ViewPropTypes.js +105 -13
  197. package/Libraries/Components/View/ViewPropTypes.windows.js +105 -13
  198. package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
  199. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  200. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  201. package/Libraries/Core/ExceptionsManager.js +8 -0
  202. package/Libraries/Core/ExtendedError.js +11 -8
  203. package/Libraries/Core/InitializeCore.js +2 -1
  204. package/Libraries/Core/NativeExceptionsManager.js +3 -4
  205. package/Libraries/Core/RawEventEmitter.js +2 -1
  206. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  207. package/Libraries/Core/ReactNativeVersion.js +2 -2
  208. package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
  209. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  210. package/Libraries/Core/Timers/JSTimers.js +13 -11
  211. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  212. package/Libraries/Core/setUpBatchedBridge.js +1 -5
  213. package/Libraries/Core/setUpDeveloperTools.js +4 -6
  214. package/Libraries/Core/setUpReactDevTools.js +4 -1
  215. package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
  216. package/Libraries/Core/setUpTimers.js +1 -1
  217. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
  218. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
  219. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
  220. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  221. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  222. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
  223. package/Libraries/Events/EventPolyfill.js +1 -1
  224. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
  225. package/Libraries/Image/AssetSourceResolver.js +4 -6
  226. package/Libraries/Image/Image.android.js +63 -45
  227. package/Libraries/Image/Image.d.ts +322 -0
  228. package/Libraries/Image/Image.flow.js +64 -0
  229. package/Libraries/Image/Image.ios.js +55 -28
  230. package/Libraries/Image/Image.windows.js +56 -30
  231. package/Libraries/Image/ImageBackground.js +18 -7
  232. package/Libraries/Image/ImageInjection.js +2 -1
  233. package/Libraries/Image/ImageProps.js +88 -5
  234. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  235. package/Libraries/Image/ImageSource.d.ts +76 -0
  236. package/Libraries/Image/ImageSourceUtils.js +80 -0
  237. package/Libraries/Image/ImageUtils.js +21 -0
  238. package/Libraries/Image/ImageViewNativeComponent.js +8 -5
  239. package/Libraries/Image/NativeImageEditor.js +1 -0
  240. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  241. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  242. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  243. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  244. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
  245. package/Libraries/Image/nativeImageSource.js +2 -2
  246. package/Libraries/Image/resolveAssetSource.js +5 -5
  247. package/Libraries/Inspector/BorderBox.js +1 -1
  248. package/Libraries/Inspector/BoxInspector.js +3 -4
  249. package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
  250. package/Libraries/Inspector/ElementBox.js +4 -5
  251. package/Libraries/Inspector/ElementProperties.js +10 -11
  252. package/Libraries/Inspector/Inspector.js +22 -108
  253. package/Libraries/Inspector/InspectorOverlay.js +5 -5
  254. package/Libraries/Inspector/InspectorPanel.js +12 -10
  255. package/Libraries/Inspector/NetworkOverlay.js +7 -3
  256. package/Libraries/Inspector/PerformanceOverlay.js +3 -3
  257. package/Libraries/Inspector/StyleInspector.js +2 -2
  258. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
  259. package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
  260. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  261. package/Libraries/Interaction/InteractionManager.js +8 -8
  262. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  263. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  264. package/Libraries/Interaction/PanResponder.flow.js +257 -0
  265. package/Libraries/Interaction/PanResponder.js +4 -3
  266. package/Libraries/JSInspector/JSInspector.js +0 -3
  267. package/Libraries/JSInspector/NetworkAgent.js +3 -3
  268. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  269. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
  270. package/Libraries/Linking/Linking.d.ts +61 -0
  271. package/Libraries/Linking/Linking.js +3 -2
  272. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  273. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  274. package/Libraries/Lists/CellRenderMask.js +13 -3
  275. package/Libraries/Lists/ChildListCollection.js +72 -0
  276. package/Libraries/Lists/FillRateHelper.js +28 -17
  277. package/Libraries/Lists/FlatList.d.ts +292 -0
  278. package/Libraries/Lists/FlatList.js +70 -70
  279. package/Libraries/Lists/SectionList.d.ts +300 -0
  280. package/Libraries/Lists/SectionList.js +5 -5
  281. package/Libraries/Lists/SectionListModern.js +6 -6
  282. package/Libraries/Lists/StateSafePureComponent.js +85 -0
  283. package/Libraries/Lists/ViewabilityHelper.js +33 -12
  284. package/Libraries/Lists/VirtualizeUtils.js +17 -13
  285. package/Libraries/Lists/VirtualizedList.d.ts +317 -0
  286. package/Libraries/Lists/VirtualizedList.js +548 -890
  287. package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
  288. package/Libraries/Lists/VirtualizedListContext.js +7 -48
  289. package/Libraries/Lists/VirtualizedListProps.js +279 -0
  290. package/Libraries/Lists/VirtualizedSectionList.js +6 -3
  291. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  292. package/Libraries/LogBox/Data/LogBoxData.js +9 -8
  293. package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
  294. package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
  295. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
  296. package/Libraries/LogBox/LogBox.d.ts +28 -0
  297. package/Libraries/LogBox/LogBox.js +11 -11
  298. package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
  299. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  300. package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
  301. package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
  302. package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
  303. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
  304. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
  305. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
  306. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
  307. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
  308. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  309. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
  310. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
  311. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
  312. package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
  313. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
  314. package/Libraries/Modal/Modal.d.ts +104 -0
  315. package/Libraries/Modal/Modal.js +14 -14
  316. package/Libraries/Modal/NativeModalManager.js +1 -0
  317. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
  318. package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
  319. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
  320. package/Libraries/NativeComponent/BaseViewConfig.windows.js +8 -3
  321. package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
  322. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
  323. package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
  324. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  325. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
  326. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  327. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  328. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  329. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  330. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
  331. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  332. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  333. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  334. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  335. package/Libraries/Network/RCTNetworking.android.js +4 -3
  336. package/Libraries/Network/RCTNetworking.ios.js +3 -2
  337. package/Libraries/Network/RCTNetworking.windows.js +1 -0
  338. package/Libraries/Network/convertRequestBody.js +1 -2
  339. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
  340. package/Libraries/NewAppScreen/components/Header.js +6 -2
  341. package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
  342. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
  343. package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
  344. package/Libraries/NewAppScreen/index.js +1 -1
  345. package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
  346. package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
  347. package/Libraries/Performance/Systrace.d.ts +66 -0
  348. package/Libraries/Performance/Systrace.js +110 -195
  349. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  350. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
  351. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
  352. package/Libraries/Pressability/Pressability.js +12 -10
  353. package/Libraries/Pressability/Pressability.windows.js +21 -12
  354. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  355. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  356. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
  357. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
  358. package/Libraries/ReactNative/AppContainer.js +17 -7
  359. package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
  360. package/Libraries/ReactNative/AppRegistry.js +11 -14
  361. package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
  362. package/Libraries/ReactNative/FabricUIManager.js +3 -3
  363. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  364. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  365. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  366. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  367. package/Libraries/ReactNative/PaperUIManager.js +2 -2
  368. package/Libraries/ReactNative/PaperUIManager.windows.js +1 -1
  369. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
  370. package/Libraries/ReactNative/RendererImplementation.js +112 -0
  371. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  372. package/Libraries/ReactNative/RendererProxy.js +26 -0
  373. package/Libraries/ReactNative/RootTag.js +0 -1
  374. package/Libraries/ReactNative/UIManager.d.ts +157 -0
  375. package/Libraries/ReactNative/UIManager.js +1 -1
  376. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
  377. package/Libraries/ReactNative/renderApplication.js +38 -20
  378. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  379. package/Libraries/ReactNative/requireNativeComponent.js +2 -2
  380. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
  381. package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
  382. package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
  383. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
  384. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
  385. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
  386. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
  387. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
  388. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  389. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  390. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  391. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
  392. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
  393. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
  394. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  395. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  396. package/Libraries/Settings/Settings.d.ts +18 -0
  397. package/Libraries/Share/NativeShareModule.js +1 -0
  398. package/Libraries/Share/Share.d.ts +80 -0
  399. package/Libraries/Share/Share.js +7 -5
  400. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  401. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  402. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  403. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  404. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
  405. package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
  406. package/Libraries/StyleSheet/StyleSheet.js +15 -11
  407. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
  408. package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
  409. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
  410. package/Libraries/StyleSheet/normalizeColor.js +3 -3
  411. package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
  412. package/Libraries/StyleSheet/processAspectRatio.js +53 -0
  413. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  414. package/Libraries/StyleSheet/processColor.js +3 -4
  415. package/Libraries/StyleSheet/processColorArray.js +1 -0
  416. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  417. package/Libraries/StyleSheet/processTransform.js +114 -105
  418. package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
  419. package/Libraries/Text/Text.d.ts +209 -0
  420. package/Libraries/Text/Text.js +94 -12
  421. package/Libraries/Text/Text.windows.js +87 -11
  422. package/Libraries/Text/TextNativeComponent.js +49 -41
  423. package/Libraries/Text/TextProps.js +64 -7
  424. package/Libraries/TurboModule/RCTExport.d.ts +12 -0
  425. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
  426. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
  427. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  428. package/Libraries/Types/CoreEventTypes.d.ts +263 -0
  429. package/Libraries/Types/CoreEventTypes.js +2 -1
  430. package/Libraries/Types/CoreEventTypes.windows.js +2 -1
  431. package/Libraries/Utilities/AcessibilityMapping.js +154 -0
  432. package/Libraries/Utilities/Appearance.d.ts +43 -0
  433. package/Libraries/Utilities/Appearance.js +3 -3
  434. package/Libraries/Utilities/BackHandler.android.js +3 -5
  435. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  436. package/Libraries/Utilities/BackHandler.windows.js +3 -5
  437. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  438. package/Libraries/Utilities/DevSettings.js +4 -2
  439. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  440. package/Libraries/Utilities/Dimensions.js +2 -2
  441. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
  442. package/Libraries/Utilities/HMRClient.js +23 -8
  443. package/Libraries/Utilities/LoadingView.ios.js +1 -1
  444. package/Libraries/Utilities/NativeAppearance.js +1 -0
  445. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  446. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
  447. package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
  448. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  449. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  450. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  451. package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
  452. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  453. package/Libraries/Utilities/Platform.android.js +11 -5
  454. package/Libraries/Utilities/Platform.d.ts +102 -0
  455. package/Libraries/Utilities/Platform.ios.js +12 -5
  456. package/Libraries/Utilities/Platform.windows.js +11 -5
  457. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  458. package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
  459. package/Libraries/Utilities/codegenNativeCommands.js +1 -10
  460. package/Libraries/Utilities/codegenNativeComponent.js +4 -1
  461. package/Libraries/Utilities/createPerformanceLogger.js +7 -8
  462. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  463. package/Libraries/Utilities/groupByEveryN.js +1 -1
  464. package/Libraries/Utilities/stringifySafe.js +3 -1
  465. package/Libraries/Utilities/useColorScheme.js +3 -2
  466. package/Libraries/Utilities/useRefEffect.js +1 -1
  467. package/Libraries/Vibration/NativeVibration.js +1 -0
  468. package/Libraries/Vibration/Vibration.d.ts +43 -0
  469. package/Libraries/Vibration/Vibration.js +1 -0
  470. package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
  471. package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
  472. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  473. package/Libraries/WebSocket/WebSocket.js +11 -3
  474. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  475. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  476. package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
  477. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
  478. package/Libraries/__tests__/ViewWindows-test.js +16 -0
  479. package/Libraries/platform-types.d.ts +17 -0
  480. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  481. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  482. package/Microsoft.ReactNative/ABIViewManager.cpp +19 -1
  483. package/Microsoft.ReactNative/ABIViewManager.h +9 -0
  484. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +4 -43
  485. package/Microsoft.ReactNative/Base/CoreNativeModules.h +0 -2
  486. package/Microsoft.ReactNative/CompositionContext.idl +31 -0
  487. package/Microsoft.ReactNative/CompositionHwndHost.idl +33 -0
  488. package/Microsoft.ReactNative/CompositionRootView.idl +45 -0
  489. package/Microsoft.ReactNative/CompositionSwitcher.idl +123 -0
  490. package/Microsoft.ReactNative/CompositionUIService.idl +24 -0
  491. package/Microsoft.ReactNative/Fabric/ComponentView.h +10 -0
  492. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +83 -0
  493. package/Microsoft.ReactNative/Fabric/{ComponentViewRegistry.h → Composition/ComponentViewRegistry.h} +9 -12
  494. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +816 -0
  495. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +33 -0
  496. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +833 -0
  497. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +116 -0
  498. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.cpp +137 -0
  499. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +44 -0
  500. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +145 -0
  501. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +49 -0
  502. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +359 -0
  503. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +81 -0
  504. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.cpp +27 -0
  505. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.h +23 -0
  506. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +1217 -0
  507. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +113 -0
  508. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +332 -0
  509. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +90 -0
  510. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +415 -0
  511. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +62 -0
  512. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +355 -0
  513. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +103 -0
  514. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +177 -0
  515. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1076 -0
  516. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +99 -0
  517. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputEventEmitter.cpp +0 -0
  518. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputEventEmitter.h +0 -0
  519. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputProps.cpp +1 -31
  520. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputProps.h +15 -28
  521. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputShadowNode.cpp +16 -14
  522. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputShadowNode.h +3 -3
  523. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputState.cpp +27 -10
  524. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputState.h +5 -16
  525. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -157
  526. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +10 -9
  527. package/Microsoft.ReactNative/Fabric/IComponentViewRegistry.h +34 -0
  528. package/Microsoft.ReactNative/Fabric/ImageManager.cpp +5 -7
  529. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +23 -8
  530. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +35 -0
  531. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +125 -0
  532. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +20 -0
  533. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +5 -0
  534. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/States.h +5 -0
  535. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +4 -6
  536. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +17 -0
  537. package/Microsoft.ReactNative/INativeUIManager.h +1 -1
  538. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -9
  539. package/Microsoft.ReactNative/IViewManager.idl +14 -0
  540. package/Microsoft.ReactNative/IViewManagerCore.idl +1 -0
  541. package/Microsoft.ReactNative/JsiApi.cpp +94 -0
  542. package/Microsoft.ReactNative/JsiApi.h +13 -0
  543. package/Microsoft.ReactNative/JsiApi.idl +13 -0
  544. package/Microsoft.ReactNative/LayoutService.cpp +51 -0
  545. package/Microsoft.ReactNative/LayoutService.h +32 -0
  546. package/Microsoft.ReactNative/LayoutService.idl +41 -0
  547. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +32 -20
  548. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +11 -1
  549. package/Microsoft.ReactNative/Modules/Animated/AdditionAnimatedNode.cpp +33 -16
  550. package/Microsoft.ReactNative/Modules/Animated/AdditionAnimatedNode.h +3 -2
  551. package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.cpp +17 -2
  552. package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.h +19 -1
  553. package/Microsoft.ReactNative/Modules/Animated/AnimatedPlatformConfig.cpp +23 -0
  554. package/Microsoft.ReactNative/Modules/Animated/AnimatedPlatformConfig.h +17 -0
  555. package/Microsoft.ReactNative/Modules/Animated/AnimationDriver.cpp +49 -18
  556. package/Microsoft.ReactNative/Modules/Animated/AnimationDriver.h +29 -7
  557. package/Microsoft.ReactNative/Modules/Animated/AnimationUtils.h +45 -0
  558. package/Microsoft.ReactNative/Modules/Animated/CalculatedAnimationDriver.cpp +6 -5
  559. package/Microsoft.ReactNative/Modules/Animated/CalculatedAnimationDriver.h +1 -3
  560. package/Microsoft.ReactNative/Modules/Animated/DecayAnimationDriver.cpp +31 -5
  561. package/Microsoft.ReactNative/Modules/Animated/DecayAnimationDriver.h +3 -1
  562. package/Microsoft.ReactNative/Modules/Animated/DiffClampAnimatedNode.cpp +30 -15
  563. package/Microsoft.ReactNative/Modules/Animated/DiffClampAnimatedNode.h +4 -2
  564. package/Microsoft.ReactNative/Modules/Animated/DivisionAnimatedNode.cpp +43 -20
  565. package/Microsoft.ReactNative/Modules/Animated/DivisionAnimatedNode.h +3 -2
  566. package/Microsoft.ReactNative/Modules/Animated/EventAnimationDriver.cpp +2 -2
  567. package/Microsoft.ReactNative/Modules/Animated/EventAnimationDriver.h +1 -1
  568. package/Microsoft.ReactNative/Modules/Animated/FrameAnimationDriver.cpp +45 -8
  569. package/Microsoft.ReactNative/Modules/Animated/FrameAnimationDriver.h +7 -2
  570. package/Microsoft.ReactNative/Modules/Animated/InterpolationAnimatedNode.cpp +76 -38
  571. package/Microsoft.ReactNative/Modules/Animated/InterpolationAnimatedNode.h +6 -5
  572. package/Microsoft.ReactNative/Modules/Animated/ModulusAnimatedNode.cpp +25 -13
  573. package/Microsoft.ReactNative/Modules/Animated/ModulusAnimatedNode.h +4 -2
  574. package/Microsoft.ReactNative/Modules/Animated/MultiplicationAnimatedNode.cpp +33 -16
  575. package/Microsoft.ReactNative/Modules/Animated/MultiplicationAnimatedNode.h +3 -2
  576. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +245 -209
  577. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +91 -41
  578. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +336 -82
  579. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +33 -10
  580. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +185 -57
  581. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.h +28 -5
  582. package/Microsoft.ReactNative/Modules/Animated/SpringAnimationDriver.cpp +72 -20
  583. package/Microsoft.ReactNative/Modules/Animated/SpringAnimationDriver.h +8 -4
  584. package/Microsoft.ReactNative/Modules/Animated/StyleAnimatedNode.cpp +20 -5
  585. package/Microsoft.ReactNative/Modules/Animated/StyleAnimatedNode.h +3 -2
  586. package/Microsoft.ReactNative/Modules/Animated/SubtractionAnimatedNode.cpp +42 -20
  587. package/Microsoft.ReactNative/Modules/Animated/SubtractionAnimatedNode.h +3 -1
  588. package/Microsoft.ReactNative/Modules/Animated/TrackingAnimatedNode.cpp +20 -11
  589. package/Microsoft.ReactNative/Modules/Animated/TrackingAnimatedNode.h +5 -6
  590. package/Microsoft.ReactNative/Modules/Animated/TransformAnimatedNode.cpp +36 -9
  591. package/Microsoft.ReactNative/Modules/Animated/TransformAnimatedNode.h +5 -2
  592. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.cpp +60 -32
  593. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +11 -4
  594. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +58 -37
  595. package/Microsoft.ReactNative/Modules/AppearanceModule.h +25 -32
  596. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +3 -1
  597. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +42 -10
  598. package/Microsoft.ReactNative/Modules/LogBoxModule.cpp +157 -39
  599. package/Microsoft.ReactNative/Modules/LogBoxModule.h +6 -0
  600. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +72 -85
  601. package/Microsoft.ReactNative/Modules/NativeUIManager.h +8 -4
  602. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +7 -19
  603. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +1 -0
  604. package/Microsoft.ReactNative/Modules/TimingModule.cpp +48 -87
  605. package/Microsoft.ReactNative/Modules/TimingModule.h +20 -30
  606. package/Microsoft.ReactNative/QuirkSettings.cpp +22 -0
  607. package/Microsoft.ReactNative/QuirkSettings.h +9 -0
  608. package/Microsoft.ReactNative/QuirkSettings.idl +7 -0
  609. package/Microsoft.ReactNative/ReactCoreInjection.cpp +7 -2
  610. package/Microsoft.ReactNative/ReactCoreInjection.h +4 -1
  611. package/Microsoft.ReactNative/ReactCoreInjection.idl +4 -1
  612. package/Microsoft.ReactNative/ReactHost/React.h +0 -3
  613. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +28 -23
  614. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -3
  615. package/Microsoft.ReactNative/ReactNativeHost.cpp +2 -1
  616. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +8 -3
  617. package/Microsoft.ReactNative/ReactPackageBuilder.h +4 -3
  618. package/Microsoft.ReactNative/ReactRootView.cpp +3 -75
  619. package/Microsoft.ReactNative/ReactRootView.h +0 -6
  620. package/Microsoft.ReactNative/ReactRootView.idl +1 -9
  621. package/Microsoft.ReactNative/RedBox.cpp +69 -8
  622. package/Microsoft.ReactNative/RedBox.h +2 -0
  623. package/Microsoft.ReactNative/RedBoxHandler.cpp +3 -1
  624. package/Microsoft.ReactNative/Utils/Helpers.cpp +13 -0
  625. package/Microsoft.ReactNative/Utils/Helpers.h +1 -0
  626. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +94 -0
  627. package/Microsoft.ReactNative/Utils/ImageUtils.h +35 -0
  628. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +3 -2
  629. package/Microsoft.ReactNative/Utils/PropertyUtils.h +31 -9
  630. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +19 -0
  631. package/Microsoft.ReactNative/Views/ControlViewManager.h +7 -0
  632. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +8 -4
  633. package/Microsoft.ReactNative/Views/ICompositionRootView.h +19 -0
  634. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +14 -0
  635. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +7 -0
  636. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +8 -76
  637. package/Microsoft.ReactNative/Views/Image/ReactImage.h +1 -23
  638. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +16 -3
  639. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -2
  640. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +1 -3
  641. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +10 -1
  642. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +0 -12
  643. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.h +2 -4
  644. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -7
  645. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +58 -42
  646. package/Microsoft.ReactNative/Views/TextViewManager.cpp +47 -31
  647. package/Microsoft.ReactNative/Views/TextViewManager.h +2 -0
  648. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +22 -247
  649. package/Microsoft.ReactNative/Views/TouchEventHandler.h +1 -6
  650. package/Microsoft.ReactNative/Views/ViewControl.cpp +2 -2
  651. package/Microsoft.ReactNative/Views/ViewControl.h +1 -1
  652. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +25 -13
  653. package/Microsoft.ReactNative/Views/ViewManagerBase.h +4 -0
  654. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +74 -35
  655. package/Microsoft.ReactNative/Views/ViewViewManager.h +1 -0
  656. package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +4 -4
  657. package/Microsoft.ReactNative/XamlHelper.cpp +13 -0
  658. package/Microsoft.ReactNative/XamlHelper.h +4 -0
  659. package/Microsoft.ReactNative/XamlHelper.idl +9 -0
  660. package/Microsoft.ReactNative/XamlUIService.cpp +16 -0
  661. package/Microsoft.ReactNative/XamlUIService.h +2 -0
  662. package/Microsoft.ReactNative/XamlUIService.idl +4 -0
  663. package/Microsoft.ReactNative/XamlView.cpp +10 -0
  664. package/Microsoft.ReactNative/XamlView.h +7 -2
  665. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +76 -0
  666. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +13 -0
  667. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +71 -2
  668. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
  669. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +1 -2
  670. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +14 -4
  671. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +5 -2
  672. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +2 -0
  673. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +1 -2
  674. package/Microsoft.ReactNative.Managed/IReactPromise.cs +0 -20
  675. package/Microsoft.ReactNative.Managed/JSValue.cs +1 -1
  676. package/Microsoft.ReactNative.Managed/JSValueReader.cs +438 -444
  677. package/Microsoft.ReactNative.Managed/JSValueWriter.cs +8 -7
  678. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +22 -7
  679. package/Microsoft.ReactNative.Managed/ReactAttributes.cs +16 -0
  680. package/Microsoft.ReactNative.Managed/ReactConstantProvider.cs +5 -0
  681. package/Microsoft.ReactNative.Managed/ReactContext.cs +19 -2
  682. package/Microsoft.ReactNative.Managed/ReactDispatcher.cs +34 -0
  683. package/Microsoft.ReactNative.Managed/ReactError.cs +36 -0
  684. package/Microsoft.ReactNative.Managed/ReactNotificationArgsOf.cs +23 -0
  685. package/Microsoft.ReactNative.Managed/ReactNotificationHandlerOf.cs +7 -0
  686. package/Microsoft.ReactNative.Managed/ReactNotificationIdOf.cs +44 -0
  687. package/Microsoft.ReactNative.Managed/ReactNotificationService.cs +146 -0
  688. package/Microsoft.ReactNative.Managed/ReactNotificationSubscription.cs +43 -0
  689. package/Microsoft.ReactNative.Managed/ReactNotificationSubscriptionRevoker.cs +64 -0
  690. package/Microsoft.ReactNative.Managed/ReactPromise.cs +123 -81
  691. package/Microsoft.ReactNative.Managed/ReactPropertyBag.cs +91 -0
  692. package/Microsoft.ReactNative.Managed/ReactPropertyIdOf.cs +44 -0
  693. package/Microsoft.ReactNative.Managed/ReactPropertyName.cs +39 -0
  694. package/Microsoft.ReactNative.Managed/ReactPropertyNamespace.cs +26 -0
  695. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +44 -0
  696. package/Microsoft.ReactNative.Managed/ReactTaskExtensions.cs +15 -4
  697. package/Microsoft.ReactNative.Managed/packages.lock.json +51 -2
  698. package/Microsoft.ReactNative.Managed.CodeGen/App.cs +1 -1
  699. package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +793 -731
  700. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +81 -44
  701. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Serializers.cs +57 -18
  702. package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +36 -4
  703. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +5 -5
  704. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactAssembly.cs +3 -3
  705. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactGetConstants.cs +17 -0
  706. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactMethod.cs +11 -2
  707. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactModule.cs +2 -0
  708. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactTypes.cs +10 -4
  709. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Debug.pubxml +1 -1
  710. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Release.pubxml +1 -1
  711. package/Microsoft.ReactNative.Managed.CodeGen/ReactNativeNames.cs +29 -3
  712. package/Microsoft.ReactNative.Managed.CodeGen/SyntaxHelpers.cs +6 -0
  713. package/Mso/smartPtr/cntPtr.h +21 -21
  714. package/PropertySheets/Codegen.props +15 -0
  715. package/PropertySheets/Codegen.targets +19 -0
  716. package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
  717. package/PropertySheets/External/Microsoft.ReactNative.CSharp.Dependencies.props +17 -0
  718. package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
  719. package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +0 -3
  720. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.props +1 -0
  721. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets +3 -0
  722. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.targets +1 -0
  723. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.props +1 -0
  724. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets +3 -0
  725. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.targets +1 -0
  726. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +11 -0
  727. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +1 -0
  728. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +51 -0
  729. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +10 -1
  730. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  731. package/PropertySheets/JSEngine.props +10 -3
  732. package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  733. package/PropertySheets/NewAPIDeclarations.props +25 -0
  734. package/PropertySheets/React.Cpp.props +2 -2
  735. package/PropertySheets/WinUI.props +1 -1
  736. package/README.md +2 -2
  737. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +2 -1
  738. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBufferBuilder.cpp +182 -0
  739. package/ReactCommon/Yoga.cpp +76 -29
  740. package/Scripts/IntegrationTests.ps1 +1 -1
  741. package/Scripts/JustMyXaml.ps1 +8 -8
  742. package/Scripts/Microsoft.ReactNative.Managed.nuspec +1 -1
  743. package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +3 -3
  744. package/Scripts/OfficeReact.Win32.nuspec +2 -0
  745. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +31 -1
  746. package/Scripts/UnitTest.ps1 +1 -1
  747. package/Scripts/rnw-dependencies.ps1 +317 -162
  748. package/Shared/Composition/CompositionSwitcher.interop.h +39 -0
  749. package/Shared/HermesShim.h +1 -1
  750. package/Shared/JSI/ChakraRuntime.cpp +42 -0
  751. package/Shared/JSI/ChakraRuntime.h +13 -0
  752. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +0 -2
  753. package/Shared/Modules/HttpModule.cpp +19 -4
  754. package/Shared/Networking/IHttpResource.h +126 -0
  755. package/Shared/Networking/IWebSocketResource.h +1 -0
  756. package/Shared/Networking/OriginPolicyHttpFilter.cpp +6 -6
  757. package/Shared/Networking/WinRTHttpResource.cpp +161 -32
  758. package/Shared/Networking/WinRTHttpResource.h +10 -0
  759. package/Shared/OInstance.cpp +4 -8
  760. package/Shared/Shared.vcxitems +37 -5
  761. package/Shared/Shared.vcxitems.filters +1 -12
  762. package/Shared/V8JSIRuntimeHolder.h +0 -2
  763. package/codegen/NativeAccessibilityInfoSpec.g.h +12 -12
  764. package/codegen/NativeAccessibilityManagerSpec.g.h +37 -31
  765. package/codegen/NativeActionSheetManagerSpec.g.h +6 -6
  766. package/codegen/NativeAlertManagerSpec.g.h +4 -2
  767. package/codegen/NativeAnimatedModuleSpec.g.h +48 -48
  768. package/codegen/NativeAnimatedTurboModuleSpec.g.h +48 -48
  769. package/codegen/NativeAnimationsDebugModuleSpec.g.h +4 -4
  770. package/codegen/NativeAppStateSpec.g.h +6 -6
  771. package/codegen/NativeAppearanceSpec.g.h +6 -6
  772. package/codegen/NativeBlobModuleSpec.g.h +12 -12
  773. package/codegen/NativeBugReportingSpec.g.h +6 -6
  774. package/codegen/NativeClipboardSpec.g.h +4 -4
  775. package/codegen/NativeDatePickerAndroidSpec.g.h +2 -2
  776. package/codegen/NativeDevLoadingViewSpec.g.h +4 -4
  777. package/codegen/NativeDevMenuSpec.g.h +10 -10
  778. package/codegen/NativeDevSettingsSpec.g.h +22 -22
  779. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +2 -2
  780. package/codegen/NativeDeviceEventManagerSpec.g.h +2 -2
  781. package/codegen/NativeDialogManagerAndroidSpec.g.h +2 -2
  782. package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -2
  783. package/codegen/NativeExceptionsManagerSpec.g.h +10 -10
  784. package/codegen/NativeFileReaderModuleSpec.g.h +4 -4
  785. package/codegen/NativeFrameRateLoggerSpec.g.h +8 -8
  786. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +4 -4
  787. package/codegen/NativeI18nManagerSpec.g.h +6 -6
  788. package/codegen/NativeImageEditorSpec.g.h +2 -2
  789. package/codegen/NativeImageLoaderAndroidSpec.g.h +10 -10
  790. package/codegen/NativeImageLoaderIOSSpec.g.h +10 -10
  791. package/codegen/NativeImageStoreAndroidSpec.g.h +2 -2
  792. package/codegen/NativeImageStoreIOSSpec.g.h +8 -8
  793. package/codegen/NativeIntentAndroidSpec.g.h +10 -10
  794. package/codegen/NativeJSCHeapCaptureSpec.g.h +2 -2
  795. package/codegen/NativeJSCSamplingProfilerSpec.g.h +2 -2
  796. package/codegen/NativeKeyboardObserverSpec.g.h +4 -4
  797. package/codegen/NativeLinkingManagerSpec.g.h +12 -12
  798. package/codegen/NativeLogBoxSpec.g.h +4 -4
  799. package/codegen/NativeModalManagerSpec.g.h +4 -4
  800. package/codegen/NativeNetworkingAndroidSpec.g.h +10 -10
  801. package/codegen/NativeNetworkingIOSSpec.g.h +10 -10
  802. package/codegen/NativePerformanceObserverSpec.g.h +69 -0
  803. package/codegen/NativePermissionsAndroidSpec.g.h +8 -8
  804. package/codegen/NativePlatformConstantsAndroidSpec.g.h +2 -2
  805. package/codegen/NativePushNotificationManagerIOSSpec.g.h +36 -36
  806. package/codegen/NativeRedBoxSpec.g.h +4 -4
  807. package/codegen/NativeSampleTurboModuleSpec.g.h +22 -22
  808. package/codegen/NativeSegmentFetcherSpec.g.h +4 -4
  809. package/codegen/NativeSettingsManagerSpec.g.h +4 -4
  810. package/codegen/NativeShareModuleSpec.g.h +2 -2
  811. package/codegen/NativeSoundManagerSpec.g.h +2 -2
  812. package/codegen/NativeStatusBarManagerAndroidSpec.g.h +8 -8
  813. package/codegen/NativeStatusBarManagerIOSSpec.g.h +12 -12
  814. package/codegen/NativeTimingSpec.g.h +6 -6
  815. package/codegen/NativeToastAndroidSpec.g.h +6 -6
  816. package/codegen/NativeUIManagerSpec.g.h +50 -50
  817. package/codegen/NativeVibrationSpec.g.h +6 -6
  818. package/codegen/NativeWebSocketModuleSpec.g.h +14 -14
  819. package/codegen/react/components/rnwcore/ComponentDescriptors.h +3 -4
  820. package/codegen/react/components/rnwcore/EventEmitters.cpp +5 -4
  821. package/codegen/react/components/rnwcore/EventEmitters.h +21 -26
  822. package/codegen/react/components/rnwcore/Props.cpp +3 -10
  823. package/codegen/react/components/rnwcore/Props.h +19 -28
  824. package/codegen/react/components/rnwcore/ShadowNodes.cpp +3 -4
  825. package/codegen/react/components/rnwcore/ShadowNodes.h +36 -30
  826. package/codegen/react/components/rnwcore/States.cpp +18 -0
  827. package/codegen/react/components/rnwcore/States.h +156 -0
  828. package/codegen/rnwcoreJSI-generated.cpp +1670 -0
  829. package/codegen/rnwcoreJSI.h +5620 -0
  830. package/fmt/cgmanifest.json +1 -0
  831. package/fmt/fmt.vcxproj +2 -1
  832. package/index.js +89 -55
  833. package/index.windows.js +89 -55
  834. package/interface.js +8 -0
  835. package/jest/react-native-env.js +18 -0
  836. package/jest/renderer.js +2 -2
  837. package/jest/setup.js +7 -9
  838. package/just-task.js +5 -1
  839. package/package.json +37 -37
  840. package/template/cpp-app/proj/MyApp.sln +2 -2
  841. package/template/cpp-app/proj/MyApp.vcxproj +3 -3
  842. package/template/cpp-app/src/ReactPackageProvider.cpp +1 -1
  843. package/template/cpp-lib/proj/MyLib.sln +2 -2
  844. package/template/cpp-lib/proj/MyLib.vcxproj +3 -3
  845. package/template/cpp-lib/src/ReactPackageProvider.cpp +1 -1
  846. package/template/cs-app/proj/MyApp.csproj +10 -8
  847. package/template/cs-app/proj/MyApp.sln +2 -2
  848. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +3 -3
  849. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +2 -1
  850. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +19 -15
  851. package/template/cs-app-WinAppSDK/proj/MyApp.sln +2 -2
  852. package/template/cs-lib/proj/MyLib.csproj +14 -8
  853. package/template/cs-lib/proj/MyLib.sln +2 -2
  854. package/template/shared-app/proj/ExperimentalFeatures.props +2 -0
  855. package/template/shared-lib/proj/ExperimentalFeatures.props +2 -0
  856. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  857. package/Libraries/Components/MaskedView/MaskedViewIOS.windows.js +0 -9
  858. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  859. package/Libraries/Core/setUpSystrace.js +0 -21
  860. package/Libraries/Image/ImagePickerIOS.js +0 -103
  861. package/Libraries/Image/NativeImagePickerIOS.js +0 -38
  862. package/Libraries/Lists/VirtualizedList.windows.js +0 -9
  863. package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
  864. package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
  865. package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
  866. package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
  867. package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
  868. package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
  869. package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
  870. package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
  871. package/Libraries/Storage/AsyncStorage.js +0 -385
  872. package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
  873. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
  874. package/Libraries/StyleSheet/processTransform.windows.js +0 -274
  875. package/Libraries/Utilities/JSDevSupportModule.js +0 -37
  876. package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
  877. package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.cpp +0 -81
  878. package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.h +0 -46
  879. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +0 -118
  880. package/Microsoft.ReactNative/Fabric/ImageComponentView.cpp +0 -138
  881. package/Microsoft.ReactNative/Fabric/ImageComponentView.h +0 -49
  882. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +0 -160
  883. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.h +0 -40
  884. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +0 -200
  885. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.h +0 -62
  886. package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +0 -107
  887. package/Microsoft.ReactNative/Fabric/SliderComponentView.h +0 -51
  888. package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +0 -109
  889. package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +0 -52
  890. package/Microsoft.ReactNative/Fabric/TextComponentView.cpp +0 -98
  891. package/Microsoft.ReactNative/Fabric/TextComponentView.h +0 -39
  892. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +0 -197
  893. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +0 -308
  894. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +0 -52
  895. package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +0 -229
  896. package/Microsoft.ReactNative/Fabric/ViewComponentView.h +0 -56
  897. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +0 -46
  898. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +0 -30
  899. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -145
  900. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -344
  901. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/BaseTextProps.cpp +0 -313
  902. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -455
  903. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/PropsMacros.h +0 -91
  904. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/CompactValue.h +0 -206
  905. package/codegen/NativeAsyncLocalStorageSpec.g.h +0 -111
  906. package/codegen/NativeAsyncSQLiteDBStorageSpec.g.h +0 -111
  907. package/codegen/NativeImagePickerIOSSpec.g.h +0 -79
  908. package/codegen/NativeJSDevSupportSpec.g.h +0 -57
  909. package/rntypes/BatchedBridge.d.ts +0 -23
  910. package/rntypes/Devtools.d.ts +0 -20
  911. package/rntypes/LaunchScreen.d.ts +0 -9
  912. package/rntypes/globals.d.ts +0 -497
  913. package/rntypes/index.d.ts +0 -9754
  914. package/rntypes/legacy-properties.d.ts +0 -238
  915. package/typings-index.d.ts +0 -19
  916. package/typings-index.js +0 -44
  917. package/typings-index.js.map +0 -1
@@ -19,871 +19,933 @@ using System.Threading.Tasks.Dataflow;
19
19
 
20
20
  namespace Microsoft.ReactNative.Managed.CodeGen
21
21
  {
22
- /// <summary>
23
- /// Primary class
24
- /// </summary>
25
- public class CodeAnalyzer
22
+ /// <summary>
23
+ /// Primary class
24
+ /// </summary>
25
+ public class CodeAnalyzer
26
+ {
27
+ public int ConcurrencyLevel { get; set; } = DataflowBlockOptions.Unbounded;
28
+
29
+ private readonly CancellationToken m_cancellationToken;
30
+
31
+ private readonly ConcurrentBag<SyntaxTree> m_syntaxTrees = new ConcurrentBag<SyntaxTree>();
32
+ private readonly ConcurrentBag<MetadataReference> m_metadataReferences = new ConcurrentBag<MetadataReference>();
33
+
34
+ private Compilation? m_compilation { get; set; }
35
+
36
+ private ReactTypes? m_reactTypes;
37
+ internal ReactTypes ReactTypes
26
38
  {
27
- public int ConcurrencyLevel { get; set; } = DataflowBlockOptions.Unbounded;
39
+ get
40
+ {
41
+ Contract.Assert(m_reactTypes != null);
42
+ return m_reactTypes;
43
+ }
44
+ }
28
45
 
29
- private readonly CancellationToken m_cancellationToken;
30
46
 
31
- private readonly ConcurrentBag<SyntaxTree> m_syntaxTrees = new ConcurrentBag<SyntaxTree>();
32
- private readonly ConcurrentBag<MetadataReference> m_metadataReferences = new ConcurrentBag<MetadataReference>();
47
+ private readonly List<Diagnostic> m_diagnostics = new List<Diagnostic>();
48
+ public IEnumerable<Diagnostic> Diagnostics => m_diagnostics;
33
49
 
34
- private Compilation? m_compilation { get; set; }
50
+ public CodeAnalyzer(CancellationToken cancellationToken)
51
+ {
52
+ m_cancellationToken = cancellationToken;
53
+ }
35
54
 
36
- private ReactTypes? m_reactTypes;
37
- internal ReactTypes ReactTypes
55
+ internal void AddSyntaxTree(SyntaxTree syntaxTree)
56
+ {
57
+ m_syntaxTrees.Add(syntaxTree);
58
+ }
59
+
60
+ public async Task ParseSourceFilesAsync(IEnumerable<string> sourceFiles, IEnumerable<string>? preprocessorSymbols)
61
+ {
62
+ var csharpParseOptions = new CSharpParseOptions(
63
+ preprocessorSymbols: preprocessorSymbols,
64
+ languageVersion: LanguageVersion.Latest);
65
+
66
+ var block = new ActionBlock<string>(async file =>
67
+ {
68
+ string text = await File.ReadAllTextAsync(file, m_cancellationToken);
69
+ AddSyntaxTree(CSharpSyntaxTree.ParseText(text, path: file, options: csharpParseOptions));
70
+ },
71
+ new ExecutionDataflowBlockOptions()
72
+ {
73
+ MaxDegreeOfParallelism = ConcurrencyLevel,
74
+ CancellationToken = m_cancellationToken,
75
+ });
76
+ foreach (var sourceFile in sourceFiles)
77
+ {
78
+ block.Post(sourceFile);
79
+ }
80
+
81
+ block.Complete();
82
+ await block.Completion;
83
+ }
84
+
85
+ public async Task LoadMetadataReferencesAsync(IEnumerable<string> references)
86
+ {
87
+ var block = new ActionBlock<string>(file =>
38
88
  {
39
- get
40
- {
41
- Contract.Assert(m_reactTypes != null);
42
- return m_reactTypes;
43
- }
44
- }
89
+ m_metadataReferences.Add(MetadataReference.CreateFromFile(file));
90
+ },
91
+ new ExecutionDataflowBlockOptions()
92
+ {
93
+ MaxDegreeOfParallelism = ConcurrencyLevel,
94
+ CancellationToken = m_cancellationToken,
95
+ });
96
+ foreach (var reference in references.Distinct())
97
+ {
98
+ block.Post(reference);
99
+ }
100
+
101
+ block.Complete();
102
+ await block.Completion;
103
+ }
45
104
 
105
+ public bool TryCompileAndCheckForErrors()
106
+ {
107
+ Contract.Assert(m_syntaxTrees.Any(), "Expected to have syntax trees loaded");
108
+ Contract.Assert(m_metadataReferences.Any(), "Expected to have references loaded");
109
+
110
+ m_compilation = CSharpCompilation.Create(
111
+ "temp",
112
+ m_syntaxTrees,
113
+ m_metadataReferences,
114
+ new CSharpCompilationOptions(OutputKind.WindowsRuntimeMetadata)
115
+ );
116
+
117
+ Contract.Assert(m_compilation != null, "Expect Microsoft.Net.Compilers to always return a compilation unit.");
118
+
119
+ m_diagnostics.AddRange(m_compilation
120
+ .GetDiagnostics(m_cancellationToken)
121
+ .Where(diagnostic => diagnostic.Severity == DiagnosticSeverity.Error)
122
+ );
123
+ if (m_diagnostics.Count > 0)
124
+ {
125
+ return false;
126
+ }
127
+
128
+ return ReactTypes.TryLoad(m_compilation, m_diagnostics, out m_reactTypes);
129
+ }
46
130
 
47
- private readonly List<Diagnostic> m_diagnostics = new List<Diagnostic>();
48
- public IEnumerable<Diagnostic> Diagnostics => m_diagnostics;
131
+ internal IEnumerable<INamedTypeSymbol> GetAllTypes()
132
+ {
133
+ Contract.Assert(m_compilation != null, "Expected to have a compilation. Must call CompileAndCheckForErrors first");
134
+
135
+ var allTypes = new List<INamedTypeSymbol>();
136
+ CollectTypes(m_compilation.Assembly.GlobalNamespace, allTypes);
137
+ return allTypes;
138
+ }
139
+
140
+ public ReactAssembly AnalyzeAndConstructAssemblyModel()
141
+ {
142
+ Contract.Assert(m_compilation != null, "Expected to have a compilation. Must call CompileAndCheckForErrors first");
49
143
 
50
- public CodeAnalyzer(CancellationToken cancellationToken)
144
+ var assembly = new ReactAssembly();
145
+ var processedTypes = new HashSet<ITypeSymbol>(SymbolEqualityComparer.Default);
146
+
147
+ foreach (var type in GetAllTypes())
148
+ {
149
+ if (TryExtractModule(type, out var module))
51
150
  {
52
- m_cancellationToken = cancellationToken;
151
+ assembly.Modules.Add(module);
53
152
  }
54
153
 
55
- internal void AddSyntaxTree(SyntaxTree syntaxTree)
154
+ if (IsViewManager(type))
56
155
  {
57
- m_syntaxTrees.Add(syntaxTree);
156
+ assembly.ViewManagers.Add(type);
58
157
  }
59
158
 
60
- public async Task ParseSourceFilesAsync(IEnumerable<string> sourceFiles, IEnumerable<string>? preprocessorSymbols)
159
+ // Proactively register serializable types.
160
+ switch (type.TypeKind)
61
161
  {
62
- var csharpParseOptions = new CSharpParseOptions(
63
- preprocessorSymbols: preprocessorSymbols,
64
- languageVersion: LanguageVersion.Latest);
65
-
66
- var block = new ActionBlock<string>(async file =>
67
- {
68
- string text = await File.ReadAllTextAsync(file, m_cancellationToken);
69
- AddSyntaxTree(CSharpSyntaxTree.ParseText(text, path: file, options: csharpParseOptions));
70
- },
71
- new ExecutionDataflowBlockOptions()
72
- {
73
- MaxDegreeOfParallelism = ConcurrencyLevel,
74
- CancellationToken = m_cancellationToken,
75
- });
76
- foreach (var sourceFile in sourceFiles)
77
- {
78
- block.Post(sourceFile);
79
- }
80
-
81
- block.Complete();
82
- await block.Completion;
162
+ case TypeKind.Enum:
163
+ assembly.SerializableTypes.Add(type, type.TypeKind);
164
+ break;
83
165
  }
84
166
 
85
- public async Task LoadMetadataReferencesAsync(IEnumerable<string> references)
167
+ // Register extension methods
168
+ if (type.MightContainExtensionMethods)
86
169
  {
87
- var block = new ActionBlock<string>(file =>
88
- {
89
- m_metadataReferences.Add(MetadataReference.CreateFromFile(file));
90
- },
91
- new ExecutionDataflowBlockOptions()
92
- {
93
- MaxDegreeOfParallelism = ConcurrencyLevel,
94
- CancellationToken = m_cancellationToken,
95
- });
96
- foreach (var reference in references.Distinct())
170
+ foreach (var member in type.GetMembers())
171
+ {
172
+ if (member is IMethodSymbol method)
97
173
  {
98
- block.Post(reference);
174
+ if (method.IsExtensionMethod &&
175
+ method.Parameters.Length == 2 &&
176
+ !(method.Parameters[1].Type is ITypeParameterSymbol))
177
+ {
178
+ if (method.Parameters[0].Type.Equals(ReactTypes.JSValueReader, SymbolEqualityComparer.Default) &&
179
+ method.Parameters[1].RefKind == RefKind.Out)
180
+ {
181
+ assembly.JSReaderFunctions.Add(method.Parameters[1].Type, method);
182
+ }
183
+ else if (method.Parameters[0].Type.Equals(ReactTypes.JSValueWriter, SymbolEqualityComparer.Default))
184
+ {
185
+ assembly.JSWriterFunctions.Add(method.Parameters[1].Type, method);
186
+ }
187
+ }
99
188
  }
100
-
101
- block.Complete();
102
- await block.Completion;
189
+ }
103
190
  }
191
+ }
104
192
 
105
- public bool TryCompileAndCheckForErrors()
193
+ foreach (var module in assembly.Modules)
194
+ {
195
+ foreach (var method in module.Methods)
106
196
  {
107
- Contract.Assert(m_syntaxTrees.Any(), "Expected to have syntax trees loaded");
108
- Contract.Assert(m_metadataReferences.Any(), "Expected to have references loaded");
109
-
110
- m_compilation = CSharpCompilation.Create(
111
- "temp",
112
- m_syntaxTrees,
113
- m_metadataReferences,
114
- new CSharpCompilationOptions(OutputKind.WindowsRuntimeMetadata)
115
- );
116
-
117
- Contract.Assert(m_compilation != null, "Expect Microsoft.Net.Compilers to always return a compilation unit.");
118
-
119
- m_diagnostics.AddRange(m_compilation
120
- .GetDiagnostics(m_cancellationToken)
121
- .Where(diagnostic => diagnostic.Severity == DiagnosticSeverity.Error)
122
- );
123
- if (m_diagnostics.Count > 0)
124
- {
125
- return false;
126
- }
127
-
128
- return ReactTypes.TryLoad(m_compilation, m_diagnostics, out m_reactTypes);
197
+ AddSerializableMethod(method.Method);
129
198
  }
130
199
 
131
- internal IEnumerable<INamedTypeSymbol> GetAllTypes()
200
+ foreach (var getConstants in module.GetConstants)
132
201
  {
133
- Contract.Assert(m_compilation != null, "Expected to have a compilation. Must call CompileAndCheckForErrors first");
134
-
135
- var allTypes = new List<INamedTypeSymbol>();
136
- CollectTypes(m_compilation.Assembly.GlobalNamespace, allTypes);
137
- return allTypes;
202
+ AddSerializableType(getConstants.Method.ReturnType);
138
203
  }
139
204
 
140
- public ReactAssembly AnalyzeAndConstructAssemblyModel()
205
+ foreach (var constant in module.Constants)
141
206
  {
142
- Contract.Assert(m_compilation != null, "Expected to have a compilation. Must call CompileAndCheckForErrors first");
143
-
144
- var assembly = new ReactAssembly();
145
- var proceseedTypes = new HashSet<ITypeSymbol>();
207
+ if (constant.Symbol is IFieldSymbol field)
208
+ {
209
+ AddSerializableType(field.Type);
210
+ }
211
+ else if (constant.Symbol is IPropertySymbol property)
212
+ {
213
+ AddSerializableType(property.Type);
214
+ }
215
+ }
146
216
 
147
- foreach (var type in GetAllTypes())
148
- {
149
- if (TryExtractModule(type, out var module))
150
- {
151
- assembly.Modules.Add(module);
152
- }
217
+ foreach (var callback in module.Events.Union<ReactCallback>(module.Functions))
218
+ {
219
+ foreach (var param in callback.CallbackParameters)
220
+ {
221
+ AddSerializableType(param.Type);
222
+ }
223
+ }
224
+ }
153
225
 
154
- if (IsViewManager(type))
155
- {
156
- assembly.ViewManagers.Add(type);
157
- }
226
+ void AddSerializableMethod(IMethodSymbol method)
227
+ {
228
+ AddSerializableType(method.ReturnType);
229
+ foreach (var param in method.Parameters)
230
+ {
231
+ AddSerializableType(param.Type);
232
+ }
233
+ }
158
234
 
159
- // Proactively register serializable types.
160
- switch (type.TypeKind)
161
- {
162
- case TypeKind.Enum:
163
- assembly.SerializableTypes.Add(type, type.TypeKind);
164
- break;
165
- }
235
+ void AddSerializableType(ITypeSymbol type)
236
+ {
237
+ if (processedTypes.Contains(type))
238
+ {
239
+ return;
240
+ }
166
241
 
167
- // Register extension methods
168
- if (type.MightContainExtensionMethods)
169
- {
170
- foreach (var member in type.GetMembers())
171
- {
172
- if (member is IMethodSymbol method)
173
- {
174
- if (method.IsExtensionMethod &&
175
- method.Parameters.Length == 2 &&
176
- !(method.Parameters[1].Type is ITypeParameterSymbol))
177
- {
178
- if (method.Parameters[0].Type.Equals(ReactTypes.JSValueReader, SymbolEqualityComparer.Default) &&
179
- method.Parameters[1].RefKind == RefKind.Out)
180
- {
181
- assembly.JSReaderFunctions.Add(method.Parameters[1].Type, method);
182
- }
183
- else if (method.Parameters[0].Type.Equals(ReactTypes.JSValueWriter, SymbolEqualityComparer.Default))
184
- {
185
- assembly.JSWriterFunctions.Add(method.Parameters[1].Type, method);
186
- }
187
- }
188
- }
189
- }
190
- }
191
- }
242
+ processedTypes.Add(type);
192
243
 
193
- foreach (var module in assembly.Modules)
244
+ if (type is INamedTypeSymbol namedType)
245
+ {
246
+ if (type.TypeKind == TypeKind.Delegate)
247
+ {
248
+ Contract.Assert(namedType.DelegateInvokeMethod != null);
249
+
250
+ AddSerializableMethod(namedType.DelegateInvokeMethod);
251
+ }
252
+ else if (type.ContainingAssembly.Equals(m_compilation.Assembly, SymbolEqualityComparer.Default))
253
+ {
254
+ if (namedType.TypeKind == TypeKind.Class)
194
255
  {
195
- foreach (var method in module.Methods)
196
- {
197
- AddSerializableMethod(method.Method);
198
- }
199
-
200
- foreach (var constant in module.Constants)
201
- {
202
- if (constant.Symbol is IFieldSymbol field)
203
- {
204
- AddSerializableType(field.Type);
205
- }
206
- else if (constant.Symbol is IPropertySymbol property)
207
- {
208
- AddSerializableType(property.Type);
209
- }
210
- }
256
+ // Check that classes have a default constructor.
257
+ if (!namedType
258
+ .GetMembers()
259
+ .Any(member =>
260
+ member is IMethodSymbol method &&
261
+ method.MethodKind == MethodKind.Constructor &&
262
+ method.Parameters.Length == 0))
263
+ {
211
264
 
212
- foreach (var callback in module.Events.Union<ReactCallback>(module.Functions))
213
- {
214
- foreach (var param in callback.CallbackParameters)
215
- {
216
- AddSerializableType(param.Type);
217
- }
218
- }
265
+ }
219
266
  }
220
267
 
221
- void AddSerializableMethod(IMethodSymbol method)
222
- {
223
- AddSerializableType(method.ReturnType);
224
- foreach (var param in method.Parameters)
225
- {
226
- AddSerializableType(param.Type);
227
- }
228
- }
268
+ assembly.SerializableTypes.Add(namedType, namedType.TypeKind);
269
+ }
270
+ }
271
+ }
229
272
 
230
- void AddSerializableType(ITypeSymbol type)
231
- {
232
- if (proceseedTypes.Contains(type))
233
- {
234
- return;
235
- }
273
+ return assembly;
274
+ }
236
275
 
237
- proceseedTypes.Add(type);
276
+ internal bool IsViewManager(INamedTypeSymbol type)
277
+ {
278
+ return !type.IsAbstract && type.AllInterfaces.Any(iface => iface.Equals(ReactTypes.IViewManagerType, SymbolEqualityComparer.Default));
279
+ }
238
280
 
239
- if (type is INamedTypeSymbol namedType)
240
- {
241
- if (type.TypeKind == TypeKind.Delegate)
242
- {
243
- Contract.Assert(namedType.DelegateInvokeMethod != null);
244
-
245
- AddSerializableMethod(namedType.DelegateInvokeMethod);
246
- }
247
- else if (type.ContainingAssembly.Equals(m_compilation.Assembly, SymbolEqualityComparer.Default))
248
- {
249
- if (namedType.TypeKind == TypeKind.Class)
250
- {
251
- // Check that classes have a default constructor.
252
- if (!namedType
253
- .GetMembers()
254
- .Any(member =>
255
- member is IMethodSymbol method &&
256
- method.MethodKind == MethodKind.Constructor &&
257
- method.Parameters.Length == 0))
258
- {
259
-
260
- }
261
- }
262
-
263
- assembly.SerializableTypes.Add(namedType, namedType.TypeKind);
264
- }
265
- }
266
- }
281
+ internal bool TryExtractModule(INamedTypeSymbol type, [NotNullWhen(returnValue: true)] out ReactModule? module)
282
+ {
283
+ if (TryFindAttribute(type, ReactTypes.ReactModuleAttribute, out var attr))
284
+ {
285
+ string? moduleName = null;
286
+ string? eventEmitterName = null;
267
287
 
268
- return assembly;
288
+ if (attr.ConstructorArguments.Length > 0)
289
+ {
290
+ moduleName = attr.ConstructorArguments[0].Value as string;
269
291
  }
270
292
 
271
- internal bool IsViewManager(INamedTypeSymbol type)
293
+ foreach (var namedArgument in attr.NamedArguments)
272
294
  {
273
- return !type.IsAbstract && type.AllInterfaces.Any(iface => iface.Equals(ReactTypes.IViewManagerType, SymbolEqualityComparer.Default));
295
+ switch (namedArgument.Key)
296
+ {
297
+ case nameof(ReactModuleAttribute.ModuleName):
298
+ moduleName = namedArgument.Value.Value as string;
299
+ break;
300
+ case nameof(ReactModuleAttribute.EventEmitterName):
301
+ eventEmitterName = namedArgument.Value.Value as string;
302
+ break;
303
+ default:
304
+ var location = attr.ApplicationSyntaxReference?.SyntaxTree.GetLocation(attr.ApplicationSyntaxReference.Span);
305
+ m_diagnostics.Add(Diagnostic.Create(DiagnosticDescriptors.UnexpectedPropertyInAttribute, location ?? Location.None, namedArgument.Key, attr.AttributeClass?.Name));
306
+ module = null;
307
+ return false;
308
+ }
274
309
  }
275
310
 
276
- internal bool TryExtractModule(INamedTypeSymbol type, [NotNullWhen(returnValue: true)] out ReactModule? module)
277
- {
278
- if (TryFindAttribute(type, ReactTypes.ReactModuleAttribute, out var attr))
279
- {
280
- string? moduleName = null;
281
- string? eventEmitterName = null;
311
+ moduleName ??= type.Name;
312
+ eventEmitterName ??= ReactNativeNames.DefaultEventEmitterName;
282
313
 
283
- if (attr.ConstructorArguments.Length > 0)
284
- {
285
- moduleName = attr.ConstructorArguments[0].Value as string;
286
- }
314
+ module = new ReactModule(type, moduleName, eventEmitterName);
287
315
 
288
- foreach (var namedArgument in attr.NamedArguments)
289
- {
290
- switch (namedArgument.Key)
291
- {
292
- case nameof(ReactModuleAttribute.ModuleName):
293
- moduleName = namedArgument.Value.Value as string;
294
- break;
295
- case nameof(ReactModuleAttribute.EventEmitterName):
296
- eventEmitterName = namedArgument.Value.Value as string;
297
- break;
298
- default:
299
- var location = attr.ApplicationSyntaxReference?.SyntaxTree.GetLocation(attr.ApplicationSyntaxReference.Span);
300
- m_diagnostics.Add(Diagnostic.Create(DiagnosticDescriptors.UnexpectedPropertyInAttribute, location ?? Location.None, namedArgument.Key, attr.AttributeClass?.Name));
301
- module = null;
302
- return false;
303
- }
304
- }
316
+ foreach (var member in type.GetMembers())
317
+ {
318
+ if (member is IMethodSymbol method)
319
+ {
320
+ if (TryExtractMethod(method, out var asyncMethod))
321
+ {
322
+ module.Methods.Add(asyncMethod);
323
+ }
324
+ else if (TryExtractSyncMethod(method, out var syncMethod))
325
+ {
326
+ module.Methods.Add(syncMethod);
327
+ }
328
+ else if (TryExtractInitializer(method, out var initializer))
329
+ {
330
+ module.Initializers.Add(initializer);
331
+ }
332
+ else if (TryExtractConstantProvider(method, out var constantProvider))
333
+ {
334
+ module.ConstantProviders.Add(constantProvider);
335
+ }
336
+ else if (TryExtractGetConstants(method, out var getConstants))
337
+ {
338
+ module.GetConstants.Add(getConstants);
339
+ }
340
+ }
341
+ else if (member is IPropertySymbol || member is IFieldSymbol)
342
+ {
343
+ if (TryExtractConstant(member, out var constant))
344
+ {
345
+ module.Constants.Add(constant);
346
+ }
347
+ else if (TryExtractEvent(member, eventEmitterName, out var evnt))
348
+ {
349
+ module.Events.Add(evnt);
350
+ }
351
+ else if (TryExtractFunction(member, moduleName, out var function))
352
+ {
353
+ module.Functions.Add(function);
354
+ }
355
+ }
356
+ }
305
357
 
306
- moduleName ??= type.Name;
307
- eventEmitterName ??= ReactNativeNames.DefaultEventEmitterName;
358
+ return true;
359
+ }
308
360
 
309
- module = new ReactModule(type, moduleName, eventEmitterName);
361
+ module = null;
362
+ return false;
363
+ }
310
364
 
311
- foreach (var member in type.GetMembers())
312
- {
313
- if (member is IMethodSymbol method)
314
- {
315
- if (TryExtractMethod(method, out var asyncMethod))
316
- {
317
- module.Methods.Add(asyncMethod);
318
- }
319
- else if (TryExtractSyncMethod(method, out var syncMethod))
320
- {
321
- module.Methods.Add(syncMethod);
322
- }
323
- else if (TryExtractInitializer(method, out var initializer))
324
- {
325
- module.Initializers.Add(initializer);
326
- }
327
- else if (TryExtractConstantProvider(method, out var constantProvider))
328
- {
329
- module.ConstantProviders.Add(constantProvider);
330
- }
331
- }
332
- else if (member is IPropertySymbol || member is IFieldSymbol)
333
- {
334
- if (TryExtractConstant(member, out var constant))
335
- {
336
- module.Constants.Add(constant);
337
- }
338
- else if (TryExtractEvent(member, eventEmitterName, out var evnt))
339
- {
340
- module.Events.Add(evnt);
341
- }
342
- else if (TryExtractFunction(member, moduleName, out var function))
343
- {
344
- module.Functions.Add(function);
345
- }
346
- }
347
- }
365
+ private bool TryExtractMethod(IMethodSymbol method, [NotNullWhen(returnValue: true)] out ReactMethod? reactMethod)
366
+ {
367
+ return TryExtractMethodFromAttributeData(method, ReactTypes.ReactMethodAttribute, synchronous: false, out reactMethod);
368
+ }
348
369
 
349
- return true;
350
- }
370
+ private bool TryExtractSyncMethod(IMethodSymbol method, [NotNullWhen(returnValue: true)] out ReactMethod? reactMethod)
371
+ {
372
+ return TryExtractMethodFromAttributeData(method, ReactTypes.ReactSyncMethodAttribute, synchronous: true, out reactMethod);
373
+ }
351
374
 
352
- module = null;
353
- return false;
354
- }
375
+ private bool TryExtractMethodFromAttributeData(
376
+ IMethodSymbol method,
377
+ INamedTypeSymbol attributeType,
378
+ bool synchronous,
379
+ [NotNullWhen(returnValue: true)] out ReactMethod? reactMethod)
380
+ {
381
+ Contract.Requires(m_reactTypes != null);
355
382
 
356
- private bool TryExtractMethod(IMethodSymbol method, [NotNullWhen(returnValue: true)] out ReactMethod? reactMethod)
383
+ if (TryFindAttribute(method, attributeType, out var attr))
384
+ {
385
+ string? name = null;
386
+ if (attr.ConstructorArguments.Length > 0)
357
387
  {
358
- return TryExtractMethodFromAttributeData(method, ReactTypes.ReactMethodAttribute, synchronous: false, out reactMethod);
388
+ name = attr.ConstructorArguments[0].Value as string;
359
389
  }
360
390
 
361
- private bool TryExtractSyncMethod(IMethodSymbol method, [NotNullWhen(returnValue: true)] out ReactMethod? reactMethod)
391
+ foreach (var namedArgument in attr.NamedArguments)
362
392
  {
363
- return TryExtractMethodFromAttributeData(method, ReactTypes.ReactSyncMethodAttribute, synchronous: true, out reactMethod);
393
+ switch (namedArgument.Key)
394
+ {
395
+ case nameof(ReactMethodAttribute.MethodName):
396
+ name = namedArgument.Value.Value as string;
397
+ break;
398
+ default:
399
+ var location = attr.ApplicationSyntaxReference?.SyntaxTree.GetLocation(attr.ApplicationSyntaxReference.Span);
400
+ m_diagnostics.Add(Diagnostic.Create(
401
+ DiagnosticDescriptors.UnexpectedPropertyInAttribute,
402
+ location ?? Location.None,
403
+ namedArgument.Key,
404
+ attr.AttributeClass?.Name));
405
+ reactMethod = null;
406
+ return false;
407
+ }
364
408
  }
365
409
 
366
- private bool TryExtractMethodFromAttributeData(
367
- IMethodSymbol method,
368
- INamedTypeSymbol attributeType,
369
- bool synchronous,
370
- [NotNullWhen(returnValue: true)] out ReactMethod? reactMethod)
371
- {
372
- Contract.Requires(m_reactTypes != null);
410
+ ReactMethod.MethodReturnStyle? returnStyle = null;
373
411
 
374
- if (TryFindAttribute(method, attributeType, out var attr))
412
+ // Compute the effective parameters
413
+ var effectiveParameters = new List<IParameterSymbol>();
414
+ ITypeSymbol effectiveReturnType = m_reactTypes.SystemVoid;
415
+ int resolveParameterCount = 0;
416
+ int rejectParameterCount = 0;
417
+ var parameters = method.Parameters;
418
+ for (int i = 0; i < parameters.Length; ++i)
419
+ {
420
+ var param = parameters[i];
421
+ if (!synchronous) // IsSynchronous methods don't have support for the callbacks
422
+ {
423
+ if (i == parameters.Length - 1)
375
424
  {
376
- string? name = null;
377
- if (attr.ConstructorArguments.Length > 0)
378
- {
379
- name = attr.ConstructorArguments[0].Value as string;
380
- }
381
-
382
- foreach (var namedArgument in attr.NamedArguments)
383
- {
384
- switch (namedArgument.Key)
385
- {
386
- case nameof(ReactMethodAttribute.MethodName):
387
- name = namedArgument.Value.Value as string;
388
- break;
389
- default:
390
- var location = attr.ApplicationSyntaxReference?.SyntaxTree.GetLocation(attr.ApplicationSyntaxReference.Span);
391
- m_diagnostics.Add(Diagnostic.Create(
392
- DiagnosticDescriptors.UnexpectedPropertyInAttribute,
393
- location ?? Location.None,
394
- namedArgument.Key,
395
- attr.AttributeClass?.Name));
396
- reactMethod = null;
397
- return false;
398
- }
399
- }
400
-
401
- ReactMethod.MethodReturnStyle? returnStyle = null;
402
-
403
- // Compute the effective parameters
404
- var effectiveParameters = new List<IParameterSymbol>();
405
- ITypeSymbol effectiveReturnType = m_reactTypes.SystemVoid;
406
- var parameters = method.Parameters;
407
- for (int i = 0; i < parameters.Length; i++)
408
- {
409
- var param = parameters[i];
410
- bool skipReadingArg = false;
411
-
412
- if (!synchronous) // IsSynchronous methods don't have support for the callbacks
413
- {
414
- if (i == parameters.Length - 1)
415
- {
416
- if (IsPromiseType(parameters[i].Type, out var promiseGenericType))
417
- {
418
- returnStyle = ReactMethod.MethodReturnStyle.Promise;
419
- effectiveReturnType = promiseGenericType;
420
- skipReadingArg = true;
421
- }
422
-
423
- // if the last argument is a callback, assume this is the resolve or resolve function
424
- if (IsSingleArgCallback(parameters[i].Type, out var currentCallBackType))
425
- {
426
- ITypeSymbol? previousCallBackType = null;
427
- var isReject = parameters.Length >= 2 &&
428
- IsSingleArgCallback(parameters[i - 1].Type, out previousCallBackType);
429
- effectiveReturnType = isReject
430
- ? previousCallBackType!
431
- : currentCallBackType!;
432
- returnStyle = isReject
433
- ? ReactMethod.MethodReturnStyle.TwoCallbacks
434
- : ReactMethod.MethodReturnStyle.Callback;
435
-
436
- skipReadingArg = true;
437
- }
438
- }
439
- else if (i == parameters.Length - 2)
440
- {
441
- // if the last 2 argument are callbacks, assume this is the resolve function
442
- if (IsSingleArgCallback(parameters[i].Type, out var resolveCallBackType) &&
443
- IsSingleArgCallback(parameters[i + 1].Type, out _))
444
- {
445
- effectiveReturnType = resolveCallBackType;
446
- returnStyle = ReactMethod.MethodReturnStyle.TwoCallbacks;
447
- skipReadingArg = true;
448
- }
449
- }
450
- }
451
-
452
- if (!skipReadingArg)
453
- {
454
- effectiveParameters.Add(param);
455
- }
456
- }
457
-
458
- if (returnStyle == null)
459
- {
460
- if (IsTaskType(method.ReturnType, out var taskReturnType))
461
- {
462
- if (synchronous)
463
- {
464
- m_diagnostics.Add(Diagnostic.Create(
465
- DiagnosticDescriptors.MethodShouldNotReturnTaskWhenSynchronous,
466
- method.GetLocation() ?? Location.None,
467
- method.Name,
468
- attr.AttributeClass?.Name));
469
- reactMethod = null;
470
- return false;
471
- }
472
-
473
- effectiveReturnType = taskReturnType;
474
- returnStyle = ReactMethod.MethodReturnStyle.Task;
475
- }
476
- else if (method.ReturnsVoid)
477
- {
478
- returnStyle = ReactMethod.MethodReturnStyle.Void;
479
- }
480
- else
481
- {
482
- returnStyle = ReactMethod.MethodReturnStyle.ReturnValue;
483
- }
484
- }
485
-
486
- name ??= method.Name;
425
+ if (IsPromiseType(parameters[i].Type, out var promiseGenericType))
426
+ {
427
+ returnStyle = ReactMethod.MethodReturnStyle.Promise;
428
+ effectiveReturnType = promiseGenericType;
429
+ break;
430
+ }
487
431
 
488
- reactMethod = new ReactMethod(method, name, returnStyle.Value, effectiveReturnType, effectiveParameters, synchronous);
489
- return true;
432
+ // if the last argument is a callback, assume this is the resolve function
433
+ if (IsCallback(parameters[i].Type, out resolveParameterCount))
434
+ {
435
+ returnStyle = ReactMethod.MethodReturnStyle.Callback;
436
+ break;
437
+ }
490
438
  }
439
+ else if (i == parameters.Length - 2)
440
+ {
441
+ // if the last 2 argument are callbacks, assume these are the resolve and reject functions
442
+ if (IsCallback(parameters[i].Type, out resolveParameterCount) &&
443
+ IsCallback(parameters[i + 1].Type, out rejectParameterCount))
444
+ {
445
+ returnStyle = ReactMethod.MethodReturnStyle.TwoCallbacks;
446
+ break;
447
+ }
448
+ }
449
+ }
491
450
 
492
- reactMethod = null;
493
- return false;
451
+ effectiveParameters.Add(param);
494
452
  }
495
453
 
496
- private bool TryExtractConstantProvider(IMethodSymbol method, [NotNullWhen(returnValue: true)] out ReactConstantProvider? constantProvider)
454
+ if (returnStyle == null)
497
455
  {
498
- constantProvider = null;
499
- if (TryFindAttribute(method, ReactTypes.ReactConstantProviderAttribute, out _))
456
+ if (IsTaskType(method.ReturnType, out var taskReturnType))
457
+ {
458
+ if (synchronous)
500
459
  {
501
- if (!IsAccessible(method))
502
- {
503
- m_diagnostics.Add(
504
- Diagnostic.Create(DiagnosticDescriptors.ConstantProviderMustBePublicOrInternal,
505
- method.GetLocation(),
506
- method.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
507
- method.Name,
508
- method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
509
- method.DeclaredAccessibility
510
- ));
511
- return false;
512
- }
460
+ m_diagnostics.Add(Diagnostic.Create(
461
+ DiagnosticDescriptors.MethodShouldNotReturnTaskWhenSynchronous,
462
+ method.GetLocation() ?? Location.None,
463
+ method.Name,
464
+ attr.AttributeClass?.Name));
465
+ reactMethod = null;
466
+ return false;
467
+ }
513
468
 
514
- if (!method.ReturnsVoid)
515
- {
516
- m_diagnostics.Add(
517
- Diagnostic.Create(DiagnosticDescriptors.ConstantProviderMustReturnVoid,
518
- method.GetLocation(),
519
- method.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
520
- method.Name,
521
- method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)
522
- ));
523
- return false;
524
- }
469
+ effectiveReturnType = taskReturnType;
470
+ returnStyle = ReactMethod.MethodReturnStyle.Task;
471
+ }
472
+ else if (method.ReturnsVoid)
473
+ {
474
+ returnStyle = ReactMethod.MethodReturnStyle.Void;
475
+ }
476
+ else
477
+ {
478
+ returnStyle = ReactMethod.MethodReturnStyle.ReturnValue;
479
+ }
480
+ }
525
481
 
526
- if (method.Parameters.Length != 1 || !method.Parameters[0].Type.Equals(ReactTypes.ReactConstantProvider, SymbolEqualityComparer.Default))
527
- {
528
- m_diagnostics.Add(
529
- Diagnostic.Create(DiagnosticDescriptors.ConstantProviderMustHaveOneParameterOfTypeReactContext,
530
- method.GetLocation(),
531
- ReactTypes.ReactConstantProvider.ToDisplayParts(SymbolDisplayFormat.FullyQualifiedFormat),
532
- method.Parameters.Length.ToString(CultureInfo.InvariantCulture),
533
- method.Name,
534
- method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)
535
- ));
536
- return false;
537
- }
482
+ name ??= method.Name;
538
483
 
539
- constantProvider = new ReactConstantProvider(method);
540
- return true;
541
- }
484
+ reactMethod = new ReactMethod(method, name, returnStyle.Value, effectiveReturnType,
485
+ effectiveParameters, synchronous, resolveParameterCount, rejectParameterCount);
486
+ return true;
487
+ }
542
488
 
543
- constantProvider = null;
544
- return false;
489
+ reactMethod = null;
490
+ return false;
491
+ }
492
+
493
+ private bool TryExtractConstantProvider(IMethodSymbol method, [NotNullWhen(returnValue: true)] out ReactConstantProvider? constantProvider)
494
+ {
495
+ constantProvider = null;
496
+ if (TryFindAttribute(method, ReactTypes.ReactConstantProviderAttribute, out _))
497
+ {
498
+ if (!IsAccessible(method))
499
+ {
500
+ m_diagnostics.Add(
501
+ Diagnostic.Create(DiagnosticDescriptors.ConstantProviderMustBePublicOrInternal,
502
+ method.GetLocation(),
503
+ method.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
504
+ method.Name,
505
+ method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
506
+ method.DeclaredAccessibility
507
+ ));
508
+ return false;
545
509
  }
546
510
 
547
- private bool TryExtractInitializer(IMethodSymbol method, [NotNullWhen(returnValue: true)] out ReactInitializer? initializer)
511
+ if (!method.ReturnsVoid)
548
512
  {
549
- initializer = null;
550
- if (TryFindAttribute(method, ReactTypes.ReactInitializerAttribute, out _))
551
- {
552
- if (!IsAccessible(method))
553
- {
554
- m_diagnostics.Add(
555
- Diagnostic.Create(DiagnosticDescriptors.InitializersMustBePublicOrInternal,
556
- method.GetLocation(),
557
- method.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
558
- method.Name,
559
- method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
560
- method.DeclaredAccessibility
561
- ));
562
- return false;
563
- }
513
+ m_diagnostics.Add(
514
+ Diagnostic.Create(DiagnosticDescriptors.ConstantProviderMustReturnVoid,
515
+ method.GetLocation(),
516
+ method.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
517
+ method.Name,
518
+ method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)
519
+ ));
520
+ return false;
521
+ }
564
522
 
565
- if (!method.ReturnsVoid)
566
- {
567
- m_diagnostics.Add(
568
- Diagnostic.Create(DiagnosticDescriptors.InitializersMustReturnVoid,
569
- method.GetLocation(),
570
- method.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
571
- method.Name,
572
- method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)
573
- ));
574
- return false;
575
- }
523
+ if (method.Parameters.Length != 1 || !method.Parameters[0].Type.Equals(ReactTypes.ReactConstantProvider, SymbolEqualityComparer.Default))
524
+ {
525
+ m_diagnostics.Add(
526
+ Diagnostic.Create(DiagnosticDescriptors.ConstantProviderMustHaveOneParameterOfTypeReactContext,
527
+ method.GetLocation(),
528
+ ReactTypes.ReactConstantProvider.ToDisplayParts(SymbolDisplayFormat.FullyQualifiedFormat),
529
+ method.Parameters.Length.ToString(CultureInfo.InvariantCulture),
530
+ method.Name,
531
+ method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)
532
+ ));
533
+ return false;
534
+ }
576
535
 
577
- if (method.Parameters.Length != 1 || !method.Parameters[0].Type.Equals(ReactTypes.ReactContext, SymbolEqualityComparer.Default))
578
- {
579
- m_diagnostics.Add(
580
- Diagnostic.Create(DiagnosticDescriptors.InitializersMustHaveOneParameterOfTypeReactContext,
581
- method.GetLocation(),
582
- ReactTypes.ReactContext.ToDisplayParts(SymbolDisplayFormat.FullyQualifiedFormat),
583
- method.Parameters.Length.ToString(CultureInfo.InvariantCulture),
584
- method.Name,
585
- method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)
586
- ));
587
- return false;
588
- }
536
+ constantProvider = new ReactConstantProvider(method);
537
+ return true;
538
+ }
589
539
 
590
- initializer = new ReactInitializer(method);
591
- return true;
592
- }
540
+ constantProvider = null;
541
+ return false;
542
+ }
593
543
 
594
- return false;
544
+ private bool TryExtractGetConstants(IMethodSymbol method, [NotNullWhen(returnValue: true)] out ReactGetConstants? getConstants)
545
+ {
546
+ getConstants = null;
547
+ if (TryFindAttribute(method, ReactTypes.ReactGetConstantsAttribute, out _))
548
+ {
549
+ if (!IsAccessible(method))
550
+ {
551
+ m_diagnostics.Add(
552
+ Diagnostic.Create(DiagnosticDescriptors.GetConstantsMustBePublicOrInternal,
553
+ method.GetLocation(),
554
+ method.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
555
+ method.Name,
556
+ method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
557
+ method.DeclaredAccessibility
558
+ ));
559
+ return false;
595
560
  }
596
561
 
597
- private bool TryExtractConstant(ISymbol symbol, [NotNullWhen(returnValue: true)] out ReactConstant? constant)
562
+ if (method.ReturnsVoid)
598
563
  {
599
- if (TryFindAttribute(symbol, ReactTypes.ReactConstantAttribute, out var attr))
600
- {
601
- string? name = null;
602
- if (attr.ConstructorArguments.Length > 0)
603
- {
604
- name = attr.ConstructorArguments[0].Value as string;
605
- }
606
-
607
- foreach (var namedArgument in attr.NamedArguments)
608
- {
609
- switch (namedArgument.Key)
610
- {
611
- case nameof(ReactConstantAttribute.ConstantName):
612
- name = namedArgument.Value.Value as string;
613
- break;
614
- default:
615
- var location = attr.ApplicationSyntaxReference?.SyntaxTree.GetLocation(attr.ApplicationSyntaxReference.Span);
616
- m_diagnostics.Add(Diagnostic.Create(
617
- DiagnosticDescriptors.UnexpectedPropertyInAttribute,
618
- location ?? Location.None,
619
- namedArgument.Key,
620
- attr.AttributeClass?.Name));
621
- constant = null;
622
- return false;
623
- }
624
- }
564
+ m_diagnostics.Add(
565
+ Diagnostic.Create(DiagnosticDescriptors.GetConstantsMustNotReturnVoid,
566
+ method.GetLocation(),
567
+ method.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
568
+ method.Name,
569
+ method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)
570
+ ));
571
+ return false;
572
+ }
625
573
 
626
- name ??= symbol.Name;
574
+ if (method.ReturnType.SpecialType != SpecialType.None
575
+ || (method.ReturnType.TypeKind != TypeKind.Struct && method.ReturnType.TypeKind != TypeKind.Class))
576
+ {
577
+ m_diagnostics.Add(
578
+ Diagnostic.Create(DiagnosticDescriptors.GetConstantsMustReturnStructOrClass,
579
+ method.GetLocation(),
580
+ method.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
581
+ method.Name,
582
+ method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)
583
+ ));
584
+ return false;
585
+ }
627
586
 
628
- if (!IsAccessible(symbol))
629
- {
630
- m_diagnostics.Add(
631
- Diagnostic.Create(DiagnosticDescriptors.ConstantsMustBePublicOrInternal,
632
- symbol.GetLocation(),
633
- symbol.Name,
634
- symbol.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
635
- symbol.DeclaredAccessibility
636
- ));
637
- constant = null;
638
- return false;
639
- }
587
+ if (method.Parameters.Length != 0)
588
+ {
589
+ m_diagnostics.Add(
590
+ Diagnostic.Create(DiagnosticDescriptors.GetConstantsMustNotHaveParameters,
591
+ method.GetLocation(),
592
+ method.Parameters.Length.ToString(CultureInfo.InvariantCulture),
593
+ method.Name,
594
+ method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)
595
+ ));
596
+ return false;
597
+ }
640
598
 
641
- if (symbol is IPropertySymbol property && (property.GetMethod == null || !IsAccessible(property.GetMethod)))
642
- {
643
- m_diagnostics.Add(
644
- Diagnostic.Create(DiagnosticDescriptors.ConstantsMustBeGettable,
645
- symbol.GetLocation(),
646
- property.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
647
- symbol.ContainingType.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat)));
648
- constant = null;
649
- return false;
650
- }
599
+ getConstants = new ReactGetConstants(method);
600
+ }
651
601
 
652
- constant = new ReactConstant(symbol, name);
653
- return true;
654
- }
602
+ return getConstants != null;
603
+ }
655
604
 
656
- constant = null;
657
- return false;
605
+ private bool TryExtractInitializer(IMethodSymbol method, [NotNullWhen(returnValue: true)] out ReactInitializer? initializer)
606
+ {
607
+ initializer = null;
608
+ if (TryFindAttribute(method, ReactTypes.ReactInitializerAttribute, out _))
609
+ {
610
+ if (!IsAccessible(method))
611
+ {
612
+ m_diagnostics.Add(
613
+ Diagnostic.Create(DiagnosticDescriptors.InitializersMustBePublicOrInternal,
614
+ method.GetLocation(),
615
+ method.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
616
+ method.Name,
617
+ method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
618
+ method.DeclaredAccessibility
619
+ ));
620
+ return false;
658
621
  }
659
622
 
660
- private bool TryExtractEvent(ISymbol symbol, string defaultEventEmitterName, [NotNullWhen(returnValue: true)] out ReactEvent? reactEvent)
623
+ if (!method.ReturnsVoid)
661
624
  {
662
- if (TryExtractCallback(symbol, defaultEventEmitterName, ReactTypes.ReactEventAttribute, out var callbackParameters, out var name, out var declaredModuleName))
663
- {
664
- reactEvent = new ReactEvent(symbol, callbackParameters, name, declaredModuleName);
665
- return true;
666
- }
667
-
668
- reactEvent = null;
669
- return false;
625
+ m_diagnostics.Add(
626
+ Diagnostic.Create(DiagnosticDescriptors.InitializersMustReturnVoid,
627
+ method.GetLocation(),
628
+ method.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
629
+ method.Name,
630
+ method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)
631
+ ));
632
+ return false;
670
633
  }
671
634
 
672
- private bool TryExtractFunction(ISymbol symbol, string moduleName, [NotNullWhen(returnValue: true)] out ReactFunction? function)
635
+ if (method.Parameters.Length != 1 || !method.Parameters[0].Type.Equals(ReactTypes.ReactContext, SymbolEqualityComparer.Default))
673
636
  {
674
- if (TryExtractCallback(symbol, moduleName, ReactTypes.ReactFunctionAttribute, out var callbackParameters, out var name, out var declaredModuleName))
675
- {
676
- function = new ReactFunction(symbol, callbackParameters, name, declaredModuleName);
677
- return true;
678
- }
679
-
680
- function = null;
681
- return false;
637
+ m_diagnostics.Add(
638
+ Diagnostic.Create(DiagnosticDescriptors.InitializersMustHaveOneParameterOfTypeReactContext,
639
+ method.GetLocation(),
640
+ ReactTypes.ReactContext.ToDisplayParts(SymbolDisplayFormat.FullyQualifiedFormat),
641
+ method.Parameters.Length.ToString(CultureInfo.InvariantCulture),
642
+ method.Name,
643
+ method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat)
644
+ ));
645
+ return false;
682
646
  }
683
647
 
684
- private bool TryExtractCallback(
685
- ISymbol symbol,
686
- string defaultCallbackContextName,
687
- INamedTypeSymbol attribute,
688
- out ImmutableArray<IParameterSymbol> callbackParameters,
689
- [NotNullWhen(returnValue: true)] out string? name,
690
- [NotNullWhen(returnValue: true)] out string? callbackContextName)
648
+ initializer = new ReactInitializer(method);
649
+ return true;
650
+ }
651
+
652
+ return false;
653
+ }
654
+
655
+ private bool TryExtractConstant(ISymbol symbol, [NotNullWhen(returnValue: true)] out ReactConstant? constant)
656
+ {
657
+ if (TryFindAttribute(symbol, ReactTypes.ReactConstantAttribute, out var attr))
658
+ {
659
+ string? name = null;
660
+ if (attr.ConstructorArguments.Length > 0)
691
661
  {
692
- callbackParameters = default;
693
- name = null;
694
- callbackContextName = null;
662
+ name = attr.ConstructorArguments[0].Value as string;
663
+ }
695
664
 
696
- if (TryFindAttribute(symbol, attribute, out var attr))
697
- {
698
- name = null;
699
- callbackContextName = null;
700
- if (attr.ConstructorArguments.Length > 0)
701
- {
702
- name = attr.ConstructorArguments[0].Value as string;
703
- }
665
+ foreach (var namedArgument in attr.NamedArguments)
666
+ {
667
+ switch (namedArgument.Key)
668
+ {
669
+ case nameof(ReactConstantAttribute.ConstantName):
670
+ name = namedArgument.Value.Value as string;
671
+ break;
672
+ default:
673
+ var location = attr.ApplicationSyntaxReference?.SyntaxTree.GetLocation(attr.ApplicationSyntaxReference.Span);
674
+ m_diagnostics.Add(Diagnostic.Create(
675
+ DiagnosticDescriptors.UnexpectedPropertyInAttribute,
676
+ location ?? Location.None,
677
+ namedArgument.Key,
678
+ attr.AttributeClass?.Name));
679
+ constant = null;
680
+ return false;
681
+ }
682
+ }
704
683
 
705
- foreach (var namedArgument in attr.NamedArguments)
706
- {
707
- switch (namedArgument.Key)
708
- {
709
- case nameof(ReactFunctionAttribute.FunctionName):
710
- case nameof(ReactEventAttribute.EventName):
711
- name = namedArgument.Value.Value as string;
712
- break;
713
- case nameof(ReactFunctionAttribute.ModuleName):
714
- case nameof(ReactEventAttribute.EventEmitterName):
715
- callbackContextName = namedArgument.Value.Value as string;
716
- break;
717
- default:
718
- var location = attr.ApplicationSyntaxReference?.SyntaxTree.GetLocation(attr.ApplicationSyntaxReference.Span);
719
- m_diagnostics.Add(Diagnostic.Create(
720
- DiagnosticDescriptors.UnexpectedPropertyInAttribute,
721
- location ?? Location.None,
722
- namedArgument.Key,
723
- attr.AttributeClass?.Name));
724
- return false;
725
- }
726
- }
684
+ name ??= symbol.Name;
727
685
 
728
- ITypeSymbol? type = null;
729
- switch (symbol)
730
- {
731
- case IPropertySymbol property:
732
- type = property.Type;
733
-
734
- if (property.SetMethod == null || !IsAccessible(property.SetMethod))
735
- {
736
- m_diagnostics.Add(
737
- Diagnostic.Create(DiagnosticDescriptors.CallbacksMustBeSettable,
738
- symbol.GetLocation(),
739
- property.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
740
- symbol.ContainingType.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat)));
741
- return false;
742
- }
743
-
744
- break;
745
- case IFieldSymbol field:
746
- type = field.Type;
747
- break;
748
- default:
749
- throw Contract.AssertFailure("Unsupported symbol");
750
- }
686
+ if (!IsAccessible(symbol))
687
+ {
688
+ m_diagnostics.Add(
689
+ Diagnostic.Create(DiagnosticDescriptors.ConstantsMustBePublicOrInternal,
690
+ symbol.GetLocation(),
691
+ symbol.Name,
692
+ symbol.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
693
+ symbol.DeclaredAccessibility
694
+ ));
695
+ constant = null;
696
+ return false;
697
+ }
751
698
 
752
- if (!IsAccessible(symbol))
753
- {
754
- m_diagnostics.Add(
755
- Diagnostic.Create(DiagnosticDescriptors.CallbackMustBePublicOrInternal,
756
- symbol.GetLocation(),
757
- symbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
758
- symbol.ContainingType.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat),
759
- symbol.DeclaredAccessibility));
760
- return false;
761
- }
699
+ if (symbol is IPropertySymbol property && (property.GetMethod == null || !IsAccessible(property.GetMethod)))
700
+ {
701
+ m_diagnostics.Add(
702
+ Diagnostic.Create(DiagnosticDescriptors.ConstantsMustBeGettable,
703
+ symbol.GetLocation(),
704
+ property.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
705
+ symbol.ContainingType.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat)));
706
+ constant = null;
707
+ return false;
708
+ }
762
709
 
763
- if (!(type is INamedTypeSymbol namedType) || namedType.DelegateInvokeMethod == null)
764
- {
765
- m_diagnostics.Add(
766
- Diagnostic.Create(DiagnosticDescriptors.CallbackTypeMustBeDelegate,
767
- symbol.GetLocation(),
768
- type.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
769
- symbol.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat)));
770
- return false;
771
- }
710
+ constant = new ReactConstant(symbol, name);
711
+ return true;
712
+ }
772
713
 
773
- if (!namedType.DelegateInvokeMethod.ReturnsVoid)
774
- {
775
- var location = symbol.Locations.FirstOrDefault();
776
- m_diagnostics.Add(Diagnostic.Create(DiagnosticDescriptors.CallbackDelegateMustReturnVoid, location,
777
- symbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
778
- symbol.ContainingType.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat),
779
- namedType.DelegateInvokeMethod.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat)));
780
- return false;
781
- }
714
+ constant = null;
715
+ return false;
716
+ }
782
717
 
783
- name ??= symbol.Name;
784
- callbackContextName ??= defaultCallbackContextName;
785
- callbackParameters = namedType.DelegateInvokeMethod.Parameters;
718
+ private bool TryExtractEvent(ISymbol symbol, string defaultEventEmitterName, [NotNullWhen(returnValue: true)] out ReactEvent? reactEvent)
719
+ {
720
+ if (TryExtractCallback(symbol, defaultEventEmitterName, ReactTypes.ReactEventAttribute, out var callbackParameters, out var name, out var declaredModuleName))
721
+ {
722
+ reactEvent = new ReactEvent(symbol, callbackParameters, name, declaredModuleName);
723
+ return true;
724
+ }
725
+
726
+ reactEvent = null;
727
+ return false;
728
+ }
786
729
 
787
- return true;
788
- }
730
+ private bool TryExtractFunction(ISymbol symbol, string moduleName, [NotNullWhen(returnValue: true)] out ReactFunction? function)
731
+ {
732
+ if (TryExtractCallback(symbol, moduleName, ReactTypes.ReactFunctionAttribute, out var callbackParameters, out var name, out var declaredModuleName))
733
+ {
734
+ function = new ReactFunction(symbol, callbackParameters, name, declaredModuleName);
735
+ return true;
736
+ }
737
+
738
+ function = null;
739
+ return false;
740
+ }
789
741
 
790
- return false;
742
+ private bool TryExtractCallback(
743
+ ISymbol symbol,
744
+ string defaultCallbackContextName,
745
+ INamedTypeSymbol attribute,
746
+ out ImmutableArray<IParameterSymbol> callbackParameters,
747
+ [NotNullWhen(returnValue: true)] out string? name,
748
+ [NotNullWhen(returnValue: true)] out string? callbackContextName)
749
+ {
750
+ callbackParameters = default;
751
+ name = null;
752
+ callbackContextName = null;
753
+
754
+ if (TryFindAttribute(symbol, attribute, out var attr))
755
+ {
756
+ name = null;
757
+ callbackContextName = null;
758
+ if (attr.ConstructorArguments.Length > 0)
759
+ {
760
+ name = attr.ConstructorArguments[0].Value as string;
791
761
  }
792
762
 
793
- private static void CollectTypes(INamespaceSymbol namespaceSymbol, ICollection<INamedTypeSymbol> result)
763
+ foreach (var namedArgument in attr.NamedArguments)
794
764
  {
795
- foreach (var type in namespaceSymbol.GetTypeMembers())
796
- {
797
- CollectTypes(type, result);
798
- }
799
-
800
- foreach (var childNs in namespaceSymbol.GetNamespaceMembers())
801
- {
802
- CollectTypes(childNs, result);
803
- }
765
+ switch (namedArgument.Key)
766
+ {
767
+ case nameof(ReactFunctionAttribute.FunctionName):
768
+ case nameof(ReactEventAttribute.EventName):
769
+ name = namedArgument.Value.Value as string;
770
+ break;
771
+ case nameof(ReactFunctionAttribute.ModuleName):
772
+ case nameof(ReactEventAttribute.EventEmitterName):
773
+ callbackContextName = namedArgument.Value.Value as string;
774
+ break;
775
+ default:
776
+ var location = attr.ApplicationSyntaxReference?.SyntaxTree.GetLocation(attr.ApplicationSyntaxReference.Span);
777
+ m_diagnostics.Add(Diagnostic.Create(
778
+ DiagnosticDescriptors.UnexpectedPropertyInAttribute,
779
+ location ?? Location.None,
780
+ namedArgument.Key,
781
+ attr.AttributeClass?.Name));
782
+ return false;
783
+ }
804
784
  }
805
785
 
806
- private static void CollectTypes(INamedTypeSymbol type, ICollection<INamedTypeSymbol> result)
786
+ ITypeSymbol? type = null;
787
+ switch (symbol)
807
788
  {
808
- result.Add(type);
789
+ case IPropertySymbol property:
790
+ type = property.Type;
809
791
 
810
- foreach (var nested in type.GetTypeMembers())
792
+ if (property.SetMethod == null || !IsAccessible(property.SetMethod))
811
793
  {
812
- CollectTypes(nested, result);
794
+ m_diagnostics.Add(
795
+ Diagnostic.Create(DiagnosticDescriptors.CallbacksMustBeSettable,
796
+ symbol.GetLocation(),
797
+ property.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
798
+ symbol.ContainingType.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat)));
799
+ return false;
813
800
  }
801
+
802
+ break;
803
+ case IFieldSymbol field:
804
+ type = field.Type;
805
+ break;
806
+ default:
807
+ throw Contract.AssertFailure("Unsupported symbol");
814
808
  }
815
809
 
816
- private bool TryFindAttribute(ISymbol symbol, INamedTypeSymbol attributeType, out AttributeData attr)
810
+ if (!IsAccessible(symbol))
817
811
  {
818
- attr = symbol.GetAttributes().FirstOrDefault(potentialMatch => potentialMatch.AttributeClass != null && potentialMatch.AttributeClass.Equals(attributeType, SymbolEqualityComparer.Default));
819
- return attr != null;
812
+ m_diagnostics.Add(
813
+ Diagnostic.Create(DiagnosticDescriptors.CallbackMustBePublicOrInternal,
814
+ symbol.GetLocation(),
815
+ symbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
816
+ symbol.ContainingType.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat),
817
+ symbol.DeclaredAccessibility));
818
+ return false;
820
819
  }
821
820
 
822
- private bool IsAccessible(ISymbol symbol)
821
+ if (!(type is INamedTypeSymbol namedType) || namedType.DelegateInvokeMethod == null)
823
822
  {
824
- return symbol.DeclaredAccessibility == Accessibility.Public ||
825
- symbol.DeclaredAccessibility == Accessibility.Internal;
823
+ m_diagnostics.Add(
824
+ Diagnostic.Create(DiagnosticDescriptors.CallbackTypeMustBeDelegate,
825
+ symbol.GetLocation(),
826
+ type.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
827
+ symbol.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat)));
828
+ return false;
826
829
  }
827
830
 
828
- private bool IsPromiseType(ITypeSymbol type, [NotNullWhen(returnValue: true)] out ITypeSymbol? typeParameter)
831
+ if (!namedType.DelegateInvokeMethod.ReturnsVoid)
829
832
  {
830
- Contract.Requires(m_reactTypes != null);
833
+ var location = symbol.Locations.FirstOrDefault();
834
+ m_diagnostics.Add(Diagnostic.Create(DiagnosticDescriptors.CallbackDelegateMustReturnVoid, location,
835
+ symbol.ToDisplayString(SymbolDisplayFormat.CSharpErrorMessageFormat),
836
+ symbol.ContainingType.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat),
837
+ namedType.DelegateInvokeMethod.ReturnType.ToDisplayString(SymbolDisplayFormat.CSharpShortErrorMessageFormat)));
838
+ return false;
839
+ }
831
840
 
832
- if (type != null &&
833
- type is INamedTypeSymbol namedType &&
834
- namedType.IsGenericType &&
835
- (
836
- namedType.ConstructUnboundGenericType().Equals(
837
- m_reactTypes.IReactPromise.ConstructUnboundGenericType(), SymbolEqualityComparer.Default) ||
838
- namedType.ConstructUnboundGenericType().Equals(
839
- m_reactTypes.ReactPromise.ConstructUnboundGenericType(), SymbolEqualityComparer.Default)
840
- ))
841
- {
842
- typeParameter = namedType.TypeArguments[0];
843
- return true;
844
- }
841
+ name ??= symbol.Name;
842
+ callbackContextName ??= defaultCallbackContextName;
843
+ callbackParameters = namedType.DelegateInvokeMethod.Parameters;
845
844
 
846
- typeParameter = null;
847
- return false;
848
- }
845
+ return true;
846
+ }
849
847
 
850
- private bool IsTaskType(ITypeSymbol type, [NotNullWhen(returnValue: true)] out ITypeSymbol? taskReturnType)
851
- {
852
- Contract.Requires(m_reactTypes != null);
848
+ return false;
849
+ }
853
850
 
854
- if (type.Equals(m_reactTypes.Task, SymbolEqualityComparer.Default))
855
- {
856
- taskReturnType = m_reactTypes.SystemVoid;
857
- return true;
858
- }
851
+ private static void CollectTypes(INamespaceSymbol namespaceSymbol, ICollection<INamedTypeSymbol> result)
852
+ {
853
+ foreach (var type in namespaceSymbol.GetTypeMembers())
854
+ {
855
+ CollectTypes(type, result);
856
+ }
857
+
858
+ foreach (var childNs in namespaceSymbol.GetNamespaceMembers())
859
+ {
860
+ CollectTypes(childNs, result);
861
+ }
862
+ }
859
863
 
860
- if (type != null &&
861
- type is INamedTypeSymbol namedType &&
862
- namedType.IsGenericType &&
863
- namedType.ConstructUnboundGenericType()
864
- .Equals(m_reactTypes.TaskOfT, SymbolEqualityComparer.Default))
865
- {
866
- taskReturnType = namedType.TypeArguments[0];
867
- return true;
868
- }
864
+ private static void CollectTypes(INamedTypeSymbol type, ICollection<INamedTypeSymbol> result)
865
+ {
866
+ result.Add(type);
869
867
 
870
- taskReturnType = null;
871
- return false;
872
- }
868
+ foreach (var nested in type.GetTypeMembers())
869
+ {
870
+ CollectTypes(nested, result);
871
+ }
872
+ }
873
873
 
874
- private static bool IsSingleArgCallback(ITypeSymbol type, [NotNullWhen(returnValue: true)] out ITypeSymbol? parameterType)
875
- {
876
- if (type is INamedTypeSymbol namedType &&
877
- namedType.DelegateInvokeMethod != null &&
878
- namedType.DelegateInvokeMethod.Parameters.Length == 1
879
- )
880
- {
881
- parameterType = namedType.DelegateInvokeMethod.Parameters[0].Type;
882
- return true;
883
- }
874
+ private bool TryFindAttribute(ISymbol symbol, INamedTypeSymbol attributeType, [NotNullWhen(returnValue: true)] out AttributeData? attr)
875
+ {
876
+ attr = symbol.GetAttributes().FirstOrDefault(potentialMatch => potentialMatch.AttributeClass != null && potentialMatch.AttributeClass.Equals(attributeType, SymbolEqualityComparer.Default));
877
+ return attr != null;
878
+ }
879
+
880
+ private bool IsAccessible(ISymbol symbol)
881
+ {
882
+ return symbol.DeclaredAccessibility == Accessibility.Public ||
883
+ symbol.DeclaredAccessibility == Accessibility.Internal;
884
+ }
884
885
 
885
- parameterType = null;
886
- return false;
886
+ private bool IsPromiseType(ITypeSymbol type, [NotNullWhen(returnValue: true)] out ITypeSymbol? typeParameter)
887
+ {
888
+ Contract.Requires(m_reactTypes != null);
889
+
890
+ if (type != null && type is INamedTypeSymbol namedType)
891
+ {
892
+ if (namedType.IsGenericType)
893
+ {
894
+ if (namedType.ConstructUnboundGenericType().Equals(
895
+ m_reactTypes.IReactPromise.ConstructUnboundGenericType(), SymbolEqualityComparer.Default)
896
+ || namedType.ConstructUnboundGenericType().Equals(
897
+ m_reactTypes.ReactPromise.ConstructUnboundGenericType(), SymbolEqualityComparer.Default))
898
+ {
899
+ typeParameter = namedType.TypeArguments[0];
900
+ return true;
901
+ }
902
+ }
903
+ else if (SymbolEqualityComparer.Default.Equals(namedType, m_reactTypes.ReactPromiseOfVoid))
904
+ {
905
+ typeParameter = m_reactTypes.SystemVoid;
906
+ return true;
887
907
  }
908
+ }
909
+
910
+ typeParameter = null;
911
+ return false;
912
+ }
913
+
914
+ private bool IsTaskType(ITypeSymbol type, [NotNullWhen(returnValue: true)] out ITypeSymbol? taskReturnType)
915
+ {
916
+ Contract.Requires(m_reactTypes != null);
917
+
918
+ if (type.Equals(m_reactTypes.Task, SymbolEqualityComparer.Default))
919
+ {
920
+ taskReturnType = m_reactTypes.SystemVoid;
921
+ return true;
922
+ }
923
+
924
+ if (type != null &&
925
+ type is INamedTypeSymbol namedType &&
926
+ namedType.IsGenericType &&
927
+ namedType.ConstructUnboundGenericType()
928
+ .Equals(m_reactTypes.TaskOfT, SymbolEqualityComparer.Default))
929
+ {
930
+ taskReturnType = namedType.TypeArguments[0];
931
+ return true;
932
+ }
933
+
934
+ taskReturnType = null;
935
+ return false;
936
+ }
937
+
938
+ private static bool IsCallback(ITypeSymbol type, out int parameterCount)
939
+ {
940
+ if (type is INamedTypeSymbol namedType &&
941
+ namedType.DelegateInvokeMethod != null)
942
+ {
943
+ parameterCount = namedType.DelegateInvokeMethod.Parameters.Length;
944
+ return true;
945
+ }
946
+
947
+ parameterCount = 0;
948
+ return false;
888
949
  }
950
+ }
889
951
  }