-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
#1171 support for refine, superRefine, transform and lazy in discriminatedUnion #1290
Conversation
✅ Deploy Preview for guileless-rolypoly-866f8a ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
@roblabat Looking good! I'll try to take some time in the next day or two to look a little more deeply at the implementation here, but first quick pass looks promising, thanks for taking this on. |
Just ran into this problem, anything holding up this PR? |
Unfortunately I don't think getting this clever with extraction of literal values is wise. I modified this PR to make I dislike a lot of things about If you want complex unions with refine, transforms, lazy, etc, I'd recommend just using |
@colinhacks I don't understand why the discriminator key should be available in the output of the discriminated union. DiscriminatedUnion is just an optimisation of unions with this discriminator key helping the code to find the correct type apply quicker. But like in a union the output doesn't have to be one inputs but one of the outputs of all types of the union if no output type of the discriminated union have the discriminator key I don't see why it should in the output has it already made it's office selecting the correct type of the union. By the way I'm not really happy with the implementation like you as it's much more a work around to make it work with ZodEffect and ZodLazy where it should be working by checking the key of the Input of the ZodType to really make it's office. But I currently don't have a solution to do that properly. But To conclude for me the PR should be reopened as your commit revert all the implementation of the PR and related issues or no more solved by this merge and should then be reopened as this merge doesn't solve issues asking for a discriminatedUnion working with transform, refine, superRefine and lazy. ps: Even if using unions could work I think discriminatedUnion is a good optimisation pattern that should be more than just a quick a dirty solution working on just objects. It can be really powerfull especially with transform. |
Release notes say "There are no breaking API changes", but there are at least 2 breaking changes in this pull request:
|
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [zod](https://togithub.com/colinhacks/zod) | [`^3.19.1` -> `^3.20.0`](https://renovatebot.com/diffs/npm/zod/3.19.1/3.20.0) | [![age](https://badges.renovateapi.com/packages/npm/zod/3.20.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/zod/3.20.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/zod/3.20.0/compatibility-slim/3.19.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/zod/3.20.0/confidence-slim/3.19.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>colinhacks/zod</summary> ### [`v3.20.0`](https://togithub.com/colinhacks/zod/releases/tag/v3.20.0): -beta [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.19.1...v3.20.0) #### Breaking changes There are no breaking API changes, however TypeScript versions `4.4` and earlier are no longer officially supported. #### New features The most feature-packed release since Zod 3.0! ##### `.pipe()` A new schema method `.pipe()` is now available on all schemas. which can be used to chain multiple schemas into a "validation pipeline". Typically this will be used in conjunction with `.transform()`. ```ts z.string() .transform(val => val.length) .pipe(z.number().min(5)) ``` The `.pipe()` method returns a `ZodPipeline` instance. ##### `z.coerce` Zod now provides a more convenient way to coerce primitive values. ```ts const schema = z.coerce.string(); schema.parse("tuna"); // => "tuna" schema.parse(12); // => "12" schema.parse(true); // => "true" ``` During the parsing step, the input is passed through the `String()` function, which is a JavaScript built-in for coercing data into strings. Note that the returned schema is a `ZodString` instance so you can use all string methods. ```ts z.coerce.string().email().min(5); ``` All primitive types support coercion. ```ts z.coerce.string(); // String(input) z.coerce.number(); // Number(input) z.coerce.boolean(); // Boolean(input) z.coerce.bigint(); // BigInt(input) z.coerce.date(); // new Date(input) ``` ##### `.catch()` A new schema method `.catch()` is now available on all schemas. It can be used to provide a "catchall" value that will be returned in the event of a parsing error. ```ts const schema = z.string().catch("fallback"); schema.parse("kate"); // => "kate" schema.parse(4); // => "fallback" ``` The `.catch()` method returns a `ZodCatch` instance. ##### `z.symbol()` A long-missing hole in Zod's type system is finally filled! Thanks [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou). ```ts const schema = z.symbol(); schema.parse(Symbol('asdf')); ``` Relatedly, you can also pass symbols into `z.literal()`. ```ts const TUNA = Symbol("tuna"); const schema = z.literal(TUNA); schema.parse(TUNA); // Symbol(tuna) schema.parse(Symbol("nottuna")); // Error ``` ##### `z.string().datetime()` A new method has been added to `ZodString` to validate ISO datetime strings. Thanks [@​samchungy](https://togithub.com/samchungy)! ```ts z.string().datetime(); ``` This method defaults to only allowing *UTC datetimes* (the ones that end in `"Z"`). No timezone offsets are allowed; arbitrary sub-second precision is supported. ```ts const dt = z.string().datetime(); dt.parse("2020-01-01T00:00:00Z"); // 🟢 dt.parse("2020-01-01T00:00:00.123Z"); // 🟢 dt.parse("2020-01-01T00:00:00.123456Z"); // 🟢 (arbitrary precision) dt.parse("2020-01-01T00:00:00+02:00"); // 🔴 (no offsets allowed) ``` Offsets can be supported with the `offset` parameter. ```ts const a = z.string().datetime({ offset: true }); a.parse("2020-01-01T00:00:00+02:00"); // 🟢 offset allowed ``` You can additionally constrain the allowable `precision`. This specifies the number of digits that should follow the decimal point. ```ts const b = z.string().datetime({ precision: 3 }) b.parse("2020-01-01T00:00:00.123Z"); // 🟢 precision of 3 decimal points b.parse("2020-01-01T00:00:00Z"); // 🔴 invalid precision ``` ##### `z.number().finite()` Restrict a number schema to finite values. Thanks [@​igalklebanov](https://togithub.com/igalklebanov). ```ts const schema = z.number().finite(); schema.parse(5); 🟢 schema.parse(Infinity); 🔴 schema.parse(-Infinity); 🔴 ``` #### What's Changed - Add `mask` parameter to `.required` method by [@​SrBrahma](https://togithub.com/SrBrahma) in [https://github.com/colinhacks/zod/pull/1315](https://togithub.com/colinhacks/zod/pull/1315) - Added Intersections to TOC by [@​tmkn](https://togithub.com/tmkn) in [https://github.com/colinhacks/zod/pull/1450](https://togithub.com/colinhacks/zod/pull/1450) - \[[#​1468](https://togithub.com/colinhacks/zod/issues/1468)] Fix zod.dev main page cross origin links. by [@​agrahamg](https://togithub.com/agrahamg) in [https://github.com/colinhacks/zod/pull/1469](https://togithub.com/colinhacks/zod/pull/1469) - Updates remix-domains library name and description in README by [@​diogob](https://togithub.com/diogob) in [https://github.com/colinhacks/zod/pull/1501](https://togithub.com/colinhacks/zod/pull/1501) - Removed BRAND from ZodBrand Input definition by [@​Xetera](https://togithub.com/Xetera) in [https://github.com/colinhacks/zod/pull/1492](https://togithub.com/colinhacks/zod/pull/1492) - Add Zodix to readme ecosystem section by [@​rileytomasek](https://togithub.com/rileytomasek) in [https://github.com/colinhacks/zod/pull/1506](https://togithub.com/colinhacks/zod/pull/1506) - Fix small typos in README by [@​Yhozen](https://togithub.com/Yhozen) in [https://github.com/colinhacks/zod/pull/1521](https://togithub.com/colinhacks/zod/pull/1521) - fix typo by [@​oasido](https://togithub.com/oasido) in [https://github.com/colinhacks/zod/pull/1528](https://togithub.com/colinhacks/zod/pull/1528) - add `fatal` to `ZodIssue`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1555](https://togithub.com/colinhacks/zod/pull/1555) - Fix typo in ERROR_HANDLING.md by [@​Tsuyoshi84](https://togithub.com/Tsuyoshi84) in [https://github.com/colinhacks/zod/pull/1543](https://togithub.com/colinhacks/zod/pull/1543) - add `.finite()` @​ `ZodNumber`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1546](https://togithub.com/colinhacks/zod/pull/1546) - Fix typing bug hiding errors of nullable composite fields by [@​tadeokondrak](https://togithub.com/tadeokondrak) in [https://github.com/colinhacks/zod/pull/1545](https://togithub.com/colinhacks/zod/pull/1545) - [#​1227](https://togithub.com/colinhacks/zod/issues/1227) Feature default on mismatch by [@​seancrowe](https://togithub.com/seancrowe) in [https://github.com/colinhacks/zod/pull/1537](https://togithub.com/colinhacks/zod/pull/1537) - fix [#​1046](https://togithub.com/colinhacks/zod/issues/1046) `.required()` doesn't remove optional flag from the result of `.nullish()`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1542](https://togithub.com/colinhacks/zod/pull/1542) - add `datetime()` string formats by [@​samchungy](https://togithub.com/samchungy) in [https://github.com/colinhacks/zod/pull/1494](https://togithub.com/colinhacks/zod/pull/1494) - Bump minimatch from 3.0.4 to 3.1.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/colinhacks/zod/pull/1558](https://togithub.com/colinhacks/zod/pull/1558) - Bump minimist from 1.2.5 to 1.2.7 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/colinhacks/zod/pull/1507](https://togithub.com/colinhacks/zod/pull/1507) - [#​1171](https://togithub.com/colinhacks/zod/issues/1171) support for refine, superRefine, transform and lazy in discriminatedUnion by [@​roblabat](https://togithub.com/roblabat) in [https://github.com/colinhacks/zod/pull/1290](https://togithub.com/colinhacks/zod/pull/1290) - branded type as normal argument by [@​KATT](https://togithub.com/KATT) in [https://github.com/colinhacks/zod/pull/1502](https://togithub.com/colinhacks/zod/pull/1502) - Take `path` parameter into account within `.parseAsync()` by [@​RobinTail](https://togithub.com/RobinTail) in [https://github.com/colinhacks/zod/pull/1513](https://togithub.com/colinhacks/zod/pull/1513) - Update README.md by [@​rosnerdev](https://togithub.com/rosnerdev) in [https://github.com/colinhacks/zod/pull/1463](https://togithub.com/colinhacks/zod/pull/1463) - Add `ZodSymbol` by [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou) in [https://github.com/colinhacks/zod/pull/1448](https://togithub.com/colinhacks/zod/pull/1448) - Fix Minor Typos by [@​WebDevSimplified](https://togithub.com/WebDevSimplified) in [https://github.com/colinhacks/zod/pull/1624](https://togithub.com/colinhacks/zod/pull/1624) #### New Contributors - [@​SrBrahma](https://togithub.com/SrBrahma) made their first contribution in [https://github.com/colinhacks/zod/pull/1315](https://togithub.com/colinhacks/zod/pull/1315) - [@​tmkn](https://togithub.com/tmkn) made their first contribution in [https://github.com/colinhacks/zod/pull/1450](https://togithub.com/colinhacks/zod/pull/1450) - [@​agrahamg](https://togithub.com/agrahamg) made their first contribution in [https://github.com/colinhacks/zod/pull/1469](https://togithub.com/colinhacks/zod/pull/1469) - [@​diogob](https://togithub.com/diogob) made their first contribution in [https://github.com/colinhacks/zod/pull/1501](https://togithub.com/colinhacks/zod/pull/1501) - [@​Xetera](https://togithub.com/Xetera) made their first contribution in [https://github.com/colinhacks/zod/pull/1492](https://togithub.com/colinhacks/zod/pull/1492) - [@​rileytomasek](https://togithub.com/rileytomasek) made their first contribution in [https://github.com/colinhacks/zod/pull/1506](https://togithub.com/colinhacks/zod/pull/1506) - [@​Yhozen](https://togithub.com/Yhozen) made their first contribution in [https://github.com/colinhacks/zod/pull/1521](https://togithub.com/colinhacks/zod/pull/1521) - [@​oasido](https://togithub.com/oasido) made their first contribution in [https://github.com/colinhacks/zod/pull/1528](https://togithub.com/colinhacks/zod/pull/1528) - [@​igalklebanov](https://togithub.com/igalklebanov) made their first contribution in [https://github.com/colinhacks/zod/pull/1555](https://togithub.com/colinhacks/zod/pull/1555) - [@​Tsuyoshi84](https://togithub.com/Tsuyoshi84) made their first contribution in [https://github.com/colinhacks/zod/pull/1543](https://togithub.com/colinhacks/zod/pull/1543) - [@​tadeokondrak](https://togithub.com/tadeokondrak) made their first contribution in [https://github.com/colinhacks/zod/pull/1545](https://togithub.com/colinhacks/zod/pull/1545) - [@​seancrowe](https://togithub.com/seancrowe) made their first contribution in [https://github.com/colinhacks/zod/pull/1537](https://togithub.com/colinhacks/zod/pull/1537) - [@​samchungy](https://togithub.com/samchungy) made their first contribution in [https://github.com/colinhacks/zod/pull/1494](https://togithub.com/colinhacks/zod/pull/1494) - [@​roblabat](https://togithub.com/roblabat) made their first contribution in [https://github.com/colinhacks/zod/pull/1290](https://togithub.com/colinhacks/zod/pull/1290) - [@​KATT](https://togithub.com/KATT) made their first contribution in [https://github.com/colinhacks/zod/pull/1502](https://togithub.com/colinhacks/zod/pull/1502) - [@​RobinTail](https://togithub.com/RobinTail) made their first contribution in [https://github.com/colinhacks/zod/pull/1513](https://togithub.com/colinhacks/zod/pull/1513) - [@​rosnerdev](https://togithub.com/rosnerdev) made their first contribution in [https://github.com/colinhacks/zod/pull/1463](https://togithub.com/colinhacks/zod/pull/1463) - [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou) made their first contribution in [https://github.com/colinhacks/zod/pull/1448](https://togithub.com/colinhacks/zod/pull/1448) - [@​WebDevSimplified](https://togithub.com/WebDevSimplified) made their first contribution in [https://github.com/colinhacks/zod/pull/1624](https://togithub.com/colinhacks/zod/pull/1624) **Full Changelog**: colinhacks/zod@v3.19.1...v3.20.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - "after 8:00 before 23:00 every weekday except on Friday" in timezone UTC. 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/fiatconnect/api-starter). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC41NC4yIiwidXBkYXRlZEluVmVyIjoiMzQuNTQuMiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [zod](https://togithub.com/colinhacks/zod) | [`^3.19.1` -> `^3.20.0`](https://renovatebot.com/diffs/npm/zod/3.19.1/3.20.0) | [![age](https://badges.renovateapi.com/packages/npm/zod/3.20.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/zod/3.20.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/zod/3.20.0/compatibility-slim/3.19.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/zod/3.20.0/confidence-slim/3.19.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>colinhacks/zod</summary> ### [`v3.20.0`](https://togithub.com/colinhacks/zod/releases/tag/v3.20.0): -beta [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.19.1...v3.20.0) ##### Breaking changes There are no breaking API changes, however TypeScript versions `4.4` and earlier are no longer officially supported. ##### New features The most feature-packed release since Zod 3.0! ##### `.pipe()` A new schema method `.pipe()` is now available on all schemas. which can be used to chain multiple schemas into a "validation pipeline". Typically this will be used in conjunction with `.transform()`. ```ts z.string() .transform(val => val.length) .pipe(z.number().min(5)) ``` The `.pipe()` method returns a `ZodPipeline` instance. ##### `z.coerce` Zod now provides a more convenient way to coerce primitive values. ```ts const schema = z.coerce.string(); schema.parse("tuna"); // => "tuna" schema.parse(12); // => "12" schema.parse(true); // => "true" ``` During the parsing step, the input is passed through the `String()` function, which is a JavaScript built-in for coercing data into strings. Note that the returned schema is a `ZodString` instance so you can use all string methods. ```ts z.coerce.string().email().min(5); ``` All primitive types support coercion. ```ts z.coerce.string(); // String(input) z.coerce.number(); // Number(input) z.coerce.boolean(); // Boolean(input) z.coerce.bigint(); // BigInt(input) z.coerce.date(); // new Date(input) ``` ##### `.catch()` A new schema method `.catch()` is now available on all schemas. It can be used to provide a "catchall" value that will be returned in the event of a parsing error. ```ts const schema = z.string().catch("fallback"); schema.parse("kate"); // => "kate" schema.parse(4); // => "fallback" ``` The `.catch()` method returns a `ZodCatch` instance. ##### `z.symbol()` A long-missing hole in Zod's type system is finally filled! Thanks [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou). ```ts const schema = z.symbol(); schema.parse(Symbol('asdf')); ``` Relatedly, you can also pass symbols into `z.literal()`. ```ts const TUNA = Symbol("tuna"); const schema = z.literal(TUNA); schema.parse(TUNA); // Symbol(tuna) schema.parse(Symbol("nottuna")); // Error ``` ##### `z.string().datetime()` A new method has been added to `ZodString` to validate ISO datetime strings. Thanks [@​samchungy](https://togithub.com/samchungy)! ```ts z.string().datetime(); ``` This method defaults to only allowing *UTC datetimes* (the ones that end in `"Z"`). No timezone offsets are allowed; arbitrary sub-second precision is supported. ```ts const dt = z.string().datetime(); dt.parse("2020-01-01T00:00:00Z"); // 🟢 dt.parse("2020-01-01T00:00:00.123Z"); // 🟢 dt.parse("2020-01-01T00:00:00.123456Z"); // 🟢 (arbitrary precision) dt.parse("2020-01-01T00:00:00+02:00"); // 🔴 (no offsets allowed) ``` Offsets can be supported with the `offset` parameter. ```ts const a = z.string().datetime({ offset: true }); a.parse("2020-01-01T00:00:00+02:00"); // 🟢 offset allowed ``` You can additionally constrain the allowable `precision`. This specifies the number of digits that should follow the decimal point. ```ts const b = z.string().datetime({ precision: 3 }) b.parse("2020-01-01T00:00:00.123Z"); // 🟢 precision of 3 decimal points b.parse("2020-01-01T00:00:00Z"); // 🔴 invalid precision ``` ##### `z.number().finite()` Restrict a number schema to finite values. Thanks [@​igalklebanov](https://togithub.com/igalklebanov). ```ts const schema = z.number().finite(); schema.parse(5); 🟢 schema.parse(Infinity); 🔴 schema.parse(-Infinity); 🔴 ``` ##### What's Changed - Add `mask` parameter to `.required` method by [@​SrBrahma](https://togithub.com/SrBrahma) in [https://github.com/colinhacks/zod/pull/1315](https://togithub.com/colinhacks/zod/pull/1315) - Added Intersections to TOC by [@​tmkn](https://togithub.com/tmkn) in [https://github.com/colinhacks/zod/pull/1450](https://togithub.com/colinhacks/zod/pull/1450) - \[[#​1468](https://togithub.com/colinhacks/zod/issues/1468)] Fix zod.dev main page cross origin links. by [@​agrahamg](https://togithub.com/agrahamg) in [https://github.com/colinhacks/zod/pull/1469](https://togithub.com/colinhacks/zod/pull/1469) - Updates remix-domains library name and description in README by [@​diogob](https://togithub.com/diogob) in [https://github.com/colinhacks/zod/pull/1501](https://togithub.com/colinhacks/zod/pull/1501) - Removed BRAND from ZodBrand Input definition by [@​Xetera](https://togithub.com/Xetera) in [https://github.com/colinhacks/zod/pull/1492](https://togithub.com/colinhacks/zod/pull/1492) - Add Zodix to readme ecosystem section by [@​rileytomasek](https://togithub.com/rileytomasek) in [https://github.com/colinhacks/zod/pull/1506](https://togithub.com/colinhacks/zod/pull/1506) - Fix small typos in README by [@​Yhozen](https://togithub.com/Yhozen) in [https://github.com/colinhacks/zod/pull/1521](https://togithub.com/colinhacks/zod/pull/1521) - fix typo by [@​oasido](https://togithub.com/oasido) in [https://github.com/colinhacks/zod/pull/1528](https://togithub.com/colinhacks/zod/pull/1528) - add `fatal` to `ZodIssue`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1555](https://togithub.com/colinhacks/zod/pull/1555) - Fix typo in ERROR_HANDLING.md by [@​Tsuyoshi84](https://togithub.com/Tsuyoshi84) in [https://github.com/colinhacks/zod/pull/1543](https://togithub.com/colinhacks/zod/pull/1543) - add `.finite()` @​ `ZodNumber`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1546](https://togithub.com/colinhacks/zod/pull/1546) - Fix typing bug hiding errors of nullable composite fields by [@​tadeokondrak](https://togithub.com/tadeokondrak) in [https://github.com/colinhacks/zod/pull/1545](https://togithub.com/colinhacks/zod/pull/1545) - [#​1227](https://togithub.com/colinhacks/zod/issues/1227) Feature default on mismatch by [@​seancrowe](https://togithub.com/seancrowe) in [https://github.com/colinhacks/zod/pull/1537](https://togithub.com/colinhacks/zod/pull/1537) - fix [#​1046](https://togithub.com/colinhacks/zod/issues/1046) `.required()` doesn't remove optional flag from the result of `.nullish()`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1542](https://togithub.com/colinhacks/zod/pull/1542) - add `datetime()` string formats by [@​samchungy](https://togithub.com/samchungy) in [https://github.com/colinhacks/zod/pull/1494](https://togithub.com/colinhacks/zod/pull/1494) - Bump minimatch from 3.0.4 to 3.1.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/colinhacks/zod/pull/1558](https://togithub.com/colinhacks/zod/pull/1558) - Bump minimist from 1.2.5 to 1.2.7 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/colinhacks/zod/pull/1507](https://togithub.com/colinhacks/zod/pull/1507) - [#​1171](https://togithub.com/colinhacks/zod/issues/1171) support for refine, superRefine, transform and lazy in discriminatedUnion by [@​roblabat](https://togithub.com/roblabat) in [https://github.com/colinhacks/zod/pull/1290](https://togithub.com/colinhacks/zod/pull/1290) - branded type as normal argument by [@​KATT](https://togithub.com/KATT) in [https://github.com/colinhacks/zod/pull/1502](https://togithub.com/colinhacks/zod/pull/1502) - Take `path` parameter into account within `.parseAsync()` by [@​RobinTail](https://togithub.com/RobinTail) in [https://github.com/colinhacks/zod/pull/1513](https://togithub.com/colinhacks/zod/pull/1513) - Update README.md by [@​rosnerdev](https://togithub.com/rosnerdev) in [https://github.com/colinhacks/zod/pull/1463](https://togithub.com/colinhacks/zod/pull/1463) - Add `ZodSymbol` by [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou) in [https://github.com/colinhacks/zod/pull/1448](https://togithub.com/colinhacks/zod/pull/1448) - Fix Minor Typos by [@​WebDevSimplified](https://togithub.com/WebDevSimplified) in [https://github.com/colinhacks/zod/pull/1624](https://togithub.com/colinhacks/zod/pull/1624) ##### New Contributors - [@​SrBrahma](https://togithub.com/SrBrahma) made their first contribution in [https://github.com/colinhacks/zod/pull/1315](https://togithub.com/colinhacks/zod/pull/1315) - [@​tmkn](https://togithub.com/tmkn) made their first contribution in [https://github.com/colinhacks/zod/pull/1450](https://togithub.com/colinhacks/zod/pull/1450) - [@​agrahamg](https://togithub.com/agrahamg) made their first contribution in [https://github.com/colinhacks/zod/pull/1469](https://togithub.com/colinhacks/zod/pull/1469) - [@​diogob](https://togithub.com/diogob) made their first contribution in [https://github.com/colinhacks/zod/pull/1501](https://togithub.com/colinhacks/zod/pull/1501) - [@​Xetera](https://togithub.com/Xetera) made their first contribution in [https://github.com/colinhacks/zod/pull/1492](https://togithub.com/colinhacks/zod/pull/1492) - [@​rileytomasek](https://togithub.com/rileytomasek) made their first contribution in [https://github.com/colinhacks/zod/pull/1506](https://togithub.com/colinhacks/zod/pull/1506) - [@​Yhozen](https://togithub.com/Yhozen) made their first contribution in [https://github.com/colinhacks/zod/pull/1521](https://togithub.com/colinhacks/zod/pull/1521) - [@​oasido](https://togithub.com/oasido) made their first contribution in [https://github.com/colinhacks/zod/pull/1528](https://togithub.com/colinhacks/zod/pull/1528) - [@​igalklebanov](https://togithub.com/igalklebanov) made their first contribution in [https://github.com/colinhacks/zod/pull/1555](https://togithub.com/colinhacks/zod/pull/1555) - [@​Tsuyoshi84](https://togithub.com/Tsuyoshi84) made their first contribution in [https://github.com/colinhacks/zod/pull/1543](https://togithub.com/colinhacks/zod/pull/1543) - [@​tadeokondrak](https://togithub.com/tadeokondrak) made their first contribution in [https://github.com/colinhacks/zod/pull/1545](https://togithub.com/colinhacks/zod/pull/1545) - [@​seancrowe](https://togithub.com/seancrowe) made their first contribution in [https://github.com/colinhacks/zod/pull/1537](https://togithub.com/colinhacks/zod/pull/1537) - [@​samchungy](https://togithub.com/samchungy) made their first contribution in [https://github.com/colinhacks/zod/pull/1494](https://togithub.com/colinhacks/zod/pull/1494) - [@​roblabat](https://togithub.com/roblabat) made their first contribution in [https://github.com/colinhacks/zod/pull/1290](https://togithub.com/colinhacks/zod/pull/1290) - [@​KATT](https://togithub.com/KATT) made their first contribution in [https://github.com/colinhacks/zod/pull/1502](https://togithub.com/colinhacks/zod/pull/1502) - [@​RobinTail](https://togithub.com/RobinTail) made their first contribution in [https://github.com/colinhacks/zod/pull/1513](https://togithub.com/colinhacks/zod/pull/1513) - [@​rosnerdev](https://togithub.com/rosnerdev) made their first contribution in [https://github.com/colinhacks/zod/pull/1463](https://togithub.com/colinhacks/zod/pull/1463) - [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou) made their first contribution in [https://github.com/colinhacks/zod/pull/1448](https://togithub.com/colinhacks/zod/pull/1448) - [@​WebDevSimplified](https://togithub.com/WebDevSimplified) made their first contribution in [https://github.com/colinhacks/zod/pull/1624](https://togithub.com/colinhacks/zod/pull/1624) **Full Changelog**: colinhacks/zod@v3.19.1...v3.20.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - "after 8:00 before 23:00 every weekday except on Friday" in timezone UTC. 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/fiatconnect/fiatconnect-types). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC41NC4yIiwidXBkYXRlZEluVmVyIjoiMzQuNTQuMiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- recursive type definition - exact flag for too_big and too_small: colinhacks/zod#1620 - options property of ZodDiscriminatedUnion was renamed to optionsMap: colinhacks/zod#1290 (comment)
* Bump zod from 3.19.1 to 3.20.0 * Bump @api3/ois from 1.3.0 to 1.4.0 * fix: zod 3.20.0 issues - recursive type definition - exact flag for too_big and too_small: colinhacks/zod#1620 - options property of ZodDiscriminatedUnion was renamed to optionsMap: colinhacks/zod#1290 (comment)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [zod](https://zod.dev) ([source](https://togithub.com/colinhacks/zod)) | [`3.19.1` -> `3.22.3`](https://renovatebot.com/diffs/npm/zod/3.19.1/3.22.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/zod/3.22.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/zod/3.22.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/zod/3.19.1/3.22.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zod/3.19.1/3.22.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | ### GitHub Vulnerability Alerts #### [CVE-2023-4316](https://nvd.nist.gov/vuln/detail/CVE-2023-4316) Zod version 3.22.2 allows an attacker to perform a denial of service while validating emails. --- ### Release Notes <details> <summary>colinhacks/zod (zod)</summary> ### [`v3.22.3`](https://togithub.com/colinhacks/zod/releases/tag/v3.22.3) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.22.2...v3.22.3) ##### Commits: - [`1e23990`](https://togithub.com/colinhacks/zod/commit/1e23990bcdd33d1e81b31e40e77a031fcfd87ce1) Commit - [`9bd3879`](https://togithub.com/colinhacks/zod/commit/9bd3879b482f139fd03d5025813ee66a04195cdd) docs: remove obsolete text about readonly types ([#​2676](https://togithub.com/colinhacks/zod/issues/2676)) - [`f59be09`](https://togithub.com/colinhacks/zod/commit/f59be093ec21430d9f32bbcb628d7e39116adf34) clarify datetime ISO 8601 ([#​2673](https://togithub.com/colinhacks/zod/issues/2673)) - [`64dcc8e`](https://togithub.com/colinhacks/zod/commit/64dcc8e2b16febe48fa8e3c82c47c92643e6c9e3) Update sponsors - [`18115a8`](https://togithub.com/colinhacks/zod/commit/18115a8f128680b4526df58ce96deab7dce93b93) Formatting - [`28c1927`](https://togithub.com/colinhacks/zod/commit/28c19273658b164c53c149785fa7a8187c428ad4) Update sponsors - [`ad2ee9c`](https://togithub.com/colinhacks/zod/commit/ad2ee9ccf723c4388158ff6b8669c2a6cdc85643) 2718 Updated Custom Schemas documentation example to use type narrowing ([#​2778](https://togithub.com/colinhacks/zod/issues/2778)) - [`ae0f7a2`](https://togithub.com/colinhacks/zod/commit/ae0f7a2c15e7741ee1b23c03a3bfb9acebd86551) docs: update ref to discriminated-unions docs ([#​2485](https://togithub.com/colinhacks/zod/issues/2485)) - [`2ba00fe`](https://togithub.com/colinhacks/zod/commit/2ba00fe2377f4d53947a84b8cdb314a63bbd6dd4) \[2609] fix ReDoS vulnerability in email regex ([#​2824](https://togithub.com/colinhacks/zod/issues/2824)) - [`1e61d76`](https://togithub.com/colinhacks/zod/commit/1e61d76cdec05de9271fc0df58798ddf9ce94923) 3.22.3 ### [`v3.22.2`](https://togithub.com/colinhacks/zod/releases/tag/v3.22.2) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.22.1...v3.22.2) ##### Commits: - [`13d9e6b`](https://togithub.com/colinhacks/zod/commit/13d9e6bda286cbd4c1b177171273695d8309e5de) Fix lint - [`0d49f10`](https://togithub.com/colinhacks/zod/commit/0d49f10b3c25a8e4cbb6534cc0773b195c56d06d) docs: add typeschema to ecosystem ([#​2626](https://togithub.com/colinhacks/zod/issues/2626)) - [`8e4af7b`](https://togithub.com/colinhacks/zod/commit/8e4af7b56df6f2e3daf0dd825b986f1d963025ce) X to Zod: add app.quicktype.io ([#​2668](https://togithub.com/colinhacks/zod/issues/2668)) - [`792b3ef`](https://togithub.com/colinhacks/zod/commit/792b3ef0d41c144cd10641c6966b98dae1222d82) Fix superrefine types ### [`v3.22.1`](https://togithub.com/colinhacks/zod/releases/tag/v3.22.1) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.22.0...v3.22.1) #### Commits: Fix handing of `this` in ZodFunction schemas. The parse logic for function schemas now requires the `Reflect` API. ```ts const methodObject = z.object({ property: z.number(), method: z.function().args(z.string()).returns(z.number()), }); const methodInstance = { property: 3, method: function (s: string) { return s.length + this.property; }, }; const parsed = methodObject.parse(methodInstance); parsed.method("length=8"); // => 11 (8 length + 3 property) ``` - [`932cc47`](https://togithub.com/colinhacks/zod/commit/932cc472d2e66430d368a409b8d251909d7d8d21) Initial prototype fix for issue [#​2651](https://togithub.com/colinhacks/zod/issues/2651) ([#​2652](https://togithub.com/colinhacks/zod/issues/2652)) - [`0a055e7`](https://togithub.com/colinhacks/zod/commit/0a055e726ac210ef6efc69aa70cd2491767f6060) 3.22.1 ### [`v3.22.0`](https://togithub.com/colinhacks/zod/releases/tag/v3.22.0) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.21.4...v3.22.0) #### `ZodReadonly` This release introduces `ZodReadonly` and the `.readonly()` method on `ZodType`. Calling `.readonly()` on any schema returns a `ZodReadonly` instance that wraps the original schema. The new schema parses all inputs using the original schema, then calls `Object.freeze()` on the result. The inferred type is also marked as `readonly`. ```ts const schema = z.object({ name: string }).readonly(); type schema = z.infer<typeof schema>; // Readonly<{name: string}> const result = schema.parse({ name: "fido" }); result.name = "simba"; // error ``` The inferred type uses TypeScript's built-in readonly types when relevant. ```ts z.array(z.string()).readonly(); // readonly string[] z.tuple([z.string(), z.number()]).readonly(); // readonly [string, number] z.map(z.string(), z.date()).readonly(); // ReadonlyMap<string, Date> z.set(z.string()).readonly(); // ReadonlySet<Promise<string>> ``` #### Commits: - [`6dad907`](https://togithub.com/colinhacks/zod/commit/6dad90785398885f7b058f5c0760d5ae5476b833) Comments - [`56ace68`](https://togithub.com/colinhacks/zod/commit/56ace682e4cc89132c034a3ae2c13b2d5b1a0115) Fix deno test - [`3809d54`](https://togithub.com/colinhacks/zod/commit/3809d54fc8c5dd0a0ce367bd2575fe3fdadf087d) Add superforms - [`d1ad522`](https://togithub.com/colinhacks/zod/commit/d1ad5221900af640bc3093a2fb0476ec0c94953e) Add transloadit - [`a3bb701`](https://togithub.com/colinhacks/zod/commit/a3bb701757127ffe05e773a2e449136b9b7efcb3) Testing on Typescript 5.0 ([#​2221](https://togithub.com/colinhacks/zod/issues/2221)) - [`51e14be`](https://togithub.com/colinhacks/zod/commit/51e14beeab2f469fcbf18e3df44653e1643f5487) docs: update deprecated link ([#​2219](https://togithub.com/colinhacks/zod/issues/2219)) - [`a263814`](https://togithub.com/colinhacks/zod/commit/a263814fc430db8d47430cd2884d2cea6b11c671) fixed Datetime & IP TOC links - [`502384e`](https://togithub.com/colinhacks/zod/commit/502384e56fe2b1f8173735df6c3b0d41bce04edc) docs: add mobx-zod-form to form integrations ([#​2299](https://togithub.com/colinhacks/zod/issues/2299)) - [`a8be450`](https://togithub.com/colinhacks/zod/commit/a8be4500851923aa865e009fe9c2855e80482047) docs: Add `zocker` to Ecosystem section ([#​2416](https://togithub.com/colinhacks/zod/issues/2416)) - [`15de22a`](https://togithub.com/colinhacks/zod/commit/15de22a3ba6144c7d8d2276e8e56174bcdfa7225) Allow subdomains and hyphens in `ZodString.email` ([#​2274](https://togithub.com/colinhacks/zod/issues/2274)) - [`00f5783`](https://togithub.com/colinhacks/zod/commit/00f5783602ccbe423deb0dbd76ecf13a276bc54d) Add `zod-openapi` to ecosystem ([#​2434](https://togithub.com/colinhacks/zod/issues/2434)) - [`0a17340`](https://togithub.com/colinhacks/zod/commit/0a17340e9fc4b909d10ca3687b6bc6454903ff21) docs: fix minor typo ([#​2439](https://togithub.com/colinhacks/zod/issues/2439)) - [`60a2134`](https://togithub.com/colinhacks/zod/commit/60a21346086d32ca9f39efc2771f5db37c835c03) Add masterborn - [`0a90ed1`](https://togithub.com/colinhacks/zod/commit/0a90ed1461dafa62ff50ce0d5d5434fd4a2a4a20) chore: move `exports.types` field to first spot @​ package.json. ([#​2443](https://togithub.com/colinhacks/zod/issues/2443)) - [`67f35b1`](https://togithub.com/colinhacks/zod/commit/67f35b16692ca33fd48adfec9ae83b9514f8a4b7) docs: allow Zod to be used in dev tools at site ([#​2432](https://togithub.com/colinhacks/zod/issues/2432)) - [`6795c57`](https://togithub.com/colinhacks/zod/commit/6795c574b1d34f6e95ae891f96d8b219b98ace92) Fix not working Deno doc link. ([#​2428](https://togithub.com/colinhacks/zod/issues/2428)) - [`37e9c55`](https://togithub.com/colinhacks/zod/commit/37e9c550460e4edd144da90d903e878c119c5cc1) Generalize uuidRegex - [`0969950`](https://togithub.com/colinhacks/zod/commit/09699501ff6218b3b0a7e382eca3c02a8226ce13) adds ctx to preprocess ([#​2426](https://togithub.com/colinhacks/zod/issues/2426)) - [`af08390`](https://togithub.com/colinhacks/zod/commit/af08390139cf9fd4fc9e398b60a39191bf224076) fix: super refinement function types ([#​2420](https://togithub.com/colinhacks/zod/issues/2420)) - [`36fef58`](https://togithub.com/colinhacks/zod/commit/36fef58410f4b2c9e79edabae2fc567a4aee13a7) Make email regex reasonable ([#​2157](https://togithub.com/colinhacks/zod/issues/2157)) - [`f627d14`](https://togithub.com/colinhacks/zod/commit/f627d14d3bfe3a680ac0d54705b2e63daa912aed) Document canary - [`e06321c`](https://togithub.com/colinhacks/zod/commit/e06321c15d22082e47c7c111a92ec7b3e104c644) docs: add tapiduck to API libraries ([#​2410](https://togithub.com/colinhacks/zod/issues/2410)) - [`11e507c`](https://togithub.com/colinhacks/zod/commit/11e507c4d3bf4ad3ab2057a0122168ed0048a2c4) docs: add ts as const example in zod enums ([#​2412](https://togithub.com/colinhacks/zod/issues/2412)) - [`5427565`](https://togithub.com/colinhacks/zod/commit/5427565c347a14056bc60e3ffd800b98753952bc) docs: add zod-fixture to mocking ecosystem ([#​2409](https://togithub.com/colinhacks/zod/issues/2409)) - [`d3bf7e6`](https://togithub.com/colinhacks/zod/commit/d3bf7e60a8eb706c4c63a9a91fd66565b82883cf) docs: add `zodock` to mocking ecosystem ([#​2394](https://togithub.com/colinhacks/zod/issues/2394)) - [`2270ae5`](https://togithub.com/colinhacks/zod/commit/2270ae563f7f14bed770f75d9c252880794fa71f) remove "as any" casts in createZodEnum ([#​2332](https://togithub.com/colinhacks/zod/issues/2332)) - [`00bdd0a`](https://togithub.com/colinhacks/zod/commit/00bdd0a7ffdf495af14e67ae1396c85a282c38dd) fix proto pollution vulnerability ([#​2239](https://togithub.com/colinhacks/zod/issues/2239)) - [`a3c5256`](https://togithub.com/colinhacks/zod/commit/a3c525658bc43edf40747a99b8f882d8d3d1e0c7) Fix error_handling unrecognized_keys example - [`4f75cbc`](https://togithub.com/colinhacks/zod/commit/4f75cbc682199a5411189f9cd9abba9af4924746) Adds getters to Map for key + value ([#​2356](https://togithub.com/colinhacks/zod/issues/2356)) - [`ca7b032`](https://togithub.com/colinhacks/zod/commit/ca7b03222764496d72085b1178fa22f4a57fe579) FMC ([#​2346](https://togithub.com/colinhacks/zod/issues/2346)) - [`6fec8bd`](https://togithub.com/colinhacks/zod/commit/6fec8bd3407f463f157522a3979b4d202870ba4c) docs: fix typo in link fragment ([#​2329](https://togithub.com/colinhacks/zod/issues/2329)) - [`16f90bd`](https://togithub.com/colinhacks/zod/commit/16f90bd22b465aca9a1fbad09248d80aa93fd824) Update README.md - [`2c80250`](https://togithub.com/colinhacks/zod/commit/2c802507d92d2d2e15be959695b1de78b896bfcb) Update readme - [`eaf64e0`](https://togithub.com/colinhacks/zod/commit/eaf64e09ba1a87dd6bf348fb97061894a01242d2) Update sponsors - [`c576311`](https://togithub.com/colinhacks/zod/commit/c5763112e2912390f3317d738e4261fa8747494e) Update readme - [`5e23b4f`](https://togithub.com/colinhacks/zod/commit/5e23b4fae4715c7391f9ceb4369421a034851b4c) Add `*.md` pattern to prettier ([#​2476](https://togithub.com/colinhacks/zod/issues/2476)) - [`898dced`](https://togithub.com/colinhacks/zod/commit/898dced470f1045b5469543abd2f427a713d93eb) Revamp tests - [`6309322`](https://togithub.com/colinhacks/zod/commit/6309322a28545e316299f8b9a36f43132d347300) Update test runners - [`c0aece1`](https://togithub.com/colinhacks/zod/commit/c0aece1672d1442d69ce1991142af8f16ed20ecb) Add vitest config - [`73a5610`](https://togithub.com/colinhacks/zod/commit/73a5610186c413872153e8dcac76c4c4f23dfe4e) Update script - [`8d8e1a2`](https://togithub.com/colinhacks/zod/commit/8d8e1a2d306cecaf3d8cb88f32fe3e130a834f9f) Fix deno test bug - [`9eb2508`](https://togithub.com/colinhacks/zod/commit/9eb2508fac78cc36faefd050e9616bb6d34814c1) Clean up configs - [`cfbc7b3`](https://togithub.com/colinhacks/zod/commit/cfbc7b3f6714ced250dd4053822faf472bf1828e) Fix root jest config - [`8677f68`](https://togithub.com/colinhacks/zod/commit/8677f688b0ab1bb5991e90744f46a15082772bd6) docs(comparison-yup): Yup added partial() and deepPartial() in v1 ([#​2603](https://togithub.com/colinhacks/zod/issues/2603)) - [`fb00edd`](https://togithub.com/colinhacks/zod/commit/fb00edd04ca338b8d791a96dead161076538c6c2) docs: add VeeValidate form library for Vue.js ([#​2578](https://togithub.com/colinhacks/zod/issues/2578)) - [`ab8e717`](https://togithub.com/colinhacks/zod/commit/ab8e71793431eeb163613007c134132e6c2ab078) docs: fix typo in z.object ([#​2570](https://togithub.com/colinhacks/zod/issues/2570)) - [`d870407`](https://togithub.com/colinhacks/zod/commit/d870407a020f9518fbae662f9f48a9aba005a3e2) docs: fix incomplete Records example ([#​2579](https://togithub.com/colinhacks/zod/issues/2579)) - [`5adae24`](https://togithub.com/colinhacks/zod/commit/5adae24e9b2fc98fc679defa8f78e4142d4c3451) docs: add conform form integration ([#​2577](https://togithub.com/colinhacks/zod/issues/2577)) - [`8b8ab3e`](https://togithub.com/colinhacks/zod/commit/8b8ab3e79691ebafbb9aac3ce089eaf0dcd6d8fe) Update README.md ([#​2562](https://togithub.com/colinhacks/zod/issues/2562)) - [`6aab901`](https://togithub.com/colinhacks/zod/commit/6aab9016873c12be08d19bcc097b3e5ba4c9d6fe) fix typo test name ([#​2542](https://togithub.com/colinhacks/zod/issues/2542)) - [`81a89f5`](https://togithub.com/colinhacks/zod/commit/81a89f593f4d6b05f770bbb3ad0fc98075f468dd) Update nullish documentation to correct chaining order ([#​2457](https://togithub.com/colinhacks/zod/issues/2457)) - [`78a4090`](https://togithub.com/colinhacks/zod/commit/78a409012a4dc34a455f5c4a7e028ca47c921e1b) docs: update comparison with `runtypes` ([#​2536](https://togithub.com/colinhacks/zod/issues/2536)) - [`1ecd624`](https://togithub.com/colinhacks/zod/commit/1ecd6241ef97b33ce229b49f1346ffeee5d0ba74) Fix prettier - [`981d4b5`](https://togithub.com/colinhacks/zod/commit/981d4b5e272e7e35ff44a31fbb5e8e90594b1933) Add ZodReadonly ([#​2634](https://togithub.com/colinhacks/zod/issues/2634)) - [`fba438c`](https://togithub.com/colinhacks/zod/commit/fba438cddea800b081a15aefc8b1efea2eccf7af) 3.22.0 ### [`v3.21.4`](https://togithub.com/colinhacks/zod/releases/tag/v3.21.4) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.21.3...v3.21.4) #### Commits: - [`22f3cc6`](https://togithub.com/colinhacks/zod/commit/22f3cc6ed52a28c984a0319a1a03e1af244cee02) 3.21.4 ### [`v3.21.3`](https://togithub.com/colinhacks/zod/releases/tag/v3.21.3) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.21.2...v3.21.3) #### Commits: - [`14c08d8`](https://togithub.com/colinhacks/zod/commit/14c08d87129c3b652f03d2e724979c383c55e0b4) added more `.pipe` examples - [`006e652`](https://togithub.com/colinhacks/zod/commit/006e6521f425b38e1fbb898e29921fe885caf7ba) Fix npm canary action paths pattern ([#​2148](https://togithub.com/colinhacks/zod/issues/2148)) - [`bdcff0f`](https://togithub.com/colinhacks/zod/commit/bdcff0f20f4c35dd6a44b1324711dfd34a41ae96) Remove logging in tests - [`a5830c6`](https://togithub.com/colinhacks/zod/commit/a5830c6d3fe28f0d5435cc9ff22846be7f5977c1) Reverted [#​1564](https://togithub.com/colinhacks/zod/issues/1564) - [`c458381`](https://togithub.com/colinhacks/zod/commit/c4583819e77a702e21b587c4bf081d0292f2b754) Fix tests - [`2db0dca`](https://togithub.com/colinhacks/zod/commit/2db0dcadc961fd57f7f10f9d9f55d67e6d040342) 3.21.3 ### [`v3.21.2`](https://togithub.com/colinhacks/zod/releases/tag/v3.21.2) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.21.1...v3.21.2) #### Commits: - [`b276d71`](https://togithub.com/colinhacks/zod/commit/b276d71eaefef6cb87c81e8429bd160e4b68c168) Improve typings in generics - [`4d016b7`](https://togithub.com/colinhacks/zod/commit/4d016b772b79d566bfa2a0c2fc5bfbd92b776982) Improve type inference in generics - [`f9895ab`](https://togithub.com/colinhacks/zod/commit/f9895ab1650ef3df9c598a8c43ede0160596ac2e) Improve types inside generic functions - [`ac0135e`](https://togithub.com/colinhacks/zod/commit/ac0135e00df75abd57a93a4816fe0fdaa31e94e8) Pass input into catchValue ### [`v3.21.1`](https://togithub.com/colinhacks/zod/releases/tag/v3.21.1) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.21.0...v3.21.1) #### Features Support for [ULID](https://togithub.com/ulid/spec) validation ```ts z.string().ulid(); ``` #### Commits: - [`4f89461`](https://togithub.com/colinhacks/zod/commit/4f8946182ee07eb7b5d40efa908b1715414e8929) Prettier - [`bd6527a`](https://togithub.com/colinhacks/zod/commit/bd6527a47a4626135dccac113a7b09f81b675edd) Update deps - [`126c77b`](https://togithub.com/colinhacks/zod/commit/126c77b3130d9a68032f72ac76dd9e1ccfd86c2c) added `toLowerCase` and `toUpperCase` back in for v3.21.0 - [`1749657`](https://togithub.com/colinhacks/zod/commit/174965739d17db348d445ab250fb2cf6bd7cdd51) Update README.md - [`dabe63d`](https://togithub.com/colinhacks/zod/commit/dabe63d15eb6d22246aa5d5c83b69d1d5f4c2f4b) updated `z.custom` example again :D - [`6b8f655`](https://togithub.com/colinhacks/zod/commit/6b8f6557d9b53ea7ad3fda753a51cdf153ba1fb7) docs: improve cn readme ([#​2143](https://togithub.com/colinhacks/zod/issues/2143)) - [`9012dc7`](https://togithub.com/colinhacks/zod/commit/9012dc7055e1467b6d619a6c0ad016fdfbde2b9c) add `.includes(value, options?)` @​ `ZodString`. ([#​1887](https://togithub.com/colinhacks/zod/issues/1887)) - [`67b981e`](https://togithub.com/colinhacks/zod/commit/67b981e70b4bacb2278a9aacd22d38cbb4b52d17) Make safeParse().error a getter - [`346fde0`](https://togithub.com/colinhacks/zod/commit/346fde03724bfd1601823e4f72470bc7e344030b) 3.21.0-canary.20230304T235951 - [`b50d871`](https://togithub.com/colinhacks/zod/commit/b50d871b2f5949587afdcce2375227a447dbb742) Add canary release CI - [`b20cca2`](https://togithub.com/colinhacks/zod/commit/b20cca230a6a9beb8acf841250641b62847b6e80) Fix canary - [`f7f5c50`](https://togithub.com/colinhacks/zod/commit/f7f5c50c65d7c7e5262c028e6832b92b14d84ea5) Move action to .github/workflows - [`f01fa0e`](https://togithub.com/colinhacks/zod/commit/f01fa0e48ca18630604366f5bc7401a18eb4d018) Try to fix canary CI - [`f5e8067`](https://togithub.com/colinhacks/zod/commit/f5e8067b2afcc3e5ae9f8ed389a31b83a7c3ceec) No git tag - [`5b304ae`](https://togithub.com/colinhacks/zod/commit/5b304ae41705105ae6edcacdb6dfdac9c527b3f4) No dry run - [`20df80e`](https://togithub.com/colinhacks/zod/commit/20df80e6ce2ac27f6e2f26b61cd1fd4c942b152d) Add tsc compilation test - [`ead93d3`](https://togithub.com/colinhacks/zod/commit/ead93d3cfde54efe952dc615c21ff179a00f7574) Document .pipe() - [`d8e8653`](https://togithub.com/colinhacks/zod/commit/d8e86534325fb00bc0193a4c6af04f2a67bd2e4e) Update headers - [`03c0ab1`](https://togithub.com/colinhacks/zod/commit/03c0ab1640ca9111d9fbac3c261e2f76e3cbf247) Cache the evaluation of ParseInputLazyPath.path() for a moderate perf improvement ([#​2137](https://togithub.com/colinhacks/zod/issues/2137)) - [`e7b3b7b`](https://togithub.com/colinhacks/zod/commit/e7b3b7bf493caeee7e4f043eea024e4d3badc090) Improve string docs - [`83478f5`](https://togithub.com/colinhacks/zod/commit/83478f5e413c333f07f53b9b4bb8c24b75e1cecf) Remove zod dep - [`2f1868d`](https://togithub.com/colinhacks/zod/commit/2f1868d0c17c0e401c4438d9d35e68f9685a741b) Specify paths for canary - [`e599966`](https://togithub.com/colinhacks/zod/commit/e599966709fe0253d6779ce1dec38a2adcebf41f) Add sponsors - [`950bd17`](https://togithub.com/colinhacks/zod/commit/950bd17f01668b45e592a678974437b15012b158) Tweak x.custom example - [`728e56a`](https://togithub.com/colinhacks/zod/commit/728e56a7e157cca8cdc0ab937f25a2412673c934) Close [#​2127](https://togithub.com/colinhacks/zod/issues/2127) - [`64883e4`](https://togithub.com/colinhacks/zod/commit/64883e4fe41b10eb577c4f9eaf6f24fa29bcd60d) feat: z.string().ulid() - add support for ulids ([#​2049](https://togithub.com/colinhacks/zod/issues/2049)) - [`e0d709b`](https://togithub.com/colinhacks/zod/commit/e0d709b1348efab06ac5341d360a411bc09eb7ba) 3.20.1 - [`9c33194`](https://togithub.com/colinhacks/zod/commit/9c3319443cfc953adc51786e8d6fe0bbe1e37f8e) Remove comments, clean up utils - [`942e2db`](https://togithub.com/colinhacks/zod/commit/942e2db8e51d580f4e3cd8c4c4af8bc6aecf4130) Fix tests ### [`v3.21.0`](https://togithub.com/colinhacks/zod/releases/tag/v3.21.0) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.20.6...v3.21.0) #### Features ##### `z.string().emoji()` Thanks [@​joseph-lozano](https://togithub.com/joseph-lozano) for [https://github.com/colinhacks/zod/pull/2045](https://togithub.com/colinhacks/zod/pull/2045)! To validate that all characters in a string are emoji: ```ts z.string().emoji() ``` ...if that's something you want to do for some reason. ##### `z.string().cuid2()` Thanks [@​joulev](https://togithub.com/joulev) for [https://github.com/colinhacks/zod/pull/1813](https://togithub.com/colinhacks/zod/pull/1813)! To validate [CUIDv2](https://togithub.com/paralleldrive/cuid2): ```ts z.string().cuid2() ``` ##### `z.string().ip()` Thanks [@​fvckDesa](https://togithub.com/fvckDesa) for [https://github.com/colinhacks/zod/pull/2066](https://togithub.com/colinhacks/zod/pull/2066). To validate that a string is a valid IP address: ```ts const v4IP = "122.122.122.122"; const v6IP = "6097:adfa:6f0b:220d:db08:5021:6191:7990"; // matches both IPv4 and IPv6 by default const ipSchema = z.string().ip(); ipSchema.parse(v4IP) // pass ipSchema.parse(v6IP) // pass ``` To specify a particular `version`: ```ts const ipv4Schema = z.string().ip({ version: "v4" }); const ipv6Schema = z.string().ip({ version: "v6" }); ``` ##### `z.bigint().{gt|gte|lt|lte}()` Thanks [@​igalklebanov](https://togithub.com/igalklebanov) for [`#1711`](https://togithub.com/colinhacks/zod/pull/1711)! `ZodBigInt` gets the same set of methods found on `ZodNumber`: ```ts z.bigint().gt(BigInt(5)); z.bigint().gte(BigInt(5)); z.bigint().lt(BigInt(5)); z.bigint().lte(BigInt(5)); z.bigint().positive(); z.bigint().negative(); z.bigint().nonnegative(); z.bigint().nonpositive(); z.bigint().multipleOf(BigInt(5)); ``` ##### `z.enum(...).extract()` and `z.enum(...).exclude()` Thanks [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou) for [https://github.com/colinhacks/zod/pull/1652](https://togithub.com/colinhacks/zod/pull/1652)! To add or remove elements from a `ZodEnum`: ```ts const FoodEnum = z.enum(["Pasta", "Pizza", "Tacos", "Burgers", "Salad"]); const ItalianEnum = FoodEnum.extract(["Pasta", "Pizza"]); // ZodEnum<["Pasta", "Pizza"]> const UnhealthyEnum = FoodEnum.exclude(["Salad"]); // ZodEnum<["Pasta", "Pizza", "Tacos", "Burgers"]> ``` This API is inspired by the [`Exclude`](https://www.typescriptlang.org/docs/handbook/utility-types.html#excludeuniontype-excludedmembers) and [`Extract`](https://www.typescriptlang.org/docs/handbook/utility-types.html#extracttype-union) TypeScript built-ins. ##### Pass a function to `.catch()` Thanks [@​0xWryth](https://togithub.com/0xWryth) for [https://github.com/colinhacks/zod/pull/2087](https://togithub.com/colinhacks/zod/pull/2087)! The `.catch()` method now accepts a function that receives the caught error: ```ts const numberWithErrorCatch = z.number().catch((ctx) => { ctx.error; // ZodError return 42; }); ``` #### Compiler performance Zod 3.20.2 introduced an accidental type recursion that caused long compilation times for some users. These kinds of bugs are very hard to diagnose. Big shoutout to [@​gydroperit](https://togithub.com/gydroperit) for some heroic efforts here: [https://github.com/colinhacks/zod/pull/2107](https://togithub.com/colinhacks/zod/pull/2107) Zod 3.21 resolves these issues: - [https://github.com/colinhacks/zod/issues/2142](https://togithub.com/colinhacks/zod/issues/2142) - [https://github.com/colinhacks/zod/issues/1741](https://togithub.com/colinhacks/zod/issues/1741) - https://stackoverflow.com/questions/74881472/slow-typescript-autocompletion-in-vs-code-for-zod #### Commits: - [`3c54461`](https://togithub.com/colinhacks/zod/commit/3c54461d7a649bf727aec59367eefb214ffe24fe) fix typo in readme - [`c244fb6`](https://togithub.com/colinhacks/zod/commit/c244fb6c57506fd11609106960639de26ddf9b6d) feat: z.string().emoji() ([#​2045](https://togithub.com/colinhacks/zod/issues/2045)) - [`39cbb69`](https://togithub.com/colinhacks/zod/commit/39cbb6971c3dca09cbc0acdca2d3995dfd26aab2) Fix emoji validation, fix lint - [`d8f07bb`](https://togithub.com/colinhacks/zod/commit/d8f07bbfffd255b0aee6b5fe9bb6aa2bce6586af) Fix emoji - [`9b7dd81`](https://togithub.com/colinhacks/zod/commit/9b7dd816e92e16ca735e488b77e280a92a84ed64) Improve variable name clarity ([#​2048](https://togithub.com/colinhacks/zod/issues/2048)) - [`5cec187`](https://togithub.com/colinhacks/zod/commit/5cec1871ac21627608af6c07585d5e50ff30f281) Add documentation for the param parameter of z.custom - [`654f529`](https://togithub.com/colinhacks/zod/commit/654f52969a968c630af816dcad0d8f3721f9001a) Merge pull request [#​2057](https://togithub.com/colinhacks/zod/issues/2057) from trygveaa/add-documentation-for-z-custom-params - [`981af65`](https://togithub.com/colinhacks/zod/commit/981af6503ee1be530fe525ac77ba95e1904ce24a) Merge pull request [#​2019](https://togithub.com/colinhacks/zod/issues/2019) from vbud/patch-1 - [`a7c2969`](https://togithub.com/colinhacks/zod/commit/a7c2969b9125df0fbfa65e8541a974eeaf53b6a6) Update error_handling - [`8f3d028`](https://togithub.com/colinhacks/zod/commit/8f3d0283ba75d146d5199fe3dc140eeb5402352c) BRAND Record to Non Partial ([#​2097](https://togithub.com/colinhacks/zod/issues/2097)) - [`5ec98e1`](https://togithub.com/colinhacks/zod/commit/5ec98e1c4420957f93a7388bf49fb01d91bcbcd0) Fix email issues in pull request [#​1982](https://togithub.com/colinhacks/zod/issues/1982) ([#​2058](https://togithub.com/colinhacks/zod/issues/2058)) - [`7d40ba5`](https://togithub.com/colinhacks/zod/commit/7d40ba58931130ec965be9d65d14e0665ee9c379) feat([#​2059](https://togithub.com/colinhacks/zod/issues/2059)): z.string.ip() - add support for IP address ([#​2066](https://togithub.com/colinhacks/zod/issues/2066)) - [`e559605`](https://togithub.com/colinhacks/zod/commit/e5596054cfddf8aa1ba8d7d3bad63552a2bf9b6a) feat: add `.catch` error ([#​2087](https://togithub.com/colinhacks/zod/issues/2087)) - [`defdab9`](https://togithub.com/colinhacks/zod/commit/defdab9c163d9a994f927a0644ab4ec172513fcb) Fix record tests - [`8de36eb`](https://togithub.com/colinhacks/zod/commit/8de36eb17d9477ada75cea2164d6b47079dd0444) FIX: emoji regex and tests ([#​2090](https://togithub.com/colinhacks/zod/issues/2090)) - [`16beeb5`](https://togithub.com/colinhacks/zod/commit/16beeb598039b33bc5a209956042d858abacca34) lowercase method for ZodString ([#​2038](https://togithub.com/colinhacks/zod/issues/2038)) - [`75cb9e8`](https://togithub.com/colinhacks/zod/commit/75cb9e814115a35c0b4cc2e970f6aaae90e1a13c) add checks @​ `ZodBigInt`. ([#​1711](https://togithub.com/colinhacks/zod/issues/1711)) - [`c4d4e49`](https://togithub.com/colinhacks/zod/commit/c4d4e494227aadc752d4d5a5a317ec16bb6f5a45) Update ERROR_HANDLING.md ([#​2022](https://togithub.com/colinhacks/zod/issues/2022)) - [`d6f0890`](https://togithub.com/colinhacks/zod/commit/d6f08908b17ea10456befc2231a867d5cea02a0e) added link to deno land - [`4cf1960`](https://togithub.com/colinhacks/zod/commit/4cf19606870e66bf4307984bf99a4bef495c7818) Refactoring of ZodFormattedError type to improve tsc check time ([#​2107](https://togithub.com/colinhacks/zod/issues/2107)) - [`867a921`](https://togithub.com/colinhacks/zod/commit/867a921a93160780d9f3aeddabf1ca49758a3c1e) Bump http-cache-semantics from 4.1.0 to 4.1.1 ([#​1985](https://togithub.com/colinhacks/zod/issues/1985)) - [`edc3a67`](https://togithub.com/colinhacks/zod/commit/edc3a67e77d33979b3ee9e071557b4ca53298c55) Deprecate deepPartial - [`e59f639`](https://togithub.com/colinhacks/zod/commit/e59f639d3bb5cca65ef239d5dd5c93e74ce4a801) Add custom tests - [`a6b44ed`](https://togithub.com/colinhacks/zod/commit/a6b44ed8e346af2fabbb62b5164b99a387accd32) Remove logging - [`a1fc3fb`](https://togithub.com/colinhacks/zod/commit/a1fc3fb815051beb4b7030969828aa6abe469c2c) commented out `toLowerCase` and `toUpperCase` - [`e71cc52`](https://togithub.com/colinhacks/zod/commit/e71cc523b1865568c4db45f82789e5c86bed0f12) Update README_ZH.md ([#​2139](https://togithub.com/colinhacks/zod/issues/2139)) - [`3af38fb`](https://togithub.com/colinhacks/zod/commit/3af38fbe2cb114219e688103e41e382e28ec7a80) add `ZodNumber.safe()` & `ZodNumber.isSafe`. ([#​1753](https://togithub.com/colinhacks/zod/issues/1753)) - [`6ef82ee`](https://togithub.com/colinhacks/zod/commit/6ef82ee1e45dbcfc92a2ed359b1d2ae87d54c43d) Add benchmark flags - [`5463593`](https://togithub.com/colinhacks/zod/commit/5463593385549452768e060a98cc0fd8988760d2) Support brands in recursive types - [`8074523`](https://togithub.com/colinhacks/zod/commit/80745238937adc06c5b4eab19ef273ca9f7f2de8) Update readme - [`b6794a4`](https://togithub.com/colinhacks/zod/commit/b6794a4981b8621fee84642f5313464f5e8f9a22) Add index signature for passthrough - [`3c6cdd2`](https://togithub.com/colinhacks/zod/commit/3c6cdd245ab73d7ca1461a18b5be2da07abe6b6b) Make generic optional in objectOutputType - [`bc43ad1`](https://togithub.com/colinhacks/zod/commit/bc43ad18e64cf7add23e90bc6b07d5bba8370e5e) Fix rollup build - [`6a0545a`](https://togithub.com/colinhacks/zod/commit/6a0545acd5b9cfc40b0b3f04e64bfc5dd789d1b1) 3.21.0 - [`7c07339`](https://togithub.com/colinhacks/zod/commit/7c0733968d64c7d7aebc1ae54ca90aadcb2bffc3) Fix brand - [`0aa6021`](https://togithub.com/colinhacks/zod/commit/0aa6021ef3628bb39715bdda416be2c6a4951141) Clean up tests ### [`v3.20.6`](https://togithub.com/colinhacks/zod/releases/tag/v3.20.6) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.20.5...v3.20.6) #### Commits: - [`e693919`](https://togithub.com/colinhacks/zod/commit/e6939195fbb5191402ba3d6f5b7aade463de6e51) 3.20.6 ### [`v3.20.5`](https://togithub.com/colinhacks/zod/releases/tag/v3.20.5) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.20.4...v3.20.5) #### Commits: - [`e71c7be`](https://togithub.com/colinhacks/zod/commit/e71c7be15e393e0932aa3c939d061f8444f6ae29) Fix extract/exclude type error ### [`v3.20.4`](https://togithub.com/colinhacks/zod/releases/tag/v3.20.4) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.20.3...v3.20.4) #### Commits: - [`b8d731f`](https://togithub.com/colinhacks/zod/commit/b8d731f779679e6f47cde18b2c422b0d4f44b01d) Set input type of ZodCatch to unknown - [`06c237c`](https://togithub.com/colinhacks/zod/commit/06c237c29f53a827d2eb29cb20e9e23caba1ce2c) Revert merge changes - [`c8ce27e`](https://togithub.com/colinhacks/zod/commit/c8ce27e8c0378856964cf8892c6102bde63fa0cb) 3.20.4 ### [`v3.20.3`](https://togithub.com/colinhacks/zod/releases/tag/v3.20.3) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.20.2...v3.20.3) #### Features - Add string cuid2() validation by [@​joulev](https://togithub.com/joulev) in [https://github.com/colinhacks/zod/pull/1813](https://togithub.com/colinhacks/zod/pull/1813) - Add `ZodNumber.isFinite`, make `ZodNumber.isInt` true if `.multipleOf(int)`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1714](https://togithub.com/colinhacks/zod/pull/1714) - feat: Add `extract`/`exclude` methods to `ZodEnum` by [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou) in [https://github.com/colinhacks/zod/pull/1652](https://togithub.com/colinhacks/zod/pull/1652) #### Fixes and documentation - add more test cases for `z.coerce`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1680](https://togithub.com/colinhacks/zod/pull/1680) - Add Modular Forms to form integrations in README by [@​fabian-hiller](https://togithub.com/fabian-hiller) in [https://github.com/colinhacks/zod/pull/1695](https://togithub.com/colinhacks/zod/pull/1695) - docs: Instruct users to return z.NEVER in .superRefine() when providing a type predicate by [@​zetaraku](https://togithub.com/zetaraku) in [https://github.com/colinhacks/zod/pull/1742](https://togithub.com/colinhacks/zod/pull/1742) - Fix small typo in ERROR_HANDLING.md by [@​t-shiratori](https://togithub.com/t-shiratori) in [https://github.com/colinhacks/zod/pull/1720](https://togithub.com/colinhacks/zod/pull/1720) - Improve accuracy of the `isAsync` type guard by [@​aaronccasanova](https://togithub.com/aaronccasanova) in [https://github.com/colinhacks/zod/pull/1719](https://togithub.com/colinhacks/zod/pull/1719) - fix: Fix `ZodCatch` by [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou) in [https://github.com/colinhacks/zod/pull/1733](https://togithub.com/colinhacks/zod/pull/1733) - Fix datetime offset without comma by [@​ooga](https://togithub.com/ooga) in [https://github.com/colinhacks/zod/pull/1749](https://togithub.com/colinhacks/zod/pull/1749) - Discriminated union example fails to parse by [@​matthewfallshaw](https://togithub.com/matthewfallshaw) in [https://github.com/colinhacks/zod/pull/1713](https://togithub.com/colinhacks/zod/pull/1713) - fix: \[[#​1693](https://togithub.com/colinhacks/zod/issues/1693)] Tuple with empty items by [@​metuan](https://togithub.com/metuan) in [https://github.com/colinhacks/zod/pull/1712](https://togithub.com/colinhacks/zod/pull/1712) - fix: [#​1668](https://togithub.com/colinhacks/zod/issues/1668) email regex safari compat by [@​AnatoleLucet](https://togithub.com/AnatoleLucet) in [https://github.com/colinhacks/zod/pull/1683](https://togithub.com/colinhacks/zod/pull/1683) - docs: fix typo by [@​zetaraku](https://togithub.com/zetaraku) in [https://github.com/colinhacks/zod/pull/1699](https://togithub.com/colinhacks/zod/pull/1699) - fix installation links in table of contents by [@​DetachHead](https://togithub.com/DetachHead) in [https://github.com/colinhacks/zod/pull/1700](https://togithub.com/colinhacks/zod/pull/1700) - Updated `deno/lib/README.md` to match `zod/README.md` by [@​JacobWeisenburger](https://togithub.com/JacobWeisenburger) in [https://github.com/colinhacks/zod/pull/1791](https://togithub.com/colinhacks/zod/pull/1791) - fix([#​1743](https://togithub.com/colinhacks/zod/issues/1743)): Fix passing params in root class by [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou) in [https://github.com/colinhacks/zod/pull/1756](https://togithub.com/colinhacks/zod/pull/1756) - change the chaining order of nullish method by [@​p10ns11y](https://togithub.com/p10ns11y) in [https://github.com/colinhacks/zod/pull/1702](https://togithub.com/colinhacks/zod/pull/1702) - Propagate custom error type to ZodFormattedError subfields by [@​carlgieringer](https://togithub.com/carlgieringer) in [https://github.com/colinhacks/zod/pull/1617](https://togithub.com/colinhacks/zod/pull/1617) - fix deno literal test. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1794](https://togithub.com/colinhacks/zod/pull/1794) - Document `.describe()` by [@​rattrayalex](https://togithub.com/rattrayalex) in [https://github.com/colinhacks/zod/pull/1819](https://togithub.com/colinhacks/zod/pull/1819) - update homepage link in package.json by [@​Gpx](https://togithub.com/Gpx) in [https://github.com/colinhacks/zod/pull/1830](https://togithub.com/colinhacks/zod/pull/1830) - fix: compile error in sample code by [@​jtgi](https://togithub.com/jtgi) in [https://github.com/colinhacks/zod/pull/1822](https://togithub.com/colinhacks/zod/pull/1822) - Readme: Move "Coercion for primitives" section by [@​tordans](https://togithub.com/tordans) in [https://github.com/colinhacks/zod/pull/1842](https://togithub.com/colinhacks/zod/pull/1842) - Readme: Add internal links "or" <-> "union" by [@​tordans](https://togithub.com/tordans) in [https://github.com/colinhacks/zod/pull/1846](https://togithub.com/colinhacks/zod/pull/1846) - Readme: Add example for string validation for an optional field to chapter "Unions" by [@​tordans](https://togithub.com/tordans) in [https://github.com/colinhacks/zod/pull/1849](https://togithub.com/colinhacks/zod/pull/1849) - Readme: Add intro to chapter Literals by [@​tordans](https://togithub.com/tordans) in [https://github.com/colinhacks/zod/pull/1877](https://togithub.com/colinhacks/zod/pull/1877) - fix: faker.js link in readme by [@​markacola](https://togithub.com/markacola) in [https://github.com/colinhacks/zod/pull/1843](https://togithub.com/colinhacks/zod/pull/1843) - Minor typo fix by [@​iamchandru6470](https://togithub.com/iamchandru6470) in [https://github.com/colinhacks/zod/pull/1945](https://togithub.com/colinhacks/zod/pull/1945) - chore(documentation): Update CHANGELOG to redirect to Github Releases by [@​mitchwd](https://togithub.com/mitchwd) in [https://github.com/colinhacks/zod/pull/1936](https://togithub.com/colinhacks/zod/pull/1936) - fix: \[[#​1839](https://togithub.com/colinhacks/zod/issues/1839)] remove caught errors from issues by [@​maxArturo](https://togithub.com/maxArturo) in [https://github.com/colinhacks/zod/pull/1926](https://togithub.com/colinhacks/zod/pull/1926) - fix: \[[#​1784](https://togithub.com/colinhacks/zod/issues/1784)] dark mode in the documentation by [@​fvckDesa](https://togithub.com/fvckDesa) in [https://github.com/colinhacks/zod/pull/1932](https://togithub.com/colinhacks/zod/pull/1932) - Allow also "\[+-]hh" as datetime offset by [@​rafw87](https://togithub.com/rafw87) in [https://github.com/colinhacks/zod/pull/1797](https://togithub.com/colinhacks/zod/pull/1797) - Feature/add resolves method to zod promise by [@​bolencki13](https://togithub.com/bolencki13) in [https://github.com/colinhacks/zod/pull/1871](https://togithub.com/colinhacks/zod/pull/1871) - test: add benchmark tests for date and symbol by [@​pnts-se](https://togithub.com/pnts-se) in [https://github.com/colinhacks/zod/pull/1796](https://togithub.com/colinhacks/zod/pull/1796) - export the email regex by [@​andresBobsled](https://togithub.com/andresBobsled) in [https://github.com/colinhacks/zod/pull/2007](https://togithub.com/colinhacks/zod/pull/2007) - Add React form validation library to ecosystem by [@​crutchcorn](https://togithub.com/crutchcorn) in [https://github.com/colinhacks/zod/pull/1999](https://togithub.com/colinhacks/zod/pull/1999) - fix: make sure only mask keys with truthy values are respected at runtime @​ `.pick`, `.omit`, `.partial` & `.required`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1875](https://togithub.com/colinhacks/zod/pull/1875) - fix: failing prettier checks on merge by [@​maxArturo](https://togithub.com/maxArturo) in [https://github.com/colinhacks/zod/pull/1969](https://togithub.com/colinhacks/zod/pull/1969) - deny unexpected keys @​ `ZodObject`'s `.omit(mask)`,`.pick(mask)`,`.required(mask)` & `.partial(mask)` at compile time. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1564](https://togithub.com/colinhacks/zod/pull/1564) - docs: punctuation by [@​jly36963](https://togithub.com/jly36963) in [https://github.com/colinhacks/zod/pull/1973](https://togithub.com/colinhacks/zod/pull/1973) - fix\[[#​1979](https://togithub.com/colinhacks/zod/issues/1979)]: Increment Email validation by [@​fvckDesa](https://togithub.com/fvckDesa) in [https://github.com/colinhacks/zod/pull/1982](https://togithub.com/colinhacks/zod/pull/1982) - test: additional unit-tests for object by [@​pnts-se](https://togithub.com/pnts-se) in [https://github.com/colinhacks/zod/pull/1729](https://togithub.com/colinhacks/zod/pull/1729) #### New Contributors - [@​fabian-hiller](https://togithub.com/fabian-hiller) made their first contribution in [https://github.com/colinhacks/zod/pull/1695](https://togithub.com/colinhacks/zod/pull/1695) - [@​zetaraku](https://togithub.com/zetaraku) made their first contribution in [https://github.com/colinhacks/zod/pull/1742](https://togithub.com/colinhacks/zod/pull/1742) - [@​t-shiratori](https://togithub.com/t-shiratori) made their first contribution in [https://github.com/colinhacks/zod/pull/1720](https://togithub.com/colinhacks/zod/pull/1720) - [@​aaronccasanova](https://togithub.com/aaronccasanova) made their first contribution in [https://github.com/colinhacks/zod/pull/1719](https://togithub.com/colinhacks/zod/pull/1719) - [@​ooga](https://togithub.com/ooga) made their first contribution in [https://github.com/colinhacks/zod/pull/1749](https://togithub.com/colinhacks/zod/pull/1749) - [@​matthewfallshaw](https://togithub.com/matthewfallshaw) made their first contribution in [https://github.com/colinhacks/zod/pull/1713](https://togithub.com/colinhacks/zod/pull/1713) - [@​metuan](https://togithub.com/metuan) made their first contribution in [https://github.com/colinhacks/zod/pull/1712](https://togithub.com/colinhacks/zod/pull/1712) - [@​AnatoleLucet](https://togithub.com/AnatoleLucet) made their first contribution in [https://github.com/colinhacks/zod/pull/1683](https://togithub.com/colinhacks/zod/pull/1683) - [@​DetachHead](https://togithub.com/DetachHead) made their first contribution in [https://github.com/colinhacks/zod/pull/1700](https://togithub.com/colinhacks/zod/pull/1700) - [@​p10ns11y](https://togithub.com/p10ns11y) made their first contribution in [https://github.com/colinhacks/zod/pull/1702](https://togithub.com/colinhacks/zod/pull/1702) - [@​carlgieringer](https://togithub.com/carlgieringer) made their first contribution in [https://github.com/colinhacks/zod/pull/1617](https://togithub.com/colinhacks/zod/pull/1617) - [@​rattrayalex](https://togithub.com/rattrayalex) made their first contribution in [https://github.com/colinhacks/zod/pull/1819](https://togithub.com/colinhacks/zod/pull/1819) - [@​Gpx](https://togithub.com/Gpx) made their first contribution in [https://github.com/colinhacks/zod/pull/1830](https://togithub.com/colinhacks/zod/pull/1830) - [@​jtgi](https://togithub.com/jtgi) made their first contribution in [https://github.com/colinhacks/zod/pull/1822](https://togithub.com/colinhacks/zod/pull/1822) - [@​tordans](https://togithub.com/tordans) made their first contribution in [https://github.com/colinhacks/zod/pull/1842](https://togithub.com/colinhacks/zod/pull/1842) - [@​markacola](https://togithub.com/markacola) made their first contribution in [https://github.com/colinhacks/zod/pull/1843](https://togithub.com/colinhacks/zod/pull/1843) - [@​iamchandru6470](https://togithub.com/iamchandru6470) made their first contribution in [https://github.com/colinhacks/zod/pull/1945](https://togithub.com/colinhacks/zod/pull/1945) - [@​mitchwd](https://togithub.com/mitchwd) made their first contribution in [https://github.com/colinhacks/zod/pull/1936](https://togithub.com/colinhacks/zod/pull/1936) - [@​fvckDesa](https://togithub.com/fvckDesa) made their first contribution in [https://github.com/colinhacks/zod/pull/1932](https://togithub.com/colinhacks/zod/pull/1932) - [@​rafw87](https://togithub.com/rafw87) made their first contribution in [https://github.com/colinhacks/zod/pull/1797](https://togithub.com/colinhacks/zod/pull/1797) - [@​bolencki13](https://togithub.com/bolencki13) made their first contribution in [https://github.com/colinhacks/zod/pull/1871](https://togithub.com/colinhacks/zod/pull/1871) - [@​joulev](https://togithub.com/joulev) made their first contribution in [https://github.com/colinhacks/zod/pull/1813](https://togithub.com/colinhacks/zod/pull/1813) - [@​pnts-se](https://togithub.com/pnts-se) made their first contribution in [https://github.com/colinhacks/zod/pull/1796](https://togithub.com/colinhacks/zod/pull/1796) - [@​andresBobsled](https://togithub.com/andresBobsled) made their first contribution in [https://github.com/colinhacks/zod/pull/2007](https://togithub.com/colinhacks/zod/pull/2007) - [@​crutchcorn](https://togithub.com/crutchcorn) made their first contribution in [https://github.com/colinhacks/zod/pull/1999](https://togithub.com/colinhacks/zod/pull/1999) - [@​jly36963](https://togithub.com/jly36963) made their first contribution in [https://github.com/colinhacks/zod/pull/1973](https://togithub.com/colinhacks/zod/pull/1973) **Full Changelog**: https://github.com/colinhacks/zod/compare/v3.20.2...v3.20.3 ### [`v3.20.2`](https://togithub.com/colinhacks/zod/releases/tag/v3.20.2) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.20.1...v3.20.2) ##### Commits: - [`d7d49e7`](https://togithub.com/colinhacks/zod/commit/d7d49e77ccd758ee874f7866862840f88f75cbb6) Clarify boolean coercion - [`f49cbcb`](https://togithub.com/colinhacks/zod/commit/f49cbcb38f7e58e37480ded0f8f558c85de1ce3a) Fix formatting - [`0b62f8c`](https://togithub.com/colinhacks/zod/commit/0b62f8c0c1722a15bd8afbc003e78fe7a177b2a2) Revert email regex changes - [`68919aa`](https://togithub.com/colinhacks/zod/commit/68919aa1790fcb729385a4b290ee03b3d8df0d86) 3.20.2 - [`c9e4ed4`](https://togithub.com/colinhacks/zod/commit/c9e4ed4095d77f5b43a5ba11d8f76b56ea48e5c6) Fix string test ### [`v3.20.1`](https://togithub.com/colinhacks/zod/releases/tag/v3.20.1) [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.20.0...v3.20.1) #### Commits: - [`1298d26`](https://togithub.com/colinhacks/zod/commit/1298d26115e09cf097cb272cfc3184484eb64fd1) Update readme - [`b3b0ecf`](https://togithub.com/colinhacks/zod/commit/b3b0ecfcb8d2314cf3e6cbd78056c5410650c348) Only call .catch() method when parsing fails ([#​1674](https://togithub.com/colinhacks/zod/issues/1674)) - [`957b55b`](https://togithub.com/colinhacks/zod/commit/957b55b82d19707888a4914670c8cf8563911425) Fixing ZodString::isDatetime. ([#​1678](https://togithub.com/colinhacks/zod/issues/1678)) - [`29ec1f8`](https://togithub.com/colinhacks/zod/commit/29ec1f8d99836d8bb0661cac8641d4b4094aaf40) Add default - [`1161b8f`](https://togithub.com/colinhacks/zod/commit/1161b8f77e8ef120f9a0fca6e1ca223538d8ffc4) 3.20.1 ### [`v3.20.0`](https://togithub.com/colinhacks/zod/releases/tag/v3.20.0): -beta [Compare Source](https://togithub.com/colinhacks/zod/compare/v3.19.1...v3.20.0) #### Breaking changes There are no breaking API changes, however TypeScript versions `4.4` and earlier are no longer officially supported. #### New features The most feature-packed release since Zod 3.0! ##### `.pipe()` A new schema method `.pipe()` is now available on all schemas. which can be used to chain multiple schemas into a "validation pipeline". Typically this will be used in conjunction with `.transform()`. ```ts z.string() .transform(val => val.length) .pipe(z.number().min(5)) ``` The `.pipe()` method returns a `ZodPipeline` instance. ##### `z.coerce` Zod now provides a more convenient way to coerce primitive values. ```ts const schema = z.coerce.string(); schema.parse("tuna"); // => "tuna" schema.parse(12); // => "12" schema.parse(true); // => "true" ``` During the parsing step, the input is passed through the `String()` function, which is a JavaScript built-in for coercing data into strings. Note that the returned schema is a `ZodString` instance so you can use all string methods. ```ts z.coerce.string().email().min(5); ``` All primitive types support coercion. ```ts z.coerce.string(); // String(input) z.coerce.number(); // Number(input) z.coerce.boolean(); // Boolean(input) z.coerce.bigint(); // BigInt(input) z.coerce.date(); // new Date(input) ``` ##### `.catch()` A new schema method `.catch()` is now available on all schemas. It can be used to provide a "catchall" value that will be returned in the event of a parsing error. ```ts const schema = z.string().catch("fallback"); schema.parse("kate"); // => "kate" schema.parse(4); // => "fallback" ``` The `.catch()` method returns a `ZodCatch` instance. ##### `z.symbol()` A long-missing hole in Zod's type system is finally filled! Thanks [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou). ```ts const schema = z.symbol(); schema.parse(Symbol('asdf')); ``` Relatedly, you can also pass symbols into `z.literal()`. ```ts const TUNA = Symbol("tuna"); const schema = z.literal(TUNA); schema.parse(TUNA); // Symbol(tuna) schema.parse(Symbol("nottuna")); // Error ``` ##### `z.string().datetime()` A new method has been added to `ZodString` to validate ISO datetime strings. Thanks [@​samchungy](https://togithub.com/samchungy)! ```ts z.string().datetime(); ``` This method defaults to only allowing *UTC datetimes* (the ones that end in `"Z"`). No timezone offsets are allowed; arbitrary sub-second precision is supported. ```ts const dt = z.string().datetime(); dt.parse("2020-01-01T00:00:00Z"); // 🟢 dt.parse("2020-01-01T00:00:00.123Z"); // 🟢 dt.parse("2020-01-01T00:00:00.123456Z"); // 🟢 (arbitrary precision) dt.parse("2020-01-01T00:00:00+02:00"); // 🔴 (no offsets allowed) ``` Offsets can be supported with the `offset` parameter. ```ts const a = z.string().datetime({ offset: true }); a.parse("2020-01-01T00:00:00+02:00"); // 🟢 offset allowed ``` You can additionally constrain the allowable `precision`. This specifies the number of digits that should follow the decimal point. ```ts const b = z.string().datetime({ precision: 3 }) b.parse("2020-01-01T00:00:00.123Z"); // 🟢 precision of 3 decimal points b.parse("2020-01-01T00:00:00Z"); // 🔴 invalid precision ``` ##### `z.number().finite()` Restrict a number schema to finite values. Thanks [@​igalklebanov](https://togithub.com/igalklebanov). ```ts const schema = z.number().finite(); schema.parse(5); 🟢 schema.parse(Infinity); 🔴 schema.parse(-Infinity); 🔴 ``` #### What's Changed - Add `mask` parameter to `.required` method by [@​SrBrahma](https://togithub.com/SrBrahma) in [https://github.com/colinhacks/zod/pull/1315](https://togithub.com/colinhacks/zod/pull/1315) - Added Intersections to TOC by [@​tmkn](https://togithub.com/tmkn) in [https://github.com/colinhacks/zod/pull/1450](https://togithub.com/colinhacks/zod/pull/1450) - \[[#​1468](https://togithub.com/colinhacks/zod/issues/1468)] Fix zod.dev main page cross origin links. by [@​agrahamg](https://togithub.com/agrahamg) in [https://github.com/colinhacks/zod/pull/1469](https://togithub.com/colinhacks/zod/pull/1469) - Updates remix-domains library name and description in README by [@​diogob](https://togithub.com/diogob) in [https://github.com/colinhacks/zod/pull/1501](https://togithub.com/colinhacks/zod/pull/1501) - Removed BRAND from ZodBrand Input definition by [@​Xetera](https://togithub.com/Xetera) in [https://github.com/colinhacks/zod/pull/1492](https://togithub.com/colinhacks/zod/pull/1492) - Add Zodix to readme ecosystem section by [@​rileytomasek](https://togithub.com/rileytomasek) in [https://github.com/colinhacks/zod/pull/1506](https://togithub.com/colinhacks/zod/pull/1506) - Fix small typos in README by [@​Yhozen](https://togithub.com/Yhozen) in [https://github.com/colinhacks/zod/pull/1521](https://togithub.com/colinhacks/zod/pull/1521) - fix typo by [@​oasido](https://togithub.com/oasido) in [https://github.com/colinhacks/zod/pull/1528](https://togithub.com/colinhacks/zod/pull/1528) - add `fatal` to `ZodIssue`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1555](https://togithub.com/colinhacks/zod/pull/1555) - Fix typo in ERROR_HANDLING.md by [@​Tsuyoshi84](https://togithub.com/Tsuyoshi84) in [https://github.com/colinhacks/zod/pull/1543](https://togithub.com/colinhacks/zod/pull/1543) - add `.finite()` @​ `ZodNumber`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1546](https://togithub.com/colinhacks/zod/pull/1546) - Fix typing bug hiding errors of nullable composite fields by [@​tadeokondrak](https://togithub.com/tadeokondrak) in [https://github.com/colinhacks/zod/pull/1545](https://togithub.com/colinhacks/zod/pull/1545) - [#​1227](https://togithub.com/colinhacks/zod/issues/1227) Feature default on mismatch by [@​seancrowe](https://togithub.com/seancrowe) in [https://github.com/colinhacks/zod/pull/1537](https://togithub.com/colinhacks/zod/pull/1537) - fix [#​1046](https://togithub.com/colinhacks/zod/issues/1046) `.required()` doesn't remove optional flag from the result of `.nullish()`. by [@​igalklebanov](https://togithub.com/igalklebanov) in [https://github.com/colinhacks/zod/pull/1542](https://togithub.com/colinhacks/zod/pull/1542) - add `datetime()` string formats by [@​samchungy](https://togithub.com/samchungy) in [https://github.com/colinhacks/zod/pull/1494](https://togithub.com/colinhacks/zod/pull/1494) - Bump minimatch from 3.0.4 to 3.1.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/colinhacks/zod/pull/1558](https://togithub.com/colinhacks/zod/pull/1558) - Bump minimist from 1.2.5 to 1.2.7 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/colinhacks/zod/pull/1507](https://togithub.com/colinhacks/zod/pull/1507) - [#​1171](https://togithub.com/colinhacks/zod/issues/1171) support for refine, superRefine, transform and lazy in discriminatedUnion by [@​roblabat](https://togithub.com/roblabat) in [https://github.com/colinhacks/zod/pull/1290](https://togithub.com/colinhacks/zod/pull/1290) - branded type as normal argument by [@​KATT](https://togithub.com/KATT) in [https://github.com/colinhacks/zod/pull/1502](https://togithub.com/colinhacks/zod/pull/1502) - Take `path` parameter into account within `.parseAsync()` by [@​RobinTail](https://togithub.com/RobinTail) in [https://github.com/colinhacks/zod/pull/1513](https://togithub.com/colinhacks/zod/pull/1513) - Update README.md by [@​rosnerdev](https://togithub.com/rosnerdev) in [https://github.com/colinhacks/zod/pull/1463](https://togithub.com/colinhacks/zod/pull/1463) - Add `ZodSymbol` by [@​santosmarco-caribou](https://togithub.com/santosmarco-caribou) in [https://github.com/colinhacks/zod/pull/1448](https://togithub.com/colinhacks/zod/pull/1448) - Fix Minor Typos by [@​WebDevSimplified](https://togithub.com/WebDevSimplified) in [https://github.com/colinhacks/zod/pull/1624](https://togithub.com/colinhacks/zod/pull/1624) #### New Contributors - [@​SrBrahma](https://togithub.com/SrBrahma) made their first contribution in [https://github.com/colinhacks/zod/pull/1315](https://togithub.com/colinhacks/zod/pull/1315) - [@​tmkn](https://togithub.com/tmkn) made their first contribution in [https://github.com/colinhacks/zod/pull/1450](https://togithub.com/colinhacks/zod/pull/1450) - [@​agrahamg](https://togithub.com/agrahamg) made their first contribution in [https://github.com/colinhacks/zod/pull/1469](https://togithub.com/colinhacks/zod/pull/1469) - [@​diogob](https://togithub.com/diogob) made their first contribution in [https://github.com/colinhacks/zod/pull/1501](https://togithub.com/colinhacks/zod/pull/1501) - [@​Xetera](https://togithub.com/Xetera) made their first contribution in [https://github.com/colinhacks/zod/pull/1492](https://togithub.com/colinhacks/zod/pull/1492) - [@​rileytomasek](https://togithub.com/rileytomasek) made their first contribution in [https://github.com/colinhacks/zod/pull/1506](https://togithub.com/colinhacks/zod/pull/1506) - [@​Yhozen](https://togithub.com/Yhozen) made their first contribution in [https://github.com/colinhacks/zod/pull/1521](https://togithub.com/colinhacks/zod/pull/1521) - [@​oasido](https://togithub.com/oasido) made their first contribution in [https://github.com/colinhacks/zod/pull/1528](https://togithub.com/colinhacks/zod/pull/1528) - [@​igalklebanov](https://togithub.com/igalklebanov) made their first contribution in [https://github.com/colinhacks/zod/pull/1555](https://togithub.com/colinhacks/zod/pull/1555) - [@​Tsuyoshi84](https://togithub.com/Tsuyoshi84) made their first contribution in [https://github.com/colinhacks/zod/pull/1543](https://togithub.com/colinhacks/zod/pull/1543) - [@​tadeokondrak](https://togithub.com/tadeokondrak) made their first contribution in [https://github.com/colinhacks/zod/pull/1545](https://togithub.com/colinhacks/zod/pull/1545) - [@​seancrowe](https://togithub.com/seancrowe) made their first contribution in [https://github.com/colinhacks/zod/pull/1537](https://togithub.com/colinhacks/zod/pull/1537) - [@​samchungy](https://togithub.com/samchungy) made their first contribution in [https://github.com/colinhacks/zod/pull/1494](https://togithub.com/colinhacks/zod/pull/1494) - [@​roblabat](https://togithub.com/roblabat) made their first contribution in [https://github.com/colinhacks/zod/pull/1290](https://togithub.com/colinhacks/zod/pull/1290) - [@​KATT](https://togithub.com/KATT) made their first contribution in [https://github.com/colinhacks/zod/pull/1502](https://togithub.com/colinhacks/zod/pull/1502 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/Garlic-Team/gcommands). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4yMjcuMiIsInRhcmdldEJyYW5jaCI6Im5leHQifQ==-->
Fix #1171
Also add support for lazy, refine and superRefine in discriminatedUnions