Releases: hey-api/hey-api
Release list
Jun 22nd, 2026
@hey-api/openapi-ts 0.99.0
⚠️ Breaking
This release has 4 breaking changes. Please review the release notes carefully before upgrading.
Updates
- parser: delete unresolvable
$refkeywords (#4087) - api: replace
~fields with$(#4086) - client: use
getBaseUrl()function to determine default value (#3772) ⚠️ Breaking: config: merge duplicate plugin configurations
Plugin duplicates behavior
If you specified the same plugin multiple times, only the last instance would be used. We eventually added a warning for this behavior, but that didn't treat the root issue. This release changes that by merging duplicate plugin configurations.
- config: add Presets API
- exports: add
/pluginsexported module (#4076) - exports: export
pluginstype helpers (#4076) ⚠️ Breaking: plugin: rename.symbolsto.imports(#4052)
To better represent its functionality, the plugin.symbols property has been renamed to plugin.imports.
⚠️ Breaking: plugin: remove.external()method (#4052)
Removed plugin.external() function
This function was used to reference external symbols. All plugins now use the Imports API, which allows you to reference external symbols in a type-safe way through plugin.imports.
Plugins
@hey-api/client-angular
- send an empty object request body when explicitly provided in flat parameters mode (#4070)
@hey-api/client-axios
- send an empty object request body when explicitly provided in flat parameters mode (#4070)
@hey-api/client-fetch
- send an empty object request body when explicitly provided in flat parameters mode (#4070)
@hey-api/client-ky
- send an empty object request body when explicitly provided in flat parameters mode (#4070)
@hey-api/client-next
- send an empty object request body when explicitly provided in flat parameters mode (#4070)
@hey-api/client-nuxt
- send an empty object request body when explicitly provided in flat parameters mode (#4070)
@hey-api/client-ofetch
- send an empty object request body when explicitly provided in flat parameters mode (#4070)
@hey-api/schemas
⚠️ Breaking: widenschematype innameBuilderto unknown (#4076)
@hey-api/typescript
- improve discriminator handling
@tanstack/angular-query-experimental
- strip
initialDatafrom the inferred result types for infinite query options
@tanstack/preact-query
- strip
initialDatafrom the inferred result types for infinite query options
@tanstack/react-query
- strip
initialDatafrom the inferred result types for infinite query options
@tanstack/solid-query
- strip
initialDatafrom the inferred result types for infinite query options
@tanstack/svelte-query
- strip
initialDatafrom the inferred result types for infinite query options
@tanstack/vue-query
- strip
initialDatafrom the inferred result types for infinite query options
orpc
- make
.input()optional if all layers are optional
valibot
- support custom regular expression error messages with
x-pattern-message(#4117) - support creating optional request schemas
- improve discriminator handling
zod
- improve discriminator handling
- support creating optional request schemas
- support custom regular expression error messages with
x-pattern-message(#4117)
@hey-api/codegen-core 0.9.1
Updates
- symbol: add priority field
- utils: tighten up object identity check
@hey-api/json-schema-ref-parser 1.4.4
Updates
- parser: delete unresolvable
$refkeywords (#4087) - package: remove
cjsfrom files array
@hey-api/shared 0.5.0
⚠️ Breaking
This release has 4 breaking changes. Please review the release notes carefully before upgrading.
Updates
⚠️ Breaking: plugin: remove.external()method (#4052)⚠️ Breaking: plugin: removeregisterSymbol()function (#4078)
Removed plugin.registerSymbol() function
This function was an alias for plugin.symbol() accepting a single argument. It has been removed in favor of plugin.symbol() which can now also accept a single argument.
⚠️ Breaking: plugin: rename.symbolsto.imports(#4052)⚠️ Breaking: utils: removewarnOnConflictingDuplicatePluginsexport- config: add Presets API
- plugin: add
outerOptionaloption toRequestSchemaContext - plugin: add
symbolMetafield (#4051) - symbol: add implicit priority
- api: replace
~fields with$(#4086) - config: handle array values in
$dependencies(#4114) - parser: improve discriminator handling
- plugin: remove
.querySymbols()method (#4067) - plugin: rename
symbolstoimports(#4052) - utils: export
deepMerge,resolvePluginsmethods,PluginResolutionInput,PluginResolutionResulttypes - utils: export
getBaseUrl()function (#3772) - utils: export
pluginHelper()function (#4076) - utils: export discriminator utilities
@hey-api/vite-plugin 0.3.2
Updates
- config: use configuration file when called without arguments (#4088)
Sponsors
Partners behind the future of API tooling.
|
|
|
Contributors
Built with contributions from @matthewjamesadam.
Jun 8th, 2026
@hey-api/openapi-ts 0.98.2
Plugins
@hey-api/client-angular
- reassign the result of
HttpHeaders.delete()back toopts.headers(#3988) - export augmentable
ClientMetainterface (#3996)
@hey-api/client-axios
- export augmentable
ClientMetainterface (#3996)
@hey-api/client-fetch
- export augmentable
ClientMetainterface (#3996)
@hey-api/client-ky
- export augmentable
ClientMetainterface (#3996)
@hey-api/client-next
- export augmentable
ClientMetainterface (#3996)
@hey-api/client-nuxt
- export augmentable
ClientMetainterface (#3996)
@hey-api/client-ofetch
- export augmentable
ClientMetainterface (#3996)
@hey-api/sdk
- don't expose SSE errors as iterator return types (#3989)
- support type-safe
metaoption via augmentableClientMetainterface (#3996)
@hey-api/codegen-core 0.9.0
Updates
- symbol: add event listeners (#3998)
- types: rename
ProjectRenderMetatoProjectMetaand key it by language (#3984) - utils: expose
Versionclass (#3991)
@hey-api/shared 0.4.8
Updates
Sponsors
Partners behind the future of API tooling.
|
|
|
Contributors
Built with contributions from @frastefanini, @joshkaplinsky, and @matthewjamesadam.
Jun 1st, 2026 (2)
@hey-api/openapi-ts 0.98.1
Updates
- cli: simplify generate command messages (#3982)
Plugins
valibot
- revert referencing TypeScript enums (#3982)
zod
- revert referencing TypeScript enums (#3982)
@hey-api/codegen-core 0.8.4
Updates
- node: add
~dslproperty (#3982)
@hey-api/shared 0.4.7
Updates
- plugin: add generics support to
querySymbol()andquerySymbols()(#3982)
Sponsors
Partners behind the future of API tooling.
|
|
|
Contributors
Be the first to contribute to the next release! Browse open issues →
Jun 1st, 2026
@hey-api/openapi-ts 0.98.0
⚠️ Breaking
This release has 1 breaking change. Please review the release notes carefully before upgrading.
Updates
⚠️ Breaking: config: declarative configuration (#3950)
This is an internal change that simplifies the configuration and plugin APIs. The generated output should be unaffected, please open an issue if that's not the case. If you have custom plugins, refer to the custom plugin guide for the latest instructions.
Plugins
@hey-api/client-angular
- add explicit return types (#3880)
- use
Object.create()to avoid prototype chain substitution. Reported by @programsurf, @daeungdaeung, @yoonsh, and @lubroai (GHSA-hhx9-57xq-r5rw) (#3973) - improve params helper type (#3946)
@hey-api/client-axios
- add explicit return types (#3880)
- use
Object.create()to avoid prototype chain substitution. Reported by @programsurf, @daeungdaeung, @yoonsh, and @lubroai (GHSA-hhx9-57xq-r5rw) (#3973) - improve params helper type (#3946)
@hey-api/client-fetch
- add explicit return types (#3880)
- use
Object.create()to avoid prototype chain substitution. Reported by @programsurf, @daeungdaeung, @yoonsh, and @lubroai (GHSA-hhx9-57xq-r5rw) (#3973) - improve params helper type (#3946)
@hey-api/client-ky
- add explicit return types (#3880)
- use
Object.create()to avoid prototype chain substitution. Reported by @programsurf, @daeungdaeung, @yoonsh, and @lubroai (GHSA-hhx9-57xq-r5rw) (#3973) - improve params helper type (#3946)
@hey-api/client-next
- add explicit return types (#3880)
- improve params helper type (#3946)
- use
Object.create()to avoid prototype chain substitution. Reported by @programsurf, @daeungdaeung, @yoonsh, and @lubroai (GHSA-hhx9-57xq-r5rw) (#3973)
@hey-api/client-nuxt
- add explicit return types (#3880)
- use
Object.create()to avoid prototype chain substitution. Reported by @programsurf, @daeungdaeung, @yoonsh, and @lubroai (GHSA-hhx9-57xq-r5rw) (#3973) - improve params helper type (#3946)
@hey-api/client-ofetch
- add explicit return types (#3880)
- use
Object.create()to avoid prototype chain substitution. Reported by @programsurf, @daeungdaeung, @yoonsh, and @lubroai (GHSA-hhx9-57xq-r5rw) (#3973) - improve params helper type (#3946)
@hey-api/sdk
- add explicit return types (#3880)
- expose
keyon security schemes when their signatures collide (#3935)
orpc
- handle no-content success responses (#3948)
valibot
- improve boolean enum handling (#3974)
@hey-api/codegen-core 0.8.3
Updates
- symbol: add
childrenandoverrideproperty (#3945) - symbols: export
pythonNameConflictResolver,SymbolChild,SymbolKind, andSymbolRegistry(#3945)
@hey-api/json-schema-ref-parser 1.4.3
Updates
- bundle: name whole-file
$refs after the source filename (#3936)
@hey-api/shared 0.4.6
Updates
- plugin: add
symbolsproperty (#3942) - parser: expose
keyon security schemes when their signatures collide (#3935) - parser: preserve sort order when filtering input (#3953)
- config:
valueToObjectis recursive (#3927) - plugin: do not stamp external symbols (#3942)
- plugin: export
coerce,defineConfig,Coercer,CoercerMap,ConfigTable,PluginSymbols,PluginTag,TableDirectives, andWithCoercers(#3927)
Sponsors
Partners behind the future of API tooling.
|
|
|
Contributors
Built with contributions from @lyzno1, @matthewjamesadam, and @tompuric.
May 25th, 2026
@hey-api/openapi-ts 0.97.3
Plugins
@hey-api/client-angular
- correct return type in SSE (#3919)
@hey-api/client-axios
- correct return type in SSE (#3919)
@hey-api/client-fetch
- correct return type in SSE (#3919)
@hey-api/client-ky
- correct return type in SSE (#3919)
@hey-api/client-next
- correct return type in SSE (#3919)
@hey-api/client-ofetch
- correct return type in SSE (#3919)
@hey-api/transformers
- add support for Temporal API via temporal-polyfill in
dates(#3916)
@tanstack/angular-query-experimental
- add
getQueryDataoption (#3827)
@tanstack/preact-query
@tanstack/react-query
@tanstack/solid-query
- add
getQueryDataoption (#3827)
@tanstack/svelte-query
- add
getQueryDataoption (#3827)
@tanstack/vue-query
- add
getQueryDataoption (#3827)
zod
- avoid invalid
.extend()onz.record()when a discriminated union member is an empty object (#3915)
@hey-api/codegen-core 0.8.2
Updates
- symbols: prefer recursive over top-level merging in registry (#3917)
@hey-api/shared 0.4.5
Updates
- parser: encode special characters in JSON Pointer (#3903)
- fix: various performance improvements (#3917)
- plugin: expose getHooks method (#3913)
- types: export
ResolverNodestype onPlugin(#3907) - utils: turn on
enabledflag inmappers(#3827)
Sponsors
Partners behind the future of API tooling.
|
|
|
Contributors
Built with contributions from @aqeelat, @inas-sirhan, @kitlangton, @OptoCloud, and @SukkaW.
May 18th, 2026
@hey-api/openapi-ts 0.97.2
Updates
- dsl: cache lazy node result (#3855)
Plugins
@hey-api/client-angular
- preserve query auth when when there are no other query parameters (#3853)
@hey-api/client-axios
- preserve query auth when when there are no other query parameters (#3853)
@hey-api/client-fetch
- preserve query auth when when there are no other query parameters (#3853)
@hey-api/client-ky
- preserve query auth when when there are no other query parameters (#3853)
@hey-api/client-next
- preserve query auth when when there are no other query parameters (#3853)
@hey-api/client-nuxt
- preserve query auth when when there are no other query parameters (#3853)
@hey-api/client-ofetch
- preserve query auth when when there are no other query parameters (#3853)
@hey-api/sdk
@tanstack/angular-query-experimental
- add
mutationKeysoption (#3858)
@tanstack/preact-query
- add
mutationKeysoption (#3858)
@tanstack/react-query
- add
mutationKeysoption (#3858)
@tanstack/solid-query
- add
mutationKeysoption (#3858)
@tanstack/svelte-query
- add
mutationKeysoption (#3858)
@tanstack/vue-query
- add
mutationKeysoption (#3858)
valibot
- use enums from TypeScript if available (#3884)
zod
- use enums from TypeScript if available (#3884)
@hey-api/shared 0.4.4
Updates
- plugin: add
querySymbols()function (#3884)
Sponsors
Partners behind the future of API tooling.
|
|
|
Contributors
Built with contributions from @awdr74100, @slmnsh, and @SukkaW.
May 4th, 2026
@hey-api/openapi-ts 0.97.1
Plugins
@hey-api/transformers
- use symbols for
additionalPropertieskey variables (#3841)
@hey-api/json-schema-ref-parser 1.4.2
Updates
- yaml: swap
yamlback tojs-yaml(#3843)
Sponsors
Partners behind the future of API tooling.
|
|
|
Contributors
Be the first to contribute to the next release! Browse open issues →
Apr 28th, 2026
Spotlight
A huge thank you to @SukkaW this release! They noticed generation was painfully slow on large OpenAPI specs, traced it to several algorithmic bottlenecks, and fixed them. The result is a 10x-30x performance gain on larger specs, with meaningful improvements on smaller specs as well.
We sent them $100 as a small token of appreciation.
@hey-api/openapi-ts 0.97.0
⚠️ Breaking
This release has 15 breaking changes. Please review the release notes carefully before upgrading.
Updates
- cli: print file count and generator speed (#3828)
⚠️ Breaking: client: resolveruntimeConfigPathrelative to the output folder (#3770)
Changed runtimeConfigPath behavior
This was a known, long-standing issue confusing first-time users. Before, defining client runtimeConfigPath value would paste it verbatim to the generated output. This release changes the behavior to resolve relative to the current working directory the same way output path works.
- config: remove
--applyflag from Biome post-processor commands (#3812)
Plugins
@hey-api/client-angular
⚠️ Breaking:requestandresponseobjects might be undefined (#3814)⚠️ Breaking: respectthrowOnErrorwhen request validation fails (#3814)
@hey-api/client-fetch
⚠️ Breaking: pass previous result to error interceptors (#3814)⚠️ Breaking:requestandresponseobjects might be undefined (#3814)⚠️ Breaking: respectthrowOnErrorwhen request validation fails (#3814)
@hey-api/client-ky
⚠️ Breaking: pass previous result to error interceptors (#3814)⚠️ Breaking:requestandresponseobjects might be undefined (#3814)⚠️ Breaking: respectthrowOnErrorwhen request validation fails (#3814)⚠️ Breaking: respect ky instance defaults (#3806)
Changed Ky client behavior
The Ky client was updated to be more intuitive. Some Ky options now need to be passed via the kyOptions field and you need to pass undefined to unset an option.
@hey-api/client-next
⚠️ Breaking:requestandresponseobjects might be undefined (#3814)⚠️ Breaking: pass previous result to error interceptors (#3814)⚠️ Breaking: respectthrowOnErrorwhen request validation fails (#3814)
@hey-api/client-ofetch
⚠️ Breaking:requestandresponseobjects might be undefined (#3814)⚠️ Breaking: respectthrowOnErrorwhen request validation fails (#3814)
@tanstack/angular-query-experimental
- add
setQueryDataoption (#3824)
@tanstack/preact-query
@tanstack/react-query
@tanstack/solid-query
- add
setQueryDataoption (#3824)
@tanstack/svelte-query
- add
setQueryDataoption (#3824)
@tanstack/vue-query
- add
setQueryDataoption (#3824)
zod
- fallback
.discriminatedUnionto.unionif members contain intersection (#3813)
@hey-api/codegen-core 0.8.1
Updates
- planner: speed up identifier conflict detector (#3823)
- symbol: speed up symbol registry cache (#3823)
@hey-api/shared 0.4.2
Updates
Sponsors
Partners behind the future of API tooling.
|
|
|
Contributors
Built with contributions from @inas-sirhan and @SukkaW.
Apr 20th, 2026
@hey-api/openapi-ts 0.96.1
Updates
- config: warn on duplicated plugin configurations (#3753)
- output: surface postprocess errors (#3683)
- parser: re-add implicitly-filtered schemas in collectOperations (#3791)
- parser: avoid encoding url unsafe characters (#3782)
Plugins
@hey-api/client-angular
- narrow
headerstoHeadersinResolvedRequestOptions(#3757)
@hey-api/client-fetch
- narrow
headerstoHeadersinResolvedRequestOptions(#3757)
@hey-api/client-ky
- narrow
headerstoHeadersinResolvedRequestOptions(#3757)
@hey-api/client-next
- narrow
headerstoHeadersinResolvedRequestOptions(#3757)
@hey-api/client-ofetch
- narrow
headerstoHeadersinResolvedRequestOptions(#3757)
valibot
- add support for
.variant()(#3780)
zod
@hey-api/json-schema-ref-parser 1.4.1
Updates
- parser: avoid encoding url unsafe characters (#3782)
@hey-api/shared 0.4.1
Updates
- output: surface postprocess errors (#3683)
- parser: avoid encoding url unsafe characters (#3782)
- parser: re-add implicitly-filtered schemas in collectOperations (#3791)
- config: warn on duplicated plugin configurations (#3753)
@hey-api/vite-plugin 0.3.1
Updates
- api: expose
viteoptions (#3776)
Sponsors
Partners behind the future of API tooling.
|
|
|
Contributors
Built with contributions from @inas-sirhan and @sbs44.
2026-04-13
@hey-api/openapi-ts 0.96.0
⚠️ Breaking
This release has 1 breaking change. Please review the release notes carefully before upgrading.
Updates
⚠️ Breaking: This release bumps the minimum required Node version to 22.13. (#3694)- cli: improve error message on invalid input (#3679)
- parser: keep orphans when explicitly included in filters (#3714)
- parser: process enum metadata (#3727)
Plugins
@angular/common
- requests and resources broken default configuration (#3678)
@hey-api/client-angular
- simplify SSE line endings normalization (#3686)
@hey-api/client-axios
- simplify SSE line endings normalization (#3686)
@hey-api/client-fetch
- simplify SSE line endings normalization (#3686)
@hey-api/client-ky
- simplify SSE line endings normalization (#3686)
@hey-api/client-next
- simplify SSE line endings normalization (#3686)
@hey-api/client-nuxt
- simplify SSE line endings normalization (#3686)
@hey-api/client-ofetch
- simplify SSE line endings normalization (#3686)
@hey-api/transformers
- return value for primitive array entries (#3733)
@hey-api/codegen-core 0.8.0
⚠️ Breaking
This release has 1 breaking change. Please review the release notes carefully before upgrading.
Updates
⚠️ Breaking: This release bumps the minimum required Node version to 22.13. (#3694)
@hey-api/json-schema-ref-parser 1.4.0
⚠️ Breaking
This release has 1 breaking change. Please review the release notes carefully before upgrading.
Updates
⚠️ Breaking: This release bumps the minimum required Node version to 22.13. (#3694)- internal: export errors (#3679)
@hey-api/shared 0.4.0
⚠️ Breaking
This release has 1 breaking change. Please review the release notes carefully before upgrading.
Updates
⚠️ Breaking: This release bumps the minimum required Node version to 22.13. (#3694)- parser: keep orphans when explicitly included in filters (#3714)
- parser: process enum metadata (#3727)
- error: handle InputError (#3679)
@hey-api/spec-types 0.2.0
⚠️ Breaking
This release has 2 breaking changes. Please review the release notes carefully before upgrading.
Updates
⚠️ Breaking: remove OpenAPI types from JSON Schema documents (#3715)⚠️ Breaking: renameOpenAPIExtensionstoSpecExtensions(#3715)- types: add
WithSpecExtensionstype (#3734) - openapi: stricter 2.0 version type (#3715)
- types: use mutable arrays (#3715)
@hey-api/vite-plugin 0.3.0
⚠️ Breaking
This release has 1 breaking change. Please review the release notes carefully before upgrading.
Updates
⚠️ Breaking: This package is now ESM-only. (#3688)
Sponsors
Partners behind the future of API tooling.
|
|
|
Contributors
Be the first to contribute to the next release! Browse open issues →