unstale

npm / flow-bin

flow-bin

What changed in flow-bin 0.335 to 0.337, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-28.

37 breaking1 deprecations24 new APIs and options11 behavior and defaults5 tooling42 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

flow-bin 0.33728 changes

Breaking changes 4

  • Function and Object now represent their prototypes rather than any; code relying on their former any behavior may get new errors.

    0.337.0release notes

  • Uses TypeScript's CallableFunction.bind overloads, reporting bound-argument errors at bind and representing remaining parameters as a tuple; bound methods use these overloads too.

    0.337.0release notes

  • Supports readonly T[] in unlabeled tuple elements and requires parentheses when optional.

    0.337.0release notes

  • ESTree output emits the bound as a bare type node or null; Babel output keeps the TypeAnnotation wrapper, and the TypeScript-to-Flow API translator generates extends bounds.

    0.337.0release notes

New APIs and options 6

  • Flow supports assertion functions; give invariant an asserts signature if relying on Flow's special handling of it.

    0.337.0release notes

  • ESTree enum declarations use a unified EnumBody node with string-or-null explicitType; Babel output retains its existing enum body types.

    0.337.0release notes

  • Its options parameter now takes Intl.NumberFormatOptions.

    0.337.0release notes

  • Executes runtime Flow syntax in CommonJS and ES modules while preserving original stack locations.

    0.337.0release notes

  • Adds formatRange, formatRangeToParts, and ES2023 NumberFormat options; format accepts bigint and numeric strings.

    0.337.0release notes

  • Adds library definitions for Intl.Segmenter and Intl.supportedValuesOf.

    0.337.0release notes

Behavior and default changes 2

  • Assertion narrowing now works through this and super, including receiver assertions.

    0.337.0release notes

  • Readonly now supports Array and ReadonlyArray types.

    0.337.0release notes

Tooling 1

  • Adds ES2024 ArrayBuffer resizing, transfer, and constructor options to the library definitions.

    0.337.0release notes

Fixes and other changes 15

  • Prevents unsound assertion narrowing when annotations refer to shadowed local declarations.

    0.337.0release notes

  • Reuses TypeScript declarations while preserving Flow covariance and callback compatibility.

    0.337.0release notes

  • Adds missing AST fields and node types; implicitDeclare is omitted unless true.

    0.337.0release notes

  • TypeScript definitions now parse namespace export aliases and ambient exported members.

    0.337.0release notes

  • Preserves nominal opaque inference when checking nullable targets.

    0.337.0release notes

  • Opaque upper bounds are now honored in template interpolation and nullable subtyping.

    0.337.0release notes

  • Optional class method signatures are now parsed in JavaScript and TypeScript files.

    0.337.0release notes

  • Aligns Proxy APIs with TypeScript and checks array elements against numeric interface indexers.

    0.337.0release notes

  • Qualified type references through a union of namespaces now look up the type in each namespace.

    0.337.0release notes

  • Avoids spurious recursion-limit errors for conditions, match, and other expressions involving trivially recursive generic type aliases.

    0.337.0release notes

  • Aligns Reflect APIs with TypeScript property, descriptor, key, and constructor definitions.

    0.337.0release notes

  • localeCompare, toLocaleLowerCase, and toLocaleUpperCase accept Intl.LocalesArgument; matchAll with a RegExp returns RegExpExecArray matches.

    0.337.0release notes

  • Optional TypeScript constructor parameter properties are now parsed.

    0.337.0release notes

  • The parser now accepts destructured parameters outside declaration files.

    0.337.0release notes

  • The parser now accepts typed function overload signatures in TypeScript implementation files.

    0.337.0release notes

flow-bin 0.33646 changes

Breaking changes 9

  • Calls can infer narrower literal types, so explicit annotations may be needed where broader types are required.

    0.336.0release notes

  • Unconstrained class type arguments now use their bounds instead of empty.

    0.336.0release notes

  • The command now uses Flow parser packages and requires Node 18 and Prettier 3.

    0.336.0release notes

  • Inference can expose previously hidden parameter-type errors, including functions that do not satisfy an inferred rest-parameter type.

    0.336.0release notes

  • The global type is now Intl.LocalesArgument; library declarations such as flow-typed's declare var Intl must be removed because they hide the builtin namespace.

    0.336.0release notes

  • Removed; use React.ComponentProps instead.

    0.336.0release notes

  • Flow checks ref compatibility for JSX tags typed as string, exposing refs that assume a more specific element type.

    0.336.0release notes

  • Rest destructuring of exact tuples now excludes preceding elements' types from the rest value.

    0.336.0release notes

  • Variance annotations are now checked through tuple type spreads.

    0.336.0release notes

