react-native-windows 0.76.3 → 0.77.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 (369) hide show
  1. package/.flowconfig +5 -1
  2. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +1 -0
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +13 -0
  4. package/Libraries/Animated/AnimatedEvent.js +1 -1
  5. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  6. package/Libraries/Animated/NativeAnimatedAllowlist.js +20 -9
  7. package/Libraries/Animated/NativeAnimatedAllowlist.windows.js +122 -0
  8. package/Libraries/Animated/animations/Animation.js +60 -25
  9. package/Libraries/Animated/animations/DecayAnimation.js +26 -38
  10. package/Libraries/Animated/animations/SpringAnimation.js +33 -39
  11. package/Libraries/Animated/animations/TimingAnimation.js +34 -42
  12. package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
  13. package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
  14. package/Libraries/Animated/createAnimatedComponent.js +60 -33
  15. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  16. package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
  17. package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
  18. package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
  19. package/Libraries/Animated/nodes/AnimatedProps.js +96 -46
  20. package/Libraries/Animated/nodes/AnimatedProps.windows.js +281 -0
  21. package/Libraries/Animated/nodes/AnimatedStyle.js +108 -39
  22. package/Libraries/Animated/nodes/AnimatedStyle.windows.js +251 -0
  23. package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
  24. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  25. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
  26. package/Libraries/Animated/useAnimatedProps.js +41 -35
  27. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
  28. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
  29. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +82 -5
  30. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
  31. package/Libraries/Components/Button.js +9 -4
  32. package/Libraries/Components/Button.windows.js +19 -5
  33. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  34. package/Libraries/Components/Glyph/Glyph.js +2 -1
  35. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
  36. package/Libraries/Components/Popup/PopupNativeComponent.js +0 -1
  37. package/Libraries/Components/Pressable/Pressable.js +4 -4
  38. package/Libraries/Components/Pressable/Pressable.windows.js +10 -4
  39. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
  40. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
  41. package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
  42. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
  43. package/Libraries/Components/ScrollView/ScrollView.js +49 -88
  44. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  45. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
  46. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
  47. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +0 -5
  48. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
  49. package/Libraries/Components/Switch/Switch.js +8 -6
  50. package/Libraries/Components/Switch/Switch.windows.js +8 -6
  51. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  52. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
  53. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
  54. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
  55. package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
  56. package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
  57. package/Libraries/Components/TextInput/TextInput.js +37 -13
  58. package/Libraries/Components/TextInput/TextInput.windows.js +47 -16
  59. package/Libraries/Components/TextInput/TextInputState.js +11 -13
  60. package/Libraries/Components/TextInput/TextInputState.windows.js +11 -13
  61. package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
  62. package/Libraries/Components/Touchable/Position.js +7 -2
  63. package/Libraries/Components/Touchable/Touchable.js +4 -0
  64. package/Libraries/Components/Touchable/Touchable.windows.js +4 -0
  65. package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
  66. package/Libraries/Components/Touchable/TouchableBounce.windows.js +227 -0
  67. package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
  68. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +5 -5
  69. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +371 -0
  70. package/Libraries/Components/Touchable/TouchableOpacity.js +6 -5
  71. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
  72. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
  73. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -3
  74. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
  75. package/Libraries/Components/View/View.js +4 -4
  76. package/Libraries/Components/View/View.windows.js +12 -5
  77. package/Libraries/Components/View/ViewAccessibility.d.ts +10 -0
  78. package/Libraries/Components/View/ViewAccessibility.windows.js +2 -0
  79. package/Libraries/Components/View/ViewNativeComponent.js +6 -98
  80. package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
  81. package/Libraries/Components/View/ViewPropTypes.js +0 -3
  82. package/Libraries/Components/View/ViewPropTypes.windows.js +2 -3
  83. package/Libraries/Core/ExceptionsManager.js +50 -29
  84. package/Libraries/Core/ReactNativeVersion.js +3 -3
  85. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
  86. package/Libraries/Core/setUpBatchedBridge.js +1 -10
  87. package/Libraries/Core/setUpDeveloperTools.js +1 -5
  88. package/Libraries/Core/setUpErrorHandling.js +20 -18
  89. package/Libraries/Core/setUpReactDevTools.js +107 -8
  90. package/Libraries/Core/setUpSegmentFetcher.js +1 -0
  91. package/Libraries/Core/setUpTimers.js +21 -18
  92. package/Libraries/Debugging/DebuggingOverlay.js +4 -5
  93. package/Libraries/Image/AssetSourceResolver.js +12 -1
  94. package/Libraries/Image/AssetSourceResolver.windows.js +12 -1
  95. package/Libraries/Image/Image.android.js +1 -5
  96. package/Libraries/Image/Image.d.ts +20 -29
  97. package/Libraries/Image/Image.ios.js +0 -2
  98. package/Libraries/Image/Image.windows.js +5 -1
  99. package/Libraries/Image/ImageBackground.js +2 -5
  100. package/Libraries/Image/ImageProps.js +7 -6
  101. package/Libraries/Image/ImageResizeMode.d.ts +8 -1
  102. package/Libraries/Image/ImageResizeMode.js +4 -1
  103. package/Libraries/Image/ImageSource.d.ts +0 -2
  104. package/Libraries/Image/ImageSource.js +0 -2
  105. package/Libraries/Image/ImageTypes.flow.js +11 -9
  106. package/Libraries/Image/ImageUtils.js +6 -3
  107. package/Libraries/Image/ImageViewNativeComponent.js +5 -3
  108. package/Libraries/Inspector/Inspector.js +1 -0
  109. package/Libraries/Inspector/NetworkOverlay.js +4 -0
  110. package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
  111. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
  112. package/Libraries/Interaction/InteractionManager.js +6 -1
  113. package/Libraries/Interaction/InteractionManagerStub.js +176 -0
  114. package/Libraries/Interaction/TouchHistoryMath.js +22 -19
  115. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  116. package/Libraries/Lists/FlatList.d.ts +1 -2
  117. package/Libraries/Lists/FlatList.js +2 -2
  118. package/Libraries/Lists/SectionListModern.js +7 -7
  119. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
  120. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  121. package/Libraries/LogBox/Data/LogBoxData.js +3 -3
  122. package/Libraries/LogBox/LogBox.js +18 -5
  123. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  124. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  125. package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
  126. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
  127. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -1
  128. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  129. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  130. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
  131. package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
  132. package/Libraries/Modal/Modal.d.ts +12 -0
  133. package/Libraries/Modal/Modal.js +31 -4
  134. package/Libraries/Modal/Modal.windows.js +18 -0
  135. package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
  136. package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
  137. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -11
  138. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
  139. package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
  140. package/Libraries/Network/XHRInterceptor.js +63 -14
  141. package/Libraries/Network/XMLHttpRequest.js +26 -1
  142. package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
  143. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
  144. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  145. package/Libraries/Pressability/HoverState.js +2 -0
  146. package/Libraries/Pressability/Pressability.js +2 -3
  147. package/Libraries/Pressability/Pressability.windows.js +2 -3
  148. package/Libraries/Pressability/usePressability.js +4 -1
  149. package/Libraries/ReactNative/AppContainer.js +1 -1
  150. package/Libraries/ReactNative/AppRegistry.js +1 -11
  151. package/Libraries/ReactNative/DisplayMode.js +1 -1
  152. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
  153. package/Libraries/ReactNative/RendererImplementation.js +18 -17
  154. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
  155. package/Libraries/ReactNative/renderApplication.js +9 -8
  156. package/Libraries/ReactNative/requireNativeComponent.js +5 -2
  157. package/Libraries/Renderer/shims/ReactFabric.js +3 -3
  158. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  159. package/Libraries/Renderer/shims/ReactNative.js +3 -3
  160. package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
  161. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
  162. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  163. package/Libraries/StyleSheet/StyleSheet.js +7 -1
  164. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
  165. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
  166. package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
  167. package/Libraries/StyleSheet/processTransform.js +3 -34
  168. package/Libraries/Text/Text.js +248 -249
  169. package/Libraries/Text/Text.windows.js +298 -292
  170. package/Libraries/Text/TextNativeComponent.js +0 -1
  171. package/Libraries/Text/TextProps.windows.js +2 -0
  172. package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
  173. package/Libraries/Types/CoreEventTypes.d.ts +3 -10
  174. package/Libraries/Types/CoreEventTypes.js +4 -6
  175. package/Libraries/Types/CoreEventTypes.windows.js +4 -6
  176. package/Libraries/Utilities/Appearance.js +3 -1
  177. package/Libraries/Utilities/BackHandler.android.js +6 -18
  178. package/Libraries/Utilities/BackHandler.d.ts +0 -4
  179. package/Libraries/Utilities/BackHandler.ios.js +0 -7
  180. package/Libraries/Utilities/BackHandler.windows.js +6 -18
  181. package/Libraries/Utilities/HMRClient.js +3 -4
  182. package/Libraries/Utilities/Platform.flow.js +2 -2
  183. package/Libraries/Utilities/Platform.flow.windows.js +3 -2
  184. package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
  185. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  186. package/Libraries/Utilities/useMergeRefs.js +26 -7
  187. package/Libraries/WebSocket/WebSocketEvent.js +4 -1
  188. package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
  189. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
  190. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  191. package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +9 -8
  192. package/Microsoft.ReactNative/AsynchronousEventBeat.h +5 -5
  193. package/Microsoft.ReactNative/FBReactNativeSpec/FBReactNativeSpecJSI.h +5 -0
  194. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +2 -2
  195. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +197 -18
  196. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +19 -1
  197. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +13 -0
  198. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +1 -1
  199. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +6 -8
  200. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +2 -2
  201. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +3 -2
  202. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +1 -1
  203. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +24 -0
  204. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +5 -0
  205. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -12
  206. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +4 -4
  207. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +4 -8
  208. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +16 -15
  209. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +15 -0
  210. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +9 -0
  211. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +20 -1
  212. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -6
  213. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  214. package/Microsoft.ReactNative/SynchronousEventBeat.cpp +14 -4
  215. package/Microsoft.ReactNative/SynchronousEventBeat.h +4 -2
  216. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.cpp +78 -0
  217. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.h +51 -0
  218. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.inc +48 -0
  219. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.cpp +41 -0
  220. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.h +127 -0
  221. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.inc +125 -0
  222. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_posix.cpp +16 -0
  223. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_win.cpp +23 -0
  224. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +834 -0
  225. package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +117 -0
  226. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +366 -0
  227. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +560 -0
  228. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +1611 -0
  229. package/Microsoft.ReactNative.Cxx/JSI/threadsafe.h +79 -0
  230. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +7 -11
  231. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -1
  232. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +2878 -0
  233. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.h +36 -0
  234. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +64 -0
  235. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +22 -0
  236. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModule.cpp +63 -63
  237. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +165 -0
  238. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.cpp +105 -0
  239. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModuleUtils.h +57 -58
  240. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +42 -0
  241. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +151 -0
  242. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Base.h +177 -154
  243. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +25 -0
  244. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +21 -0
  245. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +67 -0
  246. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +90 -0
  247. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Convert.h +170 -172
  248. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +51 -0
  249. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/EventEmitter.h +134 -136
  250. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Function.h +283 -283
  251. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.cpp +63 -0
  252. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +61 -0
  253. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +93 -0
  254. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +104 -0
  255. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +107 -0
  256. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/flags.h +22 -0
  257. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +72 -0
  258. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +553 -0
  259. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +167 -0
  260. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +186 -0
  261. package/Microsoft.ReactNative.Cxx/stubs/glog/logging.h +82 -0
  262. package/PropertySheets/Bundle.Common.targets +1 -1
  263. package/PropertySheets/Bundle.props +3 -0
  264. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  265. package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  266. package/PropertySheets/OutputMSBuildProperties.targets +3 -1
  267. package/ReactCommon/ReactCommon.vcxproj +5 -0
  268. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +2 -3
  269. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +61 -0
  270. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +26 -23
  271. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +150 -0
  272. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +252 -0
  273. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +795 -0
  274. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +59 -0
  275. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +188 -39
  276. package/Scripts/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  277. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +97 -62
  278. package/Shared/InspectorPackagerConnection.cpp +3 -6
  279. package/Shared/InspectorPackagerConnection.h +2 -2
  280. package/Shared/InstanceManager.h +1 -1
  281. package/Shared/OInstance.h +1 -1
  282. package/Shared/Shared.vcxitems +17 -2
  283. package/Shared/Shared.vcxitems.filters +3 -1
  284. package/Shared/TurboModuleManager.cpp +29 -4
  285. package/codegen/NativeAccessibilityInfoSpec.g.h +27 -9
  286. package/codegen/NativeAccessibilityManagerSpec.g.h +19 -13
  287. package/codegen/NativeActionSheetManagerSpec.g.h +4 -0
  288. package/codegen/NativeExceptionsManagerSpec.g.h +1 -7
  289. package/codegen/NativeIntersectionObserverSpec.g.h +2 -0
  290. package/codegen/NativePerformanceSpec.g.h +127 -3
  291. package/codegen/NativeReactDevToolsRuntimeSettingsModuleSpec.g.h +67 -0
  292. package/codegen/NativeReactDevToolsSettingsManagerSpec.g.h +41 -0
  293. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +125 -137
  294. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  295. package/codegen/react/components/rnwcore/Props.cpp +1 -0
  296. package/codegen/react/components/rnwcore/Props.h +1 -0
  297. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  298. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -11
  299. package/codegen/react/components/rnwcore/States.h +0 -12
  300. package/codegen/rnwcoreJSI-generated.cpp +219 -186
  301. package/codegen/rnwcoreJSI.h +942 -511
  302. package/index.js +10 -3
  303. package/index.windows.js +10 -3
  304. package/jest/setup.js +36 -1
  305. package/just-task.js +15 -0
  306. package/package.json +22 -22
  307. package/src/private/animated/NativeAnimatedHelper.js +18 -16
  308. package/src/private/animated/useAnimatedPropsMemo.js +348 -0
  309. package/src/private/animated/useAnimatedPropsMemo.windows.js +356 -0
  310. package/src/private/components/HScrollViewNativeComponents.js +1 -27
  311. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
  312. package/src/private/components/VScrollViewNativeComponents.js +2 -25
  313. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  314. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  315. package/src/private/debugging/ReactDevToolsSettingsManager.windows.js +20 -0
  316. package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
  317. package/src/private/devmenu/DevMenu.d.ts +20 -0
  318. package/src/private/devmenu/DevMenu.js +31 -0
  319. package/src/private/featureflags/ReactNativeFeatureFlags.js +95 -86
  320. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
  321. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -19
  322. package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
  323. package/src/private/setup/setUpDOM.js +14 -6
  324. package/src/private/setup/setUpMutationObserver.js +5 -0
  325. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
  326. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
  327. package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
  328. package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
  329. package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
  330. package/src/private/specs/modules/NativeAppearance.js +4 -10
  331. package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
  332. package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
  333. package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
  334. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
  335. package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
  336. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
  337. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
  338. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
  339. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  340. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
  341. package/src/private/webapis/performance/EventTiming.js +13 -8
  342. package/src/private/webapis/performance/Performance.js +66 -73
  343. package/src/private/webapis/performance/PerformanceEntry.js +2 -5
  344. package/src/private/webapis/performance/PerformanceObserver.js +65 -164
  345. package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
  346. package/src/private/webapis/performance/UserTiming.js +11 -7
  347. package/src/private/webapis/performance/Utilities.js +18 -0
  348. package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
  349. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
  350. package/templates/cpp-lib/template.config.js +13 -7
  351. package/templates/templateUtils.js +10 -0
  352. package/types/index.d.ts +1 -1
  353. package/types/public/ReactNativeTypes.d.ts +4 -8
  354. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
  355. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
  356. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
  357. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +0 -35
  358. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
  359. package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
  360. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +0 -101
  361. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +0 -569
  362. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +0 -53
  363. package/codegen/NativePerformanceObserverSpec.g.h +0 -131
  364. package/src/private/components/useSyncOnScroll.js +0 -48
  365. package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
  366. package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
  367. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
  368. package/types/experimental.d.ts +0 -59
  369. /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
