react-native-windows 0.83.0-preview.2 → 0.84.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 (221) hide show
  1. package/.flowconfig +2 -2
  2. package/Folly/Folly.vcxproj +2 -0
  3. package/Libraries/Animated/AnimatedEvent.js +2 -2
  4. package/Libraries/Animated/animations/Animation.js +1 -3
  5. package/Libraries/Animated/createAnimatedComponent.js +8 -5
  6. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  7. package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
  8. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  9. package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
  10. package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
  11. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
  12. package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
  13. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  14. package/Libraries/BatchedBridge/MessageQueue.js +24 -22
  15. package/Libraries/Blob/URL.js +34 -3
  16. package/Libraries/Blob/URLSearchParams.js +1 -0
  17. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +9 -1
  18. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
  19. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +6 -1
  20. package/Libraries/Components/Button.js +2 -5
  21. package/Libraries/Components/Button.windows.js +2 -5
  22. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
  23. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
  24. package/Libraries/Components/Keyboard/Keyboard.js +2 -2
  25. package/Libraries/Components/Pressable/Pressable.js +8 -8
  26. package/Libraries/Components/Pressable/Pressable.windows.js +14 -13
  27. package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
  28. package/Libraries/Components/TextInput/TextInput.flow.windows.js +19 -18
  29. package/Libraries/Components/TextInput/TextInput.js +33 -34
  30. package/Libraries/Components/TextInput/TextInput.windows.js +40 -39
  31. package/Libraries/Components/Touchable/PooledClass.js +2 -2
  32. package/Libraries/Components/Touchable/TouchableBounce.js +3 -3
  33. package/Libraries/Components/Touchable/TouchableBounce.windows.js +3 -3
  34. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  35. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +1 -1
  36. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
  37. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -9
  38. package/Libraries/Components/View/ViewPropTypes.js +16 -6
  39. package/Libraries/Components/View/ViewPropTypes.windows.js +21 -11
  40. package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
  41. package/Libraries/Core/Devtools/loadBundleFromServer.windows.js +6 -3
  42. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  43. package/Libraries/Core/ExceptionsManager.js +3 -3
  44. package/Libraries/Core/RawEventEmitter.js +1 -1
  45. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  46. package/Libraries/Core/ReactNativeVersion.js +3 -3
  47. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  48. package/Libraries/Core/setUpErrorHandling.js +1 -1
  49. package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
  50. package/Libraries/Image/Image.android.js +2 -2
  51. package/Libraries/Image/Image.ios.js +2 -2
  52. package/Libraries/Image/Image.windows.js +2 -2
  53. package/Libraries/Image/ImageProps.js +1 -1
  54. package/Libraries/Image/ImageTypes.flow.js +2 -2
  55. package/Libraries/Interaction/InteractionManager.js +3 -3
  56. package/Libraries/Interaction/PanResponder.js +1 -1
  57. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  58. package/Libraries/Linking/Linking.js +1 -1
  59. package/Libraries/Lists/FlatList.js +2 -2
  60. package/Libraries/LogBox/Data/LogBoxData.js +31 -4
  61. package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
  62. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  63. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
  64. package/Libraries/LogBox/LogBox.js +7 -7
  65. package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
  66. package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
  67. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
  68. package/Libraries/NativeComponent/ViewConfigIgnore.windows.js +1 -1
  69. package/Libraries/Network/RCTNetworking.android.js +3 -3
  70. package/Libraries/Network/RCTNetworking.ios.js +2 -2
  71. package/Libraries/Network/RCTNetworking.js.flow +2 -2
  72. package/Libraries/Network/RCTNetworking.windows.js +2 -2
  73. package/Libraries/Pressability/Pressability.js +9 -9
  74. package/Libraries/Pressability/Pressability.windows.js +17 -16
  75. package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
  76. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  77. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  78. package/Libraries/ReactNative/PaperUIManager.js +1 -1
  79. package/Libraries/ReactNative/PaperUIManager.windows.js +1 -1
  80. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  81. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
  82. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
  83. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  84. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  85. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  86. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
  87. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  88. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  89. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
  90. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
  91. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
  92. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  93. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  94. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  95. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  96. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +3 -1
  97. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  98. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  99. package/Libraries/Settings/Settings.ios.js +1 -1
  100. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
  101. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  102. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
  103. package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
  104. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
  105. package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
  106. package/Libraries/StyleSheet/processFilter.js +1 -1
  107. package/Libraries/Text/Text.js +46 -6
  108. package/Libraries/Text/Text.windows.js +46 -6
  109. package/Libraries/Text/TextNativeComponent.js +1 -1
  110. package/Libraries/Text/TextProps.js +7 -7
  111. package/Libraries/Text/TextProps.windows.js +7 -7
  112. package/Libraries/Types/CodegenTypes.js +1 -1
  113. package/Libraries/Types/CoreEventTypes.js +31 -0
  114. package/Libraries/Types/CoreEventTypes.windows.js +31 -13
  115. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  116. package/Libraries/Utilities/Appearance.js +2 -2
  117. package/Libraries/Utilities/DevLoadingView.js +8 -1
  118. package/Libraries/Utilities/DevSettings.js +3 -3
  119. package/Libraries/Utilities/HMRClient.js +4 -3
  120. package/Libraries/Utilities/RCTLog.js +3 -3
  121. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  122. package/Libraries/Utilities/SceneTracker.js +1 -1
  123. package/Libraries/Utilities/codegenNativeCommands.js +1 -1
  124. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
  125. package/Libraries/Utilities/logError.js +1 -1
  126. package/Libraries/Utilities/stringifySafe.js +7 -7
  127. package/Libraries/Utilities/useRefEffect.js +1 -1
  128. package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
  129. package/Libraries/promiseRejectionTrackingOptions.js +8 -8
  130. package/Libraries/vendor/core/ErrorUtils.js +10 -10
  131. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  132. package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +5 -0
  133. package/Microsoft.ReactNative/Fabric/AbiViewProps.h +1 -0
  134. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +25 -5
  135. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +2 -1
  136. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +9 -3
  137. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +2 -3
  138. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +2 -2
  139. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +2 -0
  140. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +6 -0
  141. package/Microsoft.ReactNative/ViewProps.idl +9 -0
  142. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +12 -2
  143. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  144. package/ReactCommon/ReactCommon.vcxproj +7 -1
  145. package/ReactCommon/ReactCommon.vcxproj.filters +0 -3
  146. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +5 -5
  147. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +0 -1
  148. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSIExecutor.cpp +2 -43
  149. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +12 -2
  150. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/attributedstring/TextAttributes.cpp +291 -0
  151. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +0 -1
  152. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +1 -3
  153. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/propsConversions.h +199 -0
  154. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +6 -0
  155. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +17 -10
  156. package/Scripts/creaternwapp.cmd +8 -1
  157. package/Scripts/creaternwlib.cmd +21 -2
  158. package/Shared/DevSettings.h +0 -3
  159. package/Shared/Modules/WebSocketModule.cpp +0 -1
  160. package/Shared/Modules/WebSocketModule.h +62 -3
  161. package/Shared/OInstance.cpp +5 -0
  162. package/Shared/Shared.vcxitems +4 -6
  163. package/Shared/Shared.vcxitems.filters +218 -709
  164. package/codegen/NativeAccessibilityManagerSpec.g.h +2 -0
  165. package/codegen/NativeAnimatedModuleSpec.g.h +21 -15
  166. package/codegen/NativeDevLoadingViewSpec.g.h +3 -3
  167. package/codegen/NativeIntentAndroidSpec.g.h +16 -3
  168. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +209 -191
  169. package/codegen/react/components/rnwcore/EventEmitters.h +1 -0
  170. package/codegen/react/components/rnwcore/Props.h +14 -0
  171. package/codegen/rnwcoreJSI.h +246 -211
  172. package/index.js +3 -0
  173. package/index.windows.js +3 -0
  174. package/jest/mock.js +2 -2
  175. package/jest/mockComponent.js +1 -1
  176. package/jest/setup.js +1 -1
  177. package/package.json +22 -21
  178. package/src/private/animated/NativeAnimatedHelper.js +130 -125
  179. package/src/private/animated/NativeAnimatedValidation.js +7 -4
  180. package/src/private/animated/createAnimatedPropsHook.js +13 -5
  181. package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
  182. package/src/private/components/virtualview/VirtualView.js +16 -9
  183. package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
  184. package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
  185. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  186. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
  187. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
  188. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
  189. package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
  190. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
  191. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
  192. package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
  193. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
  194. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
  195. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
  196. package/src/private/webapis/dom/events/CustomEvent.js +3 -3
  197. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  198. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  199. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
  200. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
  201. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  202. package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
  203. package/src/private/webapis/html/events/MessageEvent.js +3 -3
  204. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
  205. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
  206. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
  207. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
  208. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
  209. package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
  210. package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
  211. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
  212. package/src/private/webapis/performance/Performance.js +1 -1
  213. package/src/private/webapis/performance/UserTiming.js +1 -1
  214. package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
  215. package/src/private/webapis/structuredClone/structuredClone.js +3 -3
  216. package/src/types/globals.d.ts +30 -1
  217. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/image/conversions.h +0 -178
  218. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h +0 -183
  219. package/Shared/Modules/WebSocketTurboModule.h +0 -71
  220. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
  221. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
