fork of hey-api/openapi-ts because I need some additional things

feat: bundle fetch client

Lubos ​ 4ff2aed3 9afbf666

+424 -914
packages/client-core/src/auth.ts packages/openapi-ts/src/plugins/@hey-api/client-core/bundle/auth.ts
packages/client-core/src/bodySerializer.ts packages/openapi-ts/src/plugins/@hey-api/client-core/bundle/bodySerializer.ts
-29
packages/client-core/src/index.ts
··· 1 - export type { Auth } from './auth'; 2 - export { getAuthToken } from './auth'; 3 - export type { 4 - BodySerializer, 5 - QuerySerializer, 6 - QuerySerializerOptions, 7 - } from './bodySerializer'; 8 - export { 9 - formDataBodySerializer, 10 - jsonBodySerializer, 11 - urlSearchParamsBodySerializer, 12 - } from './bodySerializer'; 13 - export type { Field, Fields, FieldsConfig } from './params'; 14 - export { buildClientParams } from './params'; 15 - export type { 16 - ArraySeparatorStyle, 17 - ArrayStyle, 18 - ObjectStyle, 19 - SerializerOptions, 20 - } from './pathSerializer'; 21 - export { 22 - separatorArrayExplode, 23 - separatorArrayNoExplode, 24 - separatorObjectExplode, 25 - serializeArrayParam, 26 - serializeObjectParam, 27 - serializePrimitiveParam, 28 - } from './pathSerializer'; 29 - export type { Client, Config } from './types';
packages/client-core/src/params.ts packages/openapi-ts/src/plugins/@hey-api/client-core/bundle/params.ts
packages/client-core/src/pathSerializer.ts packages/openapi-ts/src/plugins/@hey-api/client-core/bundle/pathSerializer.ts
packages/client-core/src/types.ts packages/openapi-ts/src/plugins/@hey-api/client-core/bundle/types.ts
-436
packages/client-fetch/CHANGELOG.md
··· 1 - # @hey-api/client-fetch 2 - 3 - ## 0.13.1 4 - 5 - ### Patch Changes 6 - 7 - - [#2165](https://github.com/hey-api/openapi-ts/pull/2165) [`f23f3ae`](https://github.com/hey-api/openapi-ts/commit/f23f3ae874385e758eb8d43bb4e274c9858a4e40) Thanks [@mrlubos](https://github.com/mrlubos)! - fix(client): do not serialize path param name in url 8 - 9 - ## 0.13.0 10 - 11 - ### Minor Changes 12 - 13 - - [#2148](https://github.com/hey-api/openapi-ts/pull/2148) [`10d2e03`](https://github.com/hey-api/openapi-ts/commit/10d2e03b8295e4e887fab8d023aa823699efbae8) Thanks [@mrlubos](https://github.com/mrlubos)! - feat: export `buildClientParams` function 14 - 15 - ## 0.12.0 16 - 17 - ### Minor Changes 18 - 19 - - [#2123](https://github.com/hey-api/openapi-ts/pull/2123) [`4d8c030`](https://github.com/hey-api/openapi-ts/commit/4d8c03038979c9a75315cc158789b3c198c62f90) Thanks [@mrlubos](https://github.com/mrlubos)! - feat: add responseStyle option 20 - 21 - **BREAKING**: Update `@hey-api/openapi-ts` to the latest version. 22 - 23 - ## 0.11.0 24 - 25 - ### Minor Changes 26 - 27 - - [#2094](https://github.com/hey-api/openapi-ts/pull/2094) [`8152aaf`](https://github.com/hey-api/openapi-ts/commit/8152aaf4892c48b79fd3dc486eb3c0ea333dc3e6) Thanks [@mrlubos](https://github.com/mrlubos)! - feat: accept responses/errors map instead of union 28 - 29 - **BREAKING**: Update `@hey-api/openapi-ts` to the latest version. 30 - 31 - ## 0.10.2 32 - 33 - ### Patch Changes 34 - 35 - - [#2029](https://github.com/hey-api/openapi-ts/pull/2029) [`1f99066`](https://github.com/hey-api/openapi-ts/commit/1f99066efbb2d0e6b9e3710c701293c2cc09d65e) Thanks [@henry-encord](https://github.com/henry-encord)! - feat: support referencing interceptors by index 36 - 37 - ## 0.10.1 38 - 39 - ### Patch Changes 40 - 41 - - [#2039](https://github.com/hey-api/openapi-ts/pull/2039) [`565e0b8`](https://github.com/hey-api/openapi-ts/commit/565e0b89fbab4556ecdc63dfe08250942681140e) Thanks [@Le0Developer](https://github.com/Le0Developer)! - fix(clients): fix query string encoding with empty lists/objects 42 - 43 - ## 0.10.0 44 - 45 - ### Minor Changes 46 - 47 - - [#1899](https://github.com/hey-api/openapi-ts/pull/1899) [`fed9699`](https://github.com/hey-api/openapi-ts/commit/fed969985275621c7c2b65ffc760c7c66fafaf72) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: set next field to never and recommend switching to the Next.js client 48 - 49 - ## 0.9.0 50 - 51 - ### Minor Changes 52 - 53 - - [#1889](https://github.com/hey-api/openapi-ts/pull/1889) [`67c385b`](https://github.com/hey-api/openapi-ts/commit/67c385bf6289a79726b0cdd85fd81ca501cf2248) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: add @hey-api/openapi-ts to peer dependencies 54 - 55 - ## 0.8.4 56 - 57 - ### Patch Changes 58 - 59 - - [#1850](https://github.com/hey-api/openapi-ts/pull/1850) [`fe43b88`](https://github.com/hey-api/openapi-ts/commit/fe43b889c20a2001f56e259f93f64851a1caa1d1) Thanks [@kelnos](https://github.com/kelnos)! - feat: add support for cookies auth 60 - 61 - ## 0.8.3 62 - 63 - ### Patch Changes 64 - 65 - - [#1774](https://github.com/hey-api/openapi-ts/pull/1774) [`c0b36b9`](https://github.com/hey-api/openapi-ts/commit/c0b36b95645d484034c3af145c5554867568979b) Thanks [@mrlubos](https://github.com/mrlubos)! - docs: announce Hey API platform 66 - 67 - ## 0.8.2 68 - 69 - ### Patch Changes 70 - 71 - - [#1753](https://github.com/hey-api/openapi-ts/pull/1753) [`b8cc9f8`](https://github.com/hey-api/openapi-ts/commit/b8cc9f8a5eaf4f4ff345abc49c14c6b96744c2ea) Thanks [@LinuCC](https://github.com/LinuCC)! - fix: dropping Content-Type header with falsey but valid json body 72 - 73 - ## 0.8.1 74 - 75 - ### Patch Changes 76 - 77 - - [#1674](https://github.com/hey-api/openapi-ts/pull/1674) [`7f0f4a7`](https://github.com/hey-api/openapi-ts/commit/7f0f4a76b06c8fafb33581b522faf8efc6fd85ac) Thanks [@ale18V](https://github.com/ale18V)! - Return a string from urlSearchParamsBodySerializer instead of a URLSearchParams object. 78 - This is due to some runtimes not being able to handle the URLSearchParams object as fetch body. 79 - 80 - ## 0.8.0 81 - 82 - ### Minor Changes 83 - 84 - - [#1661](https://github.com/hey-api/openapi-ts/pull/1661) [`bb6d46a`](https://github.com/hey-api/openapi-ts/commit/bb6d46ae119ce4e7e3a2ab3fded74ac4fb4cdff2) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: make createConfig, CreateClientConfig, and Config accept ClientOptions generic 85 - 86 - ### Added `ClientOptions` interface 87 - 88 - The `Config` interface now accepts an optional generic extending `ClientOptions` instead of `boolean` type `ThrowOnError`. 89 - 90 - ```ts 91 - type Foo = Config<false>; // [!code --] 92 - type Foo = Config<{ throwOnError: false }>; // [!code ++] 93 - ``` 94 - 95 - ## 0.7.3 96 - 97 - ### Patch Changes 98 - 99 - - [#1637](https://github.com/hey-api/openapi-ts/pull/1637) [`2dc380e`](https://github.com/hey-api/openapi-ts/commit/2dc380eabc17c723654beb04ecd7bce6d33d3b49) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: update keywords in package.json 100 - 101 - - [#1649](https://github.com/hey-api/openapi-ts/pull/1649) [`603541e`](https://github.com/hey-api/openapi-ts/commit/603541e307dc2953da7dddd300176865629b50bb) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: handle BigInt in JSON body serializer 102 - 103 - - [#1646](https://github.com/hey-api/openapi-ts/pull/1646) [`2cbffeb`](https://github.com/hey-api/openapi-ts/commit/2cbffeb2cdd6c6143cd68cac68369584879dda31) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: remove client from Options interface 104 - 105 - - [#1646](https://github.com/hey-api/openapi-ts/pull/1646) [`2cbffeb`](https://github.com/hey-api/openapi-ts/commit/2cbffeb2cdd6c6143cd68cac68369584879dda31) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: export TDataShape interface 106 - 107 - ## 0.7.2 108 - 109 - ### Patch Changes 110 - 111 - - [#1626](https://github.com/hey-api/openapi-ts/pull/1626) [`8eba19d`](https://github.com/hey-api/openapi-ts/commit/8eba19d4092fc0903572ab9fdadf0b4c26928ba2) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: export CreateClientConfig type 112 - 113 - ## 0.7.1 114 - 115 - ### Patch Changes 116 - 117 - - [#1600](https://github.com/hey-api/openapi-ts/pull/1600) [`0432418`](https://github.com/hey-api/openapi-ts/commit/0432418d72c94ef94865f8216ed2f723ad5191f9) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: bundle clients from compiled index file 118 - 119 - - [#1596](https://github.com/hey-api/openapi-ts/pull/1596) [`4784727`](https://github.com/hey-api/openapi-ts/commit/47847276e8bc854045044dd414382080270dd779) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: add null to valid bodySerializer types 120 - 121 - ## 0.7.0 122 - 123 - ### Minor Changes 124 - 125 - - [#1568](https://github.com/hey-api/openapi-ts/pull/1568) [`465410c`](https://github.com/hey-api/openapi-ts/commit/465410c201eb19e737e3143ad53a146e95f80107) Thanks [@mrlubos](https://github.com/mrlubos)! - feat: change the default parser 126 - 127 - ## 0.6.0 128 - 129 - ### Minor Changes 130 - 131 - - **BREAKING**: please update `@hey-api/openapi-ts` to the latest version 132 - 133 - feat: replace accessToken and apiKey functions with auth 134 - 135 - ### Added `auth` option 136 - 137 - Client package functions `accessToken` and `apiKey` were replaced with a single `auth` function for fetching auth tokens. If your API supports multiple auth mechanisms, you can use the `auth` argument to return the appropriate token. 138 - 139 - ```js 140 - import { client } from 'client/sdk.gen'; 141 - 142 - client.setConfig({ 143 - accessToken: () => '<my_token>', // [!code --] 144 - apiKey: () => '<my_token>', // [!code --] 145 - auth: (auth) => '<my_token>', // [!code ++] 146 - }); 147 - ``` 148 - 149 - - **BREAKING**: rename exported Security interface to Auth 150 - 151 - - [#1507](https://github.com/hey-api/openapi-ts/pull/1507) [`e2e1410`](https://github.com/hey-api/openapi-ts/commit/e2e1410b22c0c84c40d1b1803e9650d546350cb7) Thanks [@nimobeeren](https://github.com/nimobeeren)! - **BREAKING**: return raw response body (of type `ReadableStream`) when `Content-Type` response header is not provided and `parseAs` is set to `auto` 152 - 153 - ## 0.5.7 154 - 155 - ### Patch Changes 156 - 157 - - [#1468](https://github.com/hey-api/openapi-ts/pull/1468) [`20d7497`](https://github.com/hey-api/openapi-ts/commit/20d7497acb6c046f6a4206c2d8137414e17b2263) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: handle indexed access checks 158 - 159 - - [#1471](https://github.com/hey-api/openapi-ts/pull/1471) [`f86d293`](https://github.com/hey-api/openapi-ts/commit/f86d293f18f133ef6dd2f4864d037611b81edd26) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: add links to the experimental parser callouts 160 - 161 - ## 0.5.6 162 - 163 - ### Patch Changes 164 - 165 - - [#1452](https://github.com/hey-api/openapi-ts/pull/1452) [`ba56424`](https://github.com/hey-api/openapi-ts/commit/ba5642486cdd5461c2372c34b63019c02bc6874e) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: export Security interface 166 - 167 - ## 0.5.5 168 - 169 - ### Patch Changes 170 - 171 - - [#1430](https://github.com/hey-api/openapi-ts/pull/1430) [`9cec9e8`](https://github.com/hey-api/openapi-ts/commit/9cec9e8582c12a8c041b922d9587e16f6f19782a) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: add responseValidator option 172 - 173 - ## 0.5.4 174 - 175 - ### Patch Changes 176 - 177 - - [#1424](https://github.com/hey-api/openapi-ts/pull/1424) [`cbf4e84`](https://github.com/hey-api/openapi-ts/commit/cbf4e84db7f3a47f19d8c3eaa87c71b27912c1a2) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: assign fetch to variable before sending requests 178 - 179 - ## 0.5.3 180 - 181 - ### Patch Changes 182 - 183 - - [#1409](https://github.com/hey-api/openapi-ts/pull/1409) [`646064d`](https://github.com/hey-api/openapi-ts/commit/646064d1aecea988d2b4df73bd24b2ee83394ae0) Thanks [@mrlubos](https://github.com/mrlubos)! - feat: support oauth2 and apiKey security schemes 184 - 185 - ## 0.5.2 186 - 187 - ### Patch Changes 188 - 189 - - [#1394](https://github.com/hey-api/openapi-ts/pull/1394) [`ec48d32`](https://github.com/hey-api/openapi-ts/commit/ec48d323d80de8e6a47ce7ecd732288f0a47e17a) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: disallow additional query parameters in experimental parser output 190 - 191 - ## 0.5.1 192 - 193 - ### Patch Changes 194 - 195 - - [#1391](https://github.com/hey-api/openapi-ts/pull/1391) [`fa8b0f1`](https://github.com/hey-api/openapi-ts/commit/fa8b0f11ed99c63f694a494944ccc2fbfa9706cc) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: assign default fetch implementation dynamically to work with msw 196 - 197 - ## 0.5.0 198 - 199 - ### Minor Changes 200 - 201 - - [#1333](https://github.com/hey-api/openapi-ts/pull/1333) [`734a62d`](https://github.com/hey-api/openapi-ts/commit/734a62dd8d594b8266964fe16766a481d37eb7df) Thanks [@mrlubos](https://github.com/mrlubos)! - feat: add buildUrl() method 202 - 203 - ## Build URL 204 - 205 - ::: warning 206 - To use this feature, you must opt in to the [experimental parser](/openapi-ts/configuration#parser). 207 - ::: 208 - 209 - If you need to access the compiled URL, you can use the `buildUrl()` method. It's loosely typed by default to accept almost any value; in practice, you will want to pass a type hint. 210 - 211 - ```ts 212 - type FooData = { 213 - path: { 214 - fooId: number; 215 - }; 216 - query?: { 217 - bar?: string; 218 - }; 219 - url: '/foo/{fooId}'; 220 - }; 221 - 222 - const url = client.buildUrl<FooData>({ 223 - path: { 224 - fooId: 1, 225 - }, 226 - query: { 227 - bar: 'baz', 228 - }, 229 - url: '/foo/{fooId}', 230 - }); 231 - console.log(url); // prints '/foo/1?bar=baz' 232 - ``` 233 - 234 - ### Patch Changes 235 - 236 - - [#1333](https://github.com/hey-api/openapi-ts/pull/1333) [`734a62d`](https://github.com/hey-api/openapi-ts/commit/734a62dd8d594b8266964fe16766a481d37eb7df) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: experimental parser generates url inside data types 237 - 238 - ## 0.4.4 239 - 240 - ### Patch Changes 241 - 242 - - [#1296](https://github.com/hey-api/openapi-ts/pull/1296) [`4c853d0`](https://github.com/hey-api/openapi-ts/commit/4c853d090b79245854d13831f64731db4a92978b) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: handle charset in auto parseAs detection 243 - 244 - ## 0.4.3 245 - 246 - ### Patch Changes 247 - 248 - - [#1253](https://github.com/hey-api/openapi-ts/pull/1253) [`01dee3d`](https://github.com/hey-api/openapi-ts/commit/01dee3df879232939e43355231147b3d910fb482) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: update sponsorship links 249 - 250 - ## 0.4.2 251 - 252 - ### Patch Changes 253 - 254 - - [#1151](https://github.com/hey-api/openapi-ts/pull/1151) [`587791d`](https://github.com/hey-api/openapi-ts/commit/587791dfede0167fbed229281467e4c4875936f5) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: update website domain, add license documentation 255 - 256 - ## 0.4.1 257 - 258 - ### Patch Changes 259 - 260 - - [#1145](https://github.com/hey-api/openapi-ts/pull/1145) [`a0a5551`](https://github.com/hey-api/openapi-ts/commit/a0a55510d30a1a8dea0ade4908b5b13d51b5f9e6) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: update license field in package.json to match the license, revert client packages license to MIT 261 - 262 - ## 0.4.0 263 - 264 - ### Minor Changes 265 - 266 - - [#1098](https://github.com/hey-api/openapi-ts/pull/1098) [`df5c690`](https://github.com/hey-api/openapi-ts/commit/df5c69048a03a1c7729a5200c586164287a8a6fa) Thanks [@mrlubos](https://github.com/mrlubos)! - feat: add error interceptors 267 - 268 - ### Patch Changes 269 - 270 - - [#1098](https://github.com/hey-api/openapi-ts/pull/1098) [`df5c690`](https://github.com/hey-api/openapi-ts/commit/df5c69048a03a1c7729a5200c586164287a8a6fa) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: throw raw error when throwOnError is true 271 - 272 - ## 0.3.4 273 - 274 - ### Patch Changes 275 - 276 - - [#1092](https://github.com/hey-api/openapi-ts/pull/1092) [`7f986c2`](https://github.com/hey-api/openapi-ts/commit/7f986c2c7726ed8fbf16f8b235b7769c7d990502) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: export RequestResult type 277 - 278 - ## 0.3.3 279 - 280 - ### Patch Changes 281 - 282 - - [#1083](https://github.com/hey-api/openapi-ts/pull/1083) [`fe743c2`](https://github.com/hey-api/openapi-ts/commit/fe743c2d41c23bf7e1706bceedd6319299131197) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: export client-facing types again 283 - 284 - ## 0.3.2 285 - 286 - ### Patch Changes 287 - 288 - - [#1075](https://github.com/hey-api/openapi-ts/pull/1075) [`11a276a`](https://github.com/hey-api/openapi-ts/commit/11a276a1e35dde0735363e892d8142016fd87eec) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: properly handle dual publishing and type generation 289 - 290 - ## 0.3.1 291 - 292 - ### Patch Changes 293 - 294 - - [#1057](https://github.com/hey-api/openapi-ts/pull/1057) [`7ae2b1d`](https://github.com/hey-api/openapi-ts/commit/7ae2b1db047f3b6efe917a8b43ac7c851fb86c8f) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: allow responseTransformer property with body and headers 295 - 296 - - [#1064](https://github.com/hey-api/openapi-ts/pull/1064) [`2079c6e`](https://github.com/hey-api/openapi-ts/commit/2079c6e83a6b71e157c8e7ea56260b4e9ff8411d) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: encode path params 297 - 298 - ## 0.3.0 299 - 300 - ### Minor Changes 301 - 302 - - [#1011](https://github.com/hey-api/openapi-ts/pull/1011) [`7ebc1d4`](https://github.com/hey-api/openapi-ts/commit/7ebc1d44af74db2522219d71d240325f6bc5689d) Thanks [@goltra](https://github.com/goltra)! - feat: Function to clear and check if exist an interceptor in client-fetch 303 - 304 - ## 0.2.4 305 - 306 - ### Patch Changes 307 - 308 - - [#899](https://github.com/hey-api/openapi-ts/pull/899) [`a8c84c0`](https://github.com/hey-api/openapi-ts/commit/a8c84c02dbb5ef1a59f5d414dff425e135c7a446) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: preserve key name in Date transformation 309 - 310 - - [#901](https://github.com/hey-api/openapi-ts/pull/901) [`7825a2f`](https://github.com/hey-api/openapi-ts/commit/7825a2fba566a76c63775172ef0569ef375406b6) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: export more types to resolve TypeScript errors 311 - 312 - ## 0.2.3 313 - 314 - ### Patch Changes 315 - 316 - - [#895](https://github.com/hey-api/openapi-ts/pull/895) [`44de8d8`](https://github.com/hey-api/openapi-ts/commit/44de8d89556b3abf48acc4e23c9b9c198059c757) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: define ThrowOnError generic as the last argument 317 - 318 - ## 0.2.2 319 - 320 - ### Patch Changes 321 - 322 - - [#877](https://github.com/hey-api/openapi-ts/pull/877) [`72e2c4f`](https://github.com/hey-api/openapi-ts/commit/72e2c4fd7d07e532a848078c034bf33b6558ad3c) Thanks [@qqilihq](https://github.com/qqilihq)! - Relax JSON content type check so that e.g. `application/json; charset=utf-8` is properly detected 323 - 324 - ## 0.2.1 325 - 326 - ### Patch Changes 327 - 328 - - [#864](https://github.com/hey-api/openapi-ts/pull/864) [`ec6bfc8`](https://github.com/hey-api/openapi-ts/commit/ec6bfc8292cce7663dfc6e0fcd89b44c56f08bb4) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: infer response shape based on throwOnError option value 329 - 330 - - [#852](https://github.com/hey-api/openapi-ts/pull/852) [`93e2d11`](https://github.com/hey-api/openapi-ts/commit/93e2d11d2a8ddd1f78dde46eceeb5543cae07e36) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: process application types except for application/json as blobs 331 - 332 - - [#873](https://github.com/hey-api/openapi-ts/pull/873) [`a73da1c`](https://github.com/hey-api/openapi-ts/commit/a73da1c854503246b6c58f1abea5dd77727eedca) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: export RequestOptionsBase interface 333 - 334 - - [#863](https://github.com/hey-api/openapi-ts/pull/863) [`da92c53`](https://github.com/hey-api/openapi-ts/commit/da92c535c14e3217d565472fe65c687243bc0dd8) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: cast query params dates into ISO strings 335 - 336 - ## 0.2.0 337 - 338 - ### Minor Changes 339 - 340 - - [#830](https://github.com/hey-api/openapi-ts/pull/830) [`babf11a`](https://github.com/hey-api/openapi-ts/commit/babf11ae082af642ac71cfee9c523cc976132a50) Thanks [@mrlubos](https://github.com/mrlubos)! - feat: remove default client export (see migration docs) 341 - 342 - - [#830](https://github.com/hey-api/openapi-ts/pull/830) [`babf11a`](https://github.com/hey-api/openapi-ts/commit/babf11ae082af642ac71cfee9c523cc976132a50) Thanks [@mrlubos](https://github.com/mrlubos)! - feat: add `setConfig()` method 343 - 344 - ## 0.1.14 345 - 346 - ### Patch Changes 347 - 348 - - [#845](https://github.com/hey-api/openapi-ts/pull/845) [`8c9c874`](https://github.com/hey-api/openapi-ts/commit/8c9c8749594622283eed2c37bddfa0f1b8cf23a4) Thanks [@julianklumpers](https://github.com/julianklumpers)! - Expose Config interface to consumers for Typescript augmentation 349 - 350 - ## 0.1.13 351 - 352 - ### Patch Changes 353 - 354 - - [#842](https://github.com/hey-api/openapi-ts/pull/842) [`8e3c634`](https://github.com/hey-api/openapi-ts/commit/8e3c6343672b9280365c3266f94e4acba533bf29) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: correctly set default parseAs value to "auto" 355 - 356 - ## 0.1.12 357 - 358 - ### Patch Changes 359 - 360 - - [#816](https://github.com/hey-api/openapi-ts/pull/816) [`0c4ee06`](https://github.com/hey-api/openapi-ts/commit/0c4ee06548f177ce83d73802471c659834c63566) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: remove Content-Type header when there's no request body 361 - 362 - ## 0.1.11 363 - 364 - ### Patch Changes 365 - 366 - - [#613](https://github.com/hey-api/openapi-ts/pull/613) [`c0ee1e3`](https://github.com/hey-api/openapi-ts/commit/c0ee1e3b56d67ab922491c488233bd89c8902986) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: use opts to get responseTransformer instead of options 367 - 368 - ## 0.1.10 369 - 370 - ### Patch Changes 371 - 372 - - [#788](https://github.com/hey-api/openapi-ts/pull/788) [`ecd94f2`](https://github.com/hey-api/openapi-ts/commit/ecd94f2adab1dbe10e7a9c310d1fb6d1f170d332) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: handle application/x-www-form-urlencoded content in request body 373 - 374 - ## 0.1.9 375 - 376 - ### Patch Changes 377 - 378 - - [#779](https://github.com/hey-api/openapi-ts/pull/779) [`e7e98d2`](https://github.com/hey-api/openapi-ts/commit/e7e98d279fe0ee4c71ae72a7b57afdd517a89641) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: always use client options when passed to service 379 - 380 - ## 0.1.8 381 - 382 - ### Patch Changes 383 - 384 - - [#756](https://github.com/hey-api/openapi-ts/pull/756) [`d546a3f`](https://github.com/hey-api/openapi-ts/commit/d546a3f9fd0a6ff5181deb50ed467acd75370889) Thanks [@jumika](https://github.com/jumika)! - fix: allow number as body type 385 - 386 - ## 0.1.7 387 - 388 - ### Patch Changes 389 - 390 - - [#736](https://github.com/hey-api/openapi-ts/pull/736) [`8410046`](https://github.com/hey-api/openapi-ts/commit/8410046c45d25db48ba940a0c6c7a7cda9e86b6a) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: handle async response transformers 391 - 392 - ## 0.1.6 393 - 394 - ### Patch Changes 395 - 396 - - [#700](https://github.com/hey-api/openapi-ts/pull/700) [`aa661a1`](https://github.com/hey-api/openapi-ts/commit/aa661a136d1174eadf4d11538e473b0d96b91b81) Thanks [@lsdch](https://github.com/lsdch)! - export RequestResult type 397 - 398 - ## 0.1.5 399 - 400 - ### Patch Changes 401 - 402 - - [#698](https://github.com/hey-api/openapi-ts/pull/698) [`fc2b166`](https://github.com/hey-api/openapi-ts/commit/fc2b166c8f683ece948284cf7a629fcd5b096b40) Thanks [@lsdch](https://github.com/lsdch)! - export RequestResult type 403 - 404 - ## 0.1.4 405 - 406 - ### Patch Changes 407 - 408 - - [#674](https://github.com/hey-api/openapi-ts/pull/674) [`da31b74`](https://github.com/hey-api/openapi-ts/commit/da31b7424b30e00233df5a3867022832c4981312) Thanks [@mlankamp](https://github.com/mlankamp)! - fix: allow non-object array in body 409 - 410 - - [#682](https://github.com/hey-api/openapi-ts/pull/682) [`34980a4`](https://github.com/hey-api/openapi-ts/commit/34980a4dc8269c9256d65984ff29270851689c43) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: stronger types for result shape 411 - 412 - - [#682](https://github.com/hey-api/openapi-ts/pull/682) [`34980a4`](https://github.com/hey-api/openapi-ts/commit/34980a4dc8269c9256d65984ff29270851689c43) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: generate correct error types 413 - 414 - ## 0.1.3 415 - 416 - ### Patch Changes 417 - 418 - - [#639](https://github.com/hey-api/openapi-ts/pull/639) [`820002f`](https://github.com/hey-api/openapi-ts/commit/820002ffe687b01c7a9b2250e19ddbafd1aaed71) Thanks [@mrlubos](https://github.com/mrlubos)! - fix: do not widen body type on optional prop 419 - 420 - ## 0.1.2 421 - 422 - ### Patch Changes 423 - 424 - - fix: JSON stringify object headers ([#616](https://github.com/hey-api/openapi-ts/pull/616)) 425 - 426 - ## 0.1.1 427 - 428 - ### Patch Changes 429 - 430 - - fix: export Client interface ([#610](https://github.com/hey-api/openapi-ts/pull/610)) 431 - 432 - ## 0.1.0 433 - 434 - ### Minor Changes 435 - 436 - - feat: initial release ([#602](https://github.com/hey-api/openapi-ts/pull/602))
-21
packages/client-fetch/LICENSE.md
··· 1 - MIT License 2 - 3 - Copyright (c) Hey API 4 - 5 - Permission is hereby granted, free of charge, to any person obtaining a copy 6 - of this software and associated documentation files (the "Software"), to deal 7 - in the Software without restriction, including without limitation the rights 8 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 - copies of the Software, and to permit persons to whom the Software is 10 - furnished to do so, subject to the following conditions: 11 - 12 - The above copyright notice and this permission notice shall be included in all 13 - copies or substantial portions of the Software. 14 - 15 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 - SOFTWARE.
-101
packages/client-fetch/README.md
··· 1 - <div align="center"> 2 - <img alt="Hey API logo" height="150" src="https://heyapi.dev/images/logo-300w.png" width="150"> 3 - <h1 align="center"><b>Fetch API Client</b></h1> 4 - <p align="center">🚀 Fetch API client for `@hey-api/openapi-ts` codegen.</p> 5 - </div> 6 - 7 - [Live demo](https://stackblitz.com/edit/hey-api-client-fetch-example?file=openapi-ts.config.ts,src%2Fclient%2Fschemas.gen.ts,src%2Fclient%2Fsdk.gen.ts,src%2Fclient%2Ftypes.gen.ts,src%2FApp.tsx) 8 - 9 - ## Features 10 - 11 - - seamless integration with `@hey-api/openapi-ts` ecosystem 12 - - type-safe response data and errors 13 - - response data validation and transformation 14 - - access to the original request and response 15 - - granular request and response customization options 16 - - minimal learning curve thanks to extending the underlying technology 17 - - support bundling inside the generated output 18 - - [platform](https://heyapi.dev/openapi-ts/integrations) for automating codegen builds 19 - 20 - ## Dashboard 21 - 22 - Hey API is an ecosystem of products helping you build better APIs. Superpower your codegen and APIs with our platform. 23 - 24 - [Sign In](https://app.heyapi.dev) to Hey API platform. 25 - 26 - ## Documentation 27 - 28 - Please visit our [website](https://heyapi.dev) for documentation, guides, migrating, and more. 29 - 30 - ## Sponsors 31 - 32 - Love Hey API? Become our [sponsor](https://github.com/sponsors/hey-api). 33 - 34 - <h3 align="center">Gold</h3> 35 - 36 - <table align="center" style="justify-content: center;align-items: center;display: flex;"> 37 - <tbody> 38 - <tr> 39 - <td align="center"> 40 - <p></p> 41 - <p> 42 - <a href="https://kutt.it/pkEZyc" target="_blank"> 43 - <picture height="50px"> 44 - <source media="(prefers-color-scheme: dark)" srcset="https://heyapi.dev/images/stainless-logo-wordmark-480w.jpeg"> 45 - <img alt="Stainless logo" height="50px" src="https://heyapi.dev/images/stainless-logo-wordmark-480w.jpeg"> 46 - </picture> 47 - </a> 48 - <br/> 49 - Generate best-in-class SDKs. 50 - <br/> 51 - <a href="https://kutt.it/pkEZyc" style="text-decoration:none;" target="_blank"> 52 - stainless.com 53 - </a> 54 - </p> 55 - <p></p> 56 - </td> 57 - </tr> 58 - </tbody> 59 - </table> 60 - 61 - <h3 align="center">Silver</h3> 62 - 63 - <table align="center" style="justify-content: center;align-items: center;display: flex;"> 64 - <tbody> 65 - <tr> 66 - <td align="center"> 67 - <a href="https://kutt.it/skQUVd" target="_blank"> 68 - <picture height="40px"> 69 - <source media="(prefers-color-scheme: dark)" srcset="https://heyapi.dev/images/scalar-logo-wordmark-480w.jpeg"> 70 - <img alt="Scalar logo" height="40px" src="https://heyapi.dev/images/scalar-logo-wordmark-480w.jpeg"> 71 - </picture> 72 - </a> 73 - <br/> 74 - <a href="https://kutt.it/skQUVd" style="text-decoration:none;" target="_blank"> 75 - scalar.com 76 - </a> 77 - </td> 78 - </tr> 79 - </tbody> 80 - </table> 81 - 82 - <h3 align="center">Bronze</h3> 83 - 84 - <table align="center" style="justify-content: center;align-items: center;display: flex;"> 85 - <tbody> 86 - <tr> 87 - <td align="center"> 88 - <a href="https://kutt.it/YpaKsX" target="_blank"> 89 - <picture height="34px"> 90 - <source media="(prefers-color-scheme: dark)" srcset="https://heyapi.dev/images/kinde-logo-wordmark-dark-480w.webp"> 91 - <img alt="Kinde logo" height="34px" src="https://heyapi.dev/images/kinde-logo-wordmark-480w.jpeg"> 92 - </picture> 93 - </a> 94 - </td> 95 - </tr> 96 - </tbody> 97 - </table> 98 - 99 - ## Migration Guides 100 - 101 - [OpenAPI Typescript Codegen](https://heyapi.dev/openapi-ts/migrating#openapi-typescript-codegen)
-76
packages/client-fetch/package.json
··· 1 - { 2 - "name": "@hey-api/client-fetch", 3 - "version": "0.13.1", 4 - "description": "🚀 Fetch API client for `@hey-api/openapi-ts` codegen.", 5 - "homepage": "https://heyapi.dev/", 6 - "repository": { 7 - "type": "git", 8 - "url": "git+https://github.com/hey-api/openapi-ts.git" 9 - }, 10 - "bugs": { 11 - "url": "https://github.com/hey-api/openapi-ts/issues" 12 - }, 13 - "license": "MIT", 14 - "author": { 15 - "email": "lubos@heyapi.dev", 16 - "name": "Hey API", 17 - "url": "https://heyapi.dev" 18 - }, 19 - "funding": "https://github.com/sponsors/hey-api", 20 - "keywords": [ 21 - "client", 22 - "codegen", 23 - "fetch", 24 - "http", 25 - "javascript", 26 - "openapi", 27 - "react", 28 - "rest", 29 - "svelte", 30 - "swagger", 31 - "typescript", 32 - "vue" 33 - ], 34 - "type": "module", 35 - "main": "./dist/index.cjs", 36 - "module": "./dist/index.js", 37 - "types": "./dist/index.d.ts", 38 - "exports": { 39 - ".": { 40 - "import": { 41 - "types": "./dist/index.d.ts", 42 - "default": "./dist/index.js" 43 - }, 44 - "require": { 45 - "types": "./dist/index.d.cts", 46 - "default": "./dist/index.cjs" 47 - } 48 - }, 49 - "./package.json": "./package.json" 50 - }, 51 - "sideEffects": false, 52 - "files": [ 53 - "dist", 54 - "LICENSE.md", 55 - "src" 56 - ], 57 - "scripts": { 58 - "build": "tsup && rollup -c && pnpm check-exports", 59 - "check-exports": "attw --pack .", 60 - "dev": "tsup --watch", 61 - "prepublishOnly": "pnpm build", 62 - "test:coverage": "vitest run --coverage", 63 - "test:update": "vitest watch --update", 64 - "test:watch": "vitest watch", 65 - "test": "vitest run", 66 - "typecheck": "vitest --typecheck --watch=false" 67 - }, 68 - "peerDependencies": { 69 - "@hey-api/openapi-ts": "< 2" 70 - }, 71 - "devDependencies": { 72 - "@config/vite-base": "workspace:*", 73 - "@hey-api/client-core": "workspace:*", 74 - "@hey-api/openapi-ts": "workspace:*" 75 - } 76 - }
-30
packages/client-fetch/rollup.config.mjs
··· 1 - import path from 'node:path'; 2 - 3 - import { defineConfig } from 'rollup'; 4 - import dts from 'rollup-plugin-dts'; 5 - 6 - const files = ['index.d.ts', 'index.d.cts']; 7 - 8 - export default files.map((file) => 9 - defineConfig({ 10 - external: (id) => { 11 - const normalizedId = id.split(path.sep).join('/'); 12 - if (normalizedId === '@hey-api/client-core') { 13 - return false; 14 - } 15 - return ( 16 - !normalizedId.startsWith('/') && !/^[a-zA-Z]:\//.test(normalizedId) 17 - ); 18 - }, 19 - input: `./dist/${file}`, 20 - output: { 21 - file: `./dist/${file}`, 22 - format: 'es', 23 - }, 24 - plugins: [ 25 - dts({ 26 - respectExternal: true, 27 - }), 28 - ], 29 - }), 30 - );
+1 -1
packages/client-fetch/src/__tests__/client.test.ts packages/openapi-ts/src/plugins/@hey-api/client-fetch/__tests__/client.test.ts
··· 1 1 import { describe, expect, it } from 'vitest'; 2 2 3 - import { createClient } from '../client'; 3 + import { createClient } from '../client/client'; 4 4 5 5 describe('buildUrl', () => { 6 6 const client = createClient();
+2 -2
packages/client-fetch/src/__tests__/utils.test.ts packages/openapi-ts/src/plugins/@hey-api/client-fetch/__tests__/utils.test.ts
··· 1 1 import type { Auth } from '@hey-api/client-core'; 2 2 import { describe, expect, it, vi } from 'vitest'; 3 3 4 - import type { Client } from '../types'; 5 - import { buildUrl, getParseAs, setAuthParams } from '../utils'; 4 + import type { Client } from '../client/types'; 5 + import { buildUrl, getParseAs, setAuthParams } from '../client/utils'; 6 6 7 7 describe('buildUrl', () => { 8 8 const scenarios: Array<{
packages/client-fetch/src/client.ts packages/openapi-ts/src/plugins/@hey-api/client-fetch/bundle/client.ts
-21
packages/client-fetch/src/index.ts
··· 1 - export { createClient } from './client'; 2 - export type { 3 - Client, 4 - ClientOptions, 5 - Config, 6 - CreateClientConfig, 7 - Options, 8 - OptionsLegacyParser, 9 - RequestOptions, 10 - RequestResult, 11 - ResponseStyle, 12 - TDataShape, 13 - } from './types'; 14 - export { createConfig } from './utils'; 15 - export type { Auth, QuerySerializerOptions } from '@hey-api/client-core'; 16 - export { 17 - buildClientParams, 18 - formDataBodySerializer, 19 - jsonBodySerializer, 20 - urlSearchParamsBodySerializer, 21 - } from '@hey-api/client-core';
+2 -3
packages/client-fetch/src/types.ts packages/openapi-ts/src/plugins/@hey-api/client-fetch/bundle/types.ts
··· 1 + import type { Auth } from '../../client-core/bundle/auth'; 1 2 import type { 2 - Auth, 3 3 Client as CoreClient, 4 4 Config as CoreConfig, 5 - } from '@hey-api/client-core'; 6 - 5 + } from '../../client-core/bundle/types'; 7 6 import type { Middleware } from './utils'; 8 7 9 8 export type ResponseStyle = 'data' | 'fields';
+4 -5
packages/client-fetch/src/utils.ts packages/openapi-ts/src/plugins/@hey-api/client-fetch/bundle/utils.ts
··· 1 + import { getAuthToken } from '../../client-core/bundle/auth'; 1 2 import type { 2 3 QuerySerializer, 3 4 QuerySerializerOptions, 4 - } from '@hey-api/client-core'; 5 + } from '../../client-core/bundle/bodySerializer'; 6 + import { jsonBodySerializer } from '../../client-core/bundle/bodySerializer'; 5 7 import { 6 - getAuthToken, 7 - jsonBodySerializer, 8 8 serializeArrayParam, 9 9 serializeObjectParam, 10 10 serializePrimitiveParam, 11 - } from '@hey-api/client-core'; 12 - 11 + } from '../../client-core/bundle/pathSerializer'; 13 12 import type { Client, ClientOptions, Config, RequestOptions } from './types'; 14 13 15 14 interface PathSerializer {
-14
packages/client-fetch/tsconfig.base.json
··· 1 - { 2 - "compilerOptions": { 3 - "declaration": true, 4 - "esModuleInterop": true, 5 - "module": "ESNext", 6 - "moduleResolution": "Bundler", 7 - "noImplicitOverride": true, 8 - "noUncheckedIndexedAccess": true, 9 - "noUnusedLocals": true, 10 - "strict": true, 11 - "target": "ES2022", 12 - "useUnknownInCatchVariables": false 13 - } 14 - }
-7
packages/client-fetch/tsconfig.json
··· 1 - { 2 - "extends": "./tsconfig.base.json", 3 - "compilerOptions": { 4 - "declaration": false, 5 - "esModuleInterop": true 6 - } 7 - }
-12
packages/client-fetch/tsup.config.ts
··· 1 - import { defineConfig } from 'tsup'; 2 - 3 - export default defineConfig((options) => ({ 4 - clean: true, 5 - dts: true, 6 - entry: ['src/index.ts'], 7 - format: ['cjs', 'esm'], 8 - minify: !options.watch, 9 - shims: false, 10 - sourcemap: true, 11 - treeshake: true, 12 - }));
-10
packages/client-fetch/vitest.config.ts
··· 1 - import { fileURLToPath } from 'node:url'; 2 - 3 - import { createVitestConfig } from '@config/vite-base'; 4 - 5 - export default createVitestConfig( 6 - fileURLToPath(new URL('./', import.meta.url)), 7 - { 8 - // Add specific configuration here if needed 9 - }, 10 - );
-4
packages/openapi-ts-tests/package.json
··· 30 30 "@angular/platform-browser-dynamic": "19.2.0", 31 31 "@angular/router": "19.2.0", 32 32 "@config/vite-base": "workspace:*", 33 - "@hey-api/client-axios": "workspace:*", 34 - "@hey-api/client-core": "workspace:*", 35 33 "@hey-api/client-custom": "workspace:*", 36 - "@hey-api/client-fetch": "workspace:*", 37 - "@hey-api/client-next": "workspace:*", 38 34 "@hey-api/client-nuxt": "workspace:*", 39 35 "@hey-api/openapi-ts": "workspace:*", 40 36 "@tanstack/angular-query-experimental": "5.73.3",
-12
packages/openapi-ts-tests/test/clients.test.ts
··· 60 60 }, 61 61 { 62 62 config: createConfig({ 63 - output: 'bundle', 64 - plugins: [ 65 - { 66 - bundle: true, 67 - name: client, 68 - }, 69 - ], 70 - }), 71 - description: 'default output with bundled client', 72 - }, 73 - { 74 - config: createConfig({ 75 63 output: 'sdk-client-optional', 76 64 plugins: [ 77 65 client,
+2 -4
packages/openapi-ts-tests/test/openapi-ts.config.ts
··· 92 92 // bundle: true, 93 93 // }), 94 94 // myClientPlugin({ 95 - // // bundle: true, 95 + // bundle: true, 96 96 // }), 97 97 { 98 98 // baseUrl: false, 99 - // bundle: true, 100 - // bundleSource_EXPERIMENTAL: true, 101 99 // exportFromIndex: true, 102 100 // name: '@hey-api/client-fetch', 103 101 // name: 'legacy/fetch', ··· 115 113 // classStructure: 'off', 116 114 // client: false, 117 115 // include... 118 - // instance: true, 116 + instance: true, 119 117 name: '@hey-api/sdk', 120 118 // operationId: false, 121 119 // responseStyle: 'data',
+40 -12
packages/openapi-ts/src/generate/client.ts
··· 1 1 import fs from 'node:fs'; 2 2 import path from 'node:path'; 3 + import { fileURLToPath } from 'node:url'; 3 4 4 5 import type { ImportExportItemObject } from '../compiler/utils'; 5 6 import type { Client } from '../plugins/@hey-api/client-core/types'; ··· 7 8 import type { Plugin } from '../plugins/types'; 8 9 import type { Config } from '../types/config'; 9 10 import { ensureDirSync, relativeModulePath } from './utils'; 11 + 12 + const __filename = fileURLToPath(import.meta.url); 13 + const __dirname = path.dirname(__filename); 10 14 11 15 const getClientSrcPath = (name: string) => { 12 16 const pluginFilePathComponents = name.split(path.sep); ··· 57 61 }, 58 62 } satisfies Record<string, ImportExportItemObject>; 59 63 64 + const replaceCoreImports = (filePath: string) => { 65 + let content = fs.readFileSync(filePath, 'utf8'); 66 + // Replace '../../client-core/bundle' with '../core' 67 + content = content.replace( 68 + /from ['"]\.\.\/\.\.\/client-core\/bundle/g, 69 + "from '../core", 70 + ); 71 + fs.writeFileSync(filePath, content, 'utf8'); 72 + }; 73 + 60 74 /** 61 75 * Creates a `client` folder containing the same modules as the client package. 62 76 */ ··· 67 81 outputPath: string; 68 82 plugin: Plugin.Config<Client.Config & { name: any }>; 69 83 }): void => { 84 + // copy Hey API clients to output 85 + const isPluginHeyApiClient = plugin.name.startsWith('@hey-api/client-'); 86 + if (isPluginHeyApiClient) { 87 + // copy client core 88 + const coreOutputPath = path.resolve(outputPath, 'core'); 89 + ensureDirSync(coreOutputPath); 90 + const coreDistPath = path.resolve(__dirname, 'clients', 'core'); 91 + fs.cpSync(coreDistPath, coreOutputPath, { recursive: true }); 92 + // copy client bundle 93 + const clientOutputPath = path.resolve(outputPath, 'client'); 94 + ensureDirSync(clientOutputPath); 95 + const clientDistFolderName = plugin.name.slice('@hey-api/client-'.length); 96 + const clientDistPath = path.resolve( 97 + __dirname, 98 + 'clients', 99 + clientDistFolderName, 100 + ); 101 + fs.cpSync(clientDistPath, clientOutputPath, { recursive: true }); 102 + // replace core imports in client bundle 103 + const clientFiles = fs.readdirSync(clientOutputPath); 104 + for (const file of clientFiles) { 105 + replaceCoreImports(path.resolve(clientOutputPath, file)); 106 + } 107 + return; 108 + } 109 + 70 110 // create folder for client modules 71 111 const dirPath = path.resolve(outputPath, 'client'); 72 112 ensureDirSync(dirPath); ··· 74 114 let clientSrcPath = ''; 75 115 if (path.isAbsolute(plugin.name)) { 76 116 clientSrcPath = getClientSrcPath(plugin.name); 77 - } 78 - 79 - if (plugin.bundleSource_EXPERIMENTAL && !clientSrcPath) { 80 - const clientModulePath = path.normalize(require.resolve(plugin.name)); 81 - const clientModulePathComponents = clientModulePath.split(path.sep); 82 - clientSrcPath = [ 83 - ...clientModulePathComponents.slice( 84 - 0, 85 - clientModulePathComponents.indexOf('dist'), 86 - ), 87 - 'src', 88 - ].join(path.sep); 89 117 } 90 118 91 119 if (clientSrcPath) {
+1 -1
packages/openapi-ts/src/getSpec.ts
··· 5 5 sendRequest, 6 6 } from '@hey-api/json-schema-ref-parser'; 7 7 8 - import { mergeHeaders } from './mergeHeaders'; 8 + import { mergeHeaders } from './plugins/@hey-api/client-fetch/bundle'; 9 9 import type { Config } from './types/config'; 10 10 import type { WatchValues } from './types/types'; 11 11
-32
packages/openapi-ts/src/mergeHeaders.ts
··· 1 - // copy-pasted from @hey-api/client-fetch 2 - export const mergeHeaders = ( 3 - ...headers: Array<RequestInit['headers'] | undefined> 4 - ): Headers => { 5 - const mergedHeaders = new Headers(); 6 - for (const header of headers) { 7 - if (!header || typeof header !== 'object') { 8 - continue; 9 - } 10 - 11 - const iterator = 12 - header instanceof Headers ? header.entries() : Object.entries(header); 13 - 14 - for (const [key, value] of iterator) { 15 - if (value === null) { 16 - mergedHeaders.delete(key); 17 - } else if (Array.isArray(value)) { 18 - for (const v of value) { 19 - mergedHeaders.append(key, v as string); 20 - } 21 - } else if (value !== undefined) { 22 - // assume object headers are meant to be JSON stringified, i.e. their 23 - // content value in OpenAPI specification is 'application/json' 24 - mergedHeaders.set( 25 - key, 26 - typeof value === 'object' ? JSON.stringify(value) : (value as string), 27 - ); 28 - } 29 - } 30 - } 31 - return mergedHeaders; 32 - };
+1 -1
packages/openapi-ts/src/plugins/@hey-api/client-core/config.ts
··· 2 2 _dependencies: ['@hey-api/typescript'], 3 3 _tags: ['client'], 4 4 baseUrl: true, 5 - bundle: false, 5 + bundle: true, 6 6 exportFromIndex: false, 7 7 output: 'client', 8 8 } as const;
+3 -16
packages/openapi-ts/src/plugins/@hey-api/client-core/types.d.ts
··· 36 36 */ 37 37 baseUrl?: string | number | boolean; 38 38 /** 39 - * Bundle the client module? Set this to true if don't want to declare it 40 - * as a separate dependency. When true, the client module will be generated 41 - * from the client package and bundled with the rest of the generated output. 42 - * This is useful if you're repackaging the output, publishing it to other 43 - * users, and you don't want them to install any dependencies. 39 + * Bundle the client module? When `true`, the client module will be copied 40 + * from the client plugin and bundled with the generated output. 44 41 * 45 - * @default false 42 + * @default true 46 43 */ 47 44 bundle?: boolean; 48 - /** 49 - * **This is an experimental feature.** 50 - * 51 - * When `bundle` is set to `true`, you can optionally set this option 52 - * to `true` to bundle the client source code instead of the `dist` folder. 53 - * This will copy the TypeScript files instead of CJS/ESM JavaScript files. 54 - * 55 - * @default false 56 - */ 57 - bundleSource_EXPERIMENTAL?: boolean; 58 45 /** 59 46 * Should the exports from the generated files be re-exported in the index 60 47 * barrel file?
+22
packages/openapi-ts/src/plugins/@hey-api/client-fetch/bundle/index.ts
··· 1 + export type { Auth } from '../../client-core/bundle/auth'; 2 + export type { QuerySerializerOptions } from '../../client-core/bundle/bodySerializer'; 3 + export { 4 + formDataBodySerializer, 5 + jsonBodySerializer, 6 + urlSearchParamsBodySerializer, 7 + } from '../../client-core/bundle/bodySerializer'; 8 + export { buildClientParams } from '../../client-core/bundle/params'; 9 + export { createClient } from './client'; 10 + export type { 11 + Client, 12 + ClientOptions, 13 + Config, 14 + CreateClientConfig, 15 + Options, 16 + OptionsLegacyParser, 17 + RequestOptions, 18 + RequestResult, 19 + ResponseStyle, 20 + TDataShape, 21 + } from './types'; 22 + export { createConfig, mergeHeaders } from './utils';
+1 -18
packages/openapi-ts/src/plugins/@hey-api/sdk/auth.ts
··· 1 1 import type { IR } from '../../../ir/types'; 2 2 import type { Plugin } from '../../types'; 3 + import type { Auth } from '../client-core/bundle/auth'; 3 4 import type { Config } from './types'; 4 - 5 - // copy-pasted from @hey-api/client-core, minus export statement 6 - interface Auth { 7 - /** 8 - * Which part of the request do we use to send the auth? 9 - * 10 - * @default 'header' 11 - */ 12 - in?: 'header' | 'query' | 'cookie'; 13 - /** 14 - * Header or query parameter name. 15 - * 16 - * @default 'Authorization' 17 - */ 18 - name?: string; 19 - scheme?: 'basic' | 'bearer'; 20 - type: 'apiKey' | 'http'; 21 - } 22 5 23 6 // TODO: parser - handle more security types 24 7 const securitySchemeObjectToAuthObject = ({
+33
packages/openapi-ts/tsup.config.ts
··· 1 + import fs from 'node:fs'; 2 + import path from 'node:path'; 3 + 1 4 import { defineConfig } from 'tsup'; 2 5 3 6 export default defineConfig((options) => ({ ··· 17 20 entry: ['src/index.ts', 'src/internal.ts'], 18 21 format: ['cjs', 'esm'], 19 22 minify: !options.watch, 23 + onSuccess: async () => { 24 + // Copy client files to dist folder for runtime access 25 + const pluginNames = [ 26 + // 'client-axios', 27 + 'client-core', 28 + 'client-fetch', 29 + // 'client-next', 30 + // 'client-nuxt', 31 + ]; 32 + 33 + for (const pluginName of pluginNames) { 34 + const srcPath = path.resolve( 35 + 'src', 36 + 'plugins', 37 + '@hey-api', 38 + pluginName, 39 + 'bundle', 40 + ); 41 + const destPath = path.resolve( 42 + 'dist', 43 + 'clients', 44 + pluginName.slice('client-'.length), 45 + ); 46 + 47 + if (fs.existsSync(srcPath)) { 48 + fs.mkdirSync(path.dirname(destPath), { recursive: true }); 49 + fs.cpSync(srcPath, destPath, { recursive: true }); 50 + } 51 + } 52 + }, 20 53 shims: false, 21 54 sourcemap: true, 22 55 treeshake: true,
+312 -46
pnpm-lock.yaml
··· 967 967 devDependencies: 968 968 '@angular-devkit/build-angular': 969 969 specifier: 19.2.0 970 - version: 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(typescript@5.8.3)(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))(yaml@2.8.0) 970 + version: 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(typescript@5.8.3)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0))(yaml@2.8.0) 971 971 '@angular/animations': 972 972 specifier: 19.2.0 973 973 version: 19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)) ··· 1001 1001 '@config/vite-base': 1002 1002 specifier: workspace:* 1003 1003 version: link:../config-vite-base 1004 - '@hey-api/client-axios': 1005 - specifier: workspace:* 1006 - version: link:../client-axios 1007 - '@hey-api/client-core': 1008 - specifier: workspace:* 1009 - version: link:../client-core 1010 1004 '@hey-api/client-custom': 1011 1005 specifier: workspace:* 1012 1006 version: link:../client-custom 1013 - '@hey-api/client-fetch': 1014 - specifier: workspace:* 1015 - version: link:../client-fetch 1016 - '@hey-api/client-next': 1017 - specifier: workspace:* 1018 - version: link:../client-next 1019 1007 '@hey-api/client-nuxt': 1020 1008 specifier: workspace:* 1021 1009 version: link:../client-nuxt ··· 1066 1054 version: 3.3.2 1067 1055 nuxt: 1068 1056 specifier: 3.14.1592 1069 - version: 3.14.1592(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.1)(encoding@0.1.13)(eslint@9.17.0(jiti@2.4.2))(ioredis@5.6.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass@1.85.0)(terser@5.39.0)(typescript@5.8.3)(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)) 1057 + version: 3.14.1592(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.1)(encoding@0.1.13)(eslint@9.17.0(jiti@2.4.2))(ioredis@5.6.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass@1.85.0)(terser@5.39.0)(typescript@5.8.3)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)) 1070 1058 prettier: 1071 1059 specifier: 3.4.2 1072 1060 version: 3.4.2 ··· 12278 12266 transitivePeerDependencies: 12279 12267 - chokidar 12280 12268 12281 - '@angular-devkit/build-angular@19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(typescript@5.8.3)(vite@6.1.0(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))(yaml@2.8.0)': 12269 + '@angular-devkit/build-angular@19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(typescript@5.8.3)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0))(yaml@2.8.0)': 12282 12270 dependencies: 12283 12271 '@ampproject/remapping': 2.3.0 12284 12272 '@angular-devkit/architect': 0.1902.0(chokidar@4.0.3) 12285 - '@angular-devkit/build-webpack': 0.1902.0(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.2)))(webpack@5.98.0(esbuild@0.25.0)) 12273 + '@angular-devkit/build-webpack': 0.1902.0(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0))(webpack@5.98.0(esbuild@0.25.0)) 12286 12274 '@angular-devkit/core': 19.2.0(chokidar@4.0.3) 12287 12275 '@angular/build': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(less@4.2.2)(postcss@8.5.2)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(terser@5.39.0)(typescript@5.8.3)(yaml@2.8.0) 12288 12276 '@angular/compiler-cli': 19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.8.3) ··· 12297 12285 '@babel/runtime': 7.26.9 12298 12286 '@discoveryjs/json-ext': 0.6.3 12299 12287 '@ngtools/webpack': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.0)) 12300 - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.1.0(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)) 12288 + '@vitejs/plugin-basic-ssl': 1.2.0(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)) 12301 12289 ansi-colors: 4.1.3 12302 12290 autoprefixer: 10.4.20(postcss@8.5.2) 12303 12291 babel-loader: 9.2.1(@babel/core@7.26.9)(webpack@5.98.0(esbuild@0.25.0)) ··· 12333 12321 tslib: 2.8.1 12334 12322 typescript: 5.8.3 12335 12323 webpack: 5.98.0(esbuild@0.25.0) 12336 - webpack-dev-middleware: 7.4.2(webpack@5.98.0(esbuild@0.25.2)) 12337 - webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.2)) 12324 + webpack-dev-middleware: 7.4.2(webpack@5.98.0) 12325 + webpack-dev-server: 5.2.0(webpack@5.98.0) 12338 12326 webpack-merge: 6.0.1 12339 12327 webpack-subresource-integrity: 5.1.0(webpack@5.98.0(esbuild@0.25.0)) 12340 12328 optionalDependencies: ··· 12364 12352 - webpack-cli 12365 12353 - yaml 12366 12354 12367 - '@angular-devkit/build-angular@19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(typescript@5.8.3)(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))(yaml@2.8.0)': 12355 + '@angular-devkit/build-angular@19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.8.3))(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.5)(chokidar@4.0.3)(jiti@2.4.2)(karma@6.4.4)(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)))(typescript@5.8.3)(vite@6.1.0(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))(yaml@2.8.0)': 12368 12356 dependencies: 12369 12357 '@ampproject/remapping': 2.3.0 12370 12358 '@angular-devkit/architect': 0.1902.0(chokidar@4.0.3) ··· 12383 12371 '@babel/runtime': 7.26.9 12384 12372 '@discoveryjs/json-ext': 0.6.3 12385 12373 '@ngtools/webpack': 19.2.0(@angular/compiler-cli@19.2.0(@angular/compiler@19.2.0(@angular/core@19.2.0(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.8.3))(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.0)) 12386 - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)) 12374 + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.1.0(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)) 12387 12375 ansi-colors: 4.1.3 12388 12376 autoprefixer: 10.4.20(postcss@8.5.2) 12389 12377 babel-loader: 9.2.1(@babel/core@7.26.9)(webpack@5.98.0(esbuild@0.25.0)) ··· 12456 12444 rxjs: 7.8.1 12457 12445 webpack: 5.98.0(esbuild@0.25.0) 12458 12446 webpack-dev-server: 5.2.0(webpack@5.98.0(esbuild@0.25.2)) 12447 + transitivePeerDependencies: 12448 + - chokidar 12449 + 12450 + '@angular-devkit/build-webpack@0.1902.0(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.98.0))(webpack@5.98.0(esbuild@0.25.0))': 12451 + dependencies: 12452 + '@angular-devkit/architect': 0.1902.0(chokidar@4.0.3) 12453 + rxjs: 7.8.1 12454 + webpack: 5.98.0(esbuild@0.25.0) 12455 + webpack-dev-server: 5.2.0(webpack@5.98.0) 12459 12456 transitivePeerDependencies: 12460 12457 - chokidar 12461 12458 ··· 14727 14724 14728 14725 '@nuxt/devalue@2.0.2': {} 14729 14726 14727 + '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0))': 14728 + dependencies: 14729 + '@nuxt/kit': 3.15.4(magicast@0.3.5) 14730 + '@nuxt/schema': 3.16.2 14731 + execa: 7.2.0 14732 + vite: 5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0) 14733 + transitivePeerDependencies: 14734 + - magicast 14735 + - supports-color 14736 + 14730 14737 '@nuxt/devtools-kit@1.7.0(magicast@0.3.5)(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))': 14731 14738 dependencies: 14732 14739 '@nuxt/kit': 3.15.4(magicast@0.3.5) ··· 14797 14804 - utf-8-validate 14798 14805 - vue 14799 14806 14807 + '@nuxt/devtools@1.7.0(rollup@4.41.1)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.8.3))': 14808 + dependencies: 14809 + '@antfu/utils': 0.7.10 14810 + '@nuxt/devtools-kit': 1.7.0(magicast@0.3.5)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)) 14811 + '@nuxt/devtools-wizard': 1.7.0 14812 + '@nuxt/kit': 3.15.4(magicast@0.3.5) 14813 + '@vue/devtools-core': 7.6.8(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.8.3)) 14814 + '@vue/devtools-kit': 7.6.8 14815 + birpc: 0.2.19 14816 + consola: 3.4.0 14817 + cronstrue: 2.56.0 14818 + destr: 2.0.3 14819 + error-stack-parser-es: 0.1.5 14820 + execa: 7.2.0 14821 + fast-npm-meta: 0.2.2 14822 + flatted: 3.3.3 14823 + get-port-please: 3.1.2 14824 + hookable: 5.5.3 14825 + image-meta: 0.2.1 14826 + is-installed-globally: 1.0.0 14827 + launch-editor: 2.10.0 14828 + local-pkg: 0.5.1 14829 + magicast: 0.3.5 14830 + nypm: 0.4.1 14831 + ohash: 1.1.6 14832 + pathe: 1.1.2 14833 + perfect-debounce: 1.0.0 14834 + pkg-types: 1.3.1 14835 + rc9: 2.1.2 14836 + scule: 1.3.0 14837 + semver: 7.7.1 14838 + simple-git: 3.27.0 14839 + sirv: 3.0.1 14840 + tinyglobby: 0.2.12 14841 + unimport: 3.14.6(rollup@4.41.1) 14842 + vite: 5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0) 14843 + vite-plugin-inspect: 0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.41.1)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)) 14844 + vite-plugin-vue-inspector: 5.3.1(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)) 14845 + which: 3.0.1 14846 + ws: 8.18.1 14847 + transitivePeerDependencies: 14848 + - bufferutil 14849 + - rollup 14850 + - supports-color 14851 + - utf-8-validate 14852 + - vue 14853 + 14800 14854 '@nuxt/devtools@1.7.0(rollup@4.41.1)(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3))': 14801 14855 dependencies: 14802 14856 '@antfu/utils': 0.7.10 ··· 16929 16983 - rollup 16930 16984 - supports-color 16931 16985 16986 + '@vitejs/plugin-basic-ssl@1.2.0(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0))': 16987 + dependencies: 16988 + vite: 5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0) 16989 + 16932 16990 '@vitejs/plugin-basic-ssl@1.2.0(vite@6.1.0(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))': 16933 16991 dependencies: 16934 16992 vite: 6.1.0(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0) 16935 - 16936 - '@vitejs/plugin-basic-ssl@1.2.0(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))': 16937 - dependencies: 16938 - vite: 6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0) 16939 16993 16940 16994 '@vitejs/plugin-react@4.4.0-beta.1(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))': 16941 16995 dependencies: ··· 17133 17187 '@vue/devtools-api@7.7.2': 17134 17188 dependencies: 17135 17189 '@vue/devtools-kit': 7.7.2 17190 + 17191 + '@vue/devtools-core@7.6.8(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.8.3))': 17192 + dependencies: 17193 + '@vue/devtools-kit': 7.7.2 17194 + '@vue/devtools-shared': 7.7.2 17195 + mitt: 3.0.1 17196 + nanoid: 5.1.5 17197 + pathe: 1.1.2 17198 + vite-hot-client: 0.2.4(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)) 17199 + vue: 3.5.13(typescript@5.8.3) 17200 + transitivePeerDependencies: 17201 + - vite 17136 17202 17137 17203 '@vue/devtools-core@7.6.8(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3))': 17138 17204 dependencies: ··· 20276 20342 20277 20343 is-reference@3.0.3: 20278 20344 dependencies: 20279 - '@types/estree': 1.0.6 20345 + '@types/estree': 1.0.7 20280 20346 20281 20347 is-regex@1.2.1: 20282 20348 dependencies: ··· 21571 21637 - vue-tsc 21572 21638 - xml2js 21573 21639 21640 + nuxt@3.14.1592(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.1)(encoding@0.1.13)(eslint@9.17.0(jiti@2.4.2))(ioredis@5.6.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass@1.85.0)(terser@5.39.0)(typescript@5.8.3)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)): 21641 + dependencies: 21642 + '@nuxt/devalue': 2.0.2 21643 + '@nuxt/devtools': 1.7.0(rollup@4.41.1)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0))(vue@3.5.13(typescript@5.8.3)) 21644 + '@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.41.1) 21645 + '@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@4.41.1) 21646 + '@nuxt/telemetry': 2.6.5(magicast@0.3.5) 21647 + '@nuxt/vite-builder': 3.14.1592(@types/node@22.10.5)(eslint@9.17.0(jiti@2.4.2))(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass@1.85.0)(terser@5.39.0)(typescript@5.8.3)(vue@3.5.13(typescript@5.8.3)) 21648 + '@unhead/dom': 1.11.20 21649 + '@unhead/shared': 1.11.20 21650 + '@unhead/ssr': 1.11.20 21651 + '@unhead/vue': 1.11.20(vue@3.5.13(typescript@5.8.3)) 21652 + '@vue/shared': 3.5.13 21653 + acorn: 8.14.0 21654 + c12: 2.0.1(magicast@0.3.5) 21655 + chokidar: 4.0.3 21656 + compatx: 0.1.8 21657 + consola: 3.4.0 21658 + cookie-es: 1.2.2 21659 + defu: 6.1.4 21660 + destr: 2.0.3 21661 + devalue: 5.1.1 21662 + errx: 0.1.0 21663 + esbuild: 0.24.2 21664 + escape-string-regexp: 5.0.0 21665 + estree-walker: 3.0.3 21666 + globby: 14.1.0 21667 + h3: 1.15.1 21668 + hookable: 5.5.3 21669 + ignore: 6.0.2 21670 + impound: 0.2.2(rollup@4.41.1) 21671 + jiti: 2.4.2 21672 + klona: 2.0.6 21673 + knitwork: 1.2.0 21674 + magic-string: 0.30.17 21675 + mlly: 1.7.4 21676 + nanotar: 0.1.1 21677 + nitropack: 2.11.6(encoding@0.1.13)(typescript@5.8.3) 21678 + nuxi: 3.22.5 21679 + nypm: 0.3.12 21680 + ofetch: 1.4.1 21681 + ohash: 1.1.6 21682 + pathe: 1.1.2 21683 + perfect-debounce: 1.0.0 21684 + pkg-types: 1.3.1 21685 + radix3: 1.1.2 21686 + scule: 1.3.0 21687 + semver: 7.7.1 21688 + std-env: 3.8.1 21689 + strip-literal: 2.1.1 21690 + tinyglobby: 0.2.10 21691 + ufo: 1.5.4 21692 + ultrahtml: 1.5.3 21693 + uncrypto: 0.1.3 21694 + unctx: 2.4.1 21695 + unenv: 1.10.0 21696 + unhead: 1.11.20 21697 + unimport: 3.14.6(rollup@4.41.1) 21698 + unplugin: 1.16.1 21699 + unplugin-vue-router: 0.10.9(rollup@4.41.1)(vue-router@4.5.0(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3)) 21700 + unstorage: 1.15.0(db0@0.3.1)(ioredis@5.6.0) 21701 + untyped: 1.5.2 21702 + vue: 3.5.13(typescript@5.8.3) 21703 + vue-bundle-renderer: 2.1.1 21704 + vue-devtools-stub: 0.1.0 21705 + vue-router: 4.5.0(vue@3.5.13(typescript@5.8.3)) 21706 + optionalDependencies: 21707 + '@parcel/watcher': 2.5.1 21708 + '@types/node': 22.10.5 21709 + transitivePeerDependencies: 21710 + - '@azure/app-configuration' 21711 + - '@azure/cosmos' 21712 + - '@azure/data-tables' 21713 + - '@azure/identity' 21714 + - '@azure/keyvault-secrets' 21715 + - '@azure/storage-blob' 21716 + - '@biomejs/biome' 21717 + - '@capacitor/preferences' 21718 + - '@deno/kv' 21719 + - '@electric-sql/pglite' 21720 + - '@libsql/client' 21721 + - '@netlify/blobs' 21722 + - '@planetscale/database' 21723 + - '@upstash/redis' 21724 + - '@vercel/blob' 21725 + - '@vercel/kv' 21726 + - aws4fetch 21727 + - better-sqlite3 21728 + - bufferutil 21729 + - db0 21730 + - drizzle-orm 21731 + - encoding 21732 + - eslint 21733 + - idb-keyval 21734 + - ioredis 21735 + - less 21736 + - lightningcss 21737 + - magicast 21738 + - meow 21739 + - mysql2 21740 + - optionator 21741 + - rolldown 21742 + - rollup 21743 + - sass 21744 + - sass-embedded 21745 + - sqlite3 21746 + - stylelint 21747 + - stylus 21748 + - sugarss 21749 + - supports-color 21750 + - terser 21751 + - typescript 21752 + - uploadthing 21753 + - utf-8-validate 21754 + - vite 21755 + - vls 21756 + - vti 21757 + - vue-tsc 21758 + - xml2js 21759 + 21574 21760 nuxt@3.14.1592(@parcel/watcher@2.5.1)(@types/node@22.10.5)(db0@0.3.1)(encoding@0.1.13)(eslint@9.17.0(jiti@2.4.2))(ioredis@5.6.0)(less@4.2.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.1)(sass@1.85.0)(terser@5.39.0)(typescript@5.8.3)(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)): 21575 21761 dependencies: 21576 21762 '@nuxt/devalue': 2.0.2 ··· 22170 22356 dependencies: 22171 22357 postcss: 8.5.4 22172 22358 22173 - postcss-import@15.1.0(postcss@8.4.41): 22359 + postcss-import@15.1.0(postcss@8.5.4): 22174 22360 dependencies: 22175 - postcss: 8.4.41 22361 + postcss: 8.5.4 22176 22362 postcss-value-parser: 4.2.0 22177 22363 read-cache: 1.0.0 22178 22364 resolve: 1.22.10 22179 22365 22180 - postcss-js@4.0.1(postcss@8.4.41): 22366 + postcss-js@4.0.1(postcss@8.5.4): 22181 22367 dependencies: 22182 22368 camelcase-css: 2.0.1 22183 - postcss: 8.4.41 22369 + postcss: 8.5.4 22184 22370 22185 22371 postcss-load-config@3.1.4(postcss@8.4.41)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)): 22186 22372 dependencies: ··· 22190 22376 postcss: 8.4.41 22191 22377 ts-node: 10.9.2(@types/node@22.10.5)(typescript@5.8.3) 22192 22378 22193 - postcss-load-config@4.0.2(postcss@8.4.41)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)): 22379 + postcss-load-config@4.0.2(postcss@8.5.4)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)): 22194 22380 dependencies: 22195 22381 lilconfig: 3.1.3 22196 - yaml: 2.7.0 22382 + yaml: 2.8.0 22197 22383 optionalDependencies: 22198 - postcss: 8.4.41 22384 + postcss: 8.5.4 22199 22385 ts-node: 10.9.2(@types/node@22.10.5)(typescript@5.8.3) 22200 22386 22201 22387 postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.4)(yaml@2.8.0): ··· 22278 22464 dependencies: 22279 22465 icss-utils: 5.1.0(postcss@8.4.41) 22280 22466 postcss: 8.4.41 22281 - 22282 - postcss-nested@6.2.0(postcss@8.4.41): 22283 - dependencies: 22284 - postcss: 8.4.41 22285 - postcss-selector-parser: 6.1.2 22286 22467 22287 22468 postcss-nested@6.2.0(postcss@8.5.4): 22288 22469 dependencies: ··· 23601 23782 dependencies: 23602 23783 '@ampproject/remapping': 2.3.0 23603 23784 '@jridgewell/sourcemap-codec': 1.5.0 23604 - '@types/estree': 1.0.6 23785 + '@types/estree': 1.0.7 23605 23786 acorn: 8.14.1 23606 23787 acorn-typescript: 1.4.13(acorn@8.14.1) 23607 23788 aria-query: 5.3.2 ··· 23653 23834 normalize-path: 3.0.0 23654 23835 object-hash: 3.0.0 23655 23836 picocolors: 1.1.1 23656 - postcss: 8.4.41 23657 - postcss-import: 15.1.0(postcss@8.4.41) 23658 - postcss-js: 4.0.1(postcss@8.4.41) 23659 - postcss-load-config: 4.0.2(postcss@8.4.41)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)) 23660 - postcss-nested: 6.2.0(postcss@8.4.41) 23837 + postcss: 8.5.4 23838 + postcss-import: 15.1.0(postcss@8.5.4) 23839 + postcss-js: 4.0.1(postcss@8.5.4) 23840 + postcss-load-config: 4.0.2(postcss@8.5.4)(ts-node@10.9.2(@types/node@22.10.5)(typescript@5.8.3)) 23841 + postcss-nested: 6.2.0(postcss@8.5.4) 23661 23842 postcss-selector-parser: 6.1.2 23662 23843 resolve: 1.22.10 23663 23844 sucrase: 3.35.0 ··· 23702 23883 23703 23884 term-size@2.2.1: {} 23704 23885 23705 - terser-webpack-plugin@5.3.14(esbuild@0.25.0)(webpack@5.98.0(esbuild@0.25.2)): 23886 + terser-webpack-plugin@5.3.14(esbuild@0.25.0)(webpack@5.98.0): 23706 23887 dependencies: 23707 23888 '@jridgewell/trace-mapping': 0.3.25 23708 23889 jest-worker: 27.5.1 ··· 24390 24571 '@types/unist': 3.0.3 24391 24572 vfile-message: 4.0.2 24392 24573 24574 + vite-hot-client@0.2.4(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)): 24575 + dependencies: 24576 + vite: 5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0) 24577 + 24393 24578 vite-hot-client@0.2.4(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)): 24394 24579 dependencies: 24395 24580 vite: 6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0) ··· 24473 24658 - rollup 24474 24659 - supports-color 24475 24660 24661 + vite-plugin-inspect@0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.41.1)(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)): 24662 + dependencies: 24663 + '@antfu/utils': 0.7.10 24664 + '@rollup/pluginutils': 5.1.4(rollup@4.41.1) 24665 + debug: 4.4.0(supports-color@9.4.0) 24666 + error-stack-parser-es: 0.1.5 24667 + fs-extra: 11.3.0 24668 + open: 10.1.0 24669 + perfect-debounce: 1.0.0 24670 + picocolors: 1.1.1 24671 + sirv: 3.0.1 24672 + vite: 5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0) 24673 + optionalDependencies: 24674 + '@nuxt/kit': 3.15.4(magicast@0.3.5) 24675 + transitivePeerDependencies: 24676 + - rollup 24677 + - supports-color 24678 + 24476 24679 vite-plugin-inspect@0.8.9(@nuxt/kit@3.15.4(magicast@0.3.5))(rollup@4.41.1)(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)): 24477 24680 dependencies: 24478 24681 '@antfu/utils': 0.7.10 ··· 24506 24709 - rollup 24507 24710 - supports-color 24508 24711 - vue 24712 + 24713 + vite-plugin-vue-inspector@5.3.1(vite@5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)): 24714 + dependencies: 24715 + '@babel/core': 7.26.10 24716 + '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.10) 24717 + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) 24718 + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.10) 24719 + '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.10) 24720 + '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.26.10) 24721 + '@vue/compiler-dom': 3.5.13 24722 + kolorist: 1.8.0 24723 + magic-string: 0.30.17 24724 + vite: 5.4.19(@types/node@22.10.5)(less@4.2.2)(sass@1.85.0)(terser@5.39.0) 24725 + transitivePeerDependencies: 24726 + - supports-color 24509 24727 24510 24728 vite-plugin-vue-inspector@5.3.1(vite@6.2.7(@types/node@22.10.5)(jiti@2.4.2)(less@4.2.2)(sass@1.85.0)(terser@5.39.0)(yaml@2.8.0)): 24511 24729 dependencies: ··· 24803 25021 optionalDependencies: 24804 25022 webpack: 5.98.0(esbuild@0.25.0) 24805 25023 25024 + webpack-dev-middleware@7.4.2(webpack@5.98.0): 25025 + dependencies: 25026 + colorette: 2.0.20 25027 + memfs: 4.17.0 25028 + mime-types: 2.1.35 25029 + on-finished: 2.4.1 25030 + range-parser: 1.2.1 25031 + schema-utils: 4.3.0 25032 + optionalDependencies: 25033 + webpack: 5.98.0(esbuild@0.25.0) 25034 + 24806 25035 webpack-dev-server@5.2.0(webpack@5.98.0(esbuild@0.25.2)): 24807 25036 dependencies: 24808 25037 '@types/bonjour': 3.5.13 ··· 24840 25069 - supports-color 24841 25070 - utf-8-validate 24842 25071 25072 + webpack-dev-server@5.2.0(webpack@5.98.0): 25073 + dependencies: 25074 + '@types/bonjour': 3.5.13 25075 + '@types/connect-history-api-fallback': 1.5.4 25076 + '@types/express': 4.17.21 25077 + '@types/serve-index': 1.9.4 25078 + '@types/serve-static': 1.15.7 25079 + '@types/sockjs': 0.3.36 25080 + '@types/ws': 8.18.0 25081 + ansi-html-community: 0.0.8 25082 + bonjour-service: 1.3.0 25083 + chokidar: 3.6.0 25084 + colorette: 2.0.20 25085 + compression: 1.8.0 25086 + connect-history-api-fallback: 2.0.0 25087 + express: 4.21.2 25088 + graceful-fs: 4.2.11 25089 + http-proxy-middleware: 2.0.7(@types/express@4.17.21) 25090 + ipaddr.js: 2.2.0 25091 + launch-editor: 2.10.0 25092 + open: 10.1.0 25093 + p-retry: 6.2.1 25094 + schema-utils: 4.3.0 25095 + selfsigned: 2.4.1 25096 + serve-index: 1.9.1 25097 + sockjs: 0.3.24 25098 + spdy: 4.0.2 25099 + webpack-dev-middleware: 7.4.2(webpack@5.98.0) 25100 + ws: 8.18.1 25101 + optionalDependencies: 25102 + webpack: 5.98.0(esbuild@0.25.0) 25103 + transitivePeerDependencies: 25104 + - bufferutil 25105 + - debug 25106 + - supports-color 25107 + - utf-8-validate 25108 + 24843 25109 webpack-merge@6.0.1: 24844 25110 dependencies: 24845 25111 clone-deep: 4.0.1 ··· 24877 25143 neo-async: 2.6.2 24878 25144 schema-utils: 4.3.0 24879 25145 tapable: 2.2.1 24880 - terser-webpack-plugin: 5.3.14(esbuild@0.25.0)(webpack@5.98.0(esbuild@0.25.2)) 25146 + terser-webpack-plugin: 5.3.14(esbuild@0.25.0)(webpack@5.98.0) 24881 25147 watchpack: 2.4.2 24882 25148 webpack-sources: 3.2.3 24883 25149 transitivePeerDependencies: