valibot
1.5.0 · 9 Sep 2026MIT32M / weekRepositoryHomepagenpmAtom feed
64 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
- 1.x · latest line
1.5.0
9 Sep 2026Add
codePoints,maxCodePoints,minCodePointsandnotCodePointsvalidation actions to validate the number of Unicode code points (pull request #888)Add
ksuidvalidation action to validate KSUIDs (pull request #1370)Change Standard Schema properties to use eager initialization for faster schema construction and replace internal
_getStandardPropsutility with_standardSchema(pull request #1534)
Many thanks to @tats-u, @idleberg, @yslpn, @francisjohnjohnston-web, @MaxFreedomPollard, @mahirhir, @ItzXynx, @LeSingh1, @maxtaran2010, @ysknsid25, @cyyynthia, @spokodev and @sanjibani for contributing to this release.
Add
codePoints,maxCodePoints,minCodePointsandnotCodePointsvalidation actions to validate the number of Unicode code points (pull request #888)Add
ksuidvalidation action to validate KSUIDs (pull request #1370)Change Standard Schema properties to use eager initialization for faster schema construction and replace internal
_getStandardPropsutility with_standardSchema(pull request #1534)Change
urlaction to useURL.canParsewhen available to avoid constructing URL objects (pull request #1608)Fix
stringifyJsonaction to preserve the dataset value whenJSON.stringifyreturnsundefined(pull request #1476)Fix
literalschema andvalue,values,notValueandnotValuesactions to treatNaNas equal to itself (pull request #1573)Fix
intersectschema to merge matchingNaNvalues and invalid dates (pull request #1573)Fix
cacheandcacheAsyncmethods to clone the issues of a cached dataset, preventing parent schemas from adding their path item to the same issue on every cache hit (pull request #1620)Fix
strictObject,looseObject,objectWithRestand their async variants to correctly handle unknown input keys that collide withObject.prototypemembers (pull request #1523)Fix
intersectandintersectAsyncschemas to ignore inherited properties when merging objects and preserve own properties without invoking inherited setters or changing the output prototype (pull request #1621)Fix
ulidaction to reject ULIDs that exceed the maximum 128-bit value (pull request #1498)Fix
emailaction to reject non-ASCII characters accepted by Unicode case folding (pull request #1075)
1.4.2
28 Jun 2026Fix word count actions to cache the
Intl.Segmenterfor non-primitive locales, preventing it from being recreated on everywords,minWords,maxWordsandnotWordsvalidation (pull request #1521)Fix
flattenmethod to handle issue path keys that collide withObject.prototypemembers liketoStringinstead of throwing aTypeError(pull request #1522)Fix
intersectschema to merge object keys that collide withObject.prototypemembers liketoStringinstead of failing to merge them (pull request #1522)
Many thanks to @Faze-up and @chatman-media for contributing to this release.
Fix word count actions to cache the
Intl.Segmenterfor non-primitive locales, preventing it from being recreated on everywords,minWords,maxWordsandnotWordsvalidation (pull request #1521)Fix
flattenmethod to handle issue path keys that collide withObject.prototypemembers liketoStringinstead of throwing aTypeError(pull request #1522)Fix
intersectschema to merge object keys that collide withObject.prototypemembers liketoStringinstead of failing to merge them (pull request #1522)
1.4.0
5 May 2026Add
isoDateTimeSecondvalidation action to validate ISO date times with seconds (pull request #1418)Add
toCamelCase,toKebabCase,toPascalCaseandtoSnakeCasetransformation actions to convert strings between common naming conventions (pull request #1457)Change internal
ReadonlyOutputKeysandOutputWithReadonlytypes ofobjectschemas andWithReadonlytype ofrecordschemas to improve TypeScript type performance (pull request #1442)
Many thanks to @ksaurav24, @heiwen, @compulim, @ysknsid25, @alaycock-stripe, @IlyaSemenov, @wszgrcy, @LMGO, @yslpn, @EltonLobo07 and @Eronmmer for contributing to this release.
Read the release notes on our website for a quick overview of the most exciting new features in this release.
Add
isoDateTimeSecondvalidation action to validate ISO date times with seconds (pull request #1418)Add
toCamelCase,toKebabCase,toPascalCaseandtoSnakeCasetransformation actions to convert strings between common naming conventions (pull request #1457)Change internal
ReadonlyOutputKeysandOutputWithReadonlytypes ofobjectschemas andWithReadonlytype ofrecordschemas to improve TypeScript type performance (pull request #1442)Change hot paths to reduce object allocations and improve runtime performance (pull request #1437)
Change build target to ES2020 so distributed output stays compatible with environments that lack support for newer syntax (pull request #1455)
Change internal
_LruCacheto use a TypeScriptprivatemethod instead of a#privateclass field to avoid runtime helpers in the transpiled output (pull request #1455)Change internal
_isValidObjectKeyto useObject.prototype.hasOwnProperty.callinstead ofObject.hasOwnso the distributed output stays compatible with runtimes that lack the ES2022Object.hasOwnbuiltin (pull request #1421)Change
flattenmethod to accept readonly issue arrays (pull request #1269)Fix potential
RangeErrorcaused by spreading large issue arrays (pull request #1437)Fix
creditCardvalidation action to reject Mastercard numbers with invalid lengths (pull request #1462)Fix
intersectschema to no longer mutate input values, allowing frozen objects and arrays to be merged (pull request #1463)
1.3.0
17 Mar 2026Add
guardtransformation action to narrow types using type predicates (pull request #1204)Add
parseBooleantransformation action to parse boolean values from strings and other types (pull request #1251)Add
isrcvalidation action to validate ISRC codes (pull request #1373)
Many thanks to @EskiMojo14, @yslpn, @alexilyaev, @idleberg, @BerkliumBirb and @frenzzy for contributing to this release.
Read the release notes on our website for a quick overview of the most exciting new features in this release.
Add
guardtransformation action to narrow types using type predicates (pull request #1204)Add
parseBooleantransformation action to parse boolean values from strings and other types (pull request #1251)Add
isrcvalidation action to validate ISRC codes (pull request #1373)Add
cachemethod for caching schema output by input (pull request #1170)Add
domainvalidation action to validate domain names (pull request #1284)Add
jwsCompactvalidation action to validate JWS compact strings (pull request #1348)Fix
creditCardvalidation action to allow 13-digit Visa card numbers (pull request #1347)Fix
isoTimestampvalidation action to allow optional space before UTC offset for PostgreSQLtimestamptzcompatibility (pull request #1195)Fix types for deeply readonly default and fallback values
1.2.0
24 Nov 2025- security
Fix ReDoS vulnerability in
EMOJI_REGEXused byemojiaction Add
toBigint,toBoolean,toDate,toNumberandtoStringtransformation actions (pull request #1212)Add
examplesaction to add example values to a schema (pull request #1199)
Many thanks to @EskiMojo14, @makenowjust, @ysknsid25 and @jacekwilczynski for contributing to this release.
Read the release notes on our website for a quick overview of the most exciting new features in this release.
Add
toBigint,toBoolean,toDate,toNumberandtoStringtransformation actions (pull request #1212)Add
examplesaction to add example values to a schema (pull request #1199)Add
getExamplesmethod to extract example values from a schema (pull request #1199)Add
isbnvalidation action to validate ISBN-10 and ISBN-13 strings (pull request #1097)Add exports for
RawCheckAddIssue,RawCheckContext,RawCheckIssueInfo,RawTransformAddIssue,RawTransformContextandRawTransformIssueInfotypes for better developer experience withrawCheckandrawTransformactions (pull request #1359)Change build step to tsdown
- security
Fix ReDoS vulnerability in
EMOJI_REGEXused byemojiaction
1.1.0
6 May 2025Add
messagemethod to overwrite local error message configuration of a schema (pull request #1103)Add
summarizemethod to summarize issues into a pretty-printable multi-line string (pull request #1158)Add
getTitle,getDescriptionandgetMetadatamethods to extract metadata of a schema (pull request #1154)
Many thanks to @EltonLobo07, @sacrosanctic, @muningis, @EskiMojo14, @MOZGIII, @vktrl and @jasperteo for contributing to this release.
Read the release notes on our website for a quick overview of the most exciting new features in this release.
Add
messagemethod to overwrite local error message configuration of a schema (pull request #1103)Add
summarizemethod to summarize issues into a pretty-printable multi-line string (pull request #1158)Add
getTitle,getDescriptionandgetMetadatamethods to extract metadata of a schema (pull request #1154)Add
minEntriesandmaxEntriesvalidation action to validate number of object entries (pull request #1100)Add
entriesandnotEntriesvalidation action to validate number of object entries (pull request #1156)Add
parseJsonandstringifyJsontransformation action to parse and stringify JSON (pull request #1137)Add
flavortransformation action to flavor the output type of a schema (pull request #950)Add support for bigints to
multipleOfvalidation action (pull request #1164)Change implementation of
variantandvariantAsyncschema to improve performance by aborting validation of discriminators early (pull request #1110)Change name of
NanoIDActionandNanoIDIssueinterface toNanoIdActionandNanoIdIssue(pull request #1171)Fix internal
MarkOptionaltype to fix input and output type of objects in edge cases (issue #1176)
1.0.0
19 Mar 2025Add
assertmethod to assert values (issue #862)Add
checkItemsAsyncaction (pull request #856)Add
graphemes,maxGraphemes,minGraphemesandnotGraphemesaction (pull request #853)
This is a summary of the changes between v0 and v1. Many thanks to everyone who contributed to this release.
Add
assertmethod to assert values (issue #862)Add
checkItemsAsyncaction (pull request #856)Add
graphemes,maxGraphemes,minGraphemesandnotGraphemesaction (pull request #853)Add
words,maxWords,minWordsandnotWordsactionAdd
argsandreturnsaction to transform functions (issue #243)Add
rfcEmailaction to validate RFC 5322 email addresses (pull request #912)Add
gtValueandltValueaction for greater than and less than validation (pull request #978, #985)Add
valuesandnotValuesaction for easier multi-value validation (pull request #919)Add
slugaction to validate URL slugs (pull request #910)Add support for
ReadonlyMapandReadonlySettoreadonlyaction (issue #1059)Add
entriesFromObjectsutil to improve tree shaking (pull request #1023)Add new overload signature to
pipeandpipeAyncmethod to support unlimited pipe items of same input and output type (issue #852)Add
@__NO_SIDE_EFFECTS__notation to improve tree shaking (pull request #995)Add
exactOptionalandexactOptionalAsyncschema (PR #1013)Change types and implementation to support Standard Schema
Change behaviour of
minValueandmaxValueforNaN(pull request #843)Change type and behaviour of
nullable,nullableAsync,nullish,nullishAsync,optional,optionalAsync,undefinedableandundefinedableAsyncfor undefined default value (issue #878)Change type signature of
partialCheckandpartialCheckAsyncaction to add.pathListproperty in a type-safe wayChange type signature of
findItemaction to support type predicates (issue #867)Change validation of missing object entries in
looseObject,looseObjectAsync,object,objectAsync,objectWithRest,objectWithRestAsync,strictObjectandstrictObject(PR #1013)Change type signature of
optionalandoptionalAsyncwhen used within an object schema (PR #1013)Change
MarkOptionaltype to fix order of entries and TS error when using generic schemas (issue #1021)Change
VariantOptionandVariantOptionAsynctype to fix TS error when using generic schemas (issue #842)Change implementation of
variantandvariantAsyncto support optional discriminators usingexactOptional,exactOptionalAsync,optional,optionalAsync,nullishornullishAsyncChange
_addIssueto not ignore empty strings as error message (pull request #1065)Change
ISO_DATE_TIME_REGEXandISO_TIMESTAMP_REGEXto support space as separator (pull request #1064)Change pipe tuple of
pipeandpipeAsyncto be readonly by defaultChange
forward,forwardCheck,partialCheckandpartialCheckAsyncto improve TypeScript performance (issue #987)Change
DECIMAL_REGEXto support floats that start with a dot (pull request #1086)Change exports to export only public types to reduce noise
Refactor
bytes,maxBytes,minBytesandnotBytesactionFix implementation of
nonOptional,nonOptionalAsync,nonNullable,nonNullableAsync,nonNullishandnonNullishAsyncschema in edge cases (issue #909)Fix instantiation error for
anyinPathKeystype (issue #929)Fix TypeScript error of
keyofmethod for objects with many keys (pull request #988)Fix options filtering in
enum_schema (pull request #941)Fix
partialCheckandpartialCheckAsyncaction for typed data with issues
- 0.42.x
0.42.1
20 Sep 2024Reading the note…
0.42.0
15 Sep 2024Reading the note…
- 0.41.x
0.41.0
1 Sep 2024Reading the note…
- 0.40.x
0.40.0
29 Aug 2024Reading the note…
- 0.39.x
0.39.0
24 Aug 2024Reading the note…
- 0.38.x
0.38.0
20 Aug 2024Reading the note…
- 0.37.x
0.37.0
30 Jul 2024Reading the note…
- 0.36.x
0.36.0
5 Jul 2024Reading the note…
- 0.35.x
0.35.0
25 Jun 2024Reading the note…
- 0.34.x
0.34.0
24 Jun 2024Reading the note…
- 0.33.x
0.33.3
19 Jun 2024Reading the note…
0.33.2
19 Jun 2024Reading the note…
0.33.1
18 Jun 2024Reading the note…
0.33.0
18 Jun 2024Reading the note…
- 0.32.x
0.32.0
14 Jun 2024Reading the note…
- 0.31.x
0.31.1
8 Jun 2024Reading the note…
0.31.0
6 Jun 2024Reading the note…
- 0.30.x
0.30.0
7 Mar 2024Reading the note…
- 0.29.x
0.29.0
20 Feb 2024Reading the note…
- 0.28.x
0.28.1
6 Feb 2024Reading the note…
0.28.0
6 Feb 2024Reading the note…
- 0.27.x
0.27.1
28 Jan 2024Reading the note…
0.27.0
24 Jan 2024Reading the note…
- 0.26.x
0.26.0
17 Jan 2024Reading the note…
- 0.25.x
0.25.0
27 Dec 2023Reading the note…
- 0.24.x
0.24.1
11 Dec 2023Reading the note…
0.24.0
11 Dec 2023Reading the note…
- 0.23.x
0.23.0
8 Dec 2023Reading the note…
- 0.22.x
0.22.0
3 Dec 2023Reading the note…
- 0.21.x
0.21.0
19 Nov 2023Reading the note…
- 0.20.x
0.20.1
3 Nov 2023Reading the note…
0.20.0
31 Oct 2023Reading the note…
- 0.19.x
0.19.0
8 Oct 2023Reading the note…
- 0.18.x
0.18.0
1 Oct 2023Reading the note…
- 0.17.x
0.17.1
25 Sep 2023Reading the note…
0.17.0
17 Sep 2023Reading the note…
- 0.16.x
0.16.0
16 Sep 2023Reading the note…
- 0.15.x
0.15.0
10 Sep 2023Reading the note…
- 0.14.x
0.14.0
9 Sep 2023Reading the note…
- 0.13.x
0.13.1
23 Aug 2023Reading the note…
0.13.0
22 Aug 2023Reading the note…