Skip to content

Update Minor Packages - #32

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/minor-packages
Open

renovate[bot] wants to merge 1 commit into
masterfrom
renovate/minor-packages

Conversation

@renovate

@renovate renovate Bot commented Oct 21, 2022 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence Type Update
babel-eslint 8.2.3 → 8.2.6 age confidence devDependencies patch
flow-bin (changelog) 0.66.0 → 0.338.0 age confidence devDependencies minor
flow-copy-source 2.0.2 → 2.0.9 age confidence devDependencies patch
markdownlint-cli ^0.31.1 → ^0.50.0 age confidence devDependencies minor
prettier (source) 2.7.1 → 2.8.8 age confidence devDependencies minor
suzuki-shunsuke/github-action-renovate-config-validator v0.1.2 → v0.1.3 age confidence action patch

Release Notes

babel/babel-eslint (babel-eslint)

v8.2.6

Compare Source

v8.2.5

Compare Source

v8.2.4

Compare Source

meta/flow (flow-bin)

v0.338.0

Compare Source

Breaking Changes:

  • Flowconfig option experimental.assertion_functions is removed. Assertion functions have been on by default and the option only accepted true since 0.337.
  • Flowconfig option experimental.disable_invariant_special_casing is removed. It has been on by default and only accepted true since 0.337.
  • Flowconfig option experimental.function_and_object_type_is_no_longer_any is removed. It has been on by default and only accepted true for a while.
  • Flowconfig option experimental.builtin_ts_libdef_dynamic_discovery is removed. It has been on by default and only accepted true.
  • Flowconfig option experimental.declare_global_support is removed. It has been on by default and only accepted true.

Likely to cause new Flow errors:

  • Readonly, Partial, Required, $Exact, Omit and mapped types over an interface now include its methods and the members it inherits.
  • Type guards now refine Array<any>, {data: any}, Map<string, any> and similar types to the guarded type, e.g. Array<string>, which can surface errors in code that relied on any.
  • Static members can no longer reference the type parameters of their class, like in TypeScript, and reading a static member of a generic class no longer infers them.
  • keyof of an object with a template literal indexer no longer widens the indexer key to string in conditional types like Exclude.

New Features:

  • Mapped types over arrays and tuples support readonly and writeonly modifiers.
  • Property truthiness checks such as if (result.done) now refine unions of classes and interfaces by fields with literal types, as === checks already did.
  • Type guards narrow through optional calls such as isString?.(x). When the callee or receiver is nullable, only the true branch narrows.
  • Support optional assertion calls when their declared types guarantee the call runs.
  • Added the intrinsic ExactObjectType, the supertype of every exact object type and a subtype of {...}.

Notable bug fixes:

  • Fix crashes and false recursive-definition errors from cyclic type star exports in TypeScript declarations.
  • Support namespace export aliases and ambient exported members in TypeScript definitions.
  • Allow classes to extend a constructor whose overloads are not all generic, such as Uint8Array<ArrayBuffer>.
  • Casting a value whose type intersects an enum with other types (e.g. E & E) to the enum's representation type no longer errors.
  • Arrays can be assigned to variables and parameters whose type was inferred from new Array<T>(...).
  • Report delegated yield type errors at the yield expression.
  • Align Try Flow's default lints and declare global support with regular Flow.
  • Improve inference for generic values passed to polymorphic operations.
  • Fix Try Flow initialization after the async builtin migration while preserving older releases' library definitions.
  • Report conditional type instantiation errors at the caller.
  • Apply type-parameter defaults when omitted optional or nullable arguments are the only evidence for them.
  • An object with an indexer is no longer checked against optional properties it doesn't declare of a TypeScript-declared (.d.ts) object type, matching TypeScript.
  • Fewer underconstrained-implicit-instantiation errors for generic calls passed as arguments to other generic calls.
  • Fixed a crash when printing long types that contain non-ASCII names in error messages.
  • Tuple types with a spread keep the variance of their own elements, e.g. a in [readonly a: unknown, ...T] stays read-only.
  • First in [infer First, ...infer Rest] is now inferred instead of unknown.
  • Fixed a deadlock in the Flow server monitor that could make all subsequent commands fail with "Out of retries, exiting!".
  • Type guards with a union type now refine union members precisely, e.g. a falsy-value guard on string | number refines to "" | 0.
  • Type guards now drop union members that are instances of classes unrelated to the guarded class, e.g. x: A | B refined by x is A is now A rather than A | (A & B).
  • The negative branch of a type guard now refines away generics that satisfy the guard, e.g. x: T | number refined by !isT(x) with isT: (x: unknown) => x is T is now number.
  • In the negative branch of a type guard, any now stays any instead of becoming empty, and boolean is refined to the literal the guard does not cover.
  • Correct stdin behavior for flow check-contents and flow autocomplete.
  • Error messages print code that contains backticks, such as template literals, as markdown code spans.
  • Instances of TypeScript-declared generics, such as React.MouseEvent<T>, now compare type parameters without a variance annotation covariantly, as type applications already did.
  • Type guards now drop tuple members of a different length and array members with disjoint element types.
  • Type guards now drop object and interface union members whose properties conflict with the guard type.
  • x instanceof C no longer refines a value of an intersection type to empty.
  • Linux release builds use jemalloc, which keeps the memory of long-running servers from growing after large rechecks.
  • Fixed a race that could leave a file unmerged after a recheck, which made the server recheck forever while an open file imported it.

