@office-iss/react-native-win32 0.83.0-preview.1 → 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 (193) hide show
  1. package/.flowconfig +2 -2
  2. package/CHANGELOG.json +57 -6
  3. package/CHANGELOG.md +30 -5
  4. package/IntegrationTests/AccessibilityManagerTest.js +10 -7
  5. package/IntegrationTests/ImageCachePolicyTest.js +8 -8
  6. package/IntegrationTests/IntegrationTestsApp.js +3 -3
  7. package/IntegrationTests/LayoutEventsTest.js +1 -1
  8. package/IntegrationTests/TimersTest.js +1 -1
  9. package/IntegrationTests/WebSocketTest.js +1 -1
  10. package/Libraries/Animated/AnimatedEvent.js +2 -2
  11. package/Libraries/Animated/animations/Animation.js +1 -3
  12. package/Libraries/Animated/createAnimatedComponent.js +8 -5
  13. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  14. package/Libraries/Animated/nodes/AnimatedInterpolation.js +40 -4
  15. package/Libraries/Animated/nodes/AnimatedNode.js +3 -3
  16. package/Libraries/Animated/nodes/AnimatedObject.js +16 -11
  17. package/Libraries/Animated/nodes/AnimatedProps.js +43 -12
  18. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -12
  19. package/Libraries/Animated/nodes/AnimatedValue.js +6 -3
  20. package/Libraries/Animated/nodes/AnimatedValueXY.js +1 -1
  21. package/Libraries/BatchedBridge/MessageQueue.js +24 -22
  22. package/Libraries/Blob/URL.js +34 -3
  23. package/Libraries/Blob/URLSearchParams.js +1 -0
  24. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +6 -0
  25. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +6 -1
  26. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +8 -1
  27. package/Libraries/Components/Button.js +2 -5
  28. package/Libraries/Components/Button.win32.js +2 -5
  29. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -1
  30. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroidTypes.js +4 -4
  31. package/Libraries/Components/Keyboard/Keyboard.js +2 -2
  32. package/Libraries/Components/Pressable/Pressable.js +8 -8
  33. package/Libraries/Components/Pressable/Pressable.win32.js +14 -13
  34. package/Libraries/Components/TextInput/TextInput.flow.js +13 -13
  35. package/Libraries/Components/TextInput/TextInput.flow.win32.js +13 -13
  36. package/Libraries/Components/TextInput/TextInput.js +33 -34
  37. package/Libraries/Components/TextInput/TextInput.win32.js +39 -39
  38. package/Libraries/Components/Touchable/PooledClass.js +2 -2
  39. package/Libraries/Components/Touchable/TouchableBounce.js +3 -3
  40. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +1 -1
  41. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +1 -1
  42. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +9 -9
  43. package/Libraries/Components/View/View.win32.js +5 -5
  44. package/Libraries/Components/View/ViewPropTypes.js +16 -6
  45. package/Libraries/Components/View/ViewPropTypes.win32.js +20 -10
  46. package/Libraries/Core/Devtools/loadBundleFromServer.js +6 -3
  47. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +6 -3
  48. package/Libraries/Core/Devtools/symbolicateStackTrace.js +1 -1
  49. package/Libraries/Core/ExceptionsManager.js +3 -3
  50. package/Libraries/Core/RawEventEmitter.js +1 -1
  51. package/Libraries/Core/ReactFiberErrorDialog.js +1 -1
  52. package/Libraries/Core/ReactNativeVersion.js +3 -3
  53. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  54. package/Libraries/Core/setUpErrorHandling.js +1 -1
  55. package/Libraries/EventEmitter/NativeEventEmitter.js +2 -2
  56. package/Libraries/Image/Image.android.js +2 -2
  57. package/Libraries/Image/Image.ios.js +2 -2
  58. package/Libraries/Image/Image.win32.js +1 -1
  59. package/Libraries/Image/ImageProps.js +1 -1
  60. package/Libraries/Image/ImageTypes.flow.js +2 -2
  61. package/Libraries/Interaction/InteractionManager.js +3 -3
  62. package/Libraries/Interaction/PanResponder.js +1 -1
  63. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -1
  64. package/Libraries/Linking/Linking.js +1 -1
  65. package/Libraries/Lists/FlatList.js +2 -2
  66. package/Libraries/LogBox/Data/LogBoxData.js +31 -4
  67. package/Libraries/LogBox/Data/LogBoxLog.js +2 -2
  68. package/Libraries/LogBox/Data/LogBoxSymbolication.js +1 -1
  69. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -5
  70. package/Libraries/LogBox/LogBox.js +7 -7
  71. package/Libraries/NativeComponent/BaseViewConfig.android.js +12 -0
  72. package/Libraries/NativeComponent/StaticViewConfigValidator.js +4 -4
  73. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -1
  74. package/Libraries/Network/RCTNetworking.android.js +3 -3
  75. package/Libraries/Network/RCTNetworking.ios.js +2 -2
  76. package/Libraries/Network/RCTNetworking.js.flow +2 -2
  77. package/Libraries/Network/RCTNetworking.win32.js +2 -2
  78. package/Libraries/Pressability/Pressability.js +9 -9
  79. package/Libraries/Pressability/Pressability.win32.js +17 -16
  80. package/Libraries/ReactNative/AppRegistry.flow.js +1 -1
  81. package/Libraries/ReactNative/BridgelessUIManager.js +1 -1
  82. package/Libraries/ReactNative/FabricUIManager.js +1 -1
  83. package/Libraries/ReactNative/PaperUIManager.js +1 -1
  84. package/Libraries/ReactNative/PaperUIManager.win32.js +1 -1
  85. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +1 -1
  86. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +2 -2
  87. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +1 -1
  88. package/Libraries/ReactNative/RendererImplementation.js +1 -1
  89. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  90. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  91. package/Libraries/Renderer/implementations/ReactFabric-dev.js +3 -3
  92. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3 -3
  93. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +3 -3
  94. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +11 -4
  95. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +11 -4
  96. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +11 -4
  97. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  98. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  99. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  100. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  101. package/Libraries/Renderer/shims/ReactNativeTypes.win32.js +3 -1
  102. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  103. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  104. package/Libraries/Settings/Settings.ios.js +1 -1
  105. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
  106. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  107. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
  108. package/Libraries/StyleSheet/StyleSheetExports.js +1 -1
  109. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +99 -4
  110. package/Libraries/StyleSheet/StyleSheetTypes.js +6 -8
  111. package/Libraries/StyleSheet/processFilter.js +1 -1
  112. package/Libraries/Text/Text.js +46 -6
  113. package/Libraries/Text/Text.win32.js +46 -6
  114. package/Libraries/Text/TextNativeComponent.js +1 -1
  115. package/Libraries/Text/TextNativeComponent.win32.js +1 -1
  116. package/Libraries/Text/TextProps.js +7 -7
  117. package/Libraries/Text/TextProps.win32.js +7 -7
  118. package/Libraries/Types/CodegenTypes.js +1 -1
  119. package/Libraries/Types/CoreEventTypes.js +31 -0
  120. package/Libraries/Types/CoreEventTypes.win32.js +30 -13
  121. package/Libraries/Types/ReactDevToolsTypes.js +2 -2
  122. package/Libraries/Utilities/Appearance.js +2 -2
  123. package/Libraries/Utilities/DevLoadingView.js +8 -1
  124. package/Libraries/Utilities/DevSettings.js +3 -3
  125. package/Libraries/Utilities/HMRClient.js +4 -3
  126. package/Libraries/Utilities/RCTLog.js +3 -3
  127. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  128. package/Libraries/Utilities/SceneTracker.js +1 -1
  129. package/Libraries/Utilities/codegenNativeCommands.js +1 -1
  130. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +3 -3
  131. package/Libraries/Utilities/logError.js +1 -1
  132. package/Libraries/Utilities/stringifySafe.js +7 -7
  133. package/Libraries/Utilities/useRefEffect.js +1 -1
  134. package/Libraries/WebSocket/WebSocketInterceptor.js +3 -3
  135. package/Libraries/promiseRejectionTrackingOptions.js +8 -8
  136. package/Libraries/vendor/core/ErrorUtils.js +10 -10
  137. package/Libraries/vendor/emitter/EventEmitter.js +6 -6
  138. package/flow/HermesInternalType.js +6 -6
  139. package/flow/bom.js.flow +35 -28
  140. package/flow/cssom.js.flow +3 -3
  141. package/flow/dom.js.flow +34 -33
  142. package/index.js +3 -0
  143. package/index.win32.js +3 -0
  144. package/index.win32.js.flow +8 -0
  145. package/jest/mock.js +2 -2
  146. package/jest/mockComponent.js +1 -1
  147. package/jest/setup.js +1 -1
  148. package/overrides.json +23 -23
  149. package/package.json +19 -18
  150. package/src/private/animated/NativeAnimatedHelper.js +130 -125
  151. package/src/private/animated/NativeAnimatedHelper.win32.js +130 -125
  152. package/src/private/animated/NativeAnimatedValidation.js +7 -4
  153. package/src/private/animated/createAnimatedPropsHook.js +13 -5
  154. package/src/private/animated/createAnimatedPropsMemoHook.js +10 -10
  155. package/src/private/components/virtualview/VirtualView.js +16 -9
  156. package/src/private/components/virtualview/logger/VirtualViewLogger.js +21 -0
  157. package/src/private/components/virtualview/logger/VirtualViewLoggerTypes.js +24 -0
  158. package/src/private/devsupport/devmenu/elementinspector/ElementProperties.js +1 -1
  159. package/src/private/devsupport/devmenu/elementinspector/Inspector.js +6 -25
  160. package/src/private/devsupport/devmenu/elementinspector/InspectorPanel.js +1 -27
  161. package/src/private/devsupport/devmenu/elementinspector/XHRInterceptor.js +3 -2
  162. package/src/private/featureflags/ReactNativeFeatureFlags.js +63 -42
  163. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +3 -3
  164. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +12 -9
  165. package/src/private/renderer/errorhandling/ErrorHandlers.js +7 -4
  166. package/src/private/specs_DEPRECATED/modules/NativeAccessibilityManager.js +1 -1
  167. package/src/private/specs_DEPRECATED/modules/NativeAnimatedModule.js +4 -0
  168. package/src/private/specs_DEPRECATED/modules/NativeDevLoadingView.js +1 -0
  169. package/src/private/webapis/dom/events/CustomEvent.js +3 -3
  170. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentElementInstanceHandle.js +1 -1
  171. package/src/private/webapis/dom/nodes/internals/ReactNativeDocumentInstanceHandle.js +1 -1
  172. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +29 -29
  173. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +1 -1
  174. package/src/private/webapis/dom/oldstylecollections/NodeList.js +2 -2
  175. package/src/private/webapis/geometry/DOMRectReadOnly.js +1 -1
  176. package/src/private/webapis/html/events/MessageEvent.js +3 -3
  177. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +3 -3
  178. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +53 -5
  179. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +2 -2
  180. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +4 -4
  181. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +1 -1
  182. package/src/private/webapis/mutationobserver/MutationObserver.js +1 -1
  183. package/src/private/webapis/mutationobserver/MutationRecord.js +1 -1
  184. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +4 -4
  185. package/src/private/webapis/performance/Performance.js +1 -1
  186. package/src/private/webapis/performance/UserTiming.js +1 -1
  187. package/src/private/webapis/performance/specs/NativePerformance.js +3 -3
  188. package/src/private/webapis/structuredClone/structuredClone.js +3 -3
  189. package/src/types/globals.d.ts +30 -1
  190. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +6 -0
  191. package/src-win/index.win32.js.flow +8 -0
  192. package/src/private/devsupport/devmenu/elementinspector/NetworkOverlay.js +0 -628
  193. package/src/private/devsupport/devmenu/perfmonitor/PerformanceOverlay.js +0 -66
