Changelog#
v5.1.0 — Sep 3, 2026#
@kubb/adapter-oas#
Features#
-
Let
dateTypesetdate-time,date, andtimeindependently, instead of one value driving all threePass an object to represent timestamps as a JS
Datewhile keeping date-only and time-only fields as strings, sinceDatecannot round-trip those without inventing a timezone.adapterOas({ dateType: { dateTime: 'date', date: 'string', time: 'string', }, })The scalar form (
dateType: 'date') still applies one value to all three formats. (#3957,9fca8e9)
Bug Fixes#
- Explicit
typesfields for each package.jsonexportsentry, so that it works with tsconfig.jsonmoduleResolution: 'bundler'(#3964,be4cd17)
Contributors#
Thanks to everyone who contributed to this release:
v5.0.6 — Sep 2, 2026#
@kubb/cli#
Bug Fixes#
- Adds
--dryRuntogenerateandinitto preview a run without writing files, installing packages, formatting, linting, or running post-generate commands. When an AI coding agent runs the CLI,generatenow uses the plain logger instead of the interactive one, and anonymous telemetry records the agent's name. (#3951,9849de3)
Contributors#
Thanks to everyone who contributed to this release:
v5.0.5 — Aug 31, 2026#
@kubb/core#
Bug Fixes#
2869e6d- Avoids duplicate filesystem reads during generated file writes and uses native Node.js promise timers in asynchronous tests. (2869e6d)
v5.0.4 — Aug 28, 2026#
unplugin-kubb#
Bug Fixes#
-
Move
unplugin-kubbpast its squatted npm version range.Versions 5.0.1 through 5.0.30 were already published on npm from
unplugin-kubb's
pre-monorepo history and depend on kubb v4, so the package's version was set directly to
5.0.31 to clear that range. This changeset picks up from that 5.0.31 baseline and puts
unplugin-kubbback through the normal release process, independent ofkubband@kubb/*. (#3940,b45071e)
Contributors#
Thanks to everyone who contributed to this release:
v5.0.3 — Aug 27, 2026#
@kubb/adapter-oas#
Bug Fixes#
- Keep every discriminator mapping key that targets the same schema, and apply the discriminant to children declared with
allOf(#3929,58d9625)
Contributors#
Thanks to everyone who contributed to this release:
v5.0.2 — Aug 24, 2026#
@kubb/kit#
Bug Fixes#
-
Fix
Url.toPathproducing route masks thatpath-to-regexp(used by MSW/Express) rejects or misparses:- A parameter name starting with a character outside
[A-Za-z0-9_](e.g.{$id}) now sanitizes to a safe capture name instead of keeping the disallowed character. - Distinct parameter names that normalize to the same identifier (e.g.
{group-id}and{group.id}) are now deduplicated with an incrementing suffix (groupId,groupId2) instead of producing two identically named captures. (#3922,56a072c)
- A parameter name starting with a character outside
Contributors#
Thanks to everyone who contributed to this release:
v5.0.1 — Aug 21, 2026#
@kubb/adapter-oas#
Bug Fixes#
- Fix an OpenAPI 3.1 multi-type array collapsing to one type when paired with
format.type: ["null", "integer", "string"], format: "int32"generatedinteger | null, droppingstring. The multi-type rule now runs beforeformat, so each type parses on its own. (#3916,3d0098c) - Fix an OpenAPI 3.1 multi-type array dropping its other types when
nullcame first.type: ["null", "string"]generatednullinstead ofstring | null, whiletype: ["string", "null"]generated the right type, so the output depended on the order the types happened to be written in. The normalized type now takes the first non-nullentry, andtype: ["null"]stays a null schema. (#3912,331558e)
@kubb/cli#
Bug Fixes#
@kubb/kit#
Bug Fixes#
- Fix
Url.toPathproducing an invalid Express-style route for a hyphenated path parameter (e.g.{point-id}became:point-id).path-to-regexptreats a hyphen as ending the parameter name, so the generated MSW handler matched:pointfollowed by a literal-idand rejected valid values.Url.toPathnow camelCases the parameter name the same wayUrl.toTemplateStringalready does, so{point-id}becomes:pointId. (#3895,bf9bdc8)
Contributors#
Thanks to everyone who contributed to this release:
v5.0.0#
Kubb v5 rebuilds code generation around adapters, a universal AST, parsers, and storage, and generates code up to 5.4x faster than v4. Config gets shorter, generated client calls change shape, and plugins move to their own repo (kubb-labs/plugins).
Read the release blog post for the highlights, and the migration guide for the full, per-package breaking-change list and upgrade steps.
For prior releases, see GitHub Releases.