Misc:

  • Print rest arrays as array types in errors.
  • Print receiver and merged declaration types in errors.
  • Simplify missing this annotation diagnostics.
  • Print both types in inheritance errors.
  • Identify missing parameter annotations directly at the parameter location.
  • Remove empty filename metadata from the Try Flow AST display.
  • Add a default-on option to hide locations in the Try Flow AST pane.
  • Show node types first in the Try Flow AST pane.
  • Add a default-on option to hide null and undefined fields in the Try Flow AST pane.
  • Move Try Flow's JSON error output into an Errors format pill bar.
  • Add JSON AST output to Try Flow.

Parser:

  • Accept explicit semicolons on shorthand ambient modules.
  • Accept keyword members in qualified type names and import types.
  • Allow repeated inline interface exports in TypeScript files.
  • Fixed flow-parser taking minutes to parse JS files over ~1 MB.
  • Support destructured rest parameters in function type signatures.
  • Support import attributes on re-export declarations.
  • Preserve TypeScript accessibility modifiers on bodyless class method signatures.
  • Preserve computed type-literal keys as properties in TypeScript source files.
  • Allow newline-separated type members in TypeScript source files.
  • Use "in out" for the ESTree variance kind of in out type parameters.
  • Parse postfix non-null assertions with type syntax enabled, preserve ASI, and emit TypeScript-compatible NonNullExpression nodes.
  • Respect JavaScript line terminators and Unicode whitespace when recovering source locations.
  • Parse default interface exports and report unsupported syntax during type checking.
  • Correct inferred ESTree source type for default interfaces, inline type specifiers, and exported import aliases.
  • Exclude default interface exports and all-type specifier lists from inferred Babel module source type.
  • Support top-level await for explicit modules and .mjs/.mts files in flow-parser.
  • Always enable type parsing for TypeScript filenames.
  • Reject type syntax in untyped parser mode and report precise diagnostics.
  • Fix declaration method signature locations to include the complete signature.
  • Include the const keyword in const enum declaration locations.

IDE:

  • Hover and error messages no longer print redundant parentheses around function types in maybe types, e.g. ?() => void instead of ?(() => void).

Library Definitions:

  • Align well-known symbol members (Symbol.toStringTag, Symbol.match, Symbol.toPrimitive, ...) with TypeScript.
  • Map and WeakMap set, and Set and WeakSet add, now return this.
  • RegExp flags/sticky/unicode and Number.EPSILON/MAX_SAFE_INTEGER/MIN_SAFE_INTEGER are now read-only; String.prototype.normalize accepts the normalization form literals and the legacy HTML methods (bold, link, ...) are declared.
  • Array.prototype.copyWithin returns this, so subclasses of Array keep their type.
  • Array.prototype.sort returns this, so subclasses of Array keep their type.
  • Math constants (Math.PI, Math.E, ...) are read-only.
  • Number.MAX_VALUE, MIN_VALUE, NaN, NEGATIVE_INFINITY and POSITIVE_INFINITY are read-only.
  • String#split requires a separator, String#replace has separate overloads for a string and a function replacement, and String#length is read-only, as in TypeScript.
  • Use TypeScript's ES2018 async iterator and iterable definitions.
  • Use TypeScript's ES2018 async generator definitions.
  • Use TypeScript's ES2019 array definitions while preserving Flow's existing flatMap union order and inference.
  • Use TypeScript's ES2020 promise definitions, including mutable settled results.
  • Use TypeScript's ES2016 array includes definitions while keeping Flow's element refinement.
  • Use TypeScript's ES2015 generator definitions. Generator.prototype.return now requires a value of the generator's return type.
  • Add React.CSSProperties, typed by csstype.
  • Use TypeScript's ES2015 promise definitions, adapted to Flow's inference.
  • Use TypeScript's ESNext set method definitions, including Set.prototype.union.
  • Use TypeScript's ES2015 Map, Set, WeakMap and WeakSet definitions. size is now read-only.
  • done is now optional in the non-final branch of IteratorResult, as in TypeScript.
  • Use TypeScript's ES2015 iterable definitions. ArrayIterator, MapIterator, SetIterator and StringIterator are now interfaces, and StringIterator takes a type argument.
  • Add React's DOM types from @types/react, such as React.MouseEvent, React.HTMLAttributes and React.JSX.IntrinsicElements.
  • React.ComponentProps of a string that is not a JSX intrinsic is empty in roots that define their own $JSXIntrinsics.
  • Use TypeScript's ESNext iterator helper definitions. reduce without an initial value now requires the reducer to return the iterator's element type.
  • Array, ReadonlyArray and typed array toLocaleString now accept locales and formatting options.
  • Use TypeScript's ES2015 core definitions.

v0.337.0

Compare Source

