Skip to content

Releases: hey-api/hey-api

Jun 22nd, 2026

Choose a tag to compare

@hey-api hey-api released this 22 Jun 06:38
Immutable release. Only release title and notes can be modified.
c9dc0b9

@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 $ref keywords (#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 /plugins exported module (#4076)
  • exports: export plugins type helpers (#4076)
  • ⚠️ Breaking: plugin: rename .symbols to .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: widen schema type in nameBuilder to unknown (#4076)

@hey-api/typescript

  • improve discriminator handling

@tanstack/angular-query-experimental

  • strip initialData from the inferred result types for infinite query options

@tanstack/preact-query

  • strip initialData from the inferred result types for infinite query options

@tanstack/react-query

  • strip initialData from the inferred result types for infinite query options

@tanstack/solid-query

  • strip initialData from the inferred result types for infinite query options

@tanstack/svelte-query

  • strip initialData from the inferred result types for infinite query options

@tanstack/vue-query

  • strip initialData from 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 $ref keywords (#4087)
  • package: remove cjs from 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: remove registerSymbol() 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 .symbols to .imports (#4052)
  • ⚠️ Breaking: utils: remove warnOnConflictingDuplicatePlugins export
  • config: add Presets API
  • plugin: add outerOptional option to RequestSchemaContext
  • plugin: add symbolMeta field (#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 symbols to imports (#4052)
  • utils: export deepMerge, resolvePlugins methods, PluginResolutionInput, PluginResolutionResult types
  • 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.

Stainless logo
Best-in-class developer interfaces for your API.
stainless.com

Opencode logo
The open source coding agent.
opencode.ai

Become a sponsor →

Contributors

Built with contributions from @matthewjamesadam.

View full changelog →

Jun 8th, 2026

Choose a tag to compare

@hey-api hey-api released this 08 Jun 05:37
Immutable release. Only release title and notes can be modified.
e3ab264

@hey-api/openapi-ts 0.98.2

Plugins

@hey-api/client-angular

  • reassign the result of HttpHeaders.delete() back to opts.headers (#3988)
  • export augmentable ClientMeta interface (#3996)

@hey-api/client-axios

  • export augmentable ClientMeta interface (#3996)

@hey-api/client-fetch

  • export augmentable ClientMeta interface (#3996)

@hey-api/client-ky

  • export augmentable ClientMeta interface (#3996)

@hey-api/client-next

  • export augmentable ClientMeta interface (#3996)

@hey-api/client-nuxt

  • export augmentable ClientMeta interface (#3996)

@hey-api/client-ofetch

  • export augmentable ClientMeta interface (#3996)

@hey-api/sdk

  • don't expose SSE errors as iterator return types (#3989)
  • support type-safe meta option via augmentable ClientMeta interface (#3996)

@hey-api/codegen-core 0.9.0

Updates

  • symbol: add event listeners (#3998)
  • types: rename ProjectRenderMeta to ProjectMeta and key it by language (#3984)
  • utils: expose Version class (#3991)

@hey-api/shared 0.4.8

Updates

  • types: update project meta types (#3984)
  • utils: expose SymbolFactory (#3991)

Sponsors

Partners behind the future of API tooling.

Stainless logo
Best-in-class developer interfaces for your API.
stainless.com

Opencode logo
The open source coding agent.
opencode.ai

Become a sponsor →

Contributors

Built with contributions from @frastefanini, @joshkaplinsky, and @matthewjamesadam.

View full changelog →

Jun 1st, 2026 (2)

Choose a tag to compare

@hey-api hey-api released this 01 Jun 17:39
Immutable release. Only release title and notes can be modified.
93258e8

@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 ~dsl property (#3982)

@hey-api/shared 0.4.7

Updates

  • plugin: add generics support to querySymbol() and querySymbols() (#3982)

Sponsors

Partners behind the future of API tooling.

Stainless logo
Best-in-class developer interfaces for your API.
stainless.com

Opencode logo
The open source coding agent.
opencode.ai

Become a sponsor →

Contributors

Be the first to contribute to the next release! Browse open issues →

View full changelog →

Jun 1st, 2026

Choose a tag to compare

@hey-api hey-api released this 01 Jun 09:55
Immutable release. Only release title and notes can be modified.

@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.

  • dsl: track extended class symbols (#3945)
  • parser: preserve sort order when filtering input (#3953)

Plugins

@hey-api/client-angular

@hey-api/client-axios

@hey-api/client-fetch

@hey-api/client-ky

@hey-api/client-next

@hey-api/client-nuxt

@hey-api/client-ofetch

@hey-api/sdk

  • add explicit return types (#3880)
  • expose key on 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 children and override property (#3945)
  • symbols: export pythonNameConflictResolver, SymbolChild, SymbolKind, and SymbolRegistry (#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 symbols property (#3942)
  • parser: expose key on security schemes when their signatures collide (#3935)
  • parser: preserve sort order when filtering input (#3953)
  • config: valueToObject is recursive (#3927)
  • plugin: do not stamp external symbols (#3942)
  • plugin: export coerce, defineConfig, Coercer, CoercerMap, ConfigTable, PluginSymbols, PluginTag, TableDirectives, and WithCoercers (#3927)

Sponsors

Partners behind the future of API tooling.

Stainless logo
Best-in-class developer interfaces for your API.
stainless.com

Opencode logo
The open source coding agent.
opencode.ai

Become a sponsor →

Contributors

Built with contributions from @lyzno1, @matthewjamesadam, and @tompuric.

View full changelog →

May 25th, 2026

Choose a tag to compare

@hey-api hey-api released this 25 May 06:27
Immutable release. Only release title and notes can be modified.

@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

@tanstack/angular-query-experimental

  • add getQueryData option (#3827)

@tanstack/preact-query

  • add getQueryData option (#3827)
  • add useGetQueryData option (#3827)

@tanstack/react-query

  • add getQueryData option (#3827)
  • add useGetQueryData option (#3827)

@tanstack/solid-query

  • add getQueryData option (#3827)

@tanstack/svelte-query

  • add getQueryData option (#3827)

@tanstack/vue-query

  • add getQueryData option (#3827)

zod

  • avoid invalid .extend() on z.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 ResolverNodes type on Plugin (#3907)
  • utils: turn on enabled flag in mappers (#3827)

Sponsors

Partners behind the future of API tooling.

Stainless logo
Best-in-class developer interfaces for your API.
stainless.com

Opencode logo
The open source coding agent.
opencode.ai

Become a sponsor →

Contributors

Built with contributions from @aqeelat, @inas-sirhan, @kitlangton, @OptoCloud, and @SukkaW.

View full changelog →

May 18th, 2026

Choose a tag to compare

@hey-api hey-api released this 18 May 04:59
Immutable release. Only release title and notes can be modified.

@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

  • support valibot as response transformer (#3847)
  • support zod as response transformer (#3847)

@tanstack/angular-query-experimental

  • add mutationKeys option (#3858)

@tanstack/preact-query

  • add mutationKeys option (#3858)

@tanstack/react-query

  • add mutationKeys option (#3858)

@tanstack/solid-query

  • add mutationKeys option (#3858)

@tanstack/svelte-query

  • add mutationKeys option (#3858)

@tanstack/vue-query

  • add mutationKeys option (#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.

Stainless logo
Best-in-class developer interfaces for your API.
stainless.com

Opencode logo
The open source coding agent.
opencode.ai

Become a sponsor →

Contributors

Built with contributions from @awdr74100, @slmnsh, and @SukkaW.

View full changelog →

May 4th, 2026

Choose a tag to compare

@hey-api hey-api released this 04 May 00:37

@hey-api/openapi-ts 0.97.1

Plugins

@hey-api/transformers

  • use symbols for additionalProperties key variables (#3841)

@hey-api/json-schema-ref-parser 1.4.2

Updates

  • yaml: swap yaml back to js-yaml (#3843)

Sponsors

Partners behind the future of API tooling.

Stainless logo
Best-in-class developer interfaces for your API.
stainless.com

Opencode logo
The open source coding agent.
opencode.ai

Become a sponsor →

Contributors

Be the first to contribute to the next release! Browse open issues →

View full changelog →

Apr 28th, 2026

Choose a tag to compare

@hey-api hey-api released this 28 Apr 03:33

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.

Contribute →


@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: resolve runtimeConfigPath relative 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 --apply flag from Biome post-processor commands (#3812)

Plugins

@hey-api/client-angular

  • ⚠️ Breaking: request and response objects might be undefined (#3814)
  • ⚠️ Breaking: respect throwOnError when request validation fails (#3814)

@hey-api/client-fetch

  • ⚠️ Breaking: pass previous result to error interceptors (#3814)
  • ⚠️ Breaking: request and response objects might be undefined (#3814)
  • ⚠️ Breaking: respect throwOnError when request validation fails (#3814)

@hey-api/client-ky

  • ⚠️ Breaking: pass previous result to error interceptors (#3814)
  • ⚠️ Breaking: request and response objects might be undefined (#3814)
  • ⚠️ Breaking: respect throwOnError when 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: request and response objects might be undefined (#3814)
  • ⚠️ Breaking: pass previous result to error interceptors (#3814)
  • ⚠️ Breaking: respect throwOnError when request validation fails (#3814)

@hey-api/client-ofetch

  • ⚠️ Breaking: request and response objects might be undefined (#3814)
  • ⚠️ Breaking: respect throwOnError when request validation fails (#3814)

@tanstack/angular-query-experimental

  • add setQueryData option (#3824)

@tanstack/preact-query

  • add useSetQueryData option (#3824)
  • add setQueryData option (#3824)

@tanstack/react-query

  • add useSetQueryData option (#3824)
  • add setQueryData option (#3824)

@tanstack/solid-query

  • add setQueryData option (#3824)

@tanstack/svelte-query

  • add setQueryData option (#3824)

@tanstack/vue-query

  • add setQueryData option (#3824)

zod

  • fallback .discriminatedUnion to .union if 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

  • graph: speed up graph builder (#3823)
  • utils: speed up deep equality check (#3823)

Sponsors

Partners behind the future of API tooling.

Stainless logo
Best-in-class developer interfaces for your API.
stainless.com

Opencode logo
The open source coding agent.
opencode.ai

Become a sponsor →

Contributors

Built with contributions from @inas-sirhan and @SukkaW.

View full changelog →

Apr 20th, 2026

Choose a tag to compare

@hey-api hey-api released this 20 Apr 09:30

@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 headers to Headers in ResolvedRequestOptions (#3757)

@hey-api/client-fetch

  • narrow headers to Headers in ResolvedRequestOptions (#3757)

@hey-api/client-ky

  • narrow headers to Headers in ResolvedRequestOptions (#3757)

@hey-api/client-next

  • narrow headers to Headers in ResolvedRequestOptions (#3757)

@hey-api/client-ofetch

  • narrow headers to Headers in ResolvedRequestOptions (#3757)

valibot

  • add support for .variant() (#3780)

zod

  • add support for .discriminatedUnion() (#3780)
  • support generating z.input and z.output types (#3759)

@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 vite options (#3776)

Sponsors

Partners behind the future of API tooling.

Stainless logo
Best-in-class developer interfaces for your API.
stainless.com

Opencode logo
The open source coding agent.
opencode.ai

Become a sponsor →

Contributors

Built with contributions from @inas-sirhan and @sbs44.

View full changelog →

2026-04-13

Choose a tag to compare

@github-actions github-actions released this 13 Apr 05:41

@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: rename OpenAPIExtensions to SpecExtensions (#3715)
  • types: add WithSpecExtensions type (#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.

Stainless logo
Best-in-class developer interfaces for your API.
stainless.com

Opencode logo
The open source coding agent.
opencode.ai

Become a sponsor →

Contributors

Be the first to contribute to the next release! Browse open issues →

View full changelog →