react-native-windows 0.76.3 → 0.77.0-preview.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) 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/animations/Animation.js +60 -25
  8. package/Libraries/Animated/animations/DecayAnimation.js +26 -38
  9. package/Libraries/Animated/animations/SpringAnimation.js +33 -39
  10. package/Libraries/Animated/animations/TimingAnimation.js +34 -42
  11. package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
  12. package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
  13. package/Libraries/Animated/createAnimatedComponent.js +60 -33
  14. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  15. package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
  16. package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
  17. package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
  18. package/Libraries/Animated/nodes/AnimatedProps.js +104 -46
  19. package/Libraries/Animated/nodes/AnimatedStyle.js +116 -39
  20. package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
  21. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  22. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
  23. package/Libraries/Animated/useAnimatedProps.js +41 -35
  24. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
  25. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
  26. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +82 -5
  27. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
  28. package/Libraries/Components/Button.js +9 -4
  29. package/Libraries/Components/Button.windows.js +19 -5
  30. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  31. package/Libraries/Components/Glyph/Glyph.js +2 -1
  32. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
  33. package/Libraries/Components/Popup/PopupNativeComponent.js +0 -1
  34. package/Libraries/Components/Pressable/Pressable.js +4 -4
  35. package/Libraries/Components/Pressable/Pressable.windows.js +10 -4
  36. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
  37. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
  38. package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
  39. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
  40. package/Libraries/Components/ScrollView/ScrollView.js +49 -88
  41. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  42. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
  43. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
  44. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +0 -5
  45. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
  46. package/Libraries/Components/Switch/Switch.js +8 -6
  47. package/Libraries/Components/Switch/Switch.windows.js +8 -6
  48. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  49. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
  50. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
  51. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
  52. package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
  53. package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
  54. package/Libraries/Components/TextInput/TextInput.js +37 -13
  55. package/Libraries/Components/TextInput/TextInput.windows.js +47 -16
  56. package/Libraries/Components/TextInput/TextInputState.js +11 -13
  57. package/Libraries/Components/TextInput/TextInputState.windows.js +11 -13
  58. package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
  59. package/Libraries/Components/Touchable/Position.js +7 -2
  60. package/Libraries/Components/Touchable/Touchable.js +4 -0
  61. package/Libraries/Components/Touchable/Touchable.windows.js +4 -0
  62. package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
  63. package/Libraries/Components/Touchable/TouchableBounce.windows.js +227 -0
  64. package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
  65. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +5 -5
  66. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +371 -0
  67. package/Libraries/Components/Touchable/TouchableOpacity.js +6 -5
  68. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
  69. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
  70. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -3
  71. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
  72. package/Libraries/Components/View/View.js +4 -4
  73. package/Libraries/Components/View/View.windows.js +12 -5
  74. package/Libraries/Components/View/ViewAccessibility.d.ts +10 -0
  75. package/Libraries/Components/View/ViewAccessibility.windows.js +2 -0
  76. package/Libraries/Components/View/ViewNativeComponent.js +6 -98
  77. package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
  78. package/Libraries/Components/View/ViewPropTypes.js +0 -3
  79. package/Libraries/Components/View/ViewPropTypes.windows.js +2 -3
  80. package/Libraries/Core/ExceptionsManager.js +50 -29
  81. package/Libraries/Core/ReactNativeVersion.js +3 -3
  82. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
  83. package/Libraries/Core/setUpBatchedBridge.js +1 -10
  84. package/Libraries/Core/setUpDeveloperTools.js +1 -5
  85. package/Libraries/Core/setUpErrorHandling.js +20 -18
  86. package/Libraries/Core/setUpReactDevTools.js +107 -8
  87. package/Libraries/Core/setUpSegmentFetcher.js +1 -0
  88. package/Libraries/Core/setUpTimers.js +21 -18
  89. package/Libraries/Debugging/DebuggingOverlay.js +4 -5
  90. package/Libraries/Image/AssetSourceResolver.js +12 -1
  91. package/Libraries/Image/AssetSourceResolver.windows.js +12 -1
  92. package/Libraries/Image/Image.android.js +1 -5
  93. package/Libraries/Image/Image.d.ts +20 -29
  94. package/Libraries/Image/Image.ios.js +0 -2
  95. package/Libraries/Image/Image.windows.js +5 -1
  96. package/Libraries/Image/ImageBackground.js +2 -5
  97. package/Libraries/Image/ImageProps.js +7 -6
  98. package/Libraries/Image/ImageResizeMode.d.ts +8 -1
  99. package/Libraries/Image/ImageResizeMode.js +4 -1
  100. package/Libraries/Image/ImageSource.d.ts +0 -2
  101. package/Libraries/Image/ImageSource.js +0 -2
  102. package/Libraries/Image/ImageTypes.flow.js +11 -9
  103. package/Libraries/Image/ImageUtils.js +6 -3
  104. package/Libraries/Image/ImageViewNativeComponent.js +5 -3
  105. package/Libraries/Inspector/Inspector.js +1 -0
  106. package/Libraries/Inspector/NetworkOverlay.js +4 -0
  107. package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
  108. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
  109. package/Libraries/Interaction/InteractionManager.js +6 -1
  110. package/Libraries/Interaction/InteractionManagerStub.js +176 -0
  111. package/Libraries/Interaction/TouchHistoryMath.js +22 -19
  112. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  113. package/Libraries/Lists/FlatList.d.ts +1 -2
  114. package/Libraries/Lists/FlatList.js +2 -2
  115. package/Libraries/Lists/SectionListModern.js +7 -7
  116. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
  117. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  118. package/Libraries/LogBox/Data/LogBoxData.js +3 -3
  119. package/Libraries/LogBox/LogBox.js +18 -5
  120. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  121. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  122. package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
  123. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
  124. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -1
  125. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  126. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  127. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
  128. package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
  129. package/Libraries/Modal/Modal.d.ts +12 -0
  130. package/Libraries/Modal/Modal.js +31 -4
  131. package/Libraries/Modal/Modal.windows.js +18 -0
  132. package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
  133. package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
  134. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -11
  135. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
  136. package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
  137. package/Libraries/Network/FormData.js +11 -3
  138. package/Libraries/Network/XHRInterceptor.js +63 -14
  139. package/Libraries/Network/XMLHttpRequest.js +26 -1
  140. package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
  141. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
  142. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  143. package/Libraries/Pressability/HoverState.js +2 -0
  144. package/Libraries/Pressability/Pressability.js +2 -3
  145. package/Libraries/Pressability/Pressability.windows.js +2 -3
  146. package/Libraries/Pressability/usePressability.js +4 -1
  147. package/Libraries/ReactNative/AppContainer.js +1 -1
  148. package/Libraries/ReactNative/AppRegistry.js +1 -11
  149. package/Libraries/ReactNative/DisplayMode.js +1 -1
  150. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
  151. package/Libraries/ReactNative/RendererImplementation.js +18 -17
  152. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
  153. package/Libraries/ReactNative/renderApplication.js +9 -8
  154. package/Libraries/ReactNative/requireNativeComponent.js +5 -2
  155. package/Libraries/Renderer/shims/ReactFabric.js +3 -3
  156. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  157. package/Libraries/Renderer/shims/ReactNative.js +3 -3
  158. package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
  159. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
  160. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  161. package/Libraries/StyleSheet/StyleSheet.js +7 -1
  162. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
  163. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
  164. package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
  165. package/Libraries/StyleSheet/processTransform.js +3 -34
  166. package/Libraries/Text/Text.js +248 -249
  167. package/Libraries/Text/Text.windows.js +298 -292
  168. package/Libraries/Text/TextNativeComponent.js +0 -1
  169. package/Libraries/Text/TextProps.windows.js +2 -0
  170. package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
  171. package/Libraries/Types/CoreEventTypes.d.ts +3 -10
  172. package/Libraries/Types/CoreEventTypes.js +4 -6
  173. package/Libraries/Types/CoreEventTypes.windows.js +4 -6
  174. package/Libraries/Utilities/Appearance.js +3 -1
  175. package/Libraries/Utilities/BackHandler.android.js +6 -18
  176. package/Libraries/Utilities/BackHandler.d.ts +0 -4
  177. package/Libraries/Utilities/BackHandler.ios.js +0 -7
  178. package/Libraries/Utilities/BackHandler.windows.js +6 -18
  179. package/Libraries/Utilities/HMRClient.js +3 -4
  180. package/Libraries/Utilities/Platform.flow.js +2 -2
  181. package/Libraries/Utilities/Platform.flow.windows.js +3 -2
  182. package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
  183. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  184. package/Libraries/Utilities/useMergeRefs.js +26 -7
  185. package/Libraries/WebSocket/WebSocketEvent.js +4 -1
  186. package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
  187. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
  188. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  189. package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +9 -8
  190. package/Microsoft.ReactNative/AsynchronousEventBeat.h +5 -5
  191. package/Microsoft.ReactNative/FBReactNativeSpec/FBReactNativeSpecJSI.h +5 -0
  192. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +2 -2
  193. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +197 -18
  194. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +19 -1
  195. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +13 -0
  196. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +1 -1
  197. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +6 -8
  198. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +2 -2
  199. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +3 -2
  200. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +1 -1
  201. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +24 -0
  202. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +5 -0
  203. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -12
  204. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +4 -4
  205. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +4 -8
  206. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +16 -15
  207. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +15 -0
  208. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +9 -0
  209. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +20 -1
  210. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -6
  211. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  212. package/Microsoft.ReactNative/SynchronousEventBeat.cpp +14 -4
  213. package/Microsoft.ReactNative/SynchronousEventBeat.h +4 -2
  214. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.cpp +78 -0
  215. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.h +51 -0
  216. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.inc +48 -0
  217. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.cpp +41 -0
  218. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.h +127 -0
  219. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.inc +125 -0
  220. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_posix.cpp +16 -0
  221. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_win.cpp +23 -0
  222. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +834 -0
  223. package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +117 -0
  224. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +366 -0
  225. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +560 -0
  226. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +1611 -0
  227. package/Microsoft.ReactNative.Cxx/JSI/threadsafe.h +79 -0
  228. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +7 -11
  229. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -1
  230. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +2878 -0
  231. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.h +36 -0
  232. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +64 -0
  233. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +22 -0
  234. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModule.cpp +63 -63
  235. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +165 -0
  236. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.cpp +105 -0
  237. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModuleUtils.h +57 -58
  238. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +42 -0
  239. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +151 -0
  240. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Base.h +177 -154
  241. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +25 -0
  242. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +21 -0
  243. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +67 -0
  244. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +90 -0
  245. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Convert.h +170 -172
  246. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +51 -0
  247. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/EventEmitter.h +134 -136
  248. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Function.h +283 -283
  249. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.cpp +63 -0
  250. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +61 -0
  251. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +93 -0
  252. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +104 -0
  253. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +107 -0
  254. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/flags.h +22 -0
  255. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +72 -0
  256. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +553 -0
  257. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +167 -0
  258. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +186 -0
  259. package/Microsoft.ReactNative.Cxx/stubs/glog/logging.h +82 -0
  260. package/PropertySheets/Bundle.Common.targets +1 -1
  261. package/PropertySheets/Bundle.props +3 -0
  262. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  263. package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  264. package/PropertySheets/OutputMSBuildProperties.targets +3 -1
  265. package/PropertySheets/React.Cpp.props +6 -0
  266. package/ReactCommon/ReactCommon.vcxproj +5 -0
  267. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +2 -3
  268. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +61 -0
  269. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +26 -23
  270. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +150 -0
  271. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +252 -0
  272. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +795 -0
  273. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +59 -0
  274. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +227 -74
  275. package/Scripts/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  276. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +97 -62
  277. package/Shared/InspectorPackagerConnection.cpp +3 -6
  278. package/Shared/InspectorPackagerConnection.h +2 -2
  279. package/Shared/InstanceManager.h +1 -1
  280. package/Shared/OInstance.h +1 -1
  281. package/Shared/Shared.vcxitems +17 -2
  282. package/Shared/Shared.vcxitems.filters +3 -1
  283. package/Shared/TurboModuleManager.cpp +29 -4
  284. package/codegen/NativeAccessibilityInfoSpec.g.h +27 -9
  285. package/codegen/NativeAccessibilityManagerSpec.g.h +19 -13
  286. package/codegen/NativeActionSheetManagerSpec.g.h +4 -0
  287. package/codegen/NativeExceptionsManagerSpec.g.h +1 -7
  288. package/codegen/NativeIntersectionObserverSpec.g.h +2 -0
  289. package/codegen/NativePerformanceSpec.g.h +127 -3
  290. package/codegen/NativeReactDevToolsRuntimeSettingsModuleSpec.g.h +67 -0
  291. package/codegen/NativeReactDevToolsSettingsManagerSpec.g.h +41 -0
  292. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +125 -137
  293. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  294. package/codegen/react/components/rnwcore/Props.cpp +1 -0
  295. package/codegen/react/components/rnwcore/Props.h +1 -0
  296. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  297. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -11
  298. package/codegen/react/components/rnwcore/States.h +0 -12
  299. package/codegen/rnwcoreJSI-generated.cpp +219 -186
  300. package/codegen/rnwcoreJSI.h +942 -511
  301. package/index.js +10 -3
  302. package/index.windows.js +10 -3
  303. package/jest/setup.js +36 -1
  304. package/just-task.js +15 -0
  305. package/package.json +22 -22
  306. package/src/private/animated/NativeAnimatedHelper.js +18 -16
  307. package/src/private/animated/useAnimatedPropsMemo.js +356 -0
  308. package/src/private/components/HScrollViewNativeComponents.js +1 -27
  309. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
  310. package/src/private/components/VScrollViewNativeComponents.js +2 -25
  311. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  312. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  313. package/src/private/debugging/ReactDevToolsSettingsManager.windows.js +20 -0
  314. package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
  315. package/src/private/devmenu/DevMenu.d.ts +20 -0
  316. package/src/private/devmenu/DevMenu.js +31 -0
  317. package/src/private/featureflags/ReactNativeFeatureFlags.js +95 -86
  318. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
  319. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -19
  320. package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
  321. package/src/private/setup/setUpDOM.js +14 -6
  322. package/src/private/setup/setUpMutationObserver.js +5 -0
  323. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
  324. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
  325. package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
  326. package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
  327. package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
  328. package/src/private/specs/modules/NativeAppearance.js +4 -10
  329. package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
  330. package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
  331. package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
  332. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
  333. package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
  334. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
  335. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
  336. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
  337. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  338. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
  339. package/src/private/webapis/performance/EventTiming.js +13 -8
  340. package/src/private/webapis/performance/Performance.js +66 -73
  341. package/src/private/webapis/performance/PerformanceEntry.js +2 -5
  342. package/src/private/webapis/performance/PerformanceObserver.js +65 -164
  343. package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
  344. package/src/private/webapis/performance/UserTiming.js +11 -7
  345. package/src/private/webapis/performance/Utilities.js +18 -0
  346. package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
  347. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
  348. package/templates/cpp-lib/template.config.js +13 -7
  349. package/templates/templateUtils.js +10 -0
  350. package/types/index.d.ts +1 -1
  351. package/types/public/ReactNativeTypes.d.ts +4 -8
  352. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
  353. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
  354. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
  355. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +0 -35
  356. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
  357. package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
  358. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +0 -101
  359. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +0 -569
  360. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +0 -53
  361. package/codegen/NativePerformanceObserverSpec.g.h +0 -131
  362. package/src/private/components/useSyncOnScroll.js +0 -48
  363. package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
  364. package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
  365. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
  366. package/types/experimental.d.ts +0 -59
  367. /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
