···11----
22-title: Philosophy
33-description: Hello from Hey API.
44----
55-66-<script setup>
77-import { VPTeamMembers } from 'vitepress/theme'
88-99-const hallOfFame = [
1010- {
1111- avatar: 'https://github.com/ferdikoomen.png',
1212- name: 'Ferdi Koomen',
1313- links: [
1414- { icon: 'github', link: 'https://github.com/ferdikoomen' },
1515- ],
1616- title: 'OpenAPI TypeScript Codegen',
1717- },
1818- {
1919- avatar: 'https://github.com/nicolas-chaulet.png',
2020- name: 'Nicolas Chaulet',
2121- links: [
2222- { icon: 'github', link: 'https://github.com/nicolas-chaulet' },
2323- ],
2424- title: 'Made the Hey API fork',
2525- },
2626- {
2727- avatar: 'https://github.com/jordanshatford.png',
2828- name: 'Jordan Shatford',
2929- links: [
3030- { icon: 'github', link: 'https://github.com/jordanshatford' },
3131- ],
3232- title: 'Maintainer and Contributor',
3333- },
3434-]
3535-</script>
3636-3737-# About
3838-3939-Hey API is building a suite of TypeScript tools to manage API interactions. Whether you're building a web app, mobile app, or API server, we want to be part of your stack.
4040-4141-We aim to do this by offering quality code abstractions necessary to perform type-safe HTTP requests. Attempting to manage this manually quickly becomes a huge time sink as your project grows and APIs evolve. Ideally, you want to spend most time on your application. Hey API allows you to do just that.
4242-4343-We're constantly learning about the ways in which you use our tools. If you have any feedback, please [email us](mailto:lubos@heyapi.dev), [open an issue](https://github.com/hey-api/openapi-ts/issues), or [join a discussion](https://github.com/orgs/hey-api/discussions).
4444-4545-## Hall of Fame
4646-4747-These are the people with significant contributions to Hey API. A special thank you goes to [Ferdi Koomen](https://madebyferdi.com) for allowing us to use the original source code from OpenAPI TypeScript Codegen. None of this would've been possible without you!
4848-4949-<VPTeamMembers size="small" :members="hallOfFame" />
5050-5151-<!--@include: ./sponsors.md-->
···11---
22title: Contributing
33-description: Learn how to contribute to Hey API.
33+description: Learn how to contribute to @hey-api/openapi-ts.
44---
5566# Contributing
7788-Thank you for considering contributing to Hey API. In order to increase the likelihood of your changes being merged, first open an issue if one does not already exist. Once an issue exists, let us know you'd like to work on it. We will confirm whether we're looking to resolve the issue and provide you with guidance if required. This is to ensure our codebase remains in good state and all features contribute to Hey API's [objectives](/about).
88+Thank you for considering contributing to Hey API. In order to increase the likelihood of your changes being merged, first open an issue if one does not already exist. Once an issue exists, let us know you'd like to work on it. We will confirm whether we're looking to resolve the issue and provide you with guidance if required. This is to ensure our codebase remains in good state and all features contribute to Hey API's objectives.
991010## Prerequisites
1111···1919- contain a clean history of small, incremental, logically separate commits, with no merge commits
2020- use clear commit messages
2121- be possible to merge automatically
2222-2323-## Sponsors
2424-2525-You can also contribute by becoming our [sponsor](https://github.com/sponsors/hey-api).
2626-2727-<div class="sponsors-list">
2828-2929-<!--@include: ./sponsors-list.md-->
3030-3131-</div>
···22layout: home
3344hero:
55- name: High-quality tools for interacting with APIs
66- tagline: Codegen for your TypeScript projects. Trusted over 2,000,000 times each month to generate reliable API clients and SDKs.
55+ name: One OpenAPI spec. Infinite outputs.
66+ tagline: Codegen for JavaScript/TypeScript projects. Trusted over 2,000,000 times each month to generate reliable API clients and SDKs.
77 actions:
88 - link: /openapi-ts/get-started
99 text: Get Started
···5151 linkText: Learn about integrations
5252---
53535454-<br />
5454+<br/>
55555656<div class="home-list sponsors-list">
5757···59596060<br/>
61616262-<!--@include: ./sponsors-list.md-->
6262+<!--@include: ./partials/sponsors-list.md-->
63636464</div>
6565
docs/license.md
docs/openapi-ts/license.md
+2-2
docs/openapi-ts/clients.md
···33333434Don't see your client? [Build your own](/openapi-ts/clients/custom) or let us know your interest by [opening an issue](https://github.com/hey-api/openapi-ts/issues).
35353636-<!--@include: ../examples.md-->
3737-<!--@include: ../sponsors.md-->
3636+<!--@include: ../partials/examples.md-->
3737+<!--@include: ../partials/sponsors.md-->
+2-2
docs/openapi-ts/clients/axios.md
···226226227227You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/@hey-api/client-axios/types.d.ts) interface.
228228229229-<!--@include: ../../examples.md-->
230230-<!--@include: ../../sponsors.md-->
229229+<!--@include: ../../partials/examples.md-->
230230+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/clients/custom.md
···1515Custom clients documentation will be finalized after further testing. Simplified [instructions](https://github.com/hey-api/openapi-ts/issues/1213#issuecomment-2765206344) can be found in the GitHub thread.
1616:::
17171818-<!--@include: ../../examples.md-->
1919-<!--@include: ../../sponsors.md-->
1818+<!--@include: ../../partials/examples.md-->
1919+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/clients/fetch.md
···303303304304You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/@hey-api/client-fetch/types.d.ts) interface.
305305306306-<!--@include: ../../examples.md-->
307307-<!--@include: ../../sponsors.md-->
306306+<!--@include: ../../partials/examples.md-->
307307+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/clients/legacy.md
···132132Angular client does not currently support request interceptors.
133133:::
134134135135-<!--@include: ../../examples.md-->
136136-<!--@include: ../../sponsors.md-->
135135+<!--@include: ../../partials/examples.md-->
136136+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/clients/next-js.md
···290290291291You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/@hey-api/client-next/types.d.ts) interface.
292292293293-<!--@include: ../../examples.md-->
294294-<!--@include: ../../sponsors.md-->
293293+<!--@include: ../../partials/examples.md-->
294294+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/clients/nuxt.md
···252252253253You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/@hey-api/client-nuxt/types.d.ts) interface.
254254255255-<!--@include: ../../examples.md-->
256256-<!--@include: ../../sponsors.md-->
255255+<!--@include: ../../partials/examples.md-->
256256+<!--@include: ../../partials/sponsors.md-->
+40
docs/openapi-ts/community/spotlight.md
···11+---
22+title: Spotlight
33+description: Meet the people behind @hey-api/openapi-ts.
44+---
55+66+<script setup>
77+import { VPTeamMembers } from 'vitepress/theme'
88+import { coreTeam } from '../../data/coreTeam.js'
99+import { hallOfFame } from '../../data/hallOfFame.js'
1010+</script>
1111+1212+# Spotlight
1313+1414+Meet the people behind `@hey-api/openapi-ts`.
1515+1616+## Core Team
1717+1818+These people actively maintain this project.
1919+2020+<VPTeamMembers size="small" :members="coreTeam" />
2121+2222+Do you want to join the core team? Send us a short [email](mailto:lubos@heyapi.dev?subject=Join%20Core%20Team) describing your interest in Hey API, any relevant experience, and what you're hoping to work on.
2323+2424+## Hall of Fame
2525+2626+These are the people with significant contributions to Hey API. A special thank you goes to [Ferdi Koomen](https://madebyferdi.com) for allowing us to use the original source code from OpenAPI TypeScript Codegen. None of this would've been possible without you!
2727+2828+<VPTeamMembers size="small" :members="hallOfFame" />
2929+3030+## Contributors
3131+3232+A complete list of contributors to `@hey-api/openapi-ts`.
3333+3434+<div class="contributors-list">
3535+3636+<!--@include: ../../partials/contributors-list.md-->
3737+3838+</div>
3939+4040+Thank you for contributing to Hey API!
+2-2
docs/openapi-ts/configuration.md
···159159160160You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/types/config.d.ts) interface.
161161162162-<!--@include: ../examples.md-->
163163-<!--@include: ../sponsors.md-->
162162+<!--@include: ../partials/examples.md-->
163163+<!--@include: ../partials/sponsors.md-->
···170170Setting `output.clean` to `false` may result in broken output. Ensure you typecheck your code.
171171:::
172172173173-<!--@include: ../../examples.md-->
174174-<!--@include: ../../sponsors.md-->
173173+<!--@include: ../../partials/examples.md-->
174174+<!--@include: ../../partials/sponsors.md-->
···991010# Get Started
11111212-::: warning
1313-This package is in initial development. The interface might change before it becomes stable. We encourage you to leave feedback on [GitHub](https://github.com/hey-api/openapi-ts/issues).
1414-:::
1515-1616-[@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) is an OpenAPI to TypeScript codegen trusted over 2,000,000 times each month to generate reliable API clients and SDKs. The code is [MIT-licensed](/license) and free to use. Discover available features below or view our [roadmap](https://github.com/orgs/hey-api/discussions/1495) to learn what's coming next.
1212+[@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) is an OpenAPI to TypeScript codegen trusted over 2,000,000 times each month to generate reliable API clients and SDKs. The code is [MIT-licensed](/openapi-ts/license) and free to use. Discover available features below or view our [roadmap](https://github.com/orgs/hey-api/discussions/1495) to learn what's coming next.
17131814### Demo
1915···45414642## Installation
47434444+You can download `@hey-api/openapi-ts` from npm using your favorite package manager.
4545+4846::: code-group
49475048```sh [npm]
5151-npm install @hey-api/openapi-ts -D
4949+npm install @hey-api/openapi-ts -D -E
5250```
53515452```sh [pnpm]
5555-pnpm add @hey-api/openapi-ts -D
5353+pnpm add @hey-api/openapi-ts -D -E
5654```
57555856```sh [yarn]
5959-yarn add @hey-api/openapi-ts -D
5757+yarn add @hey-api/openapi-ts -D -E
6058```
61596260```sh [bun]
6363-bun add @hey-api/openapi-ts -D
6161+bun add @hey-api/openapi-ts -D -E
6462```
65636664:::
67656868-We recommend pinning an exact version so you can safely upgrade when you're ready. This package is in [initial development](https://semver.org/spec/v0.1.0.html#spec-item-5) and its API might change before v1.
6666+### Versioning
6767+6868+This package does NOT follow the [semantic versioning](https://semver.org/) strategy. Please pin an exact version so you can safely upgrade when you're ready.
6969+7070+Due to the nature of the package, we use the following versioning strategy.
7171+7272+- `1.x.x`: significant breaking changes, reserved for v1 release
7373+- `x.1.x`: breaking changes
7474+- `x.x.1`: new features, bug fixes, and non-breaking changes
7575+7676+We publish [migration notes](/openapi-ts/migrating) for every breaking release. You might not be impacted by a breaking release if you don't use the affected plugin(s).
7777+7878+## Usage
69797080### CLI
7181···81918292### Node.js
83938484-You can also generate clients programmatically by importing `@hey-api/openapi-ts` in a TypeScript file.
9494+You can also generate output programmatically by importing `@hey-api/openapi-ts` in a JavaScript/TypeScript file.
85958696::: code-group
8797···100110101111It's a good practice to extract your configuration into a separate file. Learn how to do that and discover available options on the [Configuration](/openapi-ts/configuration) page.
102112103103-<!--@include: ../examples.md-->
104104-<!--@include: ../sponsors.md-->
113113+<!--@include: ../partials/examples.md-->
114114+<!--@include: ../partials/sponsors.md-->
+1-1
docs/openapi-ts/integrations.md
···193193194194The platform is currently in beta with our focus being on delivering a great experience. We plan to announce pricing once we have gathered enough data around usage patterns. However, we can guarantee there will always be a free plan available. Our mission to bring the finest tooling for working with APIs remains unchanged.
195195196196-<!--@include: ../sponsors.md-->
196196+<!--@include: ../partials/sponsors.md-->
+2-2
docs/openapi-ts/mocks.md
···18181919Don't see your framework? Let us know your interest by [opening an issue](https://github.com/hey-api/openapi-ts/issues).
20202121-<!--@include: ../examples.md-->
2222-<!--@include: ../sponsors.md-->
2121+<!--@include: ../partials/examples.md-->
2222+<!--@include: ../partials/sponsors.md-->
+2-2
docs/openapi-ts/output.md
···9595Re-exporting additional files from index file may result in broken output due to naming conflicts.
9696:::
97979898-<!--@include: ../examples.md-->
9999-<!--@include: ../sponsors.md-->
9898+<!--@include: ../partials/examples.md-->
9999+<!--@include: ../partials/sponsors.md-->
+2-2
docs/openapi-ts/output/client.md
···23232424Client plugins provide their bundles inside `client` and `core` folders. The contents of these folders don't depend on the provided input. Everything inside these folders serves as a scaffolding so the generated code can make HTTP requests.
25252626-<!--@include: ../../examples.md-->
2727-<!--@include: ../../sponsors.md-->
2626+<!--@include: ../../partials/examples.md-->
2727+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/output/json-schema.md
···100100101101You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/@hey-api/schemas/types.d.ts) interface.
102102103103-<!--@include: ../../examples.md-->
104104-<!--@include: ../../sponsors.md-->
103103+<!--@include: ../../partials/examples.md-->
104104+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/output/sdk.md
···228228229229You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/@hey-api/sdk/types.d.ts) interface.
230230231231-<!--@include: ../../examples.md-->
232232-<!--@include: ../../sponsors.md-->
231231+<!--@include: ../../partials/examples.md-->
232232+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/output/typescript.md
···134134135135You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/@hey-api/typescript/types.d.ts) interface.
136136137137-<!--@include: ../../examples.md-->
138138-<!--@include: ../../sponsors.md-->
137137+<!--@include: ../../partials/examples.md-->
138138+<!--@include: ../../partials/sponsors.md-->
+4-10
docs/openapi-ts/plugins.md
···7788Every generated file in your output is created by a plugin. You already learned about the default plugins in [Output](/openapi-ts/output). However, you might be working with third-party packages and wishing to automate more of your boilerplate. This page lists all native and selected community plugins enabling you to do that.
991010-## Hey API
1010+## Core
11111212-Apart from being responsible for the default output, Hey API plugins are the foundation for other plugins. Instead of creating their own primitives, other plugins can reuse the artifacts from Hey API plugins. This results in a smaller output size and a better user experience.
1212+Apart from being responsible for the default output, core plugins are the foundation for other plugins. Instead of creating their own primitives, other plugins can reuse the artifacts from core plugins. This results in a smaller output size and a better user experience.
13131414- [`@hey-api/schemas`](/openapi-ts/output/json-schema) - export OpenAPI definitions as JavaScript objects
1515- [`@hey-api/sdk`](/openapi-ts/output/sdk) - robust and polished SDKs
···53535454Don't see your plugin? [Build your own](/openapi-ts/plugins/custom) or let us know your interest by [opening an issue](https://github.com/hey-api/openapi-ts/issues).
55555656-## Community
5757-5858-Featured community plugins.
5959-6060-- [add plugin](https://github.com/hey-api/openapi-ts/pulls)
6161-6262-<!--@include: ../examples.md-->
6363-<!--@include: ../sponsors.md-->
5656+<!--@include: ../partials/examples.md-->
5757+<!--@include: ../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/ajv.md
···13131414[Ajv](https://ajv.js.org) is the fastest JSON validator for Node.js and browser.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/arktype.md
···13131414[Arktype](https://arktype.io) is a TypeScript's 1:1 validator, optimized from editor to runtime.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/plugins/custom.md
···179179180180Congratulations! You've successfully created your own plugin! :tada:
181181182182-<!--@include: ../../examples.md-->
183183-<!--@include: ../../sponsors.md-->
182182+<!--@include: ../../partials/examples.md-->
183183+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/express.md
···13131414[Express](https://expressjs.com) is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/faker.md
···13131414[Faker](https://fakerjs.dev) is a popular library that generates fake (but reasonable) data that can be used for things such as unit testing, performance testing, building demos, and working without a completed backend.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/plugins/fastify.md
···79798080You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/fastify/types.d.ts) interface.
81818282-<!--@include: ../../examples.md-->
8383-<!--@include: ../../sponsors.md-->
8282+<!--@include: ../../partials/examples.md-->
8383+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/hono.md
···13131414[Hono](https://hono.dev) is a small, simple, and ultrafast web framework built on Web Standards. It works on any JavaScript runtime: Cloudflare Workers, Fastly Compute, Deno, Bun, Vercel, Netlify, AWS Lambda, Lambda@Edge, and Node.js.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/joi.md
···13131414[Joi](https://joi.dev) is the most powerful schema description language and data validator for JavaScript.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/koa.md
···13131414[Koa](https://koajs.com) is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/msw.md
···13131414[MSW](https://mswjs.io) is an API mocking library that allows you to write client-agnostic mocks and reuse them across any frameworks, tools, and environments.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/nest.md
···13131414[Nest](https://nestjs.com) is a progressive Node.js framework for building efficient, reliable and scalable server-side applications.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/nock.md
···13131414[Nock](https://github.com/nock/nock) is an HTTP server mocking and expectations library for Node.js.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/pinia-colada.md
···13131414[Pinia Colada](https://pinia-colada.esm.dev) is the data fetching layer for Pinia.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/superstruct.md
···13131414[Superstruct](https://docs.superstructjs.org) makes it easy to define interfaces and then validate JavaScript data against them.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/supertest.md
···13131414[Supertest](https://github.com/ladjs/supertest) is a super-agent driven library for testing node.js HTTP servers using a fluent API.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/swr.md
···13131414[SWR](https://swr.vercel.app) is a strategy to first return the data from cache (stale), then send the fetch request (revalidate), and finally come with the up-to-date data.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/plugins/tanstack-query.md
···204204205205You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/@tanstack/react-query/types.d.ts) interface.
206206207207-<!--@include: ../../examples.md-->
208208-<!--@include: ../../sponsors.md-->
207207+<!--@include: ../../partials/examples.md-->
208208+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/typebox.md
···13131414[TypeBox](https://github.com/sinclairzx81/typebox) is a JSON Schema type builder with static type resolution for TypeScript.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/plugins/valibot.md
···146146147147You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/valibot/types.d.ts) interface.
148148149149-<!--@include: ../../examples.md-->
150150-<!--@include: ../../sponsors.md-->
149149+<!--@include: ../../partials/examples.md-->
150150+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/yup.md
···13131414[Yup](https://github.com/jquense/yup) is a schema builder for runtime value parsing and validation.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/plugins/zod.md
···243243244244You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/zod/types.d.ts) interface.
245245246246-<!--@include: ../../examples.md-->
247247-<!--@include: ../../sponsors.md-->
246246+<!--@include: ../../partials/examples.md-->
247247+<!--@include: ../../partials/sponsors.md-->
+1-1
docs/openapi-ts/plugins/zustand.md
···13131414[Zustand](https://zustand-demo.pmnd.rs) is a small, fast, and scalable bearbones state management solution.
15151616-<!--@include: ../../sponsors.md-->
1616+<!--@include: ../../partials/sponsors.md-->
+2-2
docs/openapi-ts/state-management.md
···18181919Don't see your state manager? Let us know your interest by [opening an issue](https://github.com/hey-api/openapi-ts/issues).
20202121-<!--@include: ../examples.md-->
2222-<!--@include: ../sponsors.md-->
2121+<!--@include: ../partials/examples.md-->
2222+<!--@include: ../partials/sponsors.md-->
+1-1
docs/openapi-ts/transformers.md
···143143144144You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/plugins/@hey-api/transformers/types.d.ts) interface.
145145146146-<!--@include: ../sponsors.md-->
146146+<!--@include: ../partials/sponsors.md-->
+2-2
docs/openapi-ts/validators.md
···28282929Don't see your validator? Let us know your interest by [opening an issue](https://github.com/hey-api/openapi-ts/issues).
30303131-<!--@include: ../examples.md-->
3232-<!--@include: ../sponsors.md-->
3131+<!--@include: ../partials/examples.md-->
3232+<!--@include: ../partials/sponsors.md-->
+2-2
docs/openapi-ts/web-frameworks.md
···19192020Don't see your framework? Let us know your interest by [opening an issue](https://github.com/hey-api/openapi-ts/issues).
21212222-<!--@include: ../examples.md-->
2323-<!--@include: ../sponsors.md-->
2222+<!--@include: ../partials/examples.md-->
2323+<!--@include: ../partials/sponsors.md-->
···11+## Sponsors
22+33+Help Hey API stay around for the long haul by becoming a [sponsor](https://github.com/sponsors/hey-api).
44+55+<div class="sponsors-list">
66+77+<!--@include: ./sponsors-list.md-->
88+99+</div>
···24242525[Sign In](https://app.heyapi.dev) to Hey API Platform.
26262727+## Contributing
2828+2929+Want to see your code in products used by millions?
3030+3131+Start with our [Contributing](https://heyapi.dev/openapi-ts/community/contributing) guide and release your first feature.
3232+2733## Documentation
28342935Please visit our [website](https://heyapi.dev) for documentation, guides, migrating, and more.
30363137## Sponsors
32383333-Love Hey API? Become our [sponsor](https://github.com/sponsors/hey-api).
3939+Help Hey API stay around for the long haul by becoming a [sponsor](https://github.com/sponsors/hey-api).
34403541<h3 align="center">Gold</h3>
3642···4753 </picture>
4854 </a>
4955 <br/>
5050- Generate best-in-class SDKs.
5656+ Best-in-class SDKs and MCP for your API.
5157 <br/>
5258 <a href="https://kutt.it/pkEZyc" style="text-decoration:none;" target="_blank">
5359 stainless.com
+34-13
packages/openapi-ts/README.md
···8899<p align="center">
1010 <a href="https://opensource.org/license/mit" rel="nofollow"><img src="https://img.shields.io/github/license/hey-api/openapi-ts" alt="MIT License"></a>
1111- <a href="https://github.com/hey-api/openapi-ts/actions?query=branch%3Amain"><img src="https://img.shields.io/github/last-commit/hey-api/openapi-ts" alt="Last commit" /></a>
1111+ <a href="https://npmjs.com/package/@hey-api/openapi-ts" rel="nofollow"><img src="https://img.shields.io/npm/dm/%40hey-api%2Fopenapi-ts?label=npm" alt="npm downloads"></a>
1212+ <a href="https://github.com/hey-api/openapi-ts" rel="nofollow"><img src="https://img.shields.io/github/stars/hey-api/openapi-ts?style=flat&logo=github&label=GitHub&color=54C82D" alt="GitHub stars" /></a>
1213 <a href="https://github.com/hey-api/openapi-ts/actions?query=branch%3Amain"><img src="https://github.com/hey-api/openapi-ts/actions/workflows/ci.yml/badge.svg?event=push&branch=main" alt="CI status" /></a>
1313- <a href="https://github.com/hey-api/openapi-ts/issues" rel="nofollow"><img src="https://img.shields.io/github/issues/hey-api/openapi-ts" alt="Number of open issues"></a>
1414- <a href="https://app.codecov.io/gh/hey-api/openapi-ts/tree/main"><img src="https://codecov.io/gh/hey-api/openapi-ts/branch/main/graph/badge.svg" alt="Test coverage" /></a>
1514</p>
16151716<p align="center">
1817 <a href="https://stackblitz.com/edit/hey-api-example?file=openapi-ts.config.ts,src%2Fclient%2Fschemas.gen.ts,src%2Fclient%2Fsdk.gen.ts,src%2Fclient%2Ftypes.gen.ts">Demo</a>
1918 <span> • </span>
2020- <a href="https://heyapi.dev">Documentation</a>
1919+ <a href="https://heyapi.dev">Docs</a>
2120 <span> • </span>
2221 <a href="https://github.com/hey-api/openapi-ts/issues">Issues</a>
2322 <span> • </span>
2423 <a href="https://github.com/orgs/hey-api/discussions/1495">Roadmap</a>
2524 <span> • </span>
2626- <a href="https://npmjs.com/package/@hey-api/openapi-ts">npm</a>
2525+ <a href="https://heyapi.dev/openapi-ts/community/contributing">Contribute</a>
2626+ <span> • </span>
2727+ <a href="https://heyapi.dev/openapi-ts/community/spotlight#core-team">Join Core Team</a>
2728</p>
28292930<br/>
···44454546[Sign In](https://app.heyapi.dev) to Hey API Platform.
46474848+## Contributing
4949+5050+Want to see your code in products used by millions?
5151+5252+Start with our [Contributing](https://heyapi.dev/openapi-ts/community/contributing) guide and release your first feature.
5353+4754## Sponsors
48554949-Love Hey API? Become our [sponsor](https://github.com/sponsors/hey-api).
5656+Help Hey API stay around for the long haul by becoming a [sponsor](https://github.com/sponsors/hey-api).
50575158<h3 align="center">Gold</h3>
5259···6370 </picture>
6471 </a>
6572 <br/>
6666- Generate best-in-class SDKs.
7373+ Best-in-class SDKs and MCP for your API.
6774 <br/>
6875 <a href="https://kutt.it/pkEZyc" style="text-decoration:none;" target="_blank">
6976 stainless.com
···135142136143## Installation
137144145145+You can download `@hey-api/openapi-ts` from npm using your favorite package manager.
146146+138147#### npm
139148140149```sh
141141-npm install @hey-api/openapi-ts -D
150150+npm install @hey-api/openapi-ts -D -E
142151```
143152144153#### pnpm
145154146155```sh
147147-pnpm add @hey-api/openapi-ts -D
156156+pnpm add @hey-api/openapi-ts -D -E
148157```
149158150159#### yarn
151160152161```sh
153153-yarn add @hey-api/openapi-ts -D
162162+yarn add @hey-api/openapi-ts -D -E
154163```
155164156165#### bun
157166158167```sh
159159-bun add @hey-api/openapi-ts -D
168168+bun add @hey-api/openapi-ts -D -E
160169```
161170162162-We recommend pinning an exact version so you can safely upgrade when you're ready. This package is in [initial development](https://semver.org/spec/v0.1.0.html#spec-item-5) and its API might change before v1.
171171+### Versioning
172172+173173+This package does NOT follow the [semantic versioning](https://semver.org/) strategy. Please pin an exact version so you can safely upgrade when you're ready.
174174+175175+Due to the nature of the package, we use the following versioning strategy.
176176+177177+- `1.x.x`: significant breaking changes, reserved for v1 release
178178+- `x.1.x`: breaking changes
179179+- `x.x.1`: new features, bug fixes, and non-breaking changes
180180+181181+We publish [migration notes](https://heyapi.dev/openapi-ts/migrating) for every breaking release. You might not be impacted by a breaking release if you don't use the affected plugin(s).
182182+183183+## Usage
163184164185### CLI
165186···175196176197### Node.js
177198178178-You can also generate clients programmatically by importing `@hey-api/openapi-ts` in a TypeScript file.
199199+You can also generate output programmatically by importing `@hey-api/openapi-ts` in a TypeScript file.
179200180201```ts
181202import { createClient } from '@hey-api/openapi-ts';
+9-3
packages/vite-plugin/README.md
···11<div align="center">
22 <img alt="Hey API logo" height="150" src="https://heyapi.dev/images/logo-300w.png" width="150">
33 <h1 align="center"><b>Vite Plugin</b></h1>
44- <p align="center">🚀 Vite plugin for <code>@hey-api/openapi-ts<code> codegen.</p>
44+ <p align="center">🚀 Vite plugin for <code>@hey-api/openapi-ts</code> codegen.</p>
55</div>
6677## Dashboard
···10101111[Sign In](https://app.heyapi.dev) to Hey API Platform.
12121313+## Contributing
1414+1515+Want to see your code in products used by millions?
1616+1717+Start with our [Contributing](https://heyapi.dev/openapi-ts/community/contributing) guide and release your first feature.
1818+1319## Documentation
14201521Please visit our [website](https://heyapi.dev) for documentation, guides, migrating, and more.
16221723## Sponsors
18241919-Love Hey API? Become our [sponsor](https://github.com/sponsors/hey-api).
2525+Help Hey API stay around for the long haul by becoming a [sponsor](https://github.com/sponsors/hey-api).
20262127<h3 align="center">Gold</h3>
2228···3339 </picture>
3440 </a>
3541 <br/>
3636- Generate best-in-class SDKs.
4242+ Best-in-class SDKs and MCP for your API.
3743 <br/>
3844 <a href="https://kutt.it/pkEZyc" style="text-decoration:none;" target="_blank">
3945 stainless.com
+124
scripts/update-contributors.sh
···11+#!/usr/bin/env bash
22+33+REPO="hey-api/openapi-ts"
44+PER_PAGE=100
55+PAGE=1
66+USERS=()
77+88+TMP_LOGINS="tmp_logins.txt"
99+TMP_USERS="tmp_users.txt"
1010+1111+CACHE_DIR=".cache/github-users"
1212+mkdir -p "$CACHE_DIR"
1313+1414+AUTH_HEADER=()
1515+if [[ -n "${GITHUB_TOKEN:-}" ]]; then
1616+ AUTH_HEADER=(-H "Authorization: token $GITHUB_TOKEN")
1717+fi
1818+1919+EXCLUDED_FILE="./docs/.contributorsignore"
2020+SINCE_FILE="./docs/.contributorssince"
2121+2222+# disabled for now, we'd need to append to the list instead of write
2323+# if [[ -f "$SINCE_FILE" ]]; then
2424+# SINCE=$(cat "$SINCE_FILE")
2525+# else
2626+# SINCE="2024-01-27T00:00:00Z"
2727+# fi
2828+SINCE="2024-01-27T00:00:00Z"
2929+3030+MAX_COMMIT_EPOCH=0
3131+3232+> "$TMP_USERS"
3333+3434+while :; do
3535+ TMP_JSON=$(mktemp)
3636+ HTTP_STATUS=$(curl -s -w "%{http_code}" -o "$TMP_JSON" \
3737+ "${AUTH_HEADER[@]}" \
3838+ "https://api.github.com/repos/$REPO/commits?sha=main&since=$SINCE&per_page=$PER_PAGE&page=$PAGE")
3939+4040+ if [ "$HTTP_STATUS" != "200" ]; then
4141+ echo "GitHub API error: $HTTP_STATUS"
4242+ cat "$TMP_JSON"
4343+ rm "$TMP_JSON"
4444+ break
4545+ fi
4646+4747+ if ! jq empty "$TMP_JSON" >/dev/null 2>&1; then
4848+ echo "Invalid JSON, stopping."
4949+ cat "$TMP_JSON" > debug_response.json
5050+ rm "$TMP_JSON"
5151+ break
5252+ fi
5353+5454+ COUNT=$(jq 'length' "$TMP_JSON")
5555+ if [ "$COUNT" -eq 0 ]; then
5656+ rm "$TMP_JSON"
5757+ break
5858+ fi
5959+6060+ # Track max commit date epoch for the whole run
6161+ LATEST_COMMIT_DATE=$(jq -r '.[].commit.committer.date' "$TMP_JSON" | sort -r | head -n1)
6262+ if [[ -n "$LATEST_COMMIT_DATE" ]]; then
6363+ EPOCH=$(date -j -f "%Y-%m-%dT%H:%M:%SZ" "$LATEST_COMMIT_DATE" "+%s")
6464+ if [ "$EPOCH" -gt "$MAX_COMMIT_EPOCH" ]; then
6565+ MAX_COMMIT_EPOCH=$EPOCH
6666+ fi
6767+ fi
6868+6969+ jq -r '.[].author | select(.login != null) | .login' "$TMP_JSON" | sort -u > "$TMP_LOGINS"
7070+7171+ while read -r login; do
7272+ if ! grep -Fxq "$login" "$EXCLUDED_FILE"; then
7373+ if ! printf '%s\n' "${USERS[@]}" | grep -qx "$login"; then
7474+ USERS+=("$login")
7575+7676+ CACHE_FILE="$CACHE_DIR/$login.json"
7777+ if [ -f "$CACHE_FILE" ]; then
7878+ USER_JSON=$(<"$CACHE_FILE")
7979+ else
8080+ echo "Fetching user $login"
8181+ USER_JSON=$(curl -s "${AUTH_HEADER[@]}" "https://api.github.com/users/$login")
8282+ echo "$USER_JSON" > "$CACHE_FILE"
8383+ fi
8484+8585+ SANITIZED_JSON=$(echo "$USER_JSON" | tr -d '\000-\037')
8686+ NAME=$(jq -r '.name // empty' <<< "$SANITIZED_JSON")
8787+ echo "$login|$NAME" >> "$TMP_USERS"
8888+ fi
8989+ fi
9090+ done < "$TMP_LOGINS"
9191+9292+ rm "$TMP_JSON" "$TMP_LOGINS"
9393+ PAGE=$((PAGE + 1))
9494+done
9595+9696+# Update SINCE_FILE once after all pages
9797+if [ "$MAX_COMMIT_EPOCH" -gt 0 ]; then
9898+ BUFFER_DAYS=90
9999+ BUFFER_SECONDS=$((BUFFER_DAYS * 86400))
100100+ BUFFERED_EPOCH=$((MAX_COMMIT_EPOCH - BUFFER_SECONDS))
101101+ BUFFERED_DATE=$(date -u -r "$BUFFERED_EPOCH" "+%Y-%m-%dT%H:%M:%SZ")
102102+ echo "$BUFFERED_DATE" > "$SINCE_FILE"
103103+ echo "Updated SINCE to $BUFFERED_DATE"
104104+fi
105105+106106+NAMES_SORTED=$(awk -F'|' '$2 != ""' "$TMP_USERS" | sort -t'|' -k2,2)
107107+NO_NAMES_SORTED=$(awk -F'|' '$2 == ""' "$TMP_USERS" | sort -t'|' -k1,1)
108108+109109+{
110110+ echo "$NAMES_SORTED"
111111+ echo "$NO_NAMES_SORTED"
112112+} | while IFS='|' read -r login name; do
113113+ if [ -n "$name" ]; then
114114+ echo "- [$name](https://github.com/$login)"
115115+ else
116116+ echo "- [$login](https://github.com/$login)"
117117+ fi
118118+done > ./docs/partials/contributors-list.md
119119+120120+if [[ -f "$TMP_USERS" ]]; then
121121+ rm "$TMP_USERS"
122122+fi
123123+124124+echo "Done. Total contributors: ${#USERS[@]}"