Skip to content

Changelog

Every update to Kubb, with the newest release first.

View on GitHub

Changelog

v5.0.4 — Aug 28, 2026

unplugin-kubb

Bug Fixes

  • Move unplugin-kubb past 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-kubb back through the normal release process, independent of kubb and @kubb/*. (#3940, b45071e)

Contributors

Thanks to everyone who contributed to this release:

@stijnvanhulle

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:

@xeoneux

v5.0.2 — Aug 24, 2026

@kubb/kit

Bug Fixes

  • Fix Url.toPath producing route masks that path-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)

Contributors

Thanks to everyone who contributed to this release:

@stijnvanhulle

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" generated integer | null, dropping string. The multi-type rule now runs before format, so each type parses on its own. (#3916, 3d0098c)
  • Fix an OpenAPI 3.1 multi-type array dropping its other types when null came first. type: ["null", "string"] generated null instead of string | null, while type: ["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-null entry, and type: ["null"] stays a null schema. (#3912, 331558e)

@kubb/cli

Bug Fixes

  • Bump verkit to 0.4.0 and @tmcp/transport-stdio to 0.5.0. (#3909, 77e95a7)

@kubb/kit

Bug Fixes

  • Fix Url.toPath producing an invalid Express-style route for a hyphenated path parameter (e.g. {point-id} became :point-id). path-to-regexp treats a hyphen as ending the parameter name, so the generated MSW handler matched :point followed by a literal -id and rejected valid values. Url.toPath now camelCases the parameter name the same way Url.toTemplateString already does, so {point-id} becomes :pointId. (#3895, bf9bdc8)

Contributors

Thanks to everyone who contributed to this release:

@stijnvanhulle

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.