@@ -0,0 +1,90 @@
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::bridging {
13
+
14
+ template <
15
+ typename T,
16
+ typename C,
17
+ typename R,
18
+ typename... Args,
19
+ typename... JSArgs>
20
+ T callFromJs(
21
+ jsi::Runtime& rt,
22
+ R (C::*method)(jsi::Runtime&, Args...),
23
+ const std::shared_ptr<CallInvoker>& jsInvoker,
24
+ C* instance,
25
+ JSArgs&&... args) {
26
+ static_assert(
27
+ sizeof...(Args) == sizeof...(JSArgs), "Incorrect arguments length");
28
+ static_assert(
29
+ (supportsFromJs<Args, JSArgs> && ...), "Incompatible arguments");
30
+
31
+ if constexpr (std::is_void_v<T>) {
32
+ (instance->*method)(
33
+ rt, fromJs<Args>(rt, std::forward<JSArgs>(args), jsInvoker)...);
34
+
35
+ } else if constexpr (std::is_void_v<R>) {
36
+ static_assert(
37
+ std::is_same_v<T, jsi::Value>,
38
+ "Void functions may only return undefined");
39
+
40
+ (instance->*method)(
41
+ rt, fromJs<Args>(rt, std::forward<JSArgs>(args), jsInvoker)...);
42
+ return jsi::Value();
43
+
44
+ } else if constexpr (is_jsi_v<T>) {
45
+ static_assert(supportsToJs<R, T>, "Incompatible return type");
46
+
47
+ return toJs(
48
+ rt,
49
+ (instance->*method)(
50
+ rt, fromJs<Args>(rt, std::forward<JSArgs>(args), jsInvoker)...),
51
+ jsInvoker);
52
+
53
+ } else if constexpr (is_optional_jsi_v<T>) {
54
+ static_assert(
55
+ is_optional_v<R>
56
+ ? supportsToJs<typename R::value_type, typename T::value_type>
57
+ : supportsToJs<R, typename T::value_type>,
58
+ "Incompatible return type");
59
+
60
+ auto result = toJs(
61
+ rt,
62
+ (instance->*method)(
63
+ rt, fromJs<Args>(rt, std::forward<JSArgs>(args), jsInvoker)...),
64
+ jsInvoker);
65
+
66
+ if constexpr (std::is_same_v<decltype(result), jsi::Value>) {
67
+ if (result.isNull() || result.isUndefined()) {
68
+ return std::nullopt;
69
+ }
70
+ }
71
+
72
+ return convert(rt, std::move(result));
73
+ } else {
74
+ static_assert(std::is_convertible_v<R, T>, "Incompatible return type");
75
+ return (instance->*method)(
76
+ rt, fromJs<Args>(rt, std::forward<JSArgs>(args), jsInvoker)...);
77
+ }
78
+ }
79
+
80
+ template <typename R, typename... Args>
81
+ constexpr size_t getParameterCount(R (*)(Args...)) {
82
+ return sizeof...(Args);
83
+ }
84
+
85
+ template <typename C, typename R, typename... Args>
86
+ constexpr size_t getParameterCount(R (C::*)(Args...)) {
87
+ return sizeof...(Args);
88
+ }
89
+
90
+ } // namespace facebook::react::bridging
@@ -1,172 +1,170 @@
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
-
14
- #include <optional>
15
- #include <type_traits>
16
-
17
- namespace facebook::react::bridging {
18
-
19
- // std::remove_cvref_t is not available until C++20.
20
- template <typename T>
21
- using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
22
-
23
- template <typename T>
24
- inline constexpr bool is_jsi_v =
25
- std::is_same_v<jsi::Value, remove_cvref_t<T>> ||
26
- std::is_same_v<jsi::String, remove_cvref_t<T>> ||
27
- std::is_base_of_v<jsi::Object, remove_cvref_t<T>>;
28
-
29
- template <typename>
30
- struct is_optional : std::false_type {};
31
-
32
- template <typename T>
33
- struct is_optional<std::optional<T>> : std::true_type {};
34
-
35
- template <typename T>
36
- inline constexpr bool is_optional_v = is_optional<T>::value;
37
-
38
- template <typename T, typename = void>
39
- inline constexpr bool is_optional_jsi_v = false;
40
-
41
- template <typename T>
42
- inline constexpr bool
43
- is_optional_jsi_v<T, typename std::enable_if_t<is_optional_v<T>>> =
44
- is_jsi_v<typename T::value_type>;
45
-
46
- template <typename T>
47
- struct Converter;
48
-
49
- template <typename T>
50
- struct ConverterBase {
51
- using BaseT = remove_cvref_t<T>;
52
-
53
- ConverterBase(jsi::Runtime& rt, T&& value)
54
- : rt_(rt), value_(std::forward<T>(value)) {}
55
-
56
- operator BaseT() && {
57
- if constexpr (std::is_lvalue_reference_v<T>) {
58
- // Copy the reference into a Value that then can be moved from.
59
- auto value = jsi::Value(rt_, value_);
60
-
61
- if constexpr (std::is_same_v<BaseT, jsi::Value>) {
62
- return std::move(value);
63
- } else if constexpr (std::is_same_v<BaseT, jsi::String>) {
64
- return std::move(value).getString(rt_);
65
- } else if constexpr (std::is_same_v<BaseT, jsi::Object>) {
66
- return std::move(value).getObject(rt_);
67
- } else if constexpr (std::is_same_v<BaseT, jsi::Array>) {
68
- return std::move(value).getObject(rt_).getArray(rt_);
69
- } else if constexpr (std::is_same_v<BaseT, jsi::Function>) {
70
- return std::move(value).getObject(rt_).getFunction(rt_);
71
- }
72
- } else {
73
- return std::move(value_);
74
- }
75
- }
76
-
77
- template <
78
- typename U,
79
- std::enable_if_t<
80
- std::is_lvalue_reference_v<T> &&
81
- // Ensure non-reference type can be converted to the desired type.
82
- std::is_convertible_v<Converter<BaseT>, U>,
83
- int> = 0>
84
- operator U() && {
85
- return Converter<BaseT>(rt_, std::move(*this).operator BaseT());
86
- }
87
-
88
- template <
89
- typename U,
90
- std::enable_if_t<is_jsi_v<T> && std::is_same_v<U, jsi::Value>, int> = 0>
91
- operator U() && = delete; // Prevent unwanted upcasting of JSI values.
92
-
93
- protected:
94
- jsi::Runtime& rt_;
95
- T value_;
96
- };
97
-
98
- template <typename T>
99
- struct Converter : public ConverterBase<T> {
100
- using ConverterBase<T>::ConverterBase;
101
- };
102
-
103
- template <>
104
- struct Converter<jsi::Value> : public ConverterBase<jsi::Value> {
105
- using ConverterBase<jsi::Value>::ConverterBase;
106
-
107
- operator jsi::String() && {
108
- return std::move(value_).asString(rt_);
109
- }
110
-
111
- operator jsi::Object() && {
112
- return std::move(value_).asObject(rt_);
113
- }
114
-
115
- operator jsi::Array() && {
116
- return std::move(value_).asObject(rt_).asArray(rt_);
117
- }
118
-
119
- operator jsi::Function() && {
120
- return std::move(value_).asObject(rt_).asFunction(rt_);
121
- }
122
- };
123
-
124
- template <>
125
- struct Converter<jsi::Object> : public ConverterBase<jsi::Object> {
126
- using ConverterBase<jsi::Object>::ConverterBase;
127
-
128
- operator jsi::Array() && {
129
- return std::move(value_).asArray(rt_);
130
- }
131
-
132
- operator jsi::Function() && {
133
- return std::move(value_).asFunction(rt_);
134
- }
135
- };
136
-
137
- template <typename T>
138
- struct Converter<std::optional<T>> : public ConverterBase<jsi::Value> {
139
- Converter(jsi::Runtime& rt, std::optional<T> value)
140
- : ConverterBase(rt, value ? std::move(*value) : jsi::Value::null()) {}
141
-
142
- operator std::optional<T>() && {
143
- if (value_.isNull() || value_.isUndefined()) {
144
- return {};
145
- }
146
- return std::move(value_);
147
- }
148
- };
149
-
150
- template <typename T, std::enable_if_t<is_jsi_v<T>, int> = 0>
151
- auto convert(jsi::Runtime& rt, T&& value) {
152
- return Converter<T>(rt, std::forward<T>(value));
153
- }
154
-
155
- template <
156
- typename T,
157
- std::enable_if_t<is_jsi_v<T> || std::is_scalar_v<T>, int> = 0>
158
- auto convert(jsi::Runtime& rt, std::optional<T> value) {
159
- return Converter<std::optional<T>>(rt, std::move(value));
160
- }
161
-
162
- template <typename T, std::enable_if_t<std::is_scalar_v<T>, int> = 0>
163
- auto convert(jsi::Runtime& rt, T&& value) {
164
- return value;
165
- }
166
-
167
- template <typename T>
168
- auto convert(jsi::Runtime& rt, Converter<T>&& converter) {
169
- return std::move(converter);
170
- }
171
-
172
- } // namespace facebook::react::bridging
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 <optional>
13
+ #include <type_traits>
14
+
15
+ namespace facebook::react::bridging {
16
+
17
+ // std::remove_cvref_t is not available until C++20.
18
+ template <typename T>
19
+ using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
20
+
21
+ template <typename T>
22
+ inline constexpr bool is_jsi_v =
23
+ std::is_same_v<jsi::Value, remove_cvref_t<T>> ||
24
+ std::is_same_v<jsi::String, remove_cvref_t<T>> ||
25
+ std::is_base_of_v<jsi::Object, remove_cvref_t<T>>;
26
+
27
+ template <typename>
28
+ struct is_optional : std::false_type {};
29
+
30
+ template <typename T>
31
+ struct is_optional<std::optional<T>> : std::true_type {};
32
+
33
+ template <typename T>
34
+ inline constexpr bool is_optional_v = is_optional<T>::value;
35
+
36
+ template <typename T, typename = void>
37
+ inline constexpr bool is_optional_jsi_v = false;
38
+
39
+ template <typename T>
40
+ inline constexpr bool
41
+ is_optional_jsi_v<T, typename std::enable_if_t<is_optional_v<T>>> =
42
+ is_jsi_v<typename T::value_type>;
43
+
44
+ template <typename T>
45
+ struct Converter;
46
+
47
+ template <typename T>
48
+ struct ConverterBase {
49
+ using BaseT = remove_cvref_t<T>;
50
+
51
+ ConverterBase(jsi::Runtime& rt, T&& value)
52
+ : rt_(rt), value_(std::forward<T>(value)) {}
53
+
54
+ operator BaseT() && {
55
+ if constexpr (std::is_lvalue_reference_v<T>) {
56
+ // Copy the reference into a Value that then can be moved from.
57
+ auto value = jsi::Value(rt_, value_);
58
+
59
+ if constexpr (std::is_same_v<BaseT, jsi::Value>) {
60
+ return std::move(value);
61
+ } else if constexpr (std::is_same_v<BaseT, jsi::String>) {
62
+ return std::move(value).getString(rt_);
63
+ } else if constexpr (std::is_same_v<BaseT, jsi::Object>) {
64
+ return std::move(value).getObject(rt_);
65
+ } else if constexpr (std::is_same_v<BaseT, jsi::Array>) {
66
+ return std::move(value).getObject(rt_).getArray(rt_);
67
+ } else if constexpr (std::is_same_v<BaseT, jsi::Function>) {
68
+ return std::move(value).getObject(rt_).getFunction(rt_);
69
+ }
70
+ } else {
71
+ return std::move(value_);
72
+ }
73
+ }
74
+
75
+ template <
76
+ typename U,
77
+ std::enable_if_t<
78
+ std::is_lvalue_reference_v<T> &&
79
+ // Ensure non-reference type can be converted to the desired type.
80
+ std::is_convertible_v<Converter<BaseT>, U>,
81
+ int> = 0>
82
+ operator U() && {
83
+ return Converter<BaseT>(rt_, std::move(*this).operator BaseT());
84
+ }
85
+
86
+ template <
87
+ typename U,
88
+ std::enable_if_t<is_jsi_v<T> && std::is_same_v<U, jsi::Value>, int> = 0>
89
+ operator U() && = delete; // Prevent unwanted upcasting of JSI values.
90
+
91
+ protected:
92
+ jsi::Runtime& rt_;
93
+ T value_;
94
+ };
95
+
96
+ template <typename T>
97
+ struct Converter : public ConverterBase<T> {
98
+ using ConverterBase<T>::ConverterBase;
99
+ };
100
+
101
+ template <>
102
+ struct Converter<jsi::Value> : public ConverterBase<jsi::Value> {
103
+ using ConverterBase<jsi::Value>::ConverterBase;
104
+
105
+ operator jsi::String() && {
106
+ return std::move(value_).asString(rt_);
107
+ }
108
+
109
+ operator jsi::Object() && {
110
+ return std::move(value_).asObject(rt_);
111
+ }
112
+
113
+ operator jsi::Array() && {
114
+ return std::move(value_).asObject(rt_).asArray(rt_);
115
+ }
116
+
117
+ operator jsi::Function() && {
118
+ return std::move(value_).asObject(rt_).asFunction(rt_);
119
+ }
120
+ };
121
+
122
+ template <>
123
+ struct Converter<jsi::Object> : public ConverterBase<jsi::Object> {
124
+ using ConverterBase<jsi::Object>::ConverterBase;
125
+
126
+ operator jsi::Array() && {
127
+ return std::move(value_).asArray(rt_);
128
+ }
129
+
130
+ operator jsi::Function() && {
131
+ return std::move(value_).asFunction(rt_);
132
+ }
133
+ };
134
+
135
+ template <typename T>
136
+ struct Converter<std::optional<T>> : public ConverterBase<jsi::Value> {
137
+ Converter(jsi::Runtime& rt, std::optional<T> value)
138
+ : ConverterBase(rt, value ? std::move(*value) : jsi::Value::null()) {}
139
+
140
+ operator std::optional<T>() && {
141
+ if (value_.isNull() || value_.isUndefined()) {
142
+ return {};
143
+ }
144
+ return std::move(value_);
145
+ }
146
+ };
147
+
148
+ template <typename T, std::enable_if_t<is_jsi_v<T>, int> = 0>
149
+ auto convert(jsi::Runtime& rt, T&& value) {
150
+ return Converter<T>(rt, std::forward<T>(value));
151
+ }
152
+
153
+ template <
154
+ typename T,
155
+ std::enable_if_t<is_jsi_v<T> || std::is_scalar_v<T>, int> = 0>
156
+ auto convert(jsi::Runtime& rt, std::optional<T> value) {
157
+ return Converter<std::optional<T>>(rt, std::move(value));
158
+ }
159
+
160
+ template <typename T, std::enable_if_t<std::is_scalar_v<T>, int> = 0>
161
+ auto convert(jsi::Runtime& /*rt*/, T&& value) {
162
+ return value;
163
+ }
164
+
165
+ template <typename T>
166
+ auto convert(jsi::Runtime& /*rt*/, Converter<T>&& converter) {
167
+ return std::move(converter);
168
+ }
169
+
170
+ } // namespace facebook::react::bridging
@@ -0,0 +1,51 @@
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
+ class Error {
15
+ public:
16
+ // TODO (T114055466): Retain stack trace (at least caller location)
17
+ Error(std::string message) : message_(std::move(message)) {}
18
+
19
+ Error(const char* message) : Error(std::string(message)) {}
20
+
21
+ const std::string& message() const {
22
+ return message_;
23
+ }
24
+
25
+ private:
26
+ std::string message_;
27
+ };
28
+
29
+ template <>
30
+ struct Bridging<jsi::JSError> {
31
+ static jsi::JSError fromJs(jsi::Runtime& rt, const jsi::Value& value) {
32
+ return jsi::JSError(rt, jsi::Value(rt, value));
33
+ }
34
+
35
+ static jsi::JSError fromJs(jsi::Runtime& rt, jsi::Value&& value) {
36
+ return jsi::JSError(rt, std::move(value));
37
+ }
38
+
39
+ static jsi::Value toJs(jsi::Runtime& rt, std::string message) {
40
+ return jsi::Value(rt, jsi::JSError(rt, std::move(message)).value());
41
+ }
42
+ };
43
+
44
+ template <>
45
+ struct Bridging<Error> {
46
+ static jsi::Value toJs(jsi::Runtime& rt, const Error& error) {
47
+ return jsi::Value(rt, jsi::JSError(rt, error.message()).value());
48
+ }
49
+ };
50
+
51
+ } // namespace facebook::react