From be4c24dbd42d2a1900008cb853995208b9a9c8ea Mon Sep 17 00:00:00 2001 From: Sam Zhou Date: Wed, 1 Apr 2026 16:43:57 -0400 Subject: [PATCH] Switch to modern flow syntax for utility types and bounds --- .flowconfig | 11 + apps/platform-tests/src/components/App.js | 2 +- .../src/components/tokens.css.js | 6 +- flow-typed/environments/bom.js | 212 ++++----- flow-typed/environments/dom.js | 270 ++++++------ flow-typed/environments/html.js | 6 +- flow-typed/environments/indexeddb.js | 22 +- flow-typed/environments/jsx.js | 404 +++++++++--------- flow-typed/environments/node.js | 164 +++---- flow-typed/environments/serviceworkers.js | 4 +- flow-typed/environments/web-animations.js | 6 +- flow-typed/environments/webassembly.js | 2 +- flow-typed/npm/styleq.js | 6 +- .../src/native/Animation.js | 2 +- .../src/shared/SharedAnimatedTypes.js | 30 +- .../src/web/Animation.js | 2 +- .../src/web/nodes/AnimatedInterpolation.js | 14 +- .../src/web/nodes/AnimatedStyle.js | 4 +- .../src/web/nodes/AnimatedTransform.js | 4 +- .../src/web/nodes/AnimatedValue.js | 6 +- .../src/web/nodes/AnimatedWithChildren.js | 8 +- .../src/web/types/AnimatedTypes.js | 2 +- .../src/web/useAnimatedStyle.js | 50 +-- .../src/native/css/CSSLengthUnitValue.js | 2 +- .../src/native/css/CSSTransformValue.js | 8 +- .../src/native/css/customProperties.js | 4 +- .../src/native/css/flattenStyleXStyles.js | 8 +- .../react-strict-dom/src/native/css/index.js | 22 +- .../src/native/css/parseTextShadow.js | 4 +- .../src/native/css/processStyle.js | 6 +- packages/react-strict-dom/src/native/index.js | 4 +- .../native/modules/ContextInheritedStyles.js | 2 +- .../native/modules/ContextViewportScale.js | 4 +- .../src/native/modules/TextString.js | 2 +- .../modules/createStrictDOMComponent.js | 4 +- .../modules/createStrictDOMImageComponent.js | 5 +- .../modules/createStrictDOMTextComponent.js | 6 +- .../createStrictDOMTextInputComponent.js | 5 +- .../src/native/modules/mediaQuery.js.flow | 2 +- .../src/native/modules/shallowEqual.js | 2 +- .../src/native/modules/useNativeProps.js | 4 +- .../src/native/modules/useStrictDOMElement.js | 2 +- .../src/native/modules/useStyleTransition.js | 22 +- .../react-strict-dom/src/shared/mergeRefs.js | 2 +- .../react-strict-dom/src/types/StrictProps.js | 2 +- .../src/types/StrictReactDOMAnchorProps.js | 2 +- .../src/types/StrictReactDOMImageProps.js | 2 +- .../src/types/StrictReactDOMInputProps.js | 2 +- .../src/types/StrictReactDOMLabelProps.js | 2 +- .../src/types/StrictReactDOMListItemProps.js | 2 +- .../types/StrictReactDOMOptionGroupProps.js | 2 +- .../src/types/StrictReactDOMOptionProps.js | 2 +- .../src/types/StrictReactDOMProps.js | 8 +- .../src/types/StrictReactDOMSelectProps.js | 2 +- .../src/types/StrictReactDOMTextAreaProps.js | 2 +- .../react-strict-dom/src/types/Utilities.js | 2 +- packages/react-strict-dom/src/types/react.js | 2 +- .../src/types/renderer.native.js | 28 +- .../src/types/renderer.web.js | 4 +- packages/react-strict-dom/src/types/styles.js | 8 +- .../react-strict-dom/src/web/css/merge.js | 16 +- .../web/modules/createStrictDOMComponent.js | 2 +- 62 files changed, 733 insertions(+), 714 deletions(-) diff --git a/.flowconfig b/.flowconfig index 5163ecc2..1d2651bc 100644 --- a/.flowconfig +++ b/.flowconfig @@ -18,6 +18,17 @@ module.system.node.resolve_dirname=flow_modules module.system.node.resolve_dirname=node_modules react.runtime=automatic +experimental.ts_utility_syntax=true +experimental.deprecated_utilities='$ReadOnlyArray' -> '/' +experimental.deprecated_utilities='$NonMaybeType' -> '/' +experimental.deprecated_utilities='$ReadOnly' -> '/' +experimental.deprecated_utilities='mixed' -> '/' +experimental.deprecated_utilities='$ReadOnlyMap' -> '/' +experimental.deprecated_utilities='$ReadOnlySet' -> '/' +experimental.deprecated_utilities='$Keys' -> '/' +experimental.deprecated_utilities='$Values' -> '/' +experimental.deprecated_colon_extends=/ + [strict] nonstrict-import sketchy-null diff --git a/apps/platform-tests/src/components/App.js b/apps/platform-tests/src/components/App.js index 7a7abab3..4e4e6b38 100644 --- a/apps/platform-tests/src/components/App.js +++ b/apps/platform-tests/src/components/App.js @@ -12,7 +12,7 @@ import { ScrollView } from 'react-native'; import { css, html } from 'react-strict-dom'; import { tokens, themeColors, systemColors } from './tokens.css.js'; -type ExampleBlockProps = $ReadOnly<{ +type ExampleBlockProps = Readonly<{ title: string, children: React.Node }>; diff --git a/apps/platform-tests/src/components/tokens.css.js b/apps/platform-tests/src/components/tokens.css.js index 3e5d7820..7c198dd7 100644 --- a/apps/platform-tests/src/components/tokens.css.js +++ b/apps/platform-tests/src/components/tokens.css.js @@ -12,7 +12,7 @@ import type { StyleVars } from 'react-strict-dom'; import { css } from 'react-strict-dom'; export const tokens: StyleVars< - $ReadOnly<{ + Readonly<{ squareColor: string, textColor: string, inputColor: string, @@ -29,7 +29,7 @@ export const tokens: StyleVars< }); export const themeColors: StyleVars< - $ReadOnly<{ + Readonly<{ primary100: string, primary200: string }> @@ -39,7 +39,7 @@ export const themeColors: StyleVars< }); export const systemColors: StyleVars< - $ReadOnly<{ + Readonly<{ squareColor: string, outlineColor: string }> diff --git a/flow-typed/environments/bom.js b/flow-typed/environments/bom.js index 86f75446..a575c445 100644 --- a/flow-typed/environments/bom.js +++ b/flow-typed/environments/bom.js @@ -18,7 +18,7 @@ declare class Screen { lock(): Promise; unlock(): void; angle: number; - onchange: () => mixed; + onchange: () => unknown; type: 'portrait-primary' | 'portrait-secondary' | 'landscape-primary' | 'landscape-secondary'; ... }; @@ -26,7 +26,7 @@ declare class Screen { mozLockOrientation?: (orientation: string | Array) => boolean; mozUnlockOrientation?: () => void; mozOrientation?: string; - onmozorientationchange?: (...args: any[]) => mixed; + onmozorientationchange?: (...args: any[]) => unknown; } declare var screen: Screen; @@ -34,7 +34,7 @@ declare var screen: Screen; declare interface Crypto { // Not using $TypedArray as that would include Float32Array and Float64Array which are not accepted getRandomValues: < - T: Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | BigInt64Array | BigUint64Array + T extends Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | BigInt64Array | BigUint64Array >(typedArray: T) => T; randomUUID: () => string; } @@ -84,10 +84,10 @@ type BatteryManager = { +chargingTime: number, +dischargingTime: number, +level: number, - onchargingchange: ?((event: any) => mixed), - onchargingtimechange: ?((event: any) => mixed), - ondischargingtimechange: ?((event: any) => mixed), - onlevelchange: ?((event: any) => mixed), + onchargingchange: ?((event: any) => unknown), + onchargingtimechange: ?((event: any) => unknown), + ondischargingtimechange: ?((event: any) => unknown), + onlevelchange: ?((event: any) => unknown), ... } @@ -159,7 +159,7 @@ type FileSystemHandlePermissionDescriptor = {| |} declare class PermissionStatus extends EventTarget { - onchange: ?((event: any) => mixed); + onchange: ?((event: any) => unknown); +state: PermissionState; } @@ -212,13 +212,13 @@ declare class MIDIPort extends EventTarget { +version?: string; +state: MIDIPortDeviceState; +connection: MIDIPortConnectionState; - onstatechange: ?((ev: MIDIConnectionEvent) => mixed); + onstatechange: ?((ev: MIDIConnectionEvent) => unknown); open(): Promise; close(): Promise; } declare class MIDIInput extends MIDIPort { - onmidimessage: ?((ev: MIDIMessageEvent) => mixed); + onmidimessage: ?((ev: MIDIMessageEvent) => unknown); } declare class MIDIOutput extends MIDIPort { @@ -234,7 +234,7 @@ declare class MIDIAccess extends EventTarget { +inputs: MIDIInputMap; +outputs: MIDIOutputMap; +sysexEnabled: boolean; - onstatechange: ?((ev: MIDIConnectionEvent) => mixed); + onstatechange: ?((ev: MIDIConnectionEvent) => unknown); } declare class NavigatorID { @@ -248,7 +248,7 @@ declare class NavigatorID { declare class NavigatorLanguage { +language: string; - +languages: $ReadOnlyArray; + +languages: ReadonlyArray; } declare class NavigatorContentUtils { @@ -360,7 +360,7 @@ declare class Navigator mixins declare class Clipboard extends EventTarget { read(): Promise; readText(): Promise; - write(data: $ReadOnlyArray): Promise; + write(data: ReadonlyArray): Promise; writeText(data: string): Promise; } @@ -504,7 +504,7 @@ declare class TaskAttributionTiming extends PerformanceEntry { // https://w3c.github.io/longtasks/#sec-PerformanceLongTaskTiming declare class PerformanceLongTaskTiming extends PerformanceEntry { - attribution: $ReadOnlyArray; + attribution: ReadonlyArray; } // https://www.w3.org/TR/navigation-timing-2/ @@ -523,12 +523,12 @@ declare class PerformanceNavigationTiming extends PerformanceResourceTiming { // https://www.w3.org/TR/user-timing/#extensions-performance-interface declare type PerformanceMarkOptions = {| - detail?: mixed, + detail?: unknown, startTime?: number, |}; declare type PerformanceMeasureOptions = {| - detail?: mixed, + detail?: unknown, start?: number | string, end?: number | string, duration?: number, @@ -560,7 +560,7 @@ declare class Performance { navigation: PerformanceNavigation; timing: PerformanceTiming; - onresourcetimingbufferfull: (ev: any) => mixed; + onresourcetimingbufferfull: (ev: any) => unknown; clearMarks(name?: string): void; clearMeasures(name?: string): void; clearResourceTimings(): void; @@ -592,7 +592,7 @@ type PerformanceObserverInit = { } declare class PerformanceObserver { - constructor(callback: (entries: PerformanceObserverEntryList, observer: PerformanceObserver) => mixed): void; + constructor(callback: (entries: PerformanceObserverEntryList, observer: PerformanceObserver) => unknown): void; observe(options: ?PerformanceObserverInit): void; disconnect(): void; @@ -677,7 +677,7 @@ declare type IntersectionObserverEntry = { declare type IntersectionObserverCallback = ( entries: Array, observer: IntersectionObserver, -) => mixed; +) => unknown; declare type IntersectionObserverOptions = { root?: Node | null, @@ -721,19 +721,19 @@ declare interface ResizeObserverEntry { * An array containing the Element's border box size when * ResizeObserverCallback is invoked. */ - +borderBoxSize: $ReadOnlyArray; + +borderBoxSize: ReadonlyArray; /** * An array containing the Element's content rect size when * ResizeObserverCallback is invoked. */ - +contentBoxSize: $ReadOnlyArray; + +contentBoxSize: ReadonlyArray; /** * An array containing the Element's content rect size in integral device * pixels when ResizeObserverCallback is invoked. * * Not implemented in Firefox or Safari as of July 2021 */ - +devicePixelContentBoxSize?: $ReadOnlyArray | void; + +devicePixelContentBoxSize?: ReadonlyArray | void; } /** @@ -755,7 +755,7 @@ declare type ResizeObserverOptions = { * The ResizeObserver interface is used to observe changes to Element's size. */ declare class ResizeObserver { - constructor(callback: (entries: ResizeObserverEntry[], observer: ResizeObserver) => mixed): void; + constructor(callback: (entries: ResizeObserverEntry[], observer: ResizeObserver) => unknown): void; /** * Adds target to the list of observed elements. */ @@ -783,10 +783,10 @@ declare class WebSocket extends EventTarget { readyState: number; bufferedAmount: number; extensions: string; - onopen: (ev: any) => mixed; - onmessage: (ev: MessageEvent) => mixed; - onclose: (ev: CloseEvent) => mixed; - onerror: (ev: any) => mixed; + onopen: (ev: any) => unknown; + onmessage: (ev: MessageEvent) => unknown; + onclose: (ev: CloseEvent) => unknown; + onerror: (ev: any) => unknown; binaryType: 'blob' | 'arraybuffer'; url: string; close(code?: number, reason?: string): void; @@ -809,9 +809,9 @@ type WorkerOptions = { declare class Worker extends EventTarget { constructor(stringUrl: string | TrustedScriptURL, workerOptions?: WorkerOptions): void; - onerror: null | (ev: any) => mixed; - onmessage: null | (ev: MessageEvent) => mixed; - onmessageerror: null | (ev: MessageEvent) => mixed; + onerror: null | (ev: any) => unknown; + onmessage: null | (ev: MessageEvent) => unknown; + onmessageerror: null | (ev: MessageEvent) => unknown; postMessage(message: any, ports?: any): void; terminate(): void; } @@ -820,7 +820,7 @@ declare class SharedWorker extends EventTarget { constructor(stringUrl: string | TrustedScriptURL, name?: string): void; constructor(stringUrl: string | TrustedScriptURL, workerOptions?: WorkerOptions): void; port: MessagePort; - onerror: (ev: any) => mixed; + onerror: (ev: any) => unknown; } declare function importScripts(...urls: Array): void; @@ -832,23 +832,23 @@ declare class WorkerGlobalScope extends EventTarget { navigator: WorkerNavigator; close(): void; importScripts(...urls: Array): void; - onerror: (ev: any) => mixed; - onlanguagechange: (ev: any) => mixed; - onoffline: (ev: any) => mixed; - ononline: (ev: any) => mixed; - onrejectionhandled: (ev: PromiseRejectionEvent) => mixed; - onunhandledrejection: (ev: PromiseRejectionEvent) => mixed; + onerror: (ev: any) => unknown; + onlanguagechange: (ev: any) => unknown; + onoffline: (ev: any) => unknown; + ononline: (ev: any) => unknown; + onrejectionhandled: (ev: PromiseRejectionEvent) => unknown; + onunhandledrejection: (ev: PromiseRejectionEvent) => unknown; } declare class DedicatedWorkerGlobalScope extends WorkerGlobalScope { - onmessage: (ev: MessageEvent) => mixed; - onmessageerror: (ev: MessageEvent) => mixed; + onmessage: (ev: MessageEvent) => unknown; + onmessageerror: (ev: MessageEvent) => unknown; postMessage(message: any, transfer?: Iterable): void; } declare class SharedWorkerGlobalScope extends WorkerGlobalScope { name: string; - onconnect: (ev: MessageEvent) => mixed; + onconnect: (ev: MessageEvent) => unknown; } declare class WorkerLocation { @@ -875,10 +875,10 @@ declare class WorkerNavigator mixins // deprecated declare class XDomainRequest { timeout: number; - onerror: () => mixed; - onload: () => mixed; - onprogress: () => mixed; - ontimeout: () => mixed; + onerror: () => unknown; + onload: () => unknown; + onprogress: () => unknown; + ontimeout: () => unknown; +responseText: string; +contentType: string; open(method: "GET" | "POST", url: string): void; @@ -902,7 +902,7 @@ declare class XMLHttpRequest extends EventTarget { responseURL: string; ontimeout: ProgressEventHandler; statusText: string; - onreadystatechange: (ev: any) => mixed; + onreadystatechange: (ev: any) => unknown; timeout: number; onload: ProgressEventHandler; response: any; @@ -948,13 +948,13 @@ declare class XMLSerializer { declare class Geolocation { getCurrentPosition( - success: (position: Position) => mixed, - error?: (error: PositionError) => mixed, + success: (position: Position) => unknown, + error?: (error: PositionError) => unknown, options?: PositionOptions ): void; watchPosition( - success: (position: Position) => mixed, - error?: (error: PositionError) => mixed, + success: (position: Position) => unknown, + error?: (error: PositionError) => unknown, options?: PositionOptions ): number; clearWatch(id: number): void; @@ -1026,7 +1026,7 @@ declare class BaseAudioContext extends EventTarget { listener: AudioListener; sampleRate: number; state: AudioContextState; - onstatechange: (ev: any) => mixed; + onstatechange: (ev: any) => unknown; createBuffer(numOfChannels: number, length: number, sampleRate: number): AudioBuffer; createBufferSource(myMediaElement?: HTMLMediaElement): AudioBufferSourceNode; createMediaElementSource(myMediaElement: HTMLMediaElement): MediaElementAudioSourceNode; @@ -1052,7 +1052,7 @@ declare class BaseAudioContext extends EventTarget { createPeriodicWave(real: Float32Array, img: Float32Array, options?: { disableNormalization: boolean, ... }): PeriodicWave; createStereoPanner(): StereoPannerNode; createWaveShaper(): WaveShaperNode; - decodeAudioData(arrayBuffer: ArrayBuffer, decodeSuccessCallback: (decodedData: AudioBuffer) => mixed, decodeErrorCallback: (err: DOMError) => mixed): void; + decodeAudioData(arrayBuffer: ArrayBuffer, decodeSuccessCallback: (decodedData: AudioBuffer) => unknown, decodeErrorCallback: (err: DOMError) => unknown): void; decodeAudioData(arrayBuffer: ArrayBuffer): Promise; } @@ -1079,7 +1079,7 @@ declare class OfflineAudioContext extends BaseAudioContext { startRendering(): Promise; suspend(suspendTime: number): Promise; length: number; - oncomplete: (ev: OfflineAudioCompletionEvent) => mixed; + oncomplete: (ev: OfflineAudioCompletionEvent) => unknown; } declare class AudioNode extends EventTarget { @@ -1140,7 +1140,7 @@ declare class AudioBufferSourceNode extends AudioNode { loopStart: number; loopEnd: number; playbackRate: AudioParam; - onended: (ev: any) => mixed; + onended: (ev: any) => unknown; start(when?: number, offset?: number, duration?: number): void; stop(when?: number): void; } @@ -1279,7 +1279,7 @@ type MediaTrackCapabilities = { } declare class MediaDevices extends EventTarget { - ondevicechange: (ev: any) => mixed; + ondevicechange: (ev: any) => unknown; enumerateDevices: () => Promise>; getSupportedConstraints: () => MediaTrackSupportedConstraints; getDisplayMedia: (constraints?: DisplayMediaStreamConstraints) => Promise; @@ -1308,12 +1308,12 @@ declare class MediaRecorder extends EventTarget { +mimeType: string; +state: 'inactive' | 'recording' | 'paused'; - onstart: (ev: any) => mixed; - onstop: (ev: any) => mixed; - ondataavailable: (ev: any) => mixed; - onpause: (ev: any) => mixed; - onresume: (ev: any) => mixed; - onerror: (ev: any) => mixed; + onstart: (ev: any) => unknown; + onstop: (ev: any) => unknown; + ondataavailable: (ev: any) => unknown; + onpause: (ev: any) => unknown; + onresume: (ev: any) => unknown; + onerror: (ev: any) => unknown; +videoBitsPerSecond: number; +audioBitsPerSecond: number; @@ -1332,11 +1332,11 @@ declare class MediaStream extends EventTarget { active: boolean; ended: boolean; id: string; - onactive: (ev: any) => mixed; - oninactive: (ev: any) => mixed; - onended: (ev: any) => mixed; - onaddtrack: (ev: MediaStreamTrackEvent) => mixed; - onremovetrack: (ev: MediaStreamTrackEvent) => mixed; + onactive: (ev: any) => unknown; + oninactive: (ev: any) => unknown; + onended: (ev: any) => unknown; + onaddtrack: (ev: MediaStreamTrackEvent) => unknown; + onremovetrack: (ev: MediaStreamTrackEvent) => unknown; addTrack(track: MediaStreamTrack): void; clone(): MediaStream; getAudioTracks(): MediaStreamTrack[]; @@ -1356,11 +1356,11 @@ declare class MediaStreamTrack extends EventTarget { readyState: 'live' | 'ended'; remote: boolean; contentHint?: string; - onstarted: (ev: any) => mixed; - onmute: (ev: any) => mixed; - onunmute: (ev: any) => mixed; - onoverconstrained: (ev: any) => mixed; - onended: (ev: any) => mixed; + onstarted: (ev: any) => unknown; + onmute: (ev: any) => unknown; + onunmute: (ev: any) => unknown; + onoverconstrained: (ev: any) => unknown; + onended: (ev: any) => unknown; getConstraints(): MediaTrackConstraints; applyConstraints(constraints?: MediaTrackConstraints): Promise; getSettings(): MediaTrackSettings; @@ -1384,7 +1384,7 @@ declare class MediaStreamAudioDestinationNode extends AudioNode { // deprecated declare class ScriptProcessorNode extends AudioNode { bufferSize: number; - onaudioprocess: (ev: AudioProcessingEvent) => mixed; + onaudioprocess: (ev: AudioProcessingEvent) => unknown; } declare class AnalyserNode extends AudioNode { @@ -1415,7 +1415,7 @@ type ConstantSourceOptions = { offset?: number, ... } declare class ConstantSourceNode extends AudioNode { constructor(context: BaseAudioContext, options?: ConstantSourceOptions): void; offset: AudioParam; - onended: (ev: any) => mixed; + onended: (ev: any) => unknown; start(when?: number): void; stop(when?: number): void; } @@ -1453,7 +1453,7 @@ declare class OscillatorNode extends AudioNode { start(when?: number): void; stop(when?: number): void; setPeriodicWave(periodicWave: PeriodicWave): void; - onended: (ev: any) => mixed; + onended: (ev: any) => unknown; } declare class StereoPannerNode extends AudioNode { @@ -1493,7 +1493,7 @@ declare class Headers { append(name: string, value: string): void; delete(name: string): void; entries(): Iterator<[string, string]>; - forEach(callback: (this : This, value: string, name: string, headers: Headers) => mixed, thisArg: This): void; + forEach(callback: (this : This, value: string, name: string, headers: Headers) => unknown, thisArg: This): void; get(name: string): null | string; has(name: string): boolean; keys(): Iterator; @@ -1510,7 +1510,7 @@ declare class URLSearchParams { append(name: string, value: string): void; delete(name: string, value?: string): void; entries(): Iterator<[string, string]>; - forEach(callback: (this : This, value: string, name: string, params: URLSearchParams) => mixed, thisArg: This): void; + forEach(callback: (this : This, value: string, name: string, params: URLSearchParams) => unknown, thisArg: This): void; get(name: string): null | string; getAll(name: string): Array; has(name: string, value?: string): boolean; @@ -1864,8 +1864,8 @@ declare class MessagePort extends EventTarget { start(): void; close(): void; - onmessage: null | (ev: MessageEvent) => mixed; - onmessageerror: null | (ev: MessageEvent) => mixed; + onmessage: null | (ev: MessageEvent) => unknown; + onmessageerror: null | (ev: MessageEvent) => unknown; } declare class MessageChannel { @@ -1887,7 +1887,7 @@ declare class VRDisplay extends EventTarget { getEyeParameters(VREye): VREyeParameters; getFrameData(VRFrameData): boolean; getLayers(): VRLayerInit[]; - requestAnimationFrame(cb: (number) => mixed): number; + requestAnimationFrame(cb: (number) => unknown): number; requestPresent(VRLayerInit[]): Promise; submitFrame(): void; } @@ -2021,7 +2021,7 @@ declare class SpeechSynthesis extends EventTarget { +speaking: boolean; +paused: boolean; - onvoiceschanged: ?((ev: Event) => mixed); + onvoiceschanged: ?((ev: Event) => unknown); speak(utterance: SpeechSynthesisUtterance): void; cancel(): void; @@ -2042,13 +2042,13 @@ declare class SpeechSynthesisUtterance extends EventTarget { rate: number; pitch: number; - onstart: ?((ev: SpeechSynthesisEvent) => mixed); - onend: ?((ev: SpeechSynthesisEvent) => mixed); - onerror: ?((ev: SpeechSynthesisErrorEvent) => mixed); - onpause: ?((ev: SpeechSynthesisEvent) => mixed); - onresume: ?((ev: SpeechSynthesisEvent) => mixed); - onmark: ?((ev: SpeechSynthesisEvent) => mixed); - onboundary: ?((ev: SpeechSynthesisEvent) => mixed); + onstart: ?((ev: SpeechSynthesisEvent) => unknown); + onend: ?((ev: SpeechSynthesisEvent) => unknown); + onerror: ?((ev: SpeechSynthesisErrorEvent) => unknown); + onpause: ?((ev: SpeechSynthesisEvent) => unknown); + onresume: ?((ev: SpeechSynthesisEvent) => unknown); + onmark: ?((ev: SpeechSynthesisEvent) => unknown); + onboundary: ?((ev: SpeechSynthesisEvent) => unknown); } type SpeechSynthesisEvent$Init = Event$Init & { @@ -2168,16 +2168,16 @@ declare class SpeechRecognition extends EventTarget { +maxAlternatives: number; +serviceURI: string; - onaudiostart: ?((ev: Event) => mixed); - onaudioend: ?((ev: Event) => mixed); - onend: ?((ev: Event) => mixed); - onerror: ?((ev: Event) => mixed); - onnomatch: ?((ev: Event) => mixed); - onsoundstart: ?((ev: Event) => mixed); - onsoundend: ?((ev: Event) => mixed); - onspeechstart: ?((ev: Event) => mixed); - onspeechend: ?((ev: Event) => mixed); - onstart: ?((ev: Event) => mixed); + onaudiostart: ?((ev: Event) => unknown); + onaudioend: ?((ev: Event) => unknown); + onend: ?((ev: Event) => unknown); + onerror: ?((ev: Event) => unknown); + onnomatch: ?((ev: Event) => unknown); + onsoundstart: ?((ev: Event) => unknown); + onsoundend: ?((ev: Event) => unknown); + onspeechstart: ?((ev: Event) => unknown); + onspeechend: ?((ev: Event) => unknown); + onstart: ?((ev: Event) => unknown); abort(): void; start(): void; @@ -2204,15 +2204,15 @@ declare class TrustedScriptURL { declare class TrustedTypePolicy { +name: string; - createHTML(input: string, ...args: Array): TrustedHTML; - createScript(input: string, ...args: Array): TrustedScript; - createScriptURL(input: string, ...args: Array): TrustedScriptURL; + createHTML(input: string, ...args: Array): TrustedHTML; + createScript(input: string, ...args: Array): TrustedScript; + createScriptURL(input: string, ...args: Array): TrustedScriptURL; } declare type TrustedTypePolicyOptions = {| - createHTML?: (string, ...args: Array) => string; - createScript?: (string, ...args: Array) => string; - createScriptURL?: (string, ...args: Array) => string; + createHTML?: (string, ...args: Array) => string; + createScript?: (string, ...args: Array) => string; + createScriptURL?: (string, ...args: Array) => string; |} // window.trustedTypes?: TrustedTypePolicyFactory @@ -2220,9 +2220,9 @@ declare class TrustedTypePolicyFactory { +emptyHTML: TrustedHTML; +emptyScript: TrustedScript; +defaultPolicy: ?TrustedTypePolicy; - +isHTML: (value: mixed) => value is TrustedHTML; - +isScript: (value: mixed) => value is TrustedScript; - +isScriptURL: (value: mixed) => value is TrustedScriptURL; + +isHTML: (value: unknown) => value is TrustedHTML; + +isScript: (value: unknown) => value is TrustedScript; + +isScriptURL: (value: unknown) => value is TrustedScriptURL; createPolicy(policyName: string, policyOptions?: TrustedTypePolicyOptions): TrustedTypePolicy; getAttributeType(tagName: string, attribute?: string, elementNS?: string, attrNS?: string): null | string; getPropertyType(tagName: string, property: string, elementNS?: string): null | string; @@ -2288,7 +2288,7 @@ declare class USBConfiguration { constructor(): void; configurationName: ?string; configurationValue: number; - interfaces: $ReadOnlyArray; + interfaces: ReadonlyArray; } diff --git a/flow-typed/environments/dom.js b/flow-typed/environments/dom.js index ad89ae53..4fa4b2e0 100644 --- a/flow-typed/environments/dom.js +++ b/flow-typed/environments/dom.js @@ -46,7 +46,7 @@ declare type FilePropertyBag = { }; declare class File extends Blob { constructor( - fileBits: $ReadOnlyArray, + fileBits: ReadonlyArray, filename: string, options?: FilePropertyBag, ): void; @@ -94,43 +94,43 @@ declare type ScrollToOptions = { ... } -type EventHandler = (event: Event) => mixed +type EventHandler = (event: Event) => unknown type EventListener = { handleEvent: EventHandler, ... } | EventHandler -type MouseEventHandler = (event: MouseEvent) => mixed +type MouseEventHandler = (event: MouseEvent) => unknown type MouseEventListener = { handleEvent: MouseEventHandler, ... } | MouseEventHandler -type FocusEventHandler = (event: FocusEvent) => mixed +type FocusEventHandler = (event: FocusEvent) => unknown type FocusEventListener = { handleEvent: FocusEventHandler, ... } | FocusEventHandler -type KeyboardEventHandler = (event: KeyboardEvent) => mixed +type KeyboardEventHandler = (event: KeyboardEvent) => unknown type KeyboardEventListener = { handleEvent: KeyboardEventHandler, ... } | KeyboardEventHandler -type InputEventHandler = (event: InputEvent) => mixed +type InputEventHandler = (event: InputEvent) => unknown type InputEventListener = { handleEvent: InputEventHandler, ... } | InputEventHandler -type TouchEventHandler = (event: TouchEvent) => mixed +type TouchEventHandler = (event: TouchEvent) => unknown type TouchEventListener = { handleEvent: TouchEventHandler, ... } | TouchEventHandler -type WheelEventHandler = (event: WheelEvent) => mixed +type WheelEventHandler = (event: WheelEvent) => unknown type WheelEventListener = { handleEvent: WheelEventHandler, ... } | WheelEventHandler -type AbortProgressEventHandler = (event: ProgressEvent) => mixed +type AbortProgressEventHandler = (event: ProgressEvent) => unknown type AbortProgressEventListener = { handleEvent: AbortProgressEventHandler, ... } | AbortProgressEventHandler -type ProgressEventHandler = (event: ProgressEvent) => mixed +type ProgressEventHandler = (event: ProgressEvent) => unknown type ProgressEventListener = { handleEvent: ProgressEventHandler, ... } | ProgressEventHandler -type DragEventHandler = (event: DragEvent) => mixed +type DragEventHandler = (event: DragEvent) => unknown type DragEventListener = { handleEvent: DragEventHandler, ... } | DragEventHandler -type PointerEventHandler = (event: PointerEvent) => mixed +type PointerEventHandler = (event: PointerEvent) => unknown type PointerEventListener = { handleEvent: PointerEventHandler, ... } | PointerEventHandler -type AnimationEventHandler = (event: AnimationEvent) => mixed +type AnimationEventHandler = (event: AnimationEvent) => unknown type AnimationEventListener = { handleEvent: AnimationEventHandler, ... } | AnimationEventHandler -type ClipboardEventHandler = (event: ClipboardEvent) => mixed +type ClipboardEventHandler = (event: ClipboardEvent) => unknown type ClipboardEventListener = { handleEvent: ClipboardEventHandler, ... } | ClipboardEventHandler -type TransitionEventHandler = (event: TransitionEvent) => mixed +type TransitionEventHandler = (event: TransitionEvent) => unknown type TransitionEventListener = { handleEvent: TransitionEventHandler, ... } | TransitionEventHandler -type MessageEventHandler = (event: MessageEvent) => mixed +type MessageEventHandler = (event: MessageEvent) => unknown type MessageEventListener = { handleEvent: MessageEventHandler, ... } | MessageEventHandler -type BeforeUnloadEventHandler = (event: BeforeUnloadEvent) => mixed +type BeforeUnloadEventHandler = (event: BeforeUnloadEvent) => unknown type BeforeUnloadEventListener = { handleEvent: BeforeUnloadEventHandler, ... } | BeforeUnloadEventHandler -type StorageEventHandler = (event: StorageEvent) => mixed +type StorageEventHandler = (event: StorageEvent) => unknown type StorageEventListener = { handleEvent: StorageEventHandler, ... } | StorageEventHandler -type SecurityPolicyViolationEventHandler = (event: SecurityPolicyViolationEvent) => mixed +type SecurityPolicyViolationEventHandler = (event: SecurityPolicyViolationEvent) => unknown type SecurityPolicyViolationEventListener = { handleEvent: SecurityPolicyViolationEventHandler, ... } | SecurityPolicyViolationEventHandler -type USBConnectionEventHandler = (event: USBConnectionEvent) => mixed +type USBConnectionEventHandler = (event: USBConnectionEvent) => unknown type USBConnectionEventListener = { handleEvent: USBConnectionEventHandler, ... } | USBConnectionEventHandler type MediaKeySessionType = 'temporary' | 'persistent-license'; @@ -536,7 +536,7 @@ declare class PageTransitionEvent extends Event { // and // https://html.spec.whatwg.org/multipage/comms.html#the-messageevent-interfaces declare class MessageEvent extends Event { - data: mixed; + data: unknown; origin: string; lastEventId: string; source: WindowProxy; @@ -776,7 +776,7 @@ type ClipboardItemOptions = { } declare class ClipboardItem { - +types: $ReadOnlyArray; + +types: ReadonlyArray; getType(type: string): Promise; constructor(items: {[type: string]: ClipboardItemData}, options?: ClipboardItemOptions): void; } @@ -864,7 +864,7 @@ declare class AbortSignal extends EventTarget { +aborted: boolean; +reason: any; abort(reason?: any): AbortSignal; - onabort: (event: Event) => mixed; + onabort: (event: Event) => unknown; throwIfAborted(): void; timeout(time: number): AbortSignal; } @@ -885,22 +885,22 @@ declare class Node extends EventTarget { previousSibling: ?Node; rootNode: Node; textContent: string; - appendChild(newChild: T): T; + appendChild(newChild: T): T; cloneNode(deep?: boolean): this; compareDocumentPosition(other: Node): number; contains(other: ?Node): boolean; getRootNode(options?: { composed: boolean, ... }): Node; hasChildNodes(): boolean; - insertBefore(newChild: T, refChild?: ?Node): T; + insertBefore(newChild: T, refChild?: ?Node): T; isDefaultNamespace(namespaceURI: string): boolean; isEqualNode(arg: Node): boolean; isSameNode(other: Node): boolean; lookupNamespaceURI(prefix: string): string; lookupPrefix(namespaceURI: string): string; normalize(): void; - removeChild(oldChild: T): T; - replaceChild(newChild: Node, oldChild: T): T; - replaceChildren(...nodes: $ReadOnlyArray): void; + removeChild(oldChild: T): T; + replaceChild(newChild: Node, oldChild: T): T; + replaceChildren(...nodes: ReadonlyArray): void; static ATTRIBUTE_NODE: number; static CDATA_SECTION_NODE: number; static COMMENT_NODE: number; @@ -961,7 +961,7 @@ declare class Attr extends Node { localName: string; } -declare class HTMLCollection<+Elem: Element> { +declare class HTMLCollection<+Elem extends Element> { @@iterator(): Iterator; length: number; item(nameOrIndex?: any, optionalIndex?: any): Elem | null; @@ -976,9 +976,9 @@ type ElementRegistrationOptions = { +prototype?: { // from https://www.w3.org/TR/custom-elements/#types-of-callbacks // See also https://github.com/w3c/webcomponents/ - +createdCallback?: () => mixed, - +attachedCallback?: () => mixed, - +detachedCallback?: () => mixed, + +createdCallback?: () => unknown, + +attachedCallback?: () => unknown, + +detachedCallback?: () => unknown, +attributeChangedCallback?: // attribute is set (( @@ -986,21 +986,21 @@ type ElementRegistrationOptions = { oldAttributeValue: null, newAttributeValue: string, attributeNamespace: string - ) => mixed) & + ) => unknown) & // attribute is changed (( attributeLocalName: string, oldAttributeValue: string, newAttributeValue: string, attributeNamespace: string - ) => mixed) & + ) => unknown) & // attribute is removed (( attributeLocalName: string, oldAttributeValue: string, newAttributeValue: null, attributeNamespace: string - ) => mixed), + ) => unknown), ... }, +extends?: string, @@ -1035,7 +1035,7 @@ declare type MutationObserverInit = MutationObserverInitRequired & { } declare class MutationObserver { - constructor(callback: (arr: Array, observer: MutationObserver) => mixed): void; + constructor(callback: (arr: Array, observer: MutationObserver) => unknown): void; observe(target: Node, options: MutationObserverInit): void; takeRecords(): Array; disconnect(): void; @@ -1045,7 +1045,7 @@ declare class Document extends Node { +timeline: DocumentTimeline; getAnimations(): Array; +URL: string; - adoptNode(source: T): T; + adoptNode(source: T): T; anchors: HTMLCollection; applets: HTMLCollection; body: HTMLBodyElement | null; @@ -1063,8 +1063,8 @@ declare class Document extends Node { createCDATASection(data: string): Text; createComment(data: string): Comment; createDocumentFragment(): DocumentFragment; - createElement>(localName: TName, options?: string | ElementCreationOptions): HTMLElementTagNameMap[TName]; - createElementNS>(namespaceURI: 'http://www.w3.org/1999/xhtml', qualifiedName: TName, options?: string | ElementCreationOptions): HTMLElementTagNameMap[TName]; + createElement>(localName: TName, options?: string | ElementCreationOptions): HTMLElementTagNameMap[TName]; + createElementNS>(namespaceURI: 'http://www.w3.org/1999/xhtml', qualifiedName: TName, options?: string | ElementCreationOptions): HTMLElementTagNameMap[TName]; createElementNS(namespaceURI: string | null, qualifiedName: string, options?: string | ElementCreationOptions): Element; createTextNode(data: string): Text; currentScript: HTMLScriptElement | null; @@ -1083,13 +1083,13 @@ declare class Document extends Node { fullscreenEnabled: boolean; getElementsByClassName(classNames: string): HTMLCollection; getElementsByName(elementName: string): HTMLCollection; - getElementsByTagName>(qualifiedName: TName): HTMLCollection; - getElementsByTagNameNS>(namespaceURI: 'http://www.w3.org/1999/xhtml', qualifiedName: TName): HTMLCollection; + getElementsByTagName>(qualifiedName: TName): HTMLCollection; + getElementsByTagNameNS>(namespaceURI: 'http://www.w3.org/1999/xhtml', qualifiedName: TName): HTMLCollection; getElementsByTagNameNS(namespaceURI: string | null, qualifiedName: string): HTMLCollection; head: HTMLHeadElement | null; images: HTMLCollection; +implementation: DOMImplementation; - importNode(importedNode: T, deep: boolean): T; + importNode(importedNode: T, deep: boolean): T; /** * Legacy alias of `characterSet` * @deprecated @@ -1141,8 +1141,8 @@ declare class Document extends Node { append(...nodes: Array): void; prepend(...nodes: Array): void; - querySelector>(selector: TSelector): HTMLElementTagNameMap[TSelector] | null; - querySelectorAll>(selector: TSelector): NodeList; + querySelector>(selector: TSelector): HTMLElementTagNameMap[TSelector] | null; + querySelectorAll>(selector: TSelector): NodeList; // Interface DocumentTraversal // http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/traversal.html#Traversal-Document @@ -1158,104 +1158,104 @@ declare class Document extends Node { // NodeFilter.SHOW_ATTRIBUTE === 1), RootNodeT must be Attr, and when // RootNodeT is Attr, bitmasks other than NodeFilter.SHOW_ATTRIBUTE are // meaningless. - createNodeIterator(root: RootNodeT, whatToShow: 2, filter?: NodeFilterInterface): NodeIterator; - createTreeWalker(root: RootNodeT, whatToShow: 2, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createNodeIterator(root: RootNodeT, whatToShow: 2, filter?: NodeFilterInterface): NodeIterator; + createTreeWalker(root: RootNodeT, whatToShow: 2, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; // NodeFilter.SHOW_PROCESSING_INSTRUCTION is not implemented because Flow // does not currently define a ProcessingInstruction class. // When (whatToShow & NodeFilter.SHOW_DOCUMENT === 1 || whatToShow & // NodeFilter.SHOW_DOCUMENT_TYPE === 1), RootNodeT must be Document. - createNodeIterator(root: RootNodeT, whatToShow: 256, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 257, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 260, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 261, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 384, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 385, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 388, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 389, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 512, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 513, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 516, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 517, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 640, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 641, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 644, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 645, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 768, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 769, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 772, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 773, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 896, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 897, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 900, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 901, filter?: NodeFilterInterface): NodeIterator; - createTreeWalker(root: RootNodeT, whatToShow: 256, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 257, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 260, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 261, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 384, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 385, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 388, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 389, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 512, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 513, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 516, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 517, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 640, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 641, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 644, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 645, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 768, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 769, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 772, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 773, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 896, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 897, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 900, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 901, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createNodeIterator(root: RootNodeT, whatToShow: 256, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 257, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 260, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 261, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 384, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 385, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 388, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 389, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 512, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 513, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 516, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 517, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 640, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 641, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 644, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 645, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 768, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 769, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 772, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 773, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 896, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 897, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 900, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 901, filter?: NodeFilterInterface): NodeIterator; + createTreeWalker(root: RootNodeT, whatToShow: 256, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 257, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 260, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 261, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 384, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 385, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 388, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 389, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 512, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 513, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 516, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 517, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 640, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 641, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 644, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 645, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 768, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 769, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 772, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 773, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 896, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 897, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 900, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 901, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; // When (whatToShow & NodeFilter.SHOW_DOCUMENT_FRAGMENT === 1), RootNodeT // must be a DocumentFragment. - createNodeIterator(root: RootNodeT, whatToShow: 1024, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 1025, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 1028, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 1029, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 1152, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 1153, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 1156, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 1157, filter?: NodeFilterInterface): NodeIterator; - createTreeWalker(root: RootNodeT, whatToShow: 1024, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 1025, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 1028, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 1029, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 1152, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 1153, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 1156, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 1157, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createNodeIterator(root: RootNodeT, whatToShow: 1024, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1025, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1028, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1029, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1152, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1153, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1156, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1157, filter?: NodeFilterInterface): NodeIterator; + createTreeWalker(root: RootNodeT, whatToShow: 1024, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1025, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1028, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1029, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1152, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1153, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1156, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1157, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; // In the general case, RootNodeT may be any Node and whatToShow may be // NodeFilter.SHOW_ALL or any combination of NodeFilter.SHOW_ELEMENT, // NodeFilter.SHOW_TEXT and/or NodeFilter.SHOW_COMMENT - createNodeIterator(root: RootNodeT, whatToShow: 1, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 4, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 5, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 128, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 129, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 132, filter?: NodeFilterInterface): NodeIterator; - createNodeIterator(root: RootNodeT, whatToShow: 133, filter?: NodeFilterInterface): NodeIterator; - createTreeWalker(root: RootNodeT, whatToShow: 1, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 4, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 5, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 128, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 129, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 132, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; - createTreeWalker(root: RootNodeT, whatToShow: 133, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createNodeIterator(root: RootNodeT, whatToShow: 1, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 4, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 5, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 128, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 129, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 132, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 133, filter?: NodeFilterInterface): NodeIterator; + createTreeWalker(root: RootNodeT, whatToShow: 1, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 4, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 5, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 128, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 129, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 132, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 133, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; // Catch all for when we don't know the value of `whatToShow` // And for when whatToShow is not provided, it is assumed to be SHOW_ALL - createNodeIterator(root: RootNodeT, whatToShow?: number, filter?: NodeFilterInterface): NodeIterator; - createTreeWalker(root: RootNodeT, whatToShow?: number, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createNodeIterator(root: RootNodeT, whatToShow?: number, filter?: NodeFilterInterface): NodeIterator; + createTreeWalker(root: RootNodeT, whatToShow?: number, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; // From NonElementParentNode Mixin. getElementById(elementId: string): HTMLElement | null; @@ -1405,8 +1405,8 @@ declare class Element extends Node mixins mixin$Animatable { getBoundingClientRect(): DOMRect; getClientRects(): DOMRectList; getElementsByClassName(names: string): HTMLCollection; - getElementsByTagName>(qualifiedName: TName): HTMLCollection; - getElementsByTagNameNS>(namespaceURI: 'http://www.w3.org/1999/xhtml', qualifiedName: TName): HTMLCollection; + getElementsByTagName>(qualifiedName: TName): HTMLCollection; + getElementsByTagNameNS>(namespaceURI: 'http://www.w3.org/1999/xhtml', qualifiedName: TName): HTMLCollection; getElementsByTagNameNS(namespaceURI: string | null, qualifiedName: string): HTMLCollection; hasAttribute(name: string): boolean; @@ -1452,8 +1452,8 @@ declare class Element extends Node mixins mixin$Animatable { append(...nodes: Array): void; prepend(...nodes: Array): void; - querySelector>(selector: TSelector): HTMLElementTagNameMap[TSelector] | null; - querySelectorAll>(selector: TSelector): NodeList; + querySelector>(selector: TSelector): HTMLElementTagNameMap[TSelector] | null; + querySelectorAll>(selector: TSelector): NodeList; // from ChildNode interface after(...nodes: Array): void; @@ -2740,13 +2740,13 @@ declare class Notification extends EventTarget { constructor(title: string, options?: NotificationOptions): void; static +permission: NotificationPermission; static requestPermission( - callback?: (perm: NotificationPermission) => mixed + callback?: (perm: NotificationPermission) => unknown ): Promise; static +maxActions: number; - onclick: ?(evt: Event) => mixed; - onclose: ?(evt: Event) => mixed; - onerror: ?(evt: Event) => mixed; - onshow: ?(evt: Event) => mixed; + onclick: ?(evt: Event) => unknown; + onclose: ?(evt: Event) => unknown; + onerror: ?(evt: Event) => unknown; + onshow: ?(evt: Event) => unknown; +title: string; +dir: NotificationDirection; +lang: string; diff --git a/flow-typed/environments/html.js b/flow-typed/environments/html.js index 0296fee5..a79deaaf 100644 --- a/flow-typed/environments/html.js +++ b/flow-typed/environments/html.js @@ -29,7 +29,7 @@ declare class DataTransferItemList { declare class DataTransferItem { kind: string; // readonly type: string; // readonly - getAsString(_callback: ?(data: string) => mixed): void; + getAsString(_callback: ?(data: string) => unknown): void; getAsFile(): ?File; /* * This is not supported by all browsers, please have a fallback plan for it. @@ -113,7 +113,7 @@ declare class BroadcastChannel extends EventTarget { onmessageerror: ?(event: MessageEvent) => void; constructor(name: string): void; - postMessage(msg: mixed): void; + postMessage(msg: unknown): void; close(): void; } @@ -572,7 +572,7 @@ declare class CanvasRenderingContext2D { y: number, w: number, h: number, - radii?: number | DOMPointInit | $ReadOnlyArray + radii?: number | DOMPointInit | ReadonlyArray ): void; strokeRect(x: number, y: number, w: number, h: number): void; diff --git a/flow-typed/environments/indexeddb.js b/flow-typed/environments/indexeddb.js index f71be9b4..46e643d1 100644 --- a/flow-typed/environments/indexeddb.js +++ b/flow-typed/environments/indexeddb.js @@ -34,13 +34,13 @@ declare interface IDBRequest extends EventTarget { source: ?(IDBIndex | IDBObjectStore | IDBCursor); transaction: IDBTransaction; readyState: 'pending'|'done'; - onerror: (err: any) => mixed; - onsuccess: (e: any) => mixed; + onerror: (err: any) => unknown; + onsuccess: (e: any) => unknown; } declare interface IDBOpenDBRequest extends IDBRequest { - onblocked: (e: any) => mixed; - onupgradeneeded: (e: any) => mixed; + onblocked: (e: any) => unknown; + onupgradeneeded: (e: any) => unknown; } declare interface IDBTransactionOptions { @@ -63,10 +63,10 @@ declare interface IDBDatabase extends EventTarget { name: string; version: number; objectStoreNames: DOMStringList; - onabort: (e: any) => mixed; - onclose: (e: any) => mixed; - onerror: (e: any) => mixed; - onversionchange: (e: any) => mixed; + onabort: (e: any) => unknown; + onclose: (e: any) => unknown; + onerror: (e: any) => unknown; + onversionchange: (e: any) => unknown; } declare interface IDBTransaction extends EventTarget { @@ -77,9 +77,9 @@ declare interface IDBTransaction extends EventTarget { mode: 'readonly'|'readwrite'|'versionchange'; name: string; objectStore(name: string): IDBObjectStore; - onabort: (e: any) => mixed; - oncomplete: (e: any) => mixed; - onerror: (e: any) => mixed; + onabort: (e: any) => unknown; + oncomplete: (e: any) => unknown; + onerror: (e: any) => unknown; } declare interface IDBObjectStore { diff --git a/flow-typed/environments/jsx.js b/flow-typed/environments/jsx.js index 11ba0f2c..70aa2077 100644 --- a/flow-typed/environments/jsx.js +++ b/flow-typed/environments/jsx.js @@ -18,7 +18,7 @@ type ModifierKey = | 'Symbol' | 'SymbolLock'; -declare class SyntheticEvent<+T: EventTarget = EventTarget, +E: Event = Event> { +declare class SyntheticEvent<+T extends EventTarget = EventTarget, +E extends Event = Event> { bubbles: boolean; cancelable: boolean; +currentTarget: T; @@ -39,7 +39,7 @@ declare class SyntheticEvent<+T: EventTarget = EventTarget, +E: Event = Event> { type: string; } -declare class SyntheticAnimationEvent<+T: EventTarget = EventTarget> +declare class SyntheticAnimationEvent<+T extends EventTarget = EventTarget> extends SyntheticEvent { animationName: string; @@ -47,39 +47,39 @@ declare class SyntheticAnimationEvent<+T: EventTarget = EventTarget> pseudoElement: string; } -declare class SyntheticClipboardEvent<+T: EventTarget = EventTarget> +declare class SyntheticClipboardEvent<+T extends EventTarget = EventTarget> extends SyntheticEvent { clipboardData: any; } -declare class SyntheticCompositionEvent<+T: EventTarget = EventTarget> +declare class SyntheticCompositionEvent<+T extends EventTarget = EventTarget> extends SyntheticEvent { data: any; } -declare class SyntheticInputEvent<+T: EventTarget = EventTarget> +declare class SyntheticInputEvent<+T extends EventTarget = EventTarget> extends SyntheticEvent { data: any; +target: HTMLInputElement; } -declare class SyntheticUIEvent<+T: EventTarget = EventTarget, +E: Event = Event> +declare class SyntheticUIEvent<+T extends EventTarget = EventTarget, +E extends Event = Event> extends SyntheticEvent { detail: number; view: any; } -declare class SyntheticFocusEvent<+T: EventTarget = EventTarget> +declare class SyntheticFocusEvent<+T extends EventTarget = EventTarget> extends SyntheticUIEvent { relatedTarget: EventTarget; } -declare class SyntheticKeyboardEvent<+T: EventTarget = EventTarget> +declare class SyntheticKeyboardEvent<+T extends EventTarget = EventTarget> extends SyntheticUIEvent { altKey: boolean; @@ -117,13 +117,13 @@ declare class SyntheticMouseEvent< shiftKey: boolean; } -declare class SyntheticDragEvent<+T: EventTarget = EventTarget> +declare class SyntheticDragEvent<+T extends EventTarget = EventTarget> extends SyntheticMouseEvent { dataTransfer: any; } -declare class SyntheticWheelEvent<+T: EventTarget = EventTarget> +declare class SyntheticWheelEvent<+T extends EventTarget = EventTarget> extends SyntheticMouseEvent { deltaMode: number; @@ -132,7 +132,7 @@ declare class SyntheticWheelEvent<+T: EventTarget = EventTarget> deltaZ: number; } -declare class SyntheticPointerEvent<+T: EventTarget = EventTarget> +declare class SyntheticPointerEvent<+T extends EventTarget = EventTarget> extends SyntheticMouseEvent { height: number; @@ -147,7 +147,7 @@ declare class SyntheticPointerEvent<+T: EventTarget = EventTarget> width: number; } -declare class SyntheticTouchEvent<+T: EventTarget = EventTarget> +declare class SyntheticTouchEvent<+T extends EventTarget = EventTarget> extends SyntheticUIEvent { altKey: boolean; @@ -160,7 +160,7 @@ declare class SyntheticTouchEvent<+T: EventTarget = EventTarget> touches: TouchList; } -declare class SyntheticTransitionEvent<+T: EventTarget = EventTarget> +declare class SyntheticTransitionEvent<+T extends EventTarget = EventTarget> extends SyntheticEvent { elapsedTime: number; @@ -370,7 +370,7 @@ type ReactDOM$SVGElementJSXIntrinsic = { ... }; -type ReactDOM$SVGElementJSXIntrinsicTyped = {| +type ReactDOM$SVGElementJSXIntrinsicTyped = {| instance: Instance, props: { ...Props, @@ -381,7 +381,7 @@ type ReactDOM$SVGElementJSXIntrinsicTyped = {| |}; // Override this if you want to add custom props to all HTML elements -type ReactDOM$CustomHTMLElementProps = $ReadOnly<{||}>; +type ReactDOM$CustomHTMLElementProps = Readonly<{||}>; // Override this if you want to change the types accepted by data-prefixed props type ReactDOM$DataPropValues = ?(string | boolean | number); @@ -390,7 +390,7 @@ type ReactDOM$DataPropValues = ?(string | boolean | number); type ReactDOM$UserVisibleString = string; // Override this if you want to add custom events to all HTML elements -type ReactDOM$CustomEvents<-E> = $ReadOnly<{||}>; +type ReactDOM$CustomEvents<-E> = Readonly<{||}>; type ReactDOM$BooleanishString = boolean | 'true' | 'false'; @@ -398,7 +398,7 @@ type ReactDOM$Style = any; type ReactDOM$Number = number | string; -type ReactDOM$Boolean = AttributeName | boolean; +type ReactDOM$Boolean = AttributeName | boolean; type ReactDOM$CrossOrigin = ?('anonymous' | 'use-credentials' | ''); @@ -648,206 +648,206 @@ type ReactDOM$AriaAttributes = {| 'aria-valuetext'?: ?ReactDOM$UserVisibleString, |}; -type ReactDOM$EventHandlers<-E> = $ReadOnly<{| +type ReactDOM$EventHandlers<-E> = Readonly<{| // Animation Events - onAnimationEnd?: ?(SyntheticAnimationEvent) => mixed, - onAnimationEndCapture?: ?(SyntheticAnimationEvent) => mixed, - onAnimationIteration?: ?(SyntheticAnimationEvent) => mixed, - onAnimationIterationCapture?: ?(SyntheticAnimationEvent) => mixed, - onAnimationStart?: ?(SyntheticAnimationEvent) => mixed, - onAnimationStartCapture?: ?(SyntheticAnimationEvent) => mixed, + onAnimationEnd?: ?(SyntheticAnimationEvent) => unknown, + onAnimationEndCapture?: ?(SyntheticAnimationEvent) => unknown, + onAnimationIteration?: ?(SyntheticAnimationEvent) => unknown, + onAnimationIterationCapture?: ?(SyntheticAnimationEvent) => unknown, + onAnimationStart?: ?(SyntheticAnimationEvent) => unknown, + onAnimationStartCapture?: ?(SyntheticAnimationEvent) => unknown, // Clipboard Events - onCopy?: ?(SyntheticEvent) => mixed, - onCopyCapture?: ?(SyntheticEvent) => mixed, - onCut?: ?(SyntheticEvent) => mixed, - onCutCapture?: ?(SyntheticEvent) => mixed, - onPaste?: ?(SyntheticEvent) => mixed, - onPasteCapture?: ?(SyntheticEvent) => mixed, + onCopy?: ?(SyntheticEvent) => unknown, + onCopyCapture?: ?(SyntheticEvent) => unknown, + onCut?: ?(SyntheticEvent) => unknown, + onCutCapture?: ?(SyntheticEvent) => unknown, + onPaste?: ?(SyntheticEvent) => unknown, + onPasteCapture?: ?(SyntheticEvent) => unknown, // Composition Events - onCompositionEnd?: ?(SyntheticCompositionEvent) => mixed, - onCompositionEndCapture?: ?(SyntheticCompositionEvent) => mixed, - onCompositionStart?: ?(SyntheticCompositionEvent) => mixed, - onCompositionStartCapture?: ?(SyntheticCompositionEvent) => mixed, - onCompositionUpdate?: ?(SyntheticCompositionEvent) => mixed, - onCompositionUpdateCapture?: ?(SyntheticCompositionEvent) => mixed, + onCompositionEnd?: ?(SyntheticCompositionEvent) => unknown, + onCompositionEndCapture?: ?(SyntheticCompositionEvent) => unknown, + onCompositionStart?: ?(SyntheticCompositionEvent) => unknown, + onCompositionStartCapture?: ?(SyntheticCompositionEvent) => unknown, + onCompositionUpdate?: ?(SyntheticCompositionEvent) => unknown, + onCompositionUpdateCapture?: ?(SyntheticCompositionEvent) => unknown, // Focus Events - onFocus?: ?(SyntheticFocusEvent) => mixed, - onFocusCapture?: ?(SyntheticFocusEvent) => mixed, - onBlur?: ?(SyntheticFocusEvent) => mixed, - onBlurCapture?: ?(SyntheticFocusEvent) => mixed, + onFocus?: ?(SyntheticFocusEvent) => unknown, + onFocusCapture?: ?(SyntheticFocusEvent) => unknown, + onBlur?: ?(SyntheticFocusEvent) => unknown, + onBlurCapture?: ?(SyntheticFocusEvent) => unknown, // Form Events - onBeforeInput?: ?(SyntheticInputEvent) => mixed, - onBeforeInputCapture?: ?(SyntheticInputEvent) => mixed, - onChange?: ?(SyntheticEvent) => mixed, - onChangeCapture?: ?(SyntheticEvent) => mixed, - onInput?: ?(SyntheticEvent) => mixed, - onInputCapture?: ?(SyntheticEvent) => mixed, - onInvalid?: ?(SyntheticEvent) => mixed, - onInvalidCapture?: ?(SyntheticEvent) => mixed, - onReset?: ?(SyntheticEvent) => mixed, - onResetCapture?: ?(SyntheticEvent) => mixed, - onSubmit?: ?(SyntheticEvent) => mixed, - onSubmitCapture?: ?(SyntheticEvent) => mixed, + onBeforeInput?: ?(SyntheticInputEvent) => unknown, + onBeforeInputCapture?: ?(SyntheticInputEvent) => unknown, + onChange?: ?(SyntheticEvent) => unknown, + onChangeCapture?: ?(SyntheticEvent) => unknown, + onInput?: ?(SyntheticEvent) => unknown, + onInputCapture?: ?(SyntheticEvent) => unknown, + onInvalid?: ?(SyntheticEvent) => unknown, + onInvalidCapture?: ?(SyntheticEvent) => unknown, + onReset?: ?(SyntheticEvent) => unknown, + onResetCapture?: ?(SyntheticEvent) => unknown, + onSubmit?: ?(SyntheticEvent) => unknown, + onSubmitCapture?: ?(SyntheticEvent) => unknown, // Image Events - onError?: ?(SyntheticEvent) => mixed, - onErrorCapture?: ?(SyntheticEvent) => mixed, - onLoad?: ?(SyntheticEvent) => mixed, - onLoadCapture?: ?(SyntheticEvent) => mixed, + onError?: ?(SyntheticEvent) => unknown, + onErrorCapture?: ?(SyntheticEvent) => unknown, + onLoad?: ?(SyntheticEvent) => unknown, + onLoadCapture?: ?(SyntheticEvent) => unknown, // Keyboard Events - onKeyDown?: ?(SyntheticKeyboardEvent) => mixed, - onKeyDownCapture?: ?(SyntheticKeyboardEvent) => mixed, - onKeyPress?: ?(SyntheticKeyboardEvent) => mixed, - onKeyPressCapture?: ?(SyntheticKeyboardEvent) => mixed, - onKeyUp?: ?(SyntheticKeyboardEvent) => mixed, - onKeyUpCapture?: ?(SyntheticKeyboardEvent) => mixed, + onKeyDown?: ?(SyntheticKeyboardEvent) => unknown, + onKeyDownCapture?: ?(SyntheticKeyboardEvent) => unknown, + onKeyPress?: ?(SyntheticKeyboardEvent) => unknown, + onKeyPressCapture?: ?(SyntheticKeyboardEvent) => unknown, + onKeyUp?: ?(SyntheticKeyboardEvent) => unknown, + onKeyUpCapture?: ?(SyntheticKeyboardEvent) => unknown, // Media Events - onAbort?: ?(SyntheticEvent) => mixed, - onAbortCapture?: ?(SyntheticEvent) => mixed, - onCanPlay?: ?(SyntheticEvent) => mixed, - onCanPlayCapture?: ?(SyntheticEvent) => mixed, - onCanPlayThrough?: ?(SyntheticEvent) => mixed, - onCanPlayThroughCapture?: ?(SyntheticEvent) => mixed, - onDurationChange?: ?(SyntheticEvent) => mixed, - onDurationChangeCapture?: ?(SyntheticEvent) => mixed, - onEmptied?: ?(SyntheticEvent) => mixed, - onEmptiedCapture?: ?(SyntheticEvent) => mixed, - onEncrypted?: ?(SyntheticEvent) => mixed, - onEncryptedCapture?: ?(SyntheticEvent) => mixed, - onEnded?: ?(SyntheticEvent) => mixed, - onEndedCapture?: ?(SyntheticEvent) => mixed, - onLoadedData?: ?(SyntheticEvent) => mixed, - onLoadedDataCapture?: ?(SyntheticEvent) => mixed, - onLoadedMetadata?: ?(SyntheticEvent) => mixed, - onLoadedMetadataCapture?: ?(SyntheticEvent) => mixed, - onLoadStart?: ?(SyntheticEvent) => mixed, - onLoadStartCapture?: ?(SyntheticEvent) => mixed, - onPause?: ?(SyntheticEvent) => mixed, - onPauseCapture?: ?(SyntheticEvent) => mixed, - onPlay?: ?(SyntheticEvent) => mixed, - onPlayCapture?: ?(SyntheticEvent) => mixed, - onPlaying?: ?(SyntheticEvent) => mixed, - onPlayingCapture?: ?(SyntheticEvent) => mixed, - onProgress?: ?(SyntheticEvent) => mixed, - onProgressCapture?: ?(SyntheticEvent) => mixed, - onRateChange?: ?(SyntheticEvent) => mixed, - onRateChangeCapture?: ?(SyntheticEvent) => mixed, - onResize?: ?(SyntheticEvent) => mixed, - onResizeCapture?: ?(SyntheticEvent) => mixed, - onSeeked?: ?(SyntheticEvent) => mixed, - onSeekedCapture?: ?(SyntheticEvent) => mixed, - onSeeking?: ?(SyntheticEvent) => mixed, - onSeekingCapture?: ?(SyntheticEvent) => mixed, - onStalled?: ?(SyntheticEvent) => mixed, - onStalledCapture?: ?(SyntheticEvent) => mixed, - onSuspend?: ?(SyntheticEvent) => mixed, - onSuspendCapture?: ?(SyntheticEvent) => mixed, - onTimeUpdate?: ?(SyntheticEvent) => mixed, - onTimeUpdateCapture?: ?(SyntheticEvent) => mixed, - onVolumeChange?: ?(SyntheticEvent) => mixed, - onVolumeChangeCapture?: ?(SyntheticEvent) => mixed, - onWaiting?: ?(SyntheticEvent) => mixed, - onWaitingCapture?: ?(SyntheticEvent) => mixed, + onAbort?: ?(SyntheticEvent) => unknown, + onAbortCapture?: ?(SyntheticEvent) => unknown, + onCanPlay?: ?(SyntheticEvent) => unknown, + onCanPlayCapture?: ?(SyntheticEvent) => unknown, + onCanPlayThrough?: ?(SyntheticEvent) => unknown, + onCanPlayThroughCapture?: ?(SyntheticEvent) => unknown, + onDurationChange?: ?(SyntheticEvent) => unknown, + onDurationChangeCapture?: ?(SyntheticEvent) => unknown, + onEmptied?: ?(SyntheticEvent) => unknown, + onEmptiedCapture?: ?(SyntheticEvent) => unknown, + onEncrypted?: ?(SyntheticEvent) => unknown, + onEncryptedCapture?: ?(SyntheticEvent) => unknown, + onEnded?: ?(SyntheticEvent) => unknown, + onEndedCapture?: ?(SyntheticEvent) => unknown, + onLoadedData?: ?(SyntheticEvent) => unknown, + onLoadedDataCapture?: ?(SyntheticEvent) => unknown, + onLoadedMetadata?: ?(SyntheticEvent) => unknown, + onLoadedMetadataCapture?: ?(SyntheticEvent) => unknown, + onLoadStart?: ?(SyntheticEvent) => unknown, + onLoadStartCapture?: ?(SyntheticEvent) => unknown, + onPause?: ?(SyntheticEvent) => unknown, + onPauseCapture?: ?(SyntheticEvent) => unknown, + onPlay?: ?(SyntheticEvent) => unknown, + onPlayCapture?: ?(SyntheticEvent) => unknown, + onPlaying?: ?(SyntheticEvent) => unknown, + onPlayingCapture?: ?(SyntheticEvent) => unknown, + onProgress?: ?(SyntheticEvent) => unknown, + onProgressCapture?: ?(SyntheticEvent) => unknown, + onRateChange?: ?(SyntheticEvent) => unknown, + onRateChangeCapture?: ?(SyntheticEvent) => unknown, + onResize?: ?(SyntheticEvent) => unknown, + onResizeCapture?: ?(SyntheticEvent) => unknown, + onSeeked?: ?(SyntheticEvent) => unknown, + onSeekedCapture?: ?(SyntheticEvent) => unknown, + onSeeking?: ?(SyntheticEvent) => unknown, + onSeekingCapture?: ?(SyntheticEvent) => unknown, + onStalled?: ?(SyntheticEvent) => unknown, + onStalledCapture?: ?(SyntheticEvent) => unknown, + onSuspend?: ?(SyntheticEvent) => unknown, + onSuspendCapture?: ?(SyntheticEvent) => unknown, + onTimeUpdate?: ?(SyntheticEvent) => unknown, + onTimeUpdateCapture?: ?(SyntheticEvent) => unknown, + onVolumeChange?: ?(SyntheticEvent) => unknown, + onVolumeChangeCapture?: ?(SyntheticEvent) => unknown, + onWaiting?: ?(SyntheticEvent) => unknown, + onWaitingCapture?: ?(SyntheticEvent) => unknown, // Mouse Events - onAuxClick?: ?(SyntheticMouseEvent) => mixed, - onAuxClickCapture?: ?(SyntheticMouseEvent) => mixed, - onClick?: ?(SyntheticMouseEvent) => mixed, - onClickCapture?: ?(SyntheticMouseEvent) => mixed, - onContextMenu?: ?(SyntheticMouseEvent) => mixed, - onContextMenuCapture?: ?(SyntheticMouseEvent) => mixed, - onDoubleClick?: ?(SyntheticMouseEvent) => mixed, - onDoubleClickCapture?: ?(SyntheticMouseEvent) => mixed, - onDrag?: ?(SyntheticDragEvent) => mixed, - onDragCapture?: ?(SyntheticDragEvent) => mixed, - onDragEnd?: ?(SyntheticDragEvent) => mixed, - onDragEndCapture?: ?(SyntheticDragEvent) => mixed, - onDragEnter?: ?(SyntheticDragEvent) => mixed, - onDragEnterCapture?: ?(SyntheticDragEvent) => mixed, - onDragExit?: ?(SyntheticDragEvent) => mixed, - onDragExitCapture?: ?(SyntheticDragEvent) => mixed, - onDragLeave?: ?(SyntheticDragEvent) => mixed, - onDragLeaveCapture?: ?(SyntheticDragEvent) => mixed, - onDragOver?: ?(SyntheticDragEvent) => mixed, - onDragOverCapture?: ?(SyntheticDragEvent) => mixed, - onDragStart?: ?(SyntheticDragEvent) => mixed, - onDragStartCapture?: ?(SyntheticDragEvent) => mixed, - onDrop?: ?(SyntheticDragEvent) => mixed, - onDropCapture?: ?(SyntheticDragEvent) => mixed, - onMouseDown?: ?(SyntheticMouseEvent) => mixed, - onMouseDownCapture?: ?(SyntheticMouseEvent) => mixed, - onMouseEnter?: ?(SyntheticMouseEvent) => mixed, - onMouseLeave?: ?(SyntheticMouseEvent) => mixed, - onMouseMove?: ?(SyntheticMouseEvent) => mixed, - onMouseMoveCapture?: ?(SyntheticMouseEvent) => mixed, - onMouseOut?: ?(SyntheticMouseEvent) => mixed, - onMouseOutCapture?: ?(SyntheticMouseEvent) => mixed, - onMouseOver?: ?(SyntheticMouseEvent) => mixed, - onMouseOverCapture?: ?(SyntheticMouseEvent) => mixed, - onMouseUp?: ?(SyntheticMouseEvent) => mixed, - onMouseUpCapture?: ?(SyntheticMouseEvent) => mixed, + onAuxClick?: ?(SyntheticMouseEvent) => unknown, + onAuxClickCapture?: ?(SyntheticMouseEvent) => unknown, + onClick?: ?(SyntheticMouseEvent) => unknown, + onClickCapture?: ?(SyntheticMouseEvent) => unknown, + onContextMenu?: ?(SyntheticMouseEvent) => unknown, + onContextMenuCapture?: ?(SyntheticMouseEvent) => unknown, + onDoubleClick?: ?(SyntheticMouseEvent) => unknown, + onDoubleClickCapture?: ?(SyntheticMouseEvent) => unknown, + onDrag?: ?(SyntheticDragEvent) => unknown, + onDragCapture?: ?(SyntheticDragEvent) => unknown, + onDragEnd?: ?(SyntheticDragEvent) => unknown, + onDragEndCapture?: ?(SyntheticDragEvent) => unknown, + onDragEnter?: ?(SyntheticDragEvent) => unknown, + onDragEnterCapture?: ?(SyntheticDragEvent) => unknown, + onDragExit?: ?(SyntheticDragEvent) => unknown, + onDragExitCapture?: ?(SyntheticDragEvent) => unknown, + onDragLeave?: ?(SyntheticDragEvent) => unknown, + onDragLeaveCapture?: ?(SyntheticDragEvent) => unknown, + onDragOver?: ?(SyntheticDragEvent) => unknown, + onDragOverCapture?: ?(SyntheticDragEvent) => unknown, + onDragStart?: ?(SyntheticDragEvent) => unknown, + onDragStartCapture?: ?(SyntheticDragEvent) => unknown, + onDrop?: ?(SyntheticDragEvent) => unknown, + onDropCapture?: ?(SyntheticDragEvent) => unknown, + onMouseDown?: ?(SyntheticMouseEvent) => unknown, + onMouseDownCapture?: ?(SyntheticMouseEvent) => unknown, + onMouseEnter?: ?(SyntheticMouseEvent) => unknown, + onMouseLeave?: ?(SyntheticMouseEvent) => unknown, + onMouseMove?: ?(SyntheticMouseEvent) => unknown, + onMouseMoveCapture?: ?(SyntheticMouseEvent) => unknown, + onMouseOut?: ?(SyntheticMouseEvent) => unknown, + onMouseOutCapture?: ?(SyntheticMouseEvent) => unknown, + onMouseOver?: ?(SyntheticMouseEvent) => unknown, + onMouseOverCapture?: ?(SyntheticMouseEvent) => unknown, + onMouseUp?: ?(SyntheticMouseEvent) => unknown, + onMouseUpCapture?: ?(SyntheticMouseEvent) => unknown, // Pointer Events - onGotPointerCapture?: ?(SyntheticPointerEvent) => mixed, - onGotPointerCaptureCapture?: ?(SyntheticPointerEvent) => mixed, - onLostPointerCapture?: ?(SyntheticPointerEvent) => mixed, - onLostPointerCaptureCapture?: ?(SyntheticPointerEvent) => mixed, - onPointerCancel?: ?(SyntheticPointerEvent) => mixed, - onPointerCancelCapture?: ?(SyntheticPointerEvent) => mixed, - onPointerDown?: ?(SyntheticPointerEvent) => mixed, - onPointerDownCapture?: ?(SyntheticPointerEvent) => mixed, - onPointerEnter?: ?(SyntheticPointerEvent) => mixed, - onPointerLeave?: ?(SyntheticPointerEvent) => mixed, - onPointerMove?: ?(SyntheticPointerEvent) => mixed, - onPointerMoveCapture?: ?(SyntheticPointerEvent) => mixed, - onPointerOut?: ?(SyntheticPointerEvent) => mixed, - onPointerOutCapture?: ?(SyntheticPointerEvent) => mixed, - onPointerOver?: ?(SyntheticPointerEvent) => mixed, - onPointerOverCapture?: ?(SyntheticPointerEvent) => mixed, - onPointerUp?: ?(SyntheticPointerEvent) => mixed, - onPointerUpCapture?: ?(SyntheticPointerEvent) => mixed, + onGotPointerCapture?: ?(SyntheticPointerEvent) => unknown, + onGotPointerCaptureCapture?: ?(SyntheticPointerEvent) => unknown, + onLostPointerCapture?: ?(SyntheticPointerEvent) => unknown, + onLostPointerCaptureCapture?: ?(SyntheticPointerEvent) => unknown, + onPointerCancel?: ?(SyntheticPointerEvent) => unknown, + onPointerCancelCapture?: ?(SyntheticPointerEvent) => unknown, + onPointerDown?: ?(SyntheticPointerEvent) => unknown, + onPointerDownCapture?: ?(SyntheticPointerEvent) => unknown, + onPointerEnter?: ?(SyntheticPointerEvent) => unknown, + onPointerLeave?: ?(SyntheticPointerEvent) => unknown, + onPointerMove?: ?(SyntheticPointerEvent) => unknown, + onPointerMoveCapture?: ?(SyntheticPointerEvent) => unknown, + onPointerOut?: ?(SyntheticPointerEvent) => unknown, + onPointerOutCapture?: ?(SyntheticPointerEvent) => unknown, + onPointerOver?: ?(SyntheticPointerEvent) => unknown, + onPointerOverCapture?: ?(SyntheticPointerEvent) => unknown, + onPointerUp?: ?(SyntheticPointerEvent) => unknown, + onPointerUpCapture?: ?(SyntheticPointerEvent) => unknown, // Selection Events - onSelect?: ?(SyntheticEvent) => mixed, - onSelectCapture?: ?(SyntheticEvent) => mixed, + onSelect?: ?(SyntheticEvent) => unknown, + onSelectCapture?: ?(SyntheticEvent) => unknown, // Toggle Events - onToggle?: ?(SyntheticEvent) => mixed, - onToggleCapture?: ?(SyntheticEvent) => mixed, + onToggle?: ?(SyntheticEvent) => unknown, + onToggleCapture?: ?(SyntheticEvent) => unknown, // Touch Events - onTouchCancel?: ?(SyntheticTouchEvent) => mixed, - onTouchCancelCapture?: ?(SyntheticTouchEvent) => mixed, - onTouchEnd?: ?(SyntheticTouchEvent) => mixed, - onTouchEndCapture?: ?(SyntheticTouchEvent) => mixed, - onTouchMove?: ?(SyntheticEvent) => mixed, - onTouchMoveCapture?: ?(SyntheticEvent) => mixed, - onTouchStart?: ?(SyntheticTouchEvent) => mixed, - onTouchStartCapture?: ?(SyntheticTouchEvent) => mixed, + onTouchCancel?: ?(SyntheticTouchEvent) => unknown, + onTouchCancelCapture?: ?(SyntheticTouchEvent) => unknown, + onTouchEnd?: ?(SyntheticTouchEvent) => unknown, + onTouchEndCapture?: ?(SyntheticTouchEvent) => unknown, + onTouchMove?: ?(SyntheticEvent) => unknown, + onTouchMoveCapture?: ?(SyntheticEvent) => unknown, + onTouchStart?: ?(SyntheticTouchEvent) => unknown, + onTouchStartCapture?: ?(SyntheticTouchEvent) => unknown, // Transition Events - onTransitionCancel?: ?(SyntheticTransitionEvent) => mixed, - onTransitionCancelCapture?: ?(SyntheticTransitionEvent) => mixed, - onTransitionEnd?: ?(SyntheticTransitionEvent) => mixed, - onTransitionEndCapture?: ?(SyntheticTransitionEvent) => mixed, - onTransitionRun?: ?(SyntheticTransitionEvent) => mixed, - onTransitionRunCapture?: ?(SyntheticTransitionEvent) => mixed, - onTransitionStart?: ?(SyntheticTransitionEvent) => mixed, - onTransitionStartCapture?: ?(SyntheticTransitionEvent) => mixed, + onTransitionCancel?: ?(SyntheticTransitionEvent) => unknown, + onTransitionCancelCapture?: ?(SyntheticTransitionEvent) => unknown, + onTransitionEnd?: ?(SyntheticTransitionEvent) => unknown, + onTransitionEndCapture?: ?(SyntheticTransitionEvent) => unknown, + onTransitionRun?: ?(SyntheticTransitionEvent) => unknown, + onTransitionRunCapture?: ?(SyntheticTransitionEvent) => unknown, + onTransitionStart?: ?(SyntheticTransitionEvent) => unknown, + onTransitionStartCapture?: ?(SyntheticTransitionEvent) => unknown, // UI Events - onScroll?: ?(SyntheticUIEvent) => mixed, - onScrollCapture?: ?(SyntheticUIEvent) => mixed, + onScroll?: ?(SyntheticUIEvent) => unknown, + onScrollCapture?: ?(SyntheticUIEvent) => unknown, // Wheel Events - onWheel?: ?(SyntheticWheelEvent) => mixed, - onWheelCapture?: ?(SyntheticWheelEvent) => mixed, + onWheel?: ?(SyntheticWheelEvent) => unknown, + onWheelCapture?: ?(SyntheticWheelEvent) => unknown, ...ReactDOM$CustomEvents, |}>; @@ -859,7 +859,7 @@ type ReactDOM$ReactSpecificProps = {| __html: ReactDOM$UserVisibleString, |}, defaultChecked?: ?boolean, - defaultValue?: ?(string | number | $ReadOnlyArray), + defaultValue?: ?(string | number | ReadonlyArray), suppressContentEditableWarning?: ?boolean, suppressHydrationWarning?: ?boolean, |}; @@ -1051,7 +1051,7 @@ type ReactDOM$buttonProps = {| formTarget?: ?string, name?: ?string, type?: ?('submit' | 'reset' | 'button'), - value?: ?(string | $ReadOnlyArray | number), + value?: ?(string | ReadonlyArray | number), |}; type ReactDOM$buttonInstance = HTMLButtonElement; @@ -1082,7 +1082,7 @@ type ReactDOM$colgroupInstance = HTMLTableColElement; type ReactDOM$dataProps = {| ...ReactDOM$HTMLElementProps, - value?: ?(string | $ReadOnlyArray | number), + value?: ?(string | ReadonlyArray | number), |}; type ReactDOM$dataInstance = HTMLDataElement; @@ -1112,8 +1112,8 @@ type ReactDOM$dfnInstance = HTMLElement; type ReactDOM$dialogProps = {| ...ReactDOM$HTMLElementProps, - onCancel?: ?(SyntheticEvent) => mixed, - onClose?: ?(SyntheticEvent) => mixed, + onCancel?: ?(SyntheticEvent) => unknown, + onClose?: ?(SyntheticEvent) => unknown, open?: ?boolean, |}; type ReactDOM$dialogInstance = HTMLDialogElement; @@ -1267,7 +1267,7 @@ type ReactDOM$inputProps = {| minLength?: ?number, multiple?: ?boolean, name?: ?string, - onChange?: ?(SyntheticInputEvent) => mixed, + onChange?: ?(SyntheticInputEvent) => unknown, pattern?: ?string, placeholder?: ?ReactDOM$UserVisibleString, readOnly?: ?boolean, @@ -1276,7 +1276,7 @@ type ReactDOM$inputProps = {| src?: ?string, step?: ?(number | string), type?: ?string, - value?: ?(string | $ReadOnlyArray | number), + value?: ?(string | ReadonlyArray | number), width?: ?(number | string), |}; type ReactDOM$inputInstance = HTMLInputElement; @@ -1314,7 +1314,7 @@ type ReactDOM$legendInstance = HTMLLegendElement; type ReactDOM$liProps = {| ...ReactDOM$HTMLElementProps, - value?: ?(string | $ReadOnlyArray | number), + value?: ?(string | ReadonlyArray | number), |}; type ReactDOM$liInstance = HTMLLIElement; @@ -1392,7 +1392,7 @@ type ReactDOM$meterProps = {| max?: ?(number | string), min?: ?(number | string), optimum?: ?number, - value?: ?(string | $ReadOnlyArray | number), + value?: ?(string | ReadonlyArray | number), |}; type ReactDOM$meterInstance = HTMLMeterElement; @@ -1437,7 +1437,7 @@ type ReactDOM$optionProps = {| disabled?: ?boolean, label?: ?ReactDOM$UserVisibleString, selected?: ?boolean, - value?: ?(string | $ReadOnlyArray | number), + value?: ?(string | ReadonlyArray | number), |}; type ReactDOM$optionInstance = HTMLOptionElement; @@ -1455,7 +1455,7 @@ type ReactDOM$pInstance = HTMLParagraphElement; type ReactDOM$paramProps = {| ...ReactDOM$SelfClosingHTMLElementProps, name?: ?string, - value?: ?(string | $ReadOnlyArray | number), + value?: ?(string | ReadonlyArray | number), |}; type ReactDOM$paramInstance = HTMLParamElement; @@ -1468,7 +1468,7 @@ type ReactDOM$preInstance = HTMLPreElement; type ReactDOM$progressProps = {| ...ReactDOM$HTMLElementProps, max?: ?(number | string), - value?: ?(string | $ReadOnlyArray | number), + value?: ?(string | ReadonlyArray | number), |}; type ReactDOM$progressInstance = HTMLProgressElement; @@ -1515,10 +1515,10 @@ type ReactDOM$selectProps = {| form?: ?string, multiple?: ?boolean, name?: ?string, - onChange?: ?(SyntheticEvent) => mixed, + onChange?: ?(SyntheticEvent) => unknown, required?: ?boolean, size?: ?number, - value?: ?(string | $ReadOnlyArray | number), + value?: ?(string | ReadonlyArray | number), |}; type ReactDOM$selectInstance = HTMLSelectElement; @@ -1609,12 +1609,12 @@ type ReactDOM$textareaProps = {| maxLength?: ?number, minLength?: ?number, name?: ?string, - onChange?: ?(SyntheticEvent) => mixed, + onChange?: ?(SyntheticEvent) => unknown, placeholder?: ?ReactDOM$UserVisibleString, readOnly?: ?boolean, required?: ?boolean, rows?: ?number, - value?: ?(string | $ReadOnlyArray | number), + value?: ?(string | ReadonlyArray | number), wrap?: ?string, |}; type ReactDOM$textareaInstance = HTMLTextAreaElement; diff --git a/flow-typed/environments/node.js b/flow-typed/environments/node.js index 646c92ae..55842cff 100644 --- a/flow-typed/environments/node.js +++ b/flow-typed/environments/node.js @@ -12,7 +12,7 @@ interface ErrnoError extends Error { syscall?: string; } -type Node$Conditional = T extends true +type Node$Conditional = T extends true ? IfTrue : T extends false ? IfFalse @@ -697,7 +697,7 @@ declare module "crypto" { callback: (err: ?Error, buffer: Buffer) => void ): void declare function randomUUID( - options?: $ReadOnly<{|disableEntropyCache?: boolean|}>, + options?: Readonly<{|disableEntropyCache?: boolean|}>, ): string; declare function timingSafeEqual( a: Buffer | $TypedArray | DataView, @@ -730,7 +730,7 @@ declare class dgram$Socket extends events$EventEmitter { msg: Buffer, port: number, address: string, - callback?: (err: ?Error, bytes: any) => mixed, + callback?: (err: ?Error, bytes: any) => unknown, ): void; send( msg: Buffer, @@ -738,7 +738,7 @@ declare class dgram$Socket extends events$EventEmitter { length: number, port: number, address: string, - callback?: (err: ?Error, bytes: any) => mixed, + callback?: (err: ?Error, bytes: any) => unknown, ): void; setBroadcast(flag: boolean): void; setMulticastLoopback(flag: boolean): void; @@ -1316,7 +1316,7 @@ declare module "fs" { declare function copyFile(src: string, dest: string, flags?: number, callback: (err: ErrnoError) => void): void; declare function copyFileSync(src: string, dest: string, flags?: number): void; - declare type GlobOptions = $ReadOnly<{ + declare type GlobOptions = Readonly<{ /** * Current working directory. * @default process.cwd() @@ -1336,7 +1336,7 @@ declare module "fs" { */ exclude?: | ((fileName: Node$Conditional) => boolean) - | $ReadOnlyArray, + | ReadonlyArray, ... }>; @@ -1354,12 +1354,12 @@ declare module "fs" { * @since v22.0.0 */ declare function glob( - pattern: string | $ReadOnlyArray, + pattern: string | ReadonlyArray, callback: (err: ?ErrnoError, matches: Array) => void, ): void; - declare function glob( - pattern: string | $ReadOnlyArray, + declare function glob( + pattern: string | ReadonlyArray, options: GlobOptions, callback: ( err: ?ErrnoError, @@ -1376,8 +1376,8 @@ declare module "fs" { * @since v22.0.0 * @returns paths of files that match the pattern. */ - declare function globSync( - pattern: string | $ReadOnlyArray, + declare function globSync( + pattern: string | ReadonlyArray, options?: GlobOptions, ): Node$Conditional, Array>; @@ -1448,7 +1448,7 @@ declare module "fs" { close(): Promise; datasync(): Promise; fd: number; - read( + read( buffer: T, offset: number, length: number, @@ -1483,8 +1483,8 @@ declare module "fs" { ftruncate(filehandle: FileHandle, len?: number): Promise, futimes(filehandle: FileHandle, atime: number | string | Date, mtime: number | string | Date): Promise, lchmod(path: FSPromisePath, mode: number): Promise, - glob( - pattern: string | $ReadOnlyArray, + glob( + pattern: string | ReadonlyArray, options?: GlobOptions, ): Node$Conditional< WithFileTypes, @@ -1501,7 +1501,7 @@ declare module "fs" { }): Promise, mkdtemp(prefix: string, options?: EncodingOptions): Promise, open(path: FSPromisePath, flags?: string | number, mode?: number): Promise, - read( + read( filehandle: FileHandle, buffer: T, offset: number, @@ -1533,7 +1533,7 @@ declare module "fs" { truncate(path: FSPromisePath, len?: number): Promise, unlink(path: FSPromisePath): Promise, utimes(path: FSPromisePath, atime: number | string | Date, mtime: number | string | Date): Promise, - write( + write( filehandle: FileHandle, buffer: T, offset: number, @@ -1567,7 +1567,7 @@ declare class http$Agent<+SocketT = net$Socket> { constructor(options: http$agentOptions): void; destroy(): void; // $FlowFixMe[incompatible-variance] - freeSockets: { [name: string]: $ReadOnlyArray, ... }; + freeSockets: { [name: string]: ReadonlyArray, ... }; getName(options: { host: string, port: number, @@ -1577,9 +1577,9 @@ declare class http$Agent<+SocketT = net$Socket> { maxFreeSockets: number; maxSockets: number; // $FlowFixMe[incompatible-variance] - requests: { [name: string]: $ReadOnlyArray>, ... }; + requests: { [name: string]: ReadonlyArray>, ... }; // $FlowFixMe[incompatible-variance] - sockets: { [name: string]: $ReadOnlyArray, ... }; + sockets: { [name: string]: ReadonlyArray, ... }; } declare class http$IncomingMessage extends stream$Readable { @@ -1654,7 +1654,7 @@ declare class http$Server extends net$Server { ... }, callback?: Function): this; listening: boolean; - close(callback?: (error: ?Error) => mixed): this; + close(callback?: (error: ?Error) => unknown): this; closeAllConnections(): void; closeIdleConnections(): void; maxHeadersCount: number; @@ -1682,7 +1682,7 @@ declare class https$Server extends tls$Server { ipv6Only?: boolean, ... }, callback?: Function): this; - close(callback?: (error: ?Error) => mixed): this; + close(callback?: (error: ?Error) => unknown): this; closeAllConnections(): void; closeIdleConnections(): void; keepAliveTimeout: number; @@ -1695,7 +1695,7 @@ type requestOptions = {| auth?: string, defaultPort?: number, family?: number, - headers?: { [key: string] : mixed, ... }, + headers?: { [key: string] : unknown, ... }, host?: string, hostname?: string, localAddress?: string, @@ -1814,10 +1814,10 @@ declare class net$Socket extends stream$Duplex { bufferSize: number; bytesRead: number; bytesWritten: number; - connect(path: string, connectListener?: () => mixed): net$Socket; - connect(port: number, host?: string, connectListener?: () => mixed): net$Socket; - connect(port: number, connectListener?: () => mixed): net$Socket; - connect(options: Object, connectListener?: () => mixed): net$Socket; + connect(path: string, connectListener?: () => unknown): net$Socket; + connect(port: number, host?: string, connectListener?: () => unknown): net$Socket; + connect(port: number, connectListener?: () => unknown): net$Socket; + connect(options: Object, connectListener?: () => unknown): net$Socket; destroyed: boolean; end( chunkOrEncodingOrCallback?: Buffer | Uint8Array | string | (data: any) => void, @@ -1869,7 +1869,7 @@ type net$connectOptions = { domain: string, options?: ?number | ?Object, callback?: (err: ?Error, address: string, family: number) => void - ) => mixed, + ) => unknown, path?: string, ... }; @@ -2119,7 +2119,7 @@ declare class stream$Readable extends stream$Stream { destroy(error?: Error): this; isPaused(): boolean; pause(): this; - pipe(dest: T, options?: { end? : boolean, ... }): T; + pipe(dest: T, options?: { end? : boolean, ... }): T; read(size?: number): ?(string | Buffer); readable: boolean; readableHighWaterMark: number; @@ -2232,25 +2232,25 @@ declare module "stream" { }, callback: (error?: Error) => void, ): () => void; - declare function pipeline( + declare function pipeline( s1: stream$Readable, last: T, cb: (error?: Error) => void, ): T; - declare function pipeline( + declare function pipeline( s1: stream$Readable, s2: stream$Duplex, last: T, cb: (error?: Error) => void, ): T; - declare function pipeline( + declare function pipeline( s1: stream$Readable, s2: stream$Duplex, s3: stream$Duplex, last: T, cb: (error?: Error) => void, ): T; - declare function pipeline( + declare function pipeline( s1: stream$Readable, s2: stream$Duplex, s3: stream$Duplex, @@ -2258,7 +2258,7 @@ declare module "stream" { last: T, cb: (error?: Error) => void, ): T; - declare function pipeline( + declare function pipeline( s1: stream$Readable, s2: stream$Duplex, s3: stream$Duplex, @@ -2267,7 +2267,7 @@ declare module "stream" { last: T, cb: (error?: Error) => void, ): T; - declare function pipeline( + declare function pipeline( s1: stream$Readable, s2: stream$Duplex, s3: stream$Duplex, @@ -2334,7 +2334,7 @@ declare module "stream" { options?: StreamPipelineOptions, ): Promise, pipeline( - streams: $ReadOnlyArray, + streams: ReadonlyArray, options?: StreamPipelineOptions, ): Promise; ... @@ -2444,7 +2444,7 @@ type tls$connectOptions = { domain: string, options?: ?number | ?Object, callback?: (err: ?Error, address: string, family: number) => void - ) => mixed, + ) => unknown, requestOCSP?: boolean, ... }; @@ -2591,7 +2591,7 @@ declare module "url" { append(name: string, value: string): void; delete(name: string, value?: void): void; entries(): Iterator<[string, string]>; - forEach(callback: (this : This, value: string, name: string, searchParams: URLSearchParams) => mixed, thisArg?: This): void; + forEach(callback: (this : This, value: string, name: string, searchParams: URLSearchParams) => unknown, thisArg?: This): void; get(name: string): string | null; getAll(name: string): string[]; has(name: string, value?: string): boolean; @@ -2753,45 +2753,45 @@ declare module "util" { } declare var types: { - isAnyArrayBuffer: (value: mixed) => boolean; - isArgumentsObject:(value: mixed) => boolean; - isArrayBuffer:(value: mixed) => boolean; - isAsyncFunction:(value: mixed) => boolean; - isBigInt64Array:(value: mixed) => boolean; - isBigUint64Array:(value: mixed) => boolean; - isBooleanObject:(value: mixed) => boolean; - isBoxedPrimitive:(value: mixed) => boolean; - isDataView:(value: mixed) => boolean; - isDate:(value: mixed) => boolean; - isExternal:(value: mixed) => boolean; - isFloat32Array:(value: mixed) => boolean; - isFloat64Array:(value: mixed) => boolean; - isGeneratorFunction:(value: mixed) => boolean; - isGeneratorObject:(value: mixed) => boolean; - isInt8Array:(value: mixed) => boolean; - isInt16Array:(value: mixed) => boolean; - isInt32Array:(value: mixed) => boolean; - isMap:(value: mixed) => boolean; - isMapIterator:(value: mixed) => boolean; - isModuleNamespaceObject:(value: mixed) => boolean; - isNativeError:(value: mixed) => boolean; - isNumberObject:(value: mixed) => boolean; - isPromise:(value: mixed) => boolean; - isProxy:(value: mixed) => boolean; - isRegExp:(value: mixed) => boolean; - isSet:(value: mixed) => boolean; - isSetIterator:(value: mixed) => boolean; - isSharedArrayBuffer:(value: mixed) => boolean; - isStringObject:(value: mixed) => boolean; - isSymbolObject:(value: mixed) => boolean; - isTypedArray:(value: mixed) => boolean; - isUint8Array:(value: mixed) => boolean; - isUint8ClampedArray:(value: mixed) => boolean; - isUint16Array:(value: mixed) => boolean; - isUint32Array:(value: mixed) => boolean; - isWeakMap:(value: mixed) => boolean; - isWeakSet:(value: mixed) => boolean; - isWebAssemblyCompiledModule:(value: mixed) => boolean; + isAnyArrayBuffer: (value: unknown) => boolean; + isArgumentsObject:(value: unknown) => boolean; + isArrayBuffer:(value: unknown) => boolean; + isAsyncFunction:(value: unknown) => boolean; + isBigInt64Array:(value: unknown) => boolean; + isBigUint64Array:(value: unknown) => boolean; + isBooleanObject:(value: unknown) => boolean; + isBoxedPrimitive:(value: unknown) => boolean; + isDataView:(value: unknown) => boolean; + isDate:(value: unknown) => boolean; + isExternal:(value: unknown) => boolean; + isFloat32Array:(value: unknown) => boolean; + isFloat64Array:(value: unknown) => boolean; + isGeneratorFunction:(value: unknown) => boolean; + isGeneratorObject:(value: unknown) => boolean; + isInt8Array:(value: unknown) => boolean; + isInt16Array:(value: unknown) => boolean; + isInt32Array:(value: unknown) => boolean; + isMap:(value: unknown) => boolean; + isMapIterator:(value: unknown) => boolean; + isModuleNamespaceObject:(value: unknown) => boolean; + isNativeError:(value: unknown) => boolean; + isNumberObject:(value: unknown) => boolean; + isPromise:(value: unknown) => boolean; + isProxy:(value: unknown) => boolean; + isRegExp:(value: unknown) => boolean; + isSet:(value: unknown) => boolean; + isSetIterator:(value: unknown) => boolean; + isSharedArrayBuffer:(value: unknown) => boolean; + isStringObject:(value: unknown) => boolean; + isSymbolObject:(value: unknown) => boolean; + isTypedArray:(value: unknown) => boolean; + isUint8Array:(value: unknown) => boolean; + isUint8ClampedArray:(value: unknown) => boolean; + isUint16Array:(value: unknown) => boolean; + isUint32Array:(value: unknown) => boolean; + isWeakMap:(value: unknown) => boolean; + isWeakSet:(value: unknown) => boolean; + isWebAssemblyCompiledModule:(value: unknown) => boolean; ... } } @@ -3441,13 +3441,13 @@ declare class Process extends events$EventEmitter { domain? : domain$Domain; env : { [key: string] : string | void, ... }; emitWarning(warning: string | Error): void; - emitWarning(warning: string, typeOrCtor: string | (...empty) => mixed): void; - emitWarning(warning: string, type: string, codeOrCtor: string | (...empty) => mixed): void; + emitWarning(warning: string, typeOrCtor: string | (...empty) => unknown): void; + emitWarning(warning: string, type: string, codeOrCtor: string | (...empty) => unknown): void; emitWarning( warning: string, type: string, code: string, - ctor?: (...empty) => mixed + ctor?: (...empty) => unknown ): void; execArgv : Array; execPath : string; @@ -3474,7 +3474,7 @@ declare class Process extends events$EventEmitter { external : number, ... }; - nextTick: (cb: (...T) => mixed, ...T) => void; + nextTick: (cb: (...T) => unknown, ...T) => void; pid : number; platform : string; release : { @@ -3491,7 +3491,7 @@ declare class Process extends events$EventEmitter { setegid? : (id : number | string) => void; seteuid? : (id : number | string) => void; setgid? : (id : number | string) => void; - setgroups? : (groups : Array) => void; + setgroups? : (groups : Array) => void; setuid? : (id : number | string) => void; stderr : stream$Writable | tty$WriteStream; stdin : stream$Readable | tty$ReadStream; @@ -3512,7 +3512,7 @@ declare var process: Process; declare var __filename: string; declare var __dirname: string; -declare function setImmediate(callback: ((...args: Array) => mixed), ...args: Array): Object; +declare function setImmediate(callback: ((...args: Array) => unknown), ...args: Array): Object; declare function clearImmediate(immediateObject: any): Object; // https://nodejs.org/api/esm.html#node-imports diff --git a/flow-typed/environments/serviceworkers.js b/flow-typed/environments/serviceworkers.js index f26c12ed..76ed27fa 100644 --- a/flow-typed/environments/serviceworkers.js +++ b/flow-typed/environments/serviceworkers.js @@ -20,7 +20,7 @@ declare class Client { } declare class ExtendableEvent extends Event { - waitUntil(f: Promise): void, + waitUntil(f: Promise): void, } type NotificationEvent$Init = { @@ -140,7 +140,7 @@ declare class ServiceWorkerRegistration extends EventTarget { +updateViaCache: ServiceWorkerUpdateViaCache, +pushManager: PushManager, - getNotifications?: (filter?: GetNotificationOptions) => Promise<$ReadOnlyArray>, + getNotifications?: (filter?: GetNotificationOptions) => Promise>, showNotification?: (title: string, options?: NotificationOptions) => Promise, update(): Promise, unregister(): Promise, diff --git a/flow-typed/environments/web-animations.js b/flow-typed/environments/web-animations.js index 71824960..567db936 100644 --- a/flow-typed/environments/web-animations.js +++ b/flow-typed/environments/web-animations.js @@ -134,9 +134,9 @@ declare class Animation extends EventTarget { +pending: boolean; +ready: Promise; +finished: Promise; - onfinish: ?(ev: AnimationPlaybackEvent) => mixed; - oncancel: ?(ev: AnimationPlaybackEvent) => mixed; - onremove: ?(ev: AnimationPlaybackEvent) => mixed; + onfinish: ?(ev: AnimationPlaybackEvent) => unknown; + oncancel: ?(ev: AnimationPlaybackEvent) => unknown; + onremove: ?(ev: AnimationPlaybackEvent) => unknown; cancel(): void; finish(): void; play(): void; diff --git a/flow-typed/environments/webassembly.js b/flow-typed/environments/webassembly.js index a880854a..10801356 100644 --- a/flow-typed/environments/webassembly.js +++ b/flow-typed/environments/webassembly.js @@ -16,7 +16,7 @@ type ResultObject = { // https://github.com/WebAssembly/design/blob/master/JS.md#exported-function-exotic-objects declare class ExportedFunctionExoticObject extends Function { - (): mixed; + (): unknown; } declare class WebAssembly$Module { diff --git a/flow-typed/npm/styleq.js b/flow-typed/npm/styleq.js index 8c4d590c..30cdb163 100644 --- a/flow-typed/npm/styleq.js +++ b/flow-typed/npm/styleq.js @@ -11,14 +11,14 @@ type InlineStyle = { [key: string]: string | number }; -type StylesArray<+T> = T | $ReadOnlyArray>; +type StylesArray<+T> = T | ReadonlyArray>; type Styles = StylesArray; type Style<+T = { ... }> = StylesArray; type StyleqOptions = { disableCache?: boolean, disableMix?: boolean, - transform?: (mixed) => { ... } + transform?: (unknown) => { ... } }; type StyleqResult = [ @@ -30,7 +30,7 @@ type StyleqResult = [ type Styleq = (styles: Styles) => StyleqResult; type IStyleq = { - (...styles: $ReadOnlyArray): StyleqResult, + (...styles: ReadonlyArray): StyleqResult, factory: (options?: StyleqOptions) => Styleq }; diff --git a/packages/react-strict-animated/src/native/Animation.js b/packages/react-strict-animated/src/native/Animation.js index afce02e2..1ab24e99 100644 --- a/packages/react-strict-animated/src/native/Animation.js +++ b/packages/react-strict-animated/src/native/Animation.js @@ -51,7 +51,7 @@ export function spring( return Animated.spring(value, { ...config, useNativeDriver: true }); } -export function interpolate( +export function interpolate( value: Animated.Node, config: InterpolationConfig ): Animated.Node { diff --git a/packages/react-strict-animated/src/shared/SharedAnimatedTypes.js b/packages/react-strict-animated/src/shared/SharedAnimatedTypes.js index 93b6dbe7..dbd2399d 100644 --- a/packages/react-strict-animated/src/shared/SharedAnimatedTypes.js +++ b/packages/react-strict-animated/src/shared/SharedAnimatedTypes.js @@ -15,22 +15,22 @@ export type TimingAnimationConfig = { }; export type AnimatedTransformValue = - | $ReadOnly<{ perspective: number | TAnimatedNode }> - | $ReadOnly<{ rotate: string | TAnimatedNode }> - | $ReadOnly<{ rotateX: string | TAnimatedNode }> - | $ReadOnly<{ rotateY: string | TAnimatedNode }> - | $ReadOnly<{ rotateZ: string | TAnimatedNode }> - | $ReadOnly<{ scale: number | TAnimatedNode }> - | $ReadOnly<{ scaleX: number | TAnimatedNode }> - | $ReadOnly<{ scaleY: number | TAnimatedNode }> - | $ReadOnly<{ translateX: number | string | TAnimatedNode }> - | $ReadOnly<{ translateY: number | string | TAnimatedNode }> - | $ReadOnly<{ skewX: string | TAnimatedNode }> - | $ReadOnly<{ skewY: string | TAnimatedNode }>; + | Readonly<{ perspective: number | TAnimatedNode }> + | Readonly<{ rotate: string | TAnimatedNode }> + | Readonly<{ rotateX: string | TAnimatedNode }> + | Readonly<{ rotateY: string | TAnimatedNode }> + | Readonly<{ rotateZ: string | TAnimatedNode }> + | Readonly<{ scale: number | TAnimatedNode }> + | Readonly<{ scaleX: number | TAnimatedNode }> + | Readonly<{ scaleY: number | TAnimatedNode }> + | Readonly<{ translateX: number | string | TAnimatedNode }> + | Readonly<{ translateY: number | string | TAnimatedNode }> + | Readonly<{ skewX: string | TAnimatedNode }> + | Readonly<{ skewY: string | TAnimatedNode }>; -export type AnimatedStyleValue = $ReadOnly<{ +export type AnimatedStyleValue = Readonly<{ opacity?: number | TAnimatedNode, - transform?: $ReadOnlyArray> + transform?: ReadonlyArray> }>; export type ParallelConfig = { @@ -55,7 +55,7 @@ export type SpringAnimationConfig = { type ExtrapolateType = 'extend' | 'identity' | 'clamp'; -export type InterpolationConfig = { +export type InterpolationConfig = { easing?: (input: number) => number, extrapolate?: ExtrapolateType, extrapolateLeft?: ExtrapolateType, diff --git a/packages/react-strict-animated/src/web/Animation.js b/packages/react-strict-animated/src/web/Animation.js index 6c935621..4d0a456a 100644 --- a/packages/react-strict-animated/src/web/Animation.js +++ b/packages/react-strict-animated/src/web/Animation.js @@ -68,7 +68,7 @@ export function spring( }; } -export function interpolate( +export function interpolate( value: AnimatedNodeType, config: InterpolationConfig ): AnimatedNodeType { diff --git a/packages/react-strict-animated/src/web/nodes/AnimatedInterpolation.js b/packages/react-strict-animated/src/web/nodes/AnimatedInterpolation.js index 5eeb9970..3f3e4036 100644 --- a/packages/react-strict-animated/src/web/nodes/AnimatedInterpolation.js +++ b/packages/react-strict-animated/src/web/nodes/AnimatedInterpolation.js @@ -15,7 +15,7 @@ import normalizeColor from '@react-native/normalize-colors'; type ExtrapolateType = 'extend' | 'identity' | 'clamp'; -function findRange(input: number, inputRange: $ReadOnlyArray) { +function findRange(input: number, inputRange: ReadonlyArray) { let i; for (i = 1; i < inputRange.length - 1; ++i) { if (inputRange[i] >= input) { @@ -100,7 +100,7 @@ function performInterpolation( function createNumericInterpolation( config: InterpolationConfig ): (input: number) => number { - const outputRange: $ReadOnlyArray = config.outputRange; + const outputRange: ReadonlyArray = config.outputRange; const inputRange = config.inputRange; const easing = config.easing || ((t) => t); @@ -145,7 +145,7 @@ function mapStringToNumericComponents( input: string ): | { components: [number, number, number, number], isColor: true } - | { components: $ReadOnlyArray, isColor: false } { + | { components: ReadonlyArray, isColor: false } { let normalizedColor = normalizeColor(input); if (typeof normalizedColor === 'number') { @@ -198,7 +198,7 @@ function createStringInterpolation( const isColor = outputRange[0].isColor; - const numericComponents: $ReadOnlyArray<$ReadOnlyArray> = + const numericComponents: ReadonlyArray> = outputRange.map((output) => { if (output.isColor) { return output.components; @@ -237,7 +237,7 @@ function createStringInterpolation( } class AnimatedInterpolation< - TOutput: number | string + TOutput extends number | string > extends AnimatedWithChildren { #parent: AnimatedWithChildren; #interpolation: (input: number) => TOutput; @@ -265,7 +265,7 @@ class AnimatedInterpolation< } } -function createInterpolator( +function createInterpolator( config: InterpolationConfig ): ((number) => TOutput) | null { switch (typeof config.outputRange[0]) { @@ -281,7 +281,7 @@ function createInterpolator( } } -export function Interpolate( +export function Interpolate( value: AnimatedWithChildren, config: InterpolationConfig ): AnimatedInterpolation { diff --git a/packages/react-strict-animated/src/web/nodes/AnimatedStyle.js b/packages/react-strict-animated/src/web/nodes/AnimatedStyle.js index 04880302..faac07c2 100644 --- a/packages/react-strict-animated/src/web/nodes/AnimatedStyle.js +++ b/packages/react-strict-animated/src/web/nodes/AnimatedStyle.js @@ -23,10 +23,10 @@ type OutputAnimatedStyle = { transform?: string }; -export type ReadOnlyOutputAnimatedStyle = $ReadOnly; +export type ReadOnlyOutputAnimatedStyle = Readonly; export default class AnimatedStyleNode extends AnimatedNode { - #style: $ReadOnly<{ + #style: Readonly<{ ...Omit, 'transform'>, transform?: AnimatedTransform }>; diff --git a/packages/react-strict-animated/src/web/nodes/AnimatedTransform.js b/packages/react-strict-animated/src/web/nodes/AnimatedTransform.js index e1f85f00..74a957ce 100644 --- a/packages/react-strict-animated/src/web/nodes/AnimatedTransform.js +++ b/packages/react-strict-animated/src/web/nodes/AnimatedTransform.js @@ -15,7 +15,7 @@ import type { AnimatedNodeType } from '../types/AnimatedTypes'; import AnimatedNode from './AnimatedNode'; import AnimatedWithChildren from './AnimatedWithChildren'; -const UNIT: $ReadOnly<{ +const UNIT: Readonly<{ rotate: string, rotateX: string, rotateY: string, @@ -60,7 +60,7 @@ function mapTransform(t: AnimatedTransformValue): string { throw new Error('value is neither a number or string'); } -type TransformsArray = $ReadOnlyArray>; +type TransformsArray = ReadonlyArray>; export default class AnimatedTransform extends AnimatedWithChildren { #transforms: TransformsArray; diff --git a/packages/react-strict-animated/src/web/nodes/AnimatedValue.js b/packages/react-strict-animated/src/web/nodes/AnimatedValue.js index ed50db0f..96418fdb 100644 --- a/packages/react-strict-animated/src/web/nodes/AnimatedValue.js +++ b/packages/react-strict-animated/src/web/nodes/AnimatedValue.js @@ -14,13 +14,13 @@ import type { AnimatedAnimation, KeyframeMap } from '../animations/Animation'; import AnimatedStyle from './AnimatedStyle'; import AnimatedWithChildren from './AnimatedWithChildren'; -type AnimationData = $ReadOnly<{ +type AnimationData = Readonly<{ animatedAnimation: AnimatedAnimation, - webAnimations: $ReadOnlyArray + webAnimations: ReadonlyArray }>; function findAnimatedStyles( - node: AnimatedNode, + node: AnimatedNode, animatedStyles: Set ) { if (node instanceof AnimatedStyle) { diff --git a/packages/react-strict-animated/src/web/nodes/AnimatedWithChildren.js b/packages/react-strict-animated/src/web/nodes/AnimatedWithChildren.js index 6abe8f82..d4af2233 100644 --- a/packages/react-strict-animated/src/web/nodes/AnimatedWithChildren.js +++ b/packages/react-strict-animated/src/web/nodes/AnimatedWithChildren.js @@ -12,21 +12,21 @@ import AnimatedNode from './AnimatedNode'; export default class AnimatedWithChildren< TOutput > extends AnimatedNode { - #children: Array>; + #children: Array>; constructor() { super(); this.#children = []; } - __addChild(child: AnimatedNode): void { + __addChild(child: AnimatedNode): void { if (this.#children.length === 0) { this.__attach(); } this.#children.push(child); } - __removeChild(child: AnimatedNode): void { + __removeChild(child: AnimatedNode): void { const index = this.#children.indexOf(child); if (index === -1) { console.warn("Trying to remove a child that doesn't exist"); @@ -38,7 +38,7 @@ export default class AnimatedWithChildren< } } - __getChildren(): Array> { + __getChildren(): Array> { return this.#children; } } diff --git a/packages/react-strict-animated/src/web/types/AnimatedTypes.js b/packages/react-strict-animated/src/web/types/AnimatedTypes.js index 0192d4cc..7780afdd 100644 --- a/packages/react-strict-animated/src/web/types/AnimatedTypes.js +++ b/packages/react-strict-animated/src/web/types/AnimatedTypes.js @@ -19,7 +19,7 @@ export type AnimatedNodeType = InternalAnimatedNode<$FlowFixMe>; export type EndResult = { finished: boolean, ... }; export type EndCallback = (result: EndResult) => void; -export type CompositeAnimation = $ReadOnly<{ +export type CompositeAnimation = Readonly<{ reset: () => void, start: (callback?: EndCallback) => void, stop: () => void diff --git a/packages/react-strict-animated/src/web/useAnimatedStyle.js b/packages/react-strict-animated/src/web/useAnimatedStyle.js index fec9a6cd..e6b8744b 100644 --- a/packages/react-strict-animated/src/web/useAnimatedStyle.js +++ b/packages/react-strict-animated/src/web/useAnimatedStyle.js @@ -29,16 +29,18 @@ import { type CallbackRef = (T) => void; type CompositeKeyComponent = - | AnimatedNode - | $ReadOnlyArray - | $ReadOnly<{ [string]: CompositeKeyComponent }>; - -type $ReadOnlyCompositeKeyComponent = - | AnimatedNode - | $ReadOnlyArray<$ReadOnlyCompositeKeyComponent | null> - | $ReadOnly<{ [string]: $ReadOnlyCompositeKeyComponent }>; - -function isPlainObject(value: mixed): value is $ReadOnly<{ [string]: mixed }> { + | AnimatedNode + | ReadonlyArray + | Readonly<{ [string]: CompositeKeyComponent }>; + +type ReadOnlyCompositeKeyComponent = + | AnimatedNode + | ReadonlyArray + | Readonly<{ [string]: ReadOnlyCompositeKeyComponent }>; + +function isPlainObject( + value: unknown +): value is Readonly<{ [string]: unknown }> { return ( /* $FlowFixMe[incompatible-type-guard] - Flow does not know that the prototype and ReactElement checks preserve the type refinement of `value`. */ @@ -50,9 +52,9 @@ function isPlainObject(value: mixed): value is $ReadOnly<{ [string]: mixed }> { } function createCompositeKeyForArray( - array: $ReadOnlyArray -): $ReadOnlyArray<$ReadOnlyCompositeKeyComponent | null> | null { - let compositeKey: Array<$ReadOnlyCompositeKeyComponent | null> | null = null; + array: ReadonlyArray +): ReadonlyArray | null { + let compositeKey: Array | null = null; for (let ii = 0, length = array.length; ii < length; ii++) { const value = array[ii]; @@ -67,7 +69,7 @@ function createCompositeKeyForArray( } if (compositeKeyComponent != null) { if (compositeKey == null) { - compositeKey = new Array<$ReadOnlyCompositeKeyComponent | null>( + compositeKey = new Array( array.length ).fill(null); } @@ -79,9 +81,9 @@ function createCompositeKeyForArray( } function createCompositeKeyForObject( - object: $ReadOnly<{ [string]: mixed }> -): $ReadOnly<{ [string]: $ReadOnlyCompositeKeyComponent }> | null { - let compositeKey: { [string]: $ReadOnlyCompositeKeyComponent } | null = null; + object: Readonly<{ [string]: unknown }> +): Readonly<{ [string]: ReadOnlyCompositeKeyComponent }> | null { + let compositeKey: { [string]: ReadOnlyCompositeKeyComponent } | null = null; const keys = Object.keys(object); for (let ii = 0, length = keys.length; ii < length; ii++) { @@ -98,7 +100,7 @@ function createCompositeKeyForObject( } if (compositeKeyComponent != null) { if (compositeKey == null) { - compositeKey = {} as { [string]: $ReadOnlyCompositeKeyComponent }; + compositeKey = {} as { [string]: ReadOnlyCompositeKeyComponent }; } compositeKey[key] = compositeKeyComponent; } @@ -108,8 +110,8 @@ function createCompositeKeyForObject( } function areCompositeKeyComponentsEqual( - prev: $ReadOnlyCompositeKeyComponent | null, - next: $ReadOnlyCompositeKeyComponent | null + prev: ReadOnlyCompositeKeyComponent | null, + next: ReadOnlyCompositeKeyComponent | null ): boolean { if (prev === next) { return true; @@ -157,7 +159,7 @@ function areCompositeKeyComponentsEqual( function useMemoizedAnimatedStyle( create: () => ?AnimatedStyle, - style: ?AnimatedStyleValue> + style: ?AnimatedStyleValue> ): ?AnimatedStyle { const compositeKey = useMemo( () => (style != null ? createCompositeKeyForObject(style) : null), @@ -165,7 +167,7 @@ function useMemoizedAnimatedStyle( ); const [currentData, updateData] = useState< - $ReadOnly<{ + Readonly<{ compositeKey: typeof compositeKey, node: ?AnimatedStyle }> @@ -184,8 +186,8 @@ function useMemoizedAnimatedStyle( return currentData.node; } -export default function useAnimatedStyle( - style: ?AnimatedStyleValue>, +export default function useAnimatedStyle( + style: ?AnimatedStyleValue>, parentRef?: React.RefSetter ): [ReadOnlyOutputAnimatedStyle, CallbackRef] { const domElemRef = useRef(null); diff --git a/packages/react-strict-dom/src/native/css/CSSLengthUnitValue.js b/packages/react-strict-dom/src/native/css/CSSLengthUnitValue.js index ac0b2158..86a9b823 100644 --- a/packages/react-strict-dom/src/native/css/CSSLengthUnitValue.js +++ b/packages/react-strict-dom/src/native/css/CSSLengthUnitValue.js @@ -13,7 +13,7 @@ const LENGTH_REGEX = /^(-?[0-9]*[.]?[0-9]+)(em|px|rem|vh|vmax|vmin|vw)$/; type CSSLengthUnitType = 'em' | 'px' | 'rem' | 'vh' | 'vmax' | 'vmin' | 'vw'; -type ResolvePixelValueOptions = $ReadOnly<{ +type ResolvePixelValueOptions = Readonly<{ fontScale: number | void, inheritedFontSize: ?number, viewportHeight: number, diff --git a/packages/react-strict-dom/src/native/css/CSSTransformValue.js b/packages/react-strict-dom/src/native/css/CSSTransformValue.js index 5edb3a51..88b252ab 100644 --- a/packages/react-strict-dom/src/native/css/CSSTransformValue.js +++ b/packages/react-strict-dom/src/native/css/CSSTransformValue.js @@ -10,19 +10,19 @@ import type { ReactNativeTransform } from '../../types/renderer.native'; export class CSSTransformValue { - value: $ReadOnlyArray; + value: ReadonlyArray; cachedScaledTransform: void | { viewportScale: number, - value: $ReadOnlyArray + value: ReadonlyArray }; - constructor(value: $ReadOnlyArray) { + constructor(value: ReadonlyArray) { this.value = value; } resolveTransformValue( viewportScale?: number = 1 - ): $ReadOnlyArray { + ): ReadonlyArray { if (viewportScale === 1) { return this.value; } diff --git a/packages/react-strict-dom/src/native/css/customProperties.js b/packages/react-strict-dom/src/native/css/customProperties.js index c59b5a90..7389215f 100644 --- a/packages/react-strict-dom/src/native/css/customProperties.js +++ b/packages/react-strict-dom/src/native/css/customProperties.js @@ -49,7 +49,7 @@ function resolveVariableReferenceValue( const variableName = normalizeVariableName(variable.variable); const fallbackValue = variable.fallback; - let variableValue: mixed = propertyRegistry[variableName]; + let variableValue: unknown = propertyRegistry[variableName]; // Perform variable resolution on the variable's resolved value if it itself // contains variables @@ -100,7 +100,7 @@ export function resolveVariableReferences( propertyRegistry: CustomProperties, colorScheme: 'light' | 'dark' = 'light' ): string | number | null { - const result: Array = []; + const result: Array = []; for (const value of propValue.values()) { if (value instanceof CSSVariableReferenceValue) { const resolvedValue = resolveVariableReferenceValue( diff --git a/packages/react-strict-dom/src/native/css/flattenStyleXStyles.js b/packages/react-strict-dom/src/native/css/flattenStyleXStyles.js index 28fa3256..c87cc7ec 100644 --- a/packages/react-strict-dom/src/native/css/flattenStyleXStyles.js +++ b/packages/react-strict-dom/src/native/css/flattenStyleXStyles.js @@ -8,15 +8,15 @@ */ type InlineStyle = { - +[key: string]: mixed + +[key: string]: unknown }; -type StylesArray<+T> = T | $ReadOnlyArray>; +type StylesArray<+T> = T | ReadonlyArray>; type Styles = StylesArray; -export function flattenStyle(styles: InlineStyle | $ReadOnlyArray): { - +[key: string]: mixed +export function flattenStyle(styles: InlineStyle | ReadonlyArray): { + +[key: string]: unknown } { if (!Array.isArray(styles)) { return styles; diff --git a/packages/react-strict-dom/src/native/css/index.js b/packages/react-strict-dom/src/native/css/index.js index 1d12d559..dc2b7dfe 100644 --- a/packages/react-strict-dom/src/native/css/index.js +++ b/packages/react-strict-dom/src/native/css/index.js @@ -31,10 +31,10 @@ export const __customProperties: MutableCustomProperties = {}; * which can be done at initialization-time (could potentially be done at * compile-time in the future). */ -function _create(styles: S): { - [string]: mixed +function _create(styles: S): { + [string]: unknown } { - const result: { [string]: mixed } = {}; + const result: { [string]: unknown } = {}; for (const styleName in styles) { const val = styles[styleName]; if (typeof val === 'function') { @@ -86,8 +86,8 @@ export const defineVars = (tokens: CustomProperties): Tokens => { return result; }; -export const firstThatWorks = ( - ...values: $ReadOnlyArray +export const firstThatWorks = ( + ...values: ReadonlyArray ): T => { return values[0]; }; @@ -114,7 +114,7 @@ function _positionTry(p: PositionTry): PositionTry { } export const positionTry: (PositionTry) => string = _positionTry as $FlowFixMe; -type ResolveStyleOptions = $ReadOnly<{ +type ResolveStyleOptions = Readonly<{ active?: ?boolean, colorScheme: ?('light' | 'dark'), customProperties: CustomProperties, @@ -136,9 +136,9 @@ type ResolveStyleOptions = $ReadOnly<{ const mqDark = '@media (prefers-color-scheme: dark)'; function resolveStyle( - style: $ReadOnlyArray | { +[string]: mixed }, + style: ReadonlyArray | { +[string]: unknown }, options: ResolveStyleOptions -): { +[string]: mixed } { +): { +[string]: unknown } { const { active, focus, @@ -154,8 +154,8 @@ function resolveStyle( const colorScheme = options.colorScheme || 'light'; const customProperties = options.customProperties || __customProperties; - const result: { [string]: mixed } = {}; - const stylesToReprocess: { [string]: mixed } = {}; + const result: { [string]: unknown } = {}; + const stylesToReprocess: { [string]: unknown } = {}; const flatStyle = flattenStyle(style); for (const propName in flatStyle) { @@ -301,7 +301,7 @@ function resolveStyle( export function props( this: ResolveStyleOptions, - ...style: $ReadOnlyArray + ...style: ReadonlyArray ): ReactNativeProps { const options = this; diff --git a/packages/react-strict-dom/src/native/css/parseTextShadow.js b/packages/react-strict-dom/src/native/css/parseTextShadow.js index 520051ab..6b641600 100644 --- a/packages/react-strict-dom/src/native/css/parseTextShadow.js +++ b/packages/react-strict-dom/src/native/css/parseTextShadow.js @@ -46,9 +46,9 @@ function parseValue(str: string) { }; } -export type TextShadowStyle = $ReadOnly<{ +export type TextShadowStyle = Readonly<{ textShadowColor: string | null, - textShadowOffset: $ReadOnly<{ + textShadowOffset: Readonly<{ height: number | string, width: number | string }>, diff --git a/packages/react-strict-dom/src/native/css/processStyle.js b/packages/react-strict-dom/src/native/css/processStyle.js index 70078a1c..7329436f 100644 --- a/packages/react-strict-dom/src/native/css/processStyle.js +++ b/packages/react-strict-dom/src/native/css/processStyle.js @@ -65,10 +65,10 @@ const timeValuedProperties = new Set([ const unsupportedValues = new Set(['currentcolor', 'initial']); export function processStyle( - style: { +[string]: mixed }, + style: { +[string]: unknown }, skipValidation?: boolean -): { +[string]: mixed } { - const result: { [string]: mixed } = {}; +): { +[string]: unknown } { + const result: { [string]: unknown } = {}; for (const propName in style) { const styleValue = style[propName]; diff --git a/packages/react-strict-dom/src/native/index.js b/packages/react-strict-dom/src/native/index.js index 177410a5..e4b64e96 100644 --- a/packages/react-strict-dom/src/native/index.js +++ b/packages/react-strict-dom/src/native/index.js @@ -32,9 +32,9 @@ type StyleVars = VarGroup; type Styles = StyleXStyles; type StylesWithout = StyleXStylesWithout; -type ProviderValue = $ReadOnly<{ [string]: string | number }>; +type ProviderValue = Readonly<{ [string]: string | number }>; -type ProviderProps = $ReadOnly<{ +type ProviderProps = Readonly<{ children: React.Node, customProperties: ProviderValue }>; diff --git a/packages/react-strict-dom/src/native/modules/ContextInheritedStyles.js b/packages/react-strict-dom/src/native/modules/ContextInheritedStyles.js index 4027d4dd..e376b8a2 100644 --- a/packages/react-strict-dom/src/native/modules/ContextInheritedStyles.js +++ b/packages/react-strict-dom/src/native/modules/ContextInheritedStyles.js @@ -15,7 +15,7 @@ import { shallowEqual } from './shallowEqual'; type Value = Style; -type ProviderProps = $ReadOnly<{ +type ProviderProps = Readonly<{ children: React.Node, value: Value }>; diff --git a/packages/react-strict-dom/src/native/modules/ContextViewportScale.js b/packages/react-strict-dom/src/native/modules/ContextViewportScale.js index eab7e791..0af481fb 100644 --- a/packages/react-strict-dom/src/native/modules/ContextViewportScale.js +++ b/packages/react-strict-dom/src/native/modules/ContextViewportScale.js @@ -10,11 +10,11 @@ import * as React from 'react'; import * as ReactNative from '../react-native'; -type Value = $ReadOnly<{ +type Value = Readonly<{ scale: number }>; -type ProviderProps = $ReadOnly<{ +type ProviderProps = Readonly<{ children: React.Node, viewportWidth: number }>; diff --git a/packages/react-strict-dom/src/native/modules/TextString.js b/packages/react-strict-dom/src/native/modules/TextString.js index 85589472..9e8ef04a 100644 --- a/packages/react-strict-dom/src/native/modules/TextString.js +++ b/packages/react-strict-dom/src/native/modules/TextString.js @@ -13,7 +13,7 @@ import * as ReactNative from '../react-native'; import { useCustomProperties } from './ContextCustomProperties'; import { useStyleProps } from './useStyleProps'; -type Props = $ReadOnly<{| +type Props = Readonly<{| children: string |}>; diff --git a/packages/react-strict-dom/src/native/modules/createStrictDOMComponent.js b/packages/react-strict-dom/src/native/modules/createStrictDOMComponent.js index ebd16461..b2b0b8d2 100644 --- a/packages/react-strict-dom/src/native/modules/createStrictDOMComponent.js +++ b/packages/react-strict-dom/src/native/modules/createStrictDOMComponent.js @@ -21,7 +21,7 @@ import { errorMsg } from '../../shared/logUtils'; import { useNativeProps } from './useNativeProps'; import { useStrictDOMElement } from './useStrictDOMElement'; -type StrictProps = $ReadOnly<{ +type StrictProps = Readonly<{ ...StrictPropsOriginal, children?: React.Node | ((ReactNativeProps) => React.Node) }>; @@ -33,7 +33,7 @@ const AnimatedPressable = ReactNative.Animated.createAnimatedComponent< // $FlowFixMe[incompatible-type] >(ReactNative.Pressable); -export function createStrictDOMComponent( +export function createStrictDOMComponent( tagName: string, defaultProps?: P ): component(ref?: React.RefSetter, ...P) { diff --git a/packages/react-strict-dom/src/native/modules/createStrictDOMImageComponent.js b/packages/react-strict-dom/src/native/modules/createStrictDOMImageComponent.js index 4f3c0e0a..979b19a1 100644 --- a/packages/react-strict-dom/src/native/modules/createStrictDOMImageComponent.js +++ b/packages/react-strict-dom/src/native/modules/createStrictDOMImageComponent.js @@ -16,7 +16,10 @@ import { useNativeProps } from './useNativeProps'; import { useStrictDOMElement } from './useStrictDOMElement'; import * as css from '../css'; -export function createStrictDOMImageComponent( +export function createStrictDOMImageComponent< + P extends StrictReactDOMImageProps, + T +>( tagName: string, _defaultProps?: P ): component(ref?: React.RefSetter, ...P) { diff --git a/packages/react-strict-dom/src/native/modules/createStrictDOMTextComponent.js b/packages/react-strict-dom/src/native/modules/createStrictDOMTextComponent.js index cbfc8c3e..30deca61 100644 --- a/packages/react-strict-dom/src/native/modules/createStrictDOMTextComponent.js +++ b/packages/react-strict-dom/src/native/modules/createStrictDOMTextComponent.js @@ -19,16 +19,16 @@ import { errorMsg } from '../../shared/logUtils'; import { useNativeProps } from './useNativeProps'; import { useStrictDOMElement } from './useStrictDOMElement'; -type StrictProps = $ReadOnly<{ +type StrictProps = Readonly<{ ...StrictPropsOriginal, children?: React.Node | ((ReactNativeProps) => React.Node) }>; -function hasElementChildren(children: mixed): boolean { +function hasElementChildren(children: unknown): boolean { return children != null && typeof children !== 'string'; } -export function createStrictDOMTextComponent( +export function createStrictDOMTextComponent( tagName: string, defaultProps?: P ): component(ref?: React.RefSetter, ...P) { diff --git a/packages/react-strict-dom/src/native/modules/createStrictDOMTextInputComponent.js b/packages/react-strict-dom/src/native/modules/createStrictDOMTextInputComponent.js index 36373780..64d99912 100644 --- a/packages/react-strict-dom/src/native/modules/createStrictDOMTextInputComponent.js +++ b/packages/react-strict-dom/src/native/modules/createStrictDOMTextInputComponent.js @@ -40,7 +40,10 @@ function updateCachedSelection( } } -export function createStrictDOMTextInputComponent( +export function createStrictDOMTextInputComponent< + P extends StrictInputProps, + T +>( tagName: string, defaultProps?: P ): component(ref?: React.RefSetter, ...P) { diff --git a/packages/react-strict-dom/src/native/modules/mediaQuery.js.flow b/packages/react-strict-dom/src/native/modules/mediaQuery.js.flow index 865c345a..9b2f81d4 100644 --- a/packages/react-strict-dom/src/native/modules/mediaQuery.js.flow +++ b/packages/react-strict-dom/src/native/modules/mediaQuery.js.flow @@ -7,7 +7,7 @@ * @flow strict */ -type MediaQueryValues = $ReadOnly<{ +type MediaQueryValues = Readonly<{ type?: 'screen', width?: number, height?: number, diff --git a/packages/react-strict-dom/src/native/modules/shallowEqual.js b/packages/react-strict-dom/src/native/modules/shallowEqual.js index 70c7e04e..d98283c8 100644 --- a/packages/react-strict-dom/src/native/modules/shallowEqual.js +++ b/packages/react-strict-dom/src/native/modules/shallowEqual.js @@ -19,7 +19,7 @@ const hasOwnProperty = Object.prototype.hasOwnProperty; * when any key has values which are not strictly equal between the arguments. * Returns true when the values of all keys are strictly equal. */ -export function shallowEqual(objA: mixed, objB: mixed): boolean { +export function shallowEqual(objA: unknown, objB: unknown): boolean { if (Object.is(objA, objB)) { return true; } diff --git a/packages/react-strict-dom/src/native/modules/useNativeProps.js b/packages/react-strict-dom/src/native/modules/useNativeProps.js index 22c08372..b185cbee 100644 --- a/packages/react-strict-dom/src/native/modules/useNativeProps.js +++ b/packages/react-strict-dom/src/native/modules/useNativeProps.js @@ -18,7 +18,7 @@ import { isPropAllowed } from '../../shared/isPropAllowed'; import { useCustomProperties } from './ContextCustomProperties'; import { useStyleProps } from './useStyleProps'; -type StrictProps = $ReadOnly<{ +type StrictProps = Readonly<{ ...StrictPropsOriginal, children?: React.Node | ((ReactNativeProps) => React.Node) }>; @@ -274,7 +274,7 @@ export function useNativeProps( // $FlowFixMe[react-rule-hook-mutation] // $FlowFixMe[missing-local-annot] nativeProps.onPress = function ({ nativeEvent }) { - const event: mixed = nativeEvent; + const event: unknown = nativeEvent; let altKey = false; let ctrlKey = false; let metaKey = false; diff --git a/packages/react-strict-dom/src/native/modules/useStrictDOMElement.js b/packages/react-strict-dom/src/native/modules/useStrictDOMElement.js index 285007bb..d9368040 100644 --- a/packages/react-strict-dom/src/native/modules/useStrictDOMElement.js +++ b/packages/react-strict-dom/src/native/modules/useStrictDOMElement.js @@ -22,7 +22,7 @@ type Options = { // $FlowFixMe[unclear-type] type Node = any; -const memoizedStrictRefs: WeakMap = new WeakMap(); +const memoizedStrictRefs: WeakMap = new WeakMap(); const lengthPropertySet = new Set([ 'clientHeight', diff --git a/packages/react-strict-dom/src/native/modules/useStyleTransition.js b/packages/react-strict-dom/src/native/modules/useStyleTransition.js index db99a0af..36609d26 100644 --- a/packages/react-strict-dom/src/native/modules/useStyleTransition.js +++ b/packages/react-strict-dom/src/native/modules/useStyleTransition.js @@ -20,23 +20,23 @@ import * as ReactNative from '../react-native'; import { errorMsg, warnMsg } from '../../shared/logUtils'; type AnimatedStyle = { - [string]: ?ReactNativeStyleValue | $ReadOnlyArray + [string]: ?ReactNativeStyleValue | ReadonlyArray }; -type TransitionMetadata = $ReadOnly<{ +type TransitionMetadata = Readonly<{ delay: number, duration: number, timingFunction: string | null, shouldUseNativeDriver: boolean }>; -const INPUT_RANGE: $ReadOnlyArray = [0, 1]; +const INPUT_RANGE: ReadonlyArray = [0, 1]; -function isNumber(num: mixed): num is number { +function isNumber(num: unknown): num is number { return typeof num === 'number'; } -function isString(str: mixed): str is string { +function isString(str: unknown): str is string { return typeof str === 'string'; } @@ -82,7 +82,7 @@ function getEasingFunction(input: ?string) { return ReactNative.Easing.linear; } -function getTransitionProperties(property: mixed): ?(string[]) { +function getTransitionProperties(property: unknown): ?(string[]) { if (property === 'all') { return ['opacity', 'transform']; } @@ -93,8 +93,8 @@ function getTransitionProperties(property: mixed): ?(string[]) { } function transformsHaveSameLengthTypesAndOrder( - transformsA: $ReadOnlyArray, - transformsB: $ReadOnlyArray + transformsA: ReadonlyArray, + transformsB: ReadonlyArray ): boolean { if (transformsA.length !== transformsB.length) { return false; @@ -124,8 +124,8 @@ function transformsHaveSameLengthTypesAndOrder( } function transformListsAreEqual( - transformsA: $ReadOnlyArray, - transformsB: $ReadOnlyArray + transformsA: ReadonlyArray, + transformsB: ReadonlyArray ): boolean { if (!transformsHaveSameLengthTypesAndOrder(transformsA, transformsB)) { return false; @@ -429,7 +429,7 @@ export function useStyleTransition(style: ReactNativeStyle): ReactNativeStyle { } // Animate the transforms - const animatedTransforms: Array = []; + const animatedTransforms: Array = []; for (let i = 0; i < transforms.length; i++) { const singleTransform = transforms[i]; const singlePrevTransform = prevTransforms[i]; diff --git a/packages/react-strict-dom/src/shared/mergeRefs.js b/packages/react-strict-dom/src/shared/mergeRefs.js index f9806070..957a0934 100644 --- a/packages/react-strict-dom/src/shared/mergeRefs.js +++ b/packages/react-strict-dom/src/shared/mergeRefs.js @@ -12,7 +12,7 @@ import type { CallbackRef, Ref } from '../types/react'; export type RefType = null | void | Ref; export function mergeRefs( - ...args: $ReadOnlyArray> + ...args: ReadonlyArray> ): CallbackRef { return function forwardRef(node: TElement | null) { args.forEach((ref) => { diff --git a/packages/react-strict-dom/src/types/StrictProps.js b/packages/react-strict-dom/src/types/StrictProps.js index 1f974a1c..a05ef0f9 100644 --- a/packages/react-strict-dom/src/types/StrictProps.js +++ b/packages/react-strict-dom/src/types/StrictProps.js @@ -19,7 +19,7 @@ import type { StrictReactDOMOptionProps } from './StrictReactDOMOptionProps'; import type { StrictReactDOMSelectProps } from './StrictReactDOMSelectProps'; import type { StrictReactDOMTextAreaProps } from './StrictReactDOMTextAreaProps'; -export type StrictProps = $ReadOnly<{ +export type StrictProps = Readonly<{ ...StrictReactDOMProps, ...StrictReactDOMAnchorProps, ...StrictReactDOMButtonProps, diff --git a/packages/react-strict-dom/src/types/StrictReactDOMAnchorProps.js b/packages/react-strict-dom/src/types/StrictReactDOMAnchorProps.js index 4ab85d69..d010bee4 100644 --- a/packages/react-strict-dom/src/types/StrictReactDOMAnchorProps.js +++ b/packages/react-strict-dom/src/types/StrictReactDOMAnchorProps.js @@ -9,7 +9,7 @@ import type { StrictReactDOMProps } from './StrictReactDOMProps'; -export type StrictReactDOMAnchorProps = $ReadOnly<{ +export type StrictReactDOMAnchorProps = Readonly<{ ...StrictReactDOMProps, download?: ?string, href?: string, diff --git a/packages/react-strict-dom/src/types/StrictReactDOMImageProps.js b/packages/react-strict-dom/src/types/StrictReactDOMImageProps.js index fd1e18f0..41525beb 100644 --- a/packages/react-strict-dom/src/types/StrictReactDOMImageProps.js +++ b/packages/react-strict-dom/src/types/StrictReactDOMImageProps.js @@ -9,7 +9,7 @@ import type { StrictReactDOMProps } from './StrictReactDOMProps'; -export type StrictReactDOMImageProps = $ReadOnly<{ +export type StrictReactDOMImageProps = Readonly<{ ...StrictReactDOMProps, alt?: ?Stringish, crossOrigin?: ?('anonymous' | 'use-credentials'), diff --git a/packages/react-strict-dom/src/types/StrictReactDOMInputProps.js b/packages/react-strict-dom/src/types/StrictReactDOMInputProps.js index eb2b6224..25fda721 100644 --- a/packages/react-strict-dom/src/types/StrictReactDOMInputProps.js +++ b/packages/react-strict-dom/src/types/StrictReactDOMInputProps.js @@ -9,7 +9,7 @@ import type { AutoComplete, StrictReactDOMProps } from './StrictReactDOMProps'; -export type StrictReactDOMInputProps = $ReadOnly<{ +export type StrictReactDOMInputProps = Readonly<{ ...StrictReactDOMProps, autoComplete?: AutoComplete, checked?: ?(boolean | 'mixed'), diff --git a/packages/react-strict-dom/src/types/StrictReactDOMLabelProps.js b/packages/react-strict-dom/src/types/StrictReactDOMLabelProps.js index d1be4a73..78264c90 100644 --- a/packages/react-strict-dom/src/types/StrictReactDOMLabelProps.js +++ b/packages/react-strict-dom/src/types/StrictReactDOMLabelProps.js @@ -9,7 +9,7 @@ import type { StrictReactDOMProps } from './StrictReactDOMProps'; -export type StrictReactDOMLabelProps = $ReadOnly<{ +export type StrictReactDOMLabelProps = Readonly<{ ...StrictReactDOMProps, for?: string }>; diff --git a/packages/react-strict-dom/src/types/StrictReactDOMListItemProps.js b/packages/react-strict-dom/src/types/StrictReactDOMListItemProps.js index db679bc6..795bd8a0 100644 --- a/packages/react-strict-dom/src/types/StrictReactDOMListItemProps.js +++ b/packages/react-strict-dom/src/types/StrictReactDOMListItemProps.js @@ -9,7 +9,7 @@ import type { StrictReactDOMProps } from './StrictReactDOMProps'; -export type StrictReactDOMListItemProps = $ReadOnly<{ +export type StrictReactDOMListItemProps = Readonly<{ ...StrictReactDOMProps, value?: number }>; diff --git a/packages/react-strict-dom/src/types/StrictReactDOMOptionGroupProps.js b/packages/react-strict-dom/src/types/StrictReactDOMOptionGroupProps.js index 7eb6fd4f..643d6c3b 100644 --- a/packages/react-strict-dom/src/types/StrictReactDOMOptionGroupProps.js +++ b/packages/react-strict-dom/src/types/StrictReactDOMOptionGroupProps.js @@ -9,7 +9,7 @@ import type { StrictReactDOMProps } from './StrictReactDOMProps'; -export type StrictReactDOMOptionGroupProps = $ReadOnly<{ +export type StrictReactDOMOptionGroupProps = Readonly<{ ...StrictReactDOMProps, disabled?: ?boolean, label?: ?Stringish diff --git a/packages/react-strict-dom/src/types/StrictReactDOMOptionProps.js b/packages/react-strict-dom/src/types/StrictReactDOMOptionProps.js index 070e7888..cdeeb633 100644 --- a/packages/react-strict-dom/src/types/StrictReactDOMOptionProps.js +++ b/packages/react-strict-dom/src/types/StrictReactDOMOptionProps.js @@ -9,7 +9,7 @@ import type { StrictReactDOMProps } from './StrictReactDOMProps'; -export type StrictReactDOMOptionProps = $ReadOnly<{ +export type StrictReactDOMOptionProps = Readonly<{ ...StrictReactDOMProps, disabled?: ?boolean, label?: ?Stringish, diff --git a/packages/react-strict-dom/src/types/StrictReactDOMProps.js b/packages/react-strict-dom/src/types/StrictReactDOMProps.js index 351cc67f..ff3ca610 100644 --- a/packages/react-strict-dom/src/types/StrictReactDOMProps.js +++ b/packages/react-strict-dom/src/types/StrictReactDOMProps.js @@ -156,7 +156,7 @@ export type AutoComplete = ?( type IDRef = string; /* -type SyntheticEvent<+T> = $ReadOnly<{| +type SyntheticEvent<+T> = Readonly<{| ...T, bubbles: ?boolean, cancelable: ?boolean, @@ -173,7 +173,7 @@ type SyntheticEvent<+T> = $ReadOnly<{| |}>; */ -type StrictClickEvent = $ReadOnly<{| +type StrictClickEvent = Readonly<{| altKey: boolean, button: number, ctrlKey: boolean, @@ -188,7 +188,7 @@ type StrictClickEvent = $ReadOnly<{| type: 'click' |}>; -export type StrictReactDOMProps = $ReadOnly<{ +export type StrictReactDOMProps = Readonly<{ ...ReactStrictDOMDataProps, // ARIA props @@ -253,7 +253,7 @@ export type StrictReactDOMProps = $ReadOnly<{ onFullscreenChange?: $FlowFixMe, onFullscreenError?: $FlowFixMe, onGotPointerCapture?: $FlowFixMe, - onKeyDown?: (event: $ReadOnly<{ key: string, type: ?string, ... }>) => void, + onKeyDown?: (event: Readonly<{ key: string, type: ?string, ... }>) => void, onKeyUp?: $FlowFixMe, onLostPointerCapture?: $FlowFixMe, onPaste?: $FlowFixMe, diff --git a/packages/react-strict-dom/src/types/StrictReactDOMSelectProps.js b/packages/react-strict-dom/src/types/StrictReactDOMSelectProps.js index a3981b07..04a4fb53 100644 --- a/packages/react-strict-dom/src/types/StrictReactDOMSelectProps.js +++ b/packages/react-strict-dom/src/types/StrictReactDOMSelectProps.js @@ -9,7 +9,7 @@ import type { AutoComplete, StrictReactDOMProps } from './StrictReactDOMProps'; -export type StrictReactDOMSelectProps = $ReadOnly<{ +export type StrictReactDOMSelectProps = Readonly<{ ...StrictReactDOMProps, autoComplete?: AutoComplete, defaultValue?: ?(Stringish | Array), diff --git a/packages/react-strict-dom/src/types/StrictReactDOMTextAreaProps.js b/packages/react-strict-dom/src/types/StrictReactDOMTextAreaProps.js index e0f4ecdb..313a81eb 100644 --- a/packages/react-strict-dom/src/types/StrictReactDOMTextAreaProps.js +++ b/packages/react-strict-dom/src/types/StrictReactDOMTextAreaProps.js @@ -9,7 +9,7 @@ import type { AutoComplete, StrictReactDOMProps } from './StrictReactDOMProps'; -export type StrictReactDOMTextAreaProps = $ReadOnly<{ +export type StrictReactDOMTextAreaProps = Readonly<{ ...StrictReactDOMProps, autoComplete?: AutoComplete, defaultValue?: ?Stringish, diff --git a/packages/react-strict-dom/src/types/Utilities.js b/packages/react-strict-dom/src/types/Utilities.js index 4769de2c..c935a84d 100644 --- a/packages/react-strict-dom/src/types/Utilities.js +++ b/packages/react-strict-dom/src/types/Utilities.js @@ -7,4 +7,4 @@ * @flow strict */ -export type ReactRef = { -current: T | null, ... } | ((T | null) => mixed); +export type ReactRef = { -current: T | null, ... } | ((T | null) => unknown); diff --git a/packages/react-strict-dom/src/types/react.js b/packages/react-strict-dom/src/types/react.js index fdbf4aa8..4210d2f7 100644 --- a/packages/react-strict-dom/src/types/react.js +++ b/packages/react-strict-dom/src/types/react.js @@ -9,6 +9,6 @@ import * as React from 'react'; -export type CallbackRef = (node: T | null) => mixed; +export type CallbackRef = (node: T | null) => unknown; export type ObjectRef = { -current: T, ... }; export type Ref = CallbackRef | ObjectRef | React.RefObject; diff --git a/packages/react-strict-dom/src/types/renderer.native.js b/packages/react-strict-dom/src/types/renderer.native.js index 8254fc93..703cc602 100644 --- a/packages/react-strict-dom/src/types/renderer.native.js +++ b/packages/react-strict-dom/src/types/renderer.native.js @@ -124,20 +124,20 @@ type ReactNativeProps = { }; type ReactNativeTransform = - | $ReadOnly<{ matrix: number[] }> - | $ReadOnly<{ perspective: number }> - | $ReadOnly<{ rotate: string }> - | $ReadOnly<{ rotateX: string }> - | $ReadOnly<{ rotateY: string }> - | $ReadOnly<{ rotateZ: string }> - | $ReadOnly<{ scale: number }> - | $ReadOnly<{ scaleX: number }> - | $ReadOnly<{ scaleY: number }> - | $ReadOnly<{ scaleZ: number }> - | $ReadOnly<{ translateX: number | string }> - | $ReadOnly<{ translateY: number | string }> - | $ReadOnly<{ skewX: string }> - | $ReadOnly<{ skewY: string }>; + | Readonly<{ matrix: number[] }> + | Readonly<{ perspective: number }> + | Readonly<{ rotate: string }> + | Readonly<{ rotateX: string }> + | Readonly<{ rotateY: string }> + | Readonly<{ rotateZ: string }> + | Readonly<{ scale: number }> + | Readonly<{ scaleX: number }> + | Readonly<{ scaleY: number }> + | Readonly<{ scaleZ: number }> + | Readonly<{ translateX: number | string }> + | Readonly<{ translateY: number | string }> + | Readonly<{ skewX: string }> + | Readonly<{ skewY: string }>; type ReactNativeStyleValue = | number diff --git a/packages/react-strict-dom/src/types/renderer.web.js b/packages/react-strict-dom/src/types/renderer.web.js index 76672427..8e175d6f 100644 --- a/packages/react-strict-dom/src/types/renderer.web.js +++ b/packages/react-strict-dom/src/types/renderer.web.js @@ -7,8 +7,8 @@ * @flow strict */ -export type ReactDOMStyleProps = $ReadOnly<{ +export type ReactDOMStyleProps = Readonly<{ className?: string, 'data-style-src'?: string, - style?: $ReadOnly<{ [string]: string | number }> + style?: Readonly<{ [string]: string | number }> }>; diff --git a/packages/react-strict-dom/src/types/styles.js b/packages/react-strict-dom/src/types/styles.js index 797fa5ee..b6190c75 100644 --- a/packages/react-strict-dom/src/types/styles.js +++ b/packages/react-strict-dom/src/types/styles.js @@ -20,10 +20,10 @@ import typeof * as TStyleX from '@stylexjs/stylex'; export type Style = InlineStyles; export type Styles = StyleXArray< - StyleXStyles<> | Theme> + StyleXStyles<> | Theme> >; -export type IStyleX = $ReadOnly<{ +export type IStyleX = Readonly<{ create: TStyleX['create'], createTheme: TStyleX['createTheme'], defineConsts: TStyleX['defineConsts'], @@ -35,5 +35,5 @@ export type IStyleX = $ReadOnly<{ ... }>; -export type MutableCustomProperties = { [string]: mixed }; -export type CustomProperties = $ReadOnly; +export type MutableCustomProperties = { [string]: unknown }; +export type CustomProperties = Readonly; diff --git a/packages/react-strict-dom/src/web/css/merge.js b/packages/react-strict-dom/src/web/css/merge.js index 5ff06845..d8a3daf1 100644 --- a/packages/react-strict-dom/src/web/css/merge.js +++ b/packages/react-strict-dom/src/web/css/merge.js @@ -11,22 +11,22 @@ import { styleq } from 'styleq'; -type CompiledStyle = $ReadOnly<{ +type CompiledStyle = Readonly<{ $$css: true, [key: string]: string }>; -type InlineStyle = $ReadOnly<{ +type InlineStyle = Readonly<{ $$css?: void, [key: string]: string }>; -type StylesArray<+T> = T | $ReadOnlyArray>; +type StylesArray<+T> = T | ReadonlyArray>; -type Props = $ReadOnly<{ +type Props = Readonly<{ className?: string, 'data-style-src'?: string, - style?: $ReadOnly<{ [string]: string | number }> + style?: Readonly<{ [string]: string | number }> }>; const optimizedStyleq = styleq.factory({ @@ -38,9 +38,9 @@ const optimizedStyleq = styleq.factory({ }); export function merge( - ...styles: $ReadOnlyArray< + ...styles: ReadonlyArray< StylesArray< - ?boolean | ?CompiledStyle | ?$ReadOnly<[CompiledStyle, InlineStyle]> + ?boolean | ?CompiledStyle | ?Readonly<[CompiledStyle, InlineStyle]> > > ): Props { @@ -48,7 +48,7 @@ export function merge( const result: { className?: string, 'data-style-src'?: string, - style?: $ReadOnly<{ [string]: string | number }> + style?: Readonly<{ [string]: string | number }> } = {}; if (className != null && className !== '') { result.className = className; diff --git a/packages/react-strict-dom/src/web/modules/createStrictDOMComponent.js b/packages/react-strict-dom/src/web/modules/createStrictDOMComponent.js index 64cd69fb..78e86020 100644 --- a/packages/react-strict-dom/src/web/modules/createStrictDOMComponent.js +++ b/packages/react-strict-dom/src/web/modules/createStrictDOMComponent.js @@ -27,7 +27,7 @@ function validateStrictProps(props: any) { }); } -export function createStrictDOMComponent( +export function createStrictDOMComponent( TagName: string, defaultStyle: StrictProps['style'] ): component(ref?: React.RefSetter, ...P) {