Skip to content

Commit 9b1c42b

Browse files
fix(deps): update dependency zod to v4 (#50)
> ℹ️ **Note** > > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [zod](https://zod.dev) ([source](https://redirect.github.com/colinhacks/zod)) | [`^3.24.0` → `^4.0.0`](https://renovatebot.com/diffs/npm/zod/3.25.76/4.3.6) | ![age](https://developer.mend.io/api/mc/badges/age/npm/zod/4.3.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zod/3.25.76/4.3.6?slim=true) | --- ### Release Notes <details> <summary>colinhacks/zod (zod)</summary> ### [`v4.3.6`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.3.6) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.3.5...v4.3.6) ##### Commits: - [`9977fb0`](https://redirect.github.com/colinhacks/zod/commit/9977fb0868432461de265a773319e80a90ba3e37) Add brand.dev to sponsors - [`f4b7bae`](https://redirect.github.com/colinhacks/zod/commit/f4b7bae3468f6188b8f004e007d722148fc91d77) Update pullfrog.yml ([#&#8203;5634](https://redirect.github.com/colinhacks/zod/issues/5634)) - [`251d716`](https://redirect.github.com/colinhacks/zod/commit/251d7163a0ac7740fee741428d913e3c55702ace) Clean up workflow\_call - [`edd4132`](https://redirect.github.com/colinhacks/zod/commit/edd4132466da0f5065a8e051b599d01fdd1081d8) fix: add missing User-agent to robots.txt and allow all ([#&#8203;5646](https://redirect.github.com/colinhacks/zod/issues/5646)) - [`85db85e`](https://redirect.github.com/colinhacks/zod/commit/85db85e9091d0706910d60c7eb2e9c181edd87bd) fix: typo in codec.test.ts file ([#&#8203;5628](https://redirect.github.com/colinhacks/zod/issues/5628)) - [`cbf77bb`](https://redirect.github.com/colinhacks/zod/commit/cbf77bb12bdfda2e054818e79001f5cb3798ce76) Avoid non null assertion ([#&#8203;5638](https://redirect.github.com/colinhacks/zod/issues/5638)) - [`dfbbf1c`](https://redirect.github.com/colinhacks/zod/commit/dfbbf1c1ae0c224b8131d80ddf0a264262144086) Avoid re-exported star modules ([#&#8203;5656](https://redirect.github.com/colinhacks/zod/issues/5656)) - [`762e911`](https://redirect.github.com/colinhacks/zod/commit/762e911e5773f949452fd6dd4e360f2362110e8e) Generalize numeric key handling - [`ca3c862`](https://redirect.github.com/colinhacks/zod/commit/ca3c8629c0c2715571f70b44c2433cad3db7fe4e) v4.3.6 ### [`v4.3.5`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.3.5) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.3.4...v4.3.5) #### Commits: - [`21afffd`](https://redirect.github.com/colinhacks/zod/commit/21afffdb42ccab554036312e33fed0ea3cb8f982) \[Docs] Update migration guide docs for deprecation of message ([#&#8203;5595](https://redirect.github.com/colinhacks/zod/issues/5595)) - [`e36743e`](https://redirect.github.com/colinhacks/zod/commit/e36743e513aadb307b29949a80d6eb0dcc8fc278) Improve mini treeshaking - [`0cdc0b8`](https://redirect.github.com/colinhacks/zod/commit/0cdc0b8597999fd9ca99767b912c1e82c1ff2d6c) 4.3.5 ### [`v4.3.4`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.3.4) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.3.3...v4.3.4) #### Commits: - [`1a8bea3`](https://redirect.github.com/colinhacks/zod/commit/1a8bea3b474eada6f219c163d0d3ad09fadabe72) Add integration tests - [`e01cd02`](https://redirect.github.com/colinhacks/zod/commit/e01cd02b2f23d7e9078d3813830b146f8a2258b4) Support patternProperties for looserecord ([#&#8203;5592](https://redirect.github.com/colinhacks/zod/issues/5592)) - [`089e5fb`](https://redirect.github.com/colinhacks/zod/commit/089e5fbb0f58ce96d2c4fb34cd91724c78df4af5) Improve looseRecord docs - [`decef9c`](https://redirect.github.com/colinhacks/zod/commit/decef9c418d9a598c3f1bada06891ba5d922c5cd) Fix lint - [`9443aab`](https://redirect.github.com/colinhacks/zod/commit/9443aab00d44d5d5f4a7eada65fc0fc851781042) Drop iso time in fromJSONSchema - [`66bda74`](https://redirect.github.com/colinhacks/zod/commit/66bda7491a1b9eab83bdeec0c12f4efc7290bd48) Remove .refine() from ZodMiniType - [`b4ab94c`](https://redirect.github.com/colinhacks/zod/commit/b4ab94ca608cd5b581bfc12b20dd8d95b35b3009) 4.3.4 ### [`v4.3.3`](https://redirect.github.com/colinhacks/zod/compare/v4.3.2...f3b2151959d215d405f54dff3c7ab3bf1fd887ca) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.3.2...v4.3.3) ### [`v4.3.2`](https://redirect.github.com/colinhacks/zod/compare/v4.3.1...0f41e5a12a43e6913c9dcb501b2b5136ea86500d) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.3.1...v4.3.2) ### [`v4.3.1`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.3.1) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.3.0...v4.3.1) #### Commits: - [`0fe8840`](https://redirect.github.com/colinhacks/zod/commit/0fe88407a4149c907929b757dc6618d8afe998fc) allow non-overwriting extends with refinements. 4.3.1 ### [`v4.3.0`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.3.0) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.2.1...v4.3.0) This is Zod's biggest release since 4.0. It addresses several of Zod's longest-standing feature requests. #### `z.fromJSONSchema()` Convert JSON Schema to Zod ([#&#8203;5534](https://redirect.github.com/colinhacks/zod/pull/5534), [#&#8203;5586](https://redirect.github.com/colinhacks/zod/pull/5586)) You can now convert JSON Schema definitions directly into Zod schemas. This function supports JSON Schema `"draft-2020-12"`, `"draft-7"`, `"draft-4"`, and OpenAPI 3.0. ```typescript import * as z from "zod"; const schema = z.fromJSONSchema({ type: "object", properties: { name: { type: "string", minLength: 1 }, age: { type: "integer", minimum: 0 }, }, required: ["name"], }); schema.parse({ name: "Alice", age: 30 }); // ✅ ``` The API should be considered experimental. There are no guarantees of 1:1 "round-trip soundness": `MySchema` > `z.toJSONSchema()` > `z.fromJSONSchema()`. There are several features of Zod that don't exist in JSON Schema and vice versa, which makes this virtually impossible. Features supported: - All primitive types (`string`, `number`, `integer`, `boolean`, `null`, `object`, `array`) - String formats (`email`, `uri`, `uuid`, `date-time`, `date`, `time`, `ipv4`, `ipv6`, and more) - Composition (`anyOf`, `oneOf`, `allOf`) - Object constraints (`additionalProperties`, `patternProperties`, `propertyNames`) - Array constraints (`prefixItems`, `items`, `minItems`, `maxItems`) - `$ref` for local references and circular schemas - Custom metadata is preserved #### `z.xor()` — exclusive union ([#&#8203;5534](https://redirect.github.com/colinhacks/zod/pull/5534)) A new exclusive union type that requires **exactly one** option to match. Unlike `z.union()` which passes if *any* option matches, `z.xor()` fails if zero or more than one option matches. ```typescript const schema = z.xor([z.string(), z.number()]); schema.parse("hello"); // ✅ schema.parse(42); // ✅ schema.parse(true); // ❌ zero matches ``` When converted to JSON Schema, `z.xor()` produces `oneOf` instead of `anyOf`. #### `z.looseRecord()` — partial record validation ([#&#8203;5534](https://redirect.github.com/colinhacks/zod/pull/5534)) A new record variant that only validates keys matching the key schema, passing through non-matching keys unchanged. This is used to represent `patternProperties` in JSON Schema. ```typescript const schema = z.looseRecord(z.string().regex(/^S_/), z.string()); schema.parse({ S_name: "John", other: 123 }); // ✅ { S_name: "John", other: 123 } // only S_name is validated, "other" passes through ``` #### `.exactOptional()` — strict optional properties ([#&#8203;5589](https://redirect.github.com/colinhacks/zod/pull/5589)) A new wrapper that makes a property *key-optional* (can be omitted) but does **not** accept `undefined` as an explicit value. ```typescript const schema = z.object({ a: z.string().optional(), // accepts `undefined` b: z.string().exactOptional(), // does not accept `undefined` }); schema.parse({}); // ✅ schema.parse({ a: undefined }); // ✅ schema.parse({ b: undefined }); // ❌ ``` This makes it possible to accurately represent the full spectrum of optionality expressible using [`exactOptionalPropertyTypes`](https://www.typescriptlang.org/tsconfig/exactOptionalPropertyTypes.html). #### `.apply()` A utility method for applying arbitrary transformations to a schema, enabling cleaner schema composition. ([#&#8203;5463](https://redirect.github.com/colinhacks/zod/pull/5463)) ```typescript const setCommonChecks = <T extends z.ZodNumber>(schema: T) => { return schema.min(0).max(100); }; const schema = z.number().apply(setCommonChecks).nullable(); ``` #### `.brand()` cardinality The `.brand()` method now accepts a second argument to control whether the brand applies to input, output, or both. Closes [#&#8203;4764](https://redirect.github.com/colinhacks/zod/issues/4764), [#&#8203;4836](https://redirect.github.com/colinhacks/zod/issues/4836). ```typescript // output only (default) z.string().brand<"UserId">(); // output is branded (default) z.string().brand<"UserId", "out">(); // output is branded z.string().brand<"UserId", "in">(); // input is branded z.string().brand<"UserId", "inout">(); // both are branded ``` #### Type predicates on `.refine()` ([#&#8203;5575](https://redirect.github.com/colinhacks/zod/pull/5575)) The `.refine()` method now supports type predicates to narrow the output type: ```typescript const schema = z.string().refine((s): s is "a" => s === "a"); type Input = z.input<typeof schema>; // string type Output = z.output<typeof schema>; // "a" ``` #### `ZodMap` methods: `min`, `max`, `nonempty`, `size` ([#&#8203;5316](https://redirect.github.com/colinhacks/zod/pull/5316)) `ZodMap` now has parity with `ZodSet` and `ZodArray`: ```typescript const schema = z.map(z.string(), z.number()) .min(1) .max(10) .nonempty(); schema.size; // access the size constraint ``` #### `.with()` alias for `.check()` ([359c0db](https://redirect.github.com/colinhacks/zod/commit/359c0db6)) A new `.with()` method has been added as a more readable alias for `.check()`. Over time, more APIs have been added that don't qualify as "checks". The new method provides a readable alternative that doesn't muddy semantics. ```typescript z.string().with( z.minLength(5), z.toLowerCase() ); // equivalent to: z.string().check( z.minLength(5), z.trim(), z.toLowerCase() ); ``` ##### `z.slugify()` transform Transform strings into URL-friendly slugs. Works great with `.with()`: ```typescript // Zod z.string().slugify().parse("Hello World"); // "hello-world" // Zod Mini // using .with() for explicit check composition z.string().with(z.slugify()).parse("Hello World"); // "hello-world" ``` #### `z.meta()` and `z.describe()` in Zod Mini ([947b4eb](https://redirect.github.com/colinhacks/zod/commit/947b4eb2)) Zod Mini now exports `z.meta()` and `z.describe()` as top-level functions for adding metadata to schemas: ```typescript import * as z from "zod/mini"; // add description const schema = z.string().with( z.describe("A user's name"), ); // add arbitrary metadata const schema2 = z.number().with( z.meta({ deprecated: true }) ); ``` #### New locales - Armenian (`am`) ([#&#8203;5531](https://redirect.github.com/colinhacks/zod/pull/5531)) - Uzbek (`uz`) ([#&#8203;5519](https://redirect.github.com/colinhacks/zod/pull/5519)) ```ts import * as z from "zod"; import { uz } from "zod/locales"; z.config(uz()); ``` <br/><br/> *** <br/><br/> #### Bug fixes All of these changes fix soundness issues in Zod. As with any bug fix there's some chance of breakage if you were intentionally or unintentionally relying on this unsound behavior. ##### ⚠️ `.pick()` and `.omit()` disallowed on object schemas containing refinements ([#&#8203;5317](https://redirect.github.com/colinhacks/zod/pull/5317)) Using `.pick()` or `.omit()` on object schemas with refinements now throws an error. Previously, this would silently drop the refinements, leading to unexpected behavior. ```typescript const schema = z.object({ password: z.string(), confirmPassword: z.string(), }).refine(data => data.password === data.confirmPassword); schema.pick({ password: true }); // 4.2: refinement silently dropped ⚠️ // 4.3: throws error ❌ ``` **Migration**: The easiest way to migrate is to create a new schema using the `shape` of the old one. ```ts const newSchema = z.object(schema.shape).pick({ ... }) ``` ##### ⚠️ `.extend()` disallowed on refined schemas ([#&#8203;5317](https://redirect.github.com/colinhacks/zod/pull/5317)) Similarly, `.extend()` now throws on schemas with refinements. Use `.safeExtend()` if you need to extend refined schemas. ```typescript const schema = z.object({ a: z.string() }).refine(/* ... */); // 4.2: refinement silently dropped ⚠️ // 4.3: throws error ✅ schema.extend({ b: z.number() }); // error: object schemas containing refinements cannot be extended. use `.safeExtend()` instead. ``` ##### ⚠️ Stricter object masking methods ([#&#8203;5581](https://redirect.github.com/colinhacks/zod/pull/5581)) Object masking methods (`.pick()`, `.omit()`) now validate that the keys provided actually exist in the schema: ```typescript const schema = z.object({ a: z.string() }); // 4.3: throws error for unrecognized keys schema.pick({ nonexistent: true }); // error: unrecognized key: "nonexistent" ``` #### Additional changes - Fixed JSON Schema generation for `z.iso.time` with minute precision ([#&#8203;5557](https://redirect.github.com/colinhacks/zod/pull/5557)) - Fixed error details for tuples with extraneous elements ([#&#8203;5555](https://redirect.github.com/colinhacks/zod/pull/5555)) - Fixed `includes` method params typing to accept `string | $ZodCheckIncludesParams` ([#&#8203;5556](https://redirect.github.com/colinhacks/zod/pull/5556)) - Fixed numeric formats error messages to be inclusive ([#&#8203;5485](https://redirect.github.com/colinhacks/zod/pull/5485)) - Fixed `implementAsync` inferred type to always be a promise ([#&#8203;5476](https://redirect.github.com/colinhacks/zod/pull/5476)) - Tightened E.164 regex to require a non-zero leading digit and 7–15 digits total ([#&#8203;5524](https://redirect.github.com/colinhacks/zod/pull/5524)) - Fixed Dutch (nl) error strings ([#&#8203;5529](https://redirect.github.com/colinhacks/zod/pull/5529)) - Convert `Date` instances to numbers in `minimum`/`maximum` checks ([#&#8203;5351](https://redirect.github.com/colinhacks/zod/pull/5351)) - Improved numeric keys handling in `z.record()` ([#&#8203;5585](https://redirect.github.com/colinhacks/zod/pull/5585)) - Lazy initialization of `~standard` schema property ([#&#8203;5363](https://redirect.github.com/colinhacks/zod/pull/5363)) - Functions marked as `@__NO_SIDE_EFFECTS__` for better tree-shaking ([#&#8203;5475](https://redirect.github.com/colinhacks/zod/pull/5475)) - Improved metadata tracking across child-parent relationships ([#&#8203;5578](https://redirect.github.com/colinhacks/zod/pull/5578)) - Improved locale translation approach ([#&#8203;5584](https://redirect.github.com/colinhacks/zod/pull/5584)) - Dropped id uniqueness enforcement at registry level ([#&#8203;5574](https://redirect.github.com/colinhacks/zod/pull/5574)) ### [`v4.2.1`](https://redirect.github.com/colinhacks/zod/compare/v4.2.0...5b5b129315fbc94a3b0d6244185eaeefcbe438d1) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.2.0...v4.2.1) ### [`v4.2.0`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.2.0) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.13...v4.2.0) #### Features ##### Implement Standard JSON Schema [standard-schema/standard-schema#134](https://redirect.github.com/standard-schema/standard-schema/pull/134) ##### Implement `z.fromJSONSchema()` ```typescript const jsonSchema = { type: "object", properties: { name: { type: "string" }, age: { type: "number" } }, required: ["name"] }; const schema = z.fromJSONSchema(jsonSchema); ``` ##### Implement `z.xor()` ```typescript const schema = z.xor( z.object({ type: "user", name: z.string() }), z.object({ type: "admin", role: z.string() }) ); // Exactly one of the schemas must match ``` ##### Implement `z.looseRecord()` ```typescript const schema = z.looseRecord(z.string(), z.number()); // Allows additional properties beyond those defined ``` #### Commits: - [`af49c08`](https://redirect.github.com/colinhacks/zod/commit/af49c084f66339110d00e37ff71dc7b3b9f2b7ef) Update docs for JSON Schema conversion of `z.undefined()` ([#&#8203;5504](https://redirect.github.com/colinhacks/zod/issues/5504)) - [`767f320`](https://redirect.github.com/colinhacks/zod/commit/767f320318986e422f524b939f1a7174544fda2e) Add `.toJSONSchema()` method ([#&#8203;5477](https://redirect.github.com/colinhacks/zod/issues/5477)) - [`e17dcb6`](https://redirect.github.com/colinhacks/zod/commit/e17dcb63573397063e87d7c7fe10a5a78968181a) Add `z.fromJSONSchema()`, `z.looseRecord()`, `z.xor()` ([#&#8203;5534](https://redirect.github.com/colinhacks/zod/issues/5534)) ### [`v4.1.13`](https://redirect.github.com/colinhacks/zod/compare/v4.1.12...4063e802d539d04182fc3e66a543ae6d1ba5658e) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.12...v4.1.13) ### [`v4.1.12`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.12) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.11...v4.1.12) #### Commits: - [`0b109c3`](https://redirect.github.com/colinhacks/zod/commit/0b109c37c6b0b10e3901b56bcccb72e29a0b846f) docs(ecosystem): add bupkis to the ecosystem section ([#&#8203;5237](https://redirect.github.com/colinhacks/zod/issues/5237)) - [`d22ec0d`](https://redirect.github.com/colinhacks/zod/commit/d22ec0d26fab27151b0f1d1f98bffeaf8b011f57) docs(ecosystem): add upfetch ([#&#8203;5238](https://redirect.github.com/colinhacks/zod/issues/5238)) - [`c56a4f6`](https://redirect.github.com/colinhacks/zod/commit/c56a4f6fab42c542b191228af61974b2328dc52f) docs(ecosystem): add `eslint-plugin-zod-x` ([#&#8203;5261](https://redirect.github.com/colinhacks/zod/issues/5261)) - [`a0abcc0`](https://redirect.github.com/colinhacks/zod/commit/a0abcc02900a4293dd4f30cd81580efcdd5230bb) docs(metadata.mdx): fix a mistake in an example output ([#&#8203;5248](https://redirect.github.com/colinhacks/zod/issues/5248)) - [`62bf4e4`](https://redirect.github.com/colinhacks/zod/commit/62bf4e439e287e55c843245b49f8d34b1ad024ee) fix(ZodError): prevent flatten() from crashing on 'toString' key ([#&#8203;5266](https://redirect.github.com/colinhacks/zod/issues/5266)) - [`02a5840`](https://redirect.github.com/colinhacks/zod/commit/02a584010ac92ac8a351632ae5aea3983a6f17d8) refac(errors): Unify code structure and improve types ([#&#8203;5278](https://redirect.github.com/colinhacks/zod/issues/5278)) - [`4b1922a`](https://redirect.github.com/colinhacks/zod/commit/4b1922ad714e12dafaa83a40ec03275a39ac980c) docs(content/v4/index): fix zod version ([#&#8203;5289](https://redirect.github.com/colinhacks/zod/issues/5289)) - [`3fcb20f`](https://redirect.github.com/colinhacks/zod/commit/3fcb20ff348e49aec70f45e0dca3de8a61450e77) Add frrm to ecosystem ([#&#8203;5292](https://redirect.github.com/colinhacks/zod/issues/5292)) - [`fda4c7c`](https://redirect.github.com/colinhacks/zod/commit/fda4c7c2afbd7649261be1e7954f8c4d4de24a07) Make docs work without token - [`af44738`](https://redirect.github.com/colinhacks/zod/commit/af447384379faef28aa857fb53ef1da702c6d408) Fix lint - [`77c3c9f`](https://redirect.github.com/colinhacks/zod/commit/77c3c9f069a4cf168c0cbc58432803de887a6b1b) Export bg.ts - [`3b94610`](https://redirect.github.com/colinhacks/zod/commit/3b946107b6c94b2ac8ff9fb451160c34dc4dd794) v4.1.12 ### [`v4.1.11`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.11) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.10...v4.1.11) #### Commits: - [`2bed4b3`](https://redirect.github.com/colinhacks/zod/commit/2bed4b39760d8e4d678203b5c8fcaf24c182fc9f) 4.1.11 ### [`v4.1.10`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.10) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.9...v4.1.10) #### Commits: - [`7ffedd0`](https://redirect.github.com/colinhacks/zod/commit/7ffedd00169d8dc2e7cb7c6d878f29b03e05b3a3) Fix shape caching ([#&#8203;5263](https://redirect.github.com/colinhacks/zod/issues/5263)) - [`82cd717`](https://redirect.github.com/colinhacks/zod/commit/82cd717a0e7ee4e1737a783c7be278fa93fd8104) v4.1.10 ### [`v4.1.9`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.9) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.8...v4.1.9) #### Commits: - [`a78716d`](https://redirect.github.com/colinhacks/zod/commit/a78716d91da7649a61016b81c27f49fd9e79a81e) Update zshy ([#&#8203;5249](https://redirect.github.com/colinhacks/zod/issues/5249)) - [`923af80`](https://redirect.github.com/colinhacks/zod/commit/923af801fde9f033cfd7e0e753b421a554fe3be8) Publish zod\@&#8203;4.1.9 ### [`v4.1.8`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.8) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.7...v4.1.8) #### Commits: - [`36c4ee3`](https://redirect.github.com/colinhacks/zod/commit/36c4ee354d0c1f47b7311e49f6dd4b7a11de04f5) Switch back to weakmap - [`a1726d5`](https://redirect.github.com/colinhacks/zod/commit/a1726d53172ba52ecf90999df73778cf416264fd) 4.1.8 ### [`v4.1.7`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.7) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/976b43657d4aff6d47c73c1c86125623ea08752d...v4.1.7) #### Commits: - [`0cca351`](https://redirect.github.com/colinhacks/zod/commit/0cca351c8b152d7c4113ab7c2a44675efb060677) Fix variable name inconsistency in coercion documentation ([#&#8203;5188](https://redirect.github.com/colinhacks/zod/issues/5188)) - [`aa78c27`](https://redirect.github.com/colinhacks/zod/commit/aa78c270f1b43f4665339f4b61e7cb88037b8c84) Add copy/edit buttons - [`76452d4`](https://redirect.github.com/colinhacks/zod/commit/76452d4119d800a722b692755c1168627bc95f0f) Update button txt - [`937f73c`](https://redirect.github.com/colinhacks/zod/commit/937f73c90cac90bd3b99b12c792c289b50416510) Fix tsconfig issue in bench - [`976b436`](https://redirect.github.com/colinhacks/zod/commit/976b43657d4aff6d47c73c1c86125623ea08752d) v4.1.6 ([#&#8203;5222](https://redirect.github.com/colinhacks/zod/issues/5222)) - [`4309c61`](https://redirect.github.com/colinhacks/zod/commit/4309c61304daf40aab2124b5f513abe2b4df8637) Fix cidrv6 validation - cidrv6 should reject invalid strings with multiple slashes ([#&#8203;5196](https://redirect.github.com/colinhacks/zod/issues/5196)) - [`ef95a73`](https://redirect.github.com/colinhacks/zod/commit/ef95a73b6d33299743e5ff4f0645b98c1b0d6f72) feat(locales): Add Lithuanian (lt) locale ([#&#8203;5210](https://redirect.github.com/colinhacks/zod/issues/5210)) - [`3803f3f`](https://redirect.github.com/colinhacks/zod/commit/3803f3f37168212f2178e8b8deceb7bad78ed904) docs: update wrong contents in codeblocks in `api.mdx` ([#&#8203;5209](https://redirect.github.com/colinhacks/zod/issues/5209)) - [`8a47d5c`](https://redirect.github.com/colinhacks/zod/commit/8a47d5c6ba8e4fe2f934a8e55d0cba4d81d821de) docs: update coerce example in `api.mdx` ([#&#8203;5207](https://redirect.github.com/colinhacks/zod/issues/5207)) - [`e87db13`](https://redirect.github.com/colinhacks/zod/commit/e87db1322f11ff6907e1789da28933d258ab75fd) feat(locales): Add Georgian (ka) locale ([#&#8203;5203](https://redirect.github.com/colinhacks/zod/issues/5203)) - [`c54b123`](https://redirect.github.com/colinhacks/zod/commit/c54b123e399a6ab266504eb1389c724af31d5998) docs: adds `@traversable/zod` and `@traversable/zod-test` to v4 ecosystem ([#&#8203;5194](https://redirect.github.com/colinhacks/zod/issues/5194)) - [`c27a294`](https://redirect.github.com/colinhacks/zod/commit/c27a294f5b792f47b8e9dbb293a8ff8cfb287a3a) Fix two tiny grammatical errors in the docs. ([#&#8203;5193](https://redirect.github.com/colinhacks/zod/issues/5193)) - [`23a2d66`](https://redirect.github.com/colinhacks/zod/commit/23a2d6692398e3dd1ad1cdb0491b271a9f989380) docs: fix broken links in async refinements and transforms references ([#&#8203;5190](https://redirect.github.com/colinhacks/zod/issues/5190)) - [`845a230`](https://redirect.github.com/colinhacks/zod/commit/845a230bb06bff679b5f00e10153f4dbbd50d2b6) fix(locales): Add type name translations to Spanish locale ([#&#8203;5187](https://redirect.github.com/colinhacks/zod/issues/5187)) - [`27f13d6`](https://redirect.github.com/colinhacks/zod/commit/27f13d62b98cf5c501b828ba8837ff73cd6263d2) Improve regex precision and eliminate duplicates in regexes.ts ([#&#8203;5181](https://redirect.github.com/colinhacks/zod/issues/5181)) - [`a8a52b3`](https://redirect.github.com/colinhacks/zod/commit/a8a52b3ba370b761be76953fa3986aa43c4172a4) fix(v4): fix Khmer and Ukrainian locales ([#&#8203;5177](https://redirect.github.com/colinhacks/zod/issues/5177)) - [`887e37c`](https://redirect.github.com/colinhacks/zod/commit/887e37cd7568219c54f9c2f71bbfe0300ce48376) Update slugs - [`e1f1948`](https://redirect.github.com/colinhacks/zod/commit/e1f19482bbed3fbaa563a0d8e09f1a577cc58ac7) fix(v4): ensure array defaults are shallow-cloned ([#&#8203;5173](https://redirect.github.com/colinhacks/zod/issues/5173)) - [`9f65038`](https://redirect.github.com/colinhacks/zod/commit/9f650385644ae319f806a965b83f79ebd252e497) docs(ecosystem): add DRZL; fix Prisma Zod Generator placement ([#&#8203;5215](https://redirect.github.com/colinhacks/zod/issues/5215)) - [`aa6f0f0`](https://redirect.github.com/colinhacks/zod/commit/aa6f0f02c2a92a266ff1495a8d2541ae46012fcb) More fixes ([#&#8203;5223](https://redirect.github.com/colinhacks/zod/issues/5223)) - [`aab3356`](https://redirect.github.com/colinhacks/zod/commit/aab33566bdb44a651cc3e27fde729285e4312419) 4.1.7 ### [`v4.1.6`](https://redirect.github.com/colinhacks/zod/compare/v4.1.5...976b43657d4aff6d47c73c1c86125623ea08752d) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.5...976b43657d4aff6d47c73c1c86125623ea08752d) ### [`v4.1.5`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.5) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.4...v4.1.5) #### Commits: - [`530415f`](https://redirect.github.com/colinhacks/zod/commit/530415f927a8f7fa474c96b667efdad6e771ce4d) Update docs - [`b7b081d`](https://redirect.github.com/colinhacks/zod/commit/b7b081d5cfd6fc19aeb71f9dc1b07bb333c37f9d) Update z.function() type to support array input ([#&#8203;5170](https://redirect.github.com/colinhacks/zod/issues/5170)) - [`780cf57`](https://redirect.github.com/colinhacks/zod/commit/780cf57167cbf3902efab68f19fa21ca09cb9dd6) 4.1.5 ### [`v4.1.4`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.4) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.3...v4.1.4) #### Commits: - [`3291c61`](https://redirect.github.com/colinhacks/zod/commit/3291c61fe4bc893901027ea5d50dfc6274e49caa) fix(v4): toJSONSchema - wrong tuple with `null` output when targeting `openapi-3.0` ([#&#8203;5156](https://redirect.github.com/colinhacks/zod/issues/5156)) - [`23f41c7`](https://redirect.github.com/colinhacks/zod/commit/23f41c7e0af107026bb1732af6b4c368d82be8d2) test(v4): toJSONSchema - use `validateOpenAPI30Schema` in all relevant scenarios ([#&#8203;5163](https://redirect.github.com/colinhacks/zod/issues/5163)) - [`0a09fd2`](https://redirect.github.com/colinhacks/zod/commit/0a09fd21336202e50565a3e22baaab9a7047fcc9) Update installation instructions - [`4ea5fec`](https://redirect.github.com/colinhacks/zod/commit/4ea5fec6988eb7260bc63e0eb8b4a6a0b238c414) 4.1.4 ### [`v4.1.3`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.3) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.2...v4.1.3) #### Commits: - [`98ff675`](https://redirect.github.com/colinhacks/zod/commit/98ff675c313c15d3fa18b2bd01f844b1e817ee79) Drop stringToBoolean - [`a410616`](https://redirect.github.com/colinhacks/zod/commit/a410616b39eedf3b4654c0c791b0ab1868996bfb) Fix typo - [`0cf4589`](https://redirect.github.com/colinhacks/zod/commit/0cf45896edf8728b57c8e7f2b5a56536760afac1) fix(v4): toJSONSchema - add missing oneOf inside items in tuple conversion ([#&#8203;5146](https://redirect.github.com/colinhacks/zod/issues/5146)) - [`8bf0c16`](https://redirect.github.com/colinhacks/zod/commit/8bf0c1639f0d3700f01fa8aaee2d8fa5d0abbe10) fix(v4): toJSONSchema tuple path handling for draft-7 with metadata IDs ([#&#8203;5152](https://redirect.github.com/colinhacks/zod/issues/5152)) - [`5c5fa90`](https://redirect.github.com/colinhacks/zod/commit/5c5fa90e47df934acf6051a3ec30516baeef2eac) fix(v4): toJSONSchema - wrong record output when targeting `openapi-3.0` ([#&#8203;5141](https://redirect.github.com/colinhacks/zod/issues/5141)) - [`87b97cc`](https://redirect.github.com/colinhacks/zod/commit/87b97ccd556e6d8dc6b4f4455762cc7405b0abc9) docs(codecs): update example to use payloadSchema ([#&#8203;5150](https://redirect.github.com/colinhacks/zod/issues/5150)) - [`309f358`](https://redirect.github.com/colinhacks/zod/commit/309f3584fd9a3856c3e0c813196210ba4b11d2a9) fix(v4): toJSONSchema - output numbers with exclusive range correctly when targeting `openapi-3.0` ([#&#8203;5139](https://redirect.github.com/colinhacks/zod/issues/5139)) - [`1e71ca9`](https://redirect.github.com/colinhacks/zod/commit/1e71ca99b92b94aac8ca45694f28864ae1654135) docs: fix refine fn to encode works properly ([#&#8203;5148](https://redirect.github.com/colinhacks/zod/issues/5148)) - [`a85ec3c`](https://redirect.github.com/colinhacks/zod/commit/a85ec3c73c6a98a496f5dd3b6fb19ebe07e227f9) fix(docs): correct example to use `LooseDog` instead of `Dog` ([#&#8203;5136](https://redirect.github.com/colinhacks/zod/issues/5136)) - [`3e98274`](https://redirect.github.com/colinhacks/zod/commit/3e982743f3abba6a421abb899670f70e49284af4) 4.1.3 ### [`v4.1.2`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.2) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.1...v4.1.2) #### Commits: - [`e45e61b`](https://redirect.github.com/colinhacks/zod/commit/e45e61b675baf055f4a3ef2ddead21715a1e4fe3) Improve codec docs - [`25a4c37`](https://redirect.github.com/colinhacks/zod/commit/25a4c376834db90d3bb3e70d4154e3eb6d4feb7a) fix(v4): toJSONSchema - wrong record tuple output when targeting `openapi-3.0` ([#&#8203;5145](https://redirect.github.com/colinhacks/zod/issues/5145)) - [`0fa4f46`](https://redirect.github.com/colinhacks/zod/commit/0fa4f464e0e679d71b183e8811ef1e4f30aaa06a) Use method form in codecs.mdx - [`940383d`](https://redirect.github.com/colinhacks/zod/commit/940383d0523da41c4e2422b76455da39dddd6c4f) Update JSON codec and docs - [`3009fa8`](https://redirect.github.com/colinhacks/zod/commit/3009fa8aeb90e00bfc35c7124f3e6f8cad11d290) 4.1.2 ### [`v4.1.1`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.1) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.1.0...v4.1.1) #### Commits: - [`648eb43`](https://redirect.github.com/colinhacks/zod/commit/648eb43c23e31f7d69ef09baba46aef4e9493b13) Remove codecs from sidebare - [`7e39a99`](https://redirect.github.com/colinhacks/zod/commit/7e39a99a88a9b7f0c9c3d5fd40fbbab494365c9a) Improve codec docs - [`e5085be`](https://redirect.github.com/colinhacks/zod/commit/e5085beb2653f1d05a14c07c79b6f3707daf09f6) Add images - [`028b289`](https://redirect.github.com/colinhacks/zod/commit/028b289a48f5589dca58b0b813a5a9f9e363a40b) Add methods - [`10cc994`](https://redirect.github.com/colinhacks/zod/commit/10cc9941daeb28b6be5be7327e034c3388d8e60b) 4.1.1 ### [`v4.1.0`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.1.0) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.17...v4.1.0) The first minor version since the introduction of Zod 4 back in May. This version contains a number of features that barely missed the cut for the 4.0 release. With Zod 4 stable and widely adopted, there's more time to resume feature development. #### Codecs This is the flagship feature of this release. Codecs are a new API & schema type that encapsulates a *bi-directional transformation*. It's a huge missing piece in Zod that's finally filled, and it unlocks some totally new ways to use Zod. ```ts const stringToDate = z.codec( z.iso.datetime(), // input schema: ISO date string z.date(), // output schema: Date object { decode: (isoString) => new Date(isoString), encode: (date) => date.toISOString(), } ); ``` New top-level functions are added for processing inputs in the *forward* direction ("decoding") and *backward* direction ("encoding"). ```ts stringToDate.decode("2025-08-21T20:59:45.500Z") // => Date stringToDate.encode(new Date()) // => "2025-08-21T20:59:45.500Z" ``` > **Note** — For bundle size reasons, these new methods have not added to Zod Mini schemas. Instead, this functionality is available via equivalent top-level functions. > > ```ts > // equivalent at runtime > z.decode(stringToDate, "2024-01-15T10:30:00.000Z"); > z.encode(stringToDate, new Date()); > ``` ##### `.parse()` vs `.decode()` Both `.parse()` and `decode()` process data in the "forward" direction. They behave identically at runtime. ```ts stringToDate.parse("2025-08-21T20:59:45.500Z"); stringToDate.decode("2025-08-21T20:59:45.500Z"); ``` There is an important difference however. While `.parse()` accepts any input, `.decode()` expects a *strongly typed* input. That is, it expects an input of type `string`, whereas `.parse()` accepts `unknown`. ```ts stringToDate.parse(Symbol('not-a-string')); // => fails at runtime, but no TypeScript error stringToDate.decode(Symbol("not-a-string")); // ^ ❌ Argument of type 'symbol' is not assignable to parameter of type 'Date'. ts(2345) ``` > This is a highly requested feature unto itself: > > - [#&#8203;3860](https://redirect.github.com/colinhacks/zod/issues/3860) > - [#&#8203;1748](https://redirect.github.com/colinhacks/zod/issues/1748) > - [#&#8203;3978](https://redirect.github.com/colinhacks/zod/issues/3978) > - [#&#8203;1892](https://redirect.github.com/colinhacks/zod/issues/1892) ##### Encoding You can use any Zod schema with `.encode()`. The vast majority of Zod schemas are *non-transforming* (the input and output types are identical) so `.decode()` and `.encode()` behave identically. Only certain schema types change their behavior: - **Codecs** — runs from `B->A` and executes the `encode` transform during encoding - **Pipes** — these execute `B->A` instead of `A->B` - **Defaults and prefaults** — Only applied in the forward direction - **Catch** — Only applied in the forward direction > **Note** — To avoid increasing bundle size unnecessarily, these new methods are not available on Zod Mini schemas. For those schemas, equivalent top-level functions are provided. The usual *async* and *safe* variants exist as well: ```ts // decode methods stringToDate.decode("2024-01-15T10:30:00.000Z") await stringToDate.decodeAsync("2024-01-15T10:30:00.000Z") stringToDate.safeDecode("2024-01-15T10:30:00.000Z") await stringToDate.safeDecodeAsync("2024-01-15T10:30:00.000Z") // encode methods stringToDate.encode(new Date()) await stringToDate.encodeAsync(new Date()) stringToDate.safeEncode(new Date()) await stringToDate.safeEncodeAsync(new Date()) ``` ##### Example codecs Below are some "worked examples" for some commonly-needed codecs. These examples are all tested internally for correctness. Just copy/paste them into your project as needed. There is a more comprehensive set available at [zod.dev/codecs](https://zod.dev/codecs). ##### `stringToBigInt` Converts `bigint` into a serializable form. ``` const stringToBigInt = z.codec(z.string(), z.bigint(), { decode: (str) => BigInt(str), encode: (bigint) => bigint.toString(), }); stringToBigInt.decode("12345"); // => 12345n stringToBigInt.encode(12345n); // => "12345" ``` ##### `json` Parses/stringifies JSON data. ```ts const jsonCodec = z.codec(z.string(), z.json(), { decode: (jsonString, ctx) => { try { return JSON.parse(jsonString); } catch (err: any) { ctx.issues.push({ code: "invalid_format", format: "json_string", input: jsonString, message: err.message, }); return z.NEVER; } }, encode: (value) => JSON.stringify(value), }); ``` To further validate the data, `.pipe()` the result of this codec into another schema. ```ts const Params = z.object({ name: z.string(), age: z.number() }); const JsonToParams = jsonCodec.pipe(Params); JsonToParams.decode('{"name":"Alice","age":30}'); // => { name: "Alice", age: 30 } JsonToParams.encode({ name: "Bob", age: 25 }); // => '{"name":"Bob","age":25}' ``` ##### Further reading **For more examples and a technical breakdown of how encoding works, reads the[announcement blog post](https://colinhacks.com/essays/introducing-zod-codecs) and [new Codecs docs page](https://zod.dev/codecs)**. The docs page contains implementations for several other commonly-needed codecs: - [`stringToNumber`](https://zod.dev/codecs?id=stringtonumber) - [`stringToInt`](https://zod.dev/codecs?id=stringtoint) - [`stringToBigInt`](https://zod.dev/codecs?id=stringtobigint) - [`numberToBigInt`](https://zod.dev/codecs?id=numbertobigint) - [`isoDatetimeToDate`](https://zod.dev/codecs?id=isodatetimetodate) - [`epochSecondsToDate`](https://zod.dev/codecs?id=epochsecondstodate) - [`epochMillisToDate`](https://zod.dev/codecs?id=epochmillistodate) - [`jsonCodec`](https://zod.dev/codecs?id=jsoncodec) - [`utf8ToBytes`](https://zod.dev/codecs?id=utf8tobytes) - [`bytesToUtf8`](https://zod.dev/codecs?id=bytestoutf8) - [`base64ToBytes`](https://zod.dev/codecs?id=base64tobytes) - [`base64urlToBytes`](https://zod.dev/codecs?id=base64urltobytes) - [`hexToBytes`](https://zod.dev/codecs?id=hextobytes) - [`stringToURL`](https://zod.dev/codecs?id=stringtourl) - [`stringToHttpURL`](https://zod.dev/codecs?id=stringtohttpurl) - [`uriComponent`](https://zod.dev/codecs?id=uricomponent) - [`stringToBoolean`](https://zod.dev/codecs?id=stringtoboolean) #### `.safeExtend()` The existing way to add additional fields to an object is to use `.extend()`. ```ts const A = z.object({ a: z.string() }) const B = A.extend({ b: z.string() }) ``` Unfortunately this is a bit of a misnomer, as it allows you to overwrite existing fields. This means the result of `.extend()` may not literally `extend` the original type (in the TypeScript sense). ```ts const A = z.object({ a: z.string() }) // { a: string } const B = A.extend({ a: z.number() }) // { a: number } ``` To enforce true `extends` logic, Zod 4.1 introduces a new `.safeExtend()` method. This statically enforces that the newly added properties conform to the existing ones. ```ts z.object({ a: z.string() }).safeExtend({ a: z.number().min(5) }); // ✅ z.object({ a: z.string() }).safeExtend({ a: z.any() }); // ✅ z.object({ a: z.string() }).safeExtend({ a: z.number() }); // ^ ❌ ZodNumber is not assignable ``` Importantly, this new API allows you to safely extend objects containing refinements. ```ts const AB = z.object({ a: z.string(), b: z.string() }).refine(val => val.a === val.b); const ABC = AB.safeExtend({ c: z.string() }); // ABC includes the refinements defined on AB ``` Previously (in Zod 4.x) any refinements attached to the base schema were dropped in the extended result. This was too unexpected. It now throws an error. (Zod 3 did not support extension of refined objects either.) #### `z.hash()` A new top-level string format for validating hashes produced using various common algorithms & encodings. ```ts const md5Schema = z.hash("md5"); // => ZodCustomStringFormat<"md5_hex"> const sha256Base64 = z.hash("sha256", { enc: "base64" }); // => ZodCustomStringFormat<"sha256_base64"> ``` The following hash algorithms and encodings are supported. Each cell provides information about the expected number of characters/padding. | Algorithm / Encoding | `"hex"` | `"base64"` | `"base64url"` | | -------------------- | ------- | --------------- | ------------- | | `"md5"` | 32 | 24 (22 + "==") | 22 | | `"sha1"` | 40 | 28 (27 + "=") | 27 | | `"sha256"` | 64 | 44 (43 + "=") | 43 | | `"sha384"` | 96 | 64 (no padding) | 64 | | `"sha512"` | 128 | 88 (86 + "==") | 86 | #### `z.hex()` To validate hexadecimal strings of any length. ```ts const hexSchema = z.hex(); hexSchema.parse("123abc"); // ✅ "123abc" hexSchema.parse("DEADBEEF"); // ✅ "DEADBEEF" hexSchema.parse("xyz"); // ❌ ZodError ``` #### Additional changes 1. **z.uuid()** now supports the "Max UUID" (`FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF`) per the [RFC](https://www.rfc-editor.org/rfc/rfc9562.html) 2. `$ZodFunction` is now a subtype of `$ZodType` *** #### Commits - [`edd4fea`](https://redirect.github.com/colinhacks/zod/commit/edd4feaa) - Closes [#&#8203;5127](https://redirect.github.com/colinhacks/zod/issues/5127) - [`5d4a315`](https://redirect.github.com/colinhacks/zod/commit/5d4a3159) - Closes [#&#8203;5116](https://redirect.github.com/colinhacks/zod/issues/5116) - [`f3f0955`](https://redirect.github.com/colinhacks/zod/commit/f3f09556) - Closes [#&#8203;5108](https://redirect.github.com/colinhacks/zod/issues/5108) - [`0114d5b`](https://redirect.github.com/colinhacks/zod/commit/0114d5bd) - [#&#8203;5122](https://redirect.github.com/colinhacks/zod/issues/5122) - [`3b077c3`](https://redirect.github.com/colinhacks/zod/commit/3b077c3a) - [#&#8203;5121](https://redirect.github.com/colinhacks/zod/issues/5121) - [`1e06af8`](https://redirect.github.com/colinhacks/zod/commit/1e06af8e) - [#&#8203;5113](https://redirect.github.com/colinhacks/zod/issues/5113) - [`b01b6f3`](https://redirect.github.com/colinhacks/zod/commit/b01b6f39) — [#&#8203;5052](https://redirect.github.com/colinhacks/zod/issues/5052) - [`571ab0c`](https://redirect.github.com/colinhacks/zod/commit/571ab0c3) — [#&#8203;5051](https://redirect.github.com/colinhacks/zod/issues/5051) - [`d3ea111`](https://redirect.github.com/colinhacks/zod/commit/d3ea1119) — [#&#8203;5049](https://redirect.github.com/colinhacks/zod/issues/5049) - [`b8e3f87`](https://redirect.github.com/colinhacks/zod/commit/b8e3f877) — [#&#8203;4865](https://redirect.github.com/colinhacks/zod/issues/4865) ### [`v4.0.17`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.17) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.16...v4.0.17) #### Commits: - [`1cebf33`](https://redirect.github.com/colinhacks/zod/commit/1cebf336c560c87e6f806b9d02106fb623049f21) Add blog ([#&#8203;5074](https://redirect.github.com/colinhacks/zod/issues/5074)) - [`fc1e556`](https://redirect.github.com/colinhacks/zod/commit/fc1e556318159b4740ba3d6b37660e783d2a3cb7) Fixes [#&#8203;5073](https://redirect.github.com/colinhacks/zod/issues/5073) - [`cc63f95`](https://redirect.github.com/colinhacks/zod/commit/cc63f950158db212c5e9b75e7d22faca851ea624) v4.0.17 ### [`v4.0.16`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.16) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.15...v4.0.16) #### Commits: - [`d589186`](https://redirect.github.com/colinhacks/zod/commit/d589186c20c3dc112f5a5fda23cccd4d1f74420e) fix: ensure keyof returns enum ([#&#8203;5045](https://redirect.github.com/colinhacks/zod/issues/5045)) - [`4975f3a`](https://redirect.github.com/colinhacks/zod/commit/4975f3a0e9c9f0b241499d936a02f1998c66dc01) feat: add discriminator generic ([#&#8203;5044](https://redirect.github.com/colinhacks/zod/issues/5044)) - [`0a463e3`](https://redirect.github.com/colinhacks/zod/commit/0a463e38e7f77b8036628ff911de515f9f9f6662) Update speakeasy files - [`12658af`](https://redirect.github.com/colinhacks/zod/commit/12658aff60349a87972a782b64802ec901c5ebf2) Fix Edit page buttons - [`47e6604`](https://redirect.github.com/colinhacks/zod/commit/47e6604a3555811115d05bf41e50de54192e2e14) fix: `edit this page` button, now redirects to correct url using the new path ([#&#8203;5056](https://redirect.github.com/colinhacks/zod/issues/5056)) - [`7207a2d`](https://redirect.github.com/colinhacks/zod/commit/7207a2df38caaae910551b7ecf04941b00fc10c8) Update Hey API link to Zod v3 plugin ([#&#8203;5060](https://redirect.github.com/colinhacks/zod/issues/5060)) - [`6887ff3`](https://redirect.github.com/colinhacks/zod/commit/6887ff34fb9bf5f6769152cf62ba9b69fa378aac) Update Hey API link to Zod plugin ([#&#8203;5059](https://redirect.github.com/colinhacks/zod/issues/5059)) - [`ffff1aa`](https://redirect.github.com/colinhacks/zod/commit/ffff1aac6a9a88fe6e7ad2659dbc7743275ea052) Clone POJO objects during defaulting/prefaulting - [`a227cb3`](https://redirect.github.com/colinhacks/zod/commit/a227cb3bd22aba48412a0129650b86277adc3545) v4.0.16 ### [`v4.0.15`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.15) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.14...v4.0.15) #### Commits: - [`7e7e346`](https://redirect.github.com/colinhacks/zod/commit/7e7e3461aceecf3633e158df50d6bc852e7cdf45) Clean up docs - [`f2949a8`](https://redirect.github.com/colinhacks/zod/commit/f2949a81a06fe197c53e47c1fab024cebbd7f1f1) \[docs] Fix migration guide upgrade command ([#&#8203;5021](https://redirect.github.com/colinhacks/zod/issues/5021)) - [`d43cf19`](https://redirect.github.com/colinhacks/zod/commit/d43cf19d5cafd505f2f8e76f13e18564470f0696) Fix recursive object initialization errors with check() and other methods ([#&#8203;5018](https://redirect.github.com/colinhacks/zod/issues/5018)) - [`3de2b63`](https://redirect.github.com/colinhacks/zod/commit/3de2b6389a57a093f11ecf1820f31e5b4452c7e9) fix: remove redundant Required<> from input and output type definitions ([#&#8203;5033](https://redirect.github.com/colinhacks/zod/issues/5033)) - [`93553bd`](https://redirect.github.com/colinhacks/zod/commit/93553bd48aeac27fdeb7dcbee5b7e37628572aff) Add needs info - [`03cfa8d`](https://redirect.github.com/colinhacks/zod/commit/03cfa8d9367c56d8c29870a83af10edc91eba34a) 4.0.15 ### [`v4.0.14`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.14) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.13...v4.0.14) #### Commits: - [`99391a8`](https://redirect.github.com/colinhacks/zod/commit/99391a844271558e0f1736c9550375e82e630bbd) Docs: Fix typo ([#&#8203;5005](https://redirect.github.com/colinhacks/zod/issues/5005)) - [`e25303e`](https://redirect.github.com/colinhacks/zod/commit/e25303e98c8d13ea96c3296507c564011f403ffe) Docs: fix typo ([#&#8203;5008](https://redirect.github.com/colinhacks/zod/issues/5008)) - [`dbb05ef`](https://redirect.github.com/colinhacks/zod/commit/dbb05ef990c86ec6b1f6eac11b91ec7572e29c89) Add JSON Schema draft-04 output ([#&#8203;4811](https://redirect.github.com/colinhacks/zod/issues/4811)) - [`b8257d7`](https://redirect.github.com/colinhacks/zod/commit/b8257d7d1f51dd3cb4033a58271bb6ac8e3678c7) Improve tuple recursive inference. - [`9bdbc2f`](https://redirect.github.com/colinhacks/zod/commit/9bdbc2f10d466050421a8e28c4b95a8a5776d150) Avoid infinite loops in defineLazy. Fixes [#&#8203;4994](https://redirect.github.com/colinhacks/zod/issues/4994). - [`af96ad4`](https://redirect.github.com/colinhacks/zod/commit/af96ad4700879b0d6e390a0c65ded4e700049cb9) 4.0.14 ### [`v4.0.13`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.13) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.12...v4.0.13) #### Commits: - [`362eb33`](https://redirect.github.com/colinhacks/zod/commit/362eb33093e9c5f306eeec95e36985a99aba8fc7) Fix optional + pipe handling. Closes [#&#8203;5002](https://redirect.github.com/colinhacks/zod/issues/5002). v4.0.13 ### [`v4.0.12`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.12) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.11...v4.0.12) #### Commits: - [`ff83fc9`](https://redirect.github.com/colinhacks/zod/commit/ff83fc916ec2b35c0008a48782fa14f84293149d) Add eslint-plugin-import-zod ([#&#8203;4848](https://redirect.github.com/colinhacks/zod/issues/4848)) - [`7c9ce38`](https://redirect.github.com/colinhacks/zod/commit/7c9ce388ae39b2324c5ad05420ecf4732ebca6fe) Update docs for z.property check ([#&#8203;4863](https://redirect.github.com/colinhacks/zod/issues/4863)) - [`c432577`](https://redirect.github.com/colinhacks/zod/commit/c432577ad1a7201631ae0a4d80e945fc4937bcc9) docs: add jwt schema docs ([#&#8203;4867](https://redirect.github.com/colinhacks/zod/issues/4867)) - [`35e6a6f`](https://redirect.github.com/colinhacks/zod/commit/35e6a6f6d64d7d5ba58c4cb8c80105759b977c9b) Add llms.txt ([#&#8203;4915](https://redirect.github.com/colinhacks/zod/issues/4915)) - [`3ac7bf0`](https://redirect.github.com/colinhacks/zod/commit/3ac7bf00d0d924d1afa1031b798bdd72b59117db) Clean up Edit this Page - [`60a9372`](https://redirect.github.com/colinhacks/zod/commit/60a9372414955094b84aae2f30b491a039780b7c) Implement `llms-full.txt` ([#&#8203;5004](https://redirect.github.com/colinhacks/zod/issues/5004)) - [`73a1970`](https://redirect.github.com/colinhacks/zod/commit/73a1970e7fd0cdcb2ffac3f6f7db85da849ee3d8) 4.0.12 ### [`v4.0.11`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.11) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.10...v4.0.11) #### Commits: - [`8e6a5f8`](https://redirect.github.com/colinhacks/zod/commit/8e6a5f8e48837fb403deb4025935e97a758ad6ca) Fix “Edit on Github” link ([#&#8203;4997](https://redirect.github.com/colinhacks/zod/issues/4997)) - [`930a2f6`](https://redirect.github.com/colinhacks/zod/commit/930a2f68d799889df4c1f662dfe61934db84fdd1) Fix number of errors in doc ([#&#8203;4993](https://redirect.github.com/colinhacks/zod/issues/4993)) - [`c762dbb`](https://redirect.github.com/colinhacks/zod/commit/c762dbb4fdb249cfddccdd69812da3f4b659df67) feat(locale): Add Yoruba (yo) locale ([#&#8203;4996](https://redirect.github.com/colinhacks/zod/issues/4996)) - [`9a34a3a`](https://redirect.github.com/colinhacks/zod/commit/9a34a3a60d92c44f695b08e4c665209aa7160e24) Zod 4.0.11 ([#&#8203;4981](https://redirect.github.com/colinhacks/zod/issues/4981)) ### [`v4.0.10`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.10) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.9...v4.0.10) #### Commits: - [`291c1ca`](https://redirect.github.com/colinhacks/zod/commit/291c1ca9864570e68a6c104d869de467f665da86) Add should-build script - [`e32d99b`](https://redirect.github.com/colinhacks/zod/commit/e32d99b54fff920c4b0b451e9099b472d20a3c4b) Move should-build script - [`d4faf71`](https://redirect.github.com/colinhacks/zod/commit/d4faf71b8cc156a49bae23fc09c4d54b88f22bd5) Add v3 docs ([#&#8203;4972](https://redirect.github.com/colinhacks/zod/issues/4972)) - [`dfae371`](https://redirect.github.com/colinhacks/zod/commit/dfae37195bed15dce84af0b17ef04cdc3704ef5e) Update Jazz img on v3 docs - [`d6cd30d`](https://redirect.github.com/colinhacks/zod/commit/d6cd30d3898aaf592c6077464c1a45fd0f6f66d3) fix [#&#8203;4973](https://redirect.github.com/colinhacks/zod/issues/4973) ([#&#8203;4974](https://redirect.github.com/colinhacks/zod/issues/4974)) - [`1850496`](https://redirect.github.com/colinhacks/zod/commit/18504960cdce29529e37415b87fed1732facf1ef) Fix typo in `valype` ([#&#8203;4960](https://redirect.github.com/colinhacks/zod/issues/4960)) - [`4ec2f87`](https://redirect.github.com/colinhacks/zod/commit/4ec2f8776193642d91814521d8a4c22bbb766cb1) Add Zod Playground to zod 4 ecosystem ([#&#8203;4975](https://redirect.github.com/colinhacks/zod/issues/4975)) - [`2b571a2`](https://redirect.github.com/colinhacks/zod/commit/2b571a21875e9e3299de261e512dad300878c3a1) Update docs z.enum with object literal example ([#&#8203;4967](https://redirect.github.com/colinhacks/zod/issues/4967)) - [`813451d`](https://redirect.github.com/colinhacks/zod/commit/813451db7fcf64c5322835984eded9bfe95be1da) v4.0.10 ([#&#8203;4978](https://redirect.github.com/colinhacks/zod/issues/4978)) ### [`v4.0.9`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.9) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.8...v4.0.9) #### Commits: - [`4e7a3ef`](https://redirect.github.com/colinhacks/zod/commit/4e7a3ef180f6a5525d9021638e9df20b3ca50456) v4.0.9 ([#&#8203;4970](https://redirect.github.com/colinhacks/zod/issues/4970)) ### [`v4.0.8`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.8) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.7...v4.0.8) #### Commits: - [`3048d14`](https://redirect.github.com/colinhacks/zod/commit/3048d14bc7b803507302b8ee3cd1eeeffbd27396) Fix [#&#8203;4961](https://redirect.github.com/colinhacks/zod/issues/4961) ### [`v4.0.7`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.7) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.6...v4.0.7) #### Commits: - [`7ab1b3c`](https://redirect.github.com/colinhacks/zod/commit/7ab1b3cd2e272a74c0f7c5cde70ee23c2ef288d6) Do not continue parsing in ZodPipe if issues exists. Closes [#&#8203;4926](https://redirect.github.com/colinhacks/zod/issues/4926). - [`34b400a`](https://redirect.github.com/colinhacks/zod/commit/34b400a5422bc30b48395cdd44007ff4e811fb71) 4.0.7 ### [`v4.0.6`](https://redirect.github.com/colinhacks/zod/releases/tag/v4.0.6) [Compare Source](https://redirect.github.com/colinhacks/zod/compare/v4.0.5...v4.0.6) #### Commits: - [`a3e4391`](https://redirect.github.com/colinhacks/zod/commit/a3e43911abb980f1830b68a440c231ae52eacec0) Unwiden catch input type ([#&#8203;4870](https://redirect.github.com/colinhacks/zod/issues/4870)) - [`499df78`](https://redirect.github.com/colinhacks/zod/commit/499df780b10dfcce29afba3e811757f7eade9570) Add RFC 9562 mentions. Closes [#&#8203;4872](https://redirect.github.com/colinhacks/zod/issues/4872) - [`d0493f3`](https://redirect.github.com/colinhacks/zod/commit/d0493f3dceb117972464f01cb0765262a5ffed70) Doc tweak - spread vs destructuring ([#&#8203;4919](https://redirect.github.com/colinhacks/zod/issues/4919)) - [`8dad394`](https://redirect.github.com/colinhacks/zod/commit/8dad394b805fd18cee8e44a37dab983916e0d92c) feat: Icelandic translation ([#&#8203;4920](https://redirect.github.com/colinhacks/zod/issues/4920)) - [`2ffdae1`](https://redirect.github.com/colinhacks/zod/commit/2ffdae1faafcc34639a7a846a55776c2a886a644) Bulgarian (bg) translation ([#&#8203;4928](https://redirect.github.com/colinhacks/zod/issues/4928)) - [`0973135`](https://redirect.github.com/colinhacks/zod/commit/09731358f69bb1238f6e00e0ca82e28c095b800f) docs: add valype to xToZodConverts ([#&#8203;4930](https://redirect.github.com/colinhacks/zod/issues/4930)) - [`d257340`](https://redirect.github.com/colinhacks/zod/commit/d2573409ab02e5d0c2a644315798999d619e4c89) Remove moduleResolution callout ([#&#8203;4932](https://redirect.github.com/colinhacks/zod/issues/4932)) - [`075970d`](https://redirect.github.com/colinhacks/zod/commit/075970d2aeb50c840840cc44559b31b16d7b6504) docs: add coercion note to fix compile errors ([#&#8203;4940](https://redirect.github.com/colinhacks/zod/issues/4940)) - [`b9e8a60`](https://redirect.github.com/colinhacks/zod/commit/b9e8a60ff44aa5fffc39617eec894117132fbbac) Add `@hey-api/openapi-ts` to Zod 3 ecosystem ([#&#8203;4949](https://redirect.github.com/colinhacks/zod/issues/4949)) - [`ad7b0ff`](https://redirect.github.com/colinhacks/zod/commit/ad7b0ffd91da4f0466c97b7b5e6b60f376ae4f33) Add `@hey-api/openapi-ts` to Zod 3 ecosystem ([#&#8203;4942](https://redirect.github.com/colinhacks/zod/issues/4942)) - [`4619109`](https://redirect.github.com/colinhacks/zod/commit/4619109e7927019837a3a13d4ab8bba5c72989de) feat(locales): add Danish translations ([#&#8203;4953](https://redirect.github.com/colinhacks/zod/issues/4953)) - [`cb84a57`](https://redirect.github.com/colinhacks/zod/commit/cb84a5711b83d25c7dcf218c4c01097cf036c1f5) Point to zod-v3-to-v4 codemod in Zod 4 migration guide ([#&#8203;4954](https://redirect.github.com/colinhacks/zod/issues/4954)) - [`28a5091`](https://redirect.github.com/colinhacks/zod/commit/28a5091092b22146a26f8a4e7c18e2943f53a86a) Update api.mdx ([#&#8203;4955](https://redirect.github.com/colinhacks/zod/issues/4955)) - [`7f3cf94`](https://redirect.github.com/colinhacks/zod/commit/7f3cf946ca9aa90031cb954d6f683cb09de4d894) Fix URL sup example ([#&#8203;4959](https://redirect.github.com/colinhacks/zod/issues/4959)) - [`17e7f3b`](https://redirect.github.com/colinhacks/zod/commit/17e7f3b4e1 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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 was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/promptfoo/crabcode). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41NS40IiwidXBkYXRlZEluVmVyIjoiNDMuNTUuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 parent 1123bd8 commit 9b1c42b

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

plugins/promptfoo/package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugins/promptfoo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"discover": "node --env-file=.env dist/cli.js"
1616
},
1717
"dependencies": {
18-
"zod": "^3.24.0",
18+
"zod": "^4.0.0",
1919
"yaml": "^2.7.0",
2020
"ws": "^8.18.0"
2121
},

0 commit comments

Comments
 (0)