New APIs and options 16

  • Added to the library definitions.

    0.336.0release notes

  • Added to the library definitions.

    0.336.0release notes

  • Bigint Atomics support and Atomics.pause are added to the library definitions.

    0.336.0release notes

  • Additional Date constructor signatures are added.

    0.336.0release notes

  • Decorator context and metadata types are now available.

    0.336.0release notes

  • Added to the library definitions.

    0.336.0release notes

  • Added to the library definitions.

    0.336.0release notes

  • The library definitions add Error.isError.

    0.336.0release notes

  • Function now includes [Symbol.metadata].

    0.336.0release notes

  • The type now includes 'unknown'.

    0.336.0release notes

  • The library definitions add Promise.try.

    0.336.0release notes

  • RegExp indices and flags are added to the library definitions.

    0.336.0release notes

  • Added to the library definitions.

    0.336.0release notes

  • Tuple types can have trailing rest elements, and array literals ending in array spreads and rest-parameter arguments can flow to these types.

    0.336.0release notes

  • Typed arrays gain findLast, findLastIndex, toReversed, toSorted, and with; their constructors can be called without arguments. Find callbacks have updated narrowing and this annotation behavior.

    0.336.0release notes

  • Well-formed string methods are added to the library definitions.

    0.336.0release notes

Behavior and default changes 3

  • Functions and constructors are now accepted as builtin Function values.

    0.336.0release notes

  • Explicit this parameters on methods in library definitions no longer need to accept the instance type.

    0.336.0release notes

  • Returns inside functions nested in a type guard function are no longer checked against the enclosing type guard.

    0.336.0release notes

Tooling 2

  • TypeScript signatures for Array.fromAsync are added.

    0.336.0release notes

  • Intl is now a builtin namespace with TypeScript-compatible definitions through ES2020, including locale, formatting, and canonicalization APIs.

    0.336.0release notes

Fixes and other changes 16

  • The property is now typed any[], matching TypeScript.

    0.336.0release notes

  • Additional ArrayBuffer constructor signatures are added.

    0.336.0release notes

  • It now extends AsyncIteratorObject and includes [Symbol.asyncDispose].

    0.336.0release notes

  • Decorator definitions now match TypeScript, and ClassDecorator accepts classes.

    0.336.0release notes

  • Declaration merging for declare class now preserves variance annotations.

    0.336.0release notes

  • References inside namespace blocks now see members merged across blocks and library files.

    0.336.0release notes

  • Its declarations now match TypeScript, including from overloads, readonly size properties, boolean-returning find predicates, and callbacks that cannot annotate this.

    0.336.0release notes

  • Hover links no longer include the hovered declaration itself.

    0.336.0release notes

  • Declaration merging for interfaces now preserves variance annotations.

    0.336.0release notes

  • The legacy options alias now matches TypeScript.

    0.336.0release notes

  • The legacy options alias now matches TypeScript.

    0.336.0release notes

  • The legacy options alias now matches TypeScript.

    0.336.0release notes

  • Parser source columns are now correct after characters represented by surrogate pairs.

    0.336.0release notes

  • Functions and constructors are now accepted as builtin Object values.

    0.336.0release notes

  • Fixed spurious indexed-access errors involving recursive class type-argument bounds.

    0.336.0release notes

  • Type arguments used in later tuple spreads are now inferred instead of left underconstrained.

    0.336.0release notes

flow-bin 0.33546 changes