Likely to cause new Flow errors:

  • Function.prototype.bind is now typed with TypeScript's CallableFunction.bind overloads, so errors in bound arguments are reported at bind, and a bound function's remaining parameters are a tuple type.
  • Function and Object no longer mean any and no longer trigger unclear-type errors. They are now interpreted as the prototypes of functions and objects. Code that assumed they meant any may get new errors.
  • Internal type Function$Prototype$Bind is removed.
  • Class method bind now uses the declared Function.prototype.bind overloads. Bound methods may now report tuple arity errors when used as callbacks that ignore extra arguments or omit nullable parameters, because their inferred parameters are represented as tuple rest parameters.

New Features:

  • Support assertion functions. If you relied on Flow's special handling of invariant, give it an asserts signature.
  • Execute runtime Flow syntax in CommonJS and ES modules with original stack locations through flow-node.
  • Support assertion narrowing through this and super, including receiver assertions.
  • Readonly now supports Array and ReadonlyArray types.

Notable bug fixes:

  • Honor opaque upper bounds in template interpolation and nullable subtyping.
  • Preserve nominal opaque inference when checking nullable targets.
  • Fixed spurious Recursion limit exceeded errors when checking conditions, match and other expressions whose type is a trivially recursive generic type alias.
  • Prevent unsound assertion narrowing when annotations refer to shadowed local declarations.
  • Qualified type references through a union of namespaces (e.g. (cond ? A : B).T via a local) now look up the type in each namespace instead of reporting it as missing.
  • Prevent saved-state startup and incremental match checking from crashing when a recheck is canceled.

Misc:

  • Document assertion functions.

Parser:

  • Add missing AST fields and node types to the Flow parser output. implicitDeclare is now omitted unless true.
  • Emit TypeParameter.bound as a bare type node or null in ESTree output. Babel output retains the TypeAnnotation wrapper, and the TypeScript-to-Flow API translator generates extends bounds.
  • ESTree enum declarations now use a unified EnumBody node with string-or-null explicitType. Babel output retains its existing enum body types.
  • Parse typed function overload signatures in TypeScript implementation files.
  • Parse destructured parameters in TypeScript function types outside declaration files.
  • Parse optional class method signatures in JavaScript and TypeScript files.
  • Parse optional TypeScript constructor parameter properties.
  • Parse namespace export aliases and ambient exported members in TypeScript definitions.
  • Fix parsing of class modifiers before synchronous generator methods.
  • Support readonly T[] in unlabeled tuple elements and require parentheses when optional.

Library Definitions:

  • Add Intl.Segmenter and Intl.supportedValuesOf.
  • Add Intl.NumberFormat.prototype.formatRange and formatRangeToParts, and the ES2023 NumberFormat options; format accepts bigint and numeric strings.
  • String.prototype.localeCompare, toLocaleLowerCase and toLocaleUpperCase accept Intl.LocalesArgument; matchAll with a RegExp returns RegExpExecArray matches.
  • Float16Array.prototype.toLocaleString takes Intl.NumberFormatOptions.
  • Add ES2024 ArrayBuffer resizing, transfer, and constructor options.
  • Align Reflect APIs with TypeScript property, descriptor, key, and constructor definitions.
  • Reuse TypeScript's Float16Array declarations while preserving Flow covariance and callback compatibility.
  • Align Proxy APIs with TypeScript and check array elements against numeric interface indexers.

v0.336.0

Compare Source

Likely to cause new Flow errors:

  • Calls such as Array.from can now infer narrower literal types, requiring explicit annotations where broader types are needed. Unconstrained class type arguments now use their bounds instead of empty.
  • Flow now checks ref compatibility for JSX tags typed as string, exposing refs that assume a more specific element type.
  • Explicit this parameters on methods in library definitions no longer need to accept the instance type.
  • Generic rest-parameter inference can now expose previously hidden parameter-type errors. For example, (input: string, ...args: Array<unknown>) => void no longer satisfies (...args: TArgs) => R when TArgs is inferred as Array<unknown> (Try Flow example).
  • Rest destructuring of exact tuples, e.g. const [first, ...rest] = t, now excludes preceding elements' types from rest.
  • Variance annotations are now checked through tuple type spreads, so type T<out X> = [string, ...[X]] is an error.

New Features:

  • Support tuple types with trailing rest elements, e.g. [string, ...Array<number>]. Array literals ending in array spreads and arguments collected by rest parameters can flow to these types.

Notable bug fixes:

  • Declaration merging for interfaces and declare class now preserves variance annotations.
  • Returns inside functions nested in a type guard function are no longer checked against the enclosing type guard.
  • References inside declare namespace blocks now see members merged across blocks and library files.
  • Functions and constructors are now accepted as builtin Function and Object values.
  • Fixed spurious indexed-access errors involving recursive class type-argument bounds.
  • Type arguments used in later tuple spreads, e.g. B in [...A, ...B], are now inferred instead of left underconstrained.
  • Conditional types using infer on rest parameters now preserve the matched function's optional parameters and rest element in the inferred tuple, e.g. [number, ...Array<boolean>]. Matching functions with fewer parameters than the pattern and no rest parameter no longer produces underconstrained errors.

Misc:

  • flow-upgrade now uses Flow parser packages and requires Node 18 and Prettier 3.

