NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2532 most downloaded on npm
Dead simple Object schema validation
Last release 12 months ago
21 Sep 2025
Release timing varies
gaps range from 2 weeks to 9 months
Some releases are documented
notes for 30 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
132 releases · first in 2014
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
locale number config properties less and more are now lessThan and moreThan
number config properties less and more are now lessThan and moreThanNothing published for this version
remove default export, there are only named exports now!
undefined messagesdescribe() method so it works with nested schemasNothing published for this version
f2a0b75, 061e590 [added] number methods lessThan, moreThan
Probably not breaking but we are being safe about it
Fix bug in browsers without symbol #132
7bc01e0 [added] deep path support for from
frombe80413 [fixed] default in concat()
Nothing published for this version
8a8cc5b [changed] remove case aliases and simplify camelCase
f7446d2 [fixed] pass path correctly to cast()
69c0ad4 [fixed] array().concat() incorrectly cleared the sub-schema
Type casts no longer "succeed without fail". For instance boolean will throw if a cast produces an invalid type, instead of quietly coercing to false.
Type casts no longer "succeed without fail".
For instance boolean will throw if a cast produces an
invalid type, instead of quietly coercing to false. By default
cast will now throw in these situations, passing assert: false
to cast options will disable this behavior and the value returned
will be the invalid value (NaN, InvalidDate, null) or the original value
if no good invalid value exists in the language
number().cast('foo', { assert: false }) // -> NaN
bool().cast('foo', { assert: false }) // -> 'foo'
Nothing published for this version
Nothing published for this version
816e607 [added] validation params to ValidationError
f827822 [changed] validate() on objects won't cast nested schema with strict()
139dd24 [changed] lazy qualifies as a yup schema
c553cc0 [added] options to lazy resolve
Nothing published for this version
- 6c309e4 [fixed] array.ensure()
Nothing published for this version
ab78f54 [fixed] reach with lazy()
6e9046b [changed] clean up interface, added lazy(), and fixed object strict semantics
c3b613b [added] strip() method for objects
f30d1e3 [fixed] bug in date min/max with ref
Nothing published for this version
9d70a7b [changed] doesn't throw when context is missing.
75739b8 [added] context sensitive reach()
3ae5fdc [changed] null is not considered an empty value for isValid
Nothing published for this version
ff19720 [fixed] noUnknown and stripUnknown work and propagate to children
86b6446 [fixed] camelCase should maintain leading underscores
335eb18 [fixed] pass options to array sub schema
5bc250f [changed] don't clone unspecified object keys
686f6b1 [changed] concat() allows mixing "mixed" and other type
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
test functions are no longer passed path and context as arguments, Instead they are now values on this inside the test function.
breaking
test functions are no longer passed path and context as arguments, Instead they are now values on this inside the test function.this value, use this.schema instead.other changes
createError for dynamically altering validation errors.add noUnknown() test to objects
stripUnknownrecursive optionnoUnknown() test to objectsdefault for objects now adds keys for all fields, not just fields with non empty defaults
- bug fix
test functions are now passed path and context values along with the field value. Only breaks if using the callback style of defining custom validatio
breaking
test functions are now passed path and context values along with the field value. Only breaks if using the callback style of defining custom validationsNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
the validation() method has been renamed to test() and has a new signature requiring a name argument
breaking
validation() method has been renamed to test() and has a new signature requiring a name argumentstring().max(10).max(15) has a max of 15 instead of 10other changes
abortEarly (default: true) optionfix concat() method and add tests
concat() method and add testsfix validations where nullable fields were failing due to null values e.g string.max()
null values e.g string.max()Your coding agent can read these notes before it upgrades. Set up the MCP server →