Breaking changes 24

  • The legacy builtin_lib=flowlib option is removed.

    0.335.0release notes

  • The legacy builtin_lib=flowlib-with-lib-dom-d-ts option is removed.

    0.335.0release notes

  • Deprecated syntax now consistently causes errors, including in library definition files.

    0.335.0release notes

  • This Flow config option is removed.

    0.335.0release notes

  • This Flow config option is removed.

    0.335.0release notes

  • This Flow config option is removed.

    0.335.0release notes

  • This Flow config option is removed.

    0.335.0release notes

  • This Flow config option is removed.

    0.335.0release notes

  • This Flow config option is removed.

    0.335.0release notes

  • This Flow config option is removed.

    0.335.0release notes

  • Some JSX expressions previously considered underconstrained now infer unknown.

    0.335.0release notes

  • Map.groupBy type parameters are now ordered <K, T>, matching TypeScript.

    0.335.0release notes

  • Type arguments flowing from a polymorphic value to a non-polymorphic type are now solved, potentially surfacing previously hidden errors.

    0.335.0release notes

  • Promise now uses TypeScript-style instance and constructor interfaces, which may change errors for code relying on its previous class typing.

    0.335.0release notes

  • React.PropsOf now uses React.ComponentProps to find component props; additional errors may occur.

    0.335.0release notes

  • Constructing a $ReadOnlyArray now causes an error.

    0.335.0release notes

  • dotAll is now read-only, matching TypeScript.

    0.335.0release notes

  • This Flow config option is removed.

    0.335.0release notes

  • This Flow config option is removed.

    0.335.0release notes

  • This Flow config option is removed.

    0.335.0release notes

  • replaceAll has separate overloads for replacement strings and replacer functions; passing a union of those types is an error.

    0.335.0release notes

  • Symbol now uses TypeScript-style instance and constructor interfaces, which may change errors for code relying on its previous class typing.

    0.335.0release notes

  • Symbol() now only accepts a string or number description.

    0.335.0release notes

  • Fixed inference that incorrectly used a bound or unknown; more underconstrained errors may appear.

    0.335.0release notes

Deprecations 1

  • React.ElementConfig is deprecated; use React.ComponentProps instead. It will be removed in the next version.

    0.335.0release notes

New APIs and options 2

  • Promise.withResolvers is added to the library definitions.

    0.335.0release notes

  • The undefined type can now be used in library definitions, where it means void.

    0.335.0release notes

Behavior and default changes 6

  • Applying as const to template literals now infers template literal types like TypeScript.

    0.335.0release notes

  • User-defined assertion conditions now check member access in test context.

    0.335.0release notes

  • Arguments to new X(...) are contextually typed when X is annotated with the typeof of a constructor interface value.

    0.335.0release notes

  • Implicit instantiation can infer a type argument through React.ComponentProps and other conditional types with infer.

    0.335.0release notes

  • Template literals infer precise types in const declarations and annotated initializers.

    0.335.0release notes

  • typeof x === 'function' now refines builtin constructors and interfaces with call signatures as functions.

    0.335.0release notes

Tooling 2

  • flow-remove-types supports abstract classes and members, override modifiers, satisfies, optional class fields, and additional type-only imports and exports.

    0.335.0release notes

  • The unnecessary-invariant lint is renamed to unnecessary-assertion; the old name remains accepted.

    0.335.0release notes

Fixes and other changes 11

  • Assertion functions are supported when exported through CommonJS, in return position, and in arrow expression bodies.

    0.335.0release notes

  • ESM default imports of CommonJS assertion functions and callable objects with asserts call signatures are recognized.

    0.335.0release notes

  • Extends now uses the prototype of a constructor interface without a construct signature instead of reporting not inheritable.

    0.335.0release notes

  • Exported declare classes extending builtins now inherit the builtin's statics and constructor.

    0.335.0release notes

  • instanceof now uses the prototype of a constructor interface without a construct signature instead of narrowing to empty.

    0.335.0release notes

  • React.ComponentProps<'div'> now includes the optional ref prop.

    0.335.0release notes

  • RegExp.prototype[Symbol.matchAll] is now a method, matching TypeScript.

    0.335.0release notes

  • groups is now optional and cannot be null, matching TypeScript.

    0.335.0release notes

  • RegExpStringIterator is now an interface, matching TypeScript.

    0.335.0release notes

  • keyFor now returns string | void, matching TypeScript.

    0.335.0release notes

  • Methods inherited from builtins such as typed arrays now return the subclass.

    0.335.0release notes