Parser:

  • Correct JavaScript source columns after characters represented by surrogate pairs.

IDE:

  • Hover Go to links no longer include the hovered declaration itself.

Library Definitions:

  • Intl is now a builtin namespace with TypeScript-compatible definitions through ES2020, including Collator, NumberFormat, DateTimeFormat, PluralRules, RelativeTimeFormat, Locale, DisplayNames, getCanonicalLocales, and formatToParts for dates and numbers.
  • The legacy Intl$CollatorOptions, Intl$DateTimeFormatOptions, and Intl$NumberFormatOptions aliases now match TypeScript. Intl.DateTimeFormatPartTypes includes 'unknown', and locale-aware Date methods accept Intl.LocalesArgument and Intl.DateTimeFormatOptions.
  • The global LocalesArgument type is now Intl.LocalesArgument. Library declarations such as flow-typed's declare var Intl hide the builtin namespace and must be removed.
  • React.ElementConfig is removed; use React.ComponentProps instead.
  • Typed arrays gain findLast, findLastIndex, toReversed, toSorted, and with, and their constructors can be called without arguments. For types other than Float16Array, findLast narrows its result with a type-guard callback. Callbacks to findLast and findLastIndex can no longer annotate this.
  • Float16Array now matches TypeScript's declaration, including its from overloads. length, byteLength, and byteOffset are read-only, find and findIndex predicates must return boolean, and callbacks can no longer annotate this.
  • Add RegExp indices and flags, well-formed string methods, bigint Atomics, Error.isError, Promise.try, Atomics.pause, and additional ArrayBuffer and Date constructor signatures.
  • Add TypeScript signatures for Array.fromAsync.
  • AggregateError.prototype.errors is now typed any[], matching TypeScript.
  • Decorator definitions now match TypeScript: ClassDecorator accepts classes, decorator context and metadata types are available, and Function includes [Symbol.metadata].
  • Add DisposableStack, AsyncDisposableStack, SuppressedError, Disposable, and AsyncDisposable. AsyncGenerator now extends AsyncIteratorObject and includes [Symbol.asyncDispose].

v0.335.0

Compare Source

Breaking Changes:

  • Removed the legacy builtin_lib=flowlib and builtin_lib=flowlib-with-lib-dom-d-ts options.
  • Removed the Flow config options exact_by_default, experimental.always_generalize_jsx, experimental.fast_symlink_resolution, experimental.importable_global_libdefs, experimental.interface_dictionary_typing_fix, experimental.new_this_typing, experimental.opaque_type_new_bound_syntax, saved_state.allow_reinit, saved_state.direct_serialization, and saved_state.reinit_on_lib_change. These options had been enabled by default and only accepted true.

Likely to cause new Flow errors:

  • Symbol and Promise now use TypeScript-style instance and constructor interfaces. Code relying on their previous class typing may see different errors.
  • Some JSX expressions that were previously considered underconstrained now infer unknown.
  • Fixed type argument inference that incorrectly used a bound or unknown. More underconstrained errors may appear.
  • String.prototype.replaceAll now has separate overloads for a replacement string and a replacer function, matching TypeScript. Passing a union of these types is an error.
  • RegExpMatchArray.groups is now optional and cannot be null, and RegExp.prototype.dotAll is read-only, matching TypeScript.
  • new $ReadOnlyArray now causes an error.
  • Symbol() now only accepts a string | number description, and Symbol.keyFor returns string | void, matching TypeScript.
  • Deprecated syntax now consistently causes errors, including in library definition files.
  • Type arguments of a polymorphic value flowing to a non-polymorphic type are now solved, which can surface previously hidden errors.
  • React.PropsOf now uses React.ComponentProps to find component props. Additional errors may occur.

New Features:

  • Support assertion functions exported through CommonJS, assertion calls in return position, and assertion calls in arrow expression bodies.
  • The undefined type can be used in library definitions, where it means void.
  • flow-remove-types supports abstract classes, abstract members, override modifiers, satisfies, optional class fields, and additional type-only imports and exports.
  • Template literals infer precise types in const declarations and annotated initializers.

Notable bug fixes:

  • as const on template literals infers template literal types like TypeScript.
  • Implicit instantiation can infer a type argument through React.ComponentProps and other conditional types with infer.
  • Interfaces with construct signatures no longer print a spurious this parameter in error messages and hovers.
  • this-typed methods inherited from builtins such as typed arrays now return the subclass.
  • Exported declare class declarations extending builtins such as Error, Map, Set, or Date now inherit the builtin's statics and constructor.
  • Arguments of new X(...) are now contextually typed when X is annotated with the typeof of a constructor interface value.
  • typeof x === 'function' now refines builtin constructors such as Map and Symbol, and interfaces with call signatures, as functions.
  • User-defined assertion conditions check member access in test context.
  • Recognize ESM default imports of CommonJS assertion functions and callable objects with asserts call signatures.
  • instanceof and declare class ... extends now use the prototype of a constructor interface that has no construct signature, instead of narrowing to empty or reporting "not inheritable".
  • Fixed a memory leak in type signature parsing that inflated server memory on large codebases.
  • Fixed checking interfaces that extend classes, including object values and multiple generic class supers.

