Skip to content

Commit

Permalink
fix(deps): update dependency zod to v3.22.3 [security] (#621)
Browse files Browse the repository at this point in the history
[![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://github.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://github.com/colinhacks/zod/releases/tag/v3.22.3)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.22.2...v3.22.3)

##### Commits:

-
[`1e23990`](https://github.com/colinhacks/zod/commit/1e23990bcdd33d1e81b31e40e77a031fcfd87ce1)
Commit
-
[`9bd3879`](https://github.com/colinhacks/zod/commit/9bd3879b482f139fd03d5025813ee66a04195cdd)
docs: remove obsolete text about readonly types
([#&#8203;2676](https://github.com/colinhacks/zod/issues/2676))
-
[`f59be09`](https://github.com/colinhacks/zod/commit/f59be093ec21430d9f32bbcb628d7e39116adf34)
clarify datetime ISO 8601
([#&#8203;2673](https://github.com/colinhacks/zod/issues/2673))
-
[`64dcc8e`](https://github.com/colinhacks/zod/commit/64dcc8e2b16febe48fa8e3c82c47c92643e6c9e3)
Update sponsors
-
[`18115a8`](https://github.com/colinhacks/zod/commit/18115a8f128680b4526df58ce96deab7dce93b93)
Formatting
-
[`28c1927`](https://github.com/colinhacks/zod/commit/28c19273658b164c53c149785fa7a8187c428ad4)
Update sponsors
-
[`ad2ee9c`](https://github.com/colinhacks/zod/commit/ad2ee9ccf723c4388158ff6b8669c2a6cdc85643)
2718 Updated Custom Schemas documentation example to use type narrowing
([#&#8203;2778](https://github.com/colinhacks/zod/issues/2778))
-
[`ae0f7a2`](https://github.com/colinhacks/zod/commit/ae0f7a2c15e7741ee1b23c03a3bfb9acebd86551)
docs: update ref to discriminated-unions docs
([#&#8203;2485](https://github.com/colinhacks/zod/issues/2485))
-
[`2ba00fe`](https://github.com/colinhacks/zod/commit/2ba00fe2377f4d53947a84b8cdb314a63bbd6dd4)
\[2609] fix ReDoS vulnerability in email regex
([#&#8203;2824](https://github.com/colinhacks/zod/issues/2824))
-
[`1e61d76`](https://github.com/colinhacks/zod/commit/1e61d76cdec05de9271fc0df58798ddf9ce94923)
3.22.3

###
[`v3.22.2`](https://github.com/colinhacks/zod/releases/tag/v3.22.2)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.22.1...v3.22.2)

##### Commits:

-
[`13d9e6b`](https://github.com/colinhacks/zod/commit/13d9e6bda286cbd4c1b177171273695d8309e5de)
Fix lint
-
[`0d49f10`](https://github.com/colinhacks/zod/commit/0d49f10b3c25a8e4cbb6534cc0773b195c56d06d)
docs: add typeschema to ecosystem
([#&#8203;2626](https://github.com/colinhacks/zod/issues/2626))
-
[`8e4af7b`](https://github.com/colinhacks/zod/commit/8e4af7b56df6f2e3daf0dd825b986f1d963025ce)
X to Zod: add app.quicktype.io
([#&#8203;2668](https://github.com/colinhacks/zod/issues/2668))
-
[`792b3ef`](https://github.com/colinhacks/zod/commit/792b3ef0d41c144cd10641c6966b98dae1222d82)
Fix superrefine types

###
[`v3.22.1`](https://github.com/colinhacks/zod/releases/tag/v3.22.1)

[Compare
Source](https://github.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://github.com/colinhacks/zod/commit/932cc472d2e66430d368a409b8d251909d7d8d21)
Initial prototype fix for issue
[#&#8203;2651](https://github.com/colinhacks/zod/issues/2651)
([#&#8203;2652](https://github.com/colinhacks/zod/issues/2652))
-
[`0a055e7`](https://github.com/colinhacks/zod/commit/0a055e726ac210ef6efc69aa70cd2491767f6060)
3.22.1

###
[`v3.22.0`](https://github.com/colinhacks/zod/releases/tag/v3.22.0)

[Compare
Source](https://github.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://github.com/colinhacks/zod/commit/6dad90785398885f7b058f5c0760d5ae5476b833)
Comments
-
[`56ace68`](https://github.com/colinhacks/zod/commit/56ace682e4cc89132c034a3ae2c13b2d5b1a0115)
Fix deno test
-
[`3809d54`](https://github.com/colinhacks/zod/commit/3809d54fc8c5dd0a0ce367bd2575fe3fdadf087d)
Add superforms
-
[`d1ad522`](https://github.com/colinhacks/zod/commit/d1ad5221900af640bc3093a2fb0476ec0c94953e)
Add transloadit
-
[`a3bb701`](https://github.com/colinhacks/zod/commit/a3bb701757127ffe05e773a2e449136b9b7efcb3)
Testing on Typescript 5.0
([#&#8203;2221](https://github.com/colinhacks/zod/issues/2221))
-
[`51e14be`](https://github.com/colinhacks/zod/commit/51e14beeab2f469fcbf18e3df44653e1643f5487)
docs: update deprecated link
([#&#8203;2219](https://github.com/colinhacks/zod/issues/2219))
-
[`a263814`](https://github.com/colinhacks/zod/commit/a263814fc430db8d47430cd2884d2cea6b11c671)
fixed Datetime & IP TOC links
-
[`502384e`](https://github.com/colinhacks/zod/commit/502384e56fe2b1f8173735df6c3b0d41bce04edc)
docs: add mobx-zod-form to form integrations
([#&#8203;2299](https://github.com/colinhacks/zod/issues/2299))
-
[`a8be450`](https://github.com/colinhacks/zod/commit/a8be4500851923aa865e009fe9c2855e80482047)
docs: Add `zocker` to Ecosystem section
([#&#8203;2416](https://github.com/colinhacks/zod/issues/2416))
-
[`15de22a`](https://github.com/colinhacks/zod/commit/15de22a3ba6144c7d8d2276e8e56174bcdfa7225)
Allow subdomains and hyphens in `ZodString.email`
([#&#8203;2274](https://github.com/colinhacks/zod/issues/2274))
-
[`00f5783`](https://github.com/colinhacks/zod/commit/00f5783602ccbe423deb0dbd76ecf13a276bc54d)
Add `zod-openapi` to ecosystem
([#&#8203;2434](https://github.com/colinhacks/zod/issues/2434))
-
[`0a17340`](https://github.com/colinhacks/zod/commit/0a17340e9fc4b909d10ca3687b6bc6454903ff21)
docs: fix minor typo
([#&#8203;2439](https://github.com/colinhacks/zod/issues/2439))
-
[`60a2134`](https://github.com/colinhacks/zod/commit/60a21346086d32ca9f39efc2771f5db37c835c03)
Add masterborn
-
[`0a90ed1`](https://github.com/colinhacks/zod/commit/0a90ed1461dafa62ff50ce0d5d5434fd4a2a4a20)
chore: move `exports.types` field to first spot @&#8203; package.json.
([#&#8203;2443](https://github.com/colinhacks/zod/issues/2443))
-
[`67f35b1`](https://github.com/colinhacks/zod/commit/67f35b16692ca33fd48adfec9ae83b9514f8a4b7)
docs: allow Zod to be used in dev tools at site
([#&#8203;2432](https://github.com/colinhacks/zod/issues/2432))
-
[`6795c57`](https://github.com/colinhacks/zod/commit/6795c574b1d34f6e95ae891f96d8b219b98ace92)
Fix not working Deno doc link.
([#&#8203;2428](https://github.com/colinhacks/zod/issues/2428))
-
[`37e9c55`](https://github.com/colinhacks/zod/commit/37e9c550460e4edd144da90d903e878c119c5cc1)
Generalize uuidRegex
-
[`0969950`](https://github.com/colinhacks/zod/commit/09699501ff6218b3b0a7e382eca3c02a8226ce13)
adds ctx to preprocess
([#&#8203;2426](https://github.com/colinhacks/zod/issues/2426))
-
[`af08390`](https://github.com/colinhacks/zod/commit/af08390139cf9fd4fc9e398b60a39191bf224076)
fix: super refinement function types
([#&#8203;2420](https://github.com/colinhacks/zod/issues/2420))
-
[`36fef58`](https://github.com/colinhacks/zod/commit/36fef58410f4b2c9e79edabae2fc567a4aee13a7)
Make email regex reasonable
([#&#8203;2157](https://github.com/colinhacks/zod/issues/2157))
-
[`f627d14`](https://github.com/colinhacks/zod/commit/f627d14d3bfe3a680ac0d54705b2e63daa912aed)
Document canary
-
[`e06321c`](https://github.com/colinhacks/zod/commit/e06321c15d22082e47c7c111a92ec7b3e104c644)
docs: add tapiduck to API libraries
([#&#8203;2410](https://github.com/colinhacks/zod/issues/2410))
-
[`11e507c`](https://github.com/colinhacks/zod/commit/11e507c4d3bf4ad3ab2057a0122168ed0048a2c4)
docs: add ts as const example in zod enums
([#&#8203;2412](https://github.com/colinhacks/zod/issues/2412))
-
[`5427565`](https://github.com/colinhacks/zod/commit/5427565c347a14056bc60e3ffd800b98753952bc)
docs: add zod-fixture to mocking ecosystem
([#&#8203;2409](https://github.com/colinhacks/zod/issues/2409))
-
[`d3bf7e6`](https://github.com/colinhacks/zod/commit/d3bf7e60a8eb706c4c63a9a91fd66565b82883cf)
docs: add `zodock` to mocking ecosystem
([#&#8203;2394](https://github.com/colinhacks/zod/issues/2394))
-
[`2270ae5`](https://github.com/colinhacks/zod/commit/2270ae563f7f14bed770f75d9c252880794fa71f)
remove "as any" casts in createZodEnum
([#&#8203;2332](https://github.com/colinhacks/zod/issues/2332))
-
[`00bdd0a`](https://github.com/colinhacks/zod/commit/00bdd0a7ffdf495af14e67ae1396c85a282c38dd)
fix proto pollution vulnerability
([#&#8203;2239](https://github.com/colinhacks/zod/issues/2239))
-
[`a3c5256`](https://github.com/colinhacks/zod/commit/a3c525658bc43edf40747a99b8f882d8d3d1e0c7)
Fix error_handling unrecognized_keys example
-
[`4f75cbc`](https://github.com/colinhacks/zod/commit/4f75cbc682199a5411189f9cd9abba9af4924746)
Adds getters to Map for key + value
([#&#8203;2356](https://github.com/colinhacks/zod/issues/2356))
-
[`ca7b032`](https://github.com/colinhacks/zod/commit/ca7b03222764496d72085b1178fa22f4a57fe579)
FMC ([#&#8203;2346](https://github.com/colinhacks/zod/issues/2346))
-
[`6fec8bd`](https://github.com/colinhacks/zod/commit/6fec8bd3407f463f157522a3979b4d202870ba4c)
docs: fix typo in link fragment
([#&#8203;2329](https://github.com/colinhacks/zod/issues/2329))
-
[`16f90bd`](https://github.com/colinhacks/zod/commit/16f90bd22b465aca9a1fbad09248d80aa93fd824)
Update README.md
-
[`2c80250`](https://github.com/colinhacks/zod/commit/2c802507d92d2d2e15be959695b1de78b896bfcb)
Update readme
-
[`eaf64e0`](https://github.com/colinhacks/zod/commit/eaf64e09ba1a87dd6bf348fb97061894a01242d2)
Update sponsors
-
[`c576311`](https://github.com/colinhacks/zod/commit/c5763112e2912390f3317d738e4261fa8747494e)
Update readme
-
[`5e23b4f`](https://github.com/colinhacks/zod/commit/5e23b4fae4715c7391f9ceb4369421a034851b4c)
Add `*.md` pattern to prettier
([#&#8203;2476](https://github.com/colinhacks/zod/issues/2476))
-
[`898dced`](https://github.com/colinhacks/zod/commit/898dced470f1045b5469543abd2f427a713d93eb)
Revamp tests
-
[`6309322`](https://github.com/colinhacks/zod/commit/6309322a28545e316299f8b9a36f43132d347300)
Update test runners
-
[`c0aece1`](https://github.com/colinhacks/zod/commit/c0aece1672d1442d69ce1991142af8f16ed20ecb)
Add vitest config
-
[`73a5610`](https://github.com/colinhacks/zod/commit/73a5610186c413872153e8dcac76c4c4f23dfe4e)
Update script
-
[`8d8e1a2`](https://github.com/colinhacks/zod/commit/8d8e1a2d306cecaf3d8cb88f32fe3e130a834f9f)
Fix deno test bug
-
[`9eb2508`](https://github.com/colinhacks/zod/commit/9eb2508fac78cc36faefd050e9616bb6d34814c1)
Clean up configs
-
[`cfbc7b3`](https://github.com/colinhacks/zod/commit/cfbc7b3f6714ced250dd4053822faf472bf1828e)
Fix root jest config
-
[`8677f68`](https://github.com/colinhacks/zod/commit/8677f688b0ab1bb5991e90744f46a15082772bd6)
docs(comparison-yup): Yup added partial() and deepPartial() in v1
([#&#8203;2603](https://github.com/colinhacks/zod/issues/2603))
-
[`fb00edd`](https://github.com/colinhacks/zod/commit/fb00edd04ca338b8d791a96dead161076538c6c2)
docs: add VeeValidate form library for Vue.js
([#&#8203;2578](https://github.com/colinhacks/zod/issues/2578))
-
[`ab8e717`](https://github.com/colinhacks/zod/commit/ab8e71793431eeb163613007c134132e6c2ab078)
docs: fix typo in z.object
([#&#8203;2570](https://github.com/colinhacks/zod/issues/2570))
-
[`d870407`](https://github.com/colinhacks/zod/commit/d870407a020f9518fbae662f9f48a9aba005a3e2)
docs: fix incomplete Records example
([#&#8203;2579](https://github.com/colinhacks/zod/issues/2579))
-
[`5adae24`](https://github.com/colinhacks/zod/commit/5adae24e9b2fc98fc679defa8f78e4142d4c3451)
docs: add conform form integration
([#&#8203;2577](https://github.com/colinhacks/zod/issues/2577))
-
[`8b8ab3e`](https://github.com/colinhacks/zod/commit/8b8ab3e79691ebafbb9aac3ce089eaf0dcd6d8fe)
Update README.md
([#&#8203;2562](https://github.com/colinhacks/zod/issues/2562))
-
[`6aab901`](https://github.com/colinhacks/zod/commit/6aab9016873c12be08d19bcc097b3e5ba4c9d6fe)
fix typo test name
([#&#8203;2542](https://github.com/colinhacks/zod/issues/2542))
-
[`81a89f5`](https://github.com/colinhacks/zod/commit/81a89f593f4d6b05f770bbb3ad0fc98075f468dd)
Update nullish documentation to correct chaining order
([#&#8203;2457](https://github.com/colinhacks/zod/issues/2457))
-
[`78a4090`](https://github.com/colinhacks/zod/commit/78a409012a4dc34a455f5c4a7e028ca47c921e1b)
docs: update comparison with `runtypes`
([#&#8203;2536](https://github.com/colinhacks/zod/issues/2536))
-
[`1ecd624`](https://github.com/colinhacks/zod/commit/1ecd6241ef97b33ce229b49f1346ffeee5d0ba74)
Fix prettier
-
[`981d4b5`](https://github.com/colinhacks/zod/commit/981d4b5e272e7e35ff44a31fbb5e8e90594b1933)
Add ZodReadonly
([#&#8203;2634](https://github.com/colinhacks/zod/issues/2634))
-
[`fba438c`](https://github.com/colinhacks/zod/commit/fba438cddea800b081a15aefc8b1efea2eccf7af)
3.22.0

###
[`v3.21.4`](https://github.com/colinhacks/zod/releases/tag/v3.21.4)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.21.3...v3.21.4)

#### Commits:

-
[`22f3cc6`](https://github.com/colinhacks/zod/commit/22f3cc6ed52a28c984a0319a1a03e1af244cee02)
3.21.4

###
[`v3.21.3`](https://github.com/colinhacks/zod/releases/tag/v3.21.3)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.21.2...v3.21.3)

#### Commits:

-
[`14c08d8`](https://github.com/colinhacks/zod/commit/14c08d87129c3b652f03d2e724979c383c55e0b4)
added more `.pipe` examples
-
[`006e652`](https://github.com/colinhacks/zod/commit/006e6521f425b38e1fbb898e29921fe885caf7ba)
Fix npm canary action paths pattern
([#&#8203;2148](https://github.com/colinhacks/zod/issues/2148))
-
[`bdcff0f`](https://github.com/colinhacks/zod/commit/bdcff0f20f4c35dd6a44b1324711dfd34a41ae96)
Remove logging in tests
-
[`a5830c6`](https://github.com/colinhacks/zod/commit/a5830c6d3fe28f0d5435cc9ff22846be7f5977c1)
Reverted [#&#8203;1564](https://github.com/colinhacks/zod/issues/1564)
-
[`c458381`](https://github.com/colinhacks/zod/commit/c4583819e77a702e21b587c4bf081d0292f2b754)
Fix tests
-
[`2db0dca`](https://github.com/colinhacks/zod/commit/2db0dcadc961fd57f7f10f9d9f55d67e6d040342)
3.21.3

###
[`v3.21.2`](https://github.com/colinhacks/zod/releases/tag/v3.21.2)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.21.1...v3.21.2)

#### Commits:

-
[`b276d71`](https://github.com/colinhacks/zod/commit/b276d71eaefef6cb87c81e8429bd160e4b68c168)
Improve typings in generics
-
[`4d016b7`](https://github.com/colinhacks/zod/commit/4d016b772b79d566bfa2a0c2fc5bfbd92b776982)
Improve type inference in generics
-
[`f9895ab`](https://github.com/colinhacks/zod/commit/f9895ab1650ef3df9c598a8c43ede0160596ac2e)
Improve types inside generic functions
-
[`ac0135e`](https://github.com/colinhacks/zod/commit/ac0135e00df75abd57a93a4816fe0fdaa31e94e8)
Pass input into catchValue

###
[`v3.21.1`](https://github.com/colinhacks/zod/releases/tag/v3.21.1)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.21.0...v3.21.1)

#### Features

Support for [ULID](https://github.com/ulid/spec) validation

```ts
z.string().ulid();
```

#### Commits:

-
[`4f89461`](https://github.com/colinhacks/zod/commit/4f8946182ee07eb7b5d40efa908b1715414e8929)
Prettier
-
[`bd6527a`](https://github.com/colinhacks/zod/commit/bd6527a47a4626135dccac113a7b09f81b675edd)
Update deps
-
[`126c77b`](https://github.com/colinhacks/zod/commit/126c77b3130d9a68032f72ac76dd9e1ccfd86c2c)
added `toLowerCase` and `toUpperCase` back in for v3.21.0
-
[`1749657`](https://github.com/colinhacks/zod/commit/174965739d17db348d445ab250fb2cf6bd7cdd51)
Update README.md
-
[`dabe63d`](https://github.com/colinhacks/zod/commit/dabe63d15eb6d22246aa5d5c83b69d1d5f4c2f4b)
updated `z.custom` example again :D
-
[`6b8f655`](https://github.com/colinhacks/zod/commit/6b8f6557d9b53ea7ad3fda753a51cdf153ba1fb7)
docs: improve cn readme
([#&#8203;2143](https://github.com/colinhacks/zod/issues/2143))
-
[`9012dc7`](https://github.com/colinhacks/zod/commit/9012dc7055e1467b6d619a6c0ad016fdfbde2b9c)
add `.includes(value, options?)` @&#8203; `ZodString`.
([#&#8203;1887](https://github.com/colinhacks/zod/issues/1887))
-
[`67b981e`](https://github.com/colinhacks/zod/commit/67b981e70b4bacb2278a9aacd22d38cbb4b52d17)
Make safeParse().error a getter
-
[`346fde0`](https://github.com/colinhacks/zod/commit/346fde03724bfd1601823e4f72470bc7e344030b)
3.21.0-canary.20230304T235951
-
[`b50d871`](https://github.com/colinhacks/zod/commit/b50d871b2f5949587afdcce2375227a447dbb742)
Add canary release CI
-
[`b20cca2`](https://github.com/colinhacks/zod/commit/b20cca230a6a9beb8acf841250641b62847b6e80)
Fix canary
-
[`f7f5c50`](https://github.com/colinhacks/zod/commit/f7f5c50c65d7c7e5262c028e6832b92b14d84ea5)
Move action to .github/workflows
-
[`f01fa0e`](https://github.com/colinhacks/zod/commit/f01fa0e48ca18630604366f5bc7401a18eb4d018)
Try to fix canary CI
-
[`f5e8067`](https://github.com/colinhacks/zod/commit/f5e8067b2afcc3e5ae9f8ed389a31b83a7c3ceec)
No git tag
-
[`5b304ae`](https://github.com/colinhacks/zod/commit/5b304ae41705105ae6edcacdb6dfdac9c527b3f4)
No dry run
-
[`20df80e`](https://github.com/colinhacks/zod/commit/20df80e6ce2ac27f6e2f26b61cd1fd4c942b152d)
Add tsc compilation test
-
[`ead93d3`](https://github.com/colinhacks/zod/commit/ead93d3cfde54efe952dc615c21ff179a00f7574)
Document .pipe()
-
[`d8e8653`](https://github.com/colinhacks/zod/commit/d8e86534325fb00bc0193a4c6af04f2a67bd2e4e)
Update headers
-
[`03c0ab1`](https://github.com/colinhacks/zod/commit/03c0ab1640ca9111d9fbac3c261e2f76e3cbf247)
Cache the evaluation of ParseInputLazyPath.path() for a moderate perf
improvement
([#&#8203;2137](https://github.com/colinhacks/zod/issues/2137))
-
[`e7b3b7b`](https://github.com/colinhacks/zod/commit/e7b3b7bf493caeee7e4f043eea024e4d3badc090)
Improve string docs
-
[`83478f5`](https://github.com/colinhacks/zod/commit/83478f5e413c333f07f53b9b4bb8c24b75e1cecf)
Remove zod dep
-
[`2f1868d`](https://github.com/colinhacks/zod/commit/2f1868d0c17c0e401c4438d9d35e68f9685a741b)
Specify paths for canary
-
[`e599966`](https://github.com/colinhacks/zod/commit/e599966709fe0253d6779ce1dec38a2adcebf41f)
Add sponsors
-
[`950bd17`](https://github.com/colinhacks/zod/commit/950bd17f01668b45e592a678974437b15012b158)
Tweak x.custom example
-
[`728e56a`](https://github.com/colinhacks/zod/commit/728e56a7e157cca8cdc0ab937f25a2412673c934)
Close [#&#8203;2127](https://github.com/colinhacks/zod/issues/2127)
-
[`64883e4`](https://github.com/colinhacks/zod/commit/64883e4fe41b10eb577c4f9eaf6f24fa29bcd60d)
feat: z.string().ulid() - add support for ulids
([#&#8203;2049](https://github.com/colinhacks/zod/issues/2049))
-
[`e0d709b`](https://github.com/colinhacks/zod/commit/e0d709b1348efab06ac5341d360a411bc09eb7ba)
3.20.1
-
[`9c33194`](https://github.com/colinhacks/zod/commit/9c3319443cfc953adc51786e8d6fe0bbe1e37f8e)
Remove comments, clean up utils
-
[`942e2db`](https://github.com/colinhacks/zod/commit/942e2db8e51d580f4e3cd8c4c4af8bc6aecf4130)
Fix tests

###
[`v3.21.0`](https://github.com/colinhacks/zod/releases/tag/v3.21.0)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.20.6...v3.21.0)

#### Features

##### `z.string().emoji()`

Thanks [@&#8203;joseph-lozano](https://github.com/joseph-lozano) for
[https://github.com/colinhacks/zod/pull/2045](https://github.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 [@&#8203;joulev](https://github.com/joulev) for
[https://github.com/colinhacks/zod/pull/1813](https://github.com/colinhacks/zod/pull/1813)!
To validate [CUIDv2](https://github.com/paralleldrive/cuid2):

```ts
z.string().cuid2()
```

##### `z.string().ip()`

Thanks [@&#8203;fvckDesa](https://github.com/fvckDesa) for
[https://github.com/colinhacks/zod/pull/2066](https://github.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 [@&#8203;igalklebanov](https://github.com/igalklebanov) for
[`#1711`](https://github.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
[@&#8203;santosmarco-caribou](https://github.com/santosmarco-caribou)
for
[https://github.com/colinhacks/zod/pull/1652](https://github.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 [@&#8203;0xWryth](https://github.com/0xWryth) for
[https://github.com/colinhacks/zod/pull/2087](https://github.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
[@&#8203;gydroperit](https://github.com/gydroperit) for some heroic
efforts here:
[https://github.com/colinhacks/zod/pull/2107](https://github.com/colinhacks/zod/pull/2107)
Zod 3.21 resolves these issues:

-
[https://github.com/colinhacks/zod/issues/2142](https://github.com/colinhacks/zod/issues/2142)
-
[https://github.com/colinhacks/zod/issues/1741](https://github.com/colinhacks/zod/issues/1741)
-
https://stackoverflow.com/questions/74881472/slow-typescript-autocompletion-in-vs-code-for-zod

#### Commits:

-
[`3c54461`](https://github.com/colinhacks/zod/commit/3c54461d7a649bf727aec59367eefb214ffe24fe)
fix typo in readme
-
[`c244fb6`](https://github.com/colinhacks/zod/commit/c244fb6c57506fd11609106960639de26ddf9b6d)
feat: z.string().emoji()
([#&#8203;2045](https://github.com/colinhacks/zod/issues/2045))
-
[`39cbb69`](https://github.com/colinhacks/zod/commit/39cbb6971c3dca09cbc0acdca2d3995dfd26aab2)
Fix emoji validation, fix lint
-
[`d8f07bb`](https://github.com/colinhacks/zod/commit/d8f07bbfffd255b0aee6b5fe9bb6aa2bce6586af)
Fix emoji
-
[`9b7dd81`](https://github.com/colinhacks/zod/commit/9b7dd816e92e16ca735e488b77e280a92a84ed64)
Improve variable name clarity
([#&#8203;2048](https://github.com/colinhacks/zod/issues/2048))
-
[`5cec187`](https://github.com/colinhacks/zod/commit/5cec1871ac21627608af6c07585d5e50ff30f281)
Add documentation for the param parameter of z.custom
-
[`654f529`](https://github.com/colinhacks/zod/commit/654f52969a968c630af816dcad0d8f3721f9001a)
Merge pull request
[#&#8203;2057](https://github.com/colinhacks/zod/issues/2057) from
trygveaa/add-documentation-for-z-custom-params
-
[`981af65`](https://github.com/colinhacks/zod/commit/981af6503ee1be530fe525ac77ba95e1904ce24a)
Merge pull request
[#&#8203;2019](https://github.com/colinhacks/zod/issues/2019) from
vbud/patch-1
-
[`a7c2969`](https://github.com/colinhacks/zod/commit/a7c2969b9125df0fbfa65e8541a974eeaf53b6a6)
Update error_handling
-
[`8f3d028`](https://github.com/colinhacks/zod/commit/8f3d0283ba75d146d5199fe3dc140eeb5402352c)
BRAND Record to Non Partial
([#&#8203;2097](https://github.com/colinhacks/zod/issues/2097))
-
[`5ec98e1`](https://github.com/colinhacks/zod/commit/5ec98e1c4420957f93a7388bf49fb01d91bcbcd0)
Fix email issues in pull request
[#&#8203;1982](https://github.com/colinhacks/zod/issues/1982)
([#&#8203;2058](https://github.com/colinhacks/zod/issues/2058))
-
[`7d40ba5`](https://github.com/colinhacks/zod/commit/7d40ba58931130ec965be9d65d14e0665ee9c379)
feat([#&#8203;2059](https://github.com/colinhacks/zod/issues/2059)):
z.string.ip() - add support for IP address
([#&#8203;2066](https://github.com/colinhacks/zod/issues/2066))
-
[`e559605`](https://github.com/colinhacks/zod/commit/e5596054cfddf8aa1ba8d7d3bad63552a2bf9b6a)
feat: add `.catch` error
([#&#8203;2087](https://github.com/colinhacks/zod/issues/2087))
-
[`defdab9`](https://github.com/colinhacks/zod/commit/defdab9c163d9a994f927a0644ab4ec172513fcb)
Fix record tests
-
[`8de36eb`](https://github.com/colinhacks/zod/commit/8de36eb17d9477ada75cea2164d6b47079dd0444)
FIX: emoji regex and tests
([#&#8203;2090](https://github.com/colinhacks/zod/issues/2090))
-
[`16beeb5`](https://github.com/colinhacks/zod/commit/16beeb598039b33bc5a209956042d858abacca34)
lowercase method for ZodString
([#&#8203;2038](https://github.com/colinhacks/zod/issues/2038))
-
[`75cb9e8`](https://github.com/colinhacks/zod/commit/75cb9e814115a35c0b4cc2e970f6aaae90e1a13c)
add checks @&#8203; `ZodBigInt`.
([#&#8203;1711](https://github.com/colinhacks/zod/issues/1711))
-
[`c4d4e49`](https://github.com/colinhacks/zod/commit/c4d4e494227aadc752d4d5a5a317ec16bb6f5a45)
Update ERROR_HANDLING.md
([#&#8203;2022](https://github.com/colinhacks/zod/issues/2022))
-
[`d6f0890`](https://github.com/colinhacks/zod/commit/d6f08908b17ea10456befc2231a867d5cea02a0e)
added link to deno land
-
[`4cf1960`](https://github.com/colinhacks/zod/commit/4cf19606870e66bf4307984bf99a4bef495c7818)
Refactoring of ZodFormattedError type to improve tsc check time
([#&#8203;2107](https://github.com/colinhacks/zod/issues/2107))
-
[`867a921`](https://github.com/colinhacks/zod/commit/867a921a93160780d9f3aeddabf1ca49758a3c1e)
Bump http-cache-semantics from 4.1.0 to 4.1.1
([#&#8203;1985](https://github.com/colinhacks/zod/issues/1985))
-
[`edc3a67`](https://github.com/colinhacks/zod/commit/edc3a67e77d33979b3ee9e071557b4ca53298c55)
Deprecate deepPartial
-
[`e59f639`](https://github.com/colinhacks/zod/commit/e59f639d3bb5cca65ef239d5dd5c93e74ce4a801)
Add custom tests
-
[`a6b44ed`](https://github.com/colinhacks/zod/commit/a6b44ed8e346af2fabbb62b5164b99a387accd32)
Remove logging
-
[`a1fc3fb`](https://github.com/colinhacks/zod/commit/a1fc3fb815051beb4b7030969828aa6abe469c2c)
commented out `toLowerCase` and `toUpperCase`
-
[`e71cc52`](https://github.com/colinhacks/zod/commit/e71cc523b1865568c4db45f82789e5c86bed0f12)
Update README_ZH.md
([#&#8203;2139](https://github.com/colinhacks/zod/issues/2139))
-
[`3af38fb`](https://github.com/colinhacks/zod/commit/3af38fbe2cb114219e688103e41e382e28ec7a80)
add `ZodNumber.safe()` & `ZodNumber.isSafe`.
([#&#8203;1753](https://github.com/colinhacks/zod/issues/1753))
-
[`6ef82ee`](https://github.com/colinhacks/zod/commit/6ef82ee1e45dbcfc92a2ed359b1d2ae87d54c43d)
Add benchmark flags
-
[`5463593`](https://github.com/colinhacks/zod/commit/5463593385549452768e060a98cc0fd8988760d2)
Support brands in recursive types
-
[`8074523`](https://github.com/colinhacks/zod/commit/80745238937adc06c5b4eab19ef273ca9f7f2de8)
Update readme
-
[`b6794a4`](https://github.com/colinhacks/zod/commit/b6794a4981b8621fee84642f5313464f5e8f9a22)
Add index signature for passthrough
-
[`3c6cdd2`](https://github.com/colinhacks/zod/commit/3c6cdd245ab73d7ca1461a18b5be2da07abe6b6b)
Make generic optional in objectOutputType
-
[`bc43ad1`](https://github.com/colinhacks/zod/commit/bc43ad18e64cf7add23e90bc6b07d5bba8370e5e)
Fix rollup build
-
[`6a0545a`](https://github.com/colinhacks/zod/commit/6a0545acd5b9cfc40b0b3f04e64bfc5dd789d1b1)
3.21.0
-
[`7c07339`](https://github.com/colinhacks/zod/commit/7c0733968d64c7d7aebc1ae54ca90aadcb2bffc3)
Fix brand
-
[`0aa6021`](https://github.com/colinhacks/zod/commit/0aa6021ef3628bb39715bdda416be2c6a4951141)
Clean up tests

###
[`v3.20.6`](https://github.com/colinhacks/zod/releases/tag/v3.20.6)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.20.5...v3.20.6)

#### Commits:

-
[`e693919`](https://github.com/colinhacks/zod/commit/e6939195fbb5191402ba3d6f5b7aade463de6e51)
3.20.6

###
[`v3.20.5`](https://github.com/colinhacks/zod/releases/tag/v3.20.5)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.20.4...v3.20.5)

#### Commits:

-
[`e71c7be`](https://github.com/colinhacks/zod/commit/e71c7be15e393e0932aa3c939d061f8444f6ae29)
Fix extract/exclude type error

###
[`v3.20.4`](https://github.com/colinhacks/zod/releases/tag/v3.20.4)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.20.3...v3.20.4)

#### Commits:

-
[`b8d731f`](https://github.com/colinhacks/zod/commit/b8d731f779679e6f47cde18b2c422b0d4f44b01d)
Set input type of ZodCatch to unknown
-
[`06c237c`](https://github.com/colinhacks/zod/commit/06c237c29f53a827d2eb29cb20e9e23caba1ce2c)
Revert merge changes
-
[`c8ce27e`](https://github.com/colinhacks/zod/commit/c8ce27e8c0378856964cf8892c6102bde63fa0cb)
3.20.4

###
[`v3.20.3`](https://github.com/colinhacks/zod/releases/tag/v3.20.3)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.20.2...v3.20.3)

#### Features

- Add string cuid2() validation by
[@&#8203;joulev](https://github.com/joulev) in
[https://github.com/colinhacks/zod/pull/1813](https://github.com/colinhacks/zod/pull/1813)
- Add `ZodNumber.isFinite`, make `ZodNumber.isInt` true if
`.multipleOf(int)`. by
[@&#8203;igalklebanov](https://github.com/igalklebanov) in
[https://github.com/colinhacks/zod/pull/1714](https://github.com/colinhacks/zod/pull/1714)
- feat: Add `extract`/`exclude` methods to `ZodEnum` by
[@&#8203;santosmarco-caribou](https://github.com/santosmarco-caribou)
in
[https://github.com/colinhacks/zod/pull/1652](https://github.com/colinhacks/zod/pull/1652)

#### Fixes and documentation

- add more test cases for `z.coerce`. by
[@&#8203;igalklebanov](https://github.com/igalklebanov) in
[https://github.com/colinhacks/zod/pull/1680](https://github.com/colinhacks/zod/pull/1680)
- Add Modular Forms to form integrations in README by
[@&#8203;fabian-hiller](https://github.com/fabian-hiller) in
[https://github.com/colinhacks/zod/pull/1695](https://github.com/colinhacks/zod/pull/1695)
- docs: Instruct users to return z.NEVER in .superRefine() when
providing a type predicate by
[@&#8203;zetaraku](https://github.com/zetaraku) in
[https://github.com/colinhacks/zod/pull/1742](https://github.com/colinhacks/zod/pull/1742)
- Fix small typo in ERROR_HANDLING.md by
[@&#8203;t-shiratori](https://github.com/t-shiratori) in
[https://github.com/colinhacks/zod/pull/1720](https://github.com/colinhacks/zod/pull/1720)
- Improve accuracy of the `isAsync` type guard by
[@&#8203;aaronccasanova](https://github.com/aaronccasanova) in
[https://github.com/colinhacks/zod/pull/1719](https://github.com/colinhacks/zod/pull/1719)
- fix: Fix `ZodCatch` by
[@&#8203;santosmarco-caribou](https://github.com/santosmarco-caribou)
in
[https://github.com/colinhacks/zod/pull/1733](https://github.com/colinhacks/zod/pull/1733)
- Fix datetime offset without comma by
[@&#8203;ooga](https://github.com/ooga) in
[https://github.com/colinhacks/zod/pull/1749](https://github.com/colinhacks/zod/pull/1749)
- Discriminated union example fails to parse by
[@&#8203;matthewfallshaw](https://github.com/matthewfallshaw) in
[https://github.com/colinhacks/zod/pull/1713](https://github.com/colinhacks/zod/pull/1713)
- fix:
\[[#&#8203;1693](https://github.com/colinhacks/zod/issues/1693)] Tuple
with empty items by [@&#8203;metuan](https://github.com/metuan) in
[https://github.com/colinhacks/zod/pull/1712](https://github.com/colinhacks/zod/pull/1712)
- fix: [#&#8203;1668](https://github.com/colinhacks/zod/issues/1668)
email regex safari compat by
[@&#8203;AnatoleLucet](https://github.com/AnatoleLucet) in
[https://github.com/colinhacks/zod/pull/1683](https://github.com/colinhacks/zod/pull/1683)
- docs: fix typo by [@&#8203;zetaraku](https://github.com/zetaraku) in
[https://github.com/colinhacks/zod/pull/1699](https://github.com/colinhacks/zod/pull/1699)
- fix installation links in table of contents by
[@&#8203;DetachHead](https://github.com/DetachHead) in
[https://github.com/colinhacks/zod/pull/1700](https://github.com/colinhacks/zod/pull/1700)
- Updated `deno/lib/README.md` to match `zod/README.md` by
[@&#8203;JacobWeisenburger](https://github.com/JacobWeisenburger) in
[https://github.com/colinhacks/zod/pull/1791](https://github.com/colinhacks/zod/pull/1791)
- fix([#&#8203;1743](https://github.com/colinhacks/zod/issues/1743)):
Fix passing params in root class by
[@&#8203;santosmarco-caribou](https://github.com/santosmarco-caribou)
in
[https://github.com/colinhacks/zod/pull/1756](https://github.com/colinhacks/zod/pull/1756)
- change the chaining order of nullish method by
[@&#8203;p10ns11y](https://github.com/p10ns11y) in
[https://github.com/colinhacks/zod/pull/1702](https://github.com/colinhacks/zod/pull/1702)
- Propagate custom error type to ZodFormattedError subfields by
[@&#8203;carlgieringer](https://github.com/carlgieringer) in
[https://github.com/colinhacks/zod/pull/1617](https://github.com/colinhacks/zod/pull/1617)
- fix deno literal test. by
[@&#8203;igalklebanov](https://github.com/igalklebanov) in
[https://github.com/colinhacks/zod/pull/1794](https://github.com/colinhacks/zod/pull/1794)
- Document `.describe()` by
[@&#8203;rattrayalex](https://github.com/rattrayalex) in
[https://github.com/colinhacks/zod/pull/1819](https://github.com/colinhacks/zod/pull/1819)
- update homepage link in package.json by
[@&#8203;Gpx](https://github.com/Gpx) in
[https://github.com/colinhacks/zod/pull/1830](https://github.com/colinhacks/zod/pull/1830)
- fix: compile error in sample code by
[@&#8203;jtgi](https://github.com/jtgi) in
[https://github.com/colinhacks/zod/pull/1822](https://github.com/colinhacks/zod/pull/1822)
- Readme: Move "Coercion for primitives" section by
[@&#8203;tordans](https://github.com/tordans) in
[https://github.com/colinhacks/zod/pull/1842](https://github.com/colinhacks/zod/pull/1842)
- Readme: Add internal links "or" <-> "union" by
[@&#8203;tordans](https://github.com/tordans) in
[https://github.com/colinhacks/zod/pull/1846](https://github.com/colinhacks/zod/pull/1846)
- Readme: Add example for string validation for an optional field to
chapter "Unions" by [@&#8203;tordans](https://github.com/tordans) in
[https://github.com/colinhacks/zod/pull/1849](https://github.com/colinhacks/zod/pull/1849)
- Readme: Add intro to chapter Literals by
[@&#8203;tordans](https://github.com/tordans) in
[https://github.com/colinhacks/zod/pull/1877](https://github.com/colinhacks/zod/pull/1877)
- fix: faker.js link in readme by
[@&#8203;markacola](https://github.com/markacola) in
[https://github.com/colinhacks/zod/pull/1843](https://github.com/colinhacks/zod/pull/1843)
- Minor typo fix by
[@&#8203;iamchandru6470](https://github.com/iamchandru6470) in
[https://github.com/colinhacks/zod/pull/1945](https://github.com/colinhacks/zod/pull/1945)
- chore(documentation): Update CHANGELOG to redirect to Github Releases
by [@&#8203;mitchwd](https://github.com/mitchwd) in
[https://github.com/colinhacks/zod/pull/1936](https://github.com/colinhacks/zod/pull/1936)
- fix:
\[[#&#8203;1839](https://github.com/colinhacks/zod/issues/1839)]
remove caught errors from issues by
[@&#8203;maxArturo](https://github.com/maxArturo) in
[https://github.com/colinhacks/zod/pull/1926](https://github.com/colinhacks/zod/pull/1926)
- fix:
\[[#&#8203;1784](https://github.com/colinhacks/zod/issues/1784)] dark
mode in the documentation by
[@&#8203;fvckDesa](https://github.com/fvckDesa) in
[https://github.com/colinhacks/zod/pull/1932](https://github.com/colinhacks/zod/pull/1932)
- Allow also "\[+-]hh" as datetime offset by
[@&#8203;rafw87](https://github.com/rafw87) in
[https://github.com/colinhacks/zod/pull/1797](https://github.com/colinhacks/zod/pull/1797)
- Feature/add resolves method to zod promise by
[@&#8203;bolencki13](https://github.com/bolencki13) in
[https://github.com/colinhacks/zod/pull/1871](https://github.com/colinhacks/zod/pull/1871)
- test: add benchmark tests for date and symbol by
[@&#8203;pnts-se](https://github.com/pnts-se) in
[https://github.com/colinhacks/zod/pull/1796](https://github.com/colinhacks/zod/pull/1796)
- export the email regex by
[@&#8203;andresBobsled](https://github.com/andresBobsled) in
[https://github.com/colinhacks/zod/pull/2007](https://github.com/colinhacks/zod/pull/2007)
- Add React form validation library to ecosystem by
[@&#8203;crutchcorn](https://github.com/crutchcorn) in
[https://github.com/colinhacks/zod/pull/1999](https://github.com/colinhacks/zod/pull/1999)
- fix: make sure only mask keys with truthy values are respected at
runtime @&#8203; `.pick`, `.omit`, `.partial` & `.required`. by
[@&#8203;igalklebanov](https://github.com/igalklebanov) in
[https://github.com/colinhacks/zod/pull/1875](https://github.com/colinhacks/zod/pull/1875)
- fix: failing prettier checks on merge by
[@&#8203;maxArturo](https://github.com/maxArturo) in
[https://github.com/colinhacks/zod/pull/1969](https://github.com/colinhacks/zod/pull/1969)
- deny unexpected keys @&#8203; `ZodObject`'s
`.omit(mask)`,`.pick(mask)`,`.required(mask)` & `.partial(mask)` at
compile time. by
[@&#8203;igalklebanov](https://github.com/igalklebanov) in
[https://github.com/colinhacks/zod/pull/1564](https://github.com/colinhacks/zod/pull/1564)
- docs: punctuation by [@&#8203;jly36963](https://github.com/jly36963)
in
[https://github.com/colinhacks/zod/pull/1973](https://github.com/colinhacks/zod/pull/1973)
- fix\[[#&#8203;1979](https://github.com/colinhacks/zod/issues/1979)]:
Increment Email validation by
[@&#8203;fvckDesa](https://github.com/fvckDesa) in
[https://github.com/colinhacks/zod/pull/1982](https://github.com/colinhacks/zod/pull/1982)
- test: additional unit-tests for object by
[@&#8203;pnts-se](https://github.com/pnts-se) in
[https://github.com/colinhacks/zod/pull/1729](https://github.com/colinhacks/zod/pull/1729)

#### New Contributors

- [@&#8203;fabian-hiller](https://github.com/fabian-hiller) made their
first contribution in
[https://github.com/colinhacks/zod/pull/1695](https://github.com/colinhacks/zod/pull/1695)
- [@&#8203;zetaraku](https://github.com/zetaraku) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1742](https://github.com/colinhacks/zod/pull/1742)
- [@&#8203;t-shiratori](https://github.com/t-shiratori) made their
first contribution in
[https://github.com/colinhacks/zod/pull/1720](https://github.com/colinhacks/zod/pull/1720)
- [@&#8203;aaronccasanova](https://github.com/aaronccasanova) made
their first contribution in
[https://github.com/colinhacks/zod/pull/1719](https://github.com/colinhacks/zod/pull/1719)
- [@&#8203;ooga](https://github.com/ooga) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1749](https://github.com/colinhacks/zod/pull/1749)
- [@&#8203;matthewfallshaw](https://github.com/matthewfallshaw) made
their first contribution in
[https://github.com/colinhacks/zod/pull/1713](https://github.com/colinhacks/zod/pull/1713)
- [@&#8203;metuan](https://github.com/metuan) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1712](https://github.com/colinhacks/zod/pull/1712)
- [@&#8203;AnatoleLucet](https://github.com/AnatoleLucet) made their
first contribution in
[https://github.com/colinhacks/zod/pull/1683](https://github.com/colinhacks/zod/pull/1683)
- [@&#8203;DetachHead](https://github.com/DetachHead) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1700](https://github.com/colinhacks/zod/pull/1700)
- [@&#8203;p10ns11y](https://github.com/p10ns11y) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1702](https://github.com/colinhacks/zod/pull/1702)
- [@&#8203;carlgieringer](https://github.com/carlgieringer) made their
first contribution in
[https://github.com/colinhacks/zod/pull/1617](https://github.com/colinhacks/zod/pull/1617)
- [@&#8203;rattrayalex](https://github.com/rattrayalex) made their
first contribution in
[https://github.com/colinhacks/zod/pull/1819](https://github.com/colinhacks/zod/pull/1819)
- [@&#8203;Gpx](https://github.com/Gpx) made their first contribution
in
[https://github.com/colinhacks/zod/pull/1830](https://github.com/colinhacks/zod/pull/1830)
- [@&#8203;jtgi](https://github.com/jtgi) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1822](https://github.com/colinhacks/zod/pull/1822)
- [@&#8203;tordans](https://github.com/tordans) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1842](https://github.com/colinhacks/zod/pull/1842)
- [@&#8203;markacola](https://github.com/markacola) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1843](https://github.com/colinhacks/zod/pull/1843)
- [@&#8203;iamchandru6470](https://github.com/iamchandru6470) made
their first contribution in
[https://github.com/colinhacks/zod/pull/1945](https://github.com/colinhacks/zod/pull/1945)
- [@&#8203;mitchwd](https://github.com/mitchwd) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1936](https://github.com/colinhacks/zod/pull/1936)
- [@&#8203;fvckDesa](https://github.com/fvckDesa) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1932](https://github.com/colinhacks/zod/pull/1932)
- [@&#8203;rafw87](https://github.com/rafw87) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1797](https://github.com/colinhacks/zod/pull/1797)
- [@&#8203;bolencki13](https://github.com/bolencki13) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1871](https://github.com/colinhacks/zod/pull/1871)
- [@&#8203;joulev](https://github.com/joulev) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1813](https://github.com/colinhacks/zod/pull/1813)
- [@&#8203;pnts-se](https://github.com/pnts-se) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1796](https://github.com/colinhacks/zod/pull/1796)
- [@&#8203;andresBobsled](https://github.com/andresBobsled) made their
first contribution in
[https://github.com/colinhacks/zod/pull/2007](https://github.com/colinhacks/zod/pull/2007)
- [@&#8203;crutchcorn](https://github.com/crutchcorn) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1999](https://github.com/colinhacks/zod/pull/1999)
- [@&#8203;jly36963](https://github.com/jly36963) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1973](https://github.com/colinhacks/zod/pull/1973)

**Full Changelog**:
https://github.com/colinhacks/zod/compare/v3.20.2...v3.20.3

###
[`v3.20.2`](https://github.com/colinhacks/zod/releases/tag/v3.20.2)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.20.1...v3.20.2)

##### Commits:

-
[`d7d49e7`](https://github.com/colinhacks/zod/commit/d7d49e77ccd758ee874f7866862840f88f75cbb6)
Clarify boolean coercion
-
[`f49cbcb`](https://github.com/colinhacks/zod/commit/f49cbcb38f7e58e37480ded0f8f558c85de1ce3a)
Fix formatting
-
[`0b62f8c`](https://github.com/colinhacks/zod/commit/0b62f8c0c1722a15bd8afbc003e78fe7a177b2a2)
Revert email regex changes
-
[`68919aa`](https://github.com/colinhacks/zod/commit/68919aa1790fcb729385a4b290ee03b3d8df0d86)
3.20.2
-
[`c9e4ed4`](https://github.com/colinhacks/zod/commit/c9e4ed4095d77f5b43a5ba11d8f76b56ea48e5c6)
Fix string test

###
[`v3.20.1`](https://github.com/colinhacks/zod/releases/tag/v3.20.1)

[Compare
Source](https://github.com/colinhacks/zod/compare/v3.20.0...v3.20.1)

#### Commits:

-
[`1298d26`](https://github.com/colinhacks/zod/commit/1298d26115e09cf097cb272cfc3184484eb64fd1)
Update readme
-
[`b3b0ecf`](https://github.com/colinhacks/zod/commit/b3b0ecfcb8d2314cf3e6cbd78056c5410650c348)
Only call .catch() method when parsing fails
([#&#8203;1674](https://github.com/colinhacks/zod/issues/1674))
-
[`957b55b`](https://github.com/colinhacks/zod/commit/957b55b82d19707888a4914670c8cf8563911425)
Fixing ZodString::isDatetime.
([#&#8203;1678](https://github.com/colinhacks/zod/issues/1678))
-
[`29ec1f8`](https://github.com/colinhacks/zod/commit/29ec1f8d99836d8bb0661cac8641d4b4094aaf40)
Add default
-
[`1161b8f`](https://github.com/colinhacks/zod/commit/1161b8f77e8ef120f9a0fca6e1ca223538d8ffc4)
3.20.1

###
[`v3.20.0`](https://github.com/colinhacks/zod/releases/tag/v3.20.0):
-beta

[Compare
Source](https://github.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
[@&#8203;santosmarco-caribou](https://github.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 [@&#8203;samchungy](https://github.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
[@&#8203;igalklebanov](https://github.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
[@&#8203;SrBrahma](https://github.com/SrBrahma) in
[https://github.com/colinhacks/zod/pull/1315](https://github.com/colinhacks/zod/pull/1315)
- Added Intersections to TOC by
[@&#8203;tmkn](https://github.com/tmkn) in
[https://github.com/colinhacks/zod/pull/1450](https://github.com/colinhacks/zod/pull/1450)
- \[[#&#8203;1468](https://github.com/colinhacks/zod/issues/1468)] Fix
zod.dev main page cross origin links. by
[@&#8203;agrahamg](https://github.com/agrahamg) in
[https://github.com/colinhacks/zod/pull/1469](https://github.com/colinhacks/zod/pull/1469)
- Updates remix-domains library name and description in README by
[@&#8203;diogob](https://github.com/diogob) in
[https://github.com/colinhacks/zod/pull/1501](https://github.com/colinhacks/zod/pull/1501)
- Removed BRAND from ZodBrand Input definition by
[@&#8203;Xetera](https://github.com/Xetera) in
[https://github.com/colinhacks/zod/pull/1492](https://github.com/colinhacks/zod/pull/1492)
- Add Zodix to readme ecosystem section by
[@&#8203;rileytomasek](https://github.com/rileytomasek) in
[https://github.com/colinhacks/zod/pull/1506](https://github.com/colinhacks/zod/pull/1506)
- Fix small typos in README by
[@&#8203;Yhozen](https://github.com/Yhozen) in
[https://github.com/colinhacks/zod/pull/1521](https://github.com/colinhacks/zod/pull/1521)
- fix typo by [@&#8203;oasido](https://github.com/oasido) in
[https://github.com/colinhacks/zod/pull/1528](https://github.com/colinhacks/zod/pull/1528)
- add `fatal` to `ZodIssue`. by
[@&#8203;igalklebanov](https://github.com/igalklebanov) in
[https://github.com/colinhacks/zod/pull/1555](https://github.com/colinhacks/zod/pull/1555)
- Fix typo in ERROR_HANDLING.md by
[@&#8203;Tsuyoshi84](https://github.com/Tsuyoshi84) in
[https://github.com/colinhacks/zod/pull/1543](https://github.com/colinhacks/zod/pull/1543)
- add `.finite()` @&#8203; `ZodNumber`. by
[@&#8203;igalklebanov](https://github.com/igalklebanov) in
[https://github.com/colinhacks/zod/pull/1546](https://github.com/colinhacks/zod/pull/1546)
- Fix typing bug hiding errors of nullable composite fields by
[@&#8203;tadeokondrak](https://github.com/tadeokondrak) in
[https://github.com/colinhacks/zod/pull/1545](https://github.com/colinhacks/zod/pull/1545)
- [#&#8203;1227](https://github.com/colinhacks/zod/issues/1227)
Feature default on mismatch by
[@&#8203;seancrowe](https://github.com/seancrowe) in
[https://github.com/colinhacks/zod/pull/1537](https://github.com/colinhacks/zod/pull/1537)
- fix [#&#8203;1046](https://github.com/colinhacks/zod/issues/1046)
`.required()` doesn't remove optional flag from the result of
`.nullish()`. by
[@&#8203;igalklebanov](https://github.com/igalklebanov) in
[https://github.com/colinhacks/zod/pull/1542](https://github.com/colinhacks/zod/pull/1542)
- add `datetime()` string formats by
[@&#8203;samchungy](https://github.com/samchungy) in
[https://github.com/colinhacks/zod/pull/1494](https://github.com/colinhacks/zod/pull/1494)
- Bump minimatch from 3.0.4 to 3.1.2 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/colinhacks/zod/pull/1558](https://github.com/colinhacks/zod/pull/1558)
- Bump minimist from 1.2.5 to 1.2.7 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/colinhacks/zod/pull/1507](https://github.com/colinhacks/zod/pull/1507)
- [#&#8203;1171](https://github.com/colinhacks/zod/issues/1171)
support for refine, superRefine, transform and lazy in
discriminatedUnion by [@&#8203;roblabat](https://github.com/roblabat)
in
[https://github.com/colinhacks/zod/pull/1290](https://github.com/colinhacks/zod/pull/1290)
- branded type as normal argument by
[@&#8203;KATT](https://github.com/KATT) in
[https://github.com/colinhacks/zod/pull/1502](https://github.com/colinhacks/zod/pull/1502)
- Take `path` parameter into account within `.parseAsync()` by
[@&#8203;RobinTail](https://github.com/RobinTail) in
[https://github.com/colinhacks/zod/pull/1513](https://github.com/colinhacks/zod/pull/1513)
- Update README.md by
[@&#8203;rosnerdev](https://github.com/rosnerdev) in
[https://github.com/colinhacks/zod/pull/1463](https://github.com/colinhacks/zod/pull/1463)
- Add `ZodSymbol` by
[@&#8203;santosmarco-caribou](https://github.com/santosmarco-caribou)
in
[https://github.com/colinhacks/zod/pull/1448](https://github.com/colinhacks/zod/pull/1448)
- Fix Minor Typos by
[@&#8203;WebDevSimplified](https://github.com/WebDevSimplified) in
[https://github.com/colinhacks/zod/pull/1624](https://github.com/colinhacks/zod/pull/1624)

#### New Contributors

- [@&#8203;SrBrahma](https://github.com/SrBrahma) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1315](https://github.com/colinhacks/zod/pull/1315)
- [@&#8203;tmkn](https://github.com/tmkn) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1450](https://github.com/colinhacks/zod/pull/1450)
- [@&#8203;agrahamg](https://github.com/agrahamg) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1469](https://github.com/colinhacks/zod/pull/1469)
- [@&#8203;diogob](https://github.com/diogob) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1501](https://github.com/colinhacks/zod/pull/1501)
- [@&#8203;Xetera](https://github.com/Xetera) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1492](https://github.com/colinhacks/zod/pull/1492)
- [@&#8203;rileytomasek](https://github.com/rileytomasek) made their
first contribution in
[https://github.com/colinhacks/zod/pull/1506](https://github.com/colinhacks/zod/pull/1506)
- [@&#8203;Yhozen](https://github.com/Yhozen) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1521](https://github.com/colinhacks/zod/pull/1521)
- [@&#8203;oasido](https://github.com/oasido) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1528](https://github.com/colinhacks/zod/pull/1528)
- [@&#8203;igalklebanov](https://github.com/igalklebanov) made their
first contribution in
[https://github.com/colinhacks/zod/pull/1555](https://github.com/colinhacks/zod/pull/1555)
- [@&#8203;Tsuyoshi84](https://github.com/Tsuyoshi84) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1543](https://github.com/colinhacks/zod/pull/1543)
- [@&#8203;tadeokondrak](https://github.com/tadeokondrak) made their
first contribution in
[https://github.com/colinhacks/zod/pull/1545](https://github.com/colinhacks/zod/pull/1545)
- [@&#8203;seancrowe](https://github.com/seancrowe) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1537](https://github.com/colinhacks/zod/pull/1537)
- [@&#8203;samchungy](https://github.com/samchungy) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1494](https://github.com/colinhacks/zod/pull/1494)
- [@&#8203;roblabat](https://github.com/roblabat) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1290](https://github.com/colinhacks/zod/pull/1290)
- [@&#8203;KATT](https://github.com/KATT) made their first
contribution in
[https://github.com/colinhacks/zod/pull/1502](https://github.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==-->
  • Loading branch information
xhyrom authored Mar 9, 2024
2 parents ed286a3 + 49ea986 commit 7846574
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 7846574

Please sign in to comment.