npm / valibot
valibot
What changed in valibot 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.
valibot 163 changes
Breaking changes 4
Rejects non-ASCII characters accepted by Unicode case folding.
Drops the i flag for better JSON Schema compatibility.
Drops the i flag for better JSON Schema compatibility.
Drops the i flag for better JSON Schema compatibility.
Security 3
Rejects ULIDs that exceed the maximum 128-bit value.
The flatten method now handles issue path keys that collide with Object.prototype members such as toString without throwing a TypeError.
Valibot has a ReDoS vulnerability in
EMOJI_REGEX
New APIs and options 30
Adds a validation action to validate the number of Unicode code points.
Adds a validation action to validate KSUIDs.
Adds a validation action to validate the number of Unicode code points.
Adds a validation action to validate the number of Unicode code points.
Adds a validation action to validate the number of Unicode code points.
Adds a validation action for ISO date times with seconds.
Adds a transformation action to convert strings to camel case.
Adds a transformation action to convert strings to kebab case.
Adds a transformation action to convert strings to Pascal case.
Adds a transformation action to convert strings to snake case.
Adds a method for caching schema output by input.
Adds a validation action for domain names.
Adds a transformation action that narrows types using type predicates.
Adds a validation action for ISRC codes.
Adds a validation action for JWS compact strings.
Adds a transformation action to parse boolean values from strings and other types.
Adds an action for adding example values to a schema.
Adds a method for extracting example values from a schema.
Adds a validation action for ISBN-10 and ISBN-13 strings.
Exports this type to improve the developer experience with rawCheck and rawTransform actions.
Exports this type to improve the developer experience with rawCheck and rawTransform actions.
Exports this type to improve the developer experience with rawCheck and rawTransform actions.
Exports this type to improve the developer experience with rawCheck and rawTransform actions.
Exports this type to improve the developer experience with rawCheck and rawTransform actions.
Exports this type to improve the developer experience with rawCheck and rawTransform actions.
Adds a transformation action that converts values to bigint.
Adds a transformation action that converts values to boolean.
Adds a transformation action that converts values to Date.
Adds a transformation action that converts values to number.
Adds a transformation action that converts values to string.
Performance 3
Uses
URL.canParsewhen available to avoid constructing URL objects.Word count actions cache Intl.Segmenter for non-primitive locales instead of recreating it for each validation.
Changes hot paths to reduce object allocations and improve runtime performance.
Behavior and default changes 1
The flatten method now accepts readonly issue arrays.
Tooling 1
Changes the build target to ES2020 so distributed output stays compatible with environments that lack support for newer syntax.
Fixes and other changes 21
Clones issues from a cached dataset so parent schemas do not add their path item to the same issue on every cache hit.
Clones issues from a cached dataset so parent schemas do not add their path item to the same issue on every cache hit.
Merges matching
NaNvalues and invalid dates.Ignores inherited properties when merging objects, preserves own properties without invoking inherited setters, and does not change the output prototype.
Ignores inherited properties when merging objects, preserves own properties without invoking inherited setters, and does not change the output prototype.
Treats
NaNas equal to itself.Treats
NaNas equal to itself.Treats
NaNas equal to itself.Preserves the dataset value when
JSON.stringifyreturnsundefined.Object schemas and their async variants correctly handle unknown input keys that collide with
Object.prototypemembers.Treats
NaNas equal to itself.Treats
NaNas equal to itself.The intersect schema now merges object keys that collide with Object.prototype members such as toString.
Fixes inferred input and output types for non-tuple array options, which were previously inferred as never.
Fixes validation to reject Mastercard numbers with invalid lengths.
Stops mutating input values, allowing frozen objects and arrays to be merged.
Fixes a potential RangeError caused by spreading large issue arrays.
The hash action uses case-expanded character classes instead of the i flag.
Allows 13-digit Visa card numbers.
Fixes types for deeply readonly default and fallback values.
Allows an optional space before the UTC offset for PostgreSQL
timestamptzcompatibility.