@@ -22,7 +22,7 @@ type ErrorInfo = {
22
22
  };
23
23
 
24
24
  function getExtendedError(
25
- errorValue: mixed,
25
+ errorValue: unknown,
26
26
  errorInfo: ErrorInfo,
27
27
  ): ExtendedError {
28
28
  let error;
@@ -56,14 +56,17 @@ function getExtendedError(
56
56
  return error;
57
57
  }
58
58
 
59
- export function onUncaughtError(errorValue: mixed, errorInfo: ErrorInfo): void {
59
+ export function onUncaughtError(
60
+ errorValue: unknown,
61
+ errorInfo: ErrorInfo,
62
+ ): void {
60
63
  const error = getExtendedError(errorValue, errorInfo);
61
64
 
62
65
  // Uncaught errors are fatal.
63
66
  ExceptionsManager.handleException(error, true);
64
67
  }
65
68
 
66
- export function onCaughtError(errorValue: mixed, errorInfo: ErrorInfo): void {
69
+ export function onCaughtError(errorValue: unknown, errorInfo: ErrorInfo): void {
67
70
  const error = getExtendedError(errorValue, errorInfo);
68
71
 
69
72
  // Caught errors are not fatal.
@@ -71,7 +74,7 @@ export function onCaughtError(errorValue: mixed, errorInfo: ErrorInfo): void {
71
74
  }
72
75
 
73
76
  export function onRecoverableError(
74
- errorValue: mixed,
77
+ errorValue: unknown,
75
78
  errorInfo: ErrorInfo,
76
79
  ): void {
77
80
  const error = getExtendedError(errorValue, errorInfo);
@@ -63,7 +63,7 @@ export interface Spec extends TurboModule {
63
63
  +announceForAccessibility: (announcement: string) => void;
64
64
  +announceForAccessibilityWithOptions?: (
65
65
  announcement: string,
66
- options: {queue?: boolean},
66
+ options: {queue?: boolean, priority?: 'low' | 'default' | 'high'},
67
67
  ) => void;
68
68
  }
69
69
 
@@ -49,6 +49,10 @@ export interface Spec extends TurboModule {
49
49
  +flattenAnimatedNodeOffset: (nodeTag: number) => void;
50
50
  +extractAnimatedNodeOffset: (nodeTag: number) => void;
51
51
  +connectAnimatedNodeToView: (nodeTag: number, viewTag: number) => void;
52
+ +connectAnimatedNodeToShadowNodeFamily?: (
53
+ nodeTag: number,
54
+ shadowNode: Object,
55
+ ) => void;
52
56
  +disconnectAnimatedNodeFromView: (nodeTag: number, viewTag: number) => void;
53
57
  +restoreDefaultValues: (nodeTag: number) => void;
54
58
  +dropAnimatedNode: (tag: number) => void;
@@ -17,6 +17,7 @@ export interface Spec extends TurboModule {
17
17
  message: string,
18
18
  withColor: ?number,
19
19
  withBackgroundColor: ?number,
20
+ withDismissButton: ?boolean,
20
21
  ) => void;
21
22
  +hide: () => void;
22
23
  }
@@ -20,11 +20,11 @@ import type {EventInit} from './Event';
20
20
  import Event from './Event';
21
21
 
22
22
  export interface CustomEventInit extends EventInit {
23
- +detail?: mixed;
23
+ +detail?: unknown;
24
24
  }
25
25
 
26
26
  export default class CustomEvent extends Event {
27
- _detail: mixed;
27
+ _detail: unknown;
28
28
 
29
29
  constructor(type: string, options?: ?CustomEventInit) {
30
30
  super(type, options);
@@ -32,7 +32,7 @@ export default class CustomEvent extends Event {
32
32
  this._detail = options?.detail;
33
33
  }
34
34
 
35
- get detail(): mixed {
35
+ get detail(): unknown {
36
36
  return this._detail;
37
37
  }
38
38
  }
@@ -49,7 +49,7 @@ export function setPublicInstanceForReactNativeDocumentElementInstanceHandle(
49
49
  }
50
50
 
51
51
  export function isReactNativeDocumentElementInstanceHandle(
52
- instanceHandle: mixed,
52
+ instanceHandle: unknown,
53
53
  ): instanceHandle is ReactNativeDocumentElementInstanceHandle {
54
54
  return instanceHandle instanceof ReactNativeDocumentElementInstanceHandleImpl;
55
55
  }
@@ -36,7 +36,7 @@ export function getPublicInstanceFromReactNativeDocumentInstanceHandle(
36
36
  }
37
37
 
38
38
  export function isReactNativeDocumentInstanceHandle(
39
- instanceHandle: mixed,
39
+ instanceHandle: unknown,
40
40
  // $FlowExpectedError[incompatible-type-guard]
41
41
  ): instanceHandle is ReactNativeDocumentInstanceHandle {
42
42
  // $FlowFixMe[incompatible-type-guard]
@@ -52,25 +52,25 @@ export interface Spec extends TurboModule {
52
52
  */
53
53
 
54
54
  +compareDocumentPosition: (
55
- nativeNodeReference: mixed /* NativeNodeReference */,
56
- otherNativeNodeReference: mixed /* NativeNodeReference */,
55
+ nativeNodeReference: unknown /* NativeNodeReference */,
56
+ otherNativeNodeReference: unknown /* NativeNodeReference */,
57
57
  ) => number;
58
58
 
59
59
  +getChildNodes: (
60
- nativeNodeReference: mixed /* NativeNodeReference */,
61
- ) => $ReadOnlyArray<mixed> /* $ReadOnlyArray<InstanceHandle> */;
60
+ nativeNodeReference: unknown /* NativeNodeReference */,
61
+ ) => $ReadOnlyArray<unknown> /* $ReadOnlyArray<InstanceHandle> */;
62
62
 
63
63
  +getElementById?: (
64
- nativeNodeReference: mixed /* NativeNodeReference */,
64
+ nativeNodeReference: unknown /* NativeNodeReference */,
65
65
  id: string,
66
- ) => mixed /* ?InstanceHandle */;
66
+ ) => unknown /* ?InstanceHandle */;
67
67
 
68
68
  +getParentNode: (
69
- nativeNodeReference: mixed /* NativeNodeReference */,
70
- ) => mixed /* ?InstanceHandle */;
69
+ nativeNodeReference: unknown /* NativeNodeReference */,
70
+ ) => unknown /* ?InstanceHandle */;
71
71
 
72
72
  +isConnected: (
73
- nativeNodeReference: mixed /* NativeNodeReference */,
73
+ nativeNodeReference: unknown /* NativeNodeReference */,
74
74
  ) => boolean;
75
75
 
76
76
  /*
@@ -78,46 +78,46 @@ export interface Spec extends TurboModule {
78
78
  */
79
79
 
80
80
  +getBorderWidth: (
81
- nativeElementReference: mixed /* NativeElementReference */,
81
+ nativeElementReference: unknown /* NativeElementReference */,
82
82
  ) => $ReadOnlyArray<number> /* [topWidth: number, rightWidth: number, bottomWidth: number, leftWidth: number] */;
83
83
 
84
84
  +getBoundingClientRect: (
85
- nativeElementReference: mixed /* NativeElementReference */,
85
+ nativeElementReference: unknown /* NativeElementReference */,
86
86
  includeTransform: boolean,
87
87
  ) => $ReadOnlyArray<number> /* [x: number, y: number, width: number, height: number] */;
88
88
 
89
89
  +getInnerSize: (
90
- nativeElementReference: mixed /* NativeElementReference */,
90
+ nativeElementReference: unknown /* NativeElementReference */,
91
91
  ) => $ReadOnlyArray<number> /* [width: number, height: number] */;
92
92
 
93
93
  +getScrollPosition: (
94
- nativeElementReference: mixed /* NativeElementReference */,
94
+ nativeElementReference: unknown /* NativeElementReference */,
95
95
  ) => $ReadOnlyArray<number> /* [scrollLeft: number, scrollTop: number] */;
96
96
 
97
97
  +getScrollSize: (
98
- nativeElementReference: mixed /* NativeElementReference */,
98
+ nativeElementReference: unknown /* NativeElementReference */,
99
99
  ) => $ReadOnlyArray<number> /* [scrollWidth: number, scrollHeight: number] */;
100
100
 
101
101
  +getTagName: (
102
- nativeElementReference: mixed /* NativeElementReference */,
102
+ nativeElementReference: unknown /* NativeElementReference */,
103
103
  ) => string;
104
104
 
105
105
  +getTextContent: (
106
- nativeElementReference: mixed /* NativeElementReference */,
106
+ nativeElementReference: unknown /* NativeElementReference */,
107
107
  ) => string;
108
108
 
109
109
  +hasPointerCapture: (
110
- nativeElementReference: mixed /* NativeElementReference */,
110
+ nativeElementReference: unknown /* NativeElementReference */,
111
111
  pointerId: number,
112
112
  ) => boolean;
113
113
 
114
114
  +releasePointerCapture: (
115
- nativeElementReference: mixed /* NativeElementReference */,
115
+ nativeElementReference: unknown /* NativeElementReference */,
116
116
  pointerId: number,
117
117
  ) => void;
118
118
 
119
119
  +setPointerCapture: (
120
- nativeElementReference: mixed /* NativeElementReference */,
120
+ nativeElementReference: unknown /* NativeElementReference */,
121
121
  pointerId: number,
122
122
  ) => void;
123
123
 
@@ -126,8 +126,8 @@ export interface Spec extends TurboModule {
126
126
  */
127
127
 
128
128
  +getOffset: (
129
- nativeElementReference: mixed /* NativeElementReference */,
130
- ) => $ReadOnlyArray<mixed> /* [offsetParent: ?InstanceHandle, top: number, left: number] */;
129
+ nativeElementReference: unknown /* NativeElementReference */,
130
+ ) => $ReadOnlyArray<unknown> /* [offsetParent: ?InstanceHandle, top: number, left: number] */;
131
131
 
132
132
  /*
133
133
  * Special methods to handle the root node.
@@ -135,26 +135,26 @@ export interface Spec extends TurboModule {
135
135
 
136
136
  +linkRootNode?: (
137
137
  rootTag: number /* RootTag */,
138
- instanceHandle: mixed /* InstanceHandle */,
139
- ) => mixed /* ?NativeElementReference */;
138
+ instanceHandle: unknown /* InstanceHandle */,
139
+ ) => unknown /* ?NativeElementReference */;
140
140
 
141
141
  /**
142
142
  * Legacy layout APIs (for `ReactNativeElement`).
143
143
  */
144
144
 
145
145
  +measure: (
146
- nativeElementReference: mixed,
146
+ nativeElementReference: unknown,
147
147
  callback: MeasureOnSuccessCallback,
148
148
  ) => void;
149
149
 
150
150
  +measureInWindow: (
151
- nativeElementReference: mixed,
151
+ nativeElementReference: unknown,
152
152
  callback: MeasureInWindowOnSuccessCallback,
153
153
  ) => void;
154
154
 
155
155
  +measureLayout: (
156
- nativeElementReference: mixed,
157
- relativeNode: mixed,
156
+ nativeElementReference: unknown,
157
+ relativeNode: unknown,
158
158
  onFail: () => void,
159
159
  onSuccess: MeasureLayoutOnSuccessCallback,
160
160
  ) => void;
@@ -164,8 +164,8 @@ export interface Spec extends TurboModule {
164
164
  */
165
165
 
166
166
  +setNativeProps: (
167
- nativeElementReference: mixed,
168
- updatePayload: mixed,
167
+ nativeElementReference: unknown,
168
+ updatePayload: unknown,
169
169
  ) => void;
170
170
  }
171
171
 
@@ -18,7 +18,7 @@ import {setPlatformObject} from '../../webidl/PlatformObjects';
18
18
  // IMPORTANT: The type definition for this module is defined in `HTMLCollection.js.flow`
19
19
  // because Flow only supports indexers in classes in declaration files.
20
20
 
21
- const REUSABLE_PROPERTY_DESCRIPTOR: {...PropertyDescriptor<mixed>, ...} = {
21
+ const REUSABLE_PROPERTY_DESCRIPTOR: {...PropertyDescriptor<unknown>, ...} = {
22
22
  value: {},
23
23
  enumerable: true,
24
24
  configurable: false,
@@ -22,7 +22,7 @@ import {setPlatformObject} from '../../webidl/PlatformObjects';
22
22
  // IMPORTANT: The Flow type definition for this module is defined in `NodeList.js.flow`
23
23
  // because Flow only supports indexers in classes in declaration files.
24
24
 
25
- const REUSABLE_PROPERTY_DESCRIPTOR: {...PropertyDescriptor<mixed>, ...} = {
25
+ const REUSABLE_PROPERTY_DESCRIPTOR: {...PropertyDescriptor<unknown>, ...} = {
26
26
  value: {},
27
27
  writable: false,
28
28
  };
@@ -66,7 +66,7 @@ export default class NodeList<T> implements Iterable<T>, ArrayLike<T> {
66
66
  }
67
67
 
68
68
  forEach<ThisType>(
69
- callbackFn: (value: T, index: number, array: NodeList<T>) => mixed,
69
+ callbackFn: (value: T, index: number, array: NodeList<T>) => unknown,
70
70
  thisArg?: ThisType,
71
71
  ): void {
72
72
  // assigning to the interface allows us to access the indexer property in a
@@ -25,7 +25,7 @@ export interface DOMRectInit {
25
25
  height?: ?number;
26
26
  }
27
27
 
28
- function castToNumber(value: mixed): number {
28
+ function castToNumber(value: unknown): number {
29
29
  return value ? Number(value) : 0;
30
30
  }
31
31
 
@@ -20,7 +20,7 @@ import type {EventInit} from '../../dom/events/Event';
20
20
  import Event from '../../dom/events/Event';
21
21
 
22
22
  export interface MessageEventInit extends EventInit {
23
- +data?: mixed;
23
+ +data?: unknown;
24
24
  +origin?: string;
25
25
  +lastEventId?: string;
26
26
  // Unsupported
@@ -30,7 +30,7 @@ export interface MessageEventInit extends EventInit {
30
30
  }
31
31
 
32
32
  export default class MessageEvent extends Event {
33
- _data: mixed;
33
+ _data: unknown;
34
34
  _origin: string;
35
35
  _lastEventId: string;
36
36
 
@@ -42,7 +42,7 @@ export default class MessageEvent extends Event {
42
42
  this._lastEventId = String(options?.lastEventId ?? '');
43
43
  }
44
44
 
45
- get data(): mixed {
45
+ get data(): unknown {
46
46
  return this._data;
47
47
  }
48
48
 
@@ -12,7 +12,7 @@ import type {TurboModule} from '../../../../../Libraries/TurboModule/RCTExport';
12
12
 
13
13
  import * as TurboModuleRegistry from '../../../../../Libraries/TurboModule/TurboModuleRegistry';
14
14
 
15
- export opaque type IdleCallbackID = mixed;
15
+ export opaque type IdleCallbackID = unknown;
16
16
 
17
17
  export type RequestIdleCallbackOptions = {
18
18
  timeout?: number,
@@ -20,12 +20,12 @@ export type RequestIdleCallbackOptions = {
20
20
 
21
21
  export type IdleDeadline = {
22
22
  didTimeout: boolean,
23
- timeRemaining: () => mixed,
23
+ timeRemaining: () => unknown,
24
24
  };
25
25
 
26
26
  export interface Spec extends TurboModule {
27
27
  +requestIdleCallback: (
28
- callback: (idleDeadline: IdleDeadline) => mixed,
28
+ callback: (idleDeadline: IdleDeadline) => unknown,
29
29
  options?: RequestIdleCallbackOptions,
30
30
  ) => IdleCallbackID;
31
31
  +cancelIdleCallback: (handle: IdleCallbackID) => void;
@@ -20,7 +20,7 @@ import * as IntersectionObserverManager from './internals/IntersectionObserverMa
20
20
  export type IntersectionObserverCallback = (
21
21
  entries: Array<IntersectionObserverEntry>,
22
22
  observer: IntersectionObserver,
23
- ) => mixed;
23
+ ) => unknown;
24
24
 
25
25
  export interface IntersectionObserverInit {
26
26
  root?: ?ReactNativeElement;
@@ -94,6 +94,24 @@ export default class IntersectionObserver {
94
94
  );
95
95
  }
96
96
 
97
+ if (options != null && 'delay' in options) {
98
+ throw new Error(
99
+ "Failed to construct 'IntersectionObserver': The 'delay' option is not supported.",
100
+ );
101
+ }
102
+
103
+ if (options != null && 'scrollMargin' in options) {
104
+ throw new Error(
105
+ "Failed to construct 'IntersectionObserver': The 'scrollMargin' option is not supported.",
106
+ );
107
+ }
108
+
109
+ if (options != null && 'trackVisibility' in options) {
110
+ throw new Error(
111
+ "Failed to construct 'IntersectionObserver': The 'trackVisibility' option is not supported.",
112
+ );
113
+ }
114
+
97
115
  this._callback = callback;
98
116
 
99
117
  this._rootThresholds = normalizeRootThreshold(options?.rnRootThreshold);
@@ -152,6 +170,36 @@ export default class IntersectionObserver {
152
170
  return this._rootThresholds;
153
171
  }
154
172
 
173
+ /**
174
+ * The `delay` option is not supported.
175
+ * @throws {Error} Always throws an error indicating this property is not supported.
176
+ */
177
+ get delay(): number {
178
+ throw new Error(
179
+ "Failed to read the 'delay' property from 'IntersectionObserver': This property is not supported.",
180
+ );
181
+ }
182
+
183
+ /**
184
+ * The `scrollMargin` option is not supported.
185
+ * @throws {Error} Always throws an error indicating this property is not supported.
186
+ */
187
+ get scrollMargin(): string {
188
+ throw new Error(
189
+ "Failed to read the 'scrollMargin' property from 'IntersectionObserver': This property is not supported.",
190
+ );
191
+ }
192
+
193
+ /**
194
+ * The `trackVisibility` option is not supported.
195
+ * @throws {Error} Always throws an error indicating this property is not supported.
196
+ */
197
+ get trackVisibility(): boolean {
198
+ throw new Error(
199
+ "Failed to read the 'trackVisibility' property from 'IntersectionObserver': This property is not supported.",
200
+ );
201
+ }
202
+
155
203
  /**
156
204
  * Adds an element to the set of target elements being watched by the
157
205
  * `IntersectionObserver`.
@@ -267,7 +315,7 @@ setPlatformObject(IntersectionObserver);
267
315
  * normalizeThresholds([], true); // → []
268
316
  */
269
317
  function normalizeThreshold(
270
- threshold: mixed,
318
+ threshold: unknown,
271
319
  defaultEmpty: boolean = false,
272
320
  ): $ReadOnlyArray<number> {
273
321
  if (Array.isArray(threshold)) {
@@ -305,7 +353,7 @@ function normalizeThreshold(
305
353
  * normalizeRootThresholds([null, null]); // → null
306
354
  */
307
355
  function normalizeRootThreshold(
308
- rootThreshold: mixed,
356
+ rootThreshold: unknown,
309
357
  ): null | $ReadOnlyArray<number> {
310
358
  if (Array.isArray(rootThreshold)) {
311
359
  const normalizedArr = rootThreshold
@@ -320,7 +368,7 @@ function normalizeRootThreshold(
320
368
  }
321
369
 
322
370
  function normalizeThresholdValue(
323
- threshold: mixed,
371
+ threshold: unknown,
324
372
  property: string,
325
373
  ): null | number {
326
374
  if (threshold == null) {
@@ -351,7 +399,7 @@ function normalizeThresholdValue(
351
399
  * Per W3C spec, rootMargin must be specified in pixels or percent.
352
400
  * This implementation validates the basic format.
353
401
  */
354
- function normalizeRootMargin(rootMargin: mixed): string {
402
+ function normalizeRootMargin(rootMargin: unknown): string {
355
403
  if (rootMargin == null || rootMargin === '') {
356
404
  return '0px 0px 0px 0px';
357
405
  }
@@ -53,7 +53,7 @@ const instanceHandleToTargetMap: WeakMap<interface {}, ReactNativeElement> =
53
53
  new WeakMap();
54
54
 
55
55
  function getTargetFromInstanceHandle(
56
- instanceHandle: mixed,
56
+ instanceHandle: unknown,
57
57
  ): ?ReactNativeElement {
58
58
  // $FlowExpectedError[incompatible-type] instanceHandle is typed as mixed but we know it's an object and we need it to be to use it as a key in a WeakMap.
59
59
  const key: interface {} = instanceHandle;
@@ -61,7 +61,7 @@ function getTargetFromInstanceHandle(
61
61
  }
62
62
 
63
63
  function setTargetForInstanceHandle(
64
- instanceHandle: mixed,
64
+ instanceHandle: unknown,
65
65
  target: ReactNativeElement,
66
66
  ): void {
67
67
  // $FlowExpectedError[incompatible-type] instanceHandle is typed as mixed but we know it's an object and we need it to be to use it as a key in a WeakMap.
@@ -14,7 +14,7 @@ import * as TurboModuleRegistry from '../../../../../Libraries/TurboModule/Turbo
14
14
 
15
15
  export type NativeIntersectionObserverEntry = {
16
16
  intersectionObserverId: number,
17
- targetInstanceHandle: mixed,
17
+ targetInstanceHandle: unknown,
18
18
  targetRect: $ReadOnlyArray<number>, // It's actually a tuple with x, y, width and height
19
19
  rootRect: $ReadOnlyArray<number>, // It's actually a tuple with x, y, width and height
20
20
  // TODO(T209328432) - Remove optionality of intersectionRect when native changes are released
@@ -25,14 +25,14 @@ export type NativeIntersectionObserverEntry = {
25
25
 
26
26
  export type NativeIntersectionObserverObserveOptions = {
27
27
  intersectionObserverId: number,
28
- rootShadowNode?: ?mixed,
29
- targetShadowNode: mixed,
28
+ rootShadowNode?: ?unknown,
29
+ targetShadowNode: unknown,
30
30
  thresholds: $ReadOnlyArray<number>,
31
31
  rootThresholds?: ?$ReadOnlyArray<number>,
32
32
  rootMargin?: ?string,
33
33
  };
34
34
 
35
- export opaque type NativeIntersectionObserverToken = mixed;
35
+ export opaque type NativeIntersectionObserverToken = unknown;
36
36
 
37
37
  export interface Spec extends TurboModule {
38
38
  +observeV2?: (
@@ -13,7 +13,7 @@ import type {TurboModule} from '../../../../../Libraries/TurboModule/RCTExport';
13
13
  import * as TurboModuleRegistry from '../../../../../Libraries/TurboModule/TurboModuleRegistry';
14
14
 
15
15
  export interface Spec extends TurboModule {
16
- +queueMicrotask: (callback: () => mixed) => void;
16
+ +queueMicrotask: (callback: () => unknown) => void;
17
17
  }
18
18
 
19
19
  export default (TurboModuleRegistry.getEnforcing<Spec>(
@@ -20,7 +20,7 @@ import * as MutationObserverManager from './internals/MutationObserverManager';
20
20
  export type MutationObserverCallback = (
21
21
  mutationRecords: $ReadOnlyArray<MutationRecord>,
22
22
  observer: MutationObserver,
23
- ) => mixed;
23
+ ) => unknown;
24
24
 
25
25
  export interface MutationObserverInit {
26
26
  +subtree?: boolean;
@@ -55,7 +55,7 @@ export default class MutationRecord {
55
55
  return null;
56
56
  }
57
57
 
58
- get oldValue(): mixed | null {
58
+ get oldValue(): unknown | null {
59
59
  return null;
60
60
  }
61
61
 
@@ -15,10 +15,10 @@ import * as TurboModuleRegistry from '../../../../../Libraries/TurboModule/Turbo
15
15
  export type MutationObserverId = number;
16
16
 
17
17
  // These types are not supported by the codegen.
18
- type ShadowNode = mixed;
19
- type InstanceHandle = mixed;
20
- type ReactNativeElement = mixed;
21
- type ReadOnlyNode = mixed;
18
+ type ShadowNode = unknown;
19
+ type InstanceHandle = unknown;
20
+ type ReactNativeElement = unknown;
21
+ type ReadOnlyNode = unknown;
22
22
 
23
23
  export type NativeMutationRecord = {
24
24
  mutationObserverId: MutationObserverId,
@@ -240,7 +240,7 @@ export default class Performance {
240
240
  let resolvedMeasureName: string;
241
241
  let resolvedStartTime: number;
242
242
  let resolvedDuration: number;
243
- let resolvedDetail: mixed;
243
+ let resolvedDetail: unknown;
244
244
 
245
245
  if (measureName === undefined) {
246
246
  throw new TypeError(
@@ -22,7 +22,7 @@ import {getCurrentTimeStamp} from './internals/Utilities';
22
22
  import {PerformanceEntry} from './PerformanceEntry';
23
23
 
24
24
  export type DetailType =
25
- | mixed
25
+ | unknown
26
26
  // This will effectively ignored by Flow (mixed | anything = mixed)
27
27
  // but we'll use it as documentation for how to use the extensibility API.
28
28
  | {devtools?: ExtensionMarkerPayload | ExtensionTrackEntryPayload, ...};
@@ -42,7 +42,7 @@ export type RawPerformanceEntry = {
42
42
  decodedBodySize?: number,
43
43
  };
44
44
 
45
- export opaque type OpaqueNativeObserverHandle = mixed;
45
+ export opaque type OpaqueNativeObserverHandle = unknown;
46
46
 
47
47
  export type NativeBatchedObserverCallback = () => void;
48
48
  export type NativePerformanceMarkResult = number;
@@ -59,12 +59,12 @@ export interface Spec extends TurboModule {
59
59
  +now: () => number;
60
60
  +timeOrigin?: () => number;
61
61
 
62
- +reportMark: (name: string, startTime: number, entry: mixed) => void;
62
+ +reportMark: (name: string, startTime: number, entry: unknown) => void;
63
63
  +reportMeasure: (
64
64
  name: string,
65
65
  startTime: number,
66
66
  duration: number,
67
- entry: mixed,
67
+ entry: unknown,
68
68
  ) => void;
69
69
  +getMarkTime: (name: string) => ?number;
70
70
  +clearMarks: (entryName?: string) => void;
@@ -33,7 +33,7 @@ const ObjectPrototype = Object.prototype;
33
33
  // and avoid allocating a new one in every call to `structuredClone`.
34
34
  // This is safe because we don't invoke user code in `structuredClone`, so at
35
35
  // any given point we only have one memory object alive anyway.
36
- const memory: Map<mixed, mixed> = new Map();
36
+ const memory: Map<unknown, unknown> = new Map();
37
37
 
38
38
  function structuredCloneInternal<T>(value: T): T {
39
39
  // Handles `null` and `undefined`.
@@ -105,7 +105,7 @@ function structuredCloneInternal<T>(value: T): T {
105
105
  }
106
106
 
107
107
  if (value instanceof Map) {
108
- const result = new Map<mixed, mixed>();
108
+ const result = new Map<unknown, unknown>();
109
109
  memory.set(value, result);
110
110
 
111
111
  for (const [innerKey, innerValue] of value) {
@@ -120,7 +120,7 @@ function structuredCloneInternal<T>(value: T): T {
120
120
  }
121
121
 
122
122
  if (value instanceof Set) {
123
- const result = new Set<mixed>();
123
+ const result = new Set<unknown>();
124
124
  memory.set(value, result);
125
125
 
126
126
  for (const innerValue of value) {