@@ -0,0 +1,151 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <react/bridging/Base.h>
11
+
12
+ #include <array>
13
+ #include <deque>
14
+ #include <initializer_list>
15
+ #include <list>
16
+ #include <set>
17
+ #include <tuple>
18
+ #include <utility>
19
+ #include <vector>
20
+
21
+ namespace facebook::react {
22
+
23
+ namespace array_detail {
24
+
25
+ template <typename T, size_t N>
26
+ struct BridgingStatic {
27
+ static jsi::Array toJs(
28
+ jsi::Runtime& rt,
29
+ const T& array,
30
+ const std::shared_ptr<CallInvoker>& jsInvoker) {
31
+ return toJs(rt, array, jsInvoker, std::make_index_sequence<N>{});
32
+ }
33
+
34
+ private:
35
+ template <size_t... Index>
36
+ static jsi::Array toJs(
37
+ facebook::jsi::Runtime& rt,
38
+ const T& array,
39
+ const std::shared_ptr<CallInvoker>& jsInvoker,
40
+ std::index_sequence<Index...>) {
41
+ return jsi::Array::createWithElements(
42
+ rt, bridging::toJs(rt, std::get<Index>(array), jsInvoker)...);
43
+ }
44
+ };
45
+
46
+ template <typename T>
47
+ struct BridgingDynamic {
48
+ static jsi::Array toJs(
49
+ jsi::Runtime& rt,
50
+ const T& list,
51
+ const std::shared_ptr<CallInvoker>& jsInvoker) {
52
+ jsi::Array result(rt, list.size());
53
+ size_t index = 0;
54
+
55
+ for (const auto& item : list) {
56
+ result.setValueAtIndex(rt, index++, bridging::toJs(rt, item, jsInvoker));
57
+ }
58
+
59
+ return result;
60
+ }
61
+ };
62
+
63
+ } // namespace array_detail
64
+
65
+ template <typename T, size_t N>
66
+ struct Bridging<std::array<T, N>>
67
+ : array_detail::BridgingStatic<std::array<T, N>, N> {
68
+ static std::array<T, N> fromJs(
69
+ facebook::jsi::Runtime& rt,
70
+ const jsi::Array& array,
71
+ const std::shared_ptr<CallInvoker>& jsInvoker) {
72
+ size_t length = array.length(rt);
73
+
74
+ std::array<T, N> result;
75
+ for (size_t i = 0; i < length; i++) {
76
+ result[i] =
77
+ bridging::fromJs<T>(rt, array.getValueAtIndex(rt, i), jsInvoker);
78
+ }
79
+
80
+ return result;
81
+ }
82
+ };
83
+
84
+ template <typename T1, typename T2>
85
+ struct Bridging<std::pair<T1, T2>>
86
+ : array_detail::BridgingStatic<std::pair<T1, T2>, 2> {
87
+ static std::pair<T1, T1> fromJs(
88
+ facebook::jsi::Runtime& rt,
89
+ const jsi::Array& array,
90
+ const std::shared_ptr<CallInvoker>& jsInvoker) {
91
+ return std::make_pair(
92
+ bridging::fromJs<T1>(rt, array.getValueAtIndex(rt, 0), jsInvoker),
93
+ bridging::fromJs<T2>(rt, array.getValueAtIndex(rt, 1), jsInvoker));
94
+ }
95
+ };
96
+
97
+ template <typename... Types>
98
+ struct Bridging<std::tuple<Types...>>
99
+ : array_detail::BridgingStatic<std::tuple<Types...>, sizeof...(Types)> {};
100
+
101
+ template <typename T>
102
+ struct Bridging<std::deque<T>> : array_detail::BridgingDynamic<std::deque<T>> {
103
+ };
104
+
105
+ template <typename T>
106
+ struct Bridging<std::initializer_list<T>>
107
+ : array_detail::BridgingDynamic<std::initializer_list<T>> {};
108
+
109
+ template <typename T>
110
+ struct Bridging<std::list<T>> : array_detail::BridgingDynamic<std::list<T>> {};
111
+
112
+ template <typename T>
113
+ struct Bridging<std::vector<T>>
114
+ : array_detail::BridgingDynamic<std::vector<T>> {
115
+ static std::vector<T> fromJs(
116
+ facebook::jsi::Runtime& rt,
117
+ const jsi::Array& array,
118
+ const std::shared_ptr<CallInvoker>& jsInvoker) {
119
+ size_t length = array.length(rt);
120
+
121
+ std::vector<T> vector;
122
+ vector.reserve(length);
123
+
124
+ for (size_t i = 0; i < length; i++) {
125
+ vector.push_back(
126
+ bridging::fromJs<T>(rt, array.getValueAtIndex(rt, i), jsInvoker));
127
+ }
128
+
129
+ return vector;
130
+ }
131
+ };
132
+
133
+ template <typename T>
134
+ struct Bridging<std::set<T>> : array_detail::BridgingDynamic<std::set<T>> {
135
+ static std::set<T> fromJs(
136
+ facebook::jsi::Runtime& rt,
137
+ const jsi::Array& array,
138
+ const std::shared_ptr<CallInvoker>& jsInvoker) {
139
+ size_t length = array.length(rt);
140
+
141
+ std::set<T> set;
142
+ for (size_t i = 0; i < length; i++) {
143
+ set.insert(
144
+ bridging::fromJs<T>(rt, array.getValueAtIndex(rt, i), jsInvoker));
145
+ }
146
+
147
+ return set;
148
+ }
149
+ };
150
+
151
+ } // namespace facebook::react
@@ -1,154 +1,177 @@
1
- /*
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- // [Windows #13391]
9
-
10
- #pragma once
11
-
12
- #include <jsi/jsi.h>
13
- #include <Convert.h>
14
-
15
- #include <cstdint>
16
- #include <memory>
17
- #include <type_traits>
18
-
19
- namespace facebook::react {
20
-
21
- class CallInvoker;
22
-
23
- template <typename T, typename = void>
24
- struct Bridging;
25
-
26
- template <>
27
- struct Bridging<void> {
28
- // Highly generic code may result in "casting" to void.
29
- static void fromJs(jsi::Runtime&, const jsi::Value&) {}
30
- };
31
-
32
- namespace bridging {
33
- namespace detail {
34
-
35
- template <typename F>
36
- struct function_wrapper;
37
-
38
- template <typename C, typename R, typename... Args>
39
- struct function_wrapper<R (C::*)(Args...)> {
40
- using type = std::function<R(Args...)>;
41
- };
42
-
43
- template <typename C, typename R, typename... Args>
44
- struct function_wrapper<R (C::*)(Args...) const> {
45
- using type = std::function<R(Args...)>;
46
- };
47
-
48
- template <typename T, typename = void>
49
- struct bridging_wrapper {
50
- using type = remove_cvref_t<T>;
51
- };
52
-
53
- // Convert lambda types to move-only function types since we can't specialize
54
- // Bridging templates for arbitrary lambdas.
55
- template <typename T>
56
- struct bridging_wrapper<
57
- T,
58
- std::void_t<decltype(&remove_cvref_t<T>::operator())>>
59
- : function_wrapper<decltype(&remove_cvref_t<T>::operator())> {};
60
-
61
- } // namespace detail
62
-
63
- template <typename T>
64
- using bridging_t = typename detail::bridging_wrapper<T>::type;
65
-
66
- template <typename R, typename T, std::enable_if_t<is_jsi_v<T>, int> = 0>
67
- auto fromJs(jsi::Runtime& rt, T&& value, const std::shared_ptr<CallInvoker>&)
68
- -> decltype(static_cast<R>(convert(rt, std::forward<T>(value)))) {
69
- return convert(rt, std::forward<T>(value));
70
- }
71
-
72
- template <typename R, typename T>
73
- auto fromJs(jsi::Runtime& rt, T&& value, const std::shared_ptr<CallInvoker>&)
74
- -> decltype(Bridging<remove_cvref_t<R>>::fromJs(
75
- rt,
76
- convert(rt, std::forward<T>(value)))) {
77
- return Bridging<remove_cvref_t<R>>::fromJs(
78
- rt, convert(rt, std::forward<T>(value)));
79
- }
80
-
81
- template <typename R, typename T>
82
- auto fromJs(
83
- jsi::Runtime& rt,
84
- T&& value,
85
- const std::shared_ptr<CallInvoker>& jsInvoker)
86
- -> decltype(Bridging<remove_cvref_t<R>>::fromJs(
87
- rt,
88
- convert(rt, std::forward<T>(value)),
89
- jsInvoker)) {
90
- return Bridging<remove_cvref_t<R>>::fromJs(
91
- rt, convert(rt, std::forward<T>(value)), jsInvoker);
92
- }
93
-
94
- template <typename T, std::enable_if_t<is_jsi_v<T>, int> = 0>
95
- auto toJs(
96
- jsi::Runtime& rt,
97
- T&& value,
98
- const std::shared_ptr<CallInvoker>& = nullptr) -> remove_cvref_t<T> {
99
- return convert(rt, std::forward<T>(value));
100
- }
101
-
102
- template <typename T>
103
- auto toJs(
104
- jsi::Runtime& rt,
105
- T&& value,
106
- const std::shared_ptr<CallInvoker>& = nullptr)
107
- -> decltype(Bridging<bridging_t<T>>::toJs(rt, std::forward<T>(value))) {
108
- return Bridging<bridging_t<T>>::toJs(rt, std::forward<T>(value));
109
- }
110
-
111
- template <typename T>
112
- auto toJs(
113
- jsi::Runtime& rt,
114
- T&& value,
115
- const std::shared_ptr<CallInvoker>& jsInvoker)
116
- -> decltype(Bridging<bridging_t<T>>::toJs(
117
- rt,
118
- std::forward<T>(value),
119
- jsInvoker)) {
120
- return Bridging<bridging_t<T>>::toJs(rt, std::forward<T>(value), jsInvoker);
121
- }
122
-
123
- template <typename, typename = jsi::Value, typename = void>
124
- inline constexpr bool supportsFromJs = false;
125
-
126
- template <typename T, typename Arg = jsi::Value>
127
- inline constexpr bool supportsFromJs<
128
- T,
129
- Arg,
130
- std::void_t<decltype(fromJs<T>(
131
- std::declval<jsi::Runtime&>(),
132
- std::declval<Arg>(),
133
- nullptr))>> = true;
134
-
135
- template <typename, typename = jsi::Value, typename = void>
136
- inline constexpr bool supportsToJs = false;
137
-
138
- template <typename T, typename Ret = jsi::Value>
139
- inline constexpr bool supportsToJs<
140
- T,
141
- Ret,
142
- std::void_t<decltype(toJs(
143
- std::declval<jsi::Runtime&>(),
144
- std::declval<T>(),
145
- nullptr))>> =
146
- std::is_convertible_v<
147
- decltype(toJs(
148
- std::declval<jsi::Runtime&>(),
149
- std::declval<T>(),
150
- nullptr)),
151
- Ret>;
152
-
153
- } // namespace bridging
154
- } // namespace facebook::react
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <jsi/jsi.h>
11
+ #include <react/bridging/Convert.h>
12
+
13
+ #include <cstdint>
14
+ #include <memory>
15
+ #include <type_traits>
16
+
17
+ namespace facebook::react {
18
+
19
+ class CallInvoker;
20
+
21
+ template <typename T, typename = void>
22
+ struct Bridging;
23
+
24
+ template <>
25
+ struct Bridging<void> {
26
+ // Highly generic code may result in "casting" to void.
27
+ static void fromJs(jsi::Runtime&, const jsi::Value&) {}
28
+ };
29
+
30
+ namespace bridging {
31
+ namespace detail {
32
+
33
+ template <typename F>
34
+ struct function_wrapper;
35
+
36
+ template <typename C, typename R, typename... Args>
37
+ struct function_wrapper<R (C::*)(Args...)> {
38
+ using type = std::function<R(Args...)>;
39
+ };
40
+
41
+ template <typename C, typename R, typename... Args>
42
+ struct function_wrapper<R (C::*)(Args...) const> {
43
+ using type = std::function<R(Args...)>;
44
+ };
45
+
46
+ template <typename T, typename = void>
47
+ struct bridging_wrapper {
48
+ using type = remove_cvref_t<T>;
49
+ };
50
+
51
+ // Convert lambda types to move-only function types since we can't specialize
52
+ // Bridging templates for arbitrary lambdas.
53
+ template <typename T>
54
+ struct bridging_wrapper<
55
+ T,
56
+ std::void_t<decltype(&remove_cvref_t<T>::operator())>>
57
+ : function_wrapper<decltype(&remove_cvref_t<T>::operator())> {};
58
+
59
+ } // namespace detail
60
+
61
+ template <typename T>
62
+ using bridging_t = typename detail::bridging_wrapper<T>::type;
63
+
64
+ template <typename R, typename T, std::enable_if_t<is_jsi_v<T>, int> = 0>
65
+ auto fromJs(jsi::Runtime& rt, T&& value, const std::shared_ptr<CallInvoker>&)
66
+ -> decltype(static_cast<R>(
67
+ std::move(convert(rt, std::forward<T>(value))))) {
68
+ return static_cast<R>(std::move(convert(rt, std::forward<T>(value))));
69
+ }
70
+
71
+ template <typename R, typename T>
72
+ auto fromJs(jsi::Runtime& rt, T&& value, const std::shared_ptr<CallInvoker>&)
73
+ -> decltype(Bridging<remove_cvref_t<R>>::fromJs(
74
+ rt,
75
+ convert(rt, std::forward<T>(value)))) {
76
+ return Bridging<remove_cvref_t<R>>::fromJs(
77
+ rt, convert(rt, std::forward<T>(value)));
78
+ }
79
+
80
+ template <typename R, typename T>
81
+ auto fromJs(
82
+ jsi::Runtime& rt,
83
+ T&& value,
84
+ const std::shared_ptr<CallInvoker>& jsInvoker)
85
+ -> decltype(Bridging<remove_cvref_t<R>>::fromJs(
86
+ rt,
87
+ convert(rt, std::forward<T>(value)),
88
+ jsInvoker)) {
89
+ return Bridging<remove_cvref_t<R>>::fromJs(
90
+ rt, convert(rt, std::forward<T>(value)), jsInvoker);
91
+ }
92
+
93
+ template <typename T, std::enable_if_t<is_jsi_v<T>, int> = 0>
94
+ auto toJs(
95
+ jsi::Runtime& rt,
96
+ T&& value,
97
+ const std::shared_ptr<CallInvoker>& = nullptr) -> remove_cvref_t<T> {
98
+ return convert(rt, std::forward<T>(value));
99
+ }
100
+
101
+ template <typename T>
102
+ auto toJs(
103
+ jsi::Runtime& rt,
104
+ T&& value,
105
+ const std::shared_ptr<CallInvoker>& = nullptr)
106
+ -> decltype(Bridging<bridging_t<T>>::toJs(rt, std::forward<T>(value))) {
107
+ return Bridging<bridging_t<T>>::toJs(rt, std::forward<T>(value));
108
+ }
109
+
110
+ template <typename T>
111
+ auto toJs(
112
+ jsi::Runtime& rt,
113
+ T&& value,
114
+ const std::shared_ptr<CallInvoker>& jsInvoker)
115
+ -> decltype(Bridging<bridging_t<T>>::toJs(
116
+ rt,
117
+ std::forward<T>(value),
118
+ jsInvoker)) {
119
+ return Bridging<bridging_t<T>>::toJs(rt, std::forward<T>(value), jsInvoker);
120
+ }
121
+
122
+ template <typename, typename = jsi::Value, typename = void>
123
+ inline constexpr bool supportsFromJs = false;
124
+
125
+ template <typename T, typename Arg>
126
+ inline constexpr bool supportsFromJs<
127
+ T,
128
+ Arg,
129
+ std::void_t<decltype(fromJs<T>(
130
+ std::declval<jsi::Runtime&>(),
131
+ std::declval<Arg>(),
132
+ nullptr))>> = true;
133
+
134
+ template <typename T>
135
+ inline constexpr bool supportsFromJs<
136
+ T,
137
+ jsi::Value,
138
+ std::void_t<decltype(fromJs<T>(
139
+ std::declval<jsi::Runtime&>(),
140
+ std::declval<jsi::Value>(),
141
+ nullptr))>> = true;
142
+
143
+ template <typename, typename = jsi::Value, typename = void>
144
+ inline constexpr bool supportsToJs = false;
145
+
146
+ template <typename T, typename Ret>
147
+ inline constexpr bool supportsToJs<
148
+ T,
149
+ Ret,
150
+ std::void_t<decltype(toJs(
151
+ std::declval<jsi::Runtime&>(),
152
+ std::declval<T>(),
153
+ nullptr))>> =
154
+ std::is_convertible_v<
155
+ decltype(toJs(
156
+ std::declval<jsi::Runtime&>(),
157
+ std::declval<T>(),
158
+ nullptr)),
159
+ Ret>;
160
+
161
+ template <typename T>
162
+ inline constexpr bool supportsToJs<
163
+ T,
164
+ jsi::Value,
165
+ std::void_t<decltype(toJs(
166
+ std::declval<jsi::Runtime&>(),
167
+ std::declval<T>(),
168
+ nullptr))>> =
169
+ std::is_convertible_v<
170
+ decltype(toJs(
171
+ std::declval<jsi::Runtime&>(),
172
+ std::declval<T>(),
173
+ nullptr)),
174
+ jsi::Value>;
175
+
176
+ } // namespace bridging
177
+ } // namespace facebook::react
@@ -0,0 +1,25 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <react/bridging/Base.h>
11
+
12
+ namespace facebook::react {
13
+
14
+ template <>
15
+ struct Bridging<bool> {
16
+ static bool fromJs(jsi::Runtime&, const jsi::Value& value) {
17
+ return value.asBool();
18
+ }
19
+
20
+ static jsi::Value toJs(jsi::Runtime&, bool value) {
21
+ return value;
22
+ }
23
+ };
24
+
25
+ } // namespace facebook::react
@@ -0,0 +1,21 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <react/bridging/AString.h>
11
+ #include <react/bridging/Array.h>
12
+ #include <react/bridging/Bool.h>
13
+ #include <react/bridging/Class.h>
14
+ // #include <react/bridging/Dynamic.h> // Line causes Error C1083 Cannot open include file: 'double-conversion/double-conversion.h' #11644
15
+ #include <react/bridging/Error.h>
16
+ #include <react/bridging/EventEmitter.h> // [Windows #13391]
17
+ #include <react/bridging/Function.h>
18
+ #include <react/bridging/Number.h>
19
+ #include <react/bridging/Object.h>
20
+ #include <react/bridging/Promise.h>
21
+ #include <react/bridging/Value.h> // [Windows #13391]
@@ -0,0 +1,67 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <jsi/jsi.h>
11
+
12
+ #include <memory>
13
+
14
+ #include <react/bridging/LongLivedObject.h>
15
+
16
+ namespace facebook::react {
17
+
18
+ class CallInvoker;
19
+
20
+ // Helper for passing jsi::Function arg to other methods.
21
+ class CallbackWrapper : public LongLivedObject {
22
+ private:
23
+ CallbackWrapper(
24
+ jsi::Function&& callback,
25
+ jsi::Runtime& runtime,
26
+ std::shared_ptr<CallInvoker> jsInvoker)
27
+ : LongLivedObject(runtime),
28
+ callback_(std::move(callback)),
29
+ jsInvoker_(std::move(jsInvoker)) {}
30
+
31
+ jsi::Function callback_;
32
+ std::shared_ptr<CallInvoker> jsInvoker_;
33
+
34
+ public:
35
+ static std::weak_ptr<CallbackWrapper> createWeak(
36
+ jsi::Function&& callback,
37
+ jsi::Runtime& runtime,
38
+ std::shared_ptr<CallInvoker> jsInvoker) {
39
+ auto wrapper = std::shared_ptr<CallbackWrapper>(new CallbackWrapper(
40
+ std::move(callback), runtime, std::move(jsInvoker)));
41
+ LongLivedObjectCollection::get(runtime).add(wrapper);
42
+ return wrapper;
43
+ }
44
+
45
+ // Delete the enclosed jsi::Function
46
+ void destroy() {
47
+ allowRelease();
48
+ }
49
+
50
+ jsi::Function& callback() noexcept {
51
+ return callback_;
52
+ }
53
+
54
+ jsi::Runtime& runtime() noexcept {
55
+ return runtime_;
56
+ }
57
+
58
+ CallInvoker& jsInvoker() noexcept {
59
+ return *(jsInvoker_);
60
+ }
61
+
62
+ std::shared_ptr<CallInvoker> jsInvokerPtr() noexcept {
63
+ return jsInvoker_;
64
+ }
65
+ };
66
+
67
+ } // namespace facebook::react