Misc:

  • React.ElementConfig is deprecated in this version and will be removed in the next version. Use React.ComponentProps instead.
  • The unnecessary-invariant lint is renamed to unnecessary-assertion; the old name is still accepted.
  • Constructor errors and variance check errors now print types instead of descriptions such as "object type", "module", or "exports".
  • Unary arithmetic on a maybe-typed operand reports null and void separately instead of "null or undefined".
  • Record type utility errors name the utility (Partial, Required, or mapped type).

Parser:

  • Store abstract property annotations in typeAnnotation and emit value: null.

IDE:

  • Hover on flow.org/try now shows types framed as declarations, matching the VS Code extension.
  • Autocomplete and go-to-definition on instances of classes extending builtins such as Map, Set, Error, and Date now show the builtin's instance members.
  • JSX attribute autocomplete on a union or intersection of components offers the props of the components the element is checked against.
  • Go-to-definition on a JSX attribute of a union or intersection of components uses the props of the components the element is checked against.
  • Find-references on a JSX attribute of an intersection of components finds the attributes passed to the branch the element is checked against.
  • Qualify React.ComponentProps in generated type annotations.

Library Definitions:

  • React.ComponentProps<'div'> now includes the optional ref prop.
  • Added Promise.withResolvers.
  • The type parameters of Map.groupBy are now ordered <K, T>, matching TypeScript.
  • RegExp.prototype[Symbol.matchAll] is now a method and RegExpStringIterator an interface, matching TypeScript.

v0.334.0

Compare Source

Likely to cause new Flow errors:

  • Improved generic type inference with conditional types. Some places might infer a different type and cause new errors.
  • Number, String, RegExp, Date, native errors, maps, and sets now use TypeScript-style instance and constructor interfaces, while Math, JSON, and Atomics use named interfaces. Existing code relying on their previous class or object typing may produce new errors.

New Features:

  • Allow object type spreads over interfaces and inexact object types.

Notable bug fixes:

  • Allow classes to extend generic construct-signature interfaces.
  • Generic values re-exported through annotated CommonJS getters retain their polymorphic types.
  • Preserve record lowering source locations.
  • Preserve match lowering source locations.

Parser:

  • Support semicolonless abstract method declarations.

v0.333.0

Compare Source

Likely to cause new Flow errors:

  • Imports of react module will always resolve to Flow's builtin react type definitions. If you use a custom react typing module, you might see errors.

Notable bug fixes:

  • Preserve Flow WASM linker settings, including memory growth.
  • Correct parser ranges for unique symbol types and signed mapped-property variance.

Parser:

  • Rename the ImportType ESTree field from argument to source.
  • Preserve computed object type property keys in parser output.

Library Definitions:

  • Flow will now include DOM typing from TypeScript's lib.dom.d.ts by default. If your project is not supposed to run in the browser, you can switch back to the old behavior with builtin_lib=core-only in flowconfig's [options] section.
  • Flow's Iterable and ArrayLike type now align with those from TypeScript. You might see errors when your existing code assumes the old typing.

v0.332.0

Compare Source

Breaking Changes:

  • no_flowlib option is removed. Use builtin_lib=flowlib (default) or builtin_lib=prelude instead.

Likely to cause new Flow errors:

  • Render types no longer accept exact react element as arguments. See https://flow.org/en/docs/react/render-types/ for supported cases
  • Flow will now always infer a react jsx element to be a render type if it's an element of a component-syntax component, or React.MixedElement otherwise. Legacy code that requires exact react element will see new errors.
  • Add an option for rejecting dynamic imports in Haste modules.

New Features:

  • Symbol() and Symbol.for() create a unique symbol when they initialize a const, so symbols can be used as property keys without explicit declarations.

Notable bug fixes:

  • Bound error type normalization to prevent excessive memory use
  • Release temporary signature-hash graphs after Flow merges.
  • Using import typeof of a generic value without type arguments keeps its polymorphism instead of reporting missing-type-args, and renders accepts import typeof of a generic component.

Parser:

  • Parse deferred imports: import defer * as ns from "m" and import.defer("m") now set the ESTree phase property to "defer".

IDE:

  • Hover on members accessed through super shows the declaration
  • Hover on destructuring keys shows the member declaration
  • Hover on enum members shows the member declaration
  • Hover on signature labels and indexer keys shows the parameter
  • Hover on component attribute names shows the prop declaration
  • Hover on import/export sources shows the module
  • Hover on this-parameters shows the parameter
  • Hover on indexed-access literals shows the member
  • Hover on polymorphic JSX elements no longer exposes overly precise literal types when no annotation demands that precision
  • Hover on a call to an overloaded function reports how many other signatures the function has
  • Hover lists the signatures of an overloaded declaration instead of printing their intersection
  • Component hovers no longer drop indexer rest props
  • Align multiline union members in hover type declarations
  • Render hover definition links in a compact Rust-style navigation row.
  • Expand rest-prop aliases in top-level component hovers.