@@ -362,17 +362,34 @@ export type MouseEvent = NativeSyntheticEvent<
362
362
  }>,
363
363
  >;
364
364
  // Windows]
365
+ export type KeyEvent = $ReadOnly<{
366
+ /**
367
+ * The actual key that was pressed. For example, F would be "f" or "F" depending on the shift key.
368
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key
369
+ */
370
+ key: string,
371
+ /**
372
+ * The key code of the key that was pressed. For example, F would be "KeyF"
373
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code
374
+ */
375
+ code: string,
376
+ altKey: boolean,
377
+ ctrlKey: boolean,
378
+ metaKey: boolean,
379
+ shiftKey: boolean,
380
+ /**
381
+ * A boolean value that is true if the given key is being held down such that it is automatically repeating.
382
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat
383
+ */
384
+ repeat?: boolean,
385
+ /**
386
+ * Returns a boolean value indicating if the event is fired within a composition session
387
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent/isComposing
388
+ */
389
+ isComposing?: boolean,
390
+ eventPhase: number, //Windows
391
+ }>;
365
392
 
366
- // [Windows
367
- export type KeyEvent = NativeSyntheticEvent<
368
- $ReadOnly<{|
369
- altKey: boolean,
370
- ctrlKey: boolean,
371
- metaKey: boolean,
372
- shiftKey: boolean,
373
- key: string,
374
- code: string,
375
- eventPhase: number,
376
- |}>,
377
- >;
378
- // Windows]
393
+ export type KeyUpEvent = NativeSyntheticEvent<KeyEvent>;
394
+
395
+ export type KeyDownEvent = NativeSyntheticEvent<KeyEvent>;
@@ -32,7 +32,7 @@ export type ReactDevToolsAgentEvents = {
32
32
  };
33
33
 
34
34
  export type ReactDevToolsAgent = {
35
- selectNode(node: mixed): void,
35
+ selectNode(node: unknown): void,
36
36
  stopInspectingNative(value: boolean): void,
37
37
  addListener<Event: $Keys<ReactDevToolsAgentEvents>>(
38
38
  event: Event,
@@ -48,6 +48,6 @@ export type ReactDevToolsGlobalHook = {
48
48
  on: (eventName: string, (agent: ReactDevToolsAgent) => void) => void,
49
49
  off: (eventName: string, (agent: ReactDevToolsAgent) => void) => void,
50
50
  reactDevtoolsAgent?: ReactDevToolsAgent,
51
- resolveRNStyle?: mixed,
51
+ resolveRNStyle?: unknown,
52
52
  nativeStyleEditorValidAttributes?: Array<string>,
53
53
  };
@@ -35,7 +35,7 @@ let lazyState: ?{
35
35
  /**
36
36
  * Ensures that all state and listeners are lazily initialized correctly.
37
37
  */
38
- function getState(): $NonMaybeType<typeof lazyState> {
38
+ function getState(): NonNullable<typeof lazyState> {
39
39
  if (lazyState != null) {
40
40
  return lazyState;
41
41
  }
@@ -50,7 +50,7 @@ function getState(): $NonMaybeType<typeof lazyState> {
50
50
  eventEmitter,
51
51
  };
52
52
  } else {
53
- const state: $NonMaybeType<typeof lazyState> = {
53
+ const state: NonNullable<typeof lazyState> = {
54
54
  NativeAppearance,
55
55
  appearance: null,
56
56
  eventEmitter,
@@ -44,7 +44,11 @@ const COLOR_SCHEME = {
44
44
  };
45
45
 
46
46
  export default {
47
- showMessage(message: string, type: 'load' | 'refresh' | 'error') {
47
+ showMessage(
48
+ message: string,
49
+ type: 'load' | 'refresh' | 'error',
50
+ options?: {dismissButton?: boolean},
51
+ ) {
48
52
  if (NativeDevLoadingView) {
49
53
  const colorScheme =
50
54
  getColorScheme() === 'dark' ? COLOR_SCHEME.dark : COLOR_SCHEME.default;
@@ -59,10 +63,13 @@ export default {
59
63
  textColor = processColor(colorSet.textColor);
60
64
  }
61
65
 
66
+ const hasDismissButton = options?.dismissButton ?? false;
67
+
62
68
  NativeDevLoadingView.showMessage(
63
69
  message,
64
70
  typeof textColor === 'number' ? textColor : null,
65
71
  typeof backgroundColor === 'number' ? backgroundColor : null,
72
+ hasDismissButton,
66
73
  );
67
74
  }
68
75
  },
@@ -24,7 +24,7 @@ let DevSettings: {
24
24
  * @param title - The title of the menu item. Is internally used as id and should therefore be unique.
25
25
  * @param handler - The callback invoked when pressing the menu item.
26
26
  */
27
- addMenuItem(title: string, handler: () => mixed): void,
27
+ addMenuItem(title: string, handler: () => unknown): void,
28
28
  /**
29
29
  * Reload the application.
30
30
  *
@@ -33,7 +33,7 @@ let DevSettings: {
33
33
  reload(reason?: string): void,
34
34
  onFastRefresh(): void,
35
35
  } = {
36
- addMenuItem(title: string, handler: () => mixed): void {},
36
+ addMenuItem(title: string, handler: () => unknown): void {},
37
37
  reload(reason?: string): void {},
38
38
  onFastRefresh(): void {},
39
39
  };
@@ -51,7 +51,7 @@ if (__DEV__) {
51
51
  const subscriptions = new Map<string, EventSubscription>();
52
52
 
53
53
  DevSettings = {
54
- addMenuItem(title: string, handler: () => mixed): void {
54
+ addMenuItem(title: string, handler: () => unknown): void {
55
55
  // Make sure items are not added multiple times. This can
56
56
  // happen when hot reloading the module that registers the
57
57
  // menu items. The title is used as the id which means we
@@ -26,7 +26,7 @@ let hmrUnavailableReason: string | null = null;
26
26
  let hmrOrigin: string | null = null;
27
27
  let currentCompileErrorMessage: string | null = null;
28
28
  let didConnect: boolean = false;
29
- let pendingLogs: Array<[LogLevel, $ReadOnlyArray<mixed>]> = [];
29
+ let pendingLogs: Array<[LogLevel, $ReadOnlyArray<unknown>]> = [];
30
30
 
31
31
  type LogLevel =
32
32
  | 'trace'
@@ -43,7 +43,7 @@ export type HMRClientNativeInterface = {
43
43
  enable(): void,
44
44
  disable(): void,
45
45
  registerBundle(requestUrl: string): void,
46
- log(level: LogLevel, data: $ReadOnlyArray<mixed>): void,
46
+ log(level: LogLevel, data: $ReadOnlyArray<unknown>): void,
47
47
  setup(
48
48
  platform: string,
49
49
  bundleEntry: string,
@@ -113,7 +113,7 @@ const HMRClient: HMRClientNativeInterface = {
113
113
  registerBundleEntryPoints(hmrClient);
114
114
  },
115
115
 
116
- log(level: LogLevel, data: $ReadOnlyArray<mixed>) {
116
+ log(level: LogLevel, data: $ReadOnlyArray<unknown>) {
117
117
  if (!hmrClient) {
118
118
  // Catch a reasonable number of early logs
119
119
  // in case hmrClient gets initialized later.
@@ -307,6 +307,7 @@ function setHMRUnavailableReason(reason: string) {
307
307
  DevLoadingView.showMessage(
308
308
  'Fast Refresh disconnected. Reload app to reconnect.',
309
309
  'error',
310
+ {dismissButton: true},
310
311
  );
311
312
  console.warn(reason);
312
313
  // (Not using the `warning` module to prevent a Buck cycle.)
@@ -20,11 +20,11 @@ const levelsMap = {
20
20
  fatal: 'error',
21
21
  };
22
22
 
23
- let warningHandler: ?(...Array<mixed>) => void = null;
23
+ let warningHandler: ?(...Array<unknown>) => void = null;
24
24
 
25
25
  const RCTLog = {
26
26
  // level one of log, info, warn, error, mustfix
27
- logIfNoNativeHook(level: string, ...args: Array<mixed>): void {
27
+ logIfNoNativeHook(level: string, ...args: Array<unknown>): void {
28
28
  // We already printed in the native console, so only log here if using a js debugger
29
29
  if (typeof global.nativeLoggingHook === 'undefined') {
30
30
  RCTLog.logToConsole(level, ...args);
@@ -37,7 +37,7 @@ const RCTLog = {
37
37
  },
38
38
 
39
39
  // Log to console regardless of nativeLoggingHook
40
- logToConsole(level: string, ...args: Array<mixed>): void {
40
+ logToConsole(level: string, ...args: Array<unknown>): void {
41
41
  // $FlowFixMe[invalid-computed-prop]
42
42
  const logFn = levelsMap[level];
43
43
  invariant(
@@ -124,7 +124,7 @@ function expectNoConsoleError() {
124
124
  async function expectRendersMatchingSnapshot(
125
125
  name: string,
126
126
  ComponentProvider: () => React.MixedElement,
127
- unmockComponent: () => mixed,
127
+ unmockComponent: () => unknown,
128
128
  ) {
129
129
  let instance;
130
130
 
@@ -10,7 +10,7 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- export type Scene = {name: string, [string]: mixed, ...};
13
+ export type Scene = {name: string, [string]: unknown, ...};
14
14
 
15
15
  let _listeners: Array<(scene: Scene) => void> = [];
16
16
 
@@ -17,7 +17,7 @@ type NativeCommandsOptions<T = string> = $ReadOnly<{
17
17
  function codegenNativeCommands<T: interface {}>(
18
18
  options: NativeCommandsOptions<$Keys<T>>,
19
19
  ): T {
20
- const commandObj: {[$Keys<T>]: (...$ReadOnlyArray<mixed>) => void} = {};
20
+ const commandObj: {[$Keys<T>]: (...$ReadOnlyArray<unknown>) => void} = {};
21
21
 
22
22
  options.supportedCommands.forEach(command => {
23
23
  // $FlowFixMe[missing-local-annot]
@@ -27,7 +27,7 @@
27
27
  * Freezing the object and adding the throw mechanism is expensive and will
28
28
  * only be used in DEV.
29
29
  */
30
- function deepFreezeAndThrowOnMutationInDev<T: {...} | Array<mixed>>(
30
+ function deepFreezeAndThrowOnMutationInDev<T: {...} | Array<unknown>>(
31
31
  object: T,
32
32
  ): T {
33
33
  if (__DEV__) {
@@ -43,7 +43,7 @@ function deepFreezeAndThrowOnMutationInDev<T: {...} | Array<mixed>>(
43
43
  }
44
44
 
45
45
  // $FlowFixMe[not-an-object] `object` can be an array, but Object.keys works with arrays too
46
- const keys = Object.keys((object: {...} | Array<mixed>));
46
+ const keys = Object.keys((object: {...} | Array<unknown>));
47
47
  // $FlowFixMe[method-unbinding] added when improving typing for this parameters
48
48
  const hasOwnProperty = Object.prototype.hasOwnProperty;
49
49
 
@@ -85,7 +85,7 @@ function throwOnImmutableMutation(key: empty, value) {
85
85
  );
86
86
  }
87
87
 
88
- function identity(value: mixed) {
88
+ function identity(value: unknown) {
89
89
  return value;
90
90
  }
91
91
 
@@ -15,7 +15,7 @@
15
15
  * `console.error` as a failure callback - it's not properly bound. If passes an
16
16
  * `Error` object, it will print the message and stack.
17
17
  */
18
- const logError = function (...args: $ReadOnlyArray<mixed>) {
18
+ const logError = function (...args: $ReadOnlyArray<unknown>) {
19
19
  if (args.length === 1 && args[0] instanceof Error) {
20
20
  const err = args[0];
21
21
  console.error('Error: "' + err.message + '". Stack:\n' + err.stack);
@@ -19,17 +19,17 @@ export function createStringifySafeWithLimits(limits: {
19
19
  maxStringLimit?: number,
20
20
  maxArrayLimit?: number,
21
21
  maxObjectKeysLimit?: number,
22
- }): mixed => string {
22
+ }): unknown => string {
23
23
  const {
24
24
  maxDepth = Number.POSITIVE_INFINITY,
25
25
  maxStringLimit = Number.POSITIVE_INFINITY,
26
26
  maxArrayLimit = Number.POSITIVE_INFINITY,
27
27
  maxObjectKeysLimit = Number.POSITIVE_INFINITY,
28
28
  } = limits;
29
- const stack: Array<mixed> = [];
29
+ const stack: Array<unknown> = [];
30
30
  /* $FlowFixMe[missing-this-annot] The 'this' type annotation(s) required by
31
31
  * Flow's LTI update could not be added via codemod */
32
- function replacer(key: string, value: mixed): mixed {
32
+ function replacer(key: string, value: unknown): unknown {
33
33
  while (stack.length && this !== stack[0]) {
34
34
  stack.shift();
35
35
  }
@@ -45,7 +45,7 @@ export function createStringifySafeWithLimits(limits: {
45
45
  return value;
46
46
  }
47
47
 
48
- let retval: mixed = value;
48
+ let retval: unknown = value;
49
49
  if (Array.isArray(value)) {
50
50
  if (stack.length >= maxDepth) {
51
51
  retval = `[ ... array with ${value.length} values ... ]`;
@@ -64,7 +64,7 @@ export function createStringifySafeWithLimits(limits: {
64
64
  retval = `{ ... object with ${keys.length} keys ... }`;
65
65
  } else if (keys.length > maxObjectKeysLimit) {
66
66
  // Return a sample of the keys.
67
- retval = ({}: {[string]: mixed});
67
+ retval = ({}: {[string]: unknown});
68
68
  for (let k of keys.slice(0, maxObjectKeysLimit)) {
69
69
  retval[k] = value[k];
70
70
  }
@@ -76,7 +76,7 @@ export function createStringifySafeWithLimits(limits: {
76
76
  return retval;
77
77
  }
78
78
 
79
- return function stringifySafe(arg: mixed): string {
79
+ return function stringifySafe(arg: unknown): string {
80
80
  if (arg === undefined) {
81
81
  return 'undefined';
82
82
  } else if (arg === null) {
@@ -111,7 +111,7 @@ export function createStringifySafeWithLimits(limits: {
111
111
  };
112
112
  }
113
113
 
114
- const stringifySafe: mixed => string = createStringifySafeWithLimits({
114
+ const stringifySafe: unknown => string = createStringifySafeWithLimits({
115
115
  maxDepth: 10,
116
116
  maxStringLimit: 100,
117
117
  maxArrayLimit: 50,
@@ -10,7 +10,7 @@
10
10
 
11
11
  import {useCallback, useRef} from 'react';
12
12
 
13
- type CallbackRef<T> = T => mixed;
13
+ type CallbackRef<T> = T => unknown;
14
14
 
15
15
  /**
16
16
  * Constructs a callback ref that provides similar semantics as `useEffect`. The
@@ -33,10 +33,10 @@ let isInterceptorEnabled = false;
33
33
 
34
34
  /**
35
35
  * A network interceptor which monkey-patches RCTWebSocketModule methods
36
- * to gather all websocket network requests/responses, in order to show
37
- * their information in the React Native inspector development tool.
36
+ * to gather all websocket network events.
37
+ *
38
+ * @deprecated Since React Native 0.84
38
39
  */
39
-
40
40
  const WebSocketInterceptor = {
41
41
  /**
42
42
  * Invoked when RCTWebSocketModule.close(...) is called.
@@ -12,8 +12,15 @@ import typeof {enable} from 'promise/setimmediate/rejection-tracking';
12
12
 
13
13
  import ExceptionsManager from './Core/ExceptionsManager';
14
14
 
15
- let rejectionTrackingOptions: $NonMaybeType<Parameters<enable>[0]> = {
15
+ const rejectionTrackingOptions: NonNullable<Parameters<enable>[0]> = {
16
16
  allRejections: true,
17
+ onHandled: id => {
18
+ const warning =
19
+ `Promise rejection handled (id: ${id})\n` +
20
+ 'This means you can ignore any previous messages of the form ' +
21
+ `"Uncaught (in promise, id: ${id})"`;
22
+ console.warn(warning);
23
+ },
17
24
  onUnhandled: (id, rejection) => {
18
25
  let message: string;
19
26
 
@@ -46,13 +53,6 @@ let rejectionTrackingOptions: $NonMaybeType<Parameters<enable>[0]> = {
46
53
  false /* isFatal */,
47
54
  );
48
55
  },
49
- onHandled: id => {
50
- const warning =
51
- `Promise rejection handled (id: ${id})\n` +
52
- 'This means you can ignore any previous messages of the form ' +
53
- `"Uncaught (in promise, id: ${id})"`;
54
- console.warn(warning);
55
- },
56
56
  };
57
57
 
58
58
  export default rejectionTrackingOptions;
@@ -9,30 +9,30 @@
9
9
  */
10
10
 
11
11
  // From @react-native/js-polyfills
12
- type ErrorHandler = (error: mixed, isFatal: boolean) => void;
13
- type Fn<Args: $ReadOnlyArray<mixed>, Return> = (...Args) => Return;
12
+ type ErrorHandler = (error: unknown, isFatal: boolean) => void;
13
+ type Fn<Args: $ReadOnlyArray<unknown>, Return> = (...Args) => Return;
14
14
  export type ErrorUtils = {
15
- applyWithGuard<TArgs: $ReadOnlyArray<mixed>, TOut>(
15
+ applyWithGuard<TArgs: $ReadOnlyArray<unknown>, TOut>(
16
16
  fun: Fn<TArgs, TOut>,
17
- context?: mixed,
17
+ context?: unknown,
18
18
  args?: ?TArgs,
19
19
  unused_onError?: null,
20
20
  unused_name?: ?string,
21
21
  ): ?TOut,
22
- applyWithGuardIfNeeded<TArgs: $ReadOnlyArray<mixed>, TOut>(
22
+ applyWithGuardIfNeeded<TArgs: $ReadOnlyArray<unknown>, TOut>(
23
23
  fun: Fn<TArgs, TOut>,
24
- context?: mixed,
24
+ context?: unknown,
25
25
  args?: ?TArgs,
26
26
  ): ?TOut,
27
27
  getGlobalHandler(): ErrorHandler,
28
- guard<TArgs: $ReadOnlyArray<mixed>, TOut>(
28
+ guard<TArgs: $ReadOnlyArray<unknown>, TOut>(
29
29
  fun: Fn<TArgs, TOut>,
30
30
  name?: ?string,
31
- context?: mixed,
31
+ context?: unknown,
32
32
  ): ?(...TArgs) => ?TOut,
33
33
  inGuard(): boolean,
34
- reportError(error: mixed): void,
35
- reportFatalError(error: mixed): void,
34
+ reportError(error: unknown): void,
35
+ reportFatalError(error: unknown): void,
36
36
  setGlobalHandler(fun: ErrorHandler): void,
37
37
  };
38
38
 
@@ -20,8 +20,8 @@ export interface IEventEmitter<
20
20
  > {
21
21
  addListener<TEvent: $Keys<TEventToArgsMap>>(
22
22
  eventType: TEvent,
23
- listener: (...args: TEventToArgsMap[TEvent]) => mixed,
24
- context?: mixed,
23
+ listener: (...args: TEventToArgsMap[TEvent]) => unknown,
24
+ context?: unknown,
25
25
  ): EventSubscription;
26
26
 
27
27
  emit<TEvent: $Keys<TEventToArgsMap>>(
@@ -35,8 +35,8 @@ export interface IEventEmitter<
35
35
  }
36
36
 
37
37
  interface Registration<TArgs> {
38
- +context: mixed;
39
- +listener: (...args: TArgs) => mixed;
38
+ +context: unknown;
39
+ +listener: (...args: TArgs) => unknown;
40
40
  +remove: () => void;
41
41
  }
42
42
 
@@ -85,8 +85,8 @@ export default class EventEmitter<
85
85
  */
86
86
  addListener<TEvent: $Keys<TEventToArgsMap>>(
87
87
  eventType: TEvent,
88
- listener: (...args: TEventToArgsMap[TEvent]) => mixed,
89
- context: mixed,
88
+ listener: (...args: TEventToArgsMap[TEvent]) => unknown,
89
+ context: unknown,
90
90
  ): EventSubscription {
91
91
  if (typeof listener !== 'function') {
92
92
  throw new TypeError(
@@ -59,7 +59,7 @@ declare type $HermesInternalType = {
59
59
  +getRuntimeProperties?: () => {
60
60
  'OSS Release Version': string,
61
61
  Build: string,
62
- [string]: mixed,
62
+ [string]: unknown,
63
63
  },
64
64
 
65
65
  /**
@@ -93,10 +93,10 @@ declare type $HermesInternalType = {
93
93
  */
94
94
  +enablePromiseRejectionTracker?: (
95
95
  options: ?{
96
- whitelist?: ?Array<mixed>,
96
+ whitelist?: ?Array<unknown>,
97
97
  allRejections?: ?boolean,
98
- onUnhandled?: ?(number, mixed) => void,
99
- onHandled?: ?(number, mixed) => void,
98
+ onUnhandled?: ?(number, unknown) => void,
99
+ onHandled?: ?(number, unknown) => void,
100
100
  },
101
101
  ) => void,
102
102
 
@@ -108,7 +108,7 @@ declare type $HermesInternalType = {
108
108
  /**
109
109
  * Enqueue a JavaScript callback function as a Job into the engine Job queue.
110
110
  */
111
- +enqueueJob?: <TArguments: Array<mixed>>(
112
- jobCallback: (...args: TArguments) => mixed,
111
+ +enqueueJob?: <TArguments: Array<unknown>>(
112
+ jobCallback: (...args: TArguments) => unknown,
113
113
  ) => void,
114
114
  };
package/flow/bom.js.flow CHANGED
@@ -25,34 +25,38 @@ type DevToolsColor =
25
25
  | 'warning'
26
26
  | 'error';
27
27
 
28
+ declare interface ConsoleTask {
29
+ run<T>(f: () => T): T;
30
+ }
31
+
28
32
  // $FlowExpectedError[libdef-override] Flow core definitions are incomplete.
29
33
  declare var console: {
30
34
  // Logging
31
- log(...data: $ReadOnlyArray<mixed>): void,
32
- trace(...data: $ReadOnlyArray<mixed>): void,
33
- debug(...data: $ReadOnlyArray<mixed>): void,
34
- info(...data: $ReadOnlyArray<mixed>): void,
35
- warn(...data: $ReadOnlyArray<mixed>): void,
36
- error(...data: $ReadOnlyArray<mixed>): void,
35
+ log(...data: $ReadOnlyArray<unknown>): void,
36
+ trace(...data: $ReadOnlyArray<unknown>): void,
37
+ debug(...data: $ReadOnlyArray<unknown>): void,
38
+ info(...data: $ReadOnlyArray<unknown>): void,
39
+ warn(...data: $ReadOnlyArray<unknown>): void,
40
+ error(...data: $ReadOnlyArray<unknown>): void,
37
41
 
38
42
  // Grouping
39
- group(...data: $ReadOnlyArray<mixed>): void,
40
- groupCollapsed(...data: $ReadOnlyArray<mixed>): void,
43
+ group(...data: $ReadOnlyArray<unknown>): void,
44
+ groupCollapsed(...data: $ReadOnlyArray<unknown>): void,
41
45
  groupEnd(): void,
42
46
 
43
47
  // Printing
44
48
  table(
45
49
  tabularData:
46
- | $ReadOnly<{[key: string]: mixed, ...}>
47
- | $ReadOnlyArray<$ReadOnly<{[key: string]: mixed, ...}>>
48
- | $ReadOnlyArray<$ReadOnlyArray<mixed>>,
50
+ | $ReadOnly<{[key: string]: unknown, ...}>
51
+ | $ReadOnlyArray<$ReadOnly<{[key: string]: unknown, ...}>>
52
+ | $ReadOnlyArray<$ReadOnlyArray<unknown>>,
49
53
  ): void,
50
- dir(...data: $ReadOnlyArray<mixed>): void,
51
- dirxml(...data: $ReadOnlyArray<mixed>): void,
54
+ dir(...data: $ReadOnlyArray<unknown>): void,
55
+ dirxml(...data: $ReadOnlyArray<unknown>): void,
52
56
  clear(): void,
53
57
 
54
58
  // Utilities
55
- assert(condition: mixed, ...data: $ReadOnlyArray<mixed>): void,
59
+ assert(condition: unknown, ...data: $ReadOnlyArray<unknown>): void,
56
60
 
57
61
  // Profiling
58
62
  profile(name?: string): void,
@@ -72,9 +76,12 @@ declare var console: {
72
76
  trackName?: string,
73
77
  trackGroup?: string,
74
78
  color?: DevToolsColor,
75
- detail?: {[string]: mixed},
79
+ detail?: {[string]: unknown},
76
80
  ): void,
77
81
 
82
+ // Stack tagging
83
+ createTask(label: string): ConsoleTask,
84
+
78
85
  ...
79
86
  };
80
87
 
@@ -107,12 +114,12 @@ declare class PerformanceEntry {
107
114
  // https://w3c.github.io/user-timing/#performancemark
108
115
  declare class PerformanceMark extends PerformanceEntry {
109
116
  constructor(name: string, markOptions?: PerformanceMarkOptions): void;
110
- +detail: mixed;
117
+ +detail: unknown;
111
118
  }
112
119
 
113
120
  // https://w3c.github.io/user-timing/#performancemeasure
114
121
  declare class PerformanceMeasure extends PerformanceEntry {
115
- +detail: mixed;
122
+ +detail: unknown;
116
123
  }
117
124
 
118
125
  // https://w3c.github.io/server-timing/#the-performanceservertiming-interface
@@ -170,12 +177,12 @@ declare class PerformanceLongTaskTiming extends PerformanceEntry {
170
177
 
171
178
  // https://www.w3.org/TR/user-timing/#extensions-performance-interface
172
179
  declare type PerformanceMarkOptions = {
173
- detail?: mixed,
180
+ detail?: unknown,
174
181
  startTime?: number,
175
182
  };
176
183
 
177
184
  declare type PerformanceMeasureOptions = {
178
- detail?: mixed,
185
+ detail?: unknown,
179
186
  duration?: number,
180
187
  end?: number | string,
181
188
  start?: number | string,
@@ -242,7 +249,7 @@ declare class PerformanceObserver {
242
249
  callback: (
243
250
  entries: PerformanceObserverEntryList,
244
251
  observer: PerformanceObserver,
245
- ) => mixed,
252
+ ) => unknown,
246
253
  ): void;
247
254
 
248
255
  disconnect(): void;
@@ -338,10 +345,10 @@ declare class WebSocket extends EventTarget {
338
345
  CONNECTING: 0;
339
346
  constructor(url: string, protocols?: string | Array<string>): void;
340
347
  extensions: string;
341
- onclose: (ev: CloseEvent) => mixed;
342
- onerror: (ev: $FlowFixMe) => mixed;
343
- onmessage: (ev: MessageEvent) => mixed;
344
- onopen: (ev: $FlowFixMe) => mixed;
348
+ onclose: (ev: CloseEvent) => unknown;
349
+ onerror: (ev: $FlowFixMe) => unknown;
350
+ onmessage: (ev: MessageEvent) => unknown;
351
+ onopen: (ev: $FlowFixMe) => unknown;
345
352
  static OPEN: 1;
346
353
  OPEN: 1;
347
354
  protocol: string;
@@ -371,7 +378,7 @@ declare class XMLHttpRequest extends EventTarget {
371
378
  onloadend: ProgressEventHandler;
372
379
  onloadstart: ProgressEventHandler;
373
380
  onprogress: ProgressEventHandler;
374
- onreadystatechange: (ev: $FlowFixMe) => mixed;
381
+ onreadystatechange: (ev: $FlowFixMe) => unknown;
375
382
  ontimeout: ProgressEventHandler;
376
383
  open(
377
384
  method: string,
@@ -434,7 +441,7 @@ declare class Headers {
434
441
  value: string,
435
442
  name: string,
436
443
  headers: Headers,
437
- ) => mixed,
444
+ ) => unknown,
438
445
  thisArg: This,
439
446
  ): void;
440
447
  get(name: string): null | string;
@@ -464,7 +471,7 @@ declare class URLSearchParams {
464
471
  value: string,
465
472
  name: string,
466
473
  params: URLSearchParams,
467
- ) => mixed,
474
+ ) => unknown,
468
475
  thisArg: This,
469
476
  ): void;
470
477
  get(name: string): null | string;
@@ -604,7 +611,7 @@ declare class AbortController {
604
611
  declare class AbortSignal extends EventTarget {
605
612
  abort(reason?: $FlowFixMe): AbortSignal;
606
613
  +aborted: boolean;
607
- onabort: (event: Event) => mixed;
614
+ onabort: (event: Event) => unknown;
608
615
  +reason: $FlowFixMe;
609
616
  throwIfAborted(): void;
610
617
  timeout(time: number): AbortSignal;
@@ -524,9 +524,9 @@ declare class Animation extends EventTarget {
524
524
  finish(): void;
525
525
  +finished: Promise<Animation>;
526
526
  id: string;
527
- oncancel: ?(ev: AnimationPlaybackEvent) => mixed;
528
- onfinish: ?(ev: AnimationPlaybackEvent) => mixed;
529
- onremove: ?(ev: AnimationPlaybackEvent) => mixed;
527
+ oncancel: ?(ev: AnimationPlaybackEvent) => unknown;
528
+ onfinish: ?(ev: AnimationPlaybackEvent) => unknown;
529
+ onremove: ?(ev: AnimationPlaybackEvent) => unknown;
530
530
  pause(): void;
531
531
  +pending: boolean;
532
532
  persist(): void;