Library Definitions:

  • React ref callbacks now have a stricter return type
  • import.meta will no longer have url property and arbitrary unknown property. To add them back, you can do so through declaration merging (e.g. adding interface ImportMeta { url: string } to your global library definitions.
  • ArrayLike and ArrayBuffer now follow TypeScript definitions
  • Stricter typing for Array(length) and Array(items)

v0.331.0

Compare Source

Likely to cause new Flow errors:

  • Fixed unsound subtyping of instances against indexer in interfaces (example).
  • Flow will no longer emit method-unbinding errors and instead perform stricter this-type checking (example).

IDE:

  • Improve the primary type displayed by hover
  • Show a single type in type-at-pos and hover
  • Truncate oversized hover types and their reference lists

Library Definitions:

  • React.ReactElement now matches latest type in @types/react. Added missing React.JSX.Element that makes the type in @types/react .

v0.330.0

Compare Source

Likely to cause new Flow errors:

  • Flow will now restrict the allowed syntax forms of .call/apply/bind calls. Only expressions of the form <expr>.m.call(<expr>, ...), <expr>.m.apply(<expr>, ...) and <expr>.m.bind(<expr>, ...) are allowed.
  • [untyped] section of flowconfig will use the glob system. See https://flow.org/en/docs/config/untyped/

Notable bug fixes:

  • Fixed #​9407.
  • Support instanceof refinement of constructor objects.
  • Operations like Partial no longer strip readonly-ness of dictionaries. (example)

v0.329.0

Compare Source

Likely to cause new Flow errors:

  • More subtyping errors will print the types that are incompatible. Some errors might have new locations.
  • A unique symbol annotation is now an error unless it is the type of a const variable, of a readonly object type or interface property, or of a static readonly class field.
  • Flow will error on legacy variance syntax in library definition files

New Features:

  • We have released flow-parser and flow-eslint packages that are drop-in replacement for hermes-parser and hermes-eslint. Babel docs and ESLint docs have been updated.
  • Object properties, class fields, methods, and the members of an interface or declare class imported from another module, can be keyed by a unique symbol.

Notable bug fixes:

  • Prevent a race that can leave server hanging
  • Support TypeScript constructor objects in Flow class positions.
  • keyof over a symbol index signature is now symbol rather than string.
  • A class can extend a value with a construct signature.
  • x !== undefined no longer stops refining after a call that passes undefined as an argument: (e.g. try-Flow)

Library Definitions:

  • Well-known symbols on Symbol are typed as unique symbol, and Symbol.metadata is now available.

v0.328.0

Compare Source

Breaking changes:

New Features:

  • this type guards can now be used on non-static methods of regular classes, not just declare class and interface methods. The method body is checked for consistency against the guard type.

Notable bug fixes:

  • Prevent cached IDE results from blocking rechecks.

Library Definitions:

  • Allow symbols to be used as WeakMap keys

v0.327.0

Compare Source

New Features:

  • In an object type, a bracketed key written as a string or number literal, or as the name of a value, is now a computed key naming a single property rather than an index signature, so several such keys can coexist. A key written as a type-only name is unchanged, and the labeled form [label: K] keeps index-signature semantics. Breaking: a key headed by a value binding is read as a computed key. Thus a class or enum key such as {[C]: V} is now an error, and a qualified type exposed through a class/namespace merge, as in {[C.K]: V}, must use the labeled form {[key: C.K]: V} to remain an index signature.
  • In an interface or a declare class body, a bracketed key written as a string or number literal, or as the name of a value, is now a computed key naming a single property rather than an index signature, so several such keys can coexist, and static puts the property on the static side. A key written as a type-only name is unchanged, and the labeled form [label: K] keeps index-signature semantics. Breaking: a key headed by a value binding is read as a computed key, so a class or enum key such as interface I {[C]: V} is now an error and must use [key: C] to remain an index signature.
  • A computed method key [expr](): T that resolves to a single literal string or safe-integer number is now accepted in interface, declare class, and object type bodies (previously a parse error outside .d.ts files) and reads as a named method.
  • A bracketed access on an array with a string-literal key (for example arr['map'] or arr[Symbol.iterator]) now reads the corresponding named member instead of erroring that the key is not an array index, and a string key holding a safe integer (arr['0']) indexes the array like the equivalent numeric key.

Notable bug fixes:

  • keyof any now evaluates to any as expected. Spurious errors related to the bug will no longer fire.
  • Fix a server crash ("thread 'flow-tokio-runtime' has overflowed its stack") when rechecking a file with an attached LSP client

Parser:

  • Parse component and hook type annotations as the declaration of declare export default

Library Definitions:

  • Add ES2026 Map methods

v0.326.0

Compare Source

Breaking changes:

  • The following flags are removed since they no longer change anything
    • experimental.channel_mode
    • experimental.channel_mode.windows
    • experimental.long_lived_workers
    • experimental.long_lived_workers.windows
    • gc.worker.custom_major_ratio
    • gc.worker.custom_minor_max_size
    • gc.worker.custom_minor_ratio
    • gc.worker.major_heap_increment
    • gc.worker.minor_heap_size
    • gc.worker.space_overhead
    • gc.worker.window_size
    • sharedmemory.hash_table_pow
    • sharedmemory.heap_size

Likely to cause new Flow errors:

  • General subtyping errors will print the types that are incompatible. Some errors might have new locations.

v0.325.0

Compare Source

No behavioral changes in this release

v0.324.0

Compare Source

New Features:

  • .flowconfig's [include] and [ignore] sections can now be configured using globs, in addition to the current regex based system. Right now, glob items must be specified with glob: prefix. Globs do not support <PROJECT_ROOT>, since they are assumed to start from the project root.
  • Class fields and methods whose computed key resolves to a literal string or number are now supported and type-checked as named members.

v0.323.0

Compare Source

No behavioral changes in this release

v0.322.0

Compare Source

Notable bug fixes:

  • Fixed #​9448
  • Fixed a crash in pattern matching. (example)
  • Refining a union by instanceof no longer leaks any from members that cannot match the guard (e.g. Foo<string> | Bar<number> refined by instanceof Foo now yields Foo<string> instead of Foo<string> | Foo<any>). This may surface real errors that were previously masked.

v0.321.0

Compare Source

Parser:

  • flow-parser is now backed by the Rust port parser. It will have public API similar to that of hermes-parser.

v0.320.0

Compare Source

Likely to cause new Flow errors:

  • Object operations on class instance types now produce plain object types instead of preserving the class instance's nominal identity. This affects object type spreads and utilities such as Partial, Required, Readonly, Pick, and Omit. Example

v0.319.0

Compare Source

Likely to cause new Flow errors:

  • The config for casting_syntax is removed. The as casting syntax is the only supported casting syntax. See Modernizing legacy syntax for migration guidance.
  • Flow will now error on T: B in favor of T extends B in type parameters, and error on +/- in favor of readonly/writeonly . See Modernizing legacy syntax for migration guidance.

New Features:

  • Support the global NaN as a match pattern

Notable bug fixes:

  • Fixed negative bigint literal patterns in match being treated as their positive counterpart
  • ConstructorParameters and InstanceType now work on Class<C>, not just typeof C
  • match instance patterns whose constructor is a subclass of the scrutinee type are no longer incorrectly reported as unused.

v0.318.0

Compare Source

Likely to cause new Flow errors:

v0.317.0

Compare Source

New Features:

  • Allow -? (optionality removal) in mapped types.
  • Adds support for utility types ConstructorParameters and InstanceType

Misc:

  • The .flowconfig options component_syntax, enums, and pattern_matching now default to true. To keep the previous behavior, set the corresponding option to =false in your .flowconfig.

v0.316.0

Compare Source

Likely to cause new Flow errors:

  • deprecated-type and deprecated-type-bool errors are now always on (the lints were on by default already). Update any references of the type bool to boolean, and delete references to the lints in your .flowconfig and flowlint comments — the setting is a no-op for this release and will be removed in a future release.

v0.315.0

Compare Source

Misc:

  • Variance keywords (readonly, writeonly, in, out) on type parameters and object/class properties are now enabled by default. The experimental.allow_variance_keywords is no longer needed to opt in.
  • The deprecated variance sigils error message now suggests the contextually correct keyword (readonly/writeonly for property positions, out/in for type parameter positions) instead of listing both alternatives.

v0.314.0

Compare Source

Likely to cause new Flow errors:

  • Deleted the implicit-inexact-object lint, it no longer does anything since exact_by_default=false was deprecated.
  • exact_by_default=false is now deprecated in .flowconfig. Read this blog post on how to migrate, and our docs on objects for more. exact_by_default=true is the default (since 2023) so simply delete the option when migrating.

Notable bug fixes:

  • Fixed incorrect enum cast suggestion when using an enum as a type argument

v0.313.0

Compare Source

Likely to cause new Flow errors:

  • Flow has changed its casting syntax from (x: T) to x as T. The default value of the option casting_syntax is now as, and Flow will error on the old syntax. If you want to preserve the old defualt value, add casting_syntax=both to your .flowconfig. You can use the npm package flow-upgrade to upgade: yarn run flow-codemod typeCastToAsExpression. Read the docs for more.

New Features:

  • Exported class setters no longer require an explicit type annotation: void is used if omitted

Parser:

  • The flow-parser estree output now aligns more with hermes-parser: ArrayExpression gains a trailingComma field, optional chaining is wrapped in a ChainExpression, AssertNonnull (expr!) emits a NonNullExpression instead of an optional node, type-position this emits ThisTypeAnnotation, and TypeParameter.bound is now a bare type node without the TypeAnnotation wrapper.

v0.312.1

Compare Source

  • Fix in saved state checks after a rebase

v0.312.0

Compare Source

Likely to cause new Flow errors:

  • Flow will now error on variance modifiers (+T, -T, in T, out T) on interface method type parameters, matching the existing rejection on class methods and function types

New Features:

  • Declaration merging between declare class and interface of the same name in the same scope.
  • Flow now separates value namespace and type namespace, so code like const A = 1; interface A {} is now accepted.

v0.311.0

Compare Source

New Features:

  • Added support for string and number literal properties in declare class and interface

Library Definitions:

  • Change the Record<K, T> utility type's key bound from K: string to K: PropertyKey, allowing number and symbol keys in addition to string
  • Added some TS built-in types that were missing from Flow's core lib

Parser:

  • Added support for writeonly property variance keyword

Misc:

  • When experimental.allow_variance_keywords is set to true, we support the keywords in / out / readonly / writeonly along with +/- for variance

v0.310.0

Compare Source

New Features:

  • Support constructor type signatures (new (...) => Type) in interfaces and declare class

Misc:

  • When allow_variance_keywords is set to true, Flow stops erroring for in / out / readonly

v0.309.0

Compare Source

No significant changes.

v0.308.0

Compare Source

Parser:

  • The 5 enum body ESTree node types (EnumBooleanBody, EnumNumberBody, EnumStringBody, EnumSymbolBody, EnumBigIntBody) have been replaced with a single EnumBody node. Its members property is a flat array of per-type member nodes (EnumBooleanMember, EnumNumberMember, EnumStringMember, EnumBigIntMember, EnumDefaultedMember). The explicitType property is now a string ("boolean", "number", "string", "symbol", "bigint") or null (previously a boolean). hasUnknownMembers remains a boolean. Several enum validation errors are no longer reported by the parser and are instead reported by the type checker.

Library Definitions:

  • Add type definition for RegExp.escape()

v0.307.1

Compare Source

  • Misc: Store exports index in saved state

v0.307.0

Compare Source

Notable bug fixes:

  • Support numeric literal object keys when importing/exporting object literals
  • Allow type keywords like infer to appear as member names in qualified type access (e.g. type S = O.infer;).
  • Allow type keywords (readonly, keyof, infer, etc.) as function type parameter names

Parser:

  • It is now a parse error to have a ? optional modifier in various places this does not make sense, e.g. const x? = 1;

Misc:

  • API change: flow check becomes an alias of flow status. You can use flow full-check to trigger a full foreground check of a Flow root.

v0.306.1

Compare Source

  • Fix in Meta-internal saved state logic

v0.306.0

Compare Source

New Features:

  • Support for using well-known symbols as property names in types - the form should be exactly Symbol.iterator.

Notable bug fixes:

  • Report prop-missing errors for unbound

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "before 3am every weekday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/minor-packages branch from d63bd6e to b0939a9 Compare October 21, 2022 21:52
@renovate renovate Bot changed the title Pin dependencies Update Minor Packages Oct 21, 2022
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 2 times, most recently from f755f96 to a488f67 Compare October 27, 2022 14:12
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from a488f67 to 9d8120f Compare November 4, 2022 09:07
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 9d8120f to 789ba85 Compare November 12, 2022 01:06
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 2 times, most recently from 1883577 to 88da133 Compare November 29, 2022 21:50
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 4 times, most recently from f731dea to 2a873a0 Compare December 12, 2022 16:48
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 3 times, most recently from 75c829b to 0ef61d3 Compare December 21, 2022 07:36
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 0ef61d3 to 8359d12 Compare December 22, 2022 01:41
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 8359d12 to 3647fc1 Compare March 16, 2023 06:29
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 3647fc1 to 327e6d4 Compare April 3, 2023 16:31
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 327e6d4 to c420bc4 Compare April 17, 2023 13:09
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from c420bc4 to 1c5b113 Compare May 28, 2023 11:31
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 3 times, most recently from 315e117 to a7a4239 Compare June 15, 2023 20:13
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from a7a4239 to 2e844b6 Compare June 17, 2023 07:40
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 3 times, most recently from d2335fc to e12914e Compare June 30, 2023 06:29
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 2 times, most recently from 2dbf4a1 to 1673f68 Compare July 8, 2023 07:45
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 1673f68 to 011221c Compare July 12, 2023 00:30
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 2 times, most recently from 33919f8 to ab02431 Compare October 11, 2023 21:36
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 4 times, most recently from 28d77b6 to f1c8382 Compare October 24, 2023 08:36
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 2 times, most recently from 04522e8 to 2aff9fe Compare October 27, 2023 15:47
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 2 times, most recently from 14c9c72 to 454fdce Compare November 9, 2023 22:12
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 454fdce to 726bd3b Compare November 16, 2023 07:37
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 3 times, most recently from 649a271 to 9453b49 Compare December 5, 2023 07:20
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 2 times, most recently from 09fc948 to 2c92910 Compare December 13, 2023 23:36
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 2 times, most recently from 111c0a7 to e200c81 Compare December 21, 2023 01:34
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from e200c81 to 033c238 Compare January 9, 2024 10:19
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 033c238 to 879a2e9 Compare January 19, 2024 01:05
@renovate
renovate Bot force-pushed the renovate/minor-packages branch 2 times, most recently from 905e000 to eee927d Compare February 2, 2024 00:59
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from eee927d to 5560b1b Compare February 15, 2024 04:28
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 5560b1b to 1a42479 Compare February 25, 2024 04:11
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 1a42479 to 5db1703 Compare March 6, 2024 05:08
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 5db1703 to f06afd6 Compare March 13, 2024 23:15
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from f06afd6 to 15c2c67 Compare March 26, 2024 22:57
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from 15c2c67 to dd0c8d6 Compare April 3, 2024 17:34
@renovate
renovate Bot force-pushed the renovate/minor-packages branch from dd0c8d6 to 4c42479 Compare April